@nextcloud/vue 8.39.0 → 8.41.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 (628) hide show
  1. package/CHANGELOG.md +99 -77
  2. package/dist/Components/NcActionButton.cjs +1 -1
  3. package/dist/Components/NcActionButton.mjs +1 -1
  4. package/dist/Components/NcActionButtonGroup.cjs +1 -1
  5. package/dist/Components/NcActionButtonGroup.mjs +1 -1
  6. package/dist/Components/NcActionCheckbox.cjs +1 -1
  7. package/dist/Components/NcActionCheckbox.mjs +1 -1
  8. package/dist/Components/NcActionInput.cjs +1 -1
  9. package/dist/Components/NcActionInput.mjs +1 -1
  10. package/dist/Components/NcActionLink.cjs +1 -1
  11. package/dist/Components/NcActionLink.mjs +1 -1
  12. package/dist/Components/NcActionRadio.cjs +1 -1
  13. package/dist/Components/NcActionRadio.mjs +1 -1
  14. package/dist/Components/NcActionRouter.cjs +1 -1
  15. package/dist/Components/NcActionRouter.mjs +1 -1
  16. package/dist/Components/NcActionText.cjs +1 -1
  17. package/dist/Components/NcActionText.mjs +1 -1
  18. package/dist/Components/NcActionTextEditable.cjs +1 -1
  19. package/dist/Components/NcActionTextEditable.mjs +1 -1
  20. package/dist/Components/NcActions.cjs +1 -1
  21. package/dist/Components/NcActions.mjs +1 -1
  22. package/dist/Components/NcAppContent.cjs +1 -1
  23. package/dist/Components/NcAppContent.mjs +1 -1
  24. package/dist/Components/NcAppNavigation.cjs +1 -1
  25. package/dist/Components/NcAppNavigation.mjs +1 -1
  26. package/dist/Components/NcAppNavigationCaption.cjs +1 -1
  27. package/dist/Components/NcAppNavigationCaption.mjs +1 -1
  28. package/dist/Components/NcAppNavigationItem.cjs +1 -1
  29. package/dist/Components/NcAppNavigationItem.mjs +1 -1
  30. package/dist/Components/NcAppNavigationNew.cjs +1 -1
  31. package/dist/Components/NcAppNavigationNew.mjs +1 -1
  32. package/dist/Components/NcAppNavigationNewItem.cjs +1 -1
  33. package/dist/Components/NcAppNavigationNewItem.mjs +1 -1
  34. package/dist/Components/NcAppNavigationSearch.cjs +1 -1
  35. package/dist/Components/NcAppNavigationSearch.mjs +1 -1
  36. package/dist/Components/NcAppNavigationSettings.cjs +1 -1
  37. package/dist/Components/NcAppNavigationSettings.mjs +1 -1
  38. package/dist/Components/NcAppNavigationToggle.cjs +1 -1
  39. package/dist/Components/NcAppNavigationToggle.mjs +1 -1
  40. package/dist/Components/NcAppSettingsDialog.cjs +1 -1
  41. package/dist/Components/NcAppSettingsDialog.mjs +1 -1
  42. package/dist/Components/NcAppSettingsSection.cjs +1 -1
  43. package/dist/Components/NcAppSettingsSection.mjs +1 -1
  44. package/dist/Components/NcAppSettingsSectionShortcuts.cjs +1 -1
  45. package/dist/Components/NcAppSettingsSectionShortcuts.mjs +1 -1
  46. package/dist/Components/NcAppSettingsShortcutsSection.cjs +1 -1
  47. package/dist/Components/NcAppSettingsShortcutsSection.mjs +1 -1
  48. package/dist/Components/NcAppSidebar.cjs +1 -1
  49. package/dist/Components/NcAppSidebar.mjs +1 -1
  50. package/dist/Components/NcAssistantButton.cjs +1 -1
  51. package/dist/Components/NcAssistantButton.mjs +1 -1
  52. package/dist/Components/NcAssistantContent.cjs +4 -4
  53. package/dist/Components/NcAssistantContent.mjs +4 -4
  54. package/dist/Components/NcAssistantIcon.cjs +1 -1
  55. package/dist/Components/NcAssistantIcon.mjs +1 -1
  56. package/dist/Components/NcAvatar.cjs +1 -1
  57. package/dist/Components/NcAvatar.mjs +1 -1
  58. package/dist/Components/NcBlurHash.cjs +1 -1
  59. package/dist/Components/NcBlurHash.mjs +1 -1
  60. package/dist/Components/NcBreadcrumb.cjs +1 -1
  61. package/dist/Components/NcBreadcrumb.mjs +1 -1
  62. package/dist/Components/NcBreadcrumbs.cjs +1 -1
  63. package/dist/Components/NcBreadcrumbs.mjs +1 -1
  64. package/dist/Components/NcButton.cjs +1 -1
  65. package/dist/Components/NcButton.mjs +1 -1
  66. package/dist/Components/NcCheckboxRadioSwitch.cjs +1 -1
  67. package/dist/Components/NcCheckboxRadioSwitch.mjs +1 -1
  68. package/dist/Components/NcChip.cjs +4 -4
  69. package/dist/Components/NcChip.mjs +4 -4
  70. package/dist/Components/NcCollectionList.cjs +1 -1
  71. package/dist/Components/NcCollectionList.mjs +1 -1
  72. package/dist/Components/NcColorPicker.cjs +1 -1
  73. package/dist/Components/NcColorPicker.mjs +1 -1
  74. package/dist/Components/NcContent.cjs +1 -1
  75. package/dist/Components/NcContent.mjs +1 -1
  76. package/dist/Components/NcDashboardWidget.cjs +1 -1
  77. package/dist/Components/NcDashboardWidget.mjs +1 -1
  78. package/dist/Components/NcDashboardWidgetItem.cjs +1 -1
  79. package/dist/Components/NcDashboardWidgetItem.mjs +1 -1
  80. package/dist/Components/NcDateTimePicker.cjs +6 -6
  81. package/dist/Components/NcDateTimePicker.mjs +6 -6
  82. package/dist/Components/NcDateTimePickerNative.cjs +1 -1
  83. package/dist/Components/NcDateTimePickerNative.mjs +1 -1
  84. package/dist/Components/NcDialog.cjs +1 -1
  85. package/dist/Components/NcDialog.mjs +1 -1
  86. package/dist/Components/NcDialogButton.cjs +1 -1
  87. package/dist/Components/NcDialogButton.mjs +1 -1
  88. package/dist/Components/NcEmojiPicker.cjs +1 -1
  89. package/dist/Components/NcEmojiPicker.mjs +1 -1
  90. package/dist/Components/NcEmptyContent.cjs +2 -2
  91. package/dist/Components/NcEmptyContent.cjs.map +1 -1
  92. package/dist/Components/NcEmptyContent.mjs +2 -2
  93. package/dist/Components/NcEmptyContent.mjs.map +1 -1
  94. package/dist/Components/NcFilePicker.cjs +1 -1
  95. package/dist/Components/NcFilePicker.mjs +1 -1
  96. package/dist/Components/NcFormBox.cjs +1 -1
  97. package/dist/Components/NcFormBox.mjs +1 -1
  98. package/dist/Components/NcFormBoxButton.cjs +1 -1
  99. package/dist/Components/NcFormBoxButton.mjs +1 -1
  100. package/dist/Components/NcFormBoxCopyButton.cjs +1 -1
  101. package/dist/Components/NcFormBoxCopyButton.mjs +1 -1
  102. package/dist/Components/NcFormBoxSwitch.cjs +1 -1
  103. package/dist/Components/NcFormBoxSwitch.mjs +1 -1
  104. package/dist/Components/NcFormGroup.cjs +1 -1
  105. package/dist/Components/NcFormGroup.mjs +1 -1
  106. package/dist/Components/NcGuestContent.cjs +3 -9
  107. package/dist/Components/NcGuestContent.cjs.map +1 -1
  108. package/dist/Components/NcGuestContent.mjs +3 -9
  109. package/dist/Components/NcGuestContent.mjs.map +1 -1
  110. package/dist/Components/NcHeaderButton.cjs +1 -1
  111. package/dist/Components/NcHeaderButton.mjs +1 -1
  112. package/dist/Components/NcHeaderMenu.cjs +1 -1
  113. package/dist/Components/NcHeaderMenu.mjs +1 -1
  114. package/dist/Components/NcHotkey.cjs +1 -1
  115. package/dist/Components/NcHotkey.mjs +1 -1
  116. package/dist/Components/NcHotkeyList.cjs +1 -1
  117. package/dist/Components/NcHotkeyList.mjs +1 -1
  118. package/dist/Components/NcInputField.cjs +1 -1
  119. package/dist/Components/NcInputField.mjs +1 -1
  120. package/dist/Components/NcKbd.cjs +1 -1
  121. package/dist/Components/NcKbd.mjs +1 -1
  122. package/dist/Components/NcListItem.cjs +1 -1
  123. package/dist/Components/NcListItem.mjs +1 -1
  124. package/dist/Components/NcListItemIcon.cjs +1 -1
  125. package/dist/Components/NcListItemIcon.mjs +1 -1
  126. package/dist/Components/NcModal.cjs +5 -5
  127. package/dist/Components/NcModal.mjs +5 -5
  128. package/dist/Components/NcNoteCard.cjs +3 -3
  129. package/dist/Components/NcNoteCard.cjs.map +1 -1
  130. package/dist/Components/NcNoteCard.mjs +3 -3
  131. package/dist/Components/NcNoteCard.mjs.map +1 -1
  132. package/dist/Components/NcPasswordField.cjs +1 -1
  133. package/dist/Components/NcPasswordField.mjs +1 -1
  134. package/dist/Components/NcPopover.cjs +1 -1
  135. package/dist/Components/NcPopover.mjs +1 -1
  136. package/dist/Components/NcProfileHoverCard.cjs +4 -0
  137. package/dist/Components/NcProfileHoverCard.cjs.map +1 -0
  138. package/dist/Components/NcProfileHoverCard.mjs +5 -0
  139. package/dist/Components/NcProfileHoverCard.mjs.map +1 -0
  140. package/dist/Components/NcRadioGroup.cjs +1 -1
  141. package/dist/Components/NcRadioGroup.mjs +1 -1
  142. package/dist/Components/NcRadioGroupButton.cjs +1 -1
  143. package/dist/Components/NcRadioGroupButton.mjs +1 -1
  144. package/dist/Components/NcRelatedResourcesPanel.cjs +1 -1
  145. package/dist/Components/NcRelatedResourcesPanel.mjs +1 -1
  146. package/dist/Components/NcRichContenteditable.cjs +1 -1
  147. package/dist/Components/NcRichContenteditable.mjs +1 -1
  148. package/dist/Components/NcRichText.cjs +9 -7
  149. package/dist/Components/NcRichText.cjs.map +1 -1
  150. package/dist/Components/NcRichText.mjs +15 -13
  151. package/dist/Components/NcRichText.mjs.map +1 -1
  152. package/dist/Components/NcSelect.cjs +1 -1
  153. package/dist/Components/NcSelect.mjs +1 -1
  154. package/dist/Components/NcSelectTags.cjs +1 -1
  155. package/dist/Components/NcSelectTags.mjs +1 -1
  156. package/dist/Components/NcSelectUsers.cjs +1 -1
  157. package/dist/Components/NcSelectUsers.mjs +1 -1
  158. package/dist/Components/NcSettingsInputText.cjs +1 -1
  159. package/dist/Components/NcSettingsInputText.mjs +1 -1
  160. package/dist/Components/NcSettingsSection.cjs +1 -1
  161. package/dist/Components/NcSettingsSection.mjs +1 -1
  162. package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
  163. package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
  164. package/dist/Components/NcTextArea.cjs +1 -1
  165. package/dist/Components/NcTextArea.mjs +1 -1
  166. package/dist/Components/NcTextField.cjs +1 -1
  167. package/dist/Components/NcTextField.mjs +1 -1
  168. package/dist/Components/NcTimezonePicker.cjs +1 -1
  169. package/dist/Components/NcTimezonePicker.mjs +1 -1
  170. package/dist/Components/NcUserBubble.cjs +1 -1
  171. package/dist/Components/NcUserBubble.mjs +1 -1
  172. package/dist/Components/NcUserStatusIcon.cjs +1 -1
  173. package/dist/Components/NcUserStatusIcon.mjs +1 -1
  174. package/dist/Composables/useFormatDateTime.cjs +11 -5
  175. package/dist/Composables/useFormatDateTime.cjs.map +1 -1
  176. package/dist/Composables/useFormatDateTime.mjs +11 -5
  177. package/dist/Composables/useFormatDateTime.mjs.map +1 -1
  178. package/dist/Functions/reference.cjs +11 -10
  179. package/dist/Functions/reference.cjs.map +1 -1
  180. package/dist/Functions/reference.mjs +7 -6
  181. package/dist/Functions/reference.mjs.map +1 -1
  182. package/dist/Functions/registerReference.cjs +6 -5
  183. package/dist/Functions/registerReference.cjs.map +1 -1
  184. package/dist/Functions/registerReference.mjs +6 -5
  185. package/dist/Functions/registerReference.mjs.map +1 -1
  186. package/dist/Functions/usernameToColor.cjs +1 -1
  187. package/dist/Functions/usernameToColor.mjs +1 -1
  188. package/dist/assets/{NcActionButton-CjKx3679.css → NcActionButton-CwGeOQFe.css} +3 -2
  189. package/dist/assets/{NcActionCheckbox-CzUElysW.css → NcActionCheckbox-DG9SyAAy.css} +3 -2
  190. package/dist/assets/{NcActionInput-CPu4Btyq.css → NcActionInput-ESkvZDNh.css} +66 -66
  191. package/dist/assets/{NcActionLink-Bt-73iBm.css → NcActionLink-CB74Y-9f.css} +3 -2
  192. package/dist/assets/{NcActionRadio-CROsOVZe.css → NcActionRadio-4a1cWuYb.css} +3 -2
  193. package/dist/assets/{NcActionRouter-Bpv5Ywxq.css → NcActionRouter-CyyaRzft.css} +3 -2
  194. package/dist/assets/{NcActionText-IMOkntPi.css → NcActionText-BMO_HKvg.css} +3 -2
  195. package/dist/assets/{NcActionTextEditable-AuLw5QVP.css → NcActionTextEditable-DPpx-OUr.css} +66 -66
  196. package/dist/assets/{NcAppContent-CKJUs-ZZ.css → NcAppContent-DyFYmhvX.css} +20 -20
  197. package/dist/assets/{NcAppNavigation-DfsSMVgo.css → NcAppNavigation-B-X0bAXx.css} +14 -16
  198. package/dist/assets/{NcAppNavigationCaption-C7GtQb_y.css → NcAppNavigationCaption-NX44RnkW.css} +8 -8
  199. package/dist/assets/{NcAppNavigationItem-CksjxOVP.css → NcAppNavigationItem-D4T7UQqz.css} +8 -7
  200. package/dist/assets/{NcAppNavigationNewItem-Dn_iz3og.css → NcAppNavigationNewItem-CtObIA-e.css} +4 -3
  201. package/dist/assets/{NcAppNavigationSettings-2Wh1E3Hq.css → NcAppNavigationSettings-DGkLlCyq.css} +11 -11
  202. package/dist/assets/{NcAppNavigationToggle-DgwbZOWc.css → NcAppNavigationToggle-D1K2TRZ-.css} +3 -3
  203. package/dist/assets/{NcAppSettingsDialog-DRyLeR3T.css → NcAppSettingsDialog-Cu7QAD8V.css} +34 -34
  204. package/dist/assets/{NcAppSettingsSection-Yg4NYCih.css → NcAppSettingsSection-DU9FOAnJ.css} +7 -7
  205. package/dist/assets/{NcAppSettingsShortcutsSection-C_DMnyUy.css → NcAppSettingsShortcutsSection-D-FcvAWd.css} +3 -3
  206. package/dist/assets/{NcAppSidebar-B1bkEVQA.css → NcAppSidebar-DPorFaqk.css} +73 -73
  207. package/dist/assets/{NcAssistantButton-BNEXluSq.css → NcAssistantButton-C6d88UPB.css} +9 -9
  208. package/dist/assets/{NcAssistantContent-DrswfkY-.css → NcAssistantContent-DTHxHZ09.css} +3 -3
  209. package/dist/assets/{NcAssistantIcon-CdtR1Psu.css → NcAssistantIcon-BV1uZpAb.css} +4 -4
  210. package/dist/assets/{NcAvatar-CK9ipsjF.css → NcAvatar-BdHHFwV3.css} +41 -26
  211. package/dist/assets/{NcBlurHash-CT92vFpc.css → NcBlurHash-Zj5Z9WKv.css} +2 -2
  212. package/dist/assets/{NcBreadcrumb-0xB19h6f.css → NcBreadcrumb-DyXnSA6l.css} +16 -16
  213. package/dist/assets/{NcButton-o3s2D3Dl.css → NcButton-C-bkSL_r.css} +49 -49
  214. package/dist/assets/{NcCheckboxRadioSwitch-BojbloxL.css → NcCheckboxRadioSwitch-DCSWiHVq.css} +53 -51
  215. package/dist/assets/{NcColorPicker-CCqpXoam.css → NcColorPicker-DjmfbD2K.css} +32 -32
  216. package/dist/assets/{NcContent-URJTZQq1.css → NcContent-rDfulBCh.css} +12 -13
  217. package/dist/assets/{NcDateTimePicker-DknygOcQ.css → NcDateTimePicker-CD0ZGUBz.css} +15 -15
  218. package/dist/assets/{NcEmptyContent-CUFc_Dds.css → NcEmptyContent-DAR2ze6H.css} +10 -10
  219. package/dist/assets/{NcFilePicker-BokX813z.css → NcFilePicker-BjFpDu4R.css} +1 -1
  220. package/dist/assets/{NcFormBox-9NY7pxez.css → NcFormBox-DoEpsPVV.css} +11 -11
  221. package/dist/assets/{NcFormBoxButton-BlS280R1.css → NcFormBoxButton-CFtdjCfy.css} +2 -2
  222. package/dist/assets/{NcFormBoxItem-BdFKDYqL.css → NcFormBoxItem-C918I2qS.css} +17 -13
  223. package/dist/assets/{NcFormBoxSwitch-CXtmxIfB.css → NcFormBoxSwitch-C4cbxBBA.css} +2 -2
  224. package/dist/assets/{NcFormGroup-uKT9TTrz.css → NcFormGroup-CUFSO_ru.css} +8 -8
  225. package/dist/assets/{NcGuestContent-BkegjnLL.css → NcGuestContent-27hnc8yQ.css} +3 -3
  226. package/dist/assets/{NcHotkey-9k8cxWO5.css → NcHotkey-D_InvA0N.css} +8 -8
  227. package/dist/assets/{NcHotkeyList-CNWXE5jg.css → NcHotkeyList-XE5Xd_iE.css} +3 -3
  228. package/dist/assets/{NcIconToggleSwitch-sDZkWAmc.css → NcIconToggleSwitch-DO_sv5_o.css} +4 -4
  229. package/dist/assets/{NcInputConfirmCancel-Brp9ZfY5.css → NcInputConfirmCancel-DRZviUxz.css} +8 -8
  230. package/dist/assets/{NcInputField-Cc-l-KGd.css → NcInputField-KvlF4emB.css} +46 -46
  231. package/dist/assets/{NcKbd-8TOrFNAw.css → NcKbd-IflT8hS_.css} +3 -3
  232. package/dist/assets/{NcListItem-DP1egljH.css → NcListItem-3a4Lafwa.css} +47 -47
  233. package/dist/assets/{NcNoteCard-CwNXZ4vV.css → NcNoteCard-C4SocW9G.css} +13 -13
  234. package/dist/assets/{NcPopover-CJgeCuwk.css → NcPopover-nBCZ8J9Q.css} +13 -13
  235. package/dist/assets/NcProfileHoverCard-D3V682nS.css +340 -0
  236. package/dist/assets/{NcRadioGroup-Dss0ok3g.css → NcRadioGroup-Bq7x-xEK.css} +2 -2
  237. package/dist/assets/{NcRadioGroupButton-CMOW3Q4J.css → NcRadioGroupButton-i11p0wHX.css} +14 -14
  238. package/dist/assets/NcReferenceWidget-Cg4xOL_8.css +150 -0
  239. package/dist/assets/{NcRelatedResourcesPanel-CTpqdDL9.css → NcRelatedResourcesPanel-D5DxWJPc.css} +30 -30
  240. package/dist/assets/{NcRichContenteditable-DwS6PNCv.css → NcRichContenteditable-DRPzKa4Z.css} +29 -29
  241. package/dist/assets/{NcRichText-Cp_5tfBy.css → NcRichText-D0xtzoWq.css} +91 -91
  242. package/dist/assets/{NcSettingsSection-D_qeKnRb.css → NcSettingsSection-Fyy2lFk_.css} +9 -9
  243. package/dist/assets/{NcTextArea-BtG5_qHD.css → NcTextArea-BMPUvHVL.css} +28 -28
  244. package/dist/assets/{autolink-KPdaBewQ.css → autolink-CEziQYgN.css} +3 -3
  245. package/dist/assets/{referencePickerModal-CGtNx7ew.css → referencePickerModal-0oYth4rX.css} +0 -114
  246. package/dist/chunks/DockRight-B0D52yCO.mjs +38 -0
  247. package/dist/chunks/DockRight-B0D52yCO.mjs.map +1 -0
  248. package/dist/chunks/DockRight-CXafXJaH.cjs +37 -0
  249. package/dist/chunks/DockRight-CXafXJaH.cjs.map +1 -0
  250. package/dist/chunks/{NcActionButton-CiYel4_C.cjs → NcActionButton-B1jvJWjl.cjs} +2 -2
  251. package/dist/chunks/{NcActionButton-CiYel4_C.cjs.map → NcActionButton-B1jvJWjl.cjs.map} +1 -1
  252. package/dist/chunks/{NcActionButton-K4jUGMlW.mjs → NcActionButton-D7uypboC.mjs} +2 -2
  253. package/dist/chunks/{NcActionButton-K4jUGMlW.mjs.map → NcActionButton-D7uypboC.mjs.map} +1 -1
  254. package/dist/chunks/{NcActionButtonGroup-B95wg_Q6.mjs → NcActionButtonGroup-C3eUBbt4.mjs} +2 -2
  255. package/dist/chunks/{NcActionButtonGroup-B95wg_Q6.mjs.map → NcActionButtonGroup-C3eUBbt4.mjs.map} +1 -1
  256. package/dist/chunks/{NcActionButtonGroup-CFGCmzTM.cjs → NcActionButtonGroup-CsOhQH6p.cjs} +2 -2
  257. package/dist/chunks/{NcActionButtonGroup-CFGCmzTM.cjs.map → NcActionButtonGroup-CsOhQH6p.cjs.map} +1 -1
  258. package/dist/chunks/{NcActionCheckbox-BGCUJhg_.cjs → NcActionCheckbox-B3vUOSeb.cjs} +2 -2
  259. package/dist/chunks/{NcActionCheckbox-BGCUJhg_.cjs.map → NcActionCheckbox-B3vUOSeb.cjs.map} +1 -1
  260. package/dist/chunks/{NcActionCheckbox-23CmleUh.mjs → NcActionCheckbox-Cbg5yktN.mjs} +2 -2
  261. package/dist/chunks/{NcActionCheckbox-23CmleUh.mjs.map → NcActionCheckbox-Cbg5yktN.mjs.map} +1 -1
  262. package/dist/chunks/{NcActionInput-CcA3XFGe.cjs → NcActionInput-C-j7Mehu.cjs} +7 -7
  263. package/dist/chunks/{NcActionInput-CcA3XFGe.cjs.map → NcActionInput-C-j7Mehu.cjs.map} +1 -1
  264. package/dist/chunks/{NcActionInput-BoKGVBu8.mjs → NcActionInput-CMLDgnF_.mjs} +7 -7
  265. package/dist/chunks/{NcActionInput-BoKGVBu8.mjs.map → NcActionInput-CMLDgnF_.mjs.map} +1 -1
  266. package/dist/chunks/{NcActionRadio-Dd3CsuiD.mjs → NcActionRadio-B2bgbBHw.mjs} +2 -2
  267. package/dist/chunks/{NcActionRadio-Dd3CsuiD.mjs.map → NcActionRadio-B2bgbBHw.mjs.map} +1 -1
  268. package/dist/chunks/{NcActionRadio-DbkRiTHX.cjs → NcActionRadio-BJSZBI9N.cjs} +2 -2
  269. package/dist/chunks/{NcActionRadio-DbkRiTHX.cjs.map → NcActionRadio-BJSZBI9N.cjs.map} +1 -1
  270. package/dist/chunks/{NcActionTextEditable-YqvZGY07.mjs → NcActionTextEditable-BykT5Byh.mjs} +3 -3
  271. package/dist/chunks/{NcActionTextEditable-BqJ5wONY.cjs.map → NcActionTextEditable-BykT5Byh.mjs.map} +1 -1
  272. package/dist/chunks/{NcActionTextEditable-BqJ5wONY.cjs → NcActionTextEditable-D4nvhJff.cjs} +3 -3
  273. package/dist/chunks/{NcActionTextEditable-YqvZGY07.mjs.map → NcActionTextEditable-D4nvhJff.cjs.map} +1 -1
  274. package/dist/chunks/{NcActions-DbPerbGE.mjs → NcActions-CX1MSord.mjs} +5 -5
  275. package/dist/chunks/{NcActions-DbPerbGE.mjs.map → NcActions-CX1MSord.mjs.map} +1 -1
  276. package/dist/chunks/{NcActions-D51W1X9v.cjs → NcActions-H0GXWVPU.cjs} +5 -5
  277. package/dist/chunks/{NcActions-D51W1X9v.cjs.map → NcActions-H0GXWVPU.cjs.map} +1 -1
  278. package/dist/chunks/{NcAppContent-DAN0qPID.mjs → NcAppContent-7ziLICwJ.mjs} +7 -8
  279. package/dist/chunks/NcAppContent-7ziLICwJ.mjs.map +1 -0
  280. package/dist/chunks/{NcAppContent-0hbQMH35.cjs → NcAppContent-BCYyp6nc.cjs} +9 -10
  281. package/dist/chunks/NcAppContent-BCYyp6nc.cjs.map +1 -0
  282. package/dist/chunks/{NcAppNavigation-DGufDPoi.mjs → NcAppNavigation-BDyBoXA1.mjs} +5 -5
  283. package/dist/chunks/{NcAppNavigation-DGufDPoi.mjs.map → NcAppNavigation-BDyBoXA1.mjs.map} +1 -1
  284. package/dist/chunks/{NcAppNavigation-DB3HqxPL.cjs → NcAppNavigation-BEor4mmi.cjs} +5 -5
  285. package/dist/chunks/{NcAppNavigation-DB3HqxPL.cjs.map → NcAppNavigation-BEor4mmi.cjs.map} +1 -1
  286. package/dist/chunks/{NcAppNavigationCaption-BZwuqQcm.mjs → NcAppNavigationCaption-DYdHKPv7.mjs} +4 -4
  287. package/dist/chunks/{NcAppNavigationCaption-WVnxSeIf.cjs.map → NcAppNavigationCaption-DYdHKPv7.mjs.map} +1 -1
  288. package/dist/chunks/{NcAppNavigationCaption-WVnxSeIf.cjs → NcAppNavigationCaption-drD-T2kk.cjs} +4 -4
  289. package/dist/chunks/{NcAppNavigationCaption-BZwuqQcm.mjs.map → NcAppNavigationCaption-drD-T2kk.cjs.map} +1 -1
  290. package/dist/chunks/{NcAppNavigationItem-0zDqIuUZ.cjs → NcAppNavigationItem-Ccy8CT50.cjs} +14 -14
  291. package/dist/chunks/{NcAppNavigationItem-0zDqIuUZ.cjs.map → NcAppNavigationItem-Ccy8CT50.cjs.map} +1 -1
  292. package/dist/chunks/{NcAppNavigationItem-CgYgq_nb.mjs → NcAppNavigationItem-Dg-2s6bP.mjs} +14 -14
  293. package/dist/chunks/{NcAppNavigationItem-CgYgq_nb.mjs.map → NcAppNavigationItem-Dg-2s6bP.mjs.map} +1 -1
  294. package/dist/chunks/{NcAppNavigationNew-DRdPwKOi.cjs → NcAppNavigationNew-4O3IsPEz.cjs} +2 -2
  295. package/dist/chunks/{NcAppNavigationNew-DRdPwKOi.cjs.map → NcAppNavigationNew-4O3IsPEz.cjs.map} +1 -1
  296. package/dist/chunks/{NcAppNavigationNew-BUVnumWS.mjs → NcAppNavigationNew-B8Ny1xKx.mjs} +2 -2
  297. package/dist/chunks/{NcAppNavigationNew-BUVnumWS.mjs.map → NcAppNavigationNew-B8Ny1xKx.mjs.map} +1 -1
  298. package/dist/chunks/{NcAppNavigationNewItem-Nz2HecTz.mjs → NcAppNavigationNewItem-BHnL_502.mjs} +3 -3
  299. package/dist/chunks/{NcAppNavigationNewItem-Nz2HecTz.mjs.map → NcAppNavigationNewItem-BHnL_502.mjs.map} +1 -1
  300. package/dist/chunks/{NcAppNavigationNewItem-SR744REn.cjs → NcAppNavigationNewItem-CW4Y7Hz9.cjs} +3 -3
  301. package/dist/chunks/{NcAppNavigationNewItem-SR744REn.cjs.map → NcAppNavigationNewItem-CW4Y7Hz9.cjs.map} +1 -1
  302. package/dist/chunks/{NcAppNavigationSearch-CzhlljAU.mjs → NcAppNavigationSearch-DIO0S2TU.mjs} +4 -4
  303. package/dist/chunks/{NcAppNavigationSearch-CzhlljAU.mjs.map → NcAppNavigationSearch-DIO0S2TU.mjs.map} +1 -1
  304. package/dist/chunks/{NcAppNavigationSearch-Czcwiin4.cjs → NcAppNavigationSearch-DZEqsYpD.cjs} +4 -4
  305. package/dist/chunks/{NcAppNavigationSearch-Czcwiin4.cjs.map → NcAppNavigationSearch-DZEqsYpD.cjs.map} +1 -1
  306. package/dist/chunks/{NcAppNavigationSettings-BaO-G72x.mjs → NcAppNavigationSettings-3jZKd9et.mjs} +7 -7
  307. package/dist/chunks/{NcAppNavigationSettings-BaO-G72x.mjs.map → NcAppNavigationSettings-3jZKd9et.mjs.map} +1 -1
  308. package/dist/chunks/{NcAppNavigationSettings-CotFe5aD.cjs → NcAppNavigationSettings-DpIprW-E.cjs} +7 -7
  309. package/dist/chunks/{NcAppNavigationSettings-CotFe5aD.cjs.map → NcAppNavigationSettings-DpIprW-E.cjs.map} +1 -1
  310. package/dist/chunks/{NcAppNavigationToggle-CkDMk16T.cjs → NcAppNavigationToggle-DFGuYTE8.cjs} +23 -52
  311. package/dist/chunks/NcAppNavigationToggle-DFGuYTE8.cjs.map +1 -0
  312. package/dist/chunks/{NcAppNavigationToggle-CXX1MFrf.mjs → NcAppNavigationToggle-DQZ2LWw4.mjs} +23 -52
  313. package/dist/chunks/NcAppNavigationToggle-DQZ2LWw4.mjs.map +1 -0
  314. package/dist/chunks/{NcAppSettingsDialog-Fa5DTfig.cjs → NcAppSettingsDialog-BoHdpAtG.cjs} +10 -10
  315. package/dist/chunks/NcAppSettingsDialog-BoHdpAtG.cjs.map +1 -0
  316. package/dist/chunks/{NcAppSettingsDialog-MxrFh-Ln.mjs → NcAppSettingsDialog-JB67n8yt.mjs} +10 -10
  317. package/dist/chunks/NcAppSettingsDialog-JB67n8yt.mjs.map +1 -0
  318. package/dist/chunks/{NcAppSettingsSection-BjQllLEA.mjs → NcAppSettingsSection-CsGyNFSh.mjs} +3 -3
  319. package/dist/chunks/{NcAppSettingsSection-BjQllLEA.mjs.map → NcAppSettingsSection-CsGyNFSh.mjs.map} +1 -1
  320. package/dist/chunks/{NcAppSettingsSection-CDLQ-AjK.cjs → NcAppSettingsSection-De6vkXOF.cjs} +3 -3
  321. package/dist/chunks/{NcAppSettingsSection-CDLQ-AjK.cjs.map → NcAppSettingsSection-De6vkXOF.cjs.map} +1 -1
  322. package/dist/chunks/{NcAppSettingsShortcutsSection-DgGU8-cF.cjs → NcAppSettingsShortcutsSection-Bli0fYba.cjs} +7 -7
  323. package/dist/chunks/NcAppSettingsShortcutsSection-Bli0fYba.cjs.map +1 -0
  324. package/dist/chunks/{NcAppSettingsShortcutsSection-DblUBaWP.mjs → NcAppSettingsShortcutsSection-BpUlnEbQ.mjs} +7 -7
  325. package/dist/chunks/NcAppSettingsShortcutsSection-BpUlnEbQ.mjs.map +1 -0
  326. package/dist/chunks/{NcAppSidebar-B7GuNZ4C.mjs → NcAppSidebar-B2F66PCc.mjs} +16 -48
  327. package/dist/chunks/NcAppSidebar-B2F66PCc.mjs.map +1 -0
  328. package/dist/chunks/{NcAppSidebar-DXEl0_ou.cjs → NcAppSidebar-CMHPTlTQ.cjs} +16 -48
  329. package/dist/chunks/NcAppSidebar-CMHPTlTQ.cjs.map +1 -0
  330. package/dist/chunks/{NcAssistantButton-B7BLAkwW.mjs → NcAssistantButton-D2gOuok6.mjs} +11 -11
  331. package/dist/chunks/{NcAssistantButton-B7BLAkwW.mjs.map → NcAssistantButton-D2gOuok6.mjs.map} +1 -1
  332. package/dist/chunks/{NcAssistantButton-XS3UdAKm.cjs → NcAssistantButton-po8AW9pX.cjs} +11 -11
  333. package/dist/chunks/{NcAssistantButton-XS3UdAKm.cjs.map → NcAssistantButton-po8AW9pX.cjs.map} +1 -1
  334. package/dist/chunks/{NcAssistantIcon-DCx6AaSW.mjs → NcAssistantIcon-CTTn1608.mjs} +6 -6
  335. package/dist/chunks/{NcAssistantIcon-DCx6AaSW.mjs.map → NcAssistantIcon-CTTn1608.mjs.map} +1 -1
  336. package/dist/chunks/{NcAssistantIcon-CD5mu9O1.cjs → NcAssistantIcon-D_1fcbQU.cjs} +6 -6
  337. package/dist/chunks/{NcAssistantIcon-CD5mu9O1.cjs.map → NcAssistantIcon-D_1fcbQU.cjs.map} +1 -1
  338. package/dist/chunks/{NcAvatar-D09ZAgeJ.cjs → NcAvatar-BbR_mZyT.cjs} +126 -21
  339. package/dist/chunks/NcAvatar-BbR_mZyT.cjs.map +1 -0
  340. package/dist/chunks/{NcAvatar-DkAX4nqq.mjs → NcAvatar-C1ty7wsG.mjs} +125 -21
  341. package/dist/chunks/NcAvatar-C1ty7wsG.mjs.map +1 -0
  342. package/dist/chunks/{NcBlurHash-D0wcwBet.cjs → NcBlurHash-CXPnoVsM.cjs} +4 -4
  343. package/dist/chunks/{NcBlurHash-D0wcwBet.cjs.map → NcBlurHash-CXPnoVsM.cjs.map} +1 -1
  344. package/dist/chunks/{NcBlurHash-KSj0HXbX.mjs → NcBlurHash-DKfLn7BC.mjs} +4 -4
  345. package/dist/chunks/{NcBlurHash-KSj0HXbX.mjs.map → NcBlurHash-DKfLn7BC.mjs.map} +1 -1
  346. package/dist/chunks/{NcBreadcrumb-D8xA3KcG.mjs → NcBreadcrumb-BPaEIFrD.mjs} +5 -5
  347. package/dist/chunks/{NcBreadcrumb-14OmaYrH.cjs.map → NcBreadcrumb-BPaEIFrD.mjs.map} +1 -1
  348. package/dist/chunks/{NcBreadcrumb-14OmaYrH.cjs → NcBreadcrumb-ZV3_rxwo.cjs} +5 -5
  349. package/dist/chunks/{NcBreadcrumb-D8xA3KcG.mjs.map → NcBreadcrumb-ZV3_rxwo.cjs.map} +1 -1
  350. package/dist/chunks/{NcBreadcrumbs-CesoXxTs.mjs → NcBreadcrumbs-BN_Nk5sm.mjs} +4 -4
  351. package/dist/chunks/{NcBreadcrumbs-CesoXxTs.mjs.map → NcBreadcrumbs-BN_Nk5sm.mjs.map} +1 -1
  352. package/dist/chunks/{NcBreadcrumbs-CZt3UuyO.cjs → NcBreadcrumbs-lgJctYCF.cjs} +4 -4
  353. package/dist/chunks/{NcBreadcrumbs-CZt3UuyO.cjs.map → NcBreadcrumbs-lgJctYCF.cjs.map} +1 -1
  354. package/dist/chunks/{NcButton-CCWEL9Ci.mjs → NcButton-DAGirW_B.mjs} +4 -4
  355. package/dist/chunks/NcButton-DAGirW_B.mjs.map +1 -0
  356. package/dist/chunks/{NcButton-ByTFUhwJ.cjs → NcButton-W3wDpCdX.cjs} +4 -4
  357. package/dist/chunks/NcButton-W3wDpCdX.cjs.map +1 -0
  358. package/dist/chunks/{NcCheckboxRadioSwitch-D4IV4zWy.mjs → NcCheckboxRadioSwitch-BAjRm8PQ.mjs} +18 -9
  359. package/dist/chunks/NcCheckboxRadioSwitch-BAjRm8PQ.mjs.map +1 -0
  360. package/dist/chunks/{NcCheckboxRadioSwitch-BQeglWXd.cjs → NcCheckboxRadioSwitch-Bc1iPxKK.cjs} +18 -9
  361. package/dist/chunks/NcCheckboxRadioSwitch-Bc1iPxKK.cjs.map +1 -0
  362. package/dist/chunks/{NcCollectionList-DOAZ13vO.mjs → NcCollectionList-75D50pZU.mjs} +9 -9
  363. package/dist/chunks/NcCollectionList-75D50pZU.mjs.map +1 -0
  364. package/dist/chunks/{NcCollectionList-2jk5XCm8.cjs → NcCollectionList-CX9fHs--.cjs} +9 -9
  365. package/dist/chunks/NcCollectionList-CX9fHs--.cjs.map +1 -0
  366. package/dist/chunks/{NcColorPicker-SlazeVcI.mjs → NcColorPicker-BwqjqV32.mjs} +8 -8
  367. package/dist/chunks/{NcColorPicker-SlazeVcI.mjs.map → NcColorPicker-BwqjqV32.mjs.map} +1 -1
  368. package/dist/chunks/{NcColorPicker-BTiAa5mm.cjs → NcColorPicker-oQVwX8dO.cjs} +8 -8
  369. package/dist/chunks/{NcColorPicker-BTiAa5mm.cjs.map → NcColorPicker-oQVwX8dO.cjs.map} +1 -1
  370. package/dist/chunks/{NcContent-BB-v-amq.cjs → NcContent-BlABZ4r6.cjs} +7 -7
  371. package/dist/chunks/{NcContent-BB-v-amq.cjs.map → NcContent-BlABZ4r6.cjs.map} +1 -1
  372. package/dist/chunks/{NcContent-BuTh0ZPb.mjs → NcContent-nvVwz9xO.mjs} +7 -7
  373. package/dist/chunks/{NcContent-BuTh0ZPb.mjs.map → NcContent-nvVwz9xO.mjs.map} +1 -1
  374. package/dist/chunks/{NcDashboardWidget-dMwnFBzc.cjs → NcDashboardWidget-CY9oWI6e.cjs} +5 -5
  375. package/dist/chunks/{NcDashboardWidget-dMwnFBzc.cjs.map → NcDashboardWidget-CY9oWI6e.cjs.map} +1 -1
  376. package/dist/chunks/{NcDashboardWidget-CO1z9VUN.mjs → NcDashboardWidget-d_eqooRR.mjs} +5 -5
  377. package/dist/chunks/{NcDashboardWidget-CO1z9VUN.mjs.map → NcDashboardWidget-d_eqooRR.mjs.map} +1 -1
  378. package/dist/chunks/{NcDashboardWidgetItem-9tQgaPXS.cjs → NcDashboardWidgetItem-BWELTjeT.cjs} +4 -4
  379. package/dist/chunks/{NcDashboardWidgetItem-9tQgaPXS.cjs.map → NcDashboardWidgetItem-BWELTjeT.cjs.map} +1 -1
  380. package/dist/chunks/{NcDashboardWidgetItem-2VgB9qj2.mjs → NcDashboardWidgetItem-BiZ8QNOR.mjs} +4 -4
  381. package/dist/chunks/{NcDashboardWidgetItem-2VgB9qj2.mjs.map → NcDashboardWidgetItem-BiZ8QNOR.mjs.map} +1 -1
  382. package/dist/chunks/NcDateTime-DE-ltgw2.cjs.map +1 -1
  383. package/dist/chunks/NcDateTime-enXYuwj8.mjs.map +1 -1
  384. package/dist/chunks/{NcDialog-Qak1QTrv.cjs → NcDialog-CiuR4ZK0.cjs} +2 -2
  385. package/dist/chunks/{NcDialog-Qak1QTrv.cjs.map → NcDialog-CiuR4ZK0.cjs.map} +1 -1
  386. package/dist/chunks/{NcDialog-DZ7xq7XA.mjs → NcDialog-DoGsI2_6.mjs} +2 -2
  387. package/dist/chunks/{NcDialog-DZ7xq7XA.mjs.map → NcDialog-DoGsI2_6.mjs.map} +1 -1
  388. package/dist/chunks/{NcDialogButton-BoetK2zm.cjs → NcDialogButton-BR6KI4--.cjs} +4 -4
  389. package/dist/chunks/{NcDialogButton-BoetK2zm.cjs.map → NcDialogButton-BR6KI4--.cjs.map} +1 -1
  390. package/dist/chunks/{NcDialogButton-KNF3Co74.mjs → NcDialogButton-D5yuDtSF.mjs} +4 -4
  391. package/dist/chunks/{NcDialogButton-KNF3Co74.mjs.map → NcDialogButton-D5yuDtSF.mjs.map} +1 -1
  392. package/dist/chunks/{NcEmojiPicker-DNxcceCn.mjs → NcEmojiPicker-C_88_f6x.mjs} +8 -8
  393. package/dist/chunks/{NcEmojiPicker-DNxcceCn.mjs.map → NcEmojiPicker-C_88_f6x.mjs.map} +1 -1
  394. package/dist/chunks/{NcEmojiPicker-2KIJVstd.cjs → NcEmojiPicker-Dyqwkm_d.cjs} +8 -8
  395. package/dist/chunks/{NcEmojiPicker-2KIJVstd.cjs.map → NcEmojiPicker-Dyqwkm_d.cjs.map} +1 -1
  396. package/dist/chunks/{NcFilePicker-BL6iajt2.cjs → NcFilePicker-Cdc1TsXy.cjs} +7 -7
  397. package/dist/chunks/{NcFilePicker-BL6iajt2.cjs.map → NcFilePicker-Cdc1TsXy.cjs.map} +1 -1
  398. package/dist/chunks/{NcFilePicker-Ck9o-ia3.mjs → NcFilePicker-Dg6UqMN1.mjs} +7 -7
  399. package/dist/chunks/{NcFilePicker-Ck9o-ia3.mjs.map → NcFilePicker-Dg6UqMN1.mjs.map} +1 -1
  400. package/dist/chunks/{NcFormBox-DtoCXLMx.mjs → NcFormBox-C38-8CH6.mjs} +7 -7
  401. package/dist/chunks/{NcFormBox-DtoCXLMx.mjs.map → NcFormBox-C38-8CH6.mjs.map} +1 -1
  402. package/dist/chunks/{NcFormBox-DRGVpFeZ.cjs → NcFormBox-C8LDr6nF.cjs} +7 -7
  403. package/dist/chunks/{NcFormBox-DRGVpFeZ.cjs.map → NcFormBox-C8LDr6nF.cjs.map} +1 -1
  404. package/dist/chunks/{NcFormBoxButton-ozVuTgCZ.cjs → NcFormBoxButton-Bk-1cqbj.cjs} +5 -5
  405. package/dist/chunks/{NcFormBoxButton-ozVuTgCZ.cjs.map → NcFormBoxButton-Bk-1cqbj.cjs.map} +1 -1
  406. package/dist/chunks/{NcFormBoxButton-CFWCJ0-X.mjs → NcFormBoxButton-DFqqtbav.mjs} +5 -5
  407. package/dist/chunks/{NcFormBoxButton-CFWCJ0-X.mjs.map → NcFormBoxButton-DFqqtbav.mjs.map} +1 -1
  408. package/dist/chunks/{NcFormBoxCopyButton-BS9aM994.cjs → NcFormBoxCopyButton-LEjPAg3D.cjs} +3 -3
  409. package/dist/chunks/{NcFormBoxCopyButton-BS9aM994.cjs.map → NcFormBoxCopyButton-LEjPAg3D.cjs.map} +1 -1
  410. package/dist/chunks/{NcFormBoxCopyButton-Da8RuDH1.mjs → NcFormBoxCopyButton-_KxKabAB.mjs} +3 -3
  411. package/dist/chunks/{NcFormBoxCopyButton-Da8RuDH1.mjs.map → NcFormBoxCopyButton-_KxKabAB.mjs.map} +1 -1
  412. package/dist/chunks/{NcFormBoxItem-3lI7Bu3S.cjs → NcFormBoxItem-BAJxkxRf.cjs} +12 -12
  413. package/dist/chunks/{NcFormBoxItem-3lI7Bu3S.cjs.map → NcFormBoxItem-BAJxkxRf.cjs.map} +1 -1
  414. package/dist/chunks/{NcFormBoxItem-Bz-P0lVG.mjs → NcFormBoxItem-CmfqBL1k.mjs} +12 -12
  415. package/dist/chunks/{NcFormBoxItem-Bz-P0lVG.mjs.map → NcFormBoxItem-CmfqBL1k.mjs.map} +1 -1
  416. package/dist/chunks/{NcFormBoxSwitch-DaaMuPnk.mjs → NcFormBoxSwitch-B34n4EwU.mjs} +6 -6
  417. package/dist/chunks/NcFormBoxSwitch-B34n4EwU.mjs.map +1 -0
  418. package/dist/chunks/{NcFormBoxSwitch-7R8iAj1R.cjs → NcFormBoxSwitch-Bw2utaCz.cjs} +6 -6
  419. package/dist/chunks/NcFormBoxSwitch-Bw2utaCz.cjs.map +1 -0
  420. package/dist/chunks/{NcFormGroup-AxkxubKD.cjs → NcFormGroup-dH5AXvsT.cjs} +9 -9
  421. package/dist/chunks/{NcFormGroup-AxkxubKD.cjs.map → NcFormGroup-dH5AXvsT.cjs.map} +1 -1
  422. package/dist/chunks/{NcFormGroup-DblLoFMf.mjs → NcFormGroup-geUvdoIG.mjs} +9 -9
  423. package/dist/chunks/{NcFormGroup-DblLoFMf.mjs.map → NcFormGroup-geUvdoIG.mjs.map} +1 -1
  424. package/dist/chunks/{NcHeaderButton-GtIbBhEd.mjs → NcHeaderButton-BqjMDSal.mjs} +2 -2
  425. package/dist/chunks/{NcHeaderButton-GtIbBhEd.mjs.map → NcHeaderButton-BqjMDSal.mjs.map} +1 -1
  426. package/dist/chunks/{NcHeaderButton-BndVfb3e.cjs → NcHeaderButton-ChwiTpxY.cjs} +2 -2
  427. package/dist/chunks/{NcHeaderButton-BndVfb3e.cjs.map → NcHeaderButton-ChwiTpxY.cjs.map} +1 -1
  428. package/dist/chunks/{NcHeaderMenu-elBE_Ukl.mjs → NcHeaderMenu-BB2r8v-X.mjs} +2 -2
  429. package/dist/chunks/{NcHeaderMenu-elBE_Ukl.mjs.map → NcHeaderMenu-BB2r8v-X.mjs.map} +1 -1
  430. package/dist/chunks/{NcHeaderMenu-DUQ4pqU-.cjs → NcHeaderMenu-BivYykFA.cjs} +2 -2
  431. package/dist/chunks/{NcHeaderMenu-DUQ4pqU-.cjs.map → NcHeaderMenu-BivYykFA.cjs.map} +1 -1
  432. package/dist/chunks/{NcHotkey-CLLtt9LG.mjs → NcHotkey-B6KIqqii.mjs} +7 -7
  433. package/dist/chunks/{NcHotkey-CLLtt9LG.mjs.map → NcHotkey-B6KIqqii.mjs.map} +1 -1
  434. package/dist/chunks/{NcHotkey-vKyDZ2a7.cjs → NcHotkey-BVSKiKpz.cjs} +7 -7
  435. package/dist/chunks/{NcHotkey-vKyDZ2a7.cjs.map → NcHotkey-BVSKiKpz.cjs.map} +1 -1
  436. package/dist/chunks/{NcHotkeyList-Co7MBL5U.mjs → NcHotkeyList-BACQoMeA.mjs} +6 -6
  437. package/dist/chunks/NcHotkeyList-BACQoMeA.mjs.map +1 -0
  438. package/dist/chunks/{NcHotkeyList-DhFQdopw.cjs → NcHotkeyList-Crj5V-KW.cjs} +6 -6
  439. package/dist/chunks/NcHotkeyList-Crj5V-KW.cjs.map +1 -0
  440. package/dist/chunks/{NcIconToggleSwitch-0NTw7i-t.mjs → NcIconToggleSwitch-B19dt_oD.mjs} +4 -4
  441. package/dist/chunks/{NcIconToggleSwitch-0NTw7i-t.mjs.map → NcIconToggleSwitch-B19dt_oD.mjs.map} +1 -1
  442. package/dist/chunks/{NcIconToggleSwitch-LTgdIBoC.cjs → NcIconToggleSwitch-DZSBCDbH.cjs} +4 -4
  443. package/dist/chunks/{NcIconToggleSwitch-LTgdIBoC.cjs.map → NcIconToggleSwitch-DZSBCDbH.cjs.map} +1 -1
  444. package/dist/chunks/{NcInputConfirmCancel-CwuZqsuC.mjs → NcInputConfirmCancel-44rhjqEA.mjs} +10 -10
  445. package/dist/chunks/{NcInputConfirmCancel-CwuZqsuC.mjs.map → NcInputConfirmCancel-44rhjqEA.mjs.map} +1 -1
  446. package/dist/chunks/{NcInputConfirmCancel-CEZVhgJR.cjs → NcInputConfirmCancel-CaCFiQnc.cjs} +10 -10
  447. package/dist/chunks/{NcInputConfirmCancel-CEZVhgJR.cjs.map → NcInputConfirmCancel-CaCFiQnc.cjs.map} +1 -1
  448. package/dist/chunks/{NcInputField-Brpn446B.cjs → NcInputField-BcmWwfT5.cjs} +5 -5
  449. package/dist/chunks/{NcInputField-Brpn446B.cjs.map → NcInputField-BcmWwfT5.cjs.map} +1 -1
  450. package/dist/chunks/{NcInputField-i4Z8nb4b.mjs → NcInputField-Cym5GuvB.mjs} +5 -5
  451. package/dist/chunks/{NcInputField-i4Z8nb4b.mjs.map → NcInputField-Cym5GuvB.mjs.map} +1 -1
  452. package/dist/chunks/{NcKbd-DbjnDaJH.cjs → NcKbd-CrXHar_q.cjs} +6 -6
  453. package/dist/chunks/{NcKbd-DbjnDaJH.cjs.map → NcKbd-CrXHar_q.cjs.map} +1 -1
  454. package/dist/chunks/{NcKbd-GB8FuSAU.mjs → NcKbd-D86qGvDb.mjs} +6 -6
  455. package/dist/chunks/{NcKbd-GB8FuSAU.mjs.map → NcKbd-D86qGvDb.mjs.map} +1 -1
  456. package/dist/chunks/{NcListItem-C-e9iA9w.cjs → NcListItem-5_QrKITf.cjs} +4 -4
  457. package/dist/chunks/{NcListItem-CaosvdEe.mjs.map → NcListItem-5_QrKITf.cjs.map} +1 -1
  458. package/dist/chunks/{NcListItem-CaosvdEe.mjs → NcListItem-DFrhF-DU.mjs} +4 -4
  459. package/dist/chunks/{NcListItem-C-e9iA9w.cjs.map → NcListItem-DFrhF-DU.mjs.map} +1 -1
  460. package/dist/chunks/{NcListItemIcon-BQ0f65Vg.cjs → NcListItemIcon-BpEOUL7y.cjs} +2 -2
  461. package/dist/chunks/{NcListItemIcon-BQ0f65Vg.cjs.map → NcListItemIcon-BpEOUL7y.cjs.map} +1 -1
  462. package/dist/chunks/{NcListItemIcon-DCKYv8Jr.mjs → NcListItemIcon-DIecVacf.mjs} +2 -2
  463. package/dist/chunks/{NcListItemIcon-DCKYv8Jr.mjs.map → NcListItemIcon-DIecVacf.mjs.map} +1 -1
  464. package/dist/chunks/{NcPasswordField-D4OFjLza.mjs → NcPasswordField-2woxTjbl.mjs} +4 -4
  465. package/dist/chunks/{NcPasswordField-D4OFjLza.mjs.map → NcPasswordField-2woxTjbl.mjs.map} +1 -1
  466. package/dist/chunks/{NcPasswordField-PQt7wMbW.cjs → NcPasswordField-C1FGaXn4.cjs} +4 -4
  467. package/dist/chunks/{NcPasswordField-PQt7wMbW.cjs.map → NcPasswordField-C1FGaXn4.cjs.map} +1 -1
  468. package/dist/chunks/{NcPopover-UAg26Qdd.mjs → NcPopover-BaHX3QSG.mjs} +4 -4
  469. package/dist/chunks/{NcPopover-UAg26Qdd.mjs.map → NcPopover-BaHX3QSG.mjs.map} +1 -1
  470. package/dist/chunks/{NcPopover-Ujf9nIvN.cjs → NcPopover-Bq-bsaqt.cjs} +4 -4
  471. package/dist/chunks/{NcPopover-Ujf9nIvN.cjs.map → NcPopover-Bq-bsaqt.cjs.map} +1 -1
  472. package/dist/chunks/NcProfileHoverCard-DK5YkGF0.mjs +479 -0
  473. package/dist/chunks/NcProfileHoverCard-DK5YkGF0.mjs.map +1 -0
  474. package/dist/chunks/NcProfileHoverCard-rEanhQqc.cjs +481 -0
  475. package/dist/chunks/NcProfileHoverCard-rEanhQqc.cjs.map +1 -0
  476. package/dist/chunks/{NcRadioGroup-CsPmwGlc.cjs → NcRadioGroup-C2lG1kIj.cjs} +6 -6
  477. package/dist/chunks/{NcRadioGroup-CsPmwGlc.cjs.map → NcRadioGroup-C2lG1kIj.cjs.map} +1 -1
  478. package/dist/chunks/{NcRadioGroup-BbBX9X2J.mjs → NcRadioGroup-D_7OAyQ4.mjs} +6 -6
  479. package/dist/chunks/{NcRadioGroup-BbBX9X2J.mjs.map → NcRadioGroup-D_7OAyQ4.mjs.map} +1 -1
  480. package/dist/chunks/{NcRadioGroupButton-BkxlxjIA.mjs → NcRadioGroupButton-CkpB4myv.mjs} +8 -8
  481. package/dist/chunks/{NcRadioGroupButton-BkxlxjIA.mjs.map → NcRadioGroupButton-CkpB4myv.mjs.map} +1 -1
  482. package/dist/chunks/{NcRadioGroupButton-6skMHhr7.cjs → NcRadioGroupButton-DcU_Yagn.cjs} +8 -8
  483. package/dist/chunks/{NcRadioGroupButton-6skMHhr7.cjs.map → NcRadioGroupButton-DcU_Yagn.cjs.map} +1 -1
  484. package/dist/chunks/NcReferenceWidget-Br8ecSQw.cjs +280 -0
  485. package/dist/chunks/NcReferenceWidget-Br8ecSQw.cjs.map +1 -0
  486. package/dist/chunks/NcReferenceWidget-CMq5QVka.mjs +281 -0
  487. package/dist/chunks/NcReferenceWidget-CMq5QVka.mjs.map +1 -0
  488. package/dist/chunks/{NcRelatedResourcesPanel-I2ZOB3cx.mjs → NcRelatedResourcesPanel-BKygMHvP.mjs} +11 -11
  489. package/dist/chunks/NcRelatedResourcesPanel-BKygMHvP.mjs.map +1 -0
  490. package/dist/chunks/{NcRelatedResourcesPanel-l1AlGr83.cjs → NcRelatedResourcesPanel-CjmzJ9Ex.cjs} +11 -11
  491. package/dist/chunks/NcRelatedResourcesPanel-CjmzJ9Ex.cjs.map +1 -0
  492. package/dist/chunks/{NcRichContenteditable-DZjIiOKo.cjs → NcRichContenteditable-CaDBJIrd.cjs} +28 -32
  493. package/dist/chunks/NcRichContenteditable-CaDBJIrd.cjs.map +1 -0
  494. package/dist/chunks/{NcRichContenteditable-8ZA_LArB.mjs → NcRichContenteditable-rJPX28V6.mjs} +28 -32
  495. package/dist/chunks/NcRichContenteditable-rJPX28V6.mjs.map +1 -0
  496. package/dist/chunks/{NcRichText-pqvg5l27.cjs → NcRichText-BC9lKFPb.cjs} +10 -10
  497. package/dist/chunks/{NcRichText-pqvg5l27.cjs.map → NcRichText-BC9lKFPb.cjs.map} +1 -1
  498. package/dist/chunks/{NcRichText-ByLPwUvM.mjs → NcRichText-K2ZjNIbK.mjs} +9 -9
  499. package/dist/chunks/{NcRichText-ByLPwUvM.mjs.map → NcRichText-K2ZjNIbK.mjs.map} +1 -1
  500. package/dist/chunks/{NcSelect-CHc1QupB.mjs → NcSelect-CxHfXvZV.mjs} +5 -5
  501. package/dist/chunks/{NcSelect-CHc1QupB.mjs.map → NcSelect-CxHfXvZV.mjs.map} +1 -1
  502. package/dist/chunks/{NcSelect-BCcSawYf.cjs → NcSelect-DW5W3ZIM.cjs} +5 -5
  503. package/dist/chunks/{NcSelect-BCcSawYf.cjs.map → NcSelect-DW5W3ZIM.cjs.map} +1 -1
  504. package/dist/chunks/{NcSelectTags-Bokig7ar.mjs → NcSelectTags-BWTTPN2O.mjs} +3 -3
  505. package/dist/chunks/{NcSelectTags-Bokig7ar.mjs.map → NcSelectTags-BWTTPN2O.mjs.map} +1 -1
  506. package/dist/chunks/{NcSelectTags-uU_mHbSm.cjs → NcSelectTags-Bk4doVG3.cjs} +3 -3
  507. package/dist/chunks/{NcSelectTags-uU_mHbSm.cjs.map → NcSelectTags-Bk4doVG3.cjs.map} +1 -1
  508. package/dist/chunks/{NcSelectUsers-BB9ZIHeB.cjs → NcSelectUsers-BxmxyFcE.cjs} +5 -5
  509. package/dist/chunks/{NcSelectUsers-BB9ZIHeB.cjs.map → NcSelectUsers-BxmxyFcE.cjs.map} +1 -1
  510. package/dist/chunks/{NcSelectUsers-B4w9UC_d.mjs → NcSelectUsers-D2jOjPs4.mjs} +5 -5
  511. package/dist/chunks/{NcSelectUsers-B4w9UC_d.mjs.map → NcSelectUsers-D2jOjPs4.mjs.map} +1 -1
  512. package/dist/chunks/{NcSettingsInputText-BF5437Q7.cjs → NcSettingsInputText-BAMF6udc.cjs} +3 -3
  513. package/dist/chunks/{NcSettingsInputText-BF5437Q7.cjs.map → NcSettingsInputText-BAMF6udc.cjs.map} +1 -1
  514. package/dist/chunks/{NcSettingsInputText-BwnkZzWL.mjs → NcSettingsInputText-Cc7cCwNm.mjs} +3 -3
  515. package/dist/chunks/{NcSettingsInputText-BwnkZzWL.mjs.map → NcSettingsInputText-Cc7cCwNm.mjs.map} +1 -1
  516. package/dist/chunks/{NcSettingsSection-BrIKMh-B.cjs → NcSettingsSection-D48jcXDL.cjs} +5 -5
  517. package/dist/chunks/{NcSettingsSection-BrIKMh-B.cjs.map → NcSettingsSection-D48jcXDL.cjs.map} +1 -1
  518. package/dist/chunks/{NcSettingsSection-Dz_b9rcq.mjs → NcSettingsSection-D9qxzYDc.mjs} +5 -5
  519. package/dist/chunks/{NcSettingsSection-Dz_b9rcq.mjs.map → NcSettingsSection-D9qxzYDc.mjs.map} +1 -1
  520. package/dist/chunks/{NcSettingsSelectGroup-BtNFBX1V.cjs → NcSettingsSelectGroup-CJGf5mxJ.cjs} +4 -4
  521. package/dist/chunks/{NcSettingsSelectGroup-BtNFBX1V.cjs.map → NcSettingsSelectGroup-CJGf5mxJ.cjs.map} +1 -1
  522. package/dist/chunks/{NcSettingsSelectGroup-BdXf7ytX.mjs → NcSettingsSelectGroup-DzzNyHN_.mjs} +4 -4
  523. package/dist/chunks/{NcSettingsSelectGroup-BdXf7ytX.mjs.map → NcSettingsSelectGroup-DzzNyHN_.mjs.map} +1 -1
  524. package/dist/chunks/{NcTextArea-B9Vn3rQC.cjs → NcTextArea-GxhBi7Z3.cjs} +4 -4
  525. package/dist/chunks/{NcTextArea-B9Vn3rQC.cjs.map → NcTextArea-GxhBi7Z3.cjs.map} +1 -1
  526. package/dist/chunks/{NcTextArea-DPJWqlJb.mjs → NcTextArea-T9totbme.mjs} +4 -4
  527. package/dist/chunks/{NcTextArea-DPJWqlJb.mjs.map → NcTextArea-T9totbme.mjs.map} +1 -1
  528. package/dist/chunks/{NcTextField-Czr9S6YO.mjs → NcTextField-CQp8XS4C.mjs} +4 -4
  529. package/dist/chunks/{NcTextField-Czr9S6YO.mjs.map → NcTextField-CQp8XS4C.mjs.map} +1 -1
  530. package/dist/chunks/{NcTextField-B92lM77I.cjs → NcTextField-DMxdmT5a.cjs} +4 -4
  531. package/dist/chunks/{NcTextField-B92lM77I.cjs.map → NcTextField-DMxdmT5a.cjs.map} +1 -1
  532. package/dist/chunks/{NcTimezonePicker-D2e7hW-Z.cjs → NcTimezonePicker-B0rvWaty.cjs} +4 -4
  533. package/dist/chunks/{NcTimezonePicker-D2e7hW-Z.cjs.map → NcTimezonePicker-B0rvWaty.cjs.map} +1 -1
  534. package/dist/chunks/{NcTimezonePicker-n9kr9A4o.mjs → NcTimezonePicker-BfSjyBxq.mjs} +4 -4
  535. package/dist/chunks/{NcTimezonePicker-n9kr9A4o.mjs.map → NcTimezonePicker-BfSjyBxq.mjs.map} +1 -1
  536. package/dist/chunks/{NcUserBubble-CNQJUk2l.cjs → NcUserBubble-BR5bw7lO.cjs} +3 -3
  537. package/dist/chunks/{NcUserBubble-CNQJUk2l.cjs.map → NcUserBubble-BR5bw7lO.cjs.map} +1 -1
  538. package/dist/chunks/{NcUserBubble-BGfZAi4c.mjs → NcUserBubble-Bd-PEfyK.mjs} +3 -3
  539. package/dist/chunks/{NcUserBubble-BGfZAi4c.mjs.map → NcUserBubble-Bd-PEfyK.mjs.map} +1 -1
  540. package/dist/chunks/{NcUserStatusIcon-BnGtoiCy.cjs → NcUserStatusIcon-BP2cHGxs.cjs} +5 -5
  541. package/dist/chunks/{NcUserStatusIcon-BnGtoiCy.cjs.map → NcUserStatusIcon-BP2cHGxs.cjs.map} +1 -1
  542. package/dist/chunks/{NcUserStatusIcon-DdPPN-cP.mjs → NcUserStatusIcon-gpl3yJFX.mjs} +5 -5
  543. package/dist/chunks/{NcUserStatusIcon-DdPPN-cP.mjs.map → NcUserStatusIcon-gpl3yJFX.mjs.map} +1 -1
  544. package/dist/chunks/{ScopeComponent-77Az-4PS.mjs → ScopeComponent-Df3JYkxQ.mjs} +2 -2
  545. package/dist/chunks/{ScopeComponent-77Az-4PS.mjs.map → ScopeComponent-Df3JYkxQ.mjs.map} +1 -1
  546. package/dist/chunks/{ScopeComponent-BLaRYUFv.cjs → ScopeComponent-O4dfHJkP.cjs} +2 -2
  547. package/dist/chunks/{ScopeComponent-BLaRYUFv.cjs.map → ScopeComponent-O4dfHJkP.cjs.map} +1 -1
  548. package/dist/chunks/{_l10n-skrZri3h.cjs → _l10n-Be-gO5QO.cjs} +56 -54
  549. package/dist/chunks/{_l10n-skrZri3h.cjs.map → _l10n-Be-gO5QO.cjs.map} +1 -1
  550. package/dist/chunks/{_l10n-DVz9Qdzk.mjs → _l10n-CAnZaLWU.mjs} +110 -108
  551. package/dist/chunks/_l10n-CAnZaLWU.mjs.map +1 -0
  552. package/dist/chunks/{autolink-VQMuzjxl.cjs → autolink-BHlqTULT.cjs} +5 -5
  553. package/dist/chunks/{autolink-VQMuzjxl.cjs.map → autolink-BHlqTULT.cjs.map} +1 -1
  554. package/dist/chunks/{autolink-CeB9uxD9.mjs → autolink-COrOqbJu.mjs} +5 -5
  555. package/dist/chunks/{autolink-CeB9uxD9.mjs.map → autolink-COrOqbJu.mjs.map} +1 -1
  556. package/dist/chunks/{colors-Bp0JzIQ4.mjs → colors-B_oqiKWY.mjs} +3 -3
  557. package/dist/chunks/{colors-Bp0JzIQ4.mjs.map → colors-B_oqiKWY.mjs.map} +1 -1
  558. package/dist/chunks/{colors-CyIwf6gH.cjs → colors-DF9O093h.cjs} +3 -3
  559. package/dist/chunks/{colors-CyIwf6gH.cjs.map → colors-DF9O093h.cjs.map} +1 -1
  560. package/dist/chunks/customPickerElements-CYpmyl0b.mjs +61 -0
  561. package/dist/chunks/customPickerElements-CYpmyl0b.mjs.map +1 -0
  562. package/dist/chunks/{customPickerElements-GyIIOHiQ.cjs → customPickerElements-DNevxofg.cjs} +1 -58
  563. package/dist/chunks/customPickerElements-DNevxofg.cjs.map +1 -0
  564. package/dist/chunks/{legacy-Bk0qQxIg.cjs → legacy-BpZw2Eww.cjs} +4 -2
  565. package/dist/chunks/legacy-BpZw2Eww.cjs.map +1 -0
  566. package/dist/chunks/legacy-Cy3dCXuB.mjs +11 -0
  567. package/dist/chunks/legacy-Cy3dCXuB.mjs.map +1 -0
  568. package/dist/chunks/{referencePickerModal-BGYbZYrX.cjs → referencePickerModal-D2nYmN67.cjs} +23 -198
  569. package/dist/chunks/referencePickerModal-D2nYmN67.cjs.map +1 -0
  570. package/dist/chunks/{referencePickerModal-B69WouiU.mjs → referencePickerModal-P_15xB7f.mjs} +24 -199
  571. package/dist/chunks/referencePickerModal-P_15xB7f.mjs.map +1 -0
  572. package/dist/chunks/rtl-DLuwcTlm.cjs +5 -0
  573. package/dist/chunks/rtl-DLuwcTlm.cjs.map +1 -0
  574. package/dist/chunks/rtl-v0UOPAM7.mjs +6 -0
  575. package/dist/chunks/rtl-v0UOPAM7.mjs.map +1 -0
  576. package/dist/chunks/{useCopy-DDDe5RYH.mjs → useCopy-C-jNoLry.mjs} +3 -3
  577. package/dist/chunks/{useCopy-DDDe5RYH.mjs.map → useCopy-C-jNoLry.mjs.map} +1 -1
  578. package/dist/chunks/{useCopy-3m2jDiIN.cjs → useCopy-DXXjl8MD.cjs} +3 -3
  579. package/dist/chunks/{useCopy-3m2jDiIN.cjs.map → useCopy-DXXjl8MD.cjs.map} +1 -1
  580. package/dist/chunks/widgets-DoYhefYe.cjs +65 -0
  581. package/dist/chunks/widgets-DoYhefYe.cjs.map +1 -0
  582. package/dist/chunks/widgets-XxirL-2f.mjs +66 -0
  583. package/dist/chunks/widgets-XxirL-2f.mjs.map +1 -0
  584. package/dist/components/NcProfileHoverCard/index.d.ts +5 -0
  585. package/dist/components/NcProfileHoverCard/profileCache.d.ts +31 -0
  586. package/dist/functions/reference/index.d.ts +6 -3
  587. package/dist/functions/reference/widgets.d.ts +11 -1
  588. package/dist/index.cjs +83 -84
  589. package/dist/index.cjs.map +1 -1
  590. package/dist/index.mjs +85 -86
  591. package/dist/index.mjs.map +1 -1
  592. package/dist/utils/legacy.d.ts +2 -0
  593. package/package.json +18 -18
  594. package/dist/chunks/NcAppContent-0hbQMH35.cjs.map +0 -1
  595. package/dist/chunks/NcAppContent-DAN0qPID.mjs.map +0 -1
  596. package/dist/chunks/NcAppNavigationToggle-CXX1MFrf.mjs.map +0 -1
  597. package/dist/chunks/NcAppNavigationToggle-CkDMk16T.cjs.map +0 -1
  598. package/dist/chunks/NcAppSettingsDialog-Fa5DTfig.cjs.map +0 -1
  599. package/dist/chunks/NcAppSettingsDialog-MxrFh-Ln.mjs.map +0 -1
  600. package/dist/chunks/NcAppSettingsShortcutsSection-DblUBaWP.mjs.map +0 -1
  601. package/dist/chunks/NcAppSettingsShortcutsSection-DgGU8-cF.cjs.map +0 -1
  602. package/dist/chunks/NcAppSidebar-B7GuNZ4C.mjs.map +0 -1
  603. package/dist/chunks/NcAppSidebar-DXEl0_ou.cjs.map +0 -1
  604. package/dist/chunks/NcAvatar-D09ZAgeJ.cjs.map +0 -1
  605. package/dist/chunks/NcAvatar-DkAX4nqq.mjs.map +0 -1
  606. package/dist/chunks/NcButton-ByTFUhwJ.cjs.map +0 -1
  607. package/dist/chunks/NcButton-CCWEL9Ci.mjs.map +0 -1
  608. package/dist/chunks/NcCheckboxRadioSwitch-BQeglWXd.cjs.map +0 -1
  609. package/dist/chunks/NcCheckboxRadioSwitch-D4IV4zWy.mjs.map +0 -1
  610. package/dist/chunks/NcCollectionList-2jk5XCm8.cjs.map +0 -1
  611. package/dist/chunks/NcCollectionList-DOAZ13vO.mjs.map +0 -1
  612. package/dist/chunks/NcFormBoxSwitch-7R8iAj1R.cjs.map +0 -1
  613. package/dist/chunks/NcFormBoxSwitch-DaaMuPnk.mjs.map +0 -1
  614. package/dist/chunks/NcHotkeyList-Co7MBL5U.mjs.map +0 -1
  615. package/dist/chunks/NcHotkeyList-DhFQdopw.cjs.map +0 -1
  616. package/dist/chunks/NcRelatedResourcesPanel-I2ZOB3cx.mjs.map +0 -1
  617. package/dist/chunks/NcRelatedResourcesPanel-l1AlGr83.cjs.map +0 -1
  618. package/dist/chunks/NcRichContenteditable-8ZA_LArB.mjs.map +0 -1
  619. package/dist/chunks/NcRichContenteditable-DZjIiOKo.cjs.map +0 -1
  620. package/dist/chunks/_l10n-DVz9Qdzk.mjs.map +0 -1
  621. package/dist/chunks/customPickerElements-DLFtgReB.mjs +0 -118
  622. package/dist/chunks/customPickerElements-DLFtgReB.mjs.map +0 -1
  623. package/dist/chunks/customPickerElements-GyIIOHiQ.cjs.map +0 -1
  624. package/dist/chunks/legacy-Bk0qQxIg.cjs.map +0 -1
  625. package/dist/chunks/legacy-DV3mGZdh.mjs +0 -9
  626. package/dist/chunks/legacy-DV3mGZdh.mjs.map +0 -1
  627. package/dist/chunks/referencePickerModal-B69WouiU.mjs.map +0 -1
  628. package/dist/chunks/referencePickerModal-BGYbZYrX.cjs.map +0 -1
