@nextcloud/vue 8.19.0 → 8.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (652) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/dist/Components/NcActionButton.cjs +4 -4
  3. package/dist/Components/NcActionButton.mjs +4 -4
  4. package/dist/Components/NcActionButtonGroup.cjs +1 -1
  5. package/dist/Components/NcActionButtonGroup.mjs +1 -1
  6. package/dist/Components/NcActionCaption.cjs +1 -1
  7. package/dist/Components/NcActionCaption.mjs +1 -1
  8. package/dist/Components/NcActionCheckbox.cjs +2 -106
  9. package/dist/Components/NcActionCheckbox.cjs.map +1 -1
  10. package/dist/Components/NcActionCheckbox.mjs +2 -106
  11. package/dist/Components/NcActionCheckbox.mjs.map +1 -1
  12. package/dist/Components/NcActionInput.cjs +1 -1
  13. package/dist/Components/NcActionInput.mjs +1 -1
  14. package/dist/Components/NcActionLink.cjs +2 -2
  15. package/dist/Components/NcActionLink.mjs +2 -2
  16. package/dist/Components/NcActionRadio.cjs +2 -108
  17. package/dist/Components/NcActionRadio.cjs.map +1 -1
  18. package/dist/Components/NcActionRadio.mjs +2 -108
  19. package/dist/Components/NcActionRadio.mjs.map +1 -1
  20. package/dist/Components/NcActionRouter.cjs +2 -2
  21. package/dist/Components/NcActionRouter.mjs +2 -2
  22. package/dist/Components/NcActionSeparator.cjs +1 -1
  23. package/dist/Components/NcActionSeparator.mjs +1 -1
  24. package/dist/Components/NcActionText.cjs +2 -2
  25. package/dist/Components/NcActionText.mjs +2 -2
  26. package/dist/Components/NcActionTextEditable.cjs +2 -89
  27. package/dist/Components/NcActionTextEditable.cjs.map +1 -1
  28. package/dist/Components/NcActionTextEditable.mjs +2 -89
  29. package/dist/Components/NcActionTextEditable.mjs.map +1 -1
  30. package/dist/Components/NcActions.cjs +1 -1
  31. package/dist/Components/NcActions.mjs +1 -1
  32. package/dist/Components/NcAppContent.cjs +1 -1
  33. package/dist/Components/NcAppContent.mjs +1 -1
  34. package/dist/Components/NcAppNavigation.cjs +1 -1
  35. package/dist/Components/NcAppNavigation.mjs +1 -1
  36. package/dist/Components/NcAppNavigationCaption.cjs +1 -1
  37. package/dist/Components/NcAppNavigationCaption.mjs +1 -1
  38. package/dist/Components/NcAppNavigationIconBullet.cjs +1 -1
  39. package/dist/Components/NcAppNavigationIconBullet.mjs +1 -1
  40. package/dist/Components/NcAppNavigationItem.cjs +1 -1
  41. package/dist/Components/NcAppNavigationItem.mjs +1 -1
  42. package/dist/Components/NcAppNavigationList.cjs +1 -1
  43. package/dist/Components/NcAppNavigationList.mjs +1 -1
  44. package/dist/Components/NcAppNavigationNew.cjs +1 -1
  45. package/dist/Components/NcAppNavigationNew.mjs +1 -1
  46. package/dist/Components/NcAppNavigationNewItem.cjs +1 -1
  47. package/dist/Components/NcAppNavigationNewItem.mjs +1 -1
  48. package/dist/Components/NcAppNavigationSearch.cjs +1 -1
  49. package/dist/Components/NcAppNavigationSearch.mjs +1 -1
  50. package/dist/Components/NcAppNavigationSettings.cjs +1 -1
  51. package/dist/Components/NcAppNavigationSettings.mjs +1 -1
  52. package/dist/Components/NcAppNavigationSpacer.cjs +1 -1
  53. package/dist/Components/NcAppNavigationSpacer.mjs +1 -1
  54. package/dist/Components/NcAppNavigationToggle.cjs +1 -1
  55. package/dist/Components/NcAppNavigationToggle.mjs +1 -1
  56. package/dist/Components/NcAppSettingsDialog.cjs +1 -1
  57. package/dist/Components/NcAppSettingsDialog.mjs +1 -1
  58. package/dist/Components/NcAppSettingsSection.cjs +5 -8
  59. package/dist/Components/NcAppSettingsSection.cjs.map +1 -1
  60. package/dist/Components/NcAppSettingsSection.mjs +5 -8
  61. package/dist/Components/NcAppSettingsSection.mjs.map +1 -1
  62. package/dist/Components/NcAppSidebar.cjs +1 -1
  63. package/dist/Components/NcAppSidebar.mjs +1 -1
  64. package/dist/Components/NcAppSidebarTab.cjs +3 -4
  65. package/dist/Components/NcAppSidebarTab.cjs.map +1 -1
  66. package/dist/Components/NcAppSidebarTab.mjs +3 -4
  67. package/dist/Components/NcAppSidebarTab.mjs.map +1 -1
  68. package/dist/Components/NcAvatar.cjs +1 -1
  69. package/dist/Components/NcAvatar.mjs +1 -1
  70. package/dist/Components/NcBreadcrumb.cjs +1 -1
  71. package/dist/Components/NcBreadcrumb.mjs +1 -1
  72. package/dist/Components/NcBreadcrumbs.cjs +1 -1
  73. package/dist/Components/NcBreadcrumbs.mjs +1 -1
  74. package/dist/Components/NcButton.cjs +7 -8
  75. package/dist/Components/NcButton.cjs.map +1 -1
  76. package/dist/Components/NcButton.mjs +7 -8
  77. package/dist/Components/NcButton.mjs.map +1 -1
  78. package/dist/Components/NcCheckboxRadioSwitch.cjs +1 -1
  79. package/dist/Components/NcCheckboxRadioSwitch.mjs +1 -1
  80. package/dist/Components/NcChip.cjs +8 -14
  81. package/dist/Components/NcChip.cjs.map +1 -1
  82. package/dist/Components/NcChip.mjs +8 -14
  83. package/dist/Components/NcChip.mjs.map +1 -1
  84. package/dist/Components/NcCollectionList.cjs +1 -1
  85. package/dist/Components/NcCollectionList.mjs +1 -1
  86. package/dist/Components/NcColorPicker.cjs +1 -1
  87. package/dist/Components/NcColorPicker.mjs +1 -1
  88. package/dist/Components/NcContent.cjs +1 -1
  89. package/dist/Components/NcContent.mjs +1 -1
  90. package/dist/Components/NcCounterBubble.cjs +1 -1
  91. package/dist/Components/NcCounterBubble.mjs +1 -1
  92. package/dist/Components/NcDashboardWidget.cjs +1 -1
  93. package/dist/Components/NcDashboardWidget.mjs +1 -1
  94. package/dist/Components/NcDashboardWidgetItem.cjs +1 -1
  95. package/dist/Components/NcDashboardWidgetItem.mjs +1 -1
  96. package/dist/Components/NcDateTime.cjs +1 -1
  97. package/dist/Components/NcDateTime.mjs +1 -1
  98. package/dist/Components/NcDateTimePicker.cjs +37 -17
  99. package/dist/Components/NcDateTimePicker.cjs.map +1 -1
  100. package/dist/Components/NcDateTimePicker.mjs +37 -17
  101. package/dist/Components/NcDateTimePicker.mjs.map +1 -1
  102. package/dist/Components/NcDateTimePickerNative.cjs +52 -21
  103. package/dist/Components/NcDateTimePickerNative.cjs.map +1 -1
  104. package/dist/Components/NcDateTimePickerNative.mjs +52 -21
  105. package/dist/Components/NcDateTimePickerNative.mjs.map +1 -1
  106. package/dist/Components/NcDialog.cjs +1 -1
  107. package/dist/Components/NcDialog.mjs +1 -1
  108. package/dist/Components/NcDialogButton.cjs +1 -1
  109. package/dist/Components/NcDialogButton.mjs +1 -1
  110. package/dist/Components/NcEllipsisedOption.cjs +3 -3
  111. package/dist/Components/NcEllipsisedOption.cjs.map +1 -1
  112. package/dist/Components/NcEllipsisedOption.mjs +3 -3
  113. package/dist/Components/NcEllipsisedOption.mjs.map +1 -1
  114. package/dist/Components/NcEmojiPicker.cjs +1 -1
  115. package/dist/Components/NcEmojiPicker.mjs +1 -1
  116. package/dist/Components/NcEmptyContent.cjs +2 -3
  117. package/dist/Components/NcEmptyContent.cjs.map +1 -1
  118. package/dist/Components/NcEmptyContent.mjs +2 -3
  119. package/dist/Components/NcEmptyContent.mjs.map +1 -1
  120. package/dist/Components/NcGuestContent.cjs +1 -1
  121. package/dist/Components/NcGuestContent.mjs +1 -1
  122. package/dist/Components/NcHeaderButton.cjs +1 -1
  123. package/dist/Components/NcHeaderButton.mjs +1 -1
  124. package/dist/Components/NcHeaderMenu.cjs +1 -1
  125. package/dist/Components/NcHeaderMenu.mjs +1 -1
  126. package/dist/Components/NcIconSvgWrapper.cjs +1 -1
  127. package/dist/Components/NcIconSvgWrapper.mjs +1 -1
  128. package/dist/Components/NcInputField.cjs +2 -232
  129. package/dist/Components/NcInputField.cjs.map +1 -1
  130. package/dist/Components/NcInputField.mjs +2 -232
  131. package/dist/Components/NcInputField.mjs.map +1 -1
  132. package/dist/Components/NcListItem.cjs +1 -1
  133. package/dist/Components/NcListItem.mjs +1 -1
  134. package/dist/Components/NcListItemIcon.cjs +1 -1
  135. package/dist/Components/NcListItemIcon.mjs +1 -1
  136. package/dist/Components/NcLoadingIcon.cjs +1 -1
  137. package/dist/Components/NcLoadingIcon.mjs +1 -1
  138. package/dist/Components/NcModal.cjs +14 -15
  139. package/dist/Components/NcModal.cjs.map +1 -1
  140. package/dist/Components/NcModal.mjs +14 -15
  141. package/dist/Components/NcModal.mjs.map +1 -1
  142. package/dist/Components/NcNoteCard.cjs +6 -6
  143. package/dist/Components/NcNoteCard.cjs.map +1 -1
  144. package/dist/Components/NcNoteCard.mjs +6 -6
  145. package/dist/Components/NcNoteCard.mjs.map +1 -1
  146. package/dist/Components/NcPasswordField.cjs +1 -1
  147. package/dist/Components/NcPasswordField.mjs +1 -1
  148. package/dist/Components/NcPopover.cjs +1 -1
  149. package/dist/Components/NcPopover.mjs +1 -1
  150. package/dist/Components/NcProgressBar.cjs +1 -1
  151. package/dist/Components/NcProgressBar.mjs +1 -1
  152. package/dist/Components/NcRelatedResourcesPanel.cjs +1 -1
  153. package/dist/Components/NcRelatedResourcesPanel.mjs +1 -1
  154. package/dist/Components/NcRichContenteditable.cjs +2 -2
  155. package/dist/Components/NcRichContenteditable.mjs +2 -2
  156. package/dist/Components/NcRichText.cjs +3 -3
  157. package/dist/Components/NcRichText.mjs +4 -4
  158. package/dist/Components/NcSelect.cjs +1 -1
  159. package/dist/Components/NcSelect.mjs +1 -1
  160. package/dist/Components/NcSelectTags.cjs +1 -1
  161. package/dist/Components/NcSelectTags.mjs +1 -1
  162. package/dist/Components/NcSettingsInputText.cjs +1 -1
  163. package/dist/Components/NcSettingsInputText.mjs +1 -1
  164. package/dist/Components/NcSettingsSection.cjs +1 -1
  165. package/dist/Components/NcSettingsSection.mjs +1 -1
  166. package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
  167. package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
  168. package/dist/Components/NcTextArea.cjs +2 -179
  169. package/dist/Components/NcTextArea.cjs.map +1 -1
  170. package/dist/Components/NcTextArea.mjs +2 -179
  171. package/dist/Components/NcTextArea.mjs.map +1 -1
  172. package/dist/Components/NcTextField.cjs +1 -1
  173. package/dist/Components/NcTextField.mjs +1 -1
  174. package/dist/Components/NcTimezonePicker.cjs +1 -1
  175. package/dist/Components/NcTimezonePicker.mjs +1 -1
  176. package/dist/Components/NcUserBubble.cjs +1 -1
  177. package/dist/Components/NcUserBubble.mjs +1 -1
  178. package/dist/Components/NcUserStatusIcon.cjs +1 -1
  179. package/dist/Components/NcUserStatusIcon.mjs +1 -1
  180. package/dist/Components/NcVNodes.cjs +1 -2
  181. package/dist/Components/NcVNodes.cjs.map +1 -1
  182. package/dist/Components/NcVNodes.mjs +1 -2
  183. package/dist/Components/NcVNodes.mjs.map +1 -1
  184. package/dist/Composables/useHotKey.cjs +2 -4
  185. package/dist/Composables/useHotKey.cjs.map +1 -1
  186. package/dist/Composables/useHotKey.mjs +2 -4
  187. package/dist/Composables/useHotKey.mjs.map +1 -1
  188. package/dist/Composables/useIsDarkTheme.cjs +18 -0
  189. package/dist/Composables/useIsDarkTheme.cjs.map +1 -0
  190. package/dist/Composables/useIsDarkTheme.mjs +18 -0
  191. package/dist/Composables/useIsDarkTheme.mjs.map +1 -0
  192. package/dist/Directives/Linkify.cjs +1 -2
  193. package/dist/Directives/Linkify.cjs.map +1 -1
  194. package/dist/Directives/Linkify.mjs +1 -2
  195. package/dist/Directives/Linkify.mjs.map +1 -1
  196. package/dist/Directives/Tooltip.cjs +1 -1
  197. package/dist/Directives/Tooltip.mjs +1 -1
  198. package/dist/Functions/dialog.cjs +27 -0
  199. package/dist/Functions/dialog.cjs.map +1 -0
  200. package/dist/Functions/dialog.mjs +25 -0
  201. package/dist/Functions/dialog.mjs.map +1 -0
  202. package/dist/Functions/emoji.cjs +1 -1
  203. package/dist/Functions/emoji.mjs +1 -1
  204. package/dist/Functions/isDarkTheme.cjs +12 -0
  205. package/dist/Functions/isDarkTheme.cjs.map +1 -0
  206. package/dist/Functions/isDarkTheme.mjs +12 -0
  207. package/dist/Functions/isDarkTheme.mjs.map +1 -0
  208. package/dist/Functions/reference.cjs +2 -2
  209. package/dist/Functions/reference.mjs +2 -2
  210. package/dist/Functions/registerReference.cjs +1 -1
  211. package/dist/Functions/registerReference.mjs +1 -1
  212. package/dist/Functions/usernameToColor.cjs +1 -1
  213. package/dist/Functions/usernameToColor.mjs +1 -1
  214. package/dist/Mixins/richEditor.cjs +1 -1
  215. package/dist/Mixins/richEditor.mjs +1 -1
  216. package/dist/assets/{NcActionButton-D90PTEA5.css → NcActionButton-CNq6xIdS.css} +1 -1
  217. package/dist/assets/{NcActionCheckbox-sIGqnckr.css → NcActionCheckbox-DeW2CCVc.css} +11 -11
  218. package/dist/assets/{NcActionInput-C_3Csa6A.css → NcActionInput-CNRERfyh.css} +61 -61
  219. package/dist/assets/{NcActionLink-Db_ZlqWs.css → NcActionLink-CC6a7Hsf.css} +1 -1
  220. package/dist/assets/{NcActionRadio-DFcWmvae.css → NcActionRadio-DC7Wp9rR.css} +11 -11
  221. package/dist/assets/{NcActionRouter-DidTlbov.css → NcActionRouter-CsIBHw6E.css} +1 -1
  222. package/dist/assets/{NcActionText-DCx1DWXe.css → NcActionText-BSD_HYx4.css} +1 -1
  223. package/dist/assets/{NcActionTextEditable-Dud9NOdm.css → NcActionTextEditable-Cg16Q4zr.css} +59 -59
  224. package/dist/assets/{NcAppContent-DVBVZyuW.css → NcAppContent-D97xom6z.css} +29 -24
  225. package/dist/assets/{NcAppNavigation-fhylfTxx.css → NcAppNavigation-CBN6X2dT.css} +13 -13
  226. package/dist/assets/{NcAppNavigationItem-CxlG8Qdb.css → NcAppNavigationItem-CNZsPcla.css} +30 -30
  227. package/dist/assets/{NcAppNavigationToggle-DvYpNzHv.css → NcAppNavigationToggle-Chtb7sE7.css} +5 -5
  228. package/dist/assets/{NcAppSidebar-CpV7czJx.css → NcAppSidebar-BntAj6H-.css} +73 -73
  229. package/dist/assets/{NcCheckboxRadioSwitch-BzAGGne9.css → NcCheckboxRadioSwitch-D0kAZROF.css} +31 -31
  230. package/dist/assets/{NcChip-CEKw1zaK.css → NcChip-CIvAlds6.css} +10 -10
  231. package/dist/assets/{NcColorPicker-aCjZY65-.css → NcColorPicker-Dw2wy2tU.css} +28 -28
  232. package/dist/assets/{NcDateTimePicker-BFvU3We7.css → NcDateTimePicker-Dp2wSSiQ.css} +48 -33
  233. package/dist/assets/NcDateTimePickerNative-BfZfqRvD.css +47 -0
  234. package/dist/assets/{NcEllipsisedOption-DZK2vWD1.css → NcEllipsisedOption-DGr9_bIL.css} +5 -5
  235. package/dist/assets/{NcInputField-CQc5dRbY.css → NcInputField-CUsdr7lV.css} +33 -33
  236. package/dist/assets/{NcModal-Cg2K9DV5.css → NcModal-BBKX-T6V.css} +61 -61
  237. package/dist/assets/{NcPasswordField-DWd5gg73.css → NcPasswordField-DZ6dcMzH.css} +2 -2
  238. package/dist/assets/{NcRichContenteditable-BYEZK1DT.css → NcRichContenteditable-DkYYyQTJ.css} +10 -10
  239. package/dist/assets/NcRichText-BlRmdWCX.css +412 -0
  240. package/dist/assets/{NcSettingsInputText-DbTNj9E6.css → NcSettingsInputText-Bsp_6DjJ.css} +5 -5
  241. package/dist/assets/{NcSettingsSelectGroup-CzD7YrGm.css → NcSettingsSelectGroup-BEjOwCJQ.css} +2 -2
  242. package/dist/assets/{NcTextArea-D8bZi2fT.css → NcTextArea-fzbciv3V.css} +20 -20
  243. package/dist/assets/{referencePickerModal-9BcmmfUy.css → referencePickerModal-BhhuyO3J.css} +38 -38
  244. package/dist/chunks/{AlertCircleOutline-DLtiWgZd.cjs → AlertCircleOutline-BrsasUsU.cjs} +1 -1
  245. package/dist/chunks/AlertCircleOutline-BrsasUsU.cjs.map +1 -0
  246. package/dist/chunks/{AlertCircleOutline-DU3QwU5Y.mjs → AlertCircleOutline-DBxbepLy.mjs} +1 -1
  247. package/dist/chunks/AlertCircleOutline-DBxbepLy.mjs.map +1 -0
  248. package/dist/chunks/{ArrowLeft-CONurT5C.cjs → ArrowLeft-BP7yfzCQ.cjs} +1 -1
  249. package/dist/chunks/ArrowLeft-BP7yfzCQ.cjs.map +1 -0
  250. package/dist/chunks/{ArrowLeft-BhAxJBYx.mjs → ArrowLeft-DuT2LZOm.mjs} +1 -1
  251. package/dist/chunks/ArrowLeft-DuT2LZOm.mjs.map +1 -0
  252. package/dist/chunks/{ArrowRight-KsL2PC-o.mjs → ArrowRight-CY2b9hgN.mjs} +1 -1
  253. package/dist/chunks/ArrowRight-CY2b9hgN.mjs.map +1 -0
  254. package/dist/chunks/{ArrowRight-Bj5G_mG0.cjs → ArrowRight-DPARnmu3.cjs} +1 -1
  255. package/dist/chunks/ArrowRight-DPARnmu3.cjs.map +1 -0
  256. package/dist/chunks/{Check-XHAzUBkX.mjs → Check-BkThHPH7.mjs} +1 -1
  257. package/dist/chunks/Check-BkThHPH7.mjs.map +1 -0
  258. package/dist/chunks/{Check-fCbe4vqy.cjs → Check-Du8mPz_B.cjs} +1 -1
  259. package/dist/chunks/Check-Du8mPz_B.cjs.map +1 -0
  260. package/dist/chunks/{ChevronDown-CiFbcDUC.cjs → ChevronDown-BlfyuflD.cjs} +1 -1
  261. package/dist/chunks/ChevronDown-BlfyuflD.cjs.map +1 -0
  262. package/dist/chunks/{ChevronDown-D3Tfshug.mjs → ChevronDown-DFQfzh63.mjs} +1 -1
  263. package/dist/chunks/ChevronDown-DFQfzh63.mjs.map +1 -0
  264. package/dist/chunks/{ChevronRight-C3eVhc5a.mjs → ChevronRight-BUv-PtHh.mjs} +1 -1
  265. package/dist/chunks/ChevronRight-BUv-PtHh.mjs.map +1 -0
  266. package/dist/chunks/{ChevronRight-CWbdN5_r.cjs → ChevronRight-ZCKVg9OI.cjs} +1 -1
  267. package/dist/chunks/ChevronRight-ZCKVg9OI.cjs.map +1 -0
  268. package/dist/chunks/{ChevronUp-A2riTBrv.cjs → ChevronUp-Bpd__OBZ.cjs} +1 -1
  269. package/dist/chunks/ChevronUp-Bpd__OBZ.cjs.map +1 -0
  270. package/dist/chunks/{ChevronUp-ljACquzS.mjs → ChevronUp-C7Dy9Bph.mjs} +1 -1
  271. package/dist/chunks/ChevronUp-C7Dy9Bph.mjs.map +1 -0
  272. package/dist/chunks/{Close-B6ccm1RP.mjs → Close-BtLPUSdO.mjs} +1 -1
  273. package/dist/chunks/Close-BtLPUSdO.mjs.map +1 -0
  274. package/dist/chunks/{Close-B7lGu0cG.cjs → Close-CqmXxEKi.cjs} +1 -1
  275. package/dist/chunks/Close-CqmXxEKi.cjs.map +1 -0
  276. package/dist/chunks/{DotsHorizontal-DQfnwpao.cjs → DotsHorizontal-BoI3vnhk.cjs} +1 -1
  277. package/dist/chunks/DotsHorizontal-BoI3vnhk.cjs.map +1 -0
  278. package/dist/chunks/{DotsHorizontal-Cd2x8oz2.mjs → DotsHorizontal-C6LNsw4N.mjs} +1 -1
  279. package/dist/chunks/DotsHorizontal-C6LNsw4N.mjs.map +1 -0
  280. package/dist/chunks/{GenColors-BWE946ht.mjs → GenColors-DpvFVzBN.mjs} +3 -3
  281. package/dist/chunks/{GenColors-BWE946ht.mjs.map → GenColors-DpvFVzBN.mjs.map} +1 -1
  282. package/dist/chunks/{GenColors-Cay7TLwO.cjs → GenColors-iV_vrBr4.cjs} +3 -3
  283. package/dist/chunks/{GenColors-Cay7TLwO.cjs.map → GenColors-iV_vrBr4.cjs.map} +1 -1
  284. package/dist/chunks/{NcActionButtonGroup-BrN2mWdo.cjs → NcActionButtonGroup-C0nQ7J_W.cjs} +3 -3
  285. package/dist/chunks/{NcActionButtonGroup-BrN2mWdo.cjs.map → NcActionButtonGroup-C0nQ7J_W.cjs.map} +1 -1
  286. package/dist/chunks/{NcActionButtonGroup-B5RmRcow.mjs → NcActionButtonGroup-ue4dTx-p.mjs} +3 -3
  287. package/dist/chunks/{NcActionButtonGroup-B5RmRcow.mjs.map → NcActionButtonGroup-ue4dTx-p.mjs.map} +1 -1
  288. package/dist/chunks/NcActionCheckbox-C_wvm9IO.mjs +138 -0
  289. package/dist/chunks/NcActionCheckbox-C_wvm9IO.mjs.map +1 -0
  290. package/dist/chunks/NcActionCheckbox-DwU16qcU.cjs +137 -0
  291. package/dist/chunks/NcActionCheckbox-DwU16qcU.cjs.map +1 -0
  292. package/dist/chunks/{NcActionInput-BxlypAgV.mjs → NcActionInput-4-s29xoN.mjs} +46 -14
  293. package/dist/chunks/NcActionInput-4-s29xoN.mjs.map +1 -0
  294. package/dist/chunks/{NcActionInput-TP6P798j.cjs → NcActionInput-D0qZP5ag.cjs} +46 -14
  295. package/dist/chunks/NcActionInput-D0qZP5ag.cjs.map +1 -0
  296. package/dist/chunks/NcActionRadio-Dl6W62Vm.mjs +140 -0
  297. package/dist/chunks/NcActionRadio-Dl6W62Vm.mjs.map +1 -0
  298. package/dist/chunks/NcActionRadio-vHwjWOHS.cjs +139 -0
  299. package/dist/chunks/NcActionRadio-vHwjWOHS.cjs.map +1 -0
  300. package/dist/chunks/NcActionTextEditable-97R7dFen.cjs +121 -0
  301. package/dist/chunks/NcActionTextEditable-97R7dFen.cjs.map +1 -0
  302. package/dist/chunks/NcActionTextEditable-DZCFtqIP.mjs +122 -0
  303. package/dist/chunks/NcActionTextEditable-DZCFtqIP.mjs.map +1 -0
  304. package/dist/chunks/{NcActions-gOMT5VzC.cjs → NcActions-CCYNSnCn.cjs} +30 -37
  305. package/dist/chunks/{NcActions-gOMT5VzC.cjs.map → NcActions-CCYNSnCn.cjs.map} +1 -1
  306. package/dist/chunks/{NcActions-BgYpDq2n.mjs → NcActions-NA1n25Vt.mjs} +30 -37
  307. package/dist/chunks/{NcActions-BgYpDq2n.mjs.map → NcActions-NA1n25Vt.mjs.map} +1 -1
  308. package/dist/chunks/{NcAppContent-lEyly7Jk.mjs → NcAppContent-CIMgDnJM.mjs} +13 -9
  309. package/dist/chunks/NcAppContent-CIMgDnJM.mjs.map +1 -0
  310. package/dist/chunks/{NcAppContent-fXpgsMfG.cjs → NcAppContent-DdzUMomS.cjs} +13 -9
  311. package/dist/chunks/NcAppContent-DdzUMomS.cjs.map +1 -0
  312. package/dist/chunks/{NcAppNavigation-BleAA1U_.cjs → NcAppNavigation-BuKJwvwT.cjs} +3 -3
  313. package/dist/chunks/{NcAppNavigation-BleAA1U_.cjs.map → NcAppNavigation-BuKJwvwT.cjs.map} +1 -1
  314. package/dist/chunks/{NcAppNavigation-CxsxPI9x.mjs → NcAppNavigation-wz0Fsxe4.mjs} +3 -3
  315. package/dist/chunks/{NcAppNavigation-CxsxPI9x.mjs.map → NcAppNavigation-wz0Fsxe4.mjs.map} +1 -1
  316. package/dist/chunks/{NcAppNavigationCaption-BQVV0F7Y.mjs → NcAppNavigationCaption-DBKM-x5x.mjs} +3 -3
  317. package/dist/chunks/{NcAppNavigationCaption-BQVV0F7Y.mjs.map → NcAppNavigationCaption-DBKM-x5x.mjs.map} +1 -1
  318. package/dist/chunks/{NcAppNavigationCaption-BK-acRxg.cjs → NcAppNavigationCaption-DUPonEWi.cjs} +3 -3
  319. package/dist/chunks/{NcAppNavigationCaption-BK-acRxg.cjs.map → NcAppNavigationCaption-DUPonEWi.cjs.map} +1 -1
  320. package/dist/chunks/{NcAppNavigationItem-MvvOWnip.mjs → NcAppNavigationItem-BkkuFdfa.mjs} +23 -27
  321. package/dist/chunks/NcAppNavigationItem-BkkuFdfa.mjs.map +1 -0
  322. package/dist/chunks/{NcAppNavigationItem-DfgovIvi.cjs → NcAppNavigationItem-Y_CVXzId.cjs} +23 -27
  323. package/dist/chunks/NcAppNavigationItem-Y_CVXzId.cjs.map +1 -0
  324. package/dist/chunks/{NcAppNavigationNewItem-C66Vvx3t.cjs → NcAppNavigationNewItem-B76-cCDH.cjs} +2 -2
  325. package/dist/chunks/{NcAppNavigationNewItem-C66Vvx3t.cjs.map → NcAppNavigationNewItem-B76-cCDH.cjs.map} +1 -1
  326. package/dist/chunks/{NcAppNavigationNewItem-DyLB6t5e.mjs → NcAppNavigationNewItem-BFFG7VDH.mjs} +2 -2
  327. package/dist/chunks/{NcAppNavigationNewItem-DyLB6t5e.mjs.map → NcAppNavigationNewItem-BFFG7VDH.mjs.map} +1 -1
  328. package/dist/chunks/{NcAppNavigationSearch-8jcfsc-r.mjs → NcAppNavigationSearch-Bg-WTyms.mjs} +6 -10
  329. package/dist/chunks/{NcAppNavigationSearch-8jcfsc-r.mjs.map → NcAppNavigationSearch-Bg-WTyms.mjs.map} +1 -1
  330. package/dist/chunks/{NcAppNavigationSearch-CZRhuV6d.cjs → NcAppNavigationSearch-DVBgbwyd.cjs} +7 -11
  331. package/dist/chunks/{NcAppNavigationSearch-CZRhuV6d.cjs.map → NcAppNavigationSearch-DVBgbwyd.cjs.map} +1 -1
  332. package/dist/chunks/{NcAppNavigationSettings-C-_G8yUn.cjs → NcAppNavigationSettings-BH5t68oV.cjs} +4 -4
  333. package/dist/chunks/NcAppNavigationSettings-BH5t68oV.cjs.map +1 -0
  334. package/dist/chunks/{NcAppNavigationSettings-DScz0UWm.mjs → NcAppNavigationSettings-CieV4qU5.mjs} +4 -4
  335. package/dist/chunks/NcAppNavigationSettings-CieV4qU5.mjs.map +1 -0
  336. package/dist/chunks/{NcAppNavigationToggle-BXainLDc.mjs → NcAppNavigationToggle-Dw0ZPjy2.mjs} +5 -5
  337. package/dist/chunks/NcAppNavigationToggle-Dw0ZPjy2.mjs.map +1 -0
  338. package/dist/chunks/{NcAppNavigationToggle-DAhbqsn_.cjs → NcAppNavigationToggle-Dwg-dMWx.cjs} +5 -5
  339. package/dist/chunks/NcAppNavigationToggle-Dwg-dMWx.cjs.map +1 -0
  340. package/dist/chunks/{NcAppSettingsDialog-BxDO8Ivr.mjs → NcAppSettingsDialog-B4GS8urN.mjs} +8 -15
  341. package/dist/chunks/{NcAppSettingsDialog-BxDO8Ivr.mjs.map → NcAppSettingsDialog-B4GS8urN.mjs.map} +1 -1
  342. package/dist/chunks/{NcAppSettingsDialog-niXwDCmG.cjs → NcAppSettingsDialog-Dkl3cqU-.cjs} +8 -15
  343. package/dist/chunks/{NcAppSettingsDialog-niXwDCmG.cjs.map → NcAppSettingsDialog-Dkl3cqU-.cjs.map} +1 -1
  344. package/dist/chunks/{NcAppSidebar-1S8EBs22.cjs → NcAppSidebar-B75YJPC-.cjs} +20 -23
  345. package/dist/chunks/NcAppSidebar-B75YJPC-.cjs.map +1 -0
  346. package/dist/chunks/{NcAppSidebar-D1Ss2put.mjs → NcAppSidebar-DaJVGxLh.mjs} +20 -23
  347. package/dist/chunks/NcAppSidebar-DaJVGxLh.mjs.map +1 -0
  348. package/dist/chunks/{NcAvatar-lRUjWiR6.mjs → NcAvatar-B8e2YFLI.mjs} +20 -22
  349. package/dist/chunks/{NcAvatar-lRUjWiR6.mjs.map → NcAvatar-B8e2YFLI.mjs.map} +1 -1
  350. package/dist/chunks/{NcAvatar-B238cv9d.cjs → NcAvatar-DypzACJs.cjs} +20 -22
  351. package/dist/chunks/{NcAvatar-B238cv9d.cjs.map → NcAvatar-DypzACJs.cjs.map} +1 -1
  352. package/dist/chunks/{NcBreadcrumb-Fqw2S2pM.cjs → NcBreadcrumb-DVn5-KGF.cjs} +5 -5
  353. package/dist/chunks/{NcBreadcrumb-Fqw2S2pM.cjs.map → NcBreadcrumb-DVn5-KGF.cjs.map} +1 -1
  354. package/dist/chunks/{NcBreadcrumb-ydWs_Sw8.mjs → NcBreadcrumb-MucRC9Y6.mjs} +5 -5
  355. package/dist/chunks/{NcBreadcrumb-ydWs_Sw8.mjs.map → NcBreadcrumb-MucRC9Y6.mjs.map} +1 -1
  356. package/dist/chunks/{NcBreadcrumbs-CPW9eMLa.mjs → NcBreadcrumbs-D59osZ3o.mjs} +26 -30
  357. package/dist/chunks/NcBreadcrumbs-D59osZ3o.mjs.map +1 -0
  358. package/dist/chunks/{NcBreadcrumbs-GKwJaai0.cjs → NcBreadcrumbs-JqPHfTRj.cjs} +26 -30
  359. package/dist/chunks/NcBreadcrumbs-JqPHfTRj.cjs.map +1 -0
  360. package/dist/chunks/{NcCheckboxRadioSwitch-COeeT-7G.cjs → NcCheckboxRadioSwitch-DdquK4fW.cjs} +57 -28
  361. package/dist/chunks/NcCheckboxRadioSwitch-DdquK4fW.cjs.map +1 -0
  362. package/dist/chunks/{NcCheckboxRadioSwitch-CvMEEI9x.mjs → NcCheckboxRadioSwitch-R1y0mLbC.mjs} +57 -28
  363. package/dist/chunks/NcCheckboxRadioSwitch-R1y0mLbC.mjs.map +1 -0
  364. package/dist/chunks/{NcCollectionList-DWyT_P3u.cjs → NcCollectionList-BBs48HVU.cjs} +6 -7
  365. package/dist/chunks/{NcCollectionList-DWyT_P3u.cjs.map → NcCollectionList-BBs48HVU.cjs.map} +1 -1
  366. package/dist/chunks/{NcCollectionList-CAM0Gyhi.mjs → NcCollectionList-COYakeMz.mjs} +6 -7
  367. package/dist/chunks/{NcCollectionList-CAM0Gyhi.mjs.map → NcCollectionList-COYakeMz.mjs.map} +1 -1
  368. package/dist/chunks/{NcColorPicker-Ddm2gbz0.mjs → NcColorPicker-8wU8rMbF.mjs} +43 -14
  369. package/dist/chunks/NcColorPicker-8wU8rMbF.mjs.map +1 -0
  370. package/dist/chunks/{NcColorPicker-Dy2BtsaH.cjs → NcColorPicker-Df6UVuYn.cjs} +43 -14
  371. package/dist/chunks/NcColorPicker-Df6UVuYn.cjs.map +1 -0
  372. package/dist/chunks/{NcContent-DKpTIl9F.mjs → NcContent-BEcHmywv.mjs} +4 -4
  373. package/dist/chunks/{NcContent-DKpTIl9F.mjs.map → NcContent-BEcHmywv.mjs.map} +1 -1
  374. package/dist/chunks/{NcContent-BTyHf5mF.cjs → NcContent-BXi18ILU.cjs} +4 -4
  375. package/dist/chunks/{NcContent-BTyHf5mF.cjs.map → NcContent-BXi18ILU.cjs.map} +1 -1
  376. package/dist/chunks/{NcCounterBubble-R8Tmi05i.cjs → NcCounterBubble-DF2rwIo4.cjs} +4 -6
  377. package/dist/chunks/{NcCounterBubble-R8Tmi05i.cjs.map → NcCounterBubble-DF2rwIo4.cjs.map} +1 -1
  378. package/dist/chunks/{NcCounterBubble-D1QC3eP1.mjs → NcCounterBubble-M1q9GRkH.mjs} +4 -6
  379. package/dist/chunks/{NcCounterBubble-D1QC3eP1.mjs.map → NcCounterBubble-M1q9GRkH.mjs.map} +1 -1
  380. package/dist/chunks/{NcDashboardWidget-DhVJqy1d.cjs → NcDashboardWidget-Bu-WC7kg.cjs} +5 -5
  381. package/dist/chunks/{NcDashboardWidget-DhVJqy1d.cjs.map → NcDashboardWidget-Bu-WC7kg.cjs.map} +1 -1
  382. package/dist/chunks/{NcDashboardWidget-DG9u5NLf.mjs → NcDashboardWidget-GDdmCQm-.mjs} +5 -5
  383. package/dist/chunks/{NcDashboardWidget-DG9u5NLf.mjs.map → NcDashboardWidget-GDdmCQm-.mjs.map} +1 -1
  384. package/dist/chunks/{NcDashboardWidgetItem-DuntgAlo.cjs → NcDashboardWidgetItem-CI59K-wE.cjs} +3 -3
  385. package/dist/chunks/{NcDashboardWidgetItem-DuntgAlo.cjs.map → NcDashboardWidgetItem-CI59K-wE.cjs.map} +1 -1
  386. package/dist/chunks/{NcDashboardWidgetItem-CHCygvjp.mjs → NcDashboardWidgetItem-vMP_Z6ay.mjs} +3 -3
  387. package/dist/chunks/{NcDashboardWidgetItem-CHCygvjp.mjs.map → NcDashboardWidgetItem-vMP_Z6ay.mjs.map} +1 -1
  388. package/dist/chunks/{NcDateTime-BfOmGrzK.cjs → NcDateTime-CaJHhgab.cjs} +1 -1
  389. package/dist/chunks/{NcDateTime-BfOmGrzK.cjs.map → NcDateTime-CaJHhgab.cjs.map} +1 -1
  390. package/dist/chunks/{NcDateTime-ciAHA2YL.mjs → NcDateTime-D5UaJ0tw.mjs} +1 -1
  391. package/dist/chunks/{NcDateTime-ciAHA2YL.mjs.map → NcDateTime-D5UaJ0tw.mjs.map} +1 -1
  392. package/dist/chunks/{NcDialog-D9l7GQQJ.cjs → NcDialog-CWGgSCpv.cjs} +3 -3
  393. package/dist/chunks/{NcDialog-D9l7GQQJ.cjs.map → NcDialog-CWGgSCpv.cjs.map} +1 -1
  394. package/dist/chunks/{NcDialog-DmcKxy4v.mjs → NcDialog-CzWTz2Qr.mjs} +3 -3
  395. package/dist/chunks/{NcDialog-DmcKxy4v.mjs.map → NcDialog-CzWTz2Qr.mjs.map} +1 -1
  396. package/dist/chunks/{NcDialogButton-CubYnLkp.mjs → NcDialogButton-B5jVZIGf.mjs} +3 -4
  397. package/dist/chunks/{NcDialogButton-CubYnLkp.mjs.map → NcDialogButton-B5jVZIGf.mjs.map} +1 -1
  398. package/dist/chunks/{NcDialogButton-C4-agMb3.cjs → NcDialogButton-B7d1LWFN.cjs} +3 -4
  399. package/dist/chunks/{NcDialogButton-C4-agMb3.cjs.map → NcDialogButton-B7d1LWFN.cjs.map} +1 -1
  400. package/dist/chunks/{NcEmojiPicker-C2DIjkqr.mjs → NcEmojiPicker-BSoMzxJl.mjs} +10 -12
  401. package/dist/chunks/NcEmojiPicker-BSoMzxJl.mjs.map +1 -0
  402. package/dist/chunks/{NcEmojiPicker-DrMA-XDR.cjs → NcEmojiPicker-XRtfmbk_.cjs} +10 -12
  403. package/dist/chunks/NcEmojiPicker-XRtfmbk_.cjs.map +1 -0
  404. package/dist/chunks/{NcHeaderMenu-Bis33gPF.cjs → NcHeaderMenu-CzS2doDR.cjs} +6 -8
  405. package/dist/chunks/{NcHeaderMenu-Bis33gPF.cjs.map → NcHeaderMenu-CzS2doDR.cjs.map} +1 -1
  406. package/dist/chunks/{NcHeaderMenu-DYGKi6bj.mjs → NcHeaderMenu-vLqcJ-_w.mjs} +6 -8
  407. package/dist/chunks/{NcHeaderMenu-DYGKi6bj.mjs.map → NcHeaderMenu-vLqcJ-_w.mjs.map} +1 -1
  408. package/dist/chunks/{NcIconSvgWrapper-Cb4bAwV6.cjs → NcIconSvgWrapper-B_eOG2sZ.cjs} +2 -2
  409. package/dist/chunks/{NcIconSvgWrapper-Cb4bAwV6.cjs.map → NcIconSvgWrapper-B_eOG2sZ.cjs.map} +1 -1
  410. package/dist/chunks/{NcIconSvgWrapper-DjrkBUkC.mjs → NcIconSvgWrapper-CHmdAuhg.mjs} +2 -2
  411. package/dist/chunks/{NcIconSvgWrapper-DjrkBUkC.mjs.map → NcIconSvgWrapper-CHmdAuhg.mjs.map} +1 -1
  412. package/dist/chunks/{NcInputConfirmCancel-bHJNQ1vm.cjs → NcInputConfirmCancel-CYQsG_3t.cjs} +4 -4
  413. package/dist/chunks/{NcInputConfirmCancel-bHJNQ1vm.cjs.map → NcInputConfirmCancel-CYQsG_3t.cjs.map} +1 -1
  414. package/dist/chunks/{NcInputConfirmCancel-PXVZ7mLT.mjs → NcInputConfirmCancel-DwmLGFYb.mjs} +4 -4
  415. package/dist/chunks/{NcInputConfirmCancel-PXVZ7mLT.mjs.map → NcInputConfirmCancel-DwmLGFYb.mjs.map} +1 -1
  416. package/dist/chunks/NcInputField-CbBdbdE8.cjs +260 -0
  417. package/dist/chunks/NcInputField-CbBdbdE8.cjs.map +1 -0
  418. package/dist/chunks/NcInputField-ixTTHy3h.mjs +261 -0
  419. package/dist/chunks/NcInputField-ixTTHy3h.mjs.map +1 -0
  420. package/dist/chunks/{NcListItem-D16FB3uo.mjs → NcListItem-DCh0J8Z4.mjs} +6 -7
  421. package/dist/chunks/{NcListItem-D16FB3uo.mjs.map → NcListItem-DCh0J8Z4.mjs.map} +1 -1
  422. package/dist/chunks/{NcListItem-Hx7E50yZ.cjs → NcListItem-DMaVvwXJ.cjs} +6 -7
  423. package/dist/chunks/{NcListItem-Hx7E50yZ.cjs.map → NcListItem-DMaVvwXJ.cjs.map} +1 -1
  424. package/dist/chunks/{NcListItemIcon-Do_af_2v.cjs → NcListItemIcon-BLvWsnbD.cjs} +5 -6
  425. package/dist/chunks/{NcListItemIcon-Do_af_2v.cjs.map → NcListItemIcon-BLvWsnbD.cjs.map} +1 -1
  426. package/dist/chunks/{NcListItemIcon-Bc4y0xg3.mjs → NcListItemIcon-C6Ok3G7x.mjs} +5 -6
  427. package/dist/chunks/{NcListItemIcon-Bc4y0xg3.mjs.map → NcListItemIcon-C6Ok3G7x.mjs.map} +1 -1
  428. package/dist/chunks/{NcPasswordField-DLXPfvQB.mjs → NcPasswordField-CAGGdgVF.mjs} +34 -10
  429. package/dist/chunks/NcPasswordField-CAGGdgVF.mjs.map +1 -0
  430. package/dist/chunks/{NcPasswordField-BQCunRtm.cjs → NcPasswordField-DLuNgJF2.cjs} +37 -13
  431. package/dist/chunks/NcPasswordField-DLuNgJF2.cjs.map +1 -0
  432. package/dist/chunks/{NcPopover-DbeCmze0.mjs → NcPopover-DzYbNu-I.mjs} +7 -11
  433. package/dist/chunks/{NcPopover-DbeCmze0.mjs.map → NcPopover-DzYbNu-I.mjs.map} +1 -1
  434. package/dist/chunks/{NcPopover-C0G7sLVP.cjs → NcPopover-MxwUgZu1.cjs} +7 -11
  435. package/dist/chunks/{NcPopover-C0G7sLVP.cjs.map → NcPopover-MxwUgZu1.cjs.map} +1 -1
  436. package/dist/chunks/{NcProgressBar-D_6Z7U5w.mjs → NcProgressBar-DegJ2JjE.mjs} +2 -2
  437. package/dist/chunks/{NcProgressBar-D_6Z7U5w.mjs.map → NcProgressBar-DegJ2JjE.mjs.map} +1 -1
  438. package/dist/chunks/{NcProgressBar-BrDAF_Zr.cjs → NcProgressBar-Do5Y3u8S.cjs} +2 -2
  439. package/dist/chunks/{NcProgressBar-BrDAF_Zr.cjs.map → NcProgressBar-Do5Y3u8S.cjs.map} +1 -1
  440. package/dist/chunks/{NcRelatedResourcesPanel-CsOAnfA1.cjs → NcRelatedResourcesPanel-BRoP-NiB.cjs} +16 -24
  441. package/dist/chunks/NcRelatedResourcesPanel-BRoP-NiB.cjs.map +1 -0
  442. package/dist/chunks/{NcRelatedResourcesPanel-DZICfdzQ.mjs → NcRelatedResourcesPanel-Bts9eDYA.mjs} +16 -24
  443. package/dist/chunks/NcRelatedResourcesPanel-Bts9eDYA.mjs.map +1 -0
  444. package/dist/chunks/{NcRichContenteditable-CCJdho4G.mjs → NcRichContenteditable-BznZW1Mm.mjs} +62 -116
  445. package/dist/chunks/NcRichContenteditable-BznZW1Mm.mjs.map +1 -0
  446. package/dist/chunks/{NcRichContenteditable-Ye5vABN5.cjs → NcRichContenteditable-GOiGqL9S.cjs} +62 -116
  447. package/dist/chunks/NcRichContenteditable-GOiGqL9S.cjs.map +1 -0
  448. package/dist/chunks/{NcRichText-7rxnpUCI.cjs → NcRichText-BNxuFkK-.cjs} +54 -18
  449. package/dist/chunks/NcRichText-BNxuFkK-.cjs.map +1 -0
  450. package/dist/chunks/{NcRichText-Xs-QVexE.mjs → NcRichText-CytzoTXW.mjs} +32 -18
  451. package/dist/chunks/NcRichText-CytzoTXW.mjs.map +1 -0
  452. package/dist/chunks/{NcSelect-CKgkjF4m.cjs → NcSelect-Cp83bFsi.cjs} +49 -21
  453. package/dist/chunks/NcSelect-Cp83bFsi.cjs.map +1 -0
  454. package/dist/chunks/{NcSelect-DRRPiPZG.mjs → NcSelect-DvGJHzaa.mjs} +49 -21
  455. package/dist/chunks/NcSelect-DvGJHzaa.mjs.map +1 -0
  456. package/dist/chunks/{NcSelectTags-CPc3qB8r.mjs → NcSelectTags-B4PjZQtt.mjs} +55 -11
  457. package/dist/chunks/NcSelectTags-B4PjZQtt.mjs.map +1 -0
  458. package/dist/chunks/{NcSelectTags-BceJx_FU.cjs → NcSelectTags-Bi9DIwx_.cjs} +55 -11
  459. package/dist/chunks/NcSelectTags-Bi9DIwx_.cjs.map +1 -0
  460. package/dist/chunks/{NcSettingsInputText-Cv_JwbFO.cjs → NcSettingsInputText-BYq049Qz.cjs} +37 -6
  461. package/dist/chunks/NcSettingsInputText-BYq049Qz.cjs.map +1 -0
  462. package/dist/chunks/{NcSettingsInputText-BF_v4yDP.mjs → NcSettingsInputText-DhZ_giTf.mjs} +37 -6
  463. package/dist/chunks/NcSettingsInputText-DhZ_giTf.mjs.map +1 -0
  464. package/dist/chunks/{NcSettingsSection-V9DkkSuI.mjs → NcSettingsSection-B7SqDXbX.mjs} +4 -5
  465. package/dist/chunks/NcSettingsSection-B7SqDXbX.mjs.map +1 -0
  466. package/dist/chunks/{NcSettingsSection-CA2JahBC.cjs → NcSettingsSection-Dn7Qmknm.cjs} +4 -5
  467. package/dist/chunks/NcSettingsSection-Dn7Qmknm.cjs.map +1 -0
  468. package/dist/chunks/{NcSettingsSelectGroup-Bx__1Iss.mjs → NcSettingsSelectGroup-BAhG6V1R.mjs} +39 -12
  469. package/dist/chunks/NcSettingsSelectGroup-BAhG6V1R.mjs.map +1 -0
  470. package/dist/chunks/{NcSettingsSelectGroup-8tK3uGkJ.cjs → NcSettingsSelectGroup-DypyXuEW.cjs} +39 -12
  471. package/dist/chunks/NcSettingsSelectGroup-DypyXuEW.cjs.map +1 -0
  472. package/dist/chunks/NcTextArea-BHERsE_g.mjs +207 -0
  473. package/dist/chunks/NcTextArea-BHERsE_g.mjs.map +1 -0
  474. package/dist/chunks/NcTextArea-CYLGAGcO.cjs +206 -0
  475. package/dist/chunks/NcTextArea-CYLGAGcO.cjs.map +1 -0
  476. package/dist/chunks/{NcTextField-CmXmPZ4h.mjs → NcTextField-8RXOuqAy.mjs} +25 -10
  477. package/dist/chunks/NcTextField-8RXOuqAy.mjs.map +1 -0
  478. package/dist/chunks/{NcTextField-BnZnDMjV.cjs → NcTextField-rCaBV_TN.cjs} +28 -13
  479. package/dist/chunks/NcTextField-rCaBV_TN.cjs.map +1 -0
  480. package/dist/chunks/{NcTimezonePicker-CPfvqXuN.cjs → NcTimezonePicker-B5ps-VnZ.cjs} +40 -9
  481. package/dist/chunks/NcTimezonePicker-B5ps-VnZ.cjs.map +1 -0
  482. package/dist/chunks/{NcTimezonePicker-BwygP9tV.mjs → NcTimezonePicker-D64nWJh7.mjs} +40 -9
  483. package/dist/chunks/NcTimezonePicker-D64nWJh7.mjs.map +1 -0
  484. package/dist/chunks/{NcUserBubble-TVnJaVQg.cjs → NcUserBubble-Cg86HaKF.cjs} +4 -5
  485. package/dist/chunks/{NcUserBubble-G7FKOk8N.mjs.map → NcUserBubble-Cg86HaKF.cjs.map} +1 -1
  486. package/dist/chunks/{NcUserBubble-G7FKOk8N.mjs → NcUserBubble-Q0TscgXh.mjs} +4 -5
  487. package/dist/chunks/{NcUserBubble-TVnJaVQg.cjs.map → NcUserBubble-Q0TscgXh.mjs.map} +1 -1
  488. package/dist/chunks/{NcUserStatusIcon-FtKzp5sl.cjs → NcUserStatusIcon-CP1EGHie.cjs} +6 -9
  489. package/dist/chunks/{NcUserStatusIcon-FtKzp5sl.cjs.map → NcUserStatusIcon-CP1EGHie.cjs.map} +1 -1
  490. package/dist/chunks/{NcUserStatusIcon-CPZOWw3t.mjs → NcUserStatusIcon-CvuiXAZR.mjs} +6 -9
  491. package/dist/chunks/{NcUserStatusIcon-CPZOWw3t.mjs.map → NcUserStatusIcon-CvuiXAZR.mjs.map} +1 -1
  492. package/dist/chunks/{ScopeComponent-BVnA9iVd.mjs → ScopeComponent-BLLOK04K.mjs} +1 -1
  493. package/dist/chunks/{ScopeComponent-BVnA9iVd.mjs.map → ScopeComponent-BLLOK04K.mjs.map} +1 -1
  494. package/dist/chunks/{ScopeComponent-B0gd6vEY.cjs → ScopeComponent-ClDcATYc.cjs} +1 -1
  495. package/dist/chunks/{ScopeComponent-B0gd6vEY.cjs.map → ScopeComponent-ClDcATYc.cjs.map} +1 -1
  496. package/dist/chunks/_l10n-B-QPoWAJ.mjs +132 -0
  497. package/dist/chunks/_l10n-B-QPoWAJ.mjs.map +1 -0
  498. package/dist/chunks/_l10n-Ch5mEdUH.cjs +131 -0
  499. package/dist/chunks/{_l10n-Ci9_UR5q.cjs.map → _l10n-Ch5mEdUH.cjs.map} +1 -1
  500. package/dist/chunks/{emoji-V6ytyzoR.mjs → emoji-BY_D0V5K.mjs} +2 -3
  501. package/dist/chunks/{emoji-V6ytyzoR.mjs.map → emoji-BY_D0V5K.mjs.map} +1 -1
  502. package/dist/chunks/{emoji-BCCCB3t3.cjs → emoji-VgSjNTd5.cjs} +2 -3
  503. package/dist/chunks/{emoji-BCCCB3t3.cjs.map → emoji-VgSjNTd5.cjs.map} +1 -1
  504. package/dist/chunks/{index-Dsgv-f-l.cjs → index-BV85rPB7.cjs} +3 -6
  505. package/dist/chunks/{index-Dsgv-f-l.cjs.map → index-BV85rPB7.cjs.map} +1 -1
  506. package/dist/chunks/{index-BwyQ2N-M.mjs → index-CtoB4eIp.mjs} +3 -6
  507. package/dist/chunks/{index-BwyQ2N-M.mjs.map → index-CtoB4eIp.mjs.map} +1 -1
  508. package/dist/chunks/{index-CC4ahXvG.cjs → index-bI_wyL5-.cjs} +10 -11
  509. package/dist/chunks/index-bI_wyL5-.cjs.map +1 -0
  510. package/dist/chunks/{index-CMZdBcqP.mjs → index-bjwozrEX.mjs} +10 -11
  511. package/dist/chunks/index-bjwozrEX.mjs.map +1 -0
  512. package/dist/chunks/{referencePickerModal--FRvx7tZ.cjs → referencePickerModal-C4eGo6D2.cjs} +29 -42
  513. package/dist/chunks/referencePickerModal-C4eGo6D2.cjs.map +1 -0
  514. package/dist/chunks/{referencePickerModal-ByI9zX0a.mjs → referencePickerModal-C6YJvRC9.mjs} +29 -42
  515. package/dist/chunks/referencePickerModal-C6YJvRC9.mjs.map +1 -0
  516. package/dist/chunks/useModelMigration-D5zhrNXr.cjs +25 -0
  517. package/dist/chunks/useModelMigration-D5zhrNXr.cjs.map +1 -0
  518. package/dist/chunks/useModelMigration-EhAWvqDD.mjs +24 -0
  519. package/dist/chunks/useModelMigration-EhAWvqDD.mjs.map +1 -0
  520. package/dist/chunks/{usernameToColor-u2MH9nY7.cjs → usernameToColor-CWxjw-Pq.cjs} +1 -1
  521. package/dist/chunks/{usernameToColor-u2MH9nY7.cjs.map → usernameToColor-CWxjw-Pq.cjs.map} +1 -1
  522. package/dist/chunks/{usernameToColor-D6FJP4ni.mjs → usernameToColor-Cx2qDZ1W.mjs} +1 -1
  523. package/dist/chunks/{usernameToColor-D6FJP4ni.mjs.map → usernameToColor-Cx2qDZ1W.mjs.map} +1 -1
  524. package/dist/composables/useIsDarkTheme/index.d.ts +16 -0
  525. package/dist/composables/useModelMigration.d.ts +12 -0
  526. package/dist/functions/dialog/index.d.ts +16 -0
  527. package/dist/functions/index.d.ts +10 -0
  528. package/dist/functions/isDarkTheme/index.d.ts +17 -0
  529. package/dist/index.cjs +73 -67
  530. package/dist/index.cjs.map +1 -1
  531. package/dist/index.mjs +66 -60
  532. package/dist/index.mjs.map +1 -1
  533. package/dist/vendor.LICENSE.txt +1 -1
  534. package/package.json +4 -3
  535. package/dist/assets/NcDateTimePickerNative-BAcKr0B3.css +0 -47
  536. package/dist/assets/NcRichText-DqDAPQPD.css +0 -217
  537. package/dist/chunks/AlertCircleOutline-DLtiWgZd.cjs.map +0 -1
  538. package/dist/chunks/AlertCircleOutline-DU3QwU5Y.mjs.map +0 -1
  539. package/dist/chunks/ArrowLeft-BhAxJBYx.mjs.map +0 -1
  540. package/dist/chunks/ArrowLeft-CONurT5C.cjs.map +0 -1
  541. package/dist/chunks/ArrowRight-Bj5G_mG0.cjs.map +0 -1
  542. package/dist/chunks/ArrowRight-KsL2PC-o.mjs.map +0 -1
  543. package/dist/chunks/Check-XHAzUBkX.mjs.map +0 -1
  544. package/dist/chunks/Check-fCbe4vqy.cjs.map +0 -1
  545. package/dist/chunks/ChevronDown-CiFbcDUC.cjs.map +0 -1
  546. package/dist/chunks/ChevronDown-D3Tfshug.mjs.map +0 -1
  547. package/dist/chunks/ChevronRight-C3eVhc5a.mjs.map +0 -1
  548. package/dist/chunks/ChevronRight-CWbdN5_r.cjs.map +0 -1
  549. package/dist/chunks/ChevronUp-A2riTBrv.cjs.map +0 -1
  550. package/dist/chunks/ChevronUp-ljACquzS.mjs.map +0 -1
  551. package/dist/chunks/Close-B6ccm1RP.mjs.map +0 -1
  552. package/dist/chunks/Close-B7lGu0cG.cjs.map +0 -1
  553. package/dist/chunks/DotsHorizontal-Cd2x8oz2.mjs.map +0 -1
  554. package/dist/chunks/DotsHorizontal-DQfnwpao.cjs.map +0 -1
  555. package/dist/chunks/NcActionInput-BxlypAgV.mjs.map +0 -1
  556. package/dist/chunks/NcActionInput-TP6P798j.cjs.map +0 -1
  557. package/dist/chunks/NcAppContent-fXpgsMfG.cjs.map +0 -1
  558. package/dist/chunks/NcAppContent-lEyly7Jk.mjs.map +0 -1
  559. package/dist/chunks/NcAppNavigationItem-DfgovIvi.cjs.map +0 -1
  560. package/dist/chunks/NcAppNavigationItem-MvvOWnip.mjs.map +0 -1
  561. package/dist/chunks/NcAppNavigationSettings-C-_G8yUn.cjs.map +0 -1
  562. package/dist/chunks/NcAppNavigationSettings-DScz0UWm.mjs.map +0 -1
  563. package/dist/chunks/NcAppNavigationToggle-BXainLDc.mjs.map +0 -1
  564. package/dist/chunks/NcAppNavigationToggle-DAhbqsn_.cjs.map +0 -1
  565. package/dist/chunks/NcAppSidebar-1S8EBs22.cjs.map +0 -1
  566. package/dist/chunks/NcAppSidebar-D1Ss2put.mjs.map +0 -1
  567. package/dist/chunks/NcBreadcrumbs-CPW9eMLa.mjs.map +0 -1
  568. package/dist/chunks/NcBreadcrumbs-GKwJaai0.cjs.map +0 -1
  569. package/dist/chunks/NcCheckboxRadioSwitch-COeeT-7G.cjs.map +0 -1
  570. package/dist/chunks/NcCheckboxRadioSwitch-CvMEEI9x.mjs.map +0 -1
  571. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_00597cce_lang-CbxHILUm.cjs +0 -4
  572. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_00597cce_lang-CbxHILUm.cjs.map +0 -1
  573. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_00597cce_lang-pIxtu28F.mjs +0 -3
  574. package/dist/chunks/NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_00597cce_lang-pIxtu28F.mjs.map +0 -1
  575. package/dist/chunks/NcColorPicker-Ddm2gbz0.mjs.map +0 -1
  576. package/dist/chunks/NcColorPicker-Dy2BtsaH.cjs.map +0 -1
  577. package/dist/chunks/NcEmojiPicker-C2DIjkqr.mjs.map +0 -1
  578. package/dist/chunks/NcEmojiPicker-DrMA-XDR.cjs.map +0 -1
  579. package/dist/chunks/NcPasswordField-BQCunRtm.cjs.map +0 -1
  580. package/dist/chunks/NcPasswordField-DLXPfvQB.mjs.map +0 -1
  581. package/dist/chunks/NcRelatedResourcesPanel-CsOAnfA1.cjs.map +0 -1
  582. package/dist/chunks/NcRelatedResourcesPanel-DZICfdzQ.mjs.map +0 -1
  583. package/dist/chunks/NcRichContenteditable-CCJdho4G.mjs.map +0 -1
  584. package/dist/chunks/NcRichContenteditable-Ye5vABN5.cjs.map +0 -1
  585. package/dist/chunks/NcRichText-7rxnpUCI.cjs.map +0 -1
  586. package/dist/chunks/NcRichText-Xs-QVexE.mjs.map +0 -1
  587. package/dist/chunks/NcSelect-CKgkjF4m.cjs.map +0 -1
  588. package/dist/chunks/NcSelect-DRRPiPZG.mjs.map +0 -1
  589. package/dist/chunks/NcSelectTags-BceJx_FU.cjs.map +0 -1
  590. package/dist/chunks/NcSelectTags-CPc3qB8r.mjs.map +0 -1
  591. package/dist/chunks/NcSettingsInputText-BF_v4yDP.mjs.map +0 -1
  592. package/dist/chunks/NcSettingsInputText-Cv_JwbFO.cjs.map +0 -1
  593. package/dist/chunks/NcSettingsSection-CA2JahBC.cjs.map +0 -1
  594. package/dist/chunks/NcSettingsSection-V9DkkSuI.mjs.map +0 -1
  595. package/dist/chunks/NcSettingsSelectGroup-8tK3uGkJ.cjs.map +0 -1
  596. package/dist/chunks/NcSettingsSelectGroup-Bx__1Iss.mjs.map +0 -1
  597. package/dist/chunks/NcTextField-BnZnDMjV.cjs.map +0 -1
  598. package/dist/chunks/NcTextField-CmXmPZ4h.mjs.map +0 -1
  599. package/dist/chunks/NcTimezonePicker-BwygP9tV.mjs.map +0 -1
  600. package/dist/chunks/NcTimezonePicker-CPfvqXuN.cjs.map +0 -1
  601. package/dist/chunks/_l10n-Ci9_UR5q.cjs +0 -131
  602. package/dist/chunks/_l10n-JYjUKekn.mjs +0 -132
  603. package/dist/chunks/_l10n-JYjUKekn.mjs.map +0 -1
  604. package/dist/chunks/index-CC4ahXvG.cjs.map +0 -1
  605. package/dist/chunks/index-CMZdBcqP.mjs.map +0 -1
  606. package/dist/chunks/referencePickerModal--FRvx7tZ.cjs.map +0 -1
  607. package/dist/chunks/referencePickerModal-ByI9zX0a.mjs.map +0 -1
  608. /package/dist/assets/{NcActionButtonGroup-CQxLn2fv.css → NcActionButtonGroup-BND4GQdv.css} +0 -0
  609. /package/dist/assets/{NcActionCaption-B7FZTc3Y.css → NcActionCaption-JVhz4Wp7.css} +0 -0
  610. /package/dist/assets/{NcActionSeparator-CEbb5P6P.css → NcActionSeparator-Ct2RnclR.css} +0 -0
  611. /package/dist/assets/{NcActions-CkVHYk_-.css → NcActions-DM_LoRlx.css} +0 -0
  612. /package/dist/assets/{NcAppNavigationCaption-zgtPq3Od.css → NcAppNavigationCaption-Dt5K_hKD.css} +0 -0
  613. /package/dist/assets/{NcAppNavigationIconBullet-By_0o2dG.css → NcAppNavigationIconBullet-CeBYVy6t.css} +0 -0
  614. /package/dist/assets/{NcAppNavigationList-BIbyyT7b.css → NcAppNavigationList-DnKj0-Zq.css} +0 -0
  615. /package/dist/assets/{NcAppNavigationNew-BKfawNII.css → NcAppNavigationNew-BcDuupzO.css} +0 -0
  616. /package/dist/assets/{NcAppNavigationNewItem-Ce17FkDl.css → NcAppNavigationNewItem-CQ1f40wK.css} +0 -0
  617. /package/dist/assets/{NcAppNavigationSearch-BLGG_WBn.css → NcAppNavigationSearch-Df50ss_2.css} +0 -0
  618. /package/dist/assets/{NcAppNavigationSettings-AzpTlUym.css → NcAppNavigationSettings-BV_QS8jh.css} +0 -0
  619. /package/dist/assets/{NcAppNavigationSpacer-CfNqmQeR.css → NcAppNavigationSpacer-Fkr_mEI1.css} +0 -0
  620. /package/dist/assets/{NcAppSettingsDialog-QF6aTZ3s.css → NcAppSettingsDialog-kKMMsdb3.css} +0 -0
  621. /package/dist/assets/{NcAppSettingsSection-qU4SUZvh.css → NcAppSettingsSection-Bl2-D3_g.css} +0 -0
  622. /package/dist/assets/{NcAppSidebarTab-BieYhqvk.css → NcAppSidebarTab-Blv6UfuA.css} +0 -0
  623. /package/dist/assets/{NcAvatar-5N7xP8zN.css → NcAvatar-xe4gdFKk.css} +0 -0
  624. /package/dist/assets/{NcBreadcrumb-DOvK-XG1.css → NcBreadcrumb-Cjcyeimd.css} +0 -0
  625. /package/dist/assets/{NcBreadcrumbs-CPUAM38l.css → NcBreadcrumbs-CFRjXqRg.css} +0 -0
  626. /package/dist/assets/{NcButton-DYJAoXeG.css → NcButton-BHDLon1_.css} +0 -0
  627. /package/dist/assets/{NcCollectionList-ETQTqkqt.css → NcCollectionList-yjTCAR46.css} +0 -0
  628. /package/dist/assets/{NcContent-ZFNIjylG.css → NcContent-CZamE_IP.css} +0 -0
  629. /package/dist/assets/{NcCounterBubble-Dizdz4Hk.css → NcCounterBubble-DdYmHnng.css} +0 -0
  630. /package/dist/assets/{NcDashboardWidget-CpstyXok.css → NcDashboardWidget-BSTvIgiJ.css} +0 -0
  631. /package/dist/assets/{NcDashboardWidgetItem-BBZT17WU.css → NcDashboardWidgetItem-BtOuK4mf.css} +0 -0
  632. /package/dist/assets/{NcDialog-ByAK1rQ0.css → NcDialog-Bzs9oxyt.css} +0 -0
  633. /package/dist/assets/{NcEmojiPicker-B5dclDLD.css → NcEmojiPicker-BNCW1Q94.css} +0 -0
  634. /package/dist/assets/{NcEmptyContent-BU0QVo3d.css → NcEmptyContent-BlXL6nnq.css} +0 -0
  635. /package/dist/assets/{NcGuestContent-BLJ37yLM.css → NcGuestContent-B0ivUQHg.css} +0 -0
  636. /package/dist/assets/{NcHeaderButton-BybvB5sC.css → NcHeaderButton-DH4Qtw3P.css} +0 -0
  637. /package/dist/assets/{NcHeaderMenu-BCtvpsZj.css → NcHeaderMenu-C2XbJMYL.css} +0 -0
  638. /package/dist/assets/{NcIconSvgWrapper-BwsJ8wBM.css → NcIconSvgWrapper-BxyhLaB5.css} +0 -0
  639. /package/dist/assets/{NcInputConfirmCancel-SGr0-6w8.css → NcInputConfirmCancel-EYtW7MxF.css} +0 -0
  640. /package/dist/assets/{NcListItem-D-8LyMsI.css → NcListItem-BBu5UTTe.css} +0 -0
  641. /package/dist/assets/{NcListItemIcon--7OhLYWA.css → NcListItemIcon-UmX9YoH3.css} +0 -0
  642. /package/dist/assets/{NcLoadingIcon-BSONDy7x.css → NcLoadingIcon-x1d284UU.css} +0 -0
  643. /package/dist/assets/{NcMentionBubble-C6t8od-_.css → NcMentionBubble-Bt71nB8X.css} +0 -0
  644. /package/dist/assets/{NcNoteCard-CImn6F9p.css → NcNoteCard-C6xb7vi0.css} +0 -0
  645. /package/dist/assets/{NcPopover-BDlL00qZ.css → NcPopover-TS4CW9MJ.css} +0 -0
  646. /package/dist/assets/{NcProgressBar-BsqdCn-x.css → NcProgressBar--z-WqmX4.css} +0 -0
  647. /package/dist/assets/{NcRelatedResourcesPanel-BE9CQ8s8.css → NcRelatedResourcesPanel-DIhZx6lY.css} +0 -0
  648. /package/dist/assets/{NcSelect-EIXtZSVn.css → NcSelect-GdIw6cIy.css} +0 -0
  649. /package/dist/assets/{NcSettingsSection-CGaCS1X0.css → NcSettingsSection-Dlaob2ni.css} +0 -0
  650. /package/dist/assets/{NcUserBubble-Cv-q-rH5.css → NcUserBubble-CNid1YOT.css} +0 -0
  651. /package/dist/assets/{NcUserStatusIcon-DMxcdM51.css → NcUserStatusIcon-DAVSJFhS.css} +0 -0
  652. /package/dist/assets/{Tooltip-4CSl8xev.css → Tooltip-DQ4Plm4r.css} +0 -0
