@nextcloud/vue 9.0.0-rc.4 → 9.0.0-rc.6

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 (421) hide show
  1. package/CHANGELOG.md +138 -24
  2. package/README.md +1 -1
  3. package/dist/assets/{NcActionButtonGroup-BND4GQdv.css → NcActionButtonGroup-BLIEEeG3.css} +1 -1
  4. package/dist/assets/NcActionInput-BrCsR1ZO.css +221 -0
  5. package/dist/assets/{NcActionTextEditable-BbOijUsB.css → NcActionTextEditable-vhpb77-W.css} +4 -9
  6. package/dist/assets/{NcActions-DfCOtp0b.css → NcActions-CG3xO48Y.css} +13 -13
  7. package/dist/assets/{NcAppContent-RmHDNYBp.css → NcAppContent-vj2DL4Yr.css} +4 -4
  8. package/dist/assets/{NcAppNavigation-C6-8ErA_.css → NcAppNavigation-Dx5I2eEV.css} +38 -12
  9. package/dist/assets/{NcAppNavigationItem-B-slGJHZ.css → NcAppNavigationItem-D0G4tdGd.css} +37 -37
  10. package/dist/assets/{NcAppNavigationNewItem-CYsA6ZGQ.css → NcAppNavigationNewItem-CCu1yQxq.css} +2 -2
  11. package/dist/assets/{NcAppNavigationSearch-BAzhDRd7.css → NcAppNavigationSearch-C1BuilVS.css} +5 -8
  12. package/dist/assets/{NcAppSettingsDialog-DfBJYMdm.css → NcAppSettingsDialog-705Crvh8.css} +11 -11
  13. package/dist/assets/{NcAppSidebar-BeRME1Bx.css → NcAppSidebar-CZ-bJUxG.css} +61 -77
  14. package/dist/assets/NcAvatar-DETOZR8d.css +134 -0
  15. package/dist/assets/{NcBreadcrumb-CV3DgRKn.css → NcBreadcrumb-Dll7O4N9.css} +15 -15
  16. package/dist/assets/{NcButton-Cpw_vPKw.css → NcButton-BWD8LdCm.css} +74 -70
  17. package/dist/assets/{NcCheckboxRadioSwitch-DKVMIvxJ.css → NcCheckboxRadioSwitch-Cbnc4p0H.css} +35 -35
  18. package/dist/assets/{NcChip-rGBYOr-Q.css → NcChip-1ZmWY_6e.css} +9 -9
  19. package/dist/assets/{NcCollectionList-DVlSPO13.css → NcCollectionList-C7_FPg95.css} +42 -42
  20. package/dist/assets/{NcColorPicker-DgByWqzp.css → NcColorPicker-RX6YpqSU.css} +31 -31
  21. package/dist/assets/{NcContent-1ivDf2e_.css → NcContent-voMuob0w.css} +13 -10
  22. package/dist/assets/{NcCounterBubble-DpKQwKTI.css → NcCounterBubble-C0CtLaMW.css} +8 -8
  23. package/dist/assets/{NcDashboardWidget-BEYk4O95.css → NcDashboardWidget-CTP_ajin.css} +13 -13
  24. package/dist/assets/{NcDashboardWidgetItem-V_jSEH-7.css → NcDashboardWidgetItem-DYwI3Qof.css} +13 -13
  25. package/dist/assets/{NcDateTimePicker-_rRYVngX.css → NcDateTimePicker-D76SV5EC.css} +236 -233
  26. package/dist/assets/NcDateTimePickerNative-B7hWPWho.css +60 -0
  27. package/dist/assets/{NcDialog-Ch6FuMQo.css → NcDialog-DVe1SvHJ.css} +16 -16
  28. package/dist/assets/{NcEmojiPicker-vTc7_EDA.css → NcEmojiPicker-CeVpBSVx.css} +5 -5
  29. package/dist/assets/{NcGuestContent-BZ26iXQi.css → NcGuestContent-j8ai4O1K.css} +3 -3
  30. package/dist/assets/{NcHeaderButton-Ct8k0yDh.css → NcHeaderButton-BZeIVAHI.css} +11 -7
  31. package/dist/assets/{NcHeaderMenu-BAKwNTFx.css → NcHeaderMenu-U_duiDuh.css} +16 -13
  32. package/dist/assets/{NcInputConfirmCancel-9YyvRYjw.css → NcInputConfirmCancel-DNNS3DDJ.css} +5 -5
  33. package/dist/assets/{NcInputField-CvP4PFAO.css → NcInputField-Xm6zpzck.css} +47 -42
  34. package/dist/assets/{NcListItem-BBaZDZQK.css → NcListItem-CAWaHeb2.css} +41 -50
  35. package/dist/assets/{NcLoadingIcon-DlDKflKI.css → NcLoadingIcon-B-JbyXuV.css} +5 -2
  36. package/dist/assets/{NcModal-BMVfhs7c.css → NcModal-x_u5Tqtc.css} +62 -62
  37. package/dist/assets/{NcNoteCard-DlW6RBOO.css → NcNoteCard-DGpRZQtS.css} +18 -18
  38. package/dist/assets/{NcPasswordField-D7XrnwDs.css → NcPasswordField-Ck5YCufb.css} +2 -2
  39. package/dist/assets/{NcPopover-zFjgXDlM.css → NcPopover-BzkXE_af.css} +2 -2
  40. package/dist/assets/{NcProgressBar--z-WqmX4.css → NcProgressBar-BZzxurHX.css} +16 -15
  41. package/dist/assets/{NcRelatedResourcesPanel-BQkQvMMD.css → NcRelatedResourcesPanel-9I4RRIks.css} +26 -26
  42. package/dist/assets/{NcRichContenteditable-1zTxLjsG.css → NcRichContenteditable-DLvvIjC_.css} +33 -33
  43. package/dist/assets/{NcRichText-cO2UCM_o.css → NcRichText-Fp8zf8zq.css} +87 -87
  44. package/dist/assets/{NcSelect-BCBpQnFL.css → NcSelect-DjCC5X0A.css} +2 -2
  45. package/dist/assets/NcSelectUsers-Cyr5NLrJ.css +4 -0
  46. package/dist/assets/{NcSettingsInputText-B-V6Y4MD.css → NcSettingsInputText-B2b1M_wK.css} +5 -5
  47. package/dist/assets/{NcSettingsSection-DLjgl3j1.css → NcSettingsSection-CxQtVrUq.css} +7 -7
  48. package/dist/assets/{NcSettingsSelectGroup-DZcNr_Dq.css → NcSettingsSelectGroup-BH0B-4BJ.css} +4 -4
  49. package/dist/assets/{NcTextArea-DoBYU3IE.css → NcTextArea-IV7f8C-Q.css} +24 -24
  50. package/dist/assets/{NcUserStatusIcon-CtJLt6AU.css → NcUserStatusIcon-Du6m_1El.css} +7 -7
  51. package/dist/assets/{referencePickerModal-DIHQ6_wW.css → referencePickerModal-D80hwmre.css} +48 -48
  52. package/dist/chunks/ArrowRight-DRKHUZMH.mjs.map +1 -1
  53. package/dist/chunks/ChevronDown-FiGpp0KT.mjs.map +1 -1
  54. package/dist/chunks/ChevronUp-DPXFp1ss.mjs.map +1 -1
  55. package/dist/chunks/Close-D6ngJ4t9.mjs.map +1 -1
  56. package/dist/chunks/{NcActionButton-Bd35_0n4.mjs → NcActionButton-k1JvZ5eE.mjs} +2 -2
  57. package/dist/chunks/{NcActionButton-Bd35_0n4.mjs.map → NcActionButton-k1JvZ5eE.mjs.map} +1 -1
  58. package/dist/chunks/{NcActionButtonGroup-BVbWDFaC.mjs → NcActionButtonGroup-WjVxibM-.mjs} +3 -3
  59. package/dist/chunks/{NcActionButtonGroup-BVbWDFaC.mjs.map → NcActionButtonGroup-WjVxibM-.mjs.map} +1 -1
  60. package/dist/chunks/NcActionCaption-Fumfjzxj.mjs.map +1 -1
  61. package/dist/chunks/NcActionCheckbox-DLPDTACR.mjs.map +1 -1
  62. package/dist/chunks/{NcActionInput-B_f8z2fo.mjs → NcActionInput-Cu77Jgzr.mjs} +13 -15
  63. package/dist/chunks/NcActionInput-Cu77Jgzr.mjs.map +1 -0
  64. package/dist/chunks/NcActionLink-BEo7zmXX.mjs.map +1 -1
  65. package/dist/chunks/NcActionRadio-CPoWB58D.mjs.map +1 -1
  66. package/dist/chunks/NcActionRouter-ERoQjJKv.mjs.map +1 -1
  67. package/dist/chunks/NcActionText-16Mj4-P1.mjs.map +1 -1
  68. package/dist/chunks/{NcActionTextEditable-B4nTAiHu.mjs → NcActionTextEditable-BLkdbR1d.mjs} +3 -3
  69. package/dist/chunks/{NcActionTextEditable-B4nTAiHu.mjs.map → NcActionTextEditable-BLkdbR1d.mjs.map} +1 -1
  70. package/dist/chunks/{NcActions-BM3DmGLW.mjs → NcActions-CDD8eIxC.mjs} +53 -10
  71. package/dist/chunks/NcActions-CDD8eIxC.mjs.map +1 -0
  72. package/dist/chunks/{NcAppContent-BZZyPqOo.mjs → NcAppContent-BuPSAcBt.mjs} +6 -6
  73. package/dist/chunks/{NcAppContent-BZZyPqOo.mjs.map → NcAppContent-BuPSAcBt.mjs.map} +1 -1
  74. package/dist/chunks/NcAppContentDetails.vue_vue_type_script_setup_true_lang-Dnf4r_Ng.mjs.map +1 -1
  75. package/dist/chunks/NcAppContentList-DnLY_sWw.mjs.map +1 -1
  76. package/dist/chunks/NcAppNavigation-ByAPTGke.mjs +163 -0
  77. package/dist/chunks/NcAppNavigation-ByAPTGke.mjs.map +1 -0
  78. package/dist/chunks/{NcAppNavigationCaption-BrCiN8XK.mjs → NcAppNavigationCaption-SJPzGdtT.mjs} +2 -2
  79. package/dist/chunks/{NcAppNavigationCaption-BrCiN8XK.mjs.map → NcAppNavigationCaption-SJPzGdtT.mjs.map} +1 -1
  80. package/dist/chunks/NcAppNavigationIconBullet-B1kc4u65.mjs.map +1 -1
  81. package/dist/chunks/{NcAppNavigationItem-ClySLuSM.mjs → NcAppNavigationItem-0xVXJPEm.mjs} +14 -11
  82. package/dist/chunks/NcAppNavigationItem-0xVXJPEm.mjs.map +1 -0
  83. package/dist/chunks/{NcAppNavigationNew-CMjaAY5A.mjs → NcAppNavigationNew-CjJgIwfl.mjs} +2 -2
  84. package/dist/chunks/{NcAppNavigationNew-CMjaAY5A.mjs.map → NcAppNavigationNew-CjJgIwfl.mjs.map} +1 -1
  85. package/dist/chunks/{NcAppNavigationNewItem-BUgPntuN.mjs → NcAppNavigationNewItem-BCFq6zq8.mjs} +4 -4
  86. package/dist/chunks/{NcAppNavigationNewItem-BUgPntuN.mjs.map → NcAppNavigationNewItem-BCFq6zq8.mjs.map} +1 -1
  87. package/dist/chunks/{NcAppNavigationSearch-DpjlWi9j.mjs → NcAppNavigationSearch-Bnr0rygy.mjs} +7 -8
  88. package/dist/chunks/NcAppNavigationSearch-Bnr0rygy.mjs.map +1 -0
  89. package/dist/chunks/{NcAppNavigationSettings-DGATbBqy.mjs → NcAppNavigationSettings-CM0_QsTH.mjs} +6 -6
  90. package/dist/chunks/NcAppNavigationSettings-CM0_QsTH.mjs.map +1 -0
  91. package/dist/chunks/NcAppNavigationSpacer-BvkBfuVw.mjs.map +1 -1
  92. package/dist/chunks/{NcAppSettingsDialog-Dgh5jydA.mjs → NcAppSettingsDialog-DBI8-FZa.mjs} +10 -6
  93. package/dist/chunks/{NcAppSettingsDialog-Dgh5jydA.mjs.map → NcAppSettingsDialog-DBI8-FZa.mjs.map} +1 -1
  94. package/dist/chunks/NcAppSettingsSection-CssmXyZ0.mjs.map +1 -1
  95. package/dist/chunks/{NcAppSidebar-DWRmX_-Y.mjs → NcAppSidebar-CyyFi0n6.mjs} +10 -9
  96. package/dist/chunks/NcAppSidebar-CyyFi0n6.mjs.map +1 -0
  97. package/dist/chunks/NcAppSidebarHeader.vue_vue_type_script_setup_true_lang-0j0aFDeK.mjs.map +1 -1
  98. package/dist/chunks/NcAppSidebarTab-D1RmFRTu.mjs.map +1 -1
  99. package/dist/chunks/{NcAvatar-PCbT0J_-.mjs → NcAvatar-CnRCSalb.mjs} +27 -38
  100. package/dist/chunks/NcAvatar-CnRCSalb.mjs.map +1 -0
  101. package/dist/chunks/NcBlurHash-BiFktE2N.mjs.map +1 -1
  102. package/dist/chunks/{NcBreadcrumb-D9gRzaYP.mjs → NcBreadcrumb-B97vQkN2.mjs} +20 -21
  103. package/dist/chunks/NcBreadcrumb-B97vQkN2.mjs.map +1 -0
  104. package/dist/chunks/{NcBreadcrumbs-DjqDBMn-.mjs → NcBreadcrumbs-CvUgliJa.mjs} +4 -4
  105. package/dist/chunks/{NcBreadcrumbs-DjqDBMn-.mjs.map → NcBreadcrumbs-CvUgliJa.mjs.map} +1 -1
  106. package/dist/chunks/{NcButton-yN4vYgXb.mjs → NcButton-BMnvzy1A.mjs} +47 -31
  107. package/dist/chunks/NcButton-BMnvzy1A.mjs.map +1 -0
  108. package/dist/chunks/{NcCheckboxRadioSwitch-D9N_BDHh.mjs → NcCheckboxRadioSwitch-Da0F7y0G.mjs} +7 -7
  109. package/dist/chunks/{NcCheckboxRadioSwitch-D9N_BDHh.mjs.map → NcCheckboxRadioSwitch-Da0F7y0G.mjs.map} +1 -1
  110. package/dist/chunks/{NcChip-BPresRp1.mjs → NcChip-DuaqxToL.mjs} +7 -7
  111. package/dist/chunks/{NcChip-BPresRp1.mjs.map → NcChip-DuaqxToL.mjs.map} +1 -1
  112. package/dist/chunks/{NcCollectionList-BPDCogsB.mjs → NcCollectionList-Cr0T14g-.mjs} +10 -10
  113. package/dist/chunks/{NcCollectionList-BPDCogsB.mjs.map → NcCollectionList-Cr0T14g-.mjs.map} +1 -1
  114. package/dist/chunks/{NcColorPicker-BNpZzN-p.mjs → NcColorPicker-D6g3v7Qc.mjs} +36 -24
  115. package/dist/chunks/NcColorPicker-D6g3v7Qc.mjs.map +1 -0
  116. package/dist/chunks/{NcContent-CZKDyVcI.mjs → NcContent-DV3z9w_V.mjs} +5 -5
  117. package/dist/chunks/{NcContent-CZKDyVcI.mjs.map → NcContent-DV3z9w_V.mjs.map} +1 -1
  118. package/dist/chunks/{NcCounterBubble-PBdqn9Nf.mjs → NcCounterBubble-Bop3e-Tr.mjs} +3 -3
  119. package/dist/chunks/{NcCounterBubble-PBdqn9Nf.mjs.map → NcCounterBubble-Bop3e-Tr.mjs.map} +1 -1
  120. package/dist/chunks/{NcDashboardWidget-DhZ5c4oF.mjs → NcDashboardWidget-Wkx_9xKh.mjs} +50 -8
  121. package/dist/chunks/NcDashboardWidget-Wkx_9xKh.mjs.map +1 -0
  122. package/dist/chunks/{NcDashboardWidgetItem-pJ-PctjL.mjs → NcDashboardWidgetItem-CMrxp0Lc.mjs} +6 -6
  123. package/dist/chunks/{NcDashboardWidgetItem-pJ-PctjL.mjs.map → NcDashboardWidgetItem-CMrxp0Lc.mjs.map} +1 -1
  124. package/dist/chunks/NcDateTime.vue_vue_type_script_setup_true_lang-B0Lci6v0.mjs.map +1 -1
  125. package/dist/chunks/{NcDateTimePicker-CKOTExmB.mjs → NcDateTimePicker-BarX7J-6.mjs} +33 -25
  126. package/dist/chunks/NcDateTimePicker-BarX7J-6.mjs.map +1 -0
  127. package/dist/chunks/{NcDateTimePickerNative-NVYPDSmf.mjs → NcDateTimePickerNative-BOoA1aEf.mjs} +4 -4
  128. package/dist/chunks/{NcDateTimePickerNative-NVYPDSmf.mjs.map → NcDateTimePickerNative-BOoA1aEf.mjs.map} +1 -1
  129. package/dist/chunks/{NcDialog-DTbCOARa.mjs → NcDialog-IKWAQK-K.mjs} +10 -15
  130. package/dist/chunks/NcDialog-IKWAQK-K.mjs.map +1 -0
  131. package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-DaU1luyJ.mjs → NcDialogButton.vue_vue_type_script_setup_true_lang-BT66zCa4.mjs} +4 -4
  132. package/dist/chunks/{NcDialogButton.vue_vue_type_script_setup_true_lang-DaU1luyJ.mjs.map → NcDialogButton.vue_vue_type_script_setup_true_lang-BT66zCa4.mjs.map} +1 -1
  133. package/dist/chunks/NcEllipsisedOption-C8uNDC-j.mjs.map +1 -1
  134. package/dist/chunks/{NcEmojiPicker-DHXabPDE.mjs → NcEmojiPicker-DL9u7r5m.mjs} +10 -10
  135. package/dist/chunks/{NcEmojiPicker-DHXabPDE.mjs.map → NcEmojiPicker-DL9u7r5m.mjs.map} +1 -1
  136. package/dist/chunks/NcEmptyContent-BdOezubv.mjs.map +1 -1
  137. package/dist/chunks/{NcGuestContent-B_S2nyJ4.mjs → NcGuestContent-CfCh49o0.mjs} +3 -3
  138. package/dist/chunks/NcGuestContent-CfCh49o0.mjs.map +1 -0
  139. package/dist/chunks/{NcHeaderButton-BTZ1WNux.mjs → NcHeaderButton-DAxGG1vc.mjs} +4 -4
  140. package/dist/chunks/{NcHeaderButton-BTZ1WNux.mjs.map → NcHeaderButton-DAxGG1vc.mjs.map} +1 -1
  141. package/dist/chunks/{NcHeaderMenu-Bf_rW093.mjs → NcHeaderMenu-DcBWHaZv.mjs} +15 -17
  142. package/dist/chunks/NcHeaderMenu-DcBWHaZv.mjs.map +1 -0
  143. package/dist/chunks/NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs.map +1 -1
  144. package/dist/chunks/NcIconSvgWrapper-CprKb_SE.mjs.map +1 -1
  145. package/dist/chunks/{NcInputConfirmCancel-DCUXeKPz.mjs → NcInputConfirmCancel-BG4KRrhr.mjs} +5 -5
  146. package/dist/chunks/{NcInputConfirmCancel-DCUXeKPz.mjs.map → NcInputConfirmCancel-BG4KRrhr.mjs.map} +1 -1
  147. package/dist/chunks/{NcInputField-BZWRHkmQ.mjs → NcInputField-Cz1RwzSy.mjs} +10 -11
  148. package/dist/chunks/NcInputField-Cz1RwzSy.mjs.map +1 -0
  149. package/dist/chunks/{NcListItem-7BHAmqB0.mjs → NcListItem-CwAOX69Q.mjs} +5 -13
  150. package/dist/chunks/NcListItem-CwAOX69Q.mjs.map +1 -0
  151. package/dist/chunks/{NcListItemIcon-gkuv5FT8.mjs → NcListItemIcon-26IdztJ2.mjs} +2 -2
  152. package/dist/chunks/{NcListItemIcon-gkuv5FT8.mjs.map → NcListItemIcon-26IdztJ2.mjs.map} +1 -1
  153. package/dist/chunks/{NcLoadingIcon-Dm3kRPrf.mjs → NcLoadingIcon-CiMp51wb.mjs} +3 -3
  154. package/dist/chunks/{NcLoadingIcon-Dm3kRPrf.mjs.map → NcLoadingIcon-CiMp51wb.mjs.map} +1 -1
  155. package/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_25f4d6e1_lang-aMwzB20D.mjs.map +1 -1
  156. package/dist/chunks/{NcModal-CX28vCtF.mjs → NcModal-CdXZncEM.mjs} +8 -12
  157. package/dist/chunks/NcModal-CdXZncEM.mjs.map +1 -0
  158. package/dist/chunks/{NcNoteCard-oGt6biyJ.mjs → NcNoteCard-C8JB31rn.mjs} +4 -4
  159. package/dist/chunks/{NcNoteCard-oGt6biyJ.mjs.map → NcNoteCard-C8JB31rn.mjs.map} +1 -1
  160. package/dist/chunks/{NcPasswordField-w13_Lpyn.mjs → NcPasswordField-BlbWNpfS.mjs} +8 -9
  161. package/dist/chunks/NcPasswordField-BlbWNpfS.mjs.map +1 -0
  162. package/dist/chunks/{NcPopover-BUlWWIxc.mjs → NcPopover-Zs7qt_Zd.mjs} +3 -3
  163. package/dist/chunks/{NcPopover-BUlWWIxc.mjs.map → NcPopover-Zs7qt_Zd.mjs.map} +1 -1
  164. package/dist/chunks/NcProgressBar-Ds0zTPYX.mjs +94 -0
  165. package/dist/chunks/NcProgressBar-Ds0zTPYX.mjs.map +1 -0
  166. package/dist/chunks/{NcRelatedResourcesPanel-CpOgjo9h.mjs → NcRelatedResourcesPanel-DBOgpeIK.mjs} +8 -8
  167. package/dist/chunks/NcRelatedResourcesPanel-DBOgpeIK.mjs.map +1 -0
  168. package/dist/chunks/{NcRichContenteditable-J9ILu0dF.mjs → NcRichContenteditable-BmrCeWNL.mjs} +27 -27
  169. package/dist/chunks/{NcRichContenteditable-J9ILu0dF.mjs.map → NcRichContenteditable-BmrCeWNL.mjs.map} +1 -1
  170. package/dist/chunks/{NcRichText-DvbC3aUR.mjs → NcRichText-G8kzsdwx.mjs} +301 -267
  171. package/dist/chunks/NcRichText-G8kzsdwx.mjs.map +1 -0
  172. package/dist/chunks/{NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang-DlRBo3QU.mjs → NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang-jUf1K561.mjs} +2 -2
  173. package/dist/chunks/{NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang-DlRBo3QU.mjs.map → NcSavingIndicatorIcon.vue_vue_type_script_setup_true_lang-jUf1K561.mjs.map} +1 -1
  174. package/dist/chunks/{NcSelect-D6XzjG4n.mjs → NcSelect-C6qHqfAO.mjs} +4 -4
  175. package/dist/chunks/{NcSelect-D6XzjG4n.mjs.map → NcSelect-C6qHqfAO.mjs.map} +1 -1
  176. package/dist/chunks/{NcSelectTags-SNTGRj-n.mjs → NcSelectTags-Capp69AW.mjs} +3 -3
  177. package/dist/chunks/{NcSelectTags-SNTGRj-n.mjs.map → NcSelectTags-Capp69AW.mjs.map} +1 -1
  178. package/dist/chunks/{NcSelectUsers-D_eu9Uqb.mjs → NcSelectUsers-BVn8co_d.mjs} +5 -5
  179. package/dist/chunks/{NcSelectUsers-D_eu9Uqb.mjs.map → NcSelectUsers-BVn8co_d.mjs.map} +1 -1
  180. package/dist/chunks/{NcSettingsInputText-D5N9XxkW.mjs → NcSettingsInputText-C8Gtj3Ht.mjs} +4 -4
  181. package/dist/chunks/{NcSettingsInputText-D5N9XxkW.mjs.map → NcSettingsInputText-C8Gtj3Ht.mjs.map} +1 -1
  182. package/dist/chunks/{NcSettingsSection-93UQoiwe.mjs → NcSettingsSection-CtSg7lH8.mjs} +4 -4
  183. package/dist/chunks/{NcSettingsSection-93UQoiwe.mjs.map → NcSettingsSection-CtSg7lH8.mjs.map} +1 -1
  184. package/dist/chunks/{NcSettingsSelectGroup-Dr4IRbi_.mjs → NcSettingsSelectGroup-C1DEcBNJ.mjs} +5 -5
  185. package/dist/chunks/{NcSettingsSelectGroup-Dr4IRbi_.mjs.map → NcSettingsSelectGroup-C1DEcBNJ.mjs.map} +1 -1
  186. package/dist/chunks/{NcTextArea-CWqnvMl2.mjs → NcTextArea-BAl6EP4Z.mjs} +5 -5
  187. package/dist/chunks/NcTextArea-BAl6EP4Z.mjs.map +1 -0
  188. package/dist/chunks/{NcTextField.vue_vue_type_script_setup_true_lang-B65hrkLW.mjs → NcTextField.vue_vue_type_script_setup_true_lang-DzcUUWHO.mjs} +6 -7
  189. package/dist/chunks/NcTextField.vue_vue_type_script_setup_true_lang-DzcUUWHO.mjs.map +1 -0
  190. package/dist/chunks/NcThemeProvider.vue_vue_type_script_setup_true_lang-nUDJsDGI.mjs.map +1 -1
  191. package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-BoH1Njbp.mjs → NcTimezonePicker.vue_vue_type_script_setup_true_lang-Dsco6qEJ.mjs} +3 -3
  192. package/dist/chunks/{NcTimezonePicker.vue_vue_type_script_setup_true_lang-BoH1Njbp.mjs.map → NcTimezonePicker.vue_vue_type_script_setup_true_lang-Dsco6qEJ.mjs.map} +1 -1
  193. package/dist/chunks/{NcUserBubble-BW0qu6mW.mjs → NcUserBubble-CqKN_gM4.mjs} +3 -3
  194. package/dist/chunks/{NcUserBubble-BW0qu6mW.mjs.map → NcUserBubble-CqKN_gM4.mjs.map} +1 -1
  195. package/dist/chunks/{NcUserStatusIcon-DqQYA-EE.mjs → NcUserStatusIcon-CDEUKK60.mjs} +10 -9
  196. package/dist/chunks/NcUserStatusIcon-CDEUKK60.mjs.map +1 -0
  197. package/dist/chunks/NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs.map +1 -1
  198. package/dist/chunks/_l10n-ZllQPIu_.mjs +113 -0
  199. package/dist/chunks/_l10n-ZllQPIu_.mjs.map +1 -0
  200. package/dist/chunks/actionGlobal-BZFdtdJL.mjs.map +1 -1
  201. package/dist/chunks/actionText-DdSwf9le.mjs.map +1 -1
  202. package/dist/chunks/{autolink-CKPk5rzg.mjs → autolink-Y0rlJ_CI.mjs} +5 -1
  203. package/dist/chunks/autolink-Y0rlJ_CI.mjs.map +1 -0
  204. package/dist/chunks/{colors-BaTbJhvg.mjs → colors-B71CwSnx.mjs} +2 -2
  205. package/dist/chunks/{colors-BaTbJhvg.mjs.map → colors-B71CwSnx.mjs.map} +1 -1
  206. package/dist/chunks/constants-Bls5liKo.mjs.map +1 -1
  207. package/dist/chunks/createElementId-DhjFt1I9.mjs.map +1 -1
  208. package/dist/chunks/{customPickerElements-CH9vlHLd.mjs → customPickerElements-BmkXSNdO.mjs} +2 -2
  209. package/dist/chunks/{customPickerElements-CH9vlHLd.mjs.map → customPickerElements-BmkXSNdO.mjs.map} +1 -1
  210. package/dist/chunks/emoji-BY_D0V5K.mjs.map +1 -1
  211. package/dist/chunks/{focusTrap-DmkaYJTC.mjs → focusTrap-HJQ4pqHV.mjs} +6 -3
  212. package/dist/chunks/focusTrap-HJQ4pqHV.mjs.map +1 -0
  213. package/dist/chunks/logger-D3RVzcfQ.mjs.map +1 -1
  214. package/dist/chunks/{mdi-D6fu5i4r.mjs → mdi-B9TPxVka.mjs} +14 -6
  215. package/dist/chunks/{mdi-D6fu5i4r.mjs.map → mdi-B9TPxVka.mjs.map} +1 -1
  216. package/dist/chunks/{referencePickerModal-DREcDQKg.mjs → referencePickerModal-BtI-8rNN.mjs} +147 -109
  217. package/dist/chunks/referencePickerModal-BtI-8rNN.mjs.map +1 -0
  218. package/dist/chunks/rtl-v0UOPAM7.mjs.map +1 -1
  219. package/dist/chunks/useNcActions-CiGWxAJE.mjs.map +1 -1
  220. package/dist/chunks/{useTrapStackControl-b3A_383w.mjs → useTrapStackControl-yqM2SDEs.mjs} +2 -2
  221. package/dist/chunks/{useTrapStackControl-b3A_383w.mjs.map → useTrapStackControl-yqM2SDEs.mjs.map} +1 -1
  222. package/dist/components/NcActionButton/index.mjs +1 -1
  223. package/dist/components/NcActionButtonGroup/index.mjs +1 -1
  224. package/dist/components/NcActionInput/NcActionInput.vue.d.ts +1934 -0
  225. package/dist/components/NcActionInput/index.mjs +1 -1
  226. package/dist/components/NcActionTextEditable/index.mjs +1 -1
  227. package/dist/components/NcActions/NcActions.vue.d.ts +502 -0
  228. package/dist/components/NcActions/index.mjs +1 -1
  229. package/dist/components/NcAppContent/index.mjs +1 -1
  230. package/dist/components/NcAppNavigation/NcAppNavigation.vue.d.ts +59 -57
  231. package/dist/components/NcAppNavigation/index.d.ts +4 -0
  232. package/dist/components/NcAppNavigation/index.mjs +1 -1
  233. package/dist/components/NcAppNavigationCaption/NcAppNavigationCaption.vue.d.ts +347 -0
  234. package/dist/components/NcAppNavigationCaption/index.mjs +1 -1
  235. package/dist/components/NcAppNavigationItem/NcAppNavigationIconCollapsible.vue.d.ts +137 -0
  236. package/dist/components/NcAppNavigationItem/NcAppNavigationItem.vue.d.ts +1227 -0
  237. package/dist/components/NcAppNavigationItem/NcInputConfirmCancel.vue.d.ts +171 -0
  238. package/dist/components/NcAppNavigationItem/index.mjs +1 -1
  239. package/dist/components/NcAppNavigationNew/NcAppNavigationNew.vue.d.ts +171 -0
  240. package/dist/components/NcAppNavigationNew/index.mjs +1 -1
  241. package/dist/components/NcAppNavigationNewItem/NcAppNavigationNewItem.vue.d.ts +270 -0
  242. package/dist/components/NcAppNavigationNewItem/index.mjs +1 -1
  243. package/dist/components/NcAppNavigationSearch/NcAppNavigationSearch.vue.d.ts +26 -26
  244. package/dist/components/NcAppNavigationSearch/index.mjs +1 -1
  245. package/dist/components/NcAppNavigationSettings/index.mjs +1 -1
  246. package/dist/components/NcAppSettingsDialog/NcAppSettingsDialog.vue.d.ts +348 -0
  247. package/dist/components/NcAppSettingsDialog/index.mjs +1 -1
  248. package/dist/components/NcAppSidebar/NcAppSidebar.vue.d.ts +988 -0
  249. package/dist/components/NcAppSidebar/index.mjs +1 -1
  250. package/dist/components/NcAvatar/NcAvatar.vue.d.ts +980 -0
  251. package/dist/components/NcAvatar/index.mjs +1 -1
  252. package/dist/components/NcBreadcrumb/NcBreadcrumb.vue.d.ts +658 -0
  253. package/dist/components/NcBreadcrumb/index.mjs +1 -1
  254. package/dist/components/NcBreadcrumbs/NcBreadcrumbs.vue.d.ts +1255 -0
  255. package/dist/components/NcBreadcrumbs/index.mjs +1 -1
  256. package/dist/components/NcButton/NcButton.vue.d.ts +7 -7
  257. package/dist/components/NcButton/index.mjs +1 -1
  258. package/dist/components/NcCheckboxRadioSwitch/index.mjs +1 -1
  259. package/dist/components/NcChip/index.mjs +1 -1
  260. package/dist/components/NcCollectionList/NcCollectionList.vue.d.ts +2424 -0
  261. package/dist/components/NcCollectionList/NcCollectionListItem.vue.d.ts +1366 -0
  262. package/dist/components/NcCollectionList/index.mjs +1 -1
  263. package/dist/components/NcColorPicker/NcColorPicker.vue.d.ts +5 -2
  264. package/dist/components/NcColorPicker/index.mjs +1 -1
  265. package/dist/components/NcContent/index.mjs +1 -1
  266. package/dist/components/NcCounterBubble/index.mjs +1 -1
  267. package/dist/components/NcDashboardWidget/NcDashboardWidget.vue.d.ts +2446 -0
  268. package/dist/components/NcDashboardWidget/index.mjs +1 -1
  269. package/dist/components/NcDashboardWidgetItem/NcDashboardWidgetItem.vue.d.ts +1486 -0
  270. package/dist/components/NcDashboardWidgetItem/index.mjs +1 -1
  271. package/dist/components/NcDateTimePicker/NcDateTimePicker.vue.d.ts +4 -4
  272. package/dist/components/NcDateTimePicker/index.mjs +1 -1
  273. package/dist/components/NcDateTimePickerNative/index.mjs +1 -1
  274. package/dist/components/NcDialog/NcDialog.vue.d.ts +4 -4
  275. package/dist/components/NcDialog/index.mjs +1 -1
  276. package/dist/components/NcDialogButton/index.mjs +1 -1
  277. package/dist/components/NcEllipsisedOption/NcEllipsisedOption.vue.d.ts +95 -0
  278. package/dist/components/NcEmojiPicker/NcEmojiPicker.vue.d.ts +556 -0
  279. package/dist/components/NcEmojiPicker/index.mjs +1 -1
  280. package/dist/components/NcGuestContent/index.mjs +1 -1
  281. package/dist/components/NcHeaderButton/index.mjs +1 -1
  282. package/dist/components/NcHeaderMenu/NcHeaderMenu.vue.d.ts +319 -0
  283. package/dist/components/NcHeaderMenu/index.mjs +1 -1
  284. package/dist/components/NcHighlight/NcHighlight.vue.d.ts +1 -1
  285. package/dist/components/NcInputField/NcInputField.vue.d.ts +5 -9
  286. package/dist/components/NcInputField/index.mjs +1 -1
  287. package/dist/components/NcListItem/NcListItem.vue.d.ts +646 -0
  288. package/dist/components/NcListItem/index.mjs +1 -1
  289. package/dist/components/NcListItemIcon/NcListItemIcon.vue.d.ts +1097 -0
  290. package/dist/components/NcListItemIcon/index.mjs +1 -1
  291. package/dist/components/NcLoadingIcon/index.mjs +1 -1
  292. package/dist/components/NcModal/index.mjs +1 -1
  293. package/dist/components/NcNoteCard/index.mjs +1 -1
  294. package/dist/components/NcPasswordField/NcPasswordField.vue.d.ts +14 -14
  295. package/dist/components/NcPasswordField/index.mjs +1 -1
  296. package/dist/components/NcPopover/index.mjs +1 -1
  297. package/dist/components/NcProgressBar/NcProgressBar.vue.d.ts +42 -1
  298. package/dist/components/NcProgressBar/index.d.ts +4 -0
  299. package/dist/components/NcProgressBar/index.mjs +1 -1
  300. package/dist/components/NcRelatedResourcesPanel/NcRelatedResourcesPanel.vue.d.ts +463 -0
  301. package/dist/components/NcRelatedResourcesPanel/NcResource.vue.d.ts +149 -0
  302. package/dist/components/NcRelatedResourcesPanel/NcTeamResources.vue.d.ts +175 -0
  303. package/dist/components/NcRelatedResourcesPanel/index.mjs +1 -1
  304. package/dist/components/NcRichContenteditable/index.mjs +1 -1
  305. package/dist/components/NcRichText/NcReferenceList.vue.d.ts +268 -0
  306. package/dist/components/NcRichText/NcReferencePicker/NcProviderList.vue.d.ts +197 -0
  307. package/dist/components/NcRichText/NcReferencePicker/NcRawLinkInput.vue.d.ts +447 -0
  308. package/dist/components/NcRichText/NcReferencePicker/NcReferencePicker.vue.d.ts +1002 -0
  309. package/dist/components/NcRichText/NcReferencePicker/NcReferencePickerModal.vue.d.ts +1167 -0
  310. package/dist/components/NcRichText/NcReferencePicker/NcSearch.vue.d.ts +269 -0
  311. package/dist/components/NcRichText/NcReferencePicker/NcSearchResult.vue.d.ts +69 -0
  312. package/dist/components/NcRichText/NcReferencePicker/utils.d.ts +6 -7
  313. package/dist/components/NcRichText/NcReferenceWidget.vue.d.ts +187 -0
  314. package/dist/components/NcRichText/NcRichText.vue.d.ts +393 -0
  315. package/dist/components/NcRichText/helpers.d.ts +7 -8
  316. package/dist/components/NcRichText/index.d.ts +4 -4
  317. package/dist/components/NcRichText/index.mjs +4 -4
  318. package/dist/components/NcRichText/remarkPlaceholder.d.ts +2 -0
  319. package/dist/components/NcRichText/remarkUnescape.d.ts +2 -1
  320. package/dist/components/NcSavingIndicatorIcon/index.mjs +1 -1
  321. package/dist/components/NcSelect/NcSelect.vue.d.ts +99 -0
  322. package/dist/components/NcSelect/index.mjs +1 -1
  323. package/dist/components/NcSelectTags/NcSelectTags.vue.d.ts +183 -0
  324. package/dist/components/NcSelectTags/index.mjs +1 -1
  325. package/dist/components/NcSelectUsers/index.mjs +1 -1
  326. package/dist/components/NcSettingsInputText/index.mjs +1 -1
  327. package/dist/components/NcSettingsSection/index.mjs +1 -1
  328. package/dist/components/NcSettingsSelectGroup/NcSettingsSelectGroup.vue.d.ts +243 -0
  329. package/dist/components/NcSettingsSelectGroup/index.mjs +1 -1
  330. package/dist/components/NcTextArea/NcTextArea.vue.d.ts +1 -5
  331. package/dist/components/NcTextArea/index.mjs +1 -1
  332. package/dist/components/NcTextField/NcTextField.vue.d.ts +14 -14
  333. package/dist/components/NcTextField/index.mjs +1 -1
  334. package/dist/components/NcTimezonePicker/index.mjs +1 -1
  335. package/dist/components/NcUserBubble/index.mjs +1 -1
  336. package/dist/components/NcUserStatusIcon/index.mjs +1 -1
  337. package/dist/components/index.d.ts +2 -2
  338. package/dist/composables/useFormatDateTime/index.mjs +1 -1
  339. package/dist/composables/useFormatDateTime/index.mjs.map +1 -1
  340. package/dist/composables/useHotKey/index.mjs.map +1 -1
  341. package/dist/composables/useIsDarkTheme/constants.d.ts +1 -1
  342. package/dist/composables/useIsDarkTheme/index.mjs +1 -1
  343. package/dist/composables/useIsDarkTheme/index.mjs.map +1 -1
  344. package/dist/composables/useIsFullscreen/index.mjs.map +1 -1
  345. package/dist/composables/useIsMobile/index.mjs.map +1 -1
  346. package/dist/directives/Focus/index.mjs.map +1 -1
  347. package/dist/directives/Linkify/index.mjs +1 -2
  348. package/dist/directives/Linkify/index.mjs.map +1 -1
  349. package/dist/functions/a11y/index.mjs.map +1 -1
  350. package/dist/functions/contactsMenu/index.mjs.map +1 -1
  351. package/dist/functions/dialog/index.mjs.map +1 -1
  352. package/dist/functions/index.d.ts +2 -2
  353. package/dist/functions/isDarkTheme/index.mjs.map +1 -1
  354. package/dist/functions/preloadImage/index.mjs.map +1 -1
  355. package/dist/functions/reference/index.mjs +2 -2
  356. package/dist/functions/registerReference/index.mjs +1 -1
  357. package/dist/functions/usernameToColor/index.d.ts +6 -3
  358. package/dist/functions/usernameToColor/index.mjs +19 -2
  359. package/dist/functions/usernameToColor/index.mjs.map +1 -1
  360. package/dist/index.mjs +65 -64
  361. package/dist/index.mjs.map +1 -1
  362. package/dist/l10n.d.ts +7 -2
  363. package/dist/utils/focusTrap.d.ts +6 -0
  364. package/dist/utils/legacy.d.ts +5 -0
  365. package/package.json +57 -52
  366. package/dist/assets/NcActionInput-BA67jS1l.css +0 -226
  367. package/dist/assets/NcAppNavigationToggle-M0oDbwAS.css +0 -27
  368. package/dist/assets/NcAvatar-g7MoHyFd.css +0 -132
  369. package/dist/assets/NcDateTimePickerNative-BizATZfE.css +0 -60
  370. package/dist/assets/NcSelectUsers-2-PyuY9Z.css +0 -4
  371. package/dist/chunks/ArrowLeft-BiZLJltw.mjs +0 -49
  372. package/dist/chunks/ArrowLeft-BiZLJltw.mjs.map +0 -1
  373. package/dist/chunks/Check-5i4xKnkl.mjs +0 -49
  374. package/dist/chunks/Check-5i4xKnkl.mjs.map +0 -1
  375. package/dist/chunks/DotsHorizontal-BJ_GCGpi.mjs +0 -49
  376. package/dist/chunks/DotsHorizontal-BJ_GCGpi.mjs.map +0 -1
  377. package/dist/chunks/NcActionInput-B_f8z2fo.mjs.map +0 -1
  378. package/dist/chunks/NcActions-BM3DmGLW.mjs.map +0 -1
  379. package/dist/chunks/NcAppNavigation-BmACVQVW.mjs +0 -167
  380. package/dist/chunks/NcAppNavigation-BmACVQVW.mjs.map +0 -1
  381. package/dist/chunks/NcAppNavigationItem-ClySLuSM.mjs.map +0 -1
  382. package/dist/chunks/NcAppNavigationSearch-DpjlWi9j.mjs.map +0 -1
  383. package/dist/chunks/NcAppNavigationSettings-DGATbBqy.mjs.map +0 -1
  384. package/dist/chunks/NcAppNavigationToggle-D9pouVyS.mjs +0 -137
  385. package/dist/chunks/NcAppNavigationToggle-D9pouVyS.mjs.map +0 -1
  386. package/dist/chunks/NcAppSidebar-DWRmX_-Y.mjs.map +0 -1
  387. package/dist/chunks/NcAvatar-PCbT0J_-.mjs.map +0 -1
  388. package/dist/chunks/NcBreadcrumb-D9gRzaYP.mjs.map +0 -1
  389. package/dist/chunks/NcButton-yN4vYgXb.mjs.map +0 -1
  390. package/dist/chunks/NcColorPicker-BNpZzN-p.mjs.map +0 -1
  391. package/dist/chunks/NcDashboardWidget-DhZ5c4oF.mjs.map +0 -1
  392. package/dist/chunks/NcDateTimePicker-CKOTExmB.mjs.map +0 -1
  393. package/dist/chunks/NcDialog-DTbCOARa.mjs.map +0 -1
  394. package/dist/chunks/NcGuestContent-B_S2nyJ4.mjs.map +0 -1
  395. package/dist/chunks/NcHeaderMenu-Bf_rW093.mjs.map +0 -1
  396. package/dist/chunks/NcInputField-BZWRHkmQ.mjs.map +0 -1
  397. package/dist/chunks/NcListItem-7BHAmqB0.mjs.map +0 -1
  398. package/dist/chunks/NcModal-CX28vCtF.mjs.map +0 -1
  399. package/dist/chunks/NcPasswordField-w13_Lpyn.mjs.map +0 -1
  400. package/dist/chunks/NcProgressBar-Bx8bMkd4.mjs +0 -148
  401. package/dist/chunks/NcProgressBar-Bx8bMkd4.mjs.map +0 -1
  402. package/dist/chunks/NcRelatedResourcesPanel-CpOgjo9h.mjs.map +0 -1
  403. package/dist/chunks/NcRichText-DvbC3aUR.mjs.map +0 -1
  404. package/dist/chunks/NcTextArea-CWqnvMl2.mjs.map +0 -1
  405. package/dist/chunks/NcTextField.vue_vue_type_script_setup_true_lang-B65hrkLW.mjs.map +0 -1
  406. package/dist/chunks/NcUserStatusIcon-DqQYA-EE.mjs.map +0 -1
  407. package/dist/chunks/_l10n-tXci8WM1.mjs +0 -108
  408. package/dist/chunks/_l10n-tXci8WM1.mjs.map +0 -1
  409. package/dist/chunks/autolink-CKPk5rzg.mjs.map +0 -1
  410. package/dist/chunks/focusTrap-DmkaYJTC.mjs.map +0 -1
  411. package/dist/chunks/referencePickerModal-DREcDQKg.mjs.map +0 -1
  412. package/dist/chunks/usernameToColor-2yV_Zdvb.mjs +0 -22
  413. package/dist/chunks/usernameToColor-2yV_Zdvb.mjs.map +0 -1
  414. package/dist/components/NcAppNavigationToggle/index.d.ts +0 -5
  415. package/dist/components/NcAppNavigationToggle/index.mjs +0 -5
  416. package/dist/components/NcAppNavigationToggle/index.mjs.map +0 -1
  417. package/dist/components/NcRichText/placeholder.d.ts +0 -5
  418. package/dist/components/NcRichText/remarkDisableBlocks.d.ts +0 -11
  419. package/dist/functions/usernameToColor/usernameToColor.d.ts +0 -8
  420. package/dist/vendor.LICENSE.txt +0 -137
  421. /package/dist/components/{NcAppNavigationToggle → NcAppNavigation}/NcAppNavigationToggle.vue.d.ts +0 -0