@@ -4,14 +4,14 @@ const emojiMartVueFast = require("emoji-mart-vue-fast");
4
4
  const data = require("emoji-mart-vue-fast/data/all.json");
5
5
  const tabbable = require("tabbable");
6
6
  const _pluginVue2_normalizer = require("./_plugin-vue2_normalizer-V0q-tHlQ.cjs");
7
- const NcColorPicker = require("./NcColorPicker-BTiAa5mm.cjs");
7
+ const NcColorPicker = require("./NcColorPicker-oQVwX8dO.cjs");
8
8
  const useTrapStackControl = require("./useTrapStackControl-XYABY64G.cjs");
9
9
  const emoji = require("./emoji-aWWWqkrJ.cjs");
10
- const _l10n = require("./_l10n-skrZri3h.cjs");
11
- const colors = require("./colors-CyIwf6gH.cjs");
12
- const NcButton = require("./NcButton-ByTFUhwJ.cjs");
13
- const NcPopover = require("./NcPopover-Ujf9nIvN.cjs");
14
- const NcTextField = require("./NcTextField-B92lM77I.cjs");
10
+ const _l10n = require("./_l10n-Be-gO5QO.cjs");
11
+ const colors = require("./colors-DF9O093h.cjs");
12
+ const NcButton = require("./NcButton-W3wDpCdX.cjs");
13
+ const NcPopover = require("./NcPopover-Bq-bsaqt.cjs");
14
+ const NcTextField = require("./NcTextField-DMxdmT5a.cjs");
15
15
  const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
