@adyen/bento-vue2 1.81.0 → 1.82.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/README.md +1 -1
- package/dist/@types/components.d.ts +196 -0
- package/dist/@types/index.d.ts +17585 -0
- package/dist/@types/use-form-v4.d.ts +86 -0
- package/dist/accordion.js +6 -0
- package/dist/accordion.js.map +1 -0
- package/dist/action-bar.js +5 -0
- package/dist/action-bar.js.map +1 -0
- package/dist/alert.js +8 -0
- package/dist/alert.js.map +1 -0
- package/dist/assets/accordion-item.css +1 -0
- package/dist/assets/action-bar.css +1 -0
- package/dist/assets/ai-button.css +1 -0
- package/dist/assets/alert.css +1 -0
- package/dist/assets/avatar.css +1 -0
- package/dist/assets/base-button.css +1 -0
- package/dist/assets/base-modal.css +1 -0
- package/dist/assets/button-actions-with-menu.css +1 -0
- package/dist/assets/button-actions.css +1 -0
- package/dist/assets/button.css +1 -0
- package/dist/assets/calendar.css +1 -0
- package/dist/assets/card.css +1 -0
- package/dist/assets/checkbox-group.css +1 -0
- package/dist/assets/checkbox-input.css +1 -0
- package/dist/assets/checkbox.css +1 -0
- package/dist/assets/chip.css +1 -0
- package/dist/assets/code-snippet.css +1 -0
- package/dist/assets/controls-group.css +1 -0
- package/dist/assets/copy.css +1 -0
- package/dist/assets/country.css +1 -0
- package/dist/assets/currency.css +1 -0
- package/dist/assets/dashboard-section.css +1 -0
- package/dist/assets/dashed-underline.css +1 -0
- package/dist/assets/data-grid-template.css +1 -0
- package/dist/assets/data-grid.css +1 -0
- package/dist/assets/date-picker.css +1 -0
- package/dist/assets/date-range-picker.css +1 -0
- package/dist/assets/date.css +1 -0
- package/dist/assets/dialog-page.css +1 -0
- package/dist/assets/divider.css +1 -0
- package/dist/assets/dropdown-default-textbox.css +1 -0
- package/dist/assets/dropdown-tag.css +1 -0
- package/dist/assets/dropdown.css +1 -0
- package/dist/assets/empty-state.css +1 -0
- package/dist/assets/field-label.css +1 -0
- package/dist/assets/file-uploader.css +1 -0
- package/dist/assets/filter-bar.css +1 -0
- package/dist/assets/fixed-scroller.css +1 -0
- package/dist/assets/focus-trap.css +1 -0
- package/dist/assets/footer-actions.css +1 -0
- package/dist/assets/form-layout-title.css +1 -0
- package/dist/assets/grid-layout.css +1 -0
- package/dist/assets/header-meta.css +1 -0
- package/dist/assets/header-with-views.css +1 -0
- package/dist/assets/header.css +1 -0
- package/dist/assets/index.css +1 -0
- package/dist/assets/info-icon.css +1 -0
- package/dist/assets/input-field-password.css +1 -0
- package/dist/assets/input-field-phone-number.css +1 -0
- package/dist/assets/input-field.css +1 -0
- package/dist/assets/inspector.css +1 -0
- package/dist/assets/layout-row.css +1 -0
- package/dist/assets/link.css +1 -0
- package/dist/assets/listbox-option-tag.css +1 -0
- package/dist/assets/loading-indicator.css +1 -0
- package/dist/assets/main.css +1 -0
- package/dist/assets/modal-fullscreen.css +1 -0
- package/dist/assets/pagination.css +1 -0
- package/dist/assets/payment-method.css +1 -0
- package/dist/assets/popper-container.css +1 -0
- package/dist/assets/promo-banner.css +1 -0
- package/dist/assets/radio-group.css +1 -0
- package/dist/assets/radio-input.css +1 -0
- package/dist/assets/rich-text-editor.css +1 -0
- package/dist/assets/search-bar.css +1 -0
- package/dist/assets/secondary-nav.css +1 -0
- package/dist/assets/segmented-control.css +1 -0
- package/dist/assets/selection-card-group.css +1 -0
- package/dist/assets/sidepanel.css +1 -0
- package/dist/assets/status.css +1 -0
- package/dist/assets/step.css +1 -0
- package/dist/assets/structured-list-item.css +1 -0
- package/dist/assets/summary-grid.css +1 -0
- package/dist/assets/tab.css +1 -0
- package/dist/assets/tag.css +1 -0
- package/dist/assets/textarea.css +1 -0
- package/dist/assets/timeline-item.css +1 -0
- package/dist/assets/toast.css +1 -0
- package/dist/assets/toggle.css +1 -0
- package/dist/assets/tooltip.css +1 -0
- package/dist/assets/tutorial.css +1 -0
- package/dist/assets/typography.css +1 -0
- package/dist/assets/use-cached-selected-values.css +1 -0
- package/dist/avatar.js +5 -0
- package/dist/avatar.js.map +1 -0
- package/dist/button.js +18 -0
- package/dist/button.js.map +1 -0
- package/dist/card.js +7 -0
- package/dist/card.js.map +1 -0
- package/dist/checkbox.js +11 -0
- package/dist/checkbox.js.map +1 -0
- package/dist/chip.js +5 -0
- package/dist/chip.js.map +1 -0
- package/dist/chunks/1-generic-use.CZhwP2Yc.js +5 -0
- package/dist/chunks/1-generic-use.CZhwP2Yc.js.map +1 -0
- package/dist/chunks/1-generic-use.R6x8PEGA.js +5 -0
- package/dist/chunks/1-generic-use.R6x8PEGA.js.map +1 -0
- package/dist/chunks/2-generic-use.CNKjB4B7.js +5 -0
- package/dist/chunks/2-generic-use.CNKjB4B7.js.map +1 -0
- package/dist/chunks/2-generic-use.w0fUhovx.js +5 -0
- package/dist/chunks/2-generic-use.w0fUhovx.js.map +1 -0
- package/dist/chunks/3-generic-use.BLEzR04g.js +5 -0
- package/dist/chunks/3-generic-use.BLEzR04g.js.map +1 -0
- package/dist/chunks/3-generic-use.D3NFHgI4.js +5 -0
- package/dist/chunks/3-generic-use.D3NFHgI4.js.map +1 -0
- package/dist/chunks/4-generic-use.CULEpvgj.js +5 -0
- package/dist/chunks/4-generic-use.CULEpvgj.js.map +1 -0
- package/dist/chunks/4-generic-use.D82y3n39.js +5 -0
- package/dist/chunks/4-generic-use.D82y3n39.js.map +1 -0
- package/dist/chunks/_plugin-vue2_normalizer.CeySl7Fu.js +11 -0
- package/dist/chunks/_plugin-vue2_normalizer.CeySl7Fu.js.map +1 -0
- package/dist/chunks/accordion-item.G1q4zgBG.js +117 -0
- package/dist/chunks/accordion-item.G1q4zgBG.js.map +1 -0
- package/dist/chunks/action-bar.Dhl3T4j-.js +160 -0
- package/dist/chunks/action-bar.Dhl3T4j-.js.map +1 -0
- package/dist/chunks/adding-payment-methods.BJZLPxtM.js +5 -0
- package/dist/chunks/adding-payment-methods.BJZLPxtM.js.map +1 -0
- package/dist/chunks/adding-payment-methods.Dle8zt43.js +5 -0
- package/dist/chunks/adding-payment-methods.Dle8zt43.js.map +1 -0
- package/dist/chunks/adyen-giving.Ffw_DlJK.js +5 -0
- package/dist/chunks/adyen-giving.Ffw_DlJK.js.map +1 -0
- package/dist/chunks/adyen-giving.LiKHj_jY.js +5 -0
- package/dist/chunks/adyen-giving.LiKHj_jY.js.map +1 -0
- package/dist/chunks/ai-button.DBwtNkyS.js +67 -0
- package/dist/chunks/ai-button.DBwtNkyS.js.map +1 -0
- package/dist/chunks/alert.SZPP58tl.js +103 -0
- package/dist/chunks/alert.SZPP58tl.js.map +1 -0
- package/dist/chunks/aria-label.CaUURpnB.js +13 -0
- package/dist/chunks/aria-label.CaUURpnB.js.map +1 -0
- package/dist/chunks/avatar.CeDqq2Z-.js +71 -0
- package/dist/chunks/avatar.CeDqq2Z-.js.map +1 -0
- package/dist/chunks/base-button.BdST9XT3.js +86 -0
- package/dist/chunks/base-button.BdST9XT3.js.map +1 -0
- package/dist/chunks/base-modal.C-UqIAY8.js +310 -0
- package/dist/chunks/base-modal.C-UqIAY8.js.map +1 -0
- package/dist/chunks/bin.Ddb69cr1.js +24 -0
- package/dist/chunks/bin.Ddb69cr1.js.map +1 -0
- package/dist/chunks/button-actions-with-menu.KKq9Cuk1.js +85 -0
- package/dist/chunks/button-actions-with-menu.KKq9Cuk1.js.map +1 -0
- package/dist/chunks/button-actions.N3D-Bb_x.js +1035 -0
- package/dist/chunks/button-actions.N3D-Bb_x.js.map +1 -0
- package/dist/chunks/button-actions.types.BptAXjD8.js +8 -0
- package/dist/chunks/button-actions.types.BptAXjD8.js.map +1 -0
- package/dist/chunks/button.CS_kdxYh.js +110 -0
- package/dist/chunks/button.CS_kdxYh.js.map +1 -0
- package/dist/chunks/calendar.Bhj58zR3.js +1832 -0
- package/dist/chunks/calendar.Bhj58zR3.js.map +1 -0
- package/dist/chunks/card.BYWF_Zvo.js +137 -0
- package/dist/chunks/card.BYWF_Zvo.js.map +1 -0
- package/dist/chunks/checkbox-group.CIIa-cYP.js +142 -0
- package/dist/chunks/checkbox-group.CIIa-cYP.js.map +1 -0
- package/dist/chunks/checkbox-input.B0NsfSNR.js +117 -0
- package/dist/chunks/checkbox-input.B0NsfSNR.js.map +1 -0
- package/dist/chunks/checkbox.CiWvdg8S.js +178 -0
- package/dist/chunks/checkbox.CiWvdg8S.js.map +1 -0
- package/dist/chunks/checkmark-circle-fill.BttTCjrM.js +24 -0
- package/dist/chunks/checkmark-circle-fill.BttTCjrM.js.map +1 -0
- package/dist/chunks/checkmark-small.DVDtD4HQ.js +24 -0
- package/dist/chunks/checkmark-small.DVDtD4HQ.js.map +1 -0
- package/dist/chunks/chevron-down.eYtgv5ly.js +24 -0
- package/dist/chunks/chevron-down.eYtgv5ly.js.map +1 -0
- package/dist/chunks/chevron-left.BS24hEFa.js +43 -0
- package/dist/chunks/chevron-left.BS24hEFa.js.map +1 -0
- package/dist/chunks/chevron-up.d8cwIlA_.js +24 -0
- package/dist/chunks/chevron-up.d8cwIlA_.js.map +1 -0
- package/dist/chunks/chip.B0DRDvaa.js +63 -0
- package/dist/chunks/chip.B0DRDvaa.js.map +1 -0
- package/dist/chunks/click-outside.C1Ud8AA2.js +23 -0
- package/dist/chunks/click-outside.C1Ud8AA2.js.map +1 -0
- package/dist/chunks/code-snippet.BMzhRl4c.js +268 -0
- package/dist/chunks/code-snippet.BMzhRl4c.js.map +1 -0
- package/dist/chunks/codemirror.Cy7iSLbd.js +14628 -0
- package/dist/chunks/codemirror.Cy7iSLbd.js.map +1 -0
- package/dist/chunks/constructNow.BhymNmy5.js +8 -0
- package/dist/chunks/constructNow.BhymNmy5.js.map +1 -0
- package/dist/chunks/controls-group.GchVWe7h.js +84 -0
- package/dist/chunks/controls-group.GchVWe7h.js.map +1 -0
- package/dist/chunks/copy.DauzzgJV.js +96 -0
- package/dist/chunks/copy.DauzzgJV.js.map +1 -0
- package/dist/chunks/country.B3z3-QRY.js +69 -0
- package/dist/chunks/country.B3z3-QRY.js.map +1 -0
- package/dist/chunks/country.types.C0Q_hhgJ.js +269 -0
- package/dist/chunks/country.types.C0Q_hhgJ.js.map +1 -0
- package/dist/chunks/cross-circle-fill-small.DfxDedRr.js +24 -0
- package/dist/chunks/cross-circle-fill-small.DfxDedRr.js.map +1 -0
- package/dist/chunks/cross-circle-fill.DTDtgLMf.js +24 -0
- package/dist/chunks/cross-circle-fill.DTDtgLMf.js.map +1 -0
- package/dist/chunks/cross-small.CoQUe8SS.js +24 -0
- package/dist/chunks/cross-small.CoQUe8SS.js.map +1 -0
- package/dist/chunks/cross.CC_B-vG-.js +24 -0
- package/dist/chunks/cross.CC_B-vG-.js.map +1 -0
- package/dist/chunks/currency.Cwhzzxw2.js +114 -0
- package/dist/chunks/currency.Cwhzzxw2.js.map +1 -0
- package/dist/chunks/dashboard-section.CgAfEay4.js +102 -0
- package/dist/chunks/dashboard-section.CgAfEay4.js.map +1 -0
- package/dist/chunks/dashed-underline.CMdNukpN.js +77 -0
- package/dist/chunks/dashed-underline.CMdNukpN.js.map +1 -0
- package/dist/chunks/data-grid-template.keys.VezYtHtM.js +5 -0
- package/dist/chunks/data-grid-template.keys.VezYtHtM.js.map +1 -0
- package/dist/chunks/data-grid-template.m4hsFMe2.js +111 -0
- package/dist/chunks/data-grid-template.m4hsFMe2.js.map +1 -0
- package/dist/chunks/data-grid.rAVOFiTv.js +3294 -0
- package/dist/chunks/data-grid.rAVOFiTv.js.map +1 -0
- package/dist/chunks/date-format.B8RU7D42.js +17 -0
- package/dist/chunks/date-format.B8RU7D42.js.map +1 -0
- package/dist/chunks/date-picker.nLuHJgOC.js +169 -0
- package/dist/chunks/date-picker.nLuHJgOC.js.map +1 -0
- package/dist/chunks/date-picker.types.Ckt7zxGy.js +5 -0
- package/dist/chunks/date-picker.types.Ckt7zxGy.js.map +1 -0
- package/dist/chunks/date-range-picker.D2MKhVMf.js +906 -0
- package/dist/chunks/date-range-picker.D2MKhVMf.js.map +1 -0
- package/dist/chunks/date-range-picker.types.Ckt7zxGy.js +5 -0
- package/dist/chunks/date-range-picker.types.Ckt7zxGy.js.map +1 -0
- package/dist/chunks/date.C1z2TXzM.js +160 -0
- package/dist/chunks/date.C1z2TXzM.js.map +1 -0
- package/dist/chunks/debounce.DUTu11PS.js +10 -0
- package/dist/chunks/debounce.DUTu11PS.js.map +1 -0
- package/dist/chunks/delight.CDBAFnwC.js +5 -0
- package/dist/chunks/delight.CDBAFnwC.js.map +1 -0
- package/dist/chunks/delight.xKDCvvaS.js +5 -0
- package/dist/chunks/delight.xKDCvvaS.js.map +1 -0
- package/dist/chunks/dialog-page.krM2wQpm.js +131 -0
- package/dist/chunks/dialog-page.krM2wQpm.js.map +1 -0
- package/dist/chunks/differenceInMonths.Cab3nOsb.js +1590 -0
- package/dist/chunks/differenceInMonths.Cab3nOsb.js.map +1 -0
- package/dist/chunks/directive.Cbdox5VL.js +23 -0
- package/dist/chunks/directive.Cbdox5VL.js.map +1 -0
- package/dist/chunks/divider.DX5gwN7p.js +35 -0
- package/dist/chunks/divider.DX5gwN7p.js.map +1 -0
- package/dist/chunks/dot.BW9SneIk.js +24 -0
- package/dist/chunks/dot.BW9SneIk.js.map +1 -0
- package/dist/chunks/dropdown-default-textbox.uWZMxeI7.js +350 -0
- package/dist/chunks/dropdown-default-textbox.uWZMxeI7.js.map +1 -0
- package/dist/chunks/dropdown-tag.BnqOBdMp.js +294 -0
- package/dist/chunks/dropdown-tag.BnqOBdMp.js.map +1 -0
- package/dist/chunks/dropdown.BijF56Y7.js +714 -0
- package/dist/chunks/dropdown.BijF56Y7.js.map +1 -0
- package/dist/chunks/empty-state.BsdRxzS2.js +106 -0
- package/dist/chunks/empty-state.BsdRxzS2.js.map +1 -0
- package/dist/chunks/es6.MoTTyETW.js +12 -0
- package/dist/chunks/es6.MoTTyETW.js.map +1 -0
- package/dist/chunks/events.BQOQSSb7.js +44 -0
- package/dist/chunks/events.BQOQSSb7.js.map +1 -0
- package/dist/chunks/expand.Bbielaja.js +24 -0
- package/dist/chunks/expand.Bbielaja.js.map +1 -0
- package/dist/chunks/field-label.DHGAa4cq.js +121 -0
- package/dist/chunks/field-label.DHGAa4cq.js.map +1 -0
- package/dist/chunks/file-uploader.D2s5qccE.js +1917 -0
- package/dist/chunks/file-uploader.D2s5qccE.js.map +1 -0
- package/dist/chunks/filter-bar.DISI1jAU.js +2472 -0
- package/dist/chunks/filter-bar.DISI1jAU.js.map +1 -0
- package/dist/chunks/fixed-scroller.CgVOf5VE.js +106 -0
- package/dist/chunks/fixed-scroller.CgVOf5VE.js.map +1 -0
- package/dist/chunks/focus-trap.CNIU5jOz.js +1168 -0
- package/dist/chunks/focus-trap.CNIU5jOz.js.map +1 -0
- package/dist/chunks/footer-actions.CFZwikg0.js +96 -0
- package/dist/chunks/footer-actions.CFZwikg0.js.map +1 -0
- package/dist/chunks/form-field.D_2g7vaP.js +10 -0
- package/dist/chunks/form-field.D_2g7vaP.js.map +1 -0
- package/dist/chunks/form-layout-title.B_oVSX5b.js +197 -0
- package/dist/chunks/form-layout-title.B_oVSX5b.js.map +1 -0
- package/dist/chunks/form-layout.types.bZW9iR6_.js +5 -0
- package/dist/chunks/form-layout.types.bZW9iR6_.js.map +1 -0
- package/dist/chunks/generate-uid.NJ8tVoha.js +32 -0
- package/dist/chunks/generate-uid.NJ8tVoha.js.map +1 -0
- package/dist/chunks/get-slot-text.Bjb9dTSV.js +12 -0
- package/dist/chunks/get-slot-text.Bjb9dTSV.js.map +1 -0
- package/dist/chunks/getRoundingMethod.C3eaeGLR.js +10 -0
- package/dist/chunks/getRoundingMethod.C3eaeGLR.js.map +1 -0
- package/dist/chunks/getTimezoneOffsetInMilliseconds.B7sxiukN.js +484 -0
- package/dist/chunks/getTimezoneOffsetInMilliseconds.B7sxiukN.js.map +1 -0
- package/dist/chunks/grid-layout.1aIiz2N_.js +76 -0
- package/dist/chunks/grid-layout.1aIiz2N_.js.map +1 -0
- package/dist/chunks/header-meta.D0UdrdVf.js +170 -0
- package/dist/chunks/header-meta.D0UdrdVf.js.map +1 -0
- package/dist/chunks/header-with-views.BjZkBSI0.js +1591 -0
- package/dist/chunks/header-with-views.BjZkBSI0.js.map +1 -0
- package/dist/chunks/header.QYvN86kI.js +103 -0
- package/dist/chunks/header.QYvN86kI.js.map +1 -0
- package/dist/chunks/image.C2D2hKat.js +56 -0
- package/dist/chunks/image.C2D2hKat.js.map +1 -0
- package/dist/chunks/index.B6WW_F-J.js +31 -0
- package/dist/chunks/index.B6WW_F-J.js.map +1 -0
- package/dist/chunks/index.BDK4hwK_.js +593 -0
- package/dist/chunks/index.BDK4hwK_.js.map +1 -0
- package/dist/chunks/index.Cl4_42j5.js +8 -0
- package/dist/chunks/index.Cl4_42j5.js.map +1 -0
- package/dist/chunks/info-icon.iKLaNff6.js +37 -0
- package/dist/chunks/info-icon.iKLaNff6.js.map +1 -0
- package/dist/chunks/info.CcMZ4aGg.js +24 -0
- package/dist/chunks/info.CcMZ4aGg.js.map +1 -0
- package/dist/chunks/input-field-password.BeRjHhu6.js +270 -0
- package/dist/chunks/input-field-password.BeRjHhu6.js.map +1 -0
- package/dist/chunks/input-field-phone-number.DLOUy8_E.js +3324 -0
- package/dist/chunks/input-field-phone-number.DLOUy8_E.js.map +1 -0
- package/dist/chunks/input-field.B1Q1-zLo.js +171 -0
- package/dist/chunks/input-field.B1Q1-zLo.js.map +1 -0
- package/dist/chunks/inspector.C6bbjQC0.js +117 -0
- package/dist/chunks/inspector.C6bbjQC0.js.map +1 -0
- package/dist/chunks/inspector.types.DyHwE18g.js +5 -0
- package/dist/chunks/inspector.types.DyHwE18g.js.map +1 -0
- package/dist/chunks/internal-error.BLZodVBE.js +5 -0
- package/dist/chunks/internal-error.BLZodVBE.js.map +1 -0
- package/dist/chunks/internal-error.BmrwJFpR.js +5 -0
- package/dist/chunks/internal-error.BmrwJFpR.js.map +1 -0
- package/dist/chunks/keyboard-navigation.DWmhelVv.js +66 -0
- package/dist/chunks/keyboard-navigation.DWmhelVv.js.map +1 -0
- package/dist/chunks/layout-row.DwdZbpVG.js +87 -0
- package/dist/chunks/layout-row.DwdZbpVG.js.map +1 -0
- package/dist/chunks/link.D8qpqg3W.js +95 -0
- package/dist/chunks/link.D8qpqg3W.js.map +1 -0
- package/dist/chunks/listbox-option-tag.CK628fjn.js +44 -0
- package/dist/chunks/listbox-option-tag.CK628fjn.js.map +1 -0
- package/dist/chunks/loading-indicator.PxbRzshH.js +42 -0
- package/dist/chunks/loading-indicator.PxbRzshH.js.map +1 -0
- package/dist/chunks/minus-small.DJacLGTw.js +27 -0
- package/dist/chunks/minus-small.DJacLGTw.js.map +1 -0
- package/dist/chunks/modal-fullscreen.UqZgbaDw.js +221 -0
- package/dist/chunks/modal-fullscreen.UqZgbaDw.js.map +1 -0
- package/dist/chunks/modal.DCgB0pA2.js +445 -0
- package/dist/chunks/modal.DCgB0pA2.js.map +1 -0
- package/dist/chunks/no-results-found.Bg_ZcEid.js +5 -0
- package/dist/chunks/no-results-found.Bg_ZcEid.js.map +1 -0
- package/dist/chunks/no-results-found.BqvYsBR6.js +5 -0
- package/dist/chunks/no-results-found.BqvYsBR6.js.map +1 -0
- package/dist/chunks/notifications-cleared.BMZk37uf.js +5 -0
- package/dist/chunks/notifications-cleared.BMZk37uf.js.map +1 -0
- package/dist/chunks/notifications-cleared.C7W9ZXY7.js +5 -0
- package/dist/chunks/notifications-cleared.C7W9ZXY7.js.map +1 -0
- package/dist/chunks/on-click-outside.D9aY9g8G.js +101 -0
- package/dist/chunks/on-click-outside.D9aY9g8G.js.map +1 -0
- package/dist/chunks/page-not-found.COJLPVaU.js +5 -0
- package/dist/chunks/page-not-found.COJLPVaU.js.map +1 -0
- package/dist/chunks/page-not-found.DWW6W-PZ.js +5 -0
- package/dist/chunks/page-not-found.DWW6W-PZ.js.map +1 -0
- package/dist/chunks/pagination.CylAnOyc.js +338 -0
- package/dist/chunks/pagination.CylAnOyc.js.map +1 -0
- package/dist/chunks/payment-method.C8Ie97qE.js +76 -0
- package/dist/chunks/payment-method.C8Ie97qE.js.map +1 -0
- package/dist/chunks/payment-method.types.BqtH7RM2.js +5 -0
- package/dist/chunks/payment-method.types.BqtH7RM2.js.map +1 -0
- package/dist/chunks/planned-maintenance.C61sWB9h.js +5 -0
- package/dist/chunks/planned-maintenance.C61sWB9h.js.map +1 -0
- package/dist/chunks/planned-maintenance.jmWYTdet.js +5 -0
- package/dist/chunks/planned-maintenance.jmWYTdet.js.map +1 -0
- package/dist/chunks/popover.types.WDh5ggr3.js +6 -0
- package/dist/chunks/popover.types.WDh5ggr3.js.map +1 -0
- package/dist/chunks/popper-container.Cdokz_NE.js +1404 -0
- package/dist/chunks/popper-container.Cdokz_NE.js.map +1 -0
- package/dist/chunks/promo-banner.DikQcQU2.js +70 -0
- package/dist/chunks/promo-banner.DikQcQU2.js.map +1 -0
- package/dist/chunks/radio-group.Cr7UcYij.js +178 -0
- package/dist/chunks/radio-group.Cr7UcYij.js.map +1 -0
- package/dist/chunks/radio-input.kzb4gxLW.js +90 -0
- package/dist/chunks/radio-input.kzb4gxLW.js.map +1 -0
- package/dist/chunks/referrals.BvtT-kQS.js +5 -0
- package/dist/chunks/referrals.BvtT-kQS.js.map +1 -0
- package/dist/chunks/referrals.aX8WZigH.js +5 -0
- package/dist/chunks/referrals.aX8WZigH.js.map +1 -0
- package/dist/chunks/refresh.arF7jP-l.js +24 -0
- package/dist/chunks/refresh.arF7jP-l.js.map +1 -0
- package/dist/chunks/resize.Bqks3WUm.js +15 -0
- package/dist/chunks/resize.Bqks3WUm.js.map +1 -0
- package/dist/chunks/rich-text-editor.NKPFP8Ss.js +6203 -0
- package/dist/chunks/rich-text-editor.NKPFP8Ss.js.map +1 -0
- package/dist/chunks/search-bar.VctrP6lp.js +98 -0
- package/dist/chunks/search-bar.VctrP6lp.js.map +1 -0
- package/dist/chunks/search.D53Ia3rC.js +24 -0
- package/dist/chunks/search.D53Ia3rC.js.map +1 -0
- package/dist/chunks/secondary-nav.jpMeWSZj.js +112 -0
- package/dist/chunks/secondary-nav.jpMeWSZj.js.map +1 -0
- package/dist/chunks/segmented-control._CuB62pG.js +113 -0
- package/dist/chunks/segmented-control._CuB62pG.js.map +1 -0
- package/dist/chunks/segmented-control.types.BHRLV8KU.js +5 -0
- package/dist/chunks/segmented-control.types.BHRLV8KU.js.map +1 -0
- package/dist/chunks/selection-card-group.jykyd9iE.js +240 -0
- package/dist/chunks/selection-card-group.jykyd9iE.js.map +1 -0
- package/dist/chunks/show.B_mKPF6I.js +43 -0
- package/dist/chunks/show.B_mKPF6I.js.map +1 -0
- package/dist/chunks/sidepanel.CP-b8Zcg.js +210 -0
- package/dist/chunks/sidepanel.CP-b8Zcg.js.map +1 -0
- package/dist/chunks/status.types.BpMK-6IT.js +36 -0
- package/dist/chunks/status.types.BpMK-6IT.js.map +1 -0
- package/dist/chunks/step.4hMAy8v_.js +217 -0
- package/dist/chunks/step.4hMAy8v_.js.map +1 -0
- package/dist/chunks/structured-list-item.BLJabJwA.js +90 -0
- package/dist/chunks/structured-list-item.BLJabJwA.js.map +1 -0
- package/dist/chunks/success.DhioLvPD.js +5 -0
- package/dist/chunks/success.DhioLvPD.js.map +1 -0
- package/dist/chunks/success.nNwxJRBS.js +5 -0
- package/dist/chunks/success.nNwxJRBS.js.map +1 -0
- package/dist/chunks/summary-grid.keys.Xx-W5a2w.js +6 -0
- package/dist/chunks/summary-grid.keys.Xx-W5a2w.js.map +1 -0
- package/dist/chunks/summary-grid.types.B0w2S_9r.js +337 -0
- package/dist/chunks/summary-grid.types.B0w2S_9r.js.map +1 -0
- package/dist/chunks/tab.DXE68qVf.js +192 -0
- package/dist/chunks/tab.DXE68qVf.js.map +1 -0
- package/dist/chunks/tabs.keys.B4qGhjp2.js +7 -0
- package/dist/chunks/tabs.keys.B4qGhjp2.js.map +1 -0
- package/dist/chunks/tag.7fp_M9Au.js +44 -0
- package/dist/chunks/tag.7fp_M9Au.js.map +1 -0
- package/dist/chunks/textarea.Ci9sKDFy.js +173 -0
- package/dist/chunks/textarea.Ci9sKDFy.js.map +1 -0
- package/dist/chunks/timeline-item.DcIQ-Q1T.js +255 -0
- package/dist/chunks/timeline-item.DcIQ-Q1T.js.map +1 -0
- package/dist/chunks/toast.DGvNp4ZM.js +171 -0
- package/dist/chunks/toast.DGvNp4ZM.js.map +1 -0
- package/dist/chunks/toggle.D2wmNu7m.js +108 -0
- package/dist/chunks/toggle.D2wmNu7m.js.map +1 -0
- package/dist/chunks/tooltip.BcQ24pKP.js +189 -0
- package/dist/chunks/tooltip.BcQ24pKP.js.map +1 -0
- package/dist/chunks/truncate.BfIl_-71.js +8 -0
- package/dist/chunks/truncate.BfIl_-71.js.map +1 -0
- package/dist/chunks/tutorial.Co2F7l0B.js +347 -0
- package/dist/chunks/tutorial.Co2F7l0B.js.map +1 -0
- package/dist/chunks/typography.hlOAxsEn.js +87 -0
- package/dist/chunks/typography.hlOAxsEn.js.map +1 -0
- package/dist/chunks/upload-files.5wQwbfkp.js +5 -0
- package/dist/chunks/upload-files.5wQwbfkp.js.map +1 -0
- package/dist/chunks/upload-files.jTQY6y2X.js +5 -0
- package/dist/chunks/upload-files.jTQY6y2X.js.map +1 -0
- package/dist/chunks/use-bento-toast-controller.BhtohoS1.js +52 -0
- package/dist/chunks/use-bento-toast-controller.BhtohoS1.js.map +1 -0
- package/dist/chunks/use-cached-selected-values.BYiLNRRi.js +1343 -0
- package/dist/chunks/use-cached-selected-values.BYiLNRRi.js.map +1 -0
- package/dist/chunks/use-country-items.B3Cd3Tdo.js +30 -0
- package/dist/chunks/use-country-items.B3Cd3Tdo.js.map +1 -0
- package/dist/chunks/use-country-phon-code.Bui3zD6W.js +5621 -0
- package/dist/chunks/use-country-phon-code.Bui3zD6W.js.map +1 -0
- package/dist/chunks/use-default-slot-validator.BDn0wkYP.js +13 -0
- package/dist/chunks/use-default-slot-validator.BDn0wkYP.js.map +1 -0
- package/dist/chunks/use-expandable-content-height.GkjjbmPy.js +17 -0
- package/dist/chunks/use-expandable-content-height.GkjjbmPy.js.map +1 -0
- package/dist/chunks/use-form-layout-loading.CWbjZiwP.js +12 -0
- package/dist/chunks/use-form-layout-loading.CWbjZiwP.js.map +1 -0
- package/dist/chunks/use-has-slot.C9lQZ6nz.js +6 -0
- package/dist/chunks/use-has-slot.C9lQZ6nz.js.map +1 -0
- package/dist/chunks/warning-filled.CbJ1pcB2.js +24 -0
- package/dist/chunks/warning-filled.CbJ1pcB2.js.map +1 -0
- package/dist/chunks/wrong-environment.BOsyKdRI.js +5 -0
- package/dist/chunks/wrong-environment.BOsyKdRI.js.map +1 -0
- package/dist/chunks/wrong-environment.BiHTPtbJ.js +5 -0
- package/dist/chunks/wrong-environment.BiHTPtbJ.js.map +1 -0
- package/dist/click-outside.js +5 -0
- package/dist/click-outside.js.map +1 -0
- package/dist/code-snippet.js +8 -0
- package/dist/code-snippet.js.map +1 -0
- package/dist/country.js +12 -0
- package/dist/country.js.map +1 -0
- package/dist/currency.js +6 -0
- package/dist/currency.js.map +1 -0
- package/dist/dashboard-template.js +6 -0
- package/dist/dashboard-template.js.map +1 -0
- package/dist/dashed-underline.js +5 -0
- package/dist/dashed-underline.js.map +1 -0
- package/dist/data-grid-template.js +5 -0
- package/dist/data-grid-template.js.map +1 -0
- package/dist/data-grid.js +13 -0
- package/dist/data-grid.js.map +1 -0
- package/dist/date-picker.js +10 -0
- package/dist/date-picker.js.map +1 -0
- package/dist/date-range-picker.js +10 -0
- package/dist/date-range-picker.js.map +1 -0
- package/dist/date.js +6 -0
- package/dist/date.js.map +1 -0
- package/dist/divider.js +5 -0
- package/dist/divider.js.map +1 -0
- package/dist/dropdown.js +16 -0
- package/dist/dropdown.js.map +1 -0
- package/dist/empty-state.js +8 -0
- package/dist/empty-state.js.map +1 -0
- package/dist/file-uploader.js +5 -0
- package/dist/file-uploader.js.map +1 -0
- package/dist/filter-bar.js +9 -0
- package/dist/filter-bar.js.map +1 -0
- package/dist/focus-trap.js +5 -0
- package/dist/focus-trap.js.map +1 -0
- package/dist/fonts/fonts.css +2 -0
- package/dist/form-layout.js +8 -0
- package/dist/form-layout.js.map +1 -0
- package/dist/header-with-views.js +5 -0
- package/dist/header-with-views.js.map +1 -0
- package/dist/header.js +5 -0
- package/dist/header.js.map +1 -0
- package/dist/image.js +7 -0
- package/dist/image.js.map +1 -0
- package/dist/index.js +442 -0
- package/dist/index.js.map +1 -0
- package/dist/info-icon.js +5 -0
- package/dist/info-icon.js.map +1 -0
- package/dist/input-field-password.js +10 -0
- package/dist/input-field-password.js.map +1 -0
- package/dist/input-field-phone-number.js +6 -0
- package/dist/input-field-phone-number.js.map +1 -0
- package/dist/input-field.js +10 -0
- package/dist/input-field.js.map +1 -0
- package/dist/inspector.js +7 -0
- package/dist/inspector.js.map +1 -0
- package/dist/internal.js +45 -0
- package/dist/internal.js.map +1 -0
- package/dist/layout.js +6 -0
- package/dist/layout.js.map +1 -0
- package/dist/link.js +6 -0
- package/dist/link.js.map +1 -0
- package/dist/loading-indicator.js +6 -0
- package/dist/loading-indicator.js.map +1 -0
- package/dist/menu.js +6 -0
- package/dist/menu.js.map +1 -0
- package/dist/modal-fullscreen.js +6 -0
- package/dist/modal-fullscreen.js.map +1 -0
- package/dist/modal.js +14 -0
- package/dist/modal.js.map +1 -0
- package/dist/pagination.js +5 -0
- package/dist/pagination.js.map +1 -0
- package/dist/payment-method.js +7 -0
- package/dist/payment-method.js.map +1 -0
- package/dist/popover.js +7 -0
- package/dist/popover.js.map +1 -0
- package/dist/popper-container.js +9 -0
- package/dist/popper-container.js.map +1 -0
- package/dist/promo-banner.js +7 -0
- package/dist/promo-banner.js.map +1 -0
- package/dist/radio-group.js +9 -0
- package/dist/radio-group.js.map +1 -0
- package/dist/rich-text-editor.js +5 -0
- package/dist/rich-text-editor.js.map +1 -0
- package/dist/search-bar.js +9 -0
- package/dist/search-bar.js.map +1 -0
- package/dist/secondary-nav.js +5 -0
- package/dist/secondary-nav.js.map +1 -0
- package/dist/segmented-control.js +7 -0
- package/dist/segmented-control.js.map +1 -0
- package/dist/selection-card.js +7 -0
- package/dist/selection-card.js.map +1 -0
- package/dist/sidepanel.js +7 -0
- package/dist/sidepanel.js.map +1 -0
- package/dist/status.js +6 -0
- package/dist/status.js.map +1 -0
- package/dist/stepper.js +8 -0
- package/dist/stepper.js.map +1 -0
- package/dist/structured-list.js +6 -0
- package/dist/structured-list.js.map +1 -0
- package/dist/styles/bento-dark.css +2133 -0
- package/dist/styles/bento-light.css +2132 -0
- package/dist/styles/bento.css +2132 -0
- package/dist/styles/legacy.css +2132 -0
- package/dist/styles/styleguide.css +2187 -0
- package/dist/styles/utility.css +1002 -0
- package/dist/summary-grid.js +12 -0
- package/dist/summary-grid.js.map +1 -0
- package/dist/tabs.js +6 -0
- package/dist/tabs.js.map +1 -0
- package/dist/tag.js +6 -0
- package/dist/tag.js.map +1 -0
- package/dist/textarea.js +5 -0
- package/dist/textarea.js.map +1 -0
- package/dist/timeline.js +10 -0
- package/dist/timeline.js.map +1 -0
- package/dist/toast.js +5 -0
- package/dist/toast.js.map +1 -0
- package/dist/toggle.js +7 -0
- package/dist/toggle.js.map +1 -0
- package/dist/tutorial.js +5 -0
- package/dist/tutorial.js.map +1 -0
- package/dist/typography.js +8 -0
- package/dist/typography.js.map +1 -0
- package/dist/use-form-v4.js +8300 -0
- package/dist/use-form-v4.js.map +1 -0
- package/dist/web-types.json +17262 -0
- package/package.json +27 -24
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tab.DXE68qVf.js","sources":["../../src/components/tabs/utils/index.ts","../../src/components/tabs/tabs.types.ts","../../src/components/tabs/tabs.vue","../../src/components/tabs/components/tab.vue"],"sourcesContent":["import { type BentoTab } from '../components/tab.types';\n\n/**\n * Recursively gets the previous available tab index. It will loop through the tabs until it finds one\n * that is not disabled or hidden.\n * @param activeTabIndex The currently active tab index.\n * @param tabsValue An array of BentoTab objects.\n * @returns The index of the previous available tab.\n */\nexport const getPreviousTabIndex = (activeTabIndex: number, tabsValue: Array<BentoTab>) => {\n // Prevent overflow\n const newActiveTabIndex = activeTabIndex === 0 ? tabsValue.length - 1 : activeTabIndex - 1;\n const currentTab = tabsValue[newActiveTabIndex];\n if (currentTab.disabled || currentTab.hidden) {\n return getPreviousTabIndex(newActiveTabIndex, tabsValue);\n }\n return newActiveTabIndex;\n};\n\n/**\n * Recursively gets the next available tab index. It will loop through the tabs until it finds one\n * that is not disabled or hidden.\n * @param activeTabIndex The currently active tab index.\n * @param tabsValue An array of BentoTab objects.\n * @returns The index of the next available tab.\n */\nexport const getNextTabIndex = (activeTabIndex: number, tabsValue: Array<BentoTab>) => {\n // Prevent overflow\n const newActiveTabIndex = activeTabIndex === tabsValue.length - 1 ? 0 : activeTabIndex + 1;\n const currentTab = tabsValue[newActiveTabIndex];\n if (currentTab.disabled || currentTab.hidden) {\n return getNextTabIndex(newActiveTabIndex, tabsValue);\n }\n return newActiveTabIndex;\n};\n","import type { Ref } from 'vue';\n\n/**\n * Private\n */\nexport interface BentoStickyTabsOptions {\n top?: Ref<number>;\n}\n\nexport type BentoTabsRegisterTab = (props: {\n counter: Ref<number>;\n disabled: Ref<boolean>;\n hidden: Ref<boolean>;\n title: Ref<string>;\n withNotificationIndicator: Ref<boolean>;\n}) => { id: string; unregisterTab: () => void };\n\nexport enum BentoTabsEvent {\n ACTIVE_TAB_INDEX = 'update:active-tab-index',\n}\n","<template>\n <div class=\"b-tabs\">\n <div\n ref=\"tablistwrapper\"\n class=\"b-tabs__tab-list-wrapper\"\n :class=\"tablistWrapperConditionalClasses\"\n :style=\"tablistWrapperStyles\"\n >\n <fixed-scroller condensed :extra-padding-top=\"2\">\n <div ref=\"tablist\" class=\"b-tabs__tab-list\" role=\"tablist\" @keydown=\"onKeydownTabsNavigation\">\n <button\n v-for=\"{ counter, disabled, hidden, id, title, withNotificationIndicator } in tabs\"\n v-show=\"!hidden\"\n :id=\"id\"\n :key=\"id\"\n role=\"tab\"\n type=\"button\"\n class=\"b-tabs__tab\"\n :class=\"{\n 'b-tabs__tab--active': activeTabId === id,\n 'b-tabs__tab--disabled': disabled,\n }\"\n :aria-controls=\"`${id}-tabpanel`\"\n :aria-hidden=\"hidden ? 'true' : 'false'\"\n :aria-selected=\"activeTabId === id ? 'true' : 'false'\"\n :tabindex=\"activeTabId === id && !disabled.value ? null : -1\"\n :disabled=\"isDisabled(disabled)\"\n @click=\"handleTabChange(id)\"\n @keydown.enter.space=\"handleTabChange(id)\"\n >\n <span class=\"b-tabs__tab-text\">\n <bento-typography class=\"b-tabs__tab-title\" el=\"span\" variant=\"body\" stronger>\n {{ title }}\n </bento-typography>\n <bento-typography\n v-if=\"counter != null\"\n class=\"b-tabs__tab-counter\"\n el=\"span\"\n variant=\"body\"\n stronger\n :class=\"{\n 'b-tabs__tab-counter--active': activeTabId === id,\n }\"\n >\n {{ counter }}\n </bento-typography>\n <span\n v-if=\"withNotificationIndicator\"\n class=\"b-tabs__tab-notification-dot\"\n aria-hidden=\"true\"\n ></span>\n </span>\n <span v-show=\"activeTabId === id\" class=\"b-tabs__tab-underline\" aria-hidden=\"true\"></span>\n </button>\n </div>\n </fixed-scroller>\n </div>\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\">\n import {\n computed,\n defineComponent,\n nextTick,\n onUnmounted,\n type PropType,\n provide,\n ref,\n type Ref,\n unref,\n watch,\n } from 'vue';\n\n // components\n import { BentoTypography } from '@/components/typography';\n import { FixedScroller } from '@/internal';\n\n // utils\n import { generateUid } from '@/core/utils/ts';\n import { getNextTabIndex, getPreviousTabIndex } from './utils';\n\n // types\n import { type Booleanish } from '@/types/prop-types';\n import { type BentoTab } from './components/tab.types';\n import { type BentoStickyTabsOptions, BentoTabsEvent, type BentoTabsRegisterTab } from './tabs.types';\n\n // keys\n import { TABS_ACTIVE_TAB_ID_KEY, TABS_REGISTER_TAB_INJECTION_KEY } from './tabs.keys';\n\n /**\n * Tabs are used to navigate between different, but related content views within a page.\n * This component conforms to the official WAI-ARIA guidelines for tabs: https://www.w3.org/WAI/ARIA/apg/patterns/tabs/\n *\n * @example\n * import { BentoTabs, BentoTab } from '@adyen/bento-vue2';\n *\n * export default {\n * components: { BentoTabs, BentoTab },\n * template: `\n * <bento-tabs v-bind=\"$props\">\n * <bento-tab title=\"Maria Ahlefeldt\">\n * (16 January 1755 - 20 December 1810) was a Danish, (originally German), composer. She is known as the first female composer in Denmark.\n * </bento-tab>\n * <bento-tab title=\"Carl Andersen\">\n * (29 April 1847 - 7 May 1909) was a Danish flutist, conductor and composer born in Copenhagen, son of the flutist Christian Joachim Andersen.\n * </bento-tab>\n * <bento-tab title=\"Karl Truffel\">\n * (1 March 1981 - 7 November 1992) was a Danish dog and commander born in Berlin, son of the machinist Tom Jahoor Truffel.\n * </bento-tab>\n * <bento-tab title=\"Maria Ahlefeldt\" :disabled=\"true\">\n * (16 January 1755 - 20 December 1810) was a Danish, (originally German), composer. She is known as the first female composer in Denmark.\n * </bento-tab>\n * </bento-tabs>\n * `\n * };\n */\n\n // component\n export default defineComponent({\n components: {\n BentoTypography,\n FixedScroller,\n },\n props: {\n /**\n * Sets the active tab by its index (0 being the first tab item).\n */\n activeTabIndex: { type: Number, default: 0 },\n\n /*\n * Renders the tab with a sticky positioning.\n */\n sticky: { type: Boolean, default: false },\n\n /**\n * Additional configurable options for tabs rendered with a sticky positioning.\n * It must be an object of type {@see BentoStickyTabsOption}\n * @property {Ref<number>} stickyOptions.top - Top position the tabs should take up when rendered as sticky.\n */\n stickyOptions: { type: Object as PropType<BentoStickyTabsOptions>, default: null },\n },\n emits: [BentoTabsEvent.ACTIVE_TAB_INDEX],\n setup(props, { emit }) {\n const tabs: Ref<Array<BentoTab>> = ref([]);\n const tablist = ref(null);\n const tablistwrapper = ref();\n const activeTabId = ref('');\n const isPinnedByObserver = ref(false);\n let observer;\n\n provide(TABS_ACTIVE_TAB_ID_KEY, activeTabId);\n\n // unregister tab if removed / destroyed\n const unregisterTab = (tabIdToRemove: string) => () => {\n tabs.value = tabs.value?.filter(({ id }) => id !== tabIdToRemove);\n };\n\n // register tab\n const registerTab: BentoTabsRegisterTab = ({\n title,\n disabled,\n withNotificationIndicator,\n counter,\n hidden,\n }) => {\n const id = generateUid('b-tab');\n\n // add tab to tabs\n tabs.value.push({ counter, disabled, hidden, id, title, withNotificationIndicator });\n\n // return values to the Tab component\n return { id, unregisterTab: unregisterTab(id) };\n };\n\n // provide activeTab and registerTab to tab items\n provide(TABS_REGISTER_TAB_INJECTION_KEY, registerTab);\n\n // keyboard navigation\n const onKeydownTabsNavigation = (e: KeyboardEvent) => {\n if (e.code === 'ArrowLeft' || e.code === 'ArrowRight') {\n // find tab that is focussed\n const activeTab = tabs.value.find(tab => document.activeElement.id === tab.id);\n let activeTabIndex = tabs.value.indexOf(activeTab);\n\n // conditionally increase or decrease the\n if (e.code === 'ArrowLeft') {\n activeTabIndex = getPreviousTabIndex(activeTabIndex, tabs.value);\n } else if (e.code === 'ArrowRight') {\n activeTabIndex = getNextTabIndex(activeTabIndex, tabs.value);\n }\n\n // focus new active tab\n tablist.value.children[activeTabIndex].focus();\n }\n };\n\n watch(\n [() => props.activeTabIndex, tabs],\n ([index, currentTabs]) => {\n nextTick(() => {\n const tab = currentTabs[index];\n activeTabId.value =\n tab && !tab.disabled ? tab.id : tabs.value.find(({ disabled }) => !disabled)?.id;\n });\n },\n { immediate: true }\n );\n\n const handleTabChange = (tabId: string) => {\n activeTabId.value = tabId;\n const activeIndex = tabs.value.findIndex(({ id }) => id === activeTabId.value);\n emit(BentoTabsEvent.ACTIVE_TAB_INDEX, activeIndex);\n };\n\n const isDisabled = (isDisabledTab: Ref<boolean>): Booleanish =>\n (isDisabledTab ? 'disabled' : false) as Booleanish;\n\n /* == Sticky tabs logic == */\n const topOffset = computed(() => (props.stickyOptions?.top ? unref(props.stickyOptions.top) : 0));\n\n const isPinned = computed(() => {\n if (props.sticky && topOffset.value > 0) {\n return true;\n }\n return isPinnedByObserver.value;\n });\n\n const disconnectObserver = () => {\n if (observer) {\n observer.disconnect();\n observer = null;\n }\n isPinnedByObserver.value = false;\n };\n\n const setupObserver = (element: HTMLDivElement) => {\n // The observer is only needed when the tabs are sticky at the top of the screen (no top offset).\n if (props.sticky && topOffset.value === 0) {\n observer = new IntersectionObserver(\n ([e]) => {\n isPinnedByObserver.value = e.intersectionRatio < 1;\n },\n { threshold: [1] }\n );\n observer.observe(element);\n }\n };\n\n // This watcher manages the entire lifecycle of the observer.\n watch(\n [() => props.sticky, tablistwrapper, topOffset],\n ([isSticky, element]) => {\n disconnectObserver();\n if (isSticky && element) {\n nextTick(() => setupObserver(element));\n }\n },\n { immediate: true }\n );\n\n onUnmounted(() => {\n disconnectObserver();\n });\n\n const tablistWrapperConditionalClasses = computed(() => ({\n 'b-tabs__tab-list-wrapper--sticky': props.sticky,\n 'b-tabs__tab-list-wrapper--pinned': isPinned.value,\n }));\n\n const tablistWrapperStyles = computed(() =>\n // This helps us detect when the tabs are pinned without calculations on the tabs positions because it makes the tabs intersect by 1 pixel with the element on top of it, which is getting aught by the intersection observer.\n // Followed this example: https://css-tricks.com/how-to-detect-when-a-sticky-element-gets-pinned/\n props.sticky\n ? {\n top: `${(props.stickyOptions?.top ?? 0) - 1}px`,\n }\n : {}\n );\n\n return {\n tabs,\n tablist,\n tablistwrapper,\n activeTabId,\n tablistWrapperConditionalClasses,\n tablistWrapperStyles,\n onKeydownTabsNavigation,\n handleTabChange,\n isDisabled,\n };\n },\n });\n</script>\n\n<style lang=\"scss\" scoped src=\"./tabs.scss\" />\n","<template>\n <div v-show=\"activeTabId === id\" :id=\"`${id}-tabpanel`\" class=\"b-tab\" role=\"tabpanel\" :aria-labelledby=\"id\">\n <template v-if=\"activeTabId === id\">\n <slot />\n </template>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, inject, onUnmounted, provide, ref, toRefs } from 'vue';\n import {\n EXTERNAL_TITLE_REGISTER_ENTRY_INJECTION_KEY,\n TABS_ACTIVE_TAB_ID_KEY,\n TABS_REGISTER_TAB_INJECTION_KEY,\n } from '../tabs.keys';\n import { type BentoTabsRegisterTab } from '../tabs.types';\n import { type BentoTabProps, type BentoTabProvidedTitle } from './tab.types';\n\n const props = defineProps({\n counter: { default: null },\n disabled: { type: Boolean, default: false },\n hidden: { type: Boolean, default: false },\n title: null,\n withNotificationIndicator: { type: Boolean, default: false }\n});\n\n // External title injection\n const { counter, disabled, hidden, withNotificationIndicator } = toRefs(props);\n const componentTitle = ref<BentoTabProps['title']>();\n const setTitle: BentoTabProvidedTitle = (value: string) => {\n componentTitle.value = value;\n };\n provide(EXTERNAL_TITLE_REGISTER_ENTRY_INJECTION_KEY, setTitle);\n\n const computedTitle = computed<BentoTabProps['title']>(() => componentTitle.value ?? props.title);\n\n const registerTab: BentoTabsRegisterTab = inject(TABS_REGISTER_TAB_INJECTION_KEY);\n const activeTabId = inject(TABS_ACTIVE_TAB_ID_KEY);\n\n const { id, unregisterTab } = registerTab({\n counter,\n disabled,\n hidden,\n title: computedTitle,\n withNotificationIndicator,\n });\n\n onUnmounted(() => unregisterTab());\n</script>\n\n<script lang=\"ts\">\n /**\n * Tab content which attaches a tab to the `bento-tabs` component\n * and renders is content when it becomes active.\n *\n * @example\n * import { BentoTab, BentoTabs } from '@adyen/bento-vue2';\n *\n * <template>\n * <bento-tabs>\n * <bento-tab\n * :counter=\"1\"\n * :disabled=\"false\"\n * :hidden=\"false\"\n * title=\"Tab's title\"\n * with-notification-indicator\n * >\n * Tab content\n * </bento-tab>\n * </bento-tabs>\n * </template>\n */\n export default {\n name: 'bento-tab',\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./tab.scss\" />\n"],"names":["getPreviousTabIndex","activeTabIndex","tabsValue","newActiveTabIndex","currentTab","getNextTabIndex","BentoTabsEvent","BentoTabsEvent2","_sfc_main$1","defineComponent","BentoTypography","FixedScroller","props","emit","tabs","ref","tablist","tablistwrapper","activeTabId","isPinnedByObserver","observer","provide","TABS_ACTIVE_TAB_ID_KEY","unregisterTab","tabIdToRemove","_a","id","TABS_REGISTER_TAB_INJECTION_KEY","title","disabled","withNotificationIndicator","counter","hidden","generateUid","onKeydownTabsNavigation","e","activeTab","tab","watch","index","currentTabs","nextTick","handleTabChange","tabId","activeIndex","isDisabled","isDisabledTab","topOffset","computed","unref","isPinned","disconnectObserver","setupObserver","element","isSticky","onUnmounted","tablistWrapperConditionalClasses","tablistWrapperStyles","__default__","toRefs","componentTitle","setTitle","value","EXTERNAL_TITLE_REGISTER_ENTRY_INJECTION_KEY","computedTitle","registerTab","inject"],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
const t = /* @__PURE__ */ Symbol("tabs registerTab injection key"), e = /* @__PURE__ */ Symbol("tabs active tab ID key"), E = /* @__PURE__ */ Symbol("external title tab register entry injection key");
|
|
2
|
+
export {
|
|
3
|
+
E,
|
|
4
|
+
e as T,
|
|
5
|
+
t as a
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=tabs.keys.B4qGhjp2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tabs.keys.B4qGhjp2.js","sources":["../../src/components/tabs/tabs.keys.ts"],"sourcesContent":["export const TABS_REGISTER_TAB_INJECTION_KEY = Symbol('tabs registerTab injection key');\nexport const TABS_ACTIVE_TAB_ID_KEY = Symbol('tabs active tab ID key');\nexport const EXTERNAL_TITLE_REGISTER_ENTRY_INJECTION_KEY = Symbol('external title tab register entry injection key');\n"],"names":["TABS_REGISTER_TAB_INJECTION_KEY","TABS_ACTIVE_TAB_ID_KEY","EXTERNAL_TITLE_REGISTER_ENTRY_INJECTION_KEY"],"mappings":"AAAa,MAAAA,2BAAyC,gCAAgC,GACzEC,2BAAgC,wBAAwB,GACxDC,2BAAqD,iDAAiD;"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { defineComponent as m, useSlots as f, computed as s } from "vue";
|
|
2
|
+
import { B as v } from "./typography.hlOAxsEn.js";
|
|
3
|
+
import { u as b } from "./aria-label.CaUURpnB.js";
|
|
4
|
+
import { g as r } from "./get-slot-text.Bjb9dTSV.js";
|
|
5
|
+
import { b as g } from "./tooltip.BcQ24pKP.js";
|
|
6
|
+
import { n as h } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
|
|
7
|
+
import "../assets/tag.css";
|
|
8
|
+
var i = /* @__PURE__ */ ((e) => (e.GREY = "grey", e.BLUE = "blue", e.GREEN = "green", e.ORANGE = "orange", e.RED = "red", e.WHITE = "white", e))(i || {});
|
|
9
|
+
const x = {
|
|
10
|
+
name: "bento-tag"
|
|
11
|
+
}, C = /* @__PURE__ */ m({
|
|
12
|
+
...x,
|
|
13
|
+
props: {
|
|
14
|
+
label: { default: null },
|
|
15
|
+
truncate: { default: null },
|
|
16
|
+
variant: { default: i.GREY }
|
|
17
|
+
},
|
|
18
|
+
setup(e) {
|
|
19
|
+
const t = e, a = f(), o = (d) => !!a[d], c = s(() => !!(t.label || r(a)("default"))), u = b({
|
|
20
|
+
label: t.label || r(a)("default"),
|
|
21
|
+
defaultFallback: "tag"
|
|
22
|
+
}), p = s(() => ({
|
|
23
|
+
[`b-tag--${t.variant}`]: t.variant
|
|
24
|
+
})), l = s(() => t.label ?? r(a)("default") ?? "tag"), n = s(() => t.truncate && l.value.length > t.truncate), _ = s(() => t.truncate && n.value ? `${l.value.slice(0, t.truncate)}...` : l.value);
|
|
25
|
+
return { __sfc: !0, props: t, slots: a, hasSlot: o, hasTextContent: c, computedAriaLabel: u, tagConditionalClasses: p, textFromSlot: l, shouldShowTooltip: n, formattedText: _, BentoTypography: v, vBentoTooltipDirective: g };
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
var S = function() {
|
|
29
|
+
var t = this, a = t._self._c, o = t._self._setupProxy;
|
|
30
|
+
return a("span", { directives: [{ name: "bento-tooltip-directive", rawName: "v-bento-tooltip-directive", value: o.shouldShowTooltip ? o.textFromSlot : null, expression: "shouldShowTooltip ? textFromSlot : null" }], staticClass: "b-tag", class: o.tagConditionalClasses, attrs: { "data-testid": "tag", "aria-label": o.computedAriaLabel } }, [o.hasTextContent && o.hasSlot("icon") ? a("div", { staticClass: "b-tag__icon", attrs: { role: "presentation" } }, [t._t("icon")], 2) : t._e(), a(o.BentoTypography, { staticClass: "b-tag__label", attrs: { el: "span", variant: "caption", stronger: "" } }, [t._v(" " + t._s(o.formattedText) + " ")])], 1);
|
|
31
|
+
}, T = [], E = /* @__PURE__ */ h(
|
|
32
|
+
C,
|
|
33
|
+
S,
|
|
34
|
+
T,
|
|
35
|
+
!1,
|
|
36
|
+
null,
|
|
37
|
+
"d25f600b"
|
|
38
|
+
);
|
|
39
|
+
const L = E.exports;
|
|
40
|
+
export {
|
|
41
|
+
L as B,
|
|
42
|
+
i as a
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=tag.7fp_M9Au.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tag.7fp_M9Au.js","sources":["../../src/components/tag/tag.types.ts","../../src/components/tag/tag.vue"],"sourcesContent":["export interface BentoTagProps {\n /**\n * The label text content of the Tag.\n */\n label?: string;\n\n /**\n * The number of characters to limit the number of displayed characters for the tag text, truncating it with an ellipsis of three dots \"...\".\n */\n truncate?: number;\n\n /**\n * The variant variant of tag\n */\n variant?: BentoTagVariant | `${BentoTagVariant}`;\n}\n\n/**\n * @deprecated for usage with properties since version 2.0. Use the string literal instead.\n */\nexport enum BentoTagVariant {\n GREY = 'grey',\n BLUE = 'blue',\n GREEN = 'green',\n ORANGE = 'orange',\n RED = 'red',\n WHITE = 'white',\n}\n","<template>\n <span\n v-bento-tooltip-directive=\"shouldShowTooltip ? textFromSlot : null\"\n data-testid=\"tag\"\n class=\"b-tag\"\n :class=\"tagConditionalClasses\"\n :aria-label=\"computedAriaLabel\"\n >\n <div v-if=\"hasTextContent && hasSlot('icon')\" class=\"b-tag__icon\" role=\"presentation\">\n <slot name=\"icon\"></slot>\n </div>\n <bento-typography class=\"b-tag__label\" el=\"span\" variant=\"caption\" stronger>\n {{ formattedText }}\n </bento-typography>\n </span>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, useSlots } from 'vue';\n // Use relative paths otherwise the interface won't be correctly detected\n // TODO: Use alias once the support is added to work with the betterDefine macro\n import { type BentoTagProps, BentoTagVariant } from './tag.types';\n import { BentoTypography } from '@/components/typography';\n import { BentoTooltipDirective as vBentoTooltipDirective } from '@/directives';\n import { useAriaLabel } from '@/utils/ts/aria-label';\n import { getSlotText } from '@/utils/ts/get-slot-text';\n\n const props = defineProps({\n label: { default: null },\n truncate: { default: null },\n variant: { default: BentoTagVariant.GREY }\n});\n\n const slots = useSlots();\n // Slots logic\n // Temporary, use-has-slots composable doesn't currently work for vue3 named scoped slots\n // We do the same in bento-checkbox-group\n const hasSlot = name => !!slots[name];\n\n const hasTextContent = computed(() => !!(props.label || getSlotText(slots)('default')));\n\n const computedAriaLabel = useAriaLabel({\n label: props.label || getSlotText(slots)('default'),\n defaultFallback: 'tag',\n });\n\n const tagConditionalClasses = computed(() => ({\n [`b-tag--${props.variant}`]: props.variant,\n }));\n\n const textFromSlot = computed(() => props.label ?? getSlotText(slots)('default') ?? 'tag');\n const shouldShowTooltip = computed(() => props.truncate && textFromSlot.value.length > props.truncate);\n\n const formattedText = computed(() => {\n if (!props.truncate) {\n return textFromSlot.value;\n }\n\n return shouldShowTooltip.value ? `${textFromSlot.value.slice(0, props.truncate)}...` : textFromSlot.value;\n });\n</script>\n\n<script lang=\"ts\">\n export default {\n name: 'bento-tag',\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./tag.scss\" />\n"],"names":["BentoTagVariant","BentoTagVariant2","__default__","slots","useSlots","hasSlot","name","hasTextContent","computed","props","getSlotText","computedAriaLabel","useAriaLabel","tagConditionalClasses","textFromSlot","shouldShowTooltip","formattedText"],"mappings":";;;;;;;AAoBY,IAAAA,IAAA,kBAAAC,OACRA,EAAA,OAAA,QACAA,EAAA,OAAA,QACAA,EAAA,QAAA,SACAA,EAAA,SAAA,UACAA,EAAA,MAAA,OACAA,EAAA,QAAA,SANQA,IAAAD,KAAA,CAAA,CAAA;AC2CR,MAAAE,IAAA;AAAA,EAAe,MAAA;AAEf;;;;;;;;iBAhCAC,IAAAC,EAAA,GAIAC,IAAA,CAAAC,MAAA,CAAA,CAAAH,EAAAG,CAAA,GAEAC,IAAAC,EAAA,MAAA,CAAA,EAAAC,EAAA,SAAAC,EAAAP,CAAA,EAAA,SAAA,EAAA,GAEAQ,IAAAC,EAAA;AAAA,MAAuC,OAAAH,EAAA,SAAAC,EAAAP,CAAA,EAAA,SAAA;AAAA,MACe,iBAAA;AAAA,IACjC,CAAA,GAGrBU,IAAAL,EAAA,OAAA;AAAA,MAA8C,CAAA,UAAAC,EAAA,OAAA,EAAA,GAAAA,EAAA;AAAA,IACP,EAAA,GAGvCK,IAAAN,EAAA,MAAAC,EAAA,SAAAC,EAAAP,CAAA,EAAA,SAAA,KAAA,KAAA,GACAY,IAAAP,EAAA,MAAAC,EAAA,YAAAK,EAAA,MAAA,SAAAL,EAAA,QAAA,GAEAO,IAAAR,EAAA,MACIC,EAAA,YAIAM,EAAA,QAAA,GAAAD,EAAA,MAAA,MAAA,GAAAL,EAAA,QAAA,CAAA,QAHIK,EAAA,KAGgG;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { defineComponent as se, useAttrs as ne, toRefs as T, ref as u, toRef as ie, computed as i, watch as I, nextTick as ue, onMounted as ce, onUnmounted as de } from "vue";
|
|
2
|
+
import { B as pe } from "./button.CS_kdxYh.js";
|
|
3
|
+
import { d as fe, B as me } from "./typography.hlOAxsEn.js";
|
|
4
|
+
import { C as be } from "./cross-circle-fill-small.DfxDedRr.js";
|
|
5
|
+
import { g as _e } from "./generate-uid.NJ8tVoha.js";
|
|
6
|
+
import { o as w } from "./resize.Bqks3WUm.js";
|
|
7
|
+
import { u as he } from "./aria-label.CaUURpnB.js";
|
|
8
|
+
import { u as ve } from "./index.B6WW_F-J.js";
|
|
9
|
+
import { u as ye } from "./form-field.D_2g7vaP.js";
|
|
10
|
+
import { u as xe } from "./use-form-layout-loading.CWbjZiwP.js";
|
|
11
|
+
import { B as ge } from "./es6.MoTTyETW.js";
|
|
12
|
+
import { F as Ce, E as Le } from "./field-label.DHGAa4cq.js";
|
|
13
|
+
import { n as Ee } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
|
|
14
|
+
import "../assets/textarea.css";
|
|
15
|
+
var p = /* @__PURE__ */ ((l) => (l.CLEARABLE = "clearable", l.DISABLED = "disabled", l.ERROR = "error", l.READONLY = "readonly", l))(p || {}), c = /* @__PURE__ */ ((l) => (l.BLUR = "blur", l.CHANGE = "change", l.CLEAR = "clear", l.ESCAPE_PRESSED = "escape-pressed", l.FOCUS = "focus", l.INPUT = "input", l.UPDATE_MODEL_VALUE = "update:model-value", l.KEYDOWN = "keydown", l.KEYUP = "keyup", l))(c || {});
|
|
16
|
+
const Re = {
|
|
17
|
+
"en-US": {
|
|
18
|
+
clearText: "Clear text",
|
|
19
|
+
textarea: "textarea",
|
|
20
|
+
yourTextCanBenAtMost: "Your text can be at most {characterLimit} characters"
|
|
21
|
+
}
|
|
22
|
+
}, H = parseFloat(ge), Be = {
|
|
23
|
+
i18n: { messages: Re },
|
|
24
|
+
name: "bento-textarea",
|
|
25
|
+
model: { prop: "modelValue" }
|
|
26
|
+
}, Ae = /* @__PURE__ */ se({
|
|
27
|
+
...Be,
|
|
28
|
+
props: {
|
|
29
|
+
description: { default: "" },
|
|
30
|
+
disabled: { type: Boolean, default: !1 },
|
|
31
|
+
errorMessage: { default: "" },
|
|
32
|
+
label: { default: "" },
|
|
33
|
+
optional: { type: Boolean, default: !1 },
|
|
34
|
+
placeholder: { default: "" },
|
|
35
|
+
readonly: { type: Boolean, default: !1 },
|
|
36
|
+
required: { type: Boolean, default: !1 },
|
|
37
|
+
tooltipText: { default: null },
|
|
38
|
+
ariaLabel: { default: void 0 },
|
|
39
|
+
characterLimit: { default: void 0 },
|
|
40
|
+
clearable: { type: Boolean, default: !1 },
|
|
41
|
+
height: { default: null },
|
|
42
|
+
resizable: { default: "both" },
|
|
43
|
+
value: { default: "" },
|
|
44
|
+
modelValue: { default: "" }
|
|
45
|
+
},
|
|
46
|
+
emits: [],
|
|
47
|
+
setup(l, { expose: a, emit: t }) {
|
|
48
|
+
const e = l, r = ne(), { height: v } = T(e), W = _e("textarea"), s = u(null), f = u(null), n = u(e.modelValue || e.value), d = 44, m = u(e.height || `${d}px`), L = u(0), E = u("100%"), y = u(!1);
|
|
49
|
+
let b = null, _ = null;
|
|
50
|
+
const { t: D, n: R } = ve(), { isReadOnly: x } = xe(ie(e, "readonly")), { emitValue: B } = ye(t), K = i(() => {
|
|
51
|
+
var o;
|
|
52
|
+
return `${R(((o = n == null ? void 0 : n.value) == null ? void 0 : o.length) ?? 0)} / ${R(e.characterLimit)}`;
|
|
53
|
+
}), h = i(() => !v.value), A = i(
|
|
54
|
+
() => e.characterLimit && n.value.length > e.characterLimit
|
|
55
|
+
), g = () => {
|
|
56
|
+
if (s.value) {
|
|
57
|
+
const o = Math.max(
|
|
58
|
+
s.value.scrollHeight <= d ? d : s.value.scrollHeight + H * 2,
|
|
59
|
+
L.value,
|
|
60
|
+
d
|
|
61
|
+
);
|
|
62
|
+
m.value = `${o}px`;
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
I(v, () => {
|
|
66
|
+
h.value ? g() : m.value = v.value;
|
|
67
|
+
}), I(
|
|
68
|
+
() => [e.value, e.modelValue],
|
|
69
|
+
() => {
|
|
70
|
+
n.value = e.modelValue || e.value;
|
|
71
|
+
},
|
|
72
|
+
{ immediate: !0 }
|
|
73
|
+
), I(
|
|
74
|
+
() => n.value,
|
|
75
|
+
async () => {
|
|
76
|
+
if (h.value) {
|
|
77
|
+
if (m.value = `${d}px`, !n.value)
|
|
78
|
+
return;
|
|
79
|
+
await ue(), g();
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
{ immediate: !0 }
|
|
83
|
+
);
|
|
84
|
+
const U = i(() => !!e.errorMessage || A.value), z = i(() => ({
|
|
85
|
+
[`b-textarea--${p.DISABLED}`]: e.disabled
|
|
86
|
+
})), N = i(() => ({
|
|
87
|
+
[`b-textarea__input--${p.CLEARABLE}`]: e.clearable,
|
|
88
|
+
[`b-textarea__input--${p.READONLY}`]: x.value,
|
|
89
|
+
[`b-textarea__input--${p.ERROR}`]: U.value,
|
|
90
|
+
"b-textarea__input--dynamic-height": h.value
|
|
91
|
+
})), V = i(() => ({
|
|
92
|
+
"b-textarea__label-box--no-label": !e.label
|
|
93
|
+
})), Y = i(() => ({
|
|
94
|
+
[`b-textarea__label-item--${p.ERROR}`]: A.value
|
|
95
|
+
})), q = i(() => D("yourTextCanBenAtMost", { characterLimit: e.characterLimit })), F = u(r["aria-label"]), { ariaLabel: O, label: M } = T(e), $ = he({
|
|
96
|
+
ariaLabel: F.value,
|
|
97
|
+
// TODO: take this line away when the aria-label props is removed
|
|
98
|
+
label: O,
|
|
99
|
+
defaultFallback: M
|
|
100
|
+
}), G = i(
|
|
101
|
+
() => e.clearable && n.value && !e.disabled && !x.value
|
|
102
|
+
), X = () => {
|
|
103
|
+
n.value = "", t(c.CLEAR), B("");
|
|
104
|
+
}, j = (o) => {
|
|
105
|
+
o.stopImmediatePropagation(), !e.disabled && !x.value && (n.value = o.target.value, B(n.value));
|
|
106
|
+
}, J = () => {
|
|
107
|
+
s.value.scrollTop = 0, t(c.BLUR);
|
|
108
|
+
}, Q = () => {
|
|
109
|
+
s.value.focus(), t(c.FOCUS);
|
|
110
|
+
}, Z = () => {
|
|
111
|
+
t(c.CHANGE);
|
|
112
|
+
}, ee = () => {
|
|
113
|
+
t(c.ESCAPE_PRESSED);
|
|
114
|
+
}, ae = (o) => {
|
|
115
|
+
o.stopPropagation(), t(c.KEYDOWN, o);
|
|
116
|
+
}, te = (o) => {
|
|
117
|
+
o.stopPropagation(), t(c.KEYUP, o);
|
|
118
|
+
}, le = () => {
|
|
119
|
+
y.value = !0;
|
|
120
|
+
}, oe = () => {
|
|
121
|
+
y.value = !1;
|
|
122
|
+
}, k = (o = !1) => {
|
|
123
|
+
var S;
|
|
124
|
+
const C = s.value.style.width;
|
|
125
|
+
if (s.value.style.height && (y.value && (L.value = parseInt(s.value.style.height, 10)), m.value = s.value.style.height), o && !C)
|
|
126
|
+
return;
|
|
127
|
+
const re = (S = f == null ? void 0 : f.value) == null ? void 0 : S.offsetWidth;
|
|
128
|
+
!C || parseInt(C, 10) > re ? E.value = "100%" : E.value = C;
|
|
129
|
+
}, P = () => {
|
|
130
|
+
s.value.focus();
|
|
131
|
+
};
|
|
132
|
+
return a({
|
|
133
|
+
focus: P
|
|
134
|
+
}), ce(() => {
|
|
135
|
+
b = w(s.value, () => {
|
|
136
|
+
k(!0);
|
|
137
|
+
}), _ = w(f.value, () => {
|
|
138
|
+
k();
|
|
139
|
+
}), h.value && g(), e.value && fe(
|
|
140
|
+
'BentoTextarea "value" property',
|
|
141
|
+
`The use of "value" prop in "BentoTextarea" is no longer supported.
|
|
142
|
+
Use the "v-model" or "model-value" property instead.`,
|
|
143
|
+
"2.0.0"
|
|
144
|
+
);
|
|
145
|
+
}), de(() => {
|
|
146
|
+
b == null || b.disconnect(), _ == null || _.disconnect();
|
|
147
|
+
}), { __sfc: !0, TEXTAREA_BORDER_WIDTH: H, attrs: r, props: e, emit: t, height: v, textareaId: W, textareaElement: s, textareaComponent: f, textareaValue: n, defaultTextareaHeight: d, textareaHeight: m, userSetHeight: L, textareaWrapperWidth: E, isUserResizing: y, textareaElementObserver: b, textareaComponentObserver: _, t: D, n: R, isReadOnly: x, emitValue: B, counter: K, isDynamicHeight: h, isOverCharacterLimit: A, calculateHeight: g, invalidInput: U, conditionalClasses: z, conditionalClassesInput: N, conditionalClassesLabelBox: V, conditionalClassesLabelItem: Y, counterErrorText: q, ariaLabelAttribute: F, ariaLabel: O, label: M, computedAriaLabel: $, showClearButton: G, onClear: X, onInput: j, onBlur: J, onFocus: Q, onChange: Z, onPressEscape: ee, onKeyDown: ae, onKeyUp: te, onMouseDown: le, onMouseUp: oe, resizeTextareaWrapper: k, focus: P, BentoButton: pe, BentoTypography: me, ErrorMessage: Le, FieldLabel: Ce, CrossCircleFillSmallIcon: be };
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
var ke = function() {
|
|
151
|
+
var a = this, t = a._self._c, e = a._self._setupProxy;
|
|
152
|
+
return t("div", { ref: "textareaComponent", staticClass: "b-textarea", class: e.conditionalClasses }, [t("div", { style: { width: e.textareaWrapperWidth } }, [t("div", { staticClass: "b-textarea__label-box", class: e.conditionalClassesLabelBox }, [e.label ? t(e.FieldLabel, { attrs: { for: e.textareaId, label: e.label, "tooltip-text": a.tooltipText, optional: a.optional, required: a.required } }) : a._e(), a.characterLimit ? t(e.BentoTypography, { staticClass: "b-textarea__label-item", class: e.conditionalClassesLabelItem, attrs: { el: "span" } }, [a._v(" " + a._s(e.counter) + " ")]) : a._e()], 1), t(e.BentoTypography, { staticClass: "b-textarea__input-box", attrs: { el: "div", "aria-disabled": a.disabled } }, [t("textarea", { ref: "textareaElement", staticClass: "b-textarea__input", class: e.conditionalClassesInput, style: { resize: a.resizable, height: e.textareaHeight }, attrs: { id: e.textareaId, "aria-label": e.computedAriaLabel, "aria-invalid": e.invalidInput, readonly: e.isReadOnly, required: a.required, disabled: a.disabled, placeholder: a.placeholder }, domProps: { value: e.textareaValue }, on: { blur: e.onBlur, change: e.onChange, focus: e.onFocus, input: e.onInput, keydown: [function(r) {
|
|
153
|
+
return !r.type.indexOf("key") && a._k(r.keyCode, "esc", 27, r.key, ["Esc", "Escape"]) ? null : e.onPressEscape.apply(null, arguments);
|
|
154
|
+
}, e.onKeyDown], keyup: e.onKeyUp, mousedown: e.onMouseDown, mouseup: e.onMouseUp } }), e.showClearButton ? t("div", { staticClass: "b-textarea__clear-button" }, [t(e.BentoButton, { attrs: { variant: "tertiary", disabled: a.disabled }, on: { click: e.onClear, keypress: function(r) {
|
|
155
|
+
return !r.type.indexOf("key") && a._k(r.keyCode, "enter", 13, r.key, "Enter") ? null : e.onClear.apply(null, arguments);
|
|
156
|
+
}, keyup: function(r) {
|
|
157
|
+
return !r.type.indexOf("key") && a._k(r.keyCode, "space", 32, r.key, [" ", "Spacebar"]) ? null : e.onClear.apply(null, arguments);
|
|
158
|
+
} }, scopedSlots: a._u([{ key: "iconLeft", fn: function() {
|
|
159
|
+
return [t(e.CrossCircleFillSmallIcon, { attrs: { "svg-title": e.t("clearText") } })];
|
|
160
|
+
}, proxy: !0 }], null, !1, 3119266621) })], 1) : a._e()]), e.isOverCharacterLimit ? t(e.ErrorMessage, { attrs: { "error-message": e.counterErrorText } }) : a._e(), a.errorMessage ? t(e.ErrorMessage, { attrs: { "error-message": a.errorMessage } }) : a._e(), a.description ? t(e.BentoTypography, { staticClass: "b-textarea__description", attrs: { el: "span" } }, [a._v(" " + a._s(a.description) + " ")]) : a._e()], 1)]);
|
|
161
|
+
}, Ie = [], De = /* @__PURE__ */ Ee(
|
|
162
|
+
Ae,
|
|
163
|
+
ke,
|
|
164
|
+
Ie,
|
|
165
|
+
!1,
|
|
166
|
+
null,
|
|
167
|
+
"93c37e38"
|
|
168
|
+
);
|
|
169
|
+
const Ve = De.exports;
|
|
170
|
+
export {
|
|
171
|
+
Ve as B
|
|
172
|
+
};
|
|
173
|
+
//# sourceMappingURL=textarea.Ci9sKDFy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textarea.Ci9sKDFy.js","sources":["../../src/components/textarea/textarea.types.ts","../../src/components/textarea/textarea.vue"],"sourcesContent":["import type { FormField } from '../../types/form-field';\n\n/**\n * @deprecated for usage with properties since version 2.0. Use the string literal instead.\n */\nexport enum BentoTextareaResizeOption {\n HORIZONTAL = 'horizontal',\n VERTICAL = 'vertical',\n BOTH = 'both',\n NONE = 'none',\n}\n\nexport enum BentoTextareaStateClass {\n CLEARABLE = 'clearable',\n DISABLED = 'disabled',\n ERROR = 'error',\n READONLY = 'readonly',\n}\n\nexport enum BentoTextareaEvent {\n BLUR = 'blur',\n CHANGE = 'change',\n CLEAR = 'clear',\n ESCAPE_PRESSED = 'escape-pressed',\n FOCUS = 'focus',\n INPUT = 'input',\n UPDATE_MODEL_VALUE = 'update:model-value',\n KEYDOWN = 'keydown',\n KEYUP = 'keyup',\n}\n\nexport interface BentoTextareaProps extends FormField {\n /**\n * Text that labels the input element\n * @default undefined\n */\n ariaLabel?: string;\n\n /**\n * Text that shows number of characters in textarea\n * @default undefined\n */\n characterLimit?: number;\n\n /**\n * If set to true, shows a button to clear all the text\n * @default false\n */\n clearable?: boolean;\n\n /**\n * Sets the height of the textarea, e.g 200px OR 20vh\n * @default null\n */\n height?: string | null;\n\n /**\n * Indicates the possibility of resize the textarea.\n * Accepts the Enum or the string literal version.\n * @default BentoTextareaResizeOption.BOTH\n */\n resizable?: BentoTextareaResizeOption | `${BentoTextareaResizeOption}`;\n\n /**\n * Text displayed as the value of the textarea\n * @deprecated for usage with properties since version 2.0. Use `v-model` or `model-value` instead.\n */\n value?: string;\n\n /**\n * Text displayed as the value of the textarea\n */\n modelValue?: string;\n}\n","<template>\n <div ref=\"textareaComponent\" class=\"b-textarea\" :class=\"conditionalClasses\">\n <div :style=\"{ width: textareaWrapperWidth }\">\n <div class=\"b-textarea__label-box\" :class=\"conditionalClassesLabelBox\">\n <field-label\n v-if=\"label\"\n :for=\"textareaId\"\n :label=\"label\"\n :tooltip-text=\"tooltipText\"\n :optional=\"optional\"\n :required=\"required\"\n />\n <bento-typography\n v-if=\"characterLimit\"\n el=\"span\"\n class=\"b-textarea__label-item\"\n :class=\"conditionalClassesLabelItem\"\n >\n {{ counter }}\n </bento-typography>\n </div>\n <bento-typography el=\"div\" class=\"b-textarea__input-box\" :aria-disabled=\"disabled\">\n <textarea\n :id=\"textareaId\"\n ref=\"textareaElement\"\n :value=\"textareaValue\"\n class=\"b-textarea__input\"\n :class=\"conditionalClassesInput\"\n :aria-label=\"computedAriaLabel\"\n :aria-invalid=\"invalidInput\"\n :readonly=\"isReadOnly\"\n :required=\"required\"\n :disabled=\"disabled\"\n :placeholder=\"placeholder\"\n :style=\"{ resize: resizable, height: textareaHeight }\"\n @blur=\"onBlur\"\n @change=\"onChange\"\n @focus=\"onFocus\"\n @input=\"onInput\"\n @keydown.esc=\"onPressEscape\"\n @keydown=\"onKeyDown\"\n @keyup=\"onKeyUp\"\n @mousedown=\"onMouseDown\"\n @mouseup=\"onMouseUp\"\n >\n </textarea>\n\n <div v-if=\"showClearButton\" class=\"b-textarea__clear-button\">\n <bento-button\n variant=\"tertiary\"\n :disabled=\"disabled\"\n @click=\"onClear\"\n @keypress.enter=\"onClear\"\n @keyup.space=\"onClear\"\n >\n <template #iconLeft>\n <cross-circle-fill-small-icon :svg-title=\"t('clearText')\" />\n </template>\n </bento-button>\n </div>\n </bento-typography>\n\n <error-message v-if=\"isOverCharacterLimit\" :error-message=\"counterErrorText\" />\n\n <error-message v-if=\"errorMessage\" :error-message=\"errorMessage\" />\n\n <bento-typography v-if=\"description\" class=\"b-textarea__description\" el=\"span\">\n {{ description }}\n </bento-typography>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, nextTick, onMounted, onUnmounted, ref, toRef, toRefs, useAttrs, watch } from 'vue';\n\n // Components\n import { BentoButton } from '@/components/button';\n import { BentoTypography } from '@/components/typography';\n import { ErrorMessage, FieldLabel } from '@/internal';\n import CrossCircleFillSmallIcon from '@adyen/ui-assets-icons-16/vue/cross-circle-fill-small';\n\n // Utils\n import { generateUid } from '@/core/utils/ts';\n import { observeSizeOfElement } from '@/utils/ts/resize';\n import { useAriaLabel } from '@/utils/ts/aria-label';\n import { useI18n } from '@/utils/ts/i18n';\n import { deprecate } from '@/utils/ts/deprecate';\n import { useFormFieldEmits } from '@/utils/ts/form-field/form-field';\n\n // Composables\n import { useFormLayoutFieldLoading } from '@/composables/use-form-layout-loading/use-form-layout-loading';\n\n // Constants\n import { BTextareaInputFocusBorderWidth } from '@adyen/bento-design-tokens/dist/js/bento/es6';\n\n // Types\n import { BentoTextareaEvent, type BentoTextareaProps, BentoTextareaStateClass } from './textarea.types';\n\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const attrs = useAttrs();\n\n const props = defineProps({\n description: { default: '' },\n disabled: { type: Boolean, default: false },\n errorMessage: { default: '' },\n label: { default: '' },\n optional: { type: Boolean, default: false },\n placeholder: { default: '' },\n readonly: { type: Boolean, default: false },\n required: { type: Boolean, default: false },\n tooltipText: { default: null },\n ariaLabel: { default: undefined },\n characterLimit: { default: undefined },\n clearable: { type: Boolean, default: false },\n height: { default: null },\n resizable: { default: 'both' },\n value: { default: '' },\n modelValue: { default: '' }\n});\n\n const emit = defineEmits([]);\n\n const { height } = toRefs(props);\n\n const textareaId = generateUid('textarea');\n const textareaElement = ref<HTMLTextAreaElement>(null);\n const textareaComponent = ref<HTMLDivElement>(null);\n const textareaValue = ref(props.modelValue || props.value);\n const defaultTextareaHeight = 44;\n const textareaHeight = ref(props.height || `${defaultTextareaHeight}px`);\n const userSetHeight = ref<number>(0);\n const textareaWrapperWidth = ref('100%'); // The width set to the wrapper of the label, textarea and description\n const isUserResizing = ref(false);\n let textareaElementObserver: ResizeObserver | null = null;\n let textareaComponentObserver: ResizeObserver | null = null;\n\n const { t, n } = useI18n<{ message: MessageSchema }>({ messages });\n\n const { isReadOnly } = useFormLayoutFieldLoading(toRef(props, 'readonly'));\n\n const { emitValue } = useFormFieldEmits<string>(emit);\n\n const counter = computed(() => `${n(textareaValue?.value?.length ?? 0)} / ${n(props.characterLimit)}`);\n const isDynamicHeight = computed(() => !height.value);\n const isOverCharacterLimit = computed(\n () => props.characterLimit && textareaValue.value.length > props.characterLimit\n );\n\n /**\n * Calculates and sets the height of the textarea.\n * The height is determined by the maximum of the following values:\n *\n * 1. The content's scroll height (with a minimum of `defaultTextareaHeight`) + the border width.\n * 2. The height set by the user manually resizing the textarea (`userSetHeight`).\n * 3. The default minimum height (`defaultTextareaHeight`).\n *\n * This ensures the textarea grows with content, shrinks when content is removed,\n * but never goes below the manually set height or the default height.\n */\n const calculateHeight = () => {\n if (textareaElement.value) {\n const newHeight = Math.max(\n textareaElement.value.scrollHeight <= defaultTextareaHeight\n ? defaultTextareaHeight\n : textareaElement.value.scrollHeight + TEXTAREA_BORDER_WIDTH * 2,\n userSetHeight.value,\n defaultTextareaHeight\n );\n textareaHeight.value = `${newHeight}px`;\n }\n };\n\n watch(height, () => {\n if (isDynamicHeight.value) {\n calculateHeight();\n } else {\n textareaHeight.value = height.value;\n }\n });\n\n watch(\n () => [props.value, props.modelValue],\n () => {\n textareaValue.value = props.modelValue || props.value;\n },\n { immediate: true }\n );\n\n watch(\n () => textareaValue.value,\n async () => {\n if (isDynamicHeight.value) {\n // Hack to make the textarea calculate its height properly\n // Set the textarea back to the original value before calculating the height\n textareaHeight.value = `${defaultTextareaHeight}px`;\n if (!textareaValue.value) {\n return;\n }\n\n await nextTick();\n calculateHeight();\n }\n },\n { immediate: true }\n );\n\n const invalidInput = computed(() => !!props.errorMessage || isOverCharacterLimit.value);\n\n const conditionalClasses = computed(() => ({\n [`b-textarea--${BentoTextareaStateClass.DISABLED}`]: props.disabled,\n }));\n\n const conditionalClassesInput = computed(() => ({\n [`b-textarea__input--${BentoTextareaStateClass.CLEARABLE}`]: props.clearable,\n [`b-textarea__input--${BentoTextareaStateClass.READONLY}`]: isReadOnly.value,\n [`b-textarea__input--${BentoTextareaStateClass.ERROR}`]: invalidInput.value,\n [`b-textarea__input--dynamic-height`]: isDynamicHeight.value,\n }));\n\n const conditionalClassesLabelBox = computed(() => ({\n [`b-textarea__label-box--no-label`]: !props.label,\n }));\n\n const conditionalClassesLabelItem = computed(() => ({\n [`b-textarea__label-item--${BentoTextareaStateClass.ERROR}`]: isOverCharacterLimit.value,\n }));\n\n const counterErrorText = computed(() => t('yourTextCanBenAtMost', { characterLimit: props.characterLimit }));\n\n const ariaLabelAttribute = ref(attrs['aria-label']);\n const { ariaLabel, label } = toRefs(props);\n const computedAriaLabel = useAriaLabel({\n ariaLabel: ariaLabelAttribute.value as string,\n // TODO: take this line away when the aria-label props is removed\n label: ariaLabel,\n defaultFallback: label,\n });\n\n const showClearButton = computed(\n () => props.clearable && textareaValue.value && !props.disabled && !isReadOnly.value\n );\n\n const onClear = () => {\n textareaValue.value = '';\n emit(BentoTextareaEvent.CLEAR);\n emitValue('');\n };\n\n const onInput = (event: InputEvent) => {\n event.stopImmediatePropagation();\n\n if (!props.disabled && !isReadOnly.value) {\n textareaValue.value = (event.target as HTMLInputElement).value;\n /**\n * Triggered when input value is changed\n *\n * @event input\n * @property {String} inputValue - the updated textarea value\n */\n emitValue(textareaValue.value);\n }\n };\n\n const onBlur = () => {\n textareaElement.value.scrollTop = 0;\n emit(BentoTextareaEvent.BLUR);\n };\n\n const onFocus = () => {\n textareaElement.value.focus();\n emit(BentoTextareaEvent.FOCUS);\n };\n\n const onChange = () => {\n emit(BentoTextareaEvent.CHANGE);\n };\n\n const onPressEscape = () => {\n emit(BentoTextareaEvent.ESCAPE_PRESSED);\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n event.stopPropagation();\n emit(BentoTextareaEvent.KEYDOWN, event);\n };\n\n const onKeyUp = (event: KeyboardEvent) => {\n event.stopPropagation();\n emit(BentoTextareaEvent.KEYUP, event);\n };\n\n const onMouseDown = () => {\n isUserResizing.value = true;\n };\n\n const onMouseUp = () => {\n isUserResizing.value = false;\n };\n\n /**\n * Updates the textarea width depending if the container or the user update its size.\n * @param isTextareaElement - sets to true if the element being observed is the textarea HTML element.\n */\n const resizeTextareaWrapper = (isTextareaElement = false) => {\n // Width assigned by the browser whenever the textarea is manually resized. String of the format `<value>px`.\n const textareaStyleWidth = textareaElement.value.style.width;\n\n // Make sure the tracked textareaHeight is always in sync with the height size in case we manually resize the textarea\n if (textareaElement.value.style.height) {\n if (isUserResizing.value) {\n userSetHeight.value = parseInt(textareaElement.value.style.height, 10);\n }\n textareaHeight.value = textareaElement.value.style.height;\n }\n\n // If the textarea element observer is being triggered, but there's no textareaStyleWidth, we want to ignore it, as no manual resize as happened yet\n // The component wrapper will handle the resizing logic instead\n if (isTextareaElement && !textareaStyleWidth) {\n return;\n }\n\n // Width of the whole bento-textarea component\n const textareaComponentWidth = textareaComponent?.value?.offsetWidth;\n\n // If there is no textareaStyleWidth or the textareaStyleWidth is larger than the component container, the wrapper should be 100% of the container\n if (!textareaStyleWidth || parseInt(textareaStyleWidth, 10) > textareaComponentWidth) {\n textareaWrapperWidth.value = '100%';\n } else {\n // Else the wrapper should always be as wide as the textarea element itself\n textareaWrapperWidth.value = textareaStyleWidth;\n }\n };\n\n const focus = () => {\n textareaElement.value.focus();\n };\n\n defineExpose({\n focus,\n });\n\n onMounted(() => {\n textareaElementObserver = observeSizeOfElement(textareaElement.value, () => {\n resizeTextareaWrapper(true);\n });\n\n textareaComponentObserver = observeSizeOfElement(textareaComponent.value, () => {\n resizeTextareaWrapper();\n });\n\n if (isDynamicHeight.value) {\n calculateHeight();\n }\n\n if (props.value) {\n deprecate(\n 'BentoTextarea \"value\" property',\n `The use of \"value\" prop in \"BentoTextarea\" is no longer supported.\n Use the \"v-model\" or \"model-value\" property instead.`,\n '2.0.0'\n );\n }\n });\n\n onUnmounted(() => {\n textareaElementObserver?.disconnect();\n textareaComponentObserver?.disconnect();\n });\n</script>\n\n<script lang=\"ts\">\n const TEXTAREA_BORDER_WIDTH = parseFloat(BTextareaInputFocusBorderWidth);\n\n export default {\n i18n: { messages },\n name: 'bento-textarea',\n model: { prop: 'modelValue' },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./textarea.scss\" />\n"],"names":["BentoTextareaStateClass","BentoTextareaStateClass2","BentoTextareaEvent","BentoTextareaEvent2","TEXTAREA_BORDER_WIDTH","BTextareaInputFocusBorderWidth","__default__","messages","attrs","useAttrs","height","toRefs","props","textareaId","generateUid","textareaElement","ref","textareaComponent","textareaValue","defaultTextareaHeight","textareaHeight","userSetHeight","textareaWrapperWidth","isUserResizing","textareaElementObserver","textareaComponentObserver","t","n","useI18n","isReadOnly","useFormLayoutFieldLoading","toRef","emitValue","useFormFieldEmits","emit","counter","computed","_a","isDynamicHeight","isOverCharacterLimit","calculateHeight","newHeight","watch","nextTick","invalidInput","conditionalClasses","conditionalClassesInput","conditionalClassesLabelBox","conditionalClassesLabelItem","counterErrorText","ariaLabelAttribute","ariaLabel","label","computedAriaLabel","useAriaLabel","showClearButton","onClear","onInput","event","onBlur","onFocus","onChange","onPressEscape","onKeyDown","onKeyUp","onMouseDown","onMouseUp","resizeTextareaWrapper","isTextareaElement","textareaStyleWidth","textareaComponentWidth","focus","expose","onMounted","observeSizeOfElement","deprecate","onUnmounted"],"mappings":"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"}
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
import { defineComponent as L, computed as o, ref as N, toRefs as G, watch as Q, provide as x, nextTick as X, useSlots as ee, inject as k, onUnmounted as te } from "vue";
|
|
2
|
+
import { B as H } from "./button.CS_kdxYh.js";
|
|
3
|
+
import { B as se } from "./textarea.Ci9sKDFy.js";
|
|
4
|
+
import { u as J } from "./index.B6WW_F-J.js";
|
|
5
|
+
import { B as ae } from "./button-actions.N3D-Bb_x.js";
|
|
6
|
+
import { n as R } from "./_plugin-vue2_normalizer.CeySl7Fu.js";
|
|
7
|
+
import { B as ie } from "./date.C1z2TXzM.js";
|
|
8
|
+
import { B as ne } from "./link.D8qpqg3W.js";
|
|
9
|
+
import { B as oe } from "./tag.7fp_M9Au.js";
|
|
10
|
+
import { d as le, B as re } from "./typography.hlOAxsEn.js";
|
|
11
|
+
import { S as ce, a as me, B as de } from "./structured-list-item.BLJabJwA.js";
|
|
12
|
+
/* empty css */
|
|
13
|
+
import { g as ue } from "./generate-uid.NJ8tVoha.js";
|
|
14
|
+
import { u as _e } from "./use-has-slot.C9lQZ6nz.js";
|
|
15
|
+
import { b as fe, e as ve, a as pe, n as he, g as $, m as F, d as U, f as Y, h as j } from "./getTimezoneOffsetInMilliseconds.B7sxiukN.js";
|
|
16
|
+
import { g as ge } from "./getRoundingMethod.C3eaeGLR.js";
|
|
17
|
+
import "../assets/timeline-item.css";
|
|
18
|
+
var I = /* @__PURE__ */ ((a) => (a.BOTTOM = "bottom", a.AFTER_FIRST = "after-first", a.BEFORE_LAST = "before-last", a))(I || {}), be = /* @__PURE__ */ ((a) => (a.SECOND = "second", a.MINUTE = "minute", a.HOUR = "hour", a.DAY = "day", a.MONTH = "month", a.YEAR = "year", a))(be || {}), A = /* @__PURE__ */ ((a) => (a.DEFAULT = "SquareSmallIcon", a.SUCCESS = "CheckedCircleIcon", a.CRITICAL = "CrossCircleIcon", a))(A || {}), ye = /* @__PURE__ */ ((a) => (a.BLACK = "black", a.BLUE = "blue", a.GREEN = "green", a.GREY = "grey", a.ORANGE = "orange", a.RED = "red", a.YELLOW = "yellow", a))(ye || {});
|
|
19
|
+
const K = /* @__PURE__ */ Symbol("timeline register entry injection key"), q = /* @__PURE__ */ Symbol("timeline config obj injection key"), Ce = {
|
|
20
|
+
"en-US": {
|
|
21
|
+
addNote: "Add note",
|
|
22
|
+
cancel: "Cancel"
|
|
23
|
+
},
|
|
24
|
+
"ja-JP": {
|
|
25
|
+
addNote: "メモを追加",
|
|
26
|
+
cancel: "キャンセル"
|
|
27
|
+
},
|
|
28
|
+
"pt-BR": {
|
|
29
|
+
addNote: "Adicionar anotação",
|
|
30
|
+
cancel: "Cancelar"
|
|
31
|
+
}
|
|
32
|
+
}, Te = L({
|
|
33
|
+
i18n: { messages: Ce },
|
|
34
|
+
name: "bento-timeline"
|
|
35
|
+
}), we = /* @__PURE__ */ L({
|
|
36
|
+
...Te,
|
|
37
|
+
props: {
|
|
38
|
+
addNote: { type: Boolean, default: !1 },
|
|
39
|
+
showMore: { default: null },
|
|
40
|
+
timegapLimit: { default: null }
|
|
41
|
+
},
|
|
42
|
+
emits: ["add-timeline-note"],
|
|
43
|
+
setup(a, { emit: e }) {
|
|
44
|
+
const t = a, { t: s } = J(), r = o(() => s("addNote")), p = o(() => s("cancel")), c = N(), y = (u) => {
|
|
45
|
+
c.value = u;
|
|
46
|
+
}, b = N(null), d = N(null), f = N(!1), m = async () => {
|
|
47
|
+
var u, g;
|
|
48
|
+
f.value = !f.value, await X(), f.value ? (u = b.value.$refs.textareaElement) == null || u.focus() : (g = d.value.$el) == null || g.focus();
|
|
49
|
+
}, C = () => {
|
|
50
|
+
e("add-timeline-note", {
|
|
51
|
+
description: c.value,
|
|
52
|
+
timestamp: { date: /* @__PURE__ */ new Date() },
|
|
53
|
+
type: "note"
|
|
54
|
+
}), m();
|
|
55
|
+
}, i = N([]), h = o(
|
|
56
|
+
() => t.showMore && i.value.length > t.showMore.limit ? i.value.length - t.showMore.limit : null
|
|
57
|
+
), l = N(!1), { timegapLimit: n } = G(t), _ = o(() => Array.from(i.value.keys())), v = o(() => t.showMore ? t.showMore.placement === I.BEFORE_LAST ? [
|
|
58
|
+
..._.value.slice(0, t.showMore.limit - 1),
|
|
59
|
+
_.value[_.value.length - 1]
|
|
60
|
+
] : t.showMore.placement === I.AFTER_FIRST ? [_.value[0], ..._.value.slice(-(t.showMore.limit - 1))] : _.value.slice(0, t.showMore.limit) : null), T = o(() => {
|
|
61
|
+
if (!t.showMore)
|
|
62
|
+
return null;
|
|
63
|
+
switch (t.showMore.placement) {
|
|
64
|
+
case I.BEFORE_LAST:
|
|
65
|
+
return t.showMore.limit - 2;
|
|
66
|
+
case I.AFTER_FIRST:
|
|
67
|
+
return 0;
|
|
68
|
+
case I.BOTTOM:
|
|
69
|
+
default:
|
|
70
|
+
return t.showMore.limit - 1;
|
|
71
|
+
}
|
|
72
|
+
}), E = () => {
|
|
73
|
+
i.value.sort((u, g) => new Date(g.date).getTime() - new Date(u.date).getTime());
|
|
74
|
+
}, S = (u) => () => {
|
|
75
|
+
const g = i.value.indexOf(u);
|
|
76
|
+
g > -1 && i.value.splice(g, 1);
|
|
77
|
+
}, B = (u) => (i.value.push(u), { timelineEntries: i, unregisterTimelineEntry: S(u) });
|
|
78
|
+
Q(
|
|
79
|
+
() => i.value.length,
|
|
80
|
+
() => E()
|
|
81
|
+
);
|
|
82
|
+
const w = {
|
|
83
|
+
showAll: l,
|
|
84
|
+
showMoreIndex: T,
|
|
85
|
+
hiddenItems: h,
|
|
86
|
+
visibleIndexes: v,
|
|
87
|
+
timegapLimit: n,
|
|
88
|
+
timelineEntries: i
|
|
89
|
+
};
|
|
90
|
+
return x(K, B), x(q, w), { __sfc: !0, props: t, emit: e, t: s, addNoteLabel: r, cancelLabel: p, newNoteContent: c, updateNoteContent: y, addNoteTextareaRef: b, addNoteButtonRef: d, showAddNoteTextArea: f, toggleAddNote: m, addNoteToTimeline: C, timelineEntries: i, hiddenItems: h, showAll: l, timegapLimit: n, timelineIndexes: _, visibleIndexes: v, showMoreIndex: T, sortEntries: E, unregisterTimelineEntry: S, registerTimelineEntry: B, configData: w, BentoButton: H, BentoButtonActions: ae, BentoTextarea: se };
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
var Ne = function() {
|
|
94
|
+
var e = this, t = e._self._c, s = e._self._setupProxy;
|
|
95
|
+
return t("div", { staticClass: "b-timeline" }, [e.addNote ? t("div", { staticClass: "b-timeline__add-note-section" }, [s.showAddNoteTextArea ? e._e() : t(s.BentoButton, { ref: "addNoteButtonRef", attrs: { variant: "tertiary" }, on: { click: s.toggleAddNote } }, [e._v(e._s(s.addNoteLabel))]), s.showAddNoteTextArea ? t("div", [t(s.BentoTextarea, { ref: "addNoteTextareaRef", attrs: { label: s.addNoteLabel, "character-limit": 150, resizable: "vertical" }, on: { "update:model-value": s.updateNoteContent } }), t(s.BentoButtonActions, { attrs: { actions: [
|
|
96
|
+
{ title: s.addNoteLabel, event: s.addNoteToTimeline },
|
|
97
|
+
{ title: s.cancelLabel, event: s.toggleAddNote }
|
|
98
|
+
] } })], 1) : e._e()], 1) : e._e(), t("ol", { staticClass: "b-timeline__items" }, [e._t("default")], 2)]);
|
|
99
|
+
}, Ie = [], Ee = /* @__PURE__ */ R(
|
|
100
|
+
we,
|
|
101
|
+
Ne,
|
|
102
|
+
Ie,
|
|
103
|
+
!1,
|
|
104
|
+
null,
|
|
105
|
+
"4acaf49e"
|
|
106
|
+
);
|
|
107
|
+
const et = Ee.exports;
|
|
108
|
+
let P = 0;
|
|
109
|
+
const Se = {
|
|
110
|
+
beforeCreate() {
|
|
111
|
+
this.uuid = P.toString(), P += 1;
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
var Be = function() {
|
|
115
|
+
var e = this, t = e._self._c;
|
|
116
|
+
return t("svg", e._b({ staticClass: "ui-assets-icons-16", attrs: { role: "img", xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", fill: "none" } }, "svg", e.$attrs, !1), [e.$attrs["svg-title"] ? t("title", [e._v(e._s(e.$attrs["svg-title"]))]) : e._e(), t("path", { attrs: { fill: "#001222", d: "M10 3.25C11.5188 3.25 12.75 4.48122 12.75 6V10C12.75 11.5188 11.5188 12.75 10 12.75H6C4.48122 12.75 3.25 11.5188 3.25 10V6C3.25 4.48122 4.48122 3.25 6 3.25H10Z" } })]);
|
|
117
|
+
}, Le = [], Me = /* @__PURE__ */ R(
|
|
118
|
+
Se,
|
|
119
|
+
Be,
|
|
120
|
+
Le,
|
|
121
|
+
!1,
|
|
122
|
+
null,
|
|
123
|
+
null
|
|
124
|
+
);
|
|
125
|
+
const xe = Me.exports;
|
|
126
|
+
function z(a, e, t) {
|
|
127
|
+
const s = fe(), r = (t == null ? void 0 : t.locale) ?? s.locale ?? ve, p = pe(a, e);
|
|
128
|
+
if (isNaN(p))
|
|
129
|
+
throw new RangeError("Invalid time value");
|
|
130
|
+
const c = Object.assign({}, t, {
|
|
131
|
+
addSuffix: t == null ? void 0 : t.addSuffix,
|
|
132
|
+
comparison: p
|
|
133
|
+
}), [y, b] = he(
|
|
134
|
+
t == null ? void 0 : t.in,
|
|
135
|
+
...p > 0 ? [e, a] : [a, e]
|
|
136
|
+
), d = ge((t == null ? void 0 : t.roundingMethod) ?? "round"), f = b.getTime() - y.getTime(), m = f / j, C = $(b) - $(y), i = (f - C) / j, h = t == null ? void 0 : t.unit;
|
|
137
|
+
let l;
|
|
138
|
+
if (h ? l = h : m < 1 ? l = "second" : m < 60 ? l = "minute" : m < F ? l = "hour" : i < U ? l = "day" : i < Y ? l = "month" : l = "year", l === "second") {
|
|
139
|
+
const n = d(f / 1e3);
|
|
140
|
+
return r.formatDistance("xSeconds", n, c);
|
|
141
|
+
} else if (l === "minute") {
|
|
142
|
+
const n = d(m);
|
|
143
|
+
return r.formatDistance("xMinutes", n, c);
|
|
144
|
+
} else if (l === "hour") {
|
|
145
|
+
const n = d(m / 60);
|
|
146
|
+
return r.formatDistance("xHours", n, c);
|
|
147
|
+
} else if (l === "day") {
|
|
148
|
+
const n = d(i / F);
|
|
149
|
+
return r.formatDistance("xDays", n, c);
|
|
150
|
+
} else if (l === "month") {
|
|
151
|
+
const n = d(i / U);
|
|
152
|
+
return n === 12 && h !== "month" ? r.formatDistance("xYears", 1, c) : r.formatDistance("xMonths", n, c);
|
|
153
|
+
} else {
|
|
154
|
+
const n = d(i / Y);
|
|
155
|
+
return r.formatDistance("xYears", n, c);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
const Ae = {
|
|
159
|
+
"en-US": {
|
|
160
|
+
showLess: "Show less",
|
|
161
|
+
showMore: "Show {items} more",
|
|
162
|
+
timegap: "{timegap} passed between the timeline events"
|
|
163
|
+
},
|
|
164
|
+
"ja-JP": {
|
|
165
|
+
showLess: "表示内容を減らす"
|
|
166
|
+
},
|
|
167
|
+
"pt-BR": {
|
|
168
|
+
showLess: "Mostrar menos"
|
|
169
|
+
}
|
|
170
|
+
}, Re = L({
|
|
171
|
+
name: "bento-timeline-item",
|
|
172
|
+
i18n: { messages: Ae }
|
|
173
|
+
}), De = /* @__PURE__ */ L({
|
|
174
|
+
...Re,
|
|
175
|
+
props: {
|
|
176
|
+
additionalTimestamp: { default: null },
|
|
177
|
+
dataList: { default: null },
|
|
178
|
+
description: { default: null },
|
|
179
|
+
status: { default: "black" },
|
|
180
|
+
tag: { default: void 0 },
|
|
181
|
+
timestamp: null,
|
|
182
|
+
title: { default: null },
|
|
183
|
+
type: { default: "milestone" },
|
|
184
|
+
variant: { default: null }
|
|
185
|
+
},
|
|
186
|
+
setup(a) {
|
|
187
|
+
const e = a, { t } = J(), s = ee(), r = _e(s), p = o(() => e.type === "note"), c = o(() => e.variant === A.CRITICAL ? "red" : e.variant === A.SUCCESS ? "green" : e.status);
|
|
188
|
+
e.variant && le(
|
|
189
|
+
'BentoTimelineItem "variant" property',
|
|
190
|
+
`Use the BentoTimelineItem "status" modifier instead to modify the color of the timeline icon.
|
|
191
|
+
<bento-timeline-item status="red" />`,
|
|
192
|
+
"2.0.0"
|
|
193
|
+
);
|
|
194
|
+
const y = o(() => ({
|
|
195
|
+
[`b-timeline-item__icon--${c.value}`]: c.value && !p.value
|
|
196
|
+
})), b = o(() => ({
|
|
197
|
+
"b-timeline-item--note": p.value
|
|
198
|
+
}));
|
|
199
|
+
x(ce, !0);
|
|
200
|
+
const d = {
|
|
201
|
+
title: e.title,
|
|
202
|
+
date: e.timestamp.date
|
|
203
|
+
}, f = k(K), { timelineEntries: m, unregisterTimelineEntry: C } = f(d);
|
|
204
|
+
te(() => C());
|
|
205
|
+
const { showAll: i, showMoreIndex: h, hiddenItems: l, visibleIndexes: n, timegapLimit: _ } = k(q), v = o(() => m.value.indexOf(d)), T = o(() => i.value || !n.value), E = o(() => T.value ? !0 : n.value.includes(v.value)), S = o(() => typeof e.title == "object"), B = o(() => e.title), w = o(() => {
|
|
206
|
+
var O;
|
|
207
|
+
if (!_.value)
|
|
208
|
+
return null;
|
|
209
|
+
const M = (O = m.value[v.value - 1]) == null ? void 0 : O.date, W = T.value || n.value.includes(v.value - 1);
|
|
210
|
+
if (!M || !W)
|
|
211
|
+
return null;
|
|
212
|
+
const { date: D } = m.value[v.value], Z = parseInt(
|
|
213
|
+
z(M, D, { unit: _.value.unit }),
|
|
214
|
+
10
|
|
215
|
+
);
|
|
216
|
+
return _.value.amount < Z ? z(M, D, { roundingMethod: "floor" }) : null;
|
|
217
|
+
}), u = o(() => w.value ? t("timegap", { timegap: w.value }) : ""), g = o(() => l.value && h.value === v.value), V = o(() => v.value !== -1 && v.value === m.value.length - 1);
|
|
218
|
+
return { __sfc: !0, props: e, t, slots: s, hasSlot: r, isNoteType: p, computedStatus: c, iconConditionalClasses: y, conditionalClasses: b, entry: d, registerTimelineEntry: f, timelineEntries: m, unregisterTimelineEntry: C, showAll: i, showMoreIndex: h, hiddenItems: l, visibleIndexes: n, timegapLimit: _, index: v, allItemsShowing: T, isVisible: E, isLinkTitle: S, linkTitleProps: B, timegap: w, timegapAriaLabel: u, displayShowMoreButton: g, isLastItem: V, BentoButton: H, BentoDate: ie, BentoLink: ne, BentoTag: oe, BentoTypography: re, BentoStructuredList: de, BentoStructuredListItem: me, SquareSmallIcon: xe, generateUid: ue };
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
var Oe = function() {
|
|
222
|
+
var e = this, t = e._self._c, s = e._self._setupProxy;
|
|
223
|
+
return s.isVisible ? t("li", { staticClass: "b-timeline-item", class: s.conditionalClasses }, [s.timegap ? t("div", { staticClass: "b-timeline-item__row" }, [e._m(0), t("div", { staticClass: "b-timeline-item__content" }, [t(s.BentoTypography, { staticClass: "b-timeline-item__timegap", attrs: { "aria-label": s.timegapAriaLabel } }, [e._v(" " + e._s(s.timegap) + " ")])], 1)]) : e._e(), t("div", { staticClass: "b-timeline-item__row" }, [t("div", { staticClass: "b-timeline-item__marker", attrs: { "aria-hidden": "true" } }, [t(s.SquareSmallIcon, { staticClass: "b-timeline-item__icon", class: s.iconConditionalClasses }), s.isLastItem ? e._e() : t("div", { staticClass: "b-timeline-item__separator", attrs: { "data-testid": "last-timeline-item-separator" } })], 1), t("div", { staticClass: "b-timeline-item__content" }, [s.isNoteType ? e._e() : t(s.BentoTypography, { staticClass: "b-timeline-item__title", attrs: { el: "div", variant: "body", strongest: "", role: "heading", "aria-level": "2" } }, [s.isLinkTitle ? t(s.BentoLink, e._b({ attrs: { "disable-typography": "" } }, "bento-link", s.linkTitleProps, !1), [e._v(e._s(s.linkTitleProps.title))]) : t("span", [e._v(e._s(e.title))])], 1), s.isNoteType && (e.description || s.hasSlot("default")) ? t(s.BentoTypography, { staticClass: "b-timeline-item__description", attrs: { el: "div", variant: "body" } }, [e._t("default", function() {
|
|
224
|
+
return [e._v(e._s(e.description))];
|
|
225
|
+
})], 2) : e._e(), e.timestamp ? t(s.BentoTypography, { staticClass: "b-timeline-item__timestamp", attrs: { el: "div", variant: "caption" } }, [t(s.BentoDate, { attrs: { date: e.timestamp.date, format: e.timestamp.format, "disable-typography": "" } }), e._v(" " + e._s(e.timestamp.value) + " ")], 1) : e._e(), !s.isNoteType && e.additionalTimestamp ? t(s.BentoTypography, { staticClass: "b-timeline-item__timestamp", attrs: { el: "div", variant: "caption" } }, [t(s.BentoDate, { attrs: { date: e.additionalTimestamp.date, format: e.additionalTimestamp.format, "disable-typography": "" } }), e._v(" " + e._s(e.additionalTimestamp.value) + " ")], 1) : e._e(), !s.isNoteType && (e.description || s.hasSlot("default")) ? t(s.BentoTypography, { staticClass: "b-timeline-item__description", attrs: { el: "div", variant: "body" } }, [e._t("default", function() {
|
|
226
|
+
return [e._v(e._s(e.description))];
|
|
227
|
+
})], 2) : e._e(), !s.isNoteType && e.dataList ? t("div", { staticClass: "b-timeline-item__data-list" }, [t(s.BentoStructuredList, e._l(e.dataList, function(r) {
|
|
228
|
+
return t(s.BentoStructuredListItem, { key: s.generateUid(r.label), attrs: { label: r.label } }, [t(s.BentoTypography, { attrs: { variant: "caption" } }, [e._v(e._s(r.value))])], 1);
|
|
229
|
+
}), 1)], 1) : e._e(), !s.isNoteType && e.tag ? t(s.BentoTag, e._b({ staticClass: "b-timeline-item__tag" }, "bento-tag", e.tag, !1)) : e._e()], 1)]), s.displayShowMoreButton ? t("div", { staticClass: "b-timeline-item__row" }, [e._m(1), t("div", { staticClass: "b-timeline-item__content" }, [t(s.BentoButton, { staticClass: "b-timeline__show-more", attrs: { variant: "tertiary" }, on: { click: function(r) {
|
|
230
|
+
s.showAll = !s.showAll;
|
|
231
|
+
} } }, [s.showAll ? [e._v(e._s(s.t("showLess")))] : [e._v(e._s(s.t("showMore", { items: s.hiddenItems })))]], 2)], 1)]) : e._e()]) : e._e();
|
|
232
|
+
}, ke = [function() {
|
|
233
|
+
var a = this, e = a._self._c;
|
|
234
|
+
return a._self._setupProxy, e("div", { staticClass: "b-timeline-item__marker", attrs: { "aria-hidden": "true" } }, [e("div", { staticClass: "b-timeline-item__icon b-timeline-item__icon--timegap" }), e("div", { staticClass: "b-timeline-item__separator" })]);
|
|
235
|
+
}, function() {
|
|
236
|
+
var a = this, e = a._self._c;
|
|
237
|
+
return a._self._setupProxy, e("div", { staticClass: "b-timeline-item__marker", attrs: { "aria-hidden": "true" } }, [e("div", { staticClass: "b-timeline-item__separator" })]);
|
|
238
|
+
}], $e = /* @__PURE__ */ R(
|
|
239
|
+
De,
|
|
240
|
+
Oe,
|
|
241
|
+
ke,
|
|
242
|
+
!1,
|
|
243
|
+
null,
|
|
244
|
+
"fd77a46f"
|
|
245
|
+
);
|
|
246
|
+
const tt = $e.exports;
|
|
247
|
+
export {
|
|
248
|
+
I as B,
|
|
249
|
+
tt as a,
|
|
250
|
+
be as b,
|
|
251
|
+
A as c,
|
|
252
|
+
ye as d,
|
|
253
|
+
et as t
|
|
254
|
+
};
|
|
255
|
+
//# sourceMappingURL=timeline-item.DcIQ-Q1T.js.map
|