@@ -1,8 +1,8 @@
1
- import '../assets/NcBreadcrumb-CV3DgRKn.css';
1
+ import '../assets/NcBreadcrumb-Dll7O4N9.css';
2
2
  import { c as createElementId } from "./createElementId-DhjFt1I9.mjs";
3
- import { N as NcActions } from "./NcActions-BM3DmGLW.mjs";
4
- import { N as NcButton } from "./NcButton-yN4vYgXb.mjs";
5
- import { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, resolveComponent, normalizeProps, withModifiers, createBlock, createVNode, createSlots, withCtx, renderSlot, normalizeClass, createTextVNode } from "vue";
3
+ import { N as NcActions } from "./NcActions-CDD8eIxC.mjs";
4
+ import { N as NcButton } from "./NcButton-BMnvzy1A.mjs";
5
+ import { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, resolveComponent, withModifiers, normalizeClass, createBlock, createVNode, createSlots, withCtx, renderSlot, createTextVNode } from "vue";
6
6
  import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
7
7
  const _sfc_main$1 = {
8
8
  name: "ChevronRightIcon",
@@ -21,7 +21,7 @@ const _sfc_main$1 = {
21
21
  }
22
22
  }
23
23
  };
24
- const _hoisted_1 = ["aria-hidden", "aria-label"];
24
+ const _hoisted_1$1 = ["aria-hidden", "aria-label"];
25
25
  const _hoisted_2 = ["fill", "width", "height"];
