@nextcloud/vue 9.3.0 → 9.3.2

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 (327) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +44 -44
  3. package/dist/assets/{NcActionButton-D7bnKlOt.css → NcActionButton-Bb0ihLdt.css} +18 -18
  4. package/dist/assets/{NcActionButtonGroup-CRTH2v24.css → NcActionButtonGroup-Bt8kRk79.css} +8 -8
  5. package/dist/assets/{NcActionInput--OC-0kRP.css → NcActionInput-BxRA_Skn.css} +65 -65
  6. package/dist/assets/{NcActionLink-DjrAv1MG.css → NcActionLink-DAEr-vmd.css} +13 -13
  7. package/dist/assets/{NcActionTextEditable-BPaRhJ6u.css → NcActionTextEditable-TPYz4ma-.css} +65 -65
  8. package/dist/assets/{NcActions-DneK-9R2.css → NcActions-DOI7rRa0.css} +11 -11
  9. package/dist/assets/{NcAppSettingsDialog-Dz8uBPgu.css → NcAppSettingsDialog-CapZ_qNk.css} +10 -10
  10. package/dist/assets/{NcButton-DtYLJgG8.css → NcButton--Fj4gghF.css} +48 -48
  11. package/dist/assets/{NcCheckboxRadioSwitch-C_70VMQr.css → NcCheckboxRadioSwitch-DpYt0YbL.css} +13 -12
  12. package/dist/assets/{NcCollectionList-D9dOsdP2.css → NcCollectionList-C7OiUQQ-.css} +15 -15
  13. package/dist/assets/{NcDateTimePicker-DL6-rWSN.css → NcDateTimePicker-D6xbEbaC.css} +236 -233
  14. package/dist/assets/{NcFormBoxSwitch-BmyNQCbA.css → NcFormBoxSwitch-DScgbxtv.css} +2 -8
  15. package/dist/assets/NcIconToggleSwitch-C29S_5Rp.css +30 -0
  16. package/dist/assets/{NcInputField-DCpslX7k.css → NcInputField-B9DSDOEd.css} +82 -61
  17. package/dist/assets/{NcModal-Dyub1-f2.css → NcModal-Du-f0B7Y.css} +62 -70
  18. package/dist/assets/{NcRelatedResourcesPanel-Bun35PUF.css → NcRelatedResourcesPanel-DYB-wrU0.css} +3 -3
  19. package/dist/assets/{NcRichText-BwHm-gXR.css → NcRichText-RvICaxkO.css} +2 -2
  20. package/dist/assets/{NcSelect-BTLcqg7Y.css → NcSelect-ZnE_MlqV.css} +52 -5
  21. package/dist/assets/{NcTextArea-BKVszZmQ.css → NcTextArea-nivEqHE-.css} +62 -42
  22. package/dist/assets/{NcUserBubble-ChgvvPPf.css → NcUserBubble-B3Jad98g.css} +8 -8
  23. package/dist/chunks/{NcActionButton-DCWUru2b.mjs → NcActionButton-BHXE4UKQ.mjs} +6 -6
  24. package/dist/chunks/NcActionButton-BHXE4UKQ.mjs.map +1 -0
  25. package/dist/chunks/{NcActionButtonGroup-QgGuZcPA.mjs → NcActionButtonGroup-B2MGnwK_.mjs} +5 -5
  26. package/dist/chunks/NcActionButtonGroup-B2MGnwK_.mjs.map +1 -0
  27. package/dist/chunks/{NcActionCaption-Fumfjzxj.mjs → NcActionCaption-Cgd3J8jw.mjs} +2 -2
  28. package/dist/chunks/{NcActionCaption-Fumfjzxj.mjs.map → NcActionCaption-Cgd3J8jw.mjs.map} +1 -1
  29. package/dist/chunks/{NcActionCheckbox-CwrO3g3I.mjs → NcActionCheckbox-BTHrh-Mu.mjs} +2 -2
  30. package/dist/chunks/{NcActionCheckbox-CwrO3g3I.mjs.map → NcActionCheckbox-BTHrh-Mu.mjs.map} +1 -1
  31. package/dist/chunks/{NcActionInput-Bw4UxfFB.mjs → NcActionInput-D1uLWx4N.mjs} +12 -10
  32. package/dist/chunks/NcActionInput-D1uLWx4N.mjs.map +1 -0
  33. package/dist/chunks/{NcActionLink-afakPM_N.mjs → NcActionLink-Cd69py4e.mjs} +5 -5
  34. package/dist/chunks/NcActionLink-Cd69py4e.mjs.map +1 -0
  35. package/dist/chunks/{NcActionRadio-ByCpOD0q.mjs → NcActionRadio-BM24rDbc.mjs} +2 -2
  36. package/dist/chunks/{NcActionRadio-ByCpOD0q.mjs.map → NcActionRadio-BM24rDbc.mjs.map} +1 -1
  37. package/dist/chunks/{NcActionRouter-oT-YU_jf.mjs → NcActionRouter-DtxPh20B.mjs} +3 -3
  38. package/dist/chunks/{NcActionRouter-oT-YU_jf.mjs.map → NcActionRouter-DtxPh20B.mjs.map} +1 -1
  39. package/dist/chunks/{NcActionText-uKvLcEY6.mjs → NcActionText-Bd1fgVqA.mjs} +3 -3
  40. package/dist/chunks/{NcActionText-uKvLcEY6.mjs.map → NcActionText-Bd1fgVqA.mjs.map} +1 -1
  41. package/dist/chunks/{NcActionTextEditable-BQXCci7D.mjs → NcActionTextEditable-DAMWWXnR.mjs} +5 -5
  42. package/dist/chunks/NcActionTextEditable-DAMWWXnR.mjs.map +1 -0
  43. package/dist/chunks/{NcActions-B0kM6AYb.mjs → NcActions-4R7icatI.mjs} +6 -6
  44. package/dist/chunks/NcActions-4R7icatI.mjs.map +1 -0
  45. package/dist/chunks/{NcAppContent-BbtKZp6w.mjs → NcAppContent-DFbY2ERd.mjs} +5 -5
  46. package/dist/chunks/{NcAppContent-BbtKZp6w.mjs.map → NcAppContent-DFbY2ERd.mjs.map} +1 -1
  47. package/dist/chunks/{NcAppNavigation-CROkGlDE.mjs → NcAppNavigation-CjnufbC2.mjs} +6 -6
  48. package/dist/chunks/{NcAppNavigation-CROkGlDE.mjs.map → NcAppNavigation-CjnufbC2.mjs.map} +1 -1
  49. package/dist/chunks/{NcAppNavigationCaption-CuGe5Mev.mjs → NcAppNavigationCaption-DiLoiMN5.mjs} +2 -2
  50. package/dist/chunks/{NcAppNavigationCaption-CuGe5Mev.mjs.map → NcAppNavigationCaption-DiLoiMN5.mjs.map} +1 -1
  51. package/dist/chunks/{NcAppNavigationItem-DU-pLjwa.mjs → NcAppNavigationItem-B307vBI9.mjs} +6 -6
  52. package/dist/chunks/{NcAppNavigationItem-DU-pLjwa.mjs.map → NcAppNavigationItem-B307vBI9.mjs.map} +1 -1
  53. package/dist/chunks/{NcAppNavigationNew-DJbq5wr_.mjs → NcAppNavigationNew-WS0F9mau.mjs} +2 -2
  54. package/dist/chunks/{NcAppNavigationNew-DJbq5wr_.mjs.map → NcAppNavigationNew-WS0F9mau.mjs.map} +1 -1
  55. package/dist/chunks/{NcAppNavigationNewItem-CoRu6Q9O.mjs → NcAppNavigationNewItem-DYH3Gimz.mjs} +2 -2
  56. package/dist/chunks/{NcAppNavigationNewItem-CoRu6Q9O.mjs.map → NcAppNavigationNewItem-DYH3Gimz.mjs.map} +1 -1
  57. package/dist/chunks/{NcAppNavigationSearch-DaIFceYy.mjs → NcAppNavigationSearch-Bi367hd4.mjs} +4 -4
  58. package/dist/chunks/{NcAppNavigationSearch-DaIFceYy.mjs.map → NcAppNavigationSearch-Bi367hd4.mjs.map} +1 -1
  59. package/dist/chunks/{NcAppNavigationSettings-45tEbBBm.mjs → NcAppNavigationSettings-CaTjgcVj.mjs} +5 -5
  60. package/dist/chunks/{NcAppNavigationSettings-45tEbBBm.mjs.map → NcAppNavigationSettings-CaTjgcVj.mjs.map} +1 -1
  61. package/dist/chunks/{NcAppSettingsDialog-lTULgn3p.mjs → NcAppSettingsDialog-NlVP7Fo7.mjs} +7 -7
  62. package/dist/chunks/{NcAppSettingsDialog-lTULgn3p.mjs.map → NcAppSettingsDialog-NlVP7Fo7.mjs.map} +1 -1
  63. package/dist/chunks/{NcAppSettingsSection-B9R7enkC.mjs → NcAppSettingsSection-B2pFK0UK.mjs} +2 -2
  64. package/dist/chunks/{NcAppSettingsSection-B9R7enkC.mjs.map → NcAppSettingsSection-B2pFK0UK.mjs.map} +1 -1
  65. package/dist/chunks/{NcAppSettingsShortcutsSection-DIIuKYzs.mjs → NcAppSettingsShortcutsSection-DDmDMMsF.mjs} +4 -4
  66. package/dist/chunks/{NcAppSettingsShortcutsSection-DIIuKYzs.mjs.map → NcAppSettingsShortcutsSection-DDmDMMsF.mjs.map} +1 -1
  67. package/dist/chunks/{NcAppSidebar-X9ktYY0p.mjs → NcAppSidebar-as8lzUZp.mjs} +5 -5
  68. package/dist/chunks/{NcAppSidebar-X9ktYY0p.mjs.map → NcAppSidebar-as8lzUZp.mjs.map} +1 -1
  69. package/dist/chunks/{NcAssistantButton-BID8rRE5.mjs → NcAssistantButton-DqXCpiMp.mjs} +4 -4
  70. package/dist/chunks/{NcAssistantButton-BID8rRE5.mjs.map → NcAssistantButton-DqXCpiMp.mjs.map} +1 -1
  71. package/dist/chunks/{NcAssistantIcon-BUvb4WNg.mjs → NcAssistantIcon-PMYKxGuH.mjs} +2 -2
  72. package/dist/chunks/{NcAssistantIcon-BUvb4WNg.mjs.map → NcAssistantIcon-PMYKxGuH.mjs.map} +1 -1
  73. package/dist/chunks/{NcAvatar-Dxm05R6e.mjs → NcAvatar-S8EJR2BK.mjs} +9 -9
  74. package/dist/chunks/{NcAvatar-Dxm05R6e.mjs.map → NcAvatar-S8EJR2BK.mjs.map} +1 -1
  75. package/dist/chunks/{NcBreadcrumb-CiM9xAAS.mjs → NcBreadcrumb-ChYVw5CP.mjs} +3 -3
  76. package/dist/chunks/{NcBreadcrumb-CiM9xAAS.mjs.map → NcBreadcrumb-ChYVw5CP.mjs.map} +1 -1
  77. package/dist/chunks/{NcBreadcrumbs-geMiBPkk.mjs → NcBreadcrumbs-DHS31Ax7.mjs} +6 -6
  78. package/dist/chunks/{NcBreadcrumbs-geMiBPkk.mjs.map → NcBreadcrumbs-DHS31Ax7.mjs.map} +1 -1
  79. package/dist/chunks/{NcButton-ZNHdqKQl.mjs → NcButton-CzpKEx4V.mjs} +7 -4
  80. package/dist/chunks/NcButton-CzpKEx4V.mjs.map +1 -0
  81. package/dist/chunks/{NcCheckboxRadioSwitch-6ty3DxEG.mjs → NcCheckboxRadioSwitch-DisCqPZK.mjs} +38 -119
  82. package/dist/chunks/NcCheckboxRadioSwitch-DisCqPZK.mjs.map +1 -0
  83. package/dist/chunks/{NcChip-CFf0KxGk.mjs → NcChip-QHPd3nMF.mjs} +6 -6
  84. package/dist/chunks/{NcChip-CFf0KxGk.mjs.map → NcChip-QHPd3nMF.mjs.map} +1 -1
  85. package/dist/chunks/{NcCollectionList-Ds-tmckn.mjs → NcCollectionList-ByFl0-ca.mjs} +10 -9
  86. package/dist/chunks/NcCollectionList-ByFl0-ca.mjs.map +1 -0
  87. package/dist/chunks/{NcColorPicker-BFcR9_1o.mjs → NcColorPicker-DpSDaGrh.mjs} +6 -6
  88. package/dist/chunks/{NcColorPicker-BFcR9_1o.mjs.map → NcColorPicker-DpSDaGrh.mjs.map} +1 -1
  89. package/dist/chunks/{NcContent-BKKnoxxu.mjs → NcContent-BrRHLO19.mjs} +5 -5
  90. package/dist/chunks/{NcContent-BKKnoxxu.mjs.map → NcContent-BrRHLO19.mjs.map} +1 -1
  91. package/dist/chunks/{NcDashboardWidget-cclUqUde.mjs → NcDashboardWidget-CIUrPOLo.mjs} +4 -4
  92. package/dist/chunks/{NcDashboardWidget-cclUqUde.mjs.map → NcDashboardWidget-CIUrPOLo.mjs.map} +1 -1
  93. package/dist/chunks/{NcDashboardWidgetItem-DM96gJkD.mjs → NcDashboardWidgetItem-DdYM1QYk.mjs} +4 -4
  94. package/dist/chunks/{NcDashboardWidgetItem-DM96gJkD.mjs.map → NcDashboardWidgetItem-DdYM1QYk.mjs.map} +1 -1
  95. package/dist/chunks/{NcDateTimePicker-CYRbEpfY.mjs → NcDateTimePicker-DtQaoKbG.mjs} +10 -10
  96. package/dist/chunks/{NcDateTimePicker-CYRbEpfY.mjs.map → NcDateTimePicker-DtQaoKbG.mjs.map} +1 -1
  97. package/dist/chunks/{NcDateTimePickerNative-CR1Yx5Qp.mjs → NcDateTimePickerNative-Dr8_mGlQ.mjs} +3 -3
  98. package/dist/chunks/{NcDateTimePickerNative-CR1Yx5Qp.mjs.map → NcDateTimePickerNative-Dr8_mGlQ.mjs.map} +1 -1
  99. package/dist/chunks/{NcDialog-BY-1v8yi.mjs → NcDialog-BTmnYNeo.mjs} +3 -3
  100. package/dist/chunks/{NcDialog-BY-1v8yi.mjs.map → NcDialog-BTmnYNeo.mjs.map} +1 -1
  101. package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-CF6LnBe7.mjs → NcDialogButton.vue_vue_type_script_setup_true_lang-CYpktNKA.mjs} +4 -4
  102. package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-CF6LnBe7.mjs.map → NcDialogButton.vue_vue_type_script_setup_true_lang-CYpktNKA.mjs.map} +1 -1
  103. package/dist/chunks/{NcEmojiPicker-DMiiRPm1.mjs → NcEmojiPicker-U5k_zceS.mjs} +6 -6
  104. package/dist/chunks/{NcEmojiPicker-DMiiRPm1.mjs.map → NcEmojiPicker-U5k_zceS.mjs.map} +1 -1
  105. package/dist/chunks/{NcFormBox-K2tCRm3B.mjs → NcFormBox-CkgY7Tif.mjs} +2 -2
  106. package/dist/chunks/NcFormBox-CkgY7Tif.mjs.map +1 -0
  107. package/dist/chunks/{NcFormBoxButton-4XaQUTOS.mjs → NcFormBoxButton-Bptd324P.mjs} +3 -3
  108. package/dist/chunks/{NcFormBoxButton-4XaQUTOS.mjs.map → NcFormBoxButton-Bptd324P.mjs.map} +1 -1
  109. package/dist/chunks/{NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-DTWd7b52.mjs → NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-DhnfC18v.mjs} +3 -3
  110. package/dist/chunks/{NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-DTWd7b52.mjs.map → NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-DhnfC18v.mjs.map} +1 -1
  111. package/dist/chunks/{NcFormBoxItem-BBP76Mkf.mjs → NcFormBoxItem-vnU0KmUL.mjs} +2 -2
  112. package/dist/chunks/{NcFormBoxItem-BBP76Mkf.mjs.map → NcFormBoxItem-vnU0KmUL.mjs.map} +1 -1
  113. package/dist/chunks/{NcFormBoxSwitch-E6Ei7MFo.mjs → NcFormBoxSwitch-DGcRJH9Q.mjs} +10 -15
  114. package/dist/chunks/NcFormBoxSwitch-DGcRJH9Q.mjs.map +1 -0
  115. package/dist/chunks/{NcHeaderButton-tLfDELGu.mjs → NcHeaderButton-CIb5SvFk.mjs} +2 -2
  116. package/dist/chunks/{NcHeaderButton-tLfDELGu.mjs.map → NcHeaderButton-CIb5SvFk.mjs.map} +1 -1
  117. package/dist/chunks/{NcHeaderMenu-ClRw0Xc5.mjs → NcHeaderMenu-CeJZT5-m.mjs} +2 -2
  118. package/dist/chunks/{NcHeaderMenu-ClRw0Xc5.mjs.map → NcHeaderMenu-CeJZT5-m.mjs.map} +1 -1
  119. package/dist/chunks/{NcHotkey-Cya0WRKL.mjs → NcHotkey-BMbdzaIs.mjs} +2 -2
  120. package/dist/chunks/{NcHotkey-Cya0WRKL.mjs.map → NcHotkey-BMbdzaIs.mjs.map} +1 -1
  121. package/dist/chunks/{NcHotkeyList-B9C--U6a.mjs → NcHotkeyList-67NnF26Y.mjs} +3 -3
  122. package/dist/chunks/{NcHotkeyList-B9C--U6a.mjs.map → NcHotkeyList-67NnF26Y.mjs.map} +1 -1
  123. package/dist/chunks/NcIconToggleSwitch-DNEYngCw.mjs +50 -0
  124. package/dist/chunks/NcIconToggleSwitch-DNEYngCw.mjs.map +1 -0
  125. package/dist/chunks/{NcInputConfirmCancel-Brw2dsPI.mjs → NcInputConfirmCancel-DjMO3Xyv.mjs} +3 -3
  126. package/dist/chunks/{NcInputConfirmCancel-Brw2dsPI.mjs.map → NcInputConfirmCancel-DjMO3Xyv.mjs.map} +1 -1
  127. package/dist/chunks/{NcInputField-z8wpYKt2.mjs → NcInputField-D7Nv5QhT.mjs} +11 -11
  128. package/dist/chunks/NcInputField-D7Nv5QhT.mjs.map +1 -0
  129. package/dist/chunks/{NcKbd-D6pM7aJM.mjs → NcKbd-CZdynD1d.mjs} +3 -3
  130. package/dist/chunks/{NcKbd-D6pM7aJM.mjs.map → NcKbd-CZdynD1d.mjs.map} +1 -1
  131. package/dist/chunks/{NcListItem-D5AkAxDh.mjs → NcListItem-Bx93C7tP.mjs} +2 -2
  132. package/dist/chunks/{NcListItem-D5AkAxDh.mjs.map → NcListItem-Bx93C7tP.mjs.map} +1 -1
  133. package/dist/chunks/{NcListItemIcon-D_ReDycv.mjs → NcListItemIcon-IJLXY-te.mjs} +2 -2
  134. package/dist/chunks/{NcListItemIcon-D_ReDycv.mjs.map → NcListItemIcon-IJLXY-te.mjs.map} +1 -1
  135. package/dist/chunks/NcModal-DSCYMxfe.mjs +422 -0
  136. package/dist/chunks/NcModal-DSCYMxfe.mjs.map +1 -0
  137. package/dist/chunks/{NcNoteCard-C6JdnZUp.mjs → NcNoteCard-BUg07N13.mjs} +2 -2
  138. package/dist/chunks/{NcNoteCard-C6JdnZUp.mjs.map → NcNoteCard-BUg07N13.mjs.map} +1 -1
  139. package/dist/chunks/{NcPasswordField-BquWP0Di.mjs → NcPasswordField-CTuWpUWd.mjs} +5 -5
  140. package/dist/chunks/{NcPasswordField-BquWP0Di.mjs.map → NcPasswordField-CTuWpUWd.mjs.map} +1 -1
  141. package/dist/chunks/{NcRadioGroup-CLtk-WPR.mjs → NcRadioGroup-HorQ2m39.mjs} +3 -3
  142. package/dist/chunks/{NcRadioGroup-CLtk-WPR.mjs.map → NcRadioGroup-HorQ2m39.mjs.map} +1 -1
  143. package/dist/chunks/{NcRadioGroupButton-CDA5i7Dq.mjs → NcRadioGroupButton-CAisx7g4.mjs} +3 -3
  144. package/dist/chunks/{NcRadioGroupButton-CDA5i7Dq.mjs.map → NcRadioGroupButton-CAisx7g4.mjs.map} +1 -1
  145. package/dist/chunks/{NcRelatedResourcesPanel-DPwZ4SSu.mjs → NcRelatedResourcesPanel-Dtxd3-o1.mjs} +7 -7
  146. package/dist/chunks/{NcRelatedResourcesPanel-DPwZ4SSu.mjs.map → NcRelatedResourcesPanel-Dtxd3-o1.mjs.map} +1 -1
  147. package/dist/chunks/{NcRichContenteditable-ClUiBH9B.mjs → NcRichContenteditable-Bq1NOBCE.mjs} +16 -11
  148. package/dist/chunks/{NcRichContenteditable-ClUiBH9B.mjs.map → NcRichContenteditable-Bq1NOBCE.mjs.map} +1 -1
  149. package/dist/chunks/{NcRichText-DamxfqDV.mjs → NcRichText-B6VwyPUp.mjs} +8 -7
  150. package/dist/chunks/NcRichText-B6VwyPUp.mjs.map +1 -0
  151. package/dist/chunks/{NcSelect-Ba00b95n.mjs → NcSelect-Cc9_a8nG.mjs} +8 -5
  152. package/dist/chunks/NcSelect-Cc9_a8nG.mjs.map +1 -0
  153. package/dist/chunks/{NcSelectTags-DAxQe-10.mjs → NcSelectTags-JyyA4W_e.mjs} +3 -3
  154. package/dist/chunks/{NcSelectTags-DAxQe-10.mjs.map → NcSelectTags-JyyA4W_e.mjs.map} +1 -1
  155. package/dist/chunks/{NcSelectUsers-DlE8EHdq.mjs → NcSelectUsers-CiTKYuOb.mjs} +3 -3
  156. package/dist/chunks/{NcSelectUsers-DlE8EHdq.mjs.map → NcSelectUsers-CiTKYuOb.mjs.map} +1 -1
  157. package/dist/chunks/{NcSettingsSection-BfK7eHNT.mjs → NcSettingsSection-BcLE6UnZ.mjs} +3 -3
  158. package/dist/chunks/{NcSettingsSection-BfK7eHNT.mjs.map → NcSettingsSection-BcLE6UnZ.mjs.map} +1 -1
  159. package/dist/chunks/{NcSettingsSelectGroup-CO8dnQ6q.mjs → NcSettingsSelectGroup-CUU-GWYl.mjs} +3 -3
  160. package/dist/chunks/{NcSettingsSelectGroup-CO8dnQ6q.mjs.map → NcSettingsSelectGroup-CUU-GWYl.mjs.map} +1 -1
  161. package/dist/chunks/{NcTextArea-Cr27-KiU.mjs → NcTextArea-2CifgNom.mjs} +6 -6
  162. package/dist/chunks/NcTextArea-2CifgNom.mjs.map +1 -0
  163. package/dist/chunks/{NcTextField.vue_vue_type_script_setup_true_lang-BNSMSqMx.mjs → NcTextField.vue_vue_type_script_setup_true_lang-BfjSL2EJ.mjs} +5 -5
  164. package/dist/chunks/{NcTextField.vue_vue_type_script_setup_true_lang-BNSMSqMx.mjs.map → NcTextField.vue_vue_type_script_setup_true_lang-BfjSL2EJ.mjs.map} +1 -1
  165. package/dist/chunks/{NcThemeProvider.vue_vue_type_script_setup_true_lang-nUDJsDGI.mjs → NcThemeProvider.vue_vue_type_script_setup_true_lang-DWn1DRTx.mjs} +2 -2
  166. package/dist/chunks/{NcThemeProvider.vue_vue_type_script_setup_true_lang-nUDJsDGI.mjs.map → NcThemeProvider.vue_vue_type_script_setup_true_lang-DWn1DRTx.mjs.map} +1 -1
  167. package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-CVehmrmz.mjs → NcTimezonePicker.vue_vue_type_script_setup_true_lang-BffYEppS.mjs} +5 -5
  168. package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-CVehmrmz.mjs.map → NcTimezonePicker.vue_vue_type_script_setup_true_lang-BffYEppS.mjs.map} +1 -1
  169. package/dist/chunks/{NcUserBubble-DEW575GR.mjs → NcUserBubble-CiB-Lu5C.mjs} +8 -8
  170. package/dist/chunks/NcUserBubble-CiB-Lu5C.mjs.map +1 -0
  171. package/dist/chunks/{NcUserStatusIcon-DHHqIgRK.mjs → NcUserStatusIcon-BgElapLh.mjs} +3 -3
  172. package/dist/chunks/{NcUserStatusIcon-DHHqIgRK.mjs.map → NcUserStatusIcon-BgElapLh.mjs.map} +1 -1
  173. package/dist/chunks/_l10n-CgsPi8nC.mjs +145 -0
  174. package/dist/chunks/_l10n-CgsPi8nC.mjs.map +1 -0
  175. package/dist/chunks/{actionText-DYzDdbVe.mjs → actionText-BXR0sWNu.mjs} +2 -2
  176. package/dist/chunks/{actionText-DYzDdbVe.mjs.map → actionText-BXR0sWNu.mjs.map} +1 -1
  177. package/dist/chunks/{colors-BM9KkzNS.mjs → colors-CL_wvNtd.mjs} +2 -2
  178. package/dist/chunks/{colors-BM9KkzNS.mjs.map → colors-CL_wvNtd.mjs.map} +1 -1
  179. package/dist/chunks/constants-Ciwvl5xb.mjs +11 -0
  180. package/dist/chunks/{constants-DrSznhwy.mjs.map → constants-Ciwvl5xb.mjs.map} +1 -1
  181. package/dist/chunks/{constants-Bls5liKo.mjs → constants-wIEKSp2G.mjs} +2 -2
  182. package/dist/chunks/{constants-Bls5liKo.mjs.map → constants-wIEKSp2G.mjs.map} +1 -1
  183. package/dist/chunks/{mdi-HQ-WBPmL.mjs → mdi-DvQxv1t7.mjs} +20 -20
  184. package/dist/chunks/{mdi-HQ-WBPmL.mjs.map → mdi-DvQxv1t7.mjs.map} +1 -1
  185. package/dist/chunks/{referencePickerModal-f8STnNvS.mjs → referencePickerModal-CDHqLZC-.mjs} +8 -8
  186. package/dist/chunks/{referencePickerModal-f8STnNvS.mjs.map → referencePickerModal-CDHqLZC-.mjs.map} +1 -1
  187. package/dist/chunks/useAppSettingsDialog-C73Wx6iQ.mjs +12 -0
  188. package/dist/chunks/{useAppSettingsDialog-DbtEkXa4.mjs.map → useAppSettingsDialog-C73Wx6iQ.mjs.map} +1 -1
  189. package/dist/chunks/{useCopy-pTWmSjcP.mjs → useCopy-D3yAxBJi.mjs} +3 -3
  190. package/dist/chunks/{useCopy-pTWmSjcP.mjs.map → useCopy-D3yAxBJi.mjs.map} +1 -1
  191. package/dist/chunks/useNcActions-BzPO2c4h.mjs +7 -0
  192. package/dist/chunks/{useNcActions-CiGWxAJE.mjs.map → useNcActions-BzPO2c4h.mjs.map} +1 -1
  193. package/dist/chunks/{useNcFormBox-DA9iwXWY.mjs → useNcFormBox-Djlh582y.mjs} +2 -2
  194. package/dist/chunks/{useNcFormBox-DA9iwXWY.mjs.map → useNcFormBox-Djlh582y.mjs.map} +1 -1
  195. package/dist/chunks/{useNcRadioGroup-DaZbEKbf.mjs → useNcRadioGroup-D6llQmAl.mjs} +2 -2
  196. package/dist/chunks/{useNcRadioGroup-DaZbEKbf.mjs.map → useNcRadioGroup-D6llQmAl.mjs.map} +1 -1
  197. package/dist/components/NcActionButton/index.mjs +1 -1
  198. package/dist/components/NcActionButtonGroup/index.mjs +1 -1
  199. package/dist/components/NcActionCaption/index.mjs +1 -1
  200. package/dist/components/NcActionCheckbox/index.mjs +1 -1
  201. package/dist/components/NcActionInput/NcActionInput.vue.d.ts +6 -5
  202. package/dist/components/NcActionInput/index.mjs +1 -1
  203. package/dist/components/NcActionLink/index.mjs +1 -1
  204. package/dist/components/NcActionRadio/index.mjs +1 -1
  205. package/dist/components/NcActionRouter/index.mjs +1 -1
  206. package/dist/components/NcActionText/index.mjs +1 -1
  207. package/dist/components/NcActionTextEditable/index.mjs +1 -1
  208. package/dist/components/NcActions/index.mjs +1 -1
  209. package/dist/components/NcAppContent/index.mjs +1 -1
  210. package/dist/components/NcAppNavigation/index.mjs +1 -1
  211. package/dist/components/NcAppNavigationCaption/index.mjs +1 -1
  212. package/dist/components/NcAppNavigationItem/index.mjs +1 -1
  213. package/dist/components/NcAppNavigationNew/index.mjs +1 -1
  214. package/dist/components/NcAppNavigationNewItem/index.mjs +1 -1
  215. package/dist/components/NcAppNavigationSearch/index.mjs +1 -1
  216. package/dist/components/NcAppNavigationSettings/index.mjs +1 -1
  217. package/dist/components/NcAppSettingsDialog/index.mjs +1 -1
  218. package/dist/components/NcAppSettingsSection/index.mjs +1 -1
  219. package/dist/components/NcAppSettingsSectionShortcuts/index.mjs +1 -1
  220. package/dist/components/NcAppSettingsShortcutsSection/index.mjs +1 -1
  221. package/dist/components/NcAppSidebar/index.mjs +1 -1
  222. package/dist/components/NcAssistantButton/index.mjs +1 -1
  223. package/dist/components/NcAssistantIcon/index.mjs +1 -1
  224. package/dist/components/NcAvatar/NcAvatar.vue.d.ts +2 -2
  225. package/dist/components/NcAvatar/index.mjs +1 -1
  226. package/dist/components/NcBreadcrumb/index.mjs +1 -1
  227. package/dist/components/NcBreadcrumbs/index.mjs +1 -1
  228. package/dist/components/NcButton/index.mjs +1 -1
  229. package/dist/components/NcCheckboxRadioSwitch/index.mjs +1 -1
  230. package/dist/components/NcChip/index.mjs +1 -1
  231. package/dist/components/NcCollectionList/NcCollectionList.vue.d.ts +5 -4
  232. package/dist/components/NcCollectionList/NcCollectionListItem.vue.d.ts +2 -2
  233. package/dist/components/NcCollectionList/index.mjs +1 -1
  234. package/dist/components/NcColorPicker/index.mjs +1 -1
  235. package/dist/components/NcContent/index.mjs +1 -1
  236. package/dist/components/NcDashboardWidget/NcDashboardWidget.vue.d.ts +4 -4
  237. package/dist/components/NcDashboardWidget/index.mjs +1 -1
  238. package/dist/components/NcDashboardWidgetItem/NcDashboardWidgetItem.vue.d.ts +2 -2
  239. package/dist/components/NcDashboardWidgetItem/index.mjs +1 -1
  240. package/dist/components/NcDateTime/NcDateTime.vue.d.ts +1 -1
  241. package/dist/components/NcDateTimePicker/NcDateTimePicker.vue.d.ts +5 -5
  242. package/dist/components/NcDateTimePicker/index.mjs +1 -1
  243. package/dist/components/NcDateTimePickerNative/index.mjs +1 -1
  244. package/dist/components/NcDialog/NcDialog.vue.d.ts +1 -1
  245. package/dist/components/NcDialog/index.mjs +1 -1
  246. package/dist/components/NcDialogButton/index.mjs +1 -1
  247. package/dist/components/NcEmojiPicker/index.mjs +1 -1
  248. package/dist/components/NcFormBox/index.mjs +1 -1
  249. package/dist/components/NcFormBoxButton/index.mjs +1 -1
  250. package/dist/components/NcFormBoxCopyButton/index.mjs +1 -1
  251. package/dist/components/NcFormBoxSwitch/index.mjs +1 -1
  252. package/dist/components/NcHeaderButton/index.mjs +1 -1
  253. package/dist/components/NcHeaderMenu/index.mjs +1 -1
  254. package/dist/components/NcHotkey/index.mjs +1 -1
  255. package/dist/components/NcHotkeyList/index.mjs +1 -1
  256. package/dist/components/NcIconToggleSwitch/NcIconToggleSwitch.vue.d.ts +16 -0
  257. package/dist/components/NcInputField/index.mjs +1 -1
  258. package/dist/components/NcKbd/index.mjs +1 -1
  259. package/dist/components/NcListItem/index.mjs +1 -1
  260. package/dist/components/NcListItemIcon/NcListItemIcon.vue.d.ts +2 -2
  261. package/dist/components/NcListItemIcon/index.mjs +1 -1
  262. package/dist/components/NcModal/NcModal.vue.d.ts +151 -1
  263. package/dist/components/NcModal/index.d.ts +4 -0
  264. package/dist/components/NcModal/index.mjs +1 -1
  265. package/dist/components/NcNoteCard/index.mjs +1 -1
  266. package/dist/components/NcPasswordField/index.mjs +1 -1
  267. package/dist/components/NcRadioGroup/index.mjs +1 -1
  268. package/dist/components/NcRadioGroupButton/index.mjs +1 -1
  269. package/dist/components/NcRelatedResourcesPanel/index.mjs +1 -1
  270. package/dist/components/NcRichContenteditable/NcAutoCompleteResult.vue.d.ts +2 -2
  271. package/dist/components/NcRichContenteditable/index.mjs +1 -1
  272. package/dist/components/NcRichText/NcReferenceList.vue.d.ts +2 -2
  273. package/dist/components/NcRichText/NcReferencePicker/NcProviderList.vue.d.ts +1 -0
  274. package/dist/components/NcRichText/NcReferencePicker/NcReferencePicker.vue.d.ts +2 -0
  275. package/dist/components/NcRichText/NcReferencePicker/NcReferencePickerModal.vue.d.ts +146 -1
  276. package/dist/components/NcRichText/NcReferencePicker/NcSearch.vue.d.ts +1 -0
  277. package/dist/components/NcRichText/index.mjs +3 -3
  278. package/dist/components/NcSelect/NcSelect.vue.d.ts +1 -0
  279. package/dist/components/NcSelect/index.mjs +1 -1
  280. package/dist/components/NcSelectTags/NcSelectTags.vue.d.ts +1 -0
  281. package/dist/components/NcSelectTags/index.mjs +1 -1
  282. package/dist/components/NcSelectUsers/index.mjs +1 -1
  283. package/dist/components/NcSettingsSection/index.mjs +1 -1
  284. package/dist/components/NcSettingsSelectGroup/NcSettingsSelectGroup.vue.d.ts +1 -0
  285. package/dist/components/NcSettingsSelectGroup/index.mjs +1 -1
  286. package/dist/components/NcTextArea/index.mjs +1 -1
  287. package/dist/components/NcTextField/index.mjs +1 -1
  288. package/dist/components/NcThemeProvider/index.mjs +1 -1
  289. package/dist/components/NcTimezonePicker/index.mjs +1 -1
  290. package/dist/components/NcUserBubble/index.mjs +1 -1
  291. package/dist/components/NcUserStatusIcon/NcUserStatusIcon.vue.d.ts +2 -2
  292. package/dist/components/NcUserStatusIcon/index.mjs +1 -1
  293. package/dist/components/index.d.ts +1 -1
  294. package/dist/composables/useFormatDateTime/index.mjs +1 -1
  295. package/dist/composables/useHotKey/index.d.ts +7 -0
  296. package/dist/composables/useHotKey/index.mjs +6 -3
  297. package/dist/composables/useHotKey/index.mjs.map +1 -1
  298. package/dist/composables/useIsDarkTheme/index.mjs +1 -1
  299. package/dist/composables/useScopeIdAttrs.d.ts +26 -0
  300. package/dist/functions/reference/index.mjs +1 -1
  301. package/dist/functions/usernameToColor/index.mjs +1 -1
  302. package/dist/index.mjs +74 -74
  303. package/package.json +27 -27
  304. package/dist/chunks/NcActionButton-DCWUru2b.mjs.map +0 -1
  305. package/dist/chunks/NcActionButtonGroup-QgGuZcPA.mjs.map +0 -1
  306. package/dist/chunks/NcActionInput-Bw4UxfFB.mjs.map +0 -1
  307. package/dist/chunks/NcActionLink-afakPM_N.mjs.map +0 -1
  308. package/dist/chunks/NcActionTextEditable-BQXCci7D.mjs.map +0 -1
  309. package/dist/chunks/NcActions-B0kM6AYb.mjs.map +0 -1
  310. package/dist/chunks/NcButton-ZNHdqKQl.mjs.map +0 -1
  311. package/dist/chunks/NcCheckboxRadioSwitch-6ty3DxEG.mjs.map +0 -1
  312. package/dist/chunks/NcCollectionList-Ds-tmckn.mjs.map +0 -1
  313. package/dist/chunks/NcFormBox-K2tCRm3B.mjs.map +0 -1
  314. package/dist/chunks/NcFormBoxSwitch-E6Ei7MFo.mjs.map +0 -1
  315. package/dist/chunks/NcInputField-z8wpYKt2.mjs.map +0 -1
  316. package/dist/chunks/NcModal-DZtBQM1y.mjs +0 -778
  317. package/dist/chunks/NcModal-DZtBQM1y.mjs.map +0 -1
  318. package/dist/chunks/NcRichText-DamxfqDV.mjs.map +0 -1
  319. package/dist/chunks/NcSelect-Ba00b95n.mjs.map +0 -1
  320. package/dist/chunks/NcTextArea-Cr27-KiU.mjs.map +0 -1
  321. package/dist/chunks/NcUserBubble-DEW575GR.mjs.map +0 -1
  322. package/dist/chunks/_l10n-CWKr1fUH.mjs +0 -109
  323. package/dist/chunks/_l10n-CWKr1fUH.mjs.map +0 -1
  324. package/dist/chunks/constants-DrSznhwy.mjs +0 -11
  325. package/dist/chunks/useAppSettingsDialog-DbtEkXa4.mjs +0 -12
  326. package/dist/chunks/useNcActions-CiGWxAJE.mjs +0 -7
  327. package/dist/utils/Timer.d.ts +0 -25
