@nextcloud/vue 9.0.0-rc.3 → 9.0.0-rc.5

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 (342) hide show
  1. package/CHANGELOG.md +114 -28
  2. package/dist/assets/{NcActionButtonGroup-BND4GQdv.css → NcActionButtonGroup-BLIEEeG3.css} +1 -1
  3. package/dist/assets/NcActionInput-BZCvMPVy.css +221 -0
  4. package/dist/assets/{NcActionText-CWAPsJmz.css → NcActionText-BtzLDZeJ.css} +18 -18
  5. package/dist/assets/{NcActionTextEditable-BbOijUsB.css → NcActionTextEditable-D5stkJZK.css} +3 -8
  6. package/dist/assets/{NcActions-DxcpMfrs.css → NcActions-CG3xO48Y.css} +13 -13
  7. package/dist/assets/{NcAppContent-Zgn8-wsd.css → NcAppContent-vj2DL4Yr.css} +23 -23
  8. package/dist/assets/{NcAppNavigationItem-B27WFnUV.css → NcAppNavigationItem-CFT8K0Dn.css} +37 -37
  9. package/dist/assets/{NcAppNavigationNewItem-BrLekTMb.css → NcAppNavigationNewItem-CCu1yQxq.css} +35 -35
  10. package/dist/assets/{NcAppNavigationSearch-BAzhDRd7.css → NcAppNavigationSearch-Ct6uMFNo.css} +5 -8
  11. package/dist/assets/{NcAppNavigationToggle-M0oDbwAS.css → NcAppNavigationToggle-B4XuIU5N.css} +3 -3
  12. package/dist/assets/{NcAppSettingsDialog-DfBJYMdm.css → NcAppSettingsDialog-BtS89pIY.css} +11 -11
  13. package/dist/assets/{NcAppSidebar-PG3qIdkG.css → NcAppSidebar-DlLDB8Ba.css} +61 -77
  14. package/dist/assets/{NcAppSidebarTab-BFy7uyWe.css → NcAppSidebarTab-cWhpTGp7.css} +4 -4
  15. package/dist/assets/{NcAvatar-C01qP9VA.css → NcAvatar-j5lkSXJF.css} +24 -24
  16. package/dist/assets/{NcButton-Cpw_vPKw.css → NcButton-Cl53rV4b.css} +52 -53
  17. package/dist/assets/{NcCheckboxRadioSwitch-DKVMIvxJ.css → NcCheckboxRadioSwitch-Cbnc4p0H.css} +35 -35
  18. package/dist/assets/{NcChip-rGBYOr-Q.css → NcChip-1ZmWY_6e.css} +9 -9
  19. package/dist/assets/{NcCollectionList-DTJgOfCk.css → NcCollectionList-C7_FPg95.css} +42 -42
  20. package/dist/assets/{NcColorPicker-DgByWqzp.css → NcColorPicker-DlQH2IqY.css} +31 -31
  21. package/dist/assets/{NcContent-C12jLe34.css → NcContent-D1ab_Xg2.css} +10 -10
  22. package/dist/assets/{NcCounterBubble-DpKQwKTI.css → NcCounterBubble-C0CtLaMW.css} +8 -8
  23. package/dist/assets/{NcDashboardWidget-BEYk4O95.css → NcDashboardWidget-CTP_ajin.css} +13 -13
  24. package/dist/assets/{NcDashboardWidgetItem-V_jSEH-7.css → NcDashboardWidgetItem-DYwI3Qof.css} +13 -13
  25. package/dist/assets/NcDateTimePicker-D10v2GzZ.css +1228 -0
  26. package/dist/assets/NcDateTimePickerNative-B7hWPWho.css +60 -0
  27. package/dist/assets/{NcDialog-Ch6FuMQo.css → NcDialog-B9626mow.css} +16 -16
  28. package/dist/assets/{NcEmojiPicker-kxoeGEM5.css → NcEmojiPicker-CeVpBSVx.css} +5 -5
  29. package/dist/assets/{NcGuestContent-BZ26iXQi.css → NcGuestContent-bgqNfxTA.css} +3 -3
  30. package/dist/assets/{NcHeaderMenu-BAKwNTFx.css → NcHeaderMenu-CP5Nn6tY.css} +12 -13
  31. package/dist/assets/{NcIconSvgWrapper-cYxhjYue.css → NcIconSvgWrapper-CJfAwN6-.css} +11 -11
  32. package/dist/assets/{NcInputConfirmCancel-9YyvRYjw.css → NcInputConfirmCancel-DNNS3DDJ.css} +5 -5
  33. package/dist/assets/{NcInputField-CvP4PFAO.css → NcInputField-BeU51nfg.css} +44 -38
  34. package/dist/assets/{NcListItem-ff6bfJFE.css → NcListItem-BBaZDZQK.css} +44 -44
  35. package/dist/assets/{NcMentionBubble-DLOTFwpl.css → NcMentionBubble-lpms2_3A.css} +9 -9
  36. package/dist/assets/{NcModal-BMVfhs7c.css → NcModal-eBU7G0XQ.css} +62 -62
  37. package/dist/assets/{NcNoteCard-C387qsQO.css → NcNoteCard-BTnxwjLX.css} +10 -10
  38. package/dist/assets/{NcPasswordField-DVV6Eiwf.css → NcPasswordField-CWRwNMKF.css} +2 -2
  39. package/dist/assets/{NcPopover-zFjgXDlM.css → NcPopover-BzkXE_af.css} +2 -2
  40. package/dist/assets/{NcRelatedResourcesPanel-DXfywiqL.css → NcRelatedResourcesPanel-9I4RRIks.css} +26 -26
  41. package/dist/assets/{NcRichContenteditable-KsmFPJmm.css → NcRichContenteditable-Dj22Kx6E.css} +41 -41
  42. package/dist/assets/{NcRichText-Fi_WAwSP.css → NcRichText-Fp8zf8zq.css} +87 -85
  43. package/dist/assets/{NcSelect-BCBpQnFL.css → NcSelect-DjCC5X0A.css} +2 -2
  44. package/dist/assets/{NcSettingsInputText-B-V6Y4MD.css → NcSettingsInputText-B2b1M_wK.css} +5 -5
  45. package/dist/assets/{NcSettingsSection-Dyrgo_fF.css → NcSettingsSection-CxQtVrUq.css} +7 -7
  46. package/dist/assets/{NcSettingsSelectGroup-DZcNr_Dq.css → NcSettingsSelectGroup-BuKKmCtO.css} +3 -3
  47. package/dist/assets/{NcTextArea-DoBYU3IE.css → NcTextArea-BLRA2iY6.css} +22 -22
  48. package/dist/assets/{NcUserStatusIcon-CtJLt6AU.css → NcUserStatusIcon-BcLND4gJ.css} +3 -3
  49. package/dist/assets/{referencePickerModal-CUVCkTmZ.css → referencePickerModal-D80hwmre.css} +53 -53
  50. package/dist/chunks/{NcActionButton-BECWgEPr.mjs → NcActionButton-Bd35_0n4.mjs} +3 -3
  51. package/dist/chunks/{NcActionButton-BECWgEPr.mjs.map → NcActionButton-Bd35_0n4.mjs.map} +1 -1
  52. package/dist/chunks/{NcActionButtonGroup-e4F30E5Z.mjs → NcActionButtonGroup-zqttoOi7.mjs} +3 -3
  53. package/dist/chunks/{NcActionButtonGroup-e4F30E5Z.mjs.map → NcActionButtonGroup-zqttoOi7.mjs.map} +1 -1
  54. package/dist/chunks/{NcActionInput-DYLqm7AP.mjs → NcActionInput-uNqbQcU9.mjs} +10 -10
  55. package/dist/chunks/{NcActionInput-DYLqm7AP.mjs.map → NcActionInput-uNqbQcU9.mjs.map} +1 -1
  56. package/dist/chunks/{NcActionText-DJWBefhJ.mjs → NcActionText-16Mj4-P1.mjs} +3 -4
  57. package/dist/chunks/NcActionText-16Mj4-P1.mjs.map +1 -0
  58. package/dist/chunks/{NcActionTextEditable-ByA0z9nO.mjs → NcActionTextEditable-rS1GklQ7.mjs} +4 -4
  59. package/dist/chunks/{NcActionTextEditable-ByA0z9nO.mjs.map → NcActionTextEditable-rS1GklQ7.mjs.map} +1 -1
  60. package/dist/chunks/{NcActions-iwG1Tj-I.mjs → NcActions-CyXKvnrY.mjs} +8 -8
  61. package/dist/chunks/{NcActions-iwG1Tj-I.mjs.map → NcActions-CyXKvnrY.mjs.map} +1 -1
  62. package/dist/chunks/{NcAppContent-B2qF2-YG.mjs → NcAppContent-BK8bOVDx.mjs} +54 -52
  63. package/dist/chunks/NcAppContent-BK8bOVDx.mjs.map +1 -0
  64. package/dist/chunks/{NcAppNavigation-JoRJnwqf.mjs → NcAppNavigation-Ccjr0Wxc.mjs} +2 -2
  65. package/dist/chunks/{NcAppNavigation-JoRJnwqf.mjs.map → NcAppNavigation-Ccjr0Wxc.mjs.map} +1 -1
  66. package/dist/chunks/{NcAppNavigationCaption-DhwvNbx1.mjs → NcAppNavigationCaption-DxfUoJBO.mjs} +2 -2
  67. package/dist/chunks/{NcAppNavigationCaption-DhwvNbx1.mjs.map → NcAppNavigationCaption-DxfUoJBO.mjs.map} +1 -1
  68. package/dist/chunks/{NcAppNavigationItem-B51Guztu.mjs → NcAppNavigationItem-CSiMEh0V.mjs} +11 -11
  69. package/dist/chunks/{NcAppNavigationItem-B51Guztu.mjs.map → NcAppNavigationItem-CSiMEh0V.mjs.map} +1 -1
  70. package/dist/chunks/{NcAppNavigationNew-CMjaAY5A.mjs → NcAppNavigationNew-CLbVKk5X.mjs} +2 -2
  71. package/dist/chunks/{NcAppNavigationNew-CMjaAY5A.mjs.map → NcAppNavigationNew-CLbVKk5X.mjs.map} +1 -1
  72. package/dist/chunks/{NcAppNavigationNewItem-DyzpvBOb.mjs → NcAppNavigationNewItem-B4TH71qQ.mjs} +6 -6
  73. package/dist/chunks/{NcAppNavigationNewItem-DyzpvBOb.mjs.map → NcAppNavigationNewItem-B4TH71qQ.mjs.map} +1 -1
  74. package/dist/chunks/{NcAppNavigationSearch-CvHp92E-.mjs → NcAppNavigationSearch-BOZ5dS_m.mjs} +5 -5
  75. package/dist/chunks/{NcAppNavigationSearch-CvHp92E-.mjs.map → NcAppNavigationSearch-BOZ5dS_m.mjs.map} +1 -1
  76. package/dist/chunks/{NcAppNavigationSettings-iJ84_lwr.mjs → NcAppNavigationSettings-9FtV3wC6.mjs} +3 -3
  77. package/dist/chunks/{NcAppNavigationSettings-iJ84_lwr.mjs.map → NcAppNavigationSettings-9FtV3wC6.mjs.map} +1 -1
  78. package/dist/chunks/{NcAppNavigationToggle-D3UGt5TV.mjs → NcAppNavigationToggle-D8aIKSiz.mjs} +5 -5
  79. package/dist/chunks/{NcAppNavigationToggle-D3UGt5TV.mjs.map → NcAppNavigationToggle-D8aIKSiz.mjs.map} +1 -1
  80. package/dist/chunks/{NcAppSettingsDialog-CQnZ29WZ.mjs → NcAppSettingsDialog-B4rJQ7w_.mjs} +5 -5
  81. package/dist/chunks/{NcAppSettingsDialog-CQnZ29WZ.mjs.map → NcAppSettingsDialog-B4rJQ7w_.mjs.map} +1 -1
  82. package/dist/chunks/{NcAppSidebar-QEkYs8pt.mjs → NcAppSidebar-D0azvKne.mjs} +13 -13
  83. package/dist/chunks/NcAppSidebar-D0azvKne.mjs.map +1 -0
  84. package/dist/chunks/{NcAppSidebarTab-DG51ajic.mjs → NcAppSidebarTab-D1RmFRTu.mjs} +5 -5
  85. package/dist/chunks/NcAppSidebarTab-D1RmFRTu.mjs.map +1 -0
  86. package/dist/chunks/{NcAvatar-BadoF6cb.mjs → NcAvatar-Ccw1N-kB.mjs} +38 -26
  87. package/dist/chunks/NcAvatar-Ccw1N-kB.mjs.map +1 -0
  88. package/dist/chunks/{NcBreadcrumb-BH4XQJ8K.mjs → NcBreadcrumb-C9ma2_SJ.mjs} +3 -3
  89. package/dist/chunks/{NcBreadcrumb-BH4XQJ8K.mjs.map → NcBreadcrumb-C9ma2_SJ.mjs.map} +1 -1
  90. package/dist/chunks/{NcBreadcrumbs-DyWyrhrJ.mjs → NcBreadcrumbs-kg_aktAn.mjs} +4 -4
  91. package/dist/chunks/{NcBreadcrumbs-DyWyrhrJ.mjs.map → NcBreadcrumbs-kg_aktAn.mjs.map} +1 -1
  92. package/dist/chunks/{NcButton-yN4vYgXb.mjs → NcButton-Df1eAyJ3.mjs} +3 -3
  93. package/dist/chunks/{NcButton-yN4vYgXb.mjs.map → NcButton-Df1eAyJ3.mjs.map} +1 -1
  94. package/dist/chunks/{NcCheckboxRadioSwitch-Di0xbf6d.mjs → NcCheckboxRadioSwitch-D8tOjXwB.mjs} +6 -6
  95. package/dist/chunks/{NcCheckboxRadioSwitch-Di0xbf6d.mjs.map → NcCheckboxRadioSwitch-D8tOjXwB.mjs.map} +1 -1
  96. package/dist/chunks/{NcChip-DfDlpsAh.mjs → NcChip-Bf2JVPf_.mjs} +8 -8
  97. package/dist/chunks/{NcChip-DfDlpsAh.mjs.map → NcChip-Bf2JVPf_.mjs.map} +1 -1
  98. package/dist/chunks/{NcCollectionList-B2PzNHzw.mjs → NcCollectionList-DtD-RXl8.mjs} +16 -13
  99. package/dist/chunks/NcCollectionList-DtD-RXl8.mjs.map +1 -0
  100. package/dist/chunks/{NcColorPicker-CoteX_0P.mjs → NcColorPicker-BRIu0Qel.mjs} +7 -7
  101. package/dist/chunks/{NcColorPicker-CoteX_0P.mjs.map → NcColorPicker-BRIu0Qel.mjs.map} +1 -1
  102. package/dist/chunks/{NcContent-BImnEnMI.mjs → NcContent-BmXFlXrh.mjs} +9 -7
  103. package/dist/chunks/{NcContent-BImnEnMI.mjs.map → NcContent-BmXFlXrh.mjs.map} +1 -1
  104. package/dist/chunks/{NcCounterBubble-PBdqn9Nf.mjs → NcCounterBubble-Bop3e-Tr.mjs} +3 -3
  105. package/dist/chunks/{NcCounterBubble-PBdqn9Nf.mjs.map → NcCounterBubble-Bop3e-Tr.mjs.map} +1 -1
  106. package/dist/chunks/{NcDashboardWidget-DJtdcW-W.mjs → NcDashboardWidget-cBZ_Ub8Q.mjs} +6 -6
  107. package/dist/chunks/{NcDashboardWidget-DJtdcW-W.mjs.map → NcDashboardWidget-cBZ_Ub8Q.mjs.map} +1 -1
  108. package/dist/chunks/{NcDashboardWidgetItem-CZaWF40u.mjs → NcDashboardWidgetItem-BnUtMMCC.mjs} +6 -6
  109. package/dist/chunks/{NcDashboardWidgetItem-CZaWF40u.mjs.map → NcDashboardWidgetItem-BnUtMMCC.mjs.map} +1 -1
  110. package/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang-B0Lci6v0.mjs +36 -0
  111. package/dist/chunks/{NcDateTime.vue_vue_type_script_setup_true_lang-C2VbacBQ.mjs.map → NcDateTime.vue_vue_type_script_setup_true_lang-B0Lci6v0.mjs.map} +1 -1
  112. package/dist/chunks/{NcDateTimePicker-BB--HQog.mjs → NcDateTimePicker-Dliaj0xD.mjs} +149 -94
  113. package/dist/chunks/NcDateTimePicker-Dliaj0xD.mjs.map +1 -0
  114. package/dist/chunks/{NcDateTimePickerNative-DaPzFiYH.mjs → NcDateTimePickerNative-CEm70Aaw.mjs} +4 -4
  115. package/dist/chunks/{NcDateTimePickerNative-DaPzFiYH.mjs.map → NcDateTimePickerNative-CEm70Aaw.mjs.map} +1 -1
  116. package/dist/chunks/{NcDialog-CXVaeWJf.mjs → NcDialog-B_4Lud9m.mjs} +5 -5
  117. package/dist/chunks/{NcDialog-CXVaeWJf.mjs.map → NcDialog-B_4Lud9m.mjs.map} +1 -1
  118. package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-DSKWXzqG.mjs → NcDialogButton.vue_vue_type_script_setup_true_lang-d1zLHPqM.mjs} +4 -4
  119. package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-DSKWXzqG.mjs.map → NcDialogButton.vue_vue_type_script_setup_true_lang-d1zLHPqM.mjs.map} +1 -1
  120. package/dist/chunks/{NcEmojiPicker-BGO0v-D5.mjs → NcEmojiPicker-DZXHV_Me.mjs} +12 -12
  121. package/dist/chunks/NcEmojiPicker-DZXHV_Me.mjs.map +1 -0
  122. package/dist/chunks/{NcGuestContent-B_S2nyJ4.mjs → NcGuestContent-mLXi-A-D.mjs} +3 -3
  123. package/dist/chunks/{NcGuestContent-B_S2nyJ4.mjs.map → NcGuestContent-mLXi-A-D.mjs.map} +1 -1
  124. package/dist/chunks/{NcHeaderButton-BTZ1WNux.mjs → NcHeaderButton-D6LMZ6iL.mjs} +2 -2
  125. package/dist/chunks/{NcHeaderButton-BTZ1WNux.mjs.map → NcHeaderButton-D6LMZ6iL.mjs.map} +1 -1
  126. package/dist/chunks/{NcHeaderMenu-DmpJfS86.mjs → NcHeaderMenu-O0loxc_q.mjs} +5 -5
  127. package/dist/chunks/{NcHeaderMenu-DmpJfS86.mjs.map → NcHeaderMenu-O0loxc_q.mjs.map} +1 -1
  128. package/dist/chunks/{NcIconSvgWrapper-BOiCKv0b.mjs → NcIconSvgWrapper-CprKb_SE.mjs} +4 -4
  129. package/dist/chunks/{NcIconSvgWrapper-BOiCKv0b.mjs.map → NcIconSvgWrapper-CprKb_SE.mjs.map} +1 -1
  130. package/dist/chunks/{NcInputConfirmCancel-B7gAZ7U1.mjs → NcInputConfirmCancel-RRwim02d.mjs} +5 -5
  131. package/dist/chunks/{NcInputConfirmCancel-B7gAZ7U1.mjs.map → NcInputConfirmCancel-RRwim02d.mjs.map} +1 -1
  132. package/dist/chunks/{NcInputField-DH5ybroK.mjs → NcInputField-DEHb834Z.mjs} +6 -6
  133. package/dist/chunks/NcInputField-DEHb834Z.mjs.map +1 -0
  134. package/dist/chunks/{NcListItem-50hUlVlb.mjs → NcListItem-C6WoTIa4.mjs} +6 -6
  135. package/dist/chunks/{NcListItem-50hUlVlb.mjs.map → NcListItem-C6WoTIa4.mjs.map} +1 -1
  136. package/dist/chunks/{NcListItemIcon-BGEA45de.mjs → NcListItemIcon-5OKjuvJE.mjs} +6 -4
  137. package/dist/chunks/{NcListItemIcon-BGEA45de.mjs.map → NcListItemIcon-5OKjuvJE.mjs.map} +1 -1
  138. package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_25f4d6e1_lang-aMwzB20D.mjs +16 -0
  139. package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_25f4d6e1_lang-aMwzB20D.mjs.map +1 -0
  140. package/dist/chunks/{NcModal-CWRw1hyF.mjs → NcModal-n7KHhtoD.mjs} +8 -8
  141. package/dist/chunks/{NcModal-CWRw1hyF.mjs.map → NcModal-n7KHhtoD.mjs.map} +1 -1
  142. package/dist/chunks/{NcNoteCard-DmhVICGO.mjs → NcNoteCard-B5CvOJmh.mjs} +7 -6
  143. package/dist/chunks/{NcNoteCard-DmhVICGO.mjs.map → NcNoteCard-B5CvOJmh.mjs.map} +1 -1
  144. package/dist/chunks/NcPasswordField-JRyxT6wU.mjs +128 -0
  145. package/dist/chunks/NcPasswordField-JRyxT6wU.mjs.map +1 -0
  146. package/dist/chunks/{NcPopover-BUlWWIxc.mjs → NcPopover-DLoAYZgv.mjs} +2 -2
  147. package/dist/chunks/{NcPopover-BUlWWIxc.mjs.map → NcPopover-DLoAYZgv.mjs.map} +1 -1
  148. package/dist/chunks/{NcRelatedResourcesPanel-BUasditW.mjs → NcRelatedResourcesPanel-BBcAt5Fj.mjs} +13 -13
  149. package/dist/chunks/{NcRelatedResourcesPanel-BUasditW.mjs.map → NcRelatedResourcesPanel-BBcAt5Fj.mjs.map} +1 -1
  150. package/dist/chunks/{NcRichContenteditable-CGP8KN41.mjs → NcRichContenteditable-BD6rWjXe.mjs} +49 -42
  151. package/dist/chunks/NcRichContenteditable-BD6rWjXe.mjs.map +1 -0
  152. package/dist/chunks/{NcRichText-DDllQirJ.mjs → NcRichText-BwC3HU1U.mjs} +69 -57
  153. package/dist/chunks/NcRichText-BwC3HU1U.mjs.map +1 -0
  154. package/dist/chunks/{NcSelect-Bkg2rrDQ.mjs → NcSelect-DlAtugnK.mjs} +3 -3
  155. package/dist/chunks/{NcSelect-Bkg2rrDQ.mjs.map → NcSelect-DlAtugnK.mjs.map} +1 -1
  156. package/dist/chunks/{NcSelectTags-gJMICSS2.mjs → NcSelectTags-N96Vc2rX.mjs} +3 -3
  157. package/dist/chunks/{NcSelectTags-gJMICSS2.mjs.map → NcSelectTags-N96Vc2rX.mjs.map} +1 -1
  158. package/dist/chunks/{NcSelectUsers-mRdIiG7L.mjs → NcSelectUsers-BEoD3M8_.mjs} +3 -3
  159. package/dist/chunks/{NcSelectUsers-mRdIiG7L.mjs.map → NcSelectUsers-BEoD3M8_.mjs.map} +1 -1
  160. package/dist/chunks/{NcSettingsInputText-P8cEi0aP.mjs → NcSettingsInputText-Dh5pxW31.mjs} +4 -4
  161. package/dist/chunks/{NcSettingsInputText-P8cEi0aP.mjs.map → NcSettingsInputText-Dh5pxW31.mjs.map} +1 -1
  162. package/dist/chunks/{NcSettingsSection-DkDLjL_G.mjs → NcSettingsSection-DOYZpyIW.mjs} +40 -65
  163. package/dist/chunks/NcSettingsSection-DOYZpyIW.mjs.map +1 -0
  164. package/dist/chunks/{NcSettingsSelectGroup-BvYxv8aw.mjs → NcSettingsSelectGroup-CUvIP57B.mjs} +5 -5
  165. package/dist/chunks/{NcSettingsSelectGroup-BvYxv8aw.mjs.map → NcSettingsSelectGroup-CUvIP57B.mjs.map} +1 -1
  166. package/dist/chunks/{NcTextArea-D4hJqp6W.mjs → NcTextArea-BTKWGbc1.mjs} +5 -5
  167. package/dist/chunks/{NcTextArea-D4hJqp6W.mjs.map → NcTextArea-BTKWGbc1.mjs.map} +1 -1
  168. package/dist/chunks/{NcTextField.vue_vue_type_script_setup_true_lang-BggEO9Jn.mjs → NcTextField.vue_vue_type_script_setup_true_lang-DM5tkqJq.mjs} +5 -5
  169. package/dist/chunks/{NcTextField.vue_vue_type_script_setup_true_lang-BggEO9Jn.mjs.map → NcTextField.vue_vue_type_script_setup_true_lang-DM5tkqJq.mjs.map} +1 -1
  170. package/dist/chunks/NcThemeProvider.vue_vue_type_script_setup_true_lang-nUDJsDGI.mjs +30 -0
  171. package/dist/chunks/NcThemeProvider.vue_vue_type_script_setup_true_lang-nUDJsDGI.mjs.map +1 -0
  172. package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-C7loAI0C.mjs → NcTimezonePicker.vue_vue_type_script_setup_true_lang-CZ5IafBy.mjs} +3 -3
  173. package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-C7loAI0C.mjs.map → NcTimezonePicker.vue_vue_type_script_setup_true_lang-CZ5IafBy.mjs.map} +1 -1
  174. package/dist/chunks/{NcUserBubble-CKN4C4kP.mjs → NcUserBubble-DpGJJxHd.mjs} +3 -3
  175. package/dist/chunks/{NcUserBubble-CKN4C4kP.mjs.map → NcUserBubble-DpGJJxHd.mjs.map} +1 -1
  176. package/dist/chunks/{NcUserStatusIcon-BX9ILG2r.mjs → NcUserStatusIcon-DJ_IKC46.mjs} +4 -4
  177. package/dist/chunks/{NcUserStatusIcon-BX9ILG2r.mjs.map → NcUserStatusIcon-DJ_IKC46.mjs.map} +1 -1
  178. package/dist/chunks/{_l10n-B4AgnzNC.mjs → _l10n-_R1HqC4N.mjs} +36 -42
  179. package/dist/chunks/_l10n-_R1HqC4N.mjs.map +1 -0
  180. package/dist/chunks/{autolink-CKPk5rzg.mjs → autolink-Y0rlJ_CI.mjs} +5 -1
  181. package/dist/chunks/autolink-Y0rlJ_CI.mjs.map +1 -0
  182. package/dist/chunks/{colors-fFK6HkHZ.mjs → colors-Bws_qBuw.mjs} +2 -2
  183. package/dist/chunks/{colors-fFK6HkHZ.mjs.map → colors-Bws_qBuw.mjs.map} +1 -1
  184. package/dist/chunks/constants-Bls5liKo.mjs +9 -0
  185. package/dist/chunks/constants-Bls5liKo.mjs.map +1 -0
  186. package/dist/chunks/{index-BF8joS9W.mjs → customPickerElements-CH9vlHLd.mjs} +46 -45
  187. package/dist/chunks/customPickerElements-CH9vlHLd.mjs.map +1 -0
  188. package/dist/chunks/{mdi-CWpCzTmH.mjs → mdi-D6fu5i4r.mjs} +10 -6
  189. package/dist/chunks/{mdi-CWpCzTmH.mjs.map → mdi-D6fu5i4r.mjs.map} +1 -1
  190. package/dist/chunks/{referencePickerModal-uLIBRHIc.mjs → referencePickerModal-BA3NmGQ-.mjs} +71 -81
  191. package/dist/chunks/referencePickerModal-BA3NmGQ-.mjs.map +1 -0
  192. package/dist/components/NcActionButton/NcActionButton.vue.d.ts +1 -1
  193. package/dist/components/NcActionButton/index.mjs +1 -1
  194. package/dist/components/NcActionButtonGroup/index.mjs +1 -1
  195. package/dist/components/NcActionInput/index.mjs +1 -1
  196. package/dist/components/NcActionText/index.mjs +1 -1
  197. package/dist/components/NcActionTextEditable/NcActionTextEditable.vue.d.ts +1 -1
  198. package/dist/components/NcActionTextEditable/index.mjs +1 -1
  199. package/dist/components/NcActions/index.mjs +1 -1
  200. package/dist/components/NcAppContent/NcAppContent.vue.d.ts +34 -33
  201. package/dist/components/NcAppContent/index.mjs +1 -1
  202. package/dist/components/NcAppNavigation/index.mjs +1 -1
  203. package/dist/components/NcAppNavigationCaption/index.mjs +1 -1
  204. package/dist/components/NcAppNavigationItem/index.mjs +1 -1
  205. package/dist/components/NcAppNavigationNew/index.mjs +1 -1
  206. package/dist/components/NcAppNavigationNewItem/index.mjs +1 -1
  207. package/dist/components/NcAppNavigationSearch/NcAppNavigationSearch.vue.d.ts +18 -18
  208. package/dist/components/NcAppNavigationSearch/index.mjs +1 -1
  209. package/dist/components/NcAppNavigationSettings/index.mjs +1 -1
  210. package/dist/components/NcAppNavigationToggle/index.mjs +1 -1
  211. package/dist/components/NcAppSettingsDialog/index.mjs +1 -1
  212. package/dist/components/NcAppSidebar/index.mjs +1 -1
  213. package/dist/components/NcAppSidebarTab/NcAppSidebarTab.vue.d.ts +3 -3
  214. package/dist/components/NcAppSidebarTab/index.mjs +1 -1
  215. package/dist/components/NcAvatar/index.mjs +1 -1
  216. package/dist/components/NcBreadcrumb/index.mjs +1 -1
  217. package/dist/components/NcBreadcrumbs/index.mjs +1 -1
  218. package/dist/components/NcButton/NcButton.vue.d.ts +1 -1
  219. package/dist/components/NcButton/index.mjs +1 -1
  220. package/dist/components/NcCheckboxRadioSwitch/index.mjs +1 -1
  221. package/dist/components/NcChip/index.mjs +1 -1
  222. package/dist/components/NcCollectionList/index.mjs +1 -1
  223. package/dist/components/NcColorPicker/index.mjs +1 -1
  224. package/dist/components/NcContent/index.mjs +1 -1
  225. package/dist/components/NcCounterBubble/index.mjs +1 -1
  226. package/dist/components/NcDashboardWidget/index.mjs +1 -1
  227. package/dist/components/NcDashboardWidgetItem/index.mjs +1 -1
  228. package/dist/components/NcDateTime/index.mjs +1 -1
  229. package/dist/components/NcDateTimePicker/NcDateTimePicker.vue.d.ts +1072 -4
  230. package/dist/components/NcDateTimePicker/index.mjs +1 -1
  231. package/dist/components/NcDateTimePickerNative/NcDateTimePickerNative.vue.d.ts +1 -1
  232. package/dist/components/NcDateTimePickerNative/index.mjs +1 -1
  233. package/dist/components/NcDialog/index.mjs +1 -1
  234. package/dist/components/NcDialogButton/NcDialogButton.vue.d.ts +1 -1
  235. package/dist/components/NcDialogButton/index.mjs +1 -1
  236. package/dist/components/NcEmojiPicker/index.mjs +1 -1
  237. package/dist/components/NcGuestContent/index.mjs +1 -1
  238. package/dist/components/NcHeaderButton/index.mjs +1 -1
  239. package/dist/components/NcHeaderMenu/index.mjs +1 -1
  240. package/dist/components/NcIconSvgWrapper/NcIconSvgWrapper.vue.d.ts +1 -1
  241. package/dist/components/NcIconSvgWrapper/index.mjs +1 -1
  242. package/dist/components/NcInputField/NcInputField.vue.d.ts +1 -1
  243. package/dist/components/NcInputField/index.mjs +1 -1
  244. package/dist/components/NcListItem/index.mjs +1 -1
  245. package/dist/components/NcListItemIcon/index.mjs +1 -1
  246. package/dist/components/NcLoadingIcon/NcLoadingIcon.vue.d.ts +1 -1
  247. package/dist/components/NcModal/index.mjs +1 -1
  248. package/dist/components/NcNoteCard/index.mjs +1 -1
  249. package/dist/components/NcPasswordField/NcPasswordField.vue.d.ts +10 -7
  250. package/dist/components/NcPasswordField/index.mjs +1 -1
  251. package/dist/components/NcPopover/index.mjs +1 -1
  252. package/dist/components/NcRelatedResourcesPanel/index.mjs +1 -1
  253. package/dist/components/NcRichContenteditable/NcAutoCompleteResult.vue.d.ts +4 -4
  254. package/dist/components/NcRichContenteditable/NcMentionBubble.vue.d.ts +4 -4
  255. package/dist/components/NcRichContenteditable/NcRichContenteditable.vue.d.ts +2 -2
  256. package/dist/components/NcRichContenteditable/index.mjs +1 -1
  257. package/dist/components/NcRichText/NcReferencePicker/utils.d.ts +6 -7
  258. package/dist/components/NcRichText/helpers.d.ts +7 -8
  259. package/dist/components/NcRichText/index.d.ts +5 -5
  260. package/dist/components/NcRichText/index.mjs +10 -10
  261. package/dist/components/NcRichText/remarkPlaceholder.d.ts +2 -0
  262. package/dist/components/NcRichText/remarkUnescape.d.ts +2 -1
  263. package/dist/components/NcSavingIndicatorIcon/NcSavingIndicatorIcon.vue.d.ts +1 -1
  264. package/dist/components/NcSelect/index.mjs +1 -1
  265. package/dist/components/NcSelectTags/index.mjs +1 -1
  266. package/dist/components/NcSelectUsers/index.mjs +1 -1
  267. package/dist/components/NcSettingsInputText/index.mjs +1 -1
  268. package/dist/components/NcSettingsSection/NcSettingsSection.vue.d.ts +40 -34
  269. package/dist/components/NcSettingsSection/index.d.ts +4 -0
  270. package/dist/components/NcSettingsSection/index.mjs +1 -1
  271. package/dist/components/NcSettingsSelectGroup/index.mjs +1 -1
  272. package/dist/components/NcTextArea/index.mjs +1 -1
  273. package/dist/components/NcTextField/NcTextField.vue.d.ts +6 -6
  274. package/dist/components/NcTextField/index.mjs +1 -1
  275. package/dist/components/NcThemeProvider/NcThemeProvider.vue.d.ts +27 -0
  276. package/dist/components/NcThemeProvider/index.d.ts +5 -0
  277. package/dist/components/NcThemeProvider/index.mjs +5 -0
  278. package/dist/components/NcThemeProvider/index.mjs.map +1 -0
  279. package/dist/components/NcTimezonePicker/index.mjs +1 -1
  280. package/dist/components/NcUserBubble/index.mjs +1 -1
  281. package/dist/components/NcUserStatusIcon/index.mjs +1 -1
  282. package/dist/components/index.d.ts +2 -1
  283. package/dist/composables/index.d.ts +1 -1
  284. package/dist/composables/useFormatDateTime/index.d.ts +40 -0
  285. package/dist/composables/useFormatDateTime/index.mjs +49 -0
  286. package/dist/composables/useFormatDateTime/index.mjs.map +1 -0
  287. package/dist/composables/useHotKey/index.mjs +13 -1
  288. package/dist/composables/useHotKey/index.mjs.map +1 -1
  289. package/dist/composables/useIsDarkTheme/constants.d.ts +7 -0
  290. package/dist/composables/useIsDarkTheme/index.d.ts +7 -4
  291. package/dist/composables/useIsDarkTheme/index.mjs +23 -6
  292. package/dist/composables/useIsDarkTheme/index.mjs.map +1 -1
  293. package/dist/functions/index.d.ts +2 -2
  294. package/dist/functions/reference/customPickerElements.d.ts +48 -13
  295. package/dist/functions/reference/index.d.ts +8 -5
  296. package/dist/functions/reference/index.mjs +7 -7
  297. package/dist/functions/reference/providerHelper.d.ts +26 -15
  298. package/dist/functions/reference/referencePickerModal.d.ts +7 -4
  299. package/dist/functions/reference/widgets.d.ts +47 -28
  300. package/dist/functions/registerReference/index.d.ts +6 -2
  301. package/dist/functions/registerReference/index.mjs +4 -4
  302. package/dist/functions/usernameToColor/index.d.ts +6 -3
  303. package/dist/functions/usernameToColor/index.mjs +19 -2
  304. package/dist/functions/usernameToColor/index.mjs.map +1 -1
  305. package/dist/index.mjs +79 -75
  306. package/dist/index.mjs.map +1 -1
  307. package/dist/l10n.d.ts +7 -2
  308. package/dist/utils/getAvatarUrl.d.ts +23 -1
  309. package/package.json +10 -11
  310. package/dist/assets/NcActionInput-BA67jS1l.css +0 -226
  311. package/dist/assets/NcDateTimePicker-pmbCzZnb.css +0 -83
  312. package/dist/assets/NcDateTimePickerNative-BizATZfE.css +0 -60
  313. package/dist/chunks/NcActionText-DJWBefhJ.mjs.map +0 -1
  314. package/dist/chunks/NcAppContent-B2qF2-YG.mjs.map +0 -1
  315. package/dist/chunks/NcAppSidebar-QEkYs8pt.mjs.map +0 -1
  316. package/dist/chunks/NcAppSidebarTab-DG51ajic.mjs.map +0 -1
  317. package/dist/chunks/NcAvatar-BadoF6cb.mjs.map +0 -1
  318. package/dist/chunks/NcCollectionList-B2PzNHzw.mjs.map +0 -1
  319. package/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang-C2VbacBQ.mjs +0 -31
  320. package/dist/chunks/NcDateTimePicker-BB--HQog.mjs.map +0 -1
  321. package/dist/chunks/NcEmojiPicker-BGO0v-D5.mjs.map +0 -1
  322. package/dist/chunks/NcInputField-DH5ybroK.mjs.map +0 -1
  323. package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_c29760cd_lang-CZdrlInz.mjs +0 -13
  324. package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_c29760cd_lang-CZdrlInz.mjs.map +0 -1
  325. package/dist/chunks/NcPasswordField-DY-wDP9m.mjs +0 -211
  326. package/dist/chunks/NcPasswordField-DY-wDP9m.mjs.map +0 -1
  327. package/dist/chunks/NcRichContenteditable-CGP8KN41.mjs.map +0 -1
  328. package/dist/chunks/NcRichText-DDllQirJ.mjs.map +0 -1
  329. package/dist/chunks/NcSettingsSection-DkDLjL_G.mjs.map +0 -1
  330. package/dist/chunks/_l10n-B4AgnzNC.mjs.map +0 -1
  331. package/dist/chunks/autolink-CKPk5rzg.mjs.map +0 -1
  332. package/dist/chunks/index-BF8joS9W.mjs.map +0 -1
  333. package/dist/chunks/referencePickerModal-uLIBRHIc.mjs.map +0 -1
  334. package/dist/chunks/useFormatDateTime-DmnI1ENQ.mjs +0 -87
  335. package/dist/chunks/useFormatDateTime-DmnI1ENQ.mjs.map +0 -1
  336. package/dist/chunks/usernameToColor-Bik5PNni.mjs +0 -22
  337. package/dist/chunks/usernameToColor-Bik5PNni.mjs.map +0 -1
  338. package/dist/components/NcRichText/placeholder.d.ts +0 -5
  339. package/dist/components/NcRichText/remarkDisableBlocks.d.ts +0 -11
  340. package/dist/composables/useFormatDateTime.d.ts +0 -84
  341. package/dist/functions/usernameToColor/usernameToColor.d.ts +0 -8
  342. /package/dist/components/NcAppContent/{NcAppDetailsToggle.vue.d.ts → NcAppContentDetailsToggle.vue.d.ts} +0 -0