16
16
  const data__default = /* @__PURE__ */ _interopDefault(data);
17
17
  const _sfc_main$1 = {
@@ -47,7 +47,7 @@ var __component__$1 = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
47
47
  null
48
48
  );
49
49
  const IconCircle = __component__$1.exports;
50
- _l10n.register(_l10n.t5, _l10n.t15, _l10n.t36, _l10n.t43);
50
+ _l10n.register(_l10n.t6, _l10n.t16, _l10n.t37, _l10n.t44);
51
51
  let emojiIndex;
52
52
  const i18n = {
53
53
  search: _l10n.t("Search emoji"),
@@ -316,4 +316,4 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
316
316
  );
317
317
  const NcEmojiPicker = __component__.exports;
318
318
  exports.NcEmojiPicker = NcEmojiPicker;
319
- //# sourceMappingURL=NcEmojiPicker-2KIJVstd.cjs.map
319
+ //# sourceMappingURL=NcEmojiPicker-Dyqwkm_d.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NcEmojiPicker-2KIJVstd.cjs","sources":["../../node_modules/vue-material-design-icons/Circle.vue","../../src/components/NcEmojiPicker/NcEmojiPicker.vue"],"sourcesContent":["<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon circle-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CircleIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### General description\n\nThis component allows the user to pick an emoji.\n\n### Usage\n\n* Listen to the select event and pass in an HTML element that will be treated as a trigger:\n\n```vue\n<template>\n\t<div>\n\t\t<NcEmojiPicker @select=\"select\" style=\"display: inline-block\">\n\t\t\t<NcButton> Click Me </NcButton>\n\t\t</NcEmojiPicker>\n\t\t<span>selected emoji: {{ emoji }}</span>\n\t</div>\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\temoji: '',\n\t\t\t}\n\t\t},\n\t\tmethods: {\n\t\t\tselect(emoji) {\n\t\t\t\tthis.emoji = emoji\n\t\t\t},\n\t\t},\n\t}\n</script>\n```\n\n* Showing a preview and keeping it open after a user selected an emoji\n\n```vue\n<template>\n\t<div>\n\t\t<NcEmojiPicker\n\t\t\t:close-on-select=\"false\"\n\t\t\t:show-preview=\"true\"\n\t\t\t@select=\"select\"\n\t\t\tstyle=\"display: inline-block\">\n\t\t\t<NcButton> Click Me </NcButton>\n\t\t</NcEmojiPicker>\n\t\t<span>selected emoji: {{ emoji }}</span>\n\t</div>\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\temoji: '',\n\t\t\t}\n\t\t},\n\t\tmethods: {\n\t\t\tselect(emoji) {\n\t\t\t\tthis.emoji = emoji\n\t\t\t},\n\t\t},\n\t}\n</script>\n```\n\n* Allow unselecting a previously set emoji.\n\n```vue\n<template>\n\t<div>\n\t\t<NcEmojiPicker\n\t\t\t:show-preview=\"true\"\n\t\t\t:allow-unselect=\"true\"\n\t\t\t:selected-emoji=\"emoji\"\n\t\t\t@select=\"select\"\n\t\t\t@unselect=\"unselect\"\n\t\t\tstyle=\"display: inline-block\">\n\t\t\t<NcButton> Click Me </NcButton>\n\t\t</NcEmojiPicker>\n\t\t<span>selected emoji: {{ emoji }}</span>\n\t</div>\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\temoji: '',\n\t\t\t}\n\t\t},\n\t\tmethods: {\n\t\t\tselect(emoji) {\n\t\t\t\tthis.emoji = emoji\n\t\t\t},\n\t\t\tunselect() {\n\t\t\t\tthis.emoji = ''\n\t\t\t},\n\t\t},\n\t}\n</script>\n```\n\n</docs>\n\n<template>\n\t<NcPopover\n\t\tref=\"popover\"\n\t\t:shown.sync=\"open\"\n\t\t:container=\"container\"\n\t\tpopup-role=\"dialog\"\n\t\tv-bind=\"$attrs\"\n\t\t:focus-trap=\"false /* Handled manually to remove emoji buttons from TAB sequence */\"\n\t\tv-on=\"$listeners\"\n\t\t@after-show=\"afterShow\"\n\t\t@after-hide=\"afterHide\">\n\t\t<template #trigger=\"slotProps\">\n\t\t\t<slot v-bind=\"slotProps\" />\n\t\t</template>\n\t\t<div class=\"nc-emoji-picker-container\">\n\t\t\t<Picker\n\t\t\t\tref=\"picker\"\n\t\t\t\tcolor=\"var(--color-primary-element)\"\n\t\t\t\t:data=\"emojiIndex\"\n\t\t\t\t:emoji=\"previewFallbackEmoji\"\n\t\t\t\t:i18n=\"i18n\"\n\t\t\t\t:native=\"native\"\n\t\t\t\t:emoji-size=\"20\"\n\t\t\t\t:per-line=\"8\"\n\t\t\t\t:picker-styles=\"{ width: '320px' }\"\n\t\t\t\t:show-preview=\"showPreview\"\n\t\t\t\t:skin=\"currentSkinTone\"\n\t\t\t\t:show-skin-tones=\"false\"\n\t\t\t\t:title=\"previewFallbackName\"\n\t\t\t\trole=\"dialog\"\n\t\t\t\taria-modal=\"true\"\n\t\t\t\t:aria-label=\"t('Emoji picker')\"\n\t\t\t\tv-bind=\"$attrs\"\n\t\t\t\t@keydown.native.tab.prevent=\"handleTabNavigationSkippingEmojis\"\n\t\t\t\t@select=\"select\">\n\t\t\t\t<template #searchTemplate=\"{ onSearch }\">\n\t\t\t\t\t<div class=\"search__wrapper\">\n\t\t\t\t\t\t<NcTextField\n\t\t\t\t\t\t\tref=\"search\"\n\t\t\t\t\t\t\tclass=\"search\"\n\t\t\t\t\t\t\t:value.sync=\"search\"\n\t\t\t\t\t\t\t:label=\"t('Search')\"\n\t\t\t\t\t\t\t:label-visible=\"true\"\n\t\t\t\t\t\t\t:placeholder=\"i18n.search\"\n\t\t\t\t\t\t\ttrailing-button-icon=\"close\"\n\t\t\t\t\t\t\t:trailing-button-label=\"t('Clear search')\"\n\t\t\t\t\t\t\t:show-trailing-button=\"search !== ''\"\n\t\t\t\t\t\t\t@keydown.left=\"callPickerArrowHandlerWithScrollFix('onArrowLeft', $event)\"\n\t\t\t\t\t\t\t@keydown.right=\"callPickerArrowHandlerWithScrollFix('onArrowRight', $event)\"\n\t\t\t\t\t\t\t@keydown.down=\"callPickerArrowHandlerWithScrollFix('onArrowDown', $event)\"\n\t\t\t\t\t\t\t@keydown.up=\"callPickerArrowHandlerWithScrollFix('onArrowUp', $event)\"\n\t\t\t\t\t\t\t@keydown.enter=\"$refs.picker.onEnter\"\n\t\t\t\t\t\t\t@trailing-button-click=\"clearSearch(); onSearch('');\"\n\t\t\t\t\t\t\t@update:value=\"onSearch(search)\" />\n\t\t\t\t\t\t<NcColorPicker\n\t\t\t\t\t\t\tpalette-only\n\t\t\t\t\t\t\t:container=\"container\"\n\t\t\t\t\t\t\t:palette=\"skinTonePalette\"\n\t\t\t\t\t\t\t:value=\"currentColor.color\"\n\t\t\t\t\t\t\t@update:value=\"onChangeSkinTone\">\n\t\t\t\t\t\t\t<NcButton :aria-label=\"t('Skin tone')\" variant=\"tertiary-no-background\">\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconCircle :style=\"{ color: currentColor.color }\" :title=\"currentColor.name\" :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t</NcColorPicker>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t\t<template v-if=\"allowUnselect && selectedEmoji\" #customCategory>\n\t\t\t\t\t<div class=\"emoji-mart-category-label\">\n\t\t\t\t\t\t<h3 class=\"emoji-mart-category-label\">\n\t\t\t\t\t\t\t{{ t('Selected') }}\n\t\t\t\t\t\t</h3>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Emoji\n\t\t\t\t\t\tclass=\"emoji-selected\"\n\t\t\t\t\t\t:data=\"emojiIndex\"\n\t\t\t\t\t\t:emoji=\"selectedEmoji\"\n\t\t\t\t\t\t:native=\"true\"\n\t\t\t\t\t\t:size=\"32\"\n\t\t\t\t\t\t@click=\"unselect\" />\n\t\t\t\t\t<Emoji\n\t\t\t\t\t\tclass=\"emoji-delete\"\n\t\t\t\t\t\t:data=\"emojiIndex\"\n\t\t\t\t\t\temoji=\":x:\"\n\t\t\t\t\t\t:native=\"true\"\n\t\t\t\t\t\t:size=\"10\"\n\t\t\t\t\t\t@click=\"unselect\" />\n\t\t\t\t</template>\n\t\t\t</Picker>\n\t\t</div>\n\t</NcPopover>\n</template>\n\n<script>\nimport { Emoji, EmojiIndex, Picker } from 'emoji-mart-vue-fast'\nimport data from 'emoji-mart-vue-fast/data/all.json'\nimport { isFocusable } from 'tabbable'\nimport IconCircle from 'vue-material-design-icons/Circle.vue'\nimport NcColorPicker from '../NcColorPicker/NcColorPicker.vue'\nimport { useTrapStackControl } from '../../composables/useTrapStackControl.ts'\nimport { getCurrentSkinTone, setCurrentSkinTone } from '../../functions/emoji/emoji.ts'\nimport { t } from '../../l10n.js'\nimport { Color } from '../../utils/colors.ts'\nimport NcButton from '../NcButton/index.js'\nimport NcPopover from '../NcPopover/index.js'\nimport NcTextField from '../NcTextField/index.js'\n\n// Shared emoji index and skinTone for all NcEmojiPicker instances\n// Will be initialized on the first NcEmojiPicker creating\nlet emojiIndex\n\nconst i18n = {\n\tsearch: t('Search emoji'),\n\tnotfound: t('No emoji found'),\n\tcategories: {\n\t\tsearch: t('Search results'),\n\t\trecent: t('Frequently used'),\n\t\tsmileys: t('Smileys & Emotion'),\n\t\tpeople: t('People & Body'),\n\t\tnature: t('Animals & Nature'),\n\t\tfoods: t('Food & Drink'),\n\t\tactivity: t('Activities'),\n\t\tplaces: t('Travel & Places'),\n\t\tobjects: t('Objects'),\n\t\tsymbols: t('Symbols'),\n\t\tflags: t('Flags'),\n\t\tcustom: t('Custom'),\n\t},\n}\n\nconst skinTonePalette = [\n\tnew Color(255, 222, 52, t('Neutral skin color')),\n\tnew Color(228, 205, 166, t('Light skin tone')),\n\tnew Color(250, 221, 192, t('Medium light skin tone')),\n\tnew Color(174, 129, 87, t('Medium skin tone')),\n\tnew Color(158, 113, 88, t('Medium dark skin tone')),\n\tnew Color(96, 79, 69, t('Dark skin tone')),\n]\n\nexport default {\n\tname: 'NcEmojiPicker',\n\n\tcomponents: {\n\t\tEmoji,\n\t\tIconCircle,\n\t\tNcButton,\n\t\tNcColorPicker,\n\t\tNcPopover,\n\t\tNcTextField,\n\t\tPicker,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * The emoji-set\n\t\t */\n\t\tactiveSet: {\n\t\t\ttype: String,\n\t\t\tdefault: 'native',\n\t\t},\n\n\t\t/**\n\t\t * Show preview section when hovering emoji\n\t\t */\n\t\tshowPreview: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Allow unselecting the selected emoji\n\t\t */\n\t\tallowUnselect: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Selected emoji to allow unselecting\n\t\t */\n\t\tselectedEmoji: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * The fallback emoji in the preview section\n\t\t */\n\t\tpreviewFallbackEmoji: {\n\t\t\ttype: String,\n\t\t\tdefault: 'grinning',\n\t\t},\n\n\t\t/**\n\t\t * The fallback text in the preview section\n\t\t */\n\t\tpreviewFallbackName: {\n\t\t\ttype: String,\n\t\t\tdefault: t('Pick an emoji'),\n\t\t},\n\n\t\t/**\n\t\t * Whether to close the emoji picker after picking one\n\t\t */\n\t\tcloseOnSelect: {\n\t\t\ttype: Boolean,\n\t\t\t// eslint-disable-next-line vue/no-boolean-default\n\t\t\tdefault: true,\n\t\t},\n\n\t\t/**\n\t\t * Selector for the popover container\n\t\t */\n\t\tcontainer: {\n\t\t\ttype: [Boolean, String, Object, Element],\n\t\t\tdefault: 'body',\n\t\t},\n\t},\n\n\temits: [\n\t\t'select',\n\t\t'select-data',\n\t\t'unselect',\n\t],\n\n\tsetup() {\n\t\t// If this is the first instance of NcEmojiPicker - setup EmojiIndex\n\t\tif (!emojiIndex) {\n\t\t\temojiIndex = new EmojiIndex(data)\n\t\t}\n\n\t\treturn {\n\t\t\t// Non-reactive constants\n\t\t\temojiIndex,\n\t\t\tskinTonePalette,\n\t\t\ti18n,\n\t\t}\n\t},\n\n\tdata() {\n\t\tconst currentSkinTone = getCurrentSkinTone()\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * The current active color from the skin tone palette\n\t\t\t */\n\t\t\tcurrentColor: skinTonePalette[currentSkinTone - 1],\n\t\t\t/**\n\t\t\t * The current active skin tone\n\t\t\t *\n\t\t\t * @type {1|2|3|4|5|6}\n\t\t\t */\n\t\t\tcurrentSkinTone,\n\t\t\tsearch: '',\n\t\t\topen: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tnative() {\n\t\t\treturn this.activeSet === 'native'\n\t\t},\n\t},\n\n\tcreated() {\n\t\t// Component has its own custom focus management\n\t\t// The global focus trap stack should be paused\n\t\tuseTrapStackControl(() => this.open)\n\t},\n\n\tmethods: {\n\t\tt,\n\n\t\tclearSearch() {\n\t\t\tthis.search = ''\n\t\t\tthis.$refs.search.focus()\n\t\t},\n\n\t\t/**\n\t\t * Update the current skin tone by the result of the color picker\n\t\t *\n\t\t * @param {string} color Color set\n\t\t */\n\t\tonChangeSkinTone(color) {\n\t\t\tconst index = this.skinTonePalette.findIndex((tone) => tone.color.toLowerCase() === color.toLowerCase())\n\t\t\tif (index > -1) {\n\t\t\t\tthis.currentSkinTone = index + 1\n\t\t\t\tthis.currentColor = this.skinTonePalette[index]\n\t\t\t\tsetCurrentSkinTone(this.currentSkinTone)\n\t\t\t}\n\t\t},\n\n\t\tselect(emojiObject) {\n\t\t\t/**\n\t\t\t * Emits a string containing the emoji e.g. '👩🏿‍💻'\n\t\t\t */\n\t\t\tthis.$emit('select', emojiObject.native)\n\n\t\t\t/**\n\t\t\t * Emits a object with more data about the picked emoji\n\t\t\t */\n\t\t\tthis.$emit('select-data', emojiObject)\n\n\t\t\tif (this.closeOnSelect) {\n\t\t\t\tthis.open = false\n\t\t\t}\n\t\t},\n\n\t\tunselect() {\n\t\t\tthis.$emit('unselect')\n\t\t},\n\n\t\tafterShow() {\n\t\t\tthis.$refs.search.focus()\n\t\t},\n\n\t\tafterHide() {\n\t\t\t// Manually return focus to the trigger button, as we disabled focus-trap\n\t\t\t// But only if there is no focus target outside the picker, for example, input element that received focus by click closing the emoji picker\n\t\t\tif (!document.activeElement || this.$refs.picker.$el.contains(document.activeElement) || !isFocusable(document.activeElement)) {\n\t\t\t\tthis.$refs.popover.$el.querySelector('button, [role=\"button\"]')?.focus()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Manually handle Tab navigation skipping emoji buttons.\n\t\t * Navigation over emojis is handled by Arrow keys.\n\t\t *\n\t\t * @param {KeyboardEvent} event - Keyboard event\n\t\t */\n\t\thandleTabNavigationSkippingEmojis(event) {\n\t\t\tconst current = event.target\n\t\t\tconst focusable = Array.from(this.$refs.picker.$el.querySelectorAll('button:not(.emoji-mart-emoji), input'))\n\t\t\tif (!event.shiftKey) {\n\t\t\t\tconst nextNode = focusable.find((node) => current.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_FOLLOWING) || focusable[0]\n\t\t\t\tnextNode.focus()\n\t\t\t} else {\n\t\t\t\tconst prevNode = focusable.findLast((node) => current.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_PRECEDING) || focusable.at(-1)\n\t\t\t\tprevNode.focus()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Handle arrow navigation via <Picker>'s handlers with scroll bug fix\n\t\t *\n\t\t * @param {'onArrowLeft' | 'onArrowRight' | 'onArrowDown' | 'onArrowUp'} originalHandlerName - Picker's arrow keydown handler name\n\t\t * @param {KeyboardEvent} event - Keyboard event\n\t\t */\n\t\tasync callPickerArrowHandlerWithScrollFix(originalHandlerName, event) {\n\t\t\t// Call the original handler\n\t\t\t// See: https://github.com/serebrov/emoji-mart-vue/blob/a1ea72673a111cce78dc8caad8bc9ea3e02ad5bd/src/components/Picker.vue#L29\n\t\t\t// TODO: expose these methods via slot props in upstream library\n\t\t\tthis.$refs.picker[originalHandlerName](event)\n\n\t\t\t// Wait until emoji-mart-vue-fast scrolls\n\t\t\tawait this.$nextTick()\n\n\t\t\t// Scroll position is incorrect after emoji-mart-vue-fast scrolls...\n\t\t\t// It calculates scroll incorrectly.\n\t\t\t// It doesn't take into account, that emojis are wrapped into categories sections\n\t\t\t// See: https://github.com/serebrov/emoji-mart-vue/blob/a1ea72673a111cce78dc8caad8bc9ea3e02ad5bd/src/utils/picker.js#L244\n\t\t\t// Now scroll to the correct position\n\t\t\t// TODO: fix in upstream\n\t\t\tconst selectedEmoji = this.$refs.picker.$el.querySelector('.emoji-mart-emoji-selected')\n\t\t\tselectedEmoji?.scrollIntoView({\n\t\t\t\tblock: 'center',\n\t\t\t\tinline: 'center',\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n@use \"sass:meta\";\n\n.nc-emoji-picker-container :deep() {\n\t@include meta.load-css('emoji-mart-vue-fast/css/emoji-mart.css');\n}\n\n.nc-emoji-picker-container :deep(.emoji-mart) {\n\tbackground-color: var(--color-main-background) !important;\n\tborder: 0;\n\tcolor: var(--color-main-text) !important;\n\n\t// Reset emoji-mart styles\n\tbutton {\n\t\tborder: none;\n\t\tbackground: transparent;\n\t\tfont-size: inherit;\n\t}\n\n\t.emoji-mart-bar,\n\t.emoji-mart-anchors,\n\t.emoji-mart-search,\n\t.emoji-mart-search input,\n\t.emoji-mart-category,\n\t.emoji-mart-category-label,\n\t.emoji-mart-category-label span,\n\t.emoji-mart-skin-swatches {\n\t\tbackground-color: transparent !important;\n\t\tborder-color: var(--color-border) !important;\n\t\tcolor: inherit !important;\n\t}\n\n\t.emoji-mart-anchors {\n\t\tpadding-block: 0;\n\t\tpadding-inline: calc(2 * var(--default-grid-baseline));\n\t}\n\n\t.emoji-mart-anchor {\n\t\tborder-radius: 0;\n\t\tmargin: 0 !important;\n\t\tpadding: 0 !important;\n\t\theight: var(--clickable-area-small);\n\t\tmin-width: var(--clickable-area-small);\n\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\n\t\t&:focus-visible {\n\t\t\toutline: 2px solid var(--color-primary-element) !important;\n\t\t\toutline-offset: -2px;\n\t\t}\n\n\t\t// Icon\n\t\tdiv {\n\t\t\tdisplay: grid;\n\t\t\tplace-content: center;\n\t\t}\n\t}\n\n\t.emoji-mart-scroll {\n\t\tpadding-inline: calc(2 * var(--default-grid-baseline));\n\t\tpadding-block: 0 calc(2 * var(--default-grid-baseline));\n\t}\n\n\t.emoji-mart-category {\n\t\tdisplay: grid;\n\t\tgrid-template-columns: repeat(8, 1fr);\n\t\tjustify-items: stretch;\n\n\t\t&.emoji-mart-no-results {\n\t\t\tgrid-template-columns: 1fr;\n\t\t\tfont-size: inherit;\n\t\t\tcolor: var(--color-text-maxcontrast) !important;\n\t\t}\n\t}\n\n\t/* Label element in the section grid */\n\tdiv.emoji-mart-category-label {\n\t\tgrid-column: span 8;\n\t\tjustify-self: stretch;\n\t}\n\n\t/* An actual heading inside the element */\n\th3.emoji-mart-category-label {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\t// Inline with buttons\n\t\theight: var(--default-clickable-area);\n\t\tmargin: 0;\n\t\t// Inline with input\n\t\tpadding-inline: calc(2 * var(--default-grid-baseline));\n\t\tpadding-block: 0;\n\t\tuser-select: none;\n\t}\n\n\t.emoji-mart-emoji {\n\t\taspect-ratio: 1 / 1;\n\t\ttext-align: center;\n\t\tmargin: 0 !important;\n\t\tpadding: 0 !important;\n\n\t\t&:hover,\n\t\t&:focus-visible,\n\t\t&.emoji-mart-emoji-selected {\n\t\t\tbackground-color: var(--color-background-hover) !important;\n\t\t\tborder: none;\n\t\t\tborder-radius: var(--border-radius-element, var(--border-radius-pill));\n\t\t\tbox-shadow: none !important;\n\t\t\toutline: 2px solid var(--color-primary-element) !important;\n\t\t\toutline-offset: -2px;\n\t\t}\n\n\t\t&::before {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\tspan {\n\t\t\tcursor: pointer;\n\t\t}\n\t}\n}\n\n.search__wrapper {\n\tdisplay: flex;\n\tflex-direction: row;\n\tgap: var(--default-grid-baseline);\n\talign-items: end;\n\tpadding-block: var(--default-grid-baseline);\n\tpadding-inline: calc(2 * var(--default-grid-baseline));\n}\n\n.row-selected {\n\tbutton, span {\n\t\tvertical-align: middle;\n\t}\n}\n\n.emoji-delete {\n\tvertical-align: top;\n\tmargin-left: -21px;\n\tmargin-top: -3px;\n}\n</style>\n"],"names":["_sfc_main","t","Color","Emoji","NcButton","NcColorPicker","NcPopover","NcTextField","Picker","EmojiIndex","data","getCurrentSkinTone","useTrapStackControl","setCurrentSkinTone","isFocusable"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"NcEmojiPicker-Dyqwkm_d.cjs","sources":["../../node_modules/vue-material-design-icons/Circle.vue","../../src/components/NcEmojiPicker/NcEmojiPicker.vue"],"sourcesContent":["<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon circle-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"CircleIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### General description\n\nThis component allows the user to pick an emoji.\n\n### Usage\n\n* Listen to the select event and pass in an HTML element that will be treated as a trigger:\n\n```vue\n<template>\n\t<div>\n\t\t<NcEmojiPicker @select=\"select\" style=\"display: inline-block\">\n\t\t\t<NcButton> Click Me </NcButton>\n\t\t</NcEmojiPicker>\n\t\t<span>selected emoji: {{ emoji }}</span>\n\t</div>\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\temoji: '',\n\t\t\t}\n\t\t},\n\t\tmethods: {\n\t\t\tselect(emoji) {\n\t\t\t\tthis.emoji = emoji\n\t\t\t},\n\t\t},\n\t}\n</script>\n```\n\n* Showing a preview and keeping it open after a user selected an emoji\n\n```vue\n<template>\n\t<div>\n\t\t<NcEmojiPicker\n\t\t\t:close-on-select=\"false\"\n\t\t\t:show-preview=\"true\"\n\t\t\t@select=\"select\"\n\t\t\tstyle=\"display: inline-block\">\n\t\t\t<NcButton> Click Me </NcButton>\n\t\t</NcEmojiPicker>\n\t\t<span>selected emoji: {{ emoji }}</span>\n\t</div>\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\temoji: '',\n\t\t\t}\n\t\t},\n\t\tmethods: {\n\t\t\tselect(emoji) {\n\t\t\t\tthis.emoji = emoji\n\t\t\t},\n\t\t},\n\t}\n</script>\n```\n\n* Allow unselecting a previously set emoji.\n\n```vue\n<template>\n\t<div>\n\t\t<NcEmojiPicker\n\t\t\t:show-preview=\"true\"\n\t\t\t:allow-unselect=\"true\"\n\t\t\t:selected-emoji=\"emoji\"\n\t\t\t@select=\"select\"\n\t\t\t@unselect=\"unselect\"\n\t\t\tstyle=\"display: inline-block\">\n\t\t\t<NcButton> Click Me </NcButton>\n\t\t</NcEmojiPicker>\n\t\t<span>selected emoji: {{ emoji }}</span>\n\t</div>\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\temoji: '',\n\t\t\t}\n\t\t},\n\t\tmethods: {\n\t\t\tselect(emoji) {\n\t\t\t\tthis.emoji = emoji\n\t\t\t},\n\t\t\tunselect() {\n\t\t\t\tthis.emoji = ''\n\t\t\t},\n\t\t},\n\t}\n</script>\n```\n\n</docs>\n\n<template>\n\t<NcPopover\n\t\tref=\"popover\"\n\t\t:shown.sync=\"open\"\n\t\t:container=\"container\"\n\t\tpopup-role=\"dialog\"\n\t\tv-bind=\"$attrs\"\n\t\t:focus-trap=\"false /* Handled manually to remove emoji buttons from TAB sequence */\"\n\t\tv-on=\"$listeners\"\n\t\t@after-show=\"afterShow\"\n\t\t@after-hide=\"afterHide\">\n\t\t<template #trigger=\"slotProps\">\n\t\t\t<slot v-bind=\"slotProps\" />\n\t\t</template>\n\t\t<div class=\"nc-emoji-picker-container\">\n\t\t\t<Picker\n\t\t\t\tref=\"picker\"\n\t\t\t\tcolor=\"var(--color-primary-element)\"\n\t\t\t\t:data=\"emojiIndex\"\n\t\t\t\t:emoji=\"previewFallbackEmoji\"\n\t\t\t\t:i18n=\"i18n\"\n\t\t\t\t:native=\"native\"\n\t\t\t\t:emoji-size=\"20\"\n\t\t\t\t:per-line=\"8\"\n\t\t\t\t:picker-styles=\"{ width: '320px' }\"\n\t\t\t\t:show-preview=\"showPreview\"\n\t\t\t\t:skin=\"currentSkinTone\"\n\t\t\t\t:show-skin-tones=\"false\"\n\t\t\t\t:title=\"previewFallbackName\"\n\t\t\t\trole=\"dialog\"\n\t\t\t\taria-modal=\"true\"\n\t\t\t\t:aria-label=\"t('Emoji picker')\"\n\t\t\t\tv-bind=\"$attrs\"\n\t\t\t\t@keydown.native.tab.prevent=\"handleTabNavigationSkippingEmojis\"\n\t\t\t\t@select=\"select\">\n\t\t\t\t<template #searchTemplate=\"{ onSearch }\">\n\t\t\t\t\t<div class=\"search__wrapper\">\n\t\t\t\t\t\t<NcTextField\n\t\t\t\t\t\t\tref=\"search\"\n\t\t\t\t\t\t\tclass=\"search\"\n\t\t\t\t\t\t\t:value.sync=\"search\"\n\t\t\t\t\t\t\t:label=\"t('Search')\"\n\t\t\t\t\t\t\t:label-visible=\"true\"\n\t\t\t\t\t\t\t:placeholder=\"i18n.search\"\n\t\t\t\t\t\t\ttrailing-button-icon=\"close\"\n\t\t\t\t\t\t\t:trailing-button-label=\"t('Clear search')\"\n\t\t\t\t\t\t\t:show-trailing-button=\"search !== ''\"\n\t\t\t\t\t\t\t@keydown.left=\"callPickerArrowHandlerWithScrollFix('onArrowLeft', $event)\"\n\t\t\t\t\t\t\t@keydown.right=\"callPickerArrowHandlerWithScrollFix('onArrowRight', $event)\"\n\t\t\t\t\t\t\t@keydown.down=\"callPickerArrowHandlerWithScrollFix('onArrowDown', $event)\"\n\t\t\t\t\t\t\t@keydown.up=\"callPickerArrowHandlerWithScrollFix('onArrowUp', $event)\"\n\t\t\t\t\t\t\t@keydown.enter=\"$refs.picker.onEnter\"\n\t\t\t\t\t\t\t@trailing-button-click=\"clearSearch(); onSearch('');\"\n\t\t\t\t\t\t\t@update:value=\"onSearch(search)\" />\n\t\t\t\t\t\t<NcColorPicker\n\t\t\t\t\t\t\tpalette-only\n\t\t\t\t\t\t\t:container=\"container\"\n\t\t\t\t\t\t\t:palette=\"skinTonePalette\"\n\t\t\t\t\t\t\t:value=\"currentColor.color\"\n\t\t\t\t\t\t\t@update:value=\"onChangeSkinTone\">\n\t\t\t\t\t\t\t<NcButton :aria-label=\"t('Skin tone')\" variant=\"tertiary-no-background\">\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<IconCircle :style=\"{ color: currentColor.color }\" :title=\"currentColor.name\" :size=\"20\" />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</NcButton>\n\t\t\t\t\t\t</NcColorPicker>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t\t<template v-if=\"allowUnselect && selectedEmoji\" #customCategory>\n\t\t\t\t\t<div class=\"emoji-mart-category-label\">\n\t\t\t\t\t\t<h3 class=\"emoji-mart-category-label\">\n\t\t\t\t\t\t\t{{ t('Selected') }}\n\t\t\t\t\t\t</h3>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Emoji\n\t\t\t\t\t\tclass=\"emoji-selected\"\n\t\t\t\t\t\t:data=\"emojiIndex\"\n\t\t\t\t\t\t:emoji=\"selectedEmoji\"\n\t\t\t\t\t\t:native=\"true\"\n\t\t\t\t\t\t:size=\"32\"\n\t\t\t\t\t\t@click=\"unselect\" />\n\t\t\t\t\t<Emoji\n\t\t\t\t\t\tclass=\"emoji-delete\"\n\t\t\t\t\t\t:data=\"emojiIndex\"\n\t\t\t\t\t\temoji=\":x:\"\n\t\t\t\t\t\t:native=\"true\"\n\t\t\t\t\t\t:size=\"10\"\n\t\t\t\t\t\t@click=\"unselect\" />\n\t\t\t\t</template>\n\t\t\t</Picker>\n\t\t</div>\n\t</NcPopover>\n</template>\n\n<script>\nimport { Emoji, EmojiIndex, Picker } from 'emoji-mart-vue-fast'\nimport data from 'emoji-mart-vue-fast/data/all.json'\nimport { isFocusable } from 'tabbable'\nimport IconCircle from 'vue-material-design-icons/Circle.vue'\nimport NcColorPicker from '../NcColorPicker/NcColorPicker.vue'\nimport { useTrapStackControl } from '../../composables/useTrapStackControl.ts'\nimport { getCurrentSkinTone, setCurrentSkinTone } from '../../functions/emoji/emoji.ts'\nimport { t } from '../../l10n.js'\nimport { Color } from '../../utils/colors.ts'\nimport NcButton from '../NcButton/index.js'\nimport NcPopover from '../NcPopover/index.js'\nimport NcTextField from '../NcTextField/index.js'\n\n// Shared emoji index and skinTone for all NcEmojiPicker instances\n// Will be initialized on the first NcEmojiPicker creating\nlet emojiIndex\n\nconst i18n = {\n\tsearch: t('Search emoji'),\n\tnotfound: t('No emoji found'),\n\tcategories: {\n\t\tsearch: t('Search results'),\n\t\trecent: t('Frequently used'),\n\t\tsmileys: t('Smileys & Emotion'),\n\t\tpeople: t('People & Body'),\n\t\tnature: t('Animals & Nature'),\n\t\tfoods: t('Food & Drink'),\n\t\tactivity: t('Activities'),\n\t\tplaces: t('Travel & Places'),\n\t\tobjects: t('Objects'),\n\t\tsymbols: t('Symbols'),\n\t\tflags: t('Flags'),\n\t\tcustom: t('Custom'),\n\t},\n}\n\nconst skinTonePalette = [\n\tnew Color(255, 222, 52, t('Neutral skin color')),\n\tnew Color(228, 205, 166, t('Light skin tone')),\n\tnew Color(250, 221, 192, t('Medium light skin tone')),\n\tnew Color(174, 129, 87, t('Medium skin tone')),\n\tnew Color(158, 113, 88, t('Medium dark skin tone')),\n\tnew Color(96, 79, 69, t('Dark skin tone')),\n]\n\nexport default {\n\tname: 'NcEmojiPicker',\n\n\tcomponents: {\n\t\tEmoji,\n\t\tIconCircle,\n\t\tNcButton,\n\t\tNcColorPicker,\n\t\tNcPopover,\n\t\tNcTextField,\n\t\tPicker,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * The emoji-set\n\t\t */\n\t\tactiveSet: {\n\t\t\ttype: String,\n\t\t\tdefault: 'native',\n\t\t},\n\n\t\t/**\n\t\t * Show preview section when hovering emoji\n\t\t */\n\t\tshowPreview: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Allow unselecting the selected emoji\n\t\t */\n\t\tallowUnselect: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Selected emoji to allow unselecting\n\t\t */\n\t\tselectedEmoji: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * The fallback emoji in the preview section\n\t\t */\n\t\tpreviewFallbackEmoji: {\n\t\t\ttype: String,\n\t\t\tdefault: 'grinning',\n\t\t},\n\n\t\t/**\n\t\t * The fallback text in the preview section\n\t\t */\n\t\tpreviewFallbackName: {\n\t\t\ttype: String,\n\t\t\tdefault: t('Pick an emoji'),\n\t\t},\n\n\t\t/**\n\t\t * Whether to close the emoji picker after picking one\n\t\t */\n\t\tcloseOnSelect: {\n\t\t\ttype: Boolean,\n\t\t\t// eslint-disable-next-line vue/no-boolean-default\n\t\t\tdefault: true,\n\t\t},\n\n\t\t/**\n\t\t * Selector for the popover container\n\t\t */\n\t\tcontainer: {\n\t\t\ttype: [Boolean, String, Object, Element],\n\t\t\tdefault: 'body',\n\t\t},\n\t},\n\n\temits: [\n\t\t'select',\n\t\t'select-data',\n\t\t'unselect',\n\t],\n\n\tsetup() {\n\t\t// If this is the first instance of NcEmojiPicker - setup EmojiIndex\n\t\tif (!emojiIndex) {\n\t\t\temojiIndex = new EmojiIndex(data)\n\t\t}\n\n\t\treturn {\n\t\t\t// Non-reactive constants\n\t\t\temojiIndex,\n\t\t\tskinTonePalette,\n\t\t\ti18n,\n\t\t}\n\t},\n\n\tdata() {\n\t\tconst currentSkinTone = getCurrentSkinTone()\n\n\t\treturn {\n\t\t\t/**\n\t\t\t * The current active color from the skin tone palette\n\t\t\t */\n\t\t\tcurrentColor: skinTonePalette[currentSkinTone - 1],\n\t\t\t/**\n\t\t\t * The current active skin tone\n\t\t\t *\n\t\t\t * @type {1|2|3|4|5|6}\n\t\t\t */\n\t\t\tcurrentSkinTone,\n\t\t\tsearch: '',\n\t\t\topen: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tnative() {\n\t\t\treturn this.activeSet === 'native'\n\t\t},\n\t},\n\n\tcreated() {\n\t\t// Component has its own custom focus management\n\t\t// The global focus trap stack should be paused\n\t\tuseTrapStackControl(() => this.open)\n\t},\n\n\tmethods: {\n\t\tt,\n\n\t\tclearSearch() {\n\t\t\tthis.search = ''\n\t\t\tthis.$refs.search.focus()\n\t\t},\n\n\t\t/**\n\t\t * Update the current skin tone by the result of the color picker\n\t\t *\n\t\t * @param {string} color Color set\n\t\t */\n\t\tonChangeSkinTone(color) {\n\t\t\tconst index = this.skinTonePalette.findIndex((tone) => tone.color.toLowerCase() === color.toLowerCase())\n\t\t\tif (index > -1) {\n\t\t\t\tthis.currentSkinTone = index + 1\n\t\t\t\tthis.currentColor = this.skinTonePalette[index]\n\t\t\t\tsetCurrentSkinTone(this.currentSkinTone)\n\t\t\t}\n\t\t},\n\n\t\tselect(emojiObject) {\n\t\t\t/**\n\t\t\t * Emits a string containing the emoji e.g. '👩🏿‍💻'\n\t\t\t */\n\t\t\tthis.$emit('select', emojiObject.native)\n\n\t\t\t/**\n\t\t\t * Emits a object with more data about the picked emoji\n\t\t\t */\n\t\t\tthis.$emit('select-data', emojiObject)\n\n\t\t\tif (this.closeOnSelect) {\n\t\t\t\tthis.open = false\n\t\t\t}\n\t\t},\n\n\t\tunselect() {\n\t\t\tthis.$emit('unselect')\n\t\t},\n\n\t\tafterShow() {\n\t\t\tthis.$refs.search.focus()\n\t\t},\n\n\t\tafterHide() {\n\t\t\t// Manually return focus to the trigger button, as we disabled focus-trap\n\t\t\t// But only if there is no focus target outside the picker, for example, input element that received focus by click closing the emoji picker\n\t\t\tif (!document.activeElement || this.$refs.picker.$el.contains(document.activeElement) || !isFocusable(document.activeElement)) {\n\t\t\t\tthis.$refs.popover.$el.querySelector('button, [role=\"button\"]')?.focus()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Manually handle Tab navigation skipping emoji buttons.\n\t\t * Navigation over emojis is handled by Arrow keys.\n\t\t *\n\t\t * @param {KeyboardEvent} event - Keyboard event\n\t\t */\n\t\thandleTabNavigationSkippingEmojis(event) {\n\t\t\tconst current = event.target\n\t\t\tconst focusable = Array.from(this.$refs.picker.$el.querySelectorAll('button:not(.emoji-mart-emoji), input'))\n\t\t\tif (!event.shiftKey) {\n\t\t\t\tconst nextNode = focusable.find((node) => current.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_FOLLOWING) || focusable[0]\n\t\t\t\tnextNode.focus()\n\t\t\t} else {\n\t\t\t\tconst prevNode = focusable.findLast((node) => current.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_PRECEDING) || focusable.at(-1)\n\t\t\t\tprevNode.focus()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Handle arrow navigation via <Picker>'s handlers with scroll bug fix\n\t\t *\n\t\t * @param {'onArrowLeft' | 'onArrowRight' | 'onArrowDown' | 'onArrowUp'} originalHandlerName - Picker's arrow keydown handler name\n\t\t * @param {KeyboardEvent} event - Keyboard event\n\t\t */\n\t\tasync callPickerArrowHandlerWithScrollFix(originalHandlerName, event) {\n\t\t\t// Call the original handler\n\t\t\t// See: https://github.com/serebrov/emoji-mart-vue/blob/a1ea72673a111cce78dc8caad8bc9ea3e02ad5bd/src/components/Picker.vue#L29\n\t\t\t// TODO: expose these methods via slot props in upstream library\n\t\t\tthis.$refs.picker[originalHandlerName](event)\n\n\t\t\t// Wait until emoji-mart-vue-fast scrolls\n\t\t\tawait this.$nextTick()\n\n\t\t\t// Scroll position is incorrect after emoji-mart-vue-fast scrolls...\n\t\t\t// It calculates scroll incorrectly.\n\t\t\t// It doesn't take into account, that emojis are wrapped into categories sections\n\t\t\t// See: https://github.com/serebrov/emoji-mart-vue/blob/a1ea72673a111cce78dc8caad8bc9ea3e02ad5bd/src/utils/picker.js#L244\n\t\t\t// Now scroll to the correct position\n\t\t\t// TODO: fix in upstream\n\t\t\tconst selectedEmoji = this.$refs.picker.$el.querySelector('.emoji-mart-emoji-selected')\n\t\t\tselectedEmoji?.scrollIntoView({\n\t\t\t\tblock: 'center',\n\t\t\t\tinline: 'center',\n\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n@use \"sass:meta\";\n\n.nc-emoji-picker-container :deep() {\n\t@include meta.load-css('emoji-mart-vue-fast/css/emoji-mart.css');\n}\n\n.nc-emoji-picker-container :deep(.emoji-mart) {\n\tbackground-color: var(--color-main-background) !important;\n\tborder: 0;\n\tcolor: var(--color-main-text) !important;\n\n\t// Reset emoji-mart styles\n\tbutton {\n\t\tborder: none;\n\t\tbackground: transparent;\n\t\tfont-size: inherit;\n\t}\n\n\t.emoji-mart-bar,\n\t.emoji-mart-anchors,\n\t.emoji-mart-search,\n\t.emoji-mart-search input,\n\t.emoji-mart-category,\n\t.emoji-mart-category-label,\n\t.emoji-mart-category-label span,\n\t.emoji-mart-skin-swatches {\n\t\tbackground-color: transparent !important;\n\t\tborder-color: var(--color-border) !important;\n\t\tcolor: inherit !important;\n\t}\n\n\t.emoji-mart-anchors {\n\t\tpadding-block: 0;\n\t\tpadding-inline: calc(2 * var(--default-grid-baseline));\n\t}\n\n\t.emoji-mart-anchor {\n\t\tborder-radius: 0;\n\t\tmargin: 0 !important;\n\t\tpadding: 0 !important;\n\t\theight: var(--clickable-area-small);\n\t\tmin-width: var(--clickable-area-small);\n\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\n\t\t&:focus-visible {\n\t\t\toutline: 2px solid var(--color-primary-element) !important;\n\t\t\toutline-offset: -2px;\n\t\t}\n\n\t\t// Icon\n\t\tdiv {\n\t\t\tdisplay: grid;\n\t\t\tplace-content: center;\n\t\t}\n\t}\n\n\t.emoji-mart-scroll {\n\t\tpadding-inline: calc(2 * var(--default-grid-baseline));\n\t\tpadding-block: 0 calc(2 * var(--default-grid-baseline));\n\t}\n\n\t.emoji-mart-category {\n\t\tdisplay: grid;\n\t\tgrid-template-columns: repeat(8, 1fr);\n\t\tjustify-items: stretch;\n\n\t\t&.emoji-mart-no-results {\n\t\t\tgrid-template-columns: 1fr;\n\t\t\tfont-size: inherit;\n\t\t\tcolor: var(--color-text-maxcontrast) !important;\n\t\t}\n\t}\n\n\t/* Label element in the section grid */\n\tdiv.emoji-mart-category-label {\n\t\tgrid-column: span 8;\n\t\tjustify-self: stretch;\n\t}\n\n\t/* An actual heading inside the element */\n\th3.emoji-mart-category-label {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\t// Inline with buttons\n\t\theight: var(--default-clickable-area);\n\t\tmargin: 0;\n\t\t// Inline with input\n\t\tpadding-inline: calc(2 * var(--default-grid-baseline));\n\t\tpadding-block: 0;\n\t\tuser-select: none;\n\t}\n\n\t.emoji-mart-emoji {\n\t\taspect-ratio: 1 / 1;\n\t\ttext-align: center;\n\t\tmargin: 0 !important;\n\t\tpadding: 0 !important;\n\n\t\t&:hover,\n\t\t&:focus-visible,\n\t\t&.emoji-mart-emoji-selected {\n\t\t\tbackground-color: var(--color-background-hover) !important;\n\t\t\tborder: none;\n\t\t\tborder-radius: var(--border-radius-element, var(--border-radius-pill));\n\t\t\tbox-shadow: none !important;\n\t\t\toutline: 2px solid var(--color-primary-element) !important;\n\t\t\toutline-offset: -2px;\n\t\t}\n\n\t\t&::before {\n\t\t\tdisplay: none;\n\t\t}\n\n\t\tspan {\n\t\t\tcursor: pointer;\n\t\t}\n\t}\n}\n\n.search__wrapper {\n\tdisplay: flex;\n\tflex-direction: row;\n\tgap: var(--default-grid-baseline);\n\talign-items: end;\n\tpadding-block: var(--default-grid-baseline);\n\tpadding-inline: calc(2 * var(--default-grid-baseline));\n}\n\n.row-selected {\n\tbutton, span {\n\t\tvertical-align: middle;\n\t}\n}\n\n.emoji-delete {\n\tvertical-align: top;\n\tmargin-left: -21px;\n\tmargin-top: -3px;\n}\n</style>\n"],"names":["_sfc_main","t","Color","Emoji","NcButton","NcColorPicker","NcPopover","NcTextField","Picker","EmojiIndex","data","getCurrentSkinTone","useTrapStackControl","setCurrentSkinTone","isFocusable"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,13 +1,13 @@
1
- require('../assets/NcFilePicker-BokX813z.css');
1
+ require('../assets/NcFilePicker-BjFpDu4R.css');
2
2
  "use strict";
