@adyen/bento-vue3 1.94.0 → 1.96.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/@types/components.d.ts +2 -0
- package/dist/@types/index.d.ts +83 -9
- package/dist/action-bar.js +1 -1
- package/dist/ai-tag.js +1 -1
- package/dist/anchor-scroller.js +1 -1
- package/dist/assets/accordion-item.css +1 -1
- package/dist/assets/action-bar.css +1 -1
- package/dist/assets/base-modal.css +1 -1
- package/dist/assets/button-actions.css +1 -1
- package/dist/assets/card.css +1 -1
- package/dist/assets/dashed-underline.css +1 -1
- package/dist/assets/data-grid.css +1 -1
- package/dist/assets/date-picker.css +1 -1
- package/dist/assets/date-range-picker.css +1 -1
- package/dist/assets/date-time-picker.css +1 -0
- package/dist/assets/dialog-page.css +1 -1
- package/dist/assets/draggable-handle.css +1 -1
- package/dist/assets/dropdown.css +1 -1
- package/dist/assets/field-label.css +1 -1
- package/dist/assets/file-uploader.css +1 -1
- package/dist/assets/filter-bar.css +1 -1
- package/dist/assets/form-layout-group.css +1 -0
- package/dist/assets/form-layout-title.css +1 -1
- package/dist/assets/header-meta.css +1 -1
- package/dist/assets/input-field-password.css +1 -1
- package/dist/assets/input-field.css +1 -1
- package/dist/assets/inspector.css +1 -1
- package/dist/assets/modal-fullscreen.css +1 -1
- package/dist/assets/navigation-menu-group.css +1 -1
- package/dist/assets/secondary-nav.css +1 -1
- package/dist/assets/sidepanel.css +1 -1
- package/dist/button.js +1 -1
- package/dist/card.js +1 -1
- package/dist/checkbox.js +2 -2
- package/dist/chunks/{action-bar.jhGXgcQl.js → action-bar.CIVprT2U.js} +4 -4
- package/dist/chunks/{action-bar.jhGXgcQl.js.map → action-bar.CIVprT2U.js.map} +1 -1
- package/dist/chunks/{ai-tag.DIdhvkaT.js → ai-tag.DkTlRY__.js} +2 -2
- package/dist/chunks/{ai-tag.DIdhvkaT.js.map → ai-tag.DkTlRY__.js.map} +1 -1
- package/dist/chunks/{anchor-scroller.BhppCt1n.js → anchor-scroller.J2mkf0uu.js} +5 -5
- package/dist/chunks/{anchor-scroller.BhppCt1n.js.map → anchor-scroller.J2mkf0uu.js.map} +1 -1
- package/dist/chunks/{base-modal.DxjZyGlG.js → base-modal.BKtpH-qh.js} +6 -6
- package/dist/chunks/{base-modal.DxjZyGlG.js.map → base-modal.BKtpH-qh.js.map} +1 -1
- package/dist/chunks/{button-actions-with-menu.DJzCF9ja.js → button-actions-with-menu.cMAAF47d.js} +3 -3
- package/dist/chunks/{button-actions-with-menu.DJzCF9ja.js.map → button-actions-with-menu.cMAAF47d.js.map} +1 -1
- package/dist/chunks/{button-actions.uco5ptf5.js → button-actions.CxTxPprd.js} +2 -2
- package/dist/chunks/{button-actions.uco5ptf5.js.map → button-actions.CxTxPprd.js.map} +1 -1
- package/dist/chunks/{calendar.D8CM3XkW.js → calendar.iQyNwQBL.js} +81 -75
- package/dist/chunks/calendar.iQyNwQBL.js.map +1 -0
- package/dist/chunks/{card.CWzJewQv.js → card.CQlyqa5-.js} +2 -2
- package/dist/chunks/{card.CWzJewQv.js.map → card.CQlyqa5-.js.map} +1 -1
- package/dist/chunks/{checkbox-group.Bq6PsVI_.js → checkbox-group.BcDIXL27.js} +3 -3
- package/dist/chunks/{checkbox-group.Bq6PsVI_.js.map → checkbox-group.BcDIXL27.js.map} +1 -1
- package/dist/chunks/{checkbox.DreTXMg0.js → checkbox.LTRqb-pE.js} +2 -2
- package/dist/chunks/{checkbox.DreTXMg0.js.map → checkbox.LTRqb-pE.js.map} +1 -1
- package/dist/chunks/{code-snippet.CGOmdPc-.js → code-snippet.DHzB-8JJ.js} +4 -4
- package/dist/chunks/{code-snippet.CGOmdPc-.js.map → code-snippet.DHzB-8JJ.js.map} +1 -1
- package/dist/chunks/{controls-group.D4MEP6GO.js → controls-group.B-wIl-I7.js} +2 -2
- package/dist/chunks/{controls-group.D4MEP6GO.js.map → controls-group.B-wIl-I7.js.map} +1 -1
- package/dist/chunks/{copy.Dxqx884r.js → copy.XM_7RiIR.js} +3 -3
- package/dist/chunks/{copy.Dxqx884r.js.map → copy.XM_7RiIR.js.map} +1 -1
- package/dist/chunks/{dashboard-section.NWMwtxVX.js → dashboard-section.Da6ZFGtm.js} +4 -4
- package/dist/chunks/{dashboard-section.NWMwtxVX.js.map → dashboard-section.Da6ZFGtm.js.map} +1 -1
- package/dist/chunks/dashed-underline.DJmMXcdt.js +85 -0
- package/dist/chunks/dashed-underline.DJmMXcdt.js.map +1 -0
- package/dist/chunks/{data-grid-template.Bf-VZS0u.js → data-grid-template.-MuGcJp1.js} +4 -4
- package/dist/chunks/{data-grid-template.Bf-VZS0u.js.map → data-grid-template.-MuGcJp1.js.map} +1 -1
- package/dist/chunks/{data-grid.D_TrebJz.js → data-grid.CNIXkdCJ.js} +885 -882
- package/dist/chunks/{data-grid.D_TrebJz.js.map → data-grid.CNIXkdCJ.js.map} +1 -1
- package/dist/chunks/date-picker.DyImOUH4.js +277 -0
- package/dist/chunks/date-picker.DyImOUH4.js.map +1 -0
- package/dist/chunks/{date-range-picker.C5CSReZ5.js → date-range-picker.BigC6wm2.js} +418 -437
- package/dist/chunks/date-range-picker.BigC6wm2.js.map +1 -0
- package/dist/chunks/{dialog-page.CZN5-Ohm.js → dialog-page.BOwnhJze.js} +2 -2
- package/dist/chunks/{dialog-page.CZN5-Ohm.js.map → dialog-page.BOwnhJze.js.map} +1 -1
- package/dist/chunks/directive.D1-d-C2K.js +28 -0
- package/dist/chunks/directive.D1-d-C2K.js.map +1 -0
- package/dist/chunks/draggable-handle.C1dudqKz.js +1649 -0
- package/dist/chunks/{draggable-handle.B_E-T3BS.js.map → draggable-handle.C1dudqKz.js.map} +1 -1
- package/dist/chunks/drawer.BQoyUVOW.js +64 -0
- package/dist/chunks/{drawer.GXqb2HPx.js.map → drawer.BQoyUVOW.js.map} +1 -1
- package/dist/chunks/{dropdown-tag.DUDW-Be6.js → dropdown-tag.C1ei1SyR.js} +3 -3
- package/dist/chunks/{dropdown-tag.DUDW-Be6.js.map → dropdown-tag.C1ei1SyR.js.map} +1 -1
- package/dist/chunks/{dropdown.Bsic3Nll.js → dropdown.C5um1anU.js} +523 -508
- package/dist/chunks/dropdown.C5um1anU.js.map +1 -0
- package/dist/chunks/{field-label.DFtyMriH.js → field-label.CLV3nSzz.js} +2 -2
- package/dist/chunks/{field-label.DFtyMriH.js.map → field-label.CLV3nSzz.js.map} +1 -1
- package/dist/chunks/{file-uploader.CKo27YzT.js → file-uploader.C9YOBRQg.js} +39 -38
- package/dist/chunks/{file-uploader.CKo27YzT.js.map → file-uploader.C9YOBRQg.js.map} +1 -1
- package/dist/chunks/{filter-bar.Dhghqmhb.js → filter-bar.CvZnM3hM.js} +282 -279
- package/dist/chunks/{filter-bar.Dhghqmhb.js.map → filter-bar.CvZnM3hM.js.map} +1 -1
- package/dist/chunks/{focus-trap.DcxrXRKl.js → focus-trap.Dl_rHbwH.js} +2 -2
- package/dist/chunks/{focus-trap.DcxrXRKl.js.map → focus-trap.Dl_rHbwH.js.map} +1 -1
- package/dist/chunks/{footer-actions.Dyi8PTyI.js → footer-actions.zlKq74F1.js} +2 -2
- package/dist/chunks/{footer-actions.Dyi8PTyI.js.map → footer-actions.zlKq74F1.js.map} +1 -1
- package/dist/chunks/form-layout-group.08QuvVmC.js +81 -0
- package/dist/chunks/form-layout-group.08QuvVmC.js.map +1 -0
- package/dist/chunks/form-layout-title.Kwve4xv2.js +179 -0
- package/dist/chunks/form-layout-title.Kwve4xv2.js.map +1 -0
- package/dist/chunks/header-meta.NFZo1ACP.js +243 -0
- package/dist/chunks/{header-meta.I2Tztkls.js.map → header-meta.NFZo1ACP.js.map} +1 -1
- package/dist/chunks/{header-with-views.MPJPxTzT.js → header-with-views.ubPTyW9A.js} +10 -10
- package/dist/chunks/{header-with-views.MPJPxTzT.js.map → header-with-views.ubPTyW9A.js.map} +1 -1
- package/dist/chunks/{header.CBzF5Ap9.js → header.Ds0sFKBB.js} +3 -3
- package/dist/chunks/{header.CBzF5Ap9.js.map → header.Ds0sFKBB.js.map} +1 -1
- package/dist/chunks/{index.Cqv1XuTj.js → index.oOAkh64h.js} +248 -225
- package/dist/chunks/{index.Cqv1XuTj.js.map → index.oOAkh64h.js.map} +1 -1
- package/dist/chunks/{info-icon.C_ZkQb1d.js → info-icon.1FtkyuYH.js} +3 -3
- package/dist/chunks/{info-icon.C_ZkQb1d.js.map → info-icon.1FtkyuYH.js.map} +1 -1
- package/dist/chunks/{input-field-password.CA16O5Gv.js → input-field-password.CZ-NTpZF.js} +26 -25
- package/dist/chunks/input-field-password.CZ-NTpZF.js.map +1 -0
- package/dist/chunks/{input-field-phone-number.CTeDyk0e.js → input-field-phone-number.DOHk6gSp.js} +13 -14
- package/dist/chunks/{input-field-phone-number.CTeDyk0e.js.map → input-field-phone-number.DOHk6gSp.js.map} +1 -1
- package/dist/chunks/{input-field.DlEEFday.js → input-field.DBlTGgAD.js} +104 -101
- package/dist/chunks/input-field.DBlTGgAD.js.map +1 -0
- package/dist/chunks/{input-time.CIdcQBgS.js → input-time.CHIjCO74.js} +7 -8
- package/dist/chunks/{input-time.CIdcQBgS.js.map → input-time.CHIjCO74.js.map} +1 -1
- package/dist/chunks/{inspector.BdPLtQ1t.js → inspector.BvBC1ABK.js} +3 -3
- package/dist/chunks/{inspector.BdPLtQ1t.js.map → inspector.BvBC1ABK.js.map} +1 -1
- package/dist/chunks/{layout-row.PGFh3qzc.js → layout-row.BsGdHl3d.js} +8 -8
- package/dist/chunks/{layout-row.PGFh3qzc.js.map → layout-row.BsGdHl3d.js.map} +1 -1
- package/dist/chunks/{list-item.D34osEIh.js → list-item.E1o7yuEB.js} +2 -2
- package/dist/chunks/{list-item.D34osEIh.js.map → list-item.E1o7yuEB.js.map} +1 -1
- package/dist/chunks/{listbox-option-tag.12duL_ZH.js → listbox-option-tag.yF6p9iQw.js} +2 -2
- package/dist/chunks/{listbox-option-tag.12duL_ZH.js.map → listbox-option-tag.yF6p9iQw.js.map} +1 -1
- package/dist/chunks/{modal-fullscreen.BGpyGUGB.js → modal-fullscreen.DmruiE3n.js} +4 -4
- package/dist/chunks/{modal-fullscreen.BGpyGUGB.js.map → modal-fullscreen.DmruiE3n.js.map} +1 -1
- package/dist/chunks/{modal.vue_vue_type_script_setup_true_lang.B_CD-6Sn.js → modal.vue_vue_type_script_setup_true_lang.CrJQWuzb.js} +4 -4
- package/dist/chunks/{modal.vue_vue_type_script_setup_true_lang.B_CD-6Sn.js.map → modal.vue_vue_type_script_setup_true_lang.CrJQWuzb.js.map} +1 -1
- package/dist/chunks/navigation-menu-group.CQ6ImGsJ.js +336 -0
- package/dist/chunks/navigation-menu-group.CQ6ImGsJ.js.map +1 -0
- package/dist/chunks/{pagination.CbGLdXSQ.js → pagination.DbpHH_53.js} +2 -2
- package/dist/chunks/{pagination.CbGLdXSQ.js.map → pagination.DbpHH_53.js.map} +1 -1
- package/dist/chunks/popover.types.DATOPtuh.js +6 -0
- package/dist/chunks/{popover.types.63w2RF7Y.js.map → popover.types.DATOPtuh.js.map} +1 -1
- package/dist/chunks/{popper-container.WR8Hb24e.js → popper-container.BH4WxeUj.js} +2 -2
- package/dist/chunks/{popper-container.WR8Hb24e.js.map → popper-container.BH4WxeUj.js.map} +1 -1
- package/dist/chunks/{promo-banner.DS8jlFES.js → promo-banner.DvV9eXs4.js} +2 -2
- package/dist/chunks/{promo-banner.DS8jlFES.js.map → promo-banner.DvV9eXs4.js.map} +1 -1
- package/dist/chunks/{radio-group.DpLQ_Wnj.js → radio-group.Cg67ZU0c.js} +3 -3
- package/dist/chunks/{radio-group.DpLQ_Wnj.js.map → radio-group.Cg67ZU0c.js.map} +1 -1
- package/dist/chunks/{rich-text-editor.CRa59ETT.js → rich-text-editor.u-V4fNWK.js} +4 -4
- package/dist/chunks/{rich-text-editor.CRa59ETT.js.map → rich-text-editor.u-V4fNWK.js.map} +1 -1
- package/dist/chunks/{search-bar.tmX9JctT.js → search-bar.TKgi1KLs.js} +5 -6
- package/dist/chunks/{search-bar.tmX9JctT.js.map → search-bar.TKgi1KLs.js.map} +1 -1
- package/dist/chunks/secondary-nav.0OsJiAWI.js +315 -0
- package/dist/chunks/{secondary-nav.KIu9A7pb.js.map → secondary-nav.0OsJiAWI.js.map} +1 -1
- package/dist/chunks/{segmented-control.Dxfpt98K.js → segmented-control.D6Yvxxpc.js} +2 -2
- package/dist/chunks/{segmented-control.Dxfpt98K.js.map → segmented-control.D6Yvxxpc.js.map} +1 -1
- package/dist/chunks/{selection-card-group.BVxESHZH.js → selection-card-group.C59ZIrVm.js} +3 -3
- package/dist/chunks/{selection-card-group.BVxESHZH.js.map → selection-card-group.C59ZIrVm.js.map} +1 -1
- package/dist/chunks/set-time-in-date.9-8WOiMT.js +27 -0
- package/dist/chunks/set-time-in-date.9-8WOiMT.js.map +1 -0
- package/dist/chunks/{sidepanel.BwesEWP_.js → sidepanel.BVQt6Tac.js} +6 -6
- package/dist/chunks/{sidepanel.BwesEWP_.js.map → sidepanel.BVQt6Tac.js.map} +1 -1
- package/dist/chunks/{structured-list-item.DUWQ4ggz.js → structured-list-item.BhYtSw2f.js} +4 -4
- package/dist/chunks/{structured-list-item.DUWQ4ggz.js.map → structured-list-item.BhYtSw2f.js.map} +1 -1
- package/dist/chunks/{summary-grid.types.BvZUfgwA.js → summary-grid.types.9sUs0LS0.js} +5 -5
- package/dist/chunks/{summary-grid.types.BvZUfgwA.js.map → summary-grid.types.9sUs0LS0.js.map} +1 -1
- package/dist/chunks/{tab.DKVHFvuI.js → tab.ByjWuWQz.js} +108 -99
- package/dist/chunks/{tab.DKVHFvuI.js.map → tab.ByjWuWQz.js.map} +1 -1
- package/dist/chunks/{tag.DyNHhsGt.js → tag.Uu-6AQys.js} +2 -2
- package/dist/chunks/{tag.DyNHhsGt.js.map → tag.Uu-6AQys.js.map} +1 -1
- package/dist/chunks/{textarea.DNeZr2IZ.js → textarea.QgSLPL7S.js} +2 -2
- package/dist/chunks/{textarea.DNeZr2IZ.js.map → textarea.QgSLPL7S.js.map} +1 -1
- package/dist/chunks/{timeline-item.CfA1E0zq.js → timeline-item.DfwOm5do.js} +6 -6
- package/dist/chunks/{timeline-item.CfA1E0zq.js.map → timeline-item.DfwOm5do.js.map} +1 -1
- package/dist/chunks/{tooltip.CuwiX213.js → tooltip.Djn54E1O.js} +3 -3
- package/dist/chunks/{tooltip.CuwiX213.js.map → tooltip.Djn54E1O.js.map} +1 -1
- package/dist/chunks/{tutorial.vue_vue_type_script_setup_true_lang.4vdcgS4f.js → tutorial.vue_vue_type_script_setup_true_lang.B5-sWGlz.js} +4 -4
- package/dist/chunks/{tutorial.vue_vue_type_script_setup_true_lang.4vdcgS4f.js.map → tutorial.vue_vue_type_script_setup_true_lang.B5-sWGlz.js.map} +1 -1
- package/dist/chunks/use-bento-delayed-hover.Csc3nIWt.js +30 -0
- package/dist/chunks/use-bento-delayed-hover.Csc3nIWt.js.map +1 -0
- package/dist/chunks/{use-cached-selected-values.C2nbQ4g-.js → use-cached-selected-values.DOw5IKdU.js} +3 -3
- package/dist/chunks/{use-cached-selected-values.C2nbQ4g-.js.map → use-cached-selected-values.DOw5IKdU.js.map} +1 -1
- package/dist/chunks/{use-date-input-formatter.DaBZd09a.js → use-date-input-formatter.x285YiSd.js} +2 -2
- package/dist/chunks/{use-date-input-formatter.DaBZd09a.js.map → use-date-input-formatter.x285YiSd.js.map} +1 -1
- package/dist/code-snippet.js +1 -1
- package/dist/dashboard-template.js +1 -1
- package/dist/dashed-underline.js +1 -1
- package/dist/data-grid-template.js +1 -1
- package/dist/data-grid.js +1 -1
- package/dist/date-picker.js +2 -2
- package/dist/date-range-picker.js +2 -2
- package/dist/date-time-picker.js +123 -0
- package/dist/date-time-picker.js.map +1 -0
- package/dist/draggable.js +1 -1
- package/dist/drawer.js +1 -1
- package/dist/dropdown.js +3 -3
- package/dist/file-uploader.js +1 -1
- package/dist/filter-bar.js +1 -1
- package/dist/focus-trap.js +1 -1
- package/dist/form-layout.js +5 -4
- package/dist/form-layout.js.map +1 -1
- package/dist/header-with-views.js +1 -1
- package/dist/header.js +1 -1
- package/dist/index.js +217 -216
- package/dist/index.js.map +1 -1
- package/dist/info-icon.js +1 -1
- package/dist/input-field-password.js +1 -1
- package/dist/input-field-phone-number.js +1 -1
- package/dist/input-field.js +1 -1
- package/dist/input-time.js +1 -1
- package/dist/inspector.js +1 -1
- package/dist/internal.js +11 -11
- package/dist/layout.js +1 -1
- package/dist/list.js +1 -1
- package/dist/menu.js +1 -1
- package/dist/modal-fullscreen.js +1 -1
- package/dist/modal.js +2 -2
- package/dist/navigation-menu.js +1 -1
- package/dist/pagination.js +1 -1
- package/dist/popover.js +2 -2
- package/dist/popper-container.js +1 -1
- package/dist/promo-banner.js +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/rich-text-editor.js +1 -1
- package/dist/search-bar.js +2 -2
- package/dist/secondary-nav.js +1 -1
- package/dist/segmented-control.js +1 -1
- package/dist/selection-card.js +1 -1
- package/dist/sidepanel.js +1 -1
- package/dist/structured-list.js +1 -1
- package/dist/summary-grid.js +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tag.js +1 -1
- package/dist/textarea.js +1 -1
- package/dist/timeline.js +1 -1
- package/dist/tutorial.js +1 -1
- package/dist/web-types.json +1 -1
- package/package.json +6 -6
- package/dist/chunks/calendar.D8CM3XkW.js.map +0 -1
- package/dist/chunks/dashed-underline.DojqhvAa.js +0 -108
- package/dist/chunks/dashed-underline.DojqhvAa.js.map +0 -1
- package/dist/chunks/date-picker.DUUGSbot.js +0 -269
- package/dist/chunks/date-picker.DUUGSbot.js.map +0 -1
- package/dist/chunks/date-range-picker.C5CSReZ5.js.map +0 -1
- package/dist/chunks/directive.C8kY-ZW-.js +0 -23
- package/dist/chunks/directive.C8kY-ZW-.js.map +0 -1
- package/dist/chunks/draggable-handle.B_E-T3BS.js +0 -1639
- package/dist/chunks/drawer.GXqb2HPx.js +0 -55
- package/dist/chunks/dropdown.Bsic3Nll.js.map +0 -1
- package/dist/chunks/form-layout-title.B712PesH.js +0 -253
- package/dist/chunks/form-layout-title.B712PesH.js.map +0 -1
- package/dist/chunks/header-meta.I2Tztkls.js +0 -259
- package/dist/chunks/input-field-password.CA16O5Gv.js.map +0 -1
- package/dist/chunks/input-field.DlEEFday.js.map +0 -1
- package/dist/chunks/navigation-menu-group.D5HMMAuh.js +0 -320
- package/dist/chunks/navigation-menu-group.D5HMMAuh.js.map +0 -1
- package/dist/chunks/popover.types.63w2RF7Y.js +0 -6
- package/dist/chunks/secondary-nav.KIu9A7pb.js +0 -306
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import { defineComponent as _e, useAttrs as Te, useSlots as
|
|
2
|
-
import { b as
|
|
3
|
-
import { p as
|
|
4
|
-
import { u as
|
|
1
|
+
import { defineComponent as _e, useAttrs as Te, useSlots as Ae, ref as k, provide as Ne, inject as J, toRef as Fe, computed as l, toRefs as ge, openBlock as d, createBlock as u, unref as t, mergeProps as g, withCtx as b, renderSlot as p, createCommentVNode as r, createElementVNode as R, createElementBlock as v, withModifiers as X, withKeys as Se, createTextVNode as Z, toDisplayString as z, createVNode as Oe } from "vue";
|
|
2
|
+
import { b as Re, B as G } from "./dropdown.C5um1anU.js";
|
|
3
|
+
import { p as I, d as C, B as L } from "./typography.B3J6_tYk.js";
|
|
4
|
+
import { u as Ie } from "./form-field.D_2g7vaP.js";
|
|
5
5
|
import { g as h } from "./generate-uid.DBWe4g6T.js";
|
|
6
6
|
import { g as Q } from "./get-slot-text.8Fbl1GOr.js";
|
|
7
|
-
import { u as
|
|
8
|
-
import { u as
|
|
9
|
-
import { u as
|
|
10
|
-
import { u as
|
|
11
|
-
import { F as
|
|
12
|
-
import { E as
|
|
13
|
-
import { _ as
|
|
7
|
+
import { u as Ce } from "./aria-label.CaUURpnB.js";
|
|
8
|
+
import { u as Be } from "./index.B875RXHM.js";
|
|
9
|
+
import { u as Pe } from "./use-form-layout-loading.CWbjZiwP.js";
|
|
10
|
+
import { u as $e } from "./use-has-slot.CyMiImRQ.js";
|
|
11
|
+
import { F as Me } from "./field-label.CLV3nSzz.js";
|
|
12
|
+
import { E as Ve } from "./error-message.Dyvrw6ZB.js";
|
|
13
|
+
import { _ as Ue } from "./_plugin-vue_export-helper.CHgC5LLL.js";
|
|
14
14
|
import "../assets/input-field.css";
|
|
15
|
-
|
|
15
|
+
const He = /* @__PURE__ */ Symbol("input field hint injection key"), qe = /* @__PURE__ */ Symbol("input field parent component injection key");
|
|
16
|
+
var m = /* @__PURE__ */ ((o) => (o.DEFAULT = "default", o.PAYMENT_METHOD = "payment-method", o.STATIC_VALUE = "static-value", o.DROPDOWN = "dropdown", o))(m || {}), c = /* @__PURE__ */ ((o) => (o.START = "start", o.END = "end", o))(c || {}), E = /* @__PURE__ */ ((o) => (o.CONDENSED = "condensed", o.DISABLED = "disabled", o.READONLY = "readonly", o.ERROR = "error", o))(E || {}), B = /* @__PURE__ */ ((o) => (o.SEARCH = "search", o.TEXT = "text", o.NUMBER = "number", o))(B || {}), We = /* @__PURE__ */ ((o) => (o.INPUT = "input", o.ESCAPE_PRESSED = "escape-pressed", o.UPDATE_DROPDOWN = "update:dropdown", o.DROPDOWN_INPUT = "dropdown-input", o.FOCUS = "focus", o.CHANGE = "change", o.BLUR = "blur", o.KEYDOWN = "keydown", o))(We || {});
|
|
16
17
|
const x = {
|
|
17
18
|
"de-DE": { ariaLabelDropdownFallback: "{inputLabel} Dropdown", ariaLabelFallback: "Eingabefeld" },
|
|
18
19
|
"en-GB": { ariaLabelDropdownFallback: "{inputLabel} Drop-down", ariaLabelFallback: "Input field" },
|
|
@@ -24,7 +25,7 @@ const x = {
|
|
|
24
25
|
"ja-JP": { ariaLabelDropdownFallback: "{inputLabel}ドロップダウン", ariaLabelFallback: "入力フィールド" },
|
|
25
26
|
"pt-BR": { ariaLabelDropdownFallback: "Menu suspenso {inputLabel}", ariaLabelFallback: "Campo de entrada" },
|
|
26
27
|
"zh-CN": { ariaLabelDropdownFallback: "{inputLabel} 下拉菜单", ariaLabelFallback: "输入字段" }
|
|
27
|
-
},
|
|
28
|
+
}, Ye = ["aria-disabled"], je = ["aria-hidden"], Ke = ["aria-hidden"], Je = ["id"], Xe = { class: "b-input-field__input-container" }, Ze = ["id", "aria-label", "aria-describedby", "aria-owns", "aria-invalid", "placeholder", "required", "aria-required", "type", "value", "disabled", "readonly"], ze = ["aria-hidden"], Ge = ["id"], Qe = ["id"], xe = {
|
|
28
29
|
name: "bento-input-field",
|
|
29
30
|
inheritAttrs: !1,
|
|
30
31
|
model: { prop: "modelValue" },
|
|
@@ -36,13 +37,13 @@ const x = {
|
|
|
36
37
|
ariaLabel: { default: void 0 },
|
|
37
38
|
condensed: { type: Boolean, default: !1 },
|
|
38
39
|
dropdown: { default: void 0 },
|
|
39
|
-
dropdownPosition: { default:
|
|
40
|
+
dropdownPosition: { default: c.START },
|
|
40
41
|
error: { type: Boolean, default: !1 },
|
|
41
42
|
modelValue: { default: void 0 },
|
|
42
43
|
slashedZero: { type: Boolean, default: !1 },
|
|
43
44
|
staticValue: { default: "" },
|
|
44
|
-
staticValuePosition: { default:
|
|
45
|
-
type: { default:
|
|
45
|
+
staticValuePosition: { default: c.START },
|
|
46
|
+
type: { default: B.TEXT },
|
|
46
47
|
value: { default: void 0 },
|
|
47
48
|
variant: { default: m.DEFAULT },
|
|
48
49
|
description: { default: "" },
|
|
@@ -57,58 +58,58 @@ const x = {
|
|
|
57
58
|
},
|
|
58
59
|
emits: ["blur", "click", "change", "dropdown-input", "escape-pressed", "focus", "keydown", "keyup", "input", "update:dropdown", "update:model-value"],
|
|
59
60
|
setup(o, { expose: ee, emit: ae }) {
|
|
60
|
-
const
|
|
61
|
+
const P = Te(), _ = Ae(), a = o, n = ae, { emitValue: oe } = Ie(n), { t: $ } = Be({ messages: x }), s = $e(_), M = k(null), S = k(null), V = h("input"), y = h("input-dropdown"), T = h("input-static-value"), U = h("input-description"), H = h("input-error"), O = k(!1);
|
|
61
62
|
function te(e) {
|
|
62
63
|
return e["data-testid"] ?? "input-text-container";
|
|
63
64
|
}
|
|
64
|
-
function
|
|
65
|
+
function ie(e) {
|
|
65
66
|
return Object.fromEntries(
|
|
66
|
-
Object.entries(e).filter(([
|
|
67
|
+
Object.entries(e).filter(([i]) => !i.startsWith("aria-") && i !== "data-testid")
|
|
67
68
|
);
|
|
68
69
|
}
|
|
69
|
-
|
|
70
|
-
const q = J(
|
|
71
|
-
|
|
70
|
+
Ne(Re, !0);
|
|
71
|
+
const q = J(He, k(void 0)), le = () => {
|
|
72
|
+
O.value = !0, n("focus");
|
|
72
73
|
}, re = () => {
|
|
73
|
-
|
|
74
|
-
}, { isReadOnly: w } =
|
|
74
|
+
O.value = !1, n("blur");
|
|
75
|
+
}, { isReadOnly: w } = Pe(Fe(a, "readonly")), W = l(
|
|
75
76
|
() => w.value || a.dropdown?.readonly
|
|
76
|
-
),
|
|
77
|
+
), A = l(
|
|
77
78
|
() => a.variant === m.STATIC_VALUE && !!_.staticValue
|
|
78
|
-
), de =
|
|
79
|
-
() =>
|
|
80
|
-
), ue =
|
|
81
|
-
() =>
|
|
82
|
-
),
|
|
83
|
-
() =>
|
|
84
|
-
), fe =
|
|
85
|
-
() =>
|
|
86
|
-
), F =
|
|
79
|
+
), de = l(() => a.variant === m.DEFAULT), ne = l(() => a.variant === m.PAYMENT_METHOD), se = l(
|
|
80
|
+
() => A.value && a.staticValuePosition === c.START
|
|
81
|
+
), ue = l(
|
|
82
|
+
() => A.value && a.staticValuePosition === c.END
|
|
83
|
+
), N = l(() => a.variant === m.DROPDOWN && !!a.dropdown), pe = l(
|
|
84
|
+
() => N.value && a.dropdownPosition === c.START
|
|
85
|
+
), fe = l(
|
|
86
|
+
() => N.value && a.dropdownPosition === c.END
|
|
87
|
+
), F = l(
|
|
87
88
|
() => !a.disabled && !w.value && (!!a.errorMessage || a.error)
|
|
88
|
-
),
|
|
89
|
-
() =>
|
|
90
|
-
), ye =
|
|
91
|
-
() => $("ariaLabelDropdownFallback", { inputLabel:
|
|
92
|
-
), we = k(
|
|
89
|
+
), ce = l(() => Q(_)("default") || a.label), be = l(() => Q(_)("description") || a.description), ve = l(() => N.value === !0 && A.value === !0 ? `${T} ${y}` : N.value === !0 ? `${y}` : A.value === !0 ? `${T}` : null), me = l(
|
|
90
|
+
() => P?.["aria-labelledby"] ? void 0 : $("ariaLabelFallback")
|
|
91
|
+
), ye = l(
|
|
92
|
+
() => $("ariaLabelDropdownFallback", { inputLabel: Y.value })
|
|
93
|
+
), we = k(P["aria-label"]), { ariaLabel: De } = ge(a), Y = Ce({
|
|
93
94
|
ariaLabel: we.value,
|
|
94
95
|
// TODO: take this line away when the aria-label props is removed
|
|
95
96
|
label: De,
|
|
96
|
-
defaultFallback:
|
|
97
|
-
}), ke =
|
|
98
|
-
() => `${
|
|
99
|
-
), Le =
|
|
97
|
+
defaultFallback: ce.value || me
|
|
98
|
+
}), ke = l(
|
|
99
|
+
() => `${be.value ? U : ""} ${F.value && a.errorMessage ? H : ""}`
|
|
100
|
+
), Le = l(() => ({
|
|
100
101
|
[`b-input-field--${E.CONDENSED}`]: a.condensed,
|
|
101
102
|
[`b-input-field--${E.DISABLED}`]: a.disabled,
|
|
102
103
|
[`b-input-field--${E.READONLY}`]: w.value,
|
|
103
104
|
[`b-input-field--${E.ERROR}`]: F.value,
|
|
104
105
|
"b-input-field--slashed-zero": a.slashedZero
|
|
105
|
-
})),
|
|
106
|
+
})), j = l(() => ({
|
|
106
107
|
"aria-label": ye.value,
|
|
107
108
|
...a.dropdown
|
|
108
109
|
})), he = (e) => {
|
|
109
|
-
const
|
|
110
|
-
!a.disabled && !w.value && oe(
|
|
111
|
-
},
|
|
110
|
+
const i = e.target.value;
|
|
111
|
+
!a.disabled && !w.value && oe(i);
|
|
112
|
+
}, K = (e) => {
|
|
112
113
|
n("dropdown-input", e), n("update:dropdown", { ...a?.dropdown, value: e });
|
|
113
114
|
}, D = () => {
|
|
114
115
|
M.value.focus();
|
|
@@ -116,21 +117,21 @@ const x = {
|
|
|
116
117
|
ee({
|
|
117
118
|
focusInput: D,
|
|
118
119
|
focus: () => {
|
|
119
|
-
a.variant === "dropdown" ?
|
|
120
|
+
a.variant === "dropdown" ? S.value.focus() : D();
|
|
120
121
|
}
|
|
121
122
|
});
|
|
122
|
-
const Ee = J(
|
|
123
|
-
return !Object.values(
|
|
123
|
+
const Ee = J(qe, "");
|
|
124
|
+
return !Object.values(B).includes(a.type) && !Ee && (a.type === "tel" ? I(
|
|
124
125
|
`"bento-input-field" dropdown does not support the type '${a.type}', use "bento-input-field-phone-number" instead.`
|
|
125
|
-
) : a.type === "password" ?
|
|
126
|
+
) : a.type === "password" ? I(
|
|
126
127
|
`"bento-input-field" dropdown does not support the type '${a.type}', use "bento-input-field-password" instead.`
|
|
127
|
-
) :
|
|
128
|
+
) : I(`"bento-input-field" dropdown does not support the type '${a.type}'`)), a.error && C(
|
|
128
129
|
'BentoInputField "error" property',
|
|
129
130
|
`Use the BentoInputField "errorMessage" property instead to indicate that there is a modifier error.
|
|
130
131
|
Having the field as "undefined" will hide/remove the error.
|
|
131
132
|
<bento-dropdown errorMessage="Error message text" />`,
|
|
132
133
|
"2.0.0"
|
|
133
|
-
), s("defaultIconBefore") &&
|
|
134
|
+
), s("defaultIconBefore") && C(
|
|
134
135
|
'BentoInputField "defaultIconBefore" slot',
|
|
135
136
|
`Use the BentoInputField "iconBefore" slot instead to add an icon at the left side of the input field
|
|
136
137
|
<bento-input-field>
|
|
@@ -139,19 +140,19 @@ const x = {
|
|
|
139
140
|
</template>
|
|
140
141
|
</bento-input-field>`,
|
|
141
142
|
"2.0.0"
|
|
142
|
-
), a.value &&
|
|
143
|
+
), a.value && C(
|
|
143
144
|
'BentoInputField "value" property',
|
|
144
145
|
`The use of "value" prop in "BentoInputField" is no longer supported.
|
|
145
146
|
Use the "v-model" or "model-value" property instead.`,
|
|
146
147
|
"2.0.0"
|
|
147
|
-
), (e,
|
|
148
|
+
), (e, i) => (d(), u(t(L), g({ class: "b-input-field" }, ie(e.$attrs), {
|
|
148
149
|
"data-testid": te(e.$attrs),
|
|
149
150
|
class: Le.value,
|
|
150
151
|
el: "div",
|
|
151
152
|
variant: "body"
|
|
152
153
|
}), {
|
|
153
|
-
default:
|
|
154
|
-
t(s)("default") || e.label ? (d(), u(t(
|
|
154
|
+
default: b(() => [
|
|
155
|
+
t(s)("default") || e.label ? (d(), u(t(Me), {
|
|
155
156
|
key: 0,
|
|
156
157
|
for: t(V),
|
|
157
158
|
"data-testid": "input-field-label",
|
|
@@ -161,12 +162,12 @@ const x = {
|
|
|
161
162
|
label: e.label,
|
|
162
163
|
onClick: D
|
|
163
164
|
}, {
|
|
164
|
-
default:
|
|
165
|
+
default: b(() => [
|
|
165
166
|
p(e.$slots, "default", {}, void 0, !0)
|
|
166
167
|
]),
|
|
167
168
|
_: 3
|
|
168
169
|
}, 8, ["for", "tooltip-text", "optional", "required", "label"])) : r("", !0),
|
|
169
|
-
|
|
170
|
+
R("div", {
|
|
170
171
|
class: "b-input-field__input-box",
|
|
171
172
|
"data-testid": "input-box",
|
|
172
173
|
"aria-disabled": e.disabled,
|
|
@@ -179,29 +180,29 @@ const x = {
|
|
|
179
180
|
}, [
|
|
180
181
|
t(s)("iconBefore") ? p(e.$slots, "iconBefore", { key: 0 }, void 0, !0) : r("", !0),
|
|
181
182
|
t(s)("defaultIconBefore") && !t(s)("iconBefore") ? p(e.$slots, "defaultIconBefore", { key: 1 }, void 0, !0) : r("", !0)
|
|
182
|
-
], 8,
|
|
183
|
+
], 8, je)) : r("", !0),
|
|
183
184
|
ne.value && t(s)("paymentMethod") ? (d(), v("span", {
|
|
184
185
|
key: 1,
|
|
185
186
|
"aria-hidden": e.ariaHidden ? "true" : void 0,
|
|
186
187
|
class: "b-input-field__payment-method"
|
|
187
188
|
}, [
|
|
188
189
|
p(e.$slots, "paymentMethod", {}, void 0, !0)
|
|
189
|
-
], 8,
|
|
190
|
+
], 8, Ke)) : r("", !0),
|
|
190
191
|
pe.value ? (d(), v("div", {
|
|
191
192
|
key: 2,
|
|
192
193
|
id: t(y),
|
|
193
194
|
class: "b-input-field__dropdown b-input-field__dropdown--start",
|
|
194
|
-
onClick:
|
|
195
|
+
onClick: i[0] || (i[0] = X(() => {
|
|
195
196
|
}, ["stop"]))
|
|
196
197
|
}, [
|
|
197
|
-
e.dropdown ? (d(), u(t(
|
|
198
|
+
e.dropdown ? (d(), u(t(G), g({
|
|
198
199
|
key: 0,
|
|
199
200
|
ref_key: "inputDropdownElement",
|
|
200
|
-
ref:
|
|
201
|
-
},
|
|
201
|
+
ref: S
|
|
202
|
+
}, j.value, {
|
|
202
203
|
disabled: e.disabled,
|
|
203
|
-
readonly:
|
|
204
|
-
"onUpdate:modelValue":
|
|
204
|
+
readonly: W.value,
|
|
205
|
+
"onUpdate:modelValue": K
|
|
205
206
|
}), null, 16, ["disabled", "readonly"])) : r("", !0)
|
|
206
207
|
], 8, Je)) : r("", !0),
|
|
207
208
|
se.value ? (d(), u(t(L), {
|
|
@@ -211,17 +212,17 @@ const x = {
|
|
|
211
212
|
el: "span",
|
|
212
213
|
variant: "body"
|
|
213
214
|
}, {
|
|
214
|
-
default:
|
|
215
|
+
default: b(() => [
|
|
215
216
|
p(e.$slots, "staticValue", {}, void 0, !0)
|
|
216
217
|
]),
|
|
217
218
|
_: 3
|
|
218
219
|
}, 8, ["id"])) : r("", !0),
|
|
219
|
-
|
|
220
|
-
|
|
220
|
+
R("div", Xe, [
|
|
221
|
+
R("input", g({ id: t(V) }, e.$attrs, {
|
|
221
222
|
ref_key: "inputFieldElement",
|
|
222
223
|
ref: M,
|
|
223
224
|
class: "b-input-field__input",
|
|
224
|
-
"aria-label": t(
|
|
225
|
+
"aria-label": t(Y),
|
|
225
226
|
"aria-describedby": ke.value,
|
|
226
227
|
"aria-owns": ve.value,
|
|
227
228
|
"aria-invalid": F.value,
|
|
@@ -233,23 +234,23 @@ const x = {
|
|
|
233
234
|
disabled: e.disabled,
|
|
234
235
|
readonly: t(w),
|
|
235
236
|
onInput: he,
|
|
236
|
-
onChange:
|
|
237
|
-
onFocus:
|
|
237
|
+
onChange: i[1] || (i[1] = (f) => n("change")),
|
|
238
|
+
onFocus: le,
|
|
238
239
|
onBlur: re,
|
|
239
240
|
onKeydown: [
|
|
240
|
-
|
|
241
|
-
|
|
241
|
+
i[2] || (i[2] = (f) => n("keydown", f)),
|
|
242
|
+
i[4] || (i[4] = Se((f) => n("escape-pressed"), ["esc"]))
|
|
242
243
|
],
|
|
243
|
-
onKeyup:
|
|
244
|
-
onClick:
|
|
245
|
-
}), null, 16,
|
|
246
|
-
t(q) &&
|
|
244
|
+
onKeyup: i[3] || (i[3] = (f) => n("keyup", f)),
|
|
245
|
+
onClick: i[5] || (i[5] = (f) => n("click", f))
|
|
246
|
+
}), null, 16, Ze),
|
|
247
|
+
t(q) && O.value && (e.modelValue || e.value) ? (d(), u(t(L), {
|
|
247
248
|
key: 0,
|
|
248
249
|
el: "span",
|
|
249
250
|
class: "b-input-field__hint"
|
|
250
251
|
}, {
|
|
251
|
-
default:
|
|
252
|
-
z(
|
|
252
|
+
default: b(() => [
|
|
253
|
+
Z(z(t(q)), 1)
|
|
253
254
|
]),
|
|
254
255
|
_: 1
|
|
255
256
|
})) : r("", !0)
|
|
@@ -261,7 +262,7 @@ const x = {
|
|
|
261
262
|
"data-testid": "input-text__icon-after"
|
|
262
263
|
}, [
|
|
263
264
|
p(e.$slots, "iconAfter", {}, void 0, !0)
|
|
264
|
-
], 8,
|
|
265
|
+
], 8, ze)) : r("", !0),
|
|
265
266
|
ue.value ? (d(), u(t(L), {
|
|
266
267
|
key: 5,
|
|
267
268
|
id: t(T),
|
|
@@ -269,7 +270,7 @@ const x = {
|
|
|
269
270
|
el: "span",
|
|
270
271
|
variant: "body"
|
|
271
272
|
}, {
|
|
272
|
-
default:
|
|
273
|
+
default: b(() => [
|
|
273
274
|
p(e.$slots, "staticValue", {}, void 0, !0)
|
|
274
275
|
]),
|
|
275
276
|
_: 3
|
|
@@ -279,22 +280,22 @@ const x = {
|
|
|
279
280
|
id: t(y),
|
|
280
281
|
"data-testid": "input-field-dropdown-container-end",
|
|
281
282
|
class: "b-input-field__dropdown b-input-field__dropdown--end",
|
|
282
|
-
onClick:
|
|
283
|
+
onClick: i[6] || (i[6] = X(() => {
|
|
283
284
|
}, ["stop"]))
|
|
284
285
|
}, [
|
|
285
|
-
e.dropdown ? (d(), u(t(
|
|
286
|
+
e.dropdown ? (d(), u(t(G), g({
|
|
286
287
|
key: 0,
|
|
287
288
|
id: t(y),
|
|
288
289
|
ref_key: "inputDropdownElement",
|
|
289
|
-
ref:
|
|
290
|
-
},
|
|
290
|
+
ref: S
|
|
291
|
+
}, j.value, {
|
|
291
292
|
disabled: e.disabled,
|
|
292
|
-
readonly:
|
|
293
|
-
"onUpdate:modelValue":
|
|
293
|
+
readonly: W.value,
|
|
294
|
+
"onUpdate:modelValue": K
|
|
294
295
|
}), null, 16, ["id", "disabled", "readonly"])) : r("", !0)
|
|
295
|
-
], 8,
|
|
296
|
-
], 8,
|
|
297
|
-
F.value && e.errorMessage ? (d(), u(t(
|
|
296
|
+
], 8, Ge)) : r("", !0)
|
|
297
|
+
], 8, Ye),
|
|
298
|
+
F.value && e.errorMessage ? (d(), u(t(Ve), {
|
|
298
299
|
key: 1,
|
|
299
300
|
id: t(H),
|
|
300
301
|
"error-message": e.errorMessage,
|
|
@@ -306,13 +307,13 @@ const x = {
|
|
|
306
307
|
class: "b-input-field__description",
|
|
307
308
|
onClick: D
|
|
308
309
|
}, [
|
|
309
|
-
|
|
310
|
+
Oe(t(L), {
|
|
310
311
|
el: "span",
|
|
311
312
|
variant: "body"
|
|
312
313
|
}, {
|
|
313
|
-
default:
|
|
314
|
+
default: b(() => [
|
|
314
315
|
p(e.$slots, "description", { id: "description" }, () => [
|
|
315
|
-
z(
|
|
316
|
+
Z(z(e.description), 1)
|
|
316
317
|
], !0)
|
|
317
318
|
]),
|
|
318
319
|
_: 3
|
|
@@ -322,13 +323,15 @@ const x = {
|
|
|
322
323
|
_: 3
|
|
323
324
|
}, 16, ["data-testid", "class"]));
|
|
324
325
|
}
|
|
325
|
-
}), va = /* @__PURE__ */
|
|
326
|
+
}), va = /* @__PURE__ */ Ue(ea, [["__scopeId", "data-v-a764fbac"]]);
|
|
326
327
|
export {
|
|
327
328
|
va as B,
|
|
328
|
-
|
|
329
|
-
|
|
329
|
+
He as I,
|
|
330
|
+
c as a,
|
|
331
|
+
We as b,
|
|
330
332
|
E as c,
|
|
331
|
-
|
|
332
|
-
m as e
|
|
333
|
+
B as d,
|
|
334
|
+
m as e,
|
|
335
|
+
qe as f
|
|
333
336
|
};
|
|
334
|
-
//# sourceMappingURL=input-field.
|
|
337
|
+
//# sourceMappingURL=input-field.DBlTGgAD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-field.DBlTGgAD.js","sources":["../../../vue2/src/components/input-field/input-field.keys.ts","../../../vue2/src/components/input-field/input-field.types.ts","../../../vue2/src/components/input-field/input-field.vue"],"sourcesContent":["export const INPUT_FIELD_HINT_INJECTION_KEY = Symbol('input field hint injection key');\nexport const INPUT_FIELD_PARENT_COMPONENT_INJECTION_KEY = Symbol('input field parent component injection key');\n","import { type BentoDropdownProps } from '../dropdown/dropdown.types';\nimport { type FormField } from '../../types/form-field';\n\n/**\n * @deprecated Since v2.0.0. Use string literal instead.\n */\nexport enum BentoInputFieldVariant {\n DEFAULT = 'default',\n PAYMENT_METHOD = 'payment-method',\n STATIC_VALUE = 'static-value',\n DROPDOWN = 'dropdown',\n}\n\n/**\n * @deprecated Since v2.0.0. Use string literal instead.\n */\nexport enum BentoInputFieldElementPosition {\n START = 'start',\n END = 'end',\n}\n\nexport enum BentoInputFieldStateClass {\n CONDENSED = 'condensed',\n DISABLED = 'disabled',\n READONLY = 'readonly',\n ERROR = 'error',\n}\n\n/**\n * @deprecated Since v2.0.0. Use string literal instead.\n */\nexport enum BentoInputFieldType {\n SEARCH = 'search',\n TEXT = 'text',\n NUMBER = 'number',\n}\n\nexport type BentoInputFieldValue = string | number;\n\nexport interface BentoInputDropdownProps {\n /**\n * Text that labels the dropdown element\n */\n 'aria-label'?: string;\n /**\n * Indicates that dropdown items are loading (shows a loading skeleton)\n */\n componentLoading?: BentoDropdownProps['componentLoading'];\n /**\n * Enables dynamic filtering\n */\n dynamicFiltering?: BentoDropdownProps['dynamicFiltering'];\n /**\n * Empty state displayed when no search results are found\n */\n emptyState?: BentoDropdownProps['emptyState'];\n /**\n * Enables value/label pair handling for selected values\n */\n enableValueLabelPair?: BentoDropdownProps['enableValueLabelPair'];\n /**\n * Indicates whether there are more items to load\n */\n hasMoreItems?: BentoDropdownProps['hasMoreItems'];\n /**\n * Function that determines which options are disabled from interaction\n */\n isOptionDisabled?: BentoDropdownProps['isOptionDisabled'];\n /**\n * List of available items\n */\n items: BentoDropdownProps['items'];\n /**\n * The type of lazy load: \"automatic\" for infinite scrolling, \"button\" for a show-more button\n */\n lazyLoadType?: BentoDropdownProps['lazyLoadType'];\n /**\n * Indicates if new options are lazy loading\n */\n loading?: BentoDropdownProps['loading'];\n /**\n * Selected value of the dropdown\n */\n modelValue?: BentoDropdownProps['modelValue'];\n /**\n * Sets the dropdown in read-only mode\n */\n readonly?: BentoDropdownProps['readonly'];\n /**\n * Dropdown search options including debounce time and placeholder\n */\n search?: BentoDropdownProps['search'];\n /**\n * Displays non-selectable, static categories in the dropdown\n */\n staticCategories?: BentoDropdownProps['staticCategories'];\n /**\n * Selected value of the dropdown\n * @deprecated Since v2.0.0. Use `model-value` instead.\n */\n value?: BentoDropdownProps['value'];\n /**\n * Enables virtual scrolling for large lists of items\n */\n virtualScroll?: BentoDropdownProps['virtualScroll'];\n}\n\n/**\n * @deprecated Since v2.0.0. Use `@<emit name>` instead.\n */\nexport enum BentoInputFieldEvent {\n INPUT = 'input',\n ESCAPE_PRESSED = 'escape-pressed',\n UPDATE_DROPDOWN = 'update:dropdown',\n DROPDOWN_INPUT = 'dropdown-input',\n FOCUS = 'focus',\n CHANGE = 'change',\n BLUR = 'blur',\n KEYDOWN = 'keydown',\n}\n\nexport interface BentoInputFieldProps extends FormField {\n /**\n * Indicates whether the element is exposed to an accessibility API.\n */\n ariaHidden?: boolean;\n\n /**\n * Text that labels an the input element\n *\n * @deprecated Since v2.0.0. Use `aria-label` instead.\n */\n ariaLabel?: string;\n\n /**\n * Reduces height of the input\n */\n condensed?: boolean;\n\n /**\n * Dropdown props for the single-select dropdown menu embedded in the input field.\n * Only a subset of `BentoDropdownProps` is supported (multi-select is not available).\n *\n * @see {@link BentoInputDropdownProps}\n */\n dropdown?: BentoInputDropdownProps;\n\n /**\n * Position of the dropdown before or after input value\n */\n dropdownPosition?: BentoInputFieldElementPosition | `${BentoInputFieldElementPosition}`;\n\n /**\n * Adds error validation class for outlining input-field.\n *\n * @deprecated Since v2.0.0. Use `errorMessage` instead.\n */\n error?: boolean;\n\n /**\n * Text displayed as the value of the input-field\n */\n modelValue?: BentoInputFieldValue;\n\n /**\n * Renders a font numeric style with slashed zeros instead of normal ones.\n */\n slashedZero?: boolean;\n\n /**\n * Static text that displayed before or after input value\n * Applicable to the Static Value variant\n */\n staticValue?: string;\n\n /**\n * Position of Static Value before or after input value\n */\n staticValuePosition?: BentoInputFieldElementPosition | `${BentoInputFieldElementPosition}`;\n\n /**\n * A string specifying the type of control to render.\n * All `input` types are available but only `search`, `text` and `number` are fully supported.\n *\n * If `type` is `search`, use `bento-search-bar` instead.\n */\n type?: BentoInputFieldType | `${BentoInputFieldType}` | HTMLInputElement['type'];\n\n /**\n * Text displayed as the value of the input-field\n * @deprecated Since v2.0.0. Use `v-model` or `model-value` instead.\n */\n value?: BentoInputFieldValue;\n\n /**\n * Describes the different variants for the input element\n */\n variant?: BentoInputFieldVariant | `${BentoInputFieldVariant}`;\n}\n","<template>\n <bento-typography\n class=\"b-input-field\"\n v-bind=\"getRootAttributes($attrs)\"\n :data-testid=\"getDataTestId($attrs)\"\n :class=\"inputFieldConditionalClasses\"\n el=\"div\"\n variant=\"body\"\n >\n <field-label\n v-if=\"hasSlot('default') || label\"\n :for=\"inputFieldId\"\n data-testid=\"input-field-label\"\n :tooltip-text=\"tooltipText\"\n :optional=\"optional\"\n :required=\"required\"\n :label=\"label\"\n @click=\"focusInput\"\n >\n <slot></slot>\n </field-label>\n\n <div class=\"b-input-field__input-box\" data-testid=\"input-box\" :aria-disabled=\"disabled\" @click=\"focusInput\">\n <!-- Optional Icon for Default text variant -->\n <span\n v-if=\"isDefaultVariant && (hasSlot('defaultIconBefore') || hasSlot('iconBefore'))\"\n :aria-hidden=\"ariaHidden ? 'true' : undefined\"\n class=\"b-input-field__icon-before\"\n >\n <slot v-if=\"hasSlot('iconBefore')\" name=\"iconBefore\" />\n <slot v-if=\"hasSlot('defaultIconBefore') && !hasSlot('iconBefore')\" name=\"defaultIconBefore\" />\n </span>\n\n <!-- Mandatory Icon for Payment Method variant -->\n <span\n v-if=\"isPaymentMethodVariant && hasSlot('paymentMethod')\"\n :aria-hidden=\"ariaHidden ? 'true' : undefined\"\n class=\"b-input-field__payment-method\"\n >\n <slot name=\"paymentMethod\" />\n </span>\n\n <!-- Dropdown at start -->\n <div\n v-if=\"shouldDisplayDropdownAtStart\"\n :id=\"dropdownId\"\n class=\"b-input-field__dropdown b-input-field__dropdown--start\"\n @click.stop\n >\n <bento-dropdown\n v-if=\"dropdown\"\n ref=\"inputDropdownElement\"\n v-bind=\"inputFieldDropdownProps\"\n :disabled=\"disabled\"\n :readonly=\"isDropdownReadOnly\"\n @update:model-value=\"onDropdownInput\"\n />\n </div>\n\n <!-- Static Value at start -->\n <bento-typography\n v-if=\"shouldDisplayStaticValueAtStart\"\n :id=\"staticValueId\"\n class=\"b-input-field__static-value b-input-field__static-value--start\"\n el=\"span\"\n variant=\"body\"\n >\n <slot name=\"staticValue\" />\n </bento-typography>\n <div class=\"b-input-field__input-container\">\n <input\n :id=\"inputFieldId\"\n v-bind=\"$attrs\"\n ref=\"inputFieldElement\"\n class=\"b-input-field__input\"\n :aria-label=\"computedAriaLabel\"\n :aria-describedby=\"computedAriaDescribedBy\"\n :aria-owns=\"computedAriaOwns\"\n :aria-invalid=\"shouldShowError\"\n :placeholder=\"placeholder\"\n :required=\"required\"\n :aria-required=\"required\"\n :type=\"type\"\n :value=\"modelValue ?? value\"\n :disabled=\"disabled\"\n :readonly=\"isReadOnly\"\n @input=\"onInput\"\n @change=\"emit('change')\"\n @focus=\"onFocus\"\n @blur=\"onBlur\"\n @keydown=\"emit('keydown', $event)\"\n @keyup=\"emit('keyup', $event)\"\n @keydown.esc=\"emit('escape-pressed')\"\n @click=\"emit('click', $event)\"\n />\n\n <!-- Hint at the end -->\n <bento-typography\n v-if=\"hint && isFocused && (modelValue || value)\"\n el=\"span\"\n class=\"b-input-field__hint\"\n >\n {{ hint }}\n </bento-typography>\n </div>\n\n <span\n v-if=\"hasSlot('iconAfter')\"\n :aria-hidden=\"ariaHidden ? 'true' : undefined\"\n class=\"b-input-field__icon-after\"\n data-testid=\"input-text__icon-after\"\n >\n <slot name=\"iconAfter\" />\n </span>\n\n <!-- Static Value at the end -->\n <bento-typography\n v-if=\"shouldDisplayStaticValueAtEnd\"\n :id=\"staticValueId\"\n class=\"b-input-field__static-value b-input-field__static-value--end\"\n el=\"span\"\n variant=\"body\"\n >\n <slot name=\"staticValue\" />\n </bento-typography>\n\n <!-- Dropdown at end -->\n <div\n v-if=\"shouldDisplayDropdownAtEnd\"\n :id=\"dropdownId\"\n data-testid=\"input-field-dropdown-container-end\"\n class=\"b-input-field__dropdown b-input-field__dropdown--end\"\n @click.stop\n >\n <bento-dropdown\n v-if=\"dropdown\"\n :id=\"dropdownId\"\n ref=\"inputDropdownElement\"\n v-bind=\"inputFieldDropdownProps\"\n :disabled=\"disabled\"\n :readonly=\"isDropdownReadOnly\"\n @update:model-value=\"onDropdownInput\"\n />\n </div>\n </div>\n\n <error-message\n v-if=\"shouldShowError && !!errorMessage\"\n :id=\"errorId\"\n :error-message=\"errorMessage\"\n class=\"b-input-field__error-message\"\n />\n\n <span\n v-if=\"hasSlot('description') || description\"\n :id=\"descriptionId\"\n class=\"b-input-field__description\"\n @click=\"focusInput\"\n >\n <bento-typography el=\"span\" variant=\"body\">\n <slot id=\"description\" name=\"description\">\n {{ description }}\n </slot>\n </bento-typography>\n </span>\n </bento-typography>\n</template>\n\n<script setup lang=\"ts\">\n import { computed, inject, provide, type Ref, ref, toRef, toRefs, useAttrs, useSlots } from 'vue';\n\n // Components\n import { BentoDropdown } from '@/components/dropdown';\n import { DROPDOWN_SMALL_SIZE_INJECTION_KEY } from '@/components/dropdown/dropdown.keys';\n import { BentoTypography } from '@/components/typography';\n import { ErrorMessage, FieldLabel } from '@/internal';\n\n // Utils\n import { deprecate } from '@/utils/ts/deprecate';\n import { useFormFieldEmits } from '@/utils/ts/form-field/form-field';\n import { generateUid } from '@/core/utils/ts';\n import { getSlotText } from '@/utils/ts/get-slot-text';\n import { useAriaLabel } from '@/utils/ts/aria-label';\n import { useI18n } from '@/utils/ts/i18n';\n import { printDevelopmentWarning } from '@/utils/ts/print-development-warning';\n import {\n INPUT_FIELD_HINT_INJECTION_KEY,\n INPUT_FIELD_PARENT_COMPONENT_INJECTION_KEY,\n } from '@/components/input-field/input-field.keys';\n import { type BentoListboxSelectedValue } from '@/types/listbox';\n\n // Composables\n import { useFormLayoutFieldLoading, useHasSlot } from '@/composables';\n\n // Types\n import {\n type BentoInputDropdownProps,\n BentoInputFieldElementPosition,\n type BentoInputFieldProps,\n BentoInputFieldStateClass,\n BentoInputFieldType,\n type BentoInputFieldValue,\n BentoInputFieldVariant,\n } from './input-field.types';\n\n import messages from './messages.json';\n\n type MessageSchema = (typeof messages)['en-US'];\n\n const attrs = useAttrs();\n const slots = useSlots();\n\n const props = withDefaults(defineProps<BentoInputFieldProps>(), {\n ariaHidden: true,\n ariaLabel: undefined,\n condensed: false,\n description: '',\n disabled: false,\n dropdown: undefined,\n dropdownPosition: BentoInputFieldElementPosition.START,\n error: false,\n errorMessage: null,\n label: '',\n modelValue: undefined,\n optional: false,\n placeholder: '',\n required: false,\n readonly: false,\n slashedZero: false,\n staticValue: '',\n staticValuePosition: BentoInputFieldElementPosition.START,\n tooltipText: null,\n type: BentoInputFieldType.TEXT,\n value: undefined,\n variant: BentoInputFieldVariant.DEFAULT,\n });\n\n const emit = defineEmits<{\n /**\n * Emitted when the element has lost focus\n */\n (e: 'blur'): void;\n\n /**\n * Emitted when the input is clicked\n */\n (e: 'click', event: MouseEvent);\n\n /**\n * Emitted when the user modifies the element's value. Unlike the 'input' event, the change event is not necessarily fired for each alteration to an element's value\n */\n (e: 'change'): void;\n\n /**\n * Emitted when the Input Field's internal dropdown changes it's value\n */\n (e: 'dropdown-input', selectedValue: BentoListboxSelectedValue): void;\n\n /**\n * Emitted when the \"ESC\" key is pressed\n */\n (e: 'escape-pressed'): void;\n\n /**\n * Emitted when the element has received focus\n */\n (e: 'focus'): void;\n\n /**\n * Emitted when a key is pressed down\n */\n (e: 'keydown', event: KeyboardEvent): void;\n\n /**\n * Emitted when a key is pressed and lifted up\n */\n (e: 'keyup', event: KeyboardEvent): void;\n\n /**\n * Emitted when the component's model changes\n * @deprecated Since v2.0.0. Use `v-model` or `update:model-value` instead.\n */\n (e: 'input', inputValue: string): void;\n\n /**\n * Emitted when the Input Field's internal dropdown changes it's value. Contains every dropdown prop passed with the updated selected value as 'value'\n */\n (e: 'update:dropdown', updatedDropdownProps: BentoInputDropdownProps): void;\n\n /**\n * Emitted when the component's model changes\n */\n (e: 'update:model-value', inputValue: BentoInputFieldValue): void;\n }>();\n\n const { emitValue } = useFormFieldEmits<BentoInputFieldValue>(emit);\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n const hasSlot = useHasSlot(slots);\n const inputFieldElement = ref(null);\n const inputDropdownElement = ref(null);\n const inputFieldId = generateUid('input');\n const dropdownId = generateUid('input-dropdown');\n const staticValueId = generateUid('input-static-value');\n const descriptionId = generateUid('input-description');\n const errorId = generateUid('input-error');\n const isFocused = ref(false);\n\n /**\n * Gets the overriden or the default data-testid attribute\n * @param attributes - the live attributes object\n */\n function getDataTestId(attributes: Record<string, unknown>) {\n return (attributes['data-testid'] as string) ?? 'input-text-container';\n }\n /**\n * Filters out all aria attributes for the root element.\n * @param attributes - the live attributes object\n */\n function getRootAttributes(attributes: Record<string, unknown>) {\n return Object.fromEntries(\n Object.entries(attributes).filter(([key]) => !key.startsWith('aria-') && key !== 'data-testid')\n );\n }\n\n // Provide DROPDOWN_SMALL_SIZE_INJECTION_KEY as true, to set the input only dropdown size variant in the BentoDropdown comp\n provide(DROPDOWN_SMALL_SIZE_INJECTION_KEY, true);\n // Renders the input with a hint if a string is provided\n const hint = inject<Ref<string | undefined>>(INPUT_FIELD_HINT_INJECTION_KEY, ref(undefined));\n\n const onFocus = () => {\n isFocused.value = true;\n emit('focus');\n };\n\n const onBlur = () => {\n isFocused.value = false;\n emit('blur');\n };\n\n const { isReadOnly } = useFormLayoutFieldLoading(toRef(props, 'readonly'));\n const isDropdownReadOnly = computed<BentoInputDropdownProps['readonly']>(\n () => isReadOnly.value || props.dropdown?.readonly\n );\n\n const shouldShowStaticValue = computed(\n () => props.variant === BentoInputFieldVariant.STATIC_VALUE && !!slots.staticValue\n );\n\n const isDefaultVariant = computed(() => props.variant === BentoInputFieldVariant.DEFAULT);\n\n const isPaymentMethodVariant = computed(() => props.variant === BentoInputFieldVariant.PAYMENT_METHOD);\n\n const shouldDisplayStaticValueAtStart = computed(\n () => shouldShowStaticValue.value && props.staticValuePosition === BentoInputFieldElementPosition.START\n );\n const shouldDisplayStaticValueAtEnd = computed(\n () => shouldShowStaticValue.value && props.staticValuePosition === BentoInputFieldElementPosition.END\n );\n\n const shouldShowDropdown = computed(() => props.variant === BentoInputFieldVariant.DROPDOWN && !!props.dropdown);\n const shouldDisplayDropdownAtStart = computed(\n () => shouldShowDropdown.value && props.dropdownPosition === BentoInputFieldElementPosition.START\n );\n const shouldDisplayDropdownAtEnd = computed(\n () => shouldShowDropdown.value && props.dropdownPosition === BentoInputFieldElementPosition.END\n );\n\n const shouldShowError = computed(\n () => !props.disabled && !isReadOnly.value && (!!props.errorMessage || props.error)\n );\n\n const computedLabel = computed(() => (getSlotText(slots)('default') as string) || props.label);\n const computedDescription = computed(() => (getSlotText(slots)('description') as string) || props.description);\n\n const computedAriaOwns = computed(() => {\n if (shouldShowDropdown.value === true && shouldShowStaticValue.value === true) {\n return `${staticValueId} ${dropdownId}`;\n }\n if (shouldShowDropdown.value === true) {\n return `${dropdownId}`;\n }\n if (shouldShowStaticValue.value === true) {\n return `${staticValueId}`;\n }\n return null;\n });\n\n // vue-i18n issue with t() used in script - direct usage in template works\n // requires either createI18n({ legacy: false }) or to be wrapped in computed()\n const computedAriaLabelFallbackMessage = computed(() =>\n attrs?.['aria-labelledby'] ? undefined : t('ariaLabelFallback')\n );\n const computedAriaLabelDropdowFallback = computed(() =>\n t('ariaLabelDropdownFallback', { inputLabel: computedAriaLabel.value })\n );\n\n const ariaLabelAttribute = ref(attrs['aria-label']);\n const { ariaLabel } = 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: computedLabel.value || computedAriaLabelFallbackMessage,\n });\n\n const computedAriaDescribedBy = computed(\n () =>\n `${computedDescription.value ? descriptionId : ''} ${\n shouldShowError.value && !!props.errorMessage ? errorId : ''\n }`\n );\n\n const inputFieldConditionalClasses = computed(() => ({\n [`b-input-field--${BentoInputFieldStateClass.CONDENSED}`]: props.condensed,\n [`b-input-field--${BentoInputFieldStateClass.DISABLED}`]: props.disabled,\n [`b-input-field--${BentoInputFieldStateClass.READONLY}`]: isReadOnly.value,\n [`b-input-field--${BentoInputFieldStateClass.ERROR}`]: shouldShowError.value,\n [`b-input-field--slashed-zero`]: props.slashedZero,\n }));\n\n const inputFieldDropdownProps = computed(() => ({\n 'aria-label': computedAriaLabelDropdowFallback.value,\n ...props.dropdown,\n }));\n\n const onInput = (event: Event) => {\n const inputValue = (event.target as HTMLInputElement).value;\n if (!props.disabled && !isReadOnly.value) {\n emitValue(inputValue);\n }\n };\n\n const onDropdownInput = (selectedValue: BentoListboxSelectedValue) => {\n emit('dropdown-input', selectedValue);\n emit('update:dropdown', { ...props?.dropdown, value: selectedValue });\n };\n\n const focusInput = () => {\n inputFieldElement.value.focus();\n };\n\n const focus = () => {\n if (props.variant === 'dropdown') {\n inputDropdownElement.value.focus();\n } else {\n focusInput();\n }\n };\n\n // Expose method so that other components can focus on it in Vue3\n defineExpose({\n focusInput,\n focus,\n });\n\n const inputFieldParentComponent = inject(INPUT_FIELD_PARENT_COMPONENT_INJECTION_KEY, '');\n\n if (!Object.values(BentoInputFieldType).includes(props.type as BentoInputFieldType) && !inputFieldParentComponent) {\n if (props.type === 'tel') {\n printDevelopmentWarning(\n `\"bento-input-field\" dropdown does not support the type '${props.type}', use \"bento-input-field-phone-number\" instead.`\n );\n } else if (props.type === 'password') {\n printDevelopmentWarning(\n `\"bento-input-field\" dropdown does not support the type '${props.type}', use \"bento-input-field-password\" instead.`\n );\n } else {\n printDevelopmentWarning(`\"bento-input-field\" dropdown does not support the type '${props.type}'`);\n }\n }\n\n /**\n * Deprecations\n */\n if (props.error) {\n deprecate(\n 'BentoInputField \"error\" property',\n `Use the BentoInputField \"errorMessage\" property instead to indicate that there is a modifier error.\n Having the field as \"undefined\" will hide/remove the error.\n <bento-dropdown errorMessage=\"Error message text\" />`,\n '2.0.0'\n );\n }\n\n if (hasSlot('defaultIconBefore')) {\n deprecate(\n 'BentoInputField \"defaultIconBefore\" slot',\n `Use the BentoInputField \"iconBefore\" slot instead to add an icon at the left side of the input field\n <bento-input-field>\n \\t<template #iconBefore>\n \\t\\t<my-icon-goes-here />\n \\t</template>\n </bento-input-field>`,\n '2.0.0'\n );\n }\n\n if (props.value) {\n deprecate(\n 'BentoInputField \"value\" property',\n `The use of \"value\" prop in \"BentoInputField\" is no longer supported.\n Use the \"v-model\" or \"model-value\" property instead.`,\n '2.0.0'\n );\n }\n</script>\n\n<script lang=\"ts\">\n /**\n * Input field component is used to create interactive controls for web-based\n * forms in order to accept data from the user.\n *\n * @example\n * import { BentoInputField } from '@adyen/bento-vue2'\n *\n * const inputValue = ref('');\n *\n * export default {\n * components: { BentoInputField },\n * tempate: `\n * <bento-input-field\n * :model-value=\"inputValue\"\n * :@update:model-value=\"newValue => inputValue.value = newValue\"\n * >\n * }\n */\n export default {\n name: 'bento-input-field',\n inheritAttrs: false,\n model: { prop: 'modelValue' },\n i18n: { messages },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./input-field.scss\" />\n"],"names":["INPUT_FIELD_HINT_INJECTION_KEY","INPUT_FIELD_PARENT_COMPONENT_INJECTION_KEY","BentoInputFieldVariant","BentoInputFieldVariant2","BentoInputFieldElementPosition","BentoInputFieldElementPosition2","BentoInputFieldStateClass","BentoInputFieldStateClass2","BentoInputFieldType","BentoInputFieldType2","BentoInputFieldEvent","BentoInputFieldEvent2","__default__","messages","attrs","useAttrs","slots","useSlots","props","__props","emit","__emit","emitValue","useFormFieldEmits","t","useI18n","hasSlot","useHasSlot","inputFieldElement","ref","inputDropdownElement","inputFieldId","generateUid","dropdownId","staticValueId","descriptionId","errorId","isFocused","getDataTestId","attributes","getRootAttributes","key","provide","DROPDOWN_SMALL_SIZE_INJECTION_KEY","hint","inject","onFocus","onBlur","isReadOnly","useFormLayoutFieldLoading","toRef","isDropdownReadOnly","computed","shouldShowStaticValue","isDefaultVariant","isPaymentMethodVariant","shouldDisplayStaticValueAtStart","shouldDisplayStaticValueAtEnd","shouldShowDropdown","shouldDisplayDropdownAtStart","shouldDisplayDropdownAtEnd","shouldShowError","computedLabel","getSlotText","computedDescription","computedAriaOwns","computedAriaLabelFallbackMessage","computedAriaLabelDropdowFallback","computedAriaLabel","ariaLabelAttribute","ariaLabel","toRefs","useAriaLabel","computedAriaDescribedBy","inputFieldConditionalClasses","inputFieldDropdownProps","onInput","event","inputValue","onDropdownInput","selectedValue","focusInput","__expose","inputFieldParentComponent","printDevelopmentWarning","deprecate"],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { defineComponent as _, provide as b, useSlots as B, ref as E, computed as d, watch as V, openBlock as N, createBlock as $, unref as l, mergeProps as k, createSlots as w, withCtx as f, renderSlot as v, createTextVNode as x, toDisplayString as A } from "vue";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { d as R } from "./use-cached-selected-values.C2nbQ4g-.js";
|
|
2
|
+
import { f as C, B as O } from "./input-field.DBlTGgAD.js";
|
|
3
|
+
import { d as R } from "./use-cached-selected-values.DOw5IKdU.js";
|
|
5
4
|
import { u as P } from "./index.B875RXHM.js";
|
|
6
5
|
import { u as U } from "./use-has-slot.CyMiImRQ.js";
|
|
7
6
|
import { u as K } from "./use-touch-device.DTqFAbXh.js";
|
|
@@ -51,7 +50,7 @@ const q = /[\d]/, J = /^\d{2}$/, j = /^\d{2}:\d{2}$/, T = (o) => /^(?:[01]\d|2[0
|
|
|
51
50
|
},
|
|
52
51
|
emits: ["update:model-value", "keydown", "input:valid", "input:error"],
|
|
53
52
|
setup(o, { emit: t }) {
|
|
54
|
-
b(
|
|
53
|
+
b(C, "bento-input-time");
|
|
55
54
|
const s = B(), c = U(s), { isTouchDevice: r } = K(), { t: p } = P({ messages: S }), e = o, n = t, u = E(!1), F = d(() => e.errorMessage ? e.errorMessage : u.value ? p("invalidTimeFormat") : null), M = d(() => r.value ? e.errorMessage : F.value), g = d(() => r.value ? "time" : void 0), D = d(() => e.modelValue), y = d(() => r ? void 0 : e.placeholder), h = R((i) => {
|
|
56
55
|
if (!i) {
|
|
57
56
|
u.value = !1;
|
|
@@ -78,7 +77,7 @@ const q = /[\d]/, J = /^\d{2}$/, j = /^\d{2}:\d{2}$/, T = (o) => /^(?:[01]\d|2[0
|
|
|
78
77
|
}, I = (i) => {
|
|
79
78
|
r.value || z(i), n("keydown", i);
|
|
80
79
|
};
|
|
81
|
-
return (i, a) => (N(), $(l(
|
|
80
|
+
return (i, a) => (N(), $(l(O), k({
|
|
82
81
|
class: "b-input-time",
|
|
83
82
|
type: g.value,
|
|
84
83
|
step: l(r) ? 1 : void 0,
|
|
@@ -114,9 +113,9 @@ const q = /[\d]/, J = /^\d{2}$/, j = /^\d{2}:\d{2}$/, T = (o) => /^(?:[01]\d|2[0
|
|
|
114
113
|
}
|
|
115
114
|
]), 1040, ["type", "step", "condensed", "disabled", "error-message", "label", "model-value", "optional", "placeholder", "readonly", "required", "tooltip-text"]));
|
|
116
115
|
}
|
|
117
|
-
}),
|
|
116
|
+
}), re = /* @__PURE__ */ L(X, [["__scopeId", "data-v-b03c2f7b"]]);
|
|
118
117
|
export {
|
|
119
|
-
|
|
118
|
+
re as B,
|
|
120
119
|
T as i
|
|
121
120
|
};
|
|
122
|
-
//# sourceMappingURL=input-time.
|
|
121
|
+
//# sourceMappingURL=input-time.CHIjCO74.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-time.CIdcQBgS.js","sources":["../../../vue2/src/utils/ts/time-input.ts","../../../vue2/src/components/input-time/input-time.vue"],"sourcesContent":["const validDigitRegex = /[\\d]/;\n\nconst hourRegex = /^\\d{2}$/;\nconst minuteRegex = /^\\d{2}:\\d{2}$/;\n\n/**\n * Validates a complete time string in HH:MM:SS format.\n * Hours: 00-24, Minutes: 00-59, Seconds: 00-59\n * @param timeText The time string to validate\n * @returns True if the time string is valid, false otherwise\n */\nexport const isValidTimeString = (timeText: string): boolean =>\n /^(?:[01]\\d|2[0-4]):(?:[0-5]\\d):(?:[0-5]\\d)$/.test(timeText);\n\nexport const validateTimeInput = (event: KeyboardEvent) => {\n const { selectionStart } = event.target as HTMLInputElement;\n\n const allowedKeys = ['Backspace', 'Tab', 'ArrowLeft', 'ArrowRight'];\n const isValidKey = validDigitRegex.test(event.key) || allowedKeys.includes(event.key);\n const isValidColon = [1, 2, 4, 5].includes(selectionStart) && event.key === ':';\n\n if (!isValidKey && !isValidColon) {\n event.preventDefault();\n }\n};\n\nexport const formatTimeInputValue = (value: string) => {\n if (!value) {\n return value;\n }\n\n let formattedValue = value;\n\n // Format if the first value is bigger than 2, because it can't be bigger than 24 hours\n if (formattedValue.length === 1 && parseInt(value, 10) > 2) {\n return `0${formattedValue}:`;\n }\n\n const [secondToLastDigit, lastDigit] = formattedValue.slice(-2);\n if ([2, 5].includes(formattedValue.length) && lastDigit === ':') {\n formattedValue = `${formattedValue.slice(0, formattedValue.length - 2)}0${secondToLastDigit}`;\n }\n\n // Add `:` after hour/minute\n if (hourRegex.test(formattedValue) || minuteRegex.test(formattedValue)) {\n formattedValue += ':';\n }\n return formattedValue;\n};\n","<template>\n <bento-input-field\n class=\"b-input-time\"\n :type=\"inputType\"\n :step=\"isTouchDevice ? 1 : undefined\"\n :condensed=\"props.condensed\"\n :disabled=\"props.disabled\"\n :error-message=\"inputErrorMessage\"\n :label=\"props.label\"\n :model-value=\"inputModelValue\"\n :optional=\"props.optional\"\n :placeholder=\"computedPlaceholder\"\n :readonly=\"props.readonly\"\n :required=\"props.required\"\n :tooltip-text=\"props.tooltipText\"\n v-bind=\"$attrs\"\n @update:model-value=\"onInput\"\n @keydown=\"onKeyDown\"\n >\n <template v-if=\"hasSlot('default')\" #default>\n <slot name=\"default\"></slot>\n </template>\n <template v-if=\"!isTouchDevice\" #description>\n <slot name=\"description\">{{\n props.description ? `${props.description} ${t('timeFormatDescription')}` : t('timeFormatDescription')\n }}</slot>\n </template>\n </bento-input-field>\n</template>\n\n<script setup lang=\"ts\">\n // Components\n import { BentoInputField } from '@/components/input-field';\n import { INPUT_FIELD_PARENT_COMPONENT_INJECTION_KEY } from '@/components/input-field/input-field.keys';\n\n // Utils\n import { debounce } from '@/utils/ts/debounce';\n import { useI18n } from '@/utils/ts/i18n';\n import { formatTimeInputValue, isValidTimeString, validateTimeInput } from '@/utils/ts/time-input';\n\n // Types\n import type { BentoInputFieldValue } from '@/components/input-field/input-field.types';\n import { type BentoInputTimeProps } from './input-time.types';\n\n // Localization\n import messages from './messages.json';\n\n import { computed, provide, ref, useSlots, watch } from 'vue';\n import { useHasSlot, useTouchDevice } from '@/composables';\n\n const VALIDATION_DEBOUNCE_TIME = 300;\n\n provide(INPUT_FIELD_PARENT_COMPONENT_INJECTION_KEY, 'bento-input-time');\n\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n const { isTouchDevice } = useTouchDevice();\n\n type MessageSchema = (typeof messages)['en-US'];\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n\n const props = withDefaults(defineProps<BentoInputTimeProps>(), {\n condensed: false,\n description: undefined,\n disabled: false,\n errorMessage: null,\n label: '',\n modelValue: undefined,\n optional: false,\n placeholder: '',\n readonly: false,\n required: false,\n tooltipText: null,\n });\n\n const emit = defineEmits<{\n /**\n * Emitted when the component's model changes\n */\n (e: 'update:model-value', value: BentoInputFieldValue): void;\n\n /**\n * Emitted when a key is pressed down\n */\n (e: 'keydown', event: KeyboardEvent): void;\n\n /**\n * Emitted when the time value passes validation (complete HH:MM:SS format)\n */\n (e: 'input:valid'): void;\n\n /**\n * Emitted when the time value fails validation\n */\n (e: 'input:error'): void;\n }>();\n\n const internalError = ref(false);\n const computedErrorMessage = computed(() => {\n if (props.errorMessage) {\n return props.errorMessage;\n }\n return internalError.value ? t('invalidTimeFormat') : null;\n });\n const inputErrorMessage = computed(() => (isTouchDevice.value ? props.errorMessage : computedErrorMessage.value));\n const inputType = computed(() => (isTouchDevice.value ? 'time' : undefined));\n const inputModelValue = computed(() => props.modelValue);\n const computedPlaceholder = computed(() => (isTouchDevice ? undefined : props.placeholder));\n\n const validateTime = (timeText: string) => {\n if (!timeText) {\n internalError.value = false;\n return;\n }\n\n const isValid = isValidTimeString(timeText);\n internalError.value = !isValid;\n\n if (isValid) {\n emit('input:valid');\n } else {\n emit('input:error');\n }\n };\n const validateTimeWithDebounce = debounce(validateTime, VALIDATION_DEBOUNCE_TIME);\n\n // Watch for external modelValue changes (e.g., when parent resets the value)\n watch(\n () => props.modelValue,\n newValue => {\n const timeText = String(newValue ?? '');\n // Clear the error only when the new value is a complete, valid time string\n if (timeText.length === 8 && isValidTimeString(timeText)) {\n internalError.value = false;\n }\n }\n );\n\n const onInput = (value: BentoInputFieldValue) => {\n if (props.disabled || props.readonly) {\n return;\n }\n\n if (isTouchDevice.value) {\n emit('update:model-value', String(value ?? ''));\n emit('input:valid');\n } else {\n const formatted = formatTimeInputValue(String(value ?? ''));\n emit('update:model-value', formatted);\n validateTimeWithDebounce(formatted);\n }\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (!isTouchDevice.value) {\n validateTimeInput(event);\n }\n emit('keydown', event);\n };\n</script>\n\n<script lang=\"ts\">\n /**\n * Input time component for entering time values in HH:MM:SS format.\n * This is an extension of the `bento-input-field` component with built-in\n * time formatting and validation logic.\n *\n * @usage\n * import { BentoInputTime } from '@adyen/bento-vue2';\n *\n * const timeValue = ref('');\n *\n * export default {\n * components: { BentoInputTime },\n * template: `\n * <bento-input-time\n * label=\"Start time\"\n * :model-value=\"timeValue\"\n * @update:model-value=\"newValue => timeValue.value = newValue\"\n * />\n * `\n * }\n */\n export default {\n i18n: { messages },\n name: 'bento-input-time',\n inheritAttrs: false,\n model: { prop: 'modelValue' },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./input-time.scss\" />\n"],"names":["validDigitRegex","hourRegex","minuteRegex","isValidTimeString","timeText","validateTimeInput","event","selectionStart","allowedKeys","isValidKey","isValidColon","formatTimeInputValue","value","formattedValue","secondToLastDigit","lastDigit","__default__","messages","provide","INPUT_FIELD_PARENT_COMPONENT_INJECTION_KEY","slots","useSlots","hasSlot","useHasSlot","isTouchDevice","useTouchDevice","t","useI18n","props","__props","emit","__emit","internalError","ref","computedErrorMessage","computed","inputErrorMessage","inputType","inputModelValue","computedPlaceholder","validateTimeWithDebounce","debounce","isValid","watch","newValue","onInput","formatted","onKeyDown"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"input-time.CHIjCO74.js","sources":["../../../vue2/src/utils/ts/time-input.ts","../../../vue2/src/components/input-time/input-time.vue"],"sourcesContent":["const validDigitRegex = /[\\d]/;\n\nconst hourRegex = /^\\d{2}$/;\nconst minuteRegex = /^\\d{2}:\\d{2}$/;\n\n/**\n * Validates a complete time string in HH:MM:SS format.\n * Hours: 00-24, Minutes: 00-59, Seconds: 00-59\n * @param timeText The time string to validate\n * @returns True if the time string is valid, false otherwise\n */\nexport const isValidTimeString = (timeText: string): boolean =>\n /^(?:[01]\\d|2[0-4]):(?:[0-5]\\d):(?:[0-5]\\d)$/.test(timeText);\n\nexport const validateTimeInput = (event: KeyboardEvent) => {\n const { selectionStart } = event.target as HTMLInputElement;\n\n const allowedKeys = ['Backspace', 'Tab', 'ArrowLeft', 'ArrowRight'];\n const isValidKey = validDigitRegex.test(event.key) || allowedKeys.includes(event.key);\n const isValidColon = [1, 2, 4, 5].includes(selectionStart) && event.key === ':';\n\n if (!isValidKey && !isValidColon) {\n event.preventDefault();\n }\n};\n\nexport const formatTimeInputValue = (value: string) => {\n if (!value) {\n return value;\n }\n\n let formattedValue = value;\n\n // Format if the first value is bigger than 2, because it can't be bigger than 24 hours\n if (formattedValue.length === 1 && parseInt(value, 10) > 2) {\n return `0${formattedValue}:`;\n }\n\n const [secondToLastDigit, lastDigit] = formattedValue.slice(-2);\n if ([2, 5].includes(formattedValue.length) && lastDigit === ':') {\n formattedValue = `${formattedValue.slice(0, formattedValue.length - 2)}0${secondToLastDigit}`;\n }\n\n // Add `:` after hour/minute\n if (hourRegex.test(formattedValue) || minuteRegex.test(formattedValue)) {\n formattedValue += ':';\n }\n return formattedValue;\n};\n","<template>\n <bento-input-field\n class=\"b-input-time\"\n :type=\"inputType\"\n :step=\"isTouchDevice ? 1 : undefined\"\n :condensed=\"props.condensed\"\n :disabled=\"props.disabled\"\n :error-message=\"inputErrorMessage\"\n :label=\"props.label\"\n :model-value=\"inputModelValue\"\n :optional=\"props.optional\"\n :placeholder=\"computedPlaceholder\"\n :readonly=\"props.readonly\"\n :required=\"props.required\"\n :tooltip-text=\"props.tooltipText\"\n v-bind=\"$attrs\"\n @update:model-value=\"onInput\"\n @keydown=\"onKeyDown\"\n >\n <template v-if=\"hasSlot('default')\" #default>\n <slot name=\"default\"></slot>\n </template>\n <template v-if=\"!isTouchDevice\" #description>\n <slot name=\"description\">{{\n props.description ? `${props.description} ${t('timeFormatDescription')}` : t('timeFormatDescription')\n }}</slot>\n </template>\n </bento-input-field>\n</template>\n\n<script setup lang=\"ts\">\n // Components\n import { BentoInputField } from '@/components/input-field';\n import { INPUT_FIELD_PARENT_COMPONENT_INJECTION_KEY } from '@/components/input-field/input-field.keys';\n\n // Utils\n import { debounce } from '@/utils/ts/debounce';\n import { useI18n } from '@/utils/ts/i18n';\n import { formatTimeInputValue, isValidTimeString, validateTimeInput } from '@/utils/ts/time-input';\n\n // Types\n import type { BentoInputFieldValue } from '@/components/input-field/input-field.types';\n import { type BentoInputTimeProps } from './input-time.types';\n\n // Localization\n import messages from './messages.json';\n\n import { computed, provide, ref, useSlots, watch } from 'vue';\n import { useHasSlot, useTouchDevice } from '@/composables';\n\n const VALIDATION_DEBOUNCE_TIME = 300;\n\n provide(INPUT_FIELD_PARENT_COMPONENT_INJECTION_KEY, 'bento-input-time');\n\n const slots = useSlots();\n const hasSlot = useHasSlot(slots);\n const { isTouchDevice } = useTouchDevice();\n\n type MessageSchema = (typeof messages)['en-US'];\n const { t } = useI18n<{ message: MessageSchema }>({ messages });\n\n const props = withDefaults(defineProps<BentoInputTimeProps>(), {\n condensed: false,\n description: undefined,\n disabled: false,\n errorMessage: null,\n label: '',\n modelValue: undefined,\n optional: false,\n placeholder: '',\n readonly: false,\n required: false,\n tooltipText: null,\n });\n\n const emit = defineEmits<{\n /**\n * Emitted when the component's model changes\n */\n (e: 'update:model-value', value: BentoInputFieldValue): void;\n\n /**\n * Emitted when a key is pressed down\n */\n (e: 'keydown', event: KeyboardEvent): void;\n\n /**\n * Emitted when the time value passes validation (complete HH:MM:SS format)\n */\n (e: 'input:valid'): void;\n\n /**\n * Emitted when the time value fails validation\n */\n (e: 'input:error'): void;\n }>();\n\n const internalError = ref(false);\n const computedErrorMessage = computed(() => {\n if (props.errorMessage) {\n return props.errorMessage;\n }\n return internalError.value ? t('invalidTimeFormat') : null;\n });\n const inputErrorMessage = computed(() => (isTouchDevice.value ? props.errorMessage : computedErrorMessage.value));\n const inputType = computed(() => (isTouchDevice.value ? 'time' : undefined));\n const inputModelValue = computed(() => props.modelValue);\n const computedPlaceholder = computed(() => (isTouchDevice ? undefined : props.placeholder));\n\n const validateTime = (timeText: string) => {\n if (!timeText) {\n internalError.value = false;\n return;\n }\n\n const isValid = isValidTimeString(timeText);\n internalError.value = !isValid;\n\n if (isValid) {\n emit('input:valid');\n } else {\n emit('input:error');\n }\n };\n const validateTimeWithDebounce = debounce(validateTime, VALIDATION_DEBOUNCE_TIME);\n\n // Watch for external modelValue changes (e.g., when parent resets the value)\n watch(\n () => props.modelValue,\n newValue => {\n const timeText = String(newValue ?? '');\n // Clear the error only when the new value is a complete, valid time string\n if (timeText.length === 8 && isValidTimeString(timeText)) {\n internalError.value = false;\n }\n }\n );\n\n const onInput = (value: BentoInputFieldValue) => {\n if (props.disabled || props.readonly) {\n return;\n }\n\n if (isTouchDevice.value) {\n emit('update:model-value', String(value ?? ''));\n emit('input:valid');\n } else {\n const formatted = formatTimeInputValue(String(value ?? ''));\n emit('update:model-value', formatted);\n validateTimeWithDebounce(formatted);\n }\n };\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (!isTouchDevice.value) {\n validateTimeInput(event);\n }\n emit('keydown', event);\n };\n</script>\n\n<script lang=\"ts\">\n /**\n * Input time component for entering time values in HH:MM:SS format.\n * This is an extension of the `bento-input-field` component with built-in\n * time formatting and validation logic.\n *\n * @usage\n * import { BentoInputTime } from '@adyen/bento-vue2';\n *\n * const timeValue = ref('');\n *\n * export default {\n * components: { BentoInputTime },\n * template: `\n * <bento-input-time\n * label=\"Start time\"\n * :model-value=\"timeValue\"\n * @update:model-value=\"newValue => timeValue.value = newValue\"\n * />\n * `\n * }\n */\n export default {\n i18n: { messages },\n name: 'bento-input-time',\n inheritAttrs: false,\n model: { prop: 'modelValue' },\n };\n</script>\n\n<style lang=\"scss\" scoped src=\"./input-time.scss\" />\n"],"names":["validDigitRegex","hourRegex","minuteRegex","isValidTimeString","timeText","validateTimeInput","event","selectionStart","allowedKeys","isValidKey","isValidColon","formatTimeInputValue","value","formattedValue","secondToLastDigit","lastDigit","__default__","messages","provide","INPUT_FIELD_PARENT_COMPONENT_INJECTION_KEY","slots","useSlots","hasSlot","useHasSlot","isTouchDevice","useTouchDevice","t","useI18n","props","__props","emit","__emit","internalError","ref","computedErrorMessage","computed","inputErrorMessage","inputType","inputModelValue","computedPlaceholder","validateTimeWithDebounce","debounce","isValid","watch","newValue","onInput","formatted","onKeyDown"],"mappings":"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"}
|
|
@@ -2,12 +2,12 @@ import { ref as v, watch as w, defineComponent as z, computed as S, openBlock as
|
|
|
2
2
|
import { d as U, B as X } from "./typography.B3J6_tYk.js";
|
|
3
3
|
import { B as E } from "./button.DWF7FSIw.js";
|
|
4
4
|
import { B as j } from "./loading-indicator.BPol9I84.js";
|
|
5
|
-
import { B as q, s as J, g as W, a as Z, f as Q } from "./focus-trap.
|
|
5
|
+
import { B as q, s as J, g as W, a as Z, f as Q } from "./focus-trap.Dl_rHbwH.js";
|
|
6
6
|
import { E as ee } from "./expand.BrywY9jl.js";
|
|
7
7
|
import { C as te } from "./cross.CCHdi6v3.js";
|
|
8
8
|
import { g as ne } from "./generate-uid.DBWe4g6T.js";
|
|
9
9
|
import { u as oe } from "./index.B875RXHM.js";
|
|
10
|
-
import {
|
|
10
|
+
import { c as ae, d as ie } from "./index.oOAkh64h.js";
|
|
11
11
|
import { _ as re } from "./_plugin-vue_export-helper.CHgC5LLL.js";
|
|
12
12
|
import "../assets/inspector.css";
|
|
13
13
|
function se(C) {
|
|
@@ -192,4 +192,4 @@ const H = {
|
|
|
192
192
|
export {
|
|
193
193
|
xe as B
|
|
194
194
|
};
|
|
195
|
-
//# sourceMappingURL=inspector.
|
|
195
|
+
//# sourceMappingURL=inspector.BvBC1ABK.js.map
|