@nextcloud/vue 8.28.0 → 8.29.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (474) hide show
  1. package/CHANGELOG.md +57 -26
  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/NcActionInput.cjs +1 -1
  7. package/dist/Components/NcActionInput.mjs +1 -1
  8. package/dist/Components/NcActionTextEditable.cjs +1 -1
  9. package/dist/Components/NcActionTextEditable.mjs +1 -1
  10. package/dist/Components/NcActions.cjs +1 -1
  11. package/dist/Components/NcActions.mjs +1 -1
  12. package/dist/Components/NcAppContent.cjs +1 -1
  13. package/dist/Components/NcAppContent.mjs +1 -1
  14. package/dist/Components/NcAppNavigation.cjs +1 -1
  15. package/dist/Components/NcAppNavigation.mjs +1 -1
  16. package/dist/Components/NcAppNavigationCaption.cjs +1 -1
  17. package/dist/Components/NcAppNavigationCaption.mjs +1 -1
  18. package/dist/Components/NcAppNavigationItem.cjs +1 -1
  19. package/dist/Components/NcAppNavigationItem.mjs +1 -1
  20. package/dist/Components/NcAppNavigationNewItem.cjs +1 -1
  21. package/dist/Components/NcAppNavigationNewItem.mjs +1 -1
  22. package/dist/Components/NcAppNavigationSearch.cjs +1 -1
  23. package/dist/Components/NcAppNavigationSearch.mjs +1 -1
  24. package/dist/Components/NcAppNavigationSettings.cjs +1 -1
  25. package/dist/Components/NcAppNavigationSettings.mjs +1 -1
  26. package/dist/Components/NcAppNavigationToggle.cjs +1 -1
  27. package/dist/Components/NcAppNavigationToggle.mjs +1 -1
  28. package/dist/Components/NcAppSettingsDialog.cjs +1 -1
  29. package/dist/Components/NcAppSettingsDialog.mjs +1 -1
  30. package/dist/Components/NcAppSidebar.cjs +1 -1
  31. package/dist/Components/NcAppSidebar.mjs +1 -1
  32. package/dist/Components/NcAvatar.cjs +1 -1
  33. package/dist/Components/NcAvatar.mjs +1 -1
  34. package/dist/Components/NcBreadcrumb.cjs +1 -1
  35. package/dist/Components/NcBreadcrumb.mjs +1 -1
  36. package/dist/Components/NcBreadcrumbs.cjs +1 -1
  37. package/dist/Components/NcBreadcrumbs.mjs +1 -1
  38. package/dist/Components/NcButton.cjs +15 -2
  39. package/dist/Components/NcButton.cjs.map +1 -1
  40. package/dist/Components/NcButton.mjs +15 -2
  41. package/dist/Components/NcButton.mjs.map +1 -1
  42. package/dist/Components/NcCheckboxRadioSwitch.cjs +1 -1
  43. package/dist/Components/NcCheckboxRadioSwitch.mjs +1 -1
  44. package/dist/Components/NcChip.cjs +4 -4
  45. package/dist/Components/NcChip.mjs +4 -4
  46. package/dist/Components/NcCollectionList.cjs +1 -1
  47. package/dist/Components/NcCollectionList.mjs +1 -1
  48. package/dist/Components/NcColorPicker.cjs +1 -1
  49. package/dist/Components/NcColorPicker.mjs +1 -1
  50. package/dist/Components/NcContent.cjs +1 -1
  51. package/dist/Components/NcContent.mjs +1 -1
  52. package/dist/Components/NcDashboardWidget.cjs +1 -1
  53. package/dist/Components/NcDashboardWidget.mjs +1 -1
  54. package/dist/Components/NcDashboardWidgetItem.cjs +1 -1
  55. package/dist/Components/NcDashboardWidgetItem.mjs +1 -1
  56. package/dist/Components/NcDateTimePicker.cjs +5 -5
  57. package/dist/Components/NcDateTimePicker.mjs +5 -5
  58. package/dist/Components/NcDateTimePickerNative.cjs +1 -1
  59. package/dist/Components/NcDateTimePickerNative.mjs +1 -1
  60. package/dist/Components/NcDialog.cjs +1 -1
  61. package/dist/Components/NcDialog.mjs +1 -1
  62. package/dist/Components/NcDialogButton.cjs +1 -1
  63. package/dist/Components/NcDialogButton.mjs +1 -1
  64. package/dist/Components/NcEmojiPicker.cjs +1 -1
  65. package/dist/Components/NcEmojiPicker.mjs +1 -1
  66. package/dist/Components/NcGuestContent.cjs +2 -2
  67. package/dist/Components/NcGuestContent.cjs.map +1 -1
  68. package/dist/Components/NcGuestContent.mjs +2 -2
  69. package/dist/Components/NcGuestContent.mjs.map +1 -1
  70. package/dist/Components/NcHeaderButton.cjs +1 -1
  71. package/dist/Components/NcHeaderButton.mjs +1 -1
  72. package/dist/Components/NcHeaderMenu.cjs +1 -1
  73. package/dist/Components/NcHeaderMenu.mjs +1 -1
  74. package/dist/Components/NcInputField.cjs +1 -1
  75. package/dist/Components/NcInputField.mjs +1 -1
  76. package/dist/Components/NcListItem.cjs +1 -1
  77. package/dist/Components/NcListItem.mjs +1 -1
  78. package/dist/Components/NcListItemIcon.cjs +1 -1
  79. package/dist/Components/NcListItemIcon.mjs +1 -1
  80. package/dist/Components/NcLoadingIcon.cjs +2 -2
  81. package/dist/Components/NcLoadingIcon.cjs.map +1 -1
  82. package/dist/Components/NcLoadingIcon.mjs +2 -2
  83. package/dist/Components/NcLoadingIcon.mjs.map +1 -1
  84. package/dist/Components/NcModal.cjs +8 -17
  85. package/dist/Components/NcModal.cjs.map +1 -1
  86. package/dist/Components/NcModal.mjs +8 -17
  87. package/dist/Components/NcModal.mjs.map +1 -1
  88. package/dist/Components/NcPasswordField.cjs +1 -1
  89. package/dist/Components/NcPasswordField.mjs +1 -1
  90. package/dist/Components/NcPopover.cjs +1 -1
  91. package/dist/Components/NcPopover.mjs +1 -1
  92. package/dist/Components/NcProgressBar.cjs +1 -1
  93. package/dist/Components/NcProgressBar.mjs +1 -1
  94. package/dist/Components/NcRelatedResourcesPanel.cjs +1 -1
  95. package/dist/Components/NcRelatedResourcesPanel.mjs +1 -1
  96. package/dist/Components/NcRichContenteditable.cjs +2 -2
  97. package/dist/Components/NcRichContenteditable.mjs +2 -2
  98. package/dist/Components/NcRichText.cjs +2 -2
  99. package/dist/Components/NcRichText.mjs +3 -3
  100. package/dist/Components/NcSavingIndicatorIcon.cjs +1 -1
  101. package/dist/Components/NcSavingIndicatorIcon.mjs +1 -1
  102. package/dist/Components/NcSelect.cjs +1 -1
  103. package/dist/Components/NcSelect.mjs +1 -1
  104. package/dist/Components/NcSelectTags.cjs +1 -1
  105. package/dist/Components/NcSelectTags.mjs +1 -1
  106. package/dist/Components/NcSelectUsers.cjs +1 -1
  107. package/dist/Components/NcSelectUsers.mjs +1 -1
  108. package/dist/Components/NcSettingsInputText.cjs +1 -1
  109. package/dist/Components/NcSettingsInputText.mjs +1 -1
  110. package/dist/Components/NcSettingsSection.cjs +1 -1
  111. package/dist/Components/NcSettingsSection.mjs +1 -1
  112. package/dist/Components/NcSettingsSelectGroup.cjs +1 -1
  113. package/dist/Components/NcSettingsSelectGroup.mjs +1 -1
  114. package/dist/Components/NcTextArea.cjs +1 -1
  115. package/dist/Components/NcTextArea.mjs +1 -1
  116. package/dist/Components/NcTextField.cjs +1 -1
  117. package/dist/Components/NcTextField.mjs +1 -1
  118. package/dist/Components/NcThemeProvider.cjs +4 -0
  119. package/dist/Components/NcThemeProvider.cjs.map +1 -0
  120. package/dist/Components/NcThemeProvider.mjs +5 -0
  121. package/dist/Components/NcThemeProvider.mjs.map +1 -0
  122. package/dist/Components/NcTimezonePicker.cjs +1 -1
  123. package/dist/Components/NcTimezonePicker.mjs +1 -1
  124. package/dist/Components/NcUserBubble.cjs +1 -1
  125. package/dist/Components/NcUserBubble.mjs +1 -1
  126. package/dist/Components/NcUserStatusIcon.cjs +1 -1
  127. package/dist/Components/NcUserStatusIcon.mjs +1 -1
  128. package/dist/Composables/useFormatDateTime.cjs +1 -1
  129. package/dist/Composables/useFormatDateTime.mjs +1 -1
  130. package/dist/Composables/useIsDarkTheme.cjs +23 -6
  131. package/dist/Composables/useIsDarkTheme.cjs.map +1 -1
  132. package/dist/Composables/useIsDarkTheme.mjs +24 -7
  133. package/dist/Composables/useIsDarkTheme.mjs.map +1 -1
  134. package/dist/Functions/dialog.cjs +19 -7
  135. package/dist/Functions/dialog.cjs.map +1 -1
  136. package/dist/Functions/dialog.mjs +19 -7
  137. package/dist/Functions/dialog.mjs.map +1 -1
  138. package/dist/Functions/reference.cjs +1 -1
  139. package/dist/Functions/reference.mjs +1 -1
  140. package/dist/Functions/usernameToColor.cjs +28 -2
  141. package/dist/Functions/usernameToColor.cjs.map +1 -1
  142. package/dist/Functions/usernameToColor.mjs +25 -2
  143. package/dist/Functions/usernameToColor.mjs.map +1 -1
  144. package/dist/Mixins/richEditor.cjs +1 -1
  145. package/dist/Mixins/richEditor.mjs +1 -1
  146. package/dist/assets/{NcActionInput-gUagFGC5.css → NcActionInput-D79204Jr.css} +63 -63
  147. package/dist/assets/{NcActionTextEditable-BflqGcjc.css → NcActionTextEditable-i1KSVe0J.css} +1 -1
  148. package/dist/assets/{NcAppNavigationItem-BKKHzMYw.css → NcAppNavigationItem-Ca2ekElv.css} +31 -31
  149. package/dist/assets/{NcAppSidebar-BFg2HHh6.css → NcAppSidebar-u0G_qQMh.css} +44 -67
  150. package/dist/assets/NcAvatar-BqNcvkxP.css +134 -0
  151. package/dist/assets/NcButton-DCgUYOPt.css +218 -0
  152. package/dist/assets/{NcCheckboxRadioSwitch-B-axx3m7.css → NcCheckboxRadioSwitch-DqEP1SPR.css} +36 -32
  153. package/dist/assets/{NcColorPicker-TIE_tTqD.css → NcColorPicker-DBcVuSwg.css} +28 -28
  154. package/dist/assets/{NcContent-Bq-7EZQc.css → NcContent-DH4tX3N4.css} +12 -9
  155. package/dist/assets/{NcDateTimePicker-DGkOwO8l.css → NcDateTimePicker-ZHSpShZz.css} +7 -7
  156. package/dist/assets/{NcGuestContent-B0ivUQHg.css → NcGuestContent-ByAkjts7.css} +2 -2
  157. package/dist/assets/{NcHeaderButton-Dr6MgPDQ.css → NcHeaderButton-ByNXqS7x.css} +4 -0
  158. package/dist/assets/{NcHeaderMenu-DN-HfTkh.css → NcHeaderMenu-Dp_vJKTP.css} +4 -0
  159. package/dist/assets/{NcInputField-GxJ-rf2p.css → NcInputField-CoB72F_m.css} +40 -34
  160. package/dist/assets/{NcListItem-B2yvEdWx.css → NcListItem-KrH47Efg.css} +44 -44
  161. package/dist/assets/{NcLoadingIcon-x1d284UU.css → NcLoadingIcon-DbbToJVp.css} +5 -2
  162. package/dist/assets/{NcMentionBubble-CB5c5ue2.css → NcMentionBubble-UsTMm5VD.css} +9 -9
  163. package/dist/assets/{NcModal-BS5vtogq.css → NcModal-Cy3UOuI2.css} +62 -62
  164. package/dist/assets/{NcProgressBar--z-WqmX4.css → NcProgressBar-DTCznR-m.css} +14 -14
  165. package/dist/assets/{NcRichContenteditable-BbOjh6i7.css → NcRichContenteditable-4-6A9qmC.css} +21 -21
  166. package/dist/assets/{NcSettingsSection-_mX6UqM_.css → NcSettingsSection-uKqWTbhb.css} +8 -8
  167. package/dist/assets/{NcSettingsSelectGroup-BEjOwCJQ.css → NcSettingsSelectGroup-tjJNoh16.css} +3 -3
  168. package/dist/assets/{NcTextArea-fzbciv3V.css → NcTextArea-B46u6ku9.css} +22 -22
  169. package/dist/assets/{NcUserStatusIcon-DAVSJFhS.css → NcUserStatusIcon-ChHaXPex.css} +7 -7
  170. package/dist/chunks/{GenColors-DAxlN2KL.cjs → GenColors-BnYS3bvv.cjs} +2 -2
  171. package/dist/chunks/{GenColors-DAxlN2KL.cjs.map → GenColors-BnYS3bvv.cjs.map} +1 -1
  172. package/dist/chunks/{GenColors-BowX0SaQ.mjs → GenColors-DNN63dHB.mjs} +2 -2
  173. package/dist/chunks/{GenColors-BowX0SaQ.mjs.map → GenColors-DNN63dHB.mjs.map} +1 -1
  174. package/dist/chunks/{NcActionButton-DBh812gJ.cjs → NcActionButton-2qh96K_i.cjs} +2 -2
  175. package/dist/chunks/{NcActionButton-DBh812gJ.cjs.map → NcActionButton-2qh96K_i.cjs.map} +1 -1
  176. package/dist/chunks/{NcActionButton-CpGK6gSX.mjs → NcActionButton-CHrE7amZ.mjs} +2 -2
  177. package/dist/chunks/{NcActionButton-CpGK6gSX.mjs.map → NcActionButton-CHrE7amZ.mjs.map} +1 -1
  178. package/dist/chunks/{NcActionButtonGroup-qRIt-It4.cjs → NcActionButtonGroup-B8Bj-Qb3.cjs} +2 -2
  179. package/dist/chunks/{NcActionButtonGroup-qRIt-It4.cjs.map → NcActionButtonGroup-B8Bj-Qb3.cjs.map} +1 -1
  180. package/dist/chunks/{NcActionButtonGroup-BkU5oOmB.mjs → NcActionButtonGroup-_R4fp-bK.mjs} +2 -2
  181. package/dist/chunks/{NcActionButtonGroup-BkU5oOmB.mjs.map → NcActionButtonGroup-_R4fp-bK.mjs.map} +1 -1
  182. package/dist/chunks/{NcActionInput-D3FN751M.mjs → NcActionInput-BeBxzPFZ.mjs} +12 -11
  183. package/dist/chunks/NcActionInput-BeBxzPFZ.mjs.map +1 -0
  184. package/dist/chunks/{NcActionInput-CtkE6Hny.cjs → NcActionInput-GZdB-qw1.cjs} +13 -11
  185. package/dist/chunks/NcActionInput-GZdB-qw1.cjs.map +1 -0
  186. package/dist/chunks/{NcActionTextEditable-a_607PST.mjs → NcActionTextEditable-CYac2X_P.mjs} +3 -3
  187. package/dist/chunks/{NcActionTextEditable-a_607PST.mjs.map → NcActionTextEditable-CYac2X_P.mjs.map} +1 -1
  188. package/dist/chunks/{NcActionTextEditable-Du_71yLe.cjs → NcActionTextEditable-CrW19Rr4.cjs} +3 -3
  189. package/dist/chunks/{NcActionTextEditable-Du_71yLe.cjs.map → NcActionTextEditable-CrW19Rr4.cjs.map} +1 -1
  190. package/dist/chunks/{NcActions-CzpbMJoY.mjs → NcActions-BANvgaMn.mjs} +39 -6
  191. package/dist/chunks/NcActions-BANvgaMn.mjs.map +1 -0
  192. package/dist/chunks/{NcActions-DvZOLPjX.cjs → NcActions-DV3CjPHr.cjs} +39 -6
  193. package/dist/chunks/NcActions-DV3CjPHr.cjs.map +1 -0
  194. package/dist/chunks/{NcAppContent-CItX43vM.cjs → NcAppContent-BqR67yTH.cjs} +2 -2
  195. package/dist/chunks/{NcAppContent-CItX43vM.cjs.map → NcAppContent-BqR67yTH.cjs.map} +1 -1
  196. package/dist/chunks/{NcAppContent-CP6G4fZX.mjs → NcAppContent-twZJBrQv.mjs} +2 -2
  197. package/dist/chunks/{NcAppContent-CP6G4fZX.mjs.map → NcAppContent-twZJBrQv.mjs.map} +1 -1
  198. package/dist/chunks/{NcAppNavigation-C86dBexT.cjs → NcAppNavigation-COge8_bn.cjs} +3 -3
  199. package/dist/chunks/{NcAppNavigation-C86dBexT.cjs.map → NcAppNavigation-COge8_bn.cjs.map} +1 -1
  200. package/dist/chunks/{NcAppNavigation-sCuN3OZe.mjs → NcAppNavigation-VSGTDckG.mjs} +3 -3
  201. package/dist/chunks/{NcAppNavigation-sCuN3OZe.mjs.map → NcAppNavigation-VSGTDckG.mjs.map} +1 -1
  202. package/dist/chunks/{NcAppNavigationCaption-B53sg-pO.cjs → NcAppNavigationCaption-ofy-JSGu.cjs} +2 -2
  203. package/dist/chunks/{NcAppNavigationCaption-B53sg-pO.cjs.map → NcAppNavigationCaption-ofy-JSGu.cjs.map} +1 -1
  204. package/dist/chunks/{NcAppNavigationCaption-B-5VHm-a.mjs → NcAppNavigationCaption-oxc7chGv.mjs} +2 -2
  205. package/dist/chunks/{NcAppNavigationCaption-B-5VHm-a.mjs.map → NcAppNavigationCaption-oxc7chGv.mjs.map} +1 -1
  206. package/dist/chunks/{NcAppNavigationItem-huCt6Fb0.cjs → NcAppNavigationItem-B-uv2tWu.cjs} +8 -8
  207. package/dist/chunks/NcAppNavigationItem-B-uv2tWu.cjs.map +1 -0
  208. package/dist/chunks/{NcAppNavigationItem-D7Y5mGGC.mjs → NcAppNavigationItem-CbtPNTg_.mjs} +8 -8
  209. package/dist/chunks/NcAppNavigationItem-CbtPNTg_.mjs.map +1 -0
  210. package/dist/chunks/{NcAppNavigationNewItem-DgTuysCV.mjs → NcAppNavigationNewItem-Cz8VbLjN.mjs} +2 -2
  211. package/dist/chunks/{NcAppNavigationNewItem-DgTuysCV.mjs.map → NcAppNavigationNewItem-Cz8VbLjN.mjs.map} +1 -1
  212. package/dist/chunks/{NcAppNavigationNewItem-CQB6KhNm.cjs → NcAppNavigationNewItem-DzpW6cIK.cjs} +2 -2
  213. package/dist/chunks/{NcAppNavigationNewItem-CQB6KhNm.cjs.map → NcAppNavigationNewItem-DzpW6cIK.cjs.map} +1 -1
  214. package/dist/chunks/{NcAppNavigationSearch-9NTDoHar.mjs → NcAppNavigationSearch-By7WEKGG.mjs} +3 -3
  215. package/dist/chunks/{NcAppNavigationSearch-9NTDoHar.mjs.map → NcAppNavigationSearch-By7WEKGG.mjs.map} +1 -1
  216. package/dist/chunks/{NcAppNavigationSearch-BxhJ30Ai.cjs → NcAppNavigationSearch-DjBMu0cZ.cjs} +3 -3
  217. package/dist/chunks/{NcAppNavigationSearch-BxhJ30Ai.cjs.map → NcAppNavigationSearch-DjBMu0cZ.cjs.map} +1 -1
  218. package/dist/chunks/{NcAppNavigationSettings-CS36ibjM.mjs → NcAppNavigationSettings-DhQ5tXEJ.mjs} +5 -3
  219. package/dist/chunks/{NcAppNavigationSettings-CS36ibjM.mjs.map → NcAppNavigationSettings-DhQ5tXEJ.mjs.map} +1 -1
  220. package/dist/chunks/{NcAppNavigationSettings-x3sCPjbc.cjs → NcAppNavigationSettings-DnvFbZyP.cjs} +5 -3
  221. package/dist/chunks/{NcAppNavigationSettings-x3sCPjbc.cjs.map → NcAppNavigationSettings-DnvFbZyP.cjs.map} +1 -1
  222. package/dist/chunks/{NcAppNavigationToggle-5vSrAnr1.mjs → NcAppNavigationToggle-CINjg2Mo.mjs} +2 -2
  223. package/dist/chunks/{NcAppNavigationToggle-5vSrAnr1.mjs.map → NcAppNavigationToggle-CINjg2Mo.mjs.map} +1 -1
  224. package/dist/chunks/{NcAppNavigationToggle-BesLZbAe.cjs → NcAppNavigationToggle-CbZem2gZ.cjs} +2 -2
  225. package/dist/chunks/{NcAppNavigationToggle-BesLZbAe.cjs.map → NcAppNavigationToggle-CbZem2gZ.cjs.map} +1 -1
  226. package/dist/chunks/{NcAppSettingsDialog-B6CvUEz6.cjs → NcAppSettingsDialog-C1m0QYAK.cjs} +3 -3
  227. package/dist/chunks/{NcAppSettingsDialog-B6CvUEz6.cjs.map → NcAppSettingsDialog-C1m0QYAK.cjs.map} +1 -1
  228. package/dist/chunks/{NcAppSettingsDialog-DBViVlqo.mjs → NcAppSettingsDialog-Duyfikm-.mjs} +3 -3
  229. package/dist/chunks/{NcAppSettingsDialog-DBViVlqo.mjs.map → NcAppSettingsDialog-Duyfikm-.mjs.map} +1 -1
  230. package/dist/chunks/{NcAppSidebar-BtJnp-19.cjs → NcAppSidebar-DrjH3Ign.cjs} +7 -7
  231. package/dist/chunks/{NcAppSidebar-6PtLRD0F.mjs.map → NcAppSidebar-DrjH3Ign.cjs.map} +1 -1
  232. package/dist/chunks/{NcAppSidebar-6PtLRD0F.mjs → NcAppSidebar-UROIM84v.mjs} +7 -7
  233. package/dist/chunks/{NcAppSidebar-BtJnp-19.cjs.map → NcAppSidebar-UROIM84v.mjs.map} +1 -1
  234. package/dist/chunks/{NcAvatar-CbUnw3_c.cjs → NcAvatar-CYqiINFK.cjs} +38 -28
  235. package/dist/chunks/NcAvatar-CYqiINFK.cjs.map +1 -0
  236. package/dist/chunks/{NcAvatar-DC7NtEPz.mjs → NcAvatar-NIEuFVUx.mjs} +36 -26
  237. package/dist/chunks/NcAvatar-NIEuFVUx.mjs.map +1 -0
  238. package/dist/chunks/{NcBreadcrumb-K0ol_C7l.cjs → NcBreadcrumb-BiW4k0c_.cjs} +2 -2
  239. package/dist/chunks/{NcBreadcrumb-K0ol_C7l.cjs.map → NcBreadcrumb-BiW4k0c_.cjs.map} +1 -1
  240. package/dist/chunks/{NcBreadcrumb-WO64bNkF.mjs → NcBreadcrumb-BjsavDr1.mjs} +2 -2
  241. package/dist/chunks/{NcBreadcrumb-WO64bNkF.mjs.map → NcBreadcrumb-BjsavDr1.mjs.map} +1 -1
  242. package/dist/chunks/{NcBreadcrumbs-DrTlt5X4.mjs → NcBreadcrumbs-Bc2obqjl.mjs} +4 -4
  243. package/dist/chunks/{NcBreadcrumbs-DrTlt5X4.mjs.map → NcBreadcrumbs-Bc2obqjl.mjs.map} +1 -1
  244. package/dist/chunks/{NcBreadcrumbs-Ds40ClR-.cjs → NcBreadcrumbs-Dwnn6dKU.cjs} +4 -4
  245. package/dist/chunks/{NcBreadcrumbs-Ds40ClR-.cjs.map → NcBreadcrumbs-Dwnn6dKU.cjs.map} +1 -1
  246. package/dist/chunks/{NcCheckboxRadioSwitch-BIEYfWtF.mjs → NcCheckboxRadioSwitch-BJg75WBj.mjs} +4 -4
  247. package/dist/chunks/{NcCheckboxRadioSwitch-BIEYfWtF.mjs.map → NcCheckboxRadioSwitch-BJg75WBj.mjs.map} +1 -1
  248. package/dist/chunks/{NcCheckboxRadioSwitch-IOUKKqSP.cjs → NcCheckboxRadioSwitch-G28IJAL-.cjs} +4 -4
  249. package/dist/chunks/{NcCheckboxRadioSwitch-IOUKKqSP.cjs.map → NcCheckboxRadioSwitch-G28IJAL-.cjs.map} +1 -1
  250. package/dist/chunks/{NcCollectionList-CdqFiw6Z.mjs → NcCollectionList-BZmZbRsV.mjs} +6 -6
  251. package/dist/chunks/{NcCollectionList-CdqFiw6Z.mjs.map → NcCollectionList-BZmZbRsV.mjs.map} +1 -1
  252. package/dist/chunks/{NcCollectionList-B7SKtsie.cjs → NcCollectionList-Co3VxzCN.cjs} +6 -6
  253. package/dist/chunks/{NcCollectionList-B7SKtsie.cjs.map → NcCollectionList-Co3VxzCN.cjs.map} +1 -1
  254. package/dist/chunks/{NcColorPicker-CtcS-XMk.mjs → NcColorPicker-CApQdWp0.mjs} +65 -34
  255. package/dist/chunks/NcColorPicker-CApQdWp0.mjs.map +1 -0
  256. package/dist/chunks/{NcColorPicker-HzfzrrTt.cjs → NcColorPicker-CwPThFLP.cjs} +65 -34
  257. package/dist/chunks/NcColorPicker-CwPThFLP.cjs.map +1 -0
  258. package/dist/chunks/{NcContent-BOBFr3nn.mjs → NcContent-BkmB4vmh.mjs} +4 -4
  259. package/dist/chunks/{NcContent-B2Uvy01y.cjs.map → NcContent-BkmB4vmh.mjs.map} +1 -1
  260. package/dist/chunks/{NcContent-B2Uvy01y.cjs → NcContent-h4LUA1hj.cjs} +4 -4
  261. package/dist/chunks/{NcContent-BOBFr3nn.mjs.map → NcContent-h4LUA1hj.cjs.map} +1 -1
  262. package/dist/chunks/{NcDashboardWidget-C3FrsWrR.mjs → NcDashboardWidget-CXKrTVGk.mjs} +4 -4
  263. package/dist/chunks/{NcDashboardWidget-C3FrsWrR.mjs.map → NcDashboardWidget-CXKrTVGk.mjs.map} +1 -1
  264. package/dist/chunks/{NcDashboardWidget-CJMYBSOl.cjs → NcDashboardWidget-Dn_Rq1Mt.cjs} +4 -4
  265. package/dist/chunks/{NcDashboardWidget-CJMYBSOl.cjs.map → NcDashboardWidget-Dn_Rq1Mt.cjs.map} +1 -1
  266. package/dist/chunks/{NcDashboardWidgetItem-EVIAYLsi.cjs → NcDashboardWidgetItem-C5P0N-U_.cjs} +4 -4
  267. package/dist/chunks/{NcDashboardWidgetItem-EVIAYLsi.cjs.map → NcDashboardWidgetItem-C5P0N-U_.cjs.map} +1 -1
  268. package/dist/chunks/{NcDashboardWidgetItem-D83T9o2C.mjs → NcDashboardWidgetItem-CfhAMc3T.mjs} +4 -4
  269. package/dist/chunks/{NcDashboardWidgetItem-D83T9o2C.mjs.map → NcDashboardWidgetItem-CfhAMc3T.mjs.map} +1 -1
  270. package/dist/chunks/{NcDialog-OV8kfc5o.mjs → NcDialog-C_IHQciE.mjs} +2 -2
  271. package/dist/chunks/{NcDialog-OV8kfc5o.mjs.map → NcDialog-C_IHQciE.mjs.map} +1 -1
  272. package/dist/chunks/{NcDialog-D4gfqrqn.cjs → NcDialog-Cqdo11BM.cjs} +2 -2
  273. package/dist/chunks/{NcDialog-D4gfqrqn.cjs.map → NcDialog-Cqdo11BM.cjs.map} +1 -1
  274. package/dist/chunks/{NcDialogButton-BhuiKGmE.mjs → NcDialogButton-Cc3iWZH1.mjs} +2 -2
  275. package/dist/chunks/{NcDialogButton-BhuiKGmE.mjs.map → NcDialogButton-Cc3iWZH1.mjs.map} +1 -1
  276. package/dist/chunks/{NcDialogButton-SPofxC7K.cjs → NcDialogButton-_biPxXPQ.cjs} +2 -2
  277. package/dist/chunks/{NcDialogButton-SPofxC7K.cjs.map → NcDialogButton-_biPxXPQ.cjs.map} +1 -1
  278. package/dist/chunks/{NcEmojiPicker-BJSfoews.mjs → NcEmojiPicker-C9kzoPy9.mjs} +7 -7
  279. package/dist/chunks/{NcEmojiPicker-BJSfoews.mjs.map → NcEmojiPicker-C9kzoPy9.mjs.map} +1 -1
  280. package/dist/chunks/{NcEmojiPicker-LpRAYAZU.cjs → NcEmojiPicker-CD7z1FNp.cjs} +7 -7
  281. package/dist/chunks/{NcEmojiPicker-LpRAYAZU.cjs.map → NcEmojiPicker-CD7z1FNp.cjs.map} +1 -1
  282. package/dist/chunks/{NcHeaderMenu-Dj7jeq88.mjs → NcHeaderMenu--AvoyMeD.mjs} +6 -4
  283. package/dist/chunks/{NcHeaderMenu-Dj7jeq88.mjs.map → NcHeaderMenu--AvoyMeD.mjs.map} +1 -1
  284. package/dist/chunks/{NcHeaderMenu-CCaYMhFb.cjs → NcHeaderMenu-B12nEFGc.cjs} +6 -4
  285. package/dist/chunks/{NcHeaderMenu-CCaYMhFb.cjs.map → NcHeaderMenu-B12nEFGc.cjs.map} +1 -1
  286. package/dist/chunks/{NcInputConfirmCancel-DiMrwB9r.cjs → NcInputConfirmCancel-BpPXGiKs.cjs} +2 -2
  287. package/dist/chunks/{NcInputConfirmCancel-DiMrwB9r.cjs.map → NcInputConfirmCancel-BpPXGiKs.cjs.map} +1 -1
  288. package/dist/chunks/{NcInputConfirmCancel-B4xEFita.mjs → NcInputConfirmCancel-P1H1ymiB.mjs} +2 -2
  289. package/dist/chunks/{NcInputConfirmCancel-B4xEFita.mjs.map → NcInputConfirmCancel-P1H1ymiB.mjs.map} +1 -1
  290. package/dist/chunks/{NcInputField-C61UUN46.cjs → NcInputField-CfK08BcA.cjs} +11 -4
  291. package/dist/chunks/NcInputField-CfK08BcA.cjs.map +1 -0
  292. package/dist/chunks/{NcInputField-DTtUueUZ.mjs → NcInputField-ixOGmIZ8.mjs} +11 -4
  293. package/dist/chunks/NcInputField-ixOGmIZ8.mjs.map +1 -0
  294. package/dist/chunks/{NcListItem-BHhlE1Sb.mjs → NcListItem-BkW4aSAh.mjs} +7 -6
  295. package/dist/chunks/NcListItem-BkW4aSAh.mjs.map +1 -0
  296. package/dist/chunks/{NcListItem-Bs-sl-hH.cjs → NcListItem-Dxhvk0tn.cjs} +7 -6
  297. package/dist/chunks/NcListItem-Dxhvk0tn.cjs.map +1 -0
  298. package/dist/chunks/{NcListItemIcon-DQn2njGl.cjs → NcListItemIcon-Ceh9_B36.cjs} +5 -3
  299. package/dist/chunks/{NcListItemIcon-DQn2njGl.cjs.map → NcListItemIcon-Ceh9_B36.cjs.map} +1 -1
  300. package/dist/chunks/{NcListItemIcon-BDq6PIUq.mjs → NcListItemIcon-DL1UGBlY.mjs} +5 -3
  301. package/dist/chunks/{NcListItemIcon-BDq6PIUq.mjs.map → NcListItemIcon-DL1UGBlY.mjs.map} +1 -1
  302. package/dist/chunks/{NcPasswordField-5oXVlA4T.mjs → NcPasswordField-Bf_EN2zU.mjs} +3 -3
  303. package/dist/chunks/{NcPasswordField-5oXVlA4T.mjs.map → NcPasswordField-Bf_EN2zU.mjs.map} +1 -1
  304. package/dist/chunks/{NcPasswordField-B_d4oTF9.cjs → NcPasswordField-DflDMgYh.cjs} +3 -3
  305. package/dist/chunks/{NcPasswordField-B_d4oTF9.cjs.map → NcPasswordField-DflDMgYh.cjs.map} +1 -1
  306. package/dist/chunks/{NcPopover-kYsewfff.mjs → NcPopover-4-YxCZOD.mjs} +2 -2
  307. package/dist/chunks/{NcPopover-kYsewfff.mjs.map → NcPopover-4-YxCZOD.mjs.map} +1 -1
  308. package/dist/chunks/{NcPopover-B2z7TwNr.cjs → NcPopover-DH2oMHFe.cjs} +2 -2
  309. package/dist/chunks/{NcPopover-B2z7TwNr.cjs.map → NcPopover-DH2oMHFe.cjs.map} +1 -1
  310. package/dist/chunks/{NcProgressBar-DegJ2JjE.mjs → NcProgressBar-CI_nOrPg.mjs} +4 -4
  311. package/dist/chunks/{NcProgressBar-DegJ2JjE.mjs.map → NcProgressBar-CI_nOrPg.mjs.map} +1 -1
  312. package/dist/chunks/{NcProgressBar-Do5Y3u8S.cjs → NcProgressBar-lh4Gtdfr.cjs} +4 -4
  313. package/dist/chunks/{NcProgressBar-Do5Y3u8S.cjs.map → NcProgressBar-lh4Gtdfr.cjs.map} +1 -1
  314. package/dist/chunks/{NcRelatedResourcesPanel-DDKi2A47.cjs → NcRelatedResourcesPanel-D_4x0nYR.cjs} +2 -2
  315. package/dist/chunks/{NcRelatedResourcesPanel-DDKi2A47.cjs.map → NcRelatedResourcesPanel-D_4x0nYR.cjs.map} +1 -1
  316. package/dist/chunks/{NcRelatedResourcesPanel-w0cVgK_u.mjs → NcRelatedResourcesPanel-qQK3J_qe.mjs} +2 -2
  317. package/dist/chunks/{NcRelatedResourcesPanel-w0cVgK_u.mjs.map → NcRelatedResourcesPanel-qQK3J_qe.mjs.map} +1 -1
  318. package/dist/chunks/{NcRichContenteditable-CbF4935r.cjs → NcRichContenteditable-Dwe0KT-g.cjs} +21 -16
  319. package/dist/chunks/NcRichContenteditable-Dwe0KT-g.cjs.map +1 -0
  320. package/dist/chunks/{NcRichContenteditable-Cqt-neS3.mjs → NcRichContenteditable-Vv9aizR-.mjs} +21 -16
  321. package/dist/chunks/NcRichContenteditable-Vv9aizR-.mjs.map +1 -0
  322. package/dist/chunks/{NcRichText-BWY0OxW9.mjs → NcRichText-CeLtcmp0.mjs} +3 -3
  323. package/dist/chunks/{NcRichText-BWY0OxW9.mjs.map → NcRichText-CeLtcmp0.mjs.map} +1 -1
  324. package/dist/chunks/{NcRichText-DxDK1G5d.cjs → NcRichText-Dk2KeWVm.cjs} +3 -3
  325. package/dist/chunks/{NcRichText-DxDK1G5d.cjs.map → NcRichText-Dk2KeWVm.cjs.map} +1 -1
  326. package/dist/chunks/{NcSavingIndicatorIcon-Bu-zt4pR.cjs → NcSavingIndicatorIcon-DFyB2KRK.cjs} +2 -2
  327. package/dist/chunks/{NcSavingIndicatorIcon-nv1147dk.mjs.map → NcSavingIndicatorIcon-DFyB2KRK.cjs.map} +1 -1
  328. package/dist/chunks/{NcSavingIndicatorIcon-nv1147dk.mjs → NcSavingIndicatorIcon-U7AIamCl.mjs} +2 -2
  329. package/dist/chunks/{NcSavingIndicatorIcon-Bu-zt4pR.cjs.map → NcSavingIndicatorIcon-U7AIamCl.mjs.map} +1 -1
  330. package/dist/chunks/{NcSelect-DmIaznJY.mjs → NcSelect-dUFIWW35.mjs} +3 -3
  331. package/dist/chunks/{NcSelect-DmIaznJY.mjs.map → NcSelect-dUFIWW35.mjs.map} +1 -1
  332. package/dist/chunks/{NcSelect-CvN1DuY2.cjs → NcSelect-mKPxrPJk.cjs} +3 -3
  333. package/dist/chunks/{NcSelect-CvN1DuY2.cjs.map → NcSelect-mKPxrPJk.cjs.map} +1 -1
  334. package/dist/chunks/{NcSelectTags-MsqvY1l4.mjs → NcSelectTags-D-ZtVQr7.mjs} +3 -3
  335. package/dist/chunks/{NcSelectTags-MsqvY1l4.mjs.map → NcSelectTags-D-ZtVQr7.mjs.map} +1 -1
  336. package/dist/chunks/{NcSelectTags-DJoDzrZl.cjs → NcSelectTags-D43sFJA2.cjs} +3 -3
  337. package/dist/chunks/{NcSelectTags-DJoDzrZl.cjs.map → NcSelectTags-D43sFJA2.cjs.map} +1 -1
  338. package/dist/chunks/{NcSelectUsers-BYynRS17.mjs → NcSelectUsers-C7sxHP1r.mjs} +4 -4
  339. package/dist/chunks/{NcSelectUsers-BYynRS17.mjs.map → NcSelectUsers-C7sxHP1r.mjs.map} +1 -1
  340. package/dist/chunks/{NcSelectUsers-IoPgizBH.cjs → NcSelectUsers-CpT8ELJ8.cjs} +4 -4
  341. package/dist/chunks/{NcSelectUsers-IoPgizBH.cjs.map → NcSelectUsers-CpT8ELJ8.cjs.map} +1 -1
  342. package/dist/chunks/{NcSettingsInputText-BknU0gbE.cjs → NcSettingsInputText-Cf-juMyF.cjs} +2 -2
  343. package/dist/chunks/{NcSettingsInputText-BknU0gbE.cjs.map → NcSettingsInputText-Cf-juMyF.cjs.map} +1 -1
  344. package/dist/chunks/{NcSettingsInputText-BXbSSC7N.mjs → NcSettingsInputText-DYN2i2d2.mjs} +2 -2
  345. package/dist/chunks/{NcSettingsInputText-BXbSSC7N.mjs.map → NcSettingsInputText-DYN2i2d2.mjs.map} +1 -1
  346. package/dist/chunks/{NcSettingsSection-BNefU-yk.mjs → NcSettingsSection-DK0dtGcw.mjs} +8 -9
  347. package/dist/chunks/NcSettingsSection-DK0dtGcw.mjs.map +1 -0
  348. package/dist/chunks/{NcSettingsSection-dlDi9oLJ.cjs → NcSettingsSection-VrSMms0R.cjs} +8 -9
  349. package/dist/chunks/NcSettingsSection-VrSMms0R.cjs.map +1 -0
  350. package/dist/chunks/{NcSettingsSelectGroup-DWEorw2V.mjs → NcSettingsSelectGroup-B3PCXeTE.mjs} +5 -5
  351. package/dist/chunks/{NcSettingsSelectGroup-DWEorw2V.mjs.map → NcSettingsSelectGroup-B3PCXeTE.mjs.map} +1 -1
  352. package/dist/chunks/{NcSettingsSelectGroup-Bm8naUVk.cjs → NcSettingsSelectGroup-CW5zc5my.cjs} +5 -5
  353. package/dist/chunks/{NcSettingsSelectGroup-Bm8naUVk.cjs.map → NcSettingsSelectGroup-CW5zc5my.cjs.map} +1 -1
  354. package/dist/chunks/{NcTextArea-BHERsE_g.mjs → NcTextArea-HIcTePZQ.mjs} +11 -4
  355. package/dist/chunks/NcTextArea-HIcTePZQ.mjs.map +1 -0
  356. package/dist/chunks/{NcTextArea-CYLGAGcO.cjs → NcTextArea-MvdupZXi.cjs} +11 -4
  357. package/dist/chunks/NcTextArea-MvdupZXi.cjs.map +1 -0
  358. package/dist/chunks/{NcTextField-Cd_RjGj6.mjs → NcTextField-BpHFogO-.mjs} +4 -4
  359. package/dist/chunks/{NcTextField-Cd_RjGj6.mjs.map → NcTextField-BpHFogO-.mjs.map} +1 -1
  360. package/dist/chunks/{NcTextField-CMxmd2Wn.cjs → NcTextField-C1dfqkDm.cjs} +4 -4
  361. package/dist/chunks/{NcTextField-CMxmd2Wn.cjs.map → NcTextField-C1dfqkDm.cjs.map} +1 -1
  362. package/dist/chunks/NcThemeProvider-25ResoIv.mjs +53 -0
  363. package/dist/chunks/NcThemeProvider-25ResoIv.mjs.map +1 -0
  364. package/dist/chunks/NcThemeProvider-BqGPTeWg.cjs +52 -0
  365. package/dist/chunks/NcThemeProvider-BqGPTeWg.cjs.map +1 -0
  366. package/dist/chunks/{NcTimezonePicker-Ds_yZJVZ.cjs → NcTimezonePicker-ClV6QojF.cjs} +3 -3
  367. package/dist/chunks/{NcTimezonePicker-Ds_yZJVZ.cjs.map → NcTimezonePicker-ClV6QojF.cjs.map} +1 -1
  368. package/dist/chunks/{NcTimezonePicker-BjUmYLVj.mjs → NcTimezonePicker-Wwx4gzK_.mjs} +3 -3
  369. package/dist/chunks/{NcTimezonePicker-BjUmYLVj.mjs.map → NcTimezonePicker-Wwx4gzK_.mjs.map} +1 -1
  370. package/dist/chunks/{NcUserBubble-B5MtyQce.cjs → NcUserBubble-BmUfbXN0.cjs} +3 -3
  371. package/dist/chunks/{NcUserBubble-B5MtyQce.cjs.map → NcUserBubble-BmUfbXN0.cjs.map} +1 -1
  372. package/dist/chunks/{NcUserBubble-DH2UiUfH.mjs → NcUserBubble-DFos_NnH.mjs} +3 -3
  373. package/dist/chunks/{NcUserBubble-DH2UiUfH.mjs.map → NcUserBubble-DFos_NnH.mjs.map} +1 -1
  374. package/dist/chunks/NcUserStatusIcon-BeuFRhWr.cjs +147 -0
  375. package/dist/chunks/NcUserStatusIcon-BeuFRhWr.cjs.map +1 -0
  376. package/dist/chunks/NcUserStatusIcon-Biiq6zqy.mjs +146 -0
  377. package/dist/chunks/NcUserStatusIcon-Biiq6zqy.mjs.map +1 -0
  378. package/dist/chunks/{ScopeComponent-CC0LPlVx.mjs → ScopeComponent-DxrG1ptt.mjs} +2 -2
  379. package/dist/chunks/{ScopeComponent-CC0LPlVx.mjs.map → ScopeComponent-DxrG1ptt.mjs.map} +1 -1
  380. package/dist/chunks/{ScopeComponent-SIPKHdQy.cjs → ScopeComponent-X0gqPFY9.cjs} +2 -2
  381. package/dist/chunks/{ScopeComponent-SIPKHdQy.cjs.map → ScopeComponent-X0gqPFY9.cjs.map} +1 -1
  382. package/dist/chunks/_l10n-BU8-kQzN.mjs +145 -0
  383. package/dist/chunks/_l10n-BU8-kQzN.mjs.map +1 -0
  384. package/dist/chunks/_l10n-DpwcsAC3.cjs +144 -0
  385. package/dist/chunks/{_l10n-CXXSIoEf.cjs.map → _l10n-DpwcsAC3.cjs.map} +1 -1
  386. package/dist/chunks/constants-Bls5liKo.mjs +9 -0
  387. package/dist/chunks/constants-Bls5liKo.mjs.map +1 -0
  388. package/dist/chunks/constants-C_lA-vcp.cjs +8 -0
  389. package/dist/chunks/constants-C_lA-vcp.cjs.map +1 -0
  390. package/dist/chunks/{focusTrap-Vbgxe8ZX.cjs → focusTrap-DUTqW_IG.cjs} +6 -3
  391. package/dist/chunks/focusTrap-DUTqW_IG.cjs.map +1 -0
  392. package/dist/chunks/{focusTrap-DmkaYJTC.mjs → focusTrap-HJQ4pqHV.mjs} +6 -3
  393. package/dist/chunks/focusTrap-HJQ4pqHV.mjs.map +1 -0
  394. package/dist/chunks/getAvatarUrl-Du9Y3cPO.cjs +14 -0
  395. package/dist/chunks/getAvatarUrl-Du9Y3cPO.cjs.map +1 -0
  396. package/dist/chunks/getAvatarUrl-IhLacDEr.mjs +15 -0
  397. package/dist/chunks/getAvatarUrl-IhLacDEr.mjs.map +1 -0
  398. package/dist/chunks/{index-B0yHh7IW.cjs → index-AlIgEQXL.cjs} +12 -8
  399. package/dist/chunks/index-AlIgEQXL.cjs.map +1 -0
  400. package/dist/chunks/{index-Dpk-sL3D.mjs → index-B8gPNa8c.mjs} +12 -8
  401. package/dist/chunks/index-B8gPNa8c.mjs.map +1 -0
  402. package/dist/chunks/legacy-KBXhWdRy.cjs +5 -0
  403. package/dist/chunks/legacy-KBXhWdRy.cjs.map +1 -0
  404. package/dist/chunks/legacy-MK4GvP26.mjs +6 -0
  405. package/dist/chunks/legacy-MK4GvP26.mjs.map +1 -0
  406. package/dist/chunks/{mdi-BflUJIiB.cjs → mdi-BqDPfc6J.cjs} +5 -1
  407. package/dist/chunks/{mdi-C1L0jZ1V.mjs.map → mdi-BqDPfc6J.cjs.map} +1 -1
  408. package/dist/chunks/{mdi-C1L0jZ1V.mjs → mdi-vLkDaZ9y.mjs} +6 -2
  409. package/dist/chunks/{mdi-BflUJIiB.cjs.map → mdi-vLkDaZ9y.mjs.map} +1 -1
  410. package/dist/chunks/{referencePickerModal-DbrHVDKS.cjs → referencePickerModal-BVu6vAC8.cjs} +6 -6
  411. package/dist/chunks/{referencePickerModal-DbrHVDKS.cjs.map → referencePickerModal-BVu6vAC8.cjs.map} +1 -1
  412. package/dist/chunks/{referencePickerModal-sscttPbK.mjs → referencePickerModal-CXQey71p.mjs} +6 -6
  413. package/dist/chunks/{referencePickerModal-sscttPbK.mjs.map → referencePickerModal-CXQey71p.mjs.map} +1 -1
  414. package/dist/chunks/{useTrapStackControl-BJmJdJak.cjs → useTrapStackControl-CTZTSUOt.cjs} +2 -2
  415. package/dist/chunks/{useTrapStackControl-BJmJdJak.cjs.map → useTrapStackControl-CTZTSUOt.cjs.map} +1 -1
  416. package/dist/chunks/{useTrapStackControl-b3A_383w.mjs → useTrapStackControl-yqM2SDEs.mjs} +2 -2
  417. package/dist/chunks/{useTrapStackControl-b3A_383w.mjs.map → useTrapStackControl-yqM2SDEs.mjs.map} +1 -1
  418. package/dist/composables/useIsDarkTheme/constants.d.ts +7 -0
  419. package/dist/composables/useIsDarkTheme/index.d.ts +7 -3
  420. package/dist/functions/dialog/index.d.ts +10 -14
  421. package/dist/functions/index.d.ts +1 -1
  422. package/dist/index.cjs +55 -52
  423. package/dist/index.cjs.map +1 -1
  424. package/dist/index.mjs +57 -54
  425. package/dist/index.mjs.map +1 -1
  426. package/dist/utils/focusTrap.d.ts +6 -0
  427. package/dist/utils/getAvatarUrl.d.ts +23 -1
  428. package/dist/utils/legacy.d.ts +5 -0
  429. package/package.json +43 -34
  430. package/dist/assets/NcAvatar-BgjB8atT.css +0 -132
  431. package/dist/assets/NcButton-DnNZaEy_.css +0 -210
  432. package/dist/chunks/DotsHorizontal-BoI3vnhk.cjs +0 -37
  433. package/dist/chunks/DotsHorizontal-BoI3vnhk.cjs.map +0 -1
  434. package/dist/chunks/DotsHorizontal-C6LNsw4N.mjs +0 -38
  435. package/dist/chunks/DotsHorizontal-C6LNsw4N.mjs.map +0 -1
  436. package/dist/chunks/NcActionInput-CtkE6Hny.cjs.map +0 -1
  437. package/dist/chunks/NcActionInput-D3FN751M.mjs.map +0 -1
  438. package/dist/chunks/NcActions-CzpbMJoY.mjs.map +0 -1
  439. package/dist/chunks/NcActions-DvZOLPjX.cjs.map +0 -1
  440. package/dist/chunks/NcAppNavigationItem-D7Y5mGGC.mjs.map +0 -1
  441. package/dist/chunks/NcAppNavigationItem-huCt6Fb0.cjs.map +0 -1
  442. package/dist/chunks/NcAvatar-CbUnw3_c.cjs.map +0 -1
  443. package/dist/chunks/NcAvatar-DC7NtEPz.mjs.map +0 -1
  444. package/dist/chunks/NcColorPicker-CtcS-XMk.mjs.map +0 -1
  445. package/dist/chunks/NcColorPicker-HzfzrrTt.cjs.map +0 -1
  446. package/dist/chunks/NcInputField-C61UUN46.cjs.map +0 -1
  447. package/dist/chunks/NcInputField-DTtUueUZ.mjs.map +0 -1
  448. package/dist/chunks/NcListItem-BHhlE1Sb.mjs.map +0 -1
  449. package/dist/chunks/NcListItem-Bs-sl-hH.cjs.map +0 -1
  450. package/dist/chunks/NcRichContenteditable-CbF4935r.cjs.map +0 -1
  451. package/dist/chunks/NcRichContenteditable-Cqt-neS3.mjs.map +0 -1
  452. package/dist/chunks/NcSettingsSection-BNefU-yk.mjs.map +0 -1
  453. package/dist/chunks/NcSettingsSection-dlDi9oLJ.cjs.map +0 -1
  454. package/dist/chunks/NcTextArea-BHERsE_g.mjs.map +0 -1
  455. package/dist/chunks/NcTextArea-CYLGAGcO.cjs.map +0 -1
  456. package/dist/chunks/NcUserStatusIcon-B_-V1MDZ.cjs +0 -139
  457. package/dist/chunks/NcUserStatusIcon-B_-V1MDZ.cjs.map +0 -1
  458. package/dist/chunks/NcUserStatusIcon-Bya1v9qo.mjs +0 -138
  459. package/dist/chunks/NcUserStatusIcon-Bya1v9qo.mjs.map +0 -1
  460. package/dist/chunks/_l10n-CXXSIoEf.cjs +0 -139
  461. package/dist/chunks/_l10n-DIOHNc85.mjs +0 -140
  462. package/dist/chunks/_l10n-DIOHNc85.mjs.map +0 -1
  463. package/dist/chunks/focusTrap-DmkaYJTC.mjs.map +0 -1
  464. package/dist/chunks/focusTrap-Vbgxe8ZX.cjs.map +0 -1
  465. package/dist/chunks/getAvatarUrl-6z9qRNH-.cjs +0 -11
  466. package/dist/chunks/getAvatarUrl-6z9qRNH-.cjs.map +0 -1
  467. package/dist/chunks/getAvatarUrl-DxvUjKMi.mjs +0 -12
  468. package/dist/chunks/getAvatarUrl-DxvUjKMi.mjs.map +0 -1
  469. package/dist/chunks/index-B0yHh7IW.cjs.map +0 -1
  470. package/dist/chunks/index-Dpk-sL3D.mjs.map +0 -1
  471. package/dist/chunks/usernameToColor-BPaEECqs.mjs +0 -27
  472. package/dist/chunks/usernameToColor-BPaEECqs.mjs.map +0 -1
  473. package/dist/chunks/usernameToColor-Bu43-l7c.cjs +0 -28
  474. package/dist/chunks/usernameToColor-Bu43-l7c.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"NcCollectionList-B7SKtsie.cjs","sources":["../../src/components/NcCollectionList/NcCollectionListItem.vue","../../src/components/NcCollectionList/service.ts","../../src/components/NcCollectionList/useCollections.js","../../src/components/NcCollectionList/NcCollectionList.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<li class=\"collection-list-item\">\n\t\t<NcAvatar :display-name=\"collection.name\" allow-placeholder class=\"collection-avatar\" />\n\t\t<span v-if=\"newName === null\"\n\t\t\tclass=\"collection-item-name\"\n\t\t\ttitle=\"\"\n\t\t\t@click=\"showDetails\">{{ collection.name }}</span>\n\t\t<form v-else :class=\"{'should-shake': error }\" @submit.prevent=\"renameCollection\">\n\t\t\t<input v-model=\"newName\"\n\t\t\t\ttype=\"text\"\n\t\t\t\tautocomplete=\"off\"\n\t\t\t\tautocapitalize=\"off\">\n\t\t\t<input type=\"submit\" value=\"\" class=\"icon-confirm\">\n\t\t</form>\n\t\t<div v-if=\"!detailsOpen && newName === null\" class=\"linked-icons\">\n\t\t\t<component :is=\"getComponent(resource).component\"\n\t\t\t\tv-for=\"resource in resources.slice(0, 2)\"\n\t\t\t\t:key=\"resource.type + '|' + resource.id\"\n\t\t\t\t:title=\"resource.name\"\n\t\t\t\t:to=\"getComponent(resource).to\"\n\t\t\t\t:href=\"getComponent(resource).href\"\n\t\t\t\t:class=\"typeClass(resource)\">\n\t\t\t\t<img :src=\"iconUrl(resource)\" :alt=\"resource.name\">\n\t\t\t</component>\n\t\t</div>\n\n\t\t<span v-if=\"newName === null\" class=\"sharingOptionsGroup\">\n\t\t\t<NcActions>\n\t\t\t\t<NcActionButton icon=\"icon-info\"\n\t\t\t\t\t@click.prevent=\"toggleDetails\">\n\t\t\t\t\t{{ detailsOpen ? t('Hide details') : t('Show details') }}\n\t\t\t\t</NcActionButton>\n\t\t\t\t<NcActionButton icon=\"icon-rename\"\n\t\t\t\t\t@click.prevent=\"openRename\">\n\t\t\t\t\t{{ t('Rename project') }}\n\t\t\t\t</NcActionButton>\n\t\t\t</NcActions>\n\t\t</span>\n\n\t\t<transition name=\"fade\">\n\t\t\t<div v-if=\"error\" class=\"error\">\n\t\t\t\t{{ error }}\n\t\t\t</div>\n\t\t</transition>\n\t\t<transition name=\"fade\">\n\t\t\t<ul v-if=\"detailsOpen\" class=\"resource-list-details\">\n\t\t\t\t<li v-for=\"resource in resources\"\n\t\t\t\t\t:key=\"resource.type + '|' + resource.id\"\n\t\t\t\t\t:class=\"typeClass(resource)\">\n\t\t\t\t\t<component :is=\"getComponent(resource).component\"\n\t\t\t\t\t\t:to=\"getComponent(resource).to\"\n\t\t\t\t\t\t:href=\"getComponent(resource).href\">\n\t\t\t\t\t\t<img :src=\"iconUrl(resource)\" :alt=\"resource.name\">\n\t\t\t\t\t\t<span class=\"resource-name\">{{ resource.name || '' }}</span>\n\t\t\t\t\t</component>\n\t\t\t\t\t<span class=\"icon-close\" @click=\"removeResource(collection, resource)\" />\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</transition>\n\t</li>\n</template>\n\n<script>\nimport { t } from '../../l10n.js'\nimport { getRoute } from '../NcRichText/autolink.js'\n\nimport NcActions from '../NcActions/index.js'\nimport NcActionButton from '../NcActionButton/index.js'\nimport NcAvatar from '../NcAvatar/index.js'\n\nexport default {\n\tname: 'NcCollectionListItem',\n\n\tcomponents: {\n\t\tNcAvatar,\n\t\tNcActions,\n\t\tNcActionButton,\n\t},\n\n\tprops: {\n\t\tcollection: {\n\t\t\ttype: Object,\n\t\t\tdefault: null,\n\t\t},\n\n\t\terror: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t},\n\n\temits: ['remove-resource', 'rename-collection'],\n\n\tdata() {\n\t\treturn {\n\t\t\tdetailsOpen: false,\n\t\t\tnewName: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tgetIcon() {\n\t\t\treturn (resource) => [resource.iconClass]\n\t\t},\n\n\t\ttypeClass() {\n\t\t\treturn (resource) => 'resource-type-' + resource.type\n\t\t},\n\n\t\tresources() {\n\t\t\t// invalid resources come from server as empty array ([]) and not an object\n\t\t\treturn this.collection.resources?.filter(resource => !Array.isArray(resource)) ?? []\n\t\t},\n\n\t\tgetComponent() {\n\t\t\treturn (resource) => {\n\t\t\t\tconst route = getRoute(this.$router, resource.link)\n\n\t\t\t\treturn route\n\t\t\t\t\t? { component: 'router-link', to: route, href: undefined }\n\t\t\t\t\t: { component: 'a', to: undefined, href: resource.link }\n\t\t\t}\n\t\t},\n\n\t\ticonUrl() {\n\t\t\treturn (resource) => {\n\t\t\t\tif (resource.mimetype) {\n\t\t\t\t\treturn OC.MimeType.getIconUrl(resource.mimetype)\n\t\t\t\t}\n\t\t\t\tif (resource.iconUrl) {\n\t\t\t\t\treturn resource.iconUrl\n\t\t\t\t}\n\t\t\t\treturn ''\n\t\t\t}\n\t\t},\n\t},\n\n\tmethods: {\n\t\tt,\n\n\t\ttoggleDetails() {\n\t\t\tthis.detailsOpen = !this.detailsOpen\n\t\t},\n\n\t\tshowDetails() {\n\t\t\tthis.detailsOpen = true\n\t\t},\n\n\t\tremoveResource(collection, resource) {\n\t\t\tthis.$emit('remove-resource', {\n\t\t\t\tcollectionId: collection.id,\n\t\t\t\tresourceType: resource.type,\n\t\t\t\tresourceId: resource.id,\n\t\t\t})\n\t\t},\n\n\t\topenRename() {\n\t\t\tthis.newName = this.collection.name\n\t\t},\n\n\t\trenameCollection() {\n\t\t\tif (this.newName) {\n\t\t\t\tthis.$emit('rename-collection', {\n\t\t\t\t\tcollectionId: this.collection.id,\n\t\t\t\t\tname: this.newName,\n\t\t\t\t})\n\t\t\t}\n\t\t\tthis.newName = null\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.fade-enter-active, .fade-leave-active {\n\ttransition: opacity .3s ease;\n}\n\n.fade-enter, .fade-leave-to\n\t/* .fade-leave-active below version 2.1.8 */\n{\n\topacity: 0;\n}\n\n.linked-icons {\n\tdisplay: flex;\n\n\timg {\n\t\tpadding: 12px;\n\t\theight: 44px;\n\t\tdisplay: block;\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center;\n\t\topacity: 0.7;\n\n\t\t&:hover {\n\t\t\topacity: 1;\n\t\t}\n\t}\n}\n\n.popovermenu {\n\tdisplay: none;\n\n\t&.open {\n\t\tdisplay: block;\n\t}\n}\n\nli.collection-list-item {\n\tflex-wrap: wrap;\n\theight: auto;\n\tcursor: pointer;\n\tmargin-bottom: 0 !important;\n\n\t.collection-avatar {\n\t\tmargin-top: 0;\n\t}\n\n\tform, .collection-item-name {\n\t\tflex-basis: 10%;\n\t\tflex-grow: 1;\n\t\tdisplay: flex;\n\t}\n\n\t.collection-item-name {\n\t\tpadding: 12px 9px;\n\t}\n\n\tinput {\n\t\tmargin-top: 4px;\n\t\tborder-color: var(--color-border-maxcontrast);\n\n\t\t&[type=text] {\n\t\t\tflex-grow: 1;\n\t\t}\n\t}\n\n\t.error {\n\t\tflex-basis: 100%;\n\t\twidth: 100%;\n\t}\n\n\t.resource-list-details {\n\t\tflex-basis: 100%;\n\t\twidth: 100%;\n\n\t\tli {\n\t\t\tdisplay: flex;\n\t\t\tmargin-left: 44px;\n\t\t\tborder-radius: 3px;\n\t\t\tcursor: pointer;\n\n\t\t\t&:hover {\n\t\t\t\tbackground-color: var(--color-background-dark);\n\t\t\t}\n\n\t\t\ta {\n\t\t\t\tflex-grow: 1;\n\t\t\t\tpadding: 3px;\n\t\t\t\tmax-width: calc(100% - 30px);\n\t\t\t\tdisplay: flex;\n\t\t\t}\n\t\t}\n\n\t\tspan {\n\t\t\tdisplay: inline-block;\n\t\t\tvertical-align: top;\n\t\t\tmargin-right: 10px;\n\t\t}\n\n\t\tspan.resource-name {\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow: hidden;\n\t\t\tposition: relative;\n\t\t\tvertical-align: top;\n\t\t\twhite-space: nowrap;\n\t\t\tflex-grow: 1;\n\t\t\tpadding: 4px;\n\t\t}\n\n\t\timg {\n\t\t\twidth: 24px;\n\t\t\theight: 24px;\n\t\t}\n\n\t\t.icon-close {\n\t\t\topacity: .7;\n\n\t\t\t&:hover, &:focus {\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n.should-shake {\n\tanimation: shake 0.6s 1 linear;\n}\n\n@keyframes shake {\n\t0% {\n\t\ttransform: translate(15px);\n\t}\n\t20% {\n\t\ttransform: translate(-15px);\n\t}\n\t40% {\n\t\ttransform: translate(7px);\n\t}\n\t60% {\n\t\ttransform: translate(-7px);\n\t}\n\t80% {\n\t\ttransform: translate(3px);\n\t}\n\t100% {\n\t\ttransform: translate(0px);\n\t}\n}\n</style>\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios, { type AxiosResponse } from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport type { OCSResponse } from '@nextcloud/typings/ocs'\n\n/**\n * Extracts the OCS data from a response\n * @param response OCS response\n */\nfunction extractOcsData(response: AxiosResponse<OCSResponse>) {\n\treturn response.data.ocs.data\n}\n\n/**\n * Lists all collections\n * @param collectionId Collection ID\n */\nexport function listCollectionService(collectionId: number) {\n\treturn axios.get(generateOcsUrl('collaboration/resources/collections/{collectionId}', { collectionId })).then(extractOcsData)\n}\n\n/**\n * Renames a collection\n * @param collectionId Collection ID\n * @param collectionName New collection name\n */\nexport function renameCollectionService(collectionId: number, collectionName: string) {\n\treturn axios.put(generateOcsUrl('collaboration/resources/collections/{collectionId}', { collectionId }), { collectionName }).then(extractOcsData)\n}\n\n/**\n * Lists all collections for a resource\n * @param resourceType Resource type\n * @param resourceId Resource ID\n */\nexport function getCollectionsByResourceService(resourceType: string, resourceId: string) {\n\treturn axios.get(generateOcsUrl('collaboration/resources/{resourceType}/{resourceId}', { resourceType, resourceId })).then(extractOcsData)\n}\n\n/**\n * Creates a collection\n * @param resourceType Resource type\n * @param resourceId Resource ID\n * @param name Collection name\n */\nexport function createCollectionService(resourceType: string, resourceId: string, name: string) {\n\treturn axios.post(generateOcsUrl('collaboration/resources/{resourceType}/{resourceId}', { resourceType, resourceId }), { name }).then(extractOcsData)\n}\n\n/**\n * Adds a resource to a collection\n * @param collectionId Collection ID\n * @param resourceType Resource type\n * @param resourceId Resource ID\n */\nexport function addResourceService(collectionId: number, resourceType: string, resourceId: string) {\n\treturn axios.post(generateOcsUrl('collaboration/resources/collections/{collectionId}', { collectionId }), { resourceType, resourceId }).then(extractOcsData)\n}\n\n/**\n * Removes a resource from a collection\n * @param collectionId Collection ID\n * @param resourceType Resource type\n * @param resourceId Resource ID\n */\nexport function removeResourceService(collectionId: number, resourceType: string, resourceId: string) {\n\treturn axios.delete(generateOcsUrl('collaboration/resources/collections/{collectionId}', { collectionId }), { params: { resourceType, resourceId } }).then(extractOcsData)\n}\n\n/**\n * Searches for collections\n * @param query Search query\n */\nexport function searchService(query: string) {\n\treturn axios.get(generateOcsUrl('collaboration/resources/collections/search/{query}', { query })).then(extractOcsData)\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { ref, set } from 'vue'\nimport {\n\trenameCollectionService,\n\tgetCollectionsByResourceService,\n\tcreateCollectionService,\n\taddResourceService,\n\tremoveResourceService,\n} from './service.ts'\n\n/**\n * Use collections composable\n */\nexport function useCollections() {\n\t// State\n\tconst storedCollections = ref([])\n\n\t// Mutations\n\tconst addCollections = (collections) => {\n\t\tset(storedCollections, 'value', collections)\n\t}\n\n\tconst addCollection = (collection) => {\n\t\tset(storedCollections, 'value', [...storedCollections.value, collection])\n\t}\n\n\tconst removeCollection = (collectionId) => {\n\t\tset(storedCollections, 'value', storedCollections.value.filter(item => item.id !== collectionId))\n\t}\n\n\tconst updateCollection = (collection) => {\n\t\tconst index = storedCollections.value.findIndex(item => item.id === collection.id)\n\t\tif (index !== -1) {\n\t\t\tset(storedCollections.value, index, collection)\n\t\t} else {\n\t\t\taddCollection(collection)\n\t\t}\n\t}\n\n\t// Actions\n\tconst fetchCollectionsByResource = async ({ resourceType, resourceId }) => {\n\t\tconst collections = await getCollectionsByResourceService(resourceType, resourceId)\n\n\t\taddCollections(collections)\n\t}\n\n\tconst createCollection = async ({ baseResourceType, baseResourceId, resourceType, resourceId, name }) => {\n\t\tconst collection = await createCollectionService(baseResourceType, baseResourceId, name)\n\n\t\taddCollection(collection)\n\t\tawait addResourceToCollection({\n\t\t\tcollectionId: collection.id,\n\t\t\tresourceType,\n\t\t\tresourceId,\n\t\t})\n\t}\n\n\tconst renameCollection = async ({ collectionId, name }) => {\n\t\tconst collection = await renameCollectionService(collectionId, name)\n\n\t\tupdateCollection(collection)\n\t}\n\n\tconst addResourceToCollection = async ({ collectionId, resourceType, resourceId }) => {\n\t\tconst collection = await addResourceService(collectionId, resourceType, String(resourceId))\n\n\t\tupdateCollection(collection)\n\t}\n\n\tconst removeResourceFromCollection = async ({ collectionId, resourceType, resourceId }) => {\n\t\tconst collection = await removeResourceService(collectionId, resourceType, String(resourceId))\n\n\t\tif (collection.resources.length > 0) {\n\t\t\tupdateCollection(collection)\n\t\t} else {\n\t\t\tremoveCollection(collectionId)\n\t\t}\n\t}\n\n\treturn {\n\t\tstoredCollections,\n\t\tfetchCollectionsByResource,\n\t\tcreateCollection,\n\t\trenameCollection,\n\t\taddResourceToCollection,\n\t\tremoveResourceFromCollection,\n\t}\n}\n","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\nProvides a Vue standalone component for Nextcloud Projects feature introduced in Nextcloud 16. Replaces deprecated `nextcloud-vue-collections` library.\n\nProjects feature is deprecated since Nextcloud 25, and superseded by Related resources. See [NcRelatedResourcesPanel](#/Components/NcRelatedResourcesPanel) documentation for more information.\n\n### Usage\n\nTo enable feature in Nextcloud, run following command:\n```sh\nocc config:system:set --value true 'projects.enabled'\n```\n</docs>\n\n<template>\n\t<ul v-if=\"collections && type && id\" id=\"collection-list\" class=\"collection-list\">\n\t\t<li @click=\"showSelect\">\n\t\t\t<div class=\"avatar\">\n\t\t\t\t<span class=\"icon-projects\" />\n\t\t\t</div>\n\t\t\t<div id=\"collection-select-container\">\n\t\t\t\t<NcSelect ref=\"select\"\n\t\t\t\t\tv-model=\"value\"\n\t\t\t\t\t:aria-label-combobox=\"t('Add to a project')\"\n\t\t\t\t\t:options=\"options\"\n\t\t\t\t\t:placeholder=\"placeholder\"\n\t\t\t\t\tlabel=\"title\"\n\t\t\t\t\t:limit=\"5\"\n\t\t\t\t\t@close=\"isSelectOpen = false\"\n\t\t\t\t\t@open=\"isSelectOpen = true\"\n\t\t\t\t\t@option:selected=\"select\"\n\t\t\t\t\t@search=\"search\">\n\t\t\t\t\t<template #selected-option=\"option\">\n\t\t\t\t\t\t<span class=\"option__desc\">\n\t\t\t\t\t\t\t<span class=\"option__title\">{{ option.title }}</span>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</template>\n\t\t\t\t\t<template #option=\"option\">\n\t\t\t\t\t\t<span class=\"option__wrapper\">\n\t\t\t\t\t\t\t<span v-if=\"option.class\" :class=\"option.class\" class=\"avatar\" />\n\t\t\t\t\t\t\t<NcAvatar v-else-if=\"option.method !== 2\" allow-placeholder :display-name=\"option.title\" />\n\t\t\t\t\t\t\t<span class=\"option__title\">{{ option.title }}</span>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</template>\n\t\t\t\t\t<p class=\"hint\">\n\t\t\t\t\t\t{{ t('Connect items to a project to make them easier to find') }}\n\t\t\t\t\t</p>\n\t\t\t\t</NcSelect>\n\t\t\t</div>\n\t\t</li>\n\t\t<transition name=\"fade\">\n\t\t\t<li v-if=\"error\" class=\"error\">\n\t\t\t\t{{ error }}\n\t\t\t</li>\n\t\t</transition>\n\t\t<NcCollectionListItem v-for=\"collection in collections\"\n\t\t\t:key=\"collection.id\"\n\t\t\t:collection=\"collection\"\n\t\t\t:error=\"collectionsError[collection.id]\"\n\t\t\t@rename-collection=\"renameCollectionFromItem\"\n\t\t\t@remove-resource=\"removeResourceFromCollection\" />\n\t</ul>\n</template>\n\n<script>\nimport debounce from 'debounce'\nimport { ref } from 'vue'\nimport { t } from '../../l10n.js'\n\nimport NcAvatar from '../NcAvatar/index.js'\nimport NcSelect from '../NcSelect/index.js'\nimport NcCollectionListItem from './NcCollectionListItem.vue'\n\nimport { useCollections } from './useCollections.js'\nimport { searchService } from './service.ts'\n\nconst METHOD_CREATE_COLLECTION = 0\nconst METHOD_ADD_TO_COLLECTION = 1\n\nexport default {\n\tname: 'NcCollectionList',\n\n\tcomponents: {\n\t\tNcCollectionListItem,\n\t\tNcAvatar,\n\t\tNcSelect,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Resource type identifier\n\t\t */\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * Unique id of the resource\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * Name of the resource\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * Whether the component is active (to start fetch resources)\n\t\t */\n\t\tisActive: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\n\tsetup() {\n\t\tconst {\n\t\t\tstoredCollections,\n\t\t\tfetchCollectionsByResource,\n\t\t\tcreateCollection,\n\t\t\taddResourceToCollection,\n\t\t\tremoveResourceFromCollection,\n\t\t\trenameCollection,\n\t\t} = useCollections()\n\n\t\tconst searchCollections = ref([])\n\t\tconst search = debounce(function(query, loading) {\n\t\t\tif (query !== '') {\n\t\t\t\tloading(true)\n\t\t\t\tsearchService(query).then(collections => {\n\t\t\t\t\tsearchCollections.value = collections\n\t\t\t\t}).catch(e => {\n\t\t\t\t\tconsole.error('Failed to search for collections', e)\n\t\t\t\t}).finally(() => {\n\t\t\t\t\tloading(false)\n\t\t\t\t})\n\t\t\t}\n\t\t}, 500)\n\n\t\treturn {\n\t\t\tstoredCollections,\n\t\t\tfetchCollectionsByResource,\n\t\t\tcreateCollection,\n\t\t\taddResourceToCollection,\n\t\t\tremoveResourceFromCollection,\n\t\t\trenameCollection,\n\t\t\tsearchCollections,\n\t\t\tsearch,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tselectIsOpen: false,\n\t\t\tgeneratingCodes: false,\n\t\t\tcodes: undefined,\n\t\t\tvalue: null,\n\t\t\tmodel: {},\n\t\t\tcollectionsError: {},\n\t\t\terror: null,\n\t\t\tisSelectOpen: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tcollections() {\n\t\t\treturn this.storedCollections.filter(collection => collection.resources\n\t\t\t\t.some(resource => resource && resource.id === String(this.id) && resource.type === this.type),\n\t\t\t)\n\t\t},\n\n\t\tplaceholder() {\n\t\t\treturn this.isSelectOpen\n\t\t\t\t? t('Type to search for existing projects')\n\t\t\t\t: t('Add to a project')\n\t\t},\n\n\t\toptions() {\n\t\t\tconst options = []\n\t\t\twindow.OCP.Collaboration.getTypes().sort().forEach(type => {\n\t\t\t\toptions.push({\n\t\t\t\t\tmethod: METHOD_CREATE_COLLECTION,\n\t\t\t\t\ttype,\n\t\t\t\t\ttitle: window.OCP.Collaboration.getLabel(type),\n\t\t\t\t\tclass: window.OCP.Collaboration.getIcon(type),\n\t\t\t\t\taction: () => window.OCP.Collaboration.trigger(type),\n\t\t\t\t})\n\t\t\t})\n\t\t\tfor (const index in this.searchCollections) {\n\t\t\t\tif (!this.collections.find(collection => collection.id === this.searchCollections[index].id)) {\n\t\t\t\t\toptions.push({\n\t\t\t\t\t\tmethod: METHOD_ADD_TO_COLLECTION,\n\t\t\t\t\t\ttitle: this.searchCollections[index].name,\n\t\t\t\t\t\tcollectionId: this.searchCollections[index].id,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn options\n\t\t},\n\n\t\tresourceIdentifier() {\n\t\t\treturn {\n\t\t\t\tresourceType: this.type,\n\t\t\t\tresourceId: this.id,\n\t\t\t\tisActive: this.isActive,\n\t\t\t}\n\t\t},\n\t},\n\n\twatch: {\n\t\tresourceIdentifier: {\n\t\t\tdeep: true,\n\t\t\timmediate: true,\n\t\t\thandler(resourceIdentifier) {\n\t\t\t\tif (!resourceIdentifier.isActive || !resourceIdentifier.resourceId || !resourceIdentifier.resourceType) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tthis.fetchCollectionsByResource(resourceIdentifier)\n\t\t\t},\n\t\t},\n\t},\n\n\tmethods: {\n\t\tt,\n\n\t\tselect(selectedOption) {\n\t\t\tif (selectedOption.method === METHOD_CREATE_COLLECTION) {\n\t\t\t\tselectedOption.action().then(resourceId => {\n\t\t\t\t\tthis.createCollection({\n\t\t\t\t\t\tbaseResourceType: this.type,\n\t\t\t\t\t\tbaseResourceId: this.id,\n\t\t\t\t\t\tresourceType: selectedOption.type,\n\t\t\t\t\t\tresourceId,\n\t\t\t\t\t\tname: this.name,\n\t\t\t\t\t}).catch((e) => {\n\t\t\t\t\t\tthis.setError(t('Failed to create a project'), e)\n\t\t\t\t\t})\n\t\t\t\t}).catch((e) => {\n\t\t\t\t\tconsole.error('No resource selected', e)\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (selectedOption.method === METHOD_ADD_TO_COLLECTION) {\n\t\t\t\tthis.addResourceToCollection({\n\t\t\t\t\tcollectionId: selectedOption.collectionId, resourceType: this.type, resourceId: this.id,\n\t\t\t\t}).catch((e) => {\n\t\t\t\t\tthis.setError(t('Failed to add the item to the project'), e)\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tthis.value = null\n\t\t},\n\n\t\tshowSelect() {\n\t\t\tthis.selectIsOpen = true\n\t\t\tthis.$refs.select.$el.focus()\n\t\t},\n\n\t\tsetError(error, e) {\n\t\t\tconsole.error(error, e)\n\t\t\tthis.error = error\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.error = null\n\t\t\t}, 5000)\n\t\t},\n\n\t\trenameCollectionFromItem({ collectionId, name }) {\n\t\t\tthis.renameCollection({ collectionId, name })\n\t\t\t\t.catch((e) => {\n\t\t\t\t\tconsole.error(t('Failed to rename the project'), e)\n\t\t\t\t\tthis.collectionsError[collectionId] = t('Failed to rename the project')\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tthis.collectionsError[collectionId] = null\n\t\t\t\t\t}, 5000)\n\t\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.collection-list * {\n\tbox-sizing: border-box;\n}\n\n.collection-list > li {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 12px;\n\n\t& > .avatar {\n\t\tmargin-top: 0;\n\t}\n}\n\n#collection-select-container {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.v-select {\n\t// NcAvatar in the dropdown\n\tspan.avatar {\n\t\tdisplay: block;\n\t\tpadding: 16px;\n\t\topacity: .7;\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center;\n\n\t\t&:hover {\n\t\t\topacity: 1;\n\t\t}\n\t}\n}\n\np.hint {\n\tz-index: 1;\n\t// fix alignment\n\tmargin-top: -16px;\n\tpadding: 8px 8px;\n\tcolor: var(--color-text-maxcontrast);\n\tline-height: normal;\n}\n\ndiv.avatar {\n\twidth: 32px;\n\theight: 32px;\n\tmargin: 0;\n\tpadding: 8px;\n\tbackground-color: var(--color-background-dark);\n\tmargin-top: 30px;\n}\n\n/** TODO provide white icon in core */\n.icon-projects {\n\tdisplay: block;\n\tpadding: 8px;\n\tbackground-repeat: no-repeat;\n\tbackground-position: center;\n}\n\n.option__wrapper {\n\tdisplay: flex;\n\n\t.avatar {\n\t\tdisplay: block;\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tbackground-color: var(--color-background-darker) !important;\n\t}\n\n\t.option__title {\n\t\tpadding: 4px;\n\t}\n}\n\n.fade-enter-active, .fade-leave-active {\n\ttransition: opacity .5s;\n}\n\n.fade-enter, .fade-leave-to {\n\topacity: 0;\n}\n\n</style>\n"],"names":["_sfc_main","NcAvatar","NcActions","NcActionButton","getRoute","t","axios","generateOcsUrl","ref","set","NcSelect","debounce"],"mappings":"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"}