3
3
  const Vue = require("vue");
4
4
  const _pluginVue2_normalizer = require("./_plugin-vue2_normalizer-V0q-tHlQ.cjs");
5
- const NcActionButton = require("./NcActionButton-CiYel4_C.cjs");
5
+ const NcActionButton = require("./NcActionButton-B1jvJWjl.cjs");
6
6
  const Components_NcActionCaption = require("../Components/NcActionCaption.cjs");
7
- const NcActions = require("./NcActions-D51W1X9v.cjs");
7
+ const NcActions = require("./NcActions-H0GXWVPU.cjs");
8
8
  const NcIconSvgWrapper = require("./NcIconSvgWrapper-Bbl4kXZI.cjs");
9
9
  const Components_NcLoadingIcon = require("../Components/NcLoadingIcon.cjs");
10
- const _l10n = require("./_l10n-skrZri3h.cjs");
10
+ const _l10n = require("./_l10n-Be-gO5QO.cjs");
11
11
  const _sfc_main$3 = {
12
12
  name: "FolderUploadIcon",
13
13
  emits: ["click"],
@@ -107,7 +107,7 @@ var __component__$1 = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
107
107
  null
108
108
  );
109
109
  const IconUpload = __component__$1.exports;
110
- _l10n.register(_l10n.t40);
110
+ _l10n.register(_l10n.t41);
111
111
  const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
