@dialpad/dialtone 9.65.0 → 9.66.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/chunks/tokens-base-dark--ozK7f0P.js +4 -0
- package/dist/chunks/tokens-base-dark-V8E4WaJI.js +1 -0
- package/dist/chunks/tokens-base-light-LYlvM3eZ.js +1 -0
- package/dist/chunks/tokens-base-light-ljPrpLe2.js +4 -0
- package/dist/css/dialtone-default-theme.css +57 -55
- package/dist/css/dialtone-default-theme.min.css +1 -1
- package/dist/css/dialtone.css +8 -6
- package/dist/css/dialtone.min.css +1 -1
- package/dist/css/tokens/tokens-base-dark.css +5 -5
- package/dist/css/tokens/tokens-base-light.css +5 -5
- package/dist/css/tokens/tokens-dp-dark.css +44 -44
- package/dist/css/tokens/tokens-dp-light.css +44 -44
- package/dist/css/tokens/tokens-expressive-dark.css +50 -50
- package/dist/css/tokens/tokens-expressive-light.css +50 -50
- package/dist/css/tokens/tokens-expressive-sm-dark.css +50 -50
- package/dist/css/tokens/tokens-expressive-sm-light.css +50 -50
- package/dist/css/tokens/tokens-tmo-dark.css +44 -44
- package/dist/css/tokens/tokens-tmo-light.css +44 -44
- package/dist/themes/dp-dark.cjs +1 -1
- package/dist/themes/dp-dark.js +2 -2
- package/dist/themes/dp-light.cjs +1 -1
- package/dist/themes/dp-light.js +2 -2
- package/dist/themes/expressive-dark.cjs +1 -1
- package/dist/themes/expressive-dark.js +2 -2
- package/dist/themes/expressive-light.cjs +1 -1
- package/dist/themes/expressive-light.js +2 -2
- package/dist/themes/expressive-sm-dark.cjs +1 -1
- package/dist/themes/expressive-sm-dark.js +2 -2
- package/dist/themes/expressive-sm-light.cjs +1 -1
- package/dist/themes/expressive-sm-light.js +2 -2
- package/dist/themes/tmo-dark.cjs +1 -1
- package/dist/themes/tmo-dark.js +2 -2
- package/dist/themes/tmo-light.cjs +1 -1
- package/dist/themes/tmo-light.js +2 -2
- package/dist/tokens/css/tokens-base-dark.css +5 -5
- package/dist/tokens/css/tokens-base-light.css +5 -5
- package/dist/tokens/css/tokens-dp-dark.css +44 -44
- package/dist/tokens/css/tokens-dp-light.css +44 -44
- package/dist/tokens/css/tokens-expressive-dark.css +50 -50
- package/dist/tokens/css/tokens-expressive-light.css +50 -50
- package/dist/tokens/css/tokens-expressive-sm-dark.css +50 -50
- package/dist/tokens/css/tokens-expressive-sm-light.css +50 -50
- package/dist/tokens/css/tokens-tmo-dark.css +44 -44
- package/dist/tokens/css/tokens-tmo-light.css +44 -44
- package/dist/tokens/doc.json +14285 -14285
- package/dist/tokens/less/tokens-base-dark.less +5 -5
- package/dist/tokens/less/tokens-base-light.less +5 -5
- package/dist/tokens/less/tokens-dp-dark.less +44 -44
- package/dist/tokens/less/tokens-dp-light.less +44 -44
- package/dist/tokens/less/tokens-expressive-dark.less +50 -50
- package/dist/tokens/less/tokens-expressive-light.less +50 -50
- package/dist/tokens/less/tokens-expressive-sm-dark.less +50 -50
- package/dist/tokens/less/tokens-expressive-sm-light.less +50 -50
- package/dist/tokens/less/tokens-tmo-dark.less +44 -44
- package/dist/tokens/less/tokens-tmo-light.less +44 -44
- package/dist/tokens/tokens-base-dark.json +5 -5
- package/dist/tokens/tokens-base-light.json +5 -5
- package/dist/tokens/tokens-dp-dark.json +44 -44
- package/dist/tokens/tokens-dp-light.json +44 -44
- package/dist/tokens/tokens-expressive-dark.json +50 -50
- package/dist/tokens/tokens-expressive-light.json +50 -50
- package/dist/tokens/tokens-expressive-sm-dark.json +50 -50
- package/dist/tokens/tokens-expressive-sm-light.json +50 -50
- package/dist/tokens/tokens-tmo-dark.json +44 -44
- package/dist/tokens/tokens-tmo-light.json +44 -44
- package/dist/vue2/chunks/{dropdown-6UoczdUY.js → dropdown-YdCyJ5Dq.js} +77 -41
- package/dist/vue2/chunks/{dropdown-pHxnQPzT.js.map → dropdown-YdCyJ5Dq.js.map} +1 -1
- package/dist/vue2/chunks/{dropdown-pHxnQPzT.js → dropdown-mjrYu_mK.js} +77 -41
- package/dist/vue2/chunks/{dropdown-6UoczdUY.js.map → dropdown-mjrYu_mK.js.map} +1 -1
- package/dist/vue2/chunks/dropdown_constants-2pGCXy7m.js.map +1 -1
- package/dist/vue2/chunks/dropdown_constants-w1MXGC3Z.js.map +1 -1
- package/dist/vue2/chunks/{icon_constants-Dy4MEUJL.js → icon_constants-TdxqLsS2.js} +3 -2
- package/dist/vue2/chunks/icon_constants-TdxqLsS2.js.map +1 -0
- package/dist/vue2/chunks/{icon_constants-QYpmdE0R.js → icon_constants-VEA0wI5C.js} +3 -2
- package/dist/vue2/chunks/icon_constants-VEA0wI5C.js.map +1 -0
- package/dist/vue2/chunks/{index-gj1jEXP4.js → index-DyqUqjvI.js} +122 -87
- package/dist/vue2/chunks/{index-eJ-WWRdf.js.map → index-DyqUqjvI.js.map} +1 -1
- package/dist/vue2/chunks/{index-anN_sx1F.js → index-NYFNZeHH.js} +5 -13
- package/dist/vue2/chunks/{index-anN_sx1F.js.map → index-NYFNZeHH.js.map} +1 -1
- package/dist/vue2/chunks/{index-ODod4Oj_.js → index-i65YVk-U.js} +5 -13
- package/dist/vue2/chunks/{index-ODod4Oj_.js.map → index-i65YVk-U.js.map} +1 -1
- package/dist/vue2/chunks/{index-eJ-WWRdf.js → index-mBWay1Qb.js} +122 -87
- package/dist/vue2/chunks/{index-gj1jEXP4.js.map → index-mBWay1Qb.js.map} +1 -1
- package/dist/vue2/chunks/{input-Axw-wFj2.js → input-Hqw33WBe.js} +3 -9
- package/dist/vue2/chunks/{input-Axw-wFj2.js.map → input-Hqw33WBe.js.map} +1 -1
- package/dist/vue2/chunks/{input-6kbd8Pju.js → input-PhJeBN6r.js} +3 -9
- package/dist/vue2/chunks/{input-6kbd8Pju.js.map → input-PhJeBN6r.js.map} +1 -1
- package/dist/vue2/chunks/{input_group-qVZaS5Bb.js → input_group-ZI7aVGEp.js} +4 -2
- package/dist/vue2/chunks/{input_group-m3cWYUfI.js.map → input_group-ZI7aVGEp.js.map} +1 -1
- package/dist/vue2/chunks/{input_group-m3cWYUfI.js → input_group-pE6ec9R3.js} +4 -2
- package/dist/vue2/chunks/{input_group-qVZaS5Bb.js.map → input_group-pE6ec9R3.js.map} +1 -1
- package/dist/vue2/chunks/{keyboard_list_navigation-ScXhrxya.js → keyboard_list_navigation-YIqTuw1W.js} +6 -5
- package/dist/{vue3/chunks/keyboard_list_navigation-fJnl_Iox.js.map → vue2/chunks/keyboard_list_navigation-YIqTuw1W.js.map} +1 -1
- package/dist/vue2/chunks/{keyboard_list_navigation-fJnl_Iox.js → keyboard_list_navigation-x3D6RcC7.js} +6 -5
- package/dist/vue2/chunks/{keyboard_list_navigation-ScXhrxya.js.map → keyboard_list_navigation-x3D6RcC7.js.map} +1 -1
- package/dist/vue2/chunks/link_constants-AfTWrr-n.js.map +1 -1
- package/dist/vue2/chunks/link_constants-x8NwdqmA.js.map +1 -1
- package/dist/vue2/chunks/list_item_constants-EiqkqZvP.js.map +1 -1
- package/dist/vue2/chunks/list_item_constants-u1xcN9Dd.js.map +1 -1
- package/dist/vue2/chunks/{modal-XOr4kiNZ.js → modal-8X6poIZW.js} +4 -2
- package/dist/{vue3/chunks/modal-XOr4kiNZ.js.map → vue2/chunks/modal-8X6poIZW.js.map} +1 -1
- package/dist/vue2/chunks/{modal-VgxXAQFP.js → modal-OaWxzqNt.js} +4 -2
- package/dist/vue2/chunks/{modal-VgxXAQFP.js.map → modal-OaWxzqNt.js.map} +1 -1
- package/dist/vue2/chunks/{notice_action-IRUoLX2d.js → notice_action-qQr3K2TC.js} +71 -46
- package/dist/vue2/chunks/{notice_action-IRUoLX2d.js.map → notice_action-qQr3K2TC.js.map} +1 -1
- package/dist/vue2/chunks/{notice_action-P6uDyE9x.js → notice_action-tEvvMg7Q.js} +71 -46
- package/dist/vue2/chunks/{notice_action-P6uDyE9x.js.map → notice_action-tEvvMg7Q.js.map} +1 -1
- package/dist/vue2/chunks/notice_constants-7Qt2CQEY.js.map +1 -1
- package/dist/vue2/chunks/notice_constants-UXo9e3bS.js.map +1 -1
- package/dist/vue2/chunks/{popover_constants-WsOUIY-m.js → popover_constants-6YkPPbnk.js} +26 -47
- package/dist/vue2/chunks/{popover_constants-WsOUIY-m.js.map → popover_constants-6YkPPbnk.js.map} +1 -1
- package/dist/vue2/chunks/{popover_constants-XnGWXaxX.js → popover_constants-h9MD6WUt.js} +26 -47
- package/dist/{vue3/chunks/popover_constants-WsOUIY-m.js.map → vue2/chunks/popover_constants-h9MD6WUt.js.map} +1 -1
- package/dist/vue2/chunks/{sr_only_close_button-ZaGdAHz7.js → sr_only_close_button-2Q9Ny1Nc.js} +24 -18
- package/dist/vue2/chunks/{sr_only_close_button-ZaGdAHz7.js.map → sr_only_close_button-2Q9Ny1Nc.js.map} +1 -1
- package/dist/vue2/chunks/{sr_only_close_button-81bHIpPu.js → sr_only_close_button-IjMVfBDE.js} +24 -18
- package/dist/vue2/chunks/{sr_only_close_button-81bHIpPu.js.map → sr_only_close_button-IjMVfBDE.js.map} +1 -1
- package/dist/vue2/chunks/stack_constants-HraCekPm.js.map +1 -1
- package/dist/vue2/chunks/stack_constants-SMzMWnAQ.js.map +1 -1
- package/dist/vue2/chunks/{tab-FcsV5VmK.js → tab-79yMX6m6.js} +86 -68
- package/dist/vue2/chunks/{tab-V4cb44Ry.js.map → tab-79yMX6m6.js.map} +1 -1
- package/dist/vue2/chunks/{tab-V4cb44Ry.js → tab-muPOS7JE.js} +86 -68
- package/dist/vue2/chunks/{tab-FcsV5VmK.js.map → tab-muPOS7JE.js.map} +1 -1
- package/dist/vue2/common/constants.cjs.map +1 -1
- package/dist/vue2/common/constants.js.map +1 -1
- package/dist/vue2/common/dates.cjs +3 -1
- package/dist/vue2/common/dates.cjs.map +1 -1
- package/dist/vue2/common/dates.js +3 -1
- package/dist/vue2/common/dates.js.map +1 -1
- package/dist/vue2/common/emoji.cjs +1 -1
- package/dist/vue2/common/emoji.js +1 -1
- package/dist/vue2/common/mixins.cjs +3 -3
- package/dist/vue2/common/mixins.js +3 -3
- package/dist/vue2/common/utils.cjs +8 -44
- package/dist/vue2/common/utils.cjs.map +1 -1
- package/dist/vue2/common/utils.js +8 -44
- package/dist/vue2/common/utils.js.map +1 -1
- package/dist/vue2/common/validators.cjs.map +1 -1
- package/dist/vue2/common/validators.js.map +1 -1
- package/dist/vue2/component-documentation.json +1 -1
- package/dist/vue2/dialtone-vue.cjs +12 -12
- package/dist/vue2/dialtone-vue.js +12 -12
- package/dist/vue2/lib/attachment-carousel.cjs +172 -48
- package/dist/vue2/lib/attachment-carousel.cjs.map +1 -1
- package/dist/vue2/lib/attachment-carousel.js +172 -48
- package/dist/vue2/lib/attachment-carousel.js.map +1 -1
- package/dist/vue2/lib/avatar.cjs +75 -58
- package/dist/vue2/lib/avatar.cjs.map +1 -1
- package/dist/vue2/lib/avatar.js +75 -58
- package/dist/vue2/lib/avatar.js.map +1 -1
- package/dist/vue2/lib/badge.cjs +31 -20
- package/dist/vue2/lib/badge.cjs.map +1 -1
- package/dist/vue2/lib/badge.js +31 -20
- package/dist/vue2/lib/badge.js.map +1 -1
- package/dist/vue2/lib/banner.cjs +53 -29
- package/dist/vue2/lib/banner.cjs.map +1 -1
- package/dist/vue2/lib/banner.js +53 -29
- package/dist/vue2/lib/banner.js.map +1 -1
- package/dist/vue2/lib/breadcrumbs.cjs +36 -30
- package/dist/vue2/lib/breadcrumbs.cjs.map +1 -1
- package/dist/vue2/lib/breadcrumbs.js +36 -30
- package/dist/vue2/lib/breadcrumbs.js.map +1 -1
- package/dist/vue2/lib/button-group.cjs +7 -14
- package/dist/vue2/lib/button-group.cjs.map +1 -1
- package/dist/vue2/lib/button-group.js +7 -14
- package/dist/vue2/lib/button-group.js.map +1 -1
- package/dist/vue2/lib/button.cjs +55 -62
- package/dist/vue2/lib/button.cjs.map +1 -1
- package/dist/vue2/lib/button.js +55 -62
- package/dist/vue2/lib/button.js.map +1 -1
- package/dist/vue2/lib/callbar-button-with-popover.cjs +91 -23
- package/dist/vue2/lib/callbar-button-with-popover.cjs.map +1 -1
- package/dist/vue2/lib/callbar-button-with-popover.js +91 -23
- package/dist/vue2/lib/callbar-button-with-popover.js.map +1 -1
- package/dist/vue2/lib/callbar-button.cjs +49 -33
- package/dist/vue2/lib/callbar-button.cjs.map +1 -1
- package/dist/vue2/lib/callbar-button.js +49 -33
- package/dist/vue2/lib/callbar-button.js.map +1 -1
- package/dist/vue2/lib/callbox.cjs +78 -15
- package/dist/vue2/lib/callbox.cjs.map +1 -1
- package/dist/vue2/lib/callbox.js +78 -15
- package/dist/vue2/lib/callbox.js.map +1 -1
- package/dist/vue2/lib/card.cjs +16 -23
- package/dist/vue2/lib/card.cjs.map +1 -1
- package/dist/vue2/lib/card.js +16 -23
- package/dist/vue2/lib/card.js.map +1 -1
- package/dist/vue2/lib/checkbox-group.cjs +3 -15
- package/dist/vue2/lib/checkbox-group.cjs.map +1 -1
- package/dist/vue2/lib/checkbox-group.js +3 -15
- package/dist/vue2/lib/checkbox-group.js.map +1 -1
- package/dist/vue2/lib/checkbox.cjs +52 -16
- package/dist/vue2/lib/checkbox.cjs.map +1 -1
- package/dist/vue2/lib/checkbox.js +52 -16
- package/dist/vue2/lib/checkbox.js.map +1 -1
- package/dist/vue2/lib/chip.cjs +58 -26
- package/dist/vue2/lib/chip.cjs.map +1 -1
- package/dist/vue2/lib/chip.js +58 -26
- package/dist/vue2/lib/chip.js.map +1 -1
- package/dist/vue2/lib/codeblock.cjs +4 -11
- package/dist/vue2/lib/codeblock.cjs.map +1 -1
- package/dist/vue2/lib/codeblock.js +4 -11
- package/dist/vue2/lib/codeblock.js.map +1 -1
- package/dist/vue2/lib/collapsible.cjs +91 -34
- package/dist/vue2/lib/collapsible.cjs.map +1 -1
- package/dist/vue2/lib/collapsible.js +91 -34
- package/dist/vue2/lib/collapsible.js.map +1 -1
- package/dist/vue2/lib/combobox-multi-select.cjs +131 -38
- package/dist/vue2/lib/combobox-multi-select.cjs.map +1 -1
- package/dist/vue2/lib/combobox-multi-select.js +131 -38
- package/dist/vue2/lib/combobox-multi-select.js.map +1 -1
- package/dist/vue2/lib/combobox-with-popover.cjs +130 -39
- package/dist/vue2/lib/combobox-with-popover.cjs.map +1 -1
- package/dist/vue2/lib/combobox-with-popover.js +130 -39
- package/dist/vue2/lib/combobox-with-popover.js.map +1 -1
- package/dist/vue2/lib/combobox.cjs +3 -3
- package/dist/vue2/lib/combobox.js +3 -3
- package/dist/vue2/lib/contact-centers-row.cjs +86 -29
- package/dist/vue2/lib/contact-centers-row.cjs.map +1 -1
- package/dist/vue2/lib/contact-centers-row.js +86 -29
- package/dist/vue2/lib/contact-centers-row.js.map +1 -1
- package/dist/vue2/lib/contact-info.cjs +95 -24
- package/dist/vue2/lib/contact-info.cjs.map +1 -1
- package/dist/vue2/lib/contact-info.js +95 -24
- package/dist/vue2/lib/contact-info.js.map +1 -1
- package/dist/vue2/lib/contact-row.cjs +61 -18
- package/dist/vue2/lib/contact-row.cjs.map +1 -1
- package/dist/vue2/lib/contact-row.js +61 -18
- package/dist/vue2/lib/contact-row.js.map +1 -1
- package/dist/vue2/lib/datepicker.cjs +361 -102
- package/dist/vue2/lib/datepicker.cjs.map +1 -1
- package/dist/vue2/lib/datepicker.js +361 -102
- package/dist/vue2/lib/datepicker.js.map +1 -1
- package/dist/vue2/lib/description-list.cjs +11 -12
- package/dist/vue2/lib/description-list.cjs.map +1 -1
- package/dist/vue2/lib/description-list.js +11 -12
- package/dist/vue2/lib/description-list.js.map +1 -1
- package/dist/vue2/lib/dropdown.cjs +13 -17
- package/dist/vue2/lib/dropdown.cjs.map +1 -1
- package/dist/vue2/lib/dropdown.js +13 -17
- package/dist/vue2/lib/dropdown.js.map +1 -1
- package/dist/vue2/lib/editor.cjs +409 -109
- package/dist/vue2/lib/editor.cjs.map +1 -1
- package/dist/vue2/lib/editor.js +409 -109
- package/dist/vue2/lib/editor.js.map +1 -1
- package/dist/vue2/lib/emoji-picker.cjs +512 -234
- package/dist/vue2/lib/emoji-picker.cjs.map +1 -1
- package/dist/vue2/lib/emoji-picker.js +512 -234
- package/dist/vue2/lib/emoji-picker.js.map +1 -1
- package/dist/vue2/lib/emoji-row.cjs +69 -31
- package/dist/vue2/lib/emoji-row.cjs.map +1 -1
- package/dist/vue2/lib/emoji-row.js +69 -31
- package/dist/vue2/lib/emoji-row.js.map +1 -1
- package/dist/vue2/lib/emoji-text-wrapper.cjs +14 -22
- package/dist/vue2/lib/emoji-text-wrapper.cjs.map +1 -1
- package/dist/vue2/lib/emoji-text-wrapper.js +14 -22
- package/dist/vue2/lib/emoji-text-wrapper.js.map +1 -1
- package/dist/vue2/lib/emoji.cjs +40 -13
- package/dist/vue2/lib/emoji.cjs.map +1 -1
- package/dist/vue2/lib/emoji.js +40 -13
- package/dist/vue2/lib/emoji.js.map +1 -1
- package/dist/vue2/lib/empty-state.cjs +27 -12
- package/dist/vue2/lib/empty-state.cjs.map +1 -1
- package/dist/vue2/lib/empty-state.js +27 -12
- package/dist/vue2/lib/empty-state.js.map +1 -1
- package/dist/vue2/lib/feed-item-row.cjs +106 -27
- package/dist/vue2/lib/feed-item-row.cjs.map +1 -1
- package/dist/vue2/lib/feed-item-row.js +106 -27
- package/dist/vue2/lib/feed-item-row.js.map +1 -1
- package/dist/vue2/lib/feed-pill.cjs +90 -35
- package/dist/vue2/lib/feed-pill.cjs.map +1 -1
- package/dist/vue2/lib/feed-pill.js +90 -35
- package/dist/vue2/lib/feed-pill.js.map +1 -1
- package/dist/vue2/lib/general-row.cjs +184 -75
- package/dist/vue2/lib/general-row.cjs.map +1 -1
- package/dist/vue2/lib/general-row.js +184 -75
- package/dist/vue2/lib/general-row.js.map +1 -1
- package/dist/vue2/lib/group-row.cjs +27 -16
- package/dist/vue2/lib/group-row.cjs.map +1 -1
- package/dist/vue2/lib/group-row.js +27 -16
- package/dist/vue2/lib/group-row.js.map +1 -1
- package/dist/vue2/lib/grouped-chip.cjs +68 -20
- package/dist/vue2/lib/grouped-chip.cjs.map +1 -1
- package/dist/vue2/lib/grouped-chip.js +68 -20
- package/dist/vue2/lib/grouped-chip.js.map +1 -1
- package/dist/vue2/lib/hovercard.cjs +71 -41
- package/dist/vue2/lib/hovercard.cjs.map +1 -1
- package/dist/vue2/lib/hovercard.js +71 -41
- package/dist/vue2/lib/hovercard.js.map +1 -1
- package/dist/vue2/lib/icon.cjs +10 -12
- package/dist/vue2/lib/icon.cjs.map +1 -1
- package/dist/vue2/lib/icon.js +10 -12
- package/dist/vue2/lib/icon.js.map +1 -1
- package/dist/vue2/lib/illustration.cjs +9 -12
- package/dist/vue2/lib/illustration.cjs.map +1 -1
- package/dist/vue2/lib/illustration.js +9 -12
- package/dist/vue2/lib/illustration.js.map +1 -1
- package/dist/vue2/lib/image-viewer.cjs +98 -23
- package/dist/vue2/lib/image-viewer.cjs.map +1 -1
- package/dist/vue2/lib/image-viewer.js +98 -23
- package/dist/vue2/lib/image-viewer.js.map +1 -1
- package/dist/vue2/lib/input-group.cjs +24 -14
- package/dist/vue2/lib/input-group.cjs.map +1 -1
- package/dist/vue2/lib/input-group.js +24 -14
- package/dist/vue2/lib/input-group.js.map +1 -1
- package/dist/vue2/lib/input.cjs +108 -40
- package/dist/vue2/lib/input.cjs.map +1 -1
- package/dist/vue2/lib/input.js +108 -40
- package/dist/vue2/lib/input.js.map +1 -1
- package/dist/vue2/lib/item-layout.cjs +42 -11
- package/dist/vue2/lib/item-layout.cjs.map +1 -1
- package/dist/vue2/lib/item-layout.js +42 -11
- package/dist/vue2/lib/item-layout.js.map +1 -1
- package/dist/vue2/lib/ivr-node.cjs +135 -47
- package/dist/vue2/lib/ivr-node.cjs.map +1 -1
- package/dist/vue2/lib/ivr-node.js +135 -47
- package/dist/vue2/lib/ivr-node.js.map +1 -1
- package/dist/vue2/lib/keyboard-shortcut.cjs +35 -23
- package/dist/vue2/lib/keyboard-shortcut.cjs.map +1 -1
- package/dist/vue2/lib/keyboard-shortcut.js +35 -23
- package/dist/vue2/lib/keyboard-shortcut.js.map +1 -1
- package/dist/vue2/lib/lazy-show.cjs +15 -11
- package/dist/vue2/lib/lazy-show.cjs.map +1 -1
- package/dist/vue2/lib/lazy-show.js +15 -11
- package/dist/vue2/lib/lazy-show.js.map +1 -1
- package/dist/vue2/lib/link.cjs +9 -15
- package/dist/vue2/lib/link.cjs.map +1 -1
- package/dist/vue2/lib/link.js +9 -15
- package/dist/vue2/lib/link.js.map +1 -1
- package/dist/vue2/lib/list-item-group.cjs +17 -11
- package/dist/vue2/lib/list-item-group.cjs.map +1 -1
- package/dist/vue2/lib/list-item-group.js +17 -11
- package/dist/vue2/lib/list-item-group.js.map +1 -1
- package/dist/vue2/lib/list-item.cjs +42 -23
- package/dist/vue2/lib/list-item.cjs.map +1 -1
- package/dist/vue2/lib/list-item.js +42 -23
- package/dist/vue2/lib/list-item.js.map +1 -1
- package/dist/vue2/lib/message-input.cjs +367 -97
- package/dist/vue2/lib/message-input.cjs.map +1 -1
- package/dist/vue2/lib/message-input.js +367 -97
- package/dist/vue2/lib/message-input.js.map +1 -1
- package/dist/vue2/lib/modal.cjs +94 -36
- package/dist/vue2/lib/modal.cjs.map +1 -1
- package/dist/vue2/lib/modal.js +94 -36
- package/dist/vue2/lib/modal.js.map +1 -1
- package/dist/vue2/lib/notice.cjs +40 -21
- package/dist/vue2/lib/notice.cjs.map +1 -1
- package/dist/vue2/lib/notice.js +40 -21
- package/dist/vue2/lib/notice.js.map +1 -1
- package/dist/vue2/lib/pagination.cjs +81 -20
- package/dist/vue2/lib/pagination.cjs.map +1 -1
- package/dist/vue2/lib/pagination.js +81 -20
- package/dist/vue2/lib/pagination.js.map +1 -1
- package/dist/vue2/lib/popover.cjs +194 -75
- package/dist/vue2/lib/popover.cjs.map +1 -1
- package/dist/vue2/lib/popover.js +195 -76
- package/dist/vue2/lib/popover.js.map +1 -1
- package/dist/vue2/lib/presence.cjs +23 -22
- package/dist/vue2/lib/presence.cjs.map +1 -1
- package/dist/vue2/lib/presence.js +23 -22
- package/dist/vue2/lib/presence.js.map +1 -1
- package/dist/vue2/lib/radio-group.cjs +2 -11
- package/dist/vue2/lib/radio-group.cjs.map +1 -1
- package/dist/vue2/lib/radio-group.js +2 -11
- package/dist/vue2/lib/radio-group.js.map +1 -1
- package/dist/vue2/lib/radio.cjs +47 -15
- package/dist/vue2/lib/radio.cjs.map +1 -1
- package/dist/vue2/lib/radio.js +47 -15
- package/dist/vue2/lib/radio.js.map +1 -1
- package/dist/vue2/lib/rich-text-editor.cjs +340 -327
- package/dist/vue2/lib/rich-text-editor.cjs.map +1 -1
- package/dist/vue2/lib/rich-text-editor.js +340 -327
- package/dist/vue2/lib/rich-text-editor.js.map +1 -1
- package/dist/vue2/lib/root-layout.cjs +33 -15
- package/dist/vue2/lib/root-layout.cjs.map +1 -1
- package/dist/vue2/lib/root-layout.js +33 -15
- package/dist/vue2/lib/root-layout.js.map +1 -1
- package/dist/vue2/lib/scrollbar-directive.cjs.map +1 -1
- package/dist/vue2/lib/scrollbar-directive.js.map +1 -1
- package/dist/vue2/lib/select-menu.cjs +52 -33
- package/dist/vue2/lib/select-menu.cjs.map +1 -1
- package/dist/vue2/lib/select-menu.js +52 -33
- package/dist/vue2/lib/select-menu.js.map +1 -1
- package/dist/vue2/lib/settings-menu-button.cjs +42 -16
- package/dist/vue2/lib/settings-menu-button.cjs.map +1 -1
- package/dist/vue2/lib/settings-menu-button.js +42 -16
- package/dist/vue2/lib/settings-menu-button.js.map +1 -1
- package/dist/vue2/lib/skeleton.cjs +118 -93
- package/dist/vue2/lib/skeleton.cjs.map +1 -1
- package/dist/vue2/lib/skeleton.js +118 -93
- package/dist/vue2/lib/skeleton.js.map +1 -1
- package/dist/vue2/lib/split-button.cjs +164 -64
- package/dist/vue2/lib/split-button.cjs.map +1 -1
- package/dist/vue2/lib/split-button.js +164 -64
- package/dist/vue2/lib/split-button.js.map +1 -1
- package/dist/vue2/lib/stack.cjs +21 -33
- package/dist/vue2/lib/stack.cjs.map +1 -1
- package/dist/vue2/lib/stack.js +21 -33
- package/dist/vue2/lib/stack.js.map +1 -1
- package/dist/vue2/lib/tabs.cjs +20 -13
- package/dist/vue2/lib/tabs.cjs.map +1 -1
- package/dist/vue2/lib/tabs.js +20 -13
- package/dist/vue2/lib/tabs.js.map +1 -1
- package/dist/vue2/lib/time-pill.cjs +8 -11
- package/dist/vue2/lib/time-pill.cjs.map +1 -1
- package/dist/vue2/lib/time-pill.js +8 -11
- package/dist/vue2/lib/time-pill.js.map +1 -1
- package/dist/vue2/lib/toast.cjs +42 -21
- package/dist/vue2/lib/toast.cjs.map +1 -1
- package/dist/vue2/lib/toast.js +42 -21
- package/dist/vue2/lib/toast.js.map +1 -1
- package/dist/vue2/lib/toggle.cjs +28 -24
- package/dist/vue2/lib/toggle.cjs.map +1 -1
- package/dist/vue2/lib/toggle.js +28 -24
- package/dist/vue2/lib/toggle.js.map +1 -1
- package/dist/vue2/lib/tooltip-directive.cjs +32 -26
- package/dist/vue2/lib/tooltip-directive.cjs.map +1 -1
- package/dist/vue2/lib/tooltip-directive.js +32 -26
- package/dist/vue2/lib/tooltip-directive.js.map +1 -1
- package/dist/vue2/lib/tooltip.cjs +31 -21
- package/dist/vue2/lib/tooltip.cjs.map +1 -1
- package/dist/vue2/lib/tooltip.js +32 -22
- package/dist/vue2/lib/tooltip.js.map +1 -1
- package/dist/vue2/lib/top-banner-info.cjs +18 -21
- package/dist/vue2/lib/top-banner-info.cjs.map +1 -1
- package/dist/vue2/lib/top-banner-info.js +18 -21
- package/dist/vue2/lib/top-banner-info.js.map +1 -1
- package/dist/vue2/lib/unread-pill.cjs +18 -12
- package/dist/vue2/lib/unread-pill.cjs.map +1 -1
- package/dist/vue2/lib/unread-pill.js +18 -12
- package/dist/vue2/lib/unread-pill.js.map +1 -1
- package/dist/vue2/lib/validation-messages.cjs +23 -16
- package/dist/vue2/lib/validation-messages.cjs.map +1 -1
- package/dist/vue2/lib/validation-messages.js +23 -16
- package/dist/vue2/lib/validation-messages.js.map +1 -1
- package/dist/vue2/style.css +5 -0
- package/dist/vue2/types/common/emoji/index.d.ts +2 -59236
- package/dist/vue2/types/common/emoji/index.d.ts.map +1 -1
- package/dist/vue2/types/components/button/button.vue.d.ts +1 -1
- package/dist/vue2/types/components/chip/chip.vue.d.ts +1 -1
- package/dist/vue2/types/components/combobox/combobox.vue.d.ts +1 -1
- package/dist/vue2/types/components/icon/icon.vue.d.ts +2 -2
- package/dist/vue2/types/components/icon/icon_constants.d.ts +1 -1
- package/dist/vue2/types/components/icon/icon_constants.d.ts.map +1 -1
- package/dist/vue2/types/components/illustration/illustration.vue.d.ts +2 -2
- package/dist/vue2/types/components/illustration/illustration_constants.d.ts +1 -1
- package/dist/vue2/types/components/illustration/illustration_constants.d.ts.map +1 -1
- package/dist/vue2/types/components/image_viewer/image_viewer.vue.d.ts +21 -0
- package/dist/vue2/types/components/image_viewer/image_viewer.vue.d.ts.map +1 -1
- package/dist/vue2/types/components/input/input.vue.d.ts +1 -1
- package/dist/vue2/types/components/modal/modal.vue.d.ts +1 -1
- package/dist/vue2/types/components/rich_text_editor/extensions/custom_link/custom_link.d.ts.map +1 -1
- package/dist/vue2/types/components/rich_text_editor/mention_suggestion.d.ts.map +1 -1
- package/dist/vue2/types/components/rich_text_editor/rich_text_editor.vue.d.ts +5 -3
- package/dist/vue2/types/components/rich_text_editor/rich_text_editor.vue.d.ts.map +1 -1
- package/dist/vue2/types/components/split_button/split_button-alpha.vue.d.ts +1 -1
- package/dist/vue2/types/components/toast/toast.vue.d.ts +1 -1
- package/dist/vue2/types/components/tooltip/tooltip.vue.d.ts +1 -1
- package/dist/vue2/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +1 -1
- package/dist/vue2/types/recipes/conversation_view/editor/editor.vue.d.ts +1 -1
- package/dist/vue2/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +1 -1
- package/dist/vue2/types/recipes/conversation_view/message_input/message_input.vue.d.ts +1 -1
- package/dist/vue3/chunks/{dropdown-oA-_Gotg.js → dropdown-6HXkh24e.js} +40 -45
- package/dist/vue3/chunks/{dropdown-p-Azgwov.js.map → dropdown-6HXkh24e.js.map} +1 -1
- package/dist/vue3/chunks/{dropdown-p-Azgwov.js → dropdown-QNvAb160.js} +40 -45
- package/dist/vue3/chunks/{dropdown-oA-_Gotg.js.map → dropdown-QNvAb160.js.map} +1 -1
- package/dist/vue3/chunks/dropdown_constants-2pGCXy7m.js.map +1 -1
- package/dist/vue3/chunks/dropdown_constants-w1MXGC3Z.js.map +1 -1
- package/dist/vue3/chunks/{icon_constants-QYpmdE0R.js → icon_constants-bvhFNOPu.js} +3 -2
- package/dist/vue3/chunks/icon_constants-bvhFNOPu.js.map +1 -0
- package/dist/vue3/chunks/{icon_constants-Dy4MEUJL.js → icon_constants-gIQj4mf7.js} +3 -2
- package/dist/vue3/chunks/icon_constants-gIQj4mf7.js.map +1 -0
- package/dist/vue3/chunks/{index-b_MgDylR.js → index-T15rAIdX.js} +71 -84
- package/dist/vue3/chunks/{index-4qgKeErp.js.map → index-T15rAIdX.js.map} +1 -1
- package/dist/vue3/chunks/{index-GVD15GIB.js → index-dfdrE-3M.js} +3 -12
- package/dist/vue3/chunks/{index-GVD15GIB.js.map → index-dfdrE-3M.js.map} +1 -1
- package/dist/vue3/chunks/{index-lu2o2f4r.js → index-fEp0B-5Z.js} +3 -12
- package/dist/vue3/chunks/{index-lu2o2f4r.js.map → index-fEp0B-5Z.js.map} +1 -1
- package/dist/vue3/chunks/{index-4qgKeErp.js → index-ouh7Bvm-.js} +71 -84
- package/dist/vue3/chunks/{index-b_MgDylR.js.map → index-ouh7Bvm-.js.map} +1 -1
- package/dist/vue3/chunks/{input-NmYDD5bn.js → input-HIysg24t.js} +3 -9
- package/dist/vue3/chunks/{input-NmYDD5bn.js.map → input-HIysg24t.js.map} +1 -1
- package/dist/vue3/chunks/{input-ttnte8zB.js → input-dLLo3Wtg.js} +3 -9
- package/dist/vue3/chunks/{input-ttnte8zB.js.map → input-dLLo3Wtg.js.map} +1 -1
- package/dist/vue3/chunks/{input_group-jWnq2DJT.js → input_group-hV1WT2it.js} +4 -2
- package/dist/vue3/chunks/{input_group-jWnq2DJT.js.map → input_group-hV1WT2it.js.map} +1 -1
- package/dist/vue3/chunks/{input_group-M-D25pOJ.js → input_group-rE6nhye8.js} +4 -2
- package/dist/vue3/chunks/{input_group-M-D25pOJ.js.map → input_group-rE6nhye8.js.map} +1 -1
- package/dist/vue3/chunks/{keyboard_list_navigation-ScXhrxya.js → keyboard_list_navigation-YIqTuw1W.js} +6 -5
- package/dist/{vue2/chunks/keyboard_list_navigation-fJnl_Iox.js.map → vue3/chunks/keyboard_list_navigation-YIqTuw1W.js.map} +1 -1
- package/dist/vue3/chunks/{keyboard_list_navigation-fJnl_Iox.js → keyboard_list_navigation-x3D6RcC7.js} +6 -5
- package/dist/vue3/chunks/{keyboard_list_navigation-ScXhrxya.js.map → keyboard_list_navigation-x3D6RcC7.js.map} +1 -1
- package/dist/vue3/chunks/link_constants-AfTWrr-n.js.map +1 -1
- package/dist/vue3/chunks/link_constants-x8NwdqmA.js.map +1 -1
- package/dist/vue3/chunks/list_item_constants-EiqkqZvP.js.map +1 -1
- package/dist/vue3/chunks/list_item_constants-u1xcN9Dd.js.map +1 -1
- package/dist/vue3/chunks/{modal-XOr4kiNZ.js → modal-8X6poIZW.js} +4 -2
- package/dist/vue3/chunks/{modal-VgxXAQFP.js.map → modal-8X6poIZW.js.map} +1 -1
- package/dist/vue3/chunks/{modal-VgxXAQFP.js → modal-OaWxzqNt.js} +4 -2
- package/dist/{vue2/chunks/modal-XOr4kiNZ.js.map → vue3/chunks/modal-OaWxzqNt.js.map} +1 -1
- package/dist/vue3/chunks/{notice_action-WTucGhvr.js → notice_action-3ed0uIMN.js} +40 -61
- package/dist/vue3/chunks/{notice_action-p-ePanW_.js.map → notice_action-3ed0uIMN.js.map} +1 -1
- package/dist/vue3/chunks/{notice_action-p-ePanW_.js → notice_action-e08Lw5W6.js} +40 -61
- package/dist/vue3/chunks/{notice_action-WTucGhvr.js.map → notice_action-e08Lw5W6.js.map} +1 -1
- package/dist/vue3/chunks/notice_constants-7Qt2CQEY.js.map +1 -1
- package/dist/vue3/chunks/notice_constants-UXo9e3bS.js.map +1 -1
- package/dist/vue3/chunks/{popover_constants-WsOUIY-m.js → popover_constants-6YkPPbnk.js} +26 -47
- package/dist/{vue2/chunks/popover_constants-XnGWXaxX.js.map → vue3/chunks/popover_constants-6YkPPbnk.js.map} +1 -1
- package/dist/vue3/chunks/{popover_constants-XnGWXaxX.js → popover_constants-h9MD6WUt.js} +26 -47
- package/dist/vue3/chunks/{popover_constants-XnGWXaxX.js.map → popover_constants-h9MD6WUt.js.map} +1 -1
- package/dist/vue3/chunks/{sr_only_close_button-3EdsV-dH.js → sr_only_close_button-Ji3Zlts6.js} +4 -4
- package/dist/vue3/chunks/{sr_only_close_button-3EdsV-dH.js.map → sr_only_close_button-Ji3Zlts6.js.map} +1 -1
- package/dist/vue3/chunks/{sr_only_close_button-xGrHFjwA.js → sr_only_close_button-gKr0Vlbz.js} +4 -4
- package/dist/vue3/chunks/{sr_only_close_button-xGrHFjwA.js.map → sr_only_close_button-gKr0Vlbz.js.map} +1 -1
- package/dist/vue3/chunks/stack_constants-HraCekPm.js.map +1 -1
- package/dist/vue3/chunks/stack_constants-SMzMWnAQ.js.map +1 -1
- package/dist/vue3/chunks/{tab-qc3f42Yp.js → tab-X7IvNGTl.js} +46 -49
- package/dist/vue3/chunks/{tab-qc3f42Yp.js.map → tab-X7IvNGTl.js.map} +1 -1
- package/dist/vue3/chunks/{tab-RTDgnD9-.js → tab-aD6t0MNo.js} +46 -49
- package/dist/vue3/chunks/{tab-RTDgnD9-.js.map → tab-aD6t0MNo.js.map} +1 -1
- package/dist/vue3/common/constants.cjs.map +1 -1
- package/dist/vue3/common/constants.js.map +1 -1
- package/dist/vue3/common/dates.cjs +3 -1
- package/dist/vue3/common/dates.cjs.map +1 -1
- package/dist/vue3/common/dates.js +3 -1
- package/dist/vue3/common/dates.js.map +1 -1
- package/dist/vue3/common/emoji.cjs +1 -1
- package/dist/vue3/common/emoji.js +1 -1
- package/dist/vue3/common/mixins.cjs +3 -3
- package/dist/vue3/common/mixins.js +3 -3
- package/dist/vue3/common/utils.cjs +11 -45
- package/dist/vue3/common/utils.cjs.map +1 -1
- package/dist/vue3/common/utils.js +11 -45
- package/dist/vue3/common/utils.js.map +1 -1
- package/dist/vue3/common/validators.cjs.map +1 -1
- package/dist/vue3/common/validators.js.map +1 -1
- package/dist/vue3/component-documentation.json +1 -1
- package/dist/vue3/dialtone-vue.cjs +12 -12
- package/dist/vue3/dialtone-vue.js +12 -12
- package/dist/vue3/lib/attachment-carousel.cjs +87 -108
- package/dist/vue3/lib/attachment-carousel.cjs.map +1 -1
- package/dist/vue3/lib/attachment-carousel.js +87 -108
- package/dist/vue3/lib/attachment-carousel.js.map +1 -1
- package/dist/vue3/lib/avatar.cjs +56 -88
- package/dist/vue3/lib/avatar.cjs.map +1 -1
- package/dist/vue3/lib/avatar.js +56 -88
- package/dist/vue3/lib/avatar.js.map +1 -1
- package/dist/vue3/lib/badge.cjs +15 -31
- package/dist/vue3/lib/badge.cjs.map +1 -1
- package/dist/vue3/lib/badge.js +15 -31
- package/dist/vue3/lib/badge.js.map +1 -1
- package/dist/vue3/lib/banner.cjs +38 -56
- package/dist/vue3/lib/banner.cjs.map +1 -1
- package/dist/vue3/lib/banner.js +38 -56
- package/dist/vue3/lib/banner.js.map +1 -1
- package/dist/vue3/lib/breadcrumbs.cjs +25 -36
- package/dist/vue3/lib/breadcrumbs.cjs.map +1 -1
- package/dist/vue3/lib/breadcrumbs.js +25 -36
- package/dist/vue3/lib/breadcrumbs.js.map +1 -1
- package/dist/vue3/lib/button-group.cjs +2 -7
- package/dist/vue3/lib/button-group.cjs.map +1 -1
- package/dist/vue3/lib/button-group.js +2 -7
- package/dist/vue3/lib/button-group.js.map +1 -1
- package/dist/vue3/lib/button.cjs +44 -69
- package/dist/vue3/lib/button.cjs.map +1 -1
- package/dist/vue3/lib/button.js +44 -69
- package/dist/vue3/lib/button.js.map +1 -1
- package/dist/vue3/lib/callbar-button-with-popover.cjs +68 -81
- package/dist/vue3/lib/callbar-button-with-popover.cjs.map +1 -1
- package/dist/vue3/lib/callbar-button-with-popover.js +68 -81
- package/dist/vue3/lib/callbar-button-with-popover.js.map +1 -1
- package/dist/vue3/lib/callbar-button.cjs +32 -45
- package/dist/vue3/lib/callbar-button.cjs.map +1 -1
- package/dist/vue3/lib/callbar-button.js +32 -45
- package/dist/vue3/lib/callbar-button.js.map +1 -1
- package/dist/vue3/lib/callbox.cjs +38 -57
- package/dist/vue3/lib/callbox.cjs.map +1 -1
- package/dist/vue3/lib/callbox.js +38 -57
- package/dist/vue3/lib/callbox.js.map +1 -1
- package/dist/vue3/lib/card.cjs +13 -33
- package/dist/vue3/lib/card.cjs.map +1 -1
- package/dist/vue3/lib/card.js +13 -33
- package/dist/vue3/lib/card.js.map +1 -1
- package/dist/vue3/lib/checkbox-group.cjs +2 -5
- package/dist/vue3/lib/checkbox-group.cjs.map +1 -1
- package/dist/vue3/lib/checkbox-group.js +2 -5
- package/dist/vue3/lib/checkbox-group.js.map +1 -1
- package/dist/vue3/lib/checkbox.cjs +41 -45
- package/dist/vue3/lib/checkbox.cjs.map +1 -1
- package/dist/vue3/lib/checkbox.js +41 -45
- package/dist/vue3/lib/checkbox.js.map +1 -1
- package/dist/vue3/lib/chip.cjs +38 -53
- package/dist/vue3/lib/chip.cjs.map +1 -1
- package/dist/vue3/lib/chip.js +38 -53
- package/dist/vue3/lib/chip.js.map +1 -1
- package/dist/vue3/lib/codeblock.cjs +4 -6
- package/dist/vue3/lib/codeblock.cjs.map +1 -1
- package/dist/vue3/lib/codeblock.js +4 -6
- package/dist/vue3/lib/codeblock.js.map +1 -1
- package/dist/vue3/lib/collapsible.cjs +62 -76
- package/dist/vue3/lib/collapsible.cjs.map +1 -1
- package/dist/vue3/lib/collapsible.js +62 -76
- package/dist/vue3/lib/collapsible.js.map +1 -1
- package/dist/vue3/lib/combobox-multi-select.cjs +75 -88
- package/dist/vue3/lib/combobox-multi-select.cjs.map +1 -1
- package/dist/vue3/lib/combobox-multi-select.js +75 -88
- package/dist/vue3/lib/combobox-multi-select.js.map +1 -1
- package/dist/vue3/lib/combobox-with-popover.cjs +77 -85
- package/dist/vue3/lib/combobox-with-popover.cjs.map +1 -1
- package/dist/vue3/lib/combobox-with-popover.js +77 -85
- package/dist/vue3/lib/combobox-with-popover.js.map +1 -1
- package/dist/vue3/lib/combobox.cjs +3 -3
- package/dist/vue3/lib/combobox.js +3 -3
- package/dist/vue3/lib/contact-centers-row.cjs +65 -89
- package/dist/vue3/lib/contact-centers-row.cjs.map +1 -1
- package/dist/vue3/lib/contact-centers-row.js +65 -89
- package/dist/vue3/lib/contact-centers-row.js.map +1 -1
- package/dist/vue3/lib/contact-info.cjs +58 -73
- package/dist/vue3/lib/contact-info.cjs.map +1 -1
- package/dist/vue3/lib/contact-info.js +58 -73
- package/dist/vue3/lib/contact-info.js.map +1 -1
- package/dist/vue3/lib/contact-row.cjs +37 -47
- package/dist/vue3/lib/contact-row.cjs.map +1 -1
- package/dist/vue3/lib/contact-row.js +37 -47
- package/dist/vue3/lib/contact-row.js.map +1 -1
- package/dist/vue3/lib/datepicker.cjs +267 -263
- package/dist/vue3/lib/datepicker.cjs.map +1 -1
- package/dist/vue3/lib/datepicker.js +267 -263
- package/dist/vue3/lib/datepicker.js.map +1 -1
- package/dist/vue3/lib/description-list.cjs +9 -14
- package/dist/vue3/lib/description-list.cjs.map +1 -1
- package/dist/vue3/lib/description-list.js +9 -14
- package/dist/vue3/lib/description-list.js.map +1 -1
- package/dist/vue3/lib/dropdown.cjs +6 -6
- package/dist/vue3/lib/dropdown.cjs.map +1 -1
- package/dist/vue3/lib/dropdown.js +6 -6
- package/dist/vue3/lib/dropdown.js.map +1 -1
- package/dist/vue3/lib/editor.cjs +312 -249
- package/dist/vue3/lib/editor.cjs.map +1 -1
- package/dist/vue3/lib/editor.js +312 -249
- package/dist/vue3/lib/editor.js.map +1 -1
- package/dist/vue3/lib/emoji-picker.cjs +387 -419
- package/dist/vue3/lib/emoji-picker.cjs.map +1 -1
- package/dist/vue3/lib/emoji-picker.js +387 -419
- package/dist/vue3/lib/emoji-picker.js.map +1 -1
- package/dist/vue3/lib/emoji-row.cjs +59 -69
- package/dist/vue3/lib/emoji-row.cjs.map +1 -1
- package/dist/vue3/lib/emoji-row.js +59 -69
- package/dist/vue3/lib/emoji-row.js.map +1 -1
- package/dist/vue3/lib/emoji-text-wrapper.cjs +13 -12
- package/dist/vue3/lib/emoji-text-wrapper.cjs.map +1 -1
- package/dist/vue3/lib/emoji-text-wrapper.js +13 -12
- package/dist/vue3/lib/emoji-text-wrapper.js.map +1 -1
- package/dist/vue3/lib/emoji.cjs +19 -23
- package/dist/vue3/lib/emoji.cjs.map +1 -1
- package/dist/vue3/lib/emoji.js +19 -23
- package/dist/vue3/lib/emoji.js.map +1 -1
- package/dist/vue3/lib/empty-state.cjs +20 -30
- package/dist/vue3/lib/empty-state.cjs.map +1 -1
- package/dist/vue3/lib/empty-state.js +20 -30
- package/dist/vue3/lib/empty-state.js.map +1 -1
- package/dist/vue3/lib/feed-item-row.cjs +43 -74
- package/dist/vue3/lib/feed-item-row.cjs.map +1 -1
- package/dist/vue3/lib/feed-item-row.js +43 -74
- package/dist/vue3/lib/feed-item-row.js.map +1 -1
- package/dist/vue3/lib/feed-pill.cjs +45 -55
- package/dist/vue3/lib/feed-pill.cjs.map +1 -1
- package/dist/vue3/lib/feed-pill.js +45 -55
- package/dist/vue3/lib/feed-pill.js.map +1 -1
- package/dist/vue3/lib/general-row.cjs +115 -165
- package/dist/vue3/lib/general-row.cjs.map +1 -1
- package/dist/vue3/lib/general-row.js +115 -165
- package/dist/vue3/lib/general-row.js.map +1 -1
- package/dist/vue3/lib/group-row.cjs +7 -9
- package/dist/vue3/lib/group-row.cjs.map +1 -1
- package/dist/vue3/lib/group-row.js +7 -9
- package/dist/vue3/lib/group-row.js.map +1 -1
- package/dist/vue3/lib/grouped-chip.cjs +27 -48
- package/dist/vue3/lib/grouped-chip.cjs.map +1 -1
- package/dist/vue3/lib/grouped-chip.js +27 -48
- package/dist/vue3/lib/grouped-chip.js.map +1 -1
- package/dist/vue3/lib/hovercard.cjs +25 -33
- package/dist/vue3/lib/hovercard.cjs.map +1 -1
- package/dist/vue3/lib/hovercard.js +25 -33
- package/dist/vue3/lib/hovercard.js.map +1 -1
- package/dist/vue3/lib/icon.cjs +1 -1
- package/dist/vue3/lib/icon.cjs.map +1 -1
- package/dist/vue3/lib/icon.js +1 -1
- package/dist/vue3/lib/icon.js.map +1 -1
- package/dist/vue3/lib/illustration.cjs +2 -1
- package/dist/vue3/lib/illustration.cjs.map +1 -1
- package/dist/vue3/lib/illustration.js +2 -1
- package/dist/vue3/lib/illustration.js.map +1 -1
- package/dist/vue3/lib/image-viewer.cjs +62 -66
- package/dist/vue3/lib/image-viewer.cjs.map +1 -1
- package/dist/vue3/lib/image-viewer.js +62 -66
- package/dist/vue3/lib/image-viewer.js.map +1 -1
- package/dist/vue3/lib/input-group.cjs +15 -19
- package/dist/vue3/lib/input-group.cjs.map +1 -1
- package/dist/vue3/lib/input-group.js +15 -19
- package/dist/vue3/lib/input-group.js.map +1 -1
- package/dist/vue3/lib/input.cjs +76 -104
- package/dist/vue3/lib/input.cjs.map +1 -1
- package/dist/vue3/lib/input.js +76 -104
- package/dist/vue3/lib/input.js.map +1 -1
- package/dist/vue3/lib/item-layout.cjs +10 -27
- package/dist/vue3/lib/item-layout.cjs.map +1 -1
- package/dist/vue3/lib/item-layout.js +10 -27
- package/dist/vue3/lib/item-layout.js.map +1 -1
- package/dist/vue3/lib/ivr-node.cjs +80 -89
- package/dist/vue3/lib/ivr-node.cjs.map +1 -1
- package/dist/vue3/lib/ivr-node.js +80 -89
- package/dist/vue3/lib/ivr-node.js.map +1 -1
- package/dist/vue3/lib/keyboard-shortcut.cjs +26 -31
- package/dist/vue3/lib/keyboard-shortcut.cjs.map +1 -1
- package/dist/vue3/lib/keyboard-shortcut.js +26 -31
- package/dist/vue3/lib/keyboard-shortcut.js.map +1 -1
- package/dist/vue3/lib/lazy-show.cjs +6 -8
- package/dist/vue3/lib/lazy-show.cjs.map +1 -1
- package/dist/vue3/lib/lazy-show.js +6 -8
- package/dist/vue3/lib/lazy-show.js.map +1 -1
- package/dist/vue3/lib/link.cjs +2 -7
- package/dist/vue3/lib/link.cjs.map +1 -1
- package/dist/vue3/lib/link.js +2 -7
- package/dist/vue3/lib/link.js.map +1 -1
- package/dist/vue3/lib/list-item-group.cjs +7 -14
- package/dist/vue3/lib/list-item-group.cjs.map +1 -1
- package/dist/vue3/lib/list-item-group.js +7 -14
- package/dist/vue3/lib/list-item-group.js.map +1 -1
- package/dist/vue3/lib/list-item.cjs +24 -25
- package/dist/vue3/lib/list-item.cjs.map +1 -1
- package/dist/vue3/lib/list-item.js +24 -25
- package/dist/vue3/lib/list-item.js.map +1 -1
- package/dist/vue3/lib/message-input.cjs +239 -277
- package/dist/vue3/lib/message-input.cjs.map +1 -1
- package/dist/vue3/lib/message-input.js +240 -278
- package/dist/vue3/lib/message-input.js.map +1 -1
- package/dist/vue3/lib/modal.cjs +59 -99
- package/dist/vue3/lib/modal.cjs.map +1 -1
- package/dist/vue3/lib/modal.js +59 -99
- package/dist/vue3/lib/modal.js.map +1 -1
- package/dist/vue3/lib/notice.cjs +33 -46
- package/dist/vue3/lib/notice.cjs.map +1 -1
- package/dist/vue3/lib/notice.js +33 -46
- package/dist/vue3/lib/notice.js.map +1 -1
- package/dist/vue3/lib/pagination.cjs +49 -61
- package/dist/vue3/lib/pagination.cjs.map +1 -1
- package/dist/vue3/lib/pagination.js +49 -61
- package/dist/vue3/lib/pagination.js.map +1 -1
- package/dist/vue3/lib/popover.cjs +133 -156
- package/dist/vue3/lib/popover.cjs.map +1 -1
- package/dist/vue3/lib/popover.js +134 -157
- package/dist/vue3/lib/popover.js.map +1 -1
- package/dist/vue3/lib/presence.cjs +9 -17
- package/dist/vue3/lib/presence.cjs.map +1 -1
- package/dist/vue3/lib/presence.js +9 -17
- package/dist/vue3/lib/presence.js.map +1 -1
- package/dist/vue3/lib/radio-group.cjs +1 -1
- package/dist/vue3/lib/radio-group.cjs.map +1 -1
- package/dist/vue3/lib/radio-group.js +1 -1
- package/dist/vue3/lib/radio-group.js.map +1 -1
- package/dist/vue3/lib/radio.cjs +34 -41
- package/dist/vue3/lib/radio.cjs.map +1 -1
- package/dist/vue3/lib/radio.js +34 -41
- package/dist/vue3/lib/radio.js.map +1 -1
- package/dist/vue3/lib/rich-text-editor.cjs +297 -298
- package/dist/vue3/lib/rich-text-editor.cjs.map +1 -1
- package/dist/vue3/lib/rich-text-editor.js +297 -298
- package/dist/vue3/lib/rich-text-editor.js.map +1 -1
- package/dist/vue3/lib/root-layout.cjs +24 -39
- package/dist/vue3/lib/root-layout.cjs.map +1 -1
- package/dist/vue3/lib/root-layout.js +24 -39
- package/dist/vue3/lib/root-layout.js.map +1 -1
- package/dist/vue3/lib/scrollbar-directive.cjs.map +1 -1
- package/dist/vue3/lib/scrollbar-directive.js.map +1 -1
- package/dist/vue3/lib/scroller.cjs +100 -83
- package/dist/vue3/lib/scroller.cjs.map +1 -1
- package/dist/vue3/lib/scroller.js +100 -83
- package/dist/vue3/lib/scroller.js.map +1 -1
- package/dist/vue3/lib/select-menu.cjs +40 -67
- package/dist/vue3/lib/select-menu.cjs.map +1 -1
- package/dist/vue3/lib/select-menu.js +40 -67
- package/dist/vue3/lib/select-menu.js.map +1 -1
- package/dist/vue3/lib/settings-menu-button.cjs +10 -16
- package/dist/vue3/lib/settings-menu-button.cjs.map +1 -1
- package/dist/vue3/lib/settings-menu-button.js +10 -16
- package/dist/vue3/lib/settings-menu-button.js.map +1 -1
- package/dist/vue3/lib/skeleton.cjs +74 -93
- package/dist/vue3/lib/skeleton.cjs.map +1 -1
- package/dist/vue3/lib/skeleton.js +74 -93
- package/dist/vue3/lib/skeleton.js.map +1 -1
- package/dist/vue3/lib/split-button.cjs +68 -74
- package/dist/vue3/lib/split-button.cjs.map +1 -1
- package/dist/vue3/lib/split-button.js +68 -74
- package/dist/vue3/lib/split-button.js.map +1 -1
- package/dist/vue3/lib/stack.cjs +18 -26
- package/dist/vue3/lib/stack.cjs.map +1 -1
- package/dist/vue3/lib/stack.js +18 -26
- package/dist/vue3/lib/stack.js.map +1 -1
- package/dist/vue3/lib/tabs.cjs +3 -7
- package/dist/vue3/lib/tabs.cjs.map +1 -1
- package/dist/vue3/lib/tabs.js +3 -7
- package/dist/vue3/lib/tabs.js.map +1 -1
- package/dist/vue3/lib/time-pill.cjs.map +1 -1
- package/dist/vue3/lib/time-pill.js.map +1 -1
- package/dist/vue3/lib/toast.cjs +35 -51
- package/dist/vue3/lib/toast.cjs.map +1 -1
- package/dist/vue3/lib/toast.js +35 -51
- package/dist/vue3/lib/toast.js.map +1 -1
- package/dist/vue3/lib/toggle.cjs +24 -34
- package/dist/vue3/lib/toggle.cjs.map +1 -1
- package/dist/vue3/lib/toggle.js +24 -34
- package/dist/vue3/lib/toggle.js.map +1 -1
- package/dist/vue3/lib/tooltip-directive.cjs +26 -19
- package/dist/vue3/lib/tooltip-directive.cjs.map +1 -1
- package/dist/vue3/lib/tooltip-directive.js +26 -19
- package/dist/vue3/lib/tooltip-directive.js.map +1 -1
- package/dist/vue3/lib/tooltip.cjs +21 -32
- package/dist/vue3/lib/tooltip.cjs.map +1 -1
- package/dist/vue3/lib/tooltip.js +22 -33
- package/dist/vue3/lib/tooltip.js.map +1 -1
- package/dist/vue3/lib/top-banner-info.cjs +8 -23
- package/dist/vue3/lib/top-banner-info.cjs.map +1 -1
- package/dist/vue3/lib/top-banner-info.js +8 -23
- package/dist/vue3/lib/top-banner-info.js.map +1 -1
- package/dist/vue3/lib/unread-pill.cjs +8 -11
- package/dist/vue3/lib/unread-pill.cjs.map +1 -1
- package/dist/vue3/lib/unread-pill.js +8 -11
- package/dist/vue3/lib/unread-pill.js.map +1 -1
- package/dist/vue3/lib/validation-messages.cjs +14 -17
- package/dist/vue3/lib/validation-messages.cjs.map +1 -1
- package/dist/vue3/lib/validation-messages.js +14 -17
- package/dist/vue3/lib/validation-messages.js.map +1 -1
- package/dist/vue3/style.css +5 -0
- package/dist/vue3/types/components/button/button.vue.d.ts +1 -1
- package/dist/vue3/types/components/chip/chip.vue.d.ts +1 -1
- package/dist/vue3/types/components/combobox/combobox.vue.d.ts +1 -1
- package/dist/vue3/types/components/datepicker/modules/month-year-picker.vue.d.ts +1 -1
- package/dist/vue3/types/components/icon/icon.vue.d.ts +2 -2
- package/dist/vue3/types/components/icon/icon_constants.d.ts +1 -1
- package/dist/vue3/types/components/icon/icon_constants.d.ts.map +1 -1
- package/dist/vue3/types/components/illustration/illustration_constants.d.ts +1 -1
- package/dist/vue3/types/components/illustration/illustration_constants.d.ts.map +1 -1
- package/dist/vue3/types/components/image_viewer/image_viewer.vue.d.ts +21 -0
- package/dist/vue3/types/components/image_viewer/image_viewer.vue.d.ts.map +1 -1
- package/dist/vue3/types/components/input/input.vue.d.ts +1 -1
- package/dist/vue3/types/components/modal/modal.vue.d.ts +1 -1
- package/dist/vue3/types/components/notice/notice.vue.d.ts +1 -1
- package/dist/vue3/types/components/radio/radio.vue.d.ts +1 -1
- package/dist/vue3/types/components/rich_text_editor/extensions/custom_link/custom_link.d.ts.map +1 -1
- package/dist/vue3/types/components/rich_text_editor/mention_suggestion.d.ts.map +1 -1
- package/dist/vue3/types/components/rich_text_editor/rich_text_editor.vue.d.ts +5 -3
- package/dist/vue3/types/components/rich_text_editor/rich_text_editor.vue.d.ts.map +1 -1
- package/dist/vue3/types/components/scroller/modules/scroller_item.vue.d.ts +1 -1
- package/dist/vue3/types/components/split_button/split_button-alpha.vue.d.ts +1 -1
- package/dist/vue3/types/components/tabs/tab.vue.d.ts +1 -1
- package/dist/vue3/types/components/toast/toast.vue.d.ts +2 -2
- package/dist/vue3/types/components/tooltip/tooltip.vue.d.ts +1 -1
- package/dist/vue3/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +1 -1
- package/dist/vue3/types/recipes/conversation_view/editor/editor.vue.d.ts +1 -1
- package/dist/vue3/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +1 -1
- package/dist/vue3/types/recipes/conversation_view/message_input/message_input.vue.d.ts +1 -1
- package/package.json +3 -3
- package/dist/chunks/tokens-base-dark-BC3U5KoN.js +0 -4
- package/dist/chunks/tokens-base-dark-zbBpWlfP.js +0 -1
- package/dist/chunks/tokens-base-light-PCrr7t8W.js +0 -4
- package/dist/chunks/tokens-base-light-dvWvBHbM.js +0 -1
- package/dist/vue2/chunks/icon_constants-Dy4MEUJL.js.map +0 -1
- package/dist/vue2/chunks/icon_constants-QYpmdE0R.js.map +0 -1
- package/dist/vue3/chunks/icon_constants-Dy4MEUJL.js.map +0 -1
- package/dist/vue3/chunks/icon_constants-QYpmdE0R.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combobox-multi-select.js","sources":["../../recipes/comboboxes/combobox_multi_select/combobox_multi_select_constants.js","../../recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue"],"sourcesContent":["export const MULTI_SELECT_SIZES = {\n // Chip has no 'lg' and 'xl' size. So we don't support that in multi-select.\n EXTRA_SMALL: 'xs',\n SMALL: 'sm',\n DEFAULT: 'md',\n};\n\nexport const CHIP_SIZES = {\n xs: 'xs',\n sm: 'xs',\n md: 'sm',\n};\n\nexport const CHIP_TOP_POSITION = {\n xs: 1.4,\n sm: 0.4,\n md: 0.2,\n};\n\nexport default {\n MULTI_SELECT_SIZES,\n CHIP_SIZES,\n CHIP_TOP_POSITION,\n};\n","<template>\n <dt-recipe-combobox-with-popover\n ref=\"comboboxWithPopover\"\n :label=\"label\"\n :show-list=\"showList\"\n :max-height=\"listMaxHeight\"\n :max-width=\"listMaxWidth\"\n :popover-offset=\"popoverOffset\"\n :has-suggestion-list=\"hasSuggestionList\"\n :visually-hidden-close-label=\"visuallyHiddenCloseLabel\"\n :visually-hidden-close=\"visuallyHiddenClose\"\n content-width=\"anchor\"\n :append-to=\"appendTo\"\n :transition=\"transition\"\n @select=\"onComboboxSelect\"\n @highlight=\"comboboxHighlight\"\n >\n <template #input=\"{ onInput }\">\n <span\n ref=\"inputSlotWrapper\"\n class=\"combobox__input-wrapper\"\n @focusin=\"handleInputFocusIn\"\n @focusout=\"handleInputFocusOut\"\n >\n <span\n ref=\"chipsWrapper\"\n :class=\"['combobox__chip-wrapper', chipWrapperClass]\"\n >\n <dt-chip\n v-for=\"item in selectedItems\"\n ref=\"chips\"\n :key=\"item\"\n :label-class=\"['d-chip__label']\"\n class=\"combobox__chip\"\n :close-button-props=\"{ ariaLabel: 'close' }\"\n :size=\"CHIP_SIZES[size]\"\n v-on=\"chipListeners\"\n @keyup.backspace=\"onChipRemove(item)\"\n @close=\"onChipRemove(item)\"\n >\n {{ item }}\n </dt-chip>\n </span>\n\n <dt-input\n ref=\"input\"\n v-model=\"value\"\n class=\"combobox__input\"\n :aria-label=\"label\"\n :label=\"labelVisible ? label : ''\"\n :description=\"description\"\n :placeholder=\"inputPlaceHolder\"\n :show-messages=\"showInputMessages\"\n :messages=\"inputMessages\"\n :size=\"size\"\n v-on=\"inputListeners\"\n @input=\"onInput\"\n />\n\n <dt-validation-messages\n :validation-messages=\"maxSelectedMessage\"\n :show-messages=\"showValidationMessages\"\n />\n </span>\n </template>\n\n <!-- @slot slot for popover header -->\n <template\n v-if=\"hasSlotContent($slots.header)\"\n #header\n >\n <div ref=\"header\">\n <slot name=\"header\" />\n </div>\n </template>\n\n <!-- @slot slot for popover list -->\n <template #list>\n <div\n ref=\"list\"\n @mousedown.prevent\n >\n <slot\n v-if=\"!loading\"\n name=\"list\"\n />\n <div\n v-else\n class=\"combobox__list--loading\"\n >\n {{ loadingMessage }}\n </div>\n </div>\n </template>\n\n <!-- @slot slot for popover footer -->\n <template\n v-if=\"hasSlotContent($slots.footer)\"\n #footer\n >\n <div ref=\"footer\">\n <slot name=\"footer\" />\n </div>\n </template>\n </dt-recipe-combobox-with-popover>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport DtRecipeComboboxWithPopover from '@/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue';\nimport DtInput from '@/components/input/input.vue';\nimport DtChip from '@/components/chip/chip.vue';\nimport DtValidationMessages from '@/components/validation_messages/validation_messages.vue';\nimport { validationMessageValidator } from '@/common/validators';\nimport { hasSlotContent } from '@/common/utils';\nimport {\n POPOVER_APPEND_TO_VALUES,\n} from '@/components/popover/popover_constants';\nimport {\n MULTI_SELECT_SIZES,\n CHIP_SIZES,\n CHIP_TOP_POSITION,\n} from './combobox_multi_select_constants';\nimport SrOnlyCloseButtonMixin from '@/common/mixins/sr_only_close_button';\n\nexport default {\n name: 'DtRecipeComboboxMultiSelect',\n\n components: {\n DtRecipeComboboxWithPopover,\n DtInput,\n DtChip,\n DtValidationMessages,\n },\n\n mixins: [SrOnlyCloseButtonMixin],\n\n props: {\n /**\n * String to use for the input label.\n */\n label: {\n type: String,\n required: true,\n },\n\n /**\n * Determines visibility of input label.\n * @values true, false\n */\n labelVisible: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Description for the input\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Input placeholder\n */\n placeholder: {\n type: String,\n default: 'Select one or start typing',\n },\n\n /**\n * Input validation messages\n */\n inputMessages: {\n type: Array,\n default: () => [],\n validator: inputMessages => {\n return validationMessageValidator(inputMessages);\n },\n },\n\n /**\n * Show input validation message\n */\n showInputMessages: {\n type: Boolean,\n default: true,\n },\n\n // @TODO: https://dialpad.atlassian.net/browse/DP-52324\n // type: {\n // type: String,\n // values: ['input', 'select'],\n // default: 'select',\n // },\n\n /**\n * Determines if the list is loading\n */\n loading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The message when the list is loading\n */\n loadingMessage: {\n type: String,\n default: 'loading...',\n },\n\n /**\n * Determines when to show the list element and also controls the aria-expanded attribute.\n * Leaving this null will have the combobox trigger on input focus by default.\n * If you set this value, the default trigger behavior will be disabled and you can\n * control it as you need.\n */\n showList: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Determines maximum height for the popover before overflow.\n * Possible units rem|px|em\n */\n listMaxHeight: {\n type: String,\n default: '300px',\n },\n\n /**\n * The selected items\n */\n selectedItems: {\n type: Array,\n default: function () { return []; },\n },\n\n /**\n * Would be the maximum number of selections you can make. 0 is unlimited\n */\n maxSelected: {\n type: Number,\n default: 0,\n },\n\n /**\n * Max select message when the max selections is exceeded with the structure:\n * `[{\"message\": string, \"type\": VALIDATION_MESSAGE_TYPES }]`\n */\n maxSelectedMessage: {\n type: Array,\n default: function () { return []; },\n },\n\n /**\n * Displays the list when the combobox is focused, before the user has typed anything.\n * When this is enabled the list will not close after selection.\n */\n hasSuggestionList: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Size of the chip, one of `xs`, `sm`, `md`\n */\n size: {\n type: String,\n default: 'md',\n validator: (t) => Object.values(MULTI_SELECT_SIZES).includes(t),\n },\n\n /**\n * Sets the element to which the popover is going to append to.\n * 'body' will append to the nearest body (supports shadow DOM).\n * @values 'body', 'parent', HTMLElement,\n */\n appendTo: {\n type: [HTMLElement, String],\n default: 'body',\n validator: appendTo => {\n return POPOVER_APPEND_TO_VALUES.includes(appendTo) ||\n (appendTo instanceof HTMLElement);\n },\n },\n\n /**\n * Named transition when the content display is toggled.\n * @see DtLazyShow\n */\n transition: {\n type: String,\n default: 'fade',\n },\n\n /**\n * Determines whether the combobox should collapse to a single when losing focus.\n * @type {boolean}\n */\n collapseOnFocusOut: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines maximum width for the popover before overflow.\n * Possible units rem|px|em\n */\n listMaxWidth: {\n type: String,\n default: '',\n },\n },\n\n emits: [\n /**\n * Native input event\n *\n * @event input\n * @type {String }\n */\n 'input',\n\n /**\n * Event fired when item selected\n *\n * @event select\n * @type {Number}\n */\n 'select',\n\n /**\n * Event fired when item removed\n *\n * @event remove\n * @type {String}\n */\n 'remove',\n\n /**\n * Event fired when max selected items limit is reached\n *\n * @event max-selected\n * @type {Object}\n */\n 'max-selected',\n\n /**\n * Native keyup event\n *\n * @event keyup\n * @type {KeyboardEvent}\n */\n 'keyup',\n\n /**\n * Event fired when combobox item is highlighted\n *\n * @event combobox-highlight\n * @type {Object}\n */\n 'combobox-highlight',\n ],\n\n data () {\n return {\n value: '',\n popoverOffset: [0, 4],\n showValidationMessages: false,\n resizeWindowObserver: null,\n initialInputHeight: null,\n CHIP_SIZES,\n hasSlotContent,\n inputFocused: false,\n };\n },\n\n computed: {\n inputPlaceHolder () {\n return this.selectedItems?.length > 0 ? '' : this.placeholder;\n },\n\n chipListeners () {\n return {\n keyup: event => {\n this.onChipKeyup(event);\n this.$emit('keyup', event);\n },\n };\n },\n\n inputListeners () {\n return {\n input: event => {\n this.$emit('input', event);\n if (this.hasSuggestionList) {\n this.showComboboxList();\n }\n },\n\n keyup: event => {\n this.onInputKeyup(event);\n this.$emit('keyup', event);\n },\n\n click: event => {\n if (this.hasSuggestionList) {\n this.showComboboxList();\n }\n },\n };\n },\n\n chipWrapperClass () {\n return {\n [`combobox__chip-wrapper-${this.size}--collapsed`]: !this.inputFocused && this.collapseOnFocusOut,\n };\n },\n },\n\n watch: {\n selectedItems: {\n deep: true,\n handler: async function () {\n this.initSelectedItems();\n },\n },\n\n async label () {\n await this.$nextTick();\n // Adjust the chips position if label changed\n this.setChipsTopPosition();\n },\n\n async description () {\n await this.$nextTick();\n // Adjust the chips position if description changed\n this.setChipsTopPosition();\n },\n\n size: {\n async handler () {\n await this.$nextTick();\n const input = this.getInput();\n this.revertInputPadding(input);\n this.initialInputHeight = input.getBoundingClientRect().height;\n this.setInputPadding();\n this.setChipsTopPosition();\n },\n },\n },\n\n mounted () {\n this.setInitialInputHeight();\n // Recalculate chip position and input padding when resizing window\n this.resizeWindowObserver = new ResizeObserver(async () => {\n this.setChipsTopPosition();\n this.setInputPadding();\n });\n this.resizeWindowObserver.observe(document.body);\n\n this.initSelectedItems();\n },\n\n beforeUnmount () {\n this.resizeWindowObserver?.unobserve(document.body);\n },\n\n methods: {\n comboboxHighlight (highlightIndex) {\n this.$emit('combobox-highlight', highlightIndex);\n },\n\n async initSelectedItems () {\n await this.$nextTick();\n this.setInputPadding();\n this.setChipsTopPosition();\n this.setInputMinWidth();\n this.checkMaxSelected();\n },\n\n onChipRemove (item) {\n this.$emit('remove', item);\n this.$refs.input?.focus();\n },\n\n onComboboxSelect (i) {\n this.value = '';\n this.$emit('select', i);\n },\n\n showComboboxList () {\n if (this.showList != null) { return; }\n this.$refs.comboboxWithPopover?.showComboboxList();\n },\n\n closeComboboxList () {\n if (this.showList != null) { return; }\n this.$refs.comboboxWithPopover?.closeComboboxList();\n },\n\n getChipButtons () {\n return this.$refs.chips && this.$refs.chips.map(chip => chip.$el.querySelector('button'));\n },\n\n getChips () {\n return this.$refs.chips && this.$refs.chips.map(chip => chip.$el);\n },\n\n getLastChipButton () {\n return this.$refs.chips && this.getChipButtons()[this.getChipButtons().length - 1];\n },\n\n getLastChip () {\n return this.$refs.chips && this.getChips()[this.getChips().length - 1];\n },\n\n getFirstChip () {\n return this.$refs.chips && this.getChips()[0];\n },\n\n getInput () {\n return this.$refs.input?.$refs.input;\n },\n\n onChipKeyup (event) {\n const key = event.code?.toLowerCase();\n if (key === 'arrowleft') {\n // Move to the previous chip\n this.navigateBetweenChips(event.target, true);\n } else if (key === 'arrowright') {\n if (event.target.id === this.getLastChipButton().id) {\n // Move to the input if it's the last chip\n this.moveFromChipToInput();\n } else {\n // Move to the next chip\n this.navigateBetweenChips(event.target, false);\n }\n }\n },\n\n onInputKeyup (event) {\n const key = event.code?.toLowerCase();\n // If the cursor is at the start of the text,\n // press 'backspace' or 'left' focuses the last chip\n if (this.selectedItems.length > 0 && event.target.selectionStart === 0) {\n if (key === 'backspace' || key === 'arrowleft') {\n this.moveFromInputToChip();\n }\n }\n },\n\n moveFromInputToChip () {\n this.getLastChipButton().focus();\n this.$refs.input?.blur();\n this.closeComboboxList();\n },\n\n moveFromChipToInput () {\n this.getLastChipButton().blur();\n this.$refs.input?.focus();\n this.showComboboxList();\n },\n\n navigateBetweenChips (target, toLeft) {\n const from = this.getChipButtons().indexOf(target);\n const to = toLeft ? from - 1 : from + 1;\n if (to < 0 || to >= this.$refs.chips?.length) {\n return;\n }\n this.getChipButtons()[from].blur();\n this.getChipButtons()[to].focus();\n this.closeComboboxList();\n },\n\n setChipsTopPosition () {\n // To place the chips in the input box\n // The chip \"top\" position should be the same line as the input box\n const input = this.getInput();\n if (!input) return;\n const inputSlotWrapper = this.$refs.inputSlotWrapper;\n const top = input.getBoundingClientRect().top -\n inputSlotWrapper.getBoundingClientRect().top;\n const chipsWrapper = this.$refs.chipsWrapper;\n chipsWrapper.style.top = (top - CHIP_TOP_POSITION[this.size]) + 'px';\n },\n\n setInputPadding () {\n const lastChip = this.getLastChip();\n const input = this.getInput();\n const chipsWrapper = this.$refs.chipsWrapper;\n if (!input) return;\n this.revertInputPadding(input);\n this.popoverOffset = [0, 4];\n if (!lastChip) return;\n // Avoid adding extra padding when the input is not focused if collapseOnFocusOut is true\n // This ensures the input returns to its original state when resizing\n if (this.collapseOnFocusOut && !this.inputFocused) return;\n\n // Get the position of the last chip\n // The input cursor should be the same \"top\" as that chip and next besides it\n const left = lastChip.offsetLeft + this.getFullWidth(lastChip);\n input.style.paddingLeft = left + 'px';\n\n // Get the chip size minus the 4px padding\n const chipsSize = chipsWrapper.getBoundingClientRect().height - 4;\n\n // Get lastChip offsetTop plus 2px of the input padding.\n const top = lastChip.offsetTop + 2;\n\n // Add padding to Top only if the chips need more space\n if (chipsSize > this.initialInputHeight) {\n input.style.paddingTop = `${top}px`;\n }\n },\n\n revertInputPadding (input) {\n input.style.paddingLeft = '';\n input.style.paddingTop = '';\n input.style.paddingBottom = '';\n },\n\n getFullWidth (el) {\n const styles = window.getComputedStyle(el);\n return el.offsetWidth + parseInt(styles.marginLeft) + parseInt(styles.marginRight);\n },\n\n setInputMinWidth () {\n // Ensure the width of the input is \"slightly bigger\" than the width of a single chip\n const firstChip = this.getFirstChip();\n const input = this.getInput();\n if (!input) return;\n if (firstChip) {\n // Add 4px buffer for typing room\n input.style.minWidth = (this.getFullWidth(firstChip) + 4) + 'px';\n } else {\n input.style.minWidth = '';\n }\n },\n\n checkMaxSelected () {\n if (this.maxSelected === 0) return;\n if (this.selectedItems.length > this.maxSelected) {\n this.showValidationMessages = true;\n this.$emit('max-selected');\n } else {\n this.showValidationMessages = false;\n }\n },\n\n setInitialInputHeight () {\n const input = this.getInput();\n if (!input) return;\n this.initialInputHeight = input.getBoundingClientRect().height;\n },\n\n async handleInputFocusIn () {\n this.inputFocused = true;\n if (this.collapseOnFocusOut) {\n await this.$nextTick();\n this.setInputPadding();\n }\n },\n\n async handleInputFocusOut () {\n this.inputFocused = false;\n if (this.collapseOnFocusOut) {\n const input = this.getInput();\n if (!input) return;\n this.revertInputPadding(input);\n }\n },\n },\n};\n</script>\n\n<style scoped lang=\"less\">\n.combobox__input-wrapper {\n position: relative;\n display: block;\n}\n\n.combobox__chip-wrapper {\n position: absolute;\n margin-left: var(--dt-space-200);\n margin-right: var(--dt-space-200);\n padding-left: var(--dt-space-100);\n max-width: calc(var(--dt-size-100-percent) - var(--dt-space-400));\n max-height: initial;\n overflow-y: visible;\n}\n\n.combobox__chip-wrapper-md--collapsed {\n max-height: 2.8rem;\n overflow-y: hidden;\n}\n\n.combobox__chip-wrapper-sm--collapsed,\n.combobox__chip-wrapper-xs--collapsed {\n max-height: 2.5rem;\n overflow-y: hidden;\n}\n\n.combobox__chip {\n margin-top: var(--dt-space-300);\n margin-left: var(--dt-space-200);\n margin-right: var(--dt-space-200);\n z-index: var(--zi-base1);\n max-width: var(--dt-size-100-percent);\n}\n\n.combobox__input {\n flex-grow: 1;\n}\n\n.combobox__list--loading {\n text-align: center;\n padding-top: var(--dt-space-500);\n padding-bottom: var(--dt-space-500);\n}\n</style>\n"],"names":["_createBlock","_withCtx","_createElementVNode","_createElementBlock","_Fragment","_renderList","_openBlock","_mergeProps","_toHandlers","_withKeys","_createVNode","_renderSlot","_toDisplayString"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"combobox-multi-select.js","sources":["../../recipes/comboboxes/combobox_multi_select/combobox_multi_select_constants.js","../../recipes/comboboxes/combobox_multi_select/combobox_multi_select.vue"],"sourcesContent":["export const MULTI_SELECT_SIZES = {\n // Chip has no 'lg' and 'xl' size. So we don't support that in multi-select.\n EXTRA_SMALL: 'xs',\n SMALL: 'sm',\n DEFAULT: 'md',\n};\n\nexport const CHIP_SIZES = {\n xs: 'xs',\n sm: 'xs',\n md: 'sm',\n};\n\nexport const CHIP_TOP_POSITION = {\n xs: 1.4,\n sm: 0.4,\n md: 0.2,\n};\n\nexport default {\n MULTI_SELECT_SIZES,\n CHIP_SIZES,\n CHIP_TOP_POSITION,\n};\n","<template>\n <dt-recipe-combobox-with-popover\n ref=\"comboboxWithPopover\"\n :label=\"label\"\n :show-list=\"showList\"\n :max-height=\"listMaxHeight\"\n :max-width=\"listMaxWidth\"\n :popover-offset=\"popoverOffset\"\n :has-suggestion-list=\"hasSuggestionList\"\n :visually-hidden-close-label=\"visuallyHiddenCloseLabel\"\n :visually-hidden-close=\"visuallyHiddenClose\"\n content-width=\"anchor\"\n :append-to=\"appendTo\"\n :transition=\"transition\"\n @select=\"onComboboxSelect\"\n @highlight=\"comboboxHighlight\"\n >\n <template #input=\"{ onInput }\">\n <span\n ref=\"inputSlotWrapper\"\n class=\"combobox__input-wrapper\"\n @focusin=\"handleInputFocusIn\"\n @focusout=\"handleInputFocusOut\"\n >\n <span\n ref=\"chipsWrapper\"\n :class=\"['combobox__chip-wrapper', chipWrapperClass]\"\n >\n <dt-chip\n v-for=\"item in selectedItems\"\n ref=\"chips\"\n :key=\"item\"\n :label-class=\"['d-chip__label']\"\n class=\"combobox__chip\"\n :close-button-props=\"{ ariaLabel: 'close' }\"\n :size=\"CHIP_SIZES[size]\"\n v-on=\"chipListeners\"\n @keyup.backspace=\"onChipRemove(item)\"\n @close=\"onChipRemove(item)\"\n >\n {{ item }}\n </dt-chip>\n </span>\n\n <dt-input\n ref=\"input\"\n v-model=\"value\"\n class=\"combobox__input\"\n :aria-label=\"label\"\n :label=\"labelVisible ? label : ''\"\n :description=\"description\"\n :placeholder=\"inputPlaceHolder\"\n :show-messages=\"showInputMessages\"\n :messages=\"inputMessages\"\n :size=\"size\"\n v-on=\"inputListeners\"\n @input=\"onInput\"\n />\n\n <dt-validation-messages\n :validation-messages=\"maxSelectedMessage\"\n :show-messages=\"showValidationMessages\"\n />\n </span>\n </template>\n\n <!-- @slot slot for popover header -->\n <template\n v-if=\"hasSlotContent($slots.header)\"\n #header\n >\n <div ref=\"header\">\n <slot name=\"header\" />\n </div>\n </template>\n\n <!-- @slot slot for popover list -->\n <template #list>\n <div\n ref=\"list\"\n @mousedown.prevent\n >\n <slot\n v-if=\"!loading\"\n name=\"list\"\n />\n <div\n v-else\n class=\"combobox__list--loading\"\n >\n {{ loadingMessage }}\n </div>\n </div>\n </template>\n\n <!-- @slot slot for popover footer -->\n <template\n v-if=\"hasSlotContent($slots.footer)\"\n #footer\n >\n <div ref=\"footer\">\n <slot name=\"footer\" />\n </div>\n </template>\n </dt-recipe-combobox-with-popover>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport DtRecipeComboboxWithPopover from '@/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue';\nimport DtInput from '@/components/input/input.vue';\nimport DtChip from '@/components/chip/chip.vue';\nimport DtValidationMessages from '@/components/validation_messages/validation_messages.vue';\nimport { validationMessageValidator } from '@/common/validators';\nimport { hasSlotContent } from '@/common/utils';\nimport {\n POPOVER_APPEND_TO_VALUES,\n} from '@/components/popover/popover_constants';\nimport {\n MULTI_SELECT_SIZES,\n CHIP_SIZES,\n CHIP_TOP_POSITION,\n} from './combobox_multi_select_constants';\nimport SrOnlyCloseButtonMixin from '@/common/mixins/sr_only_close_button';\n\nexport default {\n name: 'DtRecipeComboboxMultiSelect',\n\n components: {\n DtRecipeComboboxWithPopover,\n DtInput,\n DtChip,\n DtValidationMessages,\n },\n\n mixins: [SrOnlyCloseButtonMixin],\n\n props: {\n /**\n * String to use for the input label.\n */\n label: {\n type: String,\n required: true,\n },\n\n /**\n * Determines visibility of input label.\n * @values true, false\n */\n labelVisible: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Description for the input\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Input placeholder\n */\n placeholder: {\n type: String,\n default: 'Select one or start typing',\n },\n\n /**\n * Input validation messages\n */\n inputMessages: {\n type: Array,\n default: () => [],\n validator: inputMessages => {\n return validationMessageValidator(inputMessages);\n },\n },\n\n /**\n * Show input validation message\n */\n showInputMessages: {\n type: Boolean,\n default: true,\n },\n\n // @TODO: https://dialpad.atlassian.net/browse/DP-52324\n // type: {\n // type: String,\n // values: ['input', 'select'],\n // default: 'select',\n // },\n\n /**\n * Determines if the list is loading\n */\n loading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * The message when the list is loading\n */\n loadingMessage: {\n type: String,\n default: 'loading...',\n },\n\n /**\n * Determines when to show the list element and also controls the aria-expanded attribute.\n * Leaving this null will have the combobox trigger on input focus by default.\n * If you set this value, the default trigger behavior will be disabled and you can\n * control it as you need.\n */\n showList: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Determines maximum height for the popover before overflow.\n * Possible units rem|px|em\n */\n listMaxHeight: {\n type: String,\n default: '300px',\n },\n\n /**\n * The selected items\n */\n selectedItems: {\n type: Array,\n default: function () { return []; },\n },\n\n /**\n * Would be the maximum number of selections you can make. 0 is unlimited\n */\n maxSelected: {\n type: Number,\n default: 0,\n },\n\n /**\n * Max select message when the max selections is exceeded with the structure:\n * `[{\"message\": string, \"type\": VALIDATION_MESSAGE_TYPES }]`\n */\n maxSelectedMessage: {\n type: Array,\n default: function () { return []; },\n },\n\n /**\n * Displays the list when the combobox is focused, before the user has typed anything.\n * When this is enabled the list will not close after selection.\n */\n hasSuggestionList: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Size of the chip, one of `xs`, `sm`, `md`\n */\n size: {\n type: String,\n default: 'md',\n validator: (t) => Object.values(MULTI_SELECT_SIZES).includes(t),\n },\n\n /**\n * Sets the element to which the popover is going to append to.\n * 'body' will append to the nearest body (supports shadow DOM).\n * @values 'body', 'parent', HTMLElement,\n */\n appendTo: {\n type: [HTMLElement, String],\n default: 'body',\n validator: appendTo => {\n return POPOVER_APPEND_TO_VALUES.includes(appendTo) ||\n (appendTo instanceof HTMLElement);\n },\n },\n\n /**\n * Named transition when the content display is toggled.\n * @see DtLazyShow\n */\n transition: {\n type: String,\n default: 'fade',\n },\n\n /**\n * Determines whether the combobox should collapse to a single when losing focus.\n * @type {boolean}\n */\n collapseOnFocusOut: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Determines maximum width for the popover before overflow.\n * Possible units rem|px|em\n */\n listMaxWidth: {\n type: String,\n default: '',\n },\n },\n\n emits: [\n /**\n * Native input event\n *\n * @event input\n * @type {String }\n */\n 'input',\n\n /**\n * Event fired when item selected\n *\n * @event select\n * @type {Number}\n */\n 'select',\n\n /**\n * Event fired when item removed\n *\n * @event remove\n * @type {String}\n */\n 'remove',\n\n /**\n * Event fired when max selected items limit is reached\n *\n * @event max-selected\n * @type {Object}\n */\n 'max-selected',\n\n /**\n * Native keyup event\n *\n * @event keyup\n * @type {KeyboardEvent}\n */\n 'keyup',\n\n /**\n * Event fired when combobox item is highlighted\n *\n * @event combobox-highlight\n * @type {Object}\n */\n 'combobox-highlight',\n ],\n\n data () {\n return {\n value: '',\n popoverOffset: [0, 4],\n showValidationMessages: false,\n resizeWindowObserver: null,\n initialInputHeight: null,\n CHIP_SIZES,\n hasSlotContent,\n inputFocused: false,\n };\n },\n\n computed: {\n inputPlaceHolder () {\n return this.selectedItems?.length > 0 ? '' : this.placeholder;\n },\n\n chipListeners () {\n return {\n keyup: event => {\n this.onChipKeyup(event);\n this.$emit('keyup', event);\n },\n };\n },\n\n inputListeners () {\n return {\n input: event => {\n this.$emit('input', event);\n if (this.hasSuggestionList) {\n this.showComboboxList();\n }\n },\n\n keyup: event => {\n this.onInputKeyup(event);\n this.$emit('keyup', event);\n },\n\n click: event => {\n if (this.hasSuggestionList) {\n this.showComboboxList();\n }\n },\n };\n },\n\n chipWrapperClass () {\n return {\n [`combobox__chip-wrapper-${this.size}--collapsed`]: !this.inputFocused && this.collapseOnFocusOut,\n };\n },\n },\n\n watch: {\n selectedItems: {\n deep: true,\n handler: async function () {\n this.initSelectedItems();\n },\n },\n\n async label () {\n await this.$nextTick();\n // Adjust the chips position if label changed\n this.setChipsTopPosition();\n },\n\n async description () {\n await this.$nextTick();\n // Adjust the chips position if description changed\n this.setChipsTopPosition();\n },\n\n size: {\n async handler () {\n await this.$nextTick();\n const input = this.getInput();\n this.revertInputPadding(input);\n this.initialInputHeight = input.getBoundingClientRect().height;\n this.setInputPadding();\n this.setChipsTopPosition();\n },\n },\n },\n\n mounted () {\n this.setInitialInputHeight();\n // Recalculate chip position and input padding when resizing window\n this.resizeWindowObserver = new ResizeObserver(async () => {\n this.setChipsTopPosition();\n this.setInputPadding();\n });\n this.resizeWindowObserver.observe(document.body);\n\n this.initSelectedItems();\n },\n\n beforeUnmount () {\n this.resizeWindowObserver?.unobserve(document.body);\n },\n\n methods: {\n comboboxHighlight (highlightIndex) {\n this.$emit('combobox-highlight', highlightIndex);\n },\n\n async initSelectedItems () {\n await this.$nextTick();\n this.setInputPadding();\n this.setChipsTopPosition();\n this.setInputMinWidth();\n this.checkMaxSelected();\n },\n\n onChipRemove (item) {\n this.$emit('remove', item);\n this.$refs.input?.focus();\n },\n\n onComboboxSelect (i) {\n this.value = '';\n this.$emit('select', i);\n },\n\n showComboboxList () {\n if (this.showList != null) { return; }\n this.$refs.comboboxWithPopover?.showComboboxList();\n },\n\n closeComboboxList () {\n if (this.showList != null) { return; }\n this.$refs.comboboxWithPopover?.closeComboboxList();\n },\n\n getChipButtons () {\n return this.$refs.chips && this.$refs.chips.map(chip => chip.$el.querySelector('button'));\n },\n\n getChips () {\n return this.$refs.chips && this.$refs.chips.map(chip => chip.$el);\n },\n\n getLastChipButton () {\n return this.$refs.chips && this.getChipButtons()[this.getChipButtons().length - 1];\n },\n\n getLastChip () {\n return this.$refs.chips && this.getChips()[this.getChips().length - 1];\n },\n\n getFirstChip () {\n return this.$refs.chips && this.getChips()[0];\n },\n\n getInput () {\n return this.$refs.input?.$refs.input;\n },\n\n onChipKeyup (event) {\n const key = event.code?.toLowerCase();\n if (key === 'arrowleft') {\n // Move to the previous chip\n this.navigateBetweenChips(event.target, true);\n } else if (key === 'arrowright') {\n if (event.target.id === this.getLastChipButton().id) {\n // Move to the input if it's the last chip\n this.moveFromChipToInput();\n } else {\n // Move to the next chip\n this.navigateBetweenChips(event.target, false);\n }\n }\n },\n\n onInputKeyup (event) {\n const key = event.code?.toLowerCase();\n // If the cursor is at the start of the text,\n // press 'backspace' or 'left' focuses the last chip\n if (this.selectedItems.length > 0 && event.target.selectionStart === 0) {\n if (key === 'backspace' || key === 'arrowleft') {\n this.moveFromInputToChip();\n }\n }\n },\n\n moveFromInputToChip () {\n this.getLastChipButton().focus();\n this.$refs.input?.blur();\n this.closeComboboxList();\n },\n\n moveFromChipToInput () {\n this.getLastChipButton().blur();\n this.$refs.input?.focus();\n this.showComboboxList();\n },\n\n navigateBetweenChips (target, toLeft) {\n const from = this.getChipButtons().indexOf(target);\n const to = toLeft ? from - 1 : from + 1;\n if (to < 0 || to >= this.$refs.chips?.length) {\n return;\n }\n this.getChipButtons()[from].blur();\n this.getChipButtons()[to].focus();\n this.closeComboboxList();\n },\n\n setChipsTopPosition () {\n // To place the chips in the input box\n // The chip \"top\" position should be the same line as the input box\n const input = this.getInput();\n if (!input) return;\n const inputSlotWrapper = this.$refs.inputSlotWrapper;\n const top = input.getBoundingClientRect().top -\n inputSlotWrapper.getBoundingClientRect().top;\n const chipsWrapper = this.$refs.chipsWrapper;\n chipsWrapper.style.top = (top - CHIP_TOP_POSITION[this.size]) + 'px';\n },\n\n setInputPadding () {\n const lastChip = this.getLastChip();\n const input = this.getInput();\n const chipsWrapper = this.$refs.chipsWrapper;\n if (!input) return;\n this.revertInputPadding(input);\n this.popoverOffset = [0, 4];\n if (!lastChip) return;\n // Avoid adding extra padding when the input is not focused if collapseOnFocusOut is true\n // This ensures the input returns to its original state when resizing\n if (this.collapseOnFocusOut && !this.inputFocused) return;\n\n // Get the position of the last chip\n // The input cursor should be the same \"top\" as that chip and next besides it\n const left = lastChip.offsetLeft + this.getFullWidth(lastChip);\n input.style.paddingLeft = left + 'px';\n\n // Get the chip size minus the 4px padding\n const chipsSize = chipsWrapper.getBoundingClientRect().height - 4;\n\n // Get lastChip offsetTop plus 2px of the input padding.\n const top = lastChip.offsetTop + 2;\n\n // Add padding to Top only if the chips need more space\n if (chipsSize > this.initialInputHeight) {\n input.style.paddingTop = `${top}px`;\n }\n },\n\n revertInputPadding (input) {\n input.style.paddingLeft = '';\n input.style.paddingTop = '';\n input.style.paddingBottom = '';\n },\n\n getFullWidth (el) {\n const styles = window.getComputedStyle(el);\n return el.offsetWidth + parseInt(styles.marginLeft) + parseInt(styles.marginRight);\n },\n\n setInputMinWidth () {\n // Ensure the width of the input is \"slightly bigger\" than the width of a single chip\n const firstChip = this.getFirstChip();\n const input = this.getInput();\n if (!input) return;\n if (firstChip) {\n // Add 4px buffer for typing room\n input.style.minWidth = (this.getFullWidth(firstChip) + 4) + 'px';\n } else {\n input.style.minWidth = '';\n }\n },\n\n checkMaxSelected () {\n if (this.maxSelected === 0) return;\n if (this.selectedItems.length > this.maxSelected) {\n this.showValidationMessages = true;\n this.$emit('max-selected');\n } else {\n this.showValidationMessages = false;\n }\n },\n\n setInitialInputHeight () {\n const input = this.getInput();\n if (!input) return;\n this.initialInputHeight = input.getBoundingClientRect().height;\n },\n\n async handleInputFocusIn () {\n this.inputFocused = true;\n if (this.collapseOnFocusOut) {\n await this.$nextTick();\n this.setInputPadding();\n }\n },\n\n async handleInputFocusOut () {\n this.inputFocused = false;\n if (this.collapseOnFocusOut) {\n const input = this.getInput();\n if (!input) return;\n this.revertInputPadding(input);\n }\n },\n },\n};\n</script>\n\n<style scoped lang=\"less\">\n.combobox__input-wrapper {\n position: relative;\n display: block;\n}\n\n.combobox__chip-wrapper {\n position: absolute;\n margin-left: var(--dt-space-200);\n margin-right: var(--dt-space-200);\n padding-left: var(--dt-space-100);\n max-width: calc(var(--dt-size-100-percent) - var(--dt-space-400));\n max-height: initial;\n overflow-y: visible;\n}\n\n.combobox__chip-wrapper-md--collapsed {\n max-height: 2.8rem;\n overflow-y: hidden;\n}\n\n.combobox__chip-wrapper-sm--collapsed,\n.combobox__chip-wrapper-xs--collapsed {\n max-height: 2.5rem;\n overflow-y: hidden;\n}\n\n.combobox__chip {\n margin-top: var(--dt-space-300);\n margin-left: var(--dt-space-200);\n margin-right: var(--dt-space-200);\n z-index: var(--zi-base1);\n max-width: var(--dt-size-100-percent);\n}\n\n.combobox__input {\n flex-grow: 1;\n}\n\n.combobox__list--loading {\n text-align: center;\n padding-top: var(--dt-space-500);\n padding-bottom: var(--dt-space-500);\n}\n</style>\n"],"names":["MULTI_SELECT_SIZES","EXTRA_SMALL","SMALL","DEFAULT","CHIP_SIZES","xs","sm","md","CHIP_TOP_POSITION","_sfc_main","name","components","DtRecipeComboboxWithPopover","DtInput","DtChip","DtValidationMessages","mixins","SrOnlyCloseButtonMixin","props","label","type","String","required","labelVisible","Boolean","default","description","placeholder","inputMessages","Array","validator","validationMessageValidator","showInputMessages","loading","loadingMessage","showList","listMaxHeight","selectedItems","maxSelected","Number","maxSelectedMessage","hasSuggestionList","size","t","Object","values","includes","appendTo","HTMLElement","POPOVER_APPEND_TO_VALUES","transition","collapseOnFocusOut","listMaxWidth","emits","data","value","popoverOffset","showValidationMessages","resizeWindowObserver","initialInputHeight","hasSlotContent","inputFocused","computed","inputPlaceHolder","length","chipListeners","keyup","event","onChipKeyup","$emit","inputListeners","input","showComboboxList","onInputKeyup","click","chipWrapperClass","watch","deep","handler","initSelectedItems","$nextTick","setChipsTopPosition","getInput","revertInputPadding","getBoundingClientRect","height","setInputPadding","mounted","setInitialInputHeight","ResizeObserver","observe","document","body","beforeUnmount","unobserve","methods","comboboxHighlight","highlightIndex","setInputMinWidth","checkMaxSelected","onChipRemove","item","$refs","focus","onComboboxSelect","i","comboboxWithPopover","closeComboboxList","getChipButtons","chips","map","chip","$el","querySelector","getChips","getLastChipButton","getLastChip","getFirstChip","key","code","toLowerCase","navigateBetweenChips","target","id","moveFromChipToInput","selectionStart","moveFromInputToChip","blur","toLeft","from","indexOf","to","inputSlotWrapper","top","chipsWrapper","style","lastChip","left","offsetLeft","getFullWidth","paddingLeft","chipsSize","offsetTop","paddingTop","paddingBottom","el","styles","window","getComputedStyle","offsetWidth","parseInt","marginLeft","marginRight","firstChip","minWidth","handleInputFocusIn","handleInputFocusOut","_hoisted_1","ref","class","_hoisted_3","_createBlock","_component_dt_recipe_combobox_with_popover","$props","$data","_ctx","visuallyHiddenCloseLabel","visuallyHiddenClose","onSelect","$options","onHighlight","_withCtx","onInput","_createElementVNode","onFocusin","args","onFocusout","_createElementBlock","_Fragment","_renderList","_openBlock","_component_dt_chip","_mergeProps","ariaLabel","_toHandlers","onKeyup","_withKeys","$event","onClose","_createVNode","_component_dt_input","messages","_component_dt_validation_messages","list","onMousedown","_renderSlot","$slots","undefined","_hoisted_2","_toDisplayString","header","footer"],"mappings":"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"}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
-
const lib_combobox = require("../chunks/index-
|
|
3
|
+
const lib_combobox = require("../chunks/index-ouh7Bvm-.js");
|
|
4
4
|
const common_utils = require("../common/utils.cjs");
|
|
5
|
-
const sr_only_close_button = require("../chunks/sr_only_close_button-
|
|
5
|
+
const sr_only_close_button = require("../chunks/sr_only_close_button-gKr0Vlbz.js");
|
|
6
6
|
const vue = require("vue");
|
|
7
7
|
const _pluginVue_exportHelper = require("../chunks/_plugin-vue_export-helper-fhnQq0tA.js");
|
|
8
8
|
const lib_popover = require("./popover.cjs");
|
|
9
9
|
const dropdown_constants = require("../chunks/dropdown_constants-2pGCXy7m.js");
|
|
10
|
-
const popover_constants = require("../chunks/popover_constants-
|
|
11
|
-
require("../chunks/keyboard_list_navigation-
|
|
10
|
+
const popover_constants = require("../chunks/popover_constants-h9MD6WUt.js");
|
|
11
|
+
require("../chunks/keyboard_list_navigation-x3D6RcC7.js");
|
|
12
12
|
require("./list-item.cjs");
|
|
13
13
|
require("../chunks/list_item_constants-EiqkqZvP.js");
|
|
14
14
|
require("./item-layout.cjs");
|
|
15
15
|
require("../common/constants.cjs");
|
|
16
16
|
require("./icon.cjs");
|
|
17
17
|
require("@dialpad/dialtone-icons/vue3");
|
|
18
|
-
require("../chunks/icon_constants-
|
|
18
|
+
require("../chunks/icon_constants-bvhFNOPu.js");
|
|
19
19
|
require("@dialpad/dialtone-icons/icons.json");
|
|
20
20
|
require("./skeleton.cjs");
|
|
21
21
|
require("./button.cjs");
|
|
22
22
|
require("../chunks/link_constants-x8NwdqmA.js");
|
|
23
|
-
require("../chunks/modal-
|
|
23
|
+
require("../chunks/modal-OaWxzqNt.js");
|
|
24
24
|
require("./lazy-show.cjs");
|
|
25
25
|
require("tippy.js");
|
|
26
26
|
const _sfc_main = {
|
|
@@ -344,9 +344,13 @@ const _sfc_main = {
|
|
|
344
344
|
}
|
|
345
345
|
};
|
|
346
346
|
const _hoisted_1 = ["id"];
|
|
347
|
-
const _hoisted_2 = {
|
|
347
|
+
const _hoisted_2 = {
|
|
348
|
+
ref: "header"
|
|
349
|
+
};
|
|
348
350
|
const _hoisted_3 = ["onMouseleave", "onFocusout"];
|
|
349
|
-
const _hoisted_4 = {
|
|
351
|
+
const _hoisted_4 = {
|
|
352
|
+
ref: "footer"
|
|
353
|
+
};
|
|
350
354
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
351
355
|
const _component_combobox_loading_list = vue.resolveComponent("combobox-loading-list");
|
|
352
356
|
const _component_combobox_empty_list = vue.resolveComponent("combobox-empty-list");
|
|
@@ -368,83 +372,71 @@ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
368
372
|
"list-id": $props.listId,
|
|
369
373
|
"data-qa": "dt-combobox"
|
|
370
374
|
}, $options.comboboxListeners), {
|
|
371
|
-
input: vue.withCtx(({
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
} : void 0,
|
|
437
|
-
$data.hasSlotContent(_ctx.$slots.footer) ? {
|
|
438
|
-
name: "footerContent",
|
|
439
|
-
fn: vue.withCtx(() => [
|
|
440
|
-
vue.createElementVNode("div", _hoisted_4, [
|
|
441
|
-
vue.renderSlot(_ctx.$slots, "footer")
|
|
442
|
-
], 512)
|
|
443
|
-
]),
|
|
444
|
-
key: "1"
|
|
445
|
-
} : void 0
|
|
446
|
-
]), 1032, ["open", "max-height", "max-width", "offset", "sticky", "external-anchor", "content-width", "append-to", "transition", "visually-hidden-close-label", "visually-hidden-close", "onOpened"])
|
|
447
|
-
]),
|
|
375
|
+
input: vue.withCtx(({
|
|
376
|
+
inputProps
|
|
377
|
+
}) => [vue.createElementVNode("div", {
|
|
378
|
+
id: $data.externalAnchor,
|
|
379
|
+
ref: "input",
|
|
380
|
+
onFocusin: _cache[0] || (_cache[0] = (...args) => $options.onFocusIn && $options.onFocusIn(...args)),
|
|
381
|
+
onKeydown: [_cache[1] || (_cache[1] = vue.withKeys(($event) => $options.openOnArrowKeyPress($event), ["up"])), _cache[2] || (_cache[2] = vue.withKeys(($event) => $options.openOnArrowKeyPress($event), ["down"]))]
|
|
382
|
+
}, [vue.renderSlot(_ctx.$slots, "input", {
|
|
383
|
+
inputProps,
|
|
384
|
+
onInput: $options.handleDisplayList
|
|
385
|
+
})], 40, _hoisted_1)]),
|
|
386
|
+
list: vue.withCtx(({
|
|
387
|
+
opened,
|
|
388
|
+
listProps,
|
|
389
|
+
clearHighlightIndex
|
|
390
|
+
}) => [vue.createVNode(_component_dt_popover, {
|
|
391
|
+
ref: "popover",
|
|
392
|
+
open: $data.isListShown,
|
|
393
|
+
"onUpdate:open": _cache[3] || (_cache[3] = ($event) => $data.isListShown = $event),
|
|
394
|
+
"hide-on-click": false,
|
|
395
|
+
"max-height": $props.maxHeight,
|
|
396
|
+
"max-width": $props.maxWidth,
|
|
397
|
+
offset: $props.popoverOffset,
|
|
398
|
+
sticky: $props.popoverSticky,
|
|
399
|
+
placement: "bottom-start",
|
|
400
|
+
"initial-focus-element": "none",
|
|
401
|
+
padding: "none",
|
|
402
|
+
role: "listbox",
|
|
403
|
+
"external-anchor": $data.externalAnchor,
|
|
404
|
+
"content-width": $props.contentWidth,
|
|
405
|
+
"content-appear": true,
|
|
406
|
+
"content-tabindex": null,
|
|
407
|
+
modal: false,
|
|
408
|
+
"auto-focus": false,
|
|
409
|
+
"append-to": $props.appendTo,
|
|
410
|
+
transition: $props.transition,
|
|
411
|
+
"visually-hidden-close-label": _ctx.visuallyHiddenCloseLabel,
|
|
412
|
+
"visually-hidden-close": _ctx.visuallyHiddenClose,
|
|
413
|
+
onOpened: opened
|
|
414
|
+
}, vue.createSlots({
|
|
415
|
+
content: vue.withCtx(() => [vue.createElementVNode("div", {
|
|
416
|
+
ref: "listWrapper",
|
|
417
|
+
class: vue.normalizeClass([$data.DROPDOWN_PADDING_CLASSES[$props.padding], $props.listClass]),
|
|
418
|
+
onMouseleave: clearHighlightIndex,
|
|
419
|
+
onFocusout: clearHighlightIndex
|
|
420
|
+
}, [$props.loading ? (vue.openBlock(), vue.createBlock(_component_combobox_loading_list, vue.normalizeProps(vue.mergeProps({
|
|
421
|
+
key: 0
|
|
422
|
+
}, listProps)), null, 16)) : $props.emptyList && $props.emptyStateMessage ? (vue.openBlock(), vue.createBlock(_component_combobox_empty_list, vue.mergeProps({
|
|
423
|
+
key: 1
|
|
424
|
+
}, listProps, {
|
|
425
|
+
message: $props.emptyStateMessage
|
|
426
|
+
}), null, 16, ["message"])) : vue.renderSlot(_ctx.$slots, "list", {
|
|
427
|
+
key: 2,
|
|
428
|
+
listProps
|
|
429
|
+
})], 42, _hoisted_3)]),
|
|
430
|
+
_: 2
|
|
431
|
+
}, [$data.hasSlotContent(_ctx.$slots.header) ? {
|
|
432
|
+
name: "headerContent",
|
|
433
|
+
fn: vue.withCtx(() => [vue.createElementVNode("div", _hoisted_2, [vue.renderSlot(_ctx.$slots, "header")], 512)]),
|
|
434
|
+
key: "0"
|
|
435
|
+
} : void 0, $data.hasSlotContent(_ctx.$slots.footer) ? {
|
|
436
|
+
name: "footerContent",
|
|
437
|
+
fn: vue.withCtx(() => [vue.createElementVNode("div", _hoisted_4, [vue.renderSlot(_ctx.$slots, "footer")], 512)]),
|
|
438
|
+
key: "1"
|
|
439
|
+
} : void 0]), 1032, ["open", "max-height", "max-width", "offset", "sticky", "external-anchor", "content-width", "append-to", "transition", "visually-hidden-close-label", "visually-hidden-close", "onOpened"])]),
|
|
448
440
|
_: 3
|
|
449
441
|
}, 16, ["loading", "label", "label-visible", "size", "description", "empty-list", "empty-state-message", "show-list", "on-beginning-of-list", "on-end-of-list", "list-id"]);
|
|
450
442
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combobox-with-popover.cjs","sources":["../../recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue"],"sourcesContent":["<template>\n <dt-combobox\n ref=\"combobox\"\n :loading=\"loading\"\n :label=\"label\"\n :label-visible=\"labelVisible\"\n :size=\"size\"\n :description=\"description\"\n :empty-list=\"emptyList\"\n :empty-state-message=\"emptyStateMessage\"\n :show-list=\"isListShown\"\n :on-beginning-of-list=\"onBeginningOfList\"\n :on-end-of-list=\"onEndOfList\"\n :list-rendered-outside=\"true\"\n :list-id=\"listId\"\n data-qa=\"dt-combobox\"\n v-bind=\"comboboxListeners\"\n >\n <template\n #input=\"{ inputProps }\"\n >\n <!-- eslint-disable-next-line vuejs-accessibility/no-static-element-interactions -->\n <div\n :id=\"externalAnchor\"\n ref=\"input\"\n @focusin=\"onFocusIn\"\n @keydown.up=\"openOnArrowKeyPress($event)\"\n @keydown.down=\"openOnArrowKeyPress($event)\"\n >\n <slot\n name=\"input\"\n :input-props=\"inputProps\"\n :on-input=\"handleDisplayList\"\n />\n </div>\n </template>\n <template #list=\"{ opened, listProps, clearHighlightIndex }\">\n <dt-popover\n ref=\"popover\"\n v-model:open=\"isListShown\"\n :hide-on-click=\"false\"\n :max-height=\"maxHeight\"\n :max-width=\"maxWidth\"\n :offset=\"popoverOffset\"\n :sticky=\"popoverSticky\"\n placement=\"bottom-start\"\n initial-focus-element=\"none\"\n padding=\"none\"\n role=\"listbox\"\n :external-anchor=\"externalAnchor\"\n :content-width=\"contentWidth\"\n :content-appear=\"true\"\n :content-tabindex=\"null\"\n :modal=\"false\"\n :auto-focus=\"false\"\n :append-to=\"appendTo\"\n :transition=\"transition\"\n :visually-hidden-close-label=\"visuallyHiddenCloseLabel\"\n :visually-hidden-close=\"visuallyHiddenClose\"\n @opened=\"opened\"\n >\n <template\n v-if=\"hasSlotContent($slots.header)\"\n #headerContent\n >\n <div\n ref=\"header\"\n >\n <slot name=\"header\" />\n </div>\n </template>\n\n <template #content>\n <!-- eslint-disable-next-line vuejs-accessibility/no-static-element-interactions -->\n <div\n ref=\"listWrapper\"\n :class=\"[DROPDOWN_PADDING_CLASSES[padding], listClass]\"\n @mouseleave=\"clearHighlightIndex\"\n @focusout=\"clearHighlightIndex\"\n >\n <combobox-loading-list\n v-if=\"loading\"\n v-bind=\"listProps\"\n />\n <combobox-empty-list\n v-else-if=\"emptyList && emptyStateMessage\"\n v-bind=\"listProps\"\n :message=\"emptyStateMessage\"\n />\n <slot\n v-else\n name=\"list\"\n :list-props=\"listProps\"\n />\n </div>\n </template>\n\n <template\n v-if=\"hasSlotContent($slots.footer)\"\n #footerContent\n >\n <div\n ref=\"footer\"\n >\n <slot name=\"footer\" />\n </div>\n </template>\n </dt-popover>\n </template>\n </dt-combobox>\n</template>\n\n<script>\nimport ComboboxLoadingList from '@/components/combobox/combobox_loading-list.vue';\nimport ComboboxEmptyList from '@/components/combobox/combobox_empty-list.vue';\nimport { DtCombobox, LABEL_SIZES } from '@/components/combobox';\nimport { DtPopover, POPOVER_APPEND_TO_VALUES, POPOVER_CONTENT_WIDTHS } from '@/components/popover';\nimport { getUniqueString, hasSlotContent } from '@/common/utils';\nimport { DROPDOWN_PADDING_CLASSES } from '@/components/dropdown';\nimport SrOnlyCloseButtonMixin from '@/common/mixins/sr_only_close_button';\n\nexport default {\n name: 'DtRecipeComboboxWithPopover',\n\n components: {\n DtCombobox,\n DtPopover,\n ComboboxLoadingList,\n ComboboxEmptyList,\n },\n\n mixins: [SrOnlyCloseButtonMixin],\n\n props: {\n /**\n * String to use for the input label.\n */\n label: {\n type: String,\n required: true,\n },\n\n /**\n * Determines visibility of input label.\n * @values true, false\n */\n labelVisible: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Size of the input, one of `xs`, `sm`, `md`, `lg`, `xl`\n * @values null, xs, sm, md, lg, xl\n */\n size: {\n type: String,\n default: null,\n validator: (t) => Object.values(LABEL_SIZES).includes(t),\n },\n\n /**\n * Description for the input\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Determines when to show the list element and also controls the aria-expanded attribute.\n * Leaving this null will have the combobox trigger on input focus by default.\n * If you set this value, the default trigger behavior will be disabled and you can\n * control it as you need.\n */\n showList: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Sets an ID on the list element of the component. Used by several aria attributes\n * as well as when deriving the IDs for each item.\n */\n listId: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * Additional class for the wrapper list element.\n */\n listClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * A method that will be called when the selection goes past the beginning of the list.\n */\n onBeginningOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * A method that will be called when the selection goes past the end of the list.\n */\n onEndOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * Determines maximum height for the popover before overflow.\n * Possible units rem|px|em\n */\n maxHeight: {\n type: String,\n default: '',\n },\n\n /**\n * Determines maximum width for the popover before overflow.\n * Possible units rem|px|%|em\n */\n maxWidth: {\n type: String,\n default: '',\n },\n\n /**\n * Vertical padding size around the list element.\n */\n padding: {\n type: String,\n default: 'small',\n validator: (padding) => {\n return Object.keys(DROPDOWN_PADDING_CLASSES).some((item) => item === padding);\n },\n },\n\n /**\n * Width configuration for the popover content. When its value is 'anchor',\n * the popover content will have the same width as the anchor.\n */\n contentWidth: {\n type: String,\n default: null,\n validator: contentWidth => POPOVER_CONTENT_WIDTHS.includes(contentWidth),\n },\n\n /**\n * If the list should be shown by pressing up or down arrow key on the input element.\n * This can be set when not passing showList prop.\n */\n openWithArrowKeys: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Displaces the popover content box from its anchor element\n * by the specified number of pixels.\n */\n popoverOffset: {\n type: Array,\n default: () => [0, 4],\n },\n\n /**\n * If the popover sticks to the input.\n */\n popoverSticky: {\n type: [Boolean, String],\n default: false,\n },\n\n /**\n * Displays the list when the combobox is focused, before the user has typed anything.\n * When this is enabled the list will not close after selection.\n */\n hasSuggestionList: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Determines when to show the skeletons and also controls aria-busy attribute.\n */\n loading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Sets the list to an empty state, and displays the message from prop `emptyStateMessage`.\n */\n emptyList: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Message to show when the list is empty\n */\n emptyStateMessage: {\n type: String,\n default: '',\n },\n\n /**\n * Sets the element to which the popover is going to append to.\n * 'body' will append to the nearest body (supports shadow DOM).\n * @values 'body', 'parent', HTMLElement,\n */\n appendTo: {\n type: [HTMLElement, String],\n default: 'body',\n validator: appendTo => {\n return POPOVER_APPEND_TO_VALUES.includes(appendTo) ||\n (appendTo instanceof HTMLElement);\n },\n },\n\n /**\n * Named transition when the content display is toggled.\n * @see DtLazyShow\n */\n transition: {\n type: String,\n default: 'fade',\n },\n },\n\n emits: [\n /**\n * Event fired when item selected\n *\n * @event select\n * @type {Number}\n */\n 'select',\n\n /**\n * Event fired when 'escape' key is pressed\n *\n * @event escape\n */\n 'escape',\n\n /**\n * Event fired when an item is highlighted\n *\n * @event highlight\n * @type {Number}\n */\n 'highlight',\n\n /**\n * Emitted when items are shown or hidden\n *\n * @event opened\n * @type {Boolean | Array}\n */\n 'opened',\n ],\n\n data () {\n return {\n DROPDOWN_PADDING_CLASSES,\n isListShown: false,\n isInputFocused: false,\n isListFocused: false,\n externalAnchor: getUniqueString(),\n hasSlotContent,\n };\n },\n\n computed: {\n comboboxListeners () {\n return {\n ...this.$attrs,\n\n onSelect: this.onSelect,\n\n onEscape: this.onEscape,\n\n onHighlight: this.onHighlight,\n };\n },\n },\n\n watch: {\n showList: {\n handler: function (show) {\n if (show !== null) {\n this.isListShown = show;\n }\n },\n\n immediate: true,\n },\n\n isListShown (val) {\n if (val) {\n window.addEventListener('mousedown', this.onFocusOut);\n } else {\n window.removeEventListener('mousedown', this.onFocusOut);\n }\n this.onOpened(val);\n },\n },\n\n methods: {\n handleDisplayList (value) {\n if (!this.hasSuggestionList && value) { this.showComboboxList(); }\n if (!this.hasSuggestionList && !value) { this.closeComboboxList(); }\n },\n\n showComboboxList () {\n if (this.showList != null) { return; }\n this.isListShown = true;\n },\n\n closeComboboxList () {\n if (this.showList != null) { return; }\n this.isListShown = false;\n },\n\n onSelect (highlightIndex) {\n if (this.loading) return;\n\n this.$emit('select', highlightIndex);\n if (!this.hasSuggestionList) {\n // we don't display the list before the user has typed anything\n this.closeComboboxList();\n }\n },\n\n onEscape () {\n this.$emit('escape');\n this.closeComboboxList();\n },\n\n onHighlight (highlightIndex) {\n if (this.loading) return;\n\n this.$emit('highlight', highlightIndex);\n },\n\n onOpened (opened) {\n this.$emit('opened', opened);\n },\n\n onFocusIn (e) {\n if (this.hasSuggestionList && e && this.$refs.input?.querySelector('input') === e.target) {\n // only trigger if we show suggestion list when focused, and\n // it's the input specifically that was focused\n this.showComboboxList();\n }\n },\n\n onFocusOut (e) {\n // Check if the focus change was to another target within the combobox component\n const popoverEl = this.$refs.popover?.tip?.popper;\n const comboboxEl = this.$refs.input;\n\n if (e.composedPath()?.some(el => [popoverEl, comboboxEl].includes(el))) return;\n\n // If outside the combobox then close\n this.closeComboboxList();\n },\n\n openOnArrowKeyPress () {\n if (this.showList !== null || this.isListShown || !this.openWithArrowKeys) { return; }\n\n this.showComboboxList();\n },\n },\n};\n</script>\n"],"names":["DtCombobox","DtPopover","ComboboxLoadingList","ComboboxEmptyList","SrOnlyCloseButtonMixin","LABEL_SIZES","getUniqueString","DROPDOWN_PADDING_CLASSES","POPOVER_CONTENT_WIDTHS","POPOVER_APPEND_TO_VALUES","hasSlotContent","_openBlock","_createBlock","_mergeProps","_withCtx","_createElementVNode","_withKeys","_renderSlot","_createVNode","_normalizeClass"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"combobox-with-popover.cjs","sources":["../../recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue"],"sourcesContent":["<template>\n <dt-combobox\n ref=\"combobox\"\n :loading=\"loading\"\n :label=\"label\"\n :label-visible=\"labelVisible\"\n :size=\"size\"\n :description=\"description\"\n :empty-list=\"emptyList\"\n :empty-state-message=\"emptyStateMessage\"\n :show-list=\"isListShown\"\n :on-beginning-of-list=\"onBeginningOfList\"\n :on-end-of-list=\"onEndOfList\"\n :list-rendered-outside=\"true\"\n :list-id=\"listId\"\n data-qa=\"dt-combobox\"\n v-bind=\"comboboxListeners\"\n >\n <template\n #input=\"{ inputProps }\"\n >\n <!-- eslint-disable-next-line vuejs-accessibility/no-static-element-interactions -->\n <div\n :id=\"externalAnchor\"\n ref=\"input\"\n @focusin=\"onFocusIn\"\n @keydown.up=\"openOnArrowKeyPress($event)\"\n @keydown.down=\"openOnArrowKeyPress($event)\"\n >\n <slot\n name=\"input\"\n :input-props=\"inputProps\"\n :on-input=\"handleDisplayList\"\n />\n </div>\n </template>\n <template #list=\"{ opened, listProps, clearHighlightIndex }\">\n <dt-popover\n ref=\"popover\"\n v-model:open=\"isListShown\"\n :hide-on-click=\"false\"\n :max-height=\"maxHeight\"\n :max-width=\"maxWidth\"\n :offset=\"popoverOffset\"\n :sticky=\"popoverSticky\"\n placement=\"bottom-start\"\n initial-focus-element=\"none\"\n padding=\"none\"\n role=\"listbox\"\n :external-anchor=\"externalAnchor\"\n :content-width=\"contentWidth\"\n :content-appear=\"true\"\n :content-tabindex=\"null\"\n :modal=\"false\"\n :auto-focus=\"false\"\n :append-to=\"appendTo\"\n :transition=\"transition\"\n :visually-hidden-close-label=\"visuallyHiddenCloseLabel\"\n :visually-hidden-close=\"visuallyHiddenClose\"\n @opened=\"opened\"\n >\n <template\n v-if=\"hasSlotContent($slots.header)\"\n #headerContent\n >\n <div\n ref=\"header\"\n >\n <slot name=\"header\" />\n </div>\n </template>\n\n <template #content>\n <!-- eslint-disable-next-line vuejs-accessibility/no-static-element-interactions -->\n <div\n ref=\"listWrapper\"\n :class=\"[DROPDOWN_PADDING_CLASSES[padding], listClass]\"\n @mouseleave=\"clearHighlightIndex\"\n @focusout=\"clearHighlightIndex\"\n >\n <combobox-loading-list\n v-if=\"loading\"\n v-bind=\"listProps\"\n />\n <combobox-empty-list\n v-else-if=\"emptyList && emptyStateMessage\"\n v-bind=\"listProps\"\n :message=\"emptyStateMessage\"\n />\n <slot\n v-else\n name=\"list\"\n :list-props=\"listProps\"\n />\n </div>\n </template>\n\n <template\n v-if=\"hasSlotContent($slots.footer)\"\n #footerContent\n >\n <div\n ref=\"footer\"\n >\n <slot name=\"footer\" />\n </div>\n </template>\n </dt-popover>\n </template>\n </dt-combobox>\n</template>\n\n<script>\nimport ComboboxLoadingList from '@/components/combobox/combobox_loading-list.vue';\nimport ComboboxEmptyList from '@/components/combobox/combobox_empty-list.vue';\nimport { DtCombobox, LABEL_SIZES } from '@/components/combobox';\nimport { DtPopover, POPOVER_APPEND_TO_VALUES, POPOVER_CONTENT_WIDTHS } from '@/components/popover';\nimport { getUniqueString, hasSlotContent } from '@/common/utils';\nimport { DROPDOWN_PADDING_CLASSES } from '@/components/dropdown';\nimport SrOnlyCloseButtonMixin from '@/common/mixins/sr_only_close_button';\n\nexport default {\n name: 'DtRecipeComboboxWithPopover',\n\n components: {\n DtCombobox,\n DtPopover,\n ComboboxLoadingList,\n ComboboxEmptyList,\n },\n\n mixins: [SrOnlyCloseButtonMixin],\n\n props: {\n /**\n * String to use for the input label.\n */\n label: {\n type: String,\n required: true,\n },\n\n /**\n * Determines visibility of input label.\n * @values true, false\n */\n labelVisible: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Size of the input, one of `xs`, `sm`, `md`, `lg`, `xl`\n * @values null, xs, sm, md, lg, xl\n */\n size: {\n type: String,\n default: null,\n validator: (t) => Object.values(LABEL_SIZES).includes(t),\n },\n\n /**\n * Description for the input\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Determines when to show the list element and also controls the aria-expanded attribute.\n * Leaving this null will have the combobox trigger on input focus by default.\n * If you set this value, the default trigger behavior will be disabled and you can\n * control it as you need.\n */\n showList: {\n type: Boolean,\n default: null,\n },\n\n /**\n * Sets an ID on the list element of the component. Used by several aria attributes\n * as well as when deriving the IDs for each item.\n */\n listId: {\n type: String,\n default () { return getUniqueString(); },\n },\n\n /**\n * Additional class for the wrapper list element.\n */\n listClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * A method that will be called when the selection goes past the beginning of the list.\n */\n onBeginningOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * A method that will be called when the selection goes past the end of the list.\n */\n onEndOfList: {\n type: Function,\n default: null,\n },\n\n /**\n * Determines maximum height for the popover before overflow.\n * Possible units rem|px|em\n */\n maxHeight: {\n type: String,\n default: '',\n },\n\n /**\n * Determines maximum width for the popover before overflow.\n * Possible units rem|px|%|em\n */\n maxWidth: {\n type: String,\n default: '',\n },\n\n /**\n * Vertical padding size around the list element.\n */\n padding: {\n type: String,\n default: 'small',\n validator: (padding) => {\n return Object.keys(DROPDOWN_PADDING_CLASSES).some((item) => item === padding);\n },\n },\n\n /**\n * Width configuration for the popover content. When its value is 'anchor',\n * the popover content will have the same width as the anchor.\n */\n contentWidth: {\n type: String,\n default: null,\n validator: contentWidth => POPOVER_CONTENT_WIDTHS.includes(contentWidth),\n },\n\n /**\n * If the list should be shown by pressing up or down arrow key on the input element.\n * This can be set when not passing showList prop.\n */\n openWithArrowKeys: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Displaces the popover content box from its anchor element\n * by the specified number of pixels.\n */\n popoverOffset: {\n type: Array,\n default: () => [0, 4],\n },\n\n /**\n * If the popover sticks to the input.\n */\n popoverSticky: {\n type: [Boolean, String],\n default: false,\n },\n\n /**\n * Displays the list when the combobox is focused, before the user has typed anything.\n * When this is enabled the list will not close after selection.\n */\n hasSuggestionList: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Determines when to show the skeletons and also controls aria-busy attribute.\n */\n loading: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Sets the list to an empty state, and displays the message from prop `emptyStateMessage`.\n */\n emptyList: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Message to show when the list is empty\n */\n emptyStateMessage: {\n type: String,\n default: '',\n },\n\n /**\n * Sets the element to which the popover is going to append to.\n * 'body' will append to the nearest body (supports shadow DOM).\n * @values 'body', 'parent', HTMLElement,\n */\n appendTo: {\n type: [HTMLElement, String],\n default: 'body',\n validator: appendTo => {\n return POPOVER_APPEND_TO_VALUES.includes(appendTo) ||\n (appendTo instanceof HTMLElement);\n },\n },\n\n /**\n * Named transition when the content display is toggled.\n * @see DtLazyShow\n */\n transition: {\n type: String,\n default: 'fade',\n },\n },\n\n emits: [\n /**\n * Event fired when item selected\n *\n * @event select\n * @type {Number}\n */\n 'select',\n\n /**\n * Event fired when 'escape' key is pressed\n *\n * @event escape\n */\n 'escape',\n\n /**\n * Event fired when an item is highlighted\n *\n * @event highlight\n * @type {Number}\n */\n 'highlight',\n\n /**\n * Emitted when items are shown or hidden\n *\n * @event opened\n * @type {Boolean | Array}\n */\n 'opened',\n ],\n\n data () {\n return {\n DROPDOWN_PADDING_CLASSES,\n isListShown: false,\n isInputFocused: false,\n isListFocused: false,\n externalAnchor: getUniqueString(),\n hasSlotContent,\n };\n },\n\n computed: {\n comboboxListeners () {\n return {\n ...this.$attrs,\n\n onSelect: this.onSelect,\n\n onEscape: this.onEscape,\n\n onHighlight: this.onHighlight,\n };\n },\n },\n\n watch: {\n showList: {\n handler: function (show) {\n if (show !== null) {\n this.isListShown = show;\n }\n },\n\n immediate: true,\n },\n\n isListShown (val) {\n if (val) {\n window.addEventListener('mousedown', this.onFocusOut);\n } else {\n window.removeEventListener('mousedown', this.onFocusOut);\n }\n this.onOpened(val);\n },\n },\n\n methods: {\n handleDisplayList (value) {\n if (!this.hasSuggestionList && value) { this.showComboboxList(); }\n if (!this.hasSuggestionList && !value) { this.closeComboboxList(); }\n },\n\n showComboboxList () {\n if (this.showList != null) { return; }\n this.isListShown = true;\n },\n\n closeComboboxList () {\n if (this.showList != null) { return; }\n this.isListShown = false;\n },\n\n onSelect (highlightIndex) {\n if (this.loading) return;\n\n this.$emit('select', highlightIndex);\n if (!this.hasSuggestionList) {\n // we don't display the list before the user has typed anything\n this.closeComboboxList();\n }\n },\n\n onEscape () {\n this.$emit('escape');\n this.closeComboboxList();\n },\n\n onHighlight (highlightIndex) {\n if (this.loading) return;\n\n this.$emit('highlight', highlightIndex);\n },\n\n onOpened (opened) {\n this.$emit('opened', opened);\n },\n\n onFocusIn (e) {\n if (this.hasSuggestionList && e && this.$refs.input?.querySelector('input') === e.target) {\n // only trigger if we show suggestion list when focused, and\n // it's the input specifically that was focused\n this.showComboboxList();\n }\n },\n\n onFocusOut (e) {\n // Check if the focus change was to another target within the combobox component\n const popoverEl = this.$refs.popover?.tip?.popper;\n const comboboxEl = this.$refs.input;\n\n if (e.composedPath()?.some(el => [popoverEl, comboboxEl].includes(el))) return;\n\n // If outside the combobox then close\n this.closeComboboxList();\n },\n\n openOnArrowKeyPress () {\n if (this.showList !== null || this.isListShown || !this.openWithArrowKeys) { return; }\n\n this.showComboboxList();\n },\n },\n};\n</script>\n"],"names":["_sfc_main","name","components","DtCombobox","DtPopover","ComboboxLoadingList","ComboboxEmptyList","mixins","SrOnlyCloseButtonMixin","props","label","type","String","required","labelVisible","Boolean","default","size","validator","t","Object","values","LABEL_SIZES","includes","description","showList","listId","getUniqueString","listClass","Array","onBeginningOfList","Function","onEndOfList","maxHeight","maxWidth","padding","keys","DROPDOWN_PADDING_CLASSES","some","item","contentWidth","POPOVER_CONTENT_WIDTHS","openWithArrowKeys","popoverOffset","popoverSticky","hasSuggestionList","loading","emptyList","emptyStateMessage","appendTo","HTMLElement","POPOVER_APPEND_TO_VALUES","transition","emits","data","isListShown","isInputFocused","isListFocused","externalAnchor","hasSlotContent","computed","comboboxListeners","$attrs","onSelect","onEscape","onHighlight","watch","handler","show","immediate","val","window","addEventListener","onFocusOut","removeEventListener","onOpened","methods","handleDisplayList","value","showComboboxList","closeComboboxList","highlightIndex","$emit","opened","onFocusIn","e","$refs","input","querySelector","target","popoverEl","popover","tip","popper","comboboxEl","composedPath","el","openOnArrowKeyPress","_hoisted_2","ref","_hoisted_4","_openBlock","_createBlock","_component_dt_combobox","_mergeProps","$props","$data","$options","_withCtx","inputProps","_createElementVNode","id","onFocusin","args","onKeydown","_cache","_withKeys","$event","_renderSlot","_ctx","$slots","onInput","list","listProps","clearHighlightIndex","_createVNode","_component_dt_popover","open","offset","sticky","placement","role","modal","visuallyHiddenCloseLabel","visuallyHiddenClose","content","class","_normalizeClass","onMouseleave","onFocusout","_component_combobox_loading_list","_component_combobox_empty_list","key","message","header","footer"],"mappings":"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"}
|