1
+ {"version":3,"file":"NcCollectionList-Co3VxzCN.cjs","sources":["../../src/components/NcCollectionList/NcCollectionListItem.vue","../../src/components/NcCollectionList/service.ts","../../src/components/NcCollectionList/useCollections.js","../../src/components/NcCollectionList/NcCollectionList.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<li class=\"collection-list-item\">\n\t\t<NcAvatar :display-name=\"collection.name\" allow-placeholder class=\"collection-avatar\" />\n\t\t<span v-if=\"newName === null\"\n\t\t\tclass=\"collection-item-name\"\n\t\t\ttitle=\"\"\n\t\t\t@click=\"showDetails\">{{ collection.name }}</span>\n\t\t<form v-else :class=\"{'should-shake': error }\" @submit.prevent=\"renameCollection\">\n\t\t\t<input v-model=\"newName\"\n\t\t\t\ttype=\"text\"\n\t\t\t\tautocomplete=\"off\"\n\t\t\t\tautocapitalize=\"off\">\n\t\t\t<input type=\"submit\" value=\"\" class=\"icon-confirm\">\n\t\t</form>\n\t\t<div v-if=\"!detailsOpen && newName === null\" class=\"linked-icons\">\n\t\t\t<component :is=\"getComponent(resource).component\"\n\t\t\t\tv-for=\"resource in resources.slice(0, 2)\"\n\t\t\t\t:key=\"resource.type + '|' + resource.id\"\n\t\t\t\t:title=\"resource.name\"\n\t\t\t\t:to=\"getComponent(resource).to\"\n\t\t\t\t:href=\"getComponent(resource).href\"\n\t\t\t\t:class=\"typeClass(resource)\">\n\t\t\t\t<img :src=\"iconUrl(resource)\" :alt=\"resource.name\">\n\t\t\t</component>\n\t\t</div>\n\n\t\t<span v-if=\"newName === null\" class=\"sharingOptionsGroup\">\n\t\t\t<NcActions>\n\t\t\t\t<NcActionButton icon=\"icon-info\"\n\t\t\t\t\t@click.prevent=\"toggleDetails\">\n\t\t\t\t\t{{ detailsOpen ? t('Hide details') : t('Show details') }}\n\t\t\t\t</NcActionButton>\n\t\t\t\t<NcActionButton icon=\"icon-rename\"\n\t\t\t\t\t@click.prevent=\"openRename\">\n\t\t\t\t\t{{ t('Rename project') }}\n\t\t\t\t</NcActionButton>\n\t\t\t</NcActions>\n\t\t</span>\n\n\t\t<transition name=\"fade\">\n\t\t\t<div v-if=\"error\" class=\"error\">\n\t\t\t\t{{ error }}\n\t\t\t</div>\n\t\t</transition>\n\t\t<transition name=\"fade\">\n\t\t\t<ul v-if=\"detailsOpen\" class=\"resource-list-details\">\n\t\t\t\t<li v-for=\"resource in resources\"\n\t\t\t\t\t:key=\"resource.type + '|' + resource.id\"\n\t\t\t\t\t:class=\"typeClass(resource)\">\n\t\t\t\t\t<component :is=\"getComponent(resource).component\"\n\t\t\t\t\t\t:to=\"getComponent(resource).to\"\n\t\t\t\t\t\t:href=\"getComponent(resource).href\">\n\t\t\t\t\t\t<img :src=\"iconUrl(resource)\" :alt=\"resource.name\">\n\t\t\t\t\t\t<span class=\"resource-name\">{{ resource.name || '' }}</span>\n\t\t\t\t\t</component>\n\t\t\t\t\t<span class=\"icon-close\" @click=\"removeResource(collection, resource)\" />\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t</transition>\n\t</li>\n</template>\n\n<script>\nimport { t } from '../../l10n.js'\nimport { getRoute } from '../NcRichText/autolink.js'\n\nimport NcActions from '../NcActions/index.js'\nimport NcActionButton from '../NcActionButton/index.js'\nimport NcAvatar from '../NcAvatar/index.js'\n\nexport default {\n\tname: 'NcCollectionListItem',\n\n\tcomponents: {\n\t\tNcAvatar,\n\t\tNcActions,\n\t\tNcActionButton,\n\t},\n\n\tprops: {\n\t\tcollection: {\n\t\t\ttype: Object,\n\t\t\tdefault: null,\n\t\t},\n\n\t\terror: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t},\n\n\temits: ['remove-resource', 'rename-collection'],\n\n\tdata() {\n\t\treturn {\n\t\t\tdetailsOpen: false,\n\t\t\tnewName: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tgetIcon() {\n\t\t\treturn (resource) => [resource.iconClass]\n\t\t},\n\n\t\ttypeClass() {\n\t\t\treturn (resource) => 'resource-type-' + resource.type\n\t\t},\n\n\t\tresources() {\n\t\t\t// invalid resources come from server as empty array ([]) and not an object\n\t\t\treturn this.collection.resources?.filter(resource => !Array.isArray(resource)) ?? []\n\t\t},\n\n\t\tgetComponent() {\n\t\t\treturn (resource) => {\n\t\t\t\tconst route = getRoute(this.$router, resource.link)\n\n\t\t\t\treturn route\n\t\t\t\t\t? { component: 'router-link', to: route, href: undefined }\n\t\t\t\t\t: { component: 'a', to: undefined, href: resource.link }\n\t\t\t}\n\t\t},\n\n\t\ticonUrl() {\n\t\t\treturn (resource) => {\n\t\t\t\tif (resource.mimetype) {\n\t\t\t\t\treturn OC.MimeType.getIconUrl(resource.mimetype)\n\t\t\t\t}\n\t\t\t\tif (resource.iconUrl) {\n\t\t\t\t\treturn resource.iconUrl\n\t\t\t\t}\n\t\t\t\treturn ''\n\t\t\t}\n\t\t},\n\t},\n\n\tmethods: {\n\t\tt,\n\n\t\ttoggleDetails() {\n\t\t\tthis.detailsOpen = !this.detailsOpen\n\t\t},\n\n\t\tshowDetails() {\n\t\t\tthis.detailsOpen = true\n\t\t},\n\n\t\tremoveResource(collection, resource) {\n\t\t\tthis.$emit('remove-resource', {\n\t\t\t\tcollectionId: collection.id,\n\t\t\t\tresourceType: resource.type,\n\t\t\t\tresourceId: resource.id,\n\t\t\t})\n\t\t},\n\n\t\topenRename() {\n\t\t\tthis.newName = this.collection.name\n\t\t},\n\n\t\trenameCollection() {\n\t\t\tif (this.newName) {\n\t\t\t\tthis.$emit('rename-collection', {\n\t\t\t\t\tcollectionId: this.collection.id,\n\t\t\t\t\tname: this.newName,\n\t\t\t\t})\n\t\t\t}\n\t\t\tthis.newName = null\n\t\t},\n\t},\n}\n</script>\n\n<style scoped lang=\"scss\">\n.fade-enter-active, .fade-leave-active {\n\ttransition: opacity .3s ease;\n}\n\n.fade-enter, .fade-leave-to\n\t/* .fade-leave-active below version 2.1.8 */\n{\n\topacity: 0;\n}\n\n.linked-icons {\n\tdisplay: flex;\n\n\timg {\n\t\tpadding: 12px;\n\t\theight: 44px;\n\t\tdisplay: block;\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center;\n\t\topacity: 0.7;\n\n\t\t&:hover {\n\t\t\topacity: 1;\n\t\t}\n\t}\n}\n\n.popovermenu {\n\tdisplay: none;\n\n\t&.open {\n\t\tdisplay: block;\n\t}\n}\n\nli.collection-list-item {\n\tflex-wrap: wrap;\n\theight: auto;\n\tcursor: pointer;\n\tmargin-bottom: 0 !important;\n\n\t.collection-avatar {\n\t\tmargin-top: 0;\n\t}\n\n\tform, .collection-item-name {\n\t\tflex-basis: 10%;\n\t\tflex-grow: 1;\n\t\tdisplay: flex;\n\t}\n\n\t.collection-item-name {\n\t\tpadding: 12px 9px;\n\t}\n\n\tinput {\n\t\tmargin-top: 4px;\n\t\tborder-color: var(--color-border-maxcontrast);\n\n\t\t&[type=text] {\n\t\t\tflex-grow: 1;\n\t\t}\n\t}\n\n\t.error {\n\t\tflex-basis: 100%;\n\t\twidth: 100%;\n\t}\n\n\t.resource-list-details {\n\t\tflex-basis: 100%;\n\t\twidth: 100%;\n\n\t\tli {\n\t\t\tdisplay: flex;\n\t\t\tmargin-left: 44px;\n\t\t\tborder-radius: 3px;\n\t\t\tcursor: pointer;\n\n\t\t\t&:hover {\n\t\t\t\tbackground-color: var(--color-background-dark);\n\t\t\t}\n\n\t\t\ta {\n\t\t\t\tflex-grow: 1;\n\t\t\t\tpadding: 3px;\n\t\t\t\tmax-width: calc(100% - 30px);\n\t\t\t\tdisplay: flex;\n\t\t\t}\n\t\t}\n\n\t\tspan {\n\t\t\tdisplay: inline-block;\n\t\t\tvertical-align: top;\n\t\t\tmargin-right: 10px;\n\t\t}\n\n\t\tspan.resource-name {\n\t\t\ttext-overflow: ellipsis;\n\t\t\toverflow: hidden;\n\t\t\tposition: relative;\n\t\t\tvertical-align: top;\n\t\t\twhite-space: nowrap;\n\t\t\tflex-grow: 1;\n\t\t\tpadding: 4px;\n\t\t}\n\n\t\timg {\n\t\t\twidth: 24px;\n\t\t\theight: 24px;\n\t\t}\n\n\t\t.icon-close {\n\t\t\topacity: .7;\n\n\t\t\t&:hover, &:focus {\n\t\t\t\topacity: 1;\n\t\t\t}\n\t\t}\n\t}\n}\n\n.should-shake {\n\tanimation: shake 0.6s 1 linear;\n}\n\n@keyframes shake {\n\t0% {\n\t\ttransform: translate(15px);\n\t}\n\t20% {\n\t\ttransform: translate(-15px);\n\t}\n\t40% {\n\t\ttransform: translate(7px);\n\t}\n\t60% {\n\t\ttransform: translate(-7px);\n\t}\n\t80% {\n\t\ttransform: translate(3px);\n\t}\n\t100% {\n\t\ttransform: translate(0px);\n\t}\n}\n</style>\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios, { type AxiosResponse } from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport type { OCSResponse } from '@nextcloud/typings/ocs'\n\n/**\n * Extracts the OCS data from a response\n * @param response OCS response\n */\nfunction extractOcsData(response: AxiosResponse<OCSResponse>) {\n\treturn response.data.ocs.data\n}\n\n/**\n * Lists all collections\n * @param collectionId Collection ID\n */\nexport function listCollectionService(collectionId: number) {\n\treturn axios.get(generateOcsUrl('collaboration/resources/collections/{collectionId}', { collectionId })).then(extractOcsData)\n}\n\n/**\n * Renames a collection\n * @param collectionId Collection ID\n * @param collectionName New collection name\n */\nexport function renameCollectionService(collectionId: number, collectionName: string) {\n\treturn axios.put(generateOcsUrl('collaboration/resources/collections/{collectionId}', { collectionId }), { collectionName }).then(extractOcsData)\n}\n\n/**\n * Lists all collections for a resource\n * @param resourceType Resource type\n * @param resourceId Resource ID\n */\nexport function getCollectionsByResourceService(resourceType: string, resourceId: string) {\n\treturn axios.get(generateOcsUrl('collaboration/resources/{resourceType}/{resourceId}', { resourceType, resourceId })).then(extractOcsData)\n}\n\n/**\n * Creates a collection\n * @param resourceType Resource type\n * @param resourceId Resource ID\n * @param name Collection name\n */\nexport function createCollectionService(resourceType: string, resourceId: string, name: string) {\n\treturn axios.post(generateOcsUrl('collaboration/resources/{resourceType}/{resourceId}', { resourceType, resourceId }), { name }).then(extractOcsData)\n}\n\n/**\n * Adds a resource to a collection\n * @param collectionId Collection ID\n * @param resourceType Resource type\n * @param resourceId Resource ID\n */\nexport function addResourceService(collectionId: number, resourceType: string, resourceId: string) {\n\treturn axios.post(generateOcsUrl('collaboration/resources/collections/{collectionId}', { collectionId }), { resourceType, resourceId }).then(extractOcsData)\n}\n\n/**\n * Removes a resource from a collection\n * @param collectionId Collection ID\n * @param resourceType Resource type\n * @param resourceId Resource ID\n */\nexport function removeResourceService(collectionId: number, resourceType: string, resourceId: string) {\n\treturn axios.delete(generateOcsUrl('collaboration/resources/collections/{collectionId}', { collectionId }), { params: { resourceType, resourceId } }).then(extractOcsData)\n}\n\n/**\n * Searches for collections\n * @param query Search query\n */\nexport function searchService(query: string) {\n\treturn axios.get(generateOcsUrl('collaboration/resources/collections/search/{query}', { query })).then(extractOcsData)\n}\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { ref, set } from 'vue'\nimport {\n\trenameCollectionService,\n\tgetCollectionsByResourceService,\n\tcreateCollectionService,\n\taddResourceService,\n\tremoveResourceService,\n} from './service.ts'\n\n/**\n * Use collections composable\n */\nexport function useCollections() {\n\t// State\n\tconst storedCollections = ref([])\n\n\t// Mutations\n\tconst addCollections = (collections) => {\n\t\tset(storedCollections, 'value', collections)\n\t}\n\n\tconst addCollection = (collection) => {\n\t\tset(storedCollections, 'value', [...storedCollections.value, collection])\n\t}\n\n\tconst removeCollection = (collectionId) => {\n\t\tset(storedCollections, 'value', storedCollections.value.filter(item => item.id !== collectionId))\n\t}\n\n\tconst updateCollection = (collection) => {\n\t\tconst index = storedCollections.value.findIndex(item => item.id === collection.id)\n\t\tif (index !== -1) {\n\t\t\tset(storedCollections.value, index, collection)\n\t\t} else {\n\t\t\taddCollection(collection)\n\t\t}\n\t}\n\n\t// Actions\n\tconst fetchCollectionsByResource = async ({ resourceType, resourceId }) => {\n\t\tconst collections = await getCollectionsByResourceService(resourceType, resourceId)\n\n\t\taddCollections(collections)\n\t}\n\n\tconst createCollection = async ({ baseResourceType, baseResourceId, resourceType, resourceId, name }) => {\n\t\tconst collection = await createCollectionService(baseResourceType, baseResourceId, name)\n\n\t\taddCollection(collection)\n\t\tawait addResourceToCollection({\n\t\t\tcollectionId: collection.id,\n\t\t\tresourceType,\n\t\t\tresourceId,\n\t\t})\n\t}\n\n\tconst renameCollection = async ({ collectionId, name }) => {\n\t\tconst collection = await renameCollectionService(collectionId, name)\n\n\t\tupdateCollection(collection)\n\t}\n\n\tconst addResourceToCollection = async ({ collectionId, resourceType, resourceId }) => {\n\t\tconst collection = await addResourceService(collectionId, resourceType, String(resourceId))\n\n\t\tupdateCollection(collection)\n\t}\n\n\tconst removeResourceFromCollection = async ({ collectionId, resourceType, resourceId }) => {\n\t\tconst collection = await removeResourceService(collectionId, resourceType, String(resourceId))\n\n\t\tif (collection.resources.length > 0) {\n\t\t\tupdateCollection(collection)\n\t\t} else {\n\t\t\tremoveCollection(collectionId)\n\t\t}\n\t}\n\n\treturn {\n\t\tstoredCollections,\n\t\tfetchCollectionsByResource,\n\t\tcreateCollection,\n\t\trenameCollection,\n\t\taddResourceToCollection,\n\t\tremoveResourceFromCollection,\n\t}\n}\n","<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\nProvides a Vue standalone component for Nextcloud Projects feature introduced in Nextcloud 16. Replaces deprecated `nextcloud-vue-collections` library.\n\nProjects feature is deprecated since Nextcloud 25, and superseded by Related resources. See [NcRelatedResourcesPanel](#/Components/NcRelatedResourcesPanel) documentation for more information.\n\n### Usage\n\nTo enable feature in Nextcloud, run following command:\n```sh\nocc config:system:set --value true 'projects.enabled'\n```\n</docs>\n\n<template>\n\t<ul v-if=\"collections && type && id\" id=\"collection-list\" class=\"collection-list\">\n\t\t<li @click=\"showSelect\">\n\t\t\t<div class=\"avatar\">\n\t\t\t\t<span class=\"icon-projects\" />\n\t\t\t</div>\n\t\t\t<div id=\"collection-select-container\">\n\t\t\t\t<NcSelect ref=\"select\"\n\t\t\t\t\tv-model=\"value\"\n\t\t\t\t\t:aria-label-combobox=\"t('Add to a project')\"\n\t\t\t\t\t:options=\"options\"\n\t\t\t\t\t:placeholder=\"placeholder\"\n\t\t\t\t\tlabel=\"title\"\n\t\t\t\t\t:limit=\"5\"\n\t\t\t\t\t@close=\"isSelectOpen = false\"\n\t\t\t\t\t@open=\"isSelectOpen = true\"\n\t\t\t\t\t@option:selected=\"select\"\n\t\t\t\t\t@search=\"search\">\n\t\t\t\t\t<template #selected-option=\"option\">\n\t\t\t\t\t\t<span class=\"option__desc\">\n\t\t\t\t\t\t\t<span class=\"option__title\">{{ option.title }}</span>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</template>\n\t\t\t\t\t<template #option=\"option\">\n\t\t\t\t\t\t<span class=\"option__wrapper\">\n\t\t\t\t\t\t\t<span v-if=\"option.class\" :class=\"option.class\" class=\"avatar\" />\n\t\t\t\t\t\t\t<NcAvatar v-else-if=\"option.method !== 2\" allow-placeholder :display-name=\"option.title\" />\n\t\t\t\t\t\t\t<span class=\"option__title\">{{ option.title }}</span>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</template>\n\t\t\t\t\t<p class=\"hint\">\n\t\t\t\t\t\t{{ t('Connect items to a project to make them easier to find') }}\n\t\t\t\t\t</p>\n\t\t\t\t</NcSelect>\n\t\t\t</div>\n\t\t</li>\n\t\t<transition name=\"fade\">\n\t\t\t<li v-if=\"error\" class=\"error\">\n\t\t\t\t{{ error }}\n\t\t\t</li>\n\t\t</transition>\n\t\t<NcCollectionListItem v-for=\"collection in collections\"\n\t\t\t:key=\"collection.id\"\n\t\t\t:collection=\"collection\"\n\t\t\t:error=\"collectionsError[collection.id]\"\n\t\t\t@rename-collection=\"renameCollectionFromItem\"\n\t\t\t@remove-resource=\"removeResourceFromCollection\" />\n\t</ul>\n</template>\n\n<script>\nimport debounce from 'debounce'\nimport { ref } from 'vue'\nimport { t } from '../../l10n.js'\n\nimport NcAvatar from '../NcAvatar/index.js'\nimport NcSelect from '../NcSelect/index.js'\nimport NcCollectionListItem from './NcCollectionListItem.vue'\n\nimport { useCollections } from './useCollections.js'\nimport { searchService } from './service.ts'\n\nconst METHOD_CREATE_COLLECTION = 0\nconst METHOD_ADD_TO_COLLECTION = 1\n\nexport default {\n\tname: 'NcCollectionList',\n\n\tcomponents: {\n\t\tNcCollectionListItem,\n\t\tNcAvatar,\n\t\tNcSelect,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Resource type identifier\n\t\t */\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * Unique id of the resource\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * Name of the resource\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * Whether the component is active (to start fetch resources)\n\t\t */\n\t\tisActive: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t},\n\n\tsetup() {\n\t\tconst {\n\t\t\tstoredCollections,\n\t\t\tfetchCollectionsByResource,\n\t\t\tcreateCollection,\n\t\t\taddResourceToCollection,\n\t\t\tremoveResourceFromCollection,\n\t\t\trenameCollection,\n\t\t} = useCollections()\n\n\t\tconst searchCollections = ref([])\n\t\tconst search = debounce(function(query, loading) {\n\t\t\tif (query !== '') {\n\t\t\t\tloading(true)\n\t\t\t\tsearchService(query).then(collections => {\n\t\t\t\t\tsearchCollections.value = collections\n\t\t\t\t}).catch(e => {\n\t\t\t\t\tconsole.error('Failed to search for collections', e)\n\t\t\t\t}).finally(() => {\n\t\t\t\t\tloading(false)\n\t\t\t\t})\n\t\t\t}\n\t\t}, 500)\n\n\t\treturn {\n\t\t\tstoredCollections,\n\t\t\tfetchCollectionsByResource,\n\t\t\tcreateCollection,\n\t\t\taddResourceToCollection,\n\t\t\tremoveResourceFromCollection,\n\t\t\trenameCollection,\n\t\t\tsearchCollections,\n\t\t\tsearch,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tselectIsOpen: false,\n\t\t\tgeneratingCodes: false,\n\t\t\tcodes: undefined,\n\t\t\tvalue: null,\n\t\t\tmodel: {},\n\t\t\tcollectionsError: {},\n\t\t\terror: null,\n\t\t\tisSelectOpen: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tcollections() {\n\t\t\treturn this.storedCollections.filter(collection => collection.resources\n\t\t\t\t.some(resource => resource && resource.id === String(this.id) && resource.type === this.type),\n\t\t\t)\n\t\t},\n\n\t\tplaceholder() {\n\t\t\treturn this.isSelectOpen\n\t\t\t\t? t('Type to search for existing projects')\n\t\t\t\t: t('Add to a project')\n\t\t},\n\n\t\toptions() {\n\t\t\tconst options = []\n\t\t\twindow.OCP.Collaboration.getTypes().sort().forEach(type => {\n\t\t\t\toptions.push({\n\t\t\t\t\tmethod: METHOD_CREATE_COLLECTION,\n\t\t\t\t\ttype,\n\t\t\t\t\ttitle: window.OCP.Collaboration.getLabel(type),\n\t\t\t\t\tclass: window.OCP.Collaboration.getIcon(type),\n\t\t\t\t\taction: () => window.OCP.Collaboration.trigger(type),\n\t\t\t\t})\n\t\t\t})\n\t\t\tfor (const index in this.searchCollections) {\n\t\t\t\tif (!this.collections.find(collection => collection.id === this.searchCollections[index].id)) {\n\t\t\t\t\toptions.push({\n\t\t\t\t\t\tmethod: METHOD_ADD_TO_COLLECTION,\n\t\t\t\t\t\ttitle: this.searchCollections[index].name,\n\t\t\t\t\t\tcollectionId: this.searchCollections[index].id,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn options\n\t\t},\n\n\t\tresourceIdentifier() {\n\t\t\treturn {\n\t\t\t\tresourceType: this.type,\n\t\t\t\tresourceId: this.id,\n\t\t\t\tisActive: this.isActive,\n\t\t\t}\n\t\t},\n\t},\n\n\twatch: {\n\t\tresourceIdentifier: {\n\t\t\tdeep: true,\n\t\t\timmediate: true,\n\t\t\thandler(resourceIdentifier) {\n\t\t\t\tif (!resourceIdentifier.isActive || !resourceIdentifier.resourceId || !resourceIdentifier.resourceType) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tthis.fetchCollectionsByResource(resourceIdentifier)\n\t\t\t},\n\t\t},\n\t},\n\n\tmethods: {\n\t\tt,\n\n\t\tselect(selectedOption) {\n\t\t\tif (selectedOption.method === METHOD_CREATE_COLLECTION) {\n\t\t\t\tselectedOption.action().then(resourceId => {\n\t\t\t\t\tthis.createCollection({\n\t\t\t\t\t\tbaseResourceType: this.type,\n\t\t\t\t\t\tbaseResourceId: this.id,\n\t\t\t\t\t\tresourceType: selectedOption.type,\n\t\t\t\t\t\tresourceId,\n\t\t\t\t\t\tname: this.name,\n\t\t\t\t\t}).catch((e) => {\n\t\t\t\t\t\tthis.setError(t('Failed to create a project'), e)\n\t\t\t\t\t})\n\t\t\t\t}).catch((e) => {\n\t\t\t\t\tconsole.error('No resource selected', e)\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (selectedOption.method === METHOD_ADD_TO_COLLECTION) {\n\t\t\t\tthis.addResourceToCollection({\n\t\t\t\t\tcollectionId: selectedOption.collectionId, resourceType: this.type, resourceId: this.id,\n\t\t\t\t}).catch((e) => {\n\t\t\t\t\tthis.setError(t('Failed to add the item to the project'), e)\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tthis.value = null\n\t\t},\n\n\t\tshowSelect() {\n\t\t\tthis.selectIsOpen = true\n\t\t\tthis.$refs.select.$el.focus()\n\t\t},\n\n\t\tsetError(error, e) {\n\t\t\tconsole.error(error, e)\n\t\t\tthis.error = error\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.error = null\n\t\t\t}, 5000)\n\t\t},\n\n\t\trenameCollectionFromItem({ collectionId, name }) {\n\t\t\tthis.renameCollection({ collectionId, name })\n\t\t\t\t.catch((e) => {\n\t\t\t\t\tconsole.error(t('Failed to rename the project'), e)\n\t\t\t\t\tthis.collectionsError[collectionId] = t('Failed to rename the project')\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tthis.collectionsError[collectionId] = null\n\t\t\t\t\t}, 5000)\n\t\t\t\t})\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.collection-list * {\n\tbox-sizing: border-box;\n}\n\n.collection-list > li {\n\tdisplay: flex;\n\talign-items: center;\n\tgap: 12px;\n\n\t& > .avatar {\n\t\tmargin-top: 0;\n\t}\n}\n\n#collection-select-container {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.v-select {\n\t// NcAvatar in the dropdown\n\tspan.avatar {\n\t\tdisplay: block;\n\t\tpadding: 16px;\n\t\topacity: .7;\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center;\n\n\t\t&:hover {\n\t\t\topacity: 1;\n\t\t}\n\t}\n}\n\np.hint {\n\tz-index: 1;\n\t// fix alignment\n\tmargin-top: -16px;\n\tpadding: 8px 8px;\n\tcolor: var(--color-text-maxcontrast);\n\tline-height: normal;\n}\n\ndiv.avatar {\n\twidth: 32px;\n\theight: 32px;\n\tmargin: 0;\n\tpadding: 8px;\n\tbackground-color: var(--color-background-dark);\n\tmargin-top: 30px;\n}\n\n/** TODO provide white icon in core */\n.icon-projects {\n\tdisplay: block;\n\tpadding: 8px;\n\tbackground-repeat: no-repeat;\n\tbackground-position: center;\n}\n\n.option__wrapper {\n\tdisplay: flex;\n\n\t.avatar {\n\t\tdisplay: block;\n\t\twidth: 32px;\n\t\theight: 32px;\n\t\tbackground-color: var(--color-background-darker) !important;\n\t}\n\n\t.option__title {\n\t\tpadding: 4px;\n\t}\n}\n\n.fade-enter-active, .fade-leave-active {\n\ttransition: opacity .5s;\n}\n\n.fade-enter, .fade-leave-to {\n\topacity: 0;\n}\n\n</style>\n"],"names":["_sfc_main","NcAvatar","NcActions","NcActionButton","getRoute","t","axios","generateOcsUrl","ref","set","NcSelect","debounce"],"mappings":"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"}
@@ -1,25 +1,23 @@
1
- import '../assets/NcColorPicker-TIE_tTqD.css';
2
- import NcButton from "../Components/NcButton.mjs";
3
- import { N as NcPopover } from "./NcPopover-kYsewfff.mjs";
4
- import { r as register, l as t1, a as t } from "./_l10n-DIOHNc85.mjs";
5
- import { d as defaultPalette } from "./GenColors-BowX0SaQ.mjs";
6
- import { G as GenRandomId } from "./GenRandomId-CMooMQt0.mjs";
7
- import { A as ArrowLeft } from "./ArrowLeft-DuT2LZOm.mjs";
8
- import { C as Check } from "./Check-BkThHPH7.mjs";
9
- import { D as DotsHorizontal } from "./DotsHorizontal-C6LNsw4N.mjs";
1
+ import '../assets/NcColorPicker-DBcVuSwg.css';
2
+ import { e as mdiDotsHorizontal, a as mdiCheck, f as mdiArrowLeft } from "./mdi-vLkDaZ9y.mjs";
3
+ import { useVModel } from "@vueuse/core";
10
4
  import { Chrome } from "vue-color";