@@ -1,44 +1,36 @@
1
- require('../assets/NcRichText-DqDAPQPD.css');
2
- require('../assets/NcRichContenteditable-BYEZK1DT.css');
1
+ require('../assets/NcRichContenteditable-DkYYyQTJ.css');
3
2
  "use strict";
4
- const _l10n = require("./_l10n-Ci9_UR5q.cjs");
3
+ const _l10n = require("./_l10n-Ch5mEdUH.cjs");
5
4
  const getAvatarUrl = require("./getAvatarUrl-6z9qRNH-.cjs");
6
- const NcUserStatusIcon = require("./NcUserStatusIcon-FtKzp5sl.cjs");
5
+ const NcUserStatusIcon = require("./NcUserStatusIcon-CP1EGHie.cjs");
7
6
  const _pluginVue2_normalizer = require("./_plugin-vue2_normalizer-V0q-tHlQ.cjs");
8
- const Mixins_richEditor = require("./index-CC4ahXvG.cjs");
7
+ const Mixins_richEditor = require("./index-bI_wyL5-.cjs");
9
8
  require("../Directives/Tooltip.cjs");
10
- const emoji = require("./emoji-BCCCB3t3.cjs");
9
+ const emoji = require("./emoji-VgSjNTd5.cjs");
10
+ require("./NcRichText-BNxuFkK-.cjs");
11
+ require("./index-BV85rPB7.cjs");
11
12
  require("@vueuse/core");