26
26
  const _hoisted_3 = { d: "M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z" };
27
27
  const _hoisted_4 = { key: 0 };
@@ -44,7 +44,7 @@ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
44
44
  $props.title ? (openBlock(), createElementBlock("title", _hoisted_4, toDisplayString($props.title), 1)) : createCommentVNode("", true)
45
45
  ])
46
46
  ], 8, _hoisted_2))
47
- ], 16, _hoisted_1);
47
+ ], 16, _hoisted_1$1);
48
48
  }
49
49
  const ChevronRight = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render$1]]);
50
50
  const _sfc_main = {
@@ -136,12 +136,10 @@ const _sfc_main = {
136
136
  "update:open"
137
137
  ],
138
138
  setup() {
139
+ const crumbId = createElementId();
139
140
  return {
140
- /**
141
- * The unique id of the breadcrumb. Necessary to append the
142
- * Actions menu to the correct crumb.
143
- */
144
- crumbId: createElementId()
141
+ actionsContainer: `.vue-crumb[data-crumb-id="${crumbId}"]`,
142
+ crumbId
145
143
  };
146
144
  },
147
145
  data() {
@@ -215,14 +213,15 @@ const _sfc_main = {
215
213
  }
216
214
  }
217
215
  };
216
+ const _hoisted_1 = ["data-crumb-id"];
218
217
  function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
219
218
  const _component_NcButton = resolveComponent("NcButton");
220
219
  const _component_NcActions = resolveComponent("NcActions");
221
220
  const _component_ChevronRight = resolveComponent("ChevronRight");
222
- return openBlock(), createElementBlock("li", normalizeProps({
221
+ return openBlock(), createElementBlock("li", {
223
222
  ref: "crumb",
224
- class: ["vue-crumb", [{ "vue-crumb--hovered": $data.hovering }, _ctx.$props.class]],
225
- [$setup.crumbId || ""]: "",
223
+ class: normalizeClass(["vue-crumb", [{ "vue-crumb--hovered": $data.hovering }, _ctx.$props.class]]),
224
+ "data-crumb-id": $setup.crumbId,
226
225
  draggable: "false",
227
226
  onDragstart: withModifiers(() => {
228
227
  }, ["prevent"]),
@@ -231,7 +230,7 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
231
230
  }, ["prevent"]),
232
231
  onDragenter: _cache[1] || (_cache[1] = (...args) => $options.dragEnter && $options.dragEnter(...args)),
233
232
  onDragleave: _cache[2] || (_cache[2] = (...args) => $options.dragLeave && $options.dragLeave(...args))
234
- }), [
233
+ }, [
235
234
  ($props.name || $props.icon || _ctx.$slots.icon) && !_ctx.$slots.default ? (openBlock(), createBlock(_component_NcButton, mergeProps({
236
235
  key: 0,
237
236
  "aria-label": $props.icon ? $props.name : void 0,
@@ -259,12 +258,12 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
259
258
  _ctx.$slots.default ? (openBlock(), createBlock(_component_NcActions, {
260
259
  key: 1,
261
260
  ref: "actions",
261
+ container: $setup.actionsContainer,
262
262
  "force-menu": $props.forceMenu,
263
+ "force-name": "",
263
264
  open: $props.open,
264
265
  "menu-name": $props.name,
265
266
  title: $props.title,
266
- "force-name": true,
267
- container: `.vue-crumb[${$setup.crumbId}]`,
268
267
  variant: "tertiary",
269
268
  "onUpdate:open": $options.onOpenChange
270
269
  }, {
@@ -275,15 +274,15 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
275
274
  renderSlot(_ctx.$slots, "default", {}, void 0, true)
276
275
  ]),
277
276
  _: 3
278
- }, 8, ["force-menu", "open", "menu-name", "title", "container", "onUpdate:open"])) : createCommentVNode("", true),
277
+ }, 8, ["container", "force-menu", "open", "menu-name", "title", "onUpdate:open"])) : createCommentVNode("", true),
279
278
  createVNode(_component_ChevronRight, {
280
279
  class: "vue-crumb__separator",
281
280
  size: 20
282
281
  })
283
- ], 16);
282
+ ], 42, _hoisted_1);
284
283
  }
285
- const NcBreadcrumb = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-22e31acf"]]);
284
+ const NcBreadcrumb = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-01b9af70"]]);
286
285
  export {
287
286
  NcBreadcrumb as N
288
287
  };