112
112
  __name: "NcFilePicker",
113
113
  props: {
@@ -161,7 +161,7 @@ const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
161
161
  return { __sfc: true, props, emit, formElement, inputElement, currentLabel, canUploadFolders, triggerPickFiles, onPick, reset, IconFolderUpload, IconPlus, IconUpload, NcActionButton: NcActionButton.NcActionButton, NcActionCaption: Components_NcActionCaption, NcActions: NcActions.NcActions, NcIconSvgWrapper: NcIconSvgWrapper.NcIconSvgWrapper, NcLoadingIcon: Components_NcLoadingIcon, t: _l10n.t };
162
162
  }
163
163
  });
164
- const filePicker = "_filePicker_KfdBJ";
164
+ const filePicker = "_filePicker_2NMRS";
165
165
  const style0 = {
166
166
  filePicker
167
167
  };
@@ -206,4 +206,4 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
206
206
  );
207
207
  const NcFilePicker = __component__.exports;
208
208
  exports.NcFilePicker = NcFilePicker;
209
- //# sourceMappingURL=NcFilePicker-BL6iajt2.cjs.map
209
+ //# sourceMappingURL=NcFilePicker-Cdc1TsXy.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NcFilePicker-BL6iajt2.cjs","sources":["../../node_modules/vue-material-design-icons/FolderUpload.vue","../../node_modules/vue-material-design-icons/Plus.vue","../../node_modules/vue-material-design-icons/Upload.vue","../../src/components/NcFilePicker/NcFilePicker.vue"],"sourcesContent":["<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon folder-upload-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M20,6A2,2 0 0,1 22,8V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H10L12,6H20M10.75,13H14V17H16V13H19.25L15,8.75\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FolderUploadIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon plus-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"PlusIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon upload-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M9,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"UploadIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, ref } from 'vue'\nimport IconFolderUpload from 'vue-material-design-icons/FolderUpload.vue'\nimport IconPlus from 'vue-material-design-icons/Plus.vue'\nimport IconUpload from 'vue-material-design-icons/Upload.vue'\nimport NcActionButton from '../NcActionButton/NcActionButton.vue'\nimport NcActionCaption from '../NcActionCaption/NcActionCaption.vue'\nimport NcActions from '../NcActions/NcActions.vue'\nimport NcIconSvgWrapper from '../NcIconSvgWrapper/NcIconSvgWrapper.vue'\nimport NcLoadingIcon from '../NcLoadingIcon/NcLoadingIcon.vue'\nimport { t } from '../../l10n.js'\n\nexport interface FilePickerItem {\n\t/**\n\t * SVG icon (as string) for the action\n\t */\n\ticonSvg: string\n\t/**\n\t * Label of the action\n\t */\n\tlabel: string\n\t/**\n\t * Callback when the action is clicked\n\t */\n\tonClick: () => void\n}\n\nexport interface FilePickerItemGroup {\n\t/**\n\t * Caption for the action group\n\t */\n\tcaption: string\n\t/**\n\t * Actions within this group\n\t */\n\tactions: FilePickerItem[]\n}\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * File types to accept\n\t */\n\taccept?: string[]\n\n\t/**\n\t * Optional menu caption to be shown above the actions\n\t */\n\tactionCaption?: string\n\n\t/**\n\t * Additional actions to be shown within the picker menu\n\t */\n\tactions?: FilePickerItem[] | FilePickerItemGroup[]\n\n\t/**\n\t * Allow picking a directory\n\t */\n\tdirectory?: boolean\n\n\t/**\n\t * Disable picking files and only allow picking a directory\n\t */\n\tdirectoryOnly?: boolean\n\n\t/**\n\t * Disabled state of the picker\n\t */\n\tdisabled?: boolean\n\n\t/**\n\t * If set then the label is only used for accessibility but not shown visually\n\t */\n\ticonOnly?: boolean\n\n\t/**\n\t * Label of the picker\n\t *\n\t * @default 'Pick file' or 'Pick files' depending on `multiple`\n\t */\n\tlabel?: string\n\n\t/**\n\t * If set then the picker will be set into a loading state.\n\t * This means the picker is disabled, a loading spinner is shown and the label is adjusted.\n\t */\n\tloading?: boolean\n\n\t/**\n\t * Can the user pick multiple files.\n\t * This is ignored when picking folder (by browser limitations).\n\t */\n\tmultiple?: boolean\n\n\t/**\n\t * The variant of the button\n\t */\n\tvariant?: 'primary' | 'secondary' | 'tertiary'\n}>(), {\n\tactions: () => [],\n\taccept: undefined,\n\tactionCaption: '',\n\tlabel: undefined,\n\tvariant: 'primary',\n})\n\nconst emit = defineEmits<{\n\t(event: 'pick', files: File[]): void\n}>()\n\ndefineExpose({\n\treset,\n})\n\nconst formElement = ref<HTMLFormElement | null>(null)\nconst inputElement = ref<HTMLInputElement | null>(null)\n\n/**\n * The current label to be used as menu name and accessible name of the picker.\n */\nconst currentLabel = computed(() => {\n\tif (props.loading) {\n\t\treturn t('Uploading …')\n\t} else if (props.label) {\n\t\treturn props.label\n\t} else if (props.directoryOnly) {\n\t\treturn t('Pick folder')\n\t}\n\treturn props.multiple ? t('Pick files') : t('Pick file')\n})\n\n/**\n * Check whether the current browser supports uploading directories\n * Hint: This does not check if the current connection supports this, as some browsers require a secure context!\n */\nconst canUploadFolders = computed(() => {\n\treturn (props.directory || props.directoryOnly) && 'webkitdirectory' in HTMLInputElement.prototype\n})\n\n/**\n * Trigger file picker\n *\n * @param uploadFolders - Whether to upload folders or files\n */\nfunction triggerPickFiles(uploadFolders: boolean) {\n\t// Without reset selecting the same file doesn't trigger the change event\n\treset()\n\n\t// Only if the browser supports picking folders and the user selected \"pick folder\" we set the file input to directory picking.\n\tif (canUploadFolders.value) {\n\t\tinputElement.value!.webkitdirectory = uploadFolders\n\t}\n\n\t// Wait for the reset and the `webkitdirectory` to be dispatched in DOM\n\tnextTick(() => inputElement.value!.click())\n}\n\n/**\n * Handle picking some local files\n */\nfunction onPick() {\n\tconst files = inputElement.value?.files ? Array.from(inputElement.value.files) : []\n\temit('pick', files)\n}\n\n/**\n * Reset the picker state of the currently selected files.\n */\nfunction reset() {\n\tformElement.value!.reset()\n}\n</script>\n\n<template>\n\t<form\n\t\tref=\"formElement\"\n\t\t:class=\"$style.filePicker\">\n\t\t<NcActions\n\t\t\t:aria-label=\"currentLabel\"\n\t\t\t:disabled=\"disabled || loading\"\n\t\t\t:menu-name=\"iconOnly ? undefined : currentLabel\"\n\t\t\t:force-name=\"!iconOnly\"\n\t\t\t:variant=\"variant\">\n\t\t\t<template #icon>\n\t\t\t\t<!-- @slot Optional custom icon for the picker menu -->\n\t\t\t\t<slot v-if=\"!loading\" name=\"icon\">\n\t\t\t\t\t<IconPlus :size=\"20\" />\n\t\t\t\t</slot>\n\t\t\t\t<NcLoadingIcon v-else />\n\t\t\t</template>\n\n\t\t\t<NcActionCaption v-if=\"actionCaption\" :name=\"actionCaption\" />\n\n\t\t\t<NcActionButton\n\t\t\t\tv-if=\"!directoryOnly\"\n\t\t\t\tclose-after-click\n\t\t\t\t@click=\"triggerPickFiles(false)\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconUpload :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ (canUploadFolders || !!$slots.actions) ? (multiple ? t('Upload files') : t('Upload file')) : currentLabel }}\n\t\t\t\t<!-- If this is not the only action in the NcActions this is a menu entry and we need a generic name - otherwise this will be a single button where we need to apply the label -->\n\t\t\t</NcActionButton>\n\n\t\t\t<NcActionButton\n\t\t\t\tv-if=\"canUploadFolders\"\n\t\t\t\tclose-after-click\n\t\t\t\t@click=\"triggerPickFiles(true)\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconFolderUpload style=\"color: var(--color-primary-element)\" :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ (!directoryOnly || !!$slots.actions) ? t('Upload folder') : currentLabel }}\n\t\t\t\t<!-- If this is not the only action in the NcActions this is a menu entry and we need a generic name - otherwise this will be a single button where we need to apply the label -->\n\t\t\t</NcActionButton>\n\n\t\t\t<template v-for=\"group of actions\">\n\t\t\t\t<NcActionCaption\n\t\t\t\t\tv-if=\"group.caption\"\n\t\t\t\t\t:key=\"group.caption\"\n\t\t\t\t\t:name=\"group.caption\" />\n\n\t\t\t\t<NcActionButton\n\t\t\t\t\tv-for=\"action of group.actions ?? [group]\"\n\t\t\t\t\t:key=\"action.label\"\n\t\t\t\t\tclose-after-click\n\t\t\t\t\t@click=\"action.onClick\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper :svg=\"action.iconSvg\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ action.label }}\n\t\t\t\t</NcActionButton>\n\t\t\t</template>\n\t\t</NcActions>\n\n\t\t<!-- Hidden files picker input - also hidden for accessibility as otherwise such users also loose the ability to pick files -->\n\t\t<input\n\t\t\tref=\"inputElement\"\n\t\t\t:accept=\"accept?.join(', ')\"\n\t\t\taria-hidden=\"true\"\n\t\t\tclass=\"hidden-visually\"\n\t\t\t:multiple=\"multiple\"\n\t\t\ttype=\"file\"\n\t\t\t@change=\"onPick\">\n\n\t\t<!-- @slot Optional content to be shown in the picker. This can be used e.g. for a progress bar or similar. -->\n\t\t<slot />\n\t</form>\n</template>\n\n<style module>\n.filePicker {\n\tdisplay: inline-flex;\n\talign-items: center;\n\theight: var(--default-clickable-area);\n}\n</style>\n\n<docs>\nThis component allows to pick local files (or directories) which can be used to upload them to Nextcloud or directly process them in the browser.\n\n### Exposed methods\n\n- `function reset(): void`\n This method allows to reset the internal state of the file picker to clear the current selection\n\n### Example\n\n```vue\n<template>\n\t<div>\n\t\t<div class=\"wrapper\">\n\t\t\t<NcFilePicker ref=\"picker\"\n\t\t\t\tdirectory\n\t\t\t\t@pick=\"selectedFiles = $event\" />\n\n\t\t\t<NcButton variant=\"tertiary\"\n\t\t\t\t@click=\"clearPicker\">\n\t\t\t\tClear\n\t\t\t</NcButton>\n\t\t</div>\n\n\t\t<h3>Selected files:</h3>\n\t\t<ul>\n\t\t\t<li v-for=\"file in selectedFiles\" :key=\"file.name\">\n\t\t\t\t{{ file.webkitRelativePath || file.name }}\n\t\t\t</li>\n\t\t</ul>\n\t</div>\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tselectedFiles: [],\n\t\t\t}\n\t\t},\n\t\tmethods: {\n\t\t\t/**\n\t\t\t * This will clear the selected files from the picker.\n\t\t\t */\n\t\t\tclearPicker() {\n\t\t\t\tthis.$refs.picker.reset()\n\t\t\t},\n\t\t},\n\t}\n</script>\n<style scoped>\n.wrapper {\n\tdisplay: flex;\n\tgap: 10px;\n}\n</style>\n```\n</docs>\n"],"names":["_sfc_main","ref","computed","t","nextTick"],"mappings":";;;;;;;;;AAoBA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;AChBA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;AChBA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC8EA,WAAa;AAAA,MACZ;AAAA,IAAA,CACA;AAED,UAAM,cAAcC,IAAAA,IAA4B,IAAI;AACpD,UAAM,eAAeA,IAAAA,IAA6B,IAAI;AAKtD,UAAM,eAAeC,IAAAA,SAAS,MAAM;AACnC,UAAI,MAAM,SAAS;AAClB,eAAOC,MAAAA,EAAE,aAAa;AAAA,MACvB,WAAW,MAAM,OAAO;AACvB,eAAO,MAAM;AAAA,MACd,WAAW,MAAM,eAAe;AAC/B,eAAOA,MAAAA,EAAE,aAAa;AAAA,MACvB;AACA,aAAO,MAAM,WAAWA,MAAAA,EAAE,YAAY,IAAIA,MAAAA,EAAE,WAAW;AAAA,IACxD,CAAC;AAMD,UAAM,mBAAmBD,IAAAA,SAAS,MAAM;AACvC,cAAQ,MAAM,aAAa,MAAM,kBAAkB,qBAAqB,iBAAiB;AAAA,IAC1F,CAAC;AAOD,aAAS,iBAAiB,eAAwB;AAEjD,YAAA;AAGA,UAAI,iBAAiB,OAAO;AAC3B,qBAAa,MAAO,kBAAkB;AAAA,MACvC;AAGAE,UAAAA,SAAS,MAAM,aAAa,MAAO,MAAA,CAAO;AAAA,IAC3C;AAKA,aAAS,SAAS;AACjB,YAAM,QAAQ,aAAa,OAAO,QAAQ,MAAM,KAAK,aAAa,MAAM,KAAK,IAAI,CAAA;AACjF,WAAK,QAAQ,KAAK;AAAA,IACnB;AAKA,aAAS,QAAQ;AAChB,kBAAY,MAAO,MAAA;AAAA,IACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"NcFilePicker-Cdc1TsXy.cjs","sources":["../../node_modules/vue-material-design-icons/FolderUpload.vue","../../node_modules/vue-material-design-icons/Plus.vue","../../node_modules/vue-material-design-icons/Upload.vue","../../src/components/NcFilePicker/NcFilePicker.vue"],"sourcesContent":["<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon folder-upload-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M20,6A2,2 0 0,1 22,8V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H10L12,6H20M10.75,13H14V17H16V13H19.25L15,8.75\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FolderUploadIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon plus-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"PlusIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon upload-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M9,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"UploadIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, ref } from 'vue'\nimport IconFolderUpload from 'vue-material-design-icons/FolderUpload.vue'\nimport IconPlus from 'vue-material-design-icons/Plus.vue'\nimport IconUpload from 'vue-material-design-icons/Upload.vue'\nimport NcActionButton from '../NcActionButton/NcActionButton.vue'\nimport NcActionCaption from '../NcActionCaption/NcActionCaption.vue'\nimport NcActions from '../NcActions/NcActions.vue'\nimport NcIconSvgWrapper from '../NcIconSvgWrapper/NcIconSvgWrapper.vue'\nimport NcLoadingIcon from '../NcLoadingIcon/NcLoadingIcon.vue'\nimport { t } from '../../l10n.js'\n\nexport interface FilePickerItem {\n\t/**\n\t * SVG icon (as string) for the action\n\t */\n\ticonSvg: string\n\t/**\n\t * Label of the action\n\t */\n\tlabel: string\n\t/**\n\t * Callback when the action is clicked\n\t */\n\tonClick: () => void\n}\n\nexport interface FilePickerItemGroup {\n\t/**\n\t * Caption for the action group\n\t */\n\tcaption: string\n\t/**\n\t * Actions within this group\n\t */\n\tactions: FilePickerItem[]\n}\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * File types to accept\n\t */\n\taccept?: string[]\n\n\t/**\n\t * Optional menu caption to be shown above the actions\n\t */\n\tactionCaption?: string\n\n\t/**\n\t * Additional actions to be shown within the picker menu\n\t */\n\tactions?: FilePickerItem[] | FilePickerItemGroup[]\n\n\t/**\n\t * Allow picking a directory\n\t */\n\tdirectory?: boolean\n\n\t/**\n\t * Disable picking files and only allow picking a directory\n\t */\n\tdirectoryOnly?: boolean\n\n\t/**\n\t * Disabled state of the picker\n\t */\n\tdisabled?: boolean\n\n\t/**\n\t * If set then the label is only used for accessibility but not shown visually\n\t */\n\ticonOnly?: boolean\n\n\t/**\n\t * Label of the picker\n\t *\n\t * @default 'Pick file' or 'Pick files' depending on `multiple`\n\t */\n\tlabel?: string\n\n\t/**\n\t * If set then the picker will be set into a loading state.\n\t * This means the picker is disabled, a loading spinner is shown and the label is adjusted.\n\t */\n\tloading?: boolean\n\n\t/**\n\t * Can the user pick multiple files.\n\t * This is ignored when picking folder (by browser limitations).\n\t */\n\tmultiple?: boolean\n\n\t/**\n\t * The variant of the button\n\t */\n\tvariant?: 'primary' | 'secondary' | 'tertiary'\n}>(), {\n\tactions: () => [],\n\taccept: undefined,\n\tactionCaption: '',\n\tlabel: undefined,\n\tvariant: 'primary',\n})\n\nconst emit = defineEmits<{\n\t(event: 'pick', files: File[]): void\n}>()\n\ndefineExpose({\n\treset,\n})\n\nconst formElement = ref<HTMLFormElement | null>(null)\nconst inputElement = ref<HTMLInputElement | null>(null)\n\n/**\n * The current label to be used as menu name and accessible name of the picker.\n */\nconst currentLabel = computed(() => {\n\tif (props.loading) {\n\t\treturn t('Uploading …')\n\t} else if (props.label) {\n\t\treturn props.label\n\t} else if (props.directoryOnly) {\n\t\treturn t('Pick folder')\n\t}\n\treturn props.multiple ? t('Pick files') : t('Pick file')\n})\n\n/**\n * Check whether the current browser supports uploading directories\n * Hint: This does not check if the current connection supports this, as some browsers require a secure context!\n */\nconst canUploadFolders = computed(() => {\n\treturn (props.directory || props.directoryOnly) && 'webkitdirectory' in HTMLInputElement.prototype\n})\n\n/**\n * Trigger file picker\n *\n * @param uploadFolders - Whether to upload folders or files\n */\nfunction triggerPickFiles(uploadFolders: boolean) {\n\t// Without reset selecting the same file doesn't trigger the change event\n\treset()\n\n\t// Only if the browser supports picking folders and the user selected \"pick folder\" we set the file input to directory picking.\n\tif (canUploadFolders.value) {\n\t\tinputElement.value!.webkitdirectory = uploadFolders\n\t}\n\n\t// Wait for the reset and the `webkitdirectory` to be dispatched in DOM\n\tnextTick(() => inputElement.value!.click())\n}\n\n/**\n * Handle picking some local files\n */\nfunction onPick() {\n\tconst files = inputElement.value?.files ? Array.from(inputElement.value.files) : []\n\temit('pick', files)\n}\n\n/**\n * Reset the picker state of the currently selected files.\n */\nfunction reset() {\n\tformElement.value!.reset()\n}\n</script>\n\n<template>\n\t<form\n\t\tref=\"formElement\"\n\t\t:class=\"$style.filePicker\">\n\t\t<NcActions\n\t\t\t:aria-label=\"currentLabel\"\n\t\t\t:disabled=\"disabled || loading\"\n\t\t\t:menu-name=\"iconOnly ? undefined : currentLabel\"\n\t\t\t:force-name=\"!iconOnly\"\n\t\t\t:variant=\"variant\">\n\t\t\t<template #icon>\n\t\t\t\t<!-- @slot Optional custom icon for the picker menu -->\n\t\t\t\t<slot v-if=\"!loading\" name=\"icon\">\n\t\t\t\t\t<IconPlus :size=\"20\" />\n\t\t\t\t</slot>\n\t\t\t\t<NcLoadingIcon v-else />\n\t\t\t</template>\n\n\t\t\t<NcActionCaption v-if=\"actionCaption\" :name=\"actionCaption\" />\n\n\t\t\t<NcActionButton\n\t\t\t\tv-if=\"!directoryOnly\"\n\t\t\t\tclose-after-click\n\t\t\t\t@click=\"triggerPickFiles(false)\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconUpload :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ (canUploadFolders || !!$slots.actions) ? (multiple ? t('Upload files') : t('Upload file')) : currentLabel }}\n\t\t\t\t<!-- If this is not the only action in the NcActions this is a menu entry and we need a generic name - otherwise this will be a single button where we need to apply the label -->\n\t\t\t</NcActionButton>\n\n\t\t\t<NcActionButton\n\t\t\t\tv-if=\"canUploadFolders\"\n\t\t\t\tclose-after-click\n\t\t\t\t@click=\"triggerPickFiles(true)\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconFolderUpload style=\"color: var(--color-primary-element)\" :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ (!directoryOnly || !!$slots.actions) ? t('Upload folder') : currentLabel }}\n\t\t\t\t<!-- If this is not the only action in the NcActions this is a menu entry and we need a generic name - otherwise this will be a single button where we need to apply the label -->\n\t\t\t</NcActionButton>\n\n\t\t\t<template v-for=\"group of actions\">\n\t\t\t\t<NcActionCaption\n\t\t\t\t\tv-if=\"group.caption\"\n\t\t\t\t\t:key=\"group.caption\"\n\t\t\t\t\t:name=\"group.caption\" />\n\n\t\t\t\t<NcActionButton\n\t\t\t\t\tv-for=\"action of group.actions ?? [group]\"\n\t\t\t\t\t:key=\"action.label\"\n\t\t\t\t\tclose-after-click\n\t\t\t\t\t@click=\"action.onClick\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper :svg=\"action.iconSvg\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ action.label }}\n\t\t\t\t</NcActionButton>\n\t\t\t</template>\n\t\t</NcActions>\n\n\t\t<!-- Hidden files picker input - also hidden for accessibility as otherwise such users also loose the ability to pick files -->\n\t\t<input\n\t\t\tref=\"inputElement\"\n\t\t\t:accept=\"accept?.join(', ')\"\n\t\t\taria-hidden=\"true\"\n\t\t\tclass=\"hidden-visually\"\n\t\t\t:multiple=\"multiple\"\n\t\t\ttype=\"file\"\n\t\t\t@change=\"onPick\">\n\n\t\t<!-- @slot Optional content to be shown in the picker. This can be used e.g. for a progress bar or similar. -->\n\t\t<slot />\n\t</form>\n</template>\n\n<style module>\n.filePicker {\n\tdisplay: inline-flex;\n\talign-items: center;\n\theight: var(--default-clickable-area);\n}\n</style>\n\n<docs>\nThis component allows to pick local files (or directories) which can be used to upload them to Nextcloud or directly process them in the browser.\n\n### Exposed methods\n\n- `function reset(): void`\n This method allows to reset the internal state of the file picker to clear the current selection\n\n### Example\n\n```vue\n<template>\n\t<div>\n\t\t<div class=\"wrapper\">\n\t\t\t<NcFilePicker ref=\"picker\"\n\t\t\t\tdirectory\n\t\t\t\t@pick=\"selectedFiles = $event\" />\n\n\t\t\t<NcButton variant=\"tertiary\"\n\t\t\t\t@click=\"clearPicker\">\n\t\t\t\tClear\n\t\t\t</NcButton>\n\t\t</div>\n\n\t\t<h3>Selected files:</h3>\n\t\t<ul>\n\t\t\t<li v-for=\"file in selectedFiles\" :key=\"file.name\">\n\t\t\t\t{{ file.webkitRelativePath || file.name }}\n\t\t\t</li>\n\t\t</ul>\n\t</div>\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tselectedFiles: [],\n\t\t\t}\n\t\t},\n\t\tmethods: {\n\t\t\t/**\n\t\t\t * This will clear the selected files from the picker.\n\t\t\t */\n\t\t\tclearPicker() {\n\t\t\t\tthis.$refs.picker.reset()\n\t\t\t},\n\t\t},\n\t}\n</script>\n<style scoped>\n.wrapper {\n\tdisplay: flex;\n\tgap: 10px;\n}\n</style>\n```\n</docs>\n"],"names":["_sfc_main","ref","computed","t","nextTick"],"mappings":";;;;;;;;;AAoBA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;AChBA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;AChBA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC8EA,WAAa;AAAA,MACZ;AAAA,IAAA,CACA;AAED,UAAM,cAAcC,IAAAA,IAA4B,IAAI;AACpD,UAAM,eAAeA,IAAAA,IAA6B,IAAI;AAKtD,UAAM,eAAeC,IAAAA,SAAS,MAAM;AACnC,UAAI,MAAM,SAAS;AAClB,eAAOC,MAAAA,EAAE,aAAa;AAAA,MACvB,WAAW,MAAM,OAAO;AACvB,eAAO,MAAM;AAAA,MACd,WAAW,MAAM,eAAe;AAC/B,eAAOA,MAAAA,EAAE,aAAa;AAAA,MACvB;AACA,aAAO,MAAM,WAAWA,MAAAA,EAAE,YAAY,IAAIA,MAAAA,EAAE,WAAW;AAAA,IACxD,CAAC;AAMD,UAAM,mBAAmBD,IAAAA,SAAS,MAAM;AACvC,cAAQ,MAAM,aAAa,MAAM,kBAAkB,qBAAqB,iBAAiB;AAAA,IAC1F,CAAC;AAOD,aAAS,iBAAiB,eAAwB;AAEjD,YAAA;AAGA,UAAI,iBAAiB,OAAO;AAC3B,qBAAa,MAAO,kBAAkB;AAAA,MACvC;AAGAE,UAAAA,SAAS,MAAM,aAAa,MAAO,MAAA,CAAO;AAAA,IAC3C;AAKA,aAAS,SAAS;AACjB,YAAM,QAAQ,aAAa,OAAO,QAAQ,MAAM,KAAK,aAAa,MAAM,KAAK,IAAI,CAAA;AACjF,WAAK,QAAQ,KAAK;AAAA,IACnB;AAKA,aAAS,QAAQ;AAChB,kBAAY,MAAO,MAAA;AAAA,IACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0,1,2]}
@@ -1,12 +1,12 @@
1
- import '../assets/NcFilePicker-BokX813z.css';
1
+ import '../assets/NcFilePicker-BjFpDu4R.css';
2
2
  import { defineComponent, ref, computed, nextTick } from "vue";