12
13
  require("vue");
13
14
  require("vue-router");
14
- const referencePickerModal = require("./referencePickerModal--FRvx7tZ.cjs");
15
+ const referencePickerModal = require("./referencePickerModal-C4eGo6D2.cjs");
15
16
  require("unist-util-visit");
16
17
  require("unist-builder");
17
18
  require("@nextcloud/router");
18
- require("./index-Dsgv-f-l.cjs");
19
19
  require("../Components/NcButton.cjs");
20
20
  require("@nextcloud/axios");
21
21
  require("@nextcloud/sharing/public");
22
22
  require("@nextcloud/auth");
23
- ;/* empty css */
24
- require("../Components/NcLoadingIcon.cjs");
25
- require("./NcCheckboxRadioSwitch.vue_vue_type_style_index_0_scoped_00597cce_lang-CbxHILUm.cjs");
26
- const GenRandomId = require("./GenRandomId-BQDud3d4.cjs");
27
- require("unified");
28
- require("remark-parse");
29
- require("remark-gfm");
30
- require("remark-breaks");
31
- require("remark-rehype");
32
- require("rehype-react");
33
- require("rehype-external-links");
34
23
  require("../Components/NcEmptyContent.cjs");
35
- require("./NcSelect-CKgkjF4m.cjs");
36
- require("./NcTextField-BnZnDMjV.cjs");
24
+ require("./NcSelect-Cp83bFsi.cjs");
25
+ require("../Components/NcLoadingIcon.cjs");
26
+ require("./NcTextField-rCaBV_TN.cjs");
37
27
  require("../Components/NcModal.cjs");