@@ -94,8 +94,8 @@ declare function __VLS_template(): {
94
94
  "update:modelValue": (value: string | number) => any;
95
95
  "trailing-button-click": (event: MouseEvent) => any;
96
96
  }, string, {
97
- type: "text" | "password" | "email" | "tel" | "url" | "search" | "number";
98
97
  id: string;
98
+ type: "text" | "password" | "email" | "tel" | "url" | "search" | "number";
99
99
  label: string;
100
100
  class: import('../../utils/VueTypes.ts').VueClassType;
101
101
  inputClass: import('../../utils/VueTypes.ts').VueClassType;
@@ -123,8 +123,8 @@ declare function __VLS_template(): {
123
123
  $nextTick: typeof import('vue').nextTick;
124
124
  $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
125
125
  } & Readonly<{
126
- type: "text" | "password" | "email" | "tel" | "url" | "search" | "number";
127
126
  id: string;
127
+ type: "text" | "password" | "email" | "tel" | "url" | "search" | "number";
128
128
  label: string;
129
129
  class: import('../../utils/VueTypes.ts').VueClassType;
130
130
  inputClass: import('../../utils/VueTypes.ts').VueClassType;
@@ -136,7 +136,7 @@ declare function __VLS_template(): {
136
136
  } & NcInputFieldProps> & Readonly<{
137
137
  "onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
138
138
  "onTrailing-button-click"?: ((event: MouseEvent) => any) | undefined;
139
- }>, "select" | "focus" | ("type" | "id" | "label" | "class" | "inputClass" | "placeholder" | "trailingButtonLabel" | "helperText")> & import('vue').ShallowUnwrapRef<{
139
+ }>, "select" | "focus" | ("id" | "type" | "label" | "class" | "inputClass" | "placeholder" | "trailingButtonLabel" | "helperText")> & import('vue').ShallowUnwrapRef<{
140
140
  focus: (options?: FocusOptions) => void;
141
141
  select: () => void;
142
142
  }> & {} & import('vue').ComponentCustomProperties & {} & {
@@ -213,8 +213,8 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
213
213
  "update:modelValue": (value: string | number) => any;
214
214
  "trailing-button-click": (event: MouseEvent) => any;
215
215
  }, string, {
216
- type: "text" | "password" | "email" | "tel" | "url" | "search" | "number";
217
216
  id: string;
217
+ type: "text" | "password" | "email" | "tel" | "url" | "search" | "number";
218
218
  label: string;
219
219
  class: import('../../utils/VueTypes.ts').VueClassType;
220
220
  inputClass: import('../../utils/VueTypes.ts').VueClassType;
@@ -242,8 +242,8 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
242
242
  $nextTick: typeof import('vue').nextTick;
243
243
  $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
244
244
  } & Readonly<{
245
- type: "text" | "password" | "email" | "tel" | "url" | "search" | "number";
246
245
  id: string;
246
+ type: "text" | "password" | "email" | "tel" | "url" | "search" | "number";
247
247
  label: string;
248
248
  class: import('../../utils/VueTypes.ts').VueClassType;
249
249
  inputClass: import('../../utils/VueTypes.ts').VueClassType;
@@ -255,7 +255,7 @@ declare const __VLS_component: import('vue').DefineComponent<__VLS_PublicProps,
255
255
  } & NcInputFieldProps> & Readonly<{
256
256
  "onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
257
257
  "onTrailing-button-click"?: ((event: MouseEvent) => any) | undefined;
258
- }>, "select" | "focus" | ("type" | "id" | "label" | "class" | "inputClass" | "placeholder" | "trailingButtonLabel" | "helperText")> & import('vue').ShallowUnwrapRef<{
258
+ }>, "select" | "focus" | ("id" | "type" | "label" | "class" | "inputClass" | "placeholder" | "trailingButtonLabel" | "helperText")> & import('vue').ShallowUnwrapRef<{
259
259
  focus: (options?: FocusOptions) => void;
260
260
  select: () => void;
261
261
  }> & {} & import('vue').ComponentCustomProperties & {} & {
@@ -1,4 +1,4 @@
1
- import { _ } from "../../chunks/NcTextField.vue_vue_type_script_setup_true_lang-BggEO9Jn.mjs";
1
+ import { _ } from "../../chunks/NcTextField.vue_vue_type_script_setup_true_lang-DM5tkqJq.mjs";
2
2
  export {
3
3
  _ as default
4
4
  };
@@ -0,0 +1,27 @@
1
+ type __VLS_Props = {
2
+ /**
3
+ * Enforce the dark theme for the content.
4
+ */
5
+ dark?: boolean;
6
+ /**
7
+ * Enforce the light theme for the content
8
+ */
9
+ light?: boolean;
10
+ };
11
+ declare function __VLS_template(): {
12
+ attrs: Partial<{}>;
13
+ slots: {
14
+ default?(_: {}): any;
15
+ };
16
+ refs: {};
17
+ rootEl: HTMLDivElement;
18
+ };
19
+ type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
20
+ declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
21
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
22
+ export default _default;
23
+ type __VLS_WithTemplateSlots<T, S> = T & {
24
+ new (): {
25
+ $slots: S;
26
+ };
27
+ };
@@ -0,0 +1,5 @@
1
+ /*!
2
+ * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
3
+ * SPDX-License-Identifier: AGPL-3.0-or-later
4
+ */
5
+ export { default } from './NcThemeProvider.vue';
@@ -0,0 +1,5 @@
1
+ import { _ } from "../../chunks/NcThemeProvider.vue_vue_type_script_setup_true_lang-nUDJsDGI.mjs";
2
+ export {
3
+ _ as default
4
+ };
5
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1,4 +1,4 @@
1
- import { _ } from "../../chunks/NcTimezonePicker.vue_vue_type_script_setup_true_lang-C7loAI0C.mjs";
1
+ import { _ } from "../../chunks/NcTimezonePicker.vue_vue_type_script_setup_true_lang-CZ5IafBy.mjs";
2
2
  export {
3
3
  _ as default
4
4
  };
@@ -1,4 +1,4 @@
1
- import { N } from "../../chunks/NcUserBubble-CKN4C4kP.mjs";
1
+ import { N } from "../../chunks/NcUserBubble-DpGJJxHd.mjs";
2
2
  export {
3
3
  N as default
4
4
  };
@@ -1,4 +1,4 @@
1
- import { N } from "../../chunks/NcUserStatusIcon-BX9ILG2r.mjs";
1
+ import { N } from "../../chunks/NcUserStatusIcon-DJ_IKC46.mjs";
2
2
  export {
3
3
  N as default
4
4
  };
@@ -75,10 +75,11 @@ export { default as NcSelect } from './NcSelect/index.js';
75
75
  export { default as NcSelectTags } from './NcSelectTags/index.js';
76
76
  export { default as NcSelectUsers } from './NcSelectUsers/index.ts';
77
77
  export { default as NcSettingsInputText } from './NcSettingsInputText/index.js';
78
- export { default as NcSettingsSection } from './NcSettingsSection/index.js';
78
+ export { default as NcSettingsSection } from './NcSettingsSection/index.ts';
79
79
  export { default as NcSettingsSelectGroup } from './NcSettingsSelectGroup/index.js';
80
80
  export { default as NcTextArea } from './NcTextArea/index.ts';
81
81
  export { default as NcTextField } from './NcTextField/index.ts';
82
+ export { default as NcThemeProvider } from './NcThemeProvider/index.ts';
82
83
  export { default as NcTimezonePicker } from './NcTimezonePicker/index.ts';
83
84
  export { default as NcUserBubble } from './NcUserBubble/index.ts';
84
85
  export { default as NcUserStatusIcon } from './NcUserStatusIcon/index.ts';
@@ -2,7 +2,7 @@
2
2
  * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
3
3
  * SPDX-License-Identifier: AGPL-3.0-or-later
4
4
  */
5
- export * from './useFormatDateTime.ts';
5
+ export { useFormatRelativeTime, useFormatTime, } from './useFormatDateTime/index.ts';
6
6
  export * from './useHotKey/index.ts';
7
7
  export * from './useIsDarkTheme/index.ts';
8
8
  export * from './useIsFullscreen/index.ts';
@@ -0,0 +1,40 @@
1
+ import { FormatDateOptions } from '@nextcloud/l10n';
2
+ import { MaybeRefOrGetter, Ref } from 'vue';
3
+ interface FormatRelativeTimeOptions extends Partial<Omit<FormatDateOptions, 'ignoreSeconds'>> {
4
+ ignoreSeconds?: boolean;
5
+ /**
6
+ * If set to false the relative time will not be updated anymore.
7
+ * @default true - Meaning the relative time will be updated if needed
8
+ */
9
+ update?: boolean;
10
+ }
11
+ interface FormatTimeOptions {
12
+ /**
13
+ * Locale to use for formatting.
14
+ * @default current locale
15
+ */
16
+ locale?: string;
17
+ /**
18
+ * The format used for displaying.
19
+ *
20
+ * @default { timeStyle: 'medium', dateStyle: 'short' }
21
+ */
22
+ format?: Intl.DateTimeFormatOptions;
23
+ }
24
+ /**
25
+ * Format a timestamp or date object as relative time.
26
+ *
27
+ * This is a composable wrapper around `formatRelativeTime` from `@nextcloud/l10n`.
28
+ *
29
+ * @param timestamp - The timestamp to format
30
+ * @param opts - Formatting options
31
+ */
32
+ export declare function useFormatRelativeTime(timestamp?: MaybeRefOrGetter<Date | number>, opts?: MaybeRefOrGetter<FormatRelativeTimeOptions>): Readonly<Ref<string>>;
33
+ /**
34
+ * Format a given timestamp or date object as a human readable string.
35
+ *
36
+ * @param timestamp - Timestamp or date object to format
37
+ * @param opts - Formatting options
38
+ */
39
+ export declare function useFormatTime(timestamp: MaybeRefOrGetter<number | Date>, opts: MaybeRefOrGetter<FormatTimeOptions>): Readonly<Ref<string>>;
40
+ export {};
@@ -0,0 +1,49 @@
1
+ import { formatRelativeTime, getCanonicalLocale } from "@nextcloud/l10n";
2
+ import { computed, toValue, ref, watchEffect, onUnmounted, readonly } from "vue";
3
+ import { r as register, b as t2, a as t } from "../../chunks/_l10n-_R1HqC4N.mjs";
4
+ register(t2);
5
+ const FEW_SECONDS_AGO = {
6
+ long: t("a few seconds ago"),
7
+ short: t("seconds ago"),
8
+ // FOR TRANSLATORS: Shorter version of 'a few seconds ago'
9
+ narrow: t("sec. ago")
10
+ // FOR TRANSLATORS: If possible in your language an even shorter version of 'a few seconds ago'
11
+ };
12
+ function useFormatRelativeTime(timestamp = Date.now(), opts = {}) {
13
+ let timeoutId;
14
+ const date = computed(() => new Date(toValue(timestamp)));
15
+ const options = computed(() => {
16
+ const { language, relativeTime: relativeTime2, ignoreSeconds } = toValue(opts);
17
+ return {
18
+ ...language && { language },
19
+ ...relativeTime2 && { relativeTime: relativeTime2 },
20
+ ignoreSeconds: ignoreSeconds ? FEW_SECONDS_AGO[relativeTime2 || "long"] : false
21
+ };
22
+ });
23
+ const relativeTime = ref("");
24
+ watchEffect(() => updateRelativeTime());
25
+ function updateRelativeTime() {
26
+ relativeTime.value = formatRelativeTime(date.value, options.value);
27
+ if (toValue(opts).update !== false) {
28
+ const diff = Math.abs(Date.now() - new Date(toValue(timestamp)).getTime());
29
+ const interval = diff > 12e4 || options.value.ignoreSeconds ? Math.min(diff / 60, 18e5) : 1e3;
30
+ timeoutId = window.setTimeout(updateRelativeTime, interval);
31
+ }
32
+ }
33
+ onUnmounted(() => timeoutId && window.clearTimeout(timeoutId));
34
+ return readonly(relativeTime);
35
+ }
36
+ function useFormatTime(timestamp, opts) {
37
+ const options = computed(() => ({
38
+ locale: getCanonicalLocale(),
39
+ format: { dateStyle: "short", timeStyle: "medium" },
40
+ ...toValue(opts)
41
+ }));
42
+ const formatter = computed(() => new Intl.DateTimeFormat(options.value.locale, options.value.format));
43
+ return computed(() => formatter.value.format(toValue(timestamp)));
44
+ }
45
+ export {
46
+ useFormatRelativeTime,
47
+ useFormatTime
48
+ };
49
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/composables/useFormatDateTime/index.ts"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { FormatDateOptions } from '@nextcloud/l10n'\nimport type { MaybeRefOrGetter, Ref } from 'vue'\n\nimport { formatRelativeTime, getCanonicalLocale } from '@nextcloud/l10n'\nimport { computed, onUnmounted, readonly, ref, toValue, watchEffect } from 'vue'\nimport { t } from '../../l10n.ts'\n\ninterface FormatRelativeTimeOptions extends Partial<Omit<FormatDateOptions, 'ignoreSeconds'>> {\n\tignoreSeconds?: boolean\n\n\t/**\n\t * If set to false the relative time will not be updated anymore.\n\t * @default true - Meaning the relative time will be updated if needed\n\t */\n\tupdate?: boolean\n}\n\ninterface FormatTimeOptions {\n\t/**\n\t * Locale to use for formatting.\n\t * @default current locale\n\t */\n\tlocale?: string\n\n\t/**\n\t * The format used for displaying.\n\t *\n\t * @default { timeStyle: 'medium', dateStyle: 'short' }\n\t */\n\tformat?: Intl.DateTimeFormatOptions\n}\n\nconst FEW_SECONDS_AGO = {\n\tlong: t('a few seconds ago'),\n\tshort: t('seconds ago'), // FOR TRANSLATORS: Shorter version of 'a few seconds ago'\n\tnarrow: t('sec. ago'), // FOR TRANSLATORS: If possible in your language an even shorter version of 'a few seconds ago'\n}\n\n/**\n * Format a timestamp or date object as relative time.\n *\n * This is a composable wrapper around `formatRelativeTime` from `@nextcloud/l10n`.\n *\n * @param timestamp - The timestamp to format\n * @param opts - Formatting options\n */\nexport function useFormatRelativeTime(\n\ttimestamp: MaybeRefOrGetter<Date | number> = Date.now(),\n\topts: MaybeRefOrGetter<FormatRelativeTimeOptions> = {},\n): Readonly<Ref<string>> {\n\tlet timeoutId: number\n\n\t/**\n\t * ECMA Date object of the timestamp\n\t */\n\tconst date = computed(() => new Date(toValue(timestamp)))\n\n\t/**\n\t * Reactive options for `formatRelativeTime` method\n\t */\n\tconst options = computed<FormatDateOptions>(() => {\n\t\tconst { language, relativeTime, ignoreSeconds } = toValue(opts)\n\t\treturn {\n\t\t\t...language && { language },\n\t\t\t...relativeTime && { relativeTime },\n\t\t\tignoreSeconds: ignoreSeconds\n\t\t\t\t? FEW_SECONDS_AGO[relativeTime || 'long']\n\t\t\t\t: false,\n\t\t}\n\t})\n\n\t/**\n\t * The formatted relative time\n\t */\n\tconst relativeTime = ref('')\n\twatchEffect(() => updateRelativeTime())\n\n\t/**\n\t * Update the relative time string.\n\t * This is the callback for the interval.\n\t */\n\tfunction updateRelativeTime() {\n\t\trelativeTime.value = formatRelativeTime(date.value, options.value)\n\n\t\tif (toValue(opts).update !== false) {\n\t\t\tconst diff = Math.abs(Date.now() - new Date(toValue(timestamp)).getTime())\n\t\t\tconst interval = diff > 120000 || options.value.ignoreSeconds\n\t\t\t\t? Math.min(diff / 60, 1800000)\n\t\t\t\t: 1000\n\t\t\ttimeoutId = window.setTimeout(updateRelativeTime, interval)\n\t\t}\n\t}\n\n\t// when the component is unmounted we also clear the timeout\n\tonUnmounted(() => timeoutId && window.clearTimeout(timeoutId))\n\n\treturn readonly(relativeTime)\n}\n\n/**\n * Format a given timestamp or date object as a human readable string.\n *\n * @param timestamp - Timestamp or date object to format\n * @param opts - Formatting options\n */\nexport function useFormatTime(\n\ttimestamp: MaybeRefOrGetter<number | Date>,\n\topts: MaybeRefOrGetter<FormatTimeOptions>,\n): Readonly<Ref<string>> {\n\tconst options = computed<Required<FormatTimeOptions>>(() => ({\n\t\tlocale: getCanonicalLocale(),\n\t\tformat: { dateStyle: 'short', timeStyle: 'medium' },\n\t\t...toValue(opts),\n\t}))\n\n\tconst formatter = computed(() => new Intl.DateTimeFormat(options.value.locale, options.value.format))\n\n\treturn computed(() => formatter.value.format(toValue(timestamp)))\n}\n"],"names":["relativeTime"],"mappings":";;;;AAqCA,MAAM,kBAAkB;AAAA,EACvB,MAAM,EAAE,mBAAmB;AAAA,EAC3B,OAAO,EAAE,aAAa;AAAA;AAAA,EACtB,QAAQ,EAAE,UAAU;AAAA;AACrB;AAUO,SAAS,sBACf,YAA6C,KAAK,OAClD,OAAoD,CAAA,GAC5B;AACpB,MAAA;AAKE,QAAA,OAAO,SAAS,MAAM,IAAI,KAAK,QAAQ,SAAS,CAAC,CAAC;AAKlD,QAAA,UAAU,SAA4B,MAAM;AACjD,UAAM,EAAE,UAAU,cAAAA,eAAc,cAAc,IAAI,QAAQ,IAAI;AACvD,WAAA;AAAA,MACN,GAAG,YAAY,EAAE,SAAS;AAAA,MAC1B,GAAGA,iBAAgB,EAAE,cAAAA,cAAa;AAAA,MAClC,eAAe,gBACZ,gBAAgBA,iBAAgB,MAAM,IACtC;AAAA,IACJ;AAAA,EAAA,CACA;AAKK,QAAA,eAAe,IAAI,EAAE;AACf,cAAA,MAAM,oBAAoB;AAMtC,WAAS,qBAAqB;AAC7B,iBAAa,QAAQ,mBAAmB,KAAK,OAAO,QAAQ,KAAK;AAEjE,QAAI,QAAQ,IAAI,EAAE,WAAW,OAAO;AACnC,YAAM,OAAO,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,QAAQ,SAAS,CAAC,EAAE,SAAS;AACnE,YAAA,WAAW,OAAO,QAAU,QAAQ,MAAM,gBAC7C,KAAK,IAAI,OAAO,IAAI,IAAO,IAC3B;AACS,kBAAA,OAAO,WAAW,oBAAoB,QAAQ;AAAA,IAAA;AAAA,EAC3D;AAID,cAAY,MAAM,aAAa,OAAO,aAAa,SAAS,CAAC;AAE7D,SAAO,SAAS,YAAY;AAC7B;AAQgB,SAAA,cACf,WACA,MACwB;AAClB,QAAA,UAAU,SAAsC,OAAO;AAAA,IAC5D,QAAQ,mBAAmB;AAAA,IAC3B,QAAQ,EAAE,WAAW,SAAS,WAAW,SAAS;AAAA,IAClD,GAAG,QAAQ,IAAI;AAAA,EAAA,EACd;AAEF,QAAM,YAAY,SAAS,MAAM,IAAI,KAAK,eAAe,QAAQ,MAAM,QAAQ,QAAQ,MAAM,MAAM,CAAC;AAE7F,SAAA,SAAS,MAAM,UAAU,MAAM,OAAO,QAAQ,SAAS,CAAC,CAAC;AACjE;"}
@@ -1,6 +1,8 @@
1
1
  import { onKeyStroke } from "@vueuse/core";
2
2
  const disableKeyboardShortcuts = window.OCP?.Accessibility?.disableKeyboardShortcuts?.();
3
3
  const isMac = /mac|ipad|iphone|darwin/i.test(navigator.userAgent);
4
+ const derivedKeysRegex = /^[a-zA-Z0-9]$/;
5
+ const nonAsciiPrintableRegex = /^[^\x20-\x7F]$/;
4
6
  function shouldIgnoreEvent(event) {
5
7
  if (!(event.target instanceof HTMLElement) || event.target instanceof HTMLInputElement || event.target instanceof HTMLTextAreaElement || event.target instanceof HTMLSelectElement || event.target.isContentEditable) {
6
8
  return true;
@@ -35,8 +37,18 @@ function useHotKey(keysOrFilter, callback = () => {
35
37
  };
36
38
  }
37
39
  const validateKeyEvent = (event, key) => {
40
+ if (event.key === key) {
41
+ return true;
42
+ }
38
43
  if (options.caseSensitive) {
39
- return event.key === key;
44
+ const isKeyInLowerCase = key === key.toLowerCase();
45
+ const isEventKeyInLowerCase = event.key === event.key.toLowerCase();
46
+ if (isKeyInLowerCase !== isEventKeyInLowerCase) {
47
+ return false;
48
+ }
49
+ }
50
+ if (derivedKeysRegex.test(key) && nonAsciiPrintableRegex.test(event.key)) {
51
+ return event.code.replace(/^(?:Key|Digit|Numpad)/, "") === key.toUpperCase();
40
52
  }
41
53
  return event.key.toLowerCase() === key.toLowerCase();
42
54
  };
@@ -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'\n\nconst disableKeyboardShortcuts = window.OCP?.Accessibility?.disableKeyboardShortcuts?.()\nconst isMac = /mac|ipad|iphone|darwin/i.test(navigator.userAgent)\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/usekeystroke.md\n */\nexport function useHotKey(\n\tkeysOrFilter: true | string | string[] | ((e: KeyboardEvent) => boolean),\n\tcallback = () => {},\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 * FIXME should support any languages / key codes\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\tif (options.caseSensitive) {\n\t\t\treturn event.key === key\n\t\t}\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\teventName: 'keyup',\n\t\t\tpassive: !options.prevent,\n\t\t})\n\t\t: () => {}\n\n\treturn () => {\n\t\tstopKeyDown()\n\t\tstopKeyUp()\n\t}\n}\n"],"names":[],"mappings":";AAMA,MAAM,2BAA2B,OAAO,KAAK,eAAe,2BAA2B;AACvF,MAAM,QAAQ,0BAA0B,KAAK,UAAU,SAAS;AA2ChE,SAAS,kBAAkB,OAA+B;AACzD,MAAI,EAAE,MAAM,kBAAkB,gBAC1B,MAAM,kBAAkB,oBACxB,MAAM,kBAAkB,uBACxB,MAAM,kBAAkB,qBACxB,MAAM,OAAO,mBAAmB;AAC5B,WAAA;AAAA,EAAA;AAGR,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,IAAA,WACU,MAAM,WAAW,QAAQ,QAAQ,GAAG,GAAG;AAEjD;AAAA,IAAA,WACU,QAAQ,UAAU,UAAa,MAAM,aAAa,QAAQ,QAAQ,KAAK,GAAG;AAMpF;AAAA,IAAA,WACU,kBAAkB,KAAK,GAAG;AAEpC;AAAA,IAAA;AAGD,QAAI,QAAQ,SAAS;AACpB,YAAM,eAAe;AAAA,IAAA;AAEtB,QAAI,QAAQ,MAAM;AACjB,YAAM,gBAAgB;AAAA,IAAA;AAEvB,aAAS,KAAK;AAAA,EACf;AACD;AAWgB,SAAA,UACf,cACA,WAAW,MAAM;AAAC,GAClB,UAA4B,CAAA,GAC3B;AACD,MAAI,0BAA0B;AAE7B,WAAO,MAAM;AAAA,IAAC;AAAA,EAAA;AAWT,QAAA,mBAAmB,CAAC,OAAsB,QAAyB;AACxE,QAAI,QAAQ,eAAe;AAC1B,aAAO,MAAM,QAAQ;AAAA,IAAA;AAEtB,WAAO,MAAM,IAAI,YAAY,MAAM,IAAI,YAAY;AAAA,EACpD;AASM,QAAA,YAAY,CAAC,UAAkC;AAChD,QAAA,OAAO,iBAAiB,YAAY;AACvC,aAAO,aAAa,KAAK;AAAA,IAAA,WACf,OAAO,iBAAiB,UAAU;AACrC,aAAA,iBAAiB,OAAO,YAAY;AAAA,IACjC,WAAA,MAAM,QAAQ,YAAY,GAAG;AACvC,aAAO,aAAa,KAAK,CAAA,QAAO,iBAAiB,OAAO,GAAG,CAAC;AAAA,IAAA,OACtD;AACC,aAAA;AAAA,IAAA;AAAA,EAET;AAEA,QAAM,cAAc,YAAY,WAAW,aAAa,UAAU,OAAO,GAAG;AAAA,IAC3E,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,SAAS,CAAC,QAAQ;AAAA,EAAA,CAClB;AAEK,QAAA,YAAY,QAAQ,OACvB,YAAY,WAAW,aAAa,UAAU,OAAO,GAAG;AAAA,IACzD,WAAW;AAAA,IACX,SAAS,CAAC,QAAQ;AAAA,EAClB,CAAA,IACC,MAAM;AAAA,EAAC;AAEV,SAAO,MAAM;AACA,gBAAA;AACF,cAAA;AAAA,EACX;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'\n\nconst disableKeyboardShortcuts = window.OCP?.Accessibility?.disableKeyboardShortcuts?.()\nconst isMac = /mac|ipad|iphone|darwin/i.test(navigator.userAgent)\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/usekeystroke.md\n */\nexport function useHotKey(\n\tkeysOrFilter: true | string | string[] | ((e: KeyboardEvent) => boolean),\n\tcallback = () => {},\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\teventName: 'keyup',\n\t\t\tpassive: !options.prevent,\n\t\t})\n\t\t: () => {}\n\n\treturn () => {\n\t\tstopKeyDown()\n\t\tstopKeyUp()\n\t}\n}\n"],"names":[],"mappings":";AAMA,MAAM,2BAA2B,OAAO,KAAK,eAAe,2BAA2B;AACvF,MAAM,QAAQ,0BAA0B,KAAK,UAAU,SAAS;AAChE,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;AAC5B,WAAA;AAAA,EAAA;AAGR,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,IAAA,WACU,MAAM,WAAW,QAAQ,QAAQ,GAAG,GAAG;AAEjD;AAAA,IAAA,WACU,QAAQ,UAAU,UAAa,MAAM,aAAa,QAAQ,QAAQ,KAAK,GAAG;AAMpF;AAAA,IAAA,WACU,kBAAkB,KAAK,GAAG;AAEpC;AAAA,IAAA;AAGD,QAAI,QAAQ,SAAS;AACpB,YAAM,eAAe;AAAA,IAAA;AAEtB,QAAI,QAAQ,MAAM;AACjB,YAAM,gBAAgB;AAAA,IAAA;AAEvB,aAAS,KAAK;AAAA,EACf;AACD;AAWgB,SAAA,UACf,cACA,WAAW,MAAM;AAAC,GAClB,UAA4B,CAAA,GAC3B;AACD,MAAI,0BAA0B;AAE7B,WAAO,MAAM;AAAA,IAAC;AAAA,EAAA;AAUT,QAAA,mBAAmB,CAAC,OAAsB,QAAyB;AAEpE,QAAA,MAAM,QAAQ,KAAK;AACf,aAAA;AAAA,IAAA;AAIR,QAAI,QAAQ,eAAe;AACpB,YAAA,mBAAmB,QAAQ,IAAI,YAAY;AACjD,YAAM,wBAAwB,MAAM,QAAQ,MAAM,IAAI,YAAY;AAClE,UAAI,qBAAqB,uBAAuB;AACxC,eAAA;AAAA,MAAA;AAAA,IACR;AAKG,QAAA,iBAAiB,KAAK,GAAG,KAAK,uBAAuB,KAAK,MAAM,GAAG,GAAG;AACzE,aAAO,MAAM,KAAK,QAAQ,yBAAyB,EAAE,MAAM,IAAI,YAAY;AAAA,IAAA;AAG5E,WAAO,MAAM,IAAI,YAAY,MAAM,IAAI,YAAY;AAAA,EACpD;AASM,QAAA,YAAY,CAAC,UAAkC;AAChD,QAAA,OAAO,iBAAiB,YAAY;AACvC,aAAO,aAAa,KAAK;AAAA,IAAA,WACf,OAAO,iBAAiB,UAAU;AACrC,aAAA,iBAAiB,OAAO,YAAY;AAAA,IACjC,WAAA,MAAM,QAAQ,YAAY,GAAG;AACvC,aAAO,aAAa,KAAK,CAAA,QAAO,iBAAiB,OAAO,GAAG,CAAC;AAAA,IAAA,OACtD;AACC,aAAA;AAAA,IAAA;AAAA,EAET;AAEA,QAAM,cAAc,YAAY,WAAW,aAAa,UAAU,OAAO,GAAG;AAAA,IAC3E,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,SAAS,CAAC,QAAQ;AAAA,EAAA,CAClB;AAEK,QAAA,YAAY,QAAQ,OACvB,YAAY,WAAW,aAAa,UAAU,OAAO,GAAG;AAAA,IACzD,WAAW;AAAA,IACX,SAAS,CAAC,QAAQ;AAAA,EAClB,CAAA,IACC,MAAM;AAAA,EAAC;AAEV,SAAO,MAAM;AACA,gBAAA;AACF,cAAA;AAAA,EACX;AACD;"}
@@ -0,0 +1,7 @@
1
+ import { ComputedRef, InjectionKey } from 'vue';
2
+ /**
3
+ * Enforced dark / light theme state
4
+ *
5
+ * @private
6
+ */
7
+ export declare const INJECTION_KEY_THEME: InjectionKey<ComputedRef<'light' | 'dark' | ''> | undefined>;
@@ -1,4 +1,4 @@
1
- import { DeepReadonly, Ref } from 'vue';
1
+ import { DeepReadonly, MaybeRefOrGetter, Ref } from 'vue';
2
2
  /**
3
3
  * Check whether the dark theme is enabled on a specific element.
4
4
  * If you need to check an entire page, use `useIsDarkTheme` instead for better performance.
@@ -6,10 +6,13 @@ import { DeepReadonly, Ref } from 'vue';
6
6
  * @param el - The element to check for the dark theme enabled on (default is `document.body`)
7
7
  * @return {DeepReadonly<Ref<boolean>>} - computed boolean whether the dark theme is enabled
8
8
  */
9
- export declare function useIsDarkThemeElement(el?: HTMLElement): DeepReadonly<Ref<boolean>>;
9
+ export declare function useIsDarkThemeElement(el?: MaybeRefOrGetter<HTMLElement>): DeepReadonly<Ref<boolean>>;
10
10
  /**
11
11
  * Shared composable to check whether the dark theme is enabled on the page.
12
+ *
12
13
  * Reacts on body data-theme-* attributes change and system theme change.
13
- * @return {DeepReadonly<Ref<boolean>>} - computed boolean whether the dark theme is enabled
14
+ * As well as any enforced theme by the `NcThemeProvider`.
15
+ *
16
+ * @return Computed boolean whether the dark theme is enabled
14
17
  */
15
- export declare const useIsDarkTheme: () => Readonly<Ref<boolean, boolean>>;
18
+ export declare function useIsDarkTheme(): DeepReadonly<Ref<boolean>>;
@@ -1,17 +1,34 @@
1
- import { ref, watch, readonly } from "vue";
2
1
  import { createSharedComposable, usePreferredDark, useMutationObserver } from "@vueuse/core";
2
+ import { computed, toValue, ref, watch, readonly, inject } from "vue";
3
3
  import { checkIfDarkTheme } from "../../functions/isDarkTheme/index.mjs";
4
- function useIsDarkThemeElement(el = document.body) {
5
- const isDarkTheme = ref(checkIfDarkTheme(el));
4
+ import { I as INJECTION_KEY_THEME } from "../../chunks/constants-Bls5liKo.mjs";
5
+ /*!
6
+ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
7
+ * SPDX-License-Identifier: AGPL-3.0-or-later
8
+ */
9
+ function useIsDarkThemeElement(el) {
10
+ const element = computed(() => toValue(el) ?? document.body);
11
+ const isDarkTheme = ref(checkIfDarkTheme(element.value));
6
12
  const isDarkSystemTheme = usePreferredDark();
7
13
  function updateIsDarkTheme() {
8
- isDarkTheme.value = checkIfDarkTheme(el);
14
+ isDarkTheme.value = checkIfDarkTheme(element.value);
9
15
  }
10
- useMutationObserver(el, updateIsDarkTheme, { attributes: true });
16
+ useMutationObserver(element, updateIsDarkTheme, { attributes: true });
17
+ watch(element, updateIsDarkTheme);
11
18
  watch(isDarkSystemTheme, updateIsDarkTheme, { immediate: true });
12
19
  return readonly(isDarkTheme);
13
20
  }
14
- const useIsDarkTheme = createSharedComposable(() => useIsDarkThemeElement());
21
+ const useInternalIsDarkTheme = createSharedComposable(() => useIsDarkThemeElement());
22
+ function useIsDarkTheme() {
23
+ const isDarkTheme = useInternalIsDarkTheme();
24
+ const enforcedTheme = inject(INJECTION_KEY_THEME, void 0);
25
+ return computed(() => {
26
+ if (enforcedTheme?.value) {
27
+ return enforcedTheme.value === "dark";
28
+ }
29
+ return isDarkTheme.value;
30
+ });
31
+ }
15
32
  export {
16
33
  useIsDarkTheme,
17
34
  useIsDarkThemeElement
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/composables/useIsDarkTheme/index.ts"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { DeepReadonly, Ref } from 'vue'\nimport { ref, readonly, watch } from 'vue'\nimport { createSharedComposable, usePreferredDark, useMutationObserver } from '@vueuse/core'\nimport { checkIfDarkTheme } from '../../functions/isDarkTheme/index.ts'\n\n/**\n * Check whether the dark theme is enabled on a specific element.\n * If you need to check an entire page, use `useIsDarkTheme` instead for better performance.\n * Reacts on element attributes change and system theme change.\n * @param el - The element to check for the dark theme enabled on (default is `document.body`)\n * @return {DeepReadonly<Ref<boolean>>} - computed boolean whether the dark theme is enabled\n */\nexport function useIsDarkThemeElement(el: HTMLElement = document.body): DeepReadonly<Ref<boolean>> {\n\tconst isDarkTheme = ref(checkIfDarkTheme(el))\n\tconst isDarkSystemTheme = usePreferredDark()\n\n\t/** Update the isDarkTheme */\n\tfunction updateIsDarkTheme() {\n\t\tisDarkTheme.value = checkIfDarkTheme(el)\n\t}\n\n\t// Watch for element change to handle data-theme* attributes change\n\tuseMutationObserver(el, updateIsDarkTheme, { attributes: true })\n\t// Watch for system theme change for the default theme\n\twatch(isDarkSystemTheme, updateIsDarkTheme, { immediate: true })\n\n\treturn readonly(isDarkTheme)\n}\n\n/**\n * Shared composable to check whether the dark theme is enabled on the page.\n * Reacts on body data-theme-* attributes change and system theme change.\n * @return {DeepReadonly<Ref<boolean>>} - computed boolean whether the dark theme is enabled\n */\nexport const useIsDarkTheme = createSharedComposable(() => useIsDarkThemeElement())\n"],"names":[],"mappings":";;;AAiBgB,SAAA,sBAAsB,KAAkB,SAAS,MAAkC;AAClG,QAAM,cAAc,IAAI,iBAAiB,EAAE,CAAC;AAC5C,QAAM,oBAAoB,iBAAiB;AAG3C,WAAS,oBAAoB;AAChB,gBAAA,QAAQ,iBAAiB,EAAE;AAAA,EAAA;AAIxC,sBAAoB,IAAI,mBAAmB,EAAE,YAAY,MAAM;AAE/D,QAAM,mBAAmB,mBAAmB,EAAE,WAAW,MAAM;AAE/D,SAAO,SAAS,WAAW;AAC5B;AAOO,MAAM,iBAAiB,uBAAuB,MAAM,sBAAuB,CAAA;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/composables/useIsDarkTheme/index.ts"],"sourcesContent":["/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport type { DeepReadonly, MaybeRefOrGetter, Ref } from 'vue'\n\nimport { createSharedComposable, usePreferredDark, useMutationObserver } from '@vueuse/core'\nimport { computed, inject, ref, readonly, toValue, watch } from 'vue'\nimport { checkIfDarkTheme } from '../../functions/isDarkTheme/index.ts'\nimport { INJECTION_KEY_THEME } from './constants.ts'\n\n/**\n * Check whether the dark theme is enabled on a specific element.\n * If you need to check an entire page, use `useIsDarkTheme` instead for better performance.\n * Reacts on element attributes change and system theme change.\n * @param el - The element to check for the dark theme enabled on (default is `document.body`)\n * @return {DeepReadonly<Ref<boolean>>} - computed boolean whether the dark theme is enabled\n */\nexport function useIsDarkThemeElement(el?: MaybeRefOrGetter<HTMLElement>): DeepReadonly<Ref<boolean>> {\n\tconst element = computed(() => toValue(el) ?? document.body)\n\n\tconst isDarkTheme = ref(checkIfDarkTheme(element.value))\n\tconst isDarkSystemTheme = usePreferredDark()\n\n\t/** Update the isDarkTheme */\n\tfunction updateIsDarkTheme() {\n\t\tisDarkTheme.value = checkIfDarkTheme(element.value)\n\t}\n\n\t// Watch for element change to handle data-theme* attributes change\n\tuseMutationObserver(element, updateIsDarkTheme, { attributes: true })\n\t// Watch for ref changes\n\twatch(element, updateIsDarkTheme)\n\t// Watch for system theme change for the default theme\n\twatch(isDarkSystemTheme, updateIsDarkTheme, { immediate: true })\n\n\treturn readonly(isDarkTheme)\n}\n\n/**\n * The real shared composable of the dark theme state.\n * We need to wrap this to allow to react to injected theme changes.\n */\nconst useInternalIsDarkTheme = createSharedComposable(() => useIsDarkThemeElement())\n\n/**\n * Shared composable to check whether the dark theme is enabled on the page.\n *\n * Reacts on body data-theme-* attributes change and system theme change.\n * As well as any enforced theme by the `NcThemeProvider`.\n *\n * @return Computed boolean whether the dark theme is enabled\n */\nexport function useIsDarkTheme(): DeepReadonly<Ref<boolean>> {\n\tconst isDarkTheme = useInternalIsDarkTheme()\n\tconst enforcedTheme = inject(INJECTION_KEY_THEME, undefined)\n\n\treturn computed(() => {\n\t\tif (enforcedTheme?.value) {\n\t\t\treturn enforcedTheme.value === 'dark'\n\t\t}\n\t\treturn isDarkTheme.value\n\t})\n}\n"],"names":[],"mappings":";;;;AAAA;AAAA;AAAA;AAAA;AAmBO,SAAS,sBAAsB,IAAgE;AACrG,QAAM,UAAU,SAAS,MAAM,QAAQ,EAAE,KAAK,SAAS,IAAI;AAE3D,QAAM,cAAc,IAAI,iBAAiB,QAAQ,KAAK,CAAC;AACvD,QAAM,oBAAoB,iBAAiB;AAG3C,WAAS,oBAAoB;AAChB,gBAAA,QAAQ,iBAAiB,QAAQ,KAAK;AAAA,EAAA;AAInD,sBAAoB,SAAS,mBAAmB,EAAE,YAAY,MAAM;AAEpE,QAAM,SAAS,iBAAiB;AAEhC,QAAM,mBAAmB,mBAAmB,EAAE,WAAW,MAAM;AAE/D,SAAO,SAAS,WAAW;AAC5B;AAMA,MAAM,yBAAyB,uBAAuB,MAAM,uBAAuB;AAU5E,SAAS,iBAA6C;AAC5D,QAAM,cAAc,uBAAuB;AACrC,QAAA,gBAAgB,OAAO,qBAAqB,MAAS;AAE3D,SAAO,SAAS,MAAM;AACrB,QAAI,eAAe,OAAO;AACzB,aAAO,cAAc,UAAU;AAAA,IAAA;AAEhC,WAAO,YAAY;AAAA,EAAA,CACnB;AACF;"}
@@ -8,5 +8,5 @@ export * from './dialog/index.ts';
8
8
  export * from './emoji/index.ts';
