@nextcloud/vue 9.0.0-rc.0 → 9.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (317) hide show
  1. package/CHANGELOG.md +57 -11
  2. package/dist/assets/{NcActionButton-DfdRrSEu.css → NcActionButton-B2G7zsju.css} +25 -17
  3. package/dist/assets/{NcActionInput-BNWL2Q-3.css → NcActionInput-SoC93uat.css} +62 -62
  4. package/dist/assets/{NcActionLink-C9_ycPLF.css → NcActionLink-VngQl-C2.css} +21 -13
  5. package/dist/assets/{NcActionRouter-CVsc7Ezc.css → NcActionRouter-CBVOuCQ3.css} +9 -1
  6. package/dist/assets/{NcActionText-C7y7Pe6P.css → NcActionText-CWAPsJmz.css} +9 -1
  7. package/dist/assets/{NcActionTextEditable-OBnWSj_T.css → NcActionTextEditable-BbOijUsB.css} +60 -60
  8. package/dist/assets/{NcActions-D7gPHaUE.css → NcActions-DxcpMfrs.css} +11 -11
  9. package/dist/assets/{NcAppContent-CvTesBem.css → NcAppContent-Di-SbMxO.css} +23 -23
  10. package/dist/assets/{NcAppNavigationItem-DRU-cLRN.css → NcAppNavigationItem-Cq6ZYdmT.css} +30 -30
  11. package/dist/assets/{NcAppSettingsDialog-DZfD_UEa.css → NcAppSettingsDialog-DMWosHw9.css} +10 -10
  12. package/dist/assets/{NcAppSidebar-GFQ62pY2.css → NcAppSidebar-exl90fRm.css} +85 -76
  13. package/dist/assets/{NcAvatar-UxFZ39EC.css → NcAvatar-B3wk2Xxl.css} +24 -24
  14. package/dist/assets/{NcChip-CKtzzrlA.css → NcChip-VsVAGaG6.css} +9 -9
  15. package/dist/assets/{NcContent-aXaYSfjS.css → NcContent-cRwic6r5.css} +9 -9
  16. package/dist/assets/{NcCounterBubble-DWgyYB0d.css → NcCounterBubble-DpKQwKTI.css} +7 -7
  17. package/dist/assets/{NcDashboardWidget-xV4o6Cen.css → NcDashboardWidget-BEYk4O95.css} +12 -12
  18. package/dist/assets/{NcDateTimePickerNative-CdHLvH4A.css → NcDateTimePickerNative-CeuS8Oeg.css} +13 -13
  19. package/dist/assets/{NcEmptyContent-D1O466rM.css → NcEmptyContent-q-geAf0w.css} +12 -9
  20. package/dist/assets/{NcGuestContent-C9lbC3vg.css → NcGuestContent-BZ26iXQi.css} +2 -2
  21. package/dist/assets/{NcIconSvgWrapper-BzRHs8iB.css → NcIconSvgWrapper-cYxhjYue.css} +12 -9
  22. package/dist/assets/{NcListItem-Byw-ayOI.css → NcListItem-9eCenovm.css} +44 -44
  23. package/dist/assets/{NcListItemIcon-Bnr-Z-SO.css → NcListItemIcon-DjEDwxRp.css} +13 -13
  24. package/dist/assets/{NcMentionBubble-CB5c5ue2.css → NcMentionBubble-DLOTFwpl.css} +9 -9
  25. package/dist/assets/{index-CjPwAJ46.css → NcModal-DaHROv08.css} +61 -61
  26. package/dist/assets/{NcRichContenteditable-CkyUKlIz.css → NcRichContenteditable-KsmFPJmm.css} +21 -21
  27. package/dist/assets/{NcRichText-BbVi69cc.css → NcRichText-GnQKcHYO.css} +84 -84
  28. package/dist/assets/NcSelectUsers-2-PyuY9Z.css +4 -0
  29. package/dist/assets/{NcUserStatusIcon-Du-BEPk_.css → NcUserStatusIcon-CtJLt6AU.css} +3 -3
  30. package/dist/assets/{referencePickerModal-CkGgDb19.css → referencePickerModal-DAD-jv3F.css} +23 -23
  31. package/dist/chunks/{ArrowRight-DQT24Cb-.mjs → ArrowRight-DRKHUZMH.mjs} +3 -3
  32. package/dist/chunks/{ArrowRight-DQT24Cb-.mjs.map → ArrowRight-DRKHUZMH.mjs.map} +1 -1
  33. package/dist/chunks/{NcActionButton-BZEDhdCm.mjs → NcActionButton-CnX0dQzz.mjs} +44 -95
  34. package/dist/chunks/NcActionButton-CnX0dQzz.mjs.map +1 -0
  35. package/dist/chunks/{NcActionButtonGroup-Dqt8Gekb.mjs → NcActionButtonGroup-3Da8b3EI.mjs} +2 -2
  36. package/dist/chunks/{NcActionButtonGroup-Dqt8Gekb.mjs.map → NcActionButtonGroup-3Da8b3EI.mjs.map} +1 -1
  37. package/dist/chunks/{NcActionInput-C_rmP0eZ.mjs → NcActionInput-DeFy255L.mjs} +11 -18
  38. package/dist/chunks/NcActionInput-DeFy255L.mjs.map +1 -0
  39. package/dist/chunks/{NcActionLink-BTIApspK.mjs → NcActionLink-BEo7zmXX.mjs} +4 -13
  40. package/dist/chunks/{NcActionLink-BTIApspK.mjs.map → NcActionLink-BEo7zmXX.mjs.map} +1 -1
  41. package/dist/chunks/{NcActionRouter-DATNpU_e.mjs → NcActionRouter-ERoQjJKv.mjs} +3 -3
  42. package/dist/chunks/{NcActionRouter-DATNpU_e.mjs.map → NcActionRouter-ERoQjJKv.mjs.map} +1 -1
  43. package/dist/chunks/{NcActionText-3mJjsJz_.mjs → NcActionText-DJWBefhJ.mjs} +3 -3
  44. package/dist/chunks/{NcActionText-3mJjsJz_.mjs.map → NcActionText-DJWBefhJ.mjs.map} +1 -1
  45. package/dist/chunks/{NcActionTextEditable-Dv1_bMFY.mjs → NcActionTextEditable-B7nemAOJ.mjs} +14 -20
  46. package/dist/chunks/NcActionTextEditable-B7nemAOJ.mjs.map +1 -0
  47. package/dist/chunks/{NcActions-DpYAcY6a.mjs → NcActions-DS88I6qk.mjs} +22 -20
  48. package/dist/chunks/NcActions-DS88I6qk.mjs.map +1 -0
  49. package/dist/chunks/{NcAppContent-BMiA5ySy.mjs → NcAppContent-DRhM7Gyz.mjs} +38 -66
  50. package/dist/chunks/NcAppContent-DRhM7Gyz.mjs.map +1 -0
  51. package/dist/chunks/NcAppContentDetails.vue_vue_type_script_setup_true_lang-Dnf4r_Ng.mjs +16 -0
  52. package/dist/chunks/NcAppContentDetails.vue_vue_type_script_setup_true_lang-Dnf4r_Ng.mjs.map +1 -0
  53. package/dist/chunks/{NcAppNavigation-DuLUJbsJ.mjs → NcAppNavigation-BVXVi9JQ.mjs} +2 -2
  54. package/dist/chunks/{NcAppNavigation-DuLUJbsJ.mjs.map → NcAppNavigation-BVXVi9JQ.mjs.map} +1 -1
  55. package/dist/chunks/{NcAppNavigationCaption-DTVdWgpf.mjs → NcAppNavigationCaption-DkiIEk6r.mjs} +2 -2
  56. package/dist/chunks/{NcAppNavigationCaption-DTVdWgpf.mjs.map → NcAppNavigationCaption-DkiIEk6r.mjs.map} +1 -1
  57. package/dist/chunks/{NcAppNavigationItem-5KG5Pl2c.mjs → NcAppNavigationItem-s3GC1n4o.mjs} +68 -68
  58. package/dist/chunks/{NcAppNavigationItem-5KG5Pl2c.mjs.map → NcAppNavigationItem-s3GC1n4o.mjs.map} +1 -1
  59. package/dist/chunks/{NcAppNavigationNewItem-CRCOC0hV.mjs → NcAppNavigationNewItem-D1GWsi8R.mjs} +2 -2
  60. package/dist/chunks/{NcAppNavigationNewItem-CRCOC0hV.mjs.map → NcAppNavigationNewItem-D1GWsi8R.mjs.map} +1 -1
  61. package/dist/chunks/{NcAppNavigationSearch-AT_S98B0.mjs → NcAppNavigationSearch-Cy0s4XWp.mjs} +2 -2
  62. package/dist/chunks/{NcAppNavigationSearch-AT_S98B0.mjs.map → NcAppNavigationSearch-Cy0s4XWp.mjs.map} +1 -1
  63. package/dist/chunks/{NcAppNavigationSettings-DFsvNlME.mjs → NcAppNavigationSettings-GeCb9tlR.mjs} +2 -2
  64. package/dist/chunks/{NcAppNavigationSettings-DFsvNlME.mjs.map → NcAppNavigationSettings-GeCb9tlR.mjs.map} +1 -1
  65. package/dist/chunks/{NcAppNavigationToggle-CqZs9ls-.mjs → NcAppNavigationToggle-CFw3W3_o.mjs} +2 -2
  66. package/dist/chunks/{NcAppNavigationToggle-CqZs9ls-.mjs.map → NcAppNavigationToggle-CFw3W3_o.mjs.map} +1 -1
  67. package/dist/chunks/{NcAppSettingsDialog-CTUoQezW.mjs → NcAppSettingsDialog-CBLZvdnK.mjs} +7 -7
  68. package/dist/chunks/{NcAppSettingsDialog-CTUoQezW.mjs.map → NcAppSettingsDialog-CBLZvdnK.mjs.map} +1 -1
  69. package/dist/chunks/{NcAppSidebar-B7shIqzm.mjs → NcAppSidebar-BomlW59S.mjs} +287 -274
  70. package/dist/chunks/NcAppSidebar-BomlW59S.mjs.map +1 -0
  71. package/dist/chunks/NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-0j0aFDeK.mjs +30 -0
  72. package/dist/chunks/NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-0j0aFDeK.mjs.map +1 -0
  73. package/dist/chunks/{NcAvatar-CvPCBukb.mjs → NcAvatar-CSk-1oFe.mjs} +13 -13
  74. package/dist/chunks/{NcAvatar-CvPCBukb.mjs.map → NcAvatar-CSk-1oFe.mjs.map} +1 -1
  75. package/dist/chunks/{NcBreadcrumb-C3qGDt3z.mjs → NcBreadcrumb-Bvsnecwa.mjs} +46 -4
  76. package/dist/chunks/NcBreadcrumb-Bvsnecwa.mjs.map +1 -0
  77. package/dist/chunks/{NcBreadcrumbs-DtBCo9yI.mjs → NcBreadcrumbs-DWU2ZRkM.mjs} +6 -6
  78. package/dist/chunks/{NcBreadcrumbs-DtBCo9yI.mjs.map → NcBreadcrumbs-DWU2ZRkM.mjs.map} +1 -1
  79. package/dist/chunks/{NcCheckboxRadioSwitch-DrNlVZw8.mjs → NcCheckboxRadioSwitch-Ca1ouh22.mjs} +2 -2
  80. package/dist/chunks/{NcCheckboxRadioSwitch-DrNlVZw8.mjs.map → NcCheckboxRadioSwitch-Ca1ouh22.mjs.map} +1 -1
  81. package/dist/chunks/{NcChip-Cq8DrWKb.mjs → NcChip-Cl6RfDoK.mjs} +14 -15
  82. package/dist/chunks/NcChip-Cl6RfDoK.mjs.map +1 -0
  83. package/dist/chunks/{NcCollectionList-CFuwV9sI.mjs → NcCollectionList-CxzQkCFq.mjs} +6 -6
  84. package/dist/chunks/{NcCollectionList-CFuwV9sI.mjs.map → NcCollectionList-CxzQkCFq.mjs.map} +1 -1
  85. package/dist/chunks/{NcColorPicker-Clo5oIYN.mjs → NcColorPicker-BjsBCkEt.mjs} +4 -4
  86. package/dist/chunks/{NcColorPicker-Clo5oIYN.mjs.map → NcColorPicker-BjsBCkEt.mjs.map} +1 -1
  87. package/dist/chunks/{NcContent-CUuf0HwJ.mjs → NcContent-DtM8j8ub.mjs} +5 -5
  88. package/dist/chunks/{NcContent-CUuf0HwJ.mjs.map → NcContent-DtM8j8ub.mjs.map} +1 -1
  89. package/dist/chunks/NcCounterBubble-PBdqn9Nf.mjs +52 -0
  90. package/dist/chunks/NcCounterBubble-PBdqn9Nf.mjs.map +1 -0
  91. package/dist/chunks/{NcDashboardWidget-CXw7Hxc8.mjs → NcDashboardWidget-uBobynyZ.mjs} +7 -7
  92. package/dist/chunks/{NcDashboardWidget-CXw7Hxc8.mjs.map → NcDashboardWidget-uBobynyZ.mjs.map} +1 -1
  93. package/dist/chunks/{NcDashboardWidgetItem-C6GoJEri.mjs → NcDashboardWidgetItem-DnI9uLf1.mjs} +4 -4
  94. package/dist/chunks/{NcDashboardWidgetItem-C6GoJEri.mjs.map → NcDashboardWidgetItem-DnI9uLf1.mjs.map} +1 -1
  95. package/dist/chunks/{NcDateTime.vue_vue_type_script_setup_true_lang-BYXau4sd.mjs → NcDateTime.vue_vue_type_script_setup_true_lang-BD-rj6Dr.mjs} +2 -2
  96. package/dist/chunks/{NcDateTime.vue_vue_type_script_setup_true_lang-BYXau4sd.mjs.map → NcDateTime.vue_vue_type_script_setup_true_lang-BD-rj6Dr.mjs.map} +1 -1
  97. package/dist/chunks/{NcDateTimePicker-CDFvxL3U.mjs → NcDateTimePicker-DYNOGc6A.mjs} +5 -5
  98. package/dist/chunks/{NcDateTimePicker-CDFvxL3U.mjs.map → NcDateTimePicker-DYNOGc6A.mjs.map} +1 -1
  99. package/dist/chunks/{NcDateTimePickerNative-BRuMK89z.mjs → NcDateTimePickerNative-D0pjWawX.mjs} +5 -6
  100. package/dist/chunks/NcDateTimePickerNative-D0pjWawX.mjs.map +1 -0
  101. package/dist/chunks/{NcDialog-BX0IET9Y.mjs → NcDialog-BQNR_-Ju.mjs} +3 -3
  102. package/dist/chunks/{NcDialog-BX0IET9Y.mjs.map → NcDialog-BQNR_-Ju.mjs.map} +1 -1
  103. package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-DbzPc_gW.mjs → NcDialogButton.vue_vue_type_script_setup_true_lang-DAZ2Budh.mjs} +3 -3
  104. package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-DbzPc_gW.mjs.map → NcDialogButton.vue_vue_type_script_setup_true_lang-DAZ2Budh.mjs.map} +1 -1
  105. package/dist/chunks/{NcEmojiPicker-C30Ofq8B.mjs → NcEmojiPicker-lhuMMbDy.mjs} +6 -6
  106. package/dist/chunks/{NcEmojiPicker-C30Ofq8B.mjs.map → NcEmojiPicker-lhuMMbDy.mjs.map} +1 -1
  107. package/dist/chunks/NcEmptyContent-BdOezubv.mjs +56 -0
  108. package/dist/chunks/NcEmptyContent-BdOezubv.mjs.map +1 -0
  109. package/dist/chunks/NcGuestContent-B_S2nyJ4.mjs +25 -0
  110. package/dist/chunks/NcGuestContent-B_S2nyJ4.mjs.map +1 -0
  111. package/dist/chunks/{NcHeaderMenu-CEH_-KT_.mjs → NcHeaderMenu-o9FmNBI5.mjs} +2 -2
  112. package/dist/chunks/{NcHeaderMenu-CEH_-KT_.mjs.map → NcHeaderMenu-o9FmNBI5.mjs.map} +1 -1
  113. package/dist/chunks/NcIconSvgWrapper-BOiCKv0b.mjs +68 -0
  114. package/dist/chunks/NcIconSvgWrapper-BOiCKv0b.mjs.map +1 -0
  115. package/dist/chunks/{NcInputConfirmCancel-DeWD9uc6.mjs → NcInputConfirmCancel-C1K1gyQA.mjs} +4 -4
  116. package/dist/chunks/{NcInputConfirmCancel-DeWD9uc6.mjs.map → NcInputConfirmCancel-C1K1gyQA.mjs.map} +1 -1
  117. package/dist/chunks/{NcListItem-CVX52kG-.mjs → NcListItem-C2LlJgjL.mjs} +6 -6
  118. package/dist/chunks/{NcListItem-CVX52kG-.mjs.map → NcListItem-C2LlJgjL.mjs.map} +1 -1
  119. package/dist/chunks/{NcListItemIcon-Cc6vXRrY.mjs → NcListItemIcon-5ms0eK3w.mjs} +6 -6
  120. package/dist/chunks/{NcListItemIcon-Cc6vXRrY.mjs.map → NcListItemIcon-5ms0eK3w.mjs.map} +1 -1
  121. package/dist/chunks/{NcMentionBubble.vue_vue_type_style_index_0_scoped_5b8f093f_lang-DZbkIMTW.mjs → NcMentionBubble.vue_vue_type_style_index_0_scoped_c29760cd_lang-CZdrlInz.mjs} +2 -2
  122. package/dist/chunks/{NcMentionBubble.vue_vue_type_style_index_0_scoped_5b8f093f_lang-DZbkIMTW.mjs.map → NcMentionBubble.vue_vue_type_style_index_0_scoped_c29760cd_lang-CZdrlInz.mjs.map} +1 -1
  123. package/dist/chunks/NcModal-BisVxXe_.mjs +780 -0
  124. package/dist/chunks/NcModal-BisVxXe_.mjs.map +1 -0
  125. package/dist/chunks/{NcPasswordField-CYPRKGml.mjs → NcPasswordField-hZiEd3tC.mjs} +2 -2
  126. package/dist/chunks/{NcPasswordField-CYPRKGml.mjs.map → NcPasswordField-hZiEd3tC.mjs.map} +1 -1
  127. package/dist/chunks/{NcPopover-EPnt2iHh.mjs → NcPopover-MsWUAvsI.mjs} +13 -6
  128. package/dist/chunks/NcPopover-MsWUAvsI.mjs.map +1 -0
  129. package/dist/chunks/{NcRelatedResourcesPanel-Bcy58V31.mjs → NcRelatedResourcesPanel-CShyi9lg.mjs} +3 -3
  130. package/dist/chunks/{NcRelatedResourcesPanel-Bcy58V31.mjs.map → NcRelatedResourcesPanel-CShyi9lg.mjs.map} +1 -1
  131. package/dist/chunks/{NcRichContenteditable-BR08SbpA.mjs → NcRichContenteditable-DgH9H1qf.mjs} +22 -42
  132. package/dist/chunks/NcRichContenteditable-DgH9H1qf.mjs.map +1 -0
  133. package/dist/chunks/{NcRichText-jZif8PdV.mjs → NcRichText-BkKK1moX.mjs} +8 -6
  134. package/dist/chunks/{NcRichText-jZif8PdV.mjs.map → NcRichText-BkKK1moX.mjs.map} +1 -1
  135. package/dist/chunks/{NcSelect-BkTH-Yqm.mjs → NcSelect-BSa2kSPW.mjs} +2 -4
  136. package/dist/chunks/NcSelect-BSa2kSPW.mjs.map +1 -0
  137. package/dist/chunks/{NcSelectTags-BY8LM7qV.mjs → NcSelectTags-BW0QroJV.mjs} +3 -3
  138. package/dist/chunks/{NcSelectTags-BY8LM7qV.mjs.map → NcSelectTags-BW0QroJV.mjs.map} +1 -1
  139. package/dist/chunks/NcSelectUsers-Bhx9k-0v.mjs +76 -0
  140. package/dist/chunks/NcSelectUsers-Bhx9k-0v.mjs.map +1 -0
  141. package/dist/chunks/{NcSettingsInputText-B129n9sr.mjs → NcSettingsInputText-CrOqaL-x.mjs} +2 -2
  142. package/dist/chunks/{NcSettingsInputText-B129n9sr.mjs.map → NcSettingsInputText-CrOqaL-x.mjs.map} +1 -1
  143. package/dist/chunks/{NcSettingsSection-CjWtq7TT.mjs → NcSettingsSection-D6ShpfeY.mjs} +2 -2
  144. package/dist/chunks/{NcSettingsSection-CjWtq7TT.mjs.map → NcSettingsSection-D6ShpfeY.mjs.map} +1 -1
  145. package/dist/chunks/{NcSettingsSelectGroup-B8uq0KIw.mjs → NcSettingsSelectGroup-DpNxkoZ2.mjs} +3 -3
  146. package/dist/chunks/{NcSettingsSelectGroup-B8uq0KIw.mjs.map → NcSettingsSelectGroup-DpNxkoZ2.mjs.map} +1 -1
  147. package/dist/chunks/{NcTextField-KGXtf7Y6.mjs → NcTextField-DJ1KtSKd.mjs} +4 -4
  148. package/dist/chunks/{NcTextField-KGXtf7Y6.mjs.map → NcTextField-DJ1KtSKd.mjs.map} +1 -1
  149. package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-DxoB-jLa.mjs → NcTimezonePicker.vue_vue_type_script_setup_true_lang-T3gPr-FV.mjs} +3 -3
  150. package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-DxoB-jLa.mjs.map → NcTimezonePicker.vue_vue_type_script_setup_true_lang-T3gPr-FV.mjs.map} +1 -1
  151. package/dist/chunks/{NcUserBubble-qqRewR9C.mjs → NcUserBubble-Csot0WLv.mjs} +3 -3
  152. package/dist/chunks/{NcUserBubble-qqRewR9C.mjs.map → NcUserBubble-Csot0WLv.mjs.map} +1 -1
  153. package/dist/chunks/{NcUserStatusIcon-DpZVD4HJ.mjs → NcUserStatusIcon-CtOZd90o.mjs} +54 -103
  154. package/dist/chunks/NcUserStatusIcon-CtOZd90o.mjs.map +1 -0
  155. package/dist/chunks/NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs +23 -0
  156. package/dist/chunks/NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs.map +1 -0
  157. package/dist/chunks/{_l10n-BNGeEX3W.mjs → _l10n-Bg-fZ9R0.mjs} +34 -38
  158. package/dist/chunks/_l10n-Bg-fZ9R0.mjs.map +1 -0
  159. package/dist/chunks/{actionText-BiV1_BZX.mjs → actionText-DdSwf9le.mjs} +7 -10
  160. package/dist/chunks/actionText-DdSwf9le.mjs.map +1 -0
  161. package/dist/chunks/{colors-CSUSQx1k.mjs → colors-BPGhD2C5.mjs} +2 -2
  162. package/dist/chunks/{colors-CSUSQx1k.mjs.map → colors-BPGhD2C5.mjs.map} +1 -1
  163. package/dist/chunks/{mdi-zYpVOORa.mjs → mdi-CR-3gwdl.mjs} +12 -8
  164. package/dist/chunks/{mdi-zYpVOORa.mjs.map → mdi-CR-3gwdl.mjs.map} +1 -1
  165. package/dist/chunks/{referencePickerModal-DzM7CkKN.mjs → referencePickerModal-Dw1szWUR.mjs} +10 -10
  166. package/dist/chunks/{referencePickerModal-DzM7CkKN.mjs.map → referencePickerModal-Dw1szWUR.mjs.map} +1 -1
  167. package/dist/chunks/{useFormatDateTime-BPGWjR3-.mjs → useFormatDateTime-L411ysPm.mjs} +2 -2
  168. package/dist/chunks/{useFormatDateTime-BPGWjR3-.mjs.map → useFormatDateTime-L411ysPm.mjs.map} +1 -1
  169. package/dist/chunks/{usernameToColor-Bl9NGU_9.mjs → usernameToColor-CuTR6O_B.mjs} +2 -2
  170. package/dist/chunks/{usernameToColor-Bl9NGU_9.mjs.map → usernameToColor-CuTR6O_B.mjs.map} +1 -1
  171. package/dist/components/NcActionButton/NcActionButton.vue.d.ts +38 -27
  172. package/dist/components/NcActionButton/index.mjs +1 -1
  173. package/dist/components/NcActionButtonGroup/index.mjs +1 -1
  174. package/dist/components/NcActionCheckbox/NcActionCheckbox.vue.d.ts +1 -1
  175. package/dist/components/NcActionInput/index.mjs +1 -1
  176. package/dist/components/NcActionLink/index.mjs +1 -1
  177. package/dist/components/NcActionRadio/NcActionRadio.vue.d.ts +1 -1
  178. package/dist/components/NcActionRouter/NcActionRouter.vue.d.ts +1 -4
  179. package/dist/components/NcActionRouter/index.mjs +1 -1
  180. package/dist/components/NcActionText/NcActionText.vue.d.ts +1 -4
  181. package/dist/components/NcActionText/index.mjs +1 -1
  182. package/dist/components/NcActionTextEditable/NcActionTextEditable.vue.d.ts +24 -9
  183. package/dist/components/NcActionTextEditable/index.mjs +1 -1
  184. package/dist/components/NcActions/index.mjs +1 -1
  185. package/dist/components/NcAppContent/NcAppContent.vue.d.ts +225 -0
  186. package/dist/components/NcAppContent/NcAppDetailsToggle.vue.d.ts +2 -0
  187. package/dist/components/NcAppContent/index.mjs +1 -1
  188. package/dist/components/NcAppContentDetails/NcAppContentDetails.vue.d.ts +27 -1
  189. package/dist/components/NcAppContentDetails/index.d.ts +4 -0
  190. package/dist/components/NcAppContentDetails/index.mjs +2 -2
  191. package/dist/components/NcAppNavigation/index.mjs +1 -1
  192. package/dist/components/NcAppNavigationCaption/index.mjs +1 -1
  193. package/dist/components/NcAppNavigationItem/index.mjs +1 -1
  194. package/dist/components/NcAppNavigationNewItem/index.mjs +1 -1
  195. package/dist/components/NcAppNavigationSearch/index.mjs +1 -1
  196. package/dist/components/NcAppNavigationSettings/index.mjs +1 -1
  197. package/dist/components/NcAppNavigationToggle/index.mjs +1 -1
  198. package/dist/components/NcAppSettingsDialog/index.mjs +1 -1
  199. package/dist/components/NcAppSidebar/NcAppSidebarTabs.vue.d.ts +7 -3
  200. package/dist/components/NcAppSidebar/index.mjs +1 -1
  201. package/dist/components/NcAppSidebarHeader/NcAppSidebarHeader.vue.d.ts +18 -0
  202. package/dist/components/NcAppSidebarHeader/index.d.ts +5 -0
  203. package/dist/components/NcAppSidebarHeader/index.mjs +5 -0
  204. package/dist/components/NcAppSidebarHeader/index.mjs.map +1 -0
  205. package/dist/components/NcAvatar/index.mjs +1 -1
  206. package/dist/components/NcBreadcrumb/index.mjs +1 -1
  207. package/dist/components/NcBreadcrumbs/index.mjs +1 -1
  208. package/dist/components/NcCheckboxRadioSwitch/index.mjs +1 -1
  209. package/dist/components/NcChip/NcChip.vue.d.ts +38 -6
  210. package/dist/components/NcChip/index.mjs +1 -1
  211. package/dist/components/NcCollectionList/index.mjs +1 -1
  212. package/dist/components/NcColorPicker/index.mjs +1 -1
  213. package/dist/components/NcContent/index.mjs +1 -1
  214. package/dist/components/NcCounterBubble/NcCounterBubble.vue.d.ts +10 -60
  215. package/dist/components/NcCounterBubble/index.d.ts +4 -0
  216. package/dist/components/NcCounterBubble/index.mjs +1 -1
  217. package/dist/components/NcDashboardWidget/index.mjs +1 -1
  218. package/dist/components/NcDashboardWidgetItem/index.mjs +1 -1
  219. package/dist/components/NcDateTime/index.mjs +1 -1
  220. package/dist/components/NcDateTimePicker/index.mjs +1 -1
  221. package/dist/components/NcDateTimePickerNative/NcDateTimePickerNative.vue.d.ts +178 -1
  222. package/dist/components/NcDateTimePickerNative/index.mjs +1 -1
  223. package/dist/components/NcDialog/NcDialog.vue.d.ts +4 -4
  224. package/dist/components/NcDialog/index.mjs +1 -1
  225. package/dist/components/NcDialogButton/NcDialogButton.vue.d.ts +1 -1
  226. package/dist/components/NcDialogButton/index.mjs +1 -1
  227. package/dist/components/NcEmojiPicker/index.mjs +1 -1
  228. package/dist/components/NcEmptyContent/NcEmptyContent.vue.d.ts +58 -28
  229. package/dist/components/NcEmptyContent/index.d.ts +4 -0
  230. package/dist/components/NcEmptyContent/index.mjs +1 -1
  231. package/dist/components/NcGuestContent/NcGuestContent.vue.d.ts +19 -1
  232. package/dist/components/NcGuestContent/index.d.ts +4 -0
  233. package/dist/components/NcGuestContent/index.mjs +1 -1
  234. package/dist/components/NcHeaderMenu/index.mjs +1 -1
  235. package/dist/components/NcIconSvgWrapper/NcIconSvgWrapper.vue.d.ts +12 -87
  236. package/dist/components/NcIconSvgWrapper/index.d.ts +4 -0
  237. package/dist/components/NcIconSvgWrapper/index.mjs +1 -1
  238. package/dist/components/NcListItem/index.mjs +1 -1
  239. package/dist/components/NcListItemIcon/index.mjs +1 -1
  240. package/dist/components/NcModal/index.d.ts +1 -2
  241. package/dist/components/NcModal/index.mjs +2 -779
  242. package/dist/components/NcModal/index.mjs.map +1 -1
  243. package/dist/components/NcPasswordField/index.mjs +1 -1
  244. package/dist/components/NcPopover/index.mjs +1 -1
  245. package/dist/components/NcRelatedResourcesPanel/index.mjs +1 -1
  246. package/dist/components/NcRichContenteditable/NcAutoCompleteResult.vue.d.ts +18 -19
  247. package/dist/components/NcRichContenteditable/NcMentionBubble.vue.d.ts +0 -18
  248. package/dist/components/NcRichContenteditable/NcRichContenteditable.vue.d.ts +3 -3
  249. package/dist/components/NcRichContenteditable/index.mjs +1 -1
  250. package/dist/components/NcRichText/NcReferencePicker/NcProviderList.vue.d.ts +41 -20
  251. package/dist/components/NcRichText/NcReferencePicker/NcSearch.vue.d.ts +41 -20
  252. package/dist/components/NcRichText/index.mjs +3 -3
  253. package/dist/components/NcSelect/index.mjs +1 -1
  254. package/dist/components/NcSelectTags/index.mjs +1 -1
  255. package/dist/components/NcSelectUsers/NcSelectUsers.vue.d.ts +3 -3
  256. package/dist/components/NcSelectUsers/index.mjs +2 -70
  257. package/dist/components/NcSelectUsers/index.mjs.map +1 -1
  258. package/dist/components/NcSettingsInputText/NcSettingsInputText.vue.d.ts +3 -3
  259. package/dist/components/NcSettingsInputText/index.mjs +1 -1
  260. package/dist/components/NcSettingsSection/index.mjs +1 -1
  261. package/dist/components/NcSettingsSelectGroup/NcSettingsSelectGroup.vue.d.ts +2 -2
  262. package/dist/components/NcSettingsSelectGroup/index.mjs +1 -1
  263. package/dist/components/NcTextArea/NcTextArea.vue.d.ts +1 -1
  264. package/dist/components/NcTextField/index.mjs +1 -1
  265. package/dist/components/NcTimezonePicker/index.mjs +1 -1
  266. package/dist/components/NcUserBubble/index.mjs +1 -1
  267. package/dist/components/NcUserStatusIcon/NcUserStatusIcon.vue.d.ts +21 -1
  268. package/dist/components/NcUserStatusIcon/index.d.ts +4 -0
  269. package/dist/components/NcUserStatusIcon/index.mjs +1 -1
  270. package/dist/components/NcVNodes/NcVNodes.vue.d.ts +8 -3
  271. package/dist/components/NcVNodes/index.d.ts +4 -0
  272. package/dist/components/NcVNodes/index.mjs +2 -21
  273. package/dist/components/NcVNodes/index.mjs.map +1 -1
  274. package/dist/components/index.d.ts +11 -9
  275. package/dist/directives/Focus/index.d.ts +2 -3
  276. package/dist/directives/Focus/index.mjs +1 -2
  277. package/dist/directives/Focus/index.mjs.map +1 -1
  278. package/dist/directives/index.d.ts +1 -1
  279. package/dist/functions/dialog/index.d.ts +8 -1
  280. package/dist/functions/dialog/index.mjs.map +1 -1
  281. package/dist/functions/reference/index.mjs +1 -1
  282. package/dist/functions/usernameToColor/index.mjs +1 -1
  283. package/dist/index.mjs +140 -136
  284. package/dist/index.mjs.map +1 -1
  285. package/dist/mixins/actionText.d.ts +1 -6
  286. package/package.json +5 -6
  287. package/dist/assets/index-D9L0rgJk.css +0 -4
  288. package/dist/chunks/ChevronRight-LvtA5_hq.mjs +0 -49
  289. package/dist/chunks/ChevronRight-LvtA5_hq.mjs.map +0 -1
  290. package/dist/chunks/NcActionButton-BZEDhdCm.mjs.map +0 -1
  291. package/dist/chunks/NcActionInput-C_rmP0eZ.mjs.map +0 -1
  292. package/dist/chunks/NcActionTextEditable-Dv1_bMFY.mjs.map +0 -1
  293. package/dist/chunks/NcActions-DpYAcY6a.mjs.map +0 -1
  294. package/dist/chunks/NcAppContent-BMiA5ySy.mjs.map +0 -1
  295. package/dist/chunks/NcAppContentDetails-DsEEBJ0U.mjs +0 -16
  296. package/dist/chunks/NcAppContentDetails-DsEEBJ0U.mjs.map +0 -1
  297. package/dist/chunks/NcAppSidebar-B7shIqzm.mjs.map +0 -1
  298. package/dist/chunks/NcBreadcrumb-C3qGDt3z.mjs.map +0 -1
  299. package/dist/chunks/NcChip-Cq8DrWKb.mjs.map +0 -1
  300. package/dist/chunks/NcCounterBubble-6B_JNUUS.mjs +0 -78
  301. package/dist/chunks/NcCounterBubble-6B_JNUUS.mjs.map +0 -1
  302. package/dist/chunks/NcDateTimePickerNative-BRuMK89z.mjs.map +0 -1
  303. package/dist/chunks/NcEmptyContent-BQnIrQQn.mjs +0 -68
  304. package/dist/chunks/NcEmptyContent-BQnIrQQn.mjs.map +0 -1
  305. package/dist/chunks/NcGuestContent-iQpV7mLC.mjs +0 -23
  306. package/dist/chunks/NcGuestContent-iQpV7mLC.mjs.map +0 -1
  307. package/dist/chunks/NcIconSvgWrapper-Bc3ogp8T.mjs +0 -120
  308. package/dist/chunks/NcIconSvgWrapper-Bc3ogp8T.mjs.map +0 -1
  309. package/dist/chunks/NcPopover-EPnt2iHh.mjs.map +0 -1
  310. package/dist/chunks/NcRichContenteditable-BR08SbpA.mjs.map +0 -1
  311. package/dist/chunks/NcSelect-BkTH-Yqm.mjs.map +0 -1
  312. package/dist/chunks/NcUserStatusIcon-DpZVD4HJ.mjs.map +0 -1
  313. package/dist/chunks/ScopeComponent-BIpNSmeE.mjs +0 -15
  314. package/dist/chunks/ScopeComponent-BIpNSmeE.mjs.map +0 -1
  315. package/dist/chunks/_l10n-BNGeEX3W.mjs.map +0 -1
  316. package/dist/chunks/actionText-BiV1_BZX.mjs.map +0 -1
  317. package/dist/utils/ScopeComponent.d.ts +0 -6
