@dialpad/dialtone-vue 4.1.0 → 4.3.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.
Files changed (73) hide show
  1. package/dist/ForceLinkify-CI1tkUBf.cjs +3 -0
  2. package/dist/ForceLinkify-CI1tkUBf.cjs.map +1 -0
  3. package/dist/ForceLinkify-bO3ug94b.js +544 -0
  4. package/dist/ForceLinkify-bO3ug94b.js.map +1 -0
  5. package/dist/{MarkdownRenderer-BQQDcWMC.cjs → MarkdownRenderer-B6oyniLV.cjs} +1 -1
  6. package/dist/{MarkdownRenderer-BQQDcWMC.cjs.map → MarkdownRenderer-B6oyniLV.cjs.map} +1 -1
  7. package/dist/{MarkdownRenderer-D3rM2x-1.js → MarkdownRenderer-D-EV50_M.js} +1 -1
  8. package/dist/{MarkdownRenderer-D3rM2x-1.js.map → MarkdownRenderer-D-EV50_M.js.map} +1 -1
  9. package/dist/{RichTextEditor-CzMY0oVT.js → RichTextEditor-Cz2VXb7-.js} +470 -466
  10. package/dist/{RichTextEditor-CzMY0oVT.js.map → RichTextEditor-Cz2VXb7-.js.map} +1 -1
  11. package/dist/RichTextEditor-EHgahp8r.cjs +11 -0
  12. package/dist/{RichTextEditor-n42FPkjs.cjs.map → RichTextEditor-EHgahp8r.cjs.map} +1 -1
  13. package/dist/{Scroller-BUtC5Z7j.cjs → Scroller-Du2kJsTR.cjs} +1 -1
  14. package/dist/{Scroller-BUtC5Z7j.cjs.map → Scroller-Du2kJsTR.cjs.map} +1 -1
  15. package/dist/{Scroller-BsGXTN6S.js → Scroller-JDoDYC5V.js} +1 -1
  16. package/dist/{Scroller-BsGXTN6S.js.map → Scroller-JDoDYC5V.js.map} +1 -1
  17. package/dist/{TextList-B6XFfQfD.js → TextList-D40u4g4T.js} +1 -1
  18. package/dist/{TextList-B6XFfQfD.js.map → TextList-D40u4g4T.js.map} +1 -1
  19. package/dist/{TextList-Dd-ROFiI.cjs → TextList-rS1MQdPB.cjs} +1 -1
  20. package/dist/{TextList-Dd-ROFiI.cjs.map → TextList-rS1MQdPB.cjs.map} +1 -1
  21. package/dist/{TextListItem-DIlrCkaM.cjs → TextListItem-CF6DzdvT.cjs} +1 -1
  22. package/dist/{TextListItem-DIlrCkaM.cjs.map → TextListItem-CF6DzdvT.cjs.map} +1 -1
  23. package/dist/{TextListItem-ImUi_FWh.js → TextListItem-PHgDIWV1.js} +1 -1
  24. package/dist/{TextListItem-ImUi_FWh.js.map → TextListItem-PHgDIWV1.js.map} +1 -1
  25. package/dist/{Toast-IyFVsArp.cjs → Toast-CN9x3jKH.cjs} +1 -1
  26. package/dist/{Toast-IyFVsArp.cjs.map → Toast-CN9x3jKH.cjs.map} +1 -1
  27. package/dist/{Toast-t6T8fd29.js → Toast-DVUE2_fV.js} +1 -1
  28. package/dist/{Toast-t6T8fd29.js.map → Toast-DVUE2_fV.js.map} +1 -1
  29. package/dist/component-documentation.json +1 -1
  30. package/dist/components/Modal/Modal.vue.d.ts +4 -0
  31. package/dist/components/Modal/Modal.vue.d.ts.map +1 -1
  32. package/dist/components/RichTextEditor/ForceLinkify.d.ts +4 -0
  33. package/dist/components/RichTextEditor/ForceLinkify.d.ts.map +1 -0
  34. package/dist/components/Tooltip/Tooltip.vue.d.ts +12 -1
  35. package/dist/components/Tooltip/Tooltip.vue.d.ts.map +1 -1
  36. package/dist/dialtone-vue.cjs +1 -1
  37. package/dist/dialtone-vue.js +5 -5
  38. package/dist/lib/modal/modal.cjs +1 -1
  39. package/dist/lib/modal/modal.cjs.map +1 -1
  40. package/dist/lib/modal/modal.js +15 -4
  41. package/dist/lib/modal/modal.js.map +1 -1
  42. package/dist/lib/rich-text-editor/force-linkify.cjs +1 -0
  43. package/dist/lib/rich-text-editor/force-linkify.js +2 -0
  44. package/dist/lib/rich-text-editor/index.cjs +1 -1
  45. package/dist/lib/rich-text-editor/index.js +1 -1
  46. package/dist/lib/rich-text-editor/markdown-renderer.cjs +1 -1
  47. package/dist/lib/rich-text-editor/markdown-renderer.js +1 -1
  48. package/dist/lib/rich-text-editor/rich-text-editor.cjs +1 -1
  49. package/dist/lib/rich-text-editor/rich-text-editor.js +1 -1
  50. package/dist/lib/scroller/index.cjs +1 -1
  51. package/dist/lib/scroller/index.js +1 -1
  52. package/dist/lib/scroller/scroller.cjs +1 -1
  53. package/dist/lib/scroller/scroller.js +1 -1
  54. package/dist/lib/text-list/index.cjs +1 -1
  55. package/dist/lib/text-list/index.js +2 -2
  56. package/dist/lib/text-list/text-list-item.cjs +1 -1
  57. package/dist/lib/text-list/text-list-item.js +1 -1
  58. package/dist/lib/text-list/text-list.cjs +1 -1
  59. package/dist/lib/text-list/text-list.js +1 -1
  60. package/dist/lib/toast/index.cjs +1 -1
  61. package/dist/lib/toast/index.js +1 -1
  62. package/dist/lib/toast/toast.cjs +1 -1
  63. package/dist/lib/toast/toast.js +1 -1
  64. package/dist/lib/tooltip/tooltip.cjs +1 -1
  65. package/dist/lib/tooltip/tooltip.cjs.map +1 -1
  66. package/dist/lib/tooltip/tooltip.js +16 -8
  67. package/dist/lib/tooltip/tooltip.js.map +1 -1
  68. package/dist/localization/en-US.cjs +5 -0
  69. package/dist/localization/en-US.cjs.map +1 -1
  70. package/dist/localization/en-US.js +1 -1
  71. package/dist/localization/en-US.js.map +1 -1
  72. package/package.json +2 -2
  73. package/dist/RichTextEditor-n42FPkjs.cjs +0 -11
@@ -109,6 +109,8 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
109
109
  hasSlotContent: typeof hasSlotContent;
110
110
  i18n: any;
111
111
  autoTeleportTarget: null;