9
9
  export * from './isDarkTheme/index.ts';
10
10
  export * from './preloadImage/index.ts';
11
- export * from './reference/index.js';
12
- export { default as usernameToColor } from './usernameToColor/index.js';
11
+ export * from './reference/index.ts';
12
+ export * from './usernameToColor/index.ts';
@@ -1,21 +1,56 @@
1
+ /**
2
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
3
+ * SPDX-License-Identifier: AGPL-3.0-or-later
4
+ */
1
5
  /**
2
6
  * Representation of the render callback result
3
7
  * It contains a dom element and an object (Vue instance or other fancy things)
4
8
  */
5
- export class NcCustomPickerRenderResult {
9
+ export declare class NcCustomPickerRenderResult {
10
+ element: HTMLElement;
11
+ object: object;
6
12
  /**
7
- * @param {HTMLElement} element The HTML element
8
- * @param {object} object The object
13
+ * @param element - The HTML element
14
+ * @param object - The object
9
15
  */
10
16
  constructor(element: HTMLElement, object: object);
11
- element: HTMLElement;
12
- object: any;
13
17
  }
14
- export function registerCustomPickerElement(id: any, callback: any, onDestroy?: (el: any) => void, size?: string): void;
15
- export function renderCustomPickerElement(el: any, { providerId, accessible }: {
16
- providerId: any;
17
- accessible: any;
18
- }): any;
19
- export function destroyCustomPickerElement(providerId: any, el: any, renderResult: any): void;
20
- export function isCustomPickerElementRegistered(id: any): boolean;
21
- export function getCustomPickerElementSize(id: any): any;
18
+ interface CustomPickerElementProps {
19
+ providerId: number;
20
+ accessible: boolean;
21
+ }
22
+ type CustomPickerElementRegistrationCallback = (el: HTMLElement, options: CustomPickerElementProps) => void;
23
+ type CustomPickerElementDestroyCallback = (el: HTMLElement, result: NcCustomPickerRenderResult) => void;
24
+ export interface CustomPickerElement {
25
+ id: string;
26
+ size: 'small' | 'normal' | 'large' | 'full';
27
+ callback: CustomPickerElementRegistrationCallback;
28
+ onDestroy: CustomPickerElementDestroyCallback;
29
+ }
30
+ /**
31
+ * @param id - Id of the element to check
32
+ */
33
+ export declare function isCustomPickerElementRegistered(id: string): boolean;
34
+ /**
35
+ * @param id - Id of the element to get
36
+ */
37
+ export declare function getCustomPickerElementSize(id: string): 'small' | 'normal' | 'large' | 'full' | null;
38
+ /**
39
+ * @param id - Id of element to register
40
+ * @param callback - Render callback
41
+ * @param onDestroy - Cleanup callback
42
+ * @param size - Size of the element
43
+ */
44
+ export declare function registerCustomPickerElement(id: string, callback: CustomPickerElementRegistrationCallback, onDestroy?: CustomPickerElementDestroyCallback, size?: CustomPickerElement['size']): void;
45
+ /**
46
+ * @param el - element to render to
47
+ * @param options - Element options
48
+ */
49
+ export declare function renderCustomPickerElement(el: HTMLElement, options: CustomPickerElementProps): void;
50
+ /**
51
+ * @param providerId - Provider id of element to destroy
52
+ * @param el - The element to destroy element from
53
+ * @param renderResult - The render result
54
+ */
55
+ export declare function destroyCustomPickerElement(providerId: string, el: HTMLElement, renderResult: NcCustomPickerRenderResult): void;
56
+ export {};
@@ -1,5 +1,8 @@
1
- import { registerWidget, renderWidget, isWidgetRegistered, hasInteractiveView } from './widgets.ts';
2
- import { NcCustomPickerRenderResult, registerCustomPickerElement, renderCustomPickerElement, isCustomPickerElementRegistered } from './customPickerElements.js';
3
- import { getLinkWithPicker } from './referencePickerModal.js';
4
- import { anyLinkProviderId, getProvider, getProviders, sortProviders, searchProvider } from './providerHelper.js';
5
- export { registerWidget, renderWidget, isWidgetRegistered, hasInteractiveView, NcCustomPickerRenderResult, registerCustomPickerElement, renderCustomPickerElement, isCustomPickerElementRegistered, getLinkWithPicker, anyLinkProviderId, getProvider, getProviders, sortProviders, searchProvider };
1
+ /**
2
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
3
+ * SPDX-License-Identifier: AGPL-3.0-or-later
4
+ */
5
+ export { type ReferenceWidgetProps, type ReferenceWidgetRenderProperties, registerWidget, renderWidget, isWidgetRegistered, hasInteractiveView, } from './widgets.ts';
6
+ export { getLinkWithPicker } from './referencePickerModal.ts';
7
+ export { type ReferenceProvider, getProvider, getProviders, sortProviders, searchProvider, anyLinkProviderId, } from './providerHelper.ts';
8
+ export { type CustomPickerElement, registerCustomPickerElement, renderCustomPickerElement, isCustomPickerElementRegistered, NcCustomPickerRenderResult, } from './customPickerElements.ts';
@@ -1,19 +1,19 @@
1
- import { N, h, d, i, b, r, c, a } from "../../chunks/index-BF8joS9W.mjs";
2
- import { a as a2, g, b as b2, c as c2, d as d2, s } from "../../chunks/referencePickerModal-uLIBRHIc.mjs";
1
+ import { N, h, f, i, b, r, c, a } from "../../chunks/customPickerElements-CH9vlHLd.mjs";
2
+ import { d, g, a as a2, b as b2, c as c2, s } from "../../chunks/referencePickerModal-BA3NmGQ-.mjs";
3
3
  export {
4
4
  N as NcCustomPickerRenderResult,
5
- a2 as anyLinkProviderId,
5
+ d as anyLinkProviderId,
6
6
  g as getLinkWithPicker,
7
- b2 as getProvider,
8
- c2 as getProviders,
7
+ a2 as getProvider,
8
+ b2 as getProviders,
9
9
  h as hasInteractiveView,
10
- d as isCustomPickerElementRegistered,
10
+ f as isCustomPickerElementRegistered,
11
11
  i as isWidgetRegistered,
12
12
  b as registerCustomPickerElement,
13
13
  r as registerWidget,
14
14
  c as renderCustomPickerElement,
15
15
  a as renderWidget,
16
- d2 as searchProvider,
16
+ c2 as searchProvider,
17
17
  s as sortProviders
18
18
  };
19
19
  //# sourceMappingURL=index.mjs.map
@@ -1,34 +1,45 @@
1
1
  /**
2
- * @param {string} providerId The provider ID
3
- * @return {object} The provider object
2
+ * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
3
+ * SPDX-License-Identifier: AGPL-3.0-or-later
4
4
  */
5
- export function getProvider(providerId: string): object;
5
+ export interface ReferenceProvider {
6
+ id: string;
7
+ title: string;
8
+ icon_url: string;
9
+ order: number;
10
+ search_providers_ids?: string[];
11
+ }
12
+ export declare const anyLinkProviderId = "any-link";
6
13
  /**
7
- * @return {Array} Raw provider list as it was provided by the server
14
+ * @param providerId - The provider ID
15
+ * @return The provider object
8
16
  */
9
- export function getProviders(): any[];
17
+ export declare function getProvider(providerId: string): ReferenceProvider | undefined;
18
+ /**
19
+ * Get raw provider list as it was provided by the server
20
+ */
21
+ export declare function getProviders(): ReferenceProvider[];
10
22
  /**
11
23
  * Helper function to sort a list of providers according to 2 factors:
12
24
  * - their "last used timestamp"
13
25
  * - their "order" property (coming from the provider declaration in the server implementation)
14
26
  *
15
- * @param {Array} providerList list of provider objects
16
- * @return {Array} the sorted provider list
27
+ * @param providerList - List of provider objects
28
+ * @return The sorted provider list
17
29
  */
18
- export function sortProviders(providerList: any[]): any[];
30
+ export declare function sortProviders(providerList: ReferenceProvider[]): ReferenceProvider[];
19
31
  /**
20
32
  * Helper function to search a provider from a search query
21
33
  * Result is a sorted list of providers
22
34
  *
23
- * @param {string} query The search query
24
- * @param {number} limit (optional) max number of results
25
- * @return {Array} the sorted/filtered provider list
35
+ * @param query - The search query
36
+ * @param limit - (optional) max number of results
37
+ * @return The sorted/filtered provider list
26
38
  */
27
- export function searchProvider(query: string, limit?: number): any[];
39
+ export declare function searchProvider(query: string, limit?: number): ReferenceProvider[];
28
40
  /**
29
41
  * Update the "last used timestamp" on the server side and then locally in the frontend
30
42
  *
31
- * @param {number} providerId The id of the search provider
43
+ * @param providerId - The id of the search provider
32
44
  */
33
- export function touchProvider(providerId: number): void;
34
- export const anyLinkProviderId: "any-link";
45
+ export declare function touchProvider(providerId: number): Promise<void>;