@@ -1,78 +0,0 @@
1
- import '../assets/NcCounterBubble-DWgyYB0d.css';
2
- import { getCanonicalLocale } from "@nextcloud/l10n";
3
- import { createElementBlock, openBlock, normalizeClass, toDisplayString } from "vue";
4
- import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
5
- const _sfc_main = {
6
- name: "NcCounterBubble",
7
- props: {
8
- type: {
9
- type: String,
10
- default: "",
11
- validator(value) {
12
- return ["highlighted", "outlined", ""].includes(value);
13
- }
14
- },
15
- /**
16
- * Specifies whether the component is used within a component that is
17
- * active and therefore has a primary background. Inverts the color of
18
- * this component when that is the case.
19
- */
20
- active: {
21
- type: Boolean,
22
- default: false
23
- },
24
- /**
25
- * The count to display in the counter bubble.
26
- */
27
- count: {
28
- type: Number,
29
- required: true
30
- },
31
- /**
32
- * Disables humanization to display count as it is.
33
- */
34
- raw: {
35
- type: Boolean,
36
- required: false,
37
- default: false
38
- }
39
- },
40
- computed: {
41
- counterClassObject() {
42
- return {
43
- "counter-bubble__counter--highlighted": this.type === "highlighted",
44
- "counter-bubble__counter--outlined": this.type === "outlined",
45
- active: this.active
46
- };
47
- },
48
- humanizedCount() {
49
- if (this.raw) {
50
- return this.count.toString();
51
- }
52
- const formatter = new Intl.NumberFormat(getCanonicalLocale(), {
53
- notation: "compact",
54
- compactDisplay: "short"
55
- });
56
- return formatter.format(this.count);
57
- },
58
- originalCountAsTitleIfNeeded() {
59
- const countAsString = this.count.toString();
60
- if (this.raw || countAsString === this.humanizedCount) {
61
- return void 0;
62
- }
63
- return countAsString;
64
- }
65
- }
66
- };
67
- const _hoisted_1 = ["title"];
68
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
69
- return openBlock(), createElementBlock("div", {
70
- class: normalizeClass(["counter-bubble__counter", $options.counterClassObject]),
71
- title: $options.originalCountAsTitleIfNeeded
72
- }, toDisplayString($options.humanizedCount), 11, _hoisted_1);
73
- }
74
- const NcCounterBubble = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-f328a941"]]);
75
- export {
76
- NcCounterBubble as N
77
- };
78
- //# sourceMappingURL=NcCounterBubble-6B_JNUUS.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NcCounterBubble-6B_JNUUS.mjs","sources":["../../src/components/NcCounterBubble/NcCounterBubble.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### Default usage\n\nNcCounterBubble displays a number from the `count` prop in a bubble.\n\nBy default, the number is **humanized** according to Nextcloud user's locale setting. Humanization can be disabled via `raw` prop.\n\n```vue\n<template>\n\t<table>\n\t\t<tr>\n\t\t\t<th>count</th>\n\t\t\t<th>default</th>\n\t\t\t<th>raw</th>\n\t\t</tr>\n\t\t<tr v-for=\"num in numbers\" :key=\"num\">\n\t\t\t<td>{{ num }}</td>\n\t\t\t<td>\n\t\t\t\t<NcCounterBubble :count=\"num\" />\n\t\t\t</td>\n\t\t\t<td>\n\t\t\t\t<NcCounterBubble :count=\"num\" raw />\n\t\t\t</td>\n\t\t</tr>\n\t</table>\n</template>\n\n<script>\nexport default {\n\tsetup() {\n\t\treturn {\n\t\t\tnumbers: [1, 9, 75, 450, 1042, 1750, 1999, 14567, 14567890, 2000000008],\n\t\t}\n\t},\n}\n</script>\n\n<style scoped>\ntable {\n\tborder-collapse: collapse;\n}\n\nth,\ntd {\n\tborder: 1px solid var(--color-border);\n\tpadding: var(--default-grid-baseline) calc(var(--default-grid-baseline) * 2);\n}\n\nth {\n\tcolor: var(--color-text-maxcontrast);\n}\n</style>\n```\n\n### Styles\n\nUse different styles for different types of counters.\n\n```\n<template>\n\t<table>\n\t\t<tr>\n\t\t\t<th>type</th>\n\t\t\t<th>counter</th>\n\t\t\t<th>Usage example</th>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td>'' (default)</td>\n\t\t\t<td>\n\t\t\t\t<NcCounterBubble :count=\"3\" />\n\t\t\t</td>\n\t\t\t<td></td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td>outlined</td>\n\t\t\t<td><NcCounterBubble :count=\"3\" type=\"outlined\" /></td>\n\t\t\t<td>Team/group mentions</td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td>highlighted</td>\n\t\t\t<td>\n\t\t\t\t<NcCounterBubble :count=\"3\" type=\"highlighted\" />\n\t\t\t</td>\n\t\t\t<td>Direct mentions</td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td>outlined active</td>\n\t\t\t<td class=\"active-like\">\n\t\t\t\t<NcCounterBubble :count=\"3\" type=\"outlined\" active />\n\t\t\t</td>\n\t\t\t<td>Same as \"outlined\", but in an \"active\" container</td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td>highlighted active</td>\n\t\t\t<td class=\"active-like\">\n\t\t\t\t<NcCounterBubble :count=\"3\" type=\"highlighted\" active />\n\t\t\t</td>\n\t\t\t<td>Same as \"highlighted\", but in an \"active\" container</td>\n\t\t</tr>\n\t</table>\n</template>\n\n<style scoped>\ntable {\n\tborder-collapse: collapse;\n}\n\nth,\ntd {\n\tborder: 1px solid var(--color-border);\n\tpadding: var(--default-grid-baseline) calc(var(--default-grid-baseline) * 2);\n\n\t&.active-like {\n\t\tbackground-color: var(--color-primary-element);\n\t}\n}\n\nth {\n\tcolor: var(--color-text-maxcontrast);\n}\n</style>\n```\n\n### Custom content (removed)\n\nIn v8 it was possible to pass any custom content via the default slot. This feature has been removed. Use `count` prop for numbers or [NcChip](#/Components/NcChip) component for a custom content.\n</docs>\n\n<template>\n\t<div class=\"counter-bubble__counter\"\n\t\t:class=\"counterClassObject\"\n\t\t:title=\"originalCountAsTitleIfNeeded\">\n\t\t{{ humanizedCount }}\n\t</div>\n</template>\n\n<script>\nimport { getCanonicalLocale } from '@nextcloud/l10n'\n\nexport default {\n\tname: 'NcCounterBubble',\n\n\tprops: {\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t\tvalidator(value) {\n\t\t\t\treturn ['highlighted', 'outlined', ''].includes(value)\n\t\t\t},\n\t\t},\n\n\t\t/**\n\t\t * Specifies whether the component is used within a component that is\n\t\t * active and therefore has a primary background. Inverts the color of\n\t\t * this component when that is the case.\n\t\t */\n\t\tactive: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * The count to display in the counter bubble.\n\t\t */\n\t\tcount: {\n\t\t\ttype: Number,\n\t\t\trequired: true,\n\t\t},\n\n\t\t/**\n\t\t * Disables humanization to display count as it is.\n\t\t */\n\t\traw: {\n\t\t\ttype: Boolean,\n\t\t\trequired: false,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\tcounterClassObject() {\n\t\t\treturn {\n\t\t\t\t'counter-bubble__counter--highlighted': this.type === 'highlighted',\n\t\t\t\t'counter-bubble__counter--outlined': this.type === 'outlined',\n\t\t\t\tactive: this.active,\n\t\t\t}\n\t\t},\n\n\t\thumanizedCount() {\n\t\t\tif (this.raw) {\n\t\t\t\treturn this.count.toString()\n\t\t\t}\n\n\t\t\tconst formatter = new Intl.NumberFormat(getCanonicalLocale(), {\n\t\t\t\tnotation: 'compact',\n\t\t\t\tcompactDisplay: 'short',\n\t\t\t})\n\n\t\t\treturn formatter.format(this.count)\n\t\t},\n\n\t\toriginalCountAsTitleIfNeeded() {\n\t\t\tconst countAsString = this.count.toString()\n\n\t\t\t// If raw or unchanged - no need for the title\n\t\t\tif (this.raw || countAsString === this.humanizedCount) {\n\t\t\t\treturn undefined\n\t\t\t}\n\n\t\t\treturn countAsString\n\t\t},\n\t},\n}\n\n</script>\n\n<style lang=\"scss\" scoped>\n.counter-bubble__counter {\n\t--counter-bubble-height: 22px; // ~ 1cap + 2 * 1.5 * grid\n\tfont-size: var(--font-size-small, 13px);\n\toverflow: hidden;\n\twidth: fit-content;\n\tmin-width: var(--counter-bubble-height); // Make it not narrower than a circle\n\ttext-align: center;\n\tline-height: var(--counter-bubble-height); // Expand line-height to full height to center text vertically\n\tpadding: 0 calc(1.5 * var(--default-grid-baseline));\n\tborder-radius: var(--border-radius-pill);\n\tbackground-color: var(--color-primary-element-light);\n\tfont-weight: bold;\n\tcolor: var(--color-primary-element-light-text);\n\n\t& .active {\n\t\tcolor: var(--color-main-background);\n\t\tbackground-color: var(--color-primary-element-light);\n\t}\n\n\t&--highlighted {\n\t\tcolor: var(--color-primary-element-text);\n\t\tbackground-color: var(--color-primary-element);\n\t}\n\n\t&--highlighted.active {\n\t\tcolor: var(--color-primary-element);\n\t\tbackground-color: var(--color-main-background);\n\t}\n\n\t&--outlined {\n\t\tcolor: var(--color-primary-element);\n\t\tbackground: transparent;\n\t\tbox-shadow: inset 0 0 0 2px;\n\t}\n\n\t&--outlined.active {\n\t\tcolor: var(--color-main-background);\n\t\tbox-shadow: inset 0 0 0 2px;\n\t}\n}\n</style>\n"],"names":["_createElementBlock","_normalizeClass","_toDisplayString"],"mappings":";;;AAiJA,MAAK,YAAU;AAAA,EACd,MAAM;AAAA,EAEN,OAAO;AAAA,IACN,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,MACT,UAAU,OAAO;AAChB,eAAO,CAAC,eAAe,YAAY,EAAE,EAAE,SAAS,KAAK;AAAA,MACrD;AAAA,IACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOD,QAAQ;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKD,OAAO;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,IACV;AAAA;AAAA;AAAA;AAAA,IAKD,KAAK;AAAA,MACJ,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,IACT;AAAA,EACD;AAAA,EAED,UAAU;AAAA,IACT,qBAAqB;AACpB,aAAO;AAAA,QACN,wCAAwC,KAAK,SAAS;AAAA,QACtD,qCAAqC,KAAK,SAAS;AAAA,QACnD,QAAQ,KAAK;AAAA,MACd;AAAA,IACA;AAAA,IAED,iBAAiB;AAChB,UAAI,KAAK,KAAK;AACb,eAAO,KAAK,MAAM,SAAQ;AAAA,MAC3B;AAEA,YAAM,YAAY,IAAI,KAAK,aAAa,mBAAkB,GAAI;AAAA,QAC7D,UAAU;AAAA,QACV,gBAAgB;AAAA,MAChB,CAAA;AAED,aAAO,UAAU,OAAO,KAAK,KAAK;AAAA,IAClC;AAAA,IAED,+BAA+B;AAC9B,YAAM,gBAAgB,KAAK,MAAM,SAAQ;AAGzC,UAAI,KAAK,OAAO,kBAAkB,KAAK,gBAAgB;AACtD,eAAO;AAAA,MACR;AAEA,aAAO;AAAA,IACP;AAAA,EACD;AACF;AA1NA,MAAA,aAAA,CAAA,OAAA;;sBAuICA,mBAIM,OAAA;AAAA,IAJD,OAvINC,eAAA,CAuIY,2BACF,SAAkB,kBAAA,CAAA;AAAA,IACzB,OAAO,SAA4B;AAAA,EACjC,GAAAC,gBAAA,SAAA,cAAc,GA1InB,IAAA,UAAA;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"NcDateTimePickerNative-BRuMK89z.mjs","sources":["../../src/components/NcDateTimePickerNative/NcDateTimePickerNative.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n\n### General description\n\nThis components provides a wrapper around the native browser datetime picker. <br>\nThis is an input with some type of date e.g. https://html.spec.whatwg.org/multipage/input.html#local-date-and-time-state-(type=datetime-local). <br>\nAll available types are: 'date', 'datetime-local', 'month', 'time' and 'week', please check them here: https://html.spec.whatwg.org/multipage/input.html# <br>\n\n### Examples\n\n```vue\n<template>\n\t<div>\n\t\t<span>Picked date: {{ value || 'null' }}</span>\n\t\t<hr/>\n\t\t<div class=\"flex\">\n\t\t\t<NcSelect v-bind=\"props\" v-model=\"type\" />\n\t\t\t<NcDateTimePickerNative\n\t\t\t\tv-model=\"value\"\n\t\t\t\t:label=\"label\"\n\t\t\t\t:type=\"type\" />\n\t\t</div>\n\t</div>\n</template>\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tprops: {\n\t\t\t\t\tclearable: false,\n\t\t\t\t\tinputLabel: 'Picker type',\n\t\t\t\t\toptions: [\n\t\t\t\t\t\t'date',\n\t\t\t\t\t\t'datetime-local',\n\t\t\t\t\t\t'month',\n\t\t\t\t\t\t'time',\n\t\t\t\t\t\t'week',\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\ttype: 'datetime-local',\n\t\t\t\tvalue: new Date(),\n\t\t\t\tlabel: 'Select a new date or time',\n\t\t\t}\n\t\t},\n\t}\n</script>\n<style scoped>\n.flex {\n\tdisplay: flex;\n\tgap: 4px;\n}\n</style>\n```\n\n#### Usage: type='datetime-local' with min date and max date\n```vue\n<template>\n\t<div>\n\t\t<span>Picked date: {{ value || 'null' }}</span>\n\t\t<NcDateTimePickerNative\n\t\t\tv-model=\"value\"\n\t\t\t:min=\"yesterdayDate\"\n\t\t\t:max=\"someDate\"\n\t\t\t:label=\"label\"\n\t\t\ttype=\"datetime-local\" />\n\t</div>\n</template>\n\n<script>\n\texport default {\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tvalue: new Date(),\n\t\t\t\tlabel: 'Please select a new date',\n\t\t\t\tyesterdayDate: new Date(new Date().setDate(new Date().getDate() - 1)),\n\t\t\t\tsomeDate: new Date(new Date().setDate(new Date().getDate() + 7)),\n\t\t\t}\n\t\t},\n\t}\n</script>\n```\n\n</docs>\n\n<template>\n\t<div class=\"native-datetime-picker\">\n\t\t<label class=\"native-datetime-picker--label\"\n\t\t\t:class=\"{ 'hidden-visually': hideLabel }\"\n\t\t\t:for=\"id\">\n\t\t\t{{ label }}\n\t\t</label>\n\t\t<input :id=\"id\"\n\t\t\tclass=\"native-datetime-picker--input\"\n\t\t\t:class=\"inputClass\"\n\t\t\t:type=\"type\"\n\t\t\t:value=\"formattedValue\"\n\t\t\t:min=\"formattedMin\"\n\t\t\t:max=\"formattedMax\"\n\t\t\tv-bind=\"$attrs\"\n\t\t\t@input=\"onInput\">\n\t</div>\n</template>\n\n<script>\nimport { createElementId } from '../../utils/createElementId.js'\nimport ScopeComponent from '../../utils/ScopeComponent.js'\n\nconst inputDateTypes = ['date', 'datetime-local', 'month', 'time', 'week']\n\nexport default ScopeComponent({\n\tname: 'NcDateTimePickerNative',\n\tinheritAttrs: false,\n\n\tprops: {\n\t\t/**\n\t\t * The date is – like the `Date` object in JavaScript – tied to UTC.\n\t\t * The selected time zone does not have an influence of the selected time and date value.\n\t\t * You have to translate the time yourself when you want to factor in time zones.\n\t\t * Pass null to clear the input field.\n\t\t */\n\t\tmodelValue: {\n\t\t\ttype: Date,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * id attribute of the input field\n\t\t */\n\t\tid: {\n\t\t\ttype: String,\n\t\t\tdefault: () => createElementId(),\n\t\t\tvalidator: id => id.trim() !== '',\n\t\t},\n\t\t/**\n\t\t * type attribute of the input field\n\t\t * default type: String\n\t\t * The type of the input element, it can be `date`, `datetime-local`, `month`, `time`, `week`\n\t\t */\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tdefault: 'date',\n\t\t\tvalidate: (name) => inputDateTypes.includes(name),\n\t\t},\n\t\t/**\n\t\t * text inside the label element\n\t\t * default type: String\n\t\t */\n\t\tlabel: {\n\t\t\ttype: String,\n\t\t\tdefault: 'Please choose a date',\n\t\t},\n\t\t/**\n\t\t * min attribute of the input field\n\t\t * default type: null\n\t\t */\n\t\tmin: {\n\t\t\ttype: [Date, Boolean],\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * max attribute of the input field\n\t\t * default type: null\n\t\t */\n\t\tmax: {\n\t\t\ttype: [Date, Boolean],\n\t\t\tdefault: null,\n\t\t},\n\t\t/**\n\t\t * Flag to hide the label\n\t\t * default type: String\n\t\t * The hidden input label for accessibility purposes.\n\t\t */\n\t\thideLabel: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Class to add to the input field.\n\t\t * Necessary to use NcDateTimePickerNative in the NcActionInput component.\n\t\t */\n\t\tinputClass: {\n\t\t\ttype: [Object, String],\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\temits: [\n\t\t'update:modelValue',\n\t],\n\n\tcomputed: {\n\t\tformattedValue() {\n\t\t\treturn this.formatValue(this.modelValue)\n\t\t},\n\t\tformattedMin() {\n\t\t\tif (this.min) {\n\t\t\t\treturn this.formatValue(this.min)\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\tformattedMax() {\n\t\t\tif (this.max) {\n\t\t\t\treturn this.formatValue(this.max)\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Handle the input event\n\t\t *\n\t\t * @param {InputEvent} $event input event payload\n\t\t * @return {Date|null} new chosen Date() or null\n\t\t */\n\t\tonInput($event) {\n\t\t\tif (isNaN($event.target.valueAsNumber)) {\n\t\t\t\t/**\n\t\t\t\t * Emitted when the input value changes\n\t\t\t\t *\n\t\t\t\t * @return {null} null value\n\t\t\t\t */\n\t\t\t\treturn this.$emit('update:modelValue', null)\n\t\t\t}\n\t\t\tif (this.type === 'time') {\n\t\t\t\tconst time = $event.target.value\n\t\t\t\tif (this.modelValue === '' || this.modelValue === null) {\n\t\t\t\t\t// this case is because of Chrome bug\n\t\t\t\t\tconst { yyyy, MM, dd } = this.getReadableDate(new Date())\n\t\t\t\t\t/**\n\t\t\t\t\t * Emitted when the input value changes\n\t\t\t\t\t *\n\t\t\t\t\t * @return {Date} new chosen Date()\n\t\t\t\t\t */\n\t\t\t\t\treturn this.$emit('update:modelValue', new Date(`${yyyy}-${MM}-${dd}T${time}`))\n\t\t\t\t}\n\t\t\t\tconst { yyyy, MM, dd } = this.getReadableDate(this.modelValue)\n\t\t\t\t/**\n\t\t\t\t * Emitted when the input value changes\n\t\t\t\t *\n\t\t\t\t * @return {Date} new chosen Date()\n\t\t\t\t */\n\t\t\t\treturn this.$emit('update:modelValue', new Date(`${yyyy}-${MM}-${dd}T${time}`))\n\t\t\t} else if (this.type === 'month') {\n\t\t\t\tconst MM = (new Date($event.target.value).getMonth() + 1).toString().padStart(2, '0')\n\t\t\t\tif (this.modelValue === '' || this.modelValue === null) {\n\t\t\t\t\tconst { yyyy, dd, hh, mm } = this.getReadableDate(new Date())\n\t\t\t\t\t/**\n\t\t\t\t\t * Emitted when the input value changes\n\t\t\t\t\t *\n\t\t\t\t\t * @return {Date} new chosen Date()\n\t\t\t\t\t */\n\t\t\t\t\treturn this.$emit('update:modelValue', new Date(`${yyyy}-${MM}-${dd}T${hh}:${mm}`))\n\t\t\t\t}\n\t\t\t\tconst { yyyy, dd, hh, mm } = this.getReadableDate(this.modelValue)\n\t\t\t\t/**\n\t\t\t\t * Emitted when the input value changes\n\t\t\t\t *\n\t\t\t\t * @return {Date} new chosen Date()\n\t\t\t\t */\n\t\t\t\treturn this.$emit('update:modelValue', new Date(`${yyyy}-${MM}-${dd}T${hh}:${mm}`))\n\t\t\t}\n\t\t\tconst timezoneOffsetSeconds = new Date($event.target.valueAsNumber).getTimezoneOffset() * 1000 * 60\n\t\t\tconst inputDateWithTimezone = $event.target.valueAsNumber + timezoneOffsetSeconds\n\t\t\t/**\n\t\t\t * Emitted when the input value changes\n\t\t\t *\n\t\t\t * @return {Date} new chosen Date()\n\t\t\t */\n\t\t\treturn this.$emit('update:modelValue', new Date(inputDateWithTimezone))\n\t\t},\n\t\t/**\n\t\t * Returns Object with string values of a Date\n\t\t *\n\t\t * @param {Date} value The selected value\n\t\t * @return {object|undefined}\n\t\t */\n\t\tgetReadableDate(value) {\n\t\t\tif (value instanceof Date) {\n\t\t\t\tconst yyyy = value.getFullYear().toString().padStart(4, '0')\n\t\t\t\tconst MM = (value.getMonth() + 1).toString().padStart(2, '0')\n\t\t\t\tconst dd = value.getDate().toString().padStart(2, '0')\n\t\t\t\tconst hh = value.getHours().toString().padStart(2, '0')\n\t\t\t\tconst mm = value.getMinutes().toString().padStart(2, '0')\n\n\t\t\t\treturn { yyyy, MM, dd, hh, mm }\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Returns preformatted value for the input field\n\t\t *\n\t\t * @param {Date} value The selected value\n\t\t * @return {string|undefined}\n\t\t */\n\t\tformatValue(value) {\n\t\t\tif (value instanceof Date) {\n\t\t\t\tconst { yyyy, MM, dd, hh, mm } = this.getReadableDate(value)\n\t\t\t\tif (this.type === 'datetime-local') {\n\t\t\t\t\treturn `${yyyy}-${MM}-${dd}T${hh}:${mm}`\n\t\t\t\t} else if (this.type === 'date') {\n\t\t\t\t\treturn `${yyyy}-${MM}-${dd}`\n\t\t\t\t} else if (this.type === 'month') {\n\t\t\t\t\treturn `${yyyy}-${MM}`\n\t\t\t\t} else if (this.type === 'time') {\n\t\t\t\t\treturn `${hh}:${mm}`\n\t\t\t\t} else if (this.type === 'week') {\n\t\t\t\t\tconst startDate = new Date(yyyy, 0, 1)\n\t\t\t\t\tconst daysSinceBeginningOfYear = Math.floor((value - startDate)\n\t\t\t\t\t\t/ (24 * 60 * 60 * 1000))\n\t\t\t\t\tconst weekNumber = Math.ceil(daysSinceBeginningOfYear / 7)\n\t\t\t\t\treturn `${yyyy}-W${weekNumber}`\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn ''\n\t\t\t}\n\t\t},\n\t},\n})\n</script>\n\n<style lang=\"scss\" scoped>\n\t.native-datetime-picker {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t}\n\n\t.native-datetime-picker .native-datetime-picker--label {\n\t\tmargin-block-end: 2px;\n\t}\n\n\t.native-datetime-picker .native-datetime-picker--input {\n\t\t// If border width differs between focused and unfocused we need to compensate to prevent jumping\n\t\t--input-border-width-offset: calc(var(--border-width-input-focused, 2px) - var(--border-width-input, 2px));\n\t\twidth: 100%;\n\t\tflex: 0 0 auto;\n\t\tmargin: 0;\n\t\tpadding-inline-start: calc(var(--border-radius-large) + var(--input-border-width-offset));\n\t\tpadding-inline-end: calc(var(--default-grid-baseline) + var(--input-border-width-offset));\n\t\tborder: var(--border-width-input, 2px) solid var(--color-border-maxcontrast);\n\n\t\t&:active:not([disabled]),\n\t\t&:hover:not([disabled]),\n\t\t&:focus:not([disabled]),\n\t\t&:focus-within:not([disabled]) {\n\t\t\tborder-color: var(--color-main-text);\n\t\t\tborder-width: var(--border-width-input-focused, 2px);\n\t\t\tbox-shadow: 0 0 0 2px var(--color-main-background) !important;\n\t\t\t// Reset padding offset when focused\n\t\t\t--input-border-width-offset: 0px;\n\t\t}\n\t}\n\n\t[data-theme-light],\n\t[data-themes*=light] {\n\t\t.native-datetime-picker--input {\n\t\t\tcolor-scheme: light;\n\t\t}\n\t}\n\n\t[data-theme-dark],\n\t[data-themes*=dark] {\n\t\t.native-datetime-picker--input {\n\t\t\tcolor-scheme: dark;\n\t\t}\n\t}\n\n\t[data-theme-default],\n\t[data-themes*=default] {\n\t\t@media (prefers-color-scheme: light) {\n\t\t\t.native-datetime-picker--input {\n\t\t\t\tcolor-scheme: light;\n\t\t\t}\n\t\t}\n\t\t@media (prefers-color-scheme: dark) {\n\t\t\t.native-datetime-picker--input {\n\t\t\t\tcolor-scheme: dark;\n\t\t\t}\n\t\t}\n\t}\n</style>\n"],"names":["yyyy","MM","dd","hh","mm","_openBlock","_createElementBlock","_createElementVNode","_normalizeClass","_toDisplayString","_mergeProps"],"mappings":"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"}
@@ -1,68 +0,0 @@
1
- import '../assets/NcEmptyContent-D1O466rM.css';
2
- import { createElementBlock, openBlock, createCommentVNode, renderSlot, toDisplayString, createTextVNode } from "vue";
3
- import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
4
- const _sfc_main = {
5
- name: "NcEmptyContent",
6
- props: {
7
- /**
8
- * A header message about an empty content shown
9
- * @example 'No comments'
10
- */
11
- name: {
12
- type: String,
13
- default: ""
14
- },
15
- /**
16
- * Desription of the empty content
17
- * @example 'No comments yet, start the conversation!'
18
- */
19
- description: {
20
- type: String,
21
- default: ""
22
- }
23
- }
24
- };
25
- const _hoisted_1 = {
26
- class: "empty-content",
27
- role: "note"
28
- };
29
- const _hoisted_2 = {
30
- key: 0,
31
- class: "empty-content__icon",
32
- "aria-hidden": "true"
33
- };
34
- const _hoisted_3 = {
35
- key: 0,
36
- class: "empty-content__name"
37
- };
38
- const _hoisted_4 = {
39
- key: 1,
40
- class: "empty-content__description"
41
- };
42
- const _hoisted_5 = {
43
- key: 2,
44
- class: "empty-content__action"
45
- };
46
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
47
- return openBlock(), createElementBlock("div", _hoisted_1, [
48
- _ctx.$slots.icon ? (openBlock(), createElementBlock("div", _hoisted_2, [
49
- renderSlot(_ctx.$slots, "icon", {}, void 0, true)
50
- ])) : createCommentVNode("", true),
51
- renderSlot(_ctx.$slots, "name", {}, () => [
52
- $props.name !== "" ? (openBlock(), createElementBlock("span", _hoisted_3, toDisplayString($props.name), 1)) : createCommentVNode("", true)
53
- ], true),
54
- $props.description !== "" || _ctx.$slots.description ? (openBlock(), createElementBlock("p", _hoisted_4, [
55
- renderSlot(_ctx.$slots, "description", {}, () => [
56
- createTextVNode(toDisplayString($props.description), 1)
57
- ], true)
58
- ])) : createCommentVNode("", true),
59
- _ctx.$slots.action ? (openBlock(), createElementBlock("div", _hoisted_5, [
60
- renderSlot(_ctx.$slots, "action", {}, void 0, true)
61
- ])) : createCommentVNode("", true)
62
- ]);
63
- }
64
- const NcEmptyContent = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-ef27a772"]]);
65
- export {
66
- NcEmptyContent as N
67
- };
68
- //# sourceMappingURL=NcEmptyContent-BQnIrQQn.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NcEmptyContent-BQnIrQQn.mjs","sources":["../../src/components/NcEmptyContent/NcEmptyContent.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Basic use\n\nUse this component to display a message about an empty content.\nProviding an icon, name, and a description is strongly advised.\n\n```\n<template>\n\t<NcEmptyContent name=\"No comments\"\n\t\tdescription=\"Start writing comments and they will appear here.\">\n\t\t<template #icon>\n\t\t\t<Comment />\n\t\t</template>\n\t</NcEmptyContent>\n</template>\n\n<script>\nimport Comment from 'vue-material-design-icons/Comment.vue'\n\nexport default {\n\tcomponents: {\n\t\tComment,\n\t},\n}\n</script>\n```\n#### With custom svg\n\n```\n<template>\n\t<NcEmptyContent\n\t\tname=\"No files in here\">\n\t\t<template #icon>\n\t\t\t<NcIconSvgWrapper :svg=\"folderSvg\" />\n\t\t</template>\n\t</NcEmptyContent>\n</template>\n\n<script>\nimport folderSvg from '@mdi/svg/svg/folder.svg?raw'\n\nexport default {\n\tcomponents: {\n\t\tComment,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tfolderSvg,\n\t\t}\n\t},\n}\n</script>\n```\n\nYou can also customize the name using the `#name` slot\nand add actions. But to keep the style consistent across Nextcloud\nconsider only using header elements as the root elements for the name slot.\n\n```\n<template>\n\t<NcEmptyContent\n\t\tdescription=\"No comments in here\">\n\t\t<template #icon>\n\t\t\t<Comment />\n\t\t</template>\n\t\t<template #name>\n\t\t\t<h1 class=\"empty-content__name\">\n\t\t\t\tNo comments\n\t\t\t</h1>\n\t\t</template>\n\t\t<template #action>\n\t\t\t<NcButton variant=\"primary\">\n\t\t\t\tAdd a comment!\n\t\t\t</NcButton>\n\t\t</template>\n\t</NcEmptyContent>\n</template>\n\n<script>\nimport Comment from 'vue-material-design-icons/Comment.vue'\n\nexport default {\n\tcomponents: {\n\t\tComment,\n\t},\n}\n</script>\n```\n\nSimilar to the `#name` slot, you could also use the `#description` slot.\nThe content will be rendered within a paragraph so you can use any inline element,\nlike a link.\n\n```\n<template>\n\t<NcEmptyContent\n\t\tname=\"No comments\">\n\t\t<template #icon>\n\t\t\t<Comment />\n\t\t</template>\n\t\t<template #description>\n\t\t\t<a href=\"https://en.wikipedia.org/wiki/Comment\">What is even a comment?</a>\n\t\t</template>\n\t</NcEmptyContent>\n</template>\n\n<script>\nimport Comment from 'vue-material-design-icons/Comment.vue'\n\nexport default {\n\tcomponents: {\n\t\tComment,\n\t},\n}\n</script>\n```\n</docs>\n\n<template>\n\t<div class=\"empty-content\" role=\"note\">\n\t\t<div v-if=\"$slots.icon\" class=\"empty-content__icon\" aria-hidden=\"true\">\n\t\t\t<!-- @slot Optional material design icon -->\n\t\t\t<slot name=\"icon\" />\n\t\t</div>\n\t\t<!-- @slot Optional name if not set as property, shall be enclosed by a header element -->\n\t\t<slot name=\"name\">\n\t\t\t<span v-if=\"name !== ''\" class=\"empty-content__name\">\n\t\t\t\t{{ name }}\n\t\t\t</span>\n\t\t</slot>\n\t\t<p v-if=\"description !== '' || $slots.description\" class=\"empty-content__description\">\n\t\t\t<!-- @slot Optional formatted description rendered inside a paragraph -->\n\t\t\t<slot name=\"description\">\n\t\t\t\t{{ description }}\n\t\t\t</slot>\n\t\t</p>\n\t\t<div v-if=\"$slots.action\" class=\"empty-content__action\">\n\t\t\t<!-- @slot Optional slot for a button or the like -->\n\t\t\t<slot name=\"action\" />\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nexport default {\n\tname: 'NcEmptyContent',\n\n\tprops: {\n\t\t/**\n\t\t * A header message about an empty content shown\n\t\t * @example 'No comments'\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Desription of the empty content\n\t\t * @example 'No comments yet, start the conversation!'\n\t\t */\n\t\tdescription: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.empty-content {\n\tdisplay: flex;\n\talign-items: center;\n\tflex-direction: column;\n\tjustify-content: center;\n\t/* In case of using in a flex container - flex in advance */\n\tflex-grow: 1;\n\n\t.modal-wrapper & {\n\t\tmargin-top: 5vh;\n\t\tmargin-bottom: 5vh;\n\t}\n\n\t&__icon {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: 64px;\n\t\theight: 64px;\n\t\tmargin: 0 auto 15px;\n\t\topacity: .4;\n\t\tbackground-repeat: no-repeat;\n\t\tbackground-position: center;\n\t\tbackground-size: 64px;\n\n\t\t:deep(svg) {\n\t\t\twidth: 64px !important;\n\t\t\theight: 64px !important;\n\t\t\tmax-width: 64px !important;\n\t\t\tmax-height: 64px !important;\n\t\t}\n\t}\n\n\t&__name {\n\t\tmargin-bottom: 10px;\n\t\ttext-align: center;\n\t\tfont-weight: bold;\n\t\tfont-size: 20px;\n\t\tline-height: 30px;\n\t}\n\n\t&__description {\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&__action {\n\t\tmargin-top: 8px;\n\n\t\t.modal-wrapper & {\n\t\t\tmargin-top: 20px;\n\t\t\tdisplay: flex;\n\t\t}\n\t}\n}\n</style>\n"],"names":["_openBlock","_createElementBlock","_renderSlot","_createCommentVNode","_toDisplayString","_createTextVNode"],"mappings":";;AAqJA,MAAK,YAAU;AAAA,EACd,MAAM;AAAA,EAEN,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAKN,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,aAAa;AAAA,MACZ,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA,EACD;AACF;;EA/CM,OAAM;AAAA,EAAgB,MAAK;;;EA5HjC,KAAA;AAAA,EA6H0B,OAAM;AAAA,EAAsB,eAAY;;;EA7HlE,KAAA;AAAA,EAmI4B,OAAM;;;EAnIlC,KAAA;AAAA,EAuIqD,OAAM;;;EAvI3D,KAAA;AAAA,EA6I4B,OAAM;;;AAjBjC,SAAAA,UAAA,GAAAC,mBAqBM,OArBN,YAqBM;AAAA,IApBM,KAAA,OAAO,QAAlBD,aAAAC,mBAGM,OAHN,YAGM;AAAA,MADLC,WAAoB,KAAA,QAAA,QAAA,CAAA,GAAA,QAAA,IAAA;AAAA,UA/HvBC,mBAAA,IAAA,IAAA;AAAA,IAkIED,WAIO,yBAJP,MAIO;AAAA,MAHM,OAAI,SAAA,mBAAhBD,mBAEO,QAFP,YAEOG,gBADH,OAAI,IAAA,GAAA,CAAA,KApIXD,mBAAA,IAAA,IAAA;AAAA;IAuIW,OAAW,gBAAA,MAAW,KAAM,OAAC,eAAtCH,aAAAC,mBAKI,KALJ,YAKI;AAAA,MAHHC,WAEO,gCAFP,MAEO;AAAA,QA3IVG,gBAAAD,gBA0IO,OAAW,WAAA,GAAA,CAAA;AAAA;UA1IlBD,mBAAA,IAAA,IAAA;AAAA,IA6Ia,KAAA,OAAO,UAAlBH,aAAAC,mBAGM,OAHN,YAGM;AAAA,MADLC,WAAsB,KAAA,QAAA,UAAA,CAAA,GAAA,QAAA,IAAA;AAAA,UA/IzBC,mBAAA,IAAA,IAAA;AAAA;;;"}
@@ -1,23 +0,0 @@
1
- import '../assets/NcGuestContent-C9lbC3vg.css';
2
- import { createElementBlock, openBlock, renderSlot } from "vue";
3
- import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
4
- const _sfc_main = {
5
- name: "NcGuestContent",
6
- mounted() {
7
- document.getElementById("content").classList.add("nc-guest-content");
8
- },
9
- unmounted() {
10
- document.getElementById("content").classList.remove("nc-guest-content");
11
- }
12
- };
13
- const _hoisted_1 = { id: "guest-content-vue" };
14
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
15
- return openBlock(), createElementBlock("div", _hoisted_1, [
16
- renderSlot(_ctx.$slots, "default", {}, void 0, true)
17
- ]);
18
- }
19
- const NcGuestContent = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-d19aa4ee"]]);
20
- export {
21
- NcGuestContent as N
22
- };
23
- //# sourceMappingURL=NcGuestContent-iQpV7mLC.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NcGuestContent-iQpV7mLC.mjs","sources":["../../src/components/NcGuestContent/NcGuestContent.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### General description\n\nThis components provides a wrapper around guest page content.\nIt should be used as the main wrapper for public pages, similar to `NcContent`.\n\nIt can't be used multiple times on the same page.\n\n### Usage\n\n```vue\n<template>\n\t<NcGuestContent>\n\t\t<h2>Hello guest</h2>\n\t\t<span>How are you?</span>\n\t</NcGuestContent>\n</template>\n```\n</docs>\n\n<template>\n\t<div id=\"guest-content-vue\">\n\t\t<slot />\n\t</div>\n</template>\n\n<script>\n/**\n * Guest content container to be used for the guest content of your app\n */\nexport default {\n\tname: 'NcGuestContent',\n\tmounted() {\n\t\tdocument.getElementById('content').classList.add('nc-guest-content')\n\t},\n\tunmounted() {\n\t\tdocument.getElementById('content').classList.remove('nc-guest-content')\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n#guest-content-vue {\n\tcolor: var(--color-main-text);\n\tbackground-color: var(--color-main-background);\n\tmin-width: 0;\n\tborder-radius: var(--border-radius-large);\n\tbox-shadow: 0 0 10px var(--color-box-shadow);\n\theight: fit-content;\n\tpadding: 15px;\n\tmargin: 20px auto;\n}\n</style>\n\n<style lang=\"scss\">\n#content.nc-guest-content {\n\t// Enable scrolling\n\toverflow: auto;\n\n\t// Fix box being cutoff at the bottom\n\tmargin-bottom: 0;\n\theight: calc(var(--body-height) + var(--body-container-margin));\n}\n</style>\n"],"names":["_openBlock","_createElementBlock","_renderSlot"],"mappings":";;AAmCA,MAAK,YAAU;AAAA,EACd,MAAM;AAAA,EACN,UAAU;AACT,aAAS,eAAe,SAAS,EAAE,UAAU,IAAI,kBAAkB;AAAA,EACnE;AAAA,EACD,YAAY;AACX,aAAS,eAAe,SAAS,EAAE,UAAU,OAAO,kBAAkB;AAAA,EACtE;AACF;AAjBM,MAAA,aAAA,EAAA,IAAG,oBAAmB;;AAA3B,SAAAA,UAAA,GAAAC,mBAEM,OAFN,YAEM;AAAA,IADLC,WAAQ,KAAA,QAAA,WAAA,CAAA,GAAA,QAAA,IAAA;AAAA;;;"}
@@ -1,120 +0,0 @@
1
- import '../assets/NcIconSvgWrapper-BzRHs8iB.css';
2
- import { warn, createElementBlock, openBlock, normalizeClass, createElementVNode, useCssVars } from "vue";
3
- import DOMPurify from "dompurify";
4
- import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
5
- const _sfc_main = {
6
- name: "NcIconSvgWrapper",
7
- props: {
8
- /**
9
- * Make the icon directional, meaning it is langauge direction aware.
10
- * If the icon is placed in a right-to-left context it will be mirrored vertically.
11
- */
12
- directional: {
13
- type: Boolean,
14
- default: false
15
- },
16
- /**
17
- * Set if the icon should be used as inline content e.g. within text.
18
- * By default the icon is made a block element for use inside `icon`-slots.
19
- */
20
- inline: {
21
- type: Boolean,
22
- default: false
23
- },
24
- /**
25
- * Raw SVG string to render
26
- */
27
- svg: {
28
- type: String,
29
- default: ""
30
- },
31
- /**
32
- * Label of the icon, used in aria-label
33
- */
34
- name: {
35
- type: String,
36
- default: ""
37
- },
38
- /**
39
- * Raw SVG path to render. Takes precedence over the SVG string in the `svg` prop.
40
- */
41
- path: {
42
- type: String,
43
- default: ""
44
- },
45
- /**
46
- * Size of the icon to show. Only use if not using within an icon slot.
47
- * Defaults to 20px which is the Nextcloud icon size for all icon slots.
48
- * @default 20
49
- */
50
- size: {
51
- type: [Number, String],
52
- default: 20,
53
- validator: (value) => typeof value === "number" || value === "auto"
54
- }
55
- },
56
- computed: {
57
- /**
58
- * Icon size used in CSS
59
- */
60
- iconSize() {
61
- return typeof this.size === "number" ? `${this.size}px` : this.size;
62
- },
63
- cleanSvg() {
64
- if (!this.svg || this.path) {
65
- return;
66
- }
67
- const svg = DOMPurify.sanitize(this.svg);
68
- const svgDocument = new DOMParser().parseFromString(svg, "image/svg+xml");
69
- if (svgDocument.querySelector("parsererror")) {
70
- warn("SVG is not valid");
71
- return "";
72
- }
73
- if (svgDocument.documentElement.id) {
74
- svgDocument.documentElement.removeAttribute("id");
75
- }
76
- return svgDocument.documentElement.outerHTML;
77
- }
78
- }
79
- };
80
- const __injectCSSVars__ = () => {
81
- useCssVars((_ctx) => ({
82
- "fbb11e96": _ctx.iconSize
83
- }));
84
- };
85
- const __setup__ = _sfc_main.setup;
86
- _sfc_main.setup = __setup__ ? (props, ctx) => {
87
- __injectCSSVars__();
88
- return __setup__(props, ctx);
89
- } : __injectCSSVars__;
90
- const _hoisted_1 = ["aria-hidden", "aria-label"];
91
- const _hoisted_2 = {
92
- key: 0,
93
- viewBox: "0 0 24 24",
94
- xmlns: "http://www.w3.org/2000/svg"
95
- };
96
- const _hoisted_3 = ["d"];
97
- const _hoisted_4 = ["innerHTML"];
98
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
99
- return openBlock(), createElementBlock("span", {
100
- "aria-hidden": $props.name ? void 0 : "true",
101
- "aria-label": $props.name || void 0,
102
- class: normalizeClass(["icon-vue", {
103
- "icon-vue--directional": $props.directional,
104
- "icon-vue--inline": $props.inline
105
- }]),
106
- role: "img"
107
- }, [
108
- !$options.cleanSvg ? (openBlock(), createElementBlock("svg", _hoisted_2, [
109
- createElementVNode("path", { d: $props.path }, null, 8, _hoisted_3)
110
- ])) : (openBlock(), createElementBlock("span", {
111
- key: 1,
112
- innerHTML: $options.cleanSvg
113
- }, null, 8, _hoisted_4))
114
- ], 10, _hoisted_1);
115
- }
116
- const NcIconSvgWrapper = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-08d151c7"]]);
117
- export {
118
- NcIconSvgWrapper as N
119
- };
120
- //# sourceMappingURL=NcIconSvgWrapper-Bc3ogp8T.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NcIconSvgWrapper-Bc3ogp8T.mjs","sources":["../../src/components/NcIconSvgWrapper/NcIconSvgWrapper.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n### Description\n\nRender raw SVG string icons.\n\n### Usage within `icon`-slot\n\n```vue\n<template>\n\t<div class=\"grid\">\n\t\t<NcButton aria-label=\"Close\">\n\t\t\t<template #icon>\n\t\t\t\t<NcIconSvgWrapper :svg=\"closeSvg\" name=\"Close\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t\t<NcButton aria-label=\"Settings\">\n\t\t\t<template #icon>\n\t\t\t\t<NcIconSvgWrapper :svg=\"cogSvg\" name=\"Cog\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t\t<NcButton aria-label=\"Add\">\n\t\t\t<template #icon>\n\t\t\t\t<NcIconSvgWrapper :svg=\"plusSvg\" name=\"Plus\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t\t<NcButton aria-label=\"Send\">\n\t\t\t<template #icon>\n\t\t\t\t<NcIconSvgWrapper :path=\"mdiSend\" name=\"Send\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t\t<NcButton aria-label=\"Star\">\n\t\t\t<template #icon>\n\t\t\t\t<NcIconSvgWrapper :path=\"mdiStar\" name=\"Star\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t</div>\n</template>\n\n<script>\nimport closeSvg from '@mdi/svg/svg/close.svg?raw'\nimport cogSvg from '@mdi/svg/svg/cog.svg?raw'\nimport plusSvg from '@mdi/svg/svg/plus.svg?raw'\nimport { mdiSend } from '@mdi/js'\nimport { mdiStar } from '@mdi/js'\n\nexport default {\n\tsetup() {\n\t\t// This icons are static data, so you do not need to put them into `data` which will make them reactive\n\t\treturn {\n\t\t\tcloseSvg,\n\t\t\tcogSvg,\n\t\t\tplusSvg,\n\t\t\tmdiSend,\n\t\t\tmdiStar,\n\t\t}\n\t},\n}\n</script>\n\n<style>\n.grid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(5, max-content);\n\tgap: 10px;\n}\n</style>\n```\n\n### Inline usage inside text\n\n```vue\n<template>\n\t<p>\n\t\tThis is my <NcIconSvgWrapper inline :path=\"mdiStar\" /> Favorite\n\t</p>\n</template>\n<script>\nimport { mdiStar } from '@mdi/js'\n\nexport default {\n\tsetup() {\n\t\treturn {\n\t\t\tmdiStar,\n\t\t}\n\t},\n}\n</script>\n```\n\n### Directional usage\n\nThe `directional` property allows to enable a language direction aware icon.\nThis icon component can be used in places where an language direction aware icon should be used,\nfor example if an arrow pointing to the left it used it often points in the wrong direction for right-to-left languages.\nIn this cases this icon can be used which will always point into the logical \"start\" direction.\n\n```vue\n<template>\n\t<div class=\"wrapper\">\n\t\t<NcButton @click=\"isRtl = !isRtl\">Toggle RTL</NcButton>\n\t\t<div class=\"directional\" :dir=\"isRtl ? 'rtl' : 'ltr'\">\n\t\t\t<NcButton alignment=\"start\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcIconSvgWrapper directional :path=\"mdiChevronLeft\" />\n\t\t\t\t</template>\n\t\t\t\tPrevious\n\t\t\t</NcButton>\n\t\t\t<NcButton alignment=\"end-reverse\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcIconSvgWrapper directional :path=\"mdiChevronRight\" />\n\t\t\t\t</template>\n\t\t\t\tNext\n\t\t\t</NcButton>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport { mdiChevronLeft, mdiChevronRight } from '@mdi/js'\n\nexport default {\n\tsetup() {\n\t\treturn {\n\t\t\tmdiChevronLeft,\n\t\t\tmdiChevronRight,\n\t\t}\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tisRtl: false\n\t\t}\n\t},\n}\n</script>\n<style scoped>\n.wrapper {\n\tdisplay: flex;\n\tflex-direction: column;\n\tgap: calc(2 * var(--default-grid-baseline));\n\tmax-width: 300px;\n}\n\n.directional {\n\tdisplay: flex;\n\tflex-direction: row;\n\tgap: calc(2 * var(--default-grid-baseline));\n}\n\n.directional * {\n\tflex: 1 50%;\n}\n</style>\n```\n</docs>\n\n<template>\n\t<span :aria-hidden=\"name ? undefined : 'true'\"\n\t\t:aria-label=\"name || undefined\"\n\t\tclass=\"icon-vue\"\n\t\t:class=\"{\n\t\t\t'icon-vue--directional': directional,\n\t\t\t'icon-vue--inline': inline,\n\t\t}\"\n\t\trole=\"img\">\n\t\t<svg v-if=\"!cleanSvg\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t<path :d=\"path\" />\n\t\t</svg>\n\t\t<!-- eslint-disable-next-line vue/no-v-text-v-html-on-component,vue/no-v-html -->\n\t\t<span v-else v-html=\"cleanSvg\" />\n\t</span>\n</template>\n\n<script>\nimport { warn } from 'vue'\nimport DOMPurify from 'dompurify'\n\nexport default {\n\tname: 'NcIconSvgWrapper',\n\n\tprops: {\n\t\t/**\n\t\t * Make the icon directional, meaning it is langauge direction aware.\n\t\t * If the icon is placed in a right-to-left context it will be mirrored vertically.\n\t\t */\n\t\tdirectional: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Set if the icon should be used as inline content e.g. within text.\n\t\t * By default the icon is made a block element for use inside `icon`-slots.\n\t\t */\n\t\tinline: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Raw SVG string to render\n\t\t */\n\t\tsvg: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Label of the icon, used in aria-label\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Raw SVG path to render. Takes precedence over the SVG string in the `svg` prop.\n\t\t */\n\t\tpath: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Size of the icon to show. Only use if not using within an icon slot.\n\t\t * Defaults to 20px which is the Nextcloud icon size for all icon slots.\n\t\t * @default 20\n\t\t */\n\t\tsize: {\n\t\t\ttype: [Number, String],\n\t\t\tdefault: 20,\n\t\t\tvalidator: (value) => typeof value === 'number' || value === 'auto',\n\t\t},\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Icon size used in CSS\n\t\t */\n\t\ticonSize() {\n\t\t\treturn typeof this.size === 'number' ? `${this.size}px` : this.size\n\t\t},\n\n\t\tcleanSvg() {\n\t\t\tif (!this.svg || this.path) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst svg = DOMPurify.sanitize(this.svg)\n\n\t\t\tconst svgDocument = new DOMParser().parseFromString(svg, 'image/svg+xml')\n\n\t\t\tif (svgDocument.querySelector('parsererror')) {\n\t\t\t\twarn('SVG is not valid')\n\t\t\t\treturn ''\n\t\t\t}\n\n\t\t\tif (svgDocument.documentElement.id) {\n\t\t\t\tsvgDocument.documentElement.removeAttribute('id')\n\t\t\t}\n\n\t\t\treturn svgDocument.documentElement.outerHTML\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.icon-vue {\n\tdisplay: flex;\n\tjustify-content: center;\n\talign-items: center;\n\tmin-width: var(--default-clickable-area);\n\tmin-height: var(--default-clickable-area);\n\topacity: 1;\n\n\t&--inline {\n\t\tdisplay: inline-flex;\n\t\tmin-width: fit-content;\n\t\tmin-height: fit-content;\n\t\tvertical-align: text-bottom;\n\t}\n\n\t&:deep(svg) {\n\t\tfill: currentColor;\n\t\twidth: v-bind('iconSize');\n\t\theight: v-bind('iconSize');\n\t\tmax-width: v-bind('iconSize');\n\t\tmax-height: v-bind('iconSize');\n\t}\n\n\t&--directional:deep(svg:dir(rtl)) {\n\t\ttransform: scaleX(-1);\n\t}\n}\n</style>\n"],"names":["_createElementBlock","_normalizeClass","_openBlock","_createElementVNode"],"mappings":";;;AAqLA,MAAK,YAAU;AAAA,EACd,MAAM;AAAA,EAEN,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA,IAKN,aAAa;AAAA,MACZ,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA,IAMD,QAAQ;AAAA,MACP,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKD,KAAK;AAAA,MACJ,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKD,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKD,MAAM;AAAA,MACL,MAAM;AAAA,MACN,SAAS;AAAA,IACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAOD,MAAM;AAAA,MACL,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,SAAS;AAAA,MACT,WAAW,CAAC,UAAU,OAAO,UAAU,YAAY,UAAU;AAAA,IAC7D;AAAA,EACD;AAAA,EAED,UAAU;AAAA;AAAA;AAAA;AAAA,IAIT,WAAW;AACV,aAAO,OAAO,KAAK,SAAS,WAAW,GAAG,KAAK,IAAI,OAAO,KAAK;AAAA,IAC/D;AAAA,IAED,WAAW;AACV,UAAI,CAAC,KAAK,OAAO,KAAK,MAAM;AAC3B;AAAA,MACD;AAEA,YAAM,MAAM,UAAU,SAAS,KAAK,GAAG;AAEvC,YAAM,cAAc,IAAI,UAAW,EAAC,gBAAgB,KAAK,eAAe;AAExE,UAAI,YAAY,cAAc,aAAa,GAAG;AAC7C,aAAK,kBAAkB;AACvB,eAAO;AAAA,MACR;AAEA,UAAI,YAAY,gBAAgB,IAAI;AACnC,oBAAY,gBAAgB,gBAAgB,IAAI;AAAA,MACjD;AAEA,aAAO,YAAY,gBAAgB;AAAA,IACnC;AAAA,EACD;AACF;;;;;;;;;;;AA5QA,MAAA,aAAA,CAAA,eAAA,YAAA;;EAAA,KAAA;AAAA,EAyKwB,SAAQ;AAAA,EAAY,OAAM;;AAzKlD,MAAA,aAAA,CAAA,GAAA;AAAA,MAAA,aAAA,CAAA,WAAA;;sBAiKCA,mBAaO,QAAA;AAAA,IAbA,eAAa,OAAI,OAAG,SAAS;AAAA,IAClC,cAAY,OAAI,QAAI;AAAA,IACrB,OAnKFC,gBAmKQ,YAAU;AAAA,+BACsB,OAAW;AAAA,0BAAyB,OAAM;AAAA;IAIhF,MAAK;AAAA;KACO,SAAQ,YAApBC,aAAAF,mBAEM,OAFN,YAEM;AAAA,MADLG,mBAAkB,QAAX,EAAA,GAAG,OAAA,QA1Kb,MAAA,GAAA,UAAA;AAAA,wBA6KEH,mBAAiC,QAAA;AAAA,MA7KnC,KAAA;AAAA,MA6Ke,WAAQ,SAAQ;AAAA,IA7K/B,GAAA,MAAA,GAAA,UAAA;AAAA,EAAA,GAAA,IAAA,UAAA;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"NcPopover-EPnt2iHh.mjs","sources":["../../src/components/NcPopover/NcPopoverTriggerProvider.vue","../../src/components/NcPopover/NcPopover.vue"],"sourcesContent":["<!--\n - SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<script>\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n\tname: 'NcPopoverTriggerProvider',\n\n\tprovide() {\n\t\treturn {\n\t\t\t'NcPopover:trigger:shown': () => this.shown,\n\t\t\t'NcPopover:trigger:attrs': () => this.triggerAttrs,\n\t\t}\n\t},\n\n\tprops: {\n\t\tshown: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\tpopupRole: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\t},\n\n\tcomputed: {\n\t\ttriggerAttrs() {\n\t\t\treturn {\n\t\t\t\t'aria-haspopup': this.popupRole,\n\t\t\t\t'aria-expanded': this.shown.toString(),\n\t\t\t}\n\t\t},\n\t},\n\n\trender() {\n\t\treturn this.$slots.default?.({\n\t\t\tattrs: this.triggerAttrs,\n\t\t})\n\t},\n})\n</script>\n","<!--\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 components has two slots:\n* 'trigger' which can be any html element and it will trigger the popover\nthis slot is optional since you can toggle the popover also by updating the\nopen prop on this component;\n\n* a default slot that is for the content of the popover.\n\n### Examples\n\n#### With a `<NcButton>` as a trigger:\n\n```vue\n<template>\n\t<div style=\"display: flex\">\n\t\t<NcPopover popup-role=\"dialog\">\n\t\t\t<template #trigger>\n\t\t\t\t<NcButton>I am the trigger</NcButton>\n\t\t\t</template>\n\t\t\t<template #default>\n\t\t\t\t<form tabindex=\"0\" role=\"dialog\" aria-labelledby=\"popover-example-dialog-header-1\" @submit.prevent>\n\t\t\t\t\t<h2 id=\"popover-example-dialog-header-1\">this is some content</h2>\n\t\t\t\t\t<p>\n\t\t\t\t\t\tLorem ipsum dolor sit amet, consectetur adipiscing elit. <br/>\n\t\t\t\t\t\tVestibulum eget placerat velit.\n\t\t\t\t\t</p>\n\t\t\t\t\t<label>\n\t\t\t\t\t\tLabel element\n\t\t\t\t\t\t<input type=\"text\" placeholder=\"input element\"/>\n\t\t\t\t\t</label>\n\t\t\t\t</form>\n\t\t\t</template>\n\t\t</NcPopover>\n\t</div>\n</template>\n```\n\n#### Without focus trap:\n\nThe [`focus-trap`](https://github.com/focus-trap/focus-trap) emits an error when used in a non-focusable element tree.\n\nThe prop `no-focus-trap` help to prevent it when the default behavior is not relevant.\n\n```vue\n<template>\n\t<div style=\"display: flex\">\n\t\t<NcPopover no-focus-trap>\n\t\t\t<template #trigger>\n\t\t\t\t<NcButton>Click me!</NcButton>\n\t\t\t</template>\n\t\t\t<template #default>\n\t\t\t\tHi! 🚀\n\t\t\t</template>\n\t\t</NcPopover>\n\t</div>\n</template>\n```\n\n#### With logical placement\n\nIf the text flow is language specific (e.g. UI is shown for right-to-left language),\nalso the popover often needs to be adjusted when not rendered on top or bottom (default).\n\n```vue\n<template>\n\t<div class=\"wrapper\">\n\t\t<fieldset>\n\t\t\t<NcCheckboxRadioSwitch v-model=\"dir\" type=\"radio\" value=\"ltr\">\n\t\t\t\tLTR\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t\t<NcCheckboxRadioSwitch v-model=\"dir\" type=\"radio\" value=\"rtl\">\n\t\t\t\tRTL\n\t\t\t</NcCheckboxRadioSwitch>\n\t\t</fieldset>\n\t\t<div class=\"content\" :dir>\n\t\t\t<NcPopover :key=\"dir\"\n\t\t\t\tplacement=\"end\"\n\t\t\t\t:triggers=\"['hover']\">\n\t\t\t\t<template #trigger>\n\t\t\t\t\t<NcButton>\n\t\t\t\t\t\tHover me\n\t\t\t\t\t</NcButton>\n\t\t\t\t</template>\n\t\t\t\t<template #default>\n\t\t\t\t\tThis will be shown on the logical end of the button.\n\t\t\t\t</template>\n\t\t\t</NcPopover>\n\t\t</div>\n\t</div>\n</template>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tdir: 'ltr',\n\t\t}\n\t},\n}\n</script>\n<style scoped>\n.content {\n\tdisplay: flex;\n\tflex-direction: row;\n\tjustify-content: space-around;\n}\n\nfieldset {\n\tdisplay: flex;\n\tflex-direction: row;\n\tgap: 12px;\n}\n</style>\n```\n\n#### With a custom button in as a trigger:\n\nWhen `<NcButton>` is used as a `<NcPopover>` trigger, it injects required for a11y attributes to the button.\n\nIf you are using your own custom button as a trigger make sure to bind `attrs` from the trigger slot props.\nSee code example below.\n\n```vue\n<template>\n\t<div style=\"display: flex\">\n\t\t<NcPopover>\n\t\t\t<!-- Take \"attrs\" from the slot props -->\n\t\t\t<template #trigger=\"{ attrs }\">\n\t\t\t\t<!-- Bind attrs as the button attrs -->\n\t\t\t\t<button v-bind=\"attrs\">\n\t\t\t\t\tI am a custom button in the trigger\n\t\t\t\t</button>\n\t\t\t</template>\n\n\t\t\tHi! 🚀\n\t\t</NcPopover>\n\t</div>\n</template>\n```\n\n#### Provide role for the popover content\n\nFor accessibility reasons, popover should have a role. Provide it to the `popup-role` and make sure that the popover content is an element with the same role.\n\nSee: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-haspopup\n\n```vue\n<template>\n\t<div style=\"display: flex\">\n\t\t<!-- Provide popup role -->\n\t\t<NcPopover popup-role=\"dialog\">\n\t\t\t<template #trigger>\n\t\t\t\t<NcButton>Delete</NcButton>\n\t\t\t</template>\n\n\t\t\t<!-- Popover content should has the same role -->\n\t\t\t<div role=\"dialog\" aria-labelledby=\"popover-example-custom-role-1\" aria-modal=\"true\">\n\t\t\t\t<!-- This is not required but better to provide a label -->\n\t\t\t\t<header id=\"popover-example-custom-role-1\">\n\t\t\t\t\t<strong>Confirm remove</strong>\n\t\t\t\t</header>\n\t\t\t\t<NcButton type=\"danger\">Delete</NcButton>\n\t\t\t</div>\n\t\t</NcPopover>\n\t</div>\n</template>\n```\n</docs>\n\n<template>\n\t<Dropdown ref=\"popover\"\n\t\t:arrow-padding=\"10\"\n\t\t:auto-hide=\"closeOnClickOutside\"\n\t\t:boundary=\"boundary || undefined\"\n\t\t:container\n\t\t:delay\n\t\t:distance=\"10\"\n\t\t:no-auto-focus=\"true /* Handled by the focus trap */\"\n\t\t:placement=\"internalPlacement\"\n\t\t:popper-class=\"popoverBaseClass\"\n\t\t:popper-triggers\n\t\t:popper-hide-triggers\n\t\t:popper-show-triggers\n\t\t:shown=\"internalShown\"\n\t\t:triggers=\"internalTriggers\"\n\t\t:hide-triggers\n\t\t:show-triggers\n\t\t@update:shown=\"internalShown = $event\"\n\t\t@apply-show=\"afterShow\"\n\t\t@apply-hide=\"afterHide\">\n\t\t<NcPopoverTriggerProvider v-slot=\"slotProps\" :shown=\"internalShown\" :popup-role=\"popupRole\">\n\t\t\t<!-- This will be the popover target (for the events and position) -->\n\t\t\t<slot name=\"trigger\" v-bind=\"slotProps\" />\n\t\t</NcPopoverTriggerProvider>\n\n\t\t<!-- This will be the content of the popover -->\n\t\t<template #popper=\"slotProps\">\n\t\t\t<slot name=\"default\" v-bind=\"slotProps\" />\n\t\t</template>\n\t</Dropdown>\n</template>\n\n<script>\nimport { Dropdown } from 'floating-vue'\nimport { createFocusTrap } from 'focus-trap'\nimport { warn } from 'vue'\nimport { getTrapStack } from '../../utils/focusTrap.ts'\nimport { isRtl } from '../../utils/rtl.ts'\nimport NcPopoverTriggerProvider from './NcPopoverTriggerProvider.vue'\n\n/**\n * @typedef {import('focus-trap').FocusTargetValueOrFalse} FocusTargetValueOrFalse\n * @typedef {FocusTargetValueOrFalse|() => FocusTargetValueOrFalse} SetReturnFocus\n */\nexport default {\n\tname: 'NcPopover',\n\n\tcomponents: {\n\t\tDropdown,\n\t\tNcPopoverTriggerProvider,\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Element to use for calculating the popper boundary (size and position).\n\t\t */\n\t\tboundary: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Automatically hide the popover on click outside.\n\t\t */\n\t\tcloseOnClickOutside: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Container where to mount the popover.\n\t\t * Either a select query or `false` to mount to the parent node.\n\t\t */\n\t\tcontainer: {\n\t\t\ttype: [String, Boolean],\n\t\t\tdefault: 'body',\n\t\t},\n\n\t\t/**\n\t\t * Delay for showing or hiding the popover.\n\t\t *\n\t\t * Can either be a number or an object to configure different delays (`{ show: number, hide: number }`).\n\t\t */\n\t\tdelay: {\n\t\t\ttype: [Number, Object],\n\t\t\tdefault: 0,\n\t\t},\n\n\t\t/**\n\t\t * Disable the popover focus trap.\n\t\t */\n\t\tnoFocusTrap: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Where to place the popover.\n\t\t *\n\t\t * This consists of the vertical placement and the horizontal placement.\n\t\t * E.g. `bottom` will place the popover on the bottom of the trigger (horizontally centered),\n\t\t * while `buttom-start` will horizontally align the popover on the logical start (e.g. for LTR layout on the left.).\n\t\t * The `start` or `end` placement will align the popover on the left or right side or the trigger element.\n\t\t *\n\t\t * @type {'auto'|'auto-start'|'auto-end'|'top'|'top-start'|'top-end'|'bottom'|'bottom-start'|'bottom-end'|'start'|'end'}\n\t\t */\n\t\tplacement: {\n\t\t\ttype: String,\n\t\t\tdefault: 'bottom',\n\t\t},\n\n\t\tpopoverBaseClass: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Events that trigger the popover on the popover container itself.\n\t\t * This is useful if you set `triggers` to `hover` and also want the popover to stay open while hovering the popover itself.\n\t\t *\n\t\t * It is possible to also pass an object to define different triggers for hide and show `{ show: ['hover'], hide: ['click'] }`.\n\t\t */\n\t\tpopoverTriggers: {\n\t\t\ttype: [Array, Object],\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Popup role\n\t\t * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-haspopup#values\n\t\t */\n\t\tpopupRole: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t\tvalidator: (value) => ['menu', 'listbox', 'tree', 'grid', 'dialog', 'true'].includes(value),\n\t\t},\n\n\t\t/**\n\t\t * Set element to return focus to after focus trap deactivation\n\t\t *\n\t\t * @type {SetReturnFocus}\n\t\t */\n\t\tsetReturnFocus: {\n\t\t\tdefault: undefined,\n\t\t\ttype: [HTMLElement, SVGElement, String, Boolean, Function],\n\t\t},\n\n\t\t/**\n\t\t * Show or hide the popper\n\t\t */\n\t\tshown: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Events that trigger the popover.\n\t\t *\n\t\t * If you pass an empty array then only the `shown` prop can control the popover state.\n\t\t * Following events are available:\n\t\t * - `'hover'`\n\t\t * - `'click'`\n\t\t * - `'focus'`\n\t\t * - `'touch'`\n\t\t *\n\t\t * It is also possible to pass an object to have different events for show and hide:\n\t\t * `{ hide: ['click'], show: ['click', 'hover'] }`\n\t\t */\n\t\ttriggers: {\n\t\t\ttype: [Array, Object],\n\t\t\tdefault: () => ['click'],\n\t\t},\n\t},\n\n\temits: [\n\t\t'afterShow',\n\t\t'afterHide',\n\t\t'update:shown',\n\t],\n\n\tdata() {\n\t\treturn {\n\t\t\tinternalShown: this.shown,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tpopperTriggers() {\n\t\t\tif (this.popoverTriggers && Array.isArray(this.popoverTriggers)) {\n\t\t\t\treturn this.popoverTriggers\n\t\t\t}\n\t\t\treturn undefined\n\t\t},\n\t\tpopperHideTriggers() {\n\t\t\tif (this.popoverTriggers && typeof this.popoverTriggers === 'object') {\n\t\t\t\treturn this.popoverTriggers.hide\n\t\t\t}\n\t\t\treturn undefined\n\t\t},\n\t\tpopperShowTriggers() {\n\t\t\tif (this.popoverTriggers && typeof this.popoverTriggers === 'object') {\n\t\t\t\treturn this.popoverTriggers.show\n\t\t\t}\n\t\t\treturn undefined\n\t\t},\n\n\t\tinternalTriggers() {\n\t\t\tif (this.triggers && Array.isArray(this.triggers)) {\n\t\t\t\treturn this.triggers\n\t\t\t}\n\t\t\treturn undefined\n\t\t},\n\t\thideTriggers() {\n\t\t\tif (this.triggers && typeof this.triggers === 'object') {\n\t\t\t\treturn this.triggers.hide\n\t\t\t}\n\t\t\treturn undefined\n\t\t},\n\t\tshowTriggers() {\n\t\t\tif (this.triggers && typeof this.triggers === 'object') {\n\t\t\t\treturn this.triggers.show\n\t\t\t}\n\t\t\treturn undefined\n\t\t},\n\n\t\tinternalPlacement() {\n\t\t\tif (this.placement === 'start') {\n\t\t\t\treturn isRtl ? 'right' : 'left'\n\t\t\t} else if (this.placement === 'end') {\n\t\t\t\treturn isRtl ? 'left' : 'right'\n\t\t\t}\n\t\t\treturn this.placement\n\t\t},\n\t},\n\n\twatch: {\n\t\tshown(value) {\n\t\t\tthis.internalShown = value\n\t\t},\n\n\t\tinternalShown(value) {\n\t\t\tthis.$emit('update:shown', value)\n\t\t},\n\t},\n\n\tmounted() {\n\t\tthis.checkTriggerA11y()\n\t},\n\n\tbeforeUnmount() {\n\t\tthis.clearFocusTrap()\n\t\tthis.clearEscapeStopPropagation()\n\t},\n\n\tmethods: {\n\t\t/**\n\t\t * Check if the trigger has all required a11y attributes.\n\t\t * Important to check custom trigger button.\n\t\t */\n\t\tcheckTriggerA11y() {\n\t\t\tif (window.OC?.debug) {\n\t\t\t\tconst triggerContainer = this.getPopoverTriggerContainerElement()\n\t\t\t\tconst requiredTriggerButton = triggerContainer.querySelector('[aria-expanded]')\n\t\t\t\tif (!requiredTriggerButton) {\n\t\t\t\t\twarn('It looks like you are using a custom button as a <NcPopover> or other popover #trigger. If you are not using <NcButton> as a trigger, you need to bind attrs from the #trigger slot props to your custom button. See <NcPopover> docs for an example.')\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Remove incorrect aria-describedby attribute from the trigger.\n\t\t * @see https://github.com/Akryum/floating-vue/blob/8d4f7125aae0e3ea00ba4093d6d2001ab15058f1/packages/floating-vue/src/components/Popper.ts#L734\n\t\t */\n\t\tremoveFloatingVueAriaDescribedBy() {\n\t\t\t// When the popover is shown, floating-vue mutates the root elements of the trigger adding data-popper-shown and incorrect aria-describedby attributes.\n\t\t\tconst triggerContainer = this.getPopoverTriggerContainerElement()\n\t\t\tconst triggerElements = triggerContainer.querySelectorAll('[data-popper-shown]')\n\t\t\tfor (const el of triggerElements) {\n\t\t\t\tel.removeAttribute('aria-describedby')\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * @return {HTMLElement|undefined}\n\t\t */\n\t\tgetPopoverContentElement() {\n\t\t\treturn this.$refs.popover?.$refs.popperContent?.$el\n\t\t},\n\n\t\t/**\n\t\t * @return {HTMLElement|undefined}\n\t\t */\n\t\tgetPopoverTriggerContainerElement() {\n\t\t\treturn this.$refs.popover?.$refs.popper?.$refs.reference\n\t\t},\n\n\t\t/**\n\t\t * Add focus trap for accessibility.\n\t\t */\n\t\tasync useFocusTrap() {\n\t\t\tawait this.$nextTick()\n\n\t\t\tif (this.noFocusTrap) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst el = this.getPopoverContentElement()\n\n\t\t\tif (!el) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Init focus trap\n\t\t\tthis.$focusTrap = createFocusTrap(el, {\n\t\t\t\t// Prevents to lose focus using esc key\n\t\t\t\t// Focus will be release when popover be hide\n\t\t\t\tescapeDeactivates: false,\n\t\t\t\tallowOutsideClick: true,\n\t\t\t\tsetReturnFocus: this.setReturnFocus,\n\t\t\t\ttrapStack: getTrapStack(),\n\t\t\t})\n\t\t\tthis.$focusTrap.activate()\n\t\t},\n\n\t\t/**\n\t\t * Remove focus trap\n\t\t *\n\t\t * @param {object} options The configuration options for focusTrap\n\t\t */\n\t\tclearFocusTrap(options = {}) {\n\t\t\ttry {\n\t\t\t\tthis.$focusTrap?.deactivate(options)\n\t\t\t\tthis.$focusTrap = null\n\t\t\t} catch (err) {\n\t\t\t\tconsole.warn(err)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Add stopPropagation for Escape.\n\t\t * It prevents global Escape handling after closing popover.\n\t\t *\n\t\t * Manual event handling is used here instead of v-on because there is no direct access to the node.\n\t\t * Alternative - wrap <template #popover> in a div wrapper.\n\t\t */\n\t\taddEscapeStopPropagation() {\n\t\t\tconst el = this.getPopoverContentElement()\n\t\t\tel?.addEventListener('keydown', this.stopKeydownEscapeHandler)\n\t\t},\n\n\t\t/**\n\t\t * Remove stop Escape handler\n\t\t */\n\t\tclearEscapeStopPropagation() {\n\t\t\tconst el = this.getPopoverContentElement()\n\t\t\tel?.removeEventListener('keydown', this.stopKeydownEscapeHandler)\n\t\t},\n\n\t\t/**\n\t\t * @param {KeyboardEvent} event - native keydown event\n\t\t */\n\t\tstopKeydownEscapeHandler(event) {\n\t\t\tif (event.type === 'keydown' && event.key === 'Escape') {\n\t\t\t\tevent.stopPropagation()\n\t\t\t}\n\t\t},\n\n\t\tasync afterShow() {\n\t\t\tthis.getPopoverContentElement().addEventListener('transitionend', () => {\n\t\t\t\t/**\n\t\t\t\t * Triggered after the tooltip was visually displayed.\n\t\t\t\t *\n\t\t\t\t * This is different from the 'show' and 'apply-show' which\n\t\t\t\t * run earlier than this where there is no guarantee that the\n\t\t\t\t * tooltip is already visible and in the DOM.\n\t\t\t\t */\n\t\t\t\tthis.$emit('afterShow')\n\t\t\t}, { once: true, passive: true })\n\n\t\t\tthis.removeFloatingVueAriaDescribedBy()\n\n\t\t\tawait this.$nextTick()\n\t\t\tawait this.useFocusTrap()\n\t\t\tthis.addEscapeStopPropagation()\n\t\t},\n\t\tafterHide() {\n\t\t\tthis.getPopoverContentElement().addEventListener('transitionend', () => {\n\t\t\t\t/**\n\t\t\t\t * Triggered after the tooltip was visually hidden.\n\t\t\t\t *\n\t\t\t\t * This is different from the 'hide' and 'apply-hide' which\n\t\t\t\t * run earlier than this where there is no guarantee that the\n\t\t\t\t * tooltip is already visible and in the DOM.\n\t\t\t\t */\n\t\t\t\tthis.$emit('afterHide')\n\t\t\t}, { once: true, passive: true })\n\n\t\t\tthis.clearFocusTrap()\n\t\t\tthis.clearEscapeStopPropagation()\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\">\n$arrow-width: 10px;\n// Move the arrow just slightly inside the popover\n// To prevent a visual gap on page scaling\n$arrow-position: $arrow-width - 1px;\n\n// Size class comes from the floating-vue library we use\n.resize-observer {\n\tposition: absolute;\n\ttop: 0;\n\t/* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n\tleft: 0;\n\tz-index: -1;\n\twidth: 100%;\n\theight: 100%;\n\tborder: none;\n\tbackground-color: transparent;\n\tpointer-events: none;\n\tdisplay: block;\n\toverflow: hidden;\n\topacity: 0;\n\n\tobject {\n\t\tdisplay: block;\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\t/* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n\t\tleft: 0;\n\t\theight: 100%;\n\t\twidth: 100%;\n\t\toverflow: hidden;\n\t\tpointer-events: none;\n\t\tz-index: -1;\n\t}\n}\n\n.v-popper--theme-dropdown {\n\t&,\n\t& * {\n\t\tbox-sizing: border-box;\n\t}\n\n\t&.v-popper__popper {\n\t\tz-index: 100000;\n\t\ttop: 0;\n\t\t/* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n\t\tleft: 0;\n\t\tdisplay: block !important;\n\n\t\t.v-popper__wrapper {\n\t\t\t/*\n\t\t\t * In theory, \"filter: drop-shadow\" would look better here with arrow shadow.\n\t\t\t * In fact, in results in a blurry popover in Chromium on scaling.\n\t\t\t * The hypothesis is that \"filter\" creates a new composition layer,\n\t\t\t * and with GPU acceleration requires the previous layers content to be rasterized.\n\t\t\t * In combination with translate3d from floating-vue, it makes Chromium to first render and rasterize the popover\n\t\t\t * and then apply scaling, which results in a blurry popover.\n\t\t\t */\n\t\t\tbox-shadow: 0 1px 10px var(--color-box-shadow);\n\t\t\tborder-radius: var(--border-radius-large);\n\t\t}\n\n\t\t.v-popper__inner {\n\t\t\tpadding: 0;\n\t\t\tcolor: var(--color-main-text);\n\t\t\tborder-radius: var(--border-radius-large);\n\t\t\toverflow: hidden;\n\t\t\tbackground: var(--color-main-background);\n\t\t}\n\n\t\t.v-popper__arrow-container {\n\t\t\tposition: absolute;\n\t\t\tz-index: 1;\n\t\t\twidth: 0;\n\t\t\theight: 0;\n\t\t\tborder-style: solid;\n\t\t\tborder-color: transparent;\n\t\t\tborder-width: $arrow-width;\n\t\t}\n\n\t\t&[data-popper-placement^='top'] .v-popper__arrow-container {\n\t\t\tbottom: -$arrow-position;\n\t\t\t/* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n\t\t\tborder-bottom-width: 0;\n\t\t\t/* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n\t\t\tborder-top-color: var(--color-main-background);\n\t\t}\n\n\t\t&[data-popper-placement^='bottom'] .v-popper__arrow-container {\n\t\t\ttop: -$arrow-position;\n\t\t\t/* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n\t\t\tborder-top-width: 0;\n\t\t\t/* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n\t\t\tborder-bottom-color: var(--color-main-background);\n\t\t}\n\n\t\t&[data-popper-placement^='right'] .v-popper__arrow-container {\n\t\t\t/* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n\t\t\tleft: -$arrow-position;\n\t\t\t/* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n\t\t\tborder-left-width: 0;\n\t\t\t/* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n\t\t\tborder-right-color: var(--color-main-background);\n\t\t}\n\n\t\t&[data-popper-placement^='left'] .v-popper__arrow-container {\n\t\t\t/* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n\t\t\tright: -$arrow-position;\n\t\t\t/* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n\t\t\tborder-right-width: 0;\n\t\t\t/* stylelint-disable-next-line csstools/use-logical */ /* upstream logic */\n\t\t\tborder-left-color: var(--color-main-background);\n\t\t}\n\n\t\t&[aria-hidden='true'] {\n\t\t\tvisibility: hidden;\n\t\t\ttransition: opacity var(--animation-quick), visibility var(--animation-quick);\n\t\t\topacity: 0;\n\t\t}\n\n\t\t&[aria-hidden='false'] {\n\t\t\tvisibility: visible;\n\t\t\ttransition: opacity var(--animation-quick);\n\t\t\topacity: 1;\n\t\t}\n\t}\n}\n\n</style>\n"],"names":["_sfc_main","NcPopoverTriggerProvider","_createBlock","_withCtx","_renderSlot","_normalizeProps","_guardReactiveProps","_createVNode"],"mappings":"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"}