@adyen/bento-vue2 1.89.2 → 1.90.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/@types/components.d.ts +2 -0
- package/dist/@types/index.d.ts +198 -80
- package/dist/accordion.js +1 -1
- package/dist/action-bar.js +1 -1
- package/dist/ai-tag.js +1 -1
- package/dist/alert.js +1 -1
- package/dist/anchor-scroller.js +1 -1
- package/dist/assets/accordion-item.css +1 -1
- package/dist/assets/action-bar.css +1 -1
- package/dist/assets/base-modal.css +1 -1
- package/dist/assets/button-actions.css +1 -1
- package/dist/assets/card.css +1 -1
- package/dist/assets/data-grid.css +1 -1
- package/dist/assets/date-range-picker.css +1 -1
- package/dist/assets/dialog-page.css +1 -1
- package/dist/assets/file-uploader.css +1 -1
- package/dist/assets/input-time.css +1 -0
- package/dist/assets/inspector.css +1 -1
- package/dist/assets/modal-fullscreen.css +1 -1
- package/dist/assets/secondary-nav.css +1 -1
- package/dist/assets/sidepanel.css +1 -1
- package/dist/button.js +3 -3
- package/dist/card.js +1 -1
- package/dist/checkbox.js +2 -2
- package/dist/chip.js +1 -1
- package/dist/chunks/accordion-item.D0WVCLec.js +145 -0
- package/dist/chunks/{accordion-item.BZDSJamR.js.map → accordion-item.D0WVCLec.js.map} +1 -1
- package/dist/chunks/action-bar.B63qIiiH.js +334 -0
- package/dist/chunks/{action-bar.CYGUYI0V.js.map → action-bar.B63qIiiH.js.map} +1 -1
- package/dist/chunks/{ai-button.CR_ePQRR.js → ai-button.7L9bANlk.js} +2 -2
- package/dist/chunks/{ai-button.CR_ePQRR.js.map → ai-button.7L9bANlk.js.map} +1 -1
- package/dist/chunks/ai-tag.CCJCOdXu.js +110 -0
- package/dist/chunks/{ai-tag.Cjf38mjR.js.map → ai-tag.CCJCOdXu.js.map} +1 -1
- package/dist/chunks/alert.CXRb-Smf.js +160 -0
- package/dist/chunks/{alert.QVQ6Zjbm.js.map → alert.CXRb-Smf.js.map} +1 -1
- package/dist/chunks/{anchor-scroller.CjJ26PJS.js → anchor-scroller.DWaykZQj.js} +66 -39
- package/dist/chunks/{anchor-scroller.CjJ26PJS.js.map → anchor-scroller.DWaykZQj.js.map} +1 -1
- package/dist/chunks/{base-modal.DmWkavtf.js → base-modal.DpmeDmq-.js} +103 -66
- package/dist/chunks/{base-modal.DmWkavtf.js.map → base-modal.DpmeDmq-.js.map} +1 -1
- package/dist/chunks/{button-actions-with-menu.Bi_HXopk.js → button-actions-with-menu.ChTUOsZl.js} +2 -2
- package/dist/chunks/{button-actions-with-menu.Bi_HXopk.js.map → button-actions-with-menu.ChTUOsZl.js.map} +1 -1
- package/dist/chunks/{button-actions.BLk114As.js → button-actions.BmU1DngD.js} +221 -147
- package/dist/chunks/{button-actions.BLk114As.js.map → button-actions.BmU1DngD.js.map} +1 -1
- package/dist/chunks/{button.DxhJNOtr.js → button.C9b2AC9w.js} +2 -2
- package/dist/chunks/{button.DxhJNOtr.js.map → button.C9b2AC9w.js.map} +1 -1
- package/dist/chunks/{calendar.CXKhBF2f.js → calendar.uvIGF_jU.js} +283 -209
- package/dist/chunks/{calendar.CXKhBF2f.js.map → calendar.uvIGF_jU.js.map} +1 -1
- package/dist/chunks/card.WWUfBkqf.js +165 -0
- package/dist/chunks/{card.GjhsXOT0.js.map → card.WWUfBkqf.js.map} +1 -1
- package/dist/chunks/{checkbox-group.B2BjU3ZN.js → checkbox-group.CI0xDnql.js} +4 -4
- package/dist/chunks/{checkbox-group.B2BjU3ZN.js.map → checkbox-group.CI0xDnql.js.map} +1 -1
- package/dist/chunks/{checkbox.CIv8WgGp.js → checkbox.TsWA6O3Z.js} +93 -56
- package/dist/chunks/{checkbox.CIv8WgGp.js.map → checkbox.TsWA6O3Z.js.map} +1 -1
- package/dist/chunks/chip.BFY_-VCz.js +84 -0
- package/dist/chunks/{chip.DTpENaGC.js.map → chip.BFY_-VCz.js.map} +1 -1
- package/dist/chunks/{code-snippet.YIm2oO_o.js → code-snippet.4DX9iUV8.js} +133 -76
- package/dist/chunks/{code-snippet.YIm2oO_o.js.map → code-snippet.4DX9iUV8.js.map} +1 -1
- package/dist/chunks/{controls-group.CqotnNEF.js → controls-group.D_KE99mg.js} +2 -2
- package/dist/chunks/{controls-group.CqotnNEF.js.map → controls-group.D_KE99mg.js.map} +1 -1
- package/dist/chunks/copy.qqGYFbKJ.js +133 -0
- package/dist/chunks/{copy.BVGQcf22.js.map → copy.qqGYFbKJ.js.map} +1 -1
- package/dist/chunks/{country.D20NCLLG.js → country.BEwW8TQo.js} +3 -3
- package/dist/chunks/{country.D20NCLLG.js.map → country.BEwW8TQo.js.map} +1 -1
- package/dist/chunks/country.types.jjXwaoMl.js +2537 -0
- package/dist/chunks/country.types.jjXwaoMl.js.map +1 -0
- package/dist/chunks/{dashboard-section.BubZyu8i.js → dashboard-section.TWlLdQHG.js} +3 -3
- package/dist/chunks/{dashboard-section.BubZyu8i.js.map → dashboard-section.TWlLdQHG.js.map} +1 -1
- package/dist/chunks/{dashed-underline.pjYTS0m1.js → dashed-underline.CpDuQ3Fo.js} +3 -3
- package/dist/chunks/{dashed-underline.pjYTS0m1.js.map → dashed-underline.CpDuQ3Fo.js.map} +1 -1
- package/dist/chunks/{data-grid-template.D8RhngPj.js → data-grid-template.DZaE-kOS.js} +4 -4
- package/dist/chunks/{data-grid-template.D8RhngPj.js.map → data-grid-template.DZaE-kOS.js.map} +1 -1
- package/dist/chunks/data-grid.x6cEW0az.js +4069 -0
- package/dist/chunks/data-grid.x6cEW0az.js.map +1 -0
- package/dist/chunks/date-picker.Dln8ocL4.js +222 -0
- package/dist/chunks/{date-picker.CnazYcSX.js.map → date-picker.Dln8ocL4.js.map} +1 -1
- package/dist/chunks/date-range-picker.DPGy2h-9.js +1068 -0
- package/dist/chunks/date-range-picker.DPGy2h-9.js.map +1 -0
- package/dist/chunks/dialog-page.EdejG53a.js +143 -0
- package/dist/chunks/{dialog-page.oyG153fC.js.map → dialog-page.EdejG53a.js.map} +1 -1
- package/dist/chunks/{dropdown-default-textbox.Dvzg0StF.js → dropdown-default-textbox.CjhLIxVq.js} +63 -36
- package/dist/chunks/{dropdown-default-textbox.Dvzg0StF.js.map → dropdown-default-textbox.CjhLIxVq.js.map} +1 -1
- package/dist/chunks/{dropdown-tag.BRB-emd1.js → dropdown-tag.t3FlJUSy.js} +5 -5
- package/dist/chunks/{dropdown-tag.BRB-emd1.js.map → dropdown-tag.t3FlJUSy.js.map} +1 -1
- package/dist/chunks/{dropdown.Ct7uhPr6.js → dropdown.CvNI2V33.js} +329 -235
- package/dist/chunks/{dropdown.Ct7uhPr6.js.map → dropdown.CvNI2V33.js.map} +1 -1
- package/dist/chunks/{empty-state.D_Ac-XXH.js → empty-state.DMV23IZy.js} +2 -2
- package/dist/chunks/{empty-state.D_Ac-XXH.js.map → empty-state.DMV23IZy.js.map} +1 -1
- package/dist/chunks/error-message.BUNKRa_w.js +160 -0
- package/dist/chunks/{error-message.RxdStT3S.js.map → error-message.BUNKRa_w.js.map} +1 -1
- package/dist/chunks/{file-uploader.D5Rjsx4k.js → file-uploader.Cig5gDXT.js} +749 -468
- package/dist/chunks/{file-uploader.D5Rjsx4k.js.map → file-uploader.Cig5gDXT.js.map} +1 -1
- package/dist/chunks/{filter-bar.zD_ctViU.js → filter-bar.x445KK3y.js} +1301 -761
- package/dist/chunks/{filter-bar.zD_ctViU.js.map → filter-bar.x445KK3y.js.map} +1 -1
- package/dist/chunks/fixed-scroller.DR2E_No4.js +148 -0
- package/dist/chunks/{fixed-scroller.MerESbd_.js.map → fixed-scroller.DR2E_No4.js.map} +1 -1
- package/dist/chunks/{footer-actions.CiPj7hZG.js → footer-actions.CIkul1OD.js} +3 -3
- package/dist/chunks/{footer-actions.CiPj7hZG.js.map → footer-actions.CIkul1OD.js.map} +1 -1
- package/dist/chunks/{form-layout-title.Bw7VgOO5.js → form-layout-title.DR5M7GP3.js} +77 -48
- package/dist/chunks/{form-layout-title.Bw7VgOO5.js.map → form-layout-title.DR5M7GP3.js.map} +1 -1
- package/dist/chunks/{header-meta.Dq6TlNPw.js → header-meta.BC5fdpD1.js} +127 -73
- package/dist/chunks/{header-meta.Dq6TlNPw.js.map → header-meta.BC5fdpD1.js.map} +1 -1
- package/dist/chunks/{header-with-views.DaEhkSS8.js → header-with-views.-cvdi9-L.js} +1120 -679
- package/dist/chunks/{header-with-views.DaEhkSS8.js.map → header-with-views.-cvdi9-L.js.map} +1 -1
- package/dist/chunks/{header.DkC-KKWa.js → header.DtmZjxiU.js} +3 -3
- package/dist/chunks/{header.DkC-KKWa.js.map → header.DtmZjxiU.js.map} +1 -1
- package/dist/chunks/{info-icon.BF8KxU-k.js → info-icon.DCR42Kvm.js} +2 -2
- package/dist/chunks/{info-icon.BF8KxU-k.js.map → info-icon.DCR42Kvm.js.map} +1 -1
- package/dist/chunks/input-field-password.Bdlw4dzr.js +381 -0
- package/dist/chunks/{input-field-password.BKT1mYUw.js.map → input-field-password.Bdlw4dzr.js.map} +1 -1
- package/dist/chunks/{input-field-phone-number.BjRKjQOQ.js → input-field-phone-number.DPuWxBBz.js} +98 -71
- package/dist/chunks/{input-field-phone-number.BjRKjQOQ.js.map → input-field-phone-number.DPuWxBBz.js.map} +1 -1
- package/dist/chunks/input-field.DH25CU_G.js +207 -0
- package/dist/chunks/{input-field.m1PMwa4C.js.map → input-field.DH25CU_G.js.map} +1 -1
- package/dist/chunks/input-time.6eJ4-QdU.js +92 -0
- package/dist/chunks/input-time.6eJ4-QdU.js.map +1 -0
- package/dist/chunks/inspector.BzBPlz-5.js +172 -0
- package/dist/chunks/{inspector.Bnm0hl_D.js.map → inspector.BzBPlz-5.js.map} +1 -1
- package/dist/chunks/{link.MhoM3zQj.js → link.DB5g6d48.js} +56 -29
- package/dist/chunks/{link.MhoM3zQj.js.map → link.DB5g6d48.js.map} +1 -1
- package/dist/chunks/{list-item.BnzU1LIu.js → list-item.DqTHh8-Z.js} +2 -2
- package/dist/chunks/{list-item.BnzU1LIu.js.map → list-item.DqTHh8-Z.js.map} +1 -1
- package/dist/chunks/{listbox-option-tag.BhPVuAjJ.js → listbox-option-tag.CvbE-EuG.js} +2 -2
- package/dist/chunks/{listbox-option-tag.BhPVuAjJ.js.map → listbox-option-tag.CvbE-EuG.js.map} +1 -1
- package/dist/chunks/{modal-fullscreen.CXOq6_Cv.js → modal-fullscreen.CaxuXW-H.js} +63 -36
- package/dist/chunks/{modal-fullscreen.CXOq6_Cv.js.map → modal-fullscreen.CaxuXW-H.js.map} +1 -1
- package/dist/chunks/{modal.o0KddMiG.js → modal.Brif0vAy.js} +63 -36
- package/dist/chunks/{modal.o0KddMiG.js.map → modal.Brif0vAy.js.map} +1 -1
- package/dist/chunks/{pagination.ZISqB4M_.js → pagination.BmrU_sn_.js} +221 -99
- package/dist/chunks/{pagination.ZISqB4M_.js.map → pagination.BmrU_sn_.js.map} +1 -1
- package/dist/chunks/promo-banner.Dc_kK1x9.js +91 -0
- package/dist/chunks/{promo-banner.Db2kh2qK.js.map → promo-banner.Dc_kK1x9.js.map} +1 -1
- package/dist/chunks/{radio-group.DnMy7brs.js → radio-group.5oS-AeYN.js} +4 -4
- package/dist/chunks/{radio-group.DnMy7brs.js.map → radio-group.5oS-AeYN.js.map} +1 -1
- package/dist/chunks/{rich-text-editor.Cbv1DxXn.js → rich-text-editor.DSGTe8Zt.js} +1781 -1731
- package/dist/chunks/{rich-text-editor.Cbv1DxXn.js.map → rich-text-editor.DSGTe8Zt.js.map} +1 -1
- package/dist/chunks/search-bar.CNfoeLLt.js +126 -0
- package/dist/chunks/{search-bar.DPjYDhja.js.map → search-bar.CNfoeLLt.js.map} +1 -1
- package/dist/chunks/secondary-nav.IF5CgeIP.js +226 -0
- package/dist/chunks/secondary-nav.IF5CgeIP.js.map +1 -0
- package/dist/chunks/{segmented-control.BqIiX9hv.js → segmented-control.DDtjX-V5.js} +2 -2
- package/dist/chunks/{segmented-control.BqIiX9hv.js.map → segmented-control.DDtjX-V5.js.map} +1 -1
- package/dist/chunks/{selection-card-group.IPiouuot.js → selection-card-group.DZjFeQKR.js} +10 -10
- package/dist/chunks/{selection-card-group.IPiouuot.js.map → selection-card-group.DZjFeQKR.js.map} +1 -1
- package/dist/chunks/{sidepanel.BGMjjB3F.js → sidepanel.DZDXuyzg.js} +66 -39
- package/dist/chunks/{sidepanel.BGMjjB3F.js.map → sidepanel.DZDXuyzg.js.map} +1 -1
- package/dist/chunks/{step.QFER3tSj.js → step.TDm_ts1S.js} +92 -63
- package/dist/chunks/{step.QFER3tSj.js.map → step.TDm_ts1S.js.map} +1 -1
- package/dist/chunks/{structured-list-item.BDJKRC_8.js → structured-list-item.BBBtie1s.js} +58 -31
- package/dist/chunks/{structured-list-item.BDJKRC_8.js.map → structured-list-item.BBBtie1s.js.map} +1 -1
- package/dist/chunks/{summary-grid.types.CIkArZf5.js → summary-grid.types.CrPNQbX0.js} +5 -5
- package/dist/chunks/{summary-grid.types.CIkArZf5.js.map → summary-grid.types.CrPNQbX0.js.map} +1 -1
- package/dist/chunks/{tab.CaXF0dho.js → tab.CNIZyfZt.js} +2 -2
- package/dist/chunks/{tab.CaXF0dho.js.map → tab.CNIZyfZt.js.map} +1 -1
- package/dist/chunks/{tag.CocLKztJ.js → tag.D2xagTJv.js} +2 -2
- package/dist/chunks/{tag.CocLKztJ.js.map → tag.D2xagTJv.js.map} +1 -1
- package/dist/chunks/textarea.Bi53QF5Q.js +218 -0
- package/dist/chunks/{textarea.D4X6Ss9q.js.map → textarea.Bi53QF5Q.js.map} +1 -1
- package/dist/chunks/timeline-item.C6Bi0eam.js +322 -0
- package/dist/chunks/{timeline-item.C8BxWdy1.js.map → timeline-item.C6Bi0eam.js.map} +1 -1
- package/dist/chunks/{toast.BRI3G7TL.js → toast.d8vg71CB.js} +81 -54
- package/dist/chunks/{toast.BRI3G7TL.js.map → toast.d8vg71CB.js.map} +1 -1
- package/dist/chunks/{tooltip.CbsNGnhw.js → tooltip.BxtnF3is.js} +38 -36
- package/dist/chunks/tooltip.BxtnF3is.js.map +1 -0
- package/dist/chunks/{tutorial.BzV6bHQJ.js → tutorial.BCiZMLJE.js} +190 -103
- package/dist/chunks/{tutorial.BzV6bHQJ.js.map → tutorial.BCiZMLJE.js.map} +1 -1
- package/dist/chunks/{use-cached-selected-values.DqX2qsMC.js → use-cached-selected-values.Bn3Y8Iuq.js} +490 -359
- package/dist/chunks/{use-cached-selected-values.DqX2qsMC.js.map → use-cached-selected-values.Bn3Y8Iuq.js.map} +1 -1
- package/dist/chunks/{use-country-items.CI8C7MLU.js → use-country-items.B4j8pAvW.js} +3 -3
- package/dist/chunks/{use-country-items.CI8C7MLU.js.map → use-country-items.B4j8pAvW.js.map} +1 -1
- package/dist/chunks/use-country-phon-code.ByqnuIni.js +6386 -0
- package/dist/chunks/use-country-phon-code.ByqnuIni.js.map +1 -0
- package/dist/chunks/{use-date-input-formatter.BYaTO3vz.js → use-date-input-formatter.DRMt9yR2.js} +2 -2
- package/dist/chunks/{use-date-input-formatter.BYaTO3vz.js.map → use-date-input-formatter.DRMt9yR2.js.map} +1 -1
- package/dist/code-snippet.js +1 -1
- package/dist/country.js +3 -3
- package/dist/dashboard-template.js +1 -1
- package/dist/dashed-underline.js +1 -1
- package/dist/data-grid-template.js +1 -1
- package/dist/data-grid.js +1 -1
- package/dist/date-picker.js +2 -2
- package/dist/date-range-picker.js +2 -2
- package/dist/draggable-handle.js +160 -73
- package/dist/draggable-handle.js.map +1 -1
- package/dist/dropdown.js +4 -4
- package/dist/empty-state.js +1 -1
- package/dist/file-uploader.js +1 -1
- package/dist/filter-bar.js +1 -1
- package/dist/form-layout.js +1 -1
- package/dist/header-with-views.js +1 -1
- package/dist/header.js +1 -1
- package/dist/index.js +215 -213
- package/dist/index.js.map +1 -1
- package/dist/info-icon.js +1 -1
- package/dist/input-field-password.js +1 -1
- package/dist/input-field-phone-number.js +1 -1
- package/dist/input-field.js +1 -1
- package/dist/input-time.js +5 -0
- package/dist/input-time.js.map +1 -0
- package/dist/inspector.js +1 -1
- package/dist/internal.js +12 -12
- package/dist/link.js +1 -1
- package/dist/list.js +1 -1
- package/dist/menu.js +1 -1
- package/dist/modal-fullscreen.js +1 -1
- package/dist/modal.js +2 -2
- package/dist/pagination.js +1 -1
- package/dist/popover.js +1 -1
- package/dist/promo-banner.js +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/rich-text-editor.js +1 -1
- package/dist/search-bar.js +2 -2
- package/dist/secondary-nav.js +1 -1
- package/dist/segmented-control.js +1 -1
- package/dist/selection-card.js +1 -1
- package/dist/sidepanel.js +1 -1
- package/dist/stepper.js +1 -1
- package/dist/structured-list.js +1 -1
- package/dist/summary-grid.js +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tag.js +1 -1
- package/dist/textarea.js +1 -1
- package/dist/timeline.js +1 -1
- package/dist/toast.js +1 -1
- package/dist/tutorial.js +1 -1
- package/dist/web-types.json +198 -1
- package/package.json +9 -9
- package/dist/chunks/accordion-item.BZDSJamR.js +0 -108
- package/dist/chunks/action-bar.CYGUYI0V.js +0 -207
- package/dist/chunks/ai-tag.Cjf38mjR.js +0 -73
- package/dist/chunks/alert.QVQ6Zjbm.js +0 -93
- package/dist/chunks/card.GjhsXOT0.js +0 -128
- package/dist/chunks/chip.DTpENaGC.js +0 -57
- package/dist/chunks/copy.BVGQcf22.js +0 -86
- package/dist/chunks/country.types.DxKjyd0S.js +0 -20
- package/dist/chunks/country.types.DxKjyd0S.js.map +0 -1
- package/dist/chunks/data-grid.DJG8Ty0A.js +0 -3194
- package/dist/chunks/data-grid.DJG8Ty0A.js.map +0 -1
- package/dist/chunks/date-picker.CnazYcSX.js +0 -155
- package/dist/chunks/date-range-picker.Bf9pRNL7.js +0 -811
- package/dist/chunks/date-range-picker.Bf9pRNL7.js.map +0 -1
- package/dist/chunks/dialog-page.oyG153fC.js +0 -116
- package/dist/chunks/error-message.RxdStT3S.js +0 -106
- package/dist/chunks/fixed-scroller.MerESbd_.js +0 -111
- package/dist/chunks/input-field-password.BKT1mYUw.js +0 -234
- package/dist/chunks/input-field.m1PMwa4C.js +0 -170
- package/dist/chunks/inspector.Bnm0hl_D.js +0 -105
- package/dist/chunks/promo-banner.Db2kh2qK.js +0 -64
- package/dist/chunks/search-bar.DPjYDhja.js +0 -89
- package/dist/chunks/secondary-nav.CwJjkJkj.js +0 -112
- package/dist/chunks/secondary-nav.CwJjkJkj.js.map +0 -1
- package/dist/chunks/textarea.D4X6Ss9q.js +0 -169
- package/dist/chunks/timeline-item.C8BxWdy1.js +0 -238
- package/dist/chunks/tooltip.CbsNGnhw.js.map +0 -1
- package/dist/chunks/use-country-phon-code.C6orQNnM.js +0 -291
- package/dist/chunks/use-country-phon-code.C6orQNnM.js.map +0 -1
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { defineComponent as m, provide as _, toRef as b, useAttrs as C, ref as u, watch as S } from "vue";
|
|
2
|
+
import { d as v } from "./debounce.DUTu11PS.js";
|
|
3
|
+
import { u as y } from "./index.B6WW_F-J.js";
|
|
4
|
+
import { I } from "./dropdown.CvNI2V33.js";
|
|
5
|
+
import { B as E } from "./input-field.DH25CU_G.js";
|
|
6
|
+
import { S as k } from "./search.D53Ia3rC.js";
|
|
7
|
+
import { C as T } from "./cross-circle-fill.DTDtgLMf.js";
|
|
8
|
+
import { n as F } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
|
|
9
|
+
import "../assets/search-bar.css";
|
|
10
|
+
var i = /* @__PURE__ */ ((r) => (r.CLEAR = "clear", r.ESCAPE = "escape-pressed", r.INPUT = "input", r.UPDATE = "update:search-term", r))(i || {}), A = /* @__PURE__ */ ((r) => (r.CLEAR = "search-clear", r.INPUT = "search-input", r.UPDATE = "update:search-term", r))(A || {});
|
|
11
|
+
const P = {
|
|
12
|
+
"de-DE": {
|
|
13
|
+
clearSearch: "Suche löschen",
|
|
14
|
+
search: "Suche"
|
|
15
|
+
},
|
|
16
|
+
"en-GB": {
|
|
17
|
+
clearSearch: "Clear search",
|
|
18
|
+
search: "Search"
|
|
19
|
+
},
|
|
20
|
+
"en-US": {
|
|
21
|
+
clearSearch: "Clear search",
|
|
22
|
+
search: "Search"
|
|
23
|
+
},
|
|
24
|
+
"es-ES": {
|
|
25
|
+
clearSearch: "Borrar búsqueda",
|
|
26
|
+
search: "Buscar en"
|
|
27
|
+
},
|
|
28
|
+
"es-MX": {
|
|
29
|
+
clearSearch: "Borrar búsqueda",
|
|
30
|
+
search: "Buscar"
|
|
31
|
+
},
|
|
32
|
+
"fr-FR": {
|
|
33
|
+
clearSearch: "Effacer la recherche",
|
|
34
|
+
search: "Recherche"
|
|
35
|
+
},
|
|
36
|
+
"it-IT": {
|
|
37
|
+
clearSearch: "Cancella ricerca",
|
|
38
|
+
search: "Cerca"
|
|
39
|
+
},
|
|
40
|
+
"ja-JP": {
|
|
41
|
+
clearSearch: "検索をクリア",
|
|
42
|
+
search: "検索"
|
|
43
|
+
},
|
|
44
|
+
"pt-BR": {
|
|
45
|
+
clearSearch: "Limpar busca",
|
|
46
|
+
search: "Busca"
|
|
47
|
+
},
|
|
48
|
+
"zh-CN": {
|
|
49
|
+
clearSearch: "清除搜索",
|
|
50
|
+
search: "搜索"
|
|
51
|
+
}
|
|
52
|
+
}, x = {
|
|
53
|
+
i18n: { messages: P }
|
|
54
|
+
}, B = /* @__PURE__ */ m({
|
|
55
|
+
...x,
|
|
56
|
+
__name: "search-bar",
|
|
57
|
+
props: {
|
|
58
|
+
inputFieldAriaLabel: null,
|
|
59
|
+
condensed: { type: Boolean, default: !1 },
|
|
60
|
+
debounceTime: { default: 300 },
|
|
61
|
+
disabled: { type: Boolean, default: !1 },
|
|
62
|
+
hint: { default: "" },
|
|
63
|
+
placeholder: { default: "" },
|
|
64
|
+
value: { default: void 0 }
|
|
65
|
+
},
|
|
66
|
+
emits: ["input", "clear", "escape-pressed", "blur", "focus"],
|
|
67
|
+
setup(r, { expose: a, emit: t }) {
|
|
68
|
+
const e = r, { t: c } = y();
|
|
69
|
+
_(I, b(e, "hint"));
|
|
70
|
+
const d = C(), s = u(e.value), n = u();
|
|
71
|
+
S(
|
|
72
|
+
() => e.value,
|
|
73
|
+
() => {
|
|
74
|
+
s.value = e.value;
|
|
75
|
+
},
|
|
76
|
+
{ immediate: !0 }
|
|
77
|
+
);
|
|
78
|
+
const p = () => {
|
|
79
|
+
s.value = "", t("clear"), t("input", "");
|
|
80
|
+
}, l = v(() => {
|
|
81
|
+
t("input", s.value);
|
|
82
|
+
}, e.debounceTime), h = (f) => {
|
|
83
|
+
s.value = f, l();
|
|
84
|
+
}, o = () => {
|
|
85
|
+
n.value.focusInput();
|
|
86
|
+
};
|
|
87
|
+
return a({
|
|
88
|
+
/**
|
|
89
|
+
* Focus on the input field when called.
|
|
90
|
+
*/
|
|
91
|
+
focus: o
|
|
92
|
+
}), { __sfc: !0, t: c, props: e, emit: t, attrs: d, searchTerm: s, bentoInputField: n, onClearSearch: p, debouncedEmit: l, onInputEvent: h, focus: o, BentoSearchBarInternalEvent: i, BentoInputField: E, SearchIcon: k, CrossCircleFillIcon: T };
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
var N = function() {
|
|
96
|
+
var a = this, t = a._self._c, e = a._self._setupProxy;
|
|
97
|
+
return t("div", { staticClass: "b-search-bar" }, [t(e.BentoInputField, a._b({ ref: "bentoInputField", attrs: { "model-value": e.searchTerm, type: "search", condensed: a.condensed, "aria-label": a.inputFieldAriaLabel, "aria-hidden": !1, disabled: a.disabled, placeholder: a.placeholder }, on: { "update:model-value": e.onInputEvent, focus: function(c) {
|
|
98
|
+
return e.emit("focus");
|
|
99
|
+
}, blur: function(c) {
|
|
100
|
+
return e.emit("blur");
|
|
101
|
+
}, "escape-pressed": function(c) {
|
|
102
|
+
return e.emit(e.BentoSearchBarInternalEvent.ESCAPE);
|
|
103
|
+
} }, scopedSlots: a._u([{ key: "iconBefore", fn: function() {
|
|
104
|
+
return [t(e.SearchIcon, { attrs: { "svg-title": e.t("search"), "aria-hidden": "true" } })];
|
|
105
|
+
}, proxy: !0 }, e.searchTerm ? { key: "iconAfter", fn: function() {
|
|
106
|
+
return [t("div", { staticClass: "b-search-bar__clear-search", attrs: { tabindex: "0", "data-testid": "b-search-bar-clear-search-button" }, on: { click: e.onClearSearch, keypress: function(c) {
|
|
107
|
+
return !c.type.indexOf("key") && a._k(c.keyCode, "enter", 13, c.key, "Enter") ? null : e.onClearSearch.apply(null, arguments);
|
|
108
|
+
}, keyup: function(c) {
|
|
109
|
+
return !c.type.indexOf("key") && a._k(c.keyCode, "space", 32, c.key, [" ", "Spacebar"]) ? null : e.onClearSearch.apply(null, arguments);
|
|
110
|
+
} } }, [t(e.CrossCircleFillIcon, { attrs: { "svg-title": e.t("clearSearch") } })], 1)];
|
|
111
|
+
}, proxy: !0 } : null], null, !0) }, "bento-input-field", e.attrs, !1))], 1);
|
|
112
|
+
}, R = [], L = /* @__PURE__ */ F(
|
|
113
|
+
B,
|
|
114
|
+
N,
|
|
115
|
+
R,
|
|
116
|
+
!1,
|
|
117
|
+
null,
|
|
118
|
+
"e7a2bf17"
|
|
119
|
+
);
|
|
120
|
+
const w = L.exports;
|
|
121
|
+
export {
|
|
122
|
+
w as B,
|
|
123
|
+
A as a,
|
|
124
|
+
i as b
|
|
125
|
+
};
|
|
126
|
+
//# sourceMappingURL=search-bar.CNfoeLLt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-bar.
|
|
1
|
+
{"version":3,"file":"search-bar.CNfoeLLt.js","sources":["../../src/components/search-bar/search-bar.types.ts","../../src/components/search-bar/search-bar.vue"],"sourcesContent":["export enum BentoSearchBarInternalEvent {\n CLEAR = 'clear',\n ESCAPE = 'escape-pressed',\n INPUT = 'input',\n UPDATE = 'update:search-term',\n}\n\nexport enum BentoSearchBarEvent {\n CLEAR = 'search-clear',\n INPUT = 'search-input',\n UPDATE = 'update:search-term',\n}\n\nexport interface BentoSearchBarItem {\n label: string;\n items?: Array<BentoSearchBarItem>;\n}\n\nexport type BentoSearchBarData = Array<BentoSearchBarItem>;\n\nexport interface BentoSearchBarProps {\n /**\n * Text that labels an the search bar input element\n */\n inputFieldAriaLabel: string;\n\n /**\n * Reduces height of the search bar. Default: false\n */\n condensed?: boolean;\n\n /**\n * Custom debounce time. Default: 300\n */\n debounceTime?: number;\n\n /**\n * Disables the text input.\n */\n disabled?: boolean;\n\n /**\n * Text displayed as a hint when the field is not empty\n */\n hint?: string;\n\n /**\n * Text displayed as the placeholder of the input-field\n */\n placeholder?: string;\n\n /**\n * Text displayed as the value being searched\n */\n value?: string;\n}\n","<template>\n <div class=\"b-search-bar\">\n <bento-input-field\n ref=\"bentoInputField\"\n v-bind=\"attrs\"\n :model-value=\"searchTerm\"\n type=\"search\"\n :condensed=\"condensed\"\n :aria-label=\"inputFieldAriaLabel\"\n :aria-hidden=\"false\"\n :disabled=\"disabled\"\n :placeholder=\"placeholder\"\n @update:model-value=\"onInputEvent\"\n @focus=\"emit('focus')\"\n @blur=\"emit('blur')\"\n @escape-pressed=\"emit(BentoSearchBarInternalEvent.ESCAPE)\"\n >\n <template #iconBefore>\n <search-icon :svg-title=\"t('search')\" aria-hidden=\"true\" />\n </template>\n\n <template v-if=\"searchTerm\" #iconAfter>\n <div\n class=\"b-search-bar__clear-search\"\n tabindex=\"0\"\n data-testid=\"b-search-bar-clear-search-button\"\n @click=\"onClearSearch\"\n @keypress.enter=\"onClearSearch\"\n @keyup.space=\"onClearSearch\"\n >\n <cross-circle-fill-icon :svg-title=\"t('clearSearch')\" />\n </div>\n </template>\n </bento-input-field>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { provide, ref, toRef, useAttrs, watch } from 'vue';\n import { debounce } from '@/utils/ts/debounce';\n import { BentoSearchBarInternalEvent, type BentoSearchBarProps } from './search-bar.types';\n import { useI18n } from '@/utils/ts/i18n';\n import { INPUT_FIELD_HINT_INJECTION_KEY } from '@/components/input-field/input-field.keys';\n // eslint-disable-next-line @typescript-eslint/consistent-type-imports\n import BentoInputField from '@/components/input-field/input-field.vue';\n import SearchIcon from '@adyen/ui-assets-icons-16/vue/search';\n import CrossCircleFillIcon from '@adyen/ui-assets-icons-16/vue/cross-circle-fill';\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n\n const props = defineProps({\n inputFieldAriaLabel: null,\n condensed: { type: Boolean, default: false },\n debounceTime: { default: 300 },\n disabled: { type: Boolean, default: false },\n hint: { default: '' },\n placeholder: { default: '' },\n value: { default: undefined }\n});\n\n const emit = defineEmits([\"input\", \"clear\", \"escape-pressed\", \"blur\", \"focus\"]);\n\n provide(INPUT_FIELD_HINT_INJECTION_KEY, toRef(props, 'hint'));\n\n const attrs = useAttrs();\n const searchTerm = ref(props.value);\n const bentoInputField = ref<InstanceType<typeof BentoInputField> | null>();\n\n watch(\n () => props.value,\n () => {\n searchTerm.value = props.value;\n },\n { immediate: true }\n );\n\n const onClearSearch = () => {\n searchTerm.value = '';\n emit('clear');\n emit('input', '');\n };\n\n const debouncedEmit = debounce(() => {\n emit('input', searchTerm.value);\n }, props.debounceTime);\n\n const onInputEvent = (value: string) => {\n searchTerm.value = value;\n debouncedEmit();\n };\n\n const focus = () => {\n // bentoInputField.value?.focusInput();\n bentoInputField.value.focusInput();\n };\n\n // Expose method so that it can be used to focus on the input from outside the component\n defineExpose({\n /**\n * Focus on the input field when called.\n */\n focus,\n });\n</script>\n\n<script lang=\"ts\">\n /**\n * Search functionality to help users find the desired data quicker.\n * When a user starts typing, the data is dynamically filtered to\n * only show the relevant results.\n *\n * Clearing the search field displays the entire list again.\n *\n * @example\n * import {\n * BentoSearchBar,\n * BentoSearchBarData,\n * useSearchBarFilter\n * } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoSearchBar },\n * template: `\n * <bento-search-bar\n * input-field-aria-label=\"Search bar\"\n * v-model=\"searchTerm\"\n * @input=\"onInput\"\n * @clear=\"onClearSearch\"\n * />\n * // Render the filtered data\n * {{ filteredData }}\n * `,\n * setup() {\n * const searchTerm = ref('');\n * const data = ref<BentoSearchBarData>([]);\n * const filteredData = useSearchBarFilter(searchTerm, data);\n *\n * consdt onInput = () => {}\n * consdt onClearSearch = () => {}\n *\n * return {\n * searchTerm,\n * filteredData,\n * onInput,\n * onClearSearch,\n * };\n * }\n * }\n */\n export default {\n i18n: { messages },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./search-bar.scss\" />\n"],"names":["BentoSearchBarInternalEvent","BentoSearchBarInternalEvent2","BentoSearchBarEvent","BentoSearchBarEvent2","__default__","messages","t","useI18n","provide","INPUT_FIELD_HINT_INJECTION_KEY","toRef","props","attrs","useAttrs","searchTerm","ref","bentoInputField","watch","onClearSearch","emit","debouncedEmit","debounce","onInputEvent","value","focus","expose"],"mappings":";;;;;;;;;AAAO,IAAAA,IAAA,kBAAAC,OACHA,EAAA,QAAA,SACAA,EAAA,SAAA,kBACAA,EAAA,QAAA,SACAA,EAAA,SAAA,sBAJQA,IAAAD,KAAA,CAAA,CAAA,GAOLE,IAAA,kBAAAC,OACHA,EAAA,QAAA,gBACAA,EAAA,QAAA,gBACAA,EAAA,SAAA,sBAHQA,IAAAD,KAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GCiJRE,IAAA;AAAA,EAAe,MAAA,EAAA,UAAAC,EAAA;AAEf;;;;;;;;;;;;;;iBAvGA,EAAA,GAAAC,EAAA,IAAAC,EAAA;AAcA,IAAAC,EAAAC,GAAAC,EAAAC,GAAA,MAAA,CAAA;AAEA,UAAAC,IAAAC,EAAA,GACAC,IAAAC,EAAAJ,EAAA,KAAA,GACAK,IAAAD,EAAA;AAEA,IAAAE;AAAA,MAAA,MAAAN,EAAA;AAAA,MACgB,MAAA;AAER,QAAAG,EAAA,QAAAH,EAAA;AAAA,MAAyB;AAAA,MAC7B,EAAA,WAAA,GAAA;AAAA,IACkB;AAGtB,UAAAO,IAAA,MAAA;AACI,MAAAJ,EAAA,QAAA,IACAK,EAAA,OAAA,GACAA,EAAA,SAAA,EAAA;AAAA,IAAgB,GAGpBC,IAAAC,EAAA,MAAA;AACI,MAAAF,EAAA,SAAAL,EAAA,KAAA;AAAA,IAA8B,GAAAH,EAAA,YAAA,GAGlCW,IAAA,CAAAC,MAAA;AACI,MAAAT,EAAA,QAAAS,GACAH,EAAA;AAAA,IAAc,GAGlBI,IAAA,MAAA;AAEI,MAAAR,EAAA,MAAA,WAAA;AAAA,IAAiC;AAIrC,WAAAS,EAAA;AAAA;AAAA;AAAA;AAAA,MAAa,OAAAD;AAAA,IAIT,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import { defineComponent as T, inject as M, ref as w, computed as m, watch as x, toRef as B, readonly as k, provide as E } from "vue";
|
|
2
|
+
import { B as $ } from "./dropdown.CvNI2V33.js";
|
|
3
|
+
import { B as S } from "./typography.C8lPlsbD.js";
|
|
4
|
+
import { j as L } from "./index.CwzYJHw2.js";
|
|
5
|
+
import { u as R } from "./index.B6WW_F-J.js";
|
|
6
|
+
import { a as V } from "./es6.C1DXQV6f.js";
|
|
7
|
+
import { B as F } from "./button.C9b2AC9w.js";
|
|
8
|
+
import { C as z } from "./chevron-down.eYtgv5ly.js";
|
|
9
|
+
import { C as H } from "./chevron-up.d8cwIlA_.js";
|
|
10
|
+
import { g as P } from "./generate-uid.NJ8tVoha.js";
|
|
11
|
+
import { o as U } from "./resize.Bqks3WUm.js";
|
|
12
|
+
import { u as j } from "./use-expandable-content-height.GkjjbmPy.js";
|
|
13
|
+
import { n as D } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
|
|
14
|
+
import "../assets/secondary-nav.css";
|
|
15
|
+
const O = /* @__PURE__ */ Symbol("secondary nav state"), q = {}, G = /* @__PURE__ */ T({
|
|
16
|
+
...q,
|
|
17
|
+
__name: "secondary-nav-item",
|
|
18
|
+
props: {
|
|
19
|
+
label: null,
|
|
20
|
+
value: null,
|
|
21
|
+
items: null,
|
|
22
|
+
isSubItem: { type: Boolean }
|
|
23
|
+
},
|
|
24
|
+
emits: ["click"],
|
|
25
|
+
setup(v, { emit: t }) {
|
|
26
|
+
const a = v, { activeItemValue: e, updateActiveItemValue: s, allowExpandableItemNavigation: c } = M(O), _ = "b-secondary-nav-item__animation--content", r = w(!1), N = P("secondary-nav-sub-items"), u = w(null), b = m(() => {
|
|
27
|
+
var l;
|
|
28
|
+
return !!((l = a.items) != null && l.length);
|
|
29
|
+
}), d = m(() => e.value === a.value), I = m(() => b.value && !c.value), { updateContentHeight: f, contentHeight: p } = j(u, r), h = m(() => p.value ? { "max-height": p.value } : {}), C = m(() => ({
|
|
30
|
+
"b-secondary-nav-item__option--active": d.value,
|
|
31
|
+
"b-secondary-nav-item__option--expandable": b.value,
|
|
32
|
+
"b-secondary-nav-item__option--sub-item": a.isSubItem
|
|
33
|
+
})), n = (l) => {
|
|
34
|
+
t("click", l), s(a.value);
|
|
35
|
+
}, o = () => {
|
|
36
|
+
r.value = !r.value;
|
|
37
|
+
}, i = (l, y) => l.some(
|
|
38
|
+
(g) => g.value === y || (g.items ? i(g.items, y) : !1)
|
|
39
|
+
);
|
|
40
|
+
return x(
|
|
41
|
+
() => u.value,
|
|
42
|
+
() => {
|
|
43
|
+
let l = null;
|
|
44
|
+
!l && u.value && (l = U(u.value, () => {
|
|
45
|
+
u.value && f();
|
|
46
|
+
}));
|
|
47
|
+
}
|
|
48
|
+
), x(
|
|
49
|
+
r,
|
|
50
|
+
() => {
|
|
51
|
+
f();
|
|
52
|
+
},
|
|
53
|
+
{ immediate: !0 }
|
|
54
|
+
), x(
|
|
55
|
+
e,
|
|
56
|
+
(l) => {
|
|
57
|
+
b.value && a.items && i(a.items, l) && (r.value = !0);
|
|
58
|
+
},
|
|
59
|
+
{ immediate: !0 }
|
|
60
|
+
), { __sfc: !0, activeItemValue: e, updateActiveItemValue: s, allowExpandableItemNavigation: c, CONTENT_TRANSITION_NAME: _, props: a, isOpen: r, subItemsId: N, subItemsRef: u, hasSubItems: b, isItemSelected: d, expandleItemIsToggleOnly: I, updateContentHeight: f, contentHeight: p, subItemsMaxHeight: h, conditionalClasses: C, emit: t, onClick: n, onToggleClick: o, hasActiveDescendant: i, BentoButton: F, BentoTypography: S, ChevronDownIcon: z, ChevronUpIcon: H };
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
var J = function() {
|
|
64
|
+
var t = this, a = t._self._c, e = t._self._setupProxy;
|
|
65
|
+
return a("div", { staticClass: "b-secondary-nav-item" }, [a("div", { staticClass: "b-secondary-nav-item__wrapper" }, [a("button", { staticClass: "b-secondary-nav-item__option", class: e.conditionalClasses, attrs: { "aria-current": e.isItemSelected ? "page" : void 0, "aria-expanded": e.expandleItemIsToggleOnly ? `${e.isOpen}` : void 0, "aria-controls": e.expandleItemIsToggleOnly ? e.subItemsId : void 0 }, on: { click: function(s) {
|
|
66
|
+
e.expandleItemIsToggleOnly ? e.onToggleClick() : e.onClick(s);
|
|
67
|
+
} } }, [a(e.BentoTypography, { staticClass: "b-secondary-nav-item__title", attrs: { variant: "body", stronger: "" } }, [t._v(" " + t._s(t.label) + " ")])], 1), e.hasSubItems ? a(e.BentoButton, { staticClass: "b-secondary-nav-item__toggle", attrs: { "aria-hidden": e.expandleItemIsToggleOnly, tabindex: e.expandleItemIsToggleOnly ? -1 : void 0, variant: "tertiary", "aria-label": e.isOpen ? `Collapse ${t.label}` : `Expand ${t.label}`, "aria-expanded": e.expandleItemIsToggleOnly ? void 0 : `${e.isOpen}`, "aria-controls": e.expandleItemIsToggleOnly ? void 0 : e.subItemsId }, on: { click: function(s) {
|
|
68
|
+
return s.stopPropagation(), e.onToggleClick.apply(null, arguments);
|
|
69
|
+
} }, scopedSlots: t._u([{ key: "iconLeft", fn: function() {
|
|
70
|
+
return [e.isOpen ? a(e.ChevronUpIcon, { staticClass: "b-secondary-nav-item__icon", attrs: { "aria-hidden": "true" } }) : a(e.ChevronDownIcon, { staticClass: "b-secondary-nav-item__icon", attrs: { "aria-hidden": "true" } })];
|
|
71
|
+
}, proxy: !0 }], null, !1, 3107710104) }) : t._e()], 1), a("Transition", { attrs: { name: e.CONTENT_TRANSITION_NAME } }, [e.hasSubItems && e.isOpen ? a("div", { style: e.subItemsMaxHeight, attrs: { id: e.subItemsId } }, [a("ul", { ref: "subItemsRef", staticClass: "b-secondary-nav-item__sub-items" }, t._l(t.items, function(s) {
|
|
72
|
+
return a("li", { key: s.value }, [a("secondary-nav-item", { attrs: { label: s.label, value: s.value, items: s.items, "is-sub-item": "" } })], 1);
|
|
73
|
+
}), 0)]) : t._e()])], 1);
|
|
74
|
+
}, Q = [], X = /* @__PURE__ */ D(
|
|
75
|
+
G,
|
|
76
|
+
J,
|
|
77
|
+
Q,
|
|
78
|
+
!1,
|
|
79
|
+
null,
|
|
80
|
+
"384347ea"
|
|
81
|
+
);
|
|
82
|
+
const A = X.exports, Y = {}, K = /* @__PURE__ */ T({
|
|
83
|
+
...Y,
|
|
84
|
+
__name: "secondary-nav-category",
|
|
85
|
+
props: {
|
|
86
|
+
label: null,
|
|
87
|
+
items: null
|
|
88
|
+
},
|
|
89
|
+
setup(v) {
|
|
90
|
+
return { __sfc: !0, BentoTypography: S, SecondaryNavItem: A };
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
var W = function() {
|
|
94
|
+
var t = this, a = t._self._c, e = t._self._setupProxy;
|
|
95
|
+
return a("section", { staticClass: "b-secondary-nav-category", attrs: { "aria-label": t.label } }, [a(e.BentoTypography, { staticClass: "b-secondary-nav-category__label", attrs: { el: "h1", variant: "caption", stronger: "" } }, [t._v(t._s(t.label))]), a("ul", { staticClass: "b-secondary-nav__list" }, t._l(t.items, function(s) {
|
|
96
|
+
return a("li", { key: s.value }, [a(e.SecondaryNavItem, { attrs: { label: s.label, value: s.value, items: s.items } })], 1);
|
|
97
|
+
}), 0)], 1);
|
|
98
|
+
}, Z = [], ee = /* @__PURE__ */ D(
|
|
99
|
+
K,
|
|
100
|
+
W,
|
|
101
|
+
Z,
|
|
102
|
+
!1,
|
|
103
|
+
null,
|
|
104
|
+
"99d14d1a"
|
|
105
|
+
);
|
|
106
|
+
const ae = ee.exports, te = {
|
|
107
|
+
"de-DE": {
|
|
108
|
+
mobileDropdownAriaLabel: "Navigationsoptionen Dropdown-Menü"
|
|
109
|
+
},
|
|
110
|
+
"en-GB": {
|
|
111
|
+
mobileDropdownAriaLabel: "Navigation options drop-down"
|
|
112
|
+
},
|
|
113
|
+
"en-US": {
|
|
114
|
+
mobileDropdownAriaLabel: "Navigation options dropdown"
|
|
115
|
+
},
|
|
116
|
+
"es-ES": {
|
|
117
|
+
mobileDropdownAriaLabel: "Menú desplegable de opciones de navegación"
|
|
118
|
+
},
|
|
119
|
+
"es-MX": {
|
|
120
|
+
mobileDropdownAriaLabel: "Menú desplegable de opciones de navegación"
|
|
121
|
+
},
|
|
122
|
+
"fr-FR": {
|
|
123
|
+
mobileDropdownAriaLabel: "Menu déroulant des options de navigation"
|
|
124
|
+
},
|
|
125
|
+
"it-IT": {
|
|
126
|
+
mobileDropdownAriaLabel: "Menu a tendina delle opzioni di navigazione"
|
|
127
|
+
},
|
|
128
|
+
"ja-JP": {
|
|
129
|
+
mobileDropdownAriaLabel: "ナビゲーションオプションのドロップダウン"
|
|
130
|
+
},
|
|
131
|
+
"pt-BR": {
|
|
132
|
+
mobileDropdownAriaLabel: "Menu suspenso de opções de navegação"
|
|
133
|
+
},
|
|
134
|
+
"zh-CN": {
|
|
135
|
+
mobileDropdownAriaLabel: "导航选项下拉菜单"
|
|
136
|
+
}
|
|
137
|
+
}, ne = {
|
|
138
|
+
i18n: { messages: te }
|
|
139
|
+
}, se = /* @__PURE__ */ T({
|
|
140
|
+
...ne,
|
|
141
|
+
__name: "secondary-nav",
|
|
142
|
+
props: {
|
|
143
|
+
items: null,
|
|
144
|
+
value: null,
|
|
145
|
+
allowExpandableItemNavigation: { type: Boolean }
|
|
146
|
+
},
|
|
147
|
+
emits: ["change"],
|
|
148
|
+
setup(v, { emit: t }) {
|
|
149
|
+
const a = v, { t: e } = R(), s = L({
|
|
150
|
+
s: V
|
|
151
|
+
}), c = s.smallerOrEqual("s"), _ = (n) => "items" in n && !("value" in n), r = (n, o = 0) => n.flatMap((i) => {
|
|
152
|
+
var y, g;
|
|
153
|
+
const l = {
|
|
154
|
+
label: i.label,
|
|
155
|
+
value: i.value,
|
|
156
|
+
data: { level: o, hasSubItems: !!((y = i.items) != null && y.length) }
|
|
157
|
+
};
|
|
158
|
+
return (g = i.items) != null && g.length ? [l, ...r(i.items, o + 1)] : [l];
|
|
159
|
+
}), N = (n) => {
|
|
160
|
+
var o;
|
|
161
|
+
return !a.allowExpandableItemNavigation && ((o = n.data) == null ? void 0 : o.hasSubItems);
|
|
162
|
+
}, u = m(() => a.items.some((n) => _(n))), b = m(() => a.items.flatMap((n) => {
|
|
163
|
+
var o;
|
|
164
|
+
return _(n) ? [
|
|
165
|
+
{
|
|
166
|
+
label: n.label,
|
|
167
|
+
value: `category-${n.label}`,
|
|
168
|
+
items: r(n.items)
|
|
169
|
+
}
|
|
170
|
+
] : (o = n.items) != null && o.length ? r([n]) : [
|
|
171
|
+
{
|
|
172
|
+
label: n.label,
|
|
173
|
+
value: n.value,
|
|
174
|
+
data: { level: 0 }
|
|
175
|
+
}
|
|
176
|
+
];
|
|
177
|
+
})), d = (n) => n.flatMap((o) => {
|
|
178
|
+
var i;
|
|
179
|
+
return [o, ...(i = o.items) != null && i.length ? d(o.items) : []];
|
|
180
|
+
}), I = (n) => {
|
|
181
|
+
var o;
|
|
182
|
+
return ((o = d(n).find((i) => {
|
|
183
|
+
var l;
|
|
184
|
+
return a.allowExpandableItemNavigation || !((l = i.items) != null && l.length);
|
|
185
|
+
})) == null ? void 0 : o.value) ?? "";
|
|
186
|
+
}, f = m(() => a.items.length ? I(
|
|
187
|
+
a.items.flatMap(
|
|
188
|
+
(n) => _(n) ? d(n.items) : d([n])
|
|
189
|
+
)
|
|
190
|
+
) : ""), p = w(a.value ?? f.value), h = (n) => {
|
|
191
|
+
p.value = n, t("change", n);
|
|
192
|
+
}, C = {
|
|
193
|
+
activeItemValue: k(p),
|
|
194
|
+
updateActiveItemValue: h,
|
|
195
|
+
allowExpandableItemNavigation: B(a, "allowExpandableItemNavigation")
|
|
196
|
+
};
|
|
197
|
+
return x(
|
|
198
|
+
() => a.value,
|
|
199
|
+
(n) => {
|
|
200
|
+
n !== void 0 && (p.value = n);
|
|
201
|
+
}
|
|
202
|
+
), E(O, C), { __sfc: !0, t: e, breakpoints: s, isMobile: c, props: a, emit: t, isCategory: _, mapNestedItems: r, isMobileOptionDisabled: N, hasCategories: u, mobileDropdownItems: b, flattenNestedItems: d, findFirstSelectableNestedItemValue: I, activeItemValueFallback: f, activeItemValue: p, updateActiveItemValue: h, state: C, SecondaryNavItem: A, SecondaryNavCategory: ae, BentoDropdown: $, BentoTypography: S };
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
var oe = function() {
|
|
206
|
+
var t = this, a = t._self._c, e = t._self._setupProxy;
|
|
207
|
+
return a("nav", { staticClass: "b-secondary-nav" }, [e.isMobile ? a(e.BentoDropdown, { attrs: { "aria-label": e.t("mobileDropdownAriaLabel"), items: e.mobileDropdownItems, "static-categories": e.hasCategories, "model-value": e.activeItemValue, "is-option-disabled": e.isMobileOptionDisabled }, on: { "update:model-value": e.updateActiveItemValue }, scopedSlots: t._u([{ key: "display-value", fn: function({ label: s }) {
|
|
208
|
+
return [a(e.BentoTypography, { attrs: { el: "span" } }, [t._v(" " + t._s(s) + " ")])];
|
|
209
|
+
} }, { key: "default", fn: function({ label: s, data: c }) {
|
|
210
|
+
return [a(e.BentoTypography, { class: { "b-secondary-nav__nested-option": !!(c != null && c.level) }, attrs: { el: "span" } }, [t._v(" " + t._s(s) + " ")])];
|
|
211
|
+
} }], null, !1, 776007699) }) : a("ul", { staticClass: "b-secondary-nav__list" }, t._l(t.items, function(s) {
|
|
212
|
+
return a("li", { key: s.label }, ["items" in s && !("value" in s) ? a(e.SecondaryNavCategory, { attrs: { label: s.label, items: s.items } }) : a(e.SecondaryNavItem, { attrs: { label: s.label, value: s.value, items: s.items } })], 1);
|
|
213
|
+
}), 0)], 1);
|
|
214
|
+
}, le = [], ie = /* @__PURE__ */ D(
|
|
215
|
+
se,
|
|
216
|
+
oe,
|
|
217
|
+
le,
|
|
218
|
+
!1,
|
|
219
|
+
null,
|
|
220
|
+
"f2d49daa"
|
|
221
|
+
);
|
|
222
|
+
const he = ie.exports;
|
|
223
|
+
export {
|
|
224
|
+
he as s
|
|
225
|
+
};
|
|
226
|
+
//# sourceMappingURL=secondary-nav.IF5CgeIP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secondary-nav.IF5CgeIP.js","sources":["../../src/components/secondary-nav/secondary-nav.keys.ts","../../src/components/secondary-nav/components/secondary-nav-item/secondary-nav-item.vue","../../src/components/secondary-nav/components/secondary-nav-category/secondary-nav-category.vue","../../src/components/secondary-nav/secondary-nav.vue"],"sourcesContent":["import { type InjectionKey } from 'vue';\nimport { type BentoSecondaryNavState } from './secondary-nav.types';\n\nexport const SECONDARY_NAV_STATE = Symbol('secondary nav state') as InjectionKey<BentoSecondaryNavState>;\n","<template>\n <div class=\"b-secondary-nav-item\">\n <div class=\"b-secondary-nav-item__wrapper\">\n <button\n class=\"b-secondary-nav-item__option\"\n :class=\"conditionalClasses\"\n :aria-current=\"isItemSelected ? 'page' : undefined\"\n :aria-expanded=\"expandleItemIsToggleOnly ? `${isOpen}` : undefined\"\n :aria-controls=\"expandleItemIsToggleOnly ? subItemsId : undefined\"\n @click=\"expandleItemIsToggleOnly ? onToggleClick() : onClick($event)\"\n >\n <bento-typography class=\"b-secondary-nav-item__title\" variant=\"body\" stronger>\n {{ label }}\n </bento-typography>\n </button>\n <bento-button\n v-if=\"hasSubItems\"\n :aria-hidden=\"expandleItemIsToggleOnly\"\n :tabindex=\"expandleItemIsToggleOnly ? -1 : undefined\"\n class=\"b-secondary-nav-item__toggle\"\n variant=\"tertiary\"\n :aria-label=\"isOpen ? `Collapse ${label}` : `Expand ${label}`\"\n :aria-expanded=\"!expandleItemIsToggleOnly ? `${isOpen}` : undefined\"\n :aria-controls=\"!expandleItemIsToggleOnly ? subItemsId : undefined\"\n @click.stop=\"onToggleClick\"\n >\n <template #iconLeft>\n <chevron-up-icon v-if=\"isOpen\" class=\"b-secondary-nav-item__icon\" aria-hidden=\"true\" />\n <chevron-down-icon v-else class=\"b-secondary-nav-item__icon\" aria-hidden=\"true\" />\n </template>\n </bento-button>\n </div>\n <Transition :name=\"CONTENT_TRANSITION_NAME\">\n <div v-if=\"hasSubItems && isOpen\" :id=\"subItemsId\" :style=\"subItemsMaxHeight\">\n <ul ref=\"subItemsRef\" class=\"b-secondary-nav-item__sub-items\">\n <li v-for=\"item in items\" :key=\"item.value\">\n <secondary-nav-item :label=\"item.label\" :value=\"item.value\" :items=\"item.items\" is-sub-item />\n </li>\n </ul>\n </div>\n </Transition>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\n import { SECONDARY_NAV_STATE } from '../../secondary-nav.keys';\n import { BentoButton } from '@/components/button';\n import { BentoTypography } from '@/components/typography';\n import ChevronDownIcon from '@adyen/ui-assets-icons-16/vue/chevron-down';\n import ChevronUpIcon from '@adyen/ui-assets-icons-16/vue/chevron-up';\n import { computed, inject, ref, watch } from 'vue';\n import { generateUid } from '@/core/utils/ts';\n import { type BentoSecondaryNavItemsItem } from '../../secondary-nav.types';\n import { observeSizeOfElement } from '@/utils/ts/resize';\n import { useExpandableContentHeight } from '@/composables/use-expandable-content-height/use-expandable-content-height';\n\n const { activeItemValue, updateActiveItemValue, allowExpandableItemNavigation } = inject(SECONDARY_NAV_STATE);\n const CONTENT_TRANSITION_NAME = 'b-secondary-nav-item__animation--content';\n\n const props = defineProps({\n label: null,\n value: null,\n items: null,\n isSubItem: { type: Boolean }\n});\n\n const isOpen = ref(false);\n const subItemsId = generateUid('secondary-nav-sub-items');\n const subItemsRef = ref<HTMLUListElement>(null);\n const hasSubItems = computed(() => !!props.items?.length);\n const isItemSelected = computed(() => activeItemValue.value === props.value);\n const expandleItemIsToggleOnly = computed(() => hasSubItems.value && !allowExpandableItemNavigation.value);\n const { updateContentHeight, contentHeight } = useExpandableContentHeight(subItemsRef, isOpen);\n const subItemsMaxHeight = computed(() => (contentHeight.value ? { 'max-height': contentHeight.value } : {}));\n\n const conditionalClasses = computed(() => ({\n 'b-secondary-nav-item__option--active': isItemSelected.value,\n 'b-secondary-nav-item__option--expandable': hasSubItems.value,\n 'b-secondary-nav-item__option--sub-item': props.isSubItem,\n }));\n\n const emit = defineEmits([\"click\"]);\n\n const onClick = (e: MouseEvent) => {\n emit('click', e);\n updateActiveItemValue(props.value);\n };\n\n const onToggleClick = () => {\n isOpen.value = !isOpen.value;\n };\n\n const hasActiveDescendant = (items: Array<BentoSecondaryNavItemsItem>, value: string): boolean => {\n return items.some(\n item => item.value === value || (item.items ? hasActiveDescendant(item.items, value) : false)\n );\n };\n\n watch(\n () => subItemsRef.value,\n () => {\n let observer: ResizeObserver | null = null;\n\n if (!observer && subItemsRef.value) {\n observer = observeSizeOfElement(subItemsRef.value, () => {\n if (subItemsRef.value) {\n updateContentHeight();\n }\n });\n }\n }\n );\n\n watch(\n isOpen,\n () => {\n updateContentHeight();\n },\n { immediate: true }\n );\n\n watch(\n activeItemValue,\n value => {\n if (hasSubItems.value && props.items && hasActiveDescendant(props.items, value)) {\n isOpen.value = true;\n }\n },\n { immediate: true }\n );\n</script>\n\n<script lang=\"ts\">\n /**\n * This component shouldn't be used directly. It is internally used by {@see BentoSecondaryNav}\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"./secondary-nav-item.scss\" />\n","<template>\n <section class=\"b-secondary-nav-category\" :aria-label=\"label\">\n <bento-typography el=\"h1\" class=\"b-secondary-nav-category__label\" variant=\"caption\" stronger>{{\n label\n }}</bento-typography>\n <ul class=\"b-secondary-nav__list\">\n <li v-for=\"item in items\" :key=\"item.value\">\n <secondary-nav-item :label=\"item.label\" :value=\"item.value\" :items=\"item.items\" />\n </li>\n </ul>\n </section>\n</template>\n\n<script lang=\"ts\" setup>\n import { BentoTypography } from '@/components/typography';\n import { SecondaryNavItem } from '../secondary-nav-item';\n import { type BentoSecondaryNavItemsItem } from '../../secondary-nav.types';\n\n defineProps({\n label: null,\n items: null\n});\n</script>\n\n<script lang=\"ts\">\n /**\n * This component shouldn't be used directly. It is internally used by {@see BentoSecondaryNav}\n */\n export default {};\n</script>\n\n<style lang=\"scss\" scoped src=\"./secondary-nav-category.scss\" />\n","<template>\n <nav class=\"b-secondary-nav\">\n <bento-dropdown\n v-if=\"isMobile\"\n :aria-label=\"t('mobileDropdownAriaLabel')\"\n :items=\"mobileDropdownItems\"\n :static-categories=\"hasCategories\"\n :model-value=\"activeItemValue\"\n :is-option-disabled=\"isMobileOptionDisabled\"\n @update:model-value=\"updateActiveItemValue\"\n >\n <template #display-value=\"{ label }\">\n <bento-typography el=\"span\">\n {{ label }}\n </bento-typography>\n </template>\n <template #default=\"{ label, data }\">\n <bento-typography el=\"span\" :class=\"{ 'b-secondary-nav__nested-option': !!data?.level }\">\n {{ label }}\n </bento-typography>\n </template>\n </bento-dropdown>\n <ul v-else class=\"b-secondary-nav__list\">\n <li v-for=\"item in items\" :key=\"item.label\">\n <secondary-nav-category\n v-if=\"'items' in item && !('value' in item)\"\n :label=\"item.label\"\n :items=\"item.items\"\n />\n <secondary-nav-item v-else :label=\"item.label\" :value=\"item.value\" :items=\"item.items\" />\n </li>\n </ul>\n </nav>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, provide, readonly, ref, toRef, watch } from 'vue';\n import { SecondaryNavItem } from './components/secondary-nav-item';\n import { SecondaryNavCategory } from './components/secondary-nav-category';\n import { SECONDARY_NAV_STATE } from './secondary-nav.keys';\n import {\n type BentoSecondaryNavItems,\n type BentoSecondaryNavItemsCategory,\n type BentoSecondaryNavItemsItem,\n type BentoSecondaryNavState,\n } from './secondary-nav.types';\n import { BentoDropdown } from '@/components/dropdown';\n import { BentoTypography } from '@/components/typography';\n import { useBreakpoints } from '@vueuse/core';\n import { useI18n } from '@/utils/ts/i18n';\n import { type BentoListboxOptionItem, type BentoListboxOptions } from '@/types/listbox';\n import { BMediaQuerySMax } from '@adyen/bento-design-tokens/dist/js/bento/es6';\n\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n\n const breakpoints = useBreakpoints({\n s: BMediaQuerySMax,\n });\n\n const isMobile = breakpoints.smallerOrEqual('s');\n const props = defineProps({\n items: null,\n value: null,\n allowExpandableItemNavigation: { type: Boolean }\n});\n\n const emit = defineEmits([\"change\"]);\n\n const isCategory = (item: BentoSecondaryNavItems[number]): item is BentoSecondaryNavItemsCategory =>\n 'items' in item && !('value' in item);\n\n const mapNestedItems = (items: Array<BentoSecondaryNavItemsItem>, level = 0): BentoListboxOptions =>\n items.flatMap((item): BentoListboxOptions => {\n const currentItem: BentoListboxOptionItem = {\n label: item.label,\n value: item.value,\n data: { level, hasSubItems: !!item.items?.length },\n };\n\n if (item.items?.length) {\n return [currentItem, ...mapNestedItems(item.items, level + 1)];\n }\n\n return [currentItem];\n });\n\n const isMobileOptionDisabled = (option: BentoListboxOptionItem): boolean =>\n !props.allowExpandableItemNavigation && (option.data as { hasSubItems?: boolean })?.hasSubItems;\n\n const hasCategories = computed(() => props.items.some(item => isCategory(item)));\n const mobileDropdownItems = computed<BentoListboxOptions>(() => {\n return props.items.flatMap(item => {\n if (isCategory(item)) {\n return [\n {\n label: item.label,\n value: `category-${item.label}`,\n items: mapNestedItems(item.items),\n } satisfies BentoListboxOptionItem,\n ];\n }\n\n if (item.items?.length) {\n return mapNestedItems([item]);\n }\n\n return [\n {\n label: item.label,\n value: item.value,\n data: { level: 0 },\n } satisfies BentoListboxOptionItem,\n ];\n });\n });\n\n const flattenNestedItems = (items: Array<BentoSecondaryNavItemsItem>): Array<BentoSecondaryNavItemsItem> =>\n items.flatMap(item => [item, ...(item.items?.length ? flattenNestedItems(item.items) : [])]);\n\n const findFirstSelectableNestedItemValue = (items: Array<BentoSecondaryNavItemsItem>): string =>\n flattenNestedItems(items).find(item => props.allowExpandableItemNavigation || !item.items?.length)?.value ?? '';\n\n const activeItemValueFallback = computed(() => {\n if (!props.items.length) {\n return '';\n }\n\n return findFirstSelectableNestedItemValue(\n props.items.flatMap(item =>\n isCategory(item) ? flattenNestedItems(item.items) : flattenNestedItems([item])\n )\n );\n });\n\n const activeItemValue = ref(props.value ?? activeItemValueFallback.value);\n const updateActiveItemValue = (value: string) => {\n activeItemValue.value = value;\n emit('change', value);\n };\n\n // The component's state is inject on `secondary-nav-item` to determine the\n // current active item and to change its value\n const state: BentoSecondaryNavState = {\n activeItemValue: readonly(activeItemValue),\n updateActiveItemValue,\n allowExpandableItemNavigation: toRef(props, 'allowExpandableItemNavigation'),\n };\n\n watch(\n () => props.value,\n value => {\n if (value !== undefined) {\n activeItemValue.value = value;\n }\n }\n );\n\n provide(SECONDARY_NAV_STATE, state);\n</script>\n\n<script lang=\"ts\">\n /**\n * Secondary Nav offers users a structured way to access information.\n * It also provides a clear hierarchy for users to understand and navigate through various information.\n *\n * @example\n * import { BentoSecondaryNav } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoSecondaryNav },\n * template: `\n * <bento-secondary-nav :value=\"value\" :items=\"items\" />\n * `,\n * setup() {\n * const value = ref(2) // Active item value\n * const items: BentoSecondaryNavItemInfo[] = [\n * { label: 'Option 1', value: 1 },\n * { label: 'Option 2', value: 2 },\n * ];\n * return { items, value };\n * }\n * }\n */\n export default {\n i18n: { messages },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./secondary-nav.scss\" />\n"],"names":["SECONDARY_NAV_STATE","__default__$2","activeItemValue","updateActiveItemValue","allowExpandableItemNavigation","inject","CONTENT_TRANSITION_NAME","isOpen","ref","subItemsId","generateUid","subItemsRef","hasSubItems","computed","_a","props","isItemSelected","expandleItemIsToggleOnly","updateContentHeight","contentHeight","useExpandableContentHeight","subItemsMaxHeight","conditionalClasses","onClick","e","emit","onToggleClick","hasActiveDescendant","items","value","item","watch","observer","observeSizeOfElement","__default__$1","__default__","messages","t","useI18n","breakpoints","useBreakpoints","BMediaQuerySMax","isMobile","isCategory","mapNestedItems","level","currentItem","_b","isMobileOptionDisabled","option","hasCategories","mobileDropdownItems","flattenNestedItems","findFirstSelectableNestedItemValue","activeItemValueFallback","state","readonly","toRef","provide"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent as m, ref as c, computed as d, toRef as g, watch as C, onMounted as h } from "vue";
|
|
2
2
|
import { B, p as y } from "./typography.C8lPlsbD.js";
|
|
3
3
|
import { g as w } from "./generate-uid.NJ8tVoha.js";
|
|
4
|
-
import { b as x } from "./tooltip.
|
|
4
|
+
import { b as x } from "./tooltip.BxtnF3is.js";
|
|
5
5
|
import { n as f } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
|
|
6
6
|
import { o as $ } from "./resize.Bqks3WUm.js";
|
|
7
7
|
import "../assets/segmented-control.css";
|
|
@@ -110,4 +110,4 @@ const q = P.exports;
|
|
|
110
110
|
export {
|
|
111
111
|
q as B
|
|
112
112
|
};
|
|
113
|
-
//# sourceMappingURL=segmented-control.
|
|
113
|
+
//# sourceMappingURL=segmented-control.DDtjX-V5.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segmented-control.
|
|
1
|
+
{"version":3,"file":"segmented-control.DDtjX-V5.js","sources":["../../src/components/segmented-control/components/segmented-control-button/segmented-control-button.vue","../../src/components/segmented-control/segmented-control.vue"],"sourcesContent":["<template>\n <div class=\"b-segmented-control-button\" :class=\"conditionalClasses\">\n <input\n :id=\"segmentedControlButtonId\"\n v-bento-tooltip-directive=\"tooltipText\"\n :aria-checked=\"isChecked\"\n :aria-label=\"label\"\n :checked=\"isChecked\"\n :disabled=\"disabled\"\n :value=\"value\"\n type=\"radio\"\n class=\"b-segmented-control-button__input\"\n role=\"radio\"\n @change=\"onClick\"\n />\n <label v-if=\"label\" :for=\"segmentedControlButtonId\" class=\"b-segmented-control-button__label-container\">\n <bento-typography\n ref=\"segmentedControlButtonLabel\"\n class=\"b-segmented-control-button__label\"\n el=\"span\"\n variant=\"body\"\n stronger\n >\n {{ label }}\n </bento-typography>\n </label>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, type ComputedRef, ref } from 'vue';\n import { BentoTypography } from '@/components/typography';\n import { generateUid } from '@/core/utils/ts';\n import { BentoTooltipDirective as vBentoTooltipDirective } from '@/directives';\n\n const props = defineProps({\n disabled: { type: Boolean, default: false },\n fullWidth: { type: Boolean, default: false },\n label: null,\n modelValue: { default: null },\n tooltipText: { default: undefined },\n truncate: { type: Boolean, default: false },\n value: null,\n wrap: { type: Boolean, default: false }\n});\n\n const emit = defineEmits([\"update:model-value\"]);\n\n const segmentedControlButtonLabel = ref();\n const segmentedControlButtonId = generateUid('segmented-control-button');\n const isChecked: ComputedRef<boolean> = computed(() => props.value === props.modelValue);\n const conditionalClasses = computed(() => ({\n 'b-segmented-control-button--hug-content': !props.fullWidth,\n 'b-segmented-control-button--full-width': props.fullWidth,\n 'b-segmented-control-button--truncate': props.truncate,\n 'b-segmented-control-button--wrap': props.wrap && !props.truncate,\n }));\n const onClick = () => {\n if (!props.disabled) {\n emit('update:model-value', props.value);\n }\n };\n</script>\n\n<script lang=\"ts\">\n /**\n * Internal component to be used within the BentoSegmentedControl component only\n */\n export default {\n name: 'bento-segmented-control-button',\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./segmented-control-button.scss\" />\n","<template>\n <div ref=\"segmentedControlRef\" role=\"group\" class=\"b-segmented-control\" :class=\"conditionalClasses\">\n <segmented-control-button\n v-for=\"(item, index) in computedItems\"\n ref=\"segmentedControlButtonRef\"\n :key=\"`segmented-control-item-${index}-${item.label}`\"\n class=\"b-segmented-control__item\"\n :label=\"item.label\"\n :value=\"item.value\"\n :disabled=\"item.disabled\"\n :truncate=\"truncate\"\n :wrap=\"wrap\"\n :full-width=\"fullWidth\"\n :model-value=\"inputValue\"\n :tooltip-text=\"item.tooltipText\"\n @update:model-value=\"onInput\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, onMounted, ref, toRef, watch } from 'vue';\n import SegmentedControlButton from './components/segmented-control-button/segmented-control-button.vue';\n import { type BentoSegmentedControlProps, type BentoSegmentedControlValue } from './segmented-control.types';\n import { observeSizeOfElement } from '@/utils/ts/resize';\n import { printDevelopmentWarning } from '@/utils/ts/print-development-warning';\n\n const emit = defineEmits([\"update:model-value\", \"input\"]);\n\n const props = defineProps({\n ariaLabel: { default: null },\n fullWidth: { type: Boolean, default: false },\n items: null,\n modelValue: { default: null },\n wrap: { type: Boolean, default: false }\n});\n\n const inputValue = toRef(props, 'modelValue');\n\n const segmentedControlRef = ref();\n const segmentedControlButtonRef = ref();\n const hasEllipsis = ref();\n\n const truncate = computed(() => !props.wrap);\n\n watch(\n () => props.items,\n () => {\n if (props.items.length > 5) {\n printDevelopmentWarning(\n 'Do not use when you need to provide more than 5 segments at a time. If you need to provide more options, use a dropdown component.'\n );\n }\n },\n { immediate: true }\n );\n\n onMounted(() => {\n observeSizeOfElement(segmentedControlRef.value, () => {\n if (segmentedControlRef.value) {\n hasEllipsis.value = segmentedControlButtonRef?.value?.map(\n el =>\n el.$refs.segmentedControlButtonLabel.$el.offsetWidth <\n el.$refs.segmentedControlButtonLabel.$el.scrollWidth\n );\n }\n });\n });\n\n const computedItems = computed(() =>\n props.items.map((el, index) => ({\n ...el,\n tooltipText: truncate.value && hasEllipsis?.value?.[index] ? el.label : undefined,\n }))\n );\n\n const onInput = value => {\n emit('update:model-value', value);\n emit('input', value);\n };\n\n const conditionalClasses = computed(() => ({\n 'b-segmented-control--hug': !props.fullWidth,\n 'b-segmented-control--full-width': props.fullWidth,\n 'b-segmented-control--truncate': truncate.value,\n 'b-segmented-control--wrap': props.wrap,\n }));\n</script>\n\n<script lang=\"ts\">\n /**\n * @example\n * import { BentoSegmentedControl } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoSegmentedControl },\n * template: `\n * <bento-segmented-control\n * :items=\"[{ label: 'Segment 1', value: 1 }, { label: 'Segment 2', value: 2 }, { label: 'Segment 3', value: 3, disabled: true }]\"\n * :model-value=\"1\"\n * @update:model-value=\"yourUpdateHandler\"\n * />\n * `\n * }\n */\n export default {\n name: 'bento-segmented-control',\n model: { prop: 'modelValue' },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./segmented-control.scss\" />\n"],"names":["__default__$1","segmentedControlButtonLabel","ref","segmentedControlButtonId","generateUid","isChecked","computed","props","conditionalClasses","emit","__default__","inputValue","toRef","segmentedControlRef","segmentedControlButtonRef","hasEllipsis","truncate","watch","printDevelopmentWarning","onMounted","observeSizeOfElement","_a","el","computedItems","index","onInput","value"],"mappings":";;;;;;;AAoEI,MAAAA,IAAA;AAAA,EAAe,MAAA;AAEf;;;;;;;;;;;;;;iBAtBAC,IAAAC,EAAA,GACAC,IAAAC,EAAA,0BAAA,GACAC,IAAAC,EAAA,MAAAC,EAAA,UAAAA,EAAA,UAAA,GACAC,IAAAF,EAAA,OAAA;AAAA,MAA2C,2CAAA,CAAAC,EAAA;AAAA,MACW,0CAAAA,EAAA;AAAA,MACF,wCAAAA,EAAA;AAAA,MACF,oCAAAA,EAAA,QAAA,CAAAA,EAAA;AAAA,IACW,EAAA;sJAE7D,MAAA;AACI,MAAAA,EAAA,YACIE,EAAA,sBAAAF,EAAA,KAAA;AAAA,IACJ;;;;;;;;;;;;;;qBC6CJG,IAAA;AAAA,EAAe,MAAA;AAAA,EACL,OAAA,EAAA,MAAA,aAAA;AAEV;;;;;;;;;;;iBAvEAC,IAAAC,EAAAL,GAAA,YAAA,GAEAM,IAAAX,EAAA,GACAY,IAAAZ,EAAA,GACAa,IAAAb,EAAA,GAEAc,IAAAV,EAAA,MAAA,CAAAC,EAAA,IAAA;AAEA,IAAAU;AAAA,MAAA,MAAAV,EAAA;AAAA,MACgB,MAAA;AAER,QAAAA,EAAA,MAAA,SAAA,KACIW;AAAA,UAAA;AAAA,QACI;AAAA,MAER;AAAA,MACJ,EAAA,WAAA,GAAA;AAAA,IACkB,GAGtBC,EAAA,MAAA;AACI,MAAAC,EAAAP,EAAA,OAAA,MAAA;;AACI,QAAAA,EAAA,UACIE,EAAA,SAAAM,IAAAP,KAAA,gBAAAA,EAAA,UAAA,gBAAAO,EAAA;AAAA,UAAsD,CAAAC,MAAAA,EAAA,MAAA,4BAAA,IAAA,cAAAA,EAAA,MAAA,4BAAA,IAAA;AAAA;AAAA,MAK1D,CAAA;AAAA,IACH,CAAA;AAGL,UAAAC,IAAAjB;AAAA,MAAsB,MAAAC,EAAA,MAAA,IAAA,CAAAe,GAAAE,MAAA;;AAAA;AAAA,UACc,GAAAF;AAAA,UACzB,aAAAN,EAAA,WAAAK,IAAAN,KAAA,gBAAAA,EAAA,UAAA,QAAAM,EAAAG,MAAAF,EAAA,QAAA;AAAA,QACqE;AAAA,OAAA;AAAA,IAC1E,GAGNG,IAAA,CAAAC,MAAA;AACI,MAAAjB,EAAA,sBAAAiB,CAAA,GACAjB,EAAA,SAAAiB,CAAA;AAAA,IAAmB,GAGvBlB,IAAAF,EAAA,OAAA;AAAA,MAA2C,4BAAA,CAAAC,EAAA;AAAA,MACJ,mCAAAA,EAAA;AAAA,MACM,iCAAAS,EAAA;AAAA,MACC,6BAAAT,EAAA;AAAA,IACP,EAAA;;;;;;;;;;;;;;;;;;"}
|
|
@@ -2,16 +2,16 @@ import { defineComponent as O, useSlots as D, computed as n, inject as F, ref as
|
|
|
2
2
|
import { b as Y } from "./index.CwzYJHw2.js";
|
|
3
3
|
import { a as Q, b as U } from "./es6.C1DXQV6f.js";
|
|
4
4
|
import { B as H } from "./typography.C8lPlsbD.js";
|
|
5
|
-
import {
|
|
6
|
-
import { u as K } from "./aria-label.CaUURpnB.js";
|
|
5
|
+
import { u as J } from "./aria-label.CaUURpnB.js";
|
|
7
6
|
import { g as $ } from "./generate-uid.NJ8tVoha.js";
|
|
8
|
-
import { u as
|
|
9
|
-
import { a as
|
|
7
|
+
import { u as K } from "./use-has-slot.C9lQZ6nz.js";
|
|
8
|
+
import { a as X } from "./radio-input.CLlYadKI.js";
|
|
9
|
+
import { C as Z } from "./checkbox-input.08E9BNeF.js";
|
|
10
10
|
import { n as N } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
|
|
11
11
|
import { u as ee } from "./form-field.D_2g7vaP.js";
|
|
12
12
|
import { G as te } from "./grid-layout.1aIiz2N_.js";
|
|
13
|
-
import { E as oe } from "./error-message.
|
|
14
|
-
import { C as ae } from "./controls-group.
|
|
13
|
+
import { E as oe } from "./error-message.BUNKRa_w.js";
|
|
14
|
+
import { C as ae } from "./controls-group.D_KE99mg.js";
|
|
15
15
|
import "../assets/selection-card-group.css";
|
|
16
16
|
var E = /* @__PURE__ */ ((u) => (u.DISABLED = "disabled", u.READONLY = "readonly", u.ERROR = "error", u))(E || {});
|
|
17
17
|
const q = /* @__PURE__ */ Symbol("selection card radio input injection key"), le = {
|
|
@@ -79,7 +79,7 @@ const q = /* @__PURE__ */ Symbol("selection card radio input injection key"), le
|
|
|
79
79
|
},
|
|
80
80
|
emits: ["input", "update:model-value"],
|
|
81
81
|
setup(u, { emit: e }) {
|
|
82
|
-
const t = u, o = D(), a =
|
|
82
|
+
const t = u, o = D(), a = K(o), C = $("selection-card-input-id"), s = $("selection-card-description"), d = n(
|
|
83
83
|
() => t.modelValue
|
|
84
84
|
), B = n(
|
|
85
85
|
() => t.modelValue
|
|
@@ -97,7 +97,7 @@ const q = /* @__PURE__ */ Symbol("selection card radio input injection key"), le
|
|
|
97
97
|
"b-selection-card__checkbox-container-text--center-aligned": b.value
|
|
98
98
|
})), S = n(() => ({
|
|
99
99
|
"b-selection-card__slot--with-icon": a("icon")
|
|
100
|
-
})), y =
|
|
100
|
+
})), y = J({
|
|
101
101
|
ariaLabel: t.title,
|
|
102
102
|
label: t.value
|
|
103
103
|
}), l = n(() => Array.isArray(t.modelValue)), R = n(() => c.value ? t.value === t.modelValue : l.value ? t.modelValue.some((i) => i === t.value) : t.modelValue), c = F(q, h(!1)), b = n(() => !t.subtitle && !t.description), p = h(null), m = h(null), r = h(null), v = (i) => {
|
|
@@ -122,7 +122,7 @@ const q = /* @__PURE__ */ Symbol("selection card radio input injection key"), le
|
|
|
122
122
|
}, M = (i) => {
|
|
123
123
|
!t.disabled && !t.readonly && (e("update:model-value", i), e("input", i));
|
|
124
124
|
};
|
|
125
|
-
return { __sfc: !0, props: t, emit: e, slots: o, hasSlot: a, inputId: C, descriptionId: s, computedRadioInputModelValue: d, computedCheckboxInputModelValue: B, conditionalClasses: V, containerConditionalClasses: x, checkboxContainerConditionalClasses: _, checkboxContainerTextConditionalClasses: g, slotConditionalClasses: S, ariaLabel: y, isCheckboxGroup: l, isChecked: R, isRadioInput: c, isTitleOnly: b, inputRef: p, slotRef: m, dynamicSlotRef: r, handleCardClick: v, toggleInput: w, onChange: M, BentoTypography: H, CheckboxInput:
|
|
125
|
+
return { __sfc: !0, props: t, emit: e, slots: o, hasSlot: a, inputId: C, descriptionId: s, computedRadioInputModelValue: d, computedCheckboxInputModelValue: B, conditionalClasses: V, containerConditionalClasses: x, checkboxContainerConditionalClasses: _, checkboxContainerTextConditionalClasses: g, slotConditionalClasses: S, ariaLabel: y, isCheckboxGroup: l, isChecked: R, isRadioInput: c, isTitleOnly: b, inputRef: p, slotRef: m, dynamicSlotRef: r, handleCardClick: v, toggleInput: w, onChange: M, BentoTypography: H, CheckboxInput: Z, RadioInput: X };
|
|
126
126
|
}
|
|
127
127
|
});
|
|
128
128
|
var re = function() {
|
|
@@ -237,4 +237,4 @@ export {
|
|
|
237
237
|
E as a,
|
|
238
238
|
Ve as s
|
|
239
239
|
};
|
|
240
|
-
//# sourceMappingURL=selection-card-group.
|
|
240
|
+
//# sourceMappingURL=selection-card-group.DZjFeQKR.js.map
|