3
3
  import { n as normalizeComponent } from "./_plugin-vue2_normalizer-DU4iP6Vu.mjs";
4
- import { N as NcActionButton } from "./NcActionButton-K4jUGMlW.mjs";
4
+ import { N as NcActionButton } from "./NcActionButton-D7uypboC.mjs";
5
5
  import NcActionCaption from "../Components/NcActionCaption.mjs";
6
- import { N as NcActions } from "./NcActions-DbPerbGE.mjs";
6
+ import { N as NcActions } from "./NcActions-CX1MSord.mjs";
7
7
  import { N as NcIconSvgWrapper } from "./NcIconSvgWrapper-Bui9PhAS.mjs";
8
8
  import NcLoadingIcon from "../Components/NcLoadingIcon.mjs";
9
- import { r as register, L as t40, a as t } from "./_l10n-DVz9Qdzk.mjs";
9
+ import { r as register, M as t41, a as t } from "./_l10n-CAnZaLWU.mjs";
10
10
  const _sfc_main$3 = {
11
11
  name: "FolderUploadIcon",
12
12
  emits: ["click"],
@@ -106,7 +106,7 @@ var __component__$1 = /* @__PURE__ */ normalizeComponent(
106
106
  null
107
107
  );
108
108
  const IconUpload = __component__$1.exports;
109
- register(t40);
109
+ register(t41);
110
110
  const _sfc_main = /* @__PURE__ */ defineComponent({
111
111
  __name: "NcFilePicker",
112
112
  props: {
@@ -160,7 +160,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
160
160
  return { __sfc: true, props, emit, formElement, inputElement, currentLabel, canUploadFolders, triggerPickFiles, onPick, reset, IconFolderUpload, IconPlus, IconUpload, NcActionButton, NcActionCaption, NcActions, NcIconSvgWrapper, NcLoadingIcon, t };
161
161
  }
162
162
  });
163
- const filePicker = "_filePicker_KfdBJ";
163
+ const filePicker = "_filePicker_2NMRS";
164
164
  const style0 = {
165
165
  filePicker
166
166
  };
@@ -207,4 +207,4 @@ const NcFilePicker = __component__.exports;
207
207
  export {
208
208
  NcFilePicker as N
209
209
  };
210
- //# sourceMappingURL=NcFilePicker-Ck9o-ia3.mjs.map
210
+ //# sourceMappingURL=NcFilePicker-Dg6UqMN1.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NcFilePicker-Ck9o-ia3.mjs","sources":["../../node_modules/vue-material-design-icons/FolderUpload.vue","../../node_modules/vue-material-design-icons/Plus.vue","../../node_modules/vue-material-design-icons/Upload.vue","../../src/components/NcFilePicker/NcFilePicker.vue"],"sourcesContent":["<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon folder-upload-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M20,6A2,2 0 0,1 22,8V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H10L12,6H20M10.75,13H14V17H16V13H19.25L15,8.75\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FolderUploadIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon plus-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"PlusIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon upload-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M9,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"UploadIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, ref } from 'vue'\nimport IconFolderUpload from 'vue-material-design-icons/FolderUpload.vue'\nimport IconPlus from 'vue-material-design-icons/Plus.vue'\nimport IconUpload from 'vue-material-design-icons/Upload.vue'\nimport NcActionButton from '../NcActionButton/NcActionButton.vue'\nimport NcActionCaption from '../NcActionCaption/NcActionCaption.vue'\nimport NcActions from '../NcActions/NcActions.vue'\nimport NcIconSvgWrapper from '../NcIconSvgWrapper/NcIconSvgWrapper.vue'\nimport NcLoadingIcon from '../NcLoadingIcon/NcLoadingIcon.vue'\nimport { t } from '../../l10n.js'\n\nexport interface FilePickerItem {\n\t/**\n\t * SVG icon (as string) for the action\n\t */\n\ticonSvg: string\n\t/**\n\t * Label of the action\n\t */\n\tlabel: string\n\t/**\n\t * Callback when the action is clicked\n\t */\n\tonClick: () => void\n}\n\nexport interface FilePickerItemGroup {\n\t/**\n\t * Caption for the action group\n\t */\n\tcaption: string\n\t/**\n\t * Actions within this group\n\t */\n\tactions: FilePickerItem[]\n}\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * File types to accept\n\t */\n\taccept?: string[]\n\n\t/**\n\t * Optional menu caption to be shown above the actions\n\t */\n\tactionCaption?: string\n\n\t/**\n\t * Additional actions to be shown within the picker menu\n\t */\n\tactions?: FilePickerItem[] | FilePickerItemGroup[]\n\n\t/**\n\t * Allow picking a directory\n\t */\n\tdirectory?: boolean\n\n\t/**\n\t * Disable picking files and only allow picking a directory\n\t */\n\tdirectoryOnly?: boolean\n\n\t/**\n\t * Disabled state of the picker\n\t */\n\tdisabled?: boolean\n\n\t/**\n\t * If set then the label is only used for accessibility but not shown visually\n\t */\n\ticonOnly?: boolean\n\n\t/**\n\t * Label of the picker\n\t *\n\t * @default 'Pick file' or 'Pick files' depending on `multiple`\n\t */\n\tlabel?: string\n\n\t/**\n\t * If set then the picker will be set into a loading state.\n\t * This means the picker is disabled, a loading spinner is shown and the label is adjusted.\n\t */\n\tloading?: boolean\n\n\t/**\n\t * Can the user pick multiple files.\n\t * This is ignored when picking folder (by browser limitations).\n\t */\n\tmultiple?: boolean\n\n\t/**\n\t * The variant of the button\n\t */\n\tvariant?: 'primary' | 'secondary' | 'tertiary'\n}>(), {\n\tactions: () => [],\n\taccept: undefined,\n\tactionCaption: '',\n\tlabel: undefined,\n\tvariant: 'primary',\n})\n\nconst emit = defineEmits<{\n\t(event: 'pick', files: File[]): void\n}>()\n\ndefineExpose({\n\treset,\n})\n\nconst formElement = ref<HTMLFormElement | null>(null)\nconst inputElement = ref<HTMLInputElement | null>(null)\n\n/**\n * The current label to be used as menu name and accessible name of the picker.\n */\nconst currentLabel = computed(() => {\n\tif (props.loading) {\n\t\treturn t('Uploading …')\n\t} else if (props.label) {\n\t\treturn props.label\n\t} else if (props.directoryOnly) {\n\t\treturn t('Pick folder')\n\t}\n\treturn props.multiple ? t('Pick files') : t('Pick file')\n})\n\n/**\n * Check whether the current browser supports uploading directories\n * Hint: This does not check if the current connection supports this, as some browsers require a secure context!\n */\nconst canUploadFolders = computed(() => {\n\treturn (props.directory || props.directoryOnly) && 'webkitdirectory' in HTMLInputElement.prototype\n})\n\n/**\n * Trigger file picker\n *\n * @param uploadFolders - Whether to upload folders or files\n */\nfunction triggerPickFiles(uploadFolders: boolean) {\n\t// Without reset selecting the same file doesn't trigger the change event\n\treset()\n\n\t// Only if the browser supports picking folders and the user selected \"pick folder\" we set the file input to directory picking.\n\tif (canUploadFolders.value) {\n\t\tinputElement.value!.webkitdirectory = uploadFolders\n\t}\n\n\t// Wait for the reset and the `webkitdirectory` to be dispatched in DOM\n\tnextTick(() => inputElement.value!.click())\n}\n\n/**\n * Handle picking some local files\n */\nfunction onPick() {\n\tconst files = inputElement.value?.files ? Array.from(inputElement.value.files) : []\n\temit('pick', files)\n}\n\n/**\n * Reset the picker state of the currently selected files.\n */\nfunction reset() {\n\tformElement.value!.reset()\n}\n</script>\n\n<template>\n\t<form\n\t\tref=\"formElement\"\n\t\t:class=\"$style.filePicker\">\n\t\t<NcActions\n\t\t\t:aria-label=\"currentLabel\"\n\t\t\t:disabled=\"disabled || loading\"\n\t\t\t:menu-name=\"iconOnly ? undefined : currentLabel\"\n\t\t\t:force-name=\"!iconOnly\"\n\t\t\t:variant=\"variant\">\n\t\t\t<template #icon>\n\t\t\t\t<!-- @slot Optional custom icon for the picker menu -->\n\t\t\t\t<slot v-if=\"!loading\" name=\"icon\">\n\t\t\t\t\t<IconPlus :size=\"20\" />\n\t\t\t\t</slot>\n\t\t\t\t<NcLoadingIcon v-else />\n\t\t\t</template>\n\n\t\t\t<NcActionCaption v-if=\"actionCaption\" :name=\"actionCaption\" />\n\n\t\t\t<NcActionButton\n\t\t\t\tv-if=\"!directoryOnly\"\n\t\t\t\tclose-after-click\n\t\t\t\t@click=\"triggerPickFiles(false)\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconUpload :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ (canUploadFolders || !!$slots.actions) ? (multiple ? t('Upload files') : t('Upload file')) : currentLabel }}\n\t\t\t\t<!-- If this is not the only action in the NcActions this is a menu entry and we need a generic name - otherwise this will be a single button where we need to apply the label -->\n\t\t\t</NcActionButton>\n\n\t\t\t<NcActionButton\n\t\t\t\tv-if=\"canUploadFolders\"\n\t\t\t\tclose-after-click\n\t\t\t\t@click=\"triggerPickFiles(true)\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconFolderUpload style=\"color: var(--color-primary-element)\" :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ (!directoryOnly || !!$slots.actions) ? t('Upload folder') : currentLabel }}\n\t\t\t\t<!-- If this is not the only action in the NcActions this is a menu entry and we need a generic name - otherwise this will be a single button where we need to apply the label -->\n\t\t\t</NcActionButton>\n\n\t\t\t<template v-for=\"group of actions\">\n\t\t\t\t<NcActionCaption\n\t\t\t\t\tv-if=\"group.caption\"\n\t\t\t\t\t:key=\"group.caption\"\n\t\t\t\t\t:name=\"group.caption\" />\n\n\t\t\t\t<NcActionButton\n\t\t\t\t\tv-for=\"action of group.actions ?? [group]\"\n\t\t\t\t\t:key=\"action.label\"\n\t\t\t\t\tclose-after-click\n\t\t\t\t\t@click=\"action.onClick\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper :svg=\"action.iconSvg\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ action.label }}\n\t\t\t\t</NcActionButton>\n\t\t\t</template>\n\t\t</NcActions>\n\n\t\t<!-- Hidden files picker input - also hidden for accessibility as otherwise such users also loose the ability to pick files -->\n\t\t<input\n\t\t\tref=\"inputElement\"\n\t\t\t:accept=\"accept?.join(', ')\"\n\t\t\taria-hidden=\"true\"\n\t\t\tclass=\"hidden-visually\"\n\t\t\t:multiple=\"multiple\"\n\t\t\ttype=\"file\"\n\t\t\t@change=\"onPick\">\n\n\t\t<!-- @slot Optional content to be shown in the picker. This can be used e.g. for a progress bar or similar. -->\n\t\t<slot />\n\t</form>\n</template>\n\n<style module>\n.filePicker {\n\tdisplay: inline-flex;\n\talign-items: center;\n\theight: var(--default-clickable-area);\n}\n</style>\n\n<docs>\nThis component allows to pick local files (or directories) which can be used to upload them to Nextcloud or directly process them in the browser.\n\n### Exposed methods\n\n- `function reset(): void`\n This method allows to reset the internal state of the file picker to clear the current selection\n\n### Example\n\n```vue\n<template>\n\t<div>\n\t\t<div class=\"wrapper\">\n\t\t\t<NcFilePicker ref=\"picker\"\n\t\t\t\tdirectory\n\t\t\t\t@pick=\"selectedFiles = $event\" />\n\n\t\t\t<NcButton variant=\"tertiary\"\n\t\t\t\t@click=\"clearPicker\">\n\t\t\t\tClear\n\t\t\t</NcButton>\n\t\t</div>\n\n\t\t<h3>Selected files:</h3>\n\t\t<ul>\n\t\t\t<li v-for=\"file in selectedFiles\" :key=\"file.name\">\n\t\t\t\t{{ file.webkitRelativePath || file.name }}\n\t\t\t</li>\n\t\t</ul>\n\t</div>\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tselectedFiles: [],\n\t\t\t}\n\t\t},\n\t\tmethods: {\n\t\t\t/**\n\t\t\t * This will clear the selected files from the picker.\n\t\t\t */\n\t\t\tclearPicker() {\n\t\t\t\tthis.$refs.picker.reset()\n\t\t\t},\n\t\t},\n\t}\n</script>\n<style scoped>\n.wrapper {\n\tdisplay: flex;\n\tgap: 10px;\n}\n</style>\n```\n</docs>\n"],"names":["_sfc_main"],"mappings":";;;;;;;;AAoBA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;AChBA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;AChBA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC8EA,WAAa;AAAA,MACZ;AAAA,IAAA,CACA;AAED,UAAM,cAAc,IAA4B,IAAI;AACpD,UAAM,eAAe,IAA6B,IAAI;AAKtD,UAAM,eAAe,SAAS,MAAM;AACnC,UAAI,MAAM,SAAS;AAClB,eAAO,EAAE,aAAa;AAAA,MACvB,WAAW,MAAM,OAAO;AACvB,eAAO,MAAM;AAAA,MACd,WAAW,MAAM,eAAe;AAC/B,eAAO,EAAE,aAAa;AAAA,MACvB;AACA,aAAO,MAAM,WAAW,EAAE,YAAY,IAAI,EAAE,WAAW;AAAA,IACxD,CAAC;AAMD,UAAM,mBAAmB,SAAS,MAAM;AACvC,cAAQ,MAAM,aAAa,MAAM,kBAAkB,qBAAqB,iBAAiB;AAAA,IAC1F,CAAC;AAOD,aAAS,iBAAiB,eAAwB;AAEjD,YAAA;AAGA,UAAI,iBAAiB,OAAO;AAC3B,qBAAa,MAAO,kBAAkB;AAAA,MACvC;AAGA,eAAS,MAAM,aAAa,MAAO,MAAA,CAAO;AAAA,IAC3C;AAKA,aAAS,SAAS;AACjB,YAAM,QAAQ,aAAa,OAAO,QAAQ,MAAM,KAAK,aAAa,MAAM,KAAK,IAAI,CAAA;AACjF,WAAK,QAAQ,KAAK;AAAA,IACnB;AAKA,aAAS,QAAQ;AAChB,kBAAY,MAAO,MAAA;AAAA,IACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"NcFilePicker-Dg6UqMN1.mjs","sources":["../../node_modules/vue-material-design-icons/FolderUpload.vue","../../node_modules/vue-material-design-icons/Plus.vue","../../node_modules/vue-material-design-icons/Upload.vue","../../src/components/NcFilePicker/NcFilePicker.vue"],"sourcesContent":["<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon folder-upload-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M20,6A2,2 0 0,1 22,8V18A2,2 0 0,1 20,20H4A2,2 0 0,1 2,18V6A2,2 0 0,1 4,4H10L12,6H20M10.75,13H14V17H16V13H19.25L15,8.75\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FolderUploadIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon plus-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"PlusIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon upload-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M9,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"UploadIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport { computed, nextTick, ref } from 'vue'\nimport IconFolderUpload from 'vue-material-design-icons/FolderUpload.vue'\nimport IconPlus from 'vue-material-design-icons/Plus.vue'\nimport IconUpload from 'vue-material-design-icons/Upload.vue'\nimport NcActionButton from '../NcActionButton/NcActionButton.vue'\nimport NcActionCaption from '../NcActionCaption/NcActionCaption.vue'\nimport NcActions from '../NcActions/NcActions.vue'\nimport NcIconSvgWrapper from '../NcIconSvgWrapper/NcIconSvgWrapper.vue'\nimport NcLoadingIcon from '../NcLoadingIcon/NcLoadingIcon.vue'\nimport { t } from '../../l10n.js'\n\nexport interface FilePickerItem {\n\t/**\n\t * SVG icon (as string) for the action\n\t */\n\ticonSvg: string\n\t/**\n\t * Label of the action\n\t */\n\tlabel: string\n\t/**\n\t * Callback when the action is clicked\n\t */\n\tonClick: () => void\n}\n\nexport interface FilePickerItemGroup {\n\t/**\n\t * Caption for the action group\n\t */\n\tcaption: string\n\t/**\n\t * Actions within this group\n\t */\n\tactions: FilePickerItem[]\n}\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * File types to accept\n\t */\n\taccept?: string[]\n\n\t/**\n\t * Optional menu caption to be shown above the actions\n\t */\n\tactionCaption?: string\n\n\t/**\n\t * Additional actions to be shown within the picker menu\n\t */\n\tactions?: FilePickerItem[] | FilePickerItemGroup[]\n\n\t/**\n\t * Allow picking a directory\n\t */\n\tdirectory?: boolean\n\n\t/**\n\t * Disable picking files and only allow picking a directory\n\t */\n\tdirectoryOnly?: boolean\n\n\t/**\n\t * Disabled state of the picker\n\t */\n\tdisabled?: boolean\n\n\t/**\n\t * If set then the label is only used for accessibility but not shown visually\n\t */\n\ticonOnly?: boolean\n\n\t/**\n\t * Label of the picker\n\t *\n\t * @default 'Pick file' or 'Pick files' depending on `multiple`\n\t */\n\tlabel?: string\n\n\t/**\n\t * If set then the picker will be set into a loading state.\n\t * This means the picker is disabled, a loading spinner is shown and the label is adjusted.\n\t */\n\tloading?: boolean\n\n\t/**\n\t * Can the user pick multiple files.\n\t * This is ignored when picking folder (by browser limitations).\n\t */\n\tmultiple?: boolean\n\n\t/**\n\t * The variant of the button\n\t */\n\tvariant?: 'primary' | 'secondary' | 'tertiary'\n}>(), {\n\tactions: () => [],\n\taccept: undefined,\n\tactionCaption: '',\n\tlabel: undefined,\n\tvariant: 'primary',\n})\n\nconst emit = defineEmits<{\n\t(event: 'pick', files: File[]): void\n}>()\n\ndefineExpose({\n\treset,\n})\n\nconst formElement = ref<HTMLFormElement | null>(null)\nconst inputElement = ref<HTMLInputElement | null>(null)\n\n/**\n * The current label to be used as menu name and accessible name of the picker.\n */\nconst currentLabel = computed(() => {\n\tif (props.loading) {\n\t\treturn t('Uploading …')\n\t} else if (props.label) {\n\t\treturn props.label\n\t} else if (props.directoryOnly) {\n\t\treturn t('Pick folder')\n\t}\n\treturn props.multiple ? t('Pick files') : t('Pick file')\n})\n\n/**\n * Check whether the current browser supports uploading directories\n * Hint: This does not check if the current connection supports this, as some browsers require a secure context!\n */\nconst canUploadFolders = computed(() => {\n\treturn (props.directory || props.directoryOnly) && 'webkitdirectory' in HTMLInputElement.prototype\n})\n\n/**\n * Trigger file picker\n *\n * @param uploadFolders - Whether to upload folders or files\n */\nfunction triggerPickFiles(uploadFolders: boolean) {\n\t// Without reset selecting the same file doesn't trigger the change event\n\treset()\n\n\t// Only if the browser supports picking folders and the user selected \"pick folder\" we set the file input to directory picking.\n\tif (canUploadFolders.value) {\n\t\tinputElement.value!.webkitdirectory = uploadFolders\n\t}\n\n\t// Wait for the reset and the `webkitdirectory` to be dispatched in DOM\n\tnextTick(() => inputElement.value!.click())\n}\n\n/**\n * Handle picking some local files\n */\nfunction onPick() {\n\tconst files = inputElement.value?.files ? Array.from(inputElement.value.files) : []\n\temit('pick', files)\n}\n\n/**\n * Reset the picker state of the currently selected files.\n */\nfunction reset() {\n\tformElement.value!.reset()\n}\n</script>\n\n<template>\n\t<form\n\t\tref=\"formElement\"\n\t\t:class=\"$style.filePicker\">\n\t\t<NcActions\n\t\t\t:aria-label=\"currentLabel\"\n\t\t\t:disabled=\"disabled || loading\"\n\t\t\t:menu-name=\"iconOnly ? undefined : currentLabel\"\n\t\t\t:force-name=\"!iconOnly\"\n\t\t\t:variant=\"variant\">\n\t\t\t<template #icon>\n\t\t\t\t<!-- @slot Optional custom icon for the picker menu -->\n\t\t\t\t<slot v-if=\"!loading\" name=\"icon\">\n\t\t\t\t\t<IconPlus :size=\"20\" />\n\t\t\t\t</slot>\n\t\t\t\t<NcLoadingIcon v-else />\n\t\t\t</template>\n\n\t\t\t<NcActionCaption v-if=\"actionCaption\" :name=\"actionCaption\" />\n\n\t\t\t<NcActionButton\n\t\t\t\tv-if=\"!directoryOnly\"\n\t\t\t\tclose-after-click\n\t\t\t\t@click=\"triggerPickFiles(false)\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconUpload :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ (canUploadFolders || !!$slots.actions) ? (multiple ? t('Upload files') : t('Upload file')) : currentLabel }}\n\t\t\t\t<!-- If this is not the only action in the NcActions this is a menu entry and we need a generic name - otherwise this will be a single button where we need to apply the label -->\n\t\t\t</NcActionButton>\n\n\t\t\t<NcActionButton\n\t\t\t\tv-if=\"canUploadFolders\"\n\t\t\t\tclose-after-click\n\t\t\t\t@click=\"triggerPickFiles(true)\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconFolderUpload style=\"color: var(--color-primary-element)\" :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ (!directoryOnly || !!$slots.actions) ? t('Upload folder') : currentLabel }}\n\t\t\t\t<!-- If this is not the only action in the NcActions this is a menu entry and we need a generic name - otherwise this will be a single button where we need to apply the label -->\n\t\t\t</NcActionButton>\n\n\t\t\t<template v-for=\"group of actions\">\n\t\t\t\t<NcActionCaption\n\t\t\t\t\tv-if=\"group.caption\"\n\t\t\t\t\t:key=\"group.caption\"\n\t\t\t\t\t:name=\"group.caption\" />\n\n\t\t\t\t<NcActionButton\n\t\t\t\t\tv-for=\"action of group.actions ?? [group]\"\n\t\t\t\t\t:key=\"action.label\"\n\t\t\t\t\tclose-after-click\n\t\t\t\t\t@click=\"action.onClick\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper :svg=\"action.iconSvg\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ action.label }}\n\t\t\t\t</NcActionButton>\n\t\t\t</template>\n\t\t</NcActions>\n\n\t\t<!-- Hidden files picker input - also hidden for accessibility as otherwise such users also loose the ability to pick files -->\n\t\t<input\n\t\t\tref=\"inputElement\"\n\t\t\t:accept=\"accept?.join(', ')\"\n\t\t\taria-hidden=\"true\"\n\t\t\tclass=\"hidden-visually\"\n\t\t\t:multiple=\"multiple\"\n\t\t\ttype=\"file\"\n\t\t\t@change=\"onPick\">\n\n\t\t<!-- @slot Optional content to be shown in the picker. This can be used e.g. for a progress bar or similar. -->\n\t\t<slot />\n\t</form>\n</template>\n\n<style module>\n.filePicker {\n\tdisplay: inline-flex;\n\talign-items: center;\n\theight: var(--default-clickable-area);\n}\n</style>\n\n<docs>\nThis component allows to pick local files (or directories) which can be used to upload them to Nextcloud or directly process them in the browser.\n\n### Exposed methods\n\n- `function reset(): void`\n This method allows to reset the internal state of the file picker to clear the current selection\n\n### Example\n\n```vue\n<template>\n\t<div>\n\t\t<div class=\"wrapper\">\n\t\t\t<NcFilePicker ref=\"picker\"\n\t\t\t\tdirectory\n\t\t\t\t@pick=\"selectedFiles = $event\" />\n\n\t\t\t<NcButton variant=\"tertiary\"\n\t\t\t\t@click=\"clearPicker\">\n\t\t\t\tClear\n\t\t\t</NcButton>\n\t\t</div>\n\n\t\t<h3>Selected files:</h3>\n\t\t<ul>\n\t\t\t<li v-for=\"file in selectedFiles\" :key=\"file.name\">\n\t\t\t\t{{ file.webkitRelativePath || file.name }}\n\t\t\t</li>\n\t\t</ul>\n\t</div>\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tselectedFiles: [],\n\t\t\t}\n\t\t},\n\t\tmethods: {\n\t\t\t/**\n\t\t\t * This will clear the selected files from the picker.\n\t\t\t */\n\t\t\tclearPicker() {\n\t\t\t\tthis.$refs.picker.reset()\n\t\t\t},\n\t\t},\n\t}\n</script>\n<style scoped>\n.wrapper {\n\tdisplay: flex;\n\tgap: 10px;\n}\n</style>\n```\n</docs>\n"],"names":["_sfc_main"],"mappings":";;;;;;;;AAoBA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;AChBA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;AChBA,MAAAA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA,CAAA,OAAA;AAAA,EACA,OAAA;AAAA,IACA,OAAA;AAAA,MACA,MAAA;AAAA,IACA;AAAA,IACA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,IACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC8EA,WAAa;AAAA,MACZ;AAAA,IAAA,CACA;AAED,UAAM,cAAc,IAA4B,IAAI;AACpD,UAAM,eAAe,IAA6B,IAAI;AAKtD,UAAM,eAAe,SAAS,MAAM;AACnC,UAAI,MAAM,SAAS;AAClB,eAAO,EAAE,aAAa;AAAA,MACvB,WAAW,MAAM,OAAO;AACvB,eAAO,MAAM;AAAA,MACd,WAAW,MAAM,eAAe;AAC/B,eAAO,EAAE,aAAa;AAAA,MACvB;AACA,aAAO,MAAM,WAAW,EAAE,YAAY,IAAI,EAAE,WAAW;AAAA,IACxD,CAAC;AAMD,UAAM,mBAAmB,SAAS,MAAM;AACvC,cAAQ,MAAM,aAAa,MAAM,kBAAkB,qBAAqB,iBAAiB;AAAA,IAC1F,CAAC;AAOD,aAAS,iBAAiB,eAAwB;AAEjD,YAAA;AAGA,UAAI,iBAAiB,OAAO;AAC3B,qBAAa,MAAO,kBAAkB;AAAA,MACvC;AAGA,eAAS,MAAM,aAAa,MAAO,MAAA,CAAO;AAAA,IAC3C;AAKA,aAAS,SAAS;AACjB,YAAM,QAAQ,aAAa,OAAO,QAAQ,MAAM,KAAK,aAAa,MAAM,KAAK,IAAI,CAAA;AACjF,WAAK,QAAQ,KAAK;AAAA,IACnB;AAKA,aAAS,QAAQ;AAChB,kBAAY,MAAO,MAAA;AAAA,IACpB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","x_google_ignoreList":[0,1,2]}
@@ -1,4 +1,4 @@
1
- import '../assets/NcFormBox-9NY7pxez.css';
1
+ import '../assets/NcFormBox-DoEpsPVV.css';
2
2
  import { defineComponent, useCssModule, provide } from "vue";
3
3
  import { N as NC_FORM_BOX_CONTEXT_KEY } from "./useNcFormBox-Djlh582y.mjs";
4
4
  import { n as normalizeComponent } from "./_plugin-vue2_normalizer-DU4iP6Vu.mjs";
@@ -16,12 +16,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
16
16
  return { __sfc: true, style };
17
17
  }