112
+ mousedownOnBackdrop: boolean;
113
+ mouseupOnBackdrop: boolean;
112
114
  }, {
113
115
  hasFooterSlot(): boolean;
114
116
  bannerKindClass(): any;
@@ -117,6 +119,8 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
117
119
  getScrollRoot(): any;
118
120
  syncDialogState(isShowing: any): void;
119
121
  close(): void;
122
+ onBackdropMousedown(event: any): void;
123
+ onBackdropMouseup(event: any): void;
120
124
  onBackdropClick(event: any): void;
121
125
  onKeydown(event: any): void;
122
126
  onAfterEnter(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.vue.d.ts","sourceRoot":"","sources":["../../../components/Modal/Modal.vue"],"names":[],"mappings":"AAkIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAkkBA,GAxhBuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAwhBvB,GAxhBuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAgiBmF,gBAAgB"}
1
+ {"version":3,"file":"Modal.vue.d.ts","sourceRoot":"","sources":["../../../components/Modal/Modal.vue"],"names":[],"mappings":"AAoIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBA+kBA,GAriBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAqiBH,GAriBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BA6iBuG,gBAAgB"}
@@ -0,0 +1,4 @@
1
+ export function isValidLinkStructure(tokens: any): any;
2
+ export function rangeFullyLinked(doc: any, from: any, to: any, markType: any): boolean;
3
+ export function forceLinkifyPendingText(editor: any): void;
4
+ //# sourceMappingURL=ForceLinkify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ForceLinkify.d.ts","sourceRoot":"","sources":["../../../components/RichTextEditor/ForceLinkify.js"],"names":[],"mappings":"AAUA,uDAUC;AAcD,uFAcC;AA0DD,2DAiEC"}
@@ -16,6 +16,10 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
16
16
  type: ArrayConstructor;
17
17
  default: () => number[];
18
18
  };
19
+ showArrow: {
20
+ type: BooleanConstructor;
21
+ default: boolean;
22
+ };
19
23
  placement: {
20
24
  type: StringConstructor;
21
25
  default: string;
@@ -90,7 +94,9 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
90
94
  internalShow: boolean;
91
95
  currentPlacement: string;
92
96
  }, {
97
+ tippyArrow(): false | "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"7\"><path d=\"M 14.5,7 8,0 1.5,7 Z\"/></svg>";
93
98
  tippyProps(): {
99
+ arrow: string | boolean;
94
100
  offset: unknown[];
95
101
  delay: number | boolean;
96
102
  placement: string;
@@ -144,7 +150,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
144
150
  tooltipHasContent(tooltipInstance: any): boolean;
145
151
  initOptions(): {
146
152
  content: unknown;
147
- arrow: string;
153
+ arrow: string | boolean;
148
154
  duration: number;
149
155
  interactive: boolean;
150
156
  trigger: string;
@@ -223,6 +229,10 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
223
229
  type: ArrayConstructor;
224
230
  default: () => number[];
225
231
  };
232
+ showArrow: {
233
+ type: BooleanConstructor;
234
+ default: boolean;
235
+ };
226
236
  placement: {
227
237
  type: StringConstructor;
228
238
  default: string;
@@ -302,6 +312,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
302
312
  theme: string;
303
313
  fallbackPlacements: unknown[];
304
314
  enabled: boolean;
315
+ showArrow: boolean;
305
316
  transition: boolean;
306
317
  externalAnchor: string;
307
318
  externalAnchorElement: any;
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.vue.d.ts","sourceRoot":"","sources":["../../../components/Tooltip/Tooltip.vue"],"names":[],"mappings":"AA2CA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAklB+F,gBAAgB"}
1
+ {"version":3,"file":"Tooltip.vue.d.ts","sourceRoot":"","sources":["../../../components/Tooltip/Tooltip.vue"],"names":[],"mappings":"AA2CA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAmmB+F,gBAAgB"}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const ee=require(`./common/mixins/dom.cjs`),e=require(`./common/constants/sizes.cjs`),t=require(`./common/constants/layout.cjs`),n=require(`./common/constants/index.cjs`),r=require(`./common/validators/index.cjs`),i=require(`./common/utils/index.cjs`),a=require(`./common/mixins/input.cjs`),te=require(`./lib/validation-messages/validation-messages.cjs`),ne=require(`./common/mixins/input-group.cjs`),re=require(`./common/mixins/keyboard-list-navigation.cjs`),ie=require(`./common/mixins/modal.cjs`),o=require(`./lib/skeleton/skeleton-constants.cjs`),ae=require(`./common/mixins/skeleton.cjs`),oe=require(`./common/mixins/mode.cjs`),s=require(`./common/dates/index.cjs`),c=require(`./common/emoji/index.cjs`),l=require(`./lib/presence/presence-constants.cjs`),se=require(`./Presence-DLM3JR-n.cjs`),u=require(`./lib/avatar/avatar-constants.cjs`),d=require(`./lib/avatar/avatar.cjs`),f=require(`./lib/badge/badge-constants.cjs`),p=require(`./lib/icon/icon-constants.cjs`),ce=require(`./lib/icon/icon.cjs`),le=require(`./lib/badge/badge.cjs`),m=require(`./lib/notice/notice-constants.cjs`),ue=require(`./lib/notice/notice-icon.cjs`),h=require(`./lib/text/text-constants.cjs`),de=require(`./lib/text/text.cjs`),fe=require(`./lib/notice/notice-content.cjs`),pe=require(`./lib/loader/loader.cjs`),g=require(`./lib/button/button-constants.cjs`),_=require(`./lib/link/link-constants.cjs`),me=require(`./lib/link/link.cjs`),he=require(`./localization/index.cjs`),ge=require(`./lib/button/button.cjs`),_e=require(`./lib/notice/notice-action.cjs`),ve=require(`./lib/notice/notice.cjs`),ye=require(`./lib/banner/banner.cjs`);require(`./lib/banner/index.cjs`);const v=require(`./lib/box/box-constants.cjs`),be=require(`./lib/box/box.cjs`);require(`./lib/box/index.cjs`);const y=require(`./lib/breadcrumbs/breadcrumbs-constants.cjs`),xe=require(`./lib/breadcrumbs/breadcrumb-item.cjs`),b=require(`./lib/breadcrumbs/breadcrumbs.cjs`);require(`./lib/breadcrumbs/index.cjs`);const x=require(`./lib/button-group/button-group-constants.cjs`),S=require(`./lib/button-group/button-group.cjs`);require(`./lib/button-group/index.cjs`);const C=require(`./lib/card/card.cjs`);require(`./lib/card/index.cjs`);const w=require(`./lib/checkbox/checkbox.cjs`),T=require(`./lib/input-group/input-group.cjs`),E=require(`./lib/checkbox-group/checkbox-group.cjs`),D=require(`./lib/chip/chip-constants.cjs`),O=require(`./lib/chip/chip.cjs`);require(`./lib/chip/index.cjs`);const k=require(`./lib/codeblock/codeblock.cjs`);require(`./lib/codeblock/index.cjs`);const A=require(`./lib/collapsible/collapsible.cjs`);require(`./lib/collapsible/index.cjs`);const j=require(`./lib/list-item/list-item-constants.cjs`),M=require(`./lib/item-layout/item-layout.cjs`),Se=require(`./lib/list-item/list-item.cjs`),Ce=require(`./lib/skeleton/skeleton-shape.cjs`),we=require(`./lib/skeleton/skeleton-text.cjs`),Te=require(`./lib/skeleton/skeleton-paragraph.cjs`),Ee=require(`./lib/skeleton/skeleton-list-item.cjs`),De=require(`./lib/skeleton/skeleton.cjs`),Oe=require(`./Combobox-96zAPv6d.cjs`),ke=require(`./lib/combobox/combobox-constants.cjs`),N=require(`./lib/stack/stack-constants.cjs`),Ae=require(`./lib/stack/stack.cjs`),P=require(`./lib/tooltip/tooltip-constants.cjs`),F=require(`./lib/popover/popover-constants.cjs`),je=require(`./lib/tooltip/tooltip.cjs`),Me=require(`./Datepicker-DkGmnVc8.cjs`),I=require(`./lib/datepicker/format-utils.cjs`);require(`./lib/datepicker/index.cjs`);const Ne=require(`./lib/description-list/description-list-constants.cjs`),Pe=require(`./lib/description-list/description-list.cjs`);require(`./lib/description-list/index.cjs`);const Fe=require(`./lib/lazy-show/lazy-show.cjs`),Ie=require(`./lib/popover/popover.cjs`),Le=require(`./lib/dropdown/dropdown-constants.cjs`),Re=require(`./lib/dropdown/dropdown.cjs`),L=require(`./lib/dropdown/dropdown-separator.cjs`),ze=require(`./lib/emoji/emoji.cjs`),R=require(`./lib/input/input-constants.cjs`),Be=require(`./lib/input/input.cjs`),Ve=require(`./EmojiPicker-KO1yhODv.cjs`),z=require(`./lib/tab/tabs-constants.cjs`),He=require(`./lib/tab/tab-group.cjs`),Ue=require(`./lib/tab/tab.cjs`),We=require(`./lib/tab/tab-panel.cjs`),B=require(`./lib/emoji-picker/emoji-picker-constants.cjs`);require(`./lib/emoji-picker/index.cjs`);const Ge=require(`./lib/emoji-text-wrapper/emoji-text-wrapper.cjs`);require(`./lib/emoji-text-wrapper/index.cjs`);const Ke=require(`./lib/empty-state/empty-state-constants.cjs`),qe=require(`./lib/empty-state/empty-state.cjs`);require(`./lib/empty-state/index.cjs`);const Je=require(`./lib/filter-pill/filter-pill.cjs`);require(`./lib/filter-pill/index.cjs`);const Ye=require(`./lib/hovercard/hovercard.cjs`);require(`./lib/hovercard/index.cjs`);const Xe=require(`./lib/illustration/illustration-constants.cjs`),Ze=require(`./lib/illustration/illustration.cjs`);require(`./lib/illustration/index.cjs`);const Qe=require(`./lib/image-viewer/image-viewer.cjs`);require(`./lib/image-viewer/index.cjs`);const $e=require(`./lib/keyboard-shortcut/keyboard-shortcut.cjs`),et=require(`./lib/keyboard-shortcut/keyboard-shortcut-constants.cjs`);require(`./lib/keyboard-shortcut/index.cjs`);const tt=require(`./lib/list-item-group/list-item-group.cjs`);require(`./lib/list-item-group/index.cjs`),require(`./lib/loader/index.cjs`);const V=require(`./lib/modal/modal-constants.cjs`),nt=require(`./lib/modal/modal.cjs`);require(`./lib/modal/index.cjs`);const rt=require(`./lib/mode-island/mode-island-constants.cjs`),it=require(`./lib/mode-island/mode-island.cjs`);require(`./lib/mode-island/index.cjs`);const at=require(`./lib/pagination/pagination.cjs`);require(`./lib/pagination/index.cjs`);const H=require(`./lib/progress-circle/progress-circle-constants.cjs`),ot=require(`./lib/progress-circle/progress-circle.cjs`);require(`./lib/progress-circle/index.cjs`);const U=require(`./lib/prose/prose-constants.cjs`),st=require(`./lib/prose/prose.cjs`);require(`./lib/prose/index.cjs`);const ct=require(`./lib/radio/radio-constants.cjs`),lt=require(`./lib/radio/radio.cjs`);require(`./lib/radio/index.cjs`);const ut=require(`./lib/radio-group/radio-group.cjs`);require(`./lib/radio-group/index.cjs`);const W=require(`./ResizableUtils-DMfertP2.cjs`),dt=require(`./Resizable-DBRsEUf3.cjs`),ft=require(`./ResizableHandle-DQG7a5D9.cjs`),pt=require(`./lib/resizable/resizable-panel.cjs`);require(`./lib/resizable/index.cjs`);const mt=require(`./RichTextEditor-n42FPkjs.cjs`),G=require(`./lib/rich-text-editor/rich-text-editor-constants.cjs`);require(`./lib/rich-text-editor/index.cjs`);const K=require(`./lib/root-layout/root-layout-constants.cjs`),ht=require(`./lib/root-layout/root-layout.cjs`);require(`./lib/root-layout/index.cjs`);const gt=require(`./Scroller-BUtC5Z7j.cjs`);require(`./lib/scroller/index.cjs`);const q=require(`./lib/segmented-control/segmented-control-constants.cjs`),_t=require(`./lib/segmented-control/segmented-control.cjs`),vt=require(`./lib/segmented-control/segmented-control-item.cjs`);require(`./lib/segmented-control/index.cjs`);const J=require(`./lib/select-menu/select-menu-constants.cjs`),yt=require(`./lib/select-menu/select-menu.cjs`);require(`./lib/select-menu/index.cjs`);const bt=require(`./lib/split-button/split-button-constants.cjs`),xt=require(`./lib/split-button/split-button.cjs`);require(`./lib/split-button/index.cjs`);const Y=require(`./lib/text-list/text-list-constants.cjs`),St=require(`./TextList-Dd-ROFiI.cjs`),Ct=require(`./TextListItem-DIlrCkaM.cjs`);require(`./lib/text-list/index.cjs`);const X=require(`./lib/toast/toast-constants.cjs`),wt=require(`./Toast-IyFVsArp.cjs`);require(`./lib/toast/index.cjs`);const Z=require(`./lib/toggle/toggle-constants.cjs`),Tt=require(`./lib/toggle/toggle.cjs`);require(`./lib/toggle/index.cjs`);const Et=require(`./lib/combobox-with-popover/combobox-with-popover.cjs`),Q=require(`./lib/combobox-multi-select/combobox-multi-select-constants.cjs`),Dt=require(`./lib/combobox-multi-select/combobox-multi-select.cjs`);require(`./lib/combobox-multi-select/index.cjs`),require(`./lib/combobox-with-popover/index.cjs`);const Ot=require(`./lib/tooltip-directive/tooltip.cjs`);require(`./lib/tooltip-directive/index.cjs`);const kt=require(`./lib/scrollbar-directive/scrollbar.cjs`);require(`./lib/scrollbar-directive/index.cjs`);const At=require(`./lib/mode-directive/mode.cjs`);require(`./lib/mode-directive/index.cjs`);const jt=require(`./lib/focusgroup-directive/focusgroup.cjs`);require(`./lib/focusgroup-directive/index.cjs`);const Mt=require(`./lib/focustrap-directive/focustrap.cjs`);require(`./lib/focustrap-directive/index.cjs`);const $=require(`./lib/motion-text/motion-text-constants.cjs`),Nt=require(`./lib/motion-text/motion-text.cjs`);require(`./lib/motion-text/index.cjs`),exports.ARROW_KEYS=B.ARROW_KEYS,exports.AVATAR_CHROMA=u.AVATAR_CHROMA,exports.AVATAR_FAMILY_COUNT=u.AVATAR_FAMILY_COUNT,exports.AVATAR_GROUP_VALIDATOR=u.AVATAR_GROUP_VALIDATOR,exports.AVATAR_HUE_OFFSETS=u.AVATAR_HUE_OFFSETS,exports.AVATAR_ICON_SIZES=u.AVATAR_ICON_SIZES,exports.AVATAR_KIND_MODIFIERS=u.AVATAR_KIND_MODIFIERS,exports.AVATAR_LIGHTNESS=u.AVATAR_LIGHTNESS,exports.AVATAR_PRESENCE_SIZE_MODIFIERS=u.AVATAR_PRESENCE_SIZE_MODIFIERS,exports.AVATAR_PRESENCE_STATES=u.AVATAR_PRESENCE_STATES,exports.AVATAR_SIZE_MODIFIERS=u.AVATAR_SIZE_MODIFIERS,exports.AVATAR_VARIANT_COUNT=u.AVATAR_VARIANT_COUNT,exports.BADGE_DECORATION_MODIFIERS=f.BADGE_DECORATION_MODIFIERS,exports.BADGE_KIND_MODIFIERS=f.BADGE_KIND_MODIFIERS,exports.BADGE_TYPE_MODIFIERS=f.BADGE_TYPE_MODIFIERS,exports.BREADCRUMBS_INVERTED_MODIFIER=y.BREADCRUMBS_INVERTED_MODIFIER,exports.BREADCRUMB_ITEM_SELECTED_MODIFIER=y.BREADCRUMB_ITEM_SELECTED_MODIFIER,exports.BUTTON_GROUP_ALIGNMENT=x.BUTTON_GROUP_ALIGNMENT,exports.BUTTON_ICON_SIZES=g.BUTTON_ICON_SIZES,exports.BUTTON_IMPORTANCE_MODIFIERS=g.BUTTON_IMPORTANCE_MODIFIERS,exports.BUTTON_KIND_MODIFIERS=g.BUTTON_KIND_MODIFIERS,exports.BUTTON_SIZE_MODIFIERS=g.BUTTON_SIZE_MODIFIERS,exports.BUTTON_TYPES=g.BUTTON_TYPES,exports.CDN_URL=B.CDN_URL,exports.CHIP_CLOSE_BUTTON_SIZE_MODIFIERS=D.CHIP_CLOSE_BUTTON_SIZE_MODIFIERS,exports.CHIP_ICON_SIZES=D.CHIP_ICON_SIZES,exports.CHIP_SIZES=Q.CHIP_SIZES,exports.CHIP_SIZE_MODIFIERS=D.CHIP_SIZE_MODIFIERS,exports.CHIP_TOP_POSITION=Q.CHIP_TOP_POSITION,exports.COMBOBOX_LABEL_SIZES=ke.COMBOBOX_LABEL_SIZES,exports.COMPONENT_SIZES=e.COMPONENT_SIZES,exports.CRITICAL=_.CRITICAL,exports.DEFAULT_PANEL_SIZE=W.l,exports.DEFAULT_PREFIX=n.DEFAULT_PREFIX,exports.DEFAULT_VALIDATION_MESSAGE_TYPE=n.DEFAULT_VALIDATION_MESSAGE_TYPE,exports.DESCRIPTION_SIZE_MODIFIERS=n.DESCRIPTION_SIZE_MODIFIERS,exports.DESCRIPTION_SIZE_TYPES=n.DESCRIPTION_SIZE_TYPES,exports.DROPDOWN_PADDING_CLASSES=Le.DROPDOWN_PADDING_CLASSES,exports.DT_BOX_AS_VALUES=v.DT_BOX_AS_VALUES,exports.DT_BOX_BORDER_COLOR_VALUES=v.DT_BOX_BORDER_COLOR_VALUES,exports.DT_BOX_BORDER_RADIUS_VALUES=v.DT_BOX_BORDER_RADIUS_VALUES,exports.DT_BOX_BORDER_WIDTH_VALUES=v.DT_BOX_BORDER_WIDTH_VALUES,exports.DT_BOX_INSET_SIDE_VALUES=v.DT_BOX_INSET_SIDE_VALUES,exports.DT_BOX_INSET_VALUES=v.DT_BOX_INSET_VALUES,exports.DT_BOX_LAYOUT_VALUES=v.DT_BOX_LAYOUT_VALUES,exports.DT_BOX_OVERFLOW_VALUES=v.DT_BOX_OVERFLOW_VALUES,exports.DT_BOX_POSITION_VALUES=v.DT_BOX_POSITION_VALUES,exports.DT_BOX_SCROLLBAR_VALUES=v.DT_BOX_SCROLLBAR_VALUES,exports.DT_BOX_SHADOW_VALUES=v.DT_BOX_SHADOW_VALUES,exports.DT_BOX_SPACING_VALUES=v.DT_BOX_SPACING_VALUES,exports.DT_BOX_SURFACE_VALUES=v.DT_BOX_SURFACE_VALUES,exports.DT_BOX_Z_INDEX_VALUES=v.DT_BOX_Z_INDEX_VALUES,exports.DT_DESCRIPTION_LIST_DIRECTION=Ne.DT_DESCRIPTION_LIST_DIRECTION,exports.DT_MODE_ISLAND_TYPES=rt.DT_MODE_ISLAND_TYPES,exports.DT_STACK_DIRECTION=N.DT_STACK_DIRECTION,exports.DT_STACK_GAP=N.DT_STACK_GAP,exports.DT_STACK_RESPONSIVE_BREAKPOINTS=N.DT_STACK_RESPONSIVE_BREAKPOINTS,exports.DT_TEXT_LIST_DEFAULT_TYPE=Y.DT_TEXT_LIST_DEFAULT_TYPE,exports.DT_TEXT_LIST_GAP=Y.DT_TEXT_LIST_GAP,exports.DT_TEXT_LIST_MARKERS=Y.DT_TEXT_LIST_MARKERS,exports.DT_TEXT_LIST_MARKER_TONES=Y.DT_TEXT_LIST_MARKER_TONES,exports.DT_TEXT_LIST_ORDERED_MARKERS=Y.DT_TEXT_LIST_ORDERED_MARKERS,exports.DT_TEXT_LIST_TYPES=Y.DT_TEXT_LIST_TYPES,exports.DT_TEXT_LIST_UNORDERED_MARKERS=Y.DT_TEXT_LIST_UNORDERED_MARKERS,exports.DialtoneLocalization=he.DialtoneLocalization,exports.DtAvatar=d.default,exports.DtBadge=le.default,exports.DtBanner=ye.default,exports.DtBox=be.default,exports.DtBreadcrumbItem=xe.default,exports.DtBreadcrumbs=b.default,exports.DtButton=ge.default,exports.DtButtonGroup=S.default,exports.DtCard=C.default,exports.DtCheckableInputMixin=a.CheckableMixin,exports.DtCheckbox=w.default,exports.DtCheckboxGroup=E.default,exports.DtChip=O.default,exports.DtCodeblock=k.default,exports.DtCollapsible=A.default,exports.DtCombobox=Oe.t,exports.DtComboboxMultiSelect=Dt.default,exports.DtComboboxWithPopover=Et.default,exports.DtDOMMixin=ee.default,exports.DtDatepicker=Me.t,exports.DtDescriptionList=Pe.default,exports.DtDropdown=Re.default,exports.DtDropdownSeparator=L.default,exports.DtEmoji=ze.default,exports.DtEmojiPicker=Ve.t,exports.DtEmojiTextWrapper=Ge.default,exports.DtEmptyState=qe.default,exports.DtFilterPill=Je.default,exports.DtFocusgroupDirective=jt.DtFocusgroupDirective,exports.DtFocustrapDirective=Mt.DtFocustrapDirective,exports.DtGroupableInputMixin=a.GroupableMixin,exports.DtHovercard=Ye.default,exports.DtIcon=ce.default,exports.DtIllustration=Ze.default,exports.DtImageViewer=Qe.default,exports.DtInput=Be.default,exports.DtInputGroup=T.default,exports.DtInputGroupMixin=ne.InputGroupMixin,exports.DtInputMixin=a.InputMixin,exports.DtItemLayout=M.default,exports.DtKeyboardListNavigationMixin=re.default,exports.DtKeyboardShortcut=$e.default,exports.DtLazyShow=Fe.default,exports.DtLink=me.default,exports.DtListItem=Se.default,exports.DtListItemGroup=tt.default,exports.DtLoader=pe.default,exports.DtModal=nt.default,exports.DtModalMixin=ie.default,exports.DtModeDirective=At.DtModeDirective,exports.DtModeIsland=it.default,exports.DtModeMixin=oe.default,exports.DtMotionText=Nt.default,exports.DtNotice=ve.default,exports.DtNoticeAction=_e.default,exports.DtNoticeContent=fe.default,exports.DtNoticeIcon=ue.default,exports.DtPagination=at.default,exports.DtPopover=Ie.default,exports.DtPresence=se.t,exports.DtProgressCircle=ot.default,exports.DtProse=st.default,exports.DtRadio=lt.default,exports.DtRadioGroup=ut.default,exports.DtResizable=dt.t,exports.DtResizableHandle=ft.t,exports.DtResizablePanel=pt.default,exports.DtRichTextEditor=mt.t,exports.DtRootLayout=ht.default,exports.DtScrollbarDirective=kt.DtScrollbarDirective,exports.DtScroller=gt.t,exports.DtSegmentedControl=_t.default,exports.DtSegmentedControlItem=vt.default,exports.DtSelectMenu=yt.default,exports.DtSkeleton=De.default,exports.DtSkeletonListItem=Ee.default,exports.DtSkeletonMixin=ae.default,exports.DtSkeletonParagraph=Te.default,exports.DtSkeletonShape=Ce.default,exports.DtSkeletonText=we.default,exports.DtSplitButton=xt.default,exports.DtStack=Ae.default,exports.DtTab=Ue.default,exports.DtTabGroup=He.default,exports.DtTabPanel=We.default,exports.DtText=de.default,exports.DtTextList=St.t,exports.DtTextListItem=Ct.t,exports.DtToast=wt.t,exports.DtToggle=Tt.default,exports.DtTooltip=je.default,exports.DtTooltipDirective=Ot.DtTooltipDirective,exports.DtValidationMessages=te.default,exports.EMOJIS_PER_ROW=B.EMOJIS_PER_ROW,exports.EMOJI_PICKER_SKIN_TONE_MODIFIERS=B.EMOJI_PICKER_SKIN_TONE_MODIFIERS,exports.EMPTY_STATE_SIZE_MODIFIERS=Ke.EMPTY_STATE_SIZE_MODIFIERS,exports.EVENT_KEYNAMES=n.EVENT_KEYNAMES,exports.HTML_ELEMENT_TYPE=n.HTML_ELEMENT_TYPE,exports.ICON_NAMES=p.ICON_NAMES,exports.ICON_POSITION_MODIFIERS=g.ICON_POSITION_MODIFIERS,exports.ICON_SIZE_MODIFIERS=p.ICON_SIZE_MODIFIERS,exports.ILLUSTRATION_NAMES=Xe.ILLUSTRATION_NAMES,exports.INPUT_SIZES=R.INPUT_SIZES,exports.INPUT_TYPES=R.INPUT_TYPES,exports.INVALID_COMBINATION=g.INVALID_COMBINATION,exports.LABEL_SIZE_MODIFIERS=n.LABEL_SIZE_MODIFIERS,exports.LAYOUT_PERCENT_VALUES=t.LAYOUT_PERCENT_VALUES,exports.LAYOUT_SIZE_VALUES=t.LAYOUT_SIZE_VALUES,exports.LAYOUT_VALUES=t.LAYOUT_VALUES,exports.LINK_KIND_MODIFIERS=_.LINK_KIND_MODIFIERS,exports.LINK_VARIANTS=_.LINK_VARIANTS,exports.LIST_ITEM_NAVIGATION_TYPES=j.LIST_ITEM_NAVIGATION_TYPES,exports.LIST_ITEM_TYPES=j.LIST_ITEM_TYPES,exports.MENTION=_.MENTION,exports.MIN_PANEL_SIZE_PX=W.u,exports.MODAL_BANNER_KINDS=V.MODAL_BANNER_KINDS,exports.MODAL_KIND_MODIFIERS=V.MODAL_KIND_MODIFIERS,exports.MOTION_TEXT_ANIMATION_MODES=$.MOTION_TEXT_ANIMATION_MODES,exports.MOTION_TEXT_SPEEDS=$.MOTION_TEXT_SPEEDS,exports.MOTION_TEXT_TIMING_PRESETS=$.MOTION_TEXT_TIMING_PRESETS,exports.MULTI_SELECT_SIZES=Q.MULTI_SELECT_SIZES,exports.MUTED=_.MUTED,exports.NOTICE_KINDS=m.NOTICE_KINDS,exports.NOTICE_ROLES=m.NOTICE_ROLES,exports.POPOVER_APPEND_TO_VALUES=F.POPOVER_APPEND_TO_VALUES,exports.POPOVER_CONTENT_WIDTHS=F.POPOVER_CONTENT_WIDTHS,exports.POPOVER_DIRECTIONS=F.POPOVER_DIRECTIONS,exports.POPOVER_HEADER_FOOTER_PADDING_CLASSES=F.POPOVER_HEADER_FOOTER_PADDING_CLASSES,exports.POPOVER_INITIAL_FOCUS_STRINGS=F.POPOVER_INITIAL_FOCUS_STRINGS,exports.POPOVER_PADDING_CLASSES=F.POPOVER_PADDING_CLASSES,exports.POPOVER_ROLES=F.POPOVER_ROLES,exports.POPOVER_STICKY_VALUES=F.POPOVER_STICKY_VALUES,exports.POSITIVE=_.POSITIVE,exports.PRESENCE_STATES=l.PRESENCE_STATES,exports.PRESENCE_STATES_LIST=l.PRESENCE_STATES_LIST,exports.PROGRESS_CIRCLE_KINDS=H.PROGRESS_CIRCLE_KINDS,exports.PROGRESS_CIRCLE_KIND_DEFAULT=H.PROGRESS_CIRCLE_KIND_DEFAULT,exports.PROGRESS_CIRCLE_SIZES=H.PROGRESS_CIRCLE_SIZES,exports.PROGRESS_CIRCLE_SIZE_DEFAULT=H.PROGRESS_CIRCLE_SIZE_DEFAULT,exports.PROSE_ALLOWED_ATTRIBUTES=U.PROSE_ALLOWED_ATTRIBUTES,exports.PROSE_DENSITY_MODIFIERS=U.PROSE_DENSITY_MODIFIERS,exports.PROSE_DISALLOWED_ELEMENTS=U.PROSE_DISALLOWED_ELEMENTS,exports.PROSE_SIZE_MODIFIERS=U.PROSE_SIZE_MODIFIERS,exports.RADIO_INPUT_VALIDATION_CLASSES=ct.RADIO_INPUT_VALIDATION_CLASSES,exports.RESIZABLE_CONTEXT_KEY=W.d,exports.RESIZABLE_HANDLE_CENTER_OFFSET_PX=W.f,exports.RICH_TEXT_EDITOR_AUTOFOCUS_TYPES=G.RICH_TEXT_EDITOR_AUTOFOCUS_TYPES,exports.RICH_TEXT_EDITOR_OUTPUT_FORMATS=G.RICH_TEXT_EDITOR_OUTPUT_FORMATS,exports.ROOT_LAYOUT_RESPONSIVE_BREAKPOINTS=K.ROOT_LAYOUT_RESPONSIVE_BREAKPOINTS,exports.ROOT_LAYOUT_SIDEBAR_POSITIONS=K.ROOT_LAYOUT_SIDEBAR_POSITIONS,exports.SEGMENTED_CONTROL_ACTIVATION_MODES=q.SEGMENTED_CONTROL_ACTIVATION_MODES,exports.SEGMENTED_CONTROL_ACTIVATION_MODE_DEFAULT=q.SEGMENTED_CONTROL_ACTIVATION_MODE_DEFAULT,exports.SEGMENTED_CONTROL_CONTEXT_KEY=q.SEGMENTED_CONTROL_CONTEXT_KEY,exports.SEGMENTED_CONTROL_FOCUS_KEY=q.SEGMENTED_CONTROL_FOCUS_KEY,exports.SEGMENTED_CONTROL_ORIENTATIONS=q.SEGMENTED_CONTROL_ORIENTATIONS,exports.SEGMENTED_CONTROL_ORIENTATION_DEFAULT=q.SEGMENTED_CONTROL_ORIENTATION_DEFAULT,exports.SEGMENTED_CONTROL_SELECT_KEY=q.SEGMENTED_CONTROL_SELECT_KEY,exports.SEGMENTED_CONTROL_SIZES=q.SEGMENTED_CONTROL_SIZES,exports.SEGMENTED_CONTROL_SIZE_DEFAULT=q.SEGMENTED_CONTROL_SIZE_DEFAULT,exports.SEGMENTED_CONTROL_SIZE_MODIFIERS=q.SEGMENTED_CONTROL_SIZE_MODIFIERS,exports.SEGMENTED_CONTROL_SPREADS=q.SEGMENTED_CONTROL_SPREADS,exports.SEGMENTED_CONTROL_SPREAD_DEFAULT=q.SEGMENTED_CONTROL_SPREAD_DEFAULT,exports.SELECT_SIZE_MODIFIERS=J.SELECT_SIZE_MODIFIERS,exports.SELECT_STATE_MODIFIERS=J.SELECT_STATE_MODIFIERS,exports.SHORTCUTS_ALIASES_LIST=et.SHORTCUTS_ALIASES_LIST,exports.SKELETON_HEADING_HEIGHTS=o.SKELETON_HEADING_HEIGHTS,exports.SKELETON_RIPPLE_DURATION=o.SKELETON_RIPPLE_DURATION,exports.SKELETON_SHAPES=o.SKELETON_SHAPES,exports.SKELETON_SHAPE_SIZES=o.SKELETON_SHAPE_SIZES,exports.SKELETON_TEXT_TYPES=o.SKELETON_TEXT_TYPES,exports.SPLIT_BUTTON_ICON_SIZES=bt.SPLIT_BUTTON_ICON_SIZES,exports.TAB_ACTIVATION_MODES=z.TAB_ACTIVATION_MODES,exports.TAB_GROUP_KINDS=z.TAB_GROUP_KINDS,exports.TAB_LIST_IMPORTANCE_MODIFIERS=z.TAB_LIST_IMPORTANCE_MODIFIERS,exports.TAB_LIST_KIND_MODIFIERS=z.TAB_LIST_KIND_MODIFIERS,exports.TAB_LIST_SIZES=z.TAB_LIST_SIZES,exports.TAB_LIST_SIZE_MODIFIERS=z.TAB_LIST_SIZE_MODIFIERS,exports.TAB_SPREADS=z.TAB_SPREADS,exports.TEXT_ALIGN_MODIFIERS=h.TEXT_ALIGN_MODIFIERS,exports.TEXT_BOX_TRIM_MODIFIERS=h.TEXT_BOX_TRIM_MODIFIERS,exports.TEXT_DENSITY_MODIFIERS=h.TEXT_DENSITY_MODIFIERS,exports.TEXT_FAMILY_MODIFIERS=h.TEXT_FAMILY_MODIFIERS,exports.TEXT_FONT_SIZE_MODIFIERS=h.TEXT_FONT_SIZE_MODIFIERS,exports.TEXT_HEADLINE_ONLY_SIZES=h.TEXT_HEADLINE_ONLY_SIZES,exports.TEXT_HEADLINE_SIZES=e.TEXT_HEADLINE_SIZES,exports.TEXT_ITALIC_CLASS=h.TEXT_ITALIC_CLASS,exports.TEXT_KIND_MODIFIERS=h.TEXT_KIND_MODIFIERS,exports.TEXT_LINE_CLAMP_CLASS=h.TEXT_LINE_CLAMP_CLASS,exports.TEXT_NUMERIC_CLASS=h.TEXT_NUMERIC_CLASS,exports.TEXT_SIZE_MODIFIERS=h.TEXT_SIZE_MODIFIERS,exports.TEXT_STRENGTH_MODIFIERS=h.TEXT_STRENGTH_MODIFIERS,exports.TEXT_TONE_MODIFIERS=h.TEXT_TONE_MODIFIERS,exports.TEXT_TRUNCATE_CLASS=h.TEXT_TRUNCATE_CLASS,exports.TEXT_VARIANT_MODIFIERS=h.TEXT_VARIANT_MODIFIERS,exports.TEXT_WRAP_MODIFIERS=h.TEXT_WRAP_MODIFIERS,exports.TOAST_MIN_DURATION=X.TOAST_MIN_DURATION,exports.TOAST_ROLES=X.TOAST_ROLES,exports.TOGGLE_CHECKED_VALUES=Z.TOGGLE_CHECKED_VALUES,exports.TOGGLE_SIZE_MODIFIERS=Z.TOGGLE_SIZE_MODIFIERS,exports.TOOLTIP_DELAY_MS=P.TOOLTIP_DELAY_MS,exports.TOOLTIP_DIRECTIONS=P.TOOLTIP_DIRECTIONS,exports.TOOLTIP_HIDE_ON_CLICK_VARIANTS=P.TOOLTIP_HIDE_ON_CLICK_VARIANTS,exports.TOOLTIP_KIND_MODIFIERS=P.TOOLTIP_KIND_MODIFIERS,exports.TOOLTIP_STICKY_VALUES=P.TOOLTIP_STICKY_VALUES,exports.VALIDATION_MESSAGE_TYPES=n.VALIDATION_MESSAGE_TYPES,exports.WARNING=_.WARNING,exports.buildHandleId=W.p,exports.capitalizeFirstLetter=i.capitalizeFirstLetter,exports.codeToEmojiData=c.codeToEmojiData,exports.colorToFamilyVariant=u.colorToFamilyVariant,exports.computeAvatarHex=u.computeAvatarHex,Object.defineProperty(exports,`customEmojiAssetUrl`,{enumerable:!0,get:function(){return c.customEmojiAssetUrl}}),exports.debounce=i.debounce,exports.defaultEmojiAssetUrl=c.defaultEmojiAssetUrl,exports.disableRootScrolling=i.disableRootScrolling,exports.durationInHHMM=s.durationInHHMM,Object.defineProperty(exports,`emojiFileExtensionLarge`,{enumerable:!0,get:function(){return c.emojiFileExtensionLarge}}),Object.defineProperty(exports,`emojiFileExtensionSmall`,{enumerable:!0,get:function(){return c.emojiFileExtensionSmall}}),Object.defineProperty(exports,`emojiImageUrlLarge`,{enumerable:!0,get:function(){return c.emojiImageUrlLarge}}),Object.defineProperty(exports,`emojiImageUrlSmall`,{enumerable:!0,get:function(){return c.emojiImageUrlSmall}}),exports.emojiJson=c.emojiJson,exports.emojiRegex=c.emojiRegex,exports.emojiShortCodeRegex=c.emojiShortCodeRegex,exports.emojiVersion=c.emojiVersion,exports.enableRootScrolling=i.enableRootScrolling,exports.extractNonListeners=i.extractNonListeners,exports.extractVueListeners=i.extractVueListeners,exports.filterFormattedMessages=i.filterFormattedMessages,exports.filterValidShortCodes=c.filterValidShortCodes,exports.findEmojis=c.findEmojis,exports.findFirstFocusableNode=i.findFirstFocusableNode,exports.findShortCodes=c.findShortCodes,exports.flushPromises=i.flushPromises,exports.formatLong=I.formatLong,exports.formatMedium=I.formatMedium,exports.formatMessages=i.formatMessages,exports.formatNoYear=I.formatNoYear,exports.formatNumerical=I.formatNumerical,exports.formatShort=I.formatShort,exports.getDateMedium=s.getDateMedium,exports.getEmojiData=c.getEmojiData,exports.getEmojiShortCode=c.getEmojiShortCode,exports.getLinkKindModifier=_.getLinkKindModifier,exports.getPhoneNumberRegex=i.getPhoneNumberRegex,exports.getRandomElement=i.getRandomElement,exports.getRandomFamilyVariant=u.getRandomFamilyVariant,exports.getRandomInt=i.getRandomInt,exports.getUniqueString=i.getUniqueString,exports.getValidationState=i.getValidationState,exports.hasFormattedMessageOfType=i.hasFormattedMessageOfType,exports.hasPercentageMinSize=W.t,exports.hasSlotContent=i.hasSlotContent,exports.htmlFragment=i.htmlFragment,exports.invalidateTokenCache=W.n,exports.isCSSValue=W.r,exports.isEmailAddress=i.isEmailAddress,exports.isOutOfViewPort=i.isOutOfViewPort,exports.isPercentageValue=W.i,exports.isPhoneNumber=i.isPhoneNumber,exports.isURL=i.isURL,exports.isValidSizing=W.a,exports.javaHashCode=i.javaHashCode,exports.kebabCaseToPascalCase=i.kebabCaseToPascalCase,exports.linkRegex=i.linkRegex,exports.parseSizeToPixels=W.o,exports.pascalCaseToKebabCase=i.pascalCaseToKebabCase,exports.pixelsToPercentage=W.s,exports.relativeDate=s.relativeDate,exports.removeClassStyleAttrs=i.removeClassStyleAttrs,exports.returnFirstEl=i.returnFirstEl,exports.safeConcatStrings=i.safeConcatStrings,exports.setCustomEmojiJson=c.setCustomEmojiJson,exports.setCustomEmojiUrl=c.setCustomEmojiUrl,exports.setDateLocale=s.setDateLocale,exports.setEmojiAssetUrlLarge=c.setEmojiAssetUrlLarge,exports.setEmojiAssetUrlSmall=c.setEmojiAssetUrlSmall,exports.shortcodeToEmojiData=c.shortcodeToEmojiData,exports.stringToUnicode=c.stringToUnicode,exports.toFluentKeyString=i.toFluentKeyString,exports.unicodeToString=c.unicodeToString,exports.validateContainerSize=W.c,exports.validateCustomEmojiJson=c.validateCustomEmojiJson,exports.validationMessageValidator=r.validationMessageValidator,exports.warnIfUnmounted=i.warnIfUnmounted;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const ee=require(`./common/mixins/dom.cjs`),e=require(`./common/constants/sizes.cjs`),t=require(`./common/constants/layout.cjs`),n=require(`./common/constants/index.cjs`),r=require(`./common/validators/index.cjs`),i=require(`./common/utils/index.cjs`),a=require(`./common/mixins/input.cjs`),te=require(`./lib/validation-messages/validation-messages.cjs`),ne=require(`./common/mixins/input-group.cjs`),re=require(`./common/mixins/keyboard-list-navigation.cjs`),ie=require(`./common/mixins/modal.cjs`),o=require(`./lib/skeleton/skeleton-constants.cjs`),ae=require(`./common/mixins/skeleton.cjs`),oe=require(`./common/mixins/mode.cjs`),s=require(`./common/dates/index.cjs`),c=require(`./common/emoji/index.cjs`),l=require(`./lib/presence/presence-constants.cjs`),se=require(`./Presence-DLM3JR-n.cjs`),u=require(`./lib/avatar/avatar-constants.cjs`),d=require(`./lib/avatar/avatar.cjs`),f=require(`./lib/badge/badge-constants.cjs`),p=require(`./lib/icon/icon-constants.cjs`),ce=require(`./lib/icon/icon.cjs`),le=require(`./lib/badge/badge.cjs`),m=require(`./lib/notice/notice-constants.cjs`),ue=require(`./lib/notice/notice-icon.cjs`),h=require(`./lib/text/text-constants.cjs`),de=require(`./lib/text/text.cjs`),fe=require(`./lib/notice/notice-content.cjs`),pe=require(`./lib/loader/loader.cjs`),g=require(`./lib/button/button-constants.cjs`),_=require(`./lib/link/link-constants.cjs`),me=require(`./lib/link/link.cjs`),he=require(`./localization/index.cjs`),ge=require(`./lib/button/button.cjs`),_e=require(`./lib/notice/notice-action.cjs`),ve=require(`./lib/notice/notice.cjs`),ye=require(`./lib/banner/banner.cjs`);require(`./lib/banner/index.cjs`);const v=require(`./lib/box/box-constants.cjs`),be=require(`./lib/box/box.cjs`);require(`./lib/box/index.cjs`);const y=require(`./lib/breadcrumbs/breadcrumbs-constants.cjs`),xe=require(`./lib/breadcrumbs/breadcrumb-item.cjs`),b=require(`./lib/breadcrumbs/breadcrumbs.cjs`);require(`./lib/breadcrumbs/index.cjs`);const x=require(`./lib/button-group/button-group-constants.cjs`),S=require(`./lib/button-group/button-group.cjs`);require(`./lib/button-group/index.cjs`);const C=require(`./lib/card/card.cjs`);require(`./lib/card/index.cjs`);const w=require(`./lib/checkbox/checkbox.cjs`),T=require(`./lib/input-group/input-group.cjs`),E=require(`./lib/checkbox-group/checkbox-group.cjs`),D=require(`./lib/chip/chip-constants.cjs`),O=require(`./lib/chip/chip.cjs`);require(`./lib/chip/index.cjs`);const k=require(`./lib/codeblock/codeblock.cjs`);require(`./lib/codeblock/index.cjs`);const A=require(`./lib/collapsible/collapsible.cjs`);require(`./lib/collapsible/index.cjs`);const j=require(`./lib/list-item/list-item-constants.cjs`),M=require(`./lib/item-layout/item-layout.cjs`),Se=require(`./lib/list-item/list-item.cjs`),Ce=require(`./lib/skeleton/skeleton-shape.cjs`),we=require(`./lib/skeleton/skeleton-text.cjs`),Te=require(`./lib/skeleton/skeleton-paragraph.cjs`),Ee=require(`./lib/skeleton/skeleton-list-item.cjs`),De=require(`./lib/skeleton/skeleton.cjs`),Oe=require(`./Combobox-96zAPv6d.cjs`),ke=require(`./lib/combobox/combobox-constants.cjs`),N=require(`./lib/stack/stack-constants.cjs`),Ae=require(`./lib/stack/stack.cjs`),P=require(`./lib/tooltip/tooltip-constants.cjs`),F=require(`./lib/popover/popover-constants.cjs`),je=require(`./lib/tooltip/tooltip.cjs`),Me=require(`./Datepicker-DkGmnVc8.cjs`),I=require(`./lib/datepicker/format-utils.cjs`);require(`./lib/datepicker/index.cjs`);const Ne=require(`./lib/description-list/description-list-constants.cjs`),Pe=require(`./lib/description-list/description-list.cjs`);require(`./lib/description-list/index.cjs`);const Fe=require(`./lib/lazy-show/lazy-show.cjs`),Ie=require(`./lib/popover/popover.cjs`),Le=require(`./lib/dropdown/dropdown-constants.cjs`),Re=require(`./lib/dropdown/dropdown.cjs`),L=require(`./lib/dropdown/dropdown-separator.cjs`),ze=require(`./lib/emoji/emoji.cjs`),R=require(`./lib/input/input-constants.cjs`),Be=require(`./lib/input/input.cjs`),Ve=require(`./EmojiPicker-KO1yhODv.cjs`),z=require(`./lib/tab/tabs-constants.cjs`),He=require(`./lib/tab/tab-group.cjs`),Ue=require(`./lib/tab/tab.cjs`),We=require(`./lib/tab/tab-panel.cjs`),B=require(`./lib/emoji-picker/emoji-picker-constants.cjs`);require(`./lib/emoji-picker/index.cjs`);const Ge=require(`./lib/emoji-text-wrapper/emoji-text-wrapper.cjs`);require(`./lib/emoji-text-wrapper/index.cjs`);const Ke=require(`./lib/empty-state/empty-state-constants.cjs`),qe=require(`./lib/empty-state/empty-state.cjs`);require(`./lib/empty-state/index.cjs`);const Je=require(`./lib/filter-pill/filter-pill.cjs`);require(`./lib/filter-pill/index.cjs`);const Ye=require(`./lib/hovercard/hovercard.cjs`);require(`./lib/hovercard/index.cjs`);const Xe=require(`./lib/illustration/illustration-constants.cjs`),Ze=require(`./lib/illustration/illustration.cjs`);require(`./lib/illustration/index.cjs`);const Qe=require(`./lib/image-viewer/image-viewer.cjs`);require(`./lib/image-viewer/index.cjs`);const $e=require(`./lib/keyboard-shortcut/keyboard-shortcut.cjs`),et=require(`./lib/keyboard-shortcut/keyboard-shortcut-constants.cjs`);require(`./lib/keyboard-shortcut/index.cjs`);const tt=require(`./lib/list-item-group/list-item-group.cjs`);require(`./lib/list-item-group/index.cjs`),require(`./lib/loader/index.cjs`);const V=require(`./lib/modal/modal-constants.cjs`),nt=require(`./lib/modal/modal.cjs`);require(`./lib/modal/index.cjs`);const rt=require(`./lib/mode-island/mode-island-constants.cjs`),it=require(`./lib/mode-island/mode-island.cjs`);require(`./lib/mode-island/index.cjs`);const at=require(`./lib/pagination/pagination.cjs`);require(`./lib/pagination/index.cjs`);const H=require(`./lib/progress-circle/progress-circle-constants.cjs`),ot=require(`./lib/progress-circle/progress-circle.cjs`);require(`./lib/progress-circle/index.cjs`);const U=require(`./lib/prose/prose-constants.cjs`),st=require(`./lib/prose/prose.cjs`);require(`./lib/prose/index.cjs`);const ct=require(`./lib/radio/radio-constants.cjs`),lt=require(`./lib/radio/radio.cjs`);require(`./lib/radio/index.cjs`);const ut=require(`./lib/radio-group/radio-group.cjs`);require(`./lib/radio-group/index.cjs`);const W=require(`./ResizableUtils-DMfertP2.cjs`),dt=require(`./Resizable-DBRsEUf3.cjs`),ft=require(`./ResizableHandle-DQG7a5D9.cjs`),pt=require(`./lib/resizable/resizable-panel.cjs`);require(`./lib/resizable/index.cjs`);const mt=require(`./RichTextEditor-EHgahp8r.cjs`),G=require(`./lib/rich-text-editor/rich-text-editor-constants.cjs`);require(`./lib/rich-text-editor/index.cjs`);const K=require(`./lib/root-layout/root-layout-constants.cjs`),ht=require(`./lib/root-layout/root-layout.cjs`);require(`./lib/root-layout/index.cjs`);const gt=require(`./Scroller-Du2kJsTR.cjs`);require(`./lib/scroller/index.cjs`);const q=require(`./lib/segmented-control/segmented-control-constants.cjs`),_t=require(`./lib/segmented-control/segmented-control.cjs`),vt=require(`./lib/segmented-control/segmented-control-item.cjs`);require(`./lib/segmented-control/index.cjs`);const J=require(`./lib/select-menu/select-menu-constants.cjs`),yt=require(`./lib/select-menu/select-menu.cjs`);require(`./lib/select-menu/index.cjs`);const bt=require(`./lib/split-button/split-button-constants.cjs`),xt=require(`./lib/split-button/split-button.cjs`);require(`./lib/split-button/index.cjs`);const Y=require(`./lib/text-list/text-list-constants.cjs`),St=require(`./TextList-rS1MQdPB.cjs`),Ct=require(`./TextListItem-CF6DzdvT.cjs`);require(`./lib/text-list/index.cjs`);const X=require(`./lib/toast/toast-constants.cjs`),wt=require(`./Toast-CN9x3jKH.cjs`);require(`./lib/toast/index.cjs`);const Z=require(`./lib/toggle/toggle-constants.cjs`),Tt=require(`./lib/toggle/toggle.cjs`);require(`./lib/toggle/index.cjs`);const Et=require(`./lib/combobox-with-popover/combobox-with-popover.cjs`),Q=require(`./lib/combobox-multi-select/combobox-multi-select-constants.cjs`),Dt=require(`./lib/combobox-multi-select/combobox-multi-select.cjs`);require(`./lib/combobox-multi-select/index.cjs`),require(`./lib/combobox-with-popover/index.cjs`);const Ot=require(`./lib/tooltip-directive/tooltip.cjs`);require(`./lib/tooltip-directive/index.cjs`);const kt=require(`./lib/scrollbar-directive/scrollbar.cjs`);require(`./lib/scrollbar-directive/index.cjs`);const At=require(`./lib/mode-directive/mode.cjs`);require(`./lib/mode-directive/index.cjs`);const jt=require(`./lib/focusgroup-directive/focusgroup.cjs`);require(`./lib/focusgroup-directive/index.cjs`);const Mt=require(`./lib/focustrap-directive/focustrap.cjs`);require(`./lib/focustrap-directive/index.cjs`);const $=require(`./lib/motion-text/motion-text-constants.cjs`),Nt=require(`./lib/motion-text/motion-text.cjs`);require(`./lib/motion-text/index.cjs`),exports.ARROW_KEYS=B.ARROW_KEYS,exports.AVATAR_CHROMA=u.AVATAR_CHROMA,exports.AVATAR_FAMILY_COUNT=u.AVATAR_FAMILY_COUNT,exports.AVATAR_GROUP_VALIDATOR=u.AVATAR_GROUP_VALIDATOR,exports.AVATAR_HUE_OFFSETS=u.AVATAR_HUE_OFFSETS,exports.AVATAR_ICON_SIZES=u.AVATAR_ICON_SIZES,exports.AVATAR_KIND_MODIFIERS=u.AVATAR_KIND_MODIFIERS,exports.AVATAR_LIGHTNESS=u.AVATAR_LIGHTNESS,exports.AVATAR_PRESENCE_SIZE_MODIFIERS=u.AVATAR_PRESENCE_SIZE_MODIFIERS,exports.AVATAR_PRESENCE_STATES=u.AVATAR_PRESENCE_STATES,exports.AVATAR_SIZE_MODIFIERS=u.AVATAR_SIZE_MODIFIERS,exports.AVATAR_VARIANT_COUNT=u.AVATAR_VARIANT_COUNT,exports.BADGE_DECORATION_MODIFIERS=f.BADGE_DECORATION_MODIFIERS,exports.BADGE_KIND_MODIFIERS=f.BADGE_KIND_MODIFIERS,exports.BADGE_TYPE_MODIFIERS=f.BADGE_TYPE_MODIFIERS,exports.BREADCRUMBS_INVERTED_MODIFIER=y.BREADCRUMBS_INVERTED_MODIFIER,exports.BREADCRUMB_ITEM_SELECTED_MODIFIER=y.BREADCRUMB_ITEM_SELECTED_MODIFIER,exports.BUTTON_GROUP_ALIGNMENT=x.BUTTON_GROUP_ALIGNMENT,exports.BUTTON_ICON_SIZES=g.BUTTON_ICON_SIZES,exports.BUTTON_IMPORTANCE_MODIFIERS=g.BUTTON_IMPORTANCE_MODIFIERS,exports.BUTTON_KIND_MODIFIERS=g.BUTTON_KIND_MODIFIERS,exports.BUTTON_SIZE_MODIFIERS=g.BUTTON_SIZE_MODIFIERS,exports.BUTTON_TYPES=g.BUTTON_TYPES,exports.CDN_URL=B.CDN_URL,exports.CHIP_CLOSE_BUTTON_SIZE_MODIFIERS=D.CHIP_CLOSE_BUTTON_SIZE_MODIFIERS,exports.CHIP_ICON_SIZES=D.CHIP_ICON_SIZES,exports.CHIP_SIZES=Q.CHIP_SIZES,exports.CHIP_SIZE_MODIFIERS=D.CHIP_SIZE_MODIFIERS,exports.CHIP_TOP_POSITION=Q.CHIP_TOP_POSITION,exports.COMBOBOX_LABEL_SIZES=ke.COMBOBOX_LABEL_SIZES,exports.COMPONENT_SIZES=e.COMPONENT_SIZES,exports.CRITICAL=_.CRITICAL,exports.DEFAULT_PANEL_SIZE=W.l,exports.DEFAULT_PREFIX=n.DEFAULT_PREFIX,exports.DEFAULT_VALIDATION_MESSAGE_TYPE=n.DEFAULT_VALIDATION_MESSAGE_TYPE,exports.DESCRIPTION_SIZE_MODIFIERS=n.DESCRIPTION_SIZE_MODIFIERS,exports.DESCRIPTION_SIZE_TYPES=n.DESCRIPTION_SIZE_TYPES,exports.DROPDOWN_PADDING_CLASSES=Le.DROPDOWN_PADDING_CLASSES,exports.DT_BOX_AS_VALUES=v.DT_BOX_AS_VALUES,exports.DT_BOX_BORDER_COLOR_VALUES=v.DT_BOX_BORDER_COLOR_VALUES,exports.DT_BOX_BORDER_RADIUS_VALUES=v.DT_BOX_BORDER_RADIUS_VALUES,exports.DT_BOX_BORDER_WIDTH_VALUES=v.DT_BOX_BORDER_WIDTH_VALUES,exports.DT_BOX_INSET_SIDE_VALUES=v.DT_BOX_INSET_SIDE_VALUES,exports.DT_BOX_INSET_VALUES=v.DT_BOX_INSET_VALUES,exports.DT_BOX_LAYOUT_VALUES=v.DT_BOX_LAYOUT_VALUES,exports.DT_BOX_OVERFLOW_VALUES=v.DT_BOX_OVERFLOW_VALUES,exports.DT_BOX_POSITION_VALUES=v.DT_BOX_POSITION_VALUES,exports.DT_BOX_SCROLLBAR_VALUES=v.DT_BOX_SCROLLBAR_VALUES,exports.DT_BOX_SHADOW_VALUES=v.DT_BOX_SHADOW_VALUES,exports.DT_BOX_SPACING_VALUES=v.DT_BOX_SPACING_VALUES,exports.DT_BOX_SURFACE_VALUES=v.DT_BOX_SURFACE_VALUES,exports.DT_BOX_Z_INDEX_VALUES=v.DT_BOX_Z_INDEX_VALUES,exports.DT_DESCRIPTION_LIST_DIRECTION=Ne.DT_DESCRIPTION_LIST_DIRECTION,exports.DT_MODE_ISLAND_TYPES=rt.DT_MODE_ISLAND_TYPES,exports.DT_STACK_DIRECTION=N.DT_STACK_DIRECTION,exports.DT_STACK_GAP=N.DT_STACK_GAP,exports.DT_STACK_RESPONSIVE_BREAKPOINTS=N.DT_STACK_RESPONSIVE_BREAKPOINTS,exports.DT_TEXT_LIST_DEFAULT_TYPE=Y.DT_TEXT_LIST_DEFAULT_TYPE,exports.DT_TEXT_LIST_GAP=Y.DT_TEXT_LIST_GAP,exports.DT_TEXT_LIST_MARKERS=Y.DT_TEXT_LIST_MARKERS,exports.DT_TEXT_LIST_MARKER_TONES=Y.DT_TEXT_LIST_MARKER_TONES,exports.DT_TEXT_LIST_ORDERED_MARKERS=Y.DT_TEXT_LIST_ORDERED_MARKERS,exports.DT_TEXT_LIST_TYPES=Y.DT_TEXT_LIST_TYPES,exports.DT_TEXT_LIST_UNORDERED_MARKERS=Y.DT_TEXT_LIST_UNORDERED_MARKERS,exports.DialtoneLocalization=he.DialtoneLocalization,exports.DtAvatar=d.default,exports.DtBadge=le.default,exports.DtBanner=ye.default,exports.DtBox=be.default,exports.DtBreadcrumbItem=xe.default,exports.DtBreadcrumbs=b.default,exports.DtButton=ge.default,exports.DtButtonGroup=S.default,exports.DtCard=C.default,exports.DtCheckableInputMixin=a.CheckableMixin,exports.DtCheckbox=w.default,exports.DtCheckboxGroup=E.default,exports.DtChip=O.default,exports.DtCodeblock=k.default,exports.DtCollapsible=A.default,exports.DtCombobox=Oe.t,exports.DtComboboxMultiSelect=Dt.default,exports.DtComboboxWithPopover=Et.default,exports.DtDOMMixin=ee.default,exports.DtDatepicker=Me.t,exports.DtDescriptionList=Pe.default,exports.DtDropdown=Re.default,exports.DtDropdownSeparator=L.default,exports.DtEmoji=ze.default,exports.DtEmojiPicker=Ve.t,exports.DtEmojiTextWrapper=Ge.default,exports.DtEmptyState=qe.default,exports.DtFilterPill=Je.default,exports.DtFocusgroupDirective=jt.DtFocusgroupDirective,exports.DtFocustrapDirective=Mt.DtFocustrapDirective,exports.DtGroupableInputMixin=a.GroupableMixin,exports.DtHovercard=Ye.default,exports.DtIcon=ce.default,exports.DtIllustration=Ze.default,exports.DtImageViewer=Qe.default,exports.DtInput=Be.default,exports.DtInputGroup=T.default,exports.DtInputGroupMixin=ne.InputGroupMixin,exports.DtInputMixin=a.InputMixin,exports.DtItemLayout=M.default,exports.DtKeyboardListNavigationMixin=re.default,exports.DtKeyboardShortcut=$e.default,exports.DtLazyShow=Fe.default,exports.DtLink=me.default,exports.DtListItem=Se.default,exports.DtListItemGroup=tt.default,exports.DtLoader=pe.default,exports.DtModal=nt.default,exports.DtModalMixin=ie.default,exports.DtModeDirective=At.DtModeDirective,exports.DtModeIsland=it.default,exports.DtModeMixin=oe.default,exports.DtMotionText=Nt.default,exports.DtNotice=ve.default,exports.DtNoticeAction=_e.default,exports.DtNoticeContent=fe.default,exports.DtNoticeIcon=ue.default,exports.DtPagination=at.default,exports.DtPopover=Ie.default,exports.DtPresence=se.t,exports.DtProgressCircle=ot.default,exports.DtProse=st.default,exports.DtRadio=lt.default,exports.DtRadioGroup=ut.default,exports.DtResizable=dt.t,exports.DtResizableHandle=ft.t,exports.DtResizablePanel=pt.default,exports.DtRichTextEditor=mt.t,exports.DtRootLayout=ht.default,exports.DtScrollbarDirective=kt.DtScrollbarDirective,exports.DtScroller=gt.t,exports.DtSegmentedControl=_t.default,exports.DtSegmentedControlItem=vt.default,exports.DtSelectMenu=yt.default,exports.DtSkeleton=De.default,exports.DtSkeletonListItem=Ee.default,exports.DtSkeletonMixin=ae.default,exports.DtSkeletonParagraph=Te.default,exports.DtSkeletonShape=Ce.default,exports.DtSkeletonText=we.default,exports.DtSplitButton=xt.default,exports.DtStack=Ae.default,exports.DtTab=Ue.default,exports.DtTabGroup=He.default,exports.DtTabPanel=We.default,exports.DtText=de.default,exports.DtTextList=St.t,exports.DtTextListItem=Ct.t,exports.DtToast=wt.t,exports.DtToggle=Tt.default,exports.DtTooltip=je.default,exports.DtTooltipDirective=Ot.DtTooltipDirective,exports.DtValidationMessages=te.default,exports.EMOJIS_PER_ROW=B.EMOJIS_PER_ROW,exports.EMOJI_PICKER_SKIN_TONE_MODIFIERS=B.EMOJI_PICKER_SKIN_TONE_MODIFIERS,exports.EMPTY_STATE_SIZE_MODIFIERS=Ke.EMPTY_STATE_SIZE_MODIFIERS,exports.EVENT_KEYNAMES=n.EVENT_KEYNAMES,exports.HTML_ELEMENT_TYPE=n.HTML_ELEMENT_TYPE,exports.ICON_NAMES=p.ICON_NAMES,exports.ICON_POSITION_MODIFIERS=g.ICON_POSITION_MODIFIERS,exports.ICON_SIZE_MODIFIERS=p.ICON_SIZE_MODIFIERS,exports.ILLUSTRATION_NAMES=Xe.ILLUSTRATION_NAMES,exports.INPUT_SIZES=R.INPUT_SIZES,exports.INPUT_TYPES=R.INPUT_TYPES,exports.INVALID_COMBINATION=g.INVALID_COMBINATION,exports.LABEL_SIZE_MODIFIERS=n.LABEL_SIZE_MODIFIERS,exports.LAYOUT_PERCENT_VALUES=t.LAYOUT_PERCENT_VALUES,exports.LAYOUT_SIZE_VALUES=t.LAYOUT_SIZE_VALUES,exports.LAYOUT_VALUES=t.LAYOUT_VALUES,exports.LINK_KIND_MODIFIERS=_.LINK_KIND_MODIFIERS,exports.LINK_VARIANTS=_.LINK_VARIANTS,exports.LIST_ITEM_NAVIGATION_TYPES=j.LIST_ITEM_NAVIGATION_TYPES,exports.LIST_ITEM_TYPES=j.LIST_ITEM_TYPES,exports.MENTION=_.MENTION,exports.MIN_PANEL_SIZE_PX=W.u,exports.MODAL_BANNER_KINDS=V.MODAL_BANNER_KINDS,exports.MODAL_KIND_MODIFIERS=V.MODAL_KIND_MODIFIERS,exports.MOTION_TEXT_ANIMATION_MODES=$.MOTION_TEXT_ANIMATION_MODES,exports.MOTION_TEXT_SPEEDS=$.MOTION_TEXT_SPEEDS,exports.MOTION_TEXT_TIMING_PRESETS=$.MOTION_TEXT_TIMING_PRESETS,exports.MULTI_SELECT_SIZES=Q.MULTI_SELECT_SIZES,exports.MUTED=_.MUTED,exports.NOTICE_KINDS=m.NOTICE_KINDS,exports.NOTICE_ROLES=m.NOTICE_ROLES,exports.POPOVER_APPEND_TO_VALUES=F.POPOVER_APPEND_TO_VALUES,exports.POPOVER_CONTENT_WIDTHS=F.POPOVER_CONTENT_WIDTHS,exports.POPOVER_DIRECTIONS=F.POPOVER_DIRECTIONS,exports.POPOVER_HEADER_FOOTER_PADDING_CLASSES=F.POPOVER_HEADER_FOOTER_PADDING_CLASSES,exports.POPOVER_INITIAL_FOCUS_STRINGS=F.POPOVER_INITIAL_FOCUS_STRINGS,exports.POPOVER_PADDING_CLASSES=F.POPOVER_PADDING_CLASSES,exports.POPOVER_ROLES=F.POPOVER_ROLES,exports.POPOVER_STICKY_VALUES=F.POPOVER_STICKY_VALUES,exports.POSITIVE=_.POSITIVE,exports.PRESENCE_STATES=l.PRESENCE_STATES,exports.PRESENCE_STATES_LIST=l.PRESENCE_STATES_LIST,exports.PROGRESS_CIRCLE_KINDS=H.PROGRESS_CIRCLE_KINDS,exports.PROGRESS_CIRCLE_KIND_DEFAULT=H.PROGRESS_CIRCLE_KIND_DEFAULT,exports.PROGRESS_CIRCLE_SIZES=H.PROGRESS_CIRCLE_SIZES,exports.PROGRESS_CIRCLE_SIZE_DEFAULT=H.PROGRESS_CIRCLE_SIZE_DEFAULT,exports.PROSE_ALLOWED_ATTRIBUTES=U.PROSE_ALLOWED_ATTRIBUTES,exports.PROSE_DENSITY_MODIFIERS=U.PROSE_DENSITY_MODIFIERS,exports.PROSE_DISALLOWED_ELEMENTS=U.PROSE_DISALLOWED_ELEMENTS,exports.PROSE_SIZE_MODIFIERS=U.PROSE_SIZE_MODIFIERS,exports.RADIO_INPUT_VALIDATION_CLASSES=ct.RADIO_INPUT_VALIDATION_CLASSES,exports.RESIZABLE_CONTEXT_KEY=W.d,exports.RESIZABLE_HANDLE_CENTER_OFFSET_PX=W.f,exports.RICH_TEXT_EDITOR_AUTOFOCUS_TYPES=G.RICH_TEXT_EDITOR_AUTOFOCUS_TYPES,exports.RICH_TEXT_EDITOR_OUTPUT_FORMATS=G.RICH_TEXT_EDITOR_OUTPUT_FORMATS,exports.ROOT_LAYOUT_RESPONSIVE_BREAKPOINTS=K.ROOT_LAYOUT_RESPONSIVE_BREAKPOINTS,exports.ROOT_LAYOUT_SIDEBAR_POSITIONS=K.ROOT_LAYOUT_SIDEBAR_POSITIONS,exports.SEGMENTED_CONTROL_ACTIVATION_MODES=q.SEGMENTED_CONTROL_ACTIVATION_MODES,exports.SEGMENTED_CONTROL_ACTIVATION_MODE_DEFAULT=q.SEGMENTED_CONTROL_ACTIVATION_MODE_DEFAULT,exports.SEGMENTED_CONTROL_CONTEXT_KEY=q.SEGMENTED_CONTROL_CONTEXT_KEY,exports.SEGMENTED_CONTROL_FOCUS_KEY=q.SEGMENTED_CONTROL_FOCUS_KEY,exports.SEGMENTED_CONTROL_ORIENTATIONS=q.SEGMENTED_CONTROL_ORIENTATIONS,exports.SEGMENTED_CONTROL_ORIENTATION_DEFAULT=q.SEGMENTED_CONTROL_ORIENTATION_DEFAULT,exports.SEGMENTED_CONTROL_SELECT_KEY=q.SEGMENTED_CONTROL_SELECT_KEY,exports.SEGMENTED_CONTROL_SIZES=q.SEGMENTED_CONTROL_SIZES,exports.SEGMENTED_CONTROL_SIZE_DEFAULT=q.SEGMENTED_CONTROL_SIZE_DEFAULT,exports.SEGMENTED_CONTROL_SIZE_MODIFIERS=q.SEGMENTED_CONTROL_SIZE_MODIFIERS,exports.SEGMENTED_CONTROL_SPREADS=q.SEGMENTED_CONTROL_SPREADS,exports.SEGMENTED_CONTROL_SPREAD_DEFAULT=q.SEGMENTED_CONTROL_SPREAD_DEFAULT,exports.SELECT_SIZE_MODIFIERS=J.SELECT_SIZE_MODIFIERS,exports.SELECT_STATE_MODIFIERS=J.SELECT_STATE_MODIFIERS,exports.SHORTCUTS_ALIASES_LIST=et.SHORTCUTS_ALIASES_LIST,exports.SKELETON_HEADING_HEIGHTS=o.SKELETON_HEADING_HEIGHTS,exports.SKELETON_RIPPLE_DURATION=o.SKELETON_RIPPLE_DURATION,exports.SKELETON_SHAPES=o.SKELETON_SHAPES,exports.SKELETON_SHAPE_SIZES=o.SKELETON_SHAPE_SIZES,exports.SKELETON_TEXT_TYPES=o.SKELETON_TEXT_TYPES,exports.SPLIT_BUTTON_ICON_SIZES=bt.SPLIT_BUTTON_ICON_SIZES,exports.TAB_ACTIVATION_MODES=z.TAB_ACTIVATION_MODES,exports.TAB_GROUP_KINDS=z.TAB_GROUP_KINDS,exports.TAB_LIST_IMPORTANCE_MODIFIERS=z.TAB_LIST_IMPORTANCE_MODIFIERS,exports.TAB_LIST_KIND_MODIFIERS=z.TAB_LIST_KIND_MODIFIERS,exports.TAB_LIST_SIZES=z.TAB_LIST_SIZES,exports.TAB_LIST_SIZE_MODIFIERS=z.TAB_LIST_SIZE_MODIFIERS,exports.TAB_SPREADS=z.TAB_SPREADS,exports.TEXT_ALIGN_MODIFIERS=h.TEXT_ALIGN_MODIFIERS,exports.TEXT_BOX_TRIM_MODIFIERS=h.TEXT_BOX_TRIM_MODIFIERS,exports.TEXT_DENSITY_MODIFIERS=h.TEXT_DENSITY_MODIFIERS,exports.TEXT_FAMILY_MODIFIERS=h.TEXT_FAMILY_MODIFIERS,exports.TEXT_FONT_SIZE_MODIFIERS=h.TEXT_FONT_SIZE_MODIFIERS,exports.TEXT_HEADLINE_ONLY_SIZES=h.TEXT_HEADLINE_ONLY_SIZES,exports.TEXT_HEADLINE_SIZES=e.TEXT_HEADLINE_SIZES,exports.TEXT_ITALIC_CLASS=h.TEXT_ITALIC_CLASS,exports.TEXT_KIND_MODIFIERS=h.TEXT_KIND_MODIFIERS,exports.TEXT_LINE_CLAMP_CLASS=h.TEXT_LINE_CLAMP_CLASS,exports.TEXT_NUMERIC_CLASS=h.TEXT_NUMERIC_CLASS,exports.TEXT_SIZE_MODIFIERS=h.TEXT_SIZE_MODIFIERS,exports.TEXT_STRENGTH_MODIFIERS=h.TEXT_STRENGTH_MODIFIERS,exports.TEXT_TONE_MODIFIERS=h.TEXT_TONE_MODIFIERS,exports.TEXT_TRUNCATE_CLASS=h.TEXT_TRUNCATE_CLASS,exports.TEXT_VARIANT_MODIFIERS=h.TEXT_VARIANT_MODIFIERS,exports.TEXT_WRAP_MODIFIERS=h.TEXT_WRAP_MODIFIERS,exports.TOAST_MIN_DURATION=X.TOAST_MIN_DURATION,exports.TOAST_ROLES=X.TOAST_ROLES,exports.TOGGLE_CHECKED_VALUES=Z.TOGGLE_CHECKED_VALUES,exports.TOGGLE_SIZE_MODIFIERS=Z.TOGGLE_SIZE_MODIFIERS,exports.TOOLTIP_DELAY_MS=P.TOOLTIP_DELAY_MS,exports.TOOLTIP_DIRECTIONS=P.TOOLTIP_DIRECTIONS,exports.TOOLTIP_HIDE_ON_CLICK_VARIANTS=P.TOOLTIP_HIDE_ON_CLICK_VARIANTS,exports.TOOLTIP_KIND_MODIFIERS=P.TOOLTIP_KIND_MODIFIERS,exports.TOOLTIP_STICKY_VALUES=P.TOOLTIP_STICKY_VALUES,exports.VALIDATION_MESSAGE_TYPES=n.VALIDATION_MESSAGE_TYPES,exports.WARNING=_.WARNING,exports.buildHandleId=W.p,exports.capitalizeFirstLetter=i.capitalizeFirstLetter,exports.codeToEmojiData=c.codeToEmojiData,exports.colorToFamilyVariant=u.colorToFamilyVariant,exports.computeAvatarHex=u.computeAvatarHex,Object.defineProperty(exports,`customEmojiAssetUrl`,{enumerable:!0,get:function(){return c.customEmojiAssetUrl}}),exports.debounce=i.debounce,exports.defaultEmojiAssetUrl=c.defaultEmojiAssetUrl,exports.disableRootScrolling=i.disableRootScrolling,exports.durationInHHMM=s.durationInHHMM,Object.defineProperty(exports,`emojiFileExtensionLarge`,{enumerable:!0,get:function(){return c.emojiFileExtensionLarge}}),Object.defineProperty(exports,`emojiFileExtensionSmall`,{enumerable:!0,get:function(){return c.emojiFileExtensionSmall}}),Object.defineProperty(exports,`emojiImageUrlLarge`,{enumerable:!0,get:function(){return c.emojiImageUrlLarge}}),Object.defineProperty(exports,`emojiImageUrlSmall`,{enumerable:!0,get:function(){return c.emojiImageUrlSmall}}),exports.emojiJson=c.emojiJson,exports.emojiRegex=c.emojiRegex,exports.emojiShortCodeRegex=c.emojiShortCodeRegex,exports.emojiVersion=c.emojiVersion,exports.enableRootScrolling=i.enableRootScrolling,exports.extractNonListeners=i.extractNonListeners,exports.extractVueListeners=i.extractVueListeners,exports.filterFormattedMessages=i.filterFormattedMessages,exports.filterValidShortCodes=c.filterValidShortCodes,exports.findEmojis=c.findEmojis,exports.findFirstFocusableNode=i.findFirstFocusableNode,exports.findShortCodes=c.findShortCodes,exports.flushPromises=i.flushPromises,exports.formatLong=I.formatLong,exports.formatMedium=I.formatMedium,exports.formatMessages=i.formatMessages,exports.formatNoYear=I.formatNoYear,exports.formatNumerical=I.formatNumerical,exports.formatShort=I.formatShort,exports.getDateMedium=s.getDateMedium,exports.getEmojiData=c.getEmojiData,exports.getEmojiShortCode=c.getEmojiShortCode,exports.getLinkKindModifier=_.getLinkKindModifier,exports.getPhoneNumberRegex=i.getPhoneNumberRegex,exports.getRandomElement=i.getRandomElement,exports.getRandomFamilyVariant=u.getRandomFamilyVariant,exports.getRandomInt=i.getRandomInt,exports.getUniqueString=i.getUniqueString,exports.getValidationState=i.getValidationState,exports.hasFormattedMessageOfType=i.hasFormattedMessageOfType,exports.hasPercentageMinSize=W.t,exports.hasSlotContent=i.hasSlotContent,exports.htmlFragment=i.htmlFragment,exports.invalidateTokenCache=W.n,exports.isCSSValue=W.r,exports.isEmailAddress=i.isEmailAddress,exports.isOutOfViewPort=i.isOutOfViewPort,exports.isPercentageValue=W.i,exports.isPhoneNumber=i.isPhoneNumber,exports.isURL=i.isURL,exports.isValidSizing=W.a,exports.javaHashCode=i.javaHashCode,exports.kebabCaseToPascalCase=i.kebabCaseToPascalCase,exports.linkRegex=i.linkRegex,exports.parseSizeToPixels=W.o,exports.pascalCaseToKebabCase=i.pascalCaseToKebabCase,exports.pixelsToPercentage=W.s,exports.relativeDate=s.relativeDate,exports.removeClassStyleAttrs=i.removeClassStyleAttrs,exports.returnFirstEl=i.returnFirstEl,exports.safeConcatStrings=i.safeConcatStrings,exports.setCustomEmojiJson=c.setCustomEmojiJson,exports.setCustomEmojiUrl=c.setCustomEmojiUrl,exports.setDateLocale=s.setDateLocale,exports.setEmojiAssetUrlLarge=c.setEmojiAssetUrlLarge,exports.setEmojiAssetUrlSmall=c.setEmojiAssetUrlSmall,exports.shortcodeToEmojiData=c.shortcodeToEmojiData,exports.stringToUnicode=c.stringToUnicode,exports.toFluentKeyString=i.toFluentKeyString,exports.unicodeToString=c.unicodeToString,exports.validateContainerSize=W.c,exports.validateCustomEmojiJson=c.validateCustomEmojiJson,exports.validationMessageValidator=r.validationMessageValidator,exports.warnIfUnmounted=i.warnIfUnmounted;
@@ -139,13 +139,13 @@ import { t as Si } from "./Resizable-EY7mWluI.js";
139
139
  import { t as Ci } from "./ResizableHandle-v-oU-sj-.js";
140
140
  import wi from "./lib/resizable/resizable-panel.js";
141
141
  import "./lib/resizable/index.js";
142
- import { t as Ti } from "./RichTextEditor-CzMY0oVT.js";
142
+ import { t as Ti } from "./RichTextEditor-Cz2VXb7-.js";
143
143
  import { RICH_TEXT_EDITOR_AUTOFOCUS_TYPES as Ei, RICH_TEXT_EDITOR_OUTPUT_FORMATS as Di } from "./lib/rich-text-editor/rich-text-editor-constants.js";
144
144
  import "./lib/rich-text-editor/index.js";
145
145
  import { ROOT_LAYOUT_RESPONSIVE_BREAKPOINTS as Oi, ROOT_LAYOUT_SIDEBAR_POSITIONS as ki } from "./lib/root-layout/root-layout-constants.js";
146
146
  import Ai from "./lib/root-layout/root-layout.js";
147
147
  import "./lib/root-layout/index.js";
148
- import { t as ji } from "./Scroller-BsGXTN6S.js";
148
+ import { t as ji } from "./Scroller-JDoDYC5V.js";
149
149
  import "./lib/scroller/index.js";
150
150
  import { SEGMENTED_CONTROL_ACTIVATION_MODES as Mi, SEGMENTED_CONTROL_ACTIVATION_MODE_DEFAULT as Ni, SEGMENTED_CONTROL_CONTEXT_KEY as Pi, SEGMENTED_CONTROL_FOCUS_KEY as Fi, SEGMENTED_CONTROL_ORIENTATIONS as Ii, SEGMENTED_CONTROL_ORIENTATION_DEFAULT as Li, SEGMENTED_CONTROL_SELECT_KEY as Ri, SEGMENTED_CONTROL_SIZES as zi, SEGMENTED_CONTROL_SIZE_DEFAULT as Bi, SEGMENTED_CONTROL_SIZE_MODIFIERS as Vi, SEGMENTED_CONTROL_SPREADS as Hi, SEGMENTED_CONTROL_SPREAD_DEFAULT as Ui } from "./lib/segmented-control/segmented-control-constants.js";
151
151
  import Wi from "./lib/segmented-control/segmented-control.js";
@@ -158,11 +158,11 @@ import { SPLIT_BUTTON_ICON_SIZES as Yi } from "./lib/split-button/split-button-c
158
158
  import Xi from "./lib/split-button/split-button.js";
159
159
  import "./lib/split-button/index.js";
160
160
  import { DT_TEXT_LIST_DEFAULT_TYPE as Zi, DT_TEXT_LIST_GAP as Qi, DT_TEXT_LIST_MARKERS as $i, DT_TEXT_LIST_MARKER_TONES as ea, DT_TEXT_LIST_ORDERED_MARKERS as ta, DT_TEXT_LIST_TYPES as na, DT_TEXT_LIST_UNORDERED_MARKERS as ra } from "./lib/text-list/text-list-constants.js";
161
- import { t as ia } from "./TextList-B6XFfQfD.js";
162
- import { t as aa } from "./TextListItem-ImUi_FWh.js";
161
+ import { t as ia } from "./TextList-D40u4g4T.js";
162
+ import { t as aa } from "./TextListItem-PHgDIWV1.js";
163
163
  import "./lib/text-list/index.js";
164
164
  import { TOAST_MIN_DURATION as oa, TOAST_ROLES as sa } from "./lib/toast/toast-constants.js";
165
- import { t as ca } from "./Toast-t6T8fd29.js";
165
+ import { t as ca } from "./Toast-DVUE2_fV.js";
166
166
  import "./lib/toast/index.js";
167
167
  import { TOGGLE_CHECKED_VALUES as la, TOGGLE_SIZE_MODIFIERS as ua } from "./lib/toggle/toggle-constants.js";
168
168
  import da from "./lib/toggle/toggle.js";
@@ -1,2 +1,2 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../../chunk-Bmb41Sf3.cjs`);const e=require(`../../common/constants/index.cjs`),t=require(`../../common/utils/index.cjs`),n=require(`../../_plugin-vue_export-helper-D8jCH6HB.cjs`),r=require(`../../common/mixins/mode.cjs`),i=require(`../notice/notice-constants.cjs`),a=require(`../text/text.cjs`),o=require(`../../localization/index.cjs`),s=require(`../button/button.cjs`),c=require(`../../shared/sr_only_close_button.cjs`),l=require(`./modal-constants.cjs`);let u=require(`vue`),d=require(`@dialpad/dialtone-icons/vue`);var f=`button:not(:disabled),[href],input:not(:disabled),select:not(:disabled),textarea:not(:disabled),details,[tabindex]:not([tabindex="-1"]):not(:disabled):not([aria-disabled="true"])`,p={name:`DtModal`,components:{DtButton:s.default,DtText:a.default,DtIconClose:d.DtIconClose,SrOnlyCloseButton:c.default},mixins:[r.default],props:{copy:{type:String,default:``},describedById:{type:String,default:``},labelledById:{type:String,default:function(){return t.getUniqueString()}},open:{type:Boolean,default:!1},headerText:{type:String,default:void 0},bannerHeaderText:{type:String,default:void 0},kind:{type:String,default:`default`,validator:e=>Object.keys(l.MODAL_KIND_MODIFIERS).includes(e)},fullscreen:{type:Boolean,default:!1},modalClass:{type:[String,Object,Array],default:``},dialogClass:{type:[String,Object,Array],default:``},contentClass:{type:[String,Object,Array],default:``},bannerKind:{type:String,default:`warning`,validator(e){return i.NOTICE_KINDS.includes(e)}},bannerClass:{type:[String,Object,Array],default:``},headerClass:{type:[String,Object,Array],default:``},footerClass:{type:[String,Object,Array],default:``},showClose:{type:Boolean,default:!0},closeOnClick:{type:Boolean,default:!0},fixedHeaderFooter:{type:Boolean,default:!0},initialFocusElement:{type:[String,e.HTML_ELEMENT_TYPE],default:`first`,validator:e=>e===`first`||e instanceof HTMLElement||e.startsWith(`#`)},appendTo:{type:String,default:void 0},transparentBackdrop:{type:Boolean,default:!1},modal:{type:Boolean,default:!1}},emits:[`click`,`keydown`,`update:open`],data(){return{MODAL_KIND_MODIFIERS:l.MODAL_KIND_MODIFIERS,MODAL_BANNER_KINDS:l.MODAL_BANNER_KINDS,hasSlotContent:t.hasSlotContent,i18n:new o.DialtoneLocalization,autoTeleportTarget:null}},computed:{hasFooterSlot(){return!!this.$slots.footer},bannerKindClass(){return l.MODAL_BANNER_KINDS[this.bannerKind]},closeButtonTitle(){return this.i18n.$t(`DIALTONE_CLOSE_BUTTON`)}},watch:{open(e){this.syncDialogState(e)}},mounted(){if(!this.appendTo){let e=this.$el?.getRootNode();if(e instanceof ShadowRoot){this.autoTeleportTarget=e,this.open&&this.$nextTick(()=>{this.open&&this.syncDialogState(!0)});return}}this.open&&this.syncDialogState(!0)},beforeUnmount(){let e=this.$refs.dialogEl;e?.open&&(e.close(),t.enableRootScrolling(this.getScrollRoot())),this.previousActiveElement=null},methods:{getScrollRoot(){return t.returnFirstEl(this.$refs.dialogEl)?.getRootNode()?.host},syncDialogState(e){let n=this.$refs.dialogEl;n&&(e?(this.previousActiveElement=document.activeElement,n.open||(this.modal?n.showModal():n.show()),t.disableRootScrolling(this.getScrollRoot())):n.open&&t.enableRootScrolling(this.getScrollRoot()))},close(){this.$emit(`update:open`,!1)},onBackdropClick(e){this.closeOnClick&&e.target===e.currentTarget&&this.close(),this.$emit(`click`,e)},onKeydown(e){!this.modal&&e.key===`Escape`&&!e.defaultPrevented&&(e.preventDefault(),this.close()),this.$emit(`keydown`,e)},async onAfterEnter(){this.$emit(`update:open`,!0),await this.setFocusAfterTransition()},onAfterLeave(){let e=this.$refs.dialogEl;e?.open&&e.close(),this.previousActiveElement?.focus(),this.previousActiveElement=null},focusFirstTabbable(e){let t=[...e.querySelectorAll(f)];if(!t.length)return;let n=t[0];n.matches(`[type="radio"]:not(:checked)`)&&(n=t.find(e=>e.checked&&e.name===n.name)||n),n.focus({preventScroll:!0})},async setFocusAfterTransition(){let e=this.$refs.dialogEl;if(e)if(await this.$nextTick(),this.initialFocusElement===`first`)this.focusFirstTabbable(e);else if(typeof this.initialFocusElement==`string`&&this.initialFocusElement.startsWith(`#`)){let t=e.querySelector(this.initialFocusElement);t?t.focus():(console.warn(`Could not find the element specified in dt-modal prop "initialFocusElement". Defaulting to focusing the first element.`),this.focusFirstTabbable(e))}else this.initialFocusElement instanceof HTMLElement&&this.initialFocusElement.focus()}}},m=[`aria-modal`,`aria-describedby`,`aria-labelledby`],h=[`id`];function g(e,t,n,r,i,a){let o=(0,u.resolveComponent)(`dt-text`),s=(0,u.resolveComponent)(`sr-only-close-button`),c=(0,u.resolveComponent)(`dt-icon-close`),l=(0,u.resolveComponent)(`dt-button`),d=(0,u.resolveDirective)(`dt-focustrap`);return(0,u.openBlock)(),(0,u.createBlock)(u.Teleport,{disabled:!n.appendTo&&!i.autoTeleportTarget,to:n.appendTo||i.autoTeleportTarget},[(0,u.withDirectives)(((0,u.openBlock)(),(0,u.createElementBlock)(`dialog`,(0,u.mergeProps)({ref:`dialogEl`,class:[`d-modal`,i.MODAL_KIND_MODIFIERS[n.kind],{"d-modal--full":n.fullscreen},{"d-modal--transparent-backdrop":n.transparentBackdrop},n.modalClass],"data-qa":`dt-modal`,"aria-modal":n.modal?`true`:void 0,"aria-describedby":n.describedById||void 0,"aria-labelledby":n.labelledById},e.modeAttrs,{onCancel:t[0]||(t[0]=(0,u.withModifiers)((...e)=>a.close&&a.close(...e),[`prevent`])),onClick:t[1]||(t[1]=(...e)=>a.onBackdropClick&&a.onBackdropClick(...e)),onKeydown:t[2]||(t[2]=(...e)=>a.onKeydown&&a.onKeydown(...e))}),[n.open&&(i.hasSlotContent(e.$slots.banner)||n.bannerHeaderText)?((0,u.openBlock)(),(0,u.createElementBlock)(`div`,{key:0,"data-qa":`dt-modal-banner`,class:(0,u.normalizeClass)([`d-modal__banner`,n.bannerClass,a.bannerKindClass])},[(0,u.renderSlot)(e.$slots,`banner`,{},()=>[(0,u.createTextVNode)((0,u.toDisplayString)(n.bannerHeaderText),1)])],2)):(0,u.createCommentVNode)(``,!0),(0,u.createVNode)(u.Transition,{appear:n.open,name:`d-modal__dialog`,onAfterEnter:a.onAfterEnter,onAfterLeave:a.onAfterLeave},{default:(0,u.withCtx)(()=>[(0,u.withDirectives)((0,u.createElementVNode)(`div`,{class:(0,u.normalizeClass)([`d-modal__dialog`,{"d-modal__dialog--scrollable":n.fixedHeaderFooter},n.dialogClass])},[i.hasSlotContent(e.$slots.header)?((0,u.openBlock)(),(0,u.createElementBlock)(`div`,{key:0,id:n.labelledById,class:(0,u.normalizeClass)([`d-modal__header`,n.headerClass]),"data-qa":`dt-modal-title`},[(0,u.renderSlot)(e.$slots,`header`)],10,h)):((0,u.openBlock)(),(0,u.createBlock)(o,{key:1,id:n.labelledById,kind:`headline`,size:600,strength:`medium`,density:`100`,"text-box-trim":`start`,as:`h2`,class:(0,u.normalizeClass)([`d-modal__header`,n.headerClass]),"data-qa":`dt-modal-title`},{default:(0,u.withCtx)(()=>[(0,u.createTextVNode)((0,u.toDisplayString)(n.headerText),1)]),_:1},8,[`id`,`class`])),i.hasSlotContent(e.$slots.default)?((0,u.openBlock)(),(0,u.createElementBlock)(`div`,{key:2,class:(0,u.normalizeClass)([`d-modal__content`,n.contentClass]),"data-qa":`dt-modal-copy`},[(0,u.renderSlot)(e.$slots,`default`)],2)):((0,u.openBlock)(),(0,u.createElementBlock)(`p`,{key:3,class:(0,u.normalizeClass)([`d-modal__content`,n.contentClass]),"data-qa":`dt-modal-copy`},(0,u.toDisplayString)(n.copy),3)),a.hasFooterSlot?((0,u.openBlock)(),(0,u.createElementBlock)(`footer`,{key:4,class:(0,u.normalizeClass)([`d-modal__footer`,n.footerClass])},[(0,u.renderSlot)(e.$slots,`footer`)],2)):(0,u.createCommentVNode)(``,!0),n.showClose?((0,u.openBlock)(),(0,u.createBlock)(l,{key:6,class:`d-modal__close`,"data-qa":`dt-modal-close-button`,size:300,kind:`muted`,importance:`clear`,"aria-label":a.closeButtonTitle,title:a.closeButtonTitle,onClick:a.close},{icon:(0,u.withCtx)(({iconSize:e})=>[(0,u.createVNode)(c,{size:e},null,8,[`size`])]),_:1},8,[`aria-label`,`title`,`onClick`])):((0,u.openBlock)(),(0,u.createBlock)(s,{key:5,onClose:a.close},null,8,[`onClose`]))],2),[[u.vShow,n.open]])]),_:3},8,[`appear`,`onAfterEnter`,`onAfterLeave`])],16,m)),[[d,{active:n.open,initialFocus:!1,restoreFocus:!1}]])],8,[`disabled`,`to`])}var _=n.t(p,[[`render`,g]]);exports.default=_;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../../chunk-Bmb41Sf3.cjs`);const e=require(`../../common/constants/index.cjs`),t=require(`../../common/utils/index.cjs`),n=require(`../../_plugin-vue_export-helper-D8jCH6HB.cjs`),r=require(`../../common/mixins/mode.cjs`),i=require(`../notice/notice-constants.cjs`),a=require(`../text/text.cjs`),o=require(`../../localization/index.cjs`),s=require(`../button/button.cjs`),c=require(`../../shared/sr_only_close_button.cjs`),l=require(`./modal-constants.cjs`);let u=require(`vue`),d=require(`@dialpad/dialtone-icons/vue`);var f=`button:not(:disabled),[href],input:not(:disabled),select:not(:disabled),textarea:not(:disabled),details,[tabindex]:not([tabindex="-1"]):not(:disabled):not([aria-disabled="true"])`,p={name:`DtModal`,components:{DtButton:s.default,DtText:a.default,DtIconClose:d.DtIconClose,SrOnlyCloseButton:c.default},mixins:[r.default],props:{copy:{type:String,default:``},describedById:{type:String,default:``},labelledById:{type:String,default:function(){return t.getUniqueString()}},open:{type:Boolean,default:!1},headerText:{type:String,default:void 0},bannerHeaderText:{type:String,default:void 0},kind:{type:String,default:`default`,validator:e=>Object.keys(l.MODAL_KIND_MODIFIERS).includes(e)},fullscreen:{type:Boolean,default:!1},modalClass:{type:[String,Object,Array],default:``},dialogClass:{type:[String,Object,Array],default:``},contentClass:{type:[String,Object,Array],default:``},bannerKind:{type:String,default:`warning`,validator(e){return i.NOTICE_KINDS.includes(e)}},bannerClass:{type:[String,Object,Array],default:``},headerClass:{type:[String,Object,Array],default:``},footerClass:{type:[String,Object,Array],default:``},showClose:{type:Boolean,default:!0},closeOnClick:{type:Boolean,default:!0},fixedHeaderFooter:{type:Boolean,default:!0},initialFocusElement:{type:[String,e.HTML_ELEMENT_TYPE],default:`first`,validator:e=>e===`first`||e instanceof HTMLElement||e.startsWith(`#`)},appendTo:{type:String,default:void 0},transparentBackdrop:{type:Boolean,default:!1},modal:{type:Boolean,default:!1}},emits:[`click`,`keydown`,`update:open`],data(){return{MODAL_KIND_MODIFIERS:l.MODAL_KIND_MODIFIERS,MODAL_BANNER_KINDS:l.MODAL_BANNER_KINDS,hasSlotContent:t.hasSlotContent,i18n:new o.DialtoneLocalization,autoTeleportTarget:null,mousedownOnBackdrop:!1,mouseupOnBackdrop:!1}},computed:{hasFooterSlot(){return!!this.$slots.footer},bannerKindClass(){return l.MODAL_BANNER_KINDS[this.bannerKind]},closeButtonTitle(){return this.i18n.$t(`DIALTONE_CLOSE_BUTTON`)}},watch:{open(e){this.syncDialogState(e)}},mounted(){if(!this.appendTo){let e=this.$el?.getRootNode();if(e instanceof ShadowRoot){this.autoTeleportTarget=e,this.open&&this.$nextTick(()=>{this.open&&this.syncDialogState(!0)});return}}this.open&&this.syncDialogState(!0)},beforeUnmount(){let e=this.$refs.dialogEl;e?.open&&(e.close(),t.enableRootScrolling(this.getScrollRoot())),this.previousActiveElement=null},methods:{getScrollRoot(){return t.returnFirstEl(this.$refs.dialogEl)?.getRootNode()?.host},syncDialogState(e){let n=this.$refs.dialogEl;n&&(e?(this.previousActiveElement=document.activeElement,n.open||(this.modal?n.showModal():n.show()),t.disableRootScrolling(this.getScrollRoot())):n.open&&t.enableRootScrolling(this.getScrollRoot()))},close(){this.$emit(`update:open`,!1)},onBackdropMousedown(e){this.mousedownOnBackdrop=e.target===e.currentTarget},onBackdropMouseup(e){this.mouseupOnBackdrop=e.target===e.currentTarget},onBackdropClick(e){let t=this.mousedownOnBackdrop&&this.mouseupOnBackdrop;this.closeOnClick&&e.target===e.currentTarget&&t&&this.close(),this.$emit(`click`,e)},onKeydown(e){!this.modal&&e.key===`Escape`&&!e.defaultPrevented&&(e.preventDefault(),this.close()),this.$emit(`keydown`,e)},async onAfterEnter(){this.$emit(`update:open`,!0),await this.setFocusAfterTransition()},onAfterLeave(){let e=this.$refs.dialogEl;e?.open&&e.close(),this.previousActiveElement?.focus(),this.previousActiveElement=null},focusFirstTabbable(e){let t=[...e.querySelectorAll(f)];if(!t.length)return;let n=t[0];n.matches(`[type="radio"]:not(:checked)`)&&(n=t.find(e=>e.checked&&e.name===n.name)||n),n.focus({preventScroll:!0})},async setFocusAfterTransition(){let e=this.$refs.dialogEl;if(e)if(await this.$nextTick(),this.initialFocusElement===`first`)this.focusFirstTabbable(e);else if(typeof this.initialFocusElement==`string`&&this.initialFocusElement.startsWith(`#`)){let t=e.querySelector(this.initialFocusElement);t?t.focus():(console.warn(`Could not find the element specified in dt-modal prop "initialFocusElement". Defaulting to focusing the first element.`),this.focusFirstTabbable(e))}else this.initialFocusElement instanceof HTMLElement&&this.initialFocusElement.focus()}}},m=[`aria-modal`,`aria-describedby`,`aria-labelledby`],h=[`id`];function g(e,t,n,r,i,a){let o=(0,u.resolveComponent)(`dt-text`),s=(0,u.resolveComponent)(`sr-only-close-button`),c=(0,u.resolveComponent)(`dt-icon-close`),l=(0,u.resolveComponent)(`dt-button`),d=(0,u.resolveDirective)(`dt-focustrap`);return(0,u.openBlock)(),(0,u.createBlock)(u.Teleport,{disabled:!n.appendTo&&!i.autoTeleportTarget,to:n.appendTo||i.autoTeleportTarget},[(0,u.withDirectives)(((0,u.openBlock)(),(0,u.createElementBlock)(`dialog`,(0,u.mergeProps)({ref:`dialogEl`,class:[`d-modal`,i.MODAL_KIND_MODIFIERS[n.kind],{"d-modal--full":n.fullscreen},{"d-modal--transparent-backdrop":n.transparentBackdrop},n.modalClass],"data-qa":`dt-modal`,"aria-modal":n.modal?`true`:void 0,"aria-describedby":n.describedById||void 0,"aria-labelledby":n.labelledById},e.modeAttrs,{onCancel:t[0]||(t[0]=(0,u.withModifiers)((...e)=>a.close&&a.close(...e),[`prevent`])),onMousedown:t[1]||(t[1]=(...e)=>a.onBackdropMousedown&&a.onBackdropMousedown(...e)),onMouseup:t[2]||(t[2]=(...e)=>a.onBackdropMouseup&&a.onBackdropMouseup(...e)),onClick:t[3]||(t[3]=(...e)=>a.onBackdropClick&&a.onBackdropClick(...e)),onKeydown:t[4]||(t[4]=(...e)=>a.onKeydown&&a.onKeydown(...e))}),[n.open&&(i.hasSlotContent(e.$slots.banner)||n.bannerHeaderText)?((0,u.openBlock)(),(0,u.createElementBlock)(`div`,{key:0,"data-qa":`dt-modal-banner`,class:(0,u.normalizeClass)([`d-modal__banner`,n.bannerClass,a.bannerKindClass])},[(0,u.renderSlot)(e.$slots,`banner`,{},()=>[(0,u.createTextVNode)((0,u.toDisplayString)(n.bannerHeaderText),1)])],2)):(0,u.createCommentVNode)(``,!0),(0,u.createVNode)(u.Transition,{appear:n.open,name:`d-modal__dialog`,onAfterEnter:a.onAfterEnter,onAfterLeave:a.onAfterLeave},{default:(0,u.withCtx)(()=>[(0,u.withDirectives)((0,u.createElementVNode)(`div`,{class:(0,u.normalizeClass)([`d-modal__dialog`,{"d-modal__dialog--scrollable":n.fixedHeaderFooter},n.dialogClass])},[i.hasSlotContent(e.$slots.header)?((0,u.openBlock)(),(0,u.createElementBlock)(`div`,{key:0,id:n.labelledById,class:(0,u.normalizeClass)([`d-modal__header`,n.headerClass]),"data-qa":`dt-modal-title`},[(0,u.renderSlot)(e.$slots,`header`)],10,h)):((0,u.openBlock)(),(0,u.createBlock)(o,{key:1,id:n.labelledById,kind:`headline`,size:600,strength:`medium`,density:`100`,"text-box-trim":`start`,as:`h2`,class:(0,u.normalizeClass)([`d-modal__header`,n.headerClass]),"data-qa":`dt-modal-title`},{default:(0,u.withCtx)(()=>[(0,u.createTextVNode)((0,u.toDisplayString)(n.headerText),1)]),_:1},8,[`id`,`class`])),i.hasSlotContent(e.$slots.default)?((0,u.openBlock)(),(0,u.createElementBlock)(`div`,{key:2,class:(0,u.normalizeClass)([`d-modal__content`,n.contentClass]),"data-qa":`dt-modal-copy`},[(0,u.renderSlot)(e.$slots,`default`)],2)):((0,u.openBlock)(),(0,u.createElementBlock)(`p`,{key:3,class:(0,u.normalizeClass)([`d-modal__content`,n.contentClass]),"data-qa":`dt-modal-copy`},(0,u.toDisplayString)(n.copy),3)),a.hasFooterSlot?((0,u.openBlock)(),(0,u.createElementBlock)(`footer`,{key:4,class:(0,u.normalizeClass)([`d-modal__footer`,n.footerClass])},[(0,u.renderSlot)(e.$slots,`footer`)],2)):(0,u.createCommentVNode)(``,!0),n.showClose?((0,u.openBlock)(),(0,u.createBlock)(l,{key:6,class:`d-modal__close`,"data-qa":`dt-modal-close-button`,size:300,kind:`muted`,importance:`clear`,"aria-label":a.closeButtonTitle,title:a.closeButtonTitle,onClick:a.close},{icon:(0,u.withCtx)(({iconSize:e})=>[(0,u.createVNode)(c,{size:e},null,8,[`size`])]),_:1},8,[`aria-label`,`title`,`onClick`])):((0,u.openBlock)(),(0,u.createBlock)(s,{key:5,onClose:a.close},null,8,[`onClose`]))],2),[[u.vShow,n.open]])]),_:3},8,[`appear`,`onAfterEnter`,`onAfterLeave`])],16,m)),[[d,{active:n.open,initialFocus:!1,restoreFocus:!1}]])],8,[`disabled`,`to`])}var _=n.t(p,[[`render`,g]]);exports.default=_;
2
2
  //# sourceMappingURL=modal.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"modal.cjs","names":[],"sources":["../../../components/Modal/Modal.vue"],"sourcesContent":["<template>\n <teleport\n :disabled=\"!appendTo && !autoTeleportTarget\"\n :to=\"appendTo || autoTeleportTarget\"\n >\n <!-- eslint-disable-next-line vuejs-accessibility/no-static-element-interactions -->\n <dialog\n ref=\"dialogEl\"\n v-dt-focustrap=\"{ active: open, initialFocus: false, restoreFocus: false }\"\n :class=\"[\n 'd-modal',\n MODAL_KIND_MODIFIERS[kind],\n { 'd-modal--full': fullscreen },\n { 'd-modal--transparent-backdrop': transparentBackdrop },\n modalClass,\n ]\"\n data-qa=\"dt-modal\"\n :aria-modal=\"modal ? 'true' : undefined\"\n :aria-describedby=\"describedById || undefined\"\n :aria-labelledby=\"labelledById\"\n v-bind=\"modeAttrs\"\n @cancel.prevent=\"close\"\n @click=\"onBackdropClick\"\n @keydown=\"onKeydown\"\n >\n <div\n v-if=\"open && (hasSlotContent($slots.banner) || bannerHeaderText)\"\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 bannerHeaderText prop -->\n <slot name=\"banner\">\n {{ bannerHeaderText }}\n </slot>\n </div>\n <transition\n :appear=\"open\"\n name=\"d-modal__dialog\"\n @after-enter=\"onAfterEnter\"\n @after-leave=\"onAfterLeave\"\n >\n <div\n v-show=\"open\"\n :class=\"[\n 'd-modal__dialog',\n { 'd-modal__dialog--scrollable': fixedHeaderFooter },\n dialogClass,\n ]\"\n >\n <div\n v-if=\"hasSlotContent($slots.header)\"\n :id=\"labelledById\"\n :class=\"['d-modal__header', headerClass]\"\n data-qa=\"dt-modal-title\"\n >\n <!-- @slot Slot for dialog header section, taking the place of any \"headerText\" text prop -->\n <slot name=\"header\" />\n </div>\n <dt-text\n v-else\n :id=\"labelledById\"\n kind=\"headline\"\n :size=\"600\"\n strength=\"medium\"\n density=\"100\"\n text-box-trim=\"start\"\n as=\"h2\"\n :class=\"['d-modal__header', headerClass]\"\n data-qa=\"dt-modal-title\"\n >\n {{ headerText }}\n </dt-text>\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', footerClass]\"\n >\n <!-- @slot Slot for dialog footer content, often containing cancel and confirm buttons. -->\n <slot name=\"footer\" />\n </footer>\n <sr-only-close-button\n v-if=\"!showClose\"\n @close=\"close\"\n />\n <dt-button\n v-else\n class=\"d-modal__close\"\n data-qa=\"dt-modal-close-button\"\n :size=\"300\"\n kind=\"muted\"\n importance=\"clear\"\n :aria-label=\"closeButtonTitle\"\n :title=\"closeButtonTitle\"\n @click=\"close\"\n >\n <template #icon=\"{ iconSize }\">\n <dt-icon-close\n :size=\"iconSize\"\n />\n </template>\n </dt-button>\n </div>\n </transition>\n </dialog>\n </teleport>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport { DtButton } from '@/components/Button';\nimport { DtText } from '@/components/Text';\nimport { DtIconClose } from '@dialpad/dialtone-icons/vue';\nimport ModeMixin from '@/common/mixins/mode';\nimport {\n MODAL_BANNER_KINDS,\n MODAL_KIND_MODIFIERS,\n} from './ModalConstants';\nimport { getUniqueString, hasSlotContent, returnFirstEl, disableRootScrolling, enableRootScrolling } from '@/common/utils';\nimport { HTML_ELEMENT_TYPE } from '@/common/constants';\nimport SrOnlyCloseButton from '@/common/sr_only_close_button.vue';\nimport { NOTICE_KINDS } from '@/components/Notice';\nimport { DialtoneLocalization } from '@/localization';\n\nconst focusableSelector = 'button:not(:disabled),[href],input:not(:disabled),select:not(:disabled),' +\n 'textarea:not(:disabled),details,[tabindex]:not([tabindex=\"-1\"]):not(:disabled):not([aria-disabled=\"true\"])';\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 DtButton,\n DtText,\n DtIconClose,\n SrOnlyCloseButton,\n },\n\n mixins: [ModeMixin],\n\n props: {\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 open: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Header text to display in the modal header.\n */\n headerText: {\n type: String,\n default: undefined,\n },\n\n /**\n * Header text to display in the modal banner.\n */\n bannerHeaderText: {\n type: String,\n default: undefined,\n },\n\n /**\n * The theme of the modal.\n * @values default, critical\n */\n kind: {\n type: String,\n default: 'default',\n validator: (k) => Object.keys(MODAL_KIND_MODIFIERS).includes(k),\n },\n\n /**\n * Whether the modal fills the viewport instead of rendering at its default size.\n * @values true, false\n */\n fullscreen: {\n type: Boolean,\n default: false,\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, critical, info, positive, warning\n */\n bannerKind: {\n type: String,\n default: 'warning',\n validator (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 * Additional class name for the header 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 headerClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Additional class name for the footer 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 footerClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Shows the close button on the modal\n * @values true, false\n */\n showClose: {\n type: Boolean,\n default: true,\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, HTML_ELEMENT_TYPE],\n default: 'first',\n validator: initialFocusElement => {\n return initialFocusElement === 'first' ||\n (initialFocusElement instanceof HTMLElement) ||\n initialFocusElement.startsWith('#');\n },\n },\n\n /**\n * A CSS selector string for the element to portal the modal to. If not provided, the modal will be rendered in its default location.\n */\n appendTo: {\n type: String,\n default: undefined,\n },\n\n /**\n * When true, the surrounding backdrop is rendered fully transparent\n * instead of the default dimming overlay. The dialog box itself\n * remains opaque. Useful when the underlying UI should remain visible.\n * @values true, false\n */\n transparentBackdrop: {\n type: Boolean,\n default: false,\n },\n\n /**\n * When true, the dialog opens with showModal(), which promotes it to the browser\n * top layer. Nothing outside the top layer can paint above it regardless of\n * z-index, so application surfaces such as toasts and call notifications end up\n * behind it. When false, it opens with show() and stays in the normal stacking\n * order, where the Dialtone z-index scale applies and --zi-notification (700)\n * outranks --zi-modal (600) as documented.\n *\n * Focus trapping, scroll locking and Esc-to-close behave identically in both\n * modes. Background inertness does not: only the top layer provides it, so with\n * modal unset the page outside the dialog stays reachable. That is deliberate —\n * it is what lets an application's own overlays remain usable above a modal —\n * and keyboard containment still comes from the focus trap.\n * @values true, false\n */\n modal: {\n type: Boolean,\n default: false,\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:open\n * @type {Boolean}\n */\n 'update:open',\n ],\n\n data () {\n return {\n MODAL_KIND_MODIFIERS,\n MODAL_BANNER_KINDS,\n hasSlotContent,\n i18n: new DialtoneLocalization(),\n autoTeleportTarget: null,\n };\n },\n\n computed: {\n hasFooterSlot () {\n return !!this.$slots.footer;\n },\n\n bannerKindClass () {\n return MODAL_BANNER_KINDS[this.bannerKind];\n },\n\n closeButtonTitle () {\n return this.i18n.$t('DIALTONE_CLOSE_BUTTON');\n },\n },\n\n watch: {\n open (isShowing) {\n this.syncDialogState(isShowing);\n },\n },\n\n mounted () {\n if (!this.appendTo) {\n const root = this.$el?.getRootNode();\n if (root instanceof ShadowRoot) {\n this.autoTeleportTarget = root;\n // Defer syncDialogState so the teleport renders inside the shadow root first.\n if (this.open) this.$nextTick(() => { if (this.open) this.syncDialogState(true); });\n return;\n }\n }\n if (this.open) {\n this.syncDialogState(true);\n }\n },\n\n beforeUnmount () {\n const dialogEl = this.$refs.dialogEl;\n if (dialogEl?.open) {\n dialogEl.close();\n enableRootScrolling(this.getScrollRoot());\n }\n this.previousActiveElement = null;\n },\n\n methods: {\n getScrollRoot () {\n return returnFirstEl(this.$refs.dialogEl)?.getRootNode()?.host;\n },\n\n syncDialogState (isShowing) {\n const dialogEl = this.$refs.dialogEl;\n if (!dialogEl) return;\n\n if (isShowing) {\n this.previousActiveElement = document.activeElement;\n if (!dialogEl.open) {\n // show() leaves the dialog in the normal stacking order instead of the\n // top layer, where the z-index scale still applies.\n if (this.modal) dialogEl.showModal(); else dialogEl.show();\n }\n disableRootScrolling(this.getScrollRoot());\n } else if (dialogEl.open) {\n // Leave transition plays via v-show on inner content.\n // close() is called in onAfterLeave when transition completes.\n enableRootScrolling(this.getScrollRoot());\n }\n },\n\n\n\n close () {\n this.$emit('update:open', false);\n },\n\n onBackdropClick (event) {\n if (this.closeOnClick && event.target === event.currentTarget) {\n this.close();\n }\n this.$emit('click', event);\n },\n\n onKeydown (event) {\n // The native cancel event only fires for dialogs opened with showModal(), so\n // Esc has to be handled explicitly to keep dismissal identical in both modes.\n // defaultPrevented means a nested widget (dropdown, combobox) already consumed\n // it to close itself, and the modal must not close out from under it.\n if (!this.modal && event.key === 'Escape' && !event.defaultPrevented) {\n event.preventDefault();\n this.close();\n }\n this.$emit('keydown', event);\n },\n\n async onAfterEnter () {\n this.$emit('update:open', true);\n await this.setFocusAfterTransition();\n },\n\n onAfterLeave () {\n const dialogEl = this.$refs.dialogEl;\n if (dialogEl?.open) {\n dialogEl.close();\n }\n this.previousActiveElement?.focus();\n this.previousActiveElement = null;\n },\n\n focusFirstTabbable (container) {\n const focusable = [...container.querySelectorAll(focusableSelector)];\n if (!focusable.length) return;\n let target = focusable[0];\n // If first focusable is an unchecked radio, prefer the checked radio in the same group.\n if (target.matches('[type=\"radio\"]:not(:checked)')) {\n target = focusable.find(el => el.checked && el.name === target.name) || target;\n }\n target.focus({ preventScroll: true });\n },\n\n async setFocusAfterTransition () {\n const dialogEl = this.$refs.dialogEl;\n if (!dialogEl) return;\n\n await this.$nextTick();\n\n if (this.initialFocusElement === 'first') {\n this.focusFirstTabbable(dialogEl);\n } else if (typeof this.initialFocusElement === 'string' && this.initialFocusElement.startsWith('#')) {\n const el = dialogEl.querySelector(this.initialFocusElement);\n if (el) {\n el.focus();\n } else {\n // eslint-disable-next-line no-console\n console.warn('Could not find the element specified in dt-modal prop \"initialFocusElement\". ' +\n 'Defaulting to focusing the first element.');\n this.focusFirstTabbable(dialogEl);\n }\n } else if (this.initialFocusElement instanceof HTMLElement) {\n this.initialFocusElement.focus();\n }\n },\n },\n};\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"modal.cjs","names":[],"sources":["../../../components/Modal/Modal.vue"],"sourcesContent":["<template>\n <teleport\n :disabled=\"!appendTo && !autoTeleportTarget\"\n :to=\"appendTo || autoTeleportTarget\"\n >\n <!-- eslint-disable-next-line vuejs-accessibility/no-static-element-interactions -->\n <dialog\n ref=\"dialogEl\"\n v-dt-focustrap=\"{ active: open, initialFocus: false, restoreFocus: false }\"\n :class=\"[\n 'd-modal',\n MODAL_KIND_MODIFIERS[kind],\n { 'd-modal--full': fullscreen },\n { 'd-modal--transparent-backdrop': transparentBackdrop },\n modalClass,\n ]\"\n data-qa=\"dt-modal\"\n :aria-modal=\"modal ? 'true' : undefined\"\n :aria-describedby=\"describedById || undefined\"\n :aria-labelledby=\"labelledById\"\n v-bind=\"modeAttrs\"\n @cancel.prevent=\"close\"\n @mousedown=\"onBackdropMousedown\"\n @mouseup=\"onBackdropMouseup\"\n @click=\"onBackdropClick\"\n @keydown=\"onKeydown\"\n >\n <div\n v-if=\"open && (hasSlotContent($slots.banner) || bannerHeaderText)\"\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 bannerHeaderText prop -->\n <slot name=\"banner\">\n {{ bannerHeaderText }}\n </slot>\n </div>\n <transition\n :appear=\"open\"\n name=\"d-modal__dialog\"\n @after-enter=\"onAfterEnter\"\n @after-leave=\"onAfterLeave\"\n >\n <div\n v-show=\"open\"\n :class=\"[\n 'd-modal__dialog',\n { 'd-modal__dialog--scrollable': fixedHeaderFooter },\n dialogClass,\n ]\"\n >\n <div\n v-if=\"hasSlotContent($slots.header)\"\n :id=\"labelledById\"\n :class=\"['d-modal__header', headerClass]\"\n data-qa=\"dt-modal-title\"\n >\n <!-- @slot Slot for dialog header section, taking the place of any \"headerText\" text prop -->\n <slot name=\"header\" />\n </div>\n <dt-text\n v-else\n :id=\"labelledById\"\n kind=\"headline\"\n :size=\"600\"\n strength=\"medium\"\n density=\"100\"\n text-box-trim=\"start\"\n as=\"h2\"\n :class=\"['d-modal__header', headerClass]\"\n data-qa=\"dt-modal-title\"\n >\n {{ headerText }}\n </dt-text>\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', footerClass]\"\n >\n <!-- @slot Slot for dialog footer content, often containing cancel and confirm buttons. -->\n <slot name=\"footer\" />\n </footer>\n <sr-only-close-button\n v-if=\"!showClose\"\n @close=\"close\"\n />\n <dt-button\n v-else\n class=\"d-modal__close\"\n data-qa=\"dt-modal-close-button\"\n :size=\"300\"\n kind=\"muted\"\n importance=\"clear\"\n :aria-label=\"closeButtonTitle\"\n :title=\"closeButtonTitle\"\n @click=\"close\"\n >\n <template #icon=\"{ iconSize }\">\n <dt-icon-close\n :size=\"iconSize\"\n />\n </template>\n </dt-button>\n </div>\n </transition>\n </dialog>\n </teleport>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport { DtButton } from '@/components/Button';\nimport { DtText } from '@/components/Text';\nimport { DtIconClose } from '@dialpad/dialtone-icons/vue';\nimport ModeMixin from '@/common/mixins/mode';\nimport {\n MODAL_BANNER_KINDS,\n MODAL_KIND_MODIFIERS,\n} from './ModalConstants';\nimport { getUniqueString, hasSlotContent, returnFirstEl, disableRootScrolling, enableRootScrolling } from '@/common/utils';\nimport { HTML_ELEMENT_TYPE } from '@/common/constants';\nimport SrOnlyCloseButton from '@/common/sr_only_close_button.vue';\nimport { NOTICE_KINDS } from '@/components/Notice';\nimport { DialtoneLocalization } from '@/localization';\n\nconst focusableSelector = 'button:not(:disabled),[href],input:not(:disabled),select:not(:disabled),' +\n 'textarea:not(:disabled),details,[tabindex]:not([tabindex=\"-1\"]):not(:disabled):not([aria-disabled=\"true\"])';\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 DtButton,\n DtText,\n DtIconClose,\n SrOnlyCloseButton,\n },\n\n mixins: [ModeMixin],\n\n props: {\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 open: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Header text to display in the modal header.\n */\n headerText: {\n type: String,\n default: undefined,\n },\n\n /**\n * Header text to display in the modal banner.\n */\n bannerHeaderText: {\n type: String,\n default: undefined,\n },\n\n /**\n * The theme of the modal.\n * @values default, critical\n */\n kind: {\n type: String,\n default: 'default',\n validator: (k) => Object.keys(MODAL_KIND_MODIFIERS).includes(k),\n },\n\n /**\n * Whether the modal fills the viewport instead of rendering at its default size.\n * @values true, false\n */\n fullscreen: {\n type: Boolean,\n default: false,\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, critical, info, positive, warning\n */\n bannerKind: {\n type: String,\n default: 'warning',\n validator (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 * Additional class name for the header 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 headerClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Additional class name for the footer 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 footerClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Shows the close button on the modal\n * @values true, false\n */\n showClose: {\n type: Boolean,\n default: true,\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, HTML_ELEMENT_TYPE],\n default: 'first',\n validator: initialFocusElement => {\n return initialFocusElement === 'first' ||\n (initialFocusElement instanceof HTMLElement) ||\n initialFocusElement.startsWith('#');\n },\n },\n\n /**\n * A CSS selector string for the element to portal the modal to. If not provided, the modal will be rendered in its default location.\n */\n appendTo: {\n type: String,\n default: undefined,\n },\n\n /**\n * When true, the surrounding backdrop is rendered fully transparent\n * instead of the default dimming overlay. The dialog box itself\n * remains opaque. Useful when the underlying UI should remain visible.\n * @values true, false\n */\n transparentBackdrop: {\n type: Boolean,\n default: false,\n },\n\n /**\n * When true, the dialog opens with showModal(), which promotes it to the browser\n * top layer. Nothing outside the top layer can paint above it regardless of\n * z-index, so application surfaces such as toasts and call notifications end up\n * behind it. When false, it opens with show() and stays in the normal stacking\n * order, where the Dialtone z-index scale applies and --zi-notification (700)\n * outranks --zi-modal (600) as documented.\n *\n * Focus trapping, scroll locking and Esc-to-close behave identically in both\n * modes. Background inertness does not: only the top layer provides it, so with\n * modal unset the page outside the dialog stays reachable. That is deliberate —\n * it is what lets an application's own overlays remain usable above a modal —\n * and keyboard containment still comes from the focus trap.\n * @values true, false\n */\n modal: {\n type: Boolean,\n default: false,\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:open\n * @type {Boolean}\n */\n 'update:open',\n ],\n\n data () {\n return {\n MODAL_KIND_MODIFIERS,\n MODAL_BANNER_KINDS,\n hasSlotContent,\n i18n: new DialtoneLocalization(),\n autoTeleportTarget: null,\n mousedownOnBackdrop: false,\n mouseupOnBackdrop: false,\n };\n },\n\n computed: {\n hasFooterSlot () {\n return !!this.$slots.footer;\n },\n\n bannerKindClass () {\n return MODAL_BANNER_KINDS[this.bannerKind];\n },\n\n closeButtonTitle () {\n return this.i18n.$t('DIALTONE_CLOSE_BUTTON');\n },\n },\n\n watch: {\n open (isShowing) {\n this.syncDialogState(isShowing);\n },\n },\n\n mounted () {\n if (!this.appendTo) {\n const root = this.$el?.getRootNode();\n if (root instanceof ShadowRoot) {\n this.autoTeleportTarget = root;\n // Defer syncDialogState so the teleport renders inside the shadow root first.\n if (this.open) this.$nextTick(() => { if (this.open) this.syncDialogState(true); });\n return;\n }\n }\n if (this.open) {\n this.syncDialogState(true);\n }\n },\n\n beforeUnmount () {\n const dialogEl = this.$refs.dialogEl;\n if (dialogEl?.open) {\n dialogEl.close();\n enableRootScrolling(this.getScrollRoot());\n }\n this.previousActiveElement = null;\n },\n\n methods: {\n getScrollRoot () {\n return returnFirstEl(this.$refs.dialogEl)?.getRootNode()?.host;\n },\n\n syncDialogState (isShowing) {\n const dialogEl = this.$refs.dialogEl;\n if (!dialogEl) return;\n\n if (isShowing) {\n this.previousActiveElement = document.activeElement;\n if (!dialogEl.open) {\n // show() leaves the dialog in the normal stacking order instead of the\n // top layer, where the z-index scale still applies.\n if (this.modal) dialogEl.showModal(); else dialogEl.show();\n }\n disableRootScrolling(this.getScrollRoot());\n } else if (dialogEl.open) {\n // Leave transition plays via v-show on inner content.\n // close() is called in onAfterLeave when transition completes.\n enableRootScrolling(this.getScrollRoot());\n }\n },\n\n\n\n close () {\n this.$emit('update:open', false);\n },\n\n onBackdropMousedown (event) {\n this.mousedownOnBackdrop = event.target === event.currentTarget;\n },\n\n onBackdropMouseup (event) {\n this.mouseupOnBackdrop = event.target === event.currentTarget;\n },\n\n onBackdropClick (event) {\n const pressedAndReleasedOnBackdrop = this.mousedownOnBackdrop && this.mouseupOnBackdrop;\n if (this.closeOnClick && event.target === event.currentTarget && pressedAndReleasedOnBackdrop) {\n this.close();\n }\n this.$emit('click', event);\n },\n\n onKeydown (event) {\n // The native cancel event only fires for dialogs opened with showModal(), so\n // Esc has to be handled explicitly to keep dismissal identical in both modes.\n // defaultPrevented means a nested widget (dropdown, combobox) already consumed\n // it to close itself, and the modal must not close out from under it.\n if (!this.modal && event.key === 'Escape' && !event.defaultPrevented) {\n event.preventDefault();\n this.close();\n }\n this.$emit('keydown', event);\n },\n\n async onAfterEnter () {\n this.$emit('update:open', true);\n await this.setFocusAfterTransition();\n },\n\n onAfterLeave () {\n const dialogEl = this.$refs.dialogEl;\n if (dialogEl?.open) {\n dialogEl.close();\n }\n this.previousActiveElement?.focus();\n this.previousActiveElement = null;\n },\n\n focusFirstTabbable (container) {\n const focusable = [...container.querySelectorAll(focusableSelector)];\n if (!focusable.length) return;\n let target = focusable[0];\n // If first focusable is an unchecked radio, prefer the checked radio in the same group.\n if (target.matches('[type=\"radio\"]:not(:checked)')) {\n target = focusable.find(el => el.checked && el.name === target.name) || target;\n }\n target.focus({ preventScroll: true });\n },\n\n async setFocusAfterTransition () {\n const dialogEl = this.$refs.dialogEl;\n if (!dialogEl) return;\n\n await this.$nextTick();\n\n if (this.initialFocusElement === 'first') {\n this.focusFirstTabbable(dialogEl);\n } else if (typeof this.initialFocusElement === 'string' && this.initialFocusElement.startsWith('#')) {\n const el = dialogEl.querySelector(this.initialFocusElement);\n if (el) {\n el.focus();\n } else {\n // eslint-disable-next-line no-console\n console.warn('Could not find the element specified in dt-modal prop \"initialFocusElement\". ' +\n 'Defaulting to focusing the first element.');\n this.focusFirstTabbable(dialogEl);\n }\n } else if (this.initialFocusElement instanceof HTMLElement) {\n this.initialFocusElement.focus();\n }\n },\n },\n};\n</script>\n"],"mappings":"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"}
@@ -152,7 +152,9 @@ var F = "button:not(:disabled),[href],input:not(:disabled),select:not(:disabled)
152
152
  MODAL_BANNER_KINDS: p,
153
153
  hasSlotContent: i,
154
154
  i18n: new u(),
155
- autoTeleportTarget: null
155
+ autoTeleportTarget: null,
156
+ mousedownOnBackdrop: !1,
157
+ mouseupOnBackdrop: !1
156
158
  };
157
159
  },
158
160
  computed: {
@@ -196,8 +198,15 @@ var F = "button:not(:disabled),[href],input:not(:disabled),select:not(:disabled)
196
198
  close() {
197
199
  this.$emit("update:open", !1);
198
200
  },
201
+ onBackdropMousedown(e) {
202
+ this.mousedownOnBackdrop = e.target === e.currentTarget;
203
+ },
204
+ onBackdropMouseup(e) {
205
+ this.mouseupOnBackdrop = e.target === e.currentTarget;
206
+ },
199
207
  onBackdropClick(e) {
200
- this.closeOnClick && e.target === e.currentTarget && this.close(), this.$emit("click", e);
208
+ let t = this.mousedownOnBackdrop && this.mouseupOnBackdrop;
209
+ this.closeOnClick && e.target === e.currentTarget && t && this.close(), this.$emit("click", e);
201
210
  },
202
211
  onKeydown(e) {
203
212
  !this.modal && e.key === "Escape" && !e.defaultPrevented && (e.preventDefault(), this.close()), this.$emit("keydown", e);
@@ -249,8 +258,10 @@ function z(e, t, n, r, i, a) {
249
258
  "aria-labelledby": n.labelledById
250
259
  }, e.modeAttrs, {
251
260
  onCancel: t[0] || (t[0] = N((...e) => a.close && a.close(...e), ["prevent"])),
252
- onClick: t[1] || (t[1] = (...e) => a.onBackdropClick && a.onBackdropClick(...e)),
253
- onKeydown: t[2] || (t[2] = (...e) => a.onKeydown && a.onKeydown(...e))
261
+ onMousedown: t[1] || (t[1] = (...e) => a.onBackdropMousedown && a.onBackdropMousedown(...e)),
262
+ onMouseup: t[2] || (t[2] = (...e) => a.onBackdropMouseup && a.onBackdropMouseup(...e)),
263
+ onClick: t[3] || (t[3] = (...e) => a.onBackdropClick && a.onBackdropClick(...e)),
264
+ onKeydown: t[4] || (t[4] = (...e) => a.onKeydown && a.onKeydown(...e))
254
265
  }), [n.open && (i.hasSlotContent(e.$slots.banner) || n.bannerHeaderText) ? (T(), y("div", {
255
266
  key: 0,
256
267
  "data-qa": "dt-modal-banner",
@@ -1 +1 @@
1
- {"version":3,"file":"modal.js","names":[],"sources":["../../../components/Modal/Modal.vue"],"sourcesContent":["<template>\n <teleport\n :disabled=\"!appendTo && !autoTeleportTarget\"\n :to=\"appendTo || autoTeleportTarget\"\n >\n <!-- eslint-disable-next-line vuejs-accessibility/no-static-element-interactions -->\n <dialog\n ref=\"dialogEl\"\n v-dt-focustrap=\"{ active: open, initialFocus: false, restoreFocus: false }\"\n :class=\"[\n 'd-modal',\n MODAL_KIND_MODIFIERS[kind],\n { 'd-modal--full': fullscreen },\n { 'd-modal--transparent-backdrop': transparentBackdrop },\n modalClass,\n ]\"\n data-qa=\"dt-modal\"\n :aria-modal=\"modal ? 'true' : undefined\"\n :aria-describedby=\"describedById || undefined\"\n :aria-labelledby=\"labelledById\"\n v-bind=\"modeAttrs\"\n @cancel.prevent=\"close\"\n @click=\"onBackdropClick\"\n @keydown=\"onKeydown\"\n >\n <div\n v-if=\"open && (hasSlotContent($slots.banner) || bannerHeaderText)\"\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 bannerHeaderText prop -->\n <slot name=\"banner\">\n {{ bannerHeaderText }}\n </slot>\n </div>\n <transition\n :appear=\"open\"\n name=\"d-modal__dialog\"\n @after-enter=\"onAfterEnter\"\n @after-leave=\"onAfterLeave\"\n >\n <div\n v-show=\"open\"\n :class=\"[\n 'd-modal__dialog',\n { 'd-modal__dialog--scrollable': fixedHeaderFooter },\n dialogClass,\n ]\"\n >\n <div\n v-if=\"hasSlotContent($slots.header)\"\n :id=\"labelledById\"\n :class=\"['d-modal__header', headerClass]\"\n data-qa=\"dt-modal-title\"\n >\n <!-- @slot Slot for dialog header section, taking the place of any \"headerText\" text prop -->\n <slot name=\"header\" />\n </div>\n <dt-text\n v-else\n :id=\"labelledById\"\n kind=\"headline\"\n :size=\"600\"\n strength=\"medium\"\n density=\"100\"\n text-box-trim=\"start\"\n as=\"h2\"\n :class=\"['d-modal__header', headerClass]\"\n data-qa=\"dt-modal-title\"\n >\n {{ headerText }}\n </dt-text>\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', footerClass]\"\n >\n <!-- @slot Slot for dialog footer content, often containing cancel and confirm buttons. -->\n <slot name=\"footer\" />\n </footer>\n <sr-only-close-button\n v-if=\"!showClose\"\n @close=\"close\"\n />\n <dt-button\n v-else\n class=\"d-modal__close\"\n data-qa=\"dt-modal-close-button\"\n :size=\"300\"\n kind=\"muted\"\n importance=\"clear\"\n :aria-label=\"closeButtonTitle\"\n :title=\"closeButtonTitle\"\n @click=\"close\"\n >\n <template #icon=\"{ iconSize }\">\n <dt-icon-close\n :size=\"iconSize\"\n />\n </template>\n </dt-button>\n </div>\n </transition>\n </dialog>\n </teleport>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport { DtButton } from '@/components/Button';\nimport { DtText } from '@/components/Text';\nimport { DtIconClose } from '@dialpad/dialtone-icons/vue';\nimport ModeMixin from '@/common/mixins/mode';\nimport {\n MODAL_BANNER_KINDS,\n MODAL_KIND_MODIFIERS,\n} from './ModalConstants';\nimport { getUniqueString, hasSlotContent, returnFirstEl, disableRootScrolling, enableRootScrolling } from '@/common/utils';\nimport { HTML_ELEMENT_TYPE } from '@/common/constants';\nimport SrOnlyCloseButton from '@/common/sr_only_close_button.vue';\nimport { NOTICE_KINDS } from '@/components/Notice';\nimport { DialtoneLocalization } from '@/localization';\n\nconst focusableSelector = 'button:not(:disabled),[href],input:not(:disabled),select:not(:disabled),' +\n 'textarea:not(:disabled),details,[tabindex]:not([tabindex=\"-1\"]):not(:disabled):not([aria-disabled=\"true\"])';\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 DtButton,\n DtText,\n DtIconClose,\n SrOnlyCloseButton,\n },\n\n mixins: [ModeMixin],\n\n props: {\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 open: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Header text to display in the modal header.\n */\n headerText: {\n type: String,\n default: undefined,\n },\n\n /**\n * Header text to display in the modal banner.\n */\n bannerHeaderText: {\n type: String,\n default: undefined,\n },\n\n /**\n * The theme of the modal.\n * @values default, critical\n */\n kind: {\n type: String,\n default: 'default',\n validator: (k) => Object.keys(MODAL_KIND_MODIFIERS).includes(k),\n },\n\n /**\n * Whether the modal fills the viewport instead of rendering at its default size.\n * @values true, false\n */\n fullscreen: {\n type: Boolean,\n default: false,\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, critical, info, positive, warning\n */\n bannerKind: {\n type: String,\n default: 'warning',\n validator (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 * Additional class name for the header 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 headerClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Additional class name for the footer 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 footerClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Shows the close button on the modal\n * @values true, false\n */\n showClose: {\n type: Boolean,\n default: true,\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, HTML_ELEMENT_TYPE],\n default: 'first',\n validator: initialFocusElement => {\n return initialFocusElement === 'first' ||\n (initialFocusElement instanceof HTMLElement) ||\n initialFocusElement.startsWith('#');\n },\n },\n\n /**\n * A CSS selector string for the element to portal the modal to. If not provided, the modal will be rendered in its default location.\n */\n appendTo: {\n type: String,\n default: undefined,\n },\n\n /**\n * When true, the surrounding backdrop is rendered fully transparent\n * instead of the default dimming overlay. The dialog box itself\n * remains opaque. Useful when the underlying UI should remain visible.\n * @values true, false\n */\n transparentBackdrop: {\n type: Boolean,\n default: false,\n },\n\n /**\n * When true, the dialog opens with showModal(), which promotes it to the browser\n * top layer. Nothing outside the top layer can paint above it regardless of\n * z-index, so application surfaces such as toasts and call notifications end up\n * behind it. When false, it opens with show() and stays in the normal stacking\n * order, where the Dialtone z-index scale applies and --zi-notification (700)\n * outranks --zi-modal (600) as documented.\n *\n * Focus trapping, scroll locking and Esc-to-close behave identically in both\n * modes. Background inertness does not: only the top layer provides it, so with\n * modal unset the page outside the dialog stays reachable. That is deliberate —\n * it is what lets an application's own overlays remain usable above a modal —\n * and keyboard containment still comes from the focus trap.\n * @values true, false\n */\n modal: {\n type: Boolean,\n default: false,\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:open\n * @type {Boolean}\n */\n 'update:open',\n ],\n\n data () {\n return {\n MODAL_KIND_MODIFIERS,\n MODAL_BANNER_KINDS,\n hasSlotContent,\n i18n: new DialtoneLocalization(),\n autoTeleportTarget: null,\n };\n },\n\n computed: {\n hasFooterSlot () {\n return !!this.$slots.footer;\n },\n\n bannerKindClass () {\n return MODAL_BANNER_KINDS[this.bannerKind];\n },\n\n closeButtonTitle () {\n return this.i18n.$t('DIALTONE_CLOSE_BUTTON');\n },\n },\n\n watch: {\n open (isShowing) {\n this.syncDialogState(isShowing);\n },\n },\n\n mounted () {\n if (!this.appendTo) {\n const root = this.$el?.getRootNode();\n if (root instanceof ShadowRoot) {\n this.autoTeleportTarget = root;\n // Defer syncDialogState so the teleport renders inside the shadow root first.\n if (this.open) this.$nextTick(() => { if (this.open) this.syncDialogState(true); });\n return;\n }\n }\n if (this.open) {\n this.syncDialogState(true);\n }\n },\n\n beforeUnmount () {\n const dialogEl = this.$refs.dialogEl;\n if (dialogEl?.open) {\n dialogEl.close();\n enableRootScrolling(this.getScrollRoot());\n }\n this.previousActiveElement = null;\n },\n\n methods: {\n getScrollRoot () {\n return returnFirstEl(this.$refs.dialogEl)?.getRootNode()?.host;\n },\n\n syncDialogState (isShowing) {\n const dialogEl = this.$refs.dialogEl;\n if (!dialogEl) return;\n\n if (isShowing) {\n this.previousActiveElement = document.activeElement;\n if (!dialogEl.open) {\n // show() leaves the dialog in the normal stacking order instead of the\n // top layer, where the z-index scale still applies.\n if (this.modal) dialogEl.showModal(); else dialogEl.show();\n }\n disableRootScrolling(this.getScrollRoot());\n } else if (dialogEl.open) {\n // Leave transition plays via v-show on inner content.\n // close() is called in onAfterLeave when transition completes.\n enableRootScrolling(this.getScrollRoot());\n }\n },\n\n\n\n close () {\n this.$emit('update:open', false);\n },\n\n onBackdropClick (event) {\n if (this.closeOnClick && event.target === event.currentTarget) {\n this.close();\n }\n this.$emit('click', event);\n },\n\n onKeydown (event) {\n // The native cancel event only fires for dialogs opened with showModal(), so\n // Esc has to be handled explicitly to keep dismissal identical in both modes.\n // defaultPrevented means a nested widget (dropdown, combobox) already consumed\n // it to close itself, and the modal must not close out from under it.\n if (!this.modal && event.key === 'Escape' && !event.defaultPrevented) {\n event.preventDefault();\n this.close();\n }\n this.$emit('keydown', event);\n },\n\n async onAfterEnter () {\n this.$emit('update:open', true);\n await this.setFocusAfterTransition();\n },\n\n onAfterLeave () {\n const dialogEl = this.$refs.dialogEl;\n if (dialogEl?.open) {\n dialogEl.close();\n }\n this.previousActiveElement?.focus();\n this.previousActiveElement = null;\n },\n\n focusFirstTabbable (container) {\n const focusable = [...container.querySelectorAll(focusableSelector)];\n if (!focusable.length) return;\n let target = focusable[0];\n // If first focusable is an unchecked radio, prefer the checked radio in the same group.\n if (target.matches('[type=\"radio\"]:not(:checked)')) {\n target = focusable.find(el => el.checked && el.name === target.name) || target;\n }\n target.focus({ preventScroll: true });\n },\n\n async setFocusAfterTransition () {\n const dialogEl = this.$refs.dialogEl;\n if (!dialogEl) return;\n\n await this.$nextTick();\n\n if (this.initialFocusElement === 'first') {\n this.focusFirstTabbable(dialogEl);\n } else if (typeof this.initialFocusElement === 'string' && this.initialFocusElement.startsWith('#')) {\n const el = dialogEl.querySelector(this.initialFocusElement);\n if (el) {\n el.focus();\n } else {\n // eslint-disable-next-line no-console\n console.warn('Could not find the element specified in dt-modal prop \"initialFocusElement\". ' +\n 'Defaulting to focusing the first element.');\n this.focusFirstTabbable(dialogEl);\n }\n } else if (this.initialFocusElement instanceof HTMLElement) {\n this.initialFocusElement.focus();\n }\n },\n },\n};\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"modal.js","names":[],"sources":["../../../components/Modal/Modal.vue"],"sourcesContent":["<template>\n <teleport\n :disabled=\"!appendTo && !autoTeleportTarget\"\n :to=\"appendTo || autoTeleportTarget\"\n >\n <!-- eslint-disable-next-line vuejs-accessibility/no-static-element-interactions -->\n <dialog\n ref=\"dialogEl\"\n v-dt-focustrap=\"{ active: open, initialFocus: false, restoreFocus: false }\"\n :class=\"[\n 'd-modal',\n MODAL_KIND_MODIFIERS[kind],\n { 'd-modal--full': fullscreen },\n { 'd-modal--transparent-backdrop': transparentBackdrop },\n modalClass,\n ]\"\n data-qa=\"dt-modal\"\n :aria-modal=\"modal ? 'true' : undefined\"\n :aria-describedby=\"describedById || undefined\"\n :aria-labelledby=\"labelledById\"\n v-bind=\"modeAttrs\"\n @cancel.prevent=\"close\"\n @mousedown=\"onBackdropMousedown\"\n @mouseup=\"onBackdropMouseup\"\n @click=\"onBackdropClick\"\n @keydown=\"onKeydown\"\n >\n <div\n v-if=\"open && (hasSlotContent($slots.banner) || bannerHeaderText)\"\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 bannerHeaderText prop -->\n <slot name=\"banner\">\n {{ bannerHeaderText }}\n </slot>\n </div>\n <transition\n :appear=\"open\"\n name=\"d-modal__dialog\"\n @after-enter=\"onAfterEnter\"\n @after-leave=\"onAfterLeave\"\n >\n <div\n v-show=\"open\"\n :class=\"[\n 'd-modal__dialog',\n { 'd-modal__dialog--scrollable': fixedHeaderFooter },\n dialogClass,\n ]\"\n >\n <div\n v-if=\"hasSlotContent($slots.header)\"\n :id=\"labelledById\"\n :class=\"['d-modal__header', headerClass]\"\n data-qa=\"dt-modal-title\"\n >\n <!-- @slot Slot for dialog header section, taking the place of any \"headerText\" text prop -->\n <slot name=\"header\" />\n </div>\n <dt-text\n v-else\n :id=\"labelledById\"\n kind=\"headline\"\n :size=\"600\"\n strength=\"medium\"\n density=\"100\"\n text-box-trim=\"start\"\n as=\"h2\"\n :class=\"['d-modal__header', headerClass]\"\n data-qa=\"dt-modal-title\"\n >\n {{ headerText }}\n </dt-text>\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', footerClass]\"\n >\n <!-- @slot Slot for dialog footer content, often containing cancel and confirm buttons. -->\n <slot name=\"footer\" />\n </footer>\n <sr-only-close-button\n v-if=\"!showClose\"\n @close=\"close\"\n />\n <dt-button\n v-else\n class=\"d-modal__close\"\n data-qa=\"dt-modal-close-button\"\n :size=\"300\"\n kind=\"muted\"\n importance=\"clear\"\n :aria-label=\"closeButtonTitle\"\n :title=\"closeButtonTitle\"\n @click=\"close\"\n >\n <template #icon=\"{ iconSize }\">\n <dt-icon-close\n :size=\"iconSize\"\n />\n </template>\n </dt-button>\n </div>\n </transition>\n </dialog>\n </teleport>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport { DtButton } from '@/components/Button';\nimport { DtText } from '@/components/Text';\nimport { DtIconClose } from '@dialpad/dialtone-icons/vue';\nimport ModeMixin from '@/common/mixins/mode';\nimport {\n MODAL_BANNER_KINDS,\n MODAL_KIND_MODIFIERS,\n} from './ModalConstants';\nimport { getUniqueString, hasSlotContent, returnFirstEl, disableRootScrolling, enableRootScrolling } from '@/common/utils';\nimport { HTML_ELEMENT_TYPE } from '@/common/constants';\nimport SrOnlyCloseButton from '@/common/sr_only_close_button.vue';\nimport { NOTICE_KINDS } from '@/components/Notice';\nimport { DialtoneLocalization } from '@/localization';\n\nconst focusableSelector = 'button:not(:disabled),[href],input:not(:disabled),select:not(:disabled),' +\n 'textarea:not(:disabled),details,[tabindex]:not([tabindex=\"-1\"]):not(:disabled):not([aria-disabled=\"true\"])';\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 DtButton,\n DtText,\n DtIconClose,\n SrOnlyCloseButton,\n },\n\n mixins: [ModeMixin],\n\n props: {\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 open: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Header text to display in the modal header.\n */\n headerText: {\n type: String,\n default: undefined,\n },\n\n /**\n * Header text to display in the modal banner.\n */\n bannerHeaderText: {\n type: String,\n default: undefined,\n },\n\n /**\n * The theme of the modal.\n * @values default, critical\n */\n kind: {\n type: String,\n default: 'default',\n validator: (k) => Object.keys(MODAL_KIND_MODIFIERS).includes(k),\n },\n\n /**\n * Whether the modal fills the viewport instead of rendering at its default size.\n * @values true, false\n */\n fullscreen: {\n type: Boolean,\n default: false,\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, critical, info, positive, warning\n */\n bannerKind: {\n type: String,\n default: 'warning',\n validator (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 * Additional class name for the header 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 headerClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Additional class name for the footer 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 footerClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Shows the close button on the modal\n * @values true, false\n */\n showClose: {\n type: Boolean,\n default: true,\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, HTML_ELEMENT_TYPE],\n default: 'first',\n validator: initialFocusElement => {\n return initialFocusElement === 'first' ||\n (initialFocusElement instanceof HTMLElement) ||\n initialFocusElement.startsWith('#');\n },\n },\n\n /**\n * A CSS selector string for the element to portal the modal to. If not provided, the modal will be rendered in its default location.\n */\n appendTo: {\n type: String,\n default: undefined,\n },\n\n /**\n * When true, the surrounding backdrop is rendered fully transparent\n * instead of the default dimming overlay. The dialog box itself\n * remains opaque. Useful when the underlying UI should remain visible.\n * @values true, false\n */\n transparentBackdrop: {\n type: Boolean,\n default: false,\n },\n\n /**\n * When true, the dialog opens with showModal(), which promotes it to the browser\n * top layer. Nothing outside the top layer can paint above it regardless of\n * z-index, so application surfaces such as toasts and call notifications end up\n * behind it. When false, it opens with show() and stays in the normal stacking\n * order, where the Dialtone z-index scale applies and --zi-notification (700)\n * outranks --zi-modal (600) as documented.\n *\n * Focus trapping, scroll locking and Esc-to-close behave identically in both\n * modes. Background inertness does not: only the top layer provides it, so with\n * modal unset the page outside the dialog stays reachable. That is deliberate —\n * it is what lets an application's own overlays remain usable above a modal —\n * and keyboard containment still comes from the focus trap.\n * @values true, false\n */\n modal: {\n type: Boolean,\n default: false,\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:open\n * @type {Boolean}\n */\n 'update:open',\n ],\n\n data () {\n return {\n MODAL_KIND_MODIFIERS,\n MODAL_BANNER_KINDS,\n hasSlotContent,\n i18n: new DialtoneLocalization(),\n autoTeleportTarget: null,\n mousedownOnBackdrop: false,\n mouseupOnBackdrop: false,\n };\n },\n\n computed: {\n hasFooterSlot () {\n return !!this.$slots.footer;\n },\n\n bannerKindClass () {\n return MODAL_BANNER_KINDS[this.bannerKind];\n },\n\n closeButtonTitle () {\n return this.i18n.$t('DIALTONE_CLOSE_BUTTON');\n },\n },\n\n watch: {\n open (isShowing) {\n this.syncDialogState(isShowing);\n },\n },\n\n mounted () {\n if (!this.appendTo) {\n const root = this.$el?.getRootNode();\n if (root instanceof ShadowRoot) {\n this.autoTeleportTarget = root;\n // Defer syncDialogState so the teleport renders inside the shadow root first.\n if (this.open) this.$nextTick(() => { if (this.open) this.syncDialogState(true); });\n return;\n }\n }\n if (this.open) {\n this.syncDialogState(true);\n }\n },\n\n beforeUnmount () {\n const dialogEl = this.$refs.dialogEl;\n if (dialogEl?.open) {\n dialogEl.close();\n enableRootScrolling(this.getScrollRoot());\n }\n this.previousActiveElement = null;\n },\n\n methods: {\n getScrollRoot () {\n return returnFirstEl(this.$refs.dialogEl)?.getRootNode()?.host;\n },\n\n syncDialogState (isShowing) {\n const dialogEl = this.$refs.dialogEl;\n if (!dialogEl) return;\n\n if (isShowing) {\n this.previousActiveElement = document.activeElement;\n if (!dialogEl.open) {\n // show() leaves the dialog in the normal stacking order instead of the\n // top layer, where the z-index scale still applies.\n if (this.modal) dialogEl.showModal(); else dialogEl.show();\n }\n disableRootScrolling(this.getScrollRoot());\n } else if (dialogEl.open) {\n // Leave transition plays via v-show on inner content.\n // close() is called in onAfterLeave when transition completes.\n enableRootScrolling(this.getScrollRoot());\n }\n },\n\n\n\n close () {\n this.$emit('update:open', false);\n },\n\n onBackdropMousedown (event) {\n this.mousedownOnBackdrop = event.target === event.currentTarget;\n },\n\n onBackdropMouseup (event) {\n this.mouseupOnBackdrop = event.target === event.currentTarget;\n },\n\n onBackdropClick (event) {\n const pressedAndReleasedOnBackdrop = this.mousedownOnBackdrop && this.mouseupOnBackdrop;\n if (this.closeOnClick && event.target === event.currentTarget && pressedAndReleasedOnBackdrop) {\n this.close();\n }\n this.$emit('click', event);\n },\n\n onKeydown (event) {\n // The native cancel event only fires for dialogs opened with showModal(), so\n // Esc has to be handled explicitly to keep dismissal identical in both modes.\n // defaultPrevented means a nested widget (dropdown, combobox) already consumed\n // it to close itself, and the modal must not close out from under it.\n if (!this.modal && event.key === 'Escape' && !event.defaultPrevented) {\n event.preventDefault();\n this.close();\n }\n this.$emit('keydown', event);\n },\n\n async onAfterEnter () {\n this.$emit('update:open', true);\n await this.setFocusAfterTransition();\n },\n\n onAfterLeave () {\n const dialogEl = this.$refs.dialogEl;\n if (dialogEl?.open) {\n dialogEl.close();\n }\n this.previousActiveElement?.focus();\n this.previousActiveElement = null;\n },\n\n focusFirstTabbable (container) {\n const focusable = [...container.querySelectorAll(focusableSelector)];\n if (!focusable.length) return;\n let target = focusable[0];\n // If first focusable is an unchecked radio, prefer the checked radio in the same group.\n if (target.matches('[type=\"radio\"]:not(:checked)')) {\n target = focusable.find(el => el.checked && el.name === target.name) || target;\n }\n target.focus({ preventScroll: true });\n },\n\n async setFocusAfterTransition () {\n const dialogEl = this.$refs.dialogEl;\n if (!dialogEl) return;\n\n await this.$nextTick();\n\n if (this.initialFocusElement === 'first') {\n this.focusFirstTabbable(dialogEl);\n } else if (typeof this.initialFocusElement === 'string' && this.initialFocusElement.startsWith('#')) {\n const el = dialogEl.querySelector(this.initialFocusElement);\n if (el) {\n el.focus();\n } else {\n // eslint-disable-next-line no-console\n console.warn('Could not find the element specified in dt-modal prop \"initialFocusElement\". ' +\n 'Defaulting to focusing the first element.');\n this.focusFirstTabbable(dialogEl);\n }\n } else if (this.initialFocusElement instanceof HTMLElement) {\n this.initialFocusElement.focus();\n }\n },\n },\n};\n</script>\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../ForceLinkify-CI1tkUBf.cjs`);exports.forceLinkifyPendingText=e.t,exports.isValidLinkStructure=e.n,exports.rangeFullyLinked=e.r;
@@ -0,0 +1,2 @@
1
+ import { n as e, r as t, t as n } from "../../ForceLinkify-bO3ug94b.js";
2
+ export { n as forceLinkifyPendingText, e as isValidLinkStructure, t as rangeFullyLinked };
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../RichTextEditor-n42FPkjs.cjs`),t=require(`./rich-text-editor-constants.cjs`);exports.DtRichTextEditor=e.t,exports.RICH_TEXT_EDITOR_AUTOFOCUS_TYPES=t.RICH_TEXT_EDITOR_AUTOFOCUS_TYPES,exports.RICH_TEXT_EDITOR_OUTPUT_FORMATS=t.RICH_TEXT_EDITOR_OUTPUT_FORMATS;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`../../RichTextEditor-EHgahp8r.cjs`),t=require(`./rich-text-editor-constants.cjs`);exports.DtRichTextEditor=e.t,exports.RICH_TEXT_EDITOR_AUTOFOCUS_TYPES=t.RICH_TEXT_EDITOR_AUTOFOCUS_TYPES,exports.RICH_TEXT_EDITOR_OUTPUT_FORMATS=t.RICH_TEXT_EDITOR_OUTPUT_FORMATS;