38
28
  require("@nextcloud/event-bus");
39
29
  const Tribute = require("tributejs/dist/tribute.esm.js");
40
30
  const debounce = require("debounce");
41
31
  const stringLength = require("string-length");
32
+ const GenRandomId = require("./GenRandomId-BQDud3d4.cjs");
33
+ const useModelMigration = require("./useModelMigration-D5zhrNXr.cjs");
42
34
  const floatingVue = require("floating-vue");
43
35
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
44
36
  const Tribute__default = /* @__PURE__ */ _interopDefault(Tribute);
@@ -106,7 +98,7 @@ const _sfc_main$1 = {
106
98
  };
107
99
  var _sfc_render$1 = function render() {
108
100
  var _vm = this, _c = _vm._self._c;
109
- return _c("div", { staticClass: "autocomplete-result" }, [_c("div", { staticClass: "autocomplete-result__icon", class: [_vm.icon, "autocomplete-result__icon--".concat(_vm.avatarUrl ? "with-avatar" : "")], style: _vm.avatarUrl ? { backgroundImage: "url(".concat(_vm.avatarUrl, ")") } : null }, [_vm.status.icon ? _c("span", { staticClass: "autocomplete-result__status autocomplete-result__status--icon" }, [_vm._v(" " + _vm._s(_vm.status && _vm.status.icon || "") + " ")]) : _vm.status.status && _vm.status.status !== "offline" ? _c("NcUserStatusIcon", { staticClass: "autocomplete-result__status", attrs: { "status": _vm.status.status } }) : _vm._e()], 1), _c("span", { staticClass: "autocomplete-result__content" }, [_c("span", { staticClass: "autocomplete-result__title", attrs: { "title": _vm.labelWithFallback } }, [_vm._v(" " + _vm._s(_vm.labelWithFallback) + " ")]), _vm.subline ? _c("span", { staticClass: "autocomplete-result__subline" }, [_vm._v(" " + _vm._s(_vm.subline) + " ")]) : _vm._e()])]);
101
+ return _c("div", { staticClass: "autocomplete-result" }, [_c("div", { staticClass: "autocomplete-result__icon", class: [_vm.icon, `autocomplete-result__icon--${_vm.avatarUrl ? "with-avatar" : ""}`], style: _vm.avatarUrl ? { backgroundImage: `url(${_vm.avatarUrl})` } : null }, [_vm.status.icon ? _c("span", { staticClass: "autocomplete-result__status autocomplete-result__status--icon" }, [_vm._v(" " + _vm._s(_vm.status && _vm.status.icon || "") + " ")]) : _vm.status.status && _vm.status.status !== "offline" ? _c("NcUserStatusIcon", { staticClass: "autocomplete-result__status", attrs: { "status": _vm.status.status } }) : _vm._e()], 1), _c("span", { staticClass: "autocomplete-result__content" }, [_c("span", { staticClass: "autocomplete-result__title", attrs: { "title": _vm.labelWithFallback } }, [_vm._v(" " + _vm._s(_vm.labelWithFallback) + " ")]), _vm.subline ? _c("span", { staticClass: "autocomplete-result__subline" }, [_vm._v(" " + _vm._s(_vm.subline) + " ")]) : _vm._e()])]);
110
102
  };