5
+ import NcButton from "../Components/NcButton.mjs";
6
+ import { N as NcIconSvgWrapper } from "./NcIconSvgWrapper-Cb-cPj1R.mjs";
7
+ import { N as NcPopover } from "./NcPopover-4-YxCZOD.mjs";
11
8
  import { u as useModelMigration } from "./useModelMigration-EhAWvqDD.mjs";
9
+ import { d as defaultPalette } from "./GenColors-DNN63dHB.mjs";
10
+ import { G as GenRandomId } from "./GenRandomId-CMooMQt0.mjs";
11
+ import { r as register, l as t1, a as t } from "./_l10n-BU8-kQzN.mjs";
12
12
  import { n as normalizeComponent } from "./_plugin-vue2_normalizer-DU4iP6Vu.mjs";
13
13
  register(t1);
14
14
  const HEX_REGEX = /^#([a-f0-9]{3}|[a-f0-9]{6})$/i;
15
15
  const _sfc_main = {
16
16
  name: "NcColorPicker",
17
17
  components: {
18
- ArrowLeft,
19
- Check,
20
18
  Chrome,
21
- DotsHorizontal,
22
19
  NcButton,
20
+ NcIconSvgWrapper,
23
21
  NcPopover
24
22
  },
25
23
  model: {
@@ -50,9 +48,17 @@ const _sfc_main = {
50
48
  default: false
51
49
  },
52
50
  /**
53
- * Limit selectable colors to only the provided palette
51
+ * Selector for the popover container
54
52
  */
55
- paletteOnly: {
53
+ container: {
54
+ type: [String, Object, Element, Boolean],
55
+ default: "body"
56
+ },
57
+ /**
58
+ * The open state of the color picker.
59
+ * This can be used as two-way binding together with the `update:open` event.
60
+ */
61
+ open: {
56
62
  type: Boolean,
57
63
  default: false
58
64
  },
@@ -72,34 +78,52 @@ const _sfc_main = {
72
78
  )
73
79
  },
74
80
  /**
75
- * Selector for the popover container
81
+ * Limit selectable colors to only the provided palette
76
82
  */
77
- container: {
78
- type: [String, Object, Element, Boolean],
79
- default: "body"
83
+ paletteOnly: {
84
+ type: Boolean,
85
+ default: false
80
86
  }
81
87
  },
82
88
  emits: [
83
- "submit",
89
+ /**
90
+ * @deprecated use the `closed` event instead.
91
+ */
84
92
  "close",
85
- "update:open",
86
93
  /**
87
- * Removed in v9 - use `update:modelValue` (`v-model`) instead
88
- * @deprecated
94
+ * Emitted when the color picker is closed and all transitions have finished.
89
95
  */
90
- "update:value",
96
+ "closed",
97
+ "submit",
98
+ "update:open",
91
99
  /**
92
100
  * Emits a hexadecimal string e.g. '#ffffff'
93
101
  */
94
102
  "update:modelValue",
95
- /** Same as update:modelValue for Vue 2 compatibility */
103
+ /**
104
+ * Same as update:modelValue for Vue 2 compatibility
105
+ */
96
106
  "update:model-value",
97
- "input"
107
+ /**
108
+ * Same as update:modelValue for Vue 2 compatibility.
109
+ *
110
+ * @deprecated Removed in v9 - use `update:modelValue` (`v-model`) instead
111
+ */
112
+ "input",
113
+ /**
114
+ * @deprecated Removed in v9 - use `update:modelValue` (`v-model`) instead
115
+ */
116
+ "update:value"
98
117
  ],
99
- setup() {
118
+ setup(props, { emit }) {
100
119
  const model = useModelMigration("value", "update:value", true);
120
+ const modelOpen = useVModel(props, "open", emit);
101
121
  return {
102
- model
122
+ mdiArrowLeft,
123
+ mdiCheck,
124
+ mdiDotsHorizontal,
125
+ model,
126
+ modelOpen
103
127
  };
104
128
  },
105
129
  data() {
@@ -144,6 +168,7 @@ const _sfc_main = {
144
168
  },
145
169
  handleClose() {
146
170
  this.$emit("close");
171
+ this.$emit("closed");
147
172
  this.$emit("update:open", false);
148
173
  },
149
174
  /**
@@ -181,28 +206,34 @@ const _sfc_main = {
181
206
  * Convert hex color to RGB
182
207
  *
183
208
  * @param {string} hex the hex color
209
+ * @return {[number, number, number]}
184
210
  */
185
211
  hexToRGB(hex) {
186
212
  const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
187
- return result ? [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)] : null;
213
+ return result ? [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)] : [0, 0, 0];
188
214
  }
189
215
  }
190
216
  };