18
18
  });
19
- const ncFormBox = "_ncFormBox_OjStT";
20
- const ncFormBox_row = "_ncFormBox_row_Qlk-j";
21
- const ncFormBox__item = "_ncFormBox__item_ayS-H";
22
- const ncFormBox_col = "_ncFormBox_col_VaIn3";
19
+ const ncFormBox = "_ncFormBox_cvvSS";
20
+ const ncFormBox_row = "_ncFormBox_row_x-cjq";
21
+ const ncFormBox__item = "_ncFormBox__item_xO781";
22
+ const ncFormBox_col = "_ncFormBox_col_BEEgR";
23
23
  const style0 = {
24
- "material-design-icon": "_material-design-icon_zDurS",
24
+ "material-design-icon": "_material-design-icon_6xExP",
25
25
  ncFormBox,
26
26
  ncFormBox_row,
27
27
  ncFormBox__item,
@@ -53,4 +53,4 @@ const NcFormBox = __component__.exports;
53
53
  export {
54
54
  NcFormBox as N
55
55
  };
56
- //# sourceMappingURL=NcFormBox-DtoCXLMx.mjs.map
56
+ //# sourceMappingURL=NcFormBox-C38-8CH6.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NcFormBox-DtoCXLMx.mjs","sources":["../../src/components/NcFormBox/NcFormBox.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport { provide, useCssModule } from 'vue'\nimport { NC_FORM_BOX_CONTEXT_KEY } from './useNcFormBox.ts'\n\nwithDefaults(defineProps<{\n\t/**\n\t * Display the group as a row instead of a column\n\t */\n\trow?: boolean\n}>(), {\n\trow: false,\n})\n\nconst style = useCssModule()\n\nprovide(NC_FORM_BOX_CONTEXT_KEY, {\n\tisInFormBox: true,\n\tformBoxItemClass: style.ncFormBox__item,\n})\n</script>\n\n<template>\n\t<div :class=\"[$style.ncFormBox, row ? $style.ncFormBox_row : $style.ncFormBox_col]\">\n\t\t<!--\n\t\t\t@slot Grouped content\n\t\t\t\t@binding {string} itemClass - Class to add on a custom item to apply the border radius effect\n\t\t -->\n\t\t<slot :item-class=\"$style.ncFormBox__item\" />\n\t</div>\n</template>\n\n<style lang=\"scss\" module>\n.ncFormBox {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: calc(1 * var(--default-grid-baseline));\n\n\t&.ncFormBox_row {\n\t\tflex-direction: row;\n\t}\n}\n\n.ncFormBox__item {\n\tborder-radius: var(--border-radius-small) !important;\n}\n\n.ncFormBox_col {\n\tflex-direction: column;\n\n\t.ncFormBox__item {\n\t\t&:first-child {\n\t\t\tborder-start-start-radius: var(--border-radius-element) !important;\n\t\t\tborder-start-end-radius: var(--border-radius-element) !important;\n\t\t}\n\n\t\t&:last-child {\n\t\t\tborder-end-start-radius: var(--border-radius-element) !important;\n\t\t\tborder-end-end-radius: var(--border-radius-element) !important;\n\t\t}\n\t}\n}\n\n.ncFormBox_row {\n\tflex-direction: row;\n\n\t.ncFormBox__item {\n\t\tflex: 1 1;\n\n\t\t&:first-child {\n\t\t\tborder-start-start-radius: var(--border-radius-element) !important;\n\t\t\tborder-end-start-radius: var(--border-radius-element) !important;\n\t\t}\n\n\t\t&:last-child {\n\t\t\tborder-end-end-radius: var(--border-radius-element) !important;\n\t\t\tborder-start-end-radius: var(--border-radius-element) !important;\n\t\t}\n\t}\n}\n</style>\n\n<docs>\n### General\n\nA container of supported components with a small gap and rounded corners forming a solid group.\n\nCurrently supported components:\n- **`<NcFormBoxButton>`**: an action button/link with an optional description specially for the `<NcFormBox>` context\n- **`<NcFormBoxCopyButton>`**: a special case of a button to copy a text to the clipboard\n- **`<NcFormBoxSwitch>`**: a toggle switch replacing `<NcCheckboxRadioSwitch type=\"switch\">` in a box\n- **`<NcButton>`**: a general button in case there is a kind of primary action within a box\n\n**Note**: if the group has a semantic meaning, consider wrapping the `<NcFormBox>` into `<NcFormGroup>` component with a label.\n\n```vue\n<script>\nimport { mdiArrowRight, mdiFolderOpenOutline, mdiPlus } from '@mdi/js'\n\nexport default {\n\tsetup() {\n\t\treturn { mdiArrowRight, mdiFolderOpenOutline, mdiPlus }\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\ttext: 'Text',\n\t\t\tswitchValue: false,\n\t\t}\n\t},\n}\n</script>\n\n<template>\n\t<div style=\"display: flex; flex-direction: column; gap: calc(6 * var(--default-grid-baseline));\">\n\t\t<NcFormBox>\n\t\t\t<NcFormBoxCopyButton label=\"WebDAV URL\" value=\"https://cloud.example.tld/remote.php/dav/files/user\" />\n\t\t</NcFormBox>\n\n\t\t<NcFormGroup label=\"Account settings\">\n\t\t\t<NcFormBox>\n\t\t\t\t<NcFormBoxButton label=\"user@example.com\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiArrowRight\" inline />\n\t\t\t\t\t</template>\n\t\t\t\t</NcFormBoxButton>\n\t\t\t\t<NcFormBoxButton label=\"sales@example.com\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiArrowRight\" inline />\n\t\t\t\t\t</template>\n\t\t\t\t</NcFormBoxButton>\n\t\t\t\t<NcButton wide>\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiPlus\" />\n\t\t\t\t\t</template>\n\t\t\t\t\tAdd mail account\n\t\t\t\t</NcButton>\n\t\t\t</NcFormBox>\n\t\t</NcFormGroup>\n\n\t\t<NcFormGroup label=\"Device settings\">\n\t\t\t<NcFormBox>\n\t\t\t\t<NcFormBoxSwitch v-model=\"switchValue\" label=\"Turn camera and microphone off by default\" />\n\t\t\t\t<NcFormBoxSwitch v-model=\"switchValue\" label=\"Blur camera background by default\" />\n\t\t\t\t<NcFormBoxSwitch\n\t\t\t\t\tv-model=\"switchValue\"\n\t\t\t\t\tlabel=\"Skip device preview before joining a call\"\n\t\t\t\t\tdescription=\"Will always show if recording consent is required\" />\n\t\t\t</NcFormBox>\n\t\t</NcFormGroup>\n\n\t\t<NcFormBox>\n\t\t\t<NcFormBoxButton\n\t\t\t\tlabel=\"Attachments folder\"\n\t\t\t\tdescription=\"/Talk\"\n\t\t\t\tinverted-accent>\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiFolderOpenOutline\" inline />\n\t\t\t\t</template>\n\t\t\t</NcFormBoxButton>\n\t\t</NcFormBox>\n\t</div>\n</template>\n```\n\n### Advanced usage\n\nScoped slot prop `itemClass` can be used to apply the same border radius effect to custom components.\nCreate an issue if you need a composable to inject the class into a custom component.\n\n```vue\n<template>\n\t<NcFormBox v-slot=\"{ itemClass }\">\n\t\t<button class=\"native-button\" :class=\"itemClass\">\n\t\t\tFirst native button\n\t\t</button>\n\t\t<button class=\"native-button\" :class=\"itemClass\">\n\t\t\tSecond native button\n\t\t</button>\n\t\t<button class=\"native-button\" :class=\"itemClass\">\n\t\t\tThird native button\n\t\t</button>\n\t</NcFormBox>\n</template>\n\n<style scoped>\n.native-button {\n\t/* Remove default server margin around a native button */\n\tmargin: 0 !important;\n}\n</style>\n```\n</docs>\n"],"names":[],"mappings":";;;;;;;;;AAkBA,UAAM,QAAQ,aAAA;AAEd,YAAQ,yBAAyB;AAAA,MAChC,aAAa;AAAA,MACb,kBAAkB,MAAM;AAAA,IAAA,CACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NcFormBox-C38-8CH6.mjs","sources":["../../src/components/NcFormBox/NcFormBox.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport { provide, useCssModule } from 'vue'\nimport { NC_FORM_BOX_CONTEXT_KEY } from './useNcFormBox.ts'\n\nwithDefaults(defineProps<{\n\t/**\n\t * Display the group as a row instead of a column\n\t */\n\trow?: boolean\n}>(), {\n\trow: false,\n})\n\nconst style = useCssModule()\n\nprovide(NC_FORM_BOX_CONTEXT_KEY, {\n\tisInFormBox: true,\n\tformBoxItemClass: style.ncFormBox__item,\n})\n</script>\n\n<template>\n\t<div :class=\"[$style.ncFormBox, row ? $style.ncFormBox_row : $style.ncFormBox_col]\">\n\t\t<!--\n\t\t\t@slot Grouped content\n\t\t\t\t@binding {string} itemClass - Class to add on a custom item to apply the border radius effect\n\t\t -->\n\t\t<slot :item-class=\"$style.ncFormBox__item\" />\n\t</div>\n</template>\n\n<style lang=\"scss\" module>\n.ncFormBox {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: calc(1 * var(--default-grid-baseline));\n\n\t&.ncFormBox_row {\n\t\tflex-direction: row;\n\t}\n}\n\n.ncFormBox__item {\n\tborder-radius: var(--border-radius-small) !important;\n}\n\n.ncFormBox_col {\n\tflex-direction: column;\n\n\t.ncFormBox__item {\n\t\t&:first-child {\n\t\t\tborder-start-start-radius: var(--border-radius-element) !important;\n\t\t\tborder-start-end-radius: var(--border-radius-element) !important;\n\t\t}\n\n\t\t&:last-child {\n\t\t\tborder-end-start-radius: var(--border-radius-element) !important;\n\t\t\tborder-end-end-radius: var(--border-radius-element) !important;\n\t\t}\n\t}\n}\n\n.ncFormBox_row {\n\tflex-direction: row;\n\n\t.ncFormBox__item {\n\t\tflex: 1 1;\n\n\t\t&:first-child {\n\t\t\tborder-start-start-radius: var(--border-radius-element) !important;\n\t\t\tborder-end-start-radius: var(--border-radius-element) !important;\n\t\t}\n\n\t\t&:last-child {\n\t\t\tborder-end-end-radius: var(--border-radius-element) !important;\n\t\t\tborder-start-end-radius: var(--border-radius-element) !important;\n\t\t}\n\t}\n}\n</style>\n\n<docs>\n### General\n\nA container of supported components with a small gap and rounded corners forming a solid group.\n\nCurrently supported components:\n- **`<NcFormBoxButton>`**: an action button/link with an optional description specially for the `<NcFormBox>` context\n- **`<NcFormBoxCopyButton>`**: a special case of a button to copy a text to the clipboard\n- **`<NcFormBoxSwitch>`**: a toggle switch replacing `<NcCheckboxRadioSwitch type=\"switch\">` in a box\n- **`<NcButton>`**: a general button in case there is a kind of primary action within a box\n\n**Note**: if the group has a semantic meaning, consider wrapping the `<NcFormBox>` into `<NcFormGroup>` component with a label.\n\n```vue\n<script>\nimport { mdiArrowRight, mdiFolderOpenOutline, mdiPlus } from '@mdi/js'\n\nexport default {\n\tsetup() {\n\t\treturn { mdiArrowRight, mdiFolderOpenOutline, mdiPlus }\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\ttext: 'Text',\n\t\t\tswitchValue: false,\n\t\t}\n\t},\n}\n</script>\n\n<template>\n\t<div style=\"display: flex; flex-direction: column; gap: calc(6 * var(--default-grid-baseline));\">\n\t\t<NcFormBox>\n\t\t\t<NcFormBoxCopyButton label=\"WebDAV URL\" value=\"https://cloud.example.tld/remote.php/dav/files/user\" />\n\t\t</NcFormBox>\n\n\t\t<NcFormGroup label=\"Account settings\">\n\t\t\t<NcFormBox>\n\t\t\t\t<NcFormBoxButton label=\"user@example.com\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiArrowRight\" inline />\n\t\t\t\t\t</template>\n\t\t\t\t</NcFormBoxButton>\n\t\t\t\t<NcFormBoxButton label=\"sales@example.com\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiArrowRight\" inline />\n\t\t\t\t\t</template>\n\t\t\t\t</NcFormBoxButton>\n\t\t\t\t<NcButton wide>\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiPlus\" />\n\t\t\t\t\t</template>\n\t\t\t\t\tAdd mail account\n\t\t\t\t</NcButton>\n\t\t\t</NcFormBox>\n\t\t</NcFormGroup>\n\n\t\t<NcFormGroup label=\"Device settings\">\n\t\t\t<NcFormBox>\n\t\t\t\t<NcFormBoxSwitch v-model=\"switchValue\" label=\"Turn camera and microphone off by default\" />\n\t\t\t\t<NcFormBoxSwitch v-model=\"switchValue\" label=\"Blur camera background by default\" />\n\t\t\t\t<NcFormBoxSwitch\n\t\t\t\t\tv-model=\"switchValue\"\n\t\t\t\t\tlabel=\"Skip device preview before joining a call\"\n\t\t\t\t\tdescription=\"Will always show if recording consent is required\" />\n\t\t\t</NcFormBox>\n\t\t</NcFormGroup>\n\n\t\t<NcFormBox>\n\t\t\t<NcFormBoxButton\n\t\t\t\tlabel=\"Attachments folder\"\n\t\t\t\tdescription=\"/Talk\"\n\t\t\t\tinverted-accent>\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiFolderOpenOutline\" inline />\n\t\t\t\t</template>\n\t\t\t</NcFormBoxButton>\n\t\t</NcFormBox>\n\t</div>\n</template>\n```\n\n### Advanced usage\n\nScoped slot prop `itemClass` can be used to apply the same border radius effect to custom components.\nCreate an issue if you need a composable to inject the class into a custom component.\n\n```vue\n<template>\n\t<NcFormBox v-slot=\"{ itemClass }\">\n\t\t<button class=\"native-button\" :class=\"itemClass\">\n\t\t\tFirst native button\n\t\t</button>\n\t\t<button class=\"native-button\" :class=\"itemClass\">\n\t\t\tSecond native button\n\t\t</button>\n\t\t<button class=\"native-button\" :class=\"itemClass\">\n\t\t\tThird native button\n\t\t</button>\n\t</NcFormBox>\n</template>\n\n<style scoped>\n.native-button {\n\t/* Remove default server margin around a native button */\n\tmargin: 0 !important;\n}\n</style>\n```\n</docs>\n"],"names":[],"mappings":";;;;;;;;;AAkBA,UAAM,QAAQ,aAAA;AAEd,YAAQ,yBAAyB;AAAA,MAChC,aAAa;AAAA,MACb,kBAAkB,MAAM;AAAA,IAAA,CACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- require('../assets/NcFormBox-9NY7pxez.css');
1
+ require('../assets/NcFormBox-DoEpsPVV.css');
2
2
  "use strict";
3
3
  const Vue = require("vue");
4
4
  const useNcFormBox = require("./useNcFormBox-XowgPxpI.cjs");
@@ -17,12 +17,12 @@ const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
17
17
  return { __sfc: true, style };
18
18
  }
