@dialpad/dialtone-vue 3.120.0 → 3.120.2
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/_plugin-vue_export-helper-caHeSgYY.js +11 -0
- package/dist/chunks/_plugin-vue_export-helper-caHeSgYY.js.map +1 -0
- package/dist/chunks/_plugin-vue_export-helper-fhnQq0tA.js +10 -0
- package/dist/chunks/_plugin-vue_export-helper-fhnQq0tA.js.map +1 -0
- package/dist/chunks/{dropdown-eWOvBvwq.js → dropdown-Hn-TeTvZ.js} +151 -104
- package/dist/chunks/{dropdown-UO3UJalk.js.map → dropdown-Hn-TeTvZ.js.map} +1 -1
- package/dist/chunks/dropdown-w8Do29L5.js +442 -0
- package/dist/chunks/{dropdown-eWOvBvwq.js.map → dropdown-w8Do29L5.js.map} +1 -1
- package/dist/chunks/dropdown_constants-2pGCXy7m.js +8 -0
- package/dist/chunks/dropdown_constants-2pGCXy7m.js.map +1 -0
- package/dist/chunks/dropdown_constants-w1MXGC3Z.js +9 -0
- package/dist/chunks/dropdown_constants-w1MXGC3Z.js.map +1 -0
- package/dist/chunks/{icon_constants-OpYAAKwF.js → icon_constants-Dy4MEUJL.js} +7 -6
- package/dist/chunks/{icon_constants-2S_OSQ1t.js.map → icon_constants-Dy4MEUJL.js.map} +1 -1
- package/dist/chunks/icon_constants-QYpmdE0R.js +16 -0
- package/dist/chunks/{icon_constants-OpYAAKwF.js.map → icon_constants-QYpmdE0R.js.map} +1 -1
- package/dist/chunks/index-4qgKeErp.js +446 -0
- package/dist/chunks/{index-b4iXYvId.js.map → index-4qgKeErp.js.map} +1 -1
- package/dist/chunks/index-b_MgDylR.js +447 -0
- package/dist/chunks/{index-6tYeqbgP.js.map → index-b_MgDylR.js.map} +1 -1
- package/dist/chunks/{input-4UQWegUk.js → input-NmYDD5bn.js} +83 -60
- package/dist/chunks/{input-0Uksk4DP.js.map → input-NmYDD5bn.js.map} +1 -1
- package/dist/chunks/input-ttnte8zB.js +295 -0
- package/dist/chunks/{input-4UQWegUk.js.map → input-ttnte8zB.js.map} +1 -1
- package/dist/chunks/input_group-M-D25pOJ.js +152 -0
- package/dist/chunks/{input_group-bBKaq3Wi.js.map → input_group-M-D25pOJ.js.map} +1 -1
- package/dist/chunks/{input_group-bBKaq3Wi.js → input_group-jWnq2DJT.js} +27 -24
- package/dist/chunks/{input_group-AS760Cp7.js.map → input_group-jWnq2DJT.js.map} +1 -1
- package/dist/chunks/keyboard_list_navigation-ScXhrxya.js +284 -0
- package/dist/chunks/{keyboard_list_navigation-N74Bpdq7.js.map → keyboard_list_navigation-ScXhrxya.js.map} +1 -1
- package/dist/chunks/keyboard_list_navigation-fJnl_Iox.js +283 -0
- package/dist/chunks/{keyboard_list_navigation-F0O8nht0.js.map → keyboard_list_navigation-fJnl_Iox.js.map} +1 -1
- package/dist/chunks/link_constants-Huj7D_hm.js +22 -0
- package/dist/chunks/{link_constants-Kn6kP4i1.js.map → link_constants-Huj7D_hm.js.map} +1 -1
- package/dist/chunks/link_constants-nWVlXQBs.js +23 -0
- package/dist/chunks/{link_constants-vIUB92L4.js.map → link_constants-nWVlXQBs.js.map} +1 -1
- package/dist/chunks/list_item_constants-EiqkqZvP.js +13 -0
- package/dist/chunks/{list_item_constants-Tsz5CO1m.js.map → list_item_constants-EiqkqZvP.js.map} +1 -1
- package/dist/chunks/list_item_constants-u1xcN9Dd.js +14 -0
- package/dist/chunks/{list_item_constants-LTUc74pD.js.map → list_item_constants-u1xcN9Dd.js.map} +1 -1
- package/dist/chunks/modal-VgxXAQFP.js +105 -0
- package/dist/chunks/{modal-qEzlo0Sj.js.map → modal-VgxXAQFP.js.map} +1 -1
- package/dist/chunks/modal-XOr4kiNZ.js +106 -0
- package/dist/chunks/{modal-VuMFkZFH.js.map → modal-XOr4kiNZ.js.map} +1 -1
- package/dist/chunks/notice_action-WTucGhvr.js +222 -0
- package/dist/chunks/{notice_action-tJfD5Qw1.js.map → notice_action-WTucGhvr.js.map} +1 -1
- package/dist/chunks/notice_action-p-ePanW_.js +223 -0
- package/dist/chunks/{notice_action-jO199emq.js.map → notice_action-p-ePanW_.js.map} +1 -1
- package/dist/chunks/notice_constants-7Qt2CQEY.js +7 -0
- package/dist/chunks/{notice_constants-mC6al2Dm.js.map → notice_constants-7Qt2CQEY.js.map} +1 -1
- package/dist/chunks/notice_constants-UXo9e3bS.js +6 -0
- package/dist/chunks/{notice_constants-c--hBFQw.js.map → notice_constants-UXo9e3bS.js.map} +1 -1
- package/dist/chunks/popover_constants-JwBF9h1Z.js +143 -0
- package/dist/chunks/{popover_constants-hOEhklvr.js.map → popover_constants-JwBF9h1Z.js.map} +1 -1
- package/dist/chunks/popover_constants-Qkpb0yh2.js +144 -0
- package/dist/chunks/{popover_constants-qjlEkroB.js.map → popover_constants-Qkpb0yh2.js.map} +1 -1
- package/dist/chunks/{sr_only_close_button-7O-Ev8uM.js → sr_only_close_button-3EdsV-dH.js} +28 -24
- package/dist/chunks/{sr_only_close_button-iD7s1Pbj.js.map → sr_only_close_button-3EdsV-dH.js.map} +1 -1
- package/dist/chunks/sr_only_close_button-xGrHFjwA.js +91 -0
- package/dist/chunks/{sr_only_close_button-7O-Ev8uM.js.map → sr_only_close_button-xGrHFjwA.js.map} +1 -1
- package/dist/chunks/stack_constants-HraCekPm.js +15 -0
- package/dist/chunks/{stack_constants-m9Ickqw0.js.map → stack_constants-HraCekPm.js.map} +1 -1
- package/dist/chunks/stack_constants-SMzMWnAQ.js +14 -0
- package/dist/chunks/{stack_constants-u7tNqGtc.js.map → stack_constants-SMzMWnAQ.js.map} +1 -1
- package/dist/chunks/tab-RTDgnD9-.js +391 -0
- package/dist/chunks/{tab-at7WWglk.js.map → tab-RTDgnD9-.js.map} +1 -1
- package/dist/chunks/tab-qc3f42Yp.js +390 -0
- package/dist/chunks/{tab-GQZFMq83.js.map → tab-qc3f42Yp.js.map} +1 -1
- package/dist/common/constants.cjs +60 -0
- package/dist/{lib → common}/constants.cjs.map +1 -1
- package/dist/{lib → common}/constants.js +25 -18
- package/dist/{lib → common}/constants.js.map +1 -1
- package/dist/common/dates.cjs +72 -0
- package/dist/{lib → common}/dates.cjs.map +1 -1
- package/dist/common/dates.js +72 -0
- package/dist/{lib → common}/dates.js.map +1 -1
- package/dist/common/emoji.cjs +163 -0
- package/dist/common/emoji.cjs.map +1 -0
- package/dist/common/emoji.js +168 -0
- package/dist/common/emoji.js.map +1 -0
- package/dist/common/mixins.cjs +17 -0
- package/dist/{lib → common}/mixins.cjs.map +1 -1
- package/dist/common/mixins.js +17 -0
- package/dist/common/utils.cjs +243 -0
- package/dist/{lib → common}/utils.cjs.map +1 -1
- package/dist/common/utils.js +243 -0
- package/dist/{lib → common}/utils.js.map +1 -1
- package/dist/common/validators.cjs +23 -0
- package/dist/{lib → common}/validators.cjs.map +1 -1
- package/dist/common/validators.js +23 -0
- package/dist/{lib → common}/validators.js.map +1 -1
- package/dist/dialtone-vue.cjs +373 -1
- package/dist/dialtone-vue.cjs.map +1 -1
- package/dist/dialtone-vue.js +328 -327
- package/dist/dialtone-vue.js.map +1 -1
- package/dist/lib/attachment-carousel.cjs +345 -1
- package/dist/lib/attachment-carousel.cjs.map +1 -1
- package/dist/lib/attachment-carousel.js +126 -108
- package/dist/lib/attachment-carousel.js.map +1 -1
- package/dist/lib/avatar.cjs +447 -1
- package/dist/lib/avatar.cjs.map +1 -1
- package/dist/lib/avatar.js +135 -101
- package/dist/lib/avatar.js.map +1 -1
- package/dist/lib/badge.cjs +206 -1
- package/dist/lib/badge.cjs.map +1 -1
- package/dist/lib/badge.js +64 -48
- package/dist/lib/badge.js.map +1 -1
- package/dist/lib/banner.cjs +242 -2
- package/dist/lib/banner.cjs.map +1 -1
- package/dist/lib/banner.js +81 -71
- package/dist/lib/banner.js.map +1 -1
- package/dist/lib/breadcrumbs.cjs +150 -1
- package/dist/lib/breadcrumbs.cjs.map +1 -1
- package/dist/lib/breadcrumbs.js +60 -52
- package/dist/lib/breadcrumbs.js.map +1 -1
- package/dist/lib/button-group.cjs +41 -1
- package/dist/lib/button-group.cjs.map +1 -1
- package/dist/lib/button-group.js +15 -14
- package/dist/lib/button-group.js.map +1 -1
- package/dist/lib/button.cjs +356 -1
- package/dist/lib/button.cjs.map +1 -1
- package/dist/lib/button.js +108 -88
- package/dist/lib/button.js.map +1 -1
- package/dist/lib/callbar-button-with-popover.cjs +322 -1
- package/dist/lib/callbar-button-with-popover.cjs.map +1 -1
- package/dist/lib/callbar-button-with-popover.js +101 -83
- package/dist/lib/callbar-button-with-popover.js.map +1 -1
- package/dist/lib/callbar-button.cjs +200 -1
- package/dist/lib/callbar-button.cjs.map +1 -1
- package/dist/lib/callbar-button.js +52 -45
- package/dist/lib/callbar-button.js.map +1 -1
- package/dist/lib/callbox.cjs +217 -1
- package/dist/lib/callbox.cjs.map +1 -1
- package/dist/lib/callbox.js +80 -67
- package/dist/lib/callbox.js.map +1 -1
- package/dist/lib/card.cjs +91 -1
- package/dist/lib/card.cjs.map +1 -1
- package/dist/lib/card.js +27 -27
- package/dist/lib/card.js.map +1 -1
- package/dist/lib/checkbox-group.cjs +115 -1
- package/dist/lib/checkbox-group.cjs.map +1 -1
- package/dist/lib/checkbox-group.js +34 -23
- package/dist/lib/checkbox-group.js.map +1 -1
- package/dist/lib/checkbox.cjs +156 -1
- package/dist/lib/checkbox.cjs.map +1 -1
- package/dist/lib/checkbox.js +72 -60
- package/dist/lib/checkbox.js.map +1 -1
- package/dist/lib/chip.cjs +235 -1
- package/dist/lib/chip.cjs.map +1 -1
- package/dist/lib/chip.js +84 -67
- package/dist/lib/chip.js.map +1 -1
- package/dist/lib/codeblock.cjs +23 -2
- package/dist/lib/codeblock.cjs.map +1 -1
- package/dist/lib/codeblock.js +13 -13
- package/dist/lib/codeblock.js.map +1 -1
- package/dist/lib/collapsible.cjs +398 -1
- package/dist/lib/collapsible.cjs.map +1 -1
- package/dist/lib/collapsible.js +123 -100
- package/dist/lib/collapsible.js.map +1 -1
- package/dist/lib/combobox-multi-select.cjs +589 -1
- package/dist/lib/combobox-multi-select.cjs.map +1 -1
- package/dist/lib/combobox-multi-select.js +270 -177
- package/dist/lib/combobox-multi-select.js.map +1 -1
- package/dist/lib/combobox-with-popover.cjs +452 -1
- package/dist/lib/combobox-with-popover.cjs.map +1 -1
- package/dist/lib/combobox-with-popover.js +172 -127
- package/dist/lib/combobox-with-popover.js.map +1 -1
- package/dist/lib/combobox.cjs +18 -1
- package/dist/lib/combobox.cjs.map +1 -1
- package/dist/lib/combobox.js +9 -9
- package/dist/lib/contact-info.cjs +205 -1
- package/dist/lib/contact-info.cjs.map +1 -1
- package/dist/lib/contact-info.js +69 -60
- package/dist/lib/contact-info.js.map +1 -1
- package/dist/lib/contact-row.cjs +246 -1
- package/dist/lib/contact-row.cjs.map +1 -1
- package/dist/lib/contact-row.js +67 -63
- package/dist/lib/contact-row.js.map +1 -1
- package/dist/lib/datepicker.cjs +854 -1
- package/dist/lib/datepicker.cjs.map +1 -1
- package/dist/lib/datepicker.js +585 -441
- package/dist/lib/datepicker.js.map +1 -1
- package/dist/lib/description-list.cjs +116 -1
- package/dist/lib/description-list.cjs.map +1 -1
- package/dist/lib/description-list.js +56 -24
- package/dist/lib/description-list.js.map +1 -1
- package/dist/lib/dropdown.cjs +36 -1
- package/dist/lib/dropdown.cjs.map +1 -1
- package/dist/lib/dropdown.js +22 -21
- package/dist/lib/dropdown.js.map +1 -1
- package/dist/lib/editor.cjs +711 -1
- package/dist/lib/editor.cjs.map +1 -1
- package/dist/lib/editor.js +271 -235
- package/dist/lib/editor.js.map +1 -1
- package/dist/lib/emoji-picker.cjs +1277 -1
- package/dist/lib/emoji-picker.cjs.map +1 -1
- package/dist/lib/emoji-picker.js +859 -569
- package/dist/lib/emoji-picker.js.map +1 -1
- package/dist/lib/emoji-row.cjs +128 -1
- package/dist/lib/emoji-row.cjs.map +1 -1
- package/dist/lib/emoji-row.js +89 -75
- package/dist/lib/emoji-row.js.map +1 -1
- package/dist/lib/emoji-text-wrapper.cjs +102 -1
- package/dist/lib/emoji-text-wrapper.cjs.map +1 -1
- package/dist/lib/emoji-text-wrapper.js +42 -31
- package/dist/lib/emoji-text-wrapper.js.map +1 -1
- package/dist/lib/emoji.cjs +158 -1
- package/dist/lib/emoji.cjs.map +1 -1
- package/dist/lib/emoji.js +153 -6
- package/dist/lib/emoji.js.map +1 -1
- package/dist/lib/feed-item-row.cjs +296 -1
- package/dist/lib/feed-item-row.cjs.map +1 -1
- package/dist/lib/feed-item-row.js +119 -100
- package/dist/lib/feed-item-row.js.map +1 -1
- package/dist/lib/feed-pill.cjs +173 -1
- package/dist/lib/feed-pill.cjs.map +1 -1
- package/dist/lib/feed-pill.js +70 -57
- package/dist/lib/feed-pill.js.map +1 -1
- package/dist/lib/general-row.cjs +518 -1
- package/dist/lib/general-row.cjs.map +1 -1
- package/dist/lib/general-row.js +186 -148
- package/dist/lib/general-row.js.map +1 -1
- package/dist/lib/group-row.cjs +116 -1
- package/dist/lib/group-row.cjs.map +1 -1
- package/dist/lib/group-row.js +37 -35
- package/dist/lib/group-row.js.map +1 -1
- package/dist/lib/grouped-chip.cjs +96 -1
- package/dist/lib/grouped-chip.cjs.map +1 -1
- package/dist/lib/grouped-chip.js +51 -46
- package/dist/lib/grouped-chip.js.map +1 -1
- package/dist/lib/hovercard.cjs +223 -1
- package/dist/lib/hovercard.cjs.map +1 -1
- package/dist/lib/hovercard.js +115 -80
- package/dist/lib/hovercard.js.map +1 -1
- package/dist/lib/icon.cjs +58 -1
- package/dist/lib/icon.cjs.map +1 -1
- package/dist/lib/icon.js +20 -20
- package/dist/lib/icon.js.map +1 -1
- package/dist/lib/image-viewer.cjs +243 -1
- package/dist/lib/image-viewer.cjs.map +1 -1
- package/dist/lib/image-viewer.js +104 -80
- package/dist/lib/image-viewer.js.map +1 -1
- package/dist/lib/input-group.cjs +91 -1
- package/dist/lib/input-group.cjs.map +1 -1
- package/dist/lib/input-group.js +41 -39
- package/dist/lib/input-group.js.map +1 -1
- package/dist/lib/input.cjs +578 -1
- package/dist/lib/input.cjs.map +1 -1
- package/dist/lib/input.js +185 -137
- package/dist/lib/input.js.map +1 -1
- package/dist/lib/item-layout.cjs +91 -1
- package/dist/lib/item-layout.cjs.map +1 -1
- package/dist/lib/item-layout.js +45 -39
- package/dist/lib/item-layout.js.map +1 -1
- package/dist/lib/ivr-node.cjs +263 -1
- package/dist/lib/ivr-node.cjs.map +1 -1
- package/dist/lib/ivr-node.js +130 -112
- package/dist/lib/ivr-node.js.map +1 -1
- package/dist/lib/keyboard-shortcut.cjs +119 -1
- package/dist/lib/keyboard-shortcut.cjs.map +1 -1
- package/dist/lib/keyboard-shortcut.js +58 -48
- package/dist/lib/keyboard-shortcut.js.map +1 -1
- package/dist/lib/lazy-show.cjs +82 -1
- package/dist/lib/lazy-show.cjs.map +1 -1
- package/dist/lib/lazy-show.js +21 -19
- package/dist/lib/lazy-show.js.map +1 -1
- package/dist/lib/link.cjs +43 -1
- package/dist/lib/link.cjs.map +1 -1
- package/dist/lib/link.js +20 -19
- package/dist/lib/link.js.map +1 -1
- package/dist/lib/list-item-group.cjs +67 -1
- package/dist/lib/list-item-group.cjs.map +1 -1
- package/dist/lib/list-item-group.js +24 -22
- package/dist/lib/list-item-group.js.map +1 -1
- package/dist/lib/list-item.cjs +216 -1
- package/dist/lib/list-item.cjs.map +1 -1
- package/dist/lib/list-item.js +71 -60
- package/dist/lib/list-item.js.map +1 -1
- package/dist/lib/message-input.cjs +708 -1
- package/dist/lib/message-input.cjs.map +1 -1
- package/dist/lib/message-input.js +232 -206
- package/dist/lib/message-input.js.map +1 -1
- package/dist/lib/modal.cjs +444 -2
- package/dist/lib/modal.cjs.map +1 -1
- package/dist/lib/modal.js +153 -120
- package/dist/lib/modal.js.map +1 -1
- package/dist/lib/notice.cjs +197 -1
- package/dist/lib/notice.cjs.map +1 -1
- package/dist/lib/notice.js +66 -63
- package/dist/lib/notice.js.map +1 -1
- package/dist/lib/pagination.cjs +205 -1
- package/dist/lib/pagination.cjs.map +1 -1
- package/dist/lib/pagination.js +96 -81
- package/dist/lib/pagination.js.map +1 -1
- package/dist/lib/popover.cjs +1080 -1
- package/dist/lib/popover.cjs.map +1 -1
- package/dist/lib/popover.js +447 -267
- package/dist/lib/popover.js.map +1 -1
- package/dist/lib/presence.cjs +70 -1
- package/dist/lib/presence.cjs.map +1 -1
- package/dist/lib/presence.js +33 -27
- package/dist/lib/presence.js.map +1 -1
- package/dist/lib/radio-group.cjs +88 -1
- package/dist/lib/radio-group.cjs.map +1 -1
- package/dist/lib/radio-group.js +18 -18
- package/dist/lib/radio-group.js.map +1 -1
- package/dist/lib/radio.cjs +162 -1
- package/dist/lib/radio.cjs.map +1 -1
- package/dist/lib/radio.js +66 -57
- package/dist/lib/radio.js.map +1 -1
- package/dist/lib/rich-text-editor.cjs +1137 -1
- package/dist/lib/rich-text-editor.cjs.map +1 -1
- package/dist/lib/rich-text-editor.js +567 -386
- package/dist/lib/rich-text-editor.js.map +1 -1
- package/dist/lib/root-layout.cjs +158 -1
- package/dist/lib/root-layout.cjs.map +1 -1
- package/dist/lib/root-layout.js +33 -31
- package/dist/lib/root-layout.js.map +1 -1
- package/dist/lib/scroller.cjs +1090 -1
- package/dist/lib/scroller.cjs.map +1 -1
- package/dist/lib/scroller.js +668 -345
- package/dist/lib/scroller.js.map +1 -1
- package/dist/lib/select-menu.cjs +312 -1
- package/dist/lib/select-menu.cjs.map +1 -1
- package/dist/lib/select-menu.js +124 -79
- package/dist/lib/select-menu.js.map +1 -1
- package/dist/lib/settings-menu-button.cjs +77 -1
- package/dist/lib/settings-menu-button.cjs.map +1 -1
- package/dist/lib/settings-menu-button.js +31 -30
- package/dist/lib/settings-menu-button.js.map +1 -1
- package/dist/lib/skeleton.cjs +635 -1
- package/dist/lib/skeleton.cjs.map +1 -1
- package/dist/lib/skeleton.js +189 -152
- package/dist/lib/skeleton.js.map +1 -1
- package/dist/lib/stack.cjs +123 -1
- package/dist/lib/stack.cjs.map +1 -1
- package/dist/lib/stack.js +61 -53
- package/dist/lib/stack.js.map +1 -1
- package/dist/lib/tabs.cjs +102 -1
- package/dist/lib/tabs.cjs.map +1 -1
- package/dist/lib/tabs.js +47 -41
- package/dist/lib/tabs.js.map +1 -1
- package/dist/lib/time-pill.cjs +41 -1
- package/dist/lib/time-pill.cjs.map +1 -1
- package/dist/lib/time-pill.js +18 -14
- package/dist/lib/time-pill.js.map +1 -1
- package/dist/lib/toast.cjs +281 -1
- package/dist/lib/toast.cjs.map +1 -1
- package/dist/lib/toast.js +96 -74
- package/dist/lib/toast.js.map +1 -1
- package/dist/lib/toggle.cjs +192 -1
- package/dist/lib/toggle.cjs.map +1 -1
- package/dist/lib/toggle.js +60 -49
- package/dist/lib/toggle.js.map +1 -1
- package/dist/lib/tooltip-directive.cjs +84 -1
- package/dist/lib/tooltip-directive.cjs.map +1 -1
- package/dist/lib/tooltip-directive.js +56 -42
- package/dist/lib/tooltip-directive.js.map +1 -1
- package/dist/lib/tooltip.cjs +460 -1
- package/dist/lib/tooltip.cjs.map +1 -1
- package/dist/lib/tooltip.js +162 -103
- package/dist/lib/tooltip.js.map +1 -1
- package/dist/lib/top-banner-info.cjs +71 -1
- package/dist/lib/top-banner-info.cjs.map +1 -1
- package/dist/lib/top-banner-info.js +27 -22
- package/dist/lib/top-banner-info.js.map +1 -1
- package/dist/lib/unread-pill.cjs +73 -1
- package/dist/lib/unread-pill.cjs.map +1 -1
- package/dist/lib/unread-pill.js +28 -25
- package/dist/lib/unread-pill.js.map +1 -1
- package/dist/lib/validation-messages.cjs +89 -1
- package/dist/lib/validation-messages.cjs.map +1 -1
- package/dist/lib/validation-messages.js +41 -36
- package/dist/lib/validation-messages.js.map +1 -1
- package/dist/style.css +1257 -1
- package/dist/types/components/rich_text_editor/extensions/emoji/EmojiComponent.vue.d.ts +2 -2
- package/dist/types/components/rich_text_editor/extensions/mentions/MentionComponent.vue.d.ts +2 -2
- package/package.json +30 -29
- package/dist/chunks/_plugin-vue_export-helper-6_y-gaV6.js +0 -2
- package/dist/chunks/_plugin-vue_export-helper-6_y-gaV6.js.map +0 -1
- package/dist/chunks/_plugin-vue_export-helper-hUChTQA_.js +0 -10
- package/dist/chunks/_plugin-vue_export-helper-hUChTQA_.js.map +0 -1
- package/dist/chunks/dropdown-UO3UJalk.js +0 -2
- package/dist/chunks/dropdown_constants-EUcDxBrX.js +0 -9
- package/dist/chunks/dropdown_constants-EUcDxBrX.js.map +0 -1
- package/dist/chunks/dropdown_constants-KHFvVI2L.js +0 -2
- package/dist/chunks/dropdown_constants-KHFvVI2L.js.map +0 -1
- package/dist/chunks/icon_constants-2S_OSQ1t.js +0 -2
- package/dist/chunks/index-6tYeqbgP.js +0 -3
- package/dist/chunks/index-IBtQ5jRJ.js +0 -2
- package/dist/chunks/index-IBtQ5jRJ.js.map +0 -1
- package/dist/chunks/index-b4iXYvId.js +0 -399
- package/dist/chunks/index-mRmwpCBG.js +0 -256
- package/dist/chunks/index-mRmwpCBG.js.map +0 -1
- package/dist/chunks/input-0Uksk4DP.js +0 -2
- package/dist/chunks/input_group-AS760Cp7.js +0 -2
- package/dist/chunks/keyboard_list_navigation-F0O8nht0.js +0 -197
- package/dist/chunks/keyboard_list_navigation-N74Bpdq7.js +0 -2
- package/dist/chunks/link_constants-Kn6kP4i1.js +0 -2
- package/dist/chunks/link_constants-vIUB92L4.js +0 -16
- package/dist/chunks/list_item_constants-LTUc74pD.js +0 -13
- package/dist/chunks/list_item_constants-Tsz5CO1m.js +0 -2
- package/dist/chunks/modal-VuMFkZFH.js +0 -82
- package/dist/chunks/modal-qEzlo0Sj.js +0 -2
- package/dist/chunks/notice_action-jO199emq.js +0 -2
- package/dist/chunks/notice_action-tJfD5Qw1.js +0 -209
- package/dist/chunks/notice_constants-c--hBFQw.js +0 -6
- package/dist/chunks/notice_constants-mC6al2Dm.js +0 -2
- package/dist/chunks/popover_constants-hOEhklvr.js +0 -2
- package/dist/chunks/popover_constants-qjlEkroB.js +0 -114
- package/dist/chunks/sr_only_close_button-iD7s1Pbj.js +0 -3
- package/dist/chunks/stack_constants-m9Ickqw0.js +0 -2
- package/dist/chunks/stack_constants-u7tNqGtc.js +0 -13
- package/dist/chunks/tab-GQZFMq83.js +0 -367
- package/dist/chunks/tab-at7WWglk.js +0 -2
- package/dist/lib/constants.cjs +0 -2
- package/dist/lib/dates.cjs +0 -2
- package/dist/lib/dates.js +0 -57
- package/dist/lib/mixins.cjs +0 -2
- package/dist/lib/mixins.js +0 -17
- package/dist/lib/utils.cjs +0 -2
- package/dist/lib/utils.js +0 -171
- package/dist/lib/validators.cjs +0 -2
- package/dist/lib/validators.js +0 -12
- /package/dist/{lib → common}/mixins.js.map +0 -0
package/dist/lib/modal.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.cjs","sources":["../../components/modal/modal_constants.js","../../components/modal/modal.vue"],"sourcesContent":["// Modal style modifiers\nexport const MODAL_KIND_MODIFIERS = {\n default: '',\n danger: 'd-modal--danger',\n};\n\n// Modal size modifiers\nexport const MODAL_SIZE_MODIFIERS = {\n default: '',\n full: 'd-modal--full',\n};\n\nexport const MODAL_BANNER_KINDS = {\n error: 'd-modal__banner--critical',\n info: 'd-modal__banner--info',\n success: 'd-modal__banner--success',\n warning: 'd-modal__banner--warning',\n base: 'd-modal__banner--general',\n};\n","<template>\n <dt-lazy-show\n transition=\"d-zoom\"\n :show=\"show\"\n :class=\"[\n 'd-modal',\n MODAL_KIND_MODIFIERS[kind],\n MODAL_SIZE_MODIFIERS[size],\n modalClass,\n ]\"\n data-qa=\"dt-modal\"\n :aria-hidden=\"open\"\n v-on=\"modalListeners\"\n >\n <div\n v-if=\"show && (hasSlotContent($slots.banner) || bannerTitle)\"\n data-qa=\"dt-modal-banner\"\n :class=\"[\n 'd-modal__banner',\n bannerClass,\n bannerKindClass,\n ]\"\n >\n <!-- @slot Slot for the banner, defaults to bannerTitle prop -->\n <slot name=\"banner\">\n {{ bannerTitle }}\n </slot>\n </div>\n <transition\n appear\n name=\"d-modal__dialog\"\n >\n <div\n v-show=\"show\"\n :class=\"[\n 'd-modal__dialog',\n { 'd-modal__dialog--scrollable': fixedHeaderFooter },\n dialogClass,\n ]\"\n role=\"dialog\"\n aria-modal=\"true\"\n :aria-describedby=\"describedById\"\n :aria-labelledby=\"labelledById\"\n >\n <div\n v-if=\"hasSlotContent($slots.header)\"\n :id=\"labelledById\"\n class=\"d-modal__header\"\n data-qa=\"dt-modal-title\"\n >\n <!-- @slot Slot for dialog header section, taking the place of any \"title\" text prop -->\n <slot name=\"header\" />\n </div>\n <h2\n v-else\n :id=\"labelledById\"\n class=\"d-modal__header\"\n data-qa=\"dt-modal-title\"\n >\n {{ title }}\n </h2>\n <div\n v-if=\"hasSlotContent($slots.default)\"\n :class=\"[\n 'd-modal__content',\n contentClass,\n ]\"\n data-qa=\"dt-modal-copy\"\n >\n <!-- @slot Default slot for dialog body section, taking the place of any \"copy\" text prop -->\n <slot />\n </div>\n <p\n v-else\n :class=\"[\n 'd-modal__content',\n contentClass,\n ]\"\n data-qa=\"dt-modal-copy\"\n >\n {{ copy }}\n </p>\n <footer\n v-if=\"hasFooterSlot\"\n class=\"d-modal__footer\"\n >\n <!-- @slot Slot for dialog footer content, often containing cancel and confirm buttons. -->\n <slot name=\"footer\" />\n </footer>\n <dt-button\n v-if=\"!hideClose\"\n class=\"d-modal__close\"\n circle\n size=\"lg\"\n importance=\"clear\"\n :aria-label=\"closeButtonProps.ariaLabel\"\n v-bind=\"closeButtonProps\"\n @click=\"close\"\n >\n <template #icon>\n <dt-icon\n name=\"close\"\n size=\"400\"\n />\n </template>\n </dt-button>\n <sr-only-close-button\n v-if=\"showVisuallyHiddenClose\"\n :visually-hidden-close-label=\"visuallyHiddenCloseLabel\"\n @close=\"close\"\n />\n </div>\n </transition>\n </dt-lazy-show>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport { DtButton } from '@/components/button';\nimport { DtIcon } from '@/components/icon';\nimport Modal from '@/common/mixins/modal';\nimport {\n MODAL_BANNER_KINDS,\n MODAL_KIND_MODIFIERS,\n MODAL_SIZE_MODIFIERS,\n} from './modal_constants';\nimport { getUniqueString, hasSlotContent } from '@/common/utils';\nimport { DtLazyShow } from '@/components/lazy_show';\nimport { EVENT_KEYNAMES } from '@/common/constants';\nimport SrOnlyCloseButtonMixin from '@/common/mixins/sr_only_close_button';\nimport SrOnlyCloseButton from '@/common/sr_only_close_button.vue';\nimport { NOTICE_KINDS } from '@/components/notice';\n\n/**\n * Modals focus the user’s attention exclusively on one task or piece of information\n * via a window that sits on top of the page content.\n * @see https://dialtone.dialpad.com/components/modal.html\n */\nexport default {\n name: 'DtModal',\n\n components: {\n DtLazyShow,\n DtButton,\n DtIcon,\n SrOnlyCloseButton,\n },\n\n mixins: [Modal, SrOnlyCloseButtonMixin],\n\n props: {\n /**\n * A set of props to be passed into the modal's close button.\n * Requires an 'ariaLabel' property.\n */\n closeButtonProps: {\n type: Object,\n required: true,\n validator: (props) => {\n return !!props.ariaLabel;\n },\n },\n\n /**\n * Body text to display as the modal's main content.\n */\n copy: {\n type: String,\n default: '',\n },\n\n /**\n * Id to use for the dialog's aria-describedby.\n * Recommended only if the dialog content itself isn't enough to give full context,\n * as screen readers should recite the dialog contents by default before any aria-description.\n */\n describedById: {\n type: String,\n default: '',\n },\n\n /**\n * Id to use for the dialog's aria-labelledby.\n */\n labelledById: {\n type: String,\n default: function () { return getUniqueString(); },\n },\n\n /**\n * Whether the modal should be shown.\n * Parent component can sync on this value to control the modal's visibility.\n * @values true, false\n */\n show: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Title text to display in the modal header.\n */\n title: {\n type: String,\n default: '',\n },\n\n /**\n * Title text to display in the modal banner.\n */\n bannerTitle: {\n type: String,\n default: '',\n },\n\n /**\n * The theme of the modal. kind - default or danger,\n * @values default, danger\n */\n kind: {\n type: String,\n default: 'default',\n validator: (k) => Object.keys(MODAL_KIND_MODIFIERS).includes(k),\n },\n\n /**\n * The size of the modal. size - default or full,\n * @values default, full\n */\n size: {\n type: String,\n default: 'default',\n validator: (s) => Object.keys(MODAL_SIZE_MODIFIERS).includes(s),\n },\n\n /**\n * Additional class name for the root modal element.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n modalClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Additional class name for the dialog element within the modal.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n dialogClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Additional class name for the content element within the modal.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n contentClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Sets the color of the banner.\n * @values base, error, info, success, warning\n */\n bannerKind: {\n type: String,\n default: 'warning',\n validate (kind) {\n return NOTICE_KINDS.includes(kind);\n },\n },\n\n /**\n * Additional class name for the banner element within the modal.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n bannerClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Hides the close button on the modal\n * @values true, false\n */\n hideClose: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Whether the modal will close when you click outside of the dialog on the overlay.\n * @values true, false\n */\n closeOnClick: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Scrollable modal that allows scroll the modal content keeping the header and footer fixed\n * @values true, false\n */\n fixedHeaderFooter: {\n type: Boolean,\n default: true,\n },\n\n /**\n * The element that is focused when the modal is opened. This can be an\n * HTMLElement within the modal, a string starting with '#' which will\n * find the element by ID. 'first' which will automatically focus\n * the first element, or 'dialog' which will focus the dialog window itself.\n * If the dialog is modal this prop cannot be 'none'.\n */\n initialFocusElement: {\n type: [String, HTMLElement],\n default: 'first',\n validator: initialFocusElement => {\n return initialFocusElement === 'first' ||\n (initialFocusElement instanceof HTMLElement) ||\n initialFocusElement.startsWith('#');\n },\n },\n },\n\n emits: [\n /**\n * Native button click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Native keydown event\n *\n * @event keydown\n * @type {KeyboardEvent}\n */\n 'keydown',\n\n /**\n * The modal will emit a \"false\" boolean value for this event when the user performs a modal-closing action.\n * Parent components can sync on this value to create a 2-way binding to control modal visibility.\n *\n * @event update:show\n * @type {Boolean}\n */\n 'update:show',\n ],\n\n data () {\n return {\n MODAL_KIND_MODIFIERS,\n MODAL_SIZE_MODIFIERS,\n MODAL_BANNER_KINDS,\n EVENT_KEYNAMES,\n hasSlotContent,\n };\n },\n\n computed: {\n modalListeners () {\n return {\n click: event => {\n if (!this.closeOnClick) return;\n (event.target === event.currentTarget) && this.close();\n this.$emit('click', event);\n },\n\n keydown: event => {\n switch (event.code) {\n case EVENT_KEYNAMES.esc:\n case EVENT_KEYNAMES.escape:\n this.close();\n break;\n case EVENT_KEYNAMES.tab:\n this.trapFocus(event);\n break;\n }\n this.$emit('keydown', event);\n },\n\n 'after-enter': event => {\n this.$emit('update:show', true);\n (event.target === event.currentTarget) && this.setFocusAfterTransition();\n },\n };\n },\n\n open () {\n return `${!this.show}`;\n },\n\n hasFooterSlot () {\n return !!this.$slots.footer;\n },\n\n bannerKindClass () {\n return MODAL_BANNER_KINDS[this.bannerKind];\n },\n },\n\n watch: {\n show: {\n immediate: true,\n handler (isShowing) {\n if (isShowing) {\n // Set a reference to the previously-active element, to which we'll return focus on modal close.\n this.previousActiveElement = document.activeElement;\n } else {\n // Modal is being hidden, so return focus to the previously active element before clearing the reference.\n this.previousActiveElement?.focus();\n this.previousActiveElement = null;\n }\n },\n },\n\n $props: {\n immediate: true,\n deep: true,\n handler () {\n this.validateProps();\n },\n },\n },\n\n methods: {\n close () {\n this.$emit('update:show', false);\n },\n\n setFocusAfterTransition () {\n if (this.initialFocusElement === 'first') {\n this.focusFirstElement();\n } else if (this.initialFocusElement.startsWith('#')) {\n this.focusElementById(this.initialFocusElement);\n } else if (this.initialFocusElement instanceof HTMLElement) {\n this.initialFocusElement.focus();\n }\n },\n\n trapFocus (e) {\n if (this.show) {\n this.focusTrappedTabPress(e);\n }\n },\n\n validateProps () {\n if (this.hideClose && !this.visuallyHiddenClose) {\n console.error(`If hideClose prop is true, visuallyHiddenClose and visuallyHiddenCloseLabel props\n need to be set so the component always includes a close button`);\n }\n },\n },\n};\n</script>\n"],"names":["MODAL_KIND_MODIFIERS","MODAL_SIZE_MODIFIERS","MODAL_BANNER_KINDS","_sfc_main","DtLazyShow","DtButton","DtIcon","SrOnlyCloseButton","Modal","SrOnlyCloseButtonMixin","props","getUniqueString","k","s","kind","NOTICE_KINDS","initialFocusElement","EVENT_KEYNAMES","hasSlotContent","event","isShowing","_a","e","_openBlock","_createBlock","_component_dt_lazy_show","_mergeProps","$props","$data","$options","_toHandlers","_ctx","_createElementBlock","_normalizeClass","_renderSlot","_createVNode","_Transition","_createElementVNode","_hoisted_3","_hoisted_4","_component_dt_button","_component_dt_icon","_component_sr_only_close_button"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"modal.cjs","sources":["../../components/modal/modal_constants.js","../../components/modal/modal.vue"],"sourcesContent":["// Modal style modifiers\nexport const MODAL_KIND_MODIFIERS = {\n default: '',\n danger: 'd-modal--danger',\n};\n\n// Modal size modifiers\nexport const MODAL_SIZE_MODIFIERS = {\n default: '',\n full: 'd-modal--full',\n};\n\nexport const MODAL_BANNER_KINDS = {\n error: 'd-modal__banner--critical',\n info: 'd-modal__banner--info',\n success: 'd-modal__banner--success',\n warning: 'd-modal__banner--warning',\n base: 'd-modal__banner--general',\n};\n","<template>\n <dt-lazy-show\n transition=\"d-zoom\"\n :show=\"show\"\n :class=\"[\n 'd-modal',\n MODAL_KIND_MODIFIERS[kind],\n MODAL_SIZE_MODIFIERS[size],\n modalClass,\n ]\"\n data-qa=\"dt-modal\"\n :aria-hidden=\"open\"\n v-on=\"modalListeners\"\n >\n <div\n v-if=\"show && (hasSlotContent($slots.banner) || bannerTitle)\"\n data-qa=\"dt-modal-banner\"\n :class=\"[\n 'd-modal__banner',\n bannerClass,\n bannerKindClass,\n ]\"\n >\n <!-- @slot Slot for the banner, defaults to bannerTitle prop -->\n <slot name=\"banner\">\n {{ bannerTitle }}\n </slot>\n </div>\n <transition\n appear\n name=\"d-modal__dialog\"\n >\n <div\n v-show=\"show\"\n :class=\"[\n 'd-modal__dialog',\n { 'd-modal__dialog--scrollable': fixedHeaderFooter },\n dialogClass,\n ]\"\n role=\"dialog\"\n aria-modal=\"true\"\n :aria-describedby=\"describedById\"\n :aria-labelledby=\"labelledById\"\n >\n <div\n v-if=\"hasSlotContent($slots.header)\"\n :id=\"labelledById\"\n class=\"d-modal__header\"\n data-qa=\"dt-modal-title\"\n >\n <!-- @slot Slot for dialog header section, taking the place of any \"title\" text prop -->\n <slot name=\"header\" />\n </div>\n <h2\n v-else\n :id=\"labelledById\"\n class=\"d-modal__header\"\n data-qa=\"dt-modal-title\"\n >\n {{ title }}\n </h2>\n <div\n v-if=\"hasSlotContent($slots.default)\"\n :class=\"[\n 'd-modal__content',\n contentClass,\n ]\"\n data-qa=\"dt-modal-copy\"\n >\n <!-- @slot Default slot for dialog body section, taking the place of any \"copy\" text prop -->\n <slot />\n </div>\n <p\n v-else\n :class=\"[\n 'd-modal__content',\n contentClass,\n ]\"\n data-qa=\"dt-modal-copy\"\n >\n {{ copy }}\n </p>\n <footer\n v-if=\"hasFooterSlot\"\n class=\"d-modal__footer\"\n >\n <!-- @slot Slot for dialog footer content, often containing cancel and confirm buttons. -->\n <slot name=\"footer\" />\n </footer>\n <dt-button\n v-if=\"!hideClose\"\n class=\"d-modal__close\"\n circle\n size=\"lg\"\n importance=\"clear\"\n :aria-label=\"closeButtonProps.ariaLabel\"\n v-bind=\"closeButtonProps\"\n @click=\"close\"\n >\n <template #icon>\n <dt-icon\n name=\"close\"\n size=\"400\"\n />\n </template>\n </dt-button>\n <sr-only-close-button\n v-if=\"showVisuallyHiddenClose\"\n :visually-hidden-close-label=\"visuallyHiddenCloseLabel\"\n @close=\"close\"\n />\n </div>\n </transition>\n </dt-lazy-show>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport { DtButton } from '@/components/button';\nimport { DtIcon } from '@/components/icon';\nimport Modal from '@/common/mixins/modal';\nimport {\n MODAL_BANNER_KINDS,\n MODAL_KIND_MODIFIERS,\n MODAL_SIZE_MODIFIERS,\n} from './modal_constants';\nimport { getUniqueString, hasSlotContent } from '@/common/utils';\nimport { DtLazyShow } from '@/components/lazy_show';\nimport { EVENT_KEYNAMES } from '@/common/constants';\nimport SrOnlyCloseButtonMixin from '@/common/mixins/sr_only_close_button';\nimport SrOnlyCloseButton from '@/common/sr_only_close_button.vue';\nimport { NOTICE_KINDS } from '@/components/notice';\n\n/**\n * Modals focus the user’s attention exclusively on one task or piece of information\n * via a window that sits on top of the page content.\n * @see https://dialtone.dialpad.com/components/modal.html\n */\nexport default {\n name: 'DtModal',\n\n components: {\n DtLazyShow,\n DtButton,\n DtIcon,\n SrOnlyCloseButton,\n },\n\n mixins: [Modal, SrOnlyCloseButtonMixin],\n\n props: {\n /**\n * A set of props to be passed into the modal's close button.\n * Requires an 'ariaLabel' property.\n */\n closeButtonProps: {\n type: Object,\n required: true,\n validator: (props) => {\n return !!props.ariaLabel;\n },\n },\n\n /**\n * Body text to display as the modal's main content.\n */\n copy: {\n type: String,\n default: '',\n },\n\n /**\n * Id to use for the dialog's aria-describedby.\n * Recommended only if the dialog content itself isn't enough to give full context,\n * as screen readers should recite the dialog contents by default before any aria-description.\n */\n describedById: {\n type: String,\n default: '',\n },\n\n /**\n * Id to use for the dialog's aria-labelledby.\n */\n labelledById: {\n type: String,\n default: function () { return getUniqueString(); },\n },\n\n /**\n * Whether the modal should be shown.\n * Parent component can sync on this value to control the modal's visibility.\n * @values true, false\n */\n show: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Title text to display in the modal header.\n */\n title: {\n type: String,\n default: '',\n },\n\n /**\n * Title text to display in the modal banner.\n */\n bannerTitle: {\n type: String,\n default: '',\n },\n\n /**\n * The theme of the modal. kind - default or danger,\n * @values default, danger\n */\n kind: {\n type: String,\n default: 'default',\n validator: (k) => Object.keys(MODAL_KIND_MODIFIERS).includes(k),\n },\n\n /**\n * The size of the modal. size - default or full,\n * @values default, full\n */\n size: {\n type: String,\n default: 'default',\n validator: (s) => Object.keys(MODAL_SIZE_MODIFIERS).includes(s),\n },\n\n /**\n * Additional class name for the root modal element.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n modalClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Additional class name for the dialog element within the modal.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n dialogClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Additional class name for the content element within the modal.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n contentClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Sets the color of the banner.\n * @values base, error, info, success, warning\n */\n bannerKind: {\n type: String,\n default: 'warning',\n validate (kind) {\n return NOTICE_KINDS.includes(kind);\n },\n },\n\n /**\n * Additional class name for the banner element within the modal.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n bannerClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Hides the close button on the modal\n * @values true, false\n */\n hideClose: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Whether the modal will close when you click outside of the dialog on the overlay.\n * @values true, false\n */\n closeOnClick: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Scrollable modal that allows scroll the modal content keeping the header and footer fixed\n * @values true, false\n */\n fixedHeaderFooter: {\n type: Boolean,\n default: true,\n },\n\n /**\n * The element that is focused when the modal is opened. This can be an\n * HTMLElement within the modal, a string starting with '#' which will\n * find the element by ID. 'first' which will automatically focus\n * the first element, or 'dialog' which will focus the dialog window itself.\n * If the dialog is modal this prop cannot be 'none'.\n */\n initialFocusElement: {\n type: [String, HTMLElement],\n default: 'first',\n validator: initialFocusElement => {\n return initialFocusElement === 'first' ||\n (initialFocusElement instanceof HTMLElement) ||\n initialFocusElement.startsWith('#');\n },\n },\n },\n\n emits: [\n /**\n * Native button click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Native keydown event\n *\n * @event keydown\n * @type {KeyboardEvent}\n */\n 'keydown',\n\n /**\n * The modal will emit a \"false\" boolean value for this event when the user performs a modal-closing action.\n * Parent components can sync on this value to create a 2-way binding to control modal visibility.\n *\n * @event update:show\n * @type {Boolean}\n */\n 'update:show',\n ],\n\n data () {\n return {\n MODAL_KIND_MODIFIERS,\n MODAL_SIZE_MODIFIERS,\n MODAL_BANNER_KINDS,\n EVENT_KEYNAMES,\n hasSlotContent,\n };\n },\n\n computed: {\n modalListeners () {\n return {\n click: event => {\n if (!this.closeOnClick) return;\n (event.target === event.currentTarget) && this.close();\n this.$emit('click', event);\n },\n\n keydown: event => {\n switch (event.code) {\n case EVENT_KEYNAMES.esc:\n case EVENT_KEYNAMES.escape:\n this.close();\n break;\n case EVENT_KEYNAMES.tab:\n this.trapFocus(event);\n break;\n }\n this.$emit('keydown', event);\n },\n\n 'after-enter': event => {\n this.$emit('update:show', true);\n (event.target === event.currentTarget) && this.setFocusAfterTransition();\n },\n };\n },\n\n open () {\n return `${!this.show}`;\n },\n\n hasFooterSlot () {\n return !!this.$slots.footer;\n },\n\n bannerKindClass () {\n return MODAL_BANNER_KINDS[this.bannerKind];\n },\n },\n\n watch: {\n show: {\n immediate: true,\n handler (isShowing) {\n if (isShowing) {\n // Set a reference to the previously-active element, to which we'll return focus on modal close.\n this.previousActiveElement = document.activeElement;\n } else {\n // Modal is being hidden, so return focus to the previously active element before clearing the reference.\n this.previousActiveElement?.focus();\n this.previousActiveElement = null;\n }\n },\n },\n\n $props: {\n immediate: true,\n deep: true,\n handler () {\n this.validateProps();\n },\n },\n },\n\n methods: {\n close () {\n this.$emit('update:show', false);\n },\n\n setFocusAfterTransition () {\n if (this.initialFocusElement === 'first') {\n this.focusFirstElement();\n } else if (this.initialFocusElement.startsWith('#')) {\n this.focusElementById(this.initialFocusElement);\n } else if (this.initialFocusElement instanceof HTMLElement) {\n this.initialFocusElement.focus();\n }\n },\n\n trapFocus (e) {\n if (this.show) {\n this.focusTrappedTabPress(e);\n }\n },\n\n validateProps () {\n if (this.hideClose && !this.visuallyHiddenClose) {\n console.error(`If hideClose prop is true, visuallyHiddenClose and visuallyHiddenCloseLabel props\n need to be set so the component always includes a close button`);\n }\n },\n },\n};\n</script>\n"],"names":["DtLazyShow","DtButton","DtIcon","SrOnlyCloseButton","Modal","SrOnlyCloseButtonMixin","getUniqueString","NOTICE_KINDS","EVENT_KEYNAMES","hasSlotContent","_openBlock","_createBlock","_mergeProps","_toHandlers","_createElementBlock","_normalizeClass","_renderSlot","_createVNode","_Transition","_createElementVNode"],"mappings":"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"}
|
package/dist/lib/modal.js
CHANGED
|
@@ -1,38 +1,41 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { getUniqueString
|
|
3
|
-
import { EVENT_KEYNAMES
|
|
4
|
-
import {
|
|
5
|
-
import { resolveComponent
|
|
6
|
-
import {
|
|
7
|
-
import { DtLazyShow
|
|
8
|
-
import { DtButton
|
|
9
|
-
import { DtIcon
|
|
10
|
-
import {
|
|
11
|
-
import "../chunks/link_constants-
|
|
1
|
+
import { Modal } from "../chunks/modal-XOr4kiNZ.js";
|
|
2
|
+
import { getUniqueString, hasSlotContent } from "../common/utils.js";
|
|
3
|
+
import { EVENT_KEYNAMES } from "../common/constants.js";
|
|
4
|
+
import { SrOnlyCloseButton, SrOnlyCloseButtonMixin } from "../chunks/sr_only_close_button-3EdsV-dH.js";
|
|
5
|
+
import { resolveComponent, openBlock, createBlock, mergeProps, toHandlers, withCtx, createElementBlock, normalizeClass, renderSlot, createTextVNode, toDisplayString, createCommentVNode, createVNode, Transition, withDirectives, createElementVNode, vShow } from "vue";
|
|
6
|
+
import { _export_sfc } from "../chunks/_plugin-vue_export-helper-caHeSgYY.js";
|
|
7
|
+
import { DtLazyShow } from "./lazy-show.js";
|
|
8
|
+
import { DtButton } from "./button.js";
|
|
9
|
+
import { DtIcon } from "./icon.js";
|
|
10
|
+
import { NOTICE_KINDS } from "../chunks/notice_constants-7Qt2CQEY.js";
|
|
11
|
+
import "../chunks/link_constants-nWVlXQBs.js";
|
|
12
12
|
import "@dialpad/dialtone-icons/vue3";
|
|
13
|
-
import "../chunks/icon_constants-
|
|
13
|
+
import "../chunks/icon_constants-Dy4MEUJL.js";
|
|
14
14
|
import "@dialpad/dialtone-icons/icons.json";
|
|
15
|
-
const
|
|
15
|
+
const MODAL_KIND_MODIFIERS = {
|
|
16
16
|
default: "",
|
|
17
17
|
danger: "d-modal--danger"
|
|
18
|
-
}
|
|
18
|
+
};
|
|
19
|
+
const MODAL_SIZE_MODIFIERS = {
|
|
19
20
|
default: "",
|
|
20
21
|
full: "d-modal--full"
|
|
21
|
-
}
|
|
22
|
+
};
|
|
23
|
+
const MODAL_BANNER_KINDS = {
|
|
22
24
|
error: "d-modal__banner--critical",
|
|
23
25
|
info: "d-modal__banner--info",
|
|
24
26
|
success: "d-modal__banner--success",
|
|
25
27
|
warning: "d-modal__banner--warning",
|
|
26
28
|
base: "d-modal__banner--general"
|
|
27
|
-
}
|
|
29
|
+
};
|
|
30
|
+
const _sfc_main = {
|
|
28
31
|
name: "DtModal",
|
|
29
32
|
components: {
|
|
30
|
-
DtLazyShow
|
|
31
|
-
DtButton
|
|
32
|
-
DtIcon
|
|
33
|
-
SrOnlyCloseButton
|
|
33
|
+
DtLazyShow,
|
|
34
|
+
DtButton,
|
|
35
|
+
DtIcon,
|
|
36
|
+
SrOnlyCloseButton
|
|
34
37
|
},
|
|
35
|
-
mixins: [
|
|
38
|
+
mixins: [Modal, SrOnlyCloseButtonMixin],
|
|
36
39
|
props: {
|
|
37
40
|
/**
|
|
38
41
|
* A set of props to be passed into the modal's close button.
|
|
@@ -40,8 +43,10 @@ const b = {
|
|
|
40
43
|
*/
|
|
41
44
|
closeButtonProps: {
|
|
42
45
|
type: Object,
|
|
43
|
-
required:
|
|
44
|
-
validator: (
|
|
46
|
+
required: true,
|
|
47
|
+
validator: (props) => {
|
|
48
|
+
return !!props.ariaLabel;
|
|
49
|
+
}
|
|
45
50
|
},
|
|
46
51
|
/**
|
|
47
52
|
* Body text to display as the modal's main content.
|
|
@@ -65,7 +70,7 @@ const b = {
|
|
|
65
70
|
labelledById: {
|
|
66
71
|
type: String,
|
|
67
72
|
default: function() {
|
|
68
|
-
return
|
|
73
|
+
return getUniqueString();
|
|
69
74
|
}
|
|
70
75
|
},
|
|
71
76
|
/**
|
|
@@ -75,7 +80,7 @@ const b = {
|
|
|
75
80
|
*/
|
|
76
81
|
show: {
|
|
77
82
|
type: Boolean,
|
|
78
|
-
default:
|
|
83
|
+
default: false
|
|
79
84
|
},
|
|
80
85
|
/**
|
|
81
86
|
* Title text to display in the modal header.
|
|
@@ -98,7 +103,7 @@ const b = {
|
|
|
98
103
|
kind: {
|
|
99
104
|
type: String,
|
|
100
105
|
default: "default",
|
|
101
|
-
validator: (
|
|
106
|
+
validator: (k) => Object.keys(MODAL_KIND_MODIFIERS).includes(k)
|
|
102
107
|
},
|
|
103
108
|
/**
|
|
104
109
|
* The size of the modal. size - default or full,
|
|
@@ -107,7 +112,7 @@ const b = {
|
|
|
107
112
|
size: {
|
|
108
113
|
type: String,
|
|
109
114
|
default: "default",
|
|
110
|
-
validator: (
|
|
115
|
+
validator: (s) => Object.keys(MODAL_SIZE_MODIFIERS).includes(s)
|
|
111
116
|
},
|
|
112
117
|
/**
|
|
113
118
|
* Additional class name for the root modal element.
|
|
@@ -143,8 +148,8 @@ const b = {
|
|
|
143
148
|
bannerKind: {
|
|
144
149
|
type: String,
|
|
145
150
|
default: "warning",
|
|
146
|
-
validate(
|
|
147
|
-
return
|
|
151
|
+
validate(kind) {
|
|
152
|
+
return NOTICE_KINDS.includes(kind);
|
|
148
153
|
}
|
|
149
154
|
},
|
|
150
155
|
/**
|
|
@@ -162,7 +167,7 @@ const b = {
|
|
|
162
167
|
*/
|
|
163
168
|
hideClose: {
|
|
164
169
|
type: Boolean,
|
|
165
|
-
default:
|
|
170
|
+
default: false
|
|
166
171
|
},
|
|
167
172
|
/**
|
|
168
173
|
* Whether the modal will close when you click outside of the dialog on the overlay.
|
|
@@ -170,7 +175,7 @@ const b = {
|
|
|
170
175
|
*/
|
|
171
176
|
closeOnClick: {
|
|
172
177
|
type: Boolean,
|
|
173
|
-
default:
|
|
178
|
+
default: true
|
|
174
179
|
},
|
|
175
180
|
/**
|
|
176
181
|
* Scrollable modal that allows scroll the modal content keeping the header and footer fixed
|
|
@@ -178,7 +183,7 @@ const b = {
|
|
|
178
183
|
*/
|
|
179
184
|
fixedHeaderFooter: {
|
|
180
185
|
type: Boolean,
|
|
181
|
-
default:
|
|
186
|
+
default: true
|
|
182
187
|
},
|
|
183
188
|
/**
|
|
184
189
|
* The element that is focused when the modal is opened. This can be an
|
|
@@ -190,7 +195,9 @@ const b = {
|
|
|
190
195
|
initialFocusElement: {
|
|
191
196
|
type: [String, HTMLElement],
|
|
192
197
|
default: "first",
|
|
193
|
-
validator: (
|
|
198
|
+
validator: (initialFocusElement) => {
|
|
199
|
+
return initialFocusElement === "first" || initialFocusElement instanceof HTMLElement || initialFocusElement.startsWith("#");
|
|
200
|
+
}
|
|
194
201
|
}
|
|
195
202
|
},
|
|
196
203
|
emits: [
|
|
@@ -219,33 +226,37 @@ const b = {
|
|
|
219
226
|
],
|
|
220
227
|
data() {
|
|
221
228
|
return {
|
|
222
|
-
MODAL_KIND_MODIFIERS
|
|
223
|
-
MODAL_SIZE_MODIFIERS
|
|
224
|
-
MODAL_BANNER_KINDS
|
|
225
|
-
EVENT_KEYNAMES
|
|
226
|
-
hasSlotContent
|
|
229
|
+
MODAL_KIND_MODIFIERS,
|
|
230
|
+
MODAL_SIZE_MODIFIERS,
|
|
231
|
+
MODAL_BANNER_KINDS,
|
|
232
|
+
EVENT_KEYNAMES,
|
|
233
|
+
hasSlotContent
|
|
227
234
|
};
|
|
228
235
|
},
|
|
229
236
|
computed: {
|
|
230
237
|
modalListeners() {
|
|
231
238
|
return {
|
|
232
|
-
click: (
|
|
233
|
-
|
|
239
|
+
click: (event) => {
|
|
240
|
+
if (!this.closeOnClick)
|
|
241
|
+
return;
|
|
242
|
+
event.target === event.currentTarget && this.close();
|
|
243
|
+
this.$emit("click", event);
|
|
234
244
|
},
|
|
235
|
-
keydown: (
|
|
236
|
-
switch (
|
|
237
|
-
case
|
|
238
|
-
case
|
|
245
|
+
keydown: (event) => {
|
|
246
|
+
switch (event.code) {
|
|
247
|
+
case EVENT_KEYNAMES.esc:
|
|
248
|
+
case EVENT_KEYNAMES.escape:
|
|
239
249
|
this.close();
|
|
240
250
|
break;
|
|
241
|
-
case
|
|
242
|
-
this.trapFocus(
|
|
251
|
+
case EVENT_KEYNAMES.tab:
|
|
252
|
+
this.trapFocus(event);
|
|
243
253
|
break;
|
|
244
254
|
}
|
|
245
|
-
this.$emit("keydown",
|
|
255
|
+
this.$emit("keydown", event);
|
|
246
256
|
},
|
|
247
|
-
"after-enter": (
|
|
248
|
-
this.$emit("update:show",
|
|
257
|
+
"after-enter": (event) => {
|
|
258
|
+
this.$emit("update:show", true);
|
|
259
|
+
event.target === event.currentTarget && this.setFocusAfterTransition();
|
|
249
260
|
}
|
|
250
261
|
};
|
|
251
262
|
},
|
|
@@ -256,20 +267,25 @@ const b = {
|
|
|
256
267
|
return !!this.$slots.footer;
|
|
257
268
|
},
|
|
258
269
|
bannerKindClass() {
|
|
259
|
-
return
|
|
270
|
+
return MODAL_BANNER_KINDS[this.bannerKind];
|
|
260
271
|
}
|
|
261
272
|
},
|
|
262
273
|
watch: {
|
|
263
274
|
show: {
|
|
264
|
-
immediate:
|
|
265
|
-
handler(
|
|
266
|
-
var
|
|
267
|
-
|
|
275
|
+
immediate: true,
|
|
276
|
+
handler(isShowing) {
|
|
277
|
+
var _a;
|
|
278
|
+
if (isShowing) {
|
|
279
|
+
this.previousActiveElement = document.activeElement;
|
|
280
|
+
} else {
|
|
281
|
+
(_a = this.previousActiveElement) == null ? void 0 : _a.focus();
|
|
282
|
+
this.previousActiveElement = null;
|
|
283
|
+
}
|
|
268
284
|
}
|
|
269
285
|
},
|
|
270
286
|
$props: {
|
|
271
|
-
immediate:
|
|
272
|
-
deep:
|
|
287
|
+
immediate: true,
|
|
288
|
+
deep: true,
|
|
273
289
|
handler() {
|
|
274
290
|
this.validateProps();
|
|
275
291
|
}
|
|
@@ -277,123 +293,140 @@ const b = {
|
|
|
277
293
|
},
|
|
278
294
|
methods: {
|
|
279
295
|
close() {
|
|
280
|
-
this.$emit("update:show",
|
|
296
|
+
this.$emit("update:show", false);
|
|
281
297
|
},
|
|
282
298
|
setFocusAfterTransition() {
|
|
283
|
-
this.initialFocusElement === "first"
|
|
299
|
+
if (this.initialFocusElement === "first") {
|
|
300
|
+
this.focusFirstElement();
|
|
301
|
+
} else if (this.initialFocusElement.startsWith("#")) {
|
|
302
|
+
this.focusElementById(this.initialFocusElement);
|
|
303
|
+
} else if (this.initialFocusElement instanceof HTMLElement) {
|
|
304
|
+
this.initialFocusElement.focus();
|
|
305
|
+
}
|
|
284
306
|
},
|
|
285
307
|
trapFocus(e) {
|
|
286
|
-
this.show
|
|
308
|
+
if (this.show) {
|
|
309
|
+
this.focusTrappedTabPress(e);
|
|
310
|
+
}
|
|
287
311
|
},
|
|
288
312
|
validateProps() {
|
|
289
|
-
this.hideClose && !this.visuallyHiddenClose
|
|
313
|
+
if (this.hideClose && !this.visuallyHiddenClose) {
|
|
314
|
+
console.error(`If hideClose prop is true, visuallyHiddenClose and visuallyHiddenCloseLabel props
|
|
290
315
|
need to be set so the component always includes a close button`);
|
|
316
|
+
}
|
|
291
317
|
}
|
|
292
318
|
}
|
|
293
|
-
}
|
|
319
|
+
};
|
|
320
|
+
const _hoisted_1 = ["aria-describedby", "aria-labelledby"];
|
|
321
|
+
const _hoisted_2 = ["id"];
|
|
322
|
+
const _hoisted_3 = ["id"];
|
|
323
|
+
const _hoisted_4 = {
|
|
294
324
|
key: 4,
|
|
295
325
|
class: "d-modal__footer"
|
|
296
326
|
};
|
|
297
|
-
function
|
|
298
|
-
const
|
|
299
|
-
|
|
327
|
+
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
328
|
+
const _component_dt_icon = resolveComponent("dt-icon");
|
|
329
|
+
const _component_dt_button = resolveComponent("dt-button");
|
|
330
|
+
const _component_sr_only_close_button = resolveComponent("sr-only-close-button");
|
|
331
|
+
const _component_dt_lazy_show = resolveComponent("dt-lazy-show");
|
|
332
|
+
return openBlock(), createBlock(_component_dt_lazy_show, mergeProps({
|
|
300
333
|
transition: "d-zoom",
|
|
301
|
-
show:
|
|
334
|
+
show: $props.show,
|
|
302
335
|
class: [
|
|
303
336
|
"d-modal",
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
337
|
+
$data.MODAL_KIND_MODIFIERS[$props.kind],
|
|
338
|
+
$data.MODAL_SIZE_MODIFIERS[$props.size],
|
|
339
|
+
$props.modalClass
|
|
307
340
|
],
|
|
308
341
|
"data-qa": "dt-modal",
|
|
309
|
-
"aria-hidden":
|
|
310
|
-
},
|
|
311
|
-
default:
|
|
312
|
-
|
|
342
|
+
"aria-hidden": $options.open
|
|
343
|
+
}, toHandlers($options.modalListeners)), {
|
|
344
|
+
default: withCtx(() => [
|
|
345
|
+
$props.show && ($data.hasSlotContent(_ctx.$slots.banner) || $props.bannerTitle) ? (openBlock(), createElementBlock("div", {
|
|
313
346
|
key: 0,
|
|
314
347
|
"data-qa": "dt-modal-banner",
|
|
315
|
-
class:
|
|
348
|
+
class: normalizeClass([
|
|
316
349
|
"d-modal__banner",
|
|
317
|
-
|
|
318
|
-
|
|
350
|
+
$props.bannerClass,
|
|
351
|
+
$options.bannerKindClass
|
|
319
352
|
])
|
|
320
353
|
}, [
|
|
321
|
-
|
|
322
|
-
|
|
354
|
+
renderSlot(_ctx.$slots, "banner", {}, () => [
|
|
355
|
+
createTextVNode(toDisplayString($props.bannerTitle), 1)
|
|
323
356
|
])
|
|
324
|
-
], 2)) :
|
|
325
|
-
|
|
357
|
+
], 2)) : createCommentVNode("", true),
|
|
358
|
+
createVNode(Transition, {
|
|
326
359
|
appear: "",
|
|
327
360
|
name: "d-modal__dialog"
|
|
328
361
|
}, {
|
|
329
|
-
default:
|
|
330
|
-
|
|
331
|
-
class:
|
|
362
|
+
default: withCtx(() => [
|
|
363
|
+
withDirectives(createElementVNode("div", {
|
|
364
|
+
class: normalizeClass([
|
|
332
365
|
"d-modal__dialog",
|
|
333
|
-
{ "d-modal__dialog--scrollable":
|
|
334
|
-
|
|
366
|
+
{ "d-modal__dialog--scrollable": $props.fixedHeaderFooter },
|
|
367
|
+
$props.dialogClass
|
|
335
368
|
]),
|
|
336
369
|
role: "dialog",
|
|
337
370
|
"aria-modal": "true",
|
|
338
|
-
"aria-describedby":
|
|
339
|
-
"aria-labelledby":
|
|
371
|
+
"aria-describedby": $props.describedById,
|
|
372
|
+
"aria-labelledby": $props.labelledById
|
|
340
373
|
}, [
|
|
341
|
-
|
|
374
|
+
$data.hasSlotContent(_ctx.$slots.header) ? (openBlock(), createElementBlock("div", {
|
|
342
375
|
key: 0,
|
|
343
|
-
id:
|
|
376
|
+
id: $props.labelledById,
|
|
344
377
|
class: "d-modal__header",
|
|
345
378
|
"data-qa": "dt-modal-title"
|
|
346
379
|
}, [
|
|
347
|
-
|
|
348
|
-
], 8,
|
|
380
|
+
renderSlot(_ctx.$slots, "header")
|
|
381
|
+
], 8, _hoisted_2)) : (openBlock(), createElementBlock("h2", {
|
|
349
382
|
key: 1,
|
|
350
|
-
id:
|
|
383
|
+
id: $props.labelledById,
|
|
351
384
|
class: "d-modal__header",
|
|
352
385
|
"data-qa": "dt-modal-title"
|
|
353
|
-
},
|
|
354
|
-
|
|
386
|
+
}, toDisplayString($props.title), 9, _hoisted_3)),
|
|
387
|
+
$data.hasSlotContent(_ctx.$slots.default) ? (openBlock(), createElementBlock("div", {
|
|
355
388
|
key: 2,
|
|
356
|
-
class:
|
|
389
|
+
class: normalizeClass([
|
|
357
390
|
"d-modal__content",
|
|
358
|
-
|
|
391
|
+
$props.contentClass
|
|
359
392
|
]),
|
|
360
393
|
"data-qa": "dt-modal-copy"
|
|
361
394
|
}, [
|
|
362
|
-
|
|
363
|
-
], 2)) : (
|
|
395
|
+
renderSlot(_ctx.$slots, "default")
|
|
396
|
+
], 2)) : (openBlock(), createElementBlock("p", {
|
|
364
397
|
key: 3,
|
|
365
|
-
class:
|
|
398
|
+
class: normalizeClass([
|
|
366
399
|
"d-modal__content",
|
|
367
|
-
|
|
400
|
+
$props.contentClass
|
|
368
401
|
]),
|
|
369
402
|
"data-qa": "dt-modal-copy"
|
|
370
|
-
},
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
])) :
|
|
374
|
-
|
|
403
|
+
}, toDisplayString($props.copy), 3)),
|
|
404
|
+
$options.hasFooterSlot ? (openBlock(), createElementBlock("footer", _hoisted_4, [
|
|
405
|
+
renderSlot(_ctx.$slots, "footer")
|
|
406
|
+
])) : createCommentVNode("", true),
|
|
407
|
+
!$props.hideClose ? (openBlock(), createBlock(_component_dt_button, mergeProps({
|
|
375
408
|
key: 5,
|
|
376
409
|
class: "d-modal__close",
|
|
377
410
|
circle: "",
|
|
378
411
|
size: "lg",
|
|
379
412
|
importance: "clear",
|
|
380
|
-
"aria-label":
|
|
381
|
-
},
|
|
382
|
-
icon:
|
|
383
|
-
|
|
413
|
+
"aria-label": $props.closeButtonProps.ariaLabel
|
|
414
|
+
}, $props.closeButtonProps, { onClick: $options.close }), {
|
|
415
|
+
icon: withCtx(() => [
|
|
416
|
+
createVNode(_component_dt_icon, {
|
|
384
417
|
name: "close",
|
|
385
418
|
size: "400"
|
|
386
419
|
})
|
|
387
420
|
]),
|
|
388
421
|
_: 1
|
|
389
|
-
}, 16, ["aria-label", "onClick"])),
|
|
390
|
-
|
|
422
|
+
}, 16, ["aria-label", "onClick"])) : createCommentVNode("", true),
|
|
423
|
+
_ctx.showVisuallyHiddenClose ? (openBlock(), createBlock(_component_sr_only_close_button, {
|
|
391
424
|
key: 6,
|
|
392
|
-
"visually-hidden-close-label":
|
|
393
|
-
onClose:
|
|
394
|
-
}, null, 8, ["visually-hidden-close-label", "onClose"])) :
|
|
395
|
-
], 10,
|
|
396
|
-
[
|
|
425
|
+
"visually-hidden-close-label": _ctx.visuallyHiddenCloseLabel,
|
|
426
|
+
onClose: $options.close
|
|
427
|
+
}, null, 8, ["visually-hidden-close-label", "onClose"])) : createCommentVNode("", true)
|
|
428
|
+
], 10, _hoisted_1), [
|
|
429
|
+
[vShow, $props.show]
|
|
397
430
|
])
|
|
398
431
|
]),
|
|
399
432
|
_: 3
|
|
@@ -402,11 +435,11 @@ function Z(e, u, t, U, s, l) {
|
|
|
402
435
|
_: 3
|
|
403
436
|
}, 16, ["show", "class", "aria-hidden"]);
|
|
404
437
|
}
|
|
405
|
-
const
|
|
438
|
+
const modal = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
|
|
406
439
|
export {
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
440
|
+
modal as DtModal,
|
|
441
|
+
MODAL_BANNER_KINDS,
|
|
442
|
+
MODAL_KIND_MODIFIERS,
|
|
443
|
+
MODAL_SIZE_MODIFIERS
|
|
411
444
|
};
|
|
412
445
|
//# sourceMappingURL=modal.js.map
|