191
217
  var _sfc_render = function render() {
192
218
  var _vm = this, _c = _vm._self._c;
193
- return _c("NcPopover", _vm._g(_vm._b({ attrs: { "popup-role": "dialog", "container": _vm.container }, on: { "apply-hide": _vm.handleClose }, scopedSlots: _vm._u([{ key: "trigger", fn: function(slotProps) {
219
+ return _c("NcPopover", _vm._g(_vm._b({ attrs: { "shown": _vm.modelOpen, "container": _vm.container, "popup-role": "dialog" }, on: { "update:shown": function($event) {
220
+ _vm.modelOpen = $event;
221
+ }, "apply-hide": _vm.handleClose }, scopedSlots: _vm._u([{ key: "trigger", fn: function(slotProps) {
194
222
  return [_vm._t("default", null, null, slotProps)];
195
223
  } }, { key: "default", fn: function(slotProps) {
196
224
  return [_c("div", { staticClass: "color-picker", class: { "color-picker--advanced-fields": _vm.advanced && _vm.advancedFields }, attrs: { "role": "dialog", "aria-modal": "true", "aria-label": _vm.t("Color picker") } }, [_c("Transition", { attrs: { "name": "slide", "mode": "out-in" } }, [!_vm.advanced ? _c("div", { staticClass: "color-picker__simple" }, _vm._l(_vm.normalizedPalette, function({ color, name }, index) {
197
- return _c("label", { key: index, staticClass: "color-picker__simple-color-circle", class: { "color-picker__simple-color-circle--active": color === _vm.currentColor }, style: { backgroundColor: color } }, [color === _vm.currentColor ? _c("Check", { attrs: { "size": 20, "fill-color": _vm.contrastColor } }) : _vm._e(), _c("input", { staticClass: "hidden-visually", attrs: { "type": "radio", "aria-label": name, "name": `color-picker-${_vm.uid}` }, domProps: { "checked": color === _vm.currentColor }, on: { "click": function($event) {
225
+ return _c("label", { key: index, staticClass: "color-picker__simple-color-circle", class: { "color-picker__simple-color-circle--active": color === _vm.currentColor }, style: {
226
+ backgroundColor: color,
227
+ color: _vm.contrastColor
228
+ } }, [color === _vm.currentColor ? _c("NcIconSvgWrapper", { attrs: { "path": _vm.mdiCheck } }) : _vm._e(), _c("input", { staticClass: "hidden-visually", attrs: { "type": "radio", "aria-label": name, "name": `color-picker-${_vm.uid}` }, domProps: { "checked": color === _vm.currentColor }, on: { "click": function($event) {
198
229
  return _vm.pickColor(color);
199
230
  } } })], 1);
200
231
  }), 0) : _c("Chrome", { staticClass: "color-picker__advanced", attrs: { "disable-alpha": true, "disable-fields": !_vm.advancedFields }, on: { "input": _vm.pickColor }, model: { value: _vm.currentColor, callback: function($$v) {
201
232
  _vm.currentColor = $$v;
202
233
  }, expression: "currentColor" } })], 1), !_vm.paletteOnly ? _c("div", { staticClass: "color-picker__navigation" }, [_vm.advanced ? _c("NcButton", { attrs: { "aria-label": _vm.ariaBack, "variant": "tertiary" }, on: { "click": _vm.handleBack }, scopedSlots: _vm._u([{ key: "icon", fn: function() {
203
- return [_c("ArrowLeft", { attrs: { "size": 20 } })];
234
+ return [_c("NcIconSvgWrapper", { attrs: { "directional": "", "path": _vm.mdiArrowLeft } })];
204
235
  }, proxy: true }], null, true) }) : _c("NcButton", { attrs: { "aria-label": _vm.ariaMore, "variant": "tertiary" }, on: { "click": _vm.handleMoreSettings }, scopedSlots: _vm._u([{ key: "icon", fn: function() {
205
- return [_c("DotsHorizontal", { attrs: { "size": 20 } })];
236
+ return [_c("NcIconSvgWrapper", { attrs: { "path": _vm.mdiDotsHorizontal } })];
206
237
  }, proxy: true }], null, true) }), _c("NcButton", { attrs: { "variant": "primary" }, on: { "click": function($event) {
207
238
  return _vm.handleConfirm(slotProps.hide);
208
239
  } } }, [_vm._v(" " + _vm._s(_vm.t("Choose")) + " ")])], 1) : _vm._e()], 1)];
@@ -215,10 +246,10 @@ var __component__ = /* @__PURE__ */ normalizeComponent(
215
246
  _sfc_staticRenderFns,
216
247
  false,
217
248
  null,
218
- "f321a2a8"
249
+ "c49ecb71"
219
250
  );
220
251
  const NcColorPicker = __component__.exports;
221
252
  export {
222
253
  NcColorPicker as N
223
254
  };
224
- //# sourceMappingURL=NcColorPicker-CtcS-XMk.mjs.map
255
+ //# sourceMappingURL=NcColorPicker-CApQdWp0.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcColorPicker-CApQdWp0.mjs","sources":["../../src/components/NcColorPicker/NcColorPicker.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n\n### General description\n\nThis component allows the user to choose a color. It consists of 2\nactual pickers:\n\n- One simple picker with a predefined palette of colors;\n- One more advanced picker that provides the full color spectrum;\n\n### Usage\n\n* Using v-model and passing in an HTML element that will be treated as a trigger:\n\n```vue\n<template>\n\t<div class=\"container0\">\n\t\t<NcColorPicker v-model=\"color\">\n\t\t\t<NcButton> Click Me </NcButton>\n\t\t</NcColorPicker>\n\t\t<NcColorPicker v-model=\"color\" :palette=\"customPalette\">\n\t\t\t<NcButton> Click Me for a custom palette </NcButton>\n\t\t</NcColorPicker>\n\t\t<div :style=\"{'background-color': color}\" class=\"color0\" />\n\t</div>\n</template>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tcolor: '#0082c9',\n\t\t\tcustomPalette: [\n\t\t\t\t'#E40303',\n\t\t\t\t'#FF8C00',\n\t\t\t\t'#FFED00',\n\t\t\t\t'#008026',\n\t\t\t\t'#24408E',\n\t\t\t\t'#732982',\n\t\t\t\t'#5BCEFA',\n\t\t\t\t'#F5A9B8',\n\t\t\t\t'#FFFFFF',\n\t\t\t\t'#F5A9B8',\n\t\t\t\t'#5BCEFA',\n\t\t\t],\n\t\t}\n\t}\n}\n</script>\n<style>\n.container0 {\n\tdisplay: flex;\n\tgap: 20px;\n}\n\n.color0 {\n\twidth: 100px;\n\theight: 34px;\n\tborder-radius: 6px;\n}\n</style>\n```\n\n* Using v-bind for both color and open state and emitting an event that updates the color\n\n```vue\n<template>\n\t<div class=\"container1\">\n\t\t<NcButton @click=\"open = !open\"> Click Me </NcButton>\n\t\t<NcColorPicker v-model=\"color\" :open.sync=\"open\" v-slot=\"{ attrs }\">\n\t\t\t<div v-bind=\"attrs\" :style=\"{'background-color': color}\" class=\"color1\" />\n\t\t</NcColorPicker>\n\t</div>\n</template>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tcolor: '#0082c9',\n\t\t\topen: false\n\t\t}\n\t},\n}\n</script>\n<style>\n.container1 {\n\tdisplay: flex;\n\tgap: 20px;\n}\n\n.color1 {\n\twidth: 100px;\n\theight: 34px;\n\tborder-radius: 6px;\n}\n</style>\n```\n\n* Using advanced fields including HEX, RGB, and HSL:\n\n```vue\n<template>\n\t<div class=\"container0\">\n\t\t<NcColorPicker v-model=\"color\"\n\t\t\t:advanced-fields=\"true\">\n\t\t\t<NcButton> Click Me </NcButton>\n\t\t</NcColorPicker>\n\t\t<div :style=\"{'background-color': color}\" class=\"color0\" />\n\t</div>\n</template>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tcolor: '#0082c9'\n\t\t}\n\t}\n}\n</script>\n<style>\n.container0 {\n\tdisplay: flex;\n\tgap: 20px;\n}\n\n.color0 {\n\twidth: 100px;\n\theight: 34px;\n\tborder-radius: 6px;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<NcPopover :shown.sync=\"modelOpen\"\n\t\t:container=\"container\"\n\t\tpopup-role=\"dialog\"\n\t\tv-bind=\"$attrs\"\n\t\tv-on=\"$listeners\"\n\t\t@apply-hide=\"handleClose\">\n\t\t<template #trigger=\"slotProps\">\n\t\t\t<slot v-bind=\"slotProps\" />\n\t\t</template>\n\t\t<template #default=\"slotProps\">\n\t\t\t<div role=\"dialog\"\n\t\t\t\tclass=\"color-picker\"\n\t\t\t\taria-modal=\"true\"\n\t\t\t\t:aria-label=\"t('Color picker')\"\n\t\t\t\t:class=\"{ 'color-picker--advanced-fields': advanced && advancedFields }\">\n\t\t\t\t<Transition name=\"slide\" mode=\"out-in\">\n\t\t\t\t\t<div v-if=\"!advanced\" class=\"color-picker__simple\">\n\t\t\t\t\t\t<label v-for=\"({ color, name }, index) in normalizedPalette\"\n\t\t\t\t\t\t\t:key=\"index\"\n\t\t\t\t\t\t\tclass=\"color-picker__simple-color-circle\"\n\t\t\t\t\t\t\t:class=\"{ 'color-picker__simple-color-circle--active' : color === currentColor }\"\n\t\t\t\t\t\t\t:style=\"{\n\t\t\t\t\t\t\t\tbackgroundColor: color,\n\t\t\t\t\t\t\t\tcolor: contrastColor,\n\t\t\t\t\t\t\t}\">\n\t\t\t\t\t\t\t<NcIconSvgWrapper v-if=\"color === currentColor\" :path=\"mdiCheck\" />\n\t\t\t\t\t\t\t<input type=\"radio\"\n\t\t\t\t\t\t\t\tclass=\"hidden-visually\"\n\t\t\t\t\t\t\t\t:aria-label=\"name\"\n\t\t\t\t\t\t\t\t:name=\"`color-picker-${uid}`\"\n\t\t\t\t\t\t\t\t:checked=\"color === currentColor\"\n\t\t\t\t\t\t\t\t@click=\"pickColor(color)\">\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Chrome v-else\n\t\t\t\t\t\tv-model=\"currentColor\"\n\t\t\t\t\t\tclass=\"color-picker__advanced\"\n\t\t\t\t\t\t:disable-alpha=\"true\"\n\t\t\t\t\t\t:disable-fields=\"!advancedFields\"\n\t\t\t\t\t\t@input=\"pickColor\" />\n\t\t\t\t</Transition>\n\t\t\t\t<div v-if=\"!paletteOnly\" class=\"color-picker__navigation\">\n\t\t\t\t\t<NcButton v-if=\"advanced\"\n\t\t\t\t\t\t:aria-label=\"ariaBack\"\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t@click=\"handleBack\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<NcIconSvgWrapper directional :path=\"mdiArrowLeft\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcButton>\n\t\t\t\t\t<NcButton v-else\n\t\t\t\t\t\t:aria-label=\"ariaMore\"\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t@click=\"handleMoreSettings\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiDotsHorizontal\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcButton>\n\t\t\t\t\t<NcButton variant=\"primary\"\n\t\t\t\t\t\t@click=\"handleConfirm(slotProps.hide)\">\n\t\t\t\t\t\t{{ t('Choose') }}\n\t\t\t\t\t</NcButton>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\t</NcPopover>\n</template>\n\n<script>\nimport { mdiArrowLeft, mdiCheck, mdiDotsHorizontal } from '@mdi/js'\nimport { useVModel } from '@vueuse/core'\nimport { Chrome } from 'vue-color'\nimport NcButton from '../NcButton/index.js'\nimport NcIconSvgWrapper from '../NcIconSvgWrapper/index.js'\nimport NcPopover from '../NcPopover/index.js'\nimport { useModelMigration } from '../../composables/useModelMigration.ts'\nimport { defaultPalette } from '../../utils/GenColors.js'\nimport GenRandomId from '../../utils/GenRandomId.js'\nimport { t } from '../../l10n.js'\n\nconst HEX_REGEX = /^#([a-f0-9]{3}|[a-f0-9]{6})$/i\n\nexport default {\n\tname: 'NcColorPicker',\n\n\tcomponents: {\n\t\tChrome,\n\t\tNcButton,\n\t\tNcIconSvgWrapper,\n\t\tNcPopover,\n\t},\n\n\tmodel: {\n\t\tprop: 'modelValue',\n\t\tevent: 'update:modelValue',\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Removed in v9 - use `modelValue` (`v-model`) instead\n\t\t * @deprecated\n\t\t */\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * A HEX color that represents the initial value of the picker\n\t\t */\n\t\tmodelValue: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Set to `true` to enable advanced fields including HEX, RGB, and HSL\n\t\t */\n\t\tadvancedFields: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\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: [String, Object, Element, Boolean],\n\t\t\tdefault: 'body',\n\t\t},\n\n\t\t/**\n\t\t * The open state of the color picker.\n\t\t * This can be used as two-way binding together with the `update:open` event.\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Provide a custom array of colors to show.\n\t\t * Can be either an array of string hexadecimal colors,\n\t\t * or an array of object with a `color` property with hexadecimal color string,\n\t\t * and a `name` property for accessibility.\n\t\t *\n\t\t * @type {string[] | {color: string, name: string}[]}\n\t\t */\n\t\tpalette: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [...defaultPalette],\n\t\t\tvalidator: (palette) => palette.every(item =>\n\t\t\t\t(typeof item === 'string' && HEX_REGEX.test(item))\n\t\t\t\t|| (typeof item === 'object' && item.color && HEX_REGEX.test(item.color)),\n\t\t\t),\n\t\t},\n\n\t\t/**\n\t\t * Limit selectable colors to only the provided palette\n\t\t */\n\t\tpaletteOnly: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\temits: [\n\t\t/**\n\t\t * @deprecated use the `closed` event instead.\n\t\t */\n\t\t'close',\n\t\t/**\n\t\t * Emitted when the color picker is closed and all transitions have finished.\n\t\t */\n\t\t'closed',\n\t\t'submit',\n\t\t'update:open',\n\t\t/**\n\t\t * Emits a hexadecimal string e.g. '#ffffff'\n\t\t */\n\t\t'update:modelValue',\n\t\t/**\n\t\t * Same as update:modelValue for Vue 2 compatibility\n\t\t */\n\t\t'update:model-value',\n\t\t/**\n\t\t * Same as update:modelValue for Vue 2 compatibility.\n\t\t *\n\t\t * @deprecated Removed in v9 - use `update:modelValue` (`v-model`) instead\n\t\t */\n\t\t'input',\n\t\t/**\n\t\t * @deprecated Removed in v9 - use `update:modelValue` (`v-model`) instead\n\t\t */\n\t\t'update:value',\n\t],\n\n\tsetup(props, { emit }) {\n\t\tconst model = useModelMigration('value', 'update:value', true)\n\t\tconst modelOpen = useVModel(props, 'open', emit)\n\n\t\treturn {\n\t\t\tmdiArrowLeft,\n\t\t\tmdiCheck,\n\t\t\tmdiDotsHorizontal,\n\t\t\tmodel,\n\t\t\tmodelOpen,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tcurrentColor: this.model,\n\t\t\tadvanced: false,\n\t\t\tariaBack: t('Back'),\n\t\t\tariaMore: t('More options'),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tnormalizedPalette() {\n\t\t\treturn this.palette.map((item) => ({\n\t\t\t\tcolor: typeof item === 'object' ? item.color : item,\n\t\t\t\tname: typeof item === 'object' && item.name\n\t\t\t\t\t? item.name\n\t\t\t\t\t: t('A color with a HEX value {hex}', { hex: item.color }),\n\t\t\t}))\n\t\t},\n\n\t\tuid() {\n\t\t\treturn GenRandomId()\n\t\t},\n\t\tcontrastColor() {\n\t\t\tconst black = '#000000'\n\t\t\tconst white = '#FFFFFF'\n\t\t\treturn (this.calculateLuma(this.currentColor) > 0.5) ? black : white\n\t\t},\n\t},\n\n\twatch: {\n\t\tmodel(color) {\n\t\t\tthis.currentColor = color\n\t\t},\n\t},\n\n\tmethods: {\n\t\tt,\n\n\t\t/**\n\t\t * Submit a picked colour and close picker\n\t\t * @param {Function} hideCallback callback to close popover\n\t\t */\n\t\thandleConfirm(hideCallback) {\n\t\t\t/**\n\t\t\t * Emits a hexadecimal string e.g. '#ffffff'\n\t\t\t */\n\t\t\tthis.$emit('submit', this.currentColor)\n\t\t\thideCallback()\n\n\t\t\tthis.advanced = false\n\t\t},\n\t\thandleClose() {\n\t\t\t/**\n\t\t\t * Emitted after picker close.\n\t\t\t *\n\t\t\t * @deprecated removed in v9 - use the `closed` event instead\n\t\t\t */\n\t\t\tthis.$emit('close')\n\t\t\t/**\n\t\t\t * Emitted after the picker is closed and all transitions have finished.\n\t\t\t */\n\t\t\tthis.$emit('closed')\n\t\t\t/**\n\t\t\t * @deprecated use the 'close' event instead\n\t\t\t */\n\t\t\tthis.$emit('update:open', false)\n\t\t},\n\n\t\t/**\n\t\t * Inner navigations\n\t\t */\n\t\thandleBack() {\n\t\t\tthis.advanced = false\n\t\t},\n\t\thandleMoreSettings() {\n\t\t\tthis.advanced = true\n\t\t},\n\n\t\t/**\n\t\t * Pick a colour\n\t\t *\n\t\t * @param {string} color the picked color\n\t\t */\n\t\tpickColor(color) {\n\t\t\tif (typeof color !== 'string') {\n\t\t\t\tcolor = this.currentColor.hex\n\t\t\t}\n\t\t\tthis.currentColor = color\n\n\t\t\tthis.model = color\n\n\t\t\t/**\n\t\t\t * Emits a hexadecimal string e.g. '#ffffff'\n\t\t\t */\n\t\t\tthis.$emit('input', color)\n\n\t\t},\n\n\t\t/**\n\t\t * Calculate luminance of provided hex color\n\t\t *\n\t\t * @param {string} color the hex color\n\t\t */\n\t\tcalculateLuma(color) {\n\t\t\tconst [red, green, blue] = this.hexToRGB(color)\n\t\t\treturn (0.2126 * red + 0.7152 * green + 0.0722 * blue) / 255\n\t\t},\n\n\t\t/**\n\t\t * Convert hex color to RGB\n\t\t *\n\t\t * @param {string} hex the hex color\n\t\t * @return {[number, number, number]}\n\t\t */\n\t\thexToRGB(hex) {\n\t\t\tconst result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex)\n\t\t\treturn result\n\t\t\t\t? [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)]\n\t\t\t\t: [0, 0, 0]\n\t\t},\n\t},\n}\n\n</script>\n\n<style lang=\"scss\" scoped>\n.color-picker {\n\tdisplay: flex;\n\toverflow: hidden;\n\talign-content: flex-end;\n\tflex-direction: column;\n\tjustify-content: space-between;\n\tbox-sizing: content-box !important;\n\twidth: 176px;\n\tpadding: 8px;\n\tborder-radius: 3px;\n\n\t&--advanced-fields {\n\t\twidth: 264px;\n\t}\n\n\t&__simple {\n\t\tdisplay: grid;\n\t\tgrid-template-columns: repeat(auto-fit, var(--default-clickable-area));\n\t\tgrid-auto-rows: var(--default-clickable-area);\n\n\t\t&-color-circle {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\twidth: calc(var(--default-clickable-area) - 10px);\n\t\t\theight: calc(var(--default-clickable-area) - 10px);\n\t\t\tmin-height: calc(var(--default-clickable-area) - 10px);\n\t\t\tmargin: auto;\n\t\t\tpadding: 0;\n\t\t\tcolor: white;\n\t\t\tborder: 1px solid rgba(0, 0, 0, 0.25);\n\t\t\tborder-radius: 50%;\n\t\t\tfont-size: 16px;\n\t\t\t&:focus-within {\n\t\t\t\toutline: 2px solid var(--color-main-text);\n\t\t\t}\n\t\t\t&:hover {\n\t\t\t\topacity: .6;\n\t\t\t}\n\t\t\t&--active {\n\t\t\t\twidth: calc(var(--default-clickable-area) - 6px);\n\t\t\t\theight: calc(var(--default-clickable-area) - 6px);\n\t\t\t\tmin-height: calc(var(--default-clickable-area) - 6px);\n\t\t\t\ttransition: all 100ms ease-in-out;\n\t\t\t\topacity: 1 !important;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__advanced {\n\t\tbox-shadow: none !important;\n\t}\n\n\t&__navigation {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tjustify-content: space-between;\n\t\tmargin-top: 10px;\n\t}\n}\n\n:deep() .vc {\n\t&-chrome {\n\t\twidth: unset;\n\t\tbackground-color: var(--color-main-background);\n\n\t\t&-color-wrap {\n\t\t\twidth: 30px;\n\t\t\theight: 30px;\n\t\t}\n\n\t\t&-active-color {\n\t\t\tborder-radius: 17px;\n\t\t}\n\n\t\t&-body {\n\t\t\tpadding: 14px 0 0 0;\n\t\t\tbackground-color: var(--color-main-background);\n\n\t\t\t.vc-input__input {\n\t\t\t\t--input-border-radius: var(--border-radius-element, var(--border-radius-large));\n\t\t\t\t--input-border-width-offset: calc(var(--border-width-input-focused, 2px) - var(--border-width-input, 2px));\n\t\t\t\twidth: 100%;\n\t\t\t\theight: var(--default-clickable-area);\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding-inline: calc(var(--border-radius-large) + var(--input-border-width-offset));\n\t\t\t\tpadding-block: var(--input-border-width-offset);\n\t\t\t\tborder: var(--border-width-input, 2px) solid var(--color-border-maxcontrast);\n\t\t\t\tborder-radius: var(--input-border-radius);\n\t\t\t\tfont-size: var(--default-font-size);\n\t\t\t\tcolor: var(--color-main-text);\n\t\t\t\tbox-shadow: none;\n\n\t\t\t\t&:active:not([disabled]),\n\t\t\t\t&:hover:not([disabled]),\n\t\t\t\t&:focus:not([disabled]) {\n\t\t\t\t\t// Reset padding offset when focused\n\t\t\t\t\t--input-border-width-offset: 0px;\n\t\t\t\t\tborder-color: var(--color-main-text);\n\t\t\t\t\tborder-width: var(--border-width-input-focused, 2px);\n\t\t\t\t\tbox-shadow: 0 0 0 2px var(--color-main-background) !important;\n\n\t\t\t\t\t& + .vc-input__label {\n\t\t\t\t\t\tcolor: var(--color-main-text);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.vc-input__label {\n\t\t\t\tposition: absolute;\n\t\t\t\tinset-inline: var(--border-width-input-focused, 2px);\n\t\t\t\tinset-block-start: calc(-1.5 * var(--font-size-small, 13px) / 2);\n\t\t\t\tmax-width: fit-content;\n\t\t\t\tmargin-inline: calc(var(--border-radius-large) - var(--default-grid-baseline));\n\t\t\t\tmargin-block: 0;\n\t\t\t\tpadding-inline: var(--default-grid-baseline);\n\t\t\t\tfont-family: var(--font-face);\n\t\t\t\tfont-size: var(--font-size-small, 13px);\n\t\t\t\tline-height: 1.5;\n\t\t\t\tfont-weight: 500;\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t\tbackground-color: var(--color-main-background);\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t}\n\n\t\t&-toggle-btn {\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: center;\n\t\t\talign-items: center;\n\t\t\twidth: var(--default-clickable-area);\n\t\t\theight: var(--default-clickable-area);\n\t\t\tmargin-left: 6px;\n\t\t\tfilter: var(--background-invert-if-dark);\n\t\t}\n\n\t\t&-toggle-icon {\n\t\t\twidth: 24px;\n\t\t\theight: 24px;\n\t\t\tmargin: 0;\n\t\t}\n\n\t\t&-toggle-icon-highlight {\n\t\t\twidth: var(--default-clickable-area);\n\t\t\theight: var(--default-clickable-area);\n\t\t\tinset: 0;\n\t\t}\n\n\t\t&-saturation {\n\t\t\t&-wrap {\n\t\t\t\tborder-radius: 3px;\n\t\t\t}\n\n\t\t\t&-circle {\n\t\t\t\twidth: 20px;\n\t\t\t\theight: 20px;\n\t\t\t}\n\t\t}\n\t}\n}\n\n.slide {\n\t&-enter {\n\t\ttransform: translateX(-50%);\n\t\topacity: 0;\n\t}\n\t&-enter-to {\n\t\ttransform: translateX(0);\n\t\topacity: 1;\n\t}\n\t&-leave {\n\t\ttransform: translateX(0);\n\t\topacity: 1;\n\t}\n\t&-leave-to {\n\t\ttransform: translateX(-50%);\n\t\topacity: 0;\n\t}\n\t&-enter-active,\n\t&-leave-active {\n\t\ttransition: all 50ms ease-in-out;\n\t}\n}\n\n</style>\n"],"names":[],"mappings":"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"}
@@ -1,26 +1,24 @@
1
- require('../assets/NcColorPicker-TIE_tTqD.css');
1
+ require('../assets/NcColorPicker-DBcVuSwg.css');
2
2
  "use strict";
3
- const Components_NcButton = require("../Components/NcButton.cjs");
4
- const NcPopover = require("./NcPopover-B2z7TwNr.cjs");
5
- const _l10n = require("./_l10n-CXXSIoEf.cjs");
6
- const GenColors = require("./GenColors-DAxlN2KL.cjs");
7
- const GenRandomId = require("./GenRandomId-BQDud3d4.cjs");
8
- const ArrowLeft = require("./ArrowLeft-BP7yfzCQ.cjs");
9
- const Check = require("./Check-Du8mPz_B.cjs");
10
- const DotsHorizontal = require("./DotsHorizontal-BoI3vnhk.cjs");
3
+ const mdi = require("./mdi-BqDPfc6J.cjs");
4
+ const core = require("@vueuse/core");
11
5
  const vueColor = require("vue-color");
6
+ const Components_NcButton = require("../Components/NcButton.cjs");
7
+ const NcIconSvgWrapper = require("./NcIconSvgWrapper-CrnN5Sq5.cjs");
8
+ const NcPopover = require("./NcPopover-DH2oMHFe.cjs");
12
9
  const useModelMigration = require("./useModelMigration-D5zhrNXr.cjs");
10
+ const GenColors = require("./GenColors-BnYS3bvv.cjs");
11
+ const GenRandomId = require("./GenRandomId-BQDud3d4.cjs");
12
+ const _l10n = require("./_l10n-DpwcsAC3.cjs");
13
13
  const _pluginVue2_normalizer = require("./_plugin-vue2_normalizer-V0q-tHlQ.cjs");
14
14
  _l10n.register(_l10n.t1);
15
15
  const HEX_REGEX = /^#([a-f0-9]{3}|[a-f0-9]{6})$/i;
16
16
  const _sfc_main = {
17
17
  name: "NcColorPicker",
18
18
  components: {
19
- ArrowLeft: ArrowLeft.ArrowLeft,
20
- Check: Check.Check,
21
19
  Chrome: vueColor.Chrome,
22
- DotsHorizontal: DotsHorizontal.DotsHorizontal,
23
20
  NcButton: Components_NcButton,
21
+ NcIconSvgWrapper: NcIconSvgWrapper.NcIconSvgWrapper,
24
22
  NcPopover: NcPopover.NcPopover
25
23
  },
26
24
  model: {
@@ -51,9 +49,17 @@ const _sfc_main = {
51
49
  default: false
52
50
  },
53
51
  /**
54
- * Limit selectable colors to only the provided palette
52
+ * Selector for the popover container
55
53
  */
56
- paletteOnly: {
54
+ container: {
55
+ type: [String, Object, Element, Boolean],
56
+ default: "body"
57
+ },
58
+ /**
59
+ * The open state of the color picker.
60
+ * This can be used as two-way binding together with the `update:open` event.
61
+ */
62
+ open: {
57
63
  type: Boolean,
58
64
  default: false
59
65
  },
@@ -73,34 +79,52 @@ const _sfc_main = {
73
79
  )
74
80
  },
75
81
  /**
76
- * Selector for the popover container
82
+ * Limit selectable colors to only the provided palette
77
83
  */
78
- container: {
79
- type: [String, Object, Element, Boolean],
80
- default: "body"
84
+ paletteOnly: {
85
+ type: Boolean,
86
+ default: false
81
87
  }
82
88
  },
83
89
  emits: [
84
- "submit",
90
+ /**
91
+ * @deprecated use the `closed` event instead.
92
+ */
85
93
  "close",
86
- "update:open",
87
94
  /**
88
- * Removed in v9 - use `update:modelValue` (`v-model`) instead
89
- * @deprecated
95
+ * Emitted when the color picker is closed and all transitions have finished.
90
96
  */
91
- "update:value",
97
+ "closed",
98
+ "submit",
99
+ "update:open",
92
100
  /**
93
101
  * Emits a hexadecimal string e.g. '#ffffff'
94
102
  */
95
103
  "update:modelValue",
96
- /** Same as update:modelValue for Vue 2 compatibility */
104
+ /**
105
+ * Same as update:modelValue for Vue 2 compatibility
106
+ */
97
107
  "update:model-value",
98
- "input"
108
+ /**
109
+ * Same as update:modelValue for Vue 2 compatibility.
110
+ *
111
+ * @deprecated Removed in v9 - use `update:modelValue` (`v-model`) instead
112
+ */
113
+ "input",
114
+ /**
115
+ * @deprecated Removed in v9 - use `update:modelValue` (`v-model`) instead
116
+ */
117
+ "update:value"
99
118
  ],
100
- setup() {
119
+ setup(props, { emit }) {
101
120
  const model = useModelMigration.useModelMigration("value", "update:value", true);
121
+ const modelOpen = core.useVModel(props, "open", emit);
102
122
  return {
103
- model
123
+ mdiArrowLeft: mdi.mdiArrowLeft,
124
+ mdiCheck: mdi.mdiCheck,
125
+ mdiDotsHorizontal: mdi.mdiDotsHorizontal,
126
+ model,
127
+ modelOpen
104
128
  };
105
129
  },
106
130
  data() {
@@ -145,6 +169,7 @@ const _sfc_main = {
145
169
  },
146
170
  handleClose() {
147
171
  this.$emit("close");
172
+ this.$emit("closed");
148
173
  this.$emit("update:open", false);
149
174
  },
150
175
  /**
@@ -182,28 +207,34 @@ const _sfc_main = {
182
207
  * Convert hex color to RGB
183
208
  *
184
209
  * @param {string} hex the hex color
210
+ * @return {[number, number, number]}
185
211
  */
186
212
  hexToRGB(hex) {
187
213
  const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
188
- return result ? [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)] : null;
214
+ return result ? [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)] : [0, 0, 0];
189
215
  }
190
216
  }
191
217
  };
192
218
  var _sfc_render = function render() {
193
219
  var _vm = this, _c = _vm._self._c;
194
- return _c("NcPopover", _vm._g(_vm._b({ attrs: { "popup-role": "dialog", "container": _vm.container }, on: { "apply-hide": _vm.handleClose }, scopedSlots: _vm._u([{ key: "trigger", fn: function(slotProps) {
220
+ return _c("NcPopover", _vm._g(_vm._b({ attrs: { "shown": _vm.modelOpen, "container": _vm.container, "popup-role": "dialog" }, on: { "update:shown": function($event) {
221
+ _vm.modelOpen = $event;
222
+ }, "apply-hide": _vm.handleClose }, scopedSlots: _vm._u([{ key: "trigger", fn: function(slotProps) {
195
223
  return [_vm._t("default", null, null, slotProps)];
196
224
  } }, { key: "default", fn: function(slotProps) {
197
225
  return [_c("div", { staticClass: "color-picker", class: { "color-picker--advanced-fields": _vm.advanced && _vm.advancedFields }, attrs: { "role": "dialog", "aria-modal": "true", "aria-label": _vm.t("Color picker") } }, [_c("Transition", { attrs: { "name": "slide", "mode": "out-in" } }, [!_vm.advanced ? _c("div", { staticClass: "color-picker__simple" }, _vm._l(_vm.normalizedPalette, function({ color, name }, index) {
198
- return _c("label", { key: index, staticClass: "color-picker__simple-color-circle", class: { "color-picker__simple-color-circle--active": color === _vm.currentColor }, style: { backgroundColor: color } }, [color === _vm.currentColor ? _c("Check", { attrs: { "size": 20, "fill-color": _vm.contrastColor } }) : _vm._e(), _c("input", { staticClass: "hidden-visually", attrs: { "type": "radio", "aria-label": name, "name": `color-picker-${_vm.uid}` }, domProps: { "checked": color === _vm.currentColor }, on: { "click": function($event) {
226
+ return _c("label", { key: index, staticClass: "color-picker__simple-color-circle", class: { "color-picker__simple-color-circle--active": color === _vm.currentColor }, style: {
227
+ backgroundColor: color,
228
+ color: _vm.contrastColor
229
+ } }, [color === _vm.currentColor ? _c("NcIconSvgWrapper", { attrs: { "path": _vm.mdiCheck } }) : _vm._e(), _c("input", { staticClass: "hidden-visually", attrs: { "type": "radio", "aria-label": name, "name": `color-picker-${_vm.uid}` }, domProps: { "checked": color === _vm.currentColor }, on: { "click": function($event) {
199
230
  return _vm.pickColor(color);
200
231
  } } })], 1);
201
232
  }), 0) : _c("Chrome", { staticClass: "color-picker__advanced", attrs: { "disable-alpha": true, "disable-fields": !_vm.advancedFields }, on: { "input": _vm.pickColor }, model: { value: _vm.currentColor, callback: function($$v) {
202
233
  _vm.currentColor = $$v;
203
234
  }, expression: "currentColor" } })], 1), !_vm.paletteOnly ? _c("div", { staticClass: "color-picker__navigation" }, [_vm.advanced ? _c("NcButton", { attrs: { "aria-label": _vm.ariaBack, "variant": "tertiary" }, on: { "click": _vm.handleBack }, scopedSlots: _vm._u([{ key: "icon", fn: function() {
204
- return [_c("ArrowLeft", { attrs: { "size": 20 } })];
235
+ return [_c("NcIconSvgWrapper", { attrs: { "directional": "", "path": _vm.mdiArrowLeft } })];
205
236
  }, proxy: true }], null, true) }) : _c("NcButton", { attrs: { "aria-label": _vm.ariaMore, "variant": "tertiary" }, on: { "click": _vm.handleMoreSettings }, scopedSlots: _vm._u([{ key: "icon", fn: function() {
206
- return [_c("DotsHorizontal", { attrs: { "size": 20 } })];
237
+ return [_c("NcIconSvgWrapper", { attrs: { "path": _vm.mdiDotsHorizontal } })];
207
238
  }, proxy: true }], null, true) }), _c("NcButton", { attrs: { "variant": "primary" }, on: { "click": function($event) {
208
239
  return _vm.handleConfirm(slotProps.hide);
209
240
  } } }, [_vm._v(" " + _vm._s(_vm.t("Choose")) + " ")])], 1) : _vm._e()], 1)];
@@ -216,8 +247,8 @@ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
216
247
  _sfc_staticRenderFns,
217
248
  false,
218
249
  null,
219
- "f321a2a8"
250
+ "c49ecb71"
220
251
  );
221
252
  const NcColorPicker = __component__.exports;
222
253
  exports.NcColorPicker = NcColorPicker;
223
- //# sourceMappingURL=NcColorPicker-HzfzrrTt.cjs.map
254
+ //# sourceMappingURL=NcColorPicker-CwPThFLP.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcColorPicker-CwPThFLP.cjs","sources":["../../src/components/NcColorPicker/NcColorPicker.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n\n### General description\n\nThis component allows the user to choose a color. It consists of 2\nactual pickers:\n\n- One simple picker with a predefined palette of colors;\n- One more advanced picker that provides the full color spectrum;\n\n### Usage\n\n* Using v-model and passing in an HTML element that will be treated as a trigger:\n\n```vue\n<template>\n\t<div class=\"container0\">\n\t\t<NcColorPicker v-model=\"color\">\n\t\t\t<NcButton> Click Me </NcButton>\n\t\t</NcColorPicker>\n\t\t<NcColorPicker v-model=\"color\" :palette=\"customPalette\">\n\t\t\t<NcButton> Click Me for a custom palette </NcButton>\n\t\t</NcColorPicker>\n\t\t<div :style=\"{'background-color': color}\" class=\"color0\" />\n\t</div>\n</template>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tcolor: '#0082c9',\n\t\t\tcustomPalette: [\n\t\t\t\t'#E40303',\n\t\t\t\t'#FF8C00',\n\t\t\t\t'#FFED00',\n\t\t\t\t'#008026',\n\t\t\t\t'#24408E',\n\t\t\t\t'#732982',\n\t\t\t\t'#5BCEFA',\n\t\t\t\t'#F5A9B8',\n\t\t\t\t'#FFFFFF',\n\t\t\t\t'#F5A9B8',\n\t\t\t\t'#5BCEFA',\n\t\t\t],\n\t\t}\n\t}\n}\n</script>\n<style>\n.container0 {\n\tdisplay: flex;\n\tgap: 20px;\n}\n\n.color0 {\n\twidth: 100px;\n\theight: 34px;\n\tborder-radius: 6px;\n}\n</style>\n```\n\n* Using v-bind for both color and open state and emitting an event that updates the color\n\n```vue\n<template>\n\t<div class=\"container1\">\n\t\t<NcButton @click=\"open = !open\"> Click Me </NcButton>\n\t\t<NcColorPicker v-model=\"color\" :open.sync=\"open\" v-slot=\"{ attrs }\">\n\t\t\t<div v-bind=\"attrs\" :style=\"{'background-color': color}\" class=\"color1\" />\n\t\t</NcColorPicker>\n\t</div>\n</template>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tcolor: '#0082c9',\n\t\t\topen: false\n\t\t}\n\t},\n}\n</script>\n<style>\n.container1 {\n\tdisplay: flex;\n\tgap: 20px;\n}\n\n.color1 {\n\twidth: 100px;\n\theight: 34px;\n\tborder-radius: 6px;\n}\n</style>\n```\n\n* Using advanced fields including HEX, RGB, and HSL:\n\n```vue\n<template>\n\t<div class=\"container0\">\n\t\t<NcColorPicker v-model=\"color\"\n\t\t\t:advanced-fields=\"true\">\n\t\t\t<NcButton> Click Me </NcButton>\n\t\t</NcColorPicker>\n\t\t<div :style=\"{'background-color': color}\" class=\"color0\" />\n\t</div>\n</template>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tcolor: '#0082c9'\n\t\t}\n\t}\n}\n</script>\n<style>\n.container0 {\n\tdisplay: flex;\n\tgap: 20px;\n}\n\n.color0 {\n\twidth: 100px;\n\theight: 34px;\n\tborder-radius: 6px;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<NcPopover :shown.sync=\"modelOpen\"\n\t\t:container=\"container\"\n\t\tpopup-role=\"dialog\"\n\t\tv-bind=\"$attrs\"\n\t\tv-on=\"$listeners\"\n\t\t@apply-hide=\"handleClose\">\n\t\t<template #trigger=\"slotProps\">\n\t\t\t<slot v-bind=\"slotProps\" />\n\t\t</template>\n\t\t<template #default=\"slotProps\">\n\t\t\t<div role=\"dialog\"\n\t\t\t\tclass=\"color-picker\"\n\t\t\t\taria-modal=\"true\"\n\t\t\t\t:aria-label=\"t('Color picker')\"\n\t\t\t\t:class=\"{ 'color-picker--advanced-fields': advanced && advancedFields }\">\n\t\t\t\t<Transition name=\"slide\" mode=\"out-in\">\n\t\t\t\t\t<div v-if=\"!advanced\" class=\"color-picker__simple\">\n\t\t\t\t\t\t<label v-for=\"({ color, name }, index) in normalizedPalette\"\n\t\t\t\t\t\t\t:key=\"index\"\n\t\t\t\t\t\t\tclass=\"color-picker__simple-color-circle\"\n\t\t\t\t\t\t\t:class=\"{ 'color-picker__simple-color-circle--active' : color === currentColor }\"\n\t\t\t\t\t\t\t:style=\"{\n\t\t\t\t\t\t\t\tbackgroundColor: color,\n\t\t\t\t\t\t\t\tcolor: contrastColor,\n\t\t\t\t\t\t\t}\">\n\t\t\t\t\t\t\t<NcIconSvgWrapper v-if=\"color === currentColor\" :path=\"mdiCheck\" />\n\t\t\t\t\t\t\t<input type=\"radio\"\n\t\t\t\t\t\t\t\tclass=\"hidden-visually\"\n\t\t\t\t\t\t\t\t:aria-label=\"name\"\n\t\t\t\t\t\t\t\t:name=\"`color-picker-${uid}`\"\n\t\t\t\t\t\t\t\t:checked=\"color === currentColor\"\n\t\t\t\t\t\t\t\t@click=\"pickColor(color)\">\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</div>\n\t\t\t\t\t<Chrome v-else\n\t\t\t\t\t\tv-model=\"currentColor\"\n\t\t\t\t\t\tclass=\"color-picker__advanced\"\n\t\t\t\t\t\t:disable-alpha=\"true\"\n\t\t\t\t\t\t:disable-fields=\"!advancedFields\"\n\t\t\t\t\t\t@input=\"pickColor\" />\n\t\t\t\t</Transition>\n\t\t\t\t<div v-if=\"!paletteOnly\" class=\"color-picker__navigation\">\n\t\t\t\t\t<NcButton v-if=\"advanced\"\n\t\t\t\t\t\t:aria-label=\"ariaBack\"\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t@click=\"handleBack\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<NcIconSvgWrapper directional :path=\"mdiArrowLeft\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcButton>\n\t\t\t\t\t<NcButton v-else\n\t\t\t\t\t\t:aria-label=\"ariaMore\"\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t@click=\"handleMoreSettings\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<NcIconSvgWrapper :path=\"mdiDotsHorizontal\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</NcButton>\n\t\t\t\t\t<NcButton variant=\"primary\"\n\t\t\t\t\t\t@click=\"handleConfirm(slotProps.hide)\">\n\t\t\t\t\t\t{{ t('Choose') }}\n\t\t\t\t\t</NcButton>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</template>\n\t</NcPopover>\n</template>\n\n<script>\nimport { mdiArrowLeft, mdiCheck, mdiDotsHorizontal } from '@mdi/js'\nimport { useVModel } from '@vueuse/core'\nimport { Chrome } from 'vue-color'\nimport NcButton from '../NcButton/index.js'\nimport NcIconSvgWrapper from '../NcIconSvgWrapper/index.js'\nimport NcPopover from '../NcPopover/index.js'\nimport { useModelMigration } from '../../composables/useModelMigration.ts'\nimport { defaultPalette } from '../../utils/GenColors.js'\nimport GenRandomId from '../../utils/GenRandomId.js'\nimport { t } from '../../l10n.js'\n\nconst HEX_REGEX = /^#([a-f0-9]{3}|[a-f0-9]{6})$/i\n\nexport default {\n\tname: 'NcColorPicker',\n\n\tcomponents: {\n\t\tChrome,\n\t\tNcButton,\n\t\tNcIconSvgWrapper,\n\t\tNcPopover,\n\t},\n\n\tmodel: {\n\t\tprop: 'modelValue',\n\t\tevent: 'update:modelValue',\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Removed in v9 - use `modelValue` (`v-model`) instead\n\t\t * @deprecated\n\t\t */\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * A HEX color that represents the initial value of the picker\n\t\t */\n\t\tmodelValue: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Set to `true` to enable advanced fields including HEX, RGB, and HSL\n\t\t */\n\t\tadvancedFields: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\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: [String, Object, Element, Boolean],\n\t\t\tdefault: 'body',\n\t\t},\n\n\t\t/**\n\t\t * The open state of the color picker.\n\t\t * This can be used as two-way binding together with the `update:open` event.\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Provide a custom array of colors to show.\n\t\t * Can be either an array of string hexadecimal colors,\n\t\t * or an array of object with a `color` property with hexadecimal color string,\n\t\t * and a `name` property for accessibility.\n\t\t *\n\t\t * @type {string[] | {color: string, name: string}[]}\n\t\t */\n\t\tpalette: {\n\t\t\ttype: Array,\n\t\t\tdefault: () => [...defaultPalette],\n\t\t\tvalidator: (palette) => palette.every(item =>\n\t\t\t\t(typeof item === 'string' && HEX_REGEX.test(item))\n\t\t\t\t|| (typeof item === 'object' && item.color && HEX_REGEX.test(item.color)),\n\t\t\t),\n\t\t},\n\n\t\t/**\n\t\t * Limit selectable colors to only the provided palette\n\t\t */\n\t\tpaletteOnly: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\temits: [\n\t\t/**\n\t\t * @deprecated use the `closed` event instead.\n\t\t */\n\t\t'close',\n\t\t/**\n\t\t * Emitted when the color picker is closed and all transitions have finished.\n\t\t */\n\t\t'closed',\n\t\t'submit',\n\t\t'update:open',\n\t\t/**\n\t\t * Emits a hexadecimal string e.g. '#ffffff'\n\t\t */\n\t\t'update:modelValue',\n\t\t/**\n\t\t * Same as update:modelValue for Vue 2 compatibility\n\t\t */\n\t\t'update:model-value',\n\t\t/**\n\t\t * Same as update:modelValue for Vue 2 compatibility.\n\t\t *\n\t\t * @deprecated Removed in v9 - use `update:modelValue` (`v-model`) instead\n\t\t */\n\t\t'input',\n\t\t/**\n\t\t * @deprecated Removed in v9 - use `update:modelValue` (`v-model`) instead\n\t\t */\n\t\t'update:value',\n\t],\n\n\tsetup(props, { emit }) {\n\t\tconst model = useModelMigration('value', 'update:value', true)\n\t\tconst modelOpen = useVModel(props, 'open', emit)\n\n\t\treturn {\n\t\t\tmdiArrowLeft,\n\t\t\tmdiCheck,\n\t\t\tmdiDotsHorizontal,\n\t\t\tmodel,\n\t\t\tmodelOpen,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tcurrentColor: this.model,\n\t\t\tadvanced: false,\n\t\t\tariaBack: t('Back'),\n\t\t\tariaMore: t('More options'),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tnormalizedPalette() {\n\t\t\treturn this.palette.map((item) => ({\n\t\t\t\tcolor: typeof item === 'object' ? item.color : item,\n\t\t\t\tname: typeof item === 'object' && item.name\n\t\t\t\t\t? item.name\n\t\t\t\t\t: t('A color with a HEX value {hex}', { hex: item.color }),\n\t\t\t}))\n\t\t},\n\n\t\tuid() {\n\t\t\treturn GenRandomId()\n\t\t},\n\t\tcontrastColor() {\n\t\t\tconst black = '#000000'\n\t\t\tconst white = '#FFFFFF'\n\t\t\treturn (this.calculateLuma(this.currentColor) > 0.5) ? black : white\n\t\t},\n\t},\n\n\twatch: {\n\t\tmodel(color) {\n\t\t\tthis.currentColor = color\n\t\t},\n\t},\n\n\tmethods: {\n\t\tt,\n\n\t\t/**\n\t\t * Submit a picked colour and close picker\n\t\t * @param {Function} hideCallback callback to close popover\n\t\t */\n\t\thandleConfirm(hideCallback) {\n\t\t\t/**\n\t\t\t * Emits a hexadecimal string e.g. '#ffffff'\n\t\t\t */\n\t\t\tthis.$emit('submit', this.currentColor)\n\t\t\thideCallback()\n\n\t\t\tthis.advanced = false\n\t\t},\n\t\thandleClose() {\n\t\t\t/**\n\t\t\t * Emitted after picker close.\n\t\t\t *\n\t\t\t * @deprecated removed in v9 - use the `closed` event instead\n\t\t\t */\n\t\t\tthis.$emit('close')\n\t\t\t/**\n\t\t\t * Emitted after the picker is closed and all transitions have finished.\n\t\t\t */\n\t\t\tthis.$emit('closed')\n\t\t\t/**\n\t\t\t * @deprecated use the 'close' event instead\n\t\t\t */\n\t\t\tthis.$emit('update:open', false)\n\t\t},\n\n\t\t/**\n\t\t * Inner navigations\n\t\t */\n\t\thandleBack() {\n\t\t\tthis.advanced = false\n\t\t},\n\t\thandleMoreSettings() {\n\t\t\tthis.advanced = true\n\t\t},\n\n\t\t/**\n\t\t * Pick a colour\n\t\t *\n\t\t * @param {string} color the picked color\n\t\t */\n\t\tpickColor(color) {\n\t\t\tif (typeof color !== 'string') {\n\t\t\t\tcolor = this.currentColor.hex\n\t\t\t}\n\t\t\tthis.currentColor = color\n\n\t\t\tthis.model = color\n\n\t\t\t/**\n\t\t\t * Emits a hexadecimal string e.g. '#ffffff'\n\t\t\t */\n\t\t\tthis.$emit('input', color)\n\n\t\t},\n\n\t\t/**\n\t\t * Calculate luminance of provided hex color\n\t\t *\n\t\t * @param {string} color the hex color\n\t\t */\n\t\tcalculateLuma(color) {\n\t\t\tconst [red, green, blue] = this.hexToRGB(color)\n\t\t\treturn (0.2126 * red + 0.7152 * green + 0.0722 * blue) / 255\n\t\t},\n\n\t\t/**\n\t\t * Convert hex color to RGB\n\t\t *\n\t\t * @param {string} hex the hex color\n\t\t * @return {[number, number, number]}\n\t\t */\n\t\thexToRGB(hex) {\n\t\t\tconst result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex)\n\t\t\treturn result\n\t\t\t\t? [parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16)]\n\t\t\t\t: [0, 0, 0]\n\t\t},\n\t},\n}\n\n</script>\n\n<style lang=\"scss\" scoped>\n.color-picker {\n\tdisplay: flex;\n\toverflow: hidden;\n\talign-content: flex-end;\n\tflex-direction: column;\n\tjustify-content: space-between;\n\tbox-sizing: content-box !important;\n\twidth: 176px;\n\tpadding: 8px;\n\tborder-radius: 3px;\n\n\t&--advanced-fields {\n\t\twidth: 264px;\n\t}\n\n\t&__simple {\n\t\tdisplay: grid;\n\t\tgrid-template-columns: repeat(auto-fit, var(--default-clickable-area));\n\t\tgrid-auto-rows: var(--default-clickable-area);\n\n\t\t&-color-circle {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\twidth: calc(var(--default-clickable-area) - 10px);\n\t\t\theight: calc(var(--default-clickable-area) - 10px);\n\t\t\tmin-height: calc(var(--default-clickable-area) - 10px);\n\t\t\tmargin: auto;\n\t\t\tpadding: 0;\n\t\t\tcolor: white;\n\t\t\tborder: 1px solid rgba(0, 0, 0, 0.25);\n\t\t\tborder-radius: 50%;\n\t\t\tfont-size: 16px;\n\t\t\t&:focus-within {\n\t\t\t\toutline: 2px solid var(--color-main-text);\n\t\t\t}\n\t\t\t&:hover {\n\t\t\t\topacity: .6;\n\t\t\t}\n\t\t\t&--active {\n\t\t\t\twidth: calc(var(--default-clickable-area) - 6px);\n\t\t\t\theight: calc(var(--default-clickable-area) - 6px);\n\t\t\t\tmin-height: calc(var(--default-clickable-area) - 6px);\n\t\t\t\ttransition: all 100ms ease-in-out;\n\t\t\t\topacity: 1 !important;\n\t\t\t}\n\t\t}\n\t}\n\n\t&__advanced {\n\t\tbox-shadow: none !important;\n\t}\n\n\t&__navigation {\n\t\tdisplay: flex;\n\t\tflex-direction: row;\n\t\tjustify-content: space-between;\n\t\tmargin-top: 10px;\n\t}\n}\n\n:deep() .vc {\n\t&-chrome {\n\t\twidth: unset;\n\t\tbackground-color: var(--color-main-background);\n\n\t\t&-color-wrap {\n\t\t\twidth: 30px;\n\t\t\theight: 30px;\n\t\t}\n\n\t\t&-active-color {\n\t\t\tborder-radius: 17px;\n\t\t}\n\n\t\t&-body {\n\t\t\tpadding: 14px 0 0 0;\n\t\t\tbackground-color: var(--color-main-background);\n\n\t\t\t.vc-input__input {\n\t\t\t\t--input-border-radius: var(--border-radius-element, var(--border-radius-large));\n\t\t\t\t--input-border-width-offset: calc(var(--border-width-input-focused, 2px) - var(--border-width-input, 2px));\n\t\t\t\twidth: 100%;\n\t\t\t\theight: var(--default-clickable-area);\n\t\t\t\tmargin: 0;\n\t\t\t\tpadding-inline: calc(var(--border-radius-large) + var(--input-border-width-offset));\n\t\t\t\tpadding-block: var(--input-border-width-offset);\n\t\t\t\tborder: var(--border-width-input, 2px) solid var(--color-border-maxcontrast);\n\t\t\t\tborder-radius: var(--input-border-radius);\n\t\t\t\tfont-size: var(--default-font-size);\n\t\t\t\tcolor: var(--color-main-text);\n\t\t\t\tbox-shadow: none;\n\n\t\t\t\t&:active:not([disabled]),\n\t\t\t\t&:hover:not([disabled]),\n\t\t\t\t&:focus:not([disabled]) {\n\t\t\t\t\t// Reset padding offset when focused\n\t\t\t\t\t--input-border-width-offset: 0px;\n\t\t\t\t\tborder-color: var(--color-main-text);\n\t\t\t\t\tborder-width: var(--border-width-input-focused, 2px);\n\t\t\t\t\tbox-shadow: 0 0 0 2px var(--color-main-background) !important;\n\n\t\t\t\t\t& + .vc-input__label {\n\t\t\t\t\t\tcolor: var(--color-main-text);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t.vc-input__label {\n\t\t\t\tposition: absolute;\n\t\t\t\tinset-inline: var(--border-width-input-focused, 2px);\n\t\t\t\tinset-block-start: calc(-1.5 * var(--font-size-small, 13px) / 2);\n\t\t\t\tmax-width: fit-content;\n\t\t\t\tmargin-inline: calc(var(--border-radius-large) - var(--default-grid-baseline));\n\t\t\t\tmargin-block: 0;\n\t\t\t\tpadding-inline: var(--default-grid-baseline);\n\t\t\t\tfont-family: var(--font-face);\n\t\t\t\tfont-size: var(--font-size-small, 13px);\n\t\t\t\tline-height: 1.5;\n\t\t\t\tfont-weight: 500;\n\t\t\t\tcolor: var(--color-text-maxcontrast);\n\t\t\t\tbackground-color: var(--color-main-background);\n\t\t\t\tpointer-events: none;\n\t\t\t}\n\t\t}\n\n\t\t&-toggle-btn {\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: center;\n\t\t\talign-items: center;\n\t\t\twidth: var(--default-clickable-area);\n\t\t\theight: var(--default-clickable-area);\n\t\t\tmargin-left: 6px;\n\t\t\tfilter: var(--background-invert-if-dark);\n\t\t}\n\n\t\t&-toggle-icon {\n\t\t\twidth: 24px;\n\t\t\theight: 24px;\n\t\t\tmargin: 0;\n\t\t}\n\n\t\t&-toggle-icon-highlight {\n\t\t\twidth: var(--default-clickable-area);\n\t\t\theight: var(--default-clickable-area);\n\t\t\tinset: 0;\n\t\t}\n\n\t\t&-saturation {\n\t\t\t&-wrap {\n\t\t\t\tborder-radius: 3px;\n\t\t\t}\n\n\t\t\t&-circle {\n\t\t\t\twidth: 20px;\n\t\t\t\theight: 20px;\n\t\t\t}\n\t\t}\n\t}\n}\n\n.slide {\n\t&-enter {\n\t\ttransform: translateX(-50%);\n\t\topacity: 0;\n\t}\n\t&-enter-to {\n\t\ttransform: translateX(0);\n\t\topacity: 1;\n\t}\n\t&-leave {\n\t\ttransform: translateX(0);\n\t\topacity: 1;\n\t}\n\t&-leave-to {\n\t\ttransform: translateX(-50%);\n\t\topacity: 0;\n\t}\n\t&-enter-active,\n\t&-leave-active {\n\t\ttransition: all 50ms ease-in-out;\n\t}\n}\n\n</style>\n"],"names":["Chrome","NcButton","NcIconSvgWrapper","NcPopover","defaultPalette","useModelMigration","useVModel","mdiArrowLeft","mdiCheck","mdiDotsHorizontal","t","GenRandomId"],"mappings":"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"}