@@ -22,6 +22,13 @@ export interface UseHotKeyOptions {
22
22
  * Undefined will be handled the same as `false` and will only run the callback if the 'alt' key is NOT pressed.
23
23
  */
24
24
  alt?: boolean;
25
+ /**
26
+ * Allow hot key to trigger even if a modal/dialog is open.
27
+ * By default this is disabled to not trigger hot keys in apps if they are overlaid by a modal/dialog.
28
+ *
29
+ * @default false
30
+ */
31
+ allowInModal?: boolean;
25
32
  }
26
33
  type KeyboardEventHandler = (event: KeyboardEvent) => void;
27
34
  /**
@@ -3,11 +3,14 @@ import { i as isMac } from "../../chunks/platform-CC2ecGvV.mjs";
3
3
  const disableKeyboardShortcuts = window.OCP?.Accessibility?.disableKeyboardShortcuts?.();
4
4
  const derivedKeysRegex = /^[a-zA-Z0-9]$/;
5
5
  const nonAsciiPrintableRegex = /^[^\x20-\x7F]$/;
6
- function shouldIgnoreEvent(event) {
6
+ function shouldIgnoreEvent(event, options) {
7
7
  if (!(event.target instanceof HTMLElement) || event.target instanceof HTMLInputElement || event.target instanceof HTMLTextAreaElement || event.target instanceof HTMLSelectElement || event.target.isContentEditable) {
8
8
  return true;
9
9
  }
10
- return document.getElementsByClassName("modal-mask").length !== 0;
10
+ if (options.allowInModal) {
11
+ return false;
12
+ }
13
+ return Array.from(document.getElementsByClassName("modal-mask")).filter((el) => el.checkVisibility()).length > 0;
11
14
  }
12
15
  function eventHandler(callback, options) {
13
16
  return (event) => {
@@ -18,7 +21,7 @@ function eventHandler(callback, options) {
18
21
  return;
19
22
  } else if (options.shift !== void 0 && event.shiftKey !== Boolean(options.shift)) {
20
23
  return;
21
- } else if (shouldIgnoreEvent(event)) {
24
+ } else if (shouldIgnoreEvent(event, options)) {
22
25
  return;
23
26
  }
24
27
  if (options.prevent) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/composables/useHotKey/index.ts"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { onKeyStroke } from '@vueuse/core'\nimport { isMac } from '../../utils/platform.ts'\n\nconst disableKeyboardShortcuts = window.OCP?.Accessibility?.disableKeyboardShortcuts?.()\nconst derivedKeysRegex = /^[a-zA-Z0-9]$/\nconst nonAsciiPrintableRegex = /^[^\\x20-\\x7F]$/\n\nexport interface UseHotKeyOptions {\n\t/** Make key filter case sensitive */\n\tcaseSensitive?: boolean\n\n\t/** Prevent default behavior of key stroke */\n\tprevent?: boolean\n\n\t/** Stop the event bubbling */\n\tstop?: boolean\n\n\t/** Also listen for keyup event */\n\tpush?: boolean\n\n\t/**\n\t * If set then the callback is only called when the shift key is (not) pressed.\n\t * When left `undefined` a pressed shift key is ignored (callback is run with and without shift pressed).\n\t */\n\tshift?: boolean\n\n\t/**\n\t * Only run the callback if the control key is (not-)pressed.\n\t * Undefined will be handled the same as `false` and will only run the callback if the 'ctrl' key is NOT pressed.\n\t */\n\tctrl?: boolean\n\n\t/**\n\t * If set the callback is only executed if the alt key is (not-)pressed\n\t * Undefined will be handled the same as `false` and will only run the callback if the 'alt' key is NOT pressed.\n\t */\n\talt?: boolean\n}\n\n/**\n * Check if event target (active element) is editable (allows input from keyboard) or NcModal is open\n * If true, a hot key should not trigger the callback\n *\n * @todo Discuss if we should abort on another interactive elements (button, a, e.t.c)\n *\n * @param event keyboard event\n * @return Whether it should prevent callback\n */\nfunction shouldIgnoreEvent(event: KeyboardEvent): boolean {\n\tif (!(event.target instanceof HTMLElement)\n\t\t|| event.target instanceof HTMLInputElement\n\t\t|| event.target instanceof HTMLTextAreaElement\n\t\t|| event.target instanceof HTMLSelectElement\n\t\t|| event.target.isContentEditable) {\n\t\treturn true\n\t}\n\t/** Abort if any modal/dialog opened */\n\treturn document.getElementsByClassName('modal-mask').length !== 0\n}\n\ntype KeyboardEventHandler = (event: KeyboardEvent) => void\n\n/**\n * Implementation of the event handler.\n *\n * @param callback The callback to run\n * @param options hot key options\n */\nfunction eventHandler(callback: KeyboardEventHandler, options: UseHotKeyOptions): KeyboardEventHandler {\n\treturn (event: KeyboardEvent) => {\n\t\tconst ctrlKeyPressed = isMac ? event.metaKey : event.ctrlKey\n\t\tif (ctrlKeyPressed !== Boolean(options.ctrl)) {\n\t\t\t/**\n\t\t\t * Ctrl is required and not pressed, or the opposite\n\t\t\t * As on macOS 'cmd' key is used instead of 'ctrl' key for most key combinations,\n\t\t\t * 'event.metaKey' should be checked\n\t\t\t */\n\t\t\treturn\n\t\t} else if (event.altKey !== Boolean(options.alt)) {\n\t\t\t// Alt is required and not pressed, or the opposite\n\t\t\treturn\n\t\t} else if (options.shift !== undefined && event.shiftKey !== Boolean(options.shift)) {\n\t\t\t/**\n\t\t\t * Shift is required and not pressed, or the opposite\n\t\t\t * As shift key is used to type capital letters and alternate characters,\n\t\t\t * option should be explicitly defined\n\t\t\t */\n\t\t\treturn\n\t\t} else if (shouldIgnoreEvent(event)) {\n\t\t\t// Keyboard shortcuts are disabled, because active element assumes input\n\t\t\treturn\n\t\t}\n\n\t\tif (options.prevent) {\n\t\t\tevent.preventDefault()\n\t\t}\n\t\tif (options.stop) {\n\t\t\tevent.stopPropagation()\n\t\t}\n\t\tcallback(event)\n\t}\n}\n\n/**\n * Composable to use keyboard shortcuts in the application.\n * It respects the users accessibility configuration (opt-out shortcuts).\n *\n * @param keysOrFilter - keyboard key(s) to listen to, or filter function or pass `true` for listening to all keys\n * @param callback - callback function\n * @param options - composable options\n * @see docs/composables/useHotKey.md\n */\nexport function useHotKey(\n\tkeysOrFilter: true | string | string[] | ((e: KeyboardEvent) => boolean),\n\tcallback: KeyboardEventHandler = () => {},\n\toptions: UseHotKeyOptions = {},\n) {\n\tif (disableKeyboardShortcuts) {\n\t\t// Keyboard shortcuts are disabled\n\t\treturn () => {}\n\t}\n\n\t/**\n\t * Validates event key to expected key\n\t *\n\t * @param event keyboard event\n\t * @param key expected key\n\t * @return whether it satisfies expected value or not\n\t */\n\tconst validateKeyEvent = (event: KeyboardEvent, key: string): boolean => {\n\t\t// If key exactly matches event.key, valid with any caseSensitive option. Do not perform further checks\n\t\tif (event.key === key) {\n\t\t\treturn true\n\t\t}\n\n\t\t// If key and event.key are in different cases, invalid with caseSensitive = true. Do not perform further checks\n\t\tif (options.caseSensitive) {\n\t\t\tconst isKeyInLowerCase = key === key.toLowerCase()\n\t\t\tconst isEventKeyInLowerCase = event.key === event.key.toLowerCase()\n\t\t\tif (isKeyInLowerCase !== isEventKeyInLowerCase) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// If received event.key is not a printable ASCII character code (character code 32-127),\n\t\t// try to derive it from event.code and match with expected key\n\t\tif (derivedKeysRegex.test(key) && nonAsciiPrintableRegex.test(event.key)) {\n\t\t\treturn event.code.replace(/^(?:Key|Digit|Numpad)/, '') === key.toUpperCase()\n\t\t}\n\n\t\treturn event.key.toLowerCase() === key.toLowerCase()\n\t}\n\n\t/**\n\t * Filter function for the listener\n\t * see https://github.com/vueuse/vueuse/blob/v11.3.0/packages/core/onKeyStroke/index.ts#L21-L32\n\t *\n\t * @param event keyboard event\n\t * @return Whether it satisfies expected value or not\n\t */\n\tconst keyFilter = (event: KeyboardEvent): boolean => {\n\t\tif (typeof keysOrFilter === 'function') {\n\t\t\treturn keysOrFilter(event)\n\t\t} else if (typeof keysOrFilter === 'string') {\n\t\t\treturn validateKeyEvent(event, keysOrFilter)\n\t\t} else if (Array.isArray(keysOrFilter)) {\n\t\t\treturn keysOrFilter.some((key) => validateKeyEvent(event, key))\n\t\t} else {\n\t\t\treturn true\n\t\t}\n\t}\n\n\tconst stopKeyDown = onKeyStroke(keyFilter, eventHandler(callback, options), {\n\t\teventName: 'keydown',\n\t\tdedupe: true,\n\t\tpassive: !options.prevent,\n\t})\n\n\tconst stopKeyUp = options.push\n\t\t? onKeyStroke(keyFilter, eventHandler(callback, options), {\n\t\t\t\teventName: 'keyup',\n\t\t\t\tpassive: !options.prevent,\n\t\t\t})\n\t\t: () => {}\n\n\treturn () => {\n\t\tstopKeyDown()\n\t\tstopKeyUp()\n\t}\n}\n"],"names":[],"mappings":";;AAOA,MAAM,2BAA2B,OAAO,KAAK,eAAe,2BAAA;AAC5D,MAAM,mBAAmB;AACzB,MAAM,yBAAyB;AA2C/B,SAAS,kBAAkB,OAA+B;AACzD,MAAI,EAAE,MAAM,kBAAkB,gBAC1B,MAAM,kBAAkB,oBACxB,MAAM,kBAAkB,uBACxB,MAAM,kBAAkB,qBACxB,MAAM,OAAO,mBAAmB;AACnC,WAAO;AAAA,EACR;AAEA,SAAO,SAAS,uBAAuB,YAAY,EAAE,WAAW;AACjE;AAUA,SAAS,aAAa,UAAgC,SAAiD;AACtG,SAAO,CAAC,UAAyB;AAChC,UAAM,iBAAiB,QAAQ,MAAM,UAAU,MAAM;AACrD,QAAI,mBAAmB,QAAQ,QAAQ,IAAI,GAAG;AAM7C;AAAA,IACD,WAAW,MAAM,WAAW,QAAQ,QAAQ,GAAG,GAAG;AAEjD;AAAA,IACD,WAAW,QAAQ,UAAU,UAAa,MAAM,aAAa,QAAQ,QAAQ,KAAK,GAAG;AAMpF;AAAA,IACD,WAAW,kBAAkB,KAAK,GAAG;AAEpC;AAAA,IACD;AAEA,QAAI,QAAQ,SAAS;AACpB,YAAM,eAAA;AAAA,IACP;AACA,QAAI,QAAQ,MAAM;AACjB,YAAM,gBAAA;AAAA,IACP;AACA,aAAS,KAAK;AAAA,EACf;AACD;AAWO,SAAS,UACf,cACA,WAAiC,MAAM;AAAC,GACxC,UAA4B,CAAA,GAC3B;AACD,MAAI,0BAA0B;AAE7B,WAAO,MAAM;AAAA,IAAC;AAAA,EACf;AASA,QAAM,mBAAmB,CAAC,OAAsB,QAAyB;AAExE,QAAI,MAAM,QAAQ,KAAK;AACtB,aAAO;AAAA,IACR;AAGA,QAAI,QAAQ,eAAe;AAC1B,YAAM,mBAAmB,QAAQ,IAAI,YAAA;AACrC,YAAM,wBAAwB,MAAM,QAAQ,MAAM,IAAI,YAAA;AACtD,UAAI,qBAAqB,uBAAuB;AAC/C,eAAO;AAAA,MACR;AAAA,IACD;AAIA,QAAI,iBAAiB,KAAK,GAAG,KAAK,uBAAuB,KAAK,MAAM,GAAG,GAAG;AACzE,aAAO,MAAM,KAAK,QAAQ,yBAAyB,EAAE,MAAM,IAAI,YAAA;AAAA,IAChE;AAEA,WAAO,MAAM,IAAI,YAAA,MAAkB,IAAI,YAAA;AAAA,EACxC;AASA,QAAM,YAAY,CAAC,UAAkC;AACpD,QAAI,OAAO,iBAAiB,YAAY;AACvC,aAAO,aAAa,KAAK;AAAA,IAC1B,WAAW,OAAO,iBAAiB,UAAU;AAC5C,aAAO,iBAAiB,OAAO,YAAY;AAAA,IAC5C,WAAW,MAAM,QAAQ,YAAY,GAAG;AACvC,aAAO,aAAa,KAAK,CAAC,QAAQ,iBAAiB,OAAO,GAAG,CAAC;AAAA,IAC/D,OAAO;AACN,aAAO;AAAA,IACR;AAAA,EACD;AAEA,QAAM,cAAc,YAAY,WAAW,aAAa,UAAU,OAAO,GAAG;AAAA,IAC3E,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,SAAS,CAAC,QAAQ;AAAA,EAAA,CAClB;AAED,QAAM,YAAY,QAAQ,OACvB,YAAY,WAAW,aAAa,UAAU,OAAO,GAAG;AAAA,IACxD,WAAW;AAAA,IACX,SAAS,CAAC,QAAQ;AAAA,EAAA,CAClB,IACA,MAAM;AAAA,EAAC;AAEV,SAAO,MAAM;AACZ,gBAAA;AACA,cAAA;AAAA,EACD;AACD;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/composables/useHotKey/index.ts"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { onKeyStroke } from '@vueuse/core'\nimport { isMac } from '../../utils/platform.ts'\n\nconst disableKeyboardShortcuts = window.OCP?.Accessibility?.disableKeyboardShortcuts?.()\nconst derivedKeysRegex = /^[a-zA-Z0-9]$/\nconst nonAsciiPrintableRegex = /^[^\\x20-\\x7F]$/\n\nexport interface UseHotKeyOptions {\n\t/** Make key filter case sensitive */\n\tcaseSensitive?: boolean\n\n\t/** Prevent default behavior of key stroke */\n\tprevent?: boolean\n\n\t/** Stop the event bubbling */\n\tstop?: boolean\n\n\t/** Also listen for keyup event */\n\tpush?: boolean\n\n\t/**\n\t * If set then the callback is only called when the shift key is (not) pressed.\n\t * When left `undefined` a pressed shift key is ignored (callback is run with and without shift pressed).\n\t */\n\tshift?: boolean\n\n\t/**\n\t * Only run the callback if the control key is (not-)pressed.\n\t * Undefined will be handled the same as `false` and will only run the callback if the 'ctrl' key is NOT pressed.\n\t */\n\tctrl?: boolean\n\n\t/**\n\t * If set the callback is only executed if the alt key is (not-)pressed\n\t * Undefined will be handled the same as `false` and will only run the callback if the 'alt' key is NOT pressed.\n\t */\n\talt?: boolean\n\n\t/**\n\t * Allow hot key to trigger even if a modal/dialog is open.\n\t * By default this is disabled to not trigger hot keys in apps if they are overlaid by a modal/dialog.\n\t *\n\t * @default false\n\t */\n\tallowInModal?: boolean\n}\n\n/**\n * Check if event target (active element) is editable (allows input from keyboard) or NcModal is open\n * If true, a hot key should not trigger the callback\n *\n * @todo Discuss if we should abort on another interactive elements (button, a, e.t.c)\n *\n * @param event - The keyboard event\n * @param options - The hot key options\n * @return Whether it should prevent callback\n */\nfunction shouldIgnoreEvent(event: KeyboardEvent, options: UseHotKeyOptions): boolean {\n\tif (!(event.target instanceof HTMLElement)\n\t\t|| event.target instanceof HTMLInputElement\n\t\t|| event.target instanceof HTMLTextAreaElement\n\t\t|| event.target instanceof HTMLSelectElement\n\t\t|| event.target.isContentEditable) {\n\t\treturn true\n\t}\n\n\tif (options.allowInModal) {\n\t\treturn false\n\t}\n\n\t/** Abort if any modal/dialog is opened AND visible */\n\treturn Array.from(document.getElementsByClassName('modal-mask'))\n\t\t.filter((el) => el.checkVisibility())\n\t\t.length > 0\n}\n\ntype KeyboardEventHandler = (event: KeyboardEvent) => void\n\n/**\n * Implementation of the event handler.\n *\n * @param callback The callback to run\n * @param options hot key options\n */\nfunction eventHandler(callback: KeyboardEventHandler, options: UseHotKeyOptions): KeyboardEventHandler {\n\treturn (event: KeyboardEvent) => {\n\t\tconst ctrlKeyPressed = isMac ? event.metaKey : event.ctrlKey\n\t\tif (ctrlKeyPressed !== Boolean(options.ctrl)) {\n\t\t\t/**\n\t\t\t * Ctrl is required and not pressed, or the opposite\n\t\t\t * As on macOS 'cmd' key is used instead of 'ctrl' key for most key combinations,\n\t\t\t * 'event.metaKey' should be checked\n\t\t\t */\n\t\t\treturn\n\t\t} else if (event.altKey !== Boolean(options.alt)) {\n\t\t\t// Alt is required and not pressed, or the opposite\n\t\t\treturn\n\t\t} else if (options.shift !== undefined && event.shiftKey !== Boolean(options.shift)) {\n\t\t\t/**\n\t\t\t * Shift is required and not pressed, or the opposite\n\t\t\t * As shift key is used to type capital letters and alternate characters,\n\t\t\t * option should be explicitly defined\n\t\t\t */\n\t\t\treturn\n\t\t} else if (shouldIgnoreEvent(event, options)) {\n\t\t\t// Keyboard shortcuts are disabled, because active element assumes input\n\t\t\treturn\n\t\t}\n\n\t\tif (options.prevent) {\n\t\t\tevent.preventDefault()\n\t\t}\n\t\tif (options.stop) {\n\t\t\tevent.stopPropagation()\n\t\t}\n\t\tcallback(event)\n\t}\n}\n\n/**\n * Composable to use keyboard shortcuts in the application.\n * It respects the users accessibility configuration (opt-out shortcuts).\n *\n * @param keysOrFilter - keyboard key(s) to listen to, or filter function or pass `true` for listening to all keys\n * @param callback - callback function\n * @param options - composable options\n * @see docs/composables/useHotKey.md\n */\nexport function useHotKey(\n\tkeysOrFilter: true | string | string[] | ((e: KeyboardEvent) => boolean),\n\tcallback: KeyboardEventHandler = () => {},\n\toptions: UseHotKeyOptions = {},\n) {\n\tif (disableKeyboardShortcuts) {\n\t\t// Keyboard shortcuts are disabled\n\t\treturn () => {}\n\t}\n\n\t/**\n\t * Validates event key to expected key\n\t *\n\t * @param event keyboard event\n\t * @param key expected key\n\t * @return whether it satisfies expected value or not\n\t */\n\tconst validateKeyEvent = (event: KeyboardEvent, key: string): boolean => {\n\t\t// If key exactly matches event.key, valid with any caseSensitive option. Do not perform further checks\n\t\tif (event.key === key) {\n\t\t\treturn true\n\t\t}\n\n\t\t// If key and event.key are in different cases, invalid with caseSensitive = true. Do not perform further checks\n\t\tif (options.caseSensitive) {\n\t\t\tconst isKeyInLowerCase = key === key.toLowerCase()\n\t\t\tconst isEventKeyInLowerCase = event.key === event.key.toLowerCase()\n\t\t\tif (isKeyInLowerCase !== isEventKeyInLowerCase) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t// If received event.key is not a printable ASCII character code (character code 32-127),\n\t\t// try to derive it from event.code and match with expected key\n\t\tif (derivedKeysRegex.test(key) && nonAsciiPrintableRegex.test(event.key)) {\n\t\t\treturn event.code.replace(/^(?:Key|Digit|Numpad)/, '') === key.toUpperCase()\n\t\t}\n\n\t\treturn event.key.toLowerCase() === key.toLowerCase()\n\t}\n\n\t/**\n\t * Filter function for the listener\n\t * see https://github.com/vueuse/vueuse/blob/v11.3.0/packages/core/onKeyStroke/index.ts#L21-L32\n\t *\n\t * @param event keyboard event\n\t * @return Whether it satisfies expected value or not\n\t */\n\tconst keyFilter = (event: KeyboardEvent): boolean => {\n\t\tif (typeof keysOrFilter === 'function') {\n\t\t\treturn keysOrFilter(event)\n\t\t} else if (typeof keysOrFilter === 'string') {\n\t\t\treturn validateKeyEvent(event, keysOrFilter)\n\t\t} else if (Array.isArray(keysOrFilter)) {\n\t\t\treturn keysOrFilter.some((key) => validateKeyEvent(event, key))\n\t\t} else {\n\t\t\treturn true\n\t\t}\n\t}\n\n\tconst stopKeyDown = onKeyStroke(keyFilter, eventHandler(callback, options), {\n\t\teventName: 'keydown',\n\t\tdedupe: true,\n\t\tpassive: !options.prevent,\n\t})\n\n\tconst stopKeyUp = options.push\n\t\t? onKeyStroke(keyFilter, eventHandler(callback, options), {\n\t\t\t\teventName: 'keyup',\n\t\t\t\tpassive: !options.prevent,\n\t\t\t})\n\t\t: () => {}\n\n\treturn () => {\n\t\tstopKeyDown()\n\t\tstopKeyUp()\n\t}\n}\n"],"names":[],"mappings":";;AAOA,MAAM,2BAA2B,OAAO,KAAK,eAAe,2BAAA;AAC5D,MAAM,mBAAmB;AACzB,MAAM,yBAAyB;AAoD/B,SAAS,kBAAkB,OAAsB,SAAoC;AACpF,MAAI,EAAE,MAAM,kBAAkB,gBAC1B,MAAM,kBAAkB,oBACxB,MAAM,kBAAkB,uBACxB,MAAM,kBAAkB,qBACxB,MAAM,OAAO,mBAAmB;AACnC,WAAO;AAAA,EACR;AAEA,MAAI,QAAQ,cAAc;AACzB,WAAO;AAAA,EACR;AAGA,SAAO,MAAM,KAAK,SAAS,uBAAuB,YAAY,CAAC,EAC7D,OAAO,CAAC,OAAO,GAAG,gBAAA,CAAiB,EACnC,SAAS;AACZ;AAUA,SAAS,aAAa,UAAgC,SAAiD;AACtG,SAAO,CAAC,UAAyB;AAChC,UAAM,iBAAiB,QAAQ,MAAM,UAAU,MAAM;AACrD,QAAI,mBAAmB,QAAQ,QAAQ,IAAI,GAAG;AAM7C;AAAA,IACD,WAAW,MAAM,WAAW,QAAQ,QAAQ,GAAG,GAAG;AAEjD;AAAA,IACD,WAAW,QAAQ,UAAU,UAAa,MAAM,aAAa,QAAQ,QAAQ,KAAK,GAAG;AAMpF;AAAA,IACD,WAAW,kBAAkB,OAAO,OAAO,GAAG;AAE7C;AAAA,IACD;AAEA,QAAI,QAAQ,SAAS;AACpB,YAAM,eAAA;AAAA,IACP;AACA,QAAI,QAAQ,MAAM;AACjB,YAAM,gBAAA;AAAA,IACP;AACA,aAAS,KAAK;AAAA,EACf;AACD;AAWO,SAAS,UACf,cACA,WAAiC,MAAM;AAAC,GACxC,UAA4B,CAAA,GAC3B;AACD,MAAI,0BAA0B;AAE7B,WAAO,MAAM;AAAA,IAAC;AAAA,EACf;AASA,QAAM,mBAAmB,CAAC,OAAsB,QAAyB;AAExE,QAAI,MAAM,QAAQ,KAAK;AACtB,aAAO;AAAA,IACR;AAGA,QAAI,QAAQ,eAAe;AAC1B,YAAM,mBAAmB,QAAQ,IAAI,YAAA;AACrC,YAAM,wBAAwB,MAAM,QAAQ,MAAM,IAAI,YAAA;AACtD,UAAI,qBAAqB,uBAAuB;AAC/C,eAAO;AAAA,MACR;AAAA,IACD;AAIA,QAAI,iBAAiB,KAAK,GAAG,KAAK,uBAAuB,KAAK,MAAM,GAAG,GAAG;AACzE,aAAO,MAAM,KAAK,QAAQ,yBAAyB,EAAE,MAAM,IAAI,YAAA;AAAA,IAChE;AAEA,WAAO,MAAM,IAAI,YAAA,MAAkB,IAAI,YAAA;AAAA,EACxC;AASA,QAAM,YAAY,CAAC,UAAkC;AACpD,QAAI,OAAO,iBAAiB,YAAY;AACvC,aAAO,aAAa,KAAK;AAAA,IAC1B,WAAW,OAAO,iBAAiB,UAAU;AAC5C,aAAO,iBAAiB,OAAO,YAAY;AAAA,IAC5C,WAAW,MAAM,QAAQ,YAAY,GAAG;AACvC,aAAO,aAAa,KAAK,CAAC,QAAQ,iBAAiB,OAAO,GAAG,CAAC;AAAA,IAC/D,OAAO;AACN,aAAO;AAAA,IACR;AAAA,EACD;AAEA,QAAM,cAAc,YAAY,WAAW,aAAa,UAAU,OAAO,GAAG;AAAA,IAC3E,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,SAAS,CAAC,QAAQ;AAAA,EAAA,CAClB;AAED,QAAM,YAAY,QAAQ,OACvB,YAAY,WAAW,aAAa,UAAU,OAAO,GAAG;AAAA,IACxD,WAAW;AAAA,IACX,SAAS,CAAC,QAAQ;AAAA,EAAA,CAClB,IACA,MAAM;AAAA,EAAC;AAEV,SAAO,MAAM;AACZ,gBAAA;AACA,cAAA;AAAA,EACD;AACD;"}
@@ -1,7 +1,7 @@
1
1
  import { createSharedComposable, usePreferredDark, useMutationObserver } from "@vueuse/core";
2
2
  import { computed, toValue, ref, watch, readonly, inject } from "vue";
3
3
  import { checkIfDarkTheme } from "../../functions/isDarkTheme/index.mjs";
4
- import { I as INJECTION_KEY_THEME } from "../../chunks/constants-Bls5liKo.mjs";
4
+ import { I as INJECTION_KEY_THEME } from "../../chunks/constants-wIEKSp2G.mjs";
5
5
  /*!
6
6
  * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
7
7
  * SPDX-License-Identifier: AGPL-3.0-or-later
@@ -0,0 +1,26 @@
1
+ /*!
2
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
3
+ * SPDX-License-Identifier: AGPL-3.0-or-later
4
+ */
5
+ /**
6
+ * Get a binding object for all data-v-scopeid attributes that are supposed to be on the root node.
7
+ * It allows to have scoped styles from parents in edge cases not covered by Vue:
8
+ * - Teleport on the root
9
+ * - Fragments
10
+ *
11
+ * @todo Do we need to support slotScopeIds for `:slotted()`?
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * <script setup>
16
+ * import { useScopeIdAttrs } from './useScopeIdAttrs.ts'
17
+ * const scopeIdAttrs = useScopeIdAttrs()
18
+ * </script>
19
+ * <template>
20
+ * <teleport to="body">
21
+ * <div v-bind="scopeIdAttrs" />
22
+ * </teleport>
23
+ * </template>
24
+ * ```
25
+ */
26
+ export declare function useScopeIdAttrs(): any;
@@ -1,5 +1,5 @@
1
1
  import { N, h, c, i, e, r, f, a } from "../../chunks/customPickerElements-4pQTZUnk.mjs";
2
- import { a as a2, g, b, c as c2, s, d } from "../../chunks/referencePickerModal-f8STnNvS.mjs";
2
+ import { a as a2, g, b, c as c2, s, d } from "../../chunks/referencePickerModal-CDHqLZC-.mjs";
3
3
  export {
4
4
  N as NcCustomPickerRenderResult,
5
5
  a2 as anyLinkProviderId,
@@ -1,5 +1,5 @@
1
1
  import { Md5 } from "ts-md5";
2
- import { g as generatePalette } from "../../chunks/colors-BM9KkzNS.mjs";
2
+ import { g as generatePalette } from "../../chunks/colors-CL_wvNtd.mjs";
3
3
  function hashCode(str) {
4
4
  let hash = str;
5
5
  if (str.match(/^([0-9a-f]{4}-?){8}$/) === null) {
package/dist/index.mjs CHANGED
@@ -1,84 +1,84 @@
1
- import { N } from "./chunks/NcActionButton-DCWUru2b.mjs";
2
- import { N as N2 } from "./chunks/NcActionButtonGroup-QgGuZcPA.mjs";
3
- import { N as N3 } from "./chunks/NcActionCaption-Fumfjzxj.mjs";
4
- import { N as N4 } from "./chunks/NcActionCheckbox-CwrO3g3I.mjs";
5
- import { N as N5 } from "./chunks/NcActionInput-Bw4UxfFB.mjs";
6
- import { N as N6 } from "./chunks/NcActionLink-afakPM_N.mjs";
7
- import { N as N7 } from "./chunks/NcActionRadio-ByCpOD0q.mjs";
8
- import { N as N8 } from "./chunks/NcActionRouter-oT-YU_jf.mjs";
9
- import { N as N9 } from "./chunks/NcActions-B0kM6AYb.mjs";
1
+ import { N } from "./chunks/NcActionButton-BHXE4UKQ.mjs";
2
+ import { N as N2 } from "./chunks/NcActionButtonGroup-B2MGnwK_.mjs";
3
+ import { N as N3 } from "./chunks/NcActionCaption-Cgd3J8jw.mjs";
4
+ import { N as N4 } from "./chunks/NcActionCheckbox-BTHrh-Mu.mjs";
5
+ import { N as N5 } from "./chunks/NcActionInput-D1uLWx4N.mjs";
6
+ import { N as N6 } from "./chunks/NcActionLink-Cd69py4e.mjs";
7
+ import { N as N7 } from "./chunks/NcActionRadio-BM24rDbc.mjs";
8
+ import { N as N8 } from "./chunks/NcActionRouter-DtxPh20B.mjs";
9
+ import { N as N9 } from "./chunks/NcActions-4R7icatI.mjs";
10
10
  import { N as N10 } from "./chunks/NcActionSeparator-Doekl1NX.mjs";
11
- import { N as N11 } from "./chunks/NcActionText-uKvLcEY6.mjs";
12
- import { N as N12 } from "./chunks/NcActionTextEditable-BQXCci7D.mjs";
13
- import { N as N13 } from "./chunks/NcAppContent-BbtKZp6w.mjs";
11
+ import { N as N11 } from "./chunks/NcActionText-Bd1fgVqA.mjs";
12
+ import { N as N12 } from "./chunks/NcActionTextEditable-DAMWWXnR.mjs";
13
+ import { N as N13 } from "./chunks/NcAppContent-DFbY2ERd.mjs";
14
14
  import { _ } from "./chunks/NcAppContentDetails.vue_vue_type_script_setup_true_lang-Dnf4r_Ng.mjs";
15
15
  import { N as N14 } from "./chunks/NcAppContentList-DYFsuDKh.mjs";
16
- import { N as N15 } from "./chunks/NcAppNavigation-CROkGlDE.mjs";
17
- import { N as N16 } from "./chunks/NcAppNavigationCaption-CuGe5Mev.mjs";
16
+ import { N as N15 } from "./chunks/NcAppNavigation-CjnufbC2.mjs";
17
+ import { N as N16 } from "./chunks/NcAppNavigationCaption-DiLoiMN5.mjs";
18
18
  import { N as N17 } from "./chunks/NcAppNavigationIconBullet-PrlhOoE9.mjs";
19
- import { N as N18 } from "./chunks/NcAppNavigationItem-DU-pLjwa.mjs";
19
+ import { N as N18 } from "./chunks/NcAppNavigationItem-B307vBI9.mjs";
20
20
  import { N as N19 } from "./chunks/NcAppNavigationList-BX0wE-dB.mjs";
21
- import { N as N20 } from "./chunks/NcAppNavigationNew-DJbq5wr_.mjs";
22
- import { N as N21 } from "./chunks/NcAppNavigationNewItem-CoRu6Q9O.mjs";
23
- import { N as N22 } from "./chunks/NcAppNavigationSearch-DaIFceYy.mjs";
24
- import { N as N23 } from "./chunks/NcAppNavigationSettings-45tEbBBm.mjs";
21
+ import { N as N20 } from "./chunks/NcAppNavigationNew-WS0F9mau.mjs";
22
+ import { N as N21 } from "./chunks/NcAppNavigationNewItem-DYH3Gimz.mjs";
23
+ import { N as N22 } from "./chunks/NcAppNavigationSearch-Bi367hd4.mjs";
24
+ import { N as N23 } from "./chunks/NcAppNavigationSettings-CaTjgcVj.mjs";
25
25
  import { N as N24 } from "./chunks/NcAppNavigationSpacer-BvkBfuVw.mjs";
26
- import { N as N25 } from "./chunks/NcAppSettingsDialog-lTULgn3p.mjs";
27
- import { N as N26 } from "./chunks/NcAppSettingsSection-B9R7enkC.mjs";
28
- import { N as N27, N as N28 } from "./chunks/NcAppSettingsShortcutsSection-DIIuKYzs.mjs";
29
- import { N as N29 } from "./chunks/NcAppSidebar-X9ktYY0p.mjs";
26
+ import { N as N25 } from "./chunks/NcAppSettingsDialog-NlVP7Fo7.mjs";
27
+ import { N as N26 } from "./chunks/NcAppSettingsSection-B2pFK0UK.mjs";
28
+ import { N as N27, N as N28 } from "./chunks/NcAppSettingsShortcutsSection-DDmDMMsF.mjs";
29
+ import { N as N29 } from "./chunks/NcAppSidebar-as8lzUZp.mjs";
30
30
  import { _ as _2 } from "./chunks/NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-0j0aFDeK.mjs";
31
31
  import { N as N30 } from "./chunks/NcAppSidebarTab-Cjetm3Fs.mjs";
32
- import { N as N31 } from "./chunks/NcAssistantButton-BID8rRE5.mjs";
32
+ import { N as N31 } from "./chunks/NcAssistantButton-DqXCpiMp.mjs";
33
33
  import { N as N32 } from "./chunks/NcAssistantContent-Boi-0v_0.mjs";
34
- import { N as N33 } from "./chunks/NcAssistantIcon-BUvb4WNg.mjs";
35
- import { N as N34 } from "./chunks/NcAvatar-Dxm05R6e.mjs";
34
+ import { N as N33 } from "./chunks/NcAssistantIcon-PMYKxGuH.mjs";
35
+ import { N as N34 } from "./chunks/NcAvatar-S8EJR2BK.mjs";
36
36
  import { N as N35 } from "./chunks/NcBlurHash-BiFktE2N.mjs";
37
- import { N as N36 } from "./chunks/NcBreadcrumb-CiM9xAAS.mjs";
38
- import { N as N37 } from "./chunks/NcBreadcrumbs-geMiBPkk.mjs";
39
- import { N as N38 } from "./chunks/NcButton-ZNHdqKQl.mjs";
40
- import { N as N39 } from "./chunks/NcCheckboxRadioSwitch-6ty3DxEG.mjs";
41
- import { N as N40 } from "./chunks/NcChip-CFf0KxGk.mjs";
42
- import { N as N41 } from "./chunks/NcCollectionList-Ds-tmckn.mjs";
43
- import { N as N42 } from "./chunks/NcColorPicker-BFcR9_1o.mjs";
44
- import { N as N43 } from "./chunks/NcContent-BKKnoxxu.mjs";
37
+ import { N as N36 } from "./chunks/NcBreadcrumb-ChYVw5CP.mjs";
38
+ import { N as N37 } from "./chunks/NcBreadcrumbs-DHS31Ax7.mjs";
39
+ import { N as N38 } from "./chunks/NcButton-CzpKEx4V.mjs";
40
+ import { N as N39 } from "./chunks/NcCheckboxRadioSwitch-DisCqPZK.mjs";
41
+ import { N as N40 } from "./chunks/NcChip-QHPd3nMF.mjs";
42
+ import { N as N41 } from "./chunks/NcCollectionList-ByFl0-ca.mjs";
43
+ import { N as N42 } from "./chunks/NcColorPicker-DpSDaGrh.mjs";
44
+ import { N as N43 } from "./chunks/NcContent-BrRHLO19.mjs";
45
45
  import { N as N44 } from "./chunks/NcCounterBubble-CxxHHh8i.mjs";
46
- import { N as N45 } from "./chunks/NcDashboardWidget-cclUqUde.mjs";
47
- import { N as N46 } from "./chunks/NcDashboardWidgetItem-DM96gJkD.mjs";
46
+ import { N as N45 } from "./chunks/NcDashboardWidget-CIUrPOLo.mjs";
47
+ import { N as N46 } from "./chunks/NcDashboardWidgetItem-DdYM1QYk.mjs";
48
48
  import { _ as _3 } from "./chunks/NcDateTime.vue_vue_type_script_setup_true_lang-BhB8yA4U.mjs";
49
- import { N as N47 } from "./chunks/NcDateTimePicker-CYRbEpfY.mjs";
50
- import { N as N48 } from "./chunks/NcDateTimePickerNative-CR1Yx5Qp.mjs";
51
- import { N as N49 } from "./chunks/NcDialog-BY-1v8yi.mjs";
52
- import { _ as _4 } from "./chunks/NcDialogButton.vue_vue_type_script_setup_true_lang-CF6LnBe7.mjs";
49
+ import { N as N47 } from "./chunks/NcDateTimePicker-DtQaoKbG.mjs";
50
+ import { N as N48 } from "./chunks/NcDateTimePickerNative-Dr8_mGlQ.mjs";
51
+ import { N as N49 } from "./chunks/NcDialog-BTmnYNeo.mjs";
52
+ import { _ as _4 } from "./chunks/NcDialogButton.vue_vue_type_script_setup_true_lang-CYpktNKA.mjs";
53
53
  import { N as N50 } from "./chunks/NcEllipsisedOption-dT-CtXYp.mjs";
54
- import { N as N51 } from "./chunks/NcEmojiPicker-DMiiRPm1.mjs";
54
+ import { N as N51 } from "./chunks/NcEmojiPicker-U5k_zceS.mjs";
55
55
  import { N as N52 } from "./chunks/NcEmptyContent-B8-90BSI.mjs";
56
- import { N as N53 } from "./chunks/NcFormBox-K2tCRm3B.mjs";
57
- import { N as N54 } from "./chunks/NcFormBoxButton-4XaQUTOS.mjs";
58
- import { _ as _5 } from "./chunks/NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-DTWd7b52.mjs";
59
- import { N as N55 } from "./chunks/NcFormBoxSwitch-E6Ei7MFo.mjs";
56
+ import { N as N53 } from "./chunks/NcFormBox-CkgY7Tif.mjs";
57
+ import { N as N54 } from "./chunks/NcFormBoxButton-Bptd324P.mjs";
58
+ import { _ as _5 } from "./chunks/NcFormBoxCopyButton.vue_vue_type_script_setup_true_lang-DhnfC18v.mjs";
59
+ import { N as N55 } from "./chunks/NcFormBoxSwitch-DGcRJH9Q.mjs";
60
60
  import { N as N56 } from "./chunks/NcFormGroup-CnSfPFey.mjs";
61
61
  import { N as N57 } from "./chunks/NcGuestContent-CfCh49o0.mjs";
62
- import { N as N58 } from "./chunks/NcHeaderButton-tLfDELGu.mjs";
63
- import { N as N59 } from "./chunks/NcHeaderMenu-ClRw0Xc5.mjs";
62
+ import { N as N58 } from "./chunks/NcHeaderButton-CIb5SvFk.mjs";
63
+ import { N as N59 } from "./chunks/NcHeaderMenu-CeJZT5-m.mjs";
64
64
  import { _ as _6 } from "./chunks/NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs";
65
- import { N as N60 } from "./chunks/NcHotkey-Cya0WRKL.mjs";
66
- import { N as N61 } from "./chunks/NcHotkeyList-B9C--U6a.mjs";
65
+ import { N as N60 } from "./chunks/NcHotkey-BMbdzaIs.mjs";
66
+ import { N as N61 } from "./chunks/NcHotkeyList-67NnF26Y.mjs";
67
67
  import { N as N62 } from "./chunks/NcIconSvgWrapper-BvLanNaW.mjs";
68
- import { N as N63 } from "./chunks/NcInputField-z8wpYKt2.mjs";
69
- import { N as N64 } from "./chunks/NcKbd-D6pM7aJM.mjs";
70
- import { N as N65 } from "./chunks/NcListItem-D5AkAxDh.mjs";
71
- import { N as N66 } from "./chunks/NcListItemIcon-D_ReDycv.mjs";
68
+ import { N as N63 } from "./chunks/NcInputField-D7Nv5QhT.mjs";
69
+ import { N as N64 } from "./chunks/NcKbd-CZdynD1d.mjs";
70
+ import { N as N65 } from "./chunks/NcListItem-Bx93C7tP.mjs";
71
+ import { N as N66 } from "./chunks/NcListItemIcon-IJLXY-te.mjs";
72
72
  import { N as N67 } from "./chunks/NcLoadingIcon-b_ajZ_nQ.mjs";
73
- import { N as N68 } from "./chunks/NcModal-DZtBQM1y.mjs";
74
- import { N as N69 } from "./chunks/NcNoteCard-C6JdnZUp.mjs";
75
- import { N as N70 } from "./chunks/NcPasswordField-BquWP0Di.mjs";
73
+ import { N as N68 } from "./chunks/NcModal-DSCYMxfe.mjs";
74
+ import { N as N69 } from "./chunks/NcNoteCard-BUg07N13.mjs";
75
+ import { N as N70 } from "./chunks/NcPasswordField-CTuWpUWd.mjs";
76
76
  import { N as N71 } from "./chunks/NcPopover-C-MTaPCs.mjs";
77
77
  import { N as N72 } from "./chunks/NcProgressBar-DDMAo4h-.mjs";
78
- import { N as N73 } from "./chunks/NcRadioGroup-CLtk-WPR.mjs";
79
- import { N as N74 } from "./chunks/NcRadioGroupButton-CDA5i7Dq.mjs";
80
- import { N as N75 } from "./chunks/NcRelatedResourcesPanel-DPwZ4SSu.mjs";
81
- import { a, N as N76, b } from "./chunks/NcRichContenteditable-ClUiBH9B.mjs";
78
+ import { N as N73 } from "./chunks/NcRadioGroup-HorQ2m39.mjs";
79
+ import { N as N74 } from "./chunks/NcRadioGroupButton-CAisx7g4.mjs";
80
+ import { N as N75 } from "./chunks/NcRelatedResourcesPanel-Dtxd3-o1.mjs";
81
+ import { a, N as N76, b } from "./chunks/NcRichContenteditable-Bq1NOBCE.mjs";
82
82
  import "@nextcloud/auth";
83
83
  import "@nextcloud/axios";
84
84
  import "@nextcloud/router";
@@ -86,25 +86,25 @@ import "@nextcloud/sharing/public";
86
86
  import "vue";
87
87
  import "@vueuse/core";
88
88
  import "vue-router";
89
- import { a as a2, g, b as b2, c, s, d } from "./chunks/referencePickerModal-f8STnNvS.mjs";
89
+ import { a as a2, g, b as b2, c, s, d } from "./chunks/referencePickerModal-CDHqLZC-.mjs";
90
90
  import { N as N77, h, c as c2, i, e, r, f, a as a3 } from "./chunks/customPickerElements-4pQTZUnk.mjs";
91
91
  import "./chunks/autolink-U5pBzLgI.mjs";
92
- import { N as N78 } from "./chunks/NcRichText-DamxfqDV.mjs";
93
- import { N as N79 } from "./chunks/NcSelect-Ba00b95n.mjs";
94
- import "debounce";
95
92
  import "./chunks/logger-D3RVzcfQ.mjs";
96
- import { _ as _7 } from "./chunks/NcTextField.vue_vue_type_script_setup_true_lang-BNSMSqMx.mjs";
93
+ import { N as N78 } from "./chunks/NcRichText-B6VwyPUp.mjs";
94
+ import { N as N79 } from "./chunks/NcSelect-Cc9_a8nG.mjs";
95
+ import "debounce";
96
+ import { _ as _7 } from "./chunks/NcTextField.vue_vue_type_script_setup_true_lang-BfjSL2EJ.mjs";
97
97
  import "@nextcloud/event-bus";
98
98
  import { _ as _8 } from "./chunks/NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang-jUf1K561.mjs";
99
- import { N as N80 } from "./chunks/NcSelectTags-DAxQe-10.mjs";
100
- import { N as N81 } from "./chunks/NcSelectUsers-DlE8EHdq.mjs";
101
- import { N as N82 } from "./chunks/NcSettingsSection-BfK7eHNT.mjs";
102
- import { N as N83 } from "./chunks/NcSettingsSelectGroup-CO8dnQ6q.mjs";
103
- import { N as N84 } from "./chunks/NcTextArea-Cr27-KiU.mjs";
104
- import { _ as _9 } from "./chunks/NcThemeProvider.vue_vue_type_script_setup_true_lang-nUDJsDGI.mjs";
105
- import { _ as _10 } from "./chunks/NcTimezonePicker.vue_vue_type_script_setup_true_lang-CVehmrmz.mjs";
106
- import { N as N85 } from "./chunks/NcUserBubble-DEW575GR.mjs";
107
- import { N as N86 } from "./chunks/NcUserStatusIcon-DHHqIgRK.mjs";
99
+ import { N as N80 } from "./chunks/NcSelectTags-JyyA4W_e.mjs";
100
+ import { N as N81 } from "./chunks/NcSelectUsers-CiTKYuOb.mjs";
101
+ import { N as N82 } from "./chunks/NcSettingsSection-BcLE6UnZ.mjs";
102
+ import { N as N83 } from "./chunks/NcSettingsSelectGroup-CUU-GWYl.mjs";
103
+ import { N as N84 } from "./chunks/NcTextArea-2CifgNom.mjs";
104
+ import { _ as _9 } from "./chunks/NcThemeProvider.vue_vue_type_script_setup_true_lang-DWn1DRTx.mjs";
105
+ import { _ as _10 } from "./chunks/NcTimezonePicker.vue_vue_type_script_setup_true_lang-BffYEppS.mjs";
106
+ import { N as N85 } from "./chunks/NcUserBubble-CiB-Lu5C.mjs";
107
+ import { N as N86 } from "./chunks/NcUserStatusIcon-BgElapLh.mjs";
108
108
  import { _ as _11 } from "./chunks/NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs";
109
109
  import { useFormatRelativeTime, useFormatTime } from "./composables/useFormatDateTime/index.mjs";
110
110
  import { useHotKey } from "./composables/useHotKey/index.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nextcloud/vue",
3
- "version": "9.3.0",
3
+ "version": "9.3.2",
4
4
  "description": "Nextcloud vue components",
5
5
  "keywords": [
6
6
  "vuejs",
@@ -84,22 +84,22 @@
84
84
  "@nextcloud/event-bus": "^3.3.3",
85
85
  "@nextcloud/initial-state": "^3.0.0",
86
86
  "@nextcloud/l10n": "^3.4.1",
87
- "@nextcloud/logger": "^3.0.2",
87
+ "@nextcloud/logger": "^3.0.3",
88
88
  "@nextcloud/router": "^3.1.0",
89
89
  "@nextcloud/sharing": "^0.3.0",
90
90
  "@vuepic/vue-datepicker": "^11.0.3",
91
- "@vueuse/components": "^14.0.0",
91
+ "@vueuse/components": "^14.1.0",
92
92
  "@vueuse/core": "^14.0.0",
93
93
  "blurhash": "^2.0.5",
94
94
  "clone": "^2.1.2",
95
95
  "debounce": "^3.0.0",
96
- "dompurify": "^3.3.0",
96
+ "dompurify": "^3.3.1",
97
97
  "emoji-mart-vue-fast": "^15.0.5",
98
98
  "escape-html": "^1.0.3",
99
99
  "floating-vue": "^5.2.2",
100
- "focus-trap": "^7.6.6",
100
+ "focus-trap": "^7.7.1",
101
101
  "linkifyjs": "^4.3.2",
102
- "p-queue": "^9.0.0",
102
+ "p-queue": "^9.1.0",
103
103
  "rehype-external-links": "^3.0.0",
104
104
  "rehype-highlight": "^7.0.2",
105
105
  "rehype-react": "^8.0.0",
@@ -109,58 +109,58 @@
109
109
  "remark-unlink-protocols": "^1.0.0",
110
110
  "splitpanes": "^4.0.4",
111
111
  "striptags": "^3.2.0",
112
- "tabbable": "^6.3.0",
112
+ "tabbable": "^6.4.0",
113
113
  "tributejs": "^5.1.3",
114
114
  "ts-md5": "^2.0.1",
115
115
  "unified": "^11.0.5",
116
116
  "unist-builder": "^4.0.0",
117
117
  "unist-util-visit": "^5.0.0",
118
118
  "vue": "^3.5.18",
119
- "vue-router": "^4.6.3",
119
+ "vue-router": "^4.6.4",
120
120
  "vue-select": "^4.0.0-beta.6"
121
121
  },
122
122
  "devDependencies": {
123
123
  "@babel/plugin-syntax-import-assertions": "^7.27.1",
124
124
  "@babel/plugin-transform-typescript": "^7.28.0",
125
125
  "@babel/preset-typescript": "^7.28.5",
126
- "@fontsource/roboto": "^5.2.8",
126
+ "@fontsource/roboto": "^5.2.9",
127
127
  "@mdi/js": "^7.4.47",
128
128
  "@mdi/svg": "^7.4.47",
129
129
  "@nextcloud/babel-config": "^1.3.0",
130
130
  "@nextcloud/browserslist-config": "^3.1.2",
131
- "@nextcloud/eslint-config": "^9.0.0-rc.5",
131
+ "@nextcloud/eslint-config": "^9.0.0-rc.6",
132
132
  "@nextcloud/stylelint-config": "^3.1.1",
133
133
  "@nextcloud/vite-config": "^2.5.0",
134
134
  "@nextcloud/webpack-vue-config": "github:nextcloud/webpack-vue-config#vue3",
135
- "@playwright/experimental-ct-vue": "^1.56.1",
136
- "@playwright/test": "^1.56.1",
135
+ "@playwright/experimental-ct-vue": "^1.57.0",
136
+ "@playwright/test": "^1.57.0",
137
137
  "@types/gettext-parser": "^8.0.0",
138
- "@types/node": "^24.10.1",
139
- "@vitest/coverage-v8": "^4.0.10",
138
+ "@types/node": "^24.10.4",
139
+ "@vitest/coverage-v8": "^4.0.16",
140
140
  "@vue/test-utils": "^2.4.6",
141
141
  "@vue/tsconfig": "^0.8.1",
142
142
  "babel-loader-exclude-node-modules-except": "^1.2.1",
143
- "core-js": "^3.46.0",
144
- "eslint": "^9.39.1",
143
+ "core-js": "^3.47.0",
144
+ "eslint": "^9.39.2",
145
145
  "file-loader": "^6.2.0",
146
- "gettext-extractor": "^4.0.1",
147
- "gettext-parser": "^8.0.0",
148
- "glob": "^12.0.0",
149
- "jsdom": "^27.2.0",
146
+ "gettext-extractor": "^4.0.4",
147
+ "gettext-parser": "^9.0.0",
148
+ "glob": "^13.0.0",
149
+ "jsdom": "^27.4.0",
150
150
  "remark-gfm": "^4.0.1",
151
151
  "resolve-url-loader": "^5.0.0",
152
- "sass": "^1.94.1",
153
- "stylelint": "^16.25.0",
152
+ "sass": "^1.97.2",
153
+ "stylelint": "^16.26.1",
154
154
  "ts-node": "^10.9.2",
155
155
  "typescript": "^5.9.3",
156
156
  "url-loader": "^4.1.1",
157
- "vite": "^7.2.2",
158
- "vitest": "^4.0.4",
157
+ "vite": "^7.3.1",
158
+ "vitest": "^4.0.14",
159
159
  "vue-eslint-parser": "^10.2.0",
160
160
  "vue-material-design-icons": "^5.3.1",
161
161
  "vue-styleguidist": "^4.72.4",
162
- "vue-tsc": "^3.1.4",
163
- "webpack": "^5.102.1",
162
+ "vue-tsc": "^3.2.2",
163
+ "webpack": "^5.104.1",
164
164
  "webpack-merge": "^6.0.1"
165
165
  },
166
166
  "engines": {
@@ -170,7 +170,7 @@
170
170
  "packageManager": [
171
171
  {
172
172
  "name": "npm",
173
- "version": ">=11.3.0 <=11.6.2",
173
+ "version": "^11.3.0",
174
174
  "onFail": "error"
175
175
  }
176
176
  ],
@@ -1 +0,0 @@
1
- {"version":3,"file":"NcActionButton-DCWUru2b.mjs","sources":["../../src/components/NcActionButton/NcActionButton.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\nThis component is made to be used inside of the [NcActions](#NcActions) component slots.\n\n```vue\n\t<template>\n\t\t<NcActions>\n\t\t\t<NcActionButton @click=\"showMessage('Delete')\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Delete :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tDelete\n\t\t\t</NcActionButton>\n\t\t\t<NcActionButton :close-after-click=\"true\" @click=\"showMessage('Delete and close menu')\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Delete :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tDelete and close\n\t\t\t</NcActionButton>\n\t\t\t<NcActionButton :is-menu=\"true\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Plus :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tCreate\n\t\t\t</NcActionButton>\n\t\t\t<NcActionButton :disabled=\"true\" @click=\"showMessage('Disabled')\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Delete :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tDisabled button\n\t\t\t</NcActionButton>\n\t\t</NcActions>\n\t</template>\n\t<script>\n\timport Delete from 'vue-material-design-icons/Delete.vue'\n\timport Plus from 'vue-material-design-icons/Plus.vue'\n\n\texport default {\n\t\tcomponents: {\n\t\t\tDelete,\n\t\t\tPlus,\n\t\t},\n\t\tmethods: {\n\t\t\tshowMessage(msg) {\n\t\t\t\talert(msg)\n\t\t\t},\n\t\t},\n\t}\n\t</script>\n```\n\nIf you're using a long text, you can specify a `name` prop.\n\nFor the same purpose, but in a more compact way, `description` prop can be used.\n\n```vue\n\t<template>\n\t\t<NcActions>\n\t\t\t<NcActionButton @click=\"showMessage('Add')\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Plus :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tAdd new\n\t\t\t</NcActionButton>\n\t\t\t<NcActionButton name=\"Long button\" @click=\"showMessage('Delete')\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Delete :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tThis button is associated with a very long text.\\nAnd with new lines too.\n\t\t\t</NcActionButton>\n\t\t\t<NcActionButton description=\"Subline description for the button\" @click=\"showMessage('Edit')\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tEdit\n\t\t\t</NcActionButton>\n\t\t</NcActions>\n\t</template>\n\t<script>\n\timport Delete from 'vue-material-design-icons/Delete.vue'\n\timport Pencil from 'vue-material-design-icons/Pencil.vue'\n\timport Plus from 'vue-material-design-icons/Plus.vue'\n\n\texport default {\n\t\tcomponents: {\n\t\t\tDelete,\n\t\t\tPencil,\n\t\t\tPlus,\n\t\t},\n\t\tmethods: {\n\t\t\tshowMessage(msg) {\n\t\t\t\talert(msg)\n\t\t\t},\n\t\t},\n\t}\n\t</script>\n\n```\n\nAction icon attribute with a single action\n\n```vue\n\t<template>\n\t\t<NcActions>\n\t\t\t<NcActionButton @click=\"showMessage('Add')\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Plus :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tAdd new\n\t\t\t</NcActionButton>\n\t\t</NcActions>\n\t</template>\n\t<script>\n\timport Plus from 'vue-material-design-icons/Plus.vue'\n\n\texport default {\n\t\tcomponents: {\n\t\t\tPlus,\n\t\t},\n\t\tmethods: {\n\t\t\tshowMessage(msg) {\n\t\t\t\talert(msg)\n\t\t\t},\n\t\t},\n\t}\n\t</script>\n\n```\n\nYou can also use a custom icon, for example from the vue-material-design-icons library:\n\n```vue\n<template>\n\t<NcActions>\n\t\t<NcActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<HandBackLeft :size=\"20\" />\n\t\t\t</template>\n\t\t\tRaise left hand\n\t\t</NcActionButton>\n\t\t<NcActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<HandBackRight :size=\"20\" />\n\t\t\t</template>\n\t\t\tRaise right hand\n\t\t</NcActionButton>\n\t</NcActions>\n</template>\n<script>\nimport HandBackLeft from 'vue-material-design-icons/HandBackLeft.vue'\nimport HandBackRight from 'vue-material-design-icons/HandBackRight.vue'\n\nexport default {\n\tcomponents: {\n\t\tHandBackLeft,\n\t\tHandBackRight,\n\t},\n}\n</script>\n```\n\n### With different model behavior\nBy default the button will act like a normal button, but it is also possible to change the behavior to a toggle button, checkbox button or radio button.\n\nFor example to have the button act like a toggle button just set the `modelValue` property to the toggle state:\n\n```vue\n<template>\n\t<NcActions>\n\t\t<NcActionButton v-model=\"fullscreen\">\n\t\t\t<template #icon>\n\t\t\t\t<Fullscreen :size=\"20\" />\n\t\t\t</template>\n\t\t\tFullscreen\n\t\t</NcActionButton>\n\t</NcActions>\n</template>\n<script>\nimport Fullscreen from 'vue-material-design-icons/Fullscreen.vue'\n\nexport default {\n\tcomponents: {\n\t\tFullscreen,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tfullscreen: true,\n\t\t}\n\t},\n}\n</script>\n```\n\nAnother example would be using it with checkbox semantics, to enable or disable features.\nThis also allows tri-state behavior (`true`, `false`, `null`) in which case `aria-checked` will be either `true`, `false` or `mixed`.\n\n```vue\n<template>\n\t<NcActions>\n\t\t<NcActionButton v-model=\"handRaised\" type=\"checkbox\">\n\t\t\t<template #icon>\n\t\t\t\t<HandBackLeft :size=\"20\" />\n\t\t\t</template>\n\t\t\tRaise hand\n\t\t</NcActionButton>\n\t\t<NcActionButton v-model=\"fullscreen\" type=\"checkbox\">\n\t\t\t<template #icon>\n\t\t\t\t<Fullscreen :size=\"20\" />\n\t\t\t</template>\n\t\t\tFullscreen\n\t\t</NcActionButton>\n\t</NcActions>\n</template>\n<script>\nimport HandBackLeft from 'vue-material-design-icons/HandBackLeft.vue'\nimport Fullscreen from 'vue-material-design-icons/Fullscreen.vue'\n\nexport default {\n\tcomponents: {\n\t\tHandBackLeft,\n\t\tFullscreen,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tfullscreen: true,\n\t\t\thandRaised: false,\n\t\t}\n\t},\n}\n</script>\n```\n\nIt is also possible to use the button with radio semantics, this is only possible in menus and not for inline actions!\n\nWith a string `modelValue`, checked state is determined by the `value` property and updates `modelValue` with the new `value` string.\n\nWith a boolean `modelValue`, checked state is determined by `modelValue` and updates to `true` on check.\n\nNote: unlike native radio buttons, `NcActionButton` are not grouped by name, so you need to connect them by bind correct `modelValue``.\n\n```vue\n<template>\n\t<div>\n\t\t<NcActions>\n\t\t\t<NcActionButton v-model=\"payment\" type=\"radio\" value=\"cash\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Cash :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tPay with cash\n\t\t\t</NcActionButton>\n\t\t\t<NcActionButton v-model=\"payment\" type=\"radio\" value=\"card\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<CreditCard :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tPay by card\n\t\t\t</NcActionButton>\n\t\t\t<NcActionSeparator />\n\t\t\t<NcActionButton type=\"radio\" :model-value=\"align.isLeft\" @update:modelValue=\"setAlign('Left', $event)\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<FormatAlignLeft :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tLeft\n\t\t\t</NcActionButton>\n\t\t\t<NcActionButton type=\"radio\" :model-value=\"align.isCenter\" @update:modelValue=\"setAlign('Center', $event)\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<FormatAlignCenter :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tCenter\n\t\t\t</NcActionButton>\n\t\t\t<NcActionButton type=\"radio\" :model-value=\"align.isRight\" @update:modelValue=\"setAlign('Right', $event)\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<FormatAlignRight :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tRight\n\t\t\t</NcActionButton>\n\t\t</NcActions>\n\t\t<p>payment = \"{{ payment }}\"</p>\n\t\t<p>align.isLeft = {{ align.isLeft }}</p>\n\t\t<p>align.isCenter = {{ align.isCenter }}</p>\n\t\t<p>align.isRight = {{ align.isRight }}</p>\n\t</div>\n</template>\n<script>\nimport Cash from 'vue-material-design-icons/Cash.vue'\nimport CreditCard from 'vue-material-design-icons/CreditCard.vue'\nimport FormatAlignLeft from 'vue-material-design-icons/FormatAlignLeft.vue'\nimport FormatAlignCenter from 'vue-material-design-icons/FormatAlignCenter.vue'\nimport FormatAlignRight from 'vue-material-design-icons/FormatAlignRight.vue'\n\nexport default {\n\tcomponents: {\n\t\tCash,\n\t\tCreditCard,\n\t\tFormatAlignLeft,\n\t\tFormatAlignCenter,\n\t\tFormatAlignRight,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tpayment: 'card',\n\t\t\talign: {\n\t\t\t\tisLeft: false,\n\t\t\t\tisCenter: true,\n\t\t\t\tisRight: false,\n\t\t\t},\n\t\t}\n\t},\n\tmethods: {\n\t\tsetAlign(direction, value) {\n\t\t\tthis.align.isLeft = false\n\t\t\tthis.align.isCenter = false\n\t\t\tthis.align.isRight = false\n\t\t\tthis.align[`is${direction}`] = value\n\t\t},\n\t}\n}\n</script>\n```\n</docs>\n\n<template>\n\t<li class=\"action\" :class=\"{ 'action--disabled': disabled }\" :role=\"isInSemanticMenu && 'presentation'\">\n\t\t<button\n\t\t\t:aria-label=\"ariaLabel\"\n\t\t\tclass=\"action-button button-vue\"\n\t\t\t:class=\"{\n\t\t\t\t'action-button--active': isChecked,\n\t\t\t\tfocusable: isFocusable,\n\t\t\t}\"\n\t\t\t:disabled=\"disabled\"\n\t\t\t:title=\"title\"\n\t\t\t:type=\"nativeType\"\n\t\t\tv-bind=\"buttonAttributes\"\n\t\t\t@click=\"handleClick\">\n\t\t\t<!-- @slot Manually provide icon -->\n\t\t\t<slot name=\"icon\">\n\t\t\t\t<span\n\t\t\t\t\t:class=\"[isIconUrl ? 'action-button__icon--url' : icon]\"\n\t\t\t\t\t:style=\"{ backgroundImage: isIconUrl ? `url(${icon})` : null }\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tclass=\"action-button__icon\" />\n\t\t\t</slot>\n\n\t\t\t<!-- long text with name -->\n\t\t\t<span class=\"action-button__longtext-wrapper\">\n\t\t\t\t<strong\n\t\t\t\t\tv-if=\"name\"\n\t\t\t\t\tclass=\"action-button__name\">\n\t\t\t\t\t{{ name }}\n\t\t\t\t</strong>\n\t\t\t\t<!-- white space is shown on longtext, so we can't\n\t\t\t\t\tput {{ text }} on a new line for code readability -->\n\t\t\t\t<span\n\t\t\t\t\tv-if=\"isLongText\"\n\t\t\t\t\tclass=\"action-button__longtext\"\n\t\t\t\t\tv-text=\"text\" />\n\t\t\t\t<!-- default text display -->\n\t\t\t\t<span\n\t\t\t\t\tv-else\n\t\t\t\t\tclass=\"action-button__text\">\n\t\t\t\t\t{{ text }}\n\t\t\t\t</span>\n\t\t\t\t<span\n\t\t\t\t\tv-if=\"description\"\n\t\t\t\t\tclass=\"action-button__description\"\n\t\t\t\t\tv-text=\"description\" />\n\t\t\t</span>\n\n\t\t\t<!-- right(in LTR) or left(in RTL) arrow icon when there is a sub-menu -->\n\t\t\t<NcIconSvgWrapper\n\t\t\t\tv-if=\"isMenu\"\n\t\t\t\tclass=\"action-button__menu-icon\"\n\t\t\t\tdirectional\n\t\t\t\t:path=\"mdiChevronRight\" />\n\t\t\t<NcIconSvgWrapper v-else-if=\"isChecked\" :path=\"mdiCheck\" class=\"action-button__pressed-icon\" />\n\n\t\t\t<span v-else-if=\"isChecked === false\" class=\"action-button__pressed-icon material-design-icon\" />\n\n\t\t\t<!-- fake slot to gather inner text -->\n\t\t\t<slot v-if=\"false\" />\n\t\t</button>\n\t</li>\n</template>\n\n<script>\nimport { mdiCheck, mdiChevronRight } from '@mdi/js'\nimport NcIconSvgWrapper from '../NcIconSvgWrapper/NcIconSvgWrapper.vue'\nimport ActionTextMixin from '../../mixins/actionText.js'\nimport { NC_ACTIONS_IS_SEMANTIC_MENU } from '../NcActions/useNcActions.ts'\n\n/**\n * Button component to be used in Actions\n */\nexport default {\n\tname: 'NcActionButton',\n\n\tcomponents: {\n\t\tNcIconSvgWrapper,\n\t},\n\n\tmixins: [ActionTextMixin],\n\n\tinject: {\n\t\tisInSemanticMenu: {\n\t\t\tfrom: NC_ACTIONS_IS_SEMANTIC_MENU,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * disabled state of the action button\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 * If this is a menu, a chevron icon will\n\t\t * be added at the end of the line\n\t\t */\n\t\tisMenu: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * The button's behavior, by default the button acts like a normal button with optional toggle button behavior if `modelValue` is `true` or `false`.\n\t\t * But you can also set to checkbox button behavior with tri-state or radio button like behavior.\n\t\t * This extends the native HTML button type attribute.\n\t\t */\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tdefault: 'button',\n\t\t\tvalidator: (behavior) => ['button', 'checkbox', 'radio', 'reset', 'submit'].includes(behavior),\n\t\t},\n\n\t\t/**\n\t\t * The buttons state if `type` is 'checkbox' or 'radio' (meaning if it is pressed / selected).\n\t\t * For checkbox and toggle button behavior - boolean value.\n\t\t * For radio button behavior - could be a boolean checked or a string with the value of the button.\n\t\t * Note: Unlike native radio buttons, NcActionButton are not grouped by name, so you need to connect them by bind correct modelValue.\n\t\t *\n\t\t * **This is not availabe for `type='submit'` or `type='reset'`**\n\t\t *\n\t\t * If using `type='checkbox'` a `model-value` of `true` means checked, `false` means unchecked and `null` means indeterminate (tri-state)\n\t\t * For `type='radio'` `null` is equal to `false`\n\t\t */\n\t\tmodelValue: {\n\t\t\ttype: [Boolean, String],\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * The value used for the `modelValue` when this component is used with radio behavior\n\t\t * Similar to the `value` attribute of `<input type=\"radio\">`\n\t\t */\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Small underlying text content of the entry\n\t\t */\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\temits: ['update:modelValue'],\n\n\tsetup() {\n\t\treturn {\n\t\t\tmdiCheck,\n\t\t\tmdiChevronRight,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * determines if the action is focusable\n\t\t *\n\t\t * @return {boolean} is the action focusable ?\n\t\t */\n\t\tisFocusable() {\n\t\t\treturn !this.disabled\n\t\t},\n\n\t\t/**\n\t\t * The current \"checked\" or \"pressed\" state for the model behavior\n\t\t */\n\t\tisChecked() {\n\t\t\tif (this.type === 'radio' && typeof this.modelValue !== 'boolean') {\n\t\t\t\treturn this.modelValue === this.value\n\t\t\t}\n\t\t\treturn this.modelValue\n\t\t},\n\n\t\t/**\n\t\t * The native HTML type to set on the button\n\t\t */\n\t\tnativeType() {\n\t\t\tif (this.type === 'submit' || this.type === 'reset') {\n\t\t\t\treturn this.type\n\t\t\t}\n\t\t\treturn 'button'\n\t\t},\n\n\t\t/**\n\t\t * HTML attributes to bind to the <button>\n\t\t */\n\t\tbuttonAttributes() {\n\t\t\tconst attributes = {}\n\n\t\t\tif (this.isInSemanticMenu) {\n\t\t\t\t// By default it needs to be a menu item in semantic menus\n\t\t\t\tattributes.role = 'menuitem'\n\n\t\t\t\tif (this.type === 'radio') {\n\t\t\t\t\tattributes.role = 'menuitemradio'\n\t\t\t\t\tattributes['aria-checked'] = this.isChecked ? 'true' : 'false'\n\t\t\t\t} else if (this.type === 'checkbox' || (this.nativeType === 'button' && this.modelValue !== null)) {\n\t\t\t\t\t// either if checkbox behavior was set or the model value is not unset\n\t\t\t\t\tattributes.role = 'menuitemcheckbox'\n\t\t\t\t\tattributes['aria-checked'] = this.modelValue === null ? 'mixed' : (this.modelValue ? 'true' : 'false')\n\t\t\t\t}\n\t\t\t} else if (this.modelValue !== null && this.nativeType === 'button') {\n\t\t\t\t// In case this has a modelValue it is considered a toggle button, so we need to set the aria-pressed\n\t\t\t\tattributes['aria-pressed'] = this.modelValue ? 'true' : 'false'\n\t\t\t}\n\n\t\t\treturn attributes\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Forward click event, let mixin handle the close-after-click and emit new modelValue if needed\n\t\t *\n\t\t * @param {MouseEvent} event - The click event\n\t\t */\n\t\thandleClick(event) {\n\t\t\tthis.onClick(event)\n\t\t\t// If modelValue or type is set (so modelValue might be null for tri-state) we need to update it\n\t\t\tif (this.modelValue !== null || this.type !== 'button') {\n\t\t\t\tif (this.type === 'radio') {\n\t\t\t\t\tif (typeof this.modelValue !== 'boolean') {\n\t\t\t\t\t\t// String-value radios behavior is similar to native - click on checked radio does nothing\n\t\t\t\t\t\tif (!this.isChecked) {\n\t\t\t\t\t\t\tthis.$emit('update:modelValue', this.value)\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Boolean radio allows to uncheck\n\t\t\t\t\t\tthis.$emit('update:modelValue', !this.isChecked)\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Checkbox toggles value\n\t\t\t\t\tthis.$emit('update:modelValue', !this.isChecked)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@use '../../assets/action.scss' as *;\n@include action-active;\n@include action--disabled;\n@include action-item('button');\n\n.action-button {\n\t&__pressed-icon {\n\t\tmargin-inline: auto calc($icon-margin * -1);\n\t}\n\n\t* {\n\t\tcursor: pointer;\n\t}\n}\n</style>\n"],"names":["_createElementBlock","_normalizeClass","_createElementVNode","_mergeProps","_renderSlot","_normalizeStyle","_toDisplayString","_createBlock","_openBlock"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"NcActionButtonGroup-QgGuZcPA.mjs","sources":["../../src/components/NcActionButtonGroup/NcActionButtonGroup.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\nThis component is made to be used inside of the [NcActions](#NcActions) component slots,\nto group buttons as one visual action, like for text alignment.\nThis should be used sparingly for accessibility.\n\n```vue\n<template>\n\t<div style=\"display: flex; align-items: center;\">\n\t\t<NcActions>\n\t\t\t<NcActionButtonGroup name=\"Text alignment\">\n\t\t\t\t<NcActionButton aria-label=\"Align left\"\n\t\t\t\t\tv-model=\"alignment\"\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\tvalue=\"l\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<AlignLeft :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcActionButton>\n\t\t\t\t<NcActionButton aria-label=\"Align center\"\n\t\t\t\t\tv-model=\"alignment\"\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\tvalue=\"c\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<AlignCenter :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcActionButton>\n\t\t\t\t<NcActionButton aria-label=\"Align right\"\n\t\t\t\t\tv-model=\"alignment\"\n\t\t\t\t\ttype=\"radio\"\n\t\t\t\t\tvalue=\"r\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<AlignRight :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcActionButton>\n\t\t\t</NcActionButtonGroup>\n\t\t\t<NcActionButton :close-after-click=\"true\"\n\t\t\t\t@click=\"showMessage('Some other action')\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Plus :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tSome other action\n\t\t\t</NcActionButton>\n\t\t</NcActions>\n\t</div>\n</template>\n<script>\nimport AlignLeft from 'vue-material-design-icons/AlignHorizontalLeft'\nimport AlignRight from 'vue-material-design-icons/AlignHorizontalRight'\nimport AlignCenter from 'vue-material-design-icons/AlignHorizontalCenter'\nimport Plus from 'vue-material-design-icons/Plus'\n\nexport default {\n\tcomponents: {\n\t\tAlignLeft,\n\t\tAlignRight,\n\t\tAlignCenter,\n\t\tPlus,\n\t},\n\tdata() {\n\t\treturn { alignment: 'l' }\n\t},\n\tmethods: {\n\t\tshowMessage(msg) {\n\t\t\talert(msg)\n\t\t},\n\t},\n}\n</script>\n```\n</docs>\n\n<template>\n\t<li class=\"nc-button-group-base\" :role=\"isInSemanticMenu && 'presentation'\">\n\t\t<div v-if=\"name\" :id=\"labelId\">\n\t\t\t{{ name }}\n\t\t</div>\n\t\t<ul class=\"nc-button-group-content\" role=\"group\" :aria-labelledby=\"name ? labelId : undefined\">\n\t\t\t<slot />\n\t\t</ul>\n\t</li>\n</template>\n\n<script>\nimport { defineComponent } from 'vue'\nimport { t } from '../../l10n.ts'\nimport { createElementId } from '../../utils/createElementId.ts'\nimport { NC_ACTIONS_IS_SEMANTIC_MENU } from '../NcActions/useNcActions.ts'\n\n/**\n * A wrapper for allowing inlining NcAction components within the action menu\n */\nexport default defineComponent({\n\tname: 'NcActionButtonGroup',\n\n\tinject: {\n\t\tisInSemanticMenu: {\n\t\t\tfrom: NC_ACTIONS_IS_SEMANTIC_MENU,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Optional text shown below the button group\n\t\t */\n\t\tname: {\n\t\t\trequired: false,\n\t\t\tdefault: undefined,\n\t\t\ttype: String,\n\t\t},\n\t},\n\n\tsetup() {\n\t\treturn {\n\t\t\tlabelId: createElementId(),\n\t\t}\n\t},\n\n\tmethods: {\n\t\tt,\n\t},\n})\n</script>\n\n<style lang=\"scss\" scoped>\n.nc-button-group-base {\n\t>div {\n\t\ttext-align: center;\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\tul.nc-button-group-content {\n\t\tdisplay: flex;\n\t\tgap: 4px; // required for the focus-visible outline\n\t\tjustify-content: space-between;\n\t\t:slotted(li) {\n\t\t\tflex: 1 1;\n\t\t}\n\n\t\t:deep(.action-button) {\n\t\t\t// Fix action buttons beeing shifted to the left (right padding)\n\t\t\tpadding: 0 !important;\n\t\t\twidth: 100%;\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: center;\n\n\t\t\t&.action-button--active {\n\t\t\t\tbackground-color: var(--color-primary-element);\n\t\t\t\tborder-radius: var(--border-radius-element);\n\t\t\t\tcolor: var(--color-primary-element-text);\n\n\t\t\t\t&:hover, &:focus, &:focus-within {\n\t\t\t\t\tbackground-color: var(--color-primary-element-hover);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.action-button__pressed-icon {\n\t\t\t\tdisplay: none;\n\t\t\t}\n\t\t}\n\t}\n}\n</style>\n"],"names":["_createElementBlock","_createElementVNode","_renderSlot"],"mappings":";;;;;;AAgGA,MAAK,YAAa,gBAAa;AAAA,EAC9B,MAAM;AAAA,EAEN,QAAQ;AAAA,IACP,kBAAkB;AAAA,MACjB,MAAM;AAAA,MACN,SAAS;AAAA;;EAIX,OAAO;AAAA;AAAA;AAAA;AAAA,IAIN,MAAM;AAAA,MACL,UAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAM;AAAA;;EAIR,QAAQ;AACP,WAAO;AAAA,MACN,SAAS,gBAAe;AAAA,IACzB;AAAA,EACD;AAAA,EAEA,SAAS;AAAA,IACR;AAAA;AAEF,CAAC;;;;;sBAjDAA,mBAOK,MAAA;AAAA,IAPD,OAAM;AAAA,IAAwB,MAAM,KAAA,oBAAgB;AAAA;IAC5C,KAAA,qBAAXA,mBAEM,OAAA;AAAA;MAFY,IAAI,KAAA;AAAA,uBAClB,KAAA,IAAI,GAAA,GAAA,UAAA;IAERC,mBAEK,MAAA;AAAA,MAFD,OAAM;AAAA,MAA0B,MAAK;AAAA,MAAS,mBAAiB,KAAA,OAAO,KAAA,UAAU;AAAA;MACnFC,WAAQ,KAAA,QAAA,SAAA;AAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"NcActionInput-Bw4UxfFB.mjs","sources":["../../src/components/NcActionInput/NcActionInput.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\nThis component is made to be used inside of the [NcActions](#NcActions) component slots.\n\nIt is recommended to not only provide a placeholder, but also a label.\nThe label should describe what input is expected and the placehold what format the input should have.\n\nAll undocumented attributes will be bound to the input, the datepicker or the select component, e.g. `maxlength`, `not-before`.\nFor the `NcSelect` component, all events will be passed through. Please see the `NcSelect` component's documentation for more details and examples.\n```vue\n\t<template>\n\t\t<NcActions>\n\t\t\t<NcActionInput v-model=\"text\" :label-outside=\"true\" label=\"Label outside the input\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcActionInput>\n\t\t\t<NcActionInput v-model=\"text\" :show-trailing-button=\"false\" label=\"Input without trailing button\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcActionInput>\n\t\t\t<NcActionInput v-model=\"text\" label=\"Input with placeholder\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tThis is the placeholder\n\t\t\t</NcActionInput>\n\t\t\t<NcActionInput type=\"password\" v-model=\"text\" label=\"Password with visible label\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Key :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tPassword placeholder\n\t\t\t</NcActionInput>\n\t\t\t<NcActionInput type=\"password\" v-model=\"text\" :show-trailing-button=\"false\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Key :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tPassword placeholder\n\t\t\t</NcActionInput>\n\t\t\t<NcActionInput type=\"color\" v-model=\"color\" label=\"Favorite color\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Eyedropper :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tColor placeholder\n\t\t\t</NcActionInput>\n\t\t\t<NcActionInput label=\"Visible label\" v-model=\"text\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tInput with visible label\n\t\t\t</NcActionInput>\n\t\t\t<NcActionInput :disabled=\"true\" label=\"This is a disabled input\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Close :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcActionInput>\n\t\t\t<NcActionInput type=\"date\" isNativePicker v-model=\"date\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tPlease pick a date\n\t\t\t</NcActionInput>\n\t\t\t<NcActionInput type=\"date\" v-model=\"date\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tPlease pick a date\n\t\t\t</NcActionInput>\n\t\t\t<NcActionInput\n\t\t\t\ttype=\"multiselect\"\n\t\t\t\tinput-label=\"Fruit selection\"\n\t\t\t\t:options=\"['Apple', 'Banana', 'Cherry']\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tPlease pick a fruit\n\t\t\t</NcActionInput>\n\t\t\t<NcActionInput\n\t\t\t\tv-model=\"multiSelected\"\n\t\t\t\ttype=\"multiselect\"\n\t\t\t\tinput-label=\"Fruit selection\"\n\t\t\t\ttrack-by=\"id\"\n\t\t\t\t:append-to-body=\"true\"\n\t\t\t\t:multiple=\"true\"\n\t\t\t\t:options=\"[{label:'Apple', id: 'apple'}, {label:'Banana', id: 'banana'}, {label:'Cherry', id: 'cherry'}]\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<Pencil :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\tPlease pick a fruit object\n\t\t\t</NcActionInput>\n\t\t</NcActions>\n\t</template>\n\t<script>\n\timport Close from 'vue-material-design-icons/Close'\n\timport Eyedropper from 'vue-material-design-icons/Eyedropper'\n\timport Key from 'vue-material-design-icons/Key'\n\timport Pencil from 'vue-material-design-icons/Pencil'\n\n\texport default {\n\t\tcomponents: {\n\t\t\tClose,\n\t\t\tEyedropper,\n\t\t\tKey,\n\t\t\tPencil,\n\t\t},\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tcolor: '#0082C9',\n\t\t\t\tdate: new Date(),\n\t\t\t\ttext: 'This is the input text',\n\t\t\t\tmultiSelected: [],\n\t\t\t}\n\t\t},\n\t}\n\t</script>\n```\n</docs>\n\n<template>\n\t<li class=\"action\" :class=\"[{ 'action--disabled': disabled }, $props.class]\">\n\t\t<span\n\t\t\tclass=\"action-input\"\n\t\t\t:class=\"{\n\t\t\t\t'action-input-picker--disabled': disabled,\n\t\t\t\t'action-input--visible-label': labelOutside && label,\n\t\t\t}\"\n\t\t\t@mouseleave=\"onLeave\">\n\t\t\t<span class=\"action-input__icon-wrapper\">\n\t\t\t\t<!-- @slot Manually provide icon -->\n\t\t\t\t<slot name=\"icon\">\n\t\t\t\t\t<span\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\tclass=\"action-input__icon\"\n\t\t\t\t\t\t:class=\"[isIconUrl ? 'action-input__icon--url' : icon]\"\n\t\t\t\t\t\t:style=\"{ backgroundImage: isIconUrl ? `url(${icon})` : null }\" />\n\t\t\t\t</slot>\n\t\t\t</span>\n\n\t\t\t<!-- form and input -->\n\t\t\t<form\n\t\t\t\tref=\"form\"\n\t\t\t\tclass=\"action-input__form\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t@submit.prevent=\"onSubmit\">\n\t\t\t\t<div class=\"action-input__container\">\n\t\t\t\t\t<label\n\t\t\t\t\t\tv-if=\"label && labelOutside\"\n\t\t\t\t\t\tclass=\"action-input__text-label\"\n\t\t\t\t\t\t:class=\"{ 'action-input__text-label--hidden': !labelOutside }\"\n\t\t\t\t\t\t:for=\"inputId\">\n\t\t\t\t\t\t{{ label }}\n\t\t\t\t\t</label>\n\t\t\t\t\t<div class=\"action-input__input-container\">\n\n\t\t\t\t\t\t<NcDateTimePicker\n\t\t\t\t\t\t\tv-if=\"datePickerType\"\n\t\t\t\t\t\t\tref=\"datetimepicker\"\n\t\t\t\t\t\t\t:model-value=\"modelValue\"\n\t\t\t\t\t\t\tstyle=\"z-index: 99999999999;\"\n\t\t\t\t\t\t\t:placeholder=\"text\"\n\t\t\t\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t\t\t\t:type=\"datePickerType\"\n\t\t\t\t\t\t\t:input-class=\"['mx-input', { focusable: isFocusable }]\"\n\t\t\t\t\t\t\tclass=\"action-input__datetimepicker\"\n\t\t\t\t\t\t\tv-bind=\"$attrs\"\n\t\t\t\t\t\t\t@update:model-value=\"onUpdateModelValue\" />\n\n\t\t\t\t\t\t<NcDateTimePickerNative\n\t\t\t\t\t\t\tv-else-if=\"isNativePicker\"\n\t\t\t\t\t\t\t:id=\"idNativeDateTimePicker\"\n\t\t\t\t\t\t\t:model-value=\"modelValue\"\n\t\t\t\t\t\t\t:type=\"nativeDatePickerType\"\n\t\t\t\t\t\t\t:input-class=\"{ focusable: isFocusable }\"\n\t\t\t\t\t\t\tclass=\"action-input__datetimepicker\"\n\t\t\t\t\t\t\tv-bind=\"$attrs\"\n\t\t\t\t\t\t\t@update:model-value=\"onUpdateModelValue\" />\n\n\t\t\t\t\t\t<NcSelect\n\t\t\t\t\t\t\tv-else-if=\"isMultiselectType\"\n\t\t\t\t\t\t\t:model-value=\"modelValue\"\n\t\t\t\t\t\t\t:placeholder=\"text\"\n\t\t\t\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t\t\t\t:append-to-body=\"false\"\n\t\t\t\t\t\t\t:input-class=\"{ focusable: isFocusable }\"\n\t\t\t\t\t\t\tclass=\"action-input__multi\"\n\t\t\t\t\t\t\tv-bind=\"$attrs\"\n\t\t\t\t\t\t\t@update:model-value=\"onUpdateModelValue\" />\n\n\t\t\t\t\t\t<NcPasswordField\n\t\t\t\t\t\t\tv-else-if=\"type === 'password'\"\n\t\t\t\t\t\t\t:id=\"inputId\"\n\t\t\t\t\t\t\t:model-value=\"modelValue\"\n\t\t\t\t\t\t\t:label=\"label\"\n\t\t\t\t\t\t\t:label-outside=\"!label || labelOutside\"\n\t\t\t\t\t\t\t:placeholder=\"text\"\n\t\t\t\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t\t\t\t:input-class=\"{ focusable: isFocusable }\"\n\t\t\t\t\t\t\t:show-trailing-button=\"showTrailingButton && !disabled\"\n\t\t\t\t\t\t\tv-bind=\"$attrs\"\n\t\t\t\t\t\t\t@update:model-value=\"onUpdateModelValue\" />\n\n\t\t\t\t\t\t<div v-else-if=\"type === 'color'\" class=\"action-input__container\">\n\t\t\t\t\t\t\t<label\n\t\t\t\t\t\t\t\tv-if=\"label && type === 'color'\"\n\t\t\t\t\t\t\t\tclass=\"action-input__text-label\"\n\t\t\t\t\t\t\t\t:class=\"{ 'action-input__text-label--hidden': !labelOutside }\"\n\t\t\t\t\t\t\t\t:for=\"inputId\">\n\t\t\t\t\t\t\t\t{{ label }}\n\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t<div class=\"action-input__input-container\">\n\t\t\t\t\t\t\t\t<NcColorPicker\n\t\t\t\t\t\t\t\t\tid=\"inputId\"\n\t\t\t\t\t\t\t\t\t:model-value=\"modelValue\"\n\t\t\t\t\t\t\t\t\tclass=\"colorpicker__trigger\"\n\t\t\t\t\t\t\t\t\tv-bind=\"$attrs\"\n\t\t\t\t\t\t\t\t\t@update:model-value=\"onUpdateModelValue\"\n\t\t\t\t\t\t\t\t\t@submit=\"$refs.form.requestSubmit()\">\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\tclass=\"colorpicker__preview\"\n\t\t\t\t\t\t\t\t\t\t:class=\"{ focusable: isFocusable }\"\n\t\t\t\t\t\t\t\t\t\t:style=\"{ 'background-color': modelValue }\" />\n\t\t\t\t\t\t\t\t</NcColorPicker>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<NcTextField\n\t\t\t\t\t\t\tv-else\n\t\t\t\t\t\t\t:id=\"inputId\"\n\t\t\t\t\t\t\t:model-value=\"modelValue\"\n\t\t\t\t\t\t\t:label=\"label\"\n\t\t\t\t\t\t\t:label-outside=\"!label || labelOutside\"\n\t\t\t\t\t\t\t:placeholder=\"text\"\n\t\t\t\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t\t\t\t:input-class=\"{ focusable: isFocusable }\"\n\t\t\t\t\t\t\t:type=\"type\"\n\t\t\t\t\t\t\ttrailing-button-icon=\"arrowRight\"\n\t\t\t\t\t\t\t:trailing-button-label=\"trailingButtonLabel\"\n\t\t\t\t\t\t\t:show-trailing-button=\"showTrailingButton && !disabled\"\n\t\t\t\t\t\t\tv-bind=\"$attrs\"\n\t\t\t\t\t\t\t@trailing-button-click=\"$refs.form.requestSubmit()\"\n\t\t\t\t\t\t\t@update:model-value=\"onUpdateModelValue\" />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</form>\n\t\t</span>\n\t</li>\n</template>\n\n<script>\nimport { defineAsyncComponent } from 'vue'\nimport { t } from '../../l10n.ts'\nimport ActionGlobalMixin from '../../mixins/actionGlobal.js'\nimport { createElementId } from '../../utils/createElementId.ts'\nimport NcDateTimePickerNative from '../NcDateTimePickerNative/index.ts'\nimport NcPasswordField from '../NcPasswordField/index.ts'\nimport NcTextField from '../NcTextField/index.ts'\n\nexport default {\n\tname: 'NcActionInput',\n\n\tcomponents: {\n\t\tNcDateTimePickerNative,\n\t\tNcPasswordField,\n\t\tNcTextField,\n\t\t// Lazy load components with more than 50kB bundle size impact\n\t\tNcColorPicker: defineAsyncComponent(() => import('../NcColorPicker/index.ts')),\n\t\tNcDateTimePicker: defineAsyncComponent(() => import('../NcDateTimePicker/index.js')),\n\t\tNcSelect: defineAsyncComponent(() => import('../NcSelect/index.js')),\n\t},\n\n\tmixins: [ActionGlobalMixin],\n\n\tinheritAttrs: false,\n\n\tprops: {\n\t\t/**\n\t\t * id attribute of the checkbox element\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\tdefault: () => 'action-' + createElementId(),\n\t\t\tvalidator: (id) => id.trim() !== '',\n\t\t},\n\n\t\t/**\n\t\t * id attribute of the text input element\n\t\t */\n\t\tinputId: {\n\t\t\ttype: String,\n\t\t\tdefault: () => 'action-input-' + createElementId(),\n\t\t\tvalidator: (id) => id.trim() !== '',\n\t\t},\n\n\t\t/**\n\t\t * Icon to show with the action, can be either a CSS class or an URL\n\t\t */\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * type attribute of the input field\n\t\t */\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tdefault: 'text',\n\t\t\tvalidator(type) {\n\t\t\t\treturn [\n\t\t\t\t\t'date',\n\t\t\t\t\t'datetime-local',\n\t\t\t\t\t'month',\n\t\t\t\t\t'multiselect',\n\t\t\t\t\t'number',\n\t\t\t\t\t'password',\n\t\t\t\t\t'search',\n\t\t\t\t\t'tel',\n\t\t\t\t\t'text',\n\t\t\t\t\t'time',\n\t\t\t\t\t'url',\n\t\t\t\t\t'week',\n\t\t\t\t\t'color',\n\t\t\t\t\t'email',\n\t\t\t\t].includes(type)\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * id attribute for the native date time picker\n\t\t */\n\t\tidNativeDateTimePicker: {\n\t\t\ttype: String,\n\t\t\tdefault: 'date-time-picker_id',\n\t\t},\n\n\t\t/**\n\t\t * Flag to use a native date time picker\n\t\t */\n\t\tisNativePicker: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * The visible input label for accessibility purposes.\n\t\t */\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * If you want to show the label just above the\n\t\t * input field, pass in `true` to this prop.\n\t\t */\n\t\tlabelOutside: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\n\t\t/**\n\t\t * value attribute of the input field\n\t\t */\n\t\tmodelValue: {\n\t\t\ttype: [String, Date, Number, Array],\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * disabled state of the input field\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 * aria-label attribute of the input field\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Attribute forwarded to the underlying NcPasswordField and NcTextField\n\t\t */\n\t\tshowTrailingButton: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\n\t\t/**\n\t\t * Trailing button label forwarded to the underlying NcTextField\n\t\t */\n\t\ttrailingButtonLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: t('Submit'),\n\t\t},\n\n\t\t/**\n\t\t * CSS class to apply to the root element.\n\t\t */\n\t\tclass: {\n\t\t\ttype: [String, Array, Object],\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\temits: [\n\t\t'submit',\n\t\t'update:modelValue',\n\t],\n\n\tcomputed: {\n\t\tisIconUrl() {\n\t\t\ttry {\n\t\t\t\treturn new URL(this.icon)\n\t\t\t} catch {\n\t\t\t\treturn false\n\t\t\t}\n\t\t},\n\n\t\tisMultiselectType() {\n\t\t\treturn this.type === 'multiselect'\n\t\t},\n\n\t\tnativeDatePickerType() {\n\t\t\tswitch (this.type) {\n\t\t\t\tcase 'date':\n\t\t\t\tcase 'month':\n\t\t\t\tcase 'time':\n\t\t\t\tcase 'week':\n\t\t\t\tcase 'datetime-local':\n\t\t\t\t\treturn this.type\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\n\t\tdatePickerType() {\n\t\t\tif (!this.isNativePicker) {\n\t\t\t\tswitch (this.type) {\n\t\t\t\t\tcase 'date':\n\t\t\t\t\tcase 'month':\n\t\t\t\t\tcase 'time':\n\t\t\t\t\t\treturn this.type\n\n\t\t\t\t\tcase 'datetime-local':\n\t\t\t\t\t\treturn 'datetime'\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\n\t\t/**\n\t\t * determines if the action is focusable\n\t\t *\n\t\t * @return {boolean} is the action focusable ?\n\t\t */\n\t\tisFocusable() {\n\t\t\treturn !this.disabled\n\t\t},\n\t},\n\n\tmethods: {\n\t\t// closing datepicker popup on mouseleave = unfocus\n\t\tonLeave() {\n\t\t\tif (this.$refs.datetimepicker && this.$refs.datetimepicker.$refs.datepicker) {\n\t\t\t\tthis.$refs.datetimepicker.$refs.datepicker.closePopup()\n\t\t\t}\n\t\t},\n\n\t\tonSubmit(event) {\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\tif (!this.disabled) {\n\t\t\t\t/**\n\t\t\t\t * Emitted on submit of the input field\n\t\t\t\t *\n\t\t\t\t * @type {Event}\n\t\t\t\t */\n\t\t\t\tthis.$emit('submit', event)\n\t\t\t} else {\n\t\t\t\t// ignore submit\n\t\t\t\treturn false\n\t\t\t}\n\t\t},\n\n\t\tonUpdateModelValue(event) {\n\t\t\t/**\n\t\t\t * Emitted on update of the model value\n\t\t\t *\n\t\t\t * @type {Event}\n\t\t\t */\n\t\t\tthis.$emit('update:modelValue', event)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@use '../../assets/inputs.scss';\n@use '../../assets/action.scss' as *;\n@include action-active;\n@include action--disabled;\n\n$input-margin: 4px;\n\n.action-input {\n\tdisplay: flex;\n\talign-items: flex-start;\n\n\twidth: 100%;\n\theight: auto;\n\tmargin: 0;\n\tpadding: 0;\n\n\tcursor: pointer;\n\twhite-space: nowrap;\n\n\tcolor: var(--color-main-text);\n\tborder: 0;\n\tborder-radius: 0; // otherwise Safari will cut the border-radius area\n\tbackground-color: transparent;\n\tbox-shadow: none;\n\n\tfont-weight: normal;\n\n\t&__icon-wrapper {\n\t\tdisplay: flex;\n\t\talign-self: center;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\n\t\t&:deep(.material-design-icon) {\n\t\t\twidth: var(--default-clickable-area);\n\t\t\theight: var(--default-clickable-area);\n\t\t\topacity: $opacity_full;\n\n\t\t\t.material-design-icon__svg {\n\t\t\t\tvertical-align: middle;\n\t\t\t}\n\t\t}\n\t}\n\n\t& > span {\n\t\tcursor: pointer;\n\t\twhite-space: nowrap;\n\t}\n\n\t&__icon {\n\t\tmin-width: 0; /* Overwrite icons*/\n\t\tmin-height: 0;\n\t\t// Keep padding to define the width to assure correct position of a possible text\n\t\tpadding: calc(var(--default-clickable-area) / 2) 0 calc(var(--default-clickable-area) / 2) var(--default-clickable-area);\n\n\t\tbackground-position: #{$icon-margin} center;\n\t\tbackground-size: $icon-size;\n\t}\n\n\t// Forms & text inputs\n\t&__form {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tflex: 1 1 auto;\n\n\t\tmargin: $input-margin 0;\n\t\tpadding-inline-end: $icon-margin;\n\t}\n\n\t&__container {\n\t\tposition: relative;\n\t\twidth: 100%;\n\t}\n\n\t&__input-container {\n\t\tdisplay: flex;\n\n\t\t.colorpicker {\n\t\t\t&__trigger,\n\t\t\t&__preview {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\t&__preview {\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 36px;\n\t\t\t\tborder-radius: var(--border-radius-element);\n\t\t\t\tborder: 2px solid var(--color-border-maxcontrast);\n\t\t\t\tbox-shadow: none !important;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__text-label {\n\t\tpadding: 4px 0;\n\t\tdisplay: block;\n\n\t\t&--hidden {\n\t\t\tposition: absolute;\n\t\t\tinset-inline-start: 0;\n\t\t\twidth: 1px;\n\t\t\theight: 1px;\n\t\t\toverflow: hidden;\n\t\t\tz-index: -1;\n\t\t\topacity: 0;\n\t\t}\n\t}\n\n\t&__datetimepicker {\n\t\twidth: 100%;\n\n\t\t:deep(.mx-input) {\n\t\t\tmargin: 0;\n\t\t}\n\t}\n\n\t&__multi {\n\t\twidth: 100%;\n\t}\n}\n\n// if a form is the last of the list\n// add the same bottomMargin as the right padding\n// for visual balance\nli:last-child > .action-input {\n\tpadding-bottom: calc($icon-margin - $input-margin);\n}\n\n// same for first item\nli:first-child > .action-input:not(.action-input--visible-label) {\n\tpadding-top: calc($icon-margin - $input-margin);\n}\n\n</style>\n"],"names":["NcTextField","_createElementBlock","_createElementVNode","_renderSlot","_normalizeClass","_normalizeStyle","_openBlock","_createBlock","_mergeProps","_createVNode"],"mappings":"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"}