19
19
  });
20
- const ncFormBox = "_ncFormBox_OjStT";
21
- const ncFormBox_row = "_ncFormBox_row_Qlk-j";
22
- const ncFormBox__item = "_ncFormBox__item_ayS-H";
23
- const ncFormBox_col = "_ncFormBox_col_VaIn3";
20
+ const ncFormBox = "_ncFormBox_cvvSS";
21
+ const ncFormBox_row = "_ncFormBox_row_x-cjq";
22
+ const ncFormBox__item = "_ncFormBox__item_xO781";
23
+ const ncFormBox_col = "_ncFormBox_col_BEEgR";
24
24
  const style0 = {
25
- "material-design-icon": "_material-design-icon_zDurS",
25
+ "material-design-icon": "_material-design-icon_6xExP",
26
26
  ncFormBox,
27
27
  ncFormBox_row,
28
28
  ncFormBox__item,
@@ -52,4 +52,4 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
52
52
  );
53
53
  const NcFormBox = __component__.exports;
54
54
  exports.NcFormBox = NcFormBox;
55
- //# sourceMappingURL=NcFormBox-DRGVpFeZ.cjs.map
55
+ //# sourceMappingURL=NcFormBox-C8LDr6nF.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NcFormBox-DRGVpFeZ.cjs","sources":["../../src/components/NcFormBox/NcFormBox.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport { provide, useCssModule } from 'vue'\nimport { NC_FORM_BOX_CONTEXT_KEY } from './useNcFormBox.ts'\n\nwithDefaults(defineProps<{\n\t/**\n\t * Display the group as a row instead of a column\n\t */\n\trow?: boolean\n}>(), {\n\trow: false,\n})\n\nconst style = useCssModule()\n\nprovide(NC_FORM_BOX_CONTEXT_KEY, {\n\tisInFormBox: true,\n\tformBoxItemClass: style.ncFormBox__item,\n})\n</script>\n\n<template>\n\t<div :class=\"[$style.ncFormBox, row ? $style.ncFormBox_row : $style.ncFormBox_col]\">\n\t\t<!--\n\t\t\t@slot Grouped content\n\t\t\t\t@binding {string} itemClass - Class to add on a custom item to apply the border radius effect\n\t\t -->\n\t\t<slot :item-class=\"$style.ncFormBox__item\" />\n\t</div>\n</template>\n\n<style lang=\"scss\" module>\n.ncFormBox {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: calc(1 * var(--default-grid-baseline));\n\n\t&.ncFormBox_row {\n\t\tflex-direction: row;\n\t}\n}\n\n.ncFormBox__item {\n\tborder-radius: var(--border-radius-small) !important;\n}\n\n.ncFormBox_col {\n\tflex-direction: column;\n\n\t.ncFormBox__item {\n\t\t&:first-child {\n\t\t\tborder-start-start-radius: var(--border-radius-element) !important;\n\t\t\tborder-start-end-radius: var(--border-radius-element) !important;\n\t\t}\n\n\t\t&:last-child {\n\t\t\tborder-end-start-radius: var(--border-radius-element) !important;\n\t\t\tborder-end-end-radius: var(--border-radius-element) !important;\n\t\t}\n\t}\n}\n\n.ncFormBox_row {\n\tflex-direction: row;\n\n\t.ncFormBox__item {\n\t\tflex: 1 1;\n\n\t\t&:first-child {\n\t\t\tborder-start-start-radius: var(--border-radius-element) !important;\n\t\t\tborder-end-start-radius: var(--border-radius-element) !important;\n\t\t}\n\n\t\t&:last-child {\n\t\t\tborder-end-end-radius: var(--border-radius-element) !important;\n\t\t\tborder-start-end-radius: var(--border-radius-element) !important;\n\t\t}\n\t}\n}\n</style>\n\n<docs>\n### General\n\nA container of supported components with a small gap and rounded corners forming a solid group.\n\nCurrently supported components:\n- **`<NcFormBoxButton>`**: an action button/link with an optional description specially for the `<NcFormBox>` context\n- **`<NcFormBoxCopyButton>`**: a special case of a button to copy a text to the clipboard\n- **`<NcFormBoxSwitch>`**: a toggle switch replacing `<NcCheckboxRadioSwitch type=\"switch\">` in a box\n- **`<NcButton>`**: a general button in case there is a kind of primary action within a box\n\n**Note**: if the group has a semantic meaning, consider wrapping the `<NcFormBox>` into `<NcFormGroup>` component with a label.\n\n```vue\n<script>\nimport { mdiArrowRight, mdiFolderOpenOutline, mdiPlus } from '@mdi/js'\n\nexport default {\n\tsetup() {\n\t\treturn { mdiArrowRight, mdiFolderOpenOutline, mdiPlus }\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\ttext: 'Text',\n\t\t\tswitchValue: false,\n\t\t}\n\t},\n}\n</script>\n\n<template>\n\t<div style=\"display: flex; flex-direction: column; gap: calc(6 * var(--default-grid-baseline));\">\n\t\t<NcFormBox>\n\t\t\t<NcFormBoxCopyButton label=\"WebDAV URL\" value=\"https://cloud.example.tld/remote.php/dav/files/user\" />\n\t\t</NcFormBox>\n\n\t\t<NcFormGroup label=\"Account settings\">\n\t\t\t<NcFormBox>\n\t\t\t\t<NcFormBoxButton label=\"user@example.com\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiArrowRight\" inline />\n\t\t\t\t\t</template>\n\t\t\t\t</NcFormBoxButton>\n\t\t\t\t<NcFormBoxButton label=\"sales@example.com\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiArrowRight\" inline />\n\t\t\t\t\t</template>\n\t\t\t\t</NcFormBoxButton>\n\t\t\t\t<NcButton wide>\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiPlus\" />\n\t\t\t\t\t</template>\n\t\t\t\t\tAdd mail account\n\t\t\t\t</NcButton>\n\t\t\t</NcFormBox>\n\t\t</NcFormGroup>\n\n\t\t<NcFormGroup label=\"Device settings\">\n\t\t\t<NcFormBox>\n\t\t\t\t<NcFormBoxSwitch v-model=\"switchValue\" label=\"Turn camera and microphone off by default\" />\n\t\t\t\t<NcFormBoxSwitch v-model=\"switchValue\" label=\"Blur camera background by default\" />\n\t\t\t\t<NcFormBoxSwitch\n\t\t\t\t\tv-model=\"switchValue\"\n\t\t\t\t\tlabel=\"Skip device preview before joining a call\"\n\t\t\t\t\tdescription=\"Will always show if recording consent is required\" />\n\t\t\t</NcFormBox>\n\t\t</NcFormGroup>\n\n\t\t<NcFormBox>\n\t\t\t<NcFormBoxButton\n\t\t\t\tlabel=\"Attachments folder\"\n\t\t\t\tdescription=\"/Talk\"\n\t\t\t\tinverted-accent>\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiFolderOpenOutline\" inline />\n\t\t\t\t</template>\n\t\t\t</NcFormBoxButton>\n\t\t</NcFormBox>\n\t</div>\n</template>\n```\n\n### Advanced usage\n\nScoped slot prop `itemClass` can be used to apply the same border radius effect to custom components.\nCreate an issue if you need a composable to inject the class into a custom component.\n\n```vue\n<template>\n\t<NcFormBox v-slot=\"{ itemClass }\">\n\t\t<button class=\"native-button\" :class=\"itemClass\">\n\t\t\tFirst native button\n\t\t</button>\n\t\t<button class=\"native-button\" :class=\"itemClass\">\n\t\t\tSecond native button\n\t\t</button>\n\t\t<button class=\"native-button\" :class=\"itemClass\">\n\t\t\tThird native button\n\t\t</button>\n\t</NcFormBox>\n</template>\n\n<style scoped>\n.native-button {\n\t/* Remove default server margin around a native button */\n\tmargin: 0 !important;\n}\n</style>\n```\n</docs>\n"],"names":["useCssModule","provide","NC_FORM_BOX_CONTEXT_KEY"],"mappings":";;;;;;;;;;AAkBA,UAAM,QAAQA,IAAAA,aAAA;AAEdC,QAAAA,QAAQC,aAAAA,yBAAyB;AAAA,MAChC,aAAa;AAAA,MACb,kBAAkB,MAAM;AAAA,IAAA,CACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"NcFormBox-C8LDr6nF.cjs","sources":["../../src/components/NcFormBox/NcFormBox.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script setup lang=\"ts\">\nimport { provide, useCssModule } from 'vue'\nimport { NC_FORM_BOX_CONTEXT_KEY } from './useNcFormBox.ts'\n\nwithDefaults(defineProps<{\n\t/**\n\t * Display the group as a row instead of a column\n\t */\n\trow?: boolean\n}>(), {\n\trow: false,\n})\n\nconst style = useCssModule()\n\nprovide(NC_FORM_BOX_CONTEXT_KEY, {\n\tisInFormBox: true,\n\tformBoxItemClass: style.ncFormBox__item,\n})\n</script>\n\n<template>\n\t<div :class=\"[$style.ncFormBox, row ? $style.ncFormBox_row : $style.ncFormBox_col]\">\n\t\t<!--\n\t\t\t@slot Grouped content\n\t\t\t\t@binding {string} itemClass - Class to add on a custom item to apply the border radius effect\n\t\t -->\n\t\t<slot :item-class=\"$style.ncFormBox__item\" />\n\t</div>\n</template>\n\n<style lang=\"scss\" module>\n.ncFormBox {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: calc(1 * var(--default-grid-baseline));\n\n\t&.ncFormBox_row {\n\t\tflex-direction: row;\n\t}\n}\n\n.ncFormBox__item {\n\tborder-radius: var(--border-radius-small) !important;\n}\n\n.ncFormBox_col {\n\tflex-direction: column;\n\n\t.ncFormBox__item {\n\t\t&:first-child {\n\t\t\tborder-start-start-radius: var(--border-radius-element) !important;\n\t\t\tborder-start-end-radius: var(--border-radius-element) !important;\n\t\t}\n\n\t\t&:last-child {\n\t\t\tborder-end-start-radius: var(--border-radius-element) !important;\n\t\t\tborder-end-end-radius: var(--border-radius-element) !important;\n\t\t}\n\t}\n}\n\n.ncFormBox_row {\n\tflex-direction: row;\n\n\t.ncFormBox__item {\n\t\tflex: 1 1;\n\n\t\t&:first-child {\n\t\t\tborder-start-start-radius: var(--border-radius-element) !important;\n\t\t\tborder-end-start-radius: var(--border-radius-element) !important;\n\t\t}\n\n\t\t&:last-child {\n\t\t\tborder-end-end-radius: var(--border-radius-element) !important;\n\t\t\tborder-start-end-radius: var(--border-radius-element) !important;\n\t\t}\n\t}\n}\n</style>\n\n<docs>\n### General\n\nA container of supported components with a small gap and rounded corners forming a solid group.\n\nCurrently supported components:\n- **`<NcFormBoxButton>`**: an action button/link with an optional description specially for the `<NcFormBox>` context\n- **`<NcFormBoxCopyButton>`**: a special case of a button to copy a text to the clipboard\n- **`<NcFormBoxSwitch>`**: a toggle switch replacing `<NcCheckboxRadioSwitch type=\"switch\">` in a box\n- **`<NcButton>`**: a general button in case there is a kind of primary action within a box\n\n**Note**: if the group has a semantic meaning, consider wrapping the `<NcFormBox>` into `<NcFormGroup>` component with a label.\n\n```vue\n<script>\nimport { mdiArrowRight, mdiFolderOpenOutline, mdiPlus } from '@mdi/js'\n\nexport default {\n\tsetup() {\n\t\treturn { mdiArrowRight, mdiFolderOpenOutline, mdiPlus }\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\ttext: 'Text',\n\t\t\tswitchValue: false,\n\t\t}\n\t},\n}\n</script>\n\n<template>\n\t<div style=\"display: flex; flex-direction: column; gap: calc(6 * var(--default-grid-baseline));\">\n\t\t<NcFormBox>\n\t\t\t<NcFormBoxCopyButton label=\"WebDAV URL\" value=\"https://cloud.example.tld/remote.php/dav/files/user\" />\n\t\t</NcFormBox>\n\n\t\t<NcFormGroup label=\"Account settings\">\n\t\t\t<NcFormBox>\n\t\t\t\t<NcFormBoxButton label=\"user@example.com\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiArrowRight\" inline />\n\t\t\t\t\t</template>\n\t\t\t\t</NcFormBoxButton>\n\t\t\t\t<NcFormBoxButton label=\"sales@example.com\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiArrowRight\" inline />\n\t\t\t\t\t</template>\n\t\t\t\t</NcFormBoxButton>\n\t\t\t\t<NcButton wide>\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiPlus\" />\n\t\t\t\t\t</template>\n\t\t\t\t\tAdd mail account\n\t\t\t\t</NcButton>\n\t\t\t</NcFormBox>\n\t\t</NcFormGroup>\n\n\t\t<NcFormGroup label=\"Device settings\">\n\t\t\t<NcFormBox>\n\t\t\t\t<NcFormBoxSwitch v-model=\"switchValue\" label=\"Turn camera and microphone off by default\" />\n\t\t\t\t<NcFormBoxSwitch v-model=\"switchValue\" label=\"Blur camera background by default\" />\n\t\t\t\t<NcFormBoxSwitch\n\t\t\t\t\tv-model=\"switchValue\"\n\t\t\t\t\tlabel=\"Skip device preview before joining a call\"\n\t\t\t\t\tdescription=\"Will always show if recording consent is required\" />\n\t\t\t</NcFormBox>\n\t\t</NcFormGroup>\n\n\t\t<NcFormBox>\n\t\t\t<NcFormBoxButton\n\t\t\t\tlabel=\"Attachments folder\"\n\t\t\t\tdescription=\"/Talk\"\n\t\t\t\tinverted-accent>\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiFolderOpenOutline\" inline />\n\t\t\t\t</template>\n\t\t\t</NcFormBoxButton>\n\t\t</NcFormBox>\n\t</div>\n</template>\n```\n\n### Advanced usage\n\nScoped slot prop `itemClass` can be used to apply the same border radius effect to custom components.\nCreate an issue if you need a composable to inject the class into a custom component.\n\n```vue\n<template>\n\t<NcFormBox v-slot=\"{ itemClass }\">\n\t\t<button class=\"native-button\" :class=\"itemClass\">\n\t\t\tFirst native button\n\t\t</button>\n\t\t<button class=\"native-button\" :class=\"itemClass\">\n\t\t\tSecond native button\n\t\t</button>\n\t\t<button class=\"native-button\" :class=\"itemClass\">\n\t\t\tThird native button\n\t\t</button>\n\t</NcFormBox>\n</template>\n\n<style scoped>\n.native-button {\n\t/* Remove default server margin around a native button */\n\tmargin: 0 !important;\n}\n</style>\n```\n</docs>\n"],"names":["useCssModule","provide","NC_FORM_BOX_CONTEXT_KEY"],"mappings":";;;;;;;;;;AAkBA,UAAM,QAAQA,IAAAA,aAAA;AAEdC,QAAAA,QAAQC,aAAAA,yBAAyB;AAAA,MAChC,aAAa;AAAA,MACb,kBAAkB,MAAM;AAAA,IAAA,CACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,9 +1,9 @@
1
- require('../assets/NcFormBoxButton-BlS280R1.css');
1
+ require('../assets/NcFormBoxButton-CFtdjCfy.css');
2
2
  "use strict";
3
3
  const Vue = require("vue");
4
4
  const mdi = require("./mdi-DTiP6a6e.cjs");
5
5
  const core = require("@vueuse/core");
6
- const NcFormBoxItem = require("./NcFormBoxItem-3lI7Bu3S.cjs");
6
+ const NcFormBoxItem = require("./NcFormBoxItem-BAJxkxRf.cjs");
7
7
  const NcIconSvgWrapper = require("./NcIconSvgWrapper-Bbl4kXZI.cjs");
8
8
  const _pluginVue2_normalizer = require("./_plugin-vue2_normalizer-V0q-tHlQ.cjs");
9
9
  /*!
@@ -88,9 +88,9 @@ const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
88
88
  return { __sfc: true, props, tag, attrs, isLink, icon, NcFormBoxItem: NcFormBoxItem.NcFormBoxItem, NcIconSvgWrapper: NcIconSvgWrapper.NcIconSvgWrapper };
89
89
  }
90
90
  });
91
- const formBoxButton = "_formBoxButton_DGIeJ";
91
+ const formBoxButton = "_formBoxButton_1Xs0E";
92
92
  const style0 = {
93
- "material-design-icon": "_material-design-icon_nhhXo",
93
+ "material-design-icon": "_material-design-icon_n0rxV",
94
94
  formBoxButton
95
95
  };
96
96
  var _sfc_render = function render() {
@@ -134,4 +134,4 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
134
134
  );
135
135
  const NcFormBoxButton = __component__.exports;
136
136
  exports.NcFormBoxButton = NcFormBoxButton;
137
- //# sourceMappingURL=NcFormBoxButton-ozVuTgCZ.cjs.map
137
+ //# sourceMappingURL=NcFormBoxButton-Bk-1cqbj.cjs.map