289
- //# sourceMappingURL=NcBreadcrumb-D9gRzaYP.mjs.map
288
+ //# sourceMappingURL=NcBreadcrumb-B97vQkN2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcBreadcrumb-B97vQkN2.mjs","sources":["../../node_modules/vue-material-design-icons/ChevronRight.vue","../../src/components/NcBreadcrumb/NcBreadcrumb.vue"],"sourcesContent":["<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon chevron-right-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"ChevronRightIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n\n### General description\n\nThis component is meant to be used inside a Breadcrumbs component.\nRenders a button element when given no redirection props, otherwise, renders <a/> or <router-link/> elements\n\n</docs>\n\n<template>\n\t<li ref=\"crumb\"\n\t\tclass=\"vue-crumb\"\n\t\t:class=\"[{'vue-crumb--hovered': hovering}, $props.class]\"\n\t\t:data-crumb-id=\"crumbId\"\n\t\tdraggable=\"false\"\n\t\t@dragstart.prevent=\"() => {/** Prevent the breadcrumb from being draggable. */}\"\n\t\t@drop.prevent=\"dropped\"\n\t\t@dragover.prevent=\"() => {}\"\n\t\t@dragenter=\"dragEnter\"\n\t\t@dragleave=\"dragLeave\">\n\t\t<NcButton v-if=\"(name || icon || $slots.icon) && !$slots.default\"\n\t\t\t:aria-label=\"icon ? name : undefined\"\n\t\t\tvariant=\"tertiary\"\n\t\t\tv-bind=\"linkAttributes\">\n\t\t\t<template v-if=\"$slots.icon || icon\" #icon>\n\t\t\t\t<!-- @slot Slot for passing a material design icon. Precedes the icon and name prop. -->\n\t\t\t\t<slot name=\"icon\">\n\t\t\t\t\t<span :class=\"icon\" class=\"icon\" />\n\t\t\t\t</slot>\n\t\t\t</template>\n\t\t\t<template v-if=\"!($slots.icon || icon) || forceIconText\" #default>\n\t\t\t\t{{ name }}\n\t\t\t</template>\n\t\t</NcButton>\n\t\t<NcActions v-if=\"$slots.default\"\n\t\t\tref=\"actions\"\n\t\t\t:container=\"actionsContainer\"\n\t\t\t:force-menu=\"forceMenu\"\n\t\t\tforce-name\n\t\t\t:open=\"open\"\n\t\t\t:menu-name=\"name\"\n\t\t\t:title\n\t\t\tvariant=\"tertiary\"\n\t\t\t@update:open=\"onOpenChange\">\n\t\t\t<template #icon>\n\t\t\t\t<!-- @slot Slot for the custom menu icon -->\n\t\t\t\t<slot name=\"menu-icon\" />\n\t\t\t</template>\n\t\t\t<!-- @slot All action elements passed into the default slot will be used -->\n\t\t\t<slot />\n\t\t</NcActions>\n\t\t<ChevronRight class=\"vue-crumb__separator\" :size=\"20\" />\n\t</li>\n</template>\n\n<script>\nimport { createElementId } from '../../utils/createElementId.ts'\nimport NcActions from '../NcActions/index.js'\nimport NcButton from '../NcButton/NcButton.vue'\n\nimport ChevronRight from 'vue-material-design-icons/ChevronRight.vue'\n\nexport default {\n\tname: 'NcBreadcrumb',\n\tcomponents: {\n\t\tNcActions,\n\t\tChevronRight,\n\t\tNcButton,\n\t},\n\tinheritAttrs: false,\n\tprops: {\n\t\t/**\n\t\t * The main text content of the entry.\n\t\t */\n\t\tname: {\n\t\t\ttype: String,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * The title attribute of the element.\n\t\t */\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Route Location the link should navigate to when clicked on.\n\t\t *\n\t\t * @see https://v3.router.vuejs.org/api/#to\n\t\t */\n\t\tto: {\n\t\t\ttype: [String, Object],\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Set this prop if your app doesn't use vue-router, breadcrumbs will show as normal links.\n\t\t */\n\t\thref: {\n\t\t\ttype: String,\n\t\t\tdefault: undefined,\n\t\t},\n\n\t\t/**\n\t\t * Set a css icon-class to show an icon along name text (if forceIconText is provided, otherwise just icon).\n\t\t */\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Enables text to accompany the icon, if the icon was provided. The text that will be displayed is the name prop.\n\t\t */\n\t\tforceIconText: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Disable dropping on this breadcrumb.\n\t\t */\n\t\tdisableDrop: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Force the actions to display in a three dot menu\n\t\t */\n\t\tforceMenu: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Open state of the Actions menu\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * CSS class to apply to the root element.\n\t\t */\n\t\tclass: {\n\t\t\ttype: [String, Array, Object],\n\t\t\tdefault: '',\n\t\t},\n\t},\n\temits: [\n\t\t'dragenter',\n\t\t'dragleave',\n\t\t'dropped',\n\t\t'update:open',\n\t],\n\n\tsetup() {\n\t\tconst crumbId = createElementId()\n\t\treturn {\n\t\t\tactionsContainer: `.vue-crumb[data-crumb-id=\"${crumbId}\"]`,\n\t\t\tcrumbId,\n\t\t}\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * Variable to track if we hover over the breadcrumb\n\t\t\t */\n\t\t\thovering: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * The attributes to pass to `router-link` or `a`\n\t\t */\n\t\tlinkAttributes() {\n\t\t\t// If it's a router-link, we pass `to` and `exact`, if its an <a/> element, we pass `href`, otherwise we have a button\n\t\t\treturn this.to\n\t\t\t\t? { to: this.to, ...this.$attrs }\n\t\t\t\t: (this.href\n\t\t\t\t\t? { href: this.href, ...this.$attrs }\n\t\t\t\t\t: this.$attrs\n\t\t\t\t)\n\t\t},\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Function to handle changing the open state of the Actions menu\n\t\t * $emit the open state.\n\t\t *\n\t\t * @param {boolean} open The open state of the Actions menu\n\t\t */\n\t\tonOpenChange(open) {\n\t\t\t/**\n\t\t\t * Event emitted when the open state of the Actions menu changes\n\t\t\t *\n\t\t\t * @type {null}\n\t\t\t */\n\t\t\tthis.$emit('update:open', open)\n\t\t},\n\t\t/**\n\t\t * Function to handle a drop on the breadcrumb.\n\t\t * $emit the event and the path, remove the hovering state.\n\t\t *\n\t\t * @param {object} e The drop event\n\t\t * @return {boolean}\n\t\t */\n\t\tdropped(e) {\n\t\t\t/**\n\t\t\t * Don't do anything if dropping is disabled.\n\t\t\t */\n\t\t\tif (this.disableDrop) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\t/**\n\t\t\t * Event emitted when something is dropped on the breadcrumb.\n\t\t\t *\n\t\t\t * @param {Event} event The DOM drop event\n\t\t\t * @param {(string|object)} to The `to` prop or, if not set, the `href` prop\n\t\t\t */\n\t\t\tthis.$emit('dropped', e, this.to || this.href)\n\t\t\tthis.$parent.$emit('dropped', e, this.to || this.href)\n\t\t\tthis.hovering = false\n\t\t\treturn false\n\t\t},\n\t\t/**\n\t\t * Add the hovering state on drag enter\n\t\t *\n\t\t * @param {DragEvent} e The drag-enter event\n\t\t */\n\t\tdragEnter(e) {\n\t\t\tthis.$emit('dragenter', e)\n\t\t\t/**\n\t\t\t * Don't do anything if dropping is disabled.\n\t\t\t */\n\t\t\tif (this.disableDrop) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.hovering = true\n\t\t},\n\t\t/**\n\t\t * Remove the hovering state on drag leave\n\t\t *\n\t\t * @param {DragEvent} e The drag leave event\n\t\t */\n\t\tdragLeave(e) {\n\t\t\tthis.$emit('dragleave', e)\n\t\t\t/**\n\t\t\t * Don't do anything if dropping is disabled.\n\t\t\t */\n\t\t\tif (this.disableDrop) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Don't do anything if we\n\t\t\t// - leave towards a child element.\n\t\t\t// - or are still within the crumb\n\t\t\tif (e.target.contains(e.relatedTarget)\n\t\t\t\t|| this.$refs.crumb.contains(e.relatedTarget)) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.hovering = false\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n\n.vue-crumb {\n\tbackground-image: none;\n\tdisplay: inline-flex;\n\theight: var(--default-clickable-area);\n\tpadding: 0;\n\n\t&:last-child {\n\t\tmin-width: 0;\n\n\t\t// Don't show breadcrumb separator for last crumb\n\t\t.vue-crumb__separator {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t// Necessary to hide hidden crumbs\n\t&--hidden {\n\t\tdisplay: none;\n\t}\n\t&__separator {\n\t\tpadding: 0;\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\t// Necessary for indicating hovering for drag and drop\n\t&#{&}--hovered :deep(.button-vue) {\n\t\tbackground-color: var(--color-background-dark);\n\t\tcolor: var(--color-main-text);\n\t}\n\t// Adjust button style\n\t&:not(:last-child) :deep() .button-vue {\n\t\tcolor: var(--color-text-maxcontrast);\n\n\t\t&:hover,\n\t\t&:focus {\n\t\t\tbackground-color: var(--color-background-dark);\n\t\t\tcolor: var(--color-main-text);\n\t\t}\n\n\t\t&__text {\n\t\t\tfont-weight: normal;\n\t\t}\n\t}\n\t:deep(.button-vue__text) {\n\t\tmargin: 0;\n\t}\n\n\t// Adjust action item appearance for crumbs with actions\n\t// to match other crumbs\n\t&:not(.dropdown) :deep(.action-item) {\n\t\t// Adjustments necessary to correctly shrink on small screens\n\t\tmax-width: 100%;\n\n\t\t.button-vue {\n\t\t\tpadding: 0 4px 0 16px;\n\t\t\tmax-width: 100%;\n\n\t\t\t&__wrapper {\n\t\t\t\tflex-direction: row-reverse;\n\t\t\t}\n\t\t}\n\n\t\t// Adjust the background of the last crumb when the action is open\n\t\t&.action-item--open .action-item__menutoggle {\n\t\t\tbackground-color: var(--color-background-dark);\n\t\t\tcolor: var(--color-main-text);\n\t\t}\n\t}\n}\n</style>\n"],"names":["_sfc_main","_createElementBlock","_mergeProps","_createElementVNode","_openBlock","_createBlock","_createSlots","_renderSlot","_normalizeClass","_createVNode"],"mappings":"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","x_google_ignoreList":[0]}
@@ -2,12 +2,12 @@ import '../assets/NcBreadcrumbs-D2wff82k.css';
2
2
  import { unsubscribe, subscribe } from "@nextcloud/event-bus";
3
3
  import { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, Fragment, cloneVNode, h } from "vue";
4
4
  import debounce from "debounce";
5
- import { N as NcActions, i as isSlotPopulated } from "./NcActions-BM3DmGLW.mjs";
5
+ import { N as NcActions, i as isSlotPopulated } from "./NcActions-CDD8eIxC.mjs";
6
6
  import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
7
- import { N as NcActionButton } from "./NcActionButton-Bd35_0n4.mjs";
7
+ import { N as NcActionButton } from "./NcActionButton-k1JvZ5eE.mjs";
8
8
  import { N as NcActionRouter } from "./NcActionRouter-ERoQjJKv.mjs";
9
9
  import { N as NcActionLink } from "./NcActionLink-BEo7zmXX.mjs";