111
103
  var _sfc_staticRenderFns$1 = [];
112
104
  var __component__$1 = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
@@ -144,6 +136,10 @@ const _sfc_main = {
144
136
  },
145
137
  mixins: [Mixins_richEditor.richEditor],
146
138
  inheritAttrs: false,
139
+ model: {
140
+ prop: "modelValue",
141
+ event: "update:modelValue"
142
+ },
147
143
  props: {
148
144
  /**
149
145
  * The ID attribute of the content editable
@@ -159,10 +155,17 @@ const _sfc_main = {
159
155
  type: String,
160
156
  default: ""
161
157
  },
158
+ /**
159
+ * Removed in v9 - use `modelValue` (`v-model`) instead
160
+ * @deprecated
161
+ */
162
162
  value: {
163
163
  type: String,
164
- default: "",
165
- required: true
164
+ default: void 0
165
+ },
166
+ modelValue: {
167
+ type: String,
168
+ default: ""
166
169
  },
167
170
  placeholder: {
168
171
  type: String,
@@ -226,15 +229,24 @@ const _sfc_main = {
226
229
  emits: [
227
230
  "submit",
228
231
  "paste",
232
+ /**
233
+ * Removed in v9 - use `update:modelValue` (`v-model`) instead
234
+ * @deprecated
235
+ */
229
236
  "update:value",
237
+ "update:modelValue",
238
+ /** Same as update:modelValue for Vue 2 compatibility */
239
+ "update:model-value",
230
240
  "smart-picker-submit"
231
241
  ],
232
242
  setup() {
233
243
  const uid = GenRandomId.GenRandomId(5);
244
+ const model = useModelMigration.useModelMigration("value", "update:value", true);
234
245
  return {
246
+ model,
235
247
  // Constants
236
- labelId: "nc-rich-contenteditable-".concat(uid, "-label"),
237
- tributeId: "nc-rich-contenteditable-".concat(uid, "-tribute"),
248
+ labelId: `nc-rich-contenteditable-${uid}-label`,
249
+ tributeId: `nc-rich-contenteditable-${uid}-tribute`,
238
250
  /**
239
251
  * Non-reactive property to store Tribute instance
240
252
  *
@@ -249,7 +261,7 @@ const _sfc_main = {
249
261
  // Represent the raw untrimmed text of the contenteditable
250
262
  // serves no other purpose than to check whether the
251
263
  // content is empty or not
252
- localValue: this.value,
264
+ localValue: this.model,
253
265
  // Is in text composition session in IME
254
266
  isComposing: false,
255
267
  // Tribute autocomplete
@@ -267,14 +279,6 @@ const _sfc_main = {
267
279
  isEmptyValue() {
268
280
  return !this.localValue || this.localValue.trim() === "";
269
281
  },
270
- /**
271
- * Is this Firefox? 🙄
272
- *
273
- * @return {boolean}
274
- */
275
- isFF() {
276
- return !!navigator.userAgent.match(/firefox/i);
277
- },
278
282
  /**
279
283
  * Is the current value over maxlength?
280
284
  *
@@ -333,16 +337,16 @@ const _sfc_main = {
333
337
  * If the parent value change, we compare the plain text rendering
334
338
  * If it's different, we render everything and update the main content
335
339
  */
336
- value() {
340
+ model() {
337
341
  const html = this.$refs.contenteditable.innerHTML;
338
- if (this.value.trim() !== this.parseContent(html).trim()) {
339
- this.updateContent(this.value);
342
+ if (this.model.trim() !== this.parseContent(html).trim()) {
343
+ this.updateContent(this.model);
340
344
  }
341
345
  }
342
346
  },
343
347
  mounted() {
344
348
  this.initializeTribute();
345
- this.updateContent(this.value);
349
+ this.updateContent(this.model);
346
350
  this.$refs.contenteditable.contentEditable = this.canEdit;
347
351
  },
348
352
  beforeDestroy() {
@@ -363,29 +367,23 @@ const _sfc_main = {
363
367
  this.$refs.contenteditable.focus();
364
368
  },
365
369
  initializeTribute() {
366
- const renderMenuItem = (content) => '<div id="nc-rich-contenteditable-tribute-item-'.concat(GenRandomId.GenRandomId(5), '" class="').concat(this.$style["tribute-item"], '" role="option">').concat(content, "</div>");
370
+ const renderMenuItem = (content) => `<div id="nc-rich-contenteditable-tribute-item-${GenRandomId.GenRandomId(5)}" class="${this.$style["tribute-item"]}" role="option">${content}</div>`;
367
371
  const tributesCollection = [];
368
372
  tributesCollection.push({
369
373
  fillAttr: "id",
370
374
  // Search against id and label (display name) (fallback to title for v8.0.0..8.6.1 compatibility)
371
- lookup: (result) => {
372
- var _a;
373
- return "".concat(result.id, " ").concat((_a = result.label) != null ? _a : result.title);
374
- },
375
+ lookup: (result) => `${result.id} ${result.label ?? result.title}`,
375
376
  requireLeadingSpace: true,
376
377
  // Popup mention autocompletion templates
377
378
  menuItemTemplate: (item) => renderMenuItem(this.renderComponentHtml(item.original, NcAutoCompleteResult)),
378
379
  // Hide if no results
379
380
  noMatchTemplate: () => '<span class="hidden"></span>',
380
381
  // Inner display of mentions
381
- selectTemplate: (item) => {
382
- var _a;
383
- return this.genSelectTemplate((_a = item == null ? void 0 : item.original) == null ? void 0 : _a.id);
384
- },
382
+ selectTemplate: (item) => this.genSelectTemplate(item?.original?.id),
385
383
  // Autocompletion results
386
384
  values: this.debouncedAutoComplete,
387
385
  // Class added to the menu container
388
- containerClass: "".concat(this.$style["tribute-container"], " ").concat(this.$style["tribute-container-autocomplete"]),
386
+ containerClass: `${this.$style["tribute-container"]} ${this.$style["tribute-container-autocomplete"]}`,
389
387
  // Class added to each list item
390
388
  itemClass: this.$style["tribute-container__item"]
391
389
  });
@@ -401,7 +399,7 @@ const _sfc_main = {
401
399
  if (textSmiles.includes(item.original)) {
402
400
  return item.original;
403
401
  }
404
- return renderMenuItem('<span class="'.concat(this.$style["tribute-item__emoji"], '">').concat(item.original.native, "</span> :").concat(item.original.short_name));
402
+ return renderMenuItem(`<span class="${this.$style["tribute-item__emoji"]}">${item.original.native}</span> :${item.original.short_name}`);
405
403
  },
406
404
  // Hide if no results
407
405
  noMatchTemplate: () => _l10n.t("No emoji found"),
@@ -422,7 +420,7 @@ const _sfc_main = {
422
420
  cb(emojiResults);
423
421
  },
424
422
  // Class added to the menu container
425
- containerClass: "".concat(this.$style["tribute-container"], " ").concat(this.$style["tribute-container-emoji"]),
423
+ containerClass: `${this.$style["tribute-container"]} ${this.$style["tribute-container-emoji"]}`,
426
424
  // Class added to each list item
427
425
  itemClass: this.$style["tribute-container__item"]
428
426
  });
@@ -435,14 +433,14 @@ const _sfc_main = {
435
433
  lookup: (result, query) => query,
436
434
  requireLeadingSpace: true,
437
435
  // Popup mention autocompletion templates
438
- menuItemTemplate: (item) => renderMenuItem('<img class="'.concat(this.$style["tribute-item__icon"], '" src="').concat(item.original.icon_url, '"> <span class="').concat(this.$style["tribute-item__title"], '">').concat(item.original.title, "</span>")),
436
+ menuItemTemplate: (item) => renderMenuItem(`<img class="${this.$style["tribute-item__icon"]}" src="${item.original.icon_url}"> <span class="${this.$style["tribute-item__title"]}">${item.original.title}</span>`),
439
437
  // Hide if no results
440
438
  noMatchTemplate: () => _l10n.t("No link provider found"),
441
439
  selectTemplate: this.getLink,
442
440
  // Pass the search results as values
443
441
  values: (text, cb) => cb(referencePickerModal.searchProvider(text)),
444
442
  // Class added to the menu container
445
- containerClass: "".concat(this.$style["tribute-container"], " ").concat(this.$style["tribute-container-link"]),
443
+ containerClass: `${this.$style["tribute-container"]} ${this.$style["tribute-container-link"]}`,
446
444
  // Class added to each list item
447
445
  itemClass: this.$style["tribute-container__item"]
448
446
  });
@@ -522,23 +520,15 @@ const _sfc_main = {
522
520
  event.preventDefault();
523
521
  const clipboardData = event.clipboardData;
524
522
  this.$emit("paste", event);
525
- if (clipboardData.files.length !== 0 || !Object.values(clipboardData.items).find((item) => item == null ? void 0 : item.type.startsWith("text"))) {
523
+ if (clipboardData.files.length !== 0 || !Object.values(clipboardData.items).find((item) => item?.type.startsWith("text"))) {
526
524
  return;
527
525
  }
528
526
  const text = clipboardData.getData("text");
529
527
  const selection = window.getSelection();
530
- if (!selection.rangeCount) {
531
- this.updateValue(text);
532
- return;
533
- }
534
528
  const range = selection.getRangeAt(0);
535
- selection.deleteFromDocument();
529
+ range.deleteContents();
536
530
  range.insertNode(document.createTextNode(text));
537
- const newRange = document.createRange();
538
- newRange.setStart(event.target, range.endOffset);
539
- newRange.collapse(true);
540
- selection.removeAllRanges();
541
- selection.addRange(newRange);
531
+ range.collapse(false);
542
532
  this.updateValue(this.$refs.contenteditable.innerHTML);
543
533
  },
544
534
  /**
@@ -547,9 +537,9 @@ const _sfc_main = {
547
537
  * @param {string} htmlOrText the html content (or raw text with @mentions)
548
538
  */
549
539
  updateValue(htmlOrText) {
550
- const text = this.parseContent(htmlOrText);
540
+ const text = this.parseContent(htmlOrText).replace(/^\n$/, "");
551
541
  this.localValue = text;
552
- this.$emit("update:value", text);
542
+ this.model = text;
553
543
  },
554
544
  /**
555
545
  * Update content and local value
@@ -561,46 +551,6 @@ const _sfc_main = {
561
551
  this.$refs.contenteditable.innerHTML = renderedContent;
562
552
  this.localValue = value;
563
553
  },
564
- /**
565
- * Because FF have a decade old bug preventing contenteditable=false
566
- * to properly be deleted on backspace, we have to hack 👀
567
- * https://stackoverflow.com/a/59383394/3885878
568
- * https://stackoverflow.com/a/30574622
569
- *
570
- * @param {Event} event the delete keydown event
571
- */
572
- onDelete(event) {
573
- if (!this.isFF || !window.getSelection) {
574
- return;
575
- }
576
- if (!this.canEdit) {
577
- return;
578
- }
579
- const selection = window.getSelection();
580
- const node = event.target;
581
- if (!selection.isCollapsed || !selection.rangeCount) {
582
- return;
583
- }
584
- const curRange = selection.getRangeAt(selection.rangeCount - 1);
585
- if (curRange.commonAncestorContainer.nodeType === 3 && curRange.startOffset > 0) {
586
- return;
587
- }
588
- const range = document.createRange();
589
- if (selection.anchorNode !== node) {
590
- range.selectNodeContents(node);
591
- range.setEndBefore(selection.anchorNode);
592
- } else if (selection.anchorOffset > 0) {
593
- range.setEnd(node, selection.anchorOffset);
594
- } else {
595
- return;
596
- }
597
- range.setStart(node, range.endOffset - 1);
598
- const previousNode = range.cloneContents().lastChild;
599
- if (previousNode && previousNode.contentEditable === "false") {
600
- range.deleteContents();
601
- event.preventDefault();
602
- }
603
- },
604
554
  /**
605
555
  * Enter key pressed. Submits if not multiline
606
556
  *
@@ -673,8 +623,7 @@ const _sfc_main = {
673
623
  },
674
624
  onTributeSelectedItemWillChange() {
675
625
  requestAnimationFrame(() => {
676
- var _a;
677
- this.autocompleteActiveId = (_a = this.getTributeSelectedItem()) == null ? void 0 : _a.id;
626
+ this.autocompleteActiveId = this.getTributeSelectedItem()?.id;
678
627
  });
679
628
  },
680
629
  setupTributeIntegration() {
@@ -750,10 +699,10 @@ var _sfc_render = function render2() {
750
699
  _vm.isComposing = true;
751
700
  }, "compositionend": function($event) {
752
701
  _vm.isComposing = false;
702
+ }, "!keydown": function($event) {
703
+ if (!$event.type.indexOf("key") && _vm._k($event.keyCode, "esc", 27, $event.key, ["Esc", "Escape"])) return null;
704
+ return _vm.onKeyEsc.apply(null, arguments);
753
705
  }, "keydown": [function($event) {
754
- if (!$event.type.indexOf("key") && _vm._k($event.keyCode, "delete", [8, 46], $event.key, ["Backspace", "Delete", "Del"])) return null;
755
- return _vm.onDelete.apply(null, arguments);
756
- }, function($event) {
757
706
  if (!$event.type.indexOf("key") && _vm._k($event.keyCode, "enter", 13, $event.key, "Enter")) return null;
758
707
  if ($event.ctrlKey || $event.shiftKey || $event.altKey || $event.metaKey) return null;
759
708
  return _vm.onEnter.apply(null, arguments);
@@ -774,10 +723,7 @@ var _sfc_render = function render2() {
774
723
  if ($event.ctrlKey || $event.shiftKey || $event.altKey || $event.metaKey) return null;
775
724
  $event.stopPropagation();
776
725
  return _vm.onTributeArrowKeyDown.apply(null, arguments);
777
- }], "!keydown": function($event) {
778
- if (!$event.type.indexOf("key") && _vm._k($event.keyCode, "esc", 27, $event.key, ["Esc", "Escape"])) return null;
779
- return _vm.onKeyEsc.apply(null, arguments);
780
- }, "paste": _vm.onPaste, "!keyup": function($event) {
726
+ }], "paste": _vm.onPaste, "!keyup": function($event) {
781
727
  $event.stopPropagation();
782
728
  $event.preventDefault();
783
729
  return _vm.onKeyUp.apply(null, arguments);
@@ -802,7 +748,7 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
802
748
  _sfc_staticRenderFns,
803
749
  false,
804
750
  _sfc_injectStyles,
805
- "108d42c7"
751
+ "81c31f7c"
806
752
  );
807
753
  const NcRichContenteditable = __component__.exports;
808
754
  exports.NcAutoCompleteResult = NcAutoCompleteResult;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcRichContenteditable-GOiGqL9S.cjs","sources":["../../src/components/NcRichContenteditable/NcAutoCompleteResult.vue","../../src/components/NcRichContenteditable/NcRichContenteditable.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div class=\"autocomplete-result\">\n\t\t<!-- Avatar or icon -->\n\t\t<div :class=\"[icon, `autocomplete-result__icon--${avatarUrl ? 'with-avatar' : ''}`]\"\n\t\t\t:style=\"avatarUrl ? { backgroundImage: `url(${avatarUrl})` } : null \"\n\t\t\tclass=\"autocomplete-result__icon\">\n\t\t\t<span v-if=\"status.icon\"\n\t\t\t\tclass=\"autocomplete-result__status autocomplete-result__status--icon\">\n\t\t\t\t{{ status && status.icon || '' }}\n\t\t\t</span>\n\t\t\t<NcUserStatusIcon v-else-if=\"status.status && status.status !== 'offline'\"\n\t\t\t\tclass=\"autocomplete-result__status\"\n\t\t\t\t:status=\"status.status\" />\n\t\t</div>\n\n\t\t<!-- Label and subline -->\n\t\t<span class=\"autocomplete-result__content\">\n\t\t\t<span class=\"autocomplete-result__title\" :title=\"labelWithFallback\">\n\t\t\t\t{{ labelWithFallback }}\n\t\t\t</span>\n\t\t\t<span v-if=\"subline\" class=\"autocomplete-result__subline\">\n\t\t\t\t{{ subline }}\n\t\t\t</span>\n\t\t</span>\n\t</div>\n</template>\n\n<script>\nimport { getAvatarUrl } from '../../utils/getAvatarUrl.ts'\n\nimport NcUserStatusIcon from '../NcUserStatusIcon/index.js'\n\nexport default {\n\tname: 'NcAutoCompleteResult',\n\n\tcomponents: {\n\t\tNcUserStatusIcon,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * @deprecated Use `label` instead\n\t\t */\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: null,\n\t\t},\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\trequired: false,\n\t\t\tdefault: null,\n\t\t},\n\t\tsubline: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\tid: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\ticonUrl: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\tsource: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\tstatus: {\n\t\t\ttype: [Object, Array],\n\t\t\tdefault: () => ({}),\n\t\t},\n\t},\n\tcomputed: {\n\t\tavatarUrl() {\n\t\t\tif (this.iconUrl) {\n\t\t\t\treturn this.iconUrl\n\t\t\t}\n\n\t\t\treturn this.id && this.source === 'users'\n\t\t\t\t? this.getAvatarUrl(this.id, 44)\n\t\t\t\t: null\n\t\t},\n\t\t// For backwards compatibility\n\t\tlabelWithFallback() {\n\t\t\treturn this.label || this.title\n\t\t},\n\t},\n\n\tmethods: {\n\t\tgetAvatarUrl,\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.autocomplete-result {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: var(--default-grid-baseline);\n\tline-height: 1.2;\n\t--auto-complete-result-avatar-size: var(--default-clickable-area);\n\n\t&__icon {\n\t\tposition: relative;\n\t\tflex: 0 0 var(--default-clickable-area);\n\t\twidth: var(--default-clickable-area);\n\t\tmin-width: var(--default-clickable-area);\n\t\theight: var(--default-clickable-area);\n\t\tborder-radius: var(--default-clickable-area);\n\t\tbackground-color: var(--color-background-darker);\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center;\n\t\tbackground-size: contain;\n\t\t&--with-avatar {\n\t\t\tcolor: inherit;\n\t\t\tbackground-size: cover;\n\t\t}\n\t}\n\n\t&__status {\n\t\t--auto-complete-result-status-icon-size: clamp(14px, var(--auto-complete-result-avatar-size) * 0.4, 18px);\n\t\t// Avatar Radius * (1 - 1 / sqrt(2)) - Status Icon Radius / 2\n\t\t--auto-complete-result-status-icon-position: calc(var(--auto-complete-result-avatar-size) / 2 * (1 - 1 / sqrt(2)) - var(--auto-complete-result-status-icon-size) / 2);\n\t\tbox-sizing: border-box;\n\t\tposition: absolute;\n\t\tright: var(--auto-complete-result-status-icon-position);\n\t\tbottom: var(--auto-complete-result-status-icon-position);\n\t\theight: var(--auto-complete-result-status-icon-size);\n\t\twidth: var(--auto-complete-result-status-icon-size);\n\t\tborder: 2px solid var(--color-main-background);\n\t\tborder-radius: 50%;\n\t\tbackground-color: var(--color-main-background);\n\t\tfont-size: calc(var(--auto-complete-result-status-icon-size) / 1.2);\n\t\tline-height: 1.2;\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-size: var(--auto-complete-result-status-icon-size);\n\t\tbackground-position: center;\n\n\t\t&--icon {\n\t\t\tborder: none;\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\n\t&__content {\n\t\tdisplay: flex;\n\t\tflex: 1 1 100%;\n\t\tflex-direction: column;\n\t\tjustify-content: center;\n\t\tmin-width: 0;\n\t}\n\n\t&__title,\n\t&__subline {\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n\n\t&__subline {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n}\n\n</style>\n","<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n\n### General description\n\nThis component displays contenteditable div with automated `@` [at] autocompletion and `:` [colon] emoji autocompletion.\n\n### Examples\n\nTry mentioning user @Test01 or inserting emoji :smile\n\n```vue\n<template>\n\t<div>\n\t\t<NcRichContenteditable\n\t\t\tlabel=\"Write a comment\"\n\t\t\tv-model=\"message\"\n\t\t\t:auto-complete=\"autoComplete\"\n\t\t\t:maxlength=\"100\"\n\t\t\t:user-data=\"userData\"\n\t\t\t@submit=\"onSubmit\" />\n\t\t<br>\n\n\t\t<NcRichContenteditable\n\t\t\tv-model=\"message\"\n\t\t\t:auto-complete=\"autoComplete\"\n\t\t\t:maxlength=\"400\"\n\t\t\t:multiline=\"true\"\n\t\t\t:user-data=\"userData\"\n\t\t\t@submit=\"onSubmit\" />\n\n\t\t<h5>Output - raw</h5>\n\t\t{{ JSON.stringify(message) }}\n\n\t\t<h5>Output - preformatted</h5>\n\t\t<p class=\"pre-line\">{{ message }}</p>\n\n\t\t<h5>Output - in NcRichText with markdown support</h5>\n\t\t<NcRichText :text=\"text\" :arguments=\"userMentions\" autolink use-markdown />\n\t</div>\n</template>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tmessage: '**Lorem ipsum** dolor sit amet.',\n\t\t\t// You need to provide this for the inline mention to understand what to display or not.\n\t\t\t// Key should be a string with leading '@', like @Test02 or @\"Test Offline\"\n\t\t\tuserData: {\n\t\t\t\tTest01: {\n\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\tid: 'Test01',\n\t\t\t\t\tlabel: 'Test01',\n\t\t\t\t\tsource: 'users',\n\t\t\t\t\tprimary: true,\n\t\t\t\t},\n\t\t\t\tTest02: {\n\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\tid: 'Test02',\n\t\t\t\t\tlabel: 'Test02',\n\t\t\t\t\tsource: 'users',\n\t\t\t\t\tstatus: {\n\t\t\t\t\t\tclearAt: null,\n\t\t\t\t\t\ticon: '🎡',\n\t\t\t\t\t\tmessage: 'Visiting London',\n\t\t\t\t\t\tstatus: 'away',\n\t\t\t\t\t},\n\t\t\t\t\tsubline: 'Visiting London',\n\t\t\t\t},\n\t\t\t\t'Test@User': {\n\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\tid: 'Test@User',\n\t\t\t\t\tlabel: 'Test 03',\n\t\t\t\t\tsource: 'users',\n\t\t\t\t\tstatus: {\n\t\t\t\t\t\tclearAt: null,\n\t\t\t\t\t\ticon: '🎡',\n\t\t\t\t\t\tmessage: 'Having space in my name',\n\t\t\t\t\t\tstatus: 'online',\n\t\t\t\t\t},\n\t\t\t\t\tsubline: 'Visiting London',\n\t\t\t\t},\n\t\t\t\t'Test Offline': {\n\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\tid: 'Test Offline',\n\t\t\t\t\tlabel: 'Test Offline',\n\t\t\t\t\tsource: 'users',\n\t\t\t\t\tstatus: {\n\t\t\t\t\t\tclearAt: null,\n\t\t\t\t\t\ticon: null,\n\t\t\t\t\t\tmessage: null,\n\t\t\t\t\t\tstatus: 'offline',\n\t\t\t\t\t},\n\t\t\t\t\tsubline: null,\n\t\t\t\t},\n\t\t\t\t'Test DND': {\n\t\t\t\t\ticon: 'icon-user',\n\t\t\t\t\tid: 'Test DND',\n\t\t\t\t\tlabel: 'Test DND',\n\t\t\t\t\tsource: 'users',\n\t\t\t\t\tstatus: {\n\t\t\t\t\t\tclearAt: null,\n\t\t\t\t\t\ticon: null,\n\t\t\t\t\t\tmessage: 'Out sick',\n\t\t\t\t\t\tstatus: 'dnd',\n\t\t\t\t\t},\n\t\t\t\t\tsubline: 'Out sick',\n\t\t\t\t},\n\t\t\t},\n\t\t\t// To display user bubbles in NcRichText, special format of data should be provided:\n\t\t\t// Key should be in curly brackets without '@' and ' ' symbols, like {user-2}\n\t\t\tuserMentions: {\n\t\t\t\t'user-1': {\n\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tdisplayName: 'Test01',\n\t\t\t\t\t\tuser: 'Test01',\n\t\t\t\t\t\tprimary: true,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t'user-2': {\n\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tdisplayName: 'Test02',\n\t\t\t\t\t\tuser: 'Test02',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t'user-3': {\n\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tdisplayName: 'Test 03',\n\t\t\t\t\t\tuser: 'Test@User',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t'user-4': {\n\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tdisplayName: 'Test Offline',\n\t\t\t\t\t\tuser: 'Test Offline',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t'user-5': {\n\t\t\t\t\tcomponent: 'NcUserBubble',\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tdisplayName: 'Test DND',\n\t\t\t\t\t\tuser: 'Test DND',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\t\t}\n\t},\n\tcomputed: {\n\t\ttext() {\n\t\t\treturn this.message\n\t\t\t\t\t.replace('@Test01', '{user-1}')\n\t\t\t\t\t.replace('@Test02', '{user-2}')\n\t\t\t\t\t.replace('@Test@User', '{user-3}')\n\t\t\t\t\t.replace('@\"Test Offline\"', '{user-4}')\n\t\t\t\t\t.replace('@\"Test DND\"', '{user-5}')\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t* Do your own query to the autocompletion api.\n\t\t* The returned data bellow is a fake data example.\n\t\t* The callback expects the same format returned by the core/autocomplete/get ocs api endpoint!\n\t\t* @see userData example above\n\t\t*\n\t\t* @param {string} search the query\n\t\t* @param {Function} callback the callback to process the results with\n\t\t*/\n\t\tautoComplete(search, callback) {\n\t\t\tcallback(Object.values(this.userData))\n\t\t},\n\t\tonSubmit() {\n\t\t\talert(this.message)\n\t\t}\n\t}\n}\n</script>\n<style lang=\"scss\" scoped>\n\th5 {\n\t\tfont-weight: bold;\n\t\tmargin: 40px 0 20px 0;\n\t}\n\n\t.pre-line {\n\t\twhite-space: pre-line;\n\t}\n</style>\n```\n\n### Using public methods\n\n```vue\n<template>\n\t<div>\n\t\t<div class=\"buttons-wrapper\">\n\t\t\t<NcButton class=\"show-slash-button\" @click=\"showSlashCommands\">Slash commands</NcButton>\n\t\t\t<NcButton class=\"focus-button\" @click=\"focus\">Focus on input</NcButton>\n\t\t</div>\n\t\t<NcRichContenteditable\n\t\t\tref=\"contenteditable\"\n\t\t\tlabel=\"Write a comment\"\n\t\t\tv-model=\"message\"\n\t\t\t:maxlength=\"100\"/>\n\t</div>\n</template>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tmessage: '**Lorem ipsum** dolor sit amet. ',\n\t\t}\n\t},\n\tmethods: {\n\t\tshowSlashCommands() {\n\t\t\tthis.$refs.contenteditable.showTribute('/')\n\t\t},\n\t\tfocus() {\n\t\t\tthis.$refs.contenteditable.focus()\n\t\t},\n\t},\n}\n</script>\n<style lang=\"scss\" scoped>\n\t.buttons-wrapper {\n\t\tdisplay: flex;\n\t\tgap: 10px;\n\t\tmargin-bottom: 20px;\n\t}\n</style>\n```\n\n</docs>\n\n<template>\n\t<div class=\"rich-contenteditable\">\n\t\t<div :id=\"id\"\n\t\t\tref=\"contenteditable\"\n\t\t\tv-tooltip=\"tooltipString\"\n\t\t\t:class=\"{\n\t\t\t\t'rich-contenteditable__input--empty': isEmptyValue,\n\t\t\t\t'rich-contenteditable__input--multiline': multiline,\n\t\t\t\t'rich-contenteditable__input--has-label': label,\n\t\t\t\t'rich-contenteditable__input--overflow': isOverMaxlength,\n\t\t\t\t'rich-contenteditable__input--disabled': disabled,\n\t\t\t}\"\n\t\t\t:contenteditable=\"canEdit\"\n\t\t\t:aria-labelledby=\"label ? labelId : undefined\"\n\t\t\t:aria-placeholder=\"placeholder\"\n\t\t\taria-multiline=\"true\"\n\t\t\tclass=\"rich-contenteditable__input\"\n\t\t\trole=\"textbox\"\n\t\t\taria-haspopup=\"listbox\"\n\t\t\taria-autocomplete=\"inline\"\n\t\t\t:aria-controls=\"tributeId\"\n\t\t\t:aria-expanded=\"isAutocompleteOpen ? 'true' : 'false'\"\n\t\t\t:aria-activedescendant=\"autocompleteActiveId\"\n\t\t\tv-bind=\"$attrs\"\n\t\t\tv-on=\"listeners\"\n\t\t\t@focus=\"moveCursorToEnd\"\n\t\t\t@input=\"onInput\"\n\t\t\t@compositionstart=\"isComposing = true\"\n\t\t\t@compositionend=\"isComposing = false\"\n\t\t\t@keydown.esc.capture=\"onKeyEsc\"\n\t\t\t@keydown.enter.exact=\"onEnter\"\n\t\t\t@keydown.ctrl.enter.exact.stop.prevent=\"onCtrlEnter\"\n\t\t\t@paste=\"onPaste\"\n\t\t\t@keyup.stop.prevent.capture=\"onKeyUp\"\n\t\t\t@keydown.up.exact.stop=\"onTributeArrowKeyDown\"\n\t\t\t@keydown.down.exact.stop=\"onTributeArrowKeyDown\"\n\t\t\t@tribute-active-true=\"onTributeActive(true)\"\n\t\t\t@tribute-active-false=\"onTributeActive(false)\" />\n\t\t<div v-if=\"label\"\n\t\t\t:id=\"labelId\"\n\t\t\tclass=\"rich-contenteditable__label\">\n\t\t\t{{ label }}\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport { t } from '../../l10n.js'\nimport NcAutoCompleteResult from './NcAutoCompleteResult.vue'\nimport richEditor from '../../mixins/richEditor/index.js'\nimport Tooltip from '../../directives/Tooltip/index.js'\nimport { emojiSearch, emojiAddRecent } from '../../functions/emoji/index.ts'\nimport { searchProvider, getLinkWithPicker } from '../NcRichText/index.js'\n\nimport Tribute from 'tributejs/dist/tribute.esm.js'\nimport debounce from 'debounce'\nimport stringLength from 'string-length'\nimport GenRandomId from '../../utils/GenRandomId.js'\nimport { useModelMigration } from '../../composables/useModelMigration.ts'\n\n/**\n * Populate the list of text smiles we want to offer via Tribute.\n * We add the colon `:)` and colon-dash `:-)` version for each of them.\n */\nconst smilesCharacters = ['d', 'D', 'p', 'P', 's', 'S', 'x', 'X', ')', '(', '|', '/']\nconst textSmiles = []\nsmilesCharacters.forEach((char) => {\n\ttextSmiles.push(':' + char)\n\ttextSmiles.push(':-' + char)\n})\n\nexport default {\n\tname: 'NcRichContenteditable',\n\n\tdirectives: {\n\t\ttooltip: Tooltip,\n\t},\n\n\tmixins: [richEditor],\n\n\tinheritAttrs: false,\n\n\tmodel: {\n\t\tprop: 'modelValue',\n\t\tevent: 'update:modelValue',\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * The ID attribute of the content editable\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\tdefault: () => GenRandomId(7),\n\t\t},\n\n\t\t/**\n\t\t * Visual label of the contenteditable\n\t\t */\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Removed in v9 - use `modelValue` (`v-model`) instead\n\t\t * @deprecated\n\t\t */\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\tmodelValue: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\tplaceholder: {\n\t\t\ttype: String,\n\t\t\tdefault: t('Write a message …'),\n\t\t},\n\n\t\tautoComplete: {\n\t\t\ttype: Function,\n\t\t\tdefault: () => [],\n\t\t},\n\n\t\tmenuContainer: {\n\t\t\ttype: Element,\n\t\t\tdefault: () => document.body,\n\t\t},\n\n\t\t/**\n\t\t * Make the contenteditable looks like a textarea or not.\n\t\t * Default looks like a single-line input.\n\t\t * This also handle the default enter/shift+enter behaviour.\n\t\t * if multiline, enter = newline; otherwise enter = submit\n\t\t * shift+enter always add a new line. ctrl+enter always submits\n\t\t */\n\t\tmultiline: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Is the content editable ?\n\t\t */\n\t\tcontenteditable: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\n\t\t/**\n\t\t * Disable the editing and show specific disabled design\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 * Max allowed length\n\t\t */\n\t\tmaxlength: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Enable or disable emoji autocompletion\n\t\t */\n\t\temojiAutocomplete: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\n\t\t/**\n\t\t * Enable or disable link autocompletion\n\t\t */\n\t\tlinkAutocomplete: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\n\temits: [\n\t\t'submit',\n\t\t'paste',\n\t\t/**\n\t\t * Removed in v9 - use `update:modelValue` (`v-model`) instead\n\t\t * @deprecated\n\t\t */\n\t\t'update:value',\n\t\t'update:modelValue',\n\t\t/** Same as update:modelValue for Vue 2 compatibility */\n\t\t'update:model-value',\n\t\t'smart-picker-submit',\n\t],\n\n\tsetup() {\n\t\tconst uid = GenRandomId(5)\n\t\tconst model = useModelMigration('value', 'update:value', true)\n\t\treturn {\n\t\t\tmodel,\n\t\t\t// Constants\n\t\t\tlabelId: `nc-rich-contenteditable-${uid}-label`,\n\t\t\ttributeId: `nc-rich-contenteditable-${uid}-tribute`,\n\t\t\t/**\n\t\t\t * Non-reactive property to store Tribute instance\n\t\t\t *\n\t\t\t * @type {import('tributejs').default | null}\n\t\t\t */\n\t\t\ttribute: null,\n\t\t\ttributeStyleMutationObserver: null,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t// Represent the raw untrimmed text of the contenteditable\n\t\t\t// serves no other purpose than to check whether the\n\t\t\t// content is empty or not\n\t\t\tlocalValue: this.model,\n\n\t\t\t// Is in text composition session in IME\n\t\t\tisComposing: false,\n\n\t\t\t// Tribute autocomplete\n\t\t\tisAutocompleteOpen: false,\n\t\t\tautocompleteActiveId: undefined,\n\t\t\tisTributeIntegrationDone: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Is the current trimmed value empty?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisEmptyValue() {\n\t\t\treturn !this.localValue || this.localValue.trim() === ''\n\t\t},\n\n\t\t/**\n\t\t * Is the current value over maxlength?\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tisOverMaxlength() {\n\t\t\tif (this.isEmptyValue || !this.maxlength) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn stringLength(this.localValue) > this.maxlength\n\t\t},\n\n\t\t/**\n\t\t * Tooltip to show if characters count is over limit\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\ttooltipString() {\n\t\t\tif (!this.isOverMaxlength) {\n\t\t\t\treturn null\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tcontent: t('Message limit of {count} characters reached', { count: this.maxlength }),\n\t\t\t\tshown: true,\n\t\t\t\ttrigger: 'manual',\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Edit is only allowed when contenteditableis true and disabled is false\n\t\t *\n\t\t * @return {boolean}\n\t\t */\n\t\tcanEdit() {\n\t\t\treturn this.contenteditable && !this.disabled\n\t\t},\n\n\t\t/**\n\t\t * Proxied native event handlers without custom event handlers\n\t\t *\n\t\t * @return {Record<string, Function>}\n\t\t */\n\t\tlisteners() {\n\t\t\t/**\n\t\t\t * All component's event handlers are set as native event handlers with by v-on directive.\n\t\t\t * The component also raised custom events manually by $emit for corresponding events.\n\t\t\t * As a result, it triggers handlers twice.\n\t\t\t * The v-on=\"listeners\" directive should only set proxied native events handler without custom events\n\t\t\t */\n\t\t\tconst listeners = { ...this.$listeners }\n\t\t\tdelete listeners.paste\n\t\t\treturn listeners\n\t\t},\n\n\t\t/**\n\t\t * Compute debounce function for the autocomplete function\n\t\t */\n\t\t debouncedAutoComplete() {\n\t\t\treturn debounce(async (search, callback) => {\n\t\t\t\tthis.autoComplete(search, callback)\n\t\t\t}, 100)\n\t\t},\n\t},\n\n\twatch: {\n\t\t/**\n\t\t * If the parent value change, we compare the plain text rendering\n\t\t * If it's different, we render everything and update the main content\n\t\t */\n\t\tmodel() {\n\t\t\tconst html = this.$refs.contenteditable.innerHTML\n\t\t\t// Compare trimmed versions to be safe\n\t\t\tif (this.model.trim() !== this.parseContent(html).trim()) {\n\t\t\t\tthis.updateContent(this.model)\n\t\t\t}\n\t\t},\n\t},\n\n\tmounted() {\n\t\tthis.initializeTribute()\n\n\t\t// Update default value\n\t\tthis.updateContent(this.model)\n\n\t\t// Removes the contenteditable attribute at first load if the prop is\n\t\t// set to false.\n\t\tthis.$refs.contenteditable.contentEditable = this.canEdit\n\t},\n\n\tbeforeDestroy() {\n\t\tif (this.tribute) {\n\t\t\tthis.tribute.detach(this.$refs.contenteditable)\n\t\t}\n\n\t\tif (this.tributeStyleMutationObserver) {\n\t\t\tthis.tributeStyleMutationObserver.disconnect()\n\t\t}\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Focus the richContenteditable\n\t\t *\n\t\t * @public\n\t\t */\n\t\tfocus() {\n\t\t\tthis.$refs.contenteditable.focus()\n\t\t},\n\n\t\tinitializeTribute() {\n\t\t\tconst renderMenuItem = (content) => `<div id=\"nc-rich-contenteditable-tribute-item-${GenRandomId(5)}\" class=\"${this.$style['tribute-item']}\" role=\"option\">${content}</div>`\n\n\t\t\tconst tributesCollection = []\n\t\t\ttributesCollection.push({\n\t\t\t\tfillAttr: 'id',\n\t\t\t\t// Search against id and label (display name) (fallback to title for v8.0.0..8.6.1 compatibility)\n\t\t\t\tlookup: result => `${result.id} ${result.label ?? result.title}`,\n\t\t\t\trequireLeadingSpace: true,\n\t\t\t\t// Popup mention autocompletion templates\n\t\t\t\tmenuItemTemplate: item => renderMenuItem(this.renderComponentHtml(item.original, NcAutoCompleteResult)),\n\t\t\t\t// Hide if no results\n\t\t\t\tnoMatchTemplate: () => '<span class=\"hidden\"></span>',\n\t\t\t\t// Inner display of mentions\n\t\t\t\tselectTemplate: item => this.genSelectTemplate(item?.original?.id),\n\t\t\t\t// Autocompletion results\n\t\t\t\tvalues: this.debouncedAutoComplete,\n\t\t\t\t// Class added to the menu container\n\t\t\t\tcontainerClass: `${this.$style['tribute-container']} ${this.$style['tribute-container-autocomplete']}`,\n\t\t\t\t// Class added to each list item\n\t\t\t\titemClass: this.$style['tribute-container__item'],\n\n\t\t\t})\n\n\t\t\tif (this.emojiAutocomplete) {\n\t\t\t\ttributesCollection.push({\n\t\t\t\t\ttrigger: ':',\n\t\t\t\t\t// Don't use the tribute search function at all\n\t\t\t\t\t// We pass search results as values (see below)\n\t\t\t\t\tlookup: (result, query) => query,\n\t\t\t\t\trequireLeadingSpace: true,\n\t\t\t\t\t// Popup mention autocompletion templates\n\t\t\t\t\tmenuItemTemplate: item => {\n\t\t\t\t\t\tif (textSmiles.includes(item.original)) {\n\t\t\t\t\t\t\t// Display the raw text string for :), :-D, … for non emoji results,\n\t\t\t\t\t\t\t// instead of trying to show an image and their name.\n\t\t\t\t\t\t\treturn item.original\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn renderMenuItem(`<span class=\"${this.$style['tribute-item__emoji']}\">${item.original.native}</span> :${item.original.short_name}`)\n\t\t\t\t\t},\n\t\t\t\t\t// Hide if no results\n\t\t\t\t\tnoMatchTemplate: () => t('No emoji found'),\n\t\t\t\t\t// Display raw emoji along with its name\n\t\t\t\t\tselectTemplate: (item) => {\n\t\t\t\t\t\tif (textSmiles.includes(item.original)) {\n\t\t\t\t\t\t\t// Replace the selection with the raw text string for :), :-D, … for non emoji results\n\t\t\t\t\t\t\treturn item.original\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\temojiAddRecent(item.original)\n\t\t\t\t\t\treturn item.original.native\n\t\t\t\t\t},\n\t\t\t\t\t// Pass the search results as values\n\t\t\t\t\tvalues: (text, cb) => {\n\t\t\t\t\t\tconst emojiResults = emojiSearch(text)\n\t\t\t\t\t\tif (textSmiles.includes(':' + text)) {\n\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t * Prepend text smiles to the search results so that Tribute\n\t\t\t\t\t\t\t * is not interfering with normal writing, aka. \"Cocos Island Meme\".\n\t\t\t\t\t\t\t * E.g. `:)` and `:-)` got replaced by the flag of Cocos Island,\n\t\t\t\t\t\t\t * when submitting the input with Enter after writing them\n\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\temojiResults.unshift(':' + text)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcb(emojiResults)\n\t\t\t\t\t},\n\t\t\t\t\t// Class added to the menu container\n\t\t\t\t\tcontainerClass: `${this.$style['tribute-container']} ${this.$style['tribute-container-emoji']}`,\n\t\t\t\t\t// Class added to each list item\n\t\t\t\t\titemClass: this.$style['tribute-container__item'],\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (this.linkAutocomplete) {\n\t\t\t\ttributesCollection.push({\n\t\t\t\t\ttrigger: '/',\n\t\t\t\t\t// Don't use the tribute search function at all\n\t\t\t\t\t// We pass search results as values (see below)\n\t\t\t\t\tlookup: (result, query) => query,\n\t\t\t\t\trequireLeadingSpace: true,\n\t\t\t\t\t// Popup mention autocompletion templates\n\t\t\t\t\tmenuItemTemplate: item => renderMenuItem(`<img class=\"${this.$style['tribute-item__icon']}\" src=\"${item.original.icon_url}\"> <span class=\"${this.$style['tribute-item__title']}\">${item.original.title}</span>`),\n\t\t\t\t\t// Hide if no results\n\t\t\t\t\tnoMatchTemplate: () => t('No link provider found'),\n\t\t\t\t\tselectTemplate: this.getLink,\n\t\t\t\t\t// Pass the search results as values\n\t\t\t\t\tvalues: (text, cb) => cb(searchProvider(text)),\n\t\t\t\t\t// Class added to the menu container\n\t\t\t\t\tcontainerClass: `${this.$style['tribute-container']} ${this.$style['tribute-container-link']}`,\n\t\t\t\t\t// Class added to each list item\n\t\t\t\t\titemClass: this.$style['tribute-container__item'],\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tthis.tribute = new Tribute({\n\t\t\t\tcollection: tributesCollection,\n\t\t\t\t// FIXME: tributejs doesn't support allowSpaces as a collection option, only as a global one\n\t\t\t\t// Requires to fork a library to allow spaces only in the middle of mentions ('@' trigger)\n\t\t\t\tallowSpaces: false,\n\t\t\t\t// Where to inject the menu popup\n\t\t\t\tmenuContainer: this.menuContainer,\n\t\t\t})\n\t\t\tthis.tribute.attach(this.$refs.contenteditable)\n\t\t},\n\n\t\tgetLink(item) {\n\t\t\t// there is no way to get a tribute result asynchronously\n\t\t\t// so we immediately insert a node and replace it when the result comes\n\t\t\tgetLinkWithPicker(item.original.id)\n\t\t\t\t.then(result => {\n\t\t\t\t\t// replace dummy temp element by a text node which contains the picker result\n\t\t\t\t\tconst tmpElem = document.getElementById('tmp-smart-picker-result-node')\n\t\t\t\t\tconst eventData = {\n\t\t\t\t\t\tresult,\n\t\t\t\t\t\tinsertText: true,\n\t\t\t\t\t}\n\t\t\t\t\tthis.$emit('smart-picker-submit', eventData)\n\t\t\t\t\tif (eventData.insertText) {\n\t\t\t\t\t\tconst newElem = document.createTextNode(result)\n\t\t\t\t\t\ttmpElem.replaceWith(newElem)\n\t\t\t\t\t\tthis.setCursorAfter(newElem)\n\t\t\t\t\t\tthis.updateValue(this.$refs.contenteditable.innerHTML)\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttmpElem.remove()\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsole.debug('Smart picker promise rejected:', error)\n\t\t\t\t\tconst tmpElem = document.getElementById('tmp-smart-picker-result-node')\n\t\t\t\t\tthis.setCursorAfter(tmpElem)\n\t\t\t\t\ttmpElem.remove()\n\t\t\t\t})\n\t\t\treturn '<span id=\"tmp-smart-picker-result-node\"></span>'\n\t\t},\n\t\tsetCursorAfter(element) {\n\t\t\tconst range = document.createRange()\n\t\t\trange.setEndAfter(element)\n\t\t\trange.collapse()\n\t\t\tconst selection = window.getSelection()\n\t\t\tselection.removeAllRanges()\n\t\t\tselection.addRange(range)\n\t\t},\n\t\tmoveCursorToEnd() {\n\t\t\tif (!document.createRange) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tconst range = document.createRange()\n\t\t\trange.selectNodeContents(this.$refs.contenteditable)\n\t\t\trange.collapse(false)\n\t\t\tconst selection = window.getSelection()\n\t\t\tselection.removeAllRanges()\n\t\t\tselection.addRange(range)\n\t\t},\n\t\t/**\n\t\t * Re-emit the input event to the parent\n\t\t *\n\t\t * @param {Event} event the input event\n\t\t */\n\t\tonInput(event) {\n\t\t\tthis.updateValue(event.target.innerHTML)\n\t\t},\n\n\t\t/**\n\t\t * When pasting, sanitize the content, extract text\n\t\t * and render it again\n\t\t *\n\t\t * @param {Event} event the paste event\n\t\t * @fires Event paste the original paste event\n\t\t */\n\t\tonPaste(event) {\n\t\t\t// Either disabled or edit deactivated\n\t\t\tif (!this.canEdit) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tevent.preventDefault()\n\t\t\tconst clipboardData = event.clipboardData\n\n\t\t\t/** The original paste event */\n\t\t\tthis.$emit('paste', event)\n\n\t\t\t// If we have a file or if we don't have any text, ignore\n\t\t\tif (clipboardData.files.length !== 0\n\t\t\t\t|| !Object.values(clipboardData.items).find(item => item?.type.startsWith('text'))) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst text = clipboardData.getData('text')\n\t\t\tconst selection = window.getSelection()\n\n\t\t\t// Generate text and insert\n\t\t\tconst range = selection.getRangeAt(0)\n\t\t\trange.deleteContents()\n\t\t\trange.insertNode(document.createTextNode(text))\n\n\t\t\t// Collapse the range to the end position\n\t\t\trange.collapse(false)\n\n\t\t\t// Propagate data\n\t\t\tthis.updateValue(this.$refs.contenteditable.innerHTML)\n\t\t},\n\n\t\t/**\n\t\t * Update the value text from the provided html\n\t\t *\n\t\t * @param {string} htmlOrText the html content (or raw text with @mentions)\n\t\t */\n\t\tupdateValue(htmlOrText) {\n\t\t\t// Browsers keep <br> after erasing contenteditable\n\t\t\tconst text = this.parseContent(htmlOrText).replace(/^\\n$/, '')\n\t\t\tthis.localValue = text\n\t\t\tthis.model = text\n\t\t},\n\n\t\t/**\n\t\t * Update content and local value\n\t\t *\n\t\t * @param {string} value the message value\n\t\t */\n\t\tupdateContent(value) {\n\t\t\tconst renderedContent = this.renderContent(value)\n\t\t\tthis.$refs.contenteditable.innerHTML = renderedContent\n\t\t\tthis.localValue = value\n\t\t},\n\n\t\t/**\n\t\t * Enter key pressed. Submits if not multiline\n\t\t *\n\t\t * @param {Event} event the keydown event\n\t\t */\n\t\tonEnter(event) {\n\t\t\t// Prevent submitting if multiline\n\t\t\t// or length is over maxlength\n\t\t\t// or autocompletion menu is opened\n\t\t\t// or in a text composition session with IME\n\t\t\tif (this.multiline\n\t\t\t\t|| this.isOverMaxlength\n\t\t\t\t|| this.tribute.isActive\n\t\t\t\t|| this.isComposing) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tevent.preventDefault()\n\t\t\tevent.stopPropagation()\n\t\t\tthis.$emit('submit', event)\n\t\t},\n\n\t\t/**\n\t\t * Ctrl + Enter key pressed is used to submit\n\t\t *\n\t\t * @param {Event} event the keydown event\n\t\t */\n\t\tonCtrlEnter(event) {\n\t\t\tif (this.isOverMaxlength) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.$emit('submit', event)\n\t\t},\n\n\t\tonKeyUp(event) {\n\t\t\t// prevent tribute from opening on keyup\n\t\t\tevent.stopImmediatePropagation()\n\t\t},\n\n\t\tonKeyEsc(event) {\n\t\t\t// prevent event from bubbling when tribute is open\n\t\t\tif (this.tribute && this.isAutocompleteOpen) {\n\t\t\t\tevent.stopImmediatePropagation()\n\t\t\t\tthis.tribute.hideMenu()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Get HTML element with Tribute.js container\n\t\t * @return {HTMLElement}\n\t\t */\n\t\tgetTributeContainer() {\n\t\t\treturn this.tribute.menu\n\t\t},\n\n\t\t/**\n\t\t * Get the currently selected item element id in Tribute.js container\n\t\t * @return {HTMLElement}\n\t\t */\n\t\tgetTributeSelectedItem() {\n\t\t\t// Tribute does not provide a way to get the active item, only the data index\n\t\t\t// So we have to find it manually by select class\n\t\t\treturn this.getTributeContainer().querySelector('.highlight [id^=\"nc-rich-contenteditable-tribute-item-\"]')\n\t\t},\n\n\t\t/**\n\t\t * Handle Tribute activation\n\t\t * @param {boolean} isActive - is active\n\t\t */\n\t\tonTributeActive(isActive) {\n\t\t\tthis.isAutocompleteOpen = isActive\n\n\t\t\tif (isActive) {\n\t\t\t\t// Tribute.js doesn't support containerClass update when new collection is open\n\t\t\t\t// The first opened collection's containerClass stays forever\n\t\t\t\t// https://github.com/zurb/tribute/issues/595\n\t\t\t\t// https://github.com/zurb/tribute/issues/627\n\t\t\t\t// So we have to manually update the class\n\t\t\t\t// The default class is \"tribute-container\"\n\t\t\t\tthis.getTributeContainer().setAttribute('class', this.tribute.current.collection.containerClass || this.$style['tribute-container'])\n\n\t\t\t\tthis.setupTributeIntegration()\n\t\t\t\t// Remove the event handler if any\n\t\t\t\tdocument.removeEventListener('click', this.hideTribute, true)\n\t\t\t} else {\n\t\t\t\t// Cancel loading data for autocomplete\n\t\t\t\t// Otherwise it could be received when another autocomplete is already opened\n\t\t\t\tthis.debouncedAutoComplete.clear()\n\n\t\t\t\t// Reset active item\n\t\t\t\tthis.autocompleteActiveId = undefined\n\n\t\t\t\tthis.setTributeFocusVisible(false)\n\t\t\t}\n\t\t},\n\n\t\tonTributeArrowKeyDown() {\n\t\t\tif (!this.isAutocompleteOpen) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.setTributeFocusVisible(true)\n\t\t\tthis.onTributeSelectedItemWillChange()\n\t\t},\n\n\t\tonTributeSelectedItemWillChange() {\n\t\t\t// Wait until tribute has updated the selected item\n\t\t\trequestAnimationFrame(() => {\n\t\t\t\tthis.autocompleteActiveId = this.getTributeSelectedItem()?.id\n\t\t\t})\n\t\t},\n\n\t\tsetupTributeIntegration() {\n\t\t\t// Setup integration only once on the first open\n\t\t\tif (this.isTributeIntegrationDone) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.isTributeIntegrationDone = true\n\n\t\t\tconst tributeContainer = this.getTributeContainer()\n\n\t\t\t// For aria-controls\n\t\t\ttributeContainer.id = this.tributeId\n\n\t\t\t// Container with options must be a listbox\n\t\t\ttributeContainer.setAttribute('role', 'listbox')\n\t\t\t// Reset list+listitem role from ul+li\n\t\t\tconst ul = tributeContainer.children[0]\n\t\t\tul.setAttribute('role', 'presentation')\n\n\t\t\t// Tribute.js does not provide a way to react on show/hide\n\t\t\t// tribute-active-true/false events are fired on initial activation, which is too early with async autoComplete function\n\t\t\tthis.tributeStyleMutationObserver = new MutationObserver(([{ target }]) => {\n\t\t\t\tif (target.style.display !== 'none') {\n\t\t\t\t\t// Tribute is visible - there will be selected item\n\t\t\t\t\tthis.onTributeSelectedItemWillChange()\n\t\t\t\t}\n\t\t\t}).observe(tributeContainer, {\n\t\t\t\tattributes: true,\n\t\t\t\tattributeFilter: ['style'],\n\t\t\t})\n\n\t\t\t// Handle selecting new item on mouse selection\n\t\t\ttributeContainer.addEventListener('mousemove', () => {\n\t\t\t\tthis.setTributeFocusVisible(false)\n\t\t\t\tthis.onTributeSelectedItemWillChange()\n\t\t\t}, { passive: true })\n\t\t},\n\n\t\t/**\n\t\t * Set tribute-container--focus-visible class on the Tribute container when the user navigates the listbox via keyboard.\n\t\t *\n\t\t * Because the real focus is kept on the textbox, we cannot use the :focus-visible pseudo-class\n\t\t * to style selected options in the autocomplete listbox.\n\t\t *\n\t\t * @param {boolean} withFocusVisible - should the focus-visible class be added\n\t\t */\n\t\tsetTributeFocusVisible(withFocusVisible) {\n\t\t\tif (withFocusVisible) {\n\t\t\t\tthis.getTributeContainer().classList.add(this.$style['tribute-container--focus-visible'])\n\t\t\t} else {\n\t\t\t\tthis.getTributeContainer().classList.remove(this.$style['tribute-container--focus-visible'])\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Show tribute menu programmatically.\n\t\t * @param {string} trigger - trigger character, can be '/', '@', or ':'\n\t\t *\n\t\t * @public\n\t\t */\n\t\tshowTribute(trigger) {\n\t\t\tthis.focus()\n\t\t\tconst index = this.tribute.collection.findIndex(collection => collection.trigger === trigger)\n\t\t\tthis.tribute.showMenuForCollection(this.$refs.contenteditable, index)\n\t\t\tthis.updateValue(this.$refs.contenteditable.innerHTML)\n\t\t\tdocument.addEventListener('click', this.hideTribute, true)\n\t\t},\n\n\t\t/**\n\t\t * Hide tribute menu programmatically\n\t\t *\n\t\t */\n\t\thideTribute() {\n\t\t\tthis.tribute.hideMenu()\n\t\t\tdocument.removeEventListener('click', this.hideTribute, true)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n// Standalone styling, independent from server\n.rich-contenteditable {\n\tposition: relative;\n\twidth: auto;\n\n\t&__label {\n\t\tposition: absolute;\n\t\tmargin-inline: 14px 0;\n\t\tmax-width: fit-content;\n\t\tinset-block-start: 11px;\n\t\tinset-inline: 0;\n\t\t// Fix color so that users do not think the input already has content\n\t\tcolor: var(--color-text-maxcontrast);\n\t\t// only one line labels are allowed\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t\t// forward events to input\n\t\tpointer-events: none;\n\t\t// Position transition\n\t\ttransition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick), background-color var(--animation-quick) var(--animation-slow);\n\t}\n\n\t&__input:focus + &__label,\n\t&__input:not(&__input--empty) + &__label {\n\t\tinset-block-start: -10px;\n\t\tline-height: 1.5; // minimum allowed line height for accessibility\n\t\tfont-size: 13px; // minimum allowed font size for accessibility\n\t\tfont-weight: 500;\n\t\tborder-radius: var(--default-grid-baseline) var(--default-grid-baseline) 0 0;\n\t\tbackground-color: var(--color-main-background);\n\t\tpadding-inline: 5px;\n\t\tmargin-inline-start: 9px;\n\n\t\ttransition: height var(--animation-quick), inset-block-start var(--animation-quick), font-size var(--animation-quick), color var(--animation-quick);\n\t}\n\n\t&__input {\n\t\toverflow-y: auto;\n\t\twidth: auto;\n\t\tmargin: 0;\n\t\tpadding: 8px;\n\t\tcursor: text;\n\t\twhite-space: pre-wrap;\n\t\tword-break: break-word;\n\t\tcolor: var(--color-main-text);\n\t\tborder: 2px solid var(--color-border-maxcontrast);\n\t\tborder-radius: var(--border-radius-large);\n\t\toutline: none;\n\t\tbackground-color: var(--color-main-background);\n\t\tfont-family: var(--font-face);\n\t\tfont-size: inherit;\n\t\tmin-height: var(--default-clickable-area);\n\t\tmax-height: calc(var(--default-clickable-area) * 5.5);\n\n\t\t&--has-label {\n\t\t\tmargin-top: 10px;\n\t\t}\n\n\t\t// Cannot use :empty because of firefox bug https://bugzilla.mozilla.org/show_bug.cgi?id=1513303\n\t\t&--empty:focus:before,\n\t\t&--empty:not(&--has-label):before {\n\t\t\tcontent: attr(aria-placeholder);\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\tposition: absolute;\n\t\t}\n\n\t\t&[contenteditable='false']:not(&--disabled) {\n\t\t\tcursor: default;\n\t\t\tbackground-color: transparent;\n\t\t\tcolor: var(--color-main-text);\n\t\t\tborder-color: transparent;\n\t\t\topacity: 1;\n\t\t\tborder-radius: 0;\n\t\t}\n\n\t\t&--multiline {\n\t\t\tmin-height: calc(var(--default-clickable-area) * 3);\n\t\t\t// No max for mutiline\n\t\t\tmax-height: none;\n\t\t}\n\n\t\t&--disabled {\n\t\t\topacity: $opacity_disabled;\n\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\tborder: 2px solid var(--color-background-darker);\n\t\t\tborder-radius: var(--border-radius);\n\t\t\tbackground-color: var(--color-background-dark);\n\t\t}\n\t}\n}\n\n</style>\n\n<style lang=\"scss\" module>\n.tribute-container {\n\tz-index: 9000;\n\toverflow: auto;\n\t// Hide container root element while initializing\n\tposition: absolute;\n\tleft: -10000px;\n\t// Space it out a bit from the text\n\tmargin: var(--default-grid-baseline) 0;\n\tpadding: var(--default-grid-baseline);\n\tcolor: var(--color-text-maxcontrast);\n\tborder-radius: var(--border-radius-element, var(--border-radius));\n\tbackground: var(--color-main-background);\n\tbox-shadow: 0 1px 5px var(--color-box-shadow);\n\n\t&,\n\t& * {\n\t\tbox-sizing: border-box;\n\t}\n\n\tul {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tgap: var(--default-grid-baseline);\n\t}\n\n\t.tribute-container__item {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tborder-radius: var(--border-radius-small, var(--border-radius));\n\t\tpadding: var(--default-grid-baseline);\n\t\tcursor: pointer;\n\t\tmin-height: var(--clickable-area-small, auto);\n\n\t\t&:global(.highlight) {\n\t\t\tcolor: var(--color-main-text);\n\t\t\tbackground: var(--color-background-hover);\n\n\t\t\t&, * {\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\t\t}\n\t}\n\n\t&.tribute-container--focus-visible {\n\t\t:global(.highlight).tribute-container__item {\n\t\t\toutline: 2px solid var(--color-main-text) !important;\n\t\t}\n\t}\n}\n\n.tribute-container-autocomplete {\n\tmin-width: 250px;\n\tmax-width: 300px;\n\t// Show maximum 4 entries and a half to show scroll\n\t// Autocomplete height\n\t// + 2 paddings inside autocomplete\n\t// + 1 padding gap\n\t// And 1.5 paddings - container's padding without the last gap\n\tmax-height: calc((var(--default-clickable-area) + 3 * var(--default-grid-baseline)) * 4.5 - 1.5 * var(--default-grid-baseline));\n}\n\n.tribute-container-emoji,\n.tribute-container-link {\n\tmin-width: 200px;\n\tmax-width: 200px;\n\t// Show maximum 5 entries and a half to show scroll\n\t// Item height\n\t// + 2 paddings around tribute item\n\t// + 1 padding gap\n\t// And 1.5 paddings - container's padding without the last gap\n\tmax-height: calc((24px + 3 * var(--default-grid-baseline)) * 5.5 - 1.5 * var(--default-grid-baseline));\n\n\t.tribute-item {\n\t\t// Take care of long names\n\t\twhite-space: nowrap;\n\t\toverflow: hidden;\n\t\ttext-overflow: ellipsis;\n\t}\n}\n\n.tribute-container-link {\n\tmin-width: 200px;\n\tmax-width: 300px;\n\t.tribute-item {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\t&__title {\n\t\t\twhite-space: nowrap;\n\t\t\toverflow: hidden;\n\t\t\ttext-overflow: ellipsis;\n\t\t}\n\t\t&__icon {\n\t\t\tmargin: auto 0;\n\t\t\twidth: 20px;\n\t\t\theight: 20px;\n\t\t\tobject-fit: contain;\n\t\t\tpadding-right: var(--default-grid-baseline);\n\t\t\tfilter: var(--background-invert-if-dark);\n\t\t}\n\t}\n}\n\n</style>\n"],"names":["_sfc_main","NcUserStatusIcon","getAvatarUrl","Tooltip","richEditor","GenRandomId","t","useModelMigration","stringLength","debounce","emojiAddRecent","emojiSearch","searchProvider","Tribute","getLinkWithPicker"],"mappings":"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"}