10
- import { N as NcBreadcrumb } from "./NcBreadcrumb-D9gRzaYP.mjs";
10
+ import { N as NcBreadcrumb } from "./NcBreadcrumb-B97vQkN2.mjs";
11
11
  const _sfc_main$1 = {
12
12
  name: "FolderIcon",
13
13
  emits: ["click"],
@@ -455,4 +455,4 @@ const NcBreadcrumbs = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "dat
455
455
  export {
456
456
  NcBreadcrumbs as N
457
457
  };
458
- //# sourceMappingURL=NcBreadcrumbs-DjqDBMn-.mjs.map
458
+ //# sourceMappingURL=NcBreadcrumbs-CvUgliJa.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"NcBreadcrumbs-DjqDBMn-.mjs","sources":["../../node_modules/vue-material-design-icons/Folder.vue","../../src/components/NcBreadcrumbs/NcBreadcrumbs.vue"],"sourcesContent":["<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon folder-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FolderIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n\n### General description\n\nThis component renders a breadcrumb bar. It adjusts to the available width\nby hiding breadcrumbs in a dropdown menu and emits an event when something\nis dropped on a creadcrumb.\n\n### Usage\n\n```vue\n<template>\n\t<div>\n\t\t<div class=\"container\">\n\t\t\t<NcBreadcrumbs @dropped=\"dropped\">\n\t\t\t\t<NcBreadcrumb name=\"Home\"\n\t\t\t\t\ttitle=\"Title of the Home folder\"\n\t\t\t\t\thref=\"/\"\n\t\t\t\t\t@dropped=\"droppedOnCrumb\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Folder :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcBreadcrumb>\n\t\t\t\t<NcBreadcrumb name=\"Folder 1\"\n\t\t\t\t\ttitle=\"Folder 1\"\n\t\t\t\t\thref=\"/Folder 1\" />\n\t\t\t\t<NcBreadcrumb name=\"Folder 2\"\n\t\t\t\t\thref=\"/Folder 1/Folder 2\"\n\t\t\t\t\t:disable-drop=\"true\" />\n\t\t\t\t<NcBreadcrumb name=\"Folder 3\"\n\t\t\t\t\ttitle=\"Folder 3\"\n\t\t\t\t\thref=\"/Folder 1/Folder 2/Folder 3\" />\n\t\t\t\t<NcBreadcrumb name=\"Folder 4\"\n\t\t\t\t\ttitle=\"Folder 4\"\n\t\t\t\t\thref=\"/Folder 1/Folder 2/Folder 3/Folder 4\" />\n\t\t\t\t<NcBreadcrumb name=\"Folder 5 with an overflowing long name\"\n\t\t\t\t\ttitle=\"Folder 5\"\n\t\t\t\t\thref=\"/Folder 1/Folder 2/Folder 3/Folder 4/Folder 5\"\n\t\t\t\t\t:disable-drop=\"true\">\n\t\t\t\t\t<template #menu-icon>\n\t\t\t\t\t\t<MenuDown :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t<NcActionButton @click=\"alert('Share')\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<ShareVariant :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tShare\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionButton @click=\"alert('Download')\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Download :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tDownload\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</NcBreadcrumb>\n\t\t\t\t<template #actions>\n\t\t\t\t\t<NcButton>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Plus :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tNew\n\t\t\t\t\t</NcButton>\n\t\t\t\t</template>\n\t\t\t</NcBreadcrumbs>\n\t\t</div>\n\t\t<br />\n\t\t<div class=\"dragme\" draggable=\"true\" @dragstart=\"dragStart\">\n\t\t\t<span>Drag me onto the breadcrumbs.</span>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport Download from 'vue-material-design-icons/Download'\nimport Folder from 'vue-material-design-icons/Folder'\nimport MenuDown from 'vue-material-design-icons/MenuDown'\nimport Plus from 'vue-material-design-icons/Plus'\nimport ShareVariant from 'vue-material-design-icons/ShareVariant'\n\nexport default {\n\tcomponents: {\n\t\tDownload,\n\t\tFolder,\n\t\tMenuDown,\n\t\tPlus,\n\t\tShareVariant,\n\t},\n\tmethods: {\n\t\tdropped(e, path) {\n\t\t\talert('Global drop on ' + path)\n\t\t},\n\t\tdroppedOnCrumb(e, path) {\n\t\t\talert('Drop on crumb ' + path)\n\t\t},\n\t\tdragStart(e) {\n\t\t\te.dataTransfer.setData('text/plain', 'dragging')\n\t\t},\n\t}\n}\n</script>\n<style>\n.container {\n\tdisplay: inline-flex;\n\twidth: 100%;\n}\n\n.dragme {\n\tdisplay: block;\n\twidth: 100px;\n\theight: var(--default-clickable-area);\n\tbackground-color: var(--color-background-dark);\n}\n</style>\n```\n</docs>\n\n<script>\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport { cloneVNode, h, Fragment } from 'vue'\nimport debounce from 'debounce'\n\nimport { isSlotPopulated } from '../../utils/isSlotPopulated.ts'\n\nimport IconFolder from 'vue-material-design-icons/Folder.vue'\nimport NcActions from '../NcActions/index.js'\nimport NcActionButton from '../NcActionButton/index.js'\nimport NcActionRouter from '../NcActionRouter/index.js'\nimport NcActionLink from '../NcActionLink/index.js'\nimport NcBreadcrumb from '../NcBreadcrumb/index.js'\n\nconst crumbClass = 'vue-crumb'\n\nexport default {\n\tname: 'NcBreadcrumbs',\n\tcomponents: {\n\t\tNcActions,\n\t\tNcActionButton,\n\t\tNcActionRouter,\n\t\tNcActionLink,\n\t\tNcBreadcrumb,\n\t\tIconFolder,\n\t},\n\tprops: {\n\t\t/**\n\t\t * Set a css icon-class for the icon of the root breadcrumb to be used.\n\t\t */\n\t\trootIcon: {\n\t\t\ttype: String,\n\t\t\tdefault: 'icon-home',\n\t\t},\n\n\t\t/**\n\t\t * Set the aria-label of the nav element.\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\temits: ['dropped'],\n\tdata() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * Array to track the hidden breadcrumbs by their index.\n\t\t\t * Comparing two crumbs somehow does not work, so we use the indices.\n\t\t\t */\n\t\t\thiddenIndices: [],\n\n\t\t\t/**\n\t\t\t * This is the props of the middle Action menu\n\t\t\t * that show the ellipsised breadcrumbs\n\t\t\t */\n\t\t\tmenuBreadcrumbProps: {\n\t\t\t\t// Don't show a name for this breadcrumb, only the Actions menu\n\t\t\t\tname: '',\n\t\t\t\tforceMenu: true,\n\t\t\t\t// Don't allow dropping directly on the actions breadcrumb\n\t\t\t\tdisableDrop: true,\n\t\t\t\t// Is the menu open or not\n\t\t\t\topen: false,\n\t\t\t},\n\t\t\tbreadcrumbsRefs: [],\n\t\t}\n\t},\n\tcreated() {\n\t\t/**\n\t\t * Add a listener so the component reacts on resize\n\t\t */\n\t\twindow.addEventListener('resize', debounce(() => {\n\t\t\tthis.handleWindowResize()\n\t\t}, 100))\n\t\tsubscribe('navigation-toggled', this.delayedResize)\n\t},\n\tmounted() {\n\t\tthis.handleWindowResize()\n\t},\n\tupdated() {\n\t\t/**\n\t\t * Check the size on update\n\t\t */\n\t\tthis.delayedResize()\n\t\t/**\n\t\t * Check that crumbs to hide are hidden\n\t\t */\n\t\tthis.$nextTick(() => {\n\t\t\tthis.hideCrumbs()\n\t\t})\n\t},\n\tbeforeUnmount() {\n\t\twindow.removeEventListener('resize', this.handleWindowResize)\n\t\tunsubscribe('navigation-toggled', this.delayedResize)\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Close the actions menu\n\t\t *\n\t\t * @param {object} e The event\n\t\t */\n\t\tcloseActions(e) {\n\t\t\t// Don't do anything if we leave towards a child element.\n\t\t\tif (this.$refs.actionsBreadcrumb.$el.contains(e.relatedTarget)) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.menuBreadcrumbProps.open = false\n\t\t},\n\t\t/**\n\t\t * Call the resize function after a delay\n\t\t */\n\t\t async delayedResize() {\n\t\t\tawait this.$nextTick()\n\t\t\tthis.handleWindowResize()\n\t\t},\n\t\t/**\n\t\t * Check the width of the breadcrumb and hide breadcrumbs\n\t\t * if we overflow otherwise.\n\t\t */\n\t\thandleWindowResize() {\n\t\t\t// If there is no container yet, we cannot determine its size\n\t\t\tif (!this.$refs.container) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst nrCrumbs = this.breadcrumbsRefs.length\n\t\t\tconst hiddenIndices = []\n\t\t\tconst availableWidth = this.$refs.container.offsetWidth\n\t\t\tlet totalWidth = this.getTotalWidth()\n\t\t\t// If we have breadcrumbs actions, we have to take their width into account too.\n\t\t\tif (this.$refs.breadcrumb__actions) {\n\t\t\t\ttotalWidth += this.$refs.breadcrumb__actions.offsetWidth\n\t\t\t}\n\t\t\tlet overflow = totalWidth - availableWidth\n\t\t\t// If we overflow, we have to take the action-item width into account as well.\n\t\t\toverflow += (overflow > 0) ? 64 : 0\n\t\t\tlet i = 0\n\t\t\t// We start hiding the breadcrumb in the center\n\t\t\tconst startIndex = Math.floor(nrCrumbs / 2)\n\t\t\t// Don't hide the first and last breadcrumb\n\t\t\twhile (overflow > 0 && i < nrCrumbs - 2) {\n\t\t\t\t// We hide elements alternating to the left and right\n\t\t\t\tconst currentIndex = startIndex + ((i % 2) ? i + 1 : i) / 2 * Math.pow(-1, i + (nrCrumbs % 2))\n\t\t\t\t// Calculate the remaining overflow width after hiding this breadcrumb\n\t\t\t\toverflow -= this.getWidth(this.breadcrumbsRefs[currentIndex]?.$el, currentIndex === (this.breadcrumbsRefs.length - 1))\n\t\t\t\thiddenIndices.push(currentIndex)\n\t\t\t\ti++\n\t\t\t}\n\t\t\t// We only update the hidden crumbs if they have changed,\n\t\t\t// otherwise we will run into an infinite update loop.\n\t\t\tif (!this.arraysEqual(this.hiddenIndices, hiddenIndices.sort((a, b) => a - b))) {\n\t\t\t\tthis.hiddenIndices = hiddenIndices\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Checks if two arrays are equal.\n\t\t * Only works for primitive arrays, but that's enough here.\n\t\t *\n\t\t * @param {Array} a The first array\n\t\t * @param {Array} b The second array\n\t\t * @return {boolean} Wether the arrays are equal\n\t\t */\n\t\tarraysEqual(a, b) {\n\t\t\tif (a.length !== b.length) return false\n\t\t\tif (a === b) return true\n\t\t\tif (a === null || b === null) return false\n\n\t\t\tfor (let i = 0; i < a.length; ++i) {\n\t\t\t\tif (a[i] !== b[i]) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\t\t/**\n\t\t * Calculates the total width of all breadcrumbs\n\t\t *\n\t\t * @return {number} The total width\n\t\t */\n\t\tgetTotalWidth() {\n\t\t\treturn this.breadcrumbsRefs.reduce((width, crumb, index) => width + this.getWidth(crumb.$el, index === (this.breadcrumbsRefs.length - 1)), 0)\n\t\t},\n\t\t/**\n\t\t * Calculates the width of the provided element\n\t\t *\n\t\t * @param {object} el The element\n\t\t * @param {boolean} isLast Is this the last crumb\n\t\t * @return {number} The width\n\t\t */\n\t\tgetWidth(el, isLast) {\n\t\t\tif (!el?.classList) return 0\n\t\t\tconst hide = el.classList.contains(`${crumbClass}--hidden`)\n\t\t\tel.style.minWidth = 'auto'\n\t\t\t// For the last crumb, we calculate with a max-width of 210px,\n\t\t\t// but don't set it in CSS to allow it to grow.\n\t\t\tif (isLast) {\n\t\t\t\tel.style.maxWidth = '210px'\n\t\t\t}\n\t\t\tel.classList.remove(`${crumbClass}--hidden`)\n\t\t\tconst w = el.offsetWidth\n\t\t\tif (hide) {\n\t\t\t\tel.classList.add(`${crumbClass}--hidden`)\n\t\t\t}\n\t\t\tel.style.minWidth = ''\n\t\t\tel.style.maxWidth = ''\n\t\t\treturn w\n\t\t},\n\t\t/**\n\t\t * Prevents the default of a provided event\n\t\t *\n\t\t * @param {object} e The event\n\t\t * @return {boolean}\n\t\t */\n\t\tpreventDefault(e) {\n\t\t\tif (e.preventDefault) {\n\t\t\t\te.preventDefault()\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\t/**\n\t\t * Handles the drag start.\n\t\t * Prevents a breadcrumb from being draggable.\n\t\t *\n\t\t * @param {object} e The event\n\t\t * @return {boolean}\n\t\t */\n\t\tdragStart(e) {\n\t\t\treturn this.preventDefault(e)\n\t\t},\n\t\t/**\n\t\t * Handles when something is dropped on the breadcrumb.\n\t\t *\n\t\t * @param {object} e The drop event\n\t\t * @param {string} path The path of the breadcrumb\n\t\t * @param {boolean} disabled Whether dropping is disabled for this breadcrumb\n\t\t * @return {boolean}\n\t\t */\n\t\tdropped(e, path, disabled) {\n\t\t\t/**\n\t\t\t * Don't emit if dropping is disabled.\n\t\t\t */\n\t\t\tif (!disabled) {\n\t\t\t\t/**\n\t\t\t\t * Event emitted when something is dropped on the breadcrumb.\n\t\t\t\t *\n\t\t\t\t * @param {Event} e the drop DOM event\n\t\t\t\t * @param {string} path The path of the breadcrumb\n\t\t\t\t */\n\t\t\t\tthis.$emit('dropped', e, path)\n\t\t\t}\n\t\t\t// Close the actions menu after the drop\n\t\t\tthis.menuBreadcrumbProps.open = false\n\n\t\t\t// Remove all hovering classes\n\t\t\tconst crumbs = document.querySelectorAll(`.${crumbClass}`)\n\t\t\tcrumbs.forEach((f) => { f.classList.remove(`${crumbClass}--hovered`) })\n\t\t\treturn this.preventDefault(e)\n\t\t},\n\t\t/**\n\t\t * Handles the drag over event\n\t\t *\n\t\t * @param {object} e The drag over event\n\t\t * @return {boolean}\n\t\t */\n\t\tdragOver(e) {\n\t\t\treturn this.preventDefault(e)\n\t\t},\n\t\t/**\n\t\t * Handles the drag enter event\n\t\t *\n\t\t * @param {object} e The drag over event\n\t\t * @param {boolean} disabled Whether dropping is disabled for this breadcrumb\n\t\t */\n\t\tdragEnter(e, disabled) {\n\t\t\t/**\n\t\t\t * Don't do anything if dropping is disabled.\n\t\t\t */\n\t\t\tif (disabled) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Get the correct element, in case we hover a child.\n\t\t\tif (e.target.closest) {\n\t\t\t\tconst target = e.target.closest(`.${crumbClass}`)\n\t\t\t\tif (target.classList && target.classList.contains(crumbClass)) {\n\t\t\t\t\tconst crumbs = document.querySelectorAll(`.${crumbClass}`)\n\t\t\t\t\tcrumbs.forEach((f) => { f.classList.remove(`${crumbClass}--hovered`) })\n\t\t\t\t\ttarget.classList.add(`${crumbClass}--hovered`)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Handles the drag leave event\n\t\t *\n\t\t * @param {object} e The drag leave event\n\t\t * @param {boolean} disabled Whether dropping is disabled for this breadcrumb\n\t\t */\n\t\tdragLeave(e, disabled) {\n\t\t\t/**\n\t\t\t * Don't do anything if dropping is disabled.\n\t\t\t */\n\t\t\tif (disabled) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Don't do anything if we leave towards a child element.\n\t\t\tif (e.target.contains(e.relatedTarget)) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Get the correct element, in case we leave directly from a child.\n\t\t\tif (e.target.closest) {\n\t\t\t\tconst target = e.target.closest(`.${crumbClass}`)\n\t\t\t\tif (target.contains(e.relatedTarget)) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif (target.classList && target.classList.contains(crumbClass)) {\n\t\t\t\t\ttarget.classList.remove(`${crumbClass}--hovered`)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Check for each crumb if we have to hide it and\n\t\t * add it to the array of all crumbs.\n\t\t */\n\t\thideCrumbs() {\n\t\t\tthis.breadcrumbsRefs.forEach((crumb, i) => {\n\t\t\t\tif (crumb?.$el?.classList) {\n\t\t\t\t\tif (this.hiddenIndices.includes(i)) {\n\t\t\t\t\t\tcrumb.$el.classList.add(`${crumbClass}--hidden`)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcrumb.$el.classList.remove(`${crumbClass}--hidden`)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\n\t\tisBreadcrumb(vnode) {\n\t\t\treturn vnode?.type?.name === 'NcBreadcrumb'\n\t\t},\n\t},\n\t/**\n\t * The render function to display the component\n\t *\n\t * @return {object|undefined} The created VNode\n\t */\n\trender() {\n\t\t// Get the breadcrumbs\n\t\tlet breadcrumbs = []\n\t\t// We have to iterate over all slot elements\n\t\tthis.$slots.default?.().forEach(vnode => {\n\t\t\tif (this.isBreadcrumb(vnode)) {\n\t\t\t\tbreadcrumbs.push(vnode)\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// If we encounter a Fragment, we have to check its children too\n\t\t\tif (vnode?.type === Fragment) {\n\t\t\t\tvnode?.children?.forEach?.(child => {\n\t\t\t\t\tif (this.isBreadcrumb(child)) {\n\t\t\t\t\t\tbreadcrumbs.push(child)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\n\t\t// Check that we have at least one breadcrumb\n\t\tif (breadcrumbs.length === 0) {\n\t\t\treturn\n\t\t}\n\n\t\t// Add the root icon to the first breadcrumb\n\t\tbreadcrumbs[0] = cloneVNode(breadcrumbs[0], {\n\t\t\ticon: this.rootIcon,\n\t\t\tref: 'breadcrumbs',\n\t\t})\n\n\t\t/**\n\t\t * Use a proxy object to store breadcrumbs refs\n\t\t * and don't write to this.breadcrumbsRefs directly\n\t\t * to not trigger a myriad of re-renders.\n\t\t */\n\t\tconst breadcrumbsRefs = []\n\t\t// Add the breadcrumbs to the array of the created VNodes, check if hiding them is necessary.\n\t\tbreadcrumbs = breadcrumbs.map((crumb, index) => cloneVNode(crumb, {\n\t\t\tref: (crumb) => {\n\t\t\t\tbreadcrumbsRefs[index] = crumb\n\t\t\t},\n\t\t}))\n\n\t\t// The array of all created VNodes\n\t\tconst crumbs = [...breadcrumbs]\n\t\tif (this.hiddenIndices.length) {\n\t\t\t/**\n\t\t\t * We show the first half of the breadcrumbs before the Actions dropdown menu\n\t\t\t * which shows the hidden breadcrumbs.\n\t\t\t */\n\t\t\t crumbs.splice(Math.round(breadcrumbs.length / 2), 0,\n\n\t\t\t\t// The Actions menu\n\t\t\t\t// Use a breadcrumb component for the hidden breadcrumbs\n\t\t\t\th(NcBreadcrumb, {\n\t\t\t\t\tclass: 'dropdown',\n\t\t\t\t\t...this.menuBreadcrumbProps,\n\t\t\t\t\t// Hide the dropdown menu from screen-readers,\n\t\t\t\t\t// since the crumbs in the menu are still in the list.\n\t\t\t\t\t'aria-hidden': true,\n\t\t\t\t\t// Add a ref to the Actions menu\n\t\t\t\t\tref: 'actionsBreadcrumb',\n\t\t\t\t\tkey: 'actions-breadcrumb-1',\n\t\t\t\t\t// Add handlers so the Actions menu opens on hover\n\t\t\t\t\tonDragenter: () => { this.menuBreadcrumbProps.open = true },\n\t\t\t\t\tonDragleave: this.closeActions,\n\t\t\t\t\t// Make sure we keep the same open state\n\t\t\t\t\t// as the Actions component\n\t\t\t\t\t'onUpdate:open': (open) => {\n\t\t\t\t\t\tthis.menuBreadcrumbProps.open = open\n\t\t\t\t\t},\n\t\t\t\t// Add all hidden breadcrumbs as ActionRouter or ActionLink\n\t\t\t\t}, {\n\t\t\t\t\tdefault: () => this.hiddenIndices.filter(index => index <= breadcrumbs.length - 1).map(index => {\n\t\t\t\t\t\tconst crumb = breadcrumbs[index]\n\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\t// Get the parameters from the breadcrumb component props\n\t\t\t\t\t\t\tto,\n\t\t\t\t\t\t\thref,\n\t\t\t\t\t\t\tdisableDrop,\n\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t// Props to forward\n\t\t\t\t\t\t\t...propsToForward\n\t\t\t\t\t\t} = crumb.props\n\t\t\t\t\t\t// Do not forward the ref, otherwise it will be null if the hidden crumb gets destroyed\n\t\t\t\t\t\tdelete propsToForward.ref\n\n\t\t\t\t\t\t// Decide whether to show the breadcrumbs as ActionButton, ActionRouter or ActionLink\n\t\t\t\t\t\tlet element = NcActionButton\n\t\t\t\t\t\tlet path = ''\n\t\t\t\t\t\tif (href) {\n\t\t\t\t\t\t\telement = NcActionLink\n\t\t\t\t\t\t\tpath = href\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (to) {\n\t\t\t\t\t\t\telement = NcActionRouter\n\t\t\t\t\t\t\tpath = to\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst folderIcon = h(IconFolder, {\n\t\t\t\t\t\t\tsize: 20,\n\t\t\t\t\t\t})\n\t\t\t\t\t\treturn h(element, {\n\t\t\t\t\t\t\t...propsToForward,\n\t\t\t\t\t\t\tclass: crumbClass,\n\t\t\t\t\t\t\thref: href || null,\n\t\t\t\t\t\t\tto: to || null,\n\t\t\t\t\t\t\t// Prevent the breadcrumbs from being draggable\n\t\t\t\t\t\t\tdraggable: false,\n\t\t\t\t\t\t\t// Add the drag and drop handlers\n\t\t\t\t\t\t\tonDragstart: this.dragStart,\n\t\t\t\t\t\t\tonDrop: ($event) => this.dropped($event, path, disableDrop),\n\t\t\t\t\t\t\tonDragover: this.dragOver,\n\t\t\t\t\t\t\tonDragenter: ($event) => this.dragEnter($event, disableDrop),\n\t\t\t\t\t\t\tonDragleave: ($event) => this.dragLeave($event, disableDrop),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdefault: () => name,\n\t\t\t\t\t\t\ticon: () => folderIcon,\n\t\t\t\t\t\t})\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t)\n\t\t}\n\n\t\tconst wrapper = [h('nav', { 'aria-label': this.ariaLabel }, [h('ul', { class: 'breadcrumb__crumbs' }, [crumbs])])]\n\t\t// Append the actions slot if it is populated\n\t\tif (isSlotPopulated(this.$slots.actions?.())) {\n\t\t\twrapper.push(h('div', { class: 'breadcrumb__actions', ref: 'breadcrumb__actions' }, this.$slots.actions?.()))\n\t\t}\n\n\t\tthis.breadcrumbsRefs = breadcrumbsRefs\n\n\t\treturn h('div', { class: ['breadcrumb', { 'breadcrumb--collapsed': (this.hiddenIndices.length === breadcrumbs.length - 2) }], ref: 'container' }, wrapper)\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.breadcrumb {\n\twidth: 100%;\n\tflex-grow: 1;\n\tdisplay: inline-flex;\n\talign-items: center;\n\n\t&--collapsed :deep(.vue-crumb:last-child) {\n\t\tmin-width: 100px;\n\t}\n\n\tnav {\n\t\tflex-shrink: 1;\n\t\tmin-width: 0;\n\t}\n\n\t& #{&}__crumbs {\n\t\tmax-width: 100%;\n\t}\n\n\t& #{&}__crumbs,\n\t& #{&}__actions {\n\t\tdisplay: inline-flex;\n\t}\n}\n</style>\n"],"names":["_sfc_main","_createElementBlock","_mergeProps","_createElementVNode","_createCommentVNode","crumb"],"mappings":"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","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"NcBreadcrumbs-CvUgliJa.mjs","sources":["../../node_modules/vue-material-design-icons/Folder.vue","../../src/components/NcBreadcrumbs/NcBreadcrumbs.vue"],"sourcesContent":["<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon folder-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z\">\n <title v-if=\"title\">{{ title }}</title>\n </path>\n </svg>\n </span>\n</template>\n\n<script>\nexport default {\n name: \"FolderIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n</script>","<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<docs>\n\n### General description\n\nThis component renders a breadcrumb bar. It adjusts to the available width\nby hiding breadcrumbs in a dropdown menu and emits an event when something\nis dropped on a creadcrumb.\n\n### Usage\n\n```vue\n<template>\n\t<div>\n\t\t<div class=\"container\">\n\t\t\t<NcBreadcrumbs @dropped=\"dropped\">\n\t\t\t\t<NcBreadcrumb name=\"Home\"\n\t\t\t\t\ttitle=\"Title of the Home folder\"\n\t\t\t\t\thref=\"/\"\n\t\t\t\t\t@dropped=\"droppedOnCrumb\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<Folder :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcBreadcrumb>\n\t\t\t\t<NcBreadcrumb name=\"Folder 1\"\n\t\t\t\t\ttitle=\"Folder 1\"\n\t\t\t\t\thref=\"/Folder 1\" />\n\t\t\t\t<NcBreadcrumb name=\"Folder 2\"\n\t\t\t\t\thref=\"/Folder 1/Folder 2\"\n\t\t\t\t\t:disable-drop=\"true\" />\n\t\t\t\t<NcBreadcrumb name=\"Folder 3\"\n\t\t\t\t\ttitle=\"Folder 3\"\n\t\t\t\t\thref=\"/Folder 1/Folder 2/Folder 3\" />\n\t\t\t\t<NcBreadcrumb name=\"Folder 4\"\n\t\t\t\t\ttitle=\"Folder 4\"\n\t\t\t\t\thref=\"/Folder 1/Folder 2/Folder 3/Folder 4\" />\n\t\t\t\t<NcBreadcrumb name=\"Folder 5 with an overflowing long name\"\n\t\t\t\t\ttitle=\"Folder 5\"\n\t\t\t\t\thref=\"/Folder 1/Folder 2/Folder 3/Folder 4/Folder 5\"\n\t\t\t\t\t:disable-drop=\"true\">\n\t\t\t\t\t<template #menu-icon>\n\t\t\t\t\t\t<MenuDown :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t<NcActionButton @click=\"alert('Share')\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<ShareVariant :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tShare\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t\t<NcActionButton @click=\"alert('Download')\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Download :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tDownload\n\t\t\t\t\t</NcActionButton>\n\t\t\t\t</NcBreadcrumb>\n\t\t\t\t<template #actions>\n\t\t\t\t\t<NcButton>\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<Plus :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\tNew\n\t\t\t\t\t</NcButton>\n\t\t\t\t</template>\n\t\t\t</NcBreadcrumbs>\n\t\t</div>\n\t\t<br />\n\t\t<div class=\"dragme\" draggable=\"true\" @dragstart=\"dragStart\">\n\t\t\t<span>Drag me onto the breadcrumbs.</span>\n\t\t</div>\n\t</div>\n</template>\n\n<script>\nimport Download from 'vue-material-design-icons/Download'\nimport Folder from 'vue-material-design-icons/Folder'\nimport MenuDown from 'vue-material-design-icons/MenuDown'\nimport Plus from 'vue-material-design-icons/Plus'\nimport ShareVariant from 'vue-material-design-icons/ShareVariant'\n\nexport default {\n\tcomponents: {\n\t\tDownload,\n\t\tFolder,\n\t\tMenuDown,\n\t\tPlus,\n\t\tShareVariant,\n\t},\n\tmethods: {\n\t\tdropped(e, path) {\n\t\t\talert('Global drop on ' + path)\n\t\t},\n\t\tdroppedOnCrumb(e, path) {\n\t\t\talert('Drop on crumb ' + path)\n\t\t},\n\t\tdragStart(e) {\n\t\t\te.dataTransfer.setData('text/plain', 'dragging')\n\t\t},\n\t}\n}\n</script>\n<style>\n.container {\n\tdisplay: inline-flex;\n\twidth: 100%;\n}\n\n.dragme {\n\tdisplay: block;\n\twidth: 100px;\n\theight: var(--default-clickable-area);\n\tbackground-color: var(--color-background-dark);\n}\n</style>\n```\n</docs>\n\n<script>\nimport { subscribe, unsubscribe } from '@nextcloud/event-bus'\nimport { cloneVNode, h, Fragment } from 'vue'\nimport debounce from 'debounce'\n\nimport { isSlotPopulated } from '../../utils/isSlotPopulated.ts'\n\nimport IconFolder from 'vue-material-design-icons/Folder.vue'\nimport NcActions from '../NcActions/index.js'\nimport NcActionButton from '../NcActionButton/index.js'\nimport NcActionRouter from '../NcActionRouter/index.js'\nimport NcActionLink from '../NcActionLink/index.js'\nimport NcBreadcrumb from '../NcBreadcrumb/index.js'\n\nconst crumbClass = 'vue-crumb'\n\nexport default {\n\tname: 'NcBreadcrumbs',\n\tcomponents: {\n\t\tNcActions,\n\t\tNcActionButton,\n\t\tNcActionRouter,\n\t\tNcActionLink,\n\t\tNcBreadcrumb,\n\t\tIconFolder,\n\t},\n\tprops: {\n\t\t/**\n\t\t * Set a css icon-class for the icon of the root breadcrumb to be used.\n\t\t */\n\t\trootIcon: {\n\t\t\ttype: String,\n\t\t\tdefault: 'icon-home',\n\t\t},\n\n\t\t/**\n\t\t * Set the aria-label of the nav element.\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\t},\n\temits: ['dropped'],\n\tdata() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * Array to track the hidden breadcrumbs by their index.\n\t\t\t * Comparing two crumbs somehow does not work, so we use the indices.\n\t\t\t */\n\t\t\thiddenIndices: [],\n\n\t\t\t/**\n\t\t\t * This is the props of the middle Action menu\n\t\t\t * that show the ellipsised breadcrumbs\n\t\t\t */\n\t\t\tmenuBreadcrumbProps: {\n\t\t\t\t// Don't show a name for this breadcrumb, only the Actions menu\n\t\t\t\tname: '',\n\t\t\t\tforceMenu: true,\n\t\t\t\t// Don't allow dropping directly on the actions breadcrumb\n\t\t\t\tdisableDrop: true,\n\t\t\t\t// Is the menu open or not\n\t\t\t\topen: false,\n\t\t\t},\n\t\t\tbreadcrumbsRefs: [],\n\t\t}\n\t},\n\tcreated() {\n\t\t/**\n\t\t * Add a listener so the component reacts on resize\n\t\t */\n\t\twindow.addEventListener('resize', debounce(() => {\n\t\t\tthis.handleWindowResize()\n\t\t}, 100))\n\t\tsubscribe('navigation-toggled', this.delayedResize)\n\t},\n\tmounted() {\n\t\tthis.handleWindowResize()\n\t},\n\tupdated() {\n\t\t/**\n\t\t * Check the size on update\n\t\t */\n\t\tthis.delayedResize()\n\t\t/**\n\t\t * Check that crumbs to hide are hidden\n\t\t */\n\t\tthis.$nextTick(() => {\n\t\t\tthis.hideCrumbs()\n\t\t})\n\t},\n\tbeforeUnmount() {\n\t\twindow.removeEventListener('resize', this.handleWindowResize)\n\t\tunsubscribe('navigation-toggled', this.delayedResize)\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Close the actions menu\n\t\t *\n\t\t * @param {object} e The event\n\t\t */\n\t\tcloseActions(e) {\n\t\t\t// Don't do anything if we leave towards a child element.\n\t\t\tif (this.$refs.actionsBreadcrumb.$el.contains(e.relatedTarget)) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.menuBreadcrumbProps.open = false\n\t\t},\n\t\t/**\n\t\t * Call the resize function after a delay\n\t\t */\n\t\t async delayedResize() {\n\t\t\tawait this.$nextTick()\n\t\t\tthis.handleWindowResize()\n\t\t},\n\t\t/**\n\t\t * Check the width of the breadcrumb and hide breadcrumbs\n\t\t * if we overflow otherwise.\n\t\t */\n\t\thandleWindowResize() {\n\t\t\t// If there is no container yet, we cannot determine its size\n\t\t\tif (!this.$refs.container) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst nrCrumbs = this.breadcrumbsRefs.length\n\t\t\tconst hiddenIndices = []\n\t\t\tconst availableWidth = this.$refs.container.offsetWidth\n\t\t\tlet totalWidth = this.getTotalWidth()\n\t\t\t// If we have breadcrumbs actions, we have to take their width into account too.\n\t\t\tif (this.$refs.breadcrumb__actions) {\n\t\t\t\ttotalWidth += this.$refs.breadcrumb__actions.offsetWidth\n\t\t\t}\n\t\t\tlet overflow = totalWidth - availableWidth\n\t\t\t// If we overflow, we have to take the action-item width into account as well.\n\t\t\toverflow += (overflow > 0) ? 64 : 0\n\t\t\tlet i = 0\n\t\t\t// We start hiding the breadcrumb in the center\n\t\t\tconst startIndex = Math.floor(nrCrumbs / 2)\n\t\t\t// Don't hide the first and last breadcrumb\n\t\t\twhile (overflow > 0 && i < nrCrumbs - 2) {\n\t\t\t\t// We hide elements alternating to the left and right\n\t\t\t\tconst currentIndex = startIndex + ((i % 2) ? i + 1 : i) / 2 * Math.pow(-1, i + (nrCrumbs % 2))\n\t\t\t\t// Calculate the remaining overflow width after hiding this breadcrumb\n\t\t\t\toverflow -= this.getWidth(this.breadcrumbsRefs[currentIndex]?.$el, currentIndex === (this.breadcrumbsRefs.length - 1))\n\t\t\t\thiddenIndices.push(currentIndex)\n\t\t\t\ti++\n\t\t\t}\n\t\t\t// We only update the hidden crumbs if they have changed,\n\t\t\t// otherwise we will run into an infinite update loop.\n\t\t\tif (!this.arraysEqual(this.hiddenIndices, hiddenIndices.sort((a, b) => a - b))) {\n\t\t\t\tthis.hiddenIndices = hiddenIndices\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Checks if two arrays are equal.\n\t\t * Only works for primitive arrays, but that's enough here.\n\t\t *\n\t\t * @param {Array} a The first array\n\t\t * @param {Array} b The second array\n\t\t * @return {boolean} Wether the arrays are equal\n\t\t */\n\t\tarraysEqual(a, b) {\n\t\t\tif (a.length !== b.length) return false\n\t\t\tif (a === b) return true\n\t\t\tif (a === null || b === null) return false\n\n\t\t\tfor (let i = 0; i < a.length; ++i) {\n\t\t\t\tif (a[i] !== b[i]) {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\t\t/**\n\t\t * Calculates the total width of all breadcrumbs\n\t\t *\n\t\t * @return {number} The total width\n\t\t */\n\t\tgetTotalWidth() {\n\t\t\treturn this.breadcrumbsRefs.reduce((width, crumb, index) => width + this.getWidth(crumb.$el, index === (this.breadcrumbsRefs.length - 1)), 0)\n\t\t},\n\t\t/**\n\t\t * Calculates the width of the provided element\n\t\t *\n\t\t * @param {object} el The element\n\t\t * @param {boolean} isLast Is this the last crumb\n\t\t * @return {number} The width\n\t\t */\n\t\tgetWidth(el, isLast) {\n\t\t\tif (!el?.classList) return 0\n\t\t\tconst hide = el.classList.contains(`${crumbClass}--hidden`)\n\t\t\tel.style.minWidth = 'auto'\n\t\t\t// For the last crumb, we calculate with a max-width of 210px,\n\t\t\t// but don't set it in CSS to allow it to grow.\n\t\t\tif (isLast) {\n\t\t\t\tel.style.maxWidth = '210px'\n\t\t\t}\n\t\t\tel.classList.remove(`${crumbClass}--hidden`)\n\t\t\tconst w = el.offsetWidth\n\t\t\tif (hide) {\n\t\t\t\tel.classList.add(`${crumbClass}--hidden`)\n\t\t\t}\n\t\t\tel.style.minWidth = ''\n\t\t\tel.style.maxWidth = ''\n\t\t\treturn w\n\t\t},\n\t\t/**\n\t\t * Prevents the default of a provided event\n\t\t *\n\t\t * @param {object} e The event\n\t\t * @return {boolean}\n\t\t */\n\t\tpreventDefault(e) {\n\t\t\tif (e.preventDefault) {\n\t\t\t\te.preventDefault()\n\t\t\t}\n\t\t\treturn false\n\t\t},\n\t\t/**\n\t\t * Handles the drag start.\n\t\t * Prevents a breadcrumb from being draggable.\n\t\t *\n\t\t * @param {object} e The event\n\t\t * @return {boolean}\n\t\t */\n\t\tdragStart(e) {\n\t\t\treturn this.preventDefault(e)\n\t\t},\n\t\t/**\n\t\t * Handles when something is dropped on the breadcrumb.\n\t\t *\n\t\t * @param {object} e The drop event\n\t\t * @param {string} path The path of the breadcrumb\n\t\t * @param {boolean} disabled Whether dropping is disabled for this breadcrumb\n\t\t * @return {boolean}\n\t\t */\n\t\tdropped(e, path, disabled) {\n\t\t\t/**\n\t\t\t * Don't emit if dropping is disabled.\n\t\t\t */\n\t\t\tif (!disabled) {\n\t\t\t\t/**\n\t\t\t\t * Event emitted when something is dropped on the breadcrumb.\n\t\t\t\t *\n\t\t\t\t * @param {Event} e the drop DOM event\n\t\t\t\t * @param {string} path The path of the breadcrumb\n\t\t\t\t */\n\t\t\t\tthis.$emit('dropped', e, path)\n\t\t\t}\n\t\t\t// Close the actions menu after the drop\n\t\t\tthis.menuBreadcrumbProps.open = false\n\n\t\t\t// Remove all hovering classes\n\t\t\tconst crumbs = document.querySelectorAll(`.${crumbClass}`)\n\t\t\tcrumbs.forEach((f) => { f.classList.remove(`${crumbClass}--hovered`) })\n\t\t\treturn this.preventDefault(e)\n\t\t},\n\t\t/**\n\t\t * Handles the drag over event\n\t\t *\n\t\t * @param {object} e The drag over event\n\t\t * @return {boolean}\n\t\t */\n\t\tdragOver(e) {\n\t\t\treturn this.preventDefault(e)\n\t\t},\n\t\t/**\n\t\t * Handles the drag enter event\n\t\t *\n\t\t * @param {object} e The drag over event\n\t\t * @param {boolean} disabled Whether dropping is disabled for this breadcrumb\n\t\t */\n\t\tdragEnter(e, disabled) {\n\t\t\t/**\n\t\t\t * Don't do anything if dropping is disabled.\n\t\t\t */\n\t\t\tif (disabled) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Get the correct element, in case we hover a child.\n\t\t\tif (e.target.closest) {\n\t\t\t\tconst target = e.target.closest(`.${crumbClass}`)\n\t\t\t\tif (target.classList && target.classList.contains(crumbClass)) {\n\t\t\t\t\tconst crumbs = document.querySelectorAll(`.${crumbClass}`)\n\t\t\t\t\tcrumbs.forEach((f) => { f.classList.remove(`${crumbClass}--hovered`) })\n\t\t\t\t\ttarget.classList.add(`${crumbClass}--hovered`)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Handles the drag leave event\n\t\t *\n\t\t * @param {object} e The drag leave event\n\t\t * @param {boolean} disabled Whether dropping is disabled for this breadcrumb\n\t\t */\n\t\tdragLeave(e, disabled) {\n\t\t\t/**\n\t\t\t * Don't do anything if dropping is disabled.\n\t\t\t */\n\t\t\tif (disabled) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Don't do anything if we leave towards a child element.\n\t\t\tif (e.target.contains(e.relatedTarget)) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Get the correct element, in case we leave directly from a child.\n\t\t\tif (e.target.closest) {\n\t\t\t\tconst target = e.target.closest(`.${crumbClass}`)\n\t\t\t\tif (target.contains(e.relatedTarget)) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif (target.classList && target.classList.contains(crumbClass)) {\n\t\t\t\t\ttarget.classList.remove(`${crumbClass}--hovered`)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * Check for each crumb if we have to hide it and\n\t\t * add it to the array of all crumbs.\n\t\t */\n\t\thideCrumbs() {\n\t\t\tthis.breadcrumbsRefs.forEach((crumb, i) => {\n\t\t\t\tif (crumb?.$el?.classList) {\n\t\t\t\t\tif (this.hiddenIndices.includes(i)) {\n\t\t\t\t\t\tcrumb.$el.classList.add(`${crumbClass}--hidden`)\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcrumb.$el.classList.remove(`${crumbClass}--hidden`)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\n\t\tisBreadcrumb(vnode) {\n\t\t\treturn vnode?.type?.name === 'NcBreadcrumb'\n\t\t},\n\t},\n\t/**\n\t * The render function to display the component\n\t *\n\t * @return {object|undefined} The created VNode\n\t */\n\trender() {\n\t\t// Get the breadcrumbs\n\t\tlet breadcrumbs = []\n\t\t// We have to iterate over all slot elements\n\t\tthis.$slots.default?.().forEach(vnode => {\n\t\t\tif (this.isBreadcrumb(vnode)) {\n\t\t\t\tbreadcrumbs.push(vnode)\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// If we encounter a Fragment, we have to check its children too\n\t\t\tif (vnode?.type === Fragment) {\n\t\t\t\tvnode?.children?.forEach?.(child => {\n\t\t\t\t\tif (this.isBreadcrumb(child)) {\n\t\t\t\t\t\tbreadcrumbs.push(child)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\n\t\t// Check that we have at least one breadcrumb\n\t\tif (breadcrumbs.length === 0) {\n\t\t\treturn\n\t\t}\n\n\t\t// Add the root icon to the first breadcrumb\n\t\tbreadcrumbs[0] = cloneVNode(breadcrumbs[0], {\n\t\t\ticon: this.rootIcon,\n\t\t\tref: 'breadcrumbs',\n\t\t})\n\n\t\t/**\n\t\t * Use a proxy object to store breadcrumbs refs\n\t\t * and don't write to this.breadcrumbsRefs directly\n\t\t * to not trigger a myriad of re-renders.\n\t\t */\n\t\tconst breadcrumbsRefs = []\n\t\t// Add the breadcrumbs to the array of the created VNodes, check if hiding them is necessary.\n\t\tbreadcrumbs = breadcrumbs.map((crumb, index) => cloneVNode(crumb, {\n\t\t\tref: (crumb) => {\n\t\t\t\tbreadcrumbsRefs[index] = crumb\n\t\t\t},\n\t\t}))\n\n\t\t// The array of all created VNodes\n\t\tconst crumbs = [...breadcrumbs]\n\t\tif (this.hiddenIndices.length) {\n\t\t\t/**\n\t\t\t * We show the first half of the breadcrumbs before the Actions dropdown menu\n\t\t\t * which shows the hidden breadcrumbs.\n\t\t\t */\n\t\t\t crumbs.splice(Math.round(breadcrumbs.length / 2), 0,\n\n\t\t\t\t// The Actions menu\n\t\t\t\t// Use a breadcrumb component for the hidden breadcrumbs\n\t\t\t\th(NcBreadcrumb, {\n\t\t\t\t\tclass: 'dropdown',\n\t\t\t\t\t...this.menuBreadcrumbProps,\n\t\t\t\t\t// Hide the dropdown menu from screen-readers,\n\t\t\t\t\t// since the crumbs in the menu are still in the list.\n\t\t\t\t\t'aria-hidden': true,\n\t\t\t\t\t// Add a ref to the Actions menu\n\t\t\t\t\tref: 'actionsBreadcrumb',\n\t\t\t\t\tkey: 'actions-breadcrumb-1',\n\t\t\t\t\t// Add handlers so the Actions menu opens on hover\n\t\t\t\t\tonDragenter: () => { this.menuBreadcrumbProps.open = true },\n\t\t\t\t\tonDragleave: this.closeActions,\n\t\t\t\t\t// Make sure we keep the same open state\n\t\t\t\t\t// as the Actions component\n\t\t\t\t\t'onUpdate:open': (open) => {\n\t\t\t\t\t\tthis.menuBreadcrumbProps.open = open\n\t\t\t\t\t},\n\t\t\t\t// Add all hidden breadcrumbs as ActionRouter or ActionLink\n\t\t\t\t}, {\n\t\t\t\t\tdefault: () => this.hiddenIndices.filter(index => index <= breadcrumbs.length - 1).map(index => {\n\t\t\t\t\t\tconst crumb = breadcrumbs[index]\n\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\t// Get the parameters from the breadcrumb component props\n\t\t\t\t\t\t\tto,\n\t\t\t\t\t\t\thref,\n\t\t\t\t\t\t\tdisableDrop,\n\t\t\t\t\t\t\tname,\n\t\t\t\t\t\t\t// Props to forward\n\t\t\t\t\t\t\t...propsToForward\n\t\t\t\t\t\t} = crumb.props\n\t\t\t\t\t\t// Do not forward the ref, otherwise it will be null if the hidden crumb gets destroyed\n\t\t\t\t\t\tdelete propsToForward.ref\n\n\t\t\t\t\t\t// Decide whether to show the breadcrumbs as ActionButton, ActionRouter or ActionLink\n\t\t\t\t\t\tlet element = NcActionButton\n\t\t\t\t\t\tlet path = ''\n\t\t\t\t\t\tif (href) {\n\t\t\t\t\t\t\telement = NcActionLink\n\t\t\t\t\t\t\tpath = href\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (to) {\n\t\t\t\t\t\t\telement = NcActionRouter\n\t\t\t\t\t\t\tpath = to\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst folderIcon = h(IconFolder, {\n\t\t\t\t\t\t\tsize: 20,\n\t\t\t\t\t\t})\n\t\t\t\t\t\treturn h(element, {\n\t\t\t\t\t\t\t...propsToForward,\n\t\t\t\t\t\t\tclass: crumbClass,\n\t\t\t\t\t\t\thref: href || null,\n\t\t\t\t\t\t\tto: to || null,\n\t\t\t\t\t\t\t// Prevent the breadcrumbs from being draggable\n\t\t\t\t\t\t\tdraggable: false,\n\t\t\t\t\t\t\t// Add the drag and drop handlers\n\t\t\t\t\t\t\tonDragstart: this.dragStart,\n\t\t\t\t\t\t\tonDrop: ($event) => this.dropped($event, path, disableDrop),\n\t\t\t\t\t\t\tonDragover: this.dragOver,\n\t\t\t\t\t\t\tonDragenter: ($event) => this.dragEnter($event, disableDrop),\n\t\t\t\t\t\t\tonDragleave: ($event) => this.dragLeave($event, disableDrop),\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tdefault: () => name,\n\t\t\t\t\t\t\ticon: () => folderIcon,\n\t\t\t\t\t\t})\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t)\n\t\t}\n\n\t\tconst wrapper = [h('nav', { 'aria-label': this.ariaLabel }, [h('ul', { class: 'breadcrumb__crumbs' }, [crumbs])])]\n\t\t// Append the actions slot if it is populated\n\t\tif (isSlotPopulated(this.$slots.actions?.())) {\n\t\t\twrapper.push(h('div', { class: 'breadcrumb__actions', ref: 'breadcrumb__actions' }, this.$slots.actions?.()))\n\t\t}\n\n\t\tthis.breadcrumbsRefs = breadcrumbsRefs\n\n\t\treturn h('div', { class: ['breadcrumb', { 'breadcrumb--collapsed': (this.hiddenIndices.length === breadcrumbs.length - 2) }], ref: 'container' }, wrapper)\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.breadcrumb {\n\twidth: 100%;\n\tflex-grow: 1;\n\tdisplay: inline-flex;\n\talign-items: center;\n\n\t&--collapsed :deep(.vue-crumb:last-child) {\n\t\tmin-width: 100px;\n\t}\n\n\tnav {\n\t\tflex-shrink: 1;\n\t\tmin-width: 0;\n\t}\n\n\t& #{&}__crumbs {\n\t\tmax-width: 100%;\n\t}\n\n\t& #{&}__crumbs,\n\t& #{&}__actions {\n\t\tdisplay: inline-flex;\n\t}\n}\n</style>\n"],"names":["_sfc_main","_createElementBlock","_mergeProps","_createElementVNode","_openBlock","crumb"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,6 +1,6 @@
1
- import '../assets/NcButton-Cpw_vPKw.css';
2
- import { defineComponent, computed, inject, toRef, createBlock, openBlock, resolveDynamicComponent, mergeProps, withCtx, createElementVNode, renderSlot, createTextVNode, toDisplayString } from "vue";
3
- import { useLink, routerKey } from "vue-router";
1
+ import '../assets/NcButton-BWD8LdCm.css';
2
+ import { defineComponent, inject, computed, createBlock, openBlock, resolveDynamicComponent, mergeProps, withCtx, createElementVNode, renderSlot, createTextVNode, toDisplayString } from "vue";
3
+ import { routerKey } from "vue-router";
4
4
  import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
5
5
  const _hoisted_1 = { class: "button-vue__wrapper" };
6
6
  const _hoisted_2 = { class: "button-vue__icon" };
@@ -26,10 +26,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
26
26
  setup(__props, { emit: __emit }) {
27
27
  const props = __props;
28
28
  const emit = __emit;
29
- const routerLink = computed(() => inject(routerKey, null) !== null && props.to ? useLink({ to: toRef(() => props.to) }) : void 0);
30
- const isLink = computed(() => props.href);
31
- const hasPressedState = computed(() => !isLink.value && typeof props.pressed === "boolean");
32
- const realVariant = computed(() => {
29
+ const hasVueRouterContext = inject(routerKey, null) !== null;
30
+ const tag = computed(() => {
31
+ if (hasVueRouterContext && props.to) {
32
+ return "RouterLink";
33
+ } else if (props.href) {
34
+ return "a";
35
+ } else {
36
+ return "button";
37
+ }
38
+ });
39
+ const hasPressedState = computed(() => tag.value === "button" && typeof props.pressed === "boolean");
40
+ const variantWithPressed = computed(() => {
33
41
  if (props.pressed) {
34
42
  return "primary";
35
43
  }
@@ -38,46 +46,54 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
38
46
  }
39
47
  return props.variant;
40
48
  });
49
+ const isTertiaryVariant = computed(() => variantWithPressed.value.startsWith("tertiary"));
41
50
  const flexAlignment = computed(() => props.alignment.split("-")[0]);
42
51
  const isReverseAligned = computed(() => props.alignment.includes("-"));
43
52
  const getNcPopoverTriggerAttrs = inject("NcPopover:trigger:attrs", () => ({}), false);
44
53
  const ncPopoverTriggerAttrs = computed(() => getNcPopoverTriggerAttrs());
45
- const linkAttrs = computed(() => ({
46
- role: "button",
47
- href: props.href || "#",
48
- target: props.target,
49
- rel: "nofollow noreferrer noopener",
50
- download: props.download || null
51
- }));
52
- const buttonAttrs = computed(() => ({
53
- "aria-pressed": hasPressedState.value ? String(props.pressed) : void 0,
54
- type: props.type
55
- }));
54
+ const attrs = computed(() => {
55
+ if (tag.value === "RouterLink") {
56
+ return {
57
+ to: props.to,
58
+ activeClass: "active"
59
+ };
60
+ } else if (tag.value === "a") {
61
+ return {
62
+ href: props.href || "#",
63
+ target: props.target,
64
+ rel: "nofollow noreferrer noopener",
65
+ download: props.download || void 0
66
+ };
67
+ } else if (tag.value === "button") {
68
+ return {
69
+ ...ncPopoverTriggerAttrs.value,
70
+ "aria-pressed": props.pressed,
71
+ type: props.type,
72
+ disabled: props.disabled
73
+ };
74
+ }
75
+ return void 0;
76
+ });
56
77
  function onClick(event) {
57
78
  if (hasPressedState.value) {
58
79
  emit("update:pressed", !props.pressed);
59
80
  }
60
81
  emit("click", event);
61
- routerLink.value?.navigate(event);
62
82
  }
63
83
  return (_ctx, _cache) => {
64
- return openBlock(), createBlock(resolveDynamicComponent(isLink.value ? "a" : "button"), mergeProps({
84
+ return openBlock(), createBlock(resolveDynamicComponent(tag.value), mergeProps({
65
85
  class: ["button-vue", [
66
86
  `button-vue--size-${_ctx.size}`,
67
87
  {
68
- [`button-vue--${realVariant.value}`]: realVariant.value,
88
+ [`button-vue--${variantWithPressed.value}`]: variantWithPressed.value,
89
+ "button-vue--tertiary": isTertiaryVariant.value,
69
90
  "button-vue--wide": _ctx.wide,
70
91
  [`button-vue--${flexAlignment.value}`]: flexAlignment.value !== "center",
71
- "button-vue--reverse": isReverseAligned.value,
72
- active: routerLink.value?.isActive
92
+ "button-vue--reverse": isReverseAligned.value
73
93
  }
74
94
  ]],
75
- disabled: _ctx.disabled,
76
95
  "aria-label": _ctx.ariaLabel
77
- }, {
78
- ...ncPopoverTriggerAttrs.value,
79
- ...isLink.value ? linkAttrs.value : buttonAttrs.value
80
- }, { onClick }), {
96
+ }, attrs.value, { onClick }), {
81
97
  default: withCtx(() => [
82
98
  createElementVNode("span", _hoisted_1, [
83
99
  createElementVNode("span", _hoisted_2, [
@@ -91,12 +107,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
91
107
  ])
92
108
  ]),
93
109
  _: 3
94
- }, 16, ["class", "disabled", "aria-label"]);
110
+ }, 16, ["class", "aria-label"]);
95
111
  };
96
112
  }
97
113
  });
98
- const NcButton = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-e35697f0"]]);
114
+ const NcButton = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-e2fd60a6"]]);
99
115
  export {
100
116
  NcButton as N
101
117
  };
102
- //# sourceMappingURL=NcButton-yN4vYgXb.mjs.map
118
+ //# sourceMappingURL=NcButton-BMnvzy1A.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NcButton-BMnvzy1A.mjs","sources":["../../src/components/NcButton/NcButton.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\n### General description\nGeneral purpose button component. See props for different options.\n[Use material design icons only for icons](https://www.npmjs.com/package/vue-material-design-icons) and remember to set their size to 20.\n\n### Usage\n### Custom icon slot\nTo be used with `vue-material-design-icons` only. For icon classes use the `default-icon` slot.\nIt can be used with one or multiple actions.\n```\n<template>\n<div class=\"wrapper\">\n\t<!-- Style selector -->\n\t<div class=\"grid\">\n\t\t<NcCheckboxRadioSwitch v-model=\"style\" value=\"text\" name=\"style\" type=\"radio\">Text only</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch v-model=\"style\" value=\"icon\" name=\"style\" type=\"radio\">Icon only</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch v-model=\"style\" value=\"icontext\" name=\"style\" type=\"radio\">Icon and text</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch v-model=\"disabled\" type=\"checkbox\">Disabled</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch v-model=\"size\" value=\"small\" name=\"size\" type=\"radio\">Small</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch v-model=\"size\" value=\"normal\" name=\"size\" type=\"radio\">Normal (default)</NcCheckboxRadioSwitch>\n\t\t<NcCheckboxRadioSwitch v-model=\"size\" value=\"large\" name=\"size\" type=\"radio\">Large</NcCheckboxRadioSwitch>\n\t</div>\n\n\t<h5>Standard buttons</h5>\n\t<div class=\"grid\">\n\t\t<p>Tertiary, no background</p>\n\t\t<p>Tertiary</p>\n\t\t<p>Secondary</p>\n\t\t<p>Primary</p>\n\t\t<NcButton\n\t\t\taria-label=\"Example text\"\n\t\t\t:disabled\n\t\t\t:size\n\t\t\t:text\n\t\t\tvariant=\"tertiary-no-background\">\n\t\t\t<template v-if=\"style.indexOf('icon') !== -1\" #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t\t<NcButton\n\t\t\taria-label=\"Example text\"\n\t\t\t:disabled\n\t\t\t:size\n\t\t\t:text\n\t\t\tvariant=\"tertiary\">\n\t\t\t<template v-if=\"style.indexOf('icon') !== -1\" #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t\t<NcButton\n\t\t\taria-label=\"Example text\"\n\t\t\t:disabled\n\t\t\t:size\n\t\t\t:text>\n\t\t\t<template v-if=\"style.indexOf('icon') !== -1\" #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t\t<NcButton\n\t\t\taria-label=\"Example text\"\n\t\t\t:disabled\n\t\t\t:size\n\t\t\t:text\n\t\t\tvariant=\"primary\">\n\t\t\t<template v-if=\"style.indexOf('icon') !== -1\" #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t</div>\n\n\t<!-- Wide button -->\n\t<h5>Wide button</h5>\n\t<NcButton\n\t\t:disabled=\"disabled\"\n\t\t:size=\"size\"\n\t\t:text=\"text\"\n\t\t:wide=\"true\"\n\t\ttext=\"Example text\">\n\t\t<template #icon>\n\t\t\t<Video\n\t\t\t\t:size=\"20\" />\n\t\t</template>\n\t</NcButton>\n\n\t<!-- Special buttons -->\n\t<h5>Special buttons</h5>\n\t<div class=\"grid\">\n\t\t<p>Success</p>\n\t\t<p>Warning</p>\n\t\t<p>Error</p>\n\t\t<p> - </p>\n\t\t<NcButton\n\t\t\t:disabled\n\t\t\t:size\n\t\t\ttext=\"Example text\"\n\t\t\tvariant=\"success\">\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t\t<NcButton\n\t\t\t:disabled\n\t\t\t:size\n\t\t\ttext=\"Example text\"\n\t\t\tvariant=\"warning\">\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t\t<NcButton\n\t\t\t:disabled\n\t\t\t:size\n\t\t\ttext=\"Example text\"\n\t\t\tvariant=\"error\">\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t\t<p> - </p>\n\t</div>\n</div>\n\n</template>\n<script>\nimport Video from 'vue-material-design-icons/Video.vue'\n\nexport default {\n\tcomponents: {\n\t\tVideo,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\ttoggled: false,\n\t\t\tdisabled: false,\n\t\t\tsize: 'normal',\n\t\t\tstyle: 'icontext',\n\t\t}\n\t},\n\tcomputed: {\n\t\ttext() {\n\t\t\tif (this.style.includes('text')) {\n\t\t\t\treturn 'Example text'\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.wrapper {\n\tpadding: 0 12px;\n}\n\n.grid {\n\tdisplay: grid;\n\tgap: 12px;\n\tgrid-template-columns: 1fr 1fr 1fr 1fr;\n\tgrid-template-rows: repeat(auto-fill, auto);\n\tposition: relative;\n\tmargin: 12px 0;\n}\n\nh5 {\n\tfont-weight: bold;\n\tmargin: 40px 0 20px 0;\n}\n\np {\n\ttext-align: center;\n\tmargin: 4px 0 12px 0;\n\tcolor: var(--color-text-maxcontrast)\n}\n\nbutton {\n\tmargin: auto;\n}\n</style>\n```\n\n### Alignment\nSometimes it is required to change the icon alignment on the button, like for switching between pages as in following example:\n\n```vue\n<template>\n\t<div style=\"display: flex; flex-direction: column; gap: 12px;\">\n\t\t<NcButton text=\"center (default)\" variant=\"secondary\" wide>\n\t\t\t<template #icon>\n\t\t\t\t<IconLeft :size=\"20\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t\t<NcButton alignment=\"center-reverse\" text=\"center-reverse\" variant=\"secondary\" wide>\n\t\t\t<template #icon>\n\t\t\t\t<IconRight :size=\"20\" />\n\t\t\t</template>\n\t\t</NcButton>\n\t\t<div style=\"display: flex; gap: 12px;\">\n\t\t\t<div style=\"display: flex; flex-direction: column; gap: 12px; flex: 1\">\n\t\t\t\t<NcButton alignment=\"start\" text=\"start\" variant=\"secondary\" wide>\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<IconLeft :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\t\t\t\t<NcButton alignment=\"start-reverse\" text=\"start-reverse\" variant=\"secondary\" wide>\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<IconRight :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\t\t\t<div style=\"display: flex; flex-direction: column; gap: 12px; flex: 1\">\n\t\t\t\t<NcButton alignment=\"end\" text=\"end\" variant=\"secondary\" wide>\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<IconLeft :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\t\t\t\t<NcButton alignment=\"end-reverse\" text=\"end-reverse\" variant=\"secondary\" wide>\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<IconRight :size=\"20\" />\n\t\t\t\t\t</template>\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n<script>\nimport IconLeft from 'vue-material-design-icons/ArrowLeft.vue'\nimport IconRight from 'vue-material-design-icons/ArrowRight.vue'\n\nexport default {\n\tcomponents: {\n\t\tIconLeft,\n\t\tIconRight,\n\t},\n}\n</script>\n```\n\n### Pressed state\n\nIt is possible to make the button stateful by adding a pressed state, e.g. if you like to create a favorite button.\nThe button will have the required `aria` attribute for accessibility and visual style (`primary` when pressed, and the configured variant otherwise).\n\nDo not change `text` or `aria-label` of the pressed/unpressed button. See: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-pressed\n\n```vue\n<template>\n\t<div>\n\t\t<div style=\"display: flex; gap: 12px;\">\n\t\t\t<NcButton v-model:pressed=\"isFavorite\" aria-label=\"Favorite\" variant=\"tertiary-no-background\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconStar v-if=\"isFavorite\" :size=\"20\" />\n\t\t\t\t\t<IconStarOutline v-else :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcButton>\n\t\t\t<NcButton v-model:pressed=\"isFavorite\" text=\"Favorite\" variant=\"tertiary\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconStar v-if=\"isFavorite\" :size=\"20\" />\n\t\t\t\t\t<IconStarOutline v-else :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcButton>\n\t\t\t<NcButton v-model:pressed=\"isFavorite\" aria-label=\"Favorite\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconStar v-if=\"isFavorite\" :size=\"20\" />\n\t\t\t\t\t<IconStarOutline v-else :size=\"20\" />\n\t\t\t\t</template>\n\t\t\t</NcButton>\n\t\t</div>\n\t\t<div>\n\t\t\tIt is {{ isFavorite ? 'a' : 'not a' }} favorite.\n\t\t</div>\n\t</div>\n</template>\n<script>\nimport IconStar from 'vue-material-design-icons/Star.vue'\nimport IconStarOutline from 'vue-material-design-icons/StarOutline.vue'\n\nexport default {\n\tcomponents: {\n\t\tIconStar,\n\t\tIconStarOutline,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tisFavorite: false,\n\t\t}\n\t},\n\tmethods: {\n\t\ttoggleFavorite() {\n\t\t\tthis.isFavorite = !this.isFavorite\n\t\t},\n\t},\n}\n</script>\n```\n\n### Usage example: Custom content\nSometimes custom content, meaning more than text and icon, is required.\nFor this the `default`-slot can be used.\n\n**Important**: Never include interactive elements inside the button,\nthis results in invalid HTML and is not accessible!\n\n```vue\n<template>\n\t<NcButton>\n\t\tSome <del>formatted</del> content\n\t</NcButton>\n</template>\n```\n\n### Usage example: Sorting table columns\nThe standard way to implement sortable table column headers should be like this:\n\n```vue\n<template>\n\t<table>\n\t\t<thead>\n\t\t\t<tr>\n\t\t\t\t<th :aria-sorted=\"sortedName\" class=\"row-name\">\n\t\t\t\t\t<NcButton alignment=\"start-reverse\"\n\t\t\t\t\t\t:wide=\"true\"\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t@click=\"sortName\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<IconDown v-if=\"sortedName === 'ascending'\" class=\"sort-icon\" :size=\"20\" />\n\t\t\t\t\t\t\t<IconUp v-else-if=\"sortedName === 'descending'\" class=\"sort-icon\" :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<span class=\"table-header\">Name</span>\n\t\t\t\t\t</NcButton>\n\t\t\t\t</th>\n\t\t\t\t<th :aria-sorted=\"sortedSize\" class=\"row-size\">\n\t\t\t\t\t<NcButton alignment=\"end\"\n\t\t\t\t\t\t:wide=\"true\"\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t@click=\"sortSize\">\n\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t<IconDown v-if=\"sortedSize === 'ascending'\" class=\"sort-icon\" :size=\"20\" />\n\t\t\t\t\t\t\t<IconUp v-else-if=\"sortedSize === 'descending'\" class=\"sort-icon\" :size=\"20\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<span class=\"table-header\">Size</span>\n\t\t\t\t\t</NcButton>\n\t\t\t\t</th>\n\t\t\t</tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t\t<tr>\n\t\t\t\t<td class=\"row-name\">Lorem ipsum</td>\n\t\t\t\t<td class=\"row-size\">8 MiB</td>\n\t\t\t</tr>\n\t\t</tbody>\n\t</table>\n</template>\n<script>\nimport IconUp from 'vue-material-design-icons/MenuUp.vue'\nimport IconDown from 'vue-material-design-icons/MenuDown.vue'\n\nexport default {\n\tcomponents: {\n\t\tIconUp,\n\t\tIconDown,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tsortedName: null,\n\t\t\tsortedSize: null,\n\t\t}\n\t},\n\tmethods: {\n\t\tsortName() {\n\t\t\tif (this.sortedName === 'ascending') {\n\t\t\t\tthis.sortedName = 'descending'\n\t\t\t} else if (this.sortedName === 'descending') {\n\t\t\t\tthis.sortedName = null\n\t\t\t} else {\n\t\t\t\tthis.sortedName = 'ascending'\n\t\t\t}\n\t\t},\n\t\tsortSize() {\n\t\t\tif (this.sortedSize === 'ascending') {\n\t\t\t\tthis.sortedSize = 'descending'\n\t\t\t} else if (this.sortedSize === 'descending') {\n\t\t\t\tthis.sortedSize = null\n\t\t\t} else {\n\t\t\t\tthis.sortedSize = 'ascending'\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n<style>\ntable {\n\ttable-layout: fixed;\n\twidth: 300px;\n}\n\ntd.row-name {\n\tpadding-inline-start: 16px;\n}\n\ntd.row-size {\n\ttext-align: end;\n\tpadding-inline-end: 16px;\n}\n\n.table-header {\n\tfont-weight: normal;\n\tcolor: var(--color-text-maxcontrast);\n}\n\n.sort-icon {\n\tcolor: var(--color-text-maxcontrast);\n\tposition: relative;\n\tinset-inline: -10px;\n}\n\n.row-size .sort-icon {\n\tinset-inline: 10px;\n}\n</style>\n```\n</docs>\n\n<script setup lang=\"ts\">\nimport type { Slot } from 'vue'\nimport type { RouteLocationRaw } from 'vue-router'\n\nimport { computed, inject } from 'vue'\nimport { routerKey } from 'vue-router'\n\nexport type ButtonAlignment = 'start'\n\t| 'start-reverse'\n\t| 'center'\n\t| 'center-reverse'\n\t| 'end'\n\t| 'end-reverse'\n\nexport type ButtonSize = 'small'\n\t| 'normal'\n\t| 'large'\n\nexport type ButtonType =\n\t| 'submit'\n\t| 'reset'\n\t| 'button'\n\nexport type ButtonVariant = 'primary'\n\t| 'secondary'\n\t| 'tertiary'\n\t| 'tertiary-no-background'\n\t| 'tertiary-on-primary'\n\t| 'error'\n\t// Design-wise not recommended for new code\n\t| 'warning'\n\t| 'success'\n\nconst props = withDefaults(defineProps<{\n\t/**\n\t * Set the text and icon alignment\n\t *\n\t * @default 'center'\n\t */\n\talignment?: ButtonAlignment\n\n\t/**\n\t * Always try to provide an aria-label to your button.\n\t *\n\t * Make it more specific than the button's name by provide some more context.\n\t * E.g. if the name of the button is \"send\" in the Mail app,\n\t * the aria label could be \"Send email\".\n\t */\n\tariaLabel?: string\n\n\t/**\n\t * Toggles the disabled state of the button on and off.\n\t * @default false\n\t */\n\tdisabled?: boolean\n\n\t/**\n\t * When `href` is set this will make the browser try to download the target.\n\t * If a string is passed the browser will use it as the filename.\n\t *\n\t * Note that the browser might adjust it for allowed characters (e.g. '/' or '\\').\n\t * Also this only works with same-origin URLs and `blob:` or `data:` schemas.\n\t * Moreover a `Content-Disposition` header set by the server will override the filename.\n\t */\n\tdownload?: string|true\n\n\t/**\n\t * Providing the href attribute turns the button component into an `a` element.\n\t */\n\thref?: string\n\n\t/**\n\t * The pressed state of the button if it has a checked state.\n\t * This will add the `aria-pressed` attribute and for the button to have the primary style in checked state.\n\t *\n\t * Note: Pressed state is not supported for links.\n\t */\n\tpressed?: boolean\n\n\t/**\n\t * Specify the button size.\n\t * @default 'normal'\n\t */\n\tsize?: ButtonSize\n\n\t/**\n\t * Target for the `a` element if `href` is set.\n\t * @default '_self'\n\t */\n\ttarget?: string\n\n\t/**\n\t * The main button text.\n\t * This can be overwritten by using the *default* slot.\n\t * @since 9.0.0\n\t */\n\ttext?: string\n\n\t/**\n\t * Providing the to attribute turns the button component into a `router-link` element.\n\t *\n\t * Note: This takes precedence over the href attribute.\n\t */\n\tto?: RouteLocationRaw\n\n\t/**\n\t * Specifies the button native type\n\t * If left empty, the default \"button\" type will be used.\n\t *\n\t * @default 'button'\n\t */\n\ttype?: ButtonType\n\n\t/**\n\t * Specifies the button variant.\n\t * If left empty, the default button style will be applied.\n\t *\n\t * @default 'secondary'\n\t */\n\tvariant?: ButtonVariant\n\n\t/**\n\t * Specifies whether the button should span all the available width.\n\t * By default, buttons span the whole width of the container.\n\t * @default false\n\t */\n\twide?: boolean\n}>(), {\n\tariaLabel: undefined,\n\talignment: 'center',\n\tdownload: undefined,\n\thref: undefined,\n\tpressed: undefined,\n\tsize: 'normal',\n\ttarget: '_self',\n\ttext: undefined,\n\tto: undefined,\n\ttype: 'button',\n\tvariant: 'secondary',\n})\n\nconst emit = defineEmits<{\n\t/**\n\t * Emitted when the button was clicked.\n\t */\n\t click: [e: MouseEvent]\n\n\t/**\n\t * Update the current pressed state of the button (if the `pressed` property was configured).\n\t * If the button is a toggle button (`pressed` state is boolean),\n\t * then this will be emitted if the user toggled the state.\n\t */\n\t'update:pressed': [pressed: boolean]\n}>()\n\ndefineSlots<{\n\t/**\n\t * Custom button content.\n\t * This can be used for custom formatted content, ensure to not include any interactive elements.\n\t * For plain text it is preferred to use the `text` prop instead.\n\t */\n\tdefault?: Slot\n\n\t/**\n\t * Icon (optional) to show within the button\n\t */\n\ticon?: Slot\n}>()\n\nconst hasVueRouterContext = inject(routerKey, null) !== null\n\nconst tag = computed(() => {\n\t// TODO: should we warn if props.to is provided but there is no vue-router?\n\tif (hasVueRouterContext && props.to) {\n\t\t// Note: RouterLink is used as globally registered component (by name) and not imported intentionally\n\t\t// to use injected component from the app and not bundle it to the button\n\t\treturn 'RouterLink'\n\t} else if (props.href) {\n\t\treturn 'a'\n\t} else {\n\t\treturn 'button'\n\t}\n})\n\nconst hasPressedState = computed(() => tag.value === 'button' && typeof props.pressed === 'boolean')\n\nconst variantWithPressed = computed(() => {\n\t// Pressed toggle button forced to be primary\n\tif (props.pressed) {\n\t\treturn 'primary'\n\t}\n\t// Non-pressed toggle button may use passed variant but it cannot be primary\n\tif (props.pressed === false && props.variant === 'primary') {\n\t\treturn 'secondary'\n\t}\n\n\treturn props.variant\n})\nconst isTertiaryVariant = computed(() => variantWithPressed.value.startsWith('tertiary'))\n\nconst flexAlignment = computed(() => props.alignment.split('-')[0])\nconst isReverseAligned = computed(() => props.alignment.includes('-'))\n\nconst getNcPopoverTriggerAttrs = inject<() => Record<string, string|undefined>>('NcPopover:trigger:attrs', () => ({}), false)\nconst ncPopoverTriggerAttrs = computed(() => getNcPopoverTriggerAttrs())\n\nconst attrs = computed(() => {\n\tif (tag.value === 'RouterLink') {\n\t\treturn {\n\t\t\tto: props.to,\n\t\t\tactiveClass: 'active',\n\t\t}\n\t} else if (tag.value === 'a') {\n\t\treturn {\n\t\t\thref: props.href || '#',\n\t\t\ttarget: props.target,\n\t\t\trel: 'nofollow noreferrer noopener',\n\t\t\tdownload: props.download || undefined,\n\t\t}\n\t} else if (tag.value === 'button') {\n\t\treturn {\n\t\t\t...ncPopoverTriggerAttrs.value,\n\t\t\t'aria-pressed': props.pressed,\n\t\t\ttype: props.type,\n\t\t\tdisabled: props.disabled,\n\t\t}\n\t}\n\n\treturn undefined\n})\n\n/**\n * Handle the click on the link / button\n *\n * @param event - Mouse click event\n */\nfunction onClick(event: MouseEvent) {\n\tif (hasPressedState.value) {\n\t\temit('update:pressed', !props.pressed)\n\t}\n\temit('click', event)\n}\n</script>\n\n<template>\n\t<component :is=\"tag\"\n\t\tclass=\"button-vue\"\n\t\t:class=\"[\n\t\t\t`button-vue--size-${size}`,\n\t\t\t{\n\t\t\t\t[`button-vue--${variantWithPressed}`]: variantWithPressed,\n\t\t\t\t'button-vue--tertiary': isTertiaryVariant,\n\t\t\t\t'button-vue--wide': wide,\n\t\t\t\t[`button-vue--${flexAlignment}`]: flexAlignment !== 'center',\n\t\t\t\t'button-vue--reverse': isReverseAligned,\n\t\t\t},\n\t\t]\"\n\t\t:aria-label\n\t\tv-bind=\"attrs\"\n\t\t@click=\"onClick\">\n\t\t<span class=\"button-vue__wrapper\">\n\t\t\t<span class=\"button-vue__icon\">\n\t\t\t\t<slot name=\"icon\" />\n\t\t\t</span>\n\t\t\t<span class=\"button-vue__text\">\n\t\t\t\t<slot>\n\t\t\t\t\t{{ text }}\n\t\t\t\t</slot>\n\t\t\t</span>\n\t\t</span>\n\t</component>\n</template>\n\n<style lang=\"scss\" scoped>\n.button-vue {\n\t--button-size: var(--default-clickable-area);\n\t--button-inner-size: calc(var(--button-size) - 4px); // without the outer border\n\t--button-radius: var(--border-radius-element);\n\t--button-padding-default: calc(var(--default-grid-baseline) + var(--button-radius));\n\t--button-padding: var(--default-grid-baseline) var(--button-padding-default);\n\n\t// General styles\n\t// by default use secondary styling\n\tcolor: var(--color-primary-element-light-text);\n\tbackground-color: var(--color-primary-element-light);\n\tborder: 1px solid var(--color-primary-element-light-hover);\n\tborder-bottom-width: 2px;\n\tborder-radius: var(--button-radius);\n\tbox-sizing: border-box;\n\t// adjust position and size\n\tposition: relative;\n\twidth: fit-content;\n\toverflow: hidden;\n\tpadding-block: 1px 0; // center the content as border is 1px top and 2px bottom\n\tpadding-inline: var(--button-padding);\n\tmin-height: var(--button-size);\n\tmin-width: var(--button-size);\n\t// display setup\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\ttransition-property: color, border-color, background-color;\n\ttransition-duration: 0.1s;\n\ttransition-timing-function: linear;\n\tcursor: pointer;\n\tfont-size: var(--default-font-size);\n\tfont-weight: bold;\n\n\t// Setup different button sizes\n\t&--size-small {\n\t\t--button-size: var(--clickable-area-small);\n\t\t--button-radius: var(--border-radius-small); // make the border radius even smaller for small buttons\n\t}\n\n\t&--size-large {\n\t\t--button-size: var(--clickable-area-large);\n\t}\n\n\t// Cursor pointer on element and all children\n\t* {\n\t\tcursor: pointer;\n\t}\n\n\t// No outline feedback for focus. Handled with a toggled class in js (see data)\n\t&:focus {\n\t\toutline: none;\n\t}\n\n\t// Disabled styles\n\t&:disabled {\n\t\t// Gives a wash out effect\n\t\tfilter: saturate($opacity_normal);\n\t\topacity: $opacity_disabled;\n\n\t\t// Reset the cursor\n\t\tcursor: default;\n\t\t* {\n\t\t\tcursor: default;\n\t\t}\n\t}\n\n\t// Hover styles when not disabled (for the default theming of 'secondary')\n\t&:hover:not(:disabled) {\n\t\tbackground-color: var(--color-primary-element-light-hover);\n\t}\n\n\t// Back to the default color for this button when active\n\t// TODO: add ripple effect\n\t&:active {\n\t\tbackground-color: var(--color-primary-element-light);\n\t}\n\n\t&__wrapper {\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: 100%;\n\t}\n\n\t&--end &__wrapper {\n\t\tjustify-content: end;\n\t}\n\n\t&--start &__wrapper {\n\t\tjustify-content: start;\n\t}\n\n\t&--reverse &__wrapper {\n\t\tflex-direction: row-reverse;\n\t}\n\n\t&--reverse {\n\t\t--button-padding: var(--button-padding-default) var(--default-grid-baseline);\n\t}\n\n\t&__icon {\n\t\t--default-clickable-area: var(--button-inner-size); // align icon size with inner button size\n\t\theight: var(--button-inner-size);\n\t\twidth: var(--button-inner-size);\n\t\tmin-height: var(--button-inner-size);\n\t\tmin-width: var(--button-inner-size);\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\n\t\t&:empty {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t// For small buttons we need to adjust the icon size\n\t&--size-small &__icon {\n\t\t:deep(> *) {\n\t\t\tmax-height: 16px;\n\t\t\tmax-width: 16px;\n\t\t}\n\t\t:deep(svg) {\n\t\t\theight: 16px;\n\t\t\twidth: 16px;\n\t\t}\n\t}\n\n\t&__text {\n\t\tfont-weight: bold;\n\t\tmargin-bottom: 1px;\n\t\tpadding: 2px 0;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\n\t\t&:empty {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n\n\t// Icon-only button\n\t&:has(#{&}__text:empty) {\n\t\t--button-padding: var(--button-radius);\n\t\tline-height: 1;\n\t\twidth: var(--button-size) !important;\n\t}\n\n\t// Text-only button\n\t&:has(#{&}__icon:empty) {\n\t\t--button-padding: var(--button-padding-default);\n\n\t\t.button-vue__text {\n\t\t\tpadding-inline: var(--default-grid-baseline);\n\t\t}\n\t}\n\n\t// Wide button spans the whole width of the container\n\t&--wide {\n\t\twidth: 100%;\n\t}\n\n\t&:focus-visible {\n\t\toutline: 2px solid var(--color-main-text) !important;\n\t\tbox-shadow: 0 0 0 4px var(--color-main-background) !important;\n\t\t&.button-vue--vue-tertiary-on-primary {\n\t\t\toutline: 2px solid var(--color-primary-element-text);\n\t\t\tborder-radius: var(--border-radius-element);\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\n\t// Button types\n\n\t// Primary\n\t&--primary {\n\t\tbackground-color: var(--color-primary-element);\n\t\tborder-color: var(--color-primary-element-hover);\n\t\tcolor: var(--color-primary-element-text);\n\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: var(--color-primary-element-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// TODO: add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-primary-element);\n\t\t}\n\t}\n\n\t// Secondary\n\t&--secondary {\n\t\tbackground-color: var(--color-primary-element-light);\n\t\tborder-color: var(--color-primary-element-light-hover);\n\t\tcolor: var(--color-primary-element-light-text);\n\n\t\t&:hover:not(:disabled) {\n\t\t\tcolor: var(--color-primary-element-light-text);\n\t\t\tbackground-color: var(--color-primary-element-light-hover);\n\t\t}\n\t}\n\n\t// Tertiary\n\t&--tertiary {\n\t\tbackground-color: transparent;\n\t\tborder-color: transparent;\n\t\tcolor: var(--color-main-text);\n\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\t}\n\n\t// Tertiary, no background\n\t&--tertiary-no-background {\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\n\t// Tertiary on primary color (like the header)\n\t&--tertiary-on-primary {\n\t\tcolor: var(--color-primary-element-text);\n\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\n\t// Success\n\t&--success {\n\t\tborder-color: var(--color-success-hover);\n\t\tbackground-color: var(--color-success);\n\t\tcolor: var(--color-success-text);\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: var(--color-success-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// : add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-success);\n\t\t}\n\t}\n\n\t// Warning\n\t&--warning {\n\t\tborder-color: var(--color-warning-hover);\n\t\tbackground-color: var(--color-warning);\n\t\tcolor: var(--color-warning-text);\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: var(--color-warning-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// TODO: add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-warning);\n\t\t}\n\t}\n\n\t// Error\n\t&--error {\n\t\tborder-color: var(--color-error-hover);\n\t\tbackground-color: var(--color-error);\n\t\tcolor: var(--color-error-text);\n\t\t&:hover:not(:disabled) {\n\t\t\tbackground-color: var(--color-error-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// TODO: add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-error);\n\t\t}\n\t}\n}\n\n</style>\n"],"names":["_createBlock","_resolveDynamicComponent","_mergeProps","size","wide","ariaLabel","_createElementVNode","_renderSlot","text"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAmdA,UAAM,QAAQ;AA4Gd,UAAM,OAAO;AA4Bb,UAAM,sBAAsB,OAAO,WAAW,IAAI,MAAM;AAExD,UAAM,MAAM,SAAS,MAAM;AAE1B,UAAI,uBAAuB,MAAM,IAAI;AAGpC,eAAO;AAAA,MACR,WAAW,MAAM,MAAM;AACtB,eAAO;AAAA,MACR,OAAO;AACN,eAAO;AAAA,MACR;AAAA,IACD,CAAC;AAED,UAAM,kBAAkB,SAAS,MAAM,IAAI,UAAU,YAAY,OAAO,MAAM,YAAY,SAAS;AAEnG,UAAM,qBAAqB,SAAS,MAAM;AAEzC,UAAI,MAAM,SAAS;AAClB,eAAO;AAAA,MACR;AAEA,UAAI,MAAM,YAAY,SAAS,MAAM,YAAY,WAAW;AAC3D,eAAO;AAAA,MACR;AAEA,aAAO,MAAM;AAAA,IACd,CAAC;AACD,UAAM,oBAAoB,SAAS,MAAM,mBAAmB,MAAM,WAAW,UAAU,CAAC;AAExF,UAAM,gBAAgB,SAAS,MAAM,MAAM,UAAU,MAAM,GAAG,EAAE,CAAC,CAAC;AAClE,UAAM,mBAAmB,SAAS,MAAM,MAAM,UAAU,SAAS,GAAG,CAAC;AAErE,UAAM,2BAA2B,OAA+C,2BAA2B,OAAO,CAAA,IAAK,KAAK;AAC5H,UAAM,wBAAwB,SAAS,MAAM,0BAA0B;AAEvE,UAAM,QAAQ,SAAS,MAAM;AAC5B,UAAI,IAAI,UAAU,cAAc;AAC/B,eAAO;AAAA,UACN,IAAI,MAAM;AAAA,UACV,aAAa;AAAA,QAAA;AAAA,MAEf,WAAW,IAAI,UAAU,KAAK;AAC7B,eAAO;AAAA,UACN,MAAM,MAAM,QAAQ;AAAA,UACpB,QAAQ,MAAM;AAAA,UACd,KAAK;AAAA,UACL,UAAU,MAAM,YAAY;AAAA,QAAA;AAAA,MAE9B,WAAW,IAAI,UAAU,UAAU;AAClC,eAAO;AAAA,UACN,GAAG,sBAAsB;AAAA,UACzB,gBAAgB,MAAM;AAAA,UACtB,MAAM,MAAM;AAAA,UACZ,UAAU,MAAM;AAAA,QAAA;AAAA,MAElB;AAEA,aAAO;AAAA,IACR,CAAC;AAOD,aAAS,QAAQ,OAAmB;AACnC,UAAI,gBAAgB,OAAO;AAC1B,aAAK,kBAAkB,CAAC,MAAM,OAAO;AAAA,MACtC;AACA,WAAK,SAAS,KAAK;AAAA,IACpB;;0BAICA,YAyBYC,wBAzBI,IAAA,KAAG,GAAnBC,WAyBY;AAAA,QAxBX,QAAM,cAAY;AAAA,8BACeC,KAAAA,IAAI;AAAA;YAA6B,CAAA,eAAA,mBAAA,KAAkB,KAAK,mBAAA;AAAA,oCAAgD,kBAAA;AAAA,gCAA2CC,KAAAA;AAAAA,YAA0B,CAAA,eAAA,cAAA,KAAa,KAAK,cAAA,UAAa;AAAA,mCAA0C,iBAAA;AAAA,UAAA;AAAA;QAUtR,cAAAC,KAAAA;AAAAA,MAAAA,GACO,MAAA,OAAK,EACZ,QAAA,CAAc,GAAA;AAAA,yBACf,MASO;AAAA,UATPC,mBASO,QATP,YASO;AAAA,YARNA,mBAEO,QAFP,YAEO;AAAA,cADNC,WAAoB,KAAA,QAAA,QAAA,CAAA,GAAA,QAAA,IAAA;AAAA,YAAA;YAErBD,mBAIO,QAJP,YAIO;AAAA,cAHNC,WAEO,4BAFP,MAEO;AAAA,gDADHC,KAAAA,IAAI,GAAA,CAAA;AAAA,cAAA;;;;;;;;;;"}
@@ -1,9 +1,9 @@
1
- import '../assets/NcCheckboxRadioSwitch-DKVMIvxJ.css';
1
+ import '../assets/NcCheckboxRadioSwitch-Cbnc4p0H.css';
2
2
  import { createElementBlock, openBlock, mergeProps, createElementVNode, createCommentVNode, toDisplayString, resolveComponent, normalizeClass, renderSlot, createBlock, resolveDynamicComponent, toHandlers, withCtx, createVNode, createSlots, useCssVars } from "vue";
3
3
  import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.mjs";
4
- import { N as NcLoadingIcon } from "./NcLoadingIcon-Dm3kRPrf.mjs";
4
+ import { N as NcLoadingIcon } from "./NcLoadingIcon-CiMp51wb.mjs";
5
5
  import { c as createElementId } from "./createElementId-DhjFt1I9.mjs";
6
- import { r as register, u as n, a as t } from "./_l10n-tXci8WM1.mjs";
6
+ import { r as register, u as n, a as t } from "./_l10n-ZllQPIu_.mjs";
7
7
  const _sfc_main$8 = {
8
8
  name: "CheckboxBlankOutlineIcon",
9
9
  emits: ["click"],
@@ -720,8 +720,8 @@ const _sfc_main = {
720
720
  };
721
721
  const __injectCSSVars__ = () => {
722
722
  useCssVars((_ctx) => ({
723
- "e2353a6e": _ctx.cssIconSize,
724
- "581281ef": _ctx.cssIconHeight
723
+ "0b7fadd0": _ctx.cssIconSize,
724
+ "57d4f07e": _ctx.cssIconHeight
725
725
  }));
726
726
  };
727
727
  const __setup__ = _sfc_main.setup;
@@ -796,8 +796,8 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
796
796
  _: 3
797
797
  }, 16, ["id", "aria-label", "class", "style", "type"]);
798
798
  }
799
- const NcCheckboxRadioSwitch = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-40b8c043"]]);
799
+ const NcCheckboxRadioSwitch = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-10606260"]]);
800
800
  export {
801
801
  NcCheckboxRadioSwitch as N
802
802
  };
803
- //# sourceMappingURL=NcCheckboxRadioSwitch-D9N_BDHh.mjs.map
803
+ //# sourceMappingURL=NcCheckboxRadioSwitch-Da0F7y0G.mjs.map