@dialpad/dialtone-vue 3.218.3 → 3.219.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (763) hide show
  1. package/dist/common/constants/index.cjs +1 -1
  2. package/dist/common/constants/index.cjs.map +1 -1
  3. package/dist/common/constants/index.js +37 -20
  4. package/dist/common/constants/index.js.map +1 -1
  5. package/dist/common/constants/sizes.cjs +2 -0
  6. package/dist/common/constants/sizes.cjs.map +1 -0
  7. package/dist/common/constants/sizes.js +20 -0
  8. package/dist/common/constants/sizes.js.map +1 -0
  9. package/dist/common/mixins/index.cjs +1 -1
  10. package/dist/common/mixins/index.js +9 -7
  11. package/dist/common/mixins/index.js.map +1 -1
  12. package/dist/common/mixins/mode.cjs +2 -0
  13. package/dist/common/mixins/mode.cjs.map +1 -0
  14. package/dist/common/mixins/mode.js +82 -0
  15. package/dist/common/mixins/mode.js.map +1 -0
  16. package/dist/component-documentation.json +1 -1
  17. package/dist/dialtone-vue.cjs +1 -1
  18. package/dist/dialtone-vue.js +464 -408
  19. package/dist/dialtone-vue.js.map +1 -1
  20. package/dist/lib/attachment-carousel/attachment-carousel.cjs +1 -1
  21. package/dist/lib/attachment-carousel/attachment-carousel.cjs.map +1 -1
  22. package/dist/lib/attachment-carousel/attachment-carousel.js +8 -8
  23. package/dist/lib/attachment-carousel/attachment-carousel.js.map +1 -1
  24. package/dist/lib/avatar/avatar-constants.cjs +1 -1
  25. package/dist/lib/avatar/avatar-constants.cjs.map +1 -1
  26. package/dist/lib/avatar/avatar-constants.js +169 -43
  27. package/dist/lib/avatar/avatar-constants.js.map +1 -1
  28. package/dist/lib/avatar/avatar.cjs +1 -1
  29. package/dist/lib/avatar/avatar.cjs.map +1 -1
  30. package/dist/lib/avatar/avatar.js +186 -100
  31. package/dist/lib/avatar/avatar.js.map +1 -1
  32. package/dist/lib/avatar/index.cjs +1 -1
  33. package/dist/lib/avatar/index.js +16 -10
  34. package/dist/lib/badge/badge.cjs +1 -1
  35. package/dist/lib/badge/badge.cjs.map +1 -1
  36. package/dist/lib/badge/badge.js +47 -35
  37. package/dist/lib/badge/badge.js.map +1 -1
  38. package/dist/lib/banner/banner.cjs +1 -1
  39. package/dist/lib/banner/banner.cjs.map +1 -1
  40. package/dist/lib/banner/banner.js +19 -18
  41. package/dist/lib/banner/banner.js.map +1 -1
  42. package/dist/lib/breadcrumbs/breadcrumb-item.cjs +1 -1
  43. package/dist/lib/breadcrumbs/breadcrumb-item.cjs.map +1 -1
  44. package/dist/lib/breadcrumbs/breadcrumb-item.js +4 -1
  45. package/dist/lib/breadcrumbs/breadcrumb-item.js.map +1 -1
  46. package/dist/lib/breadcrumbs/breadcrumbs.cjs +1 -1
  47. package/dist/lib/breadcrumbs/breadcrumbs.cjs.map +1 -1
  48. package/dist/lib/breadcrumbs/breadcrumbs.js +22 -18
  49. package/dist/lib/breadcrumbs/breadcrumbs.js.map +1 -1
  50. package/dist/lib/button/button-constants.cjs +1 -1
  51. package/dist/lib/button/button-constants.cjs.map +1 -1
  52. package/dist/lib/button/button-constants.js +33 -15
  53. package/dist/lib/button/button-constants.js.map +1 -1
  54. package/dist/lib/button/button.cjs +1 -1
  55. package/dist/lib/button/button.cjs.map +1 -1
  56. package/dist/lib/button/button.js +195 -78
  57. package/dist/lib/button/button.js.map +1 -1
  58. package/dist/lib/button-group/button-group.cjs.map +1 -1
  59. package/dist/lib/button-group/button-group.js +1 -0
  60. package/dist/lib/button-group/button-group.js.map +1 -1
  61. package/dist/lib/callbar-button/callbar-button.cjs +1 -1
  62. package/dist/lib/callbar-button/callbar-button.cjs.map +1 -1
  63. package/dist/lib/callbar-button/callbar-button.js +14 -15
  64. package/dist/lib/callbar-button/callbar-button.js.map +1 -1
  65. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs +1 -1
  66. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs.map +1 -1
  67. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js +44 -32
  68. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js.map +1 -1
  69. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.cjs +1 -1
  70. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.cjs.map +1 -1
  71. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.js +40 -28
  72. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.js.map +1 -1
  73. package/dist/lib/callbox/callbox.cjs +1 -1
  74. package/dist/lib/callbox/callbox.cjs.map +1 -1
  75. package/dist/lib/callbox/callbox.js +48 -48
  76. package/dist/lib/callbox/callbox.js.map +1 -1
  77. package/dist/lib/checkbox/checkbox.cjs +1 -1
  78. package/dist/lib/checkbox/checkbox.cjs.map +1 -1
  79. package/dist/lib/checkbox/checkbox.js +97 -43
  80. package/dist/lib/checkbox/checkbox.js.map +1 -1
  81. package/dist/lib/chip/chip-constants.cjs +1 -1
  82. package/dist/lib/chip/chip-constants.cjs.map +1 -1
  83. package/dist/lib/chip/chip-constants.js +17 -2
  84. package/dist/lib/chip/chip-constants.js.map +1 -1
  85. package/dist/lib/chip/chip.cjs +1 -1
  86. package/dist/lib/chip/chip.cjs.map +1 -1
  87. package/dist/lib/chip/chip.js +17 -17
  88. package/dist/lib/chip/chip.js.map +1 -1
  89. package/dist/lib/codeblock/codeblock-constants.cjs +2 -0
  90. package/dist/lib/codeblock/codeblock-constants.cjs.map +1 -0
  91. package/dist/lib/codeblock/codeblock-constants.js +12 -0
  92. package/dist/lib/codeblock/codeblock-constants.js.map +1 -0
  93. package/dist/lib/codeblock/codeblock.cjs +1 -2
  94. package/dist/lib/codeblock/codeblock.cjs.map +1 -1
  95. package/dist/lib/codeblock/codeblock.js +38 -12
  96. package/dist/lib/codeblock/codeblock.js.map +1 -1
  97. package/dist/lib/collapsible/collapsible.cjs +1 -1
  98. package/dist/lib/collapsible/collapsible.cjs.map +1 -1
  99. package/dist/lib/collapsible/collapsible.js +1 -1
  100. package/dist/lib/collapsible/collapsible.js.map +1 -1
  101. package/dist/lib/combobox/combobox.cjs +2 -2
  102. package/dist/lib/combobox/combobox.cjs.map +1 -1
  103. package/dist/lib/combobox/combobox.js +22 -21
  104. package/dist/lib/combobox/combobox.js.map +1 -1
  105. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.cjs +1 -1
  106. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.cjs.map +1 -1
  107. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.js +16 -6
  108. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.js.map +1 -1
  109. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs +1 -1
  110. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs.map +1 -1
  111. package/dist/lib/combobox-multi-select/combobox-multi-select.js +48 -46
  112. package/dist/lib/combobox-multi-select/combobox-multi-select.js.map +1 -1
  113. package/dist/lib/combobox-with-popover/combobox-with-popover.cjs +1 -1
  114. package/dist/lib/combobox-with-popover/combobox-with-popover.cjs.map +1 -1
  115. package/dist/lib/combobox-with-popover/combobox-with-popover.js +37 -29
  116. package/dist/lib/combobox-with-popover/combobox-with-popover.js.map +1 -1
  117. package/dist/lib/contact-centers-row/contact-centers-row.cjs +1 -1
  118. package/dist/lib/contact-centers-row/contact-centers-row.cjs.map +1 -1
  119. package/dist/lib/contact-centers-row/contact-centers-row.js +36 -36
  120. package/dist/lib/contact-centers-row/contact-centers-row.js.map +1 -1
  121. package/dist/lib/contact-info/contact-info.cjs +1 -1
  122. package/dist/lib/contact-info/contact-info.cjs.map +1 -1
  123. package/dist/lib/contact-info/contact-info.js +56 -56
  124. package/dist/lib/contact-info/contact-info.js.map +1 -1
  125. package/dist/lib/contact-row/contact-row.cjs +1 -1
  126. package/dist/lib/contact-row/contact-row.cjs.map +1 -1
  127. package/dist/lib/contact-row/contact-row.js +3 -3
  128. package/dist/lib/contact-row/contact-row.js.map +1 -1
  129. package/dist/lib/datepicker/datepicker.cjs +1 -1
  130. package/dist/lib/datepicker/datepicker.cjs.map +1 -1
  131. package/dist/lib/datepicker/datepicker.js +93 -95
  132. package/dist/lib/datepicker/datepicker.js.map +1 -1
  133. package/dist/lib/description-list/description-list.cjs +1 -1
  134. package/dist/lib/description-list/description-list.cjs.map +1 -1
  135. package/dist/lib/description-list/description-list.js +2 -2
  136. package/dist/lib/description-list/description-list.js.map +1 -1
  137. package/dist/lib/dropdown/dropdown-constants.cjs +1 -1
  138. package/dist/lib/dropdown/dropdown-constants.cjs.map +1 -1
  139. package/dist/lib/dropdown/dropdown-constants.js +2 -2
  140. package/dist/lib/dropdown/dropdown-constants.js.map +1 -1
  141. package/dist/lib/dropdown/dropdown-list.cjs +1 -1
  142. package/dist/lib/dropdown/dropdown-list.cjs.map +1 -1
  143. package/dist/lib/dropdown/dropdown-list.js +29 -18
  144. package/dist/lib/dropdown/dropdown-list.js.map +1 -1
  145. package/dist/lib/dropdown/dropdown.cjs +1 -1
  146. package/dist/lib/dropdown/dropdown.cjs.map +1 -1
  147. package/dist/lib/dropdown/dropdown.js +27 -19
  148. package/dist/lib/dropdown/dropdown.js.map +1 -1
  149. package/dist/lib/editor/EditorToolbarButton.cjs +1 -1
  150. package/dist/lib/editor/EditorToolbarButton.cjs.map +1 -1
  151. package/dist/lib/editor/EditorToolbarButton.js +6 -6
  152. package/dist/lib/editor/EditorToolbarButton.js.map +1 -1
  153. package/dist/lib/editor/EditorToolbarDropdownButton.cjs +1 -1
  154. package/dist/lib/editor/EditorToolbarDropdownButton.cjs.map +1 -1
  155. package/dist/lib/editor/EditorToolbarDropdownButton.js +3 -3
  156. package/dist/lib/editor/EditorToolbarDropdownButton.js.map +1 -1
  157. package/dist/lib/editor/EditorToolbarPopoverButton.cjs +1 -1
  158. package/dist/lib/editor/EditorToolbarPopoverButton.cjs.map +1 -1
  159. package/dist/lib/editor/EditorToolbarPopoverButton.js +3 -3
  160. package/dist/lib/editor/EditorToolbarPopoverButton.js.map +1 -1
  161. package/dist/lib/editor/editor.cjs +1 -1
  162. package/dist/lib/editor/editor.cjs.map +1 -1
  163. package/dist/lib/editor/editor.js +48 -48
  164. package/dist/lib/editor/editor.js.map +1 -1
  165. package/dist/lib/emoji-picker/emoji-picker.cjs +1 -1
  166. package/dist/lib/emoji-picker/emoji-picker.cjs.map +1 -1
  167. package/dist/lib/emoji-picker/emoji-picker.js +62 -59
  168. package/dist/lib/emoji-picker/emoji-picker.js.map +1 -1
  169. package/dist/lib/emoji-row/emoji-row.cjs +1 -1
  170. package/dist/lib/emoji-row/emoji-row.cjs.map +1 -1
  171. package/dist/lib/emoji-row/emoji-row.js +10 -10
  172. package/dist/lib/emoji-row/emoji-row.js.map +1 -1
  173. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.cjs.map +1 -1
  174. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.js +2 -1
  175. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.js.map +1 -1
  176. package/dist/lib/empty-state/empty-state-constants.cjs +1 -1
  177. package/dist/lib/empty-state/empty-state-constants.cjs.map +1 -1
  178. package/dist/lib/empty-state/empty-state-constants.js +54 -12
  179. package/dist/lib/empty-state/empty-state-constants.js.map +1 -1
  180. package/dist/lib/empty-state/empty-state.cjs +1 -1
  181. package/dist/lib/empty-state/empty-state.cjs.map +1 -1
  182. package/dist/lib/empty-state/empty-state.js +60 -36
  183. package/dist/lib/empty-state/empty-state.js.map +1 -1
  184. package/dist/lib/feed-item-pill/feed-item-pill.cjs +1 -1
  185. package/dist/lib/feed-item-pill/feed-item-pill.cjs.map +1 -1
  186. package/dist/lib/feed-item-pill/feed-item-pill.js +56 -53
  187. package/dist/lib/feed-item-pill/feed-item-pill.js.map +1 -1
  188. package/dist/lib/feed-item-row/feed-item-row.cjs +1 -1
  189. package/dist/lib/feed-item-row/feed-item-row.cjs.map +1 -1
  190. package/dist/lib/feed-item-row/feed-item-row.js +12 -12
  191. package/dist/lib/feed-item-row/feed-item-row.js.map +1 -1
  192. package/dist/lib/filter-pill/filter-pill.cjs +2 -0
  193. package/dist/lib/filter-pill/filter-pill.cjs.map +1 -0
  194. package/dist/lib/filter-pill/filter-pill.js +569 -0
  195. package/dist/lib/filter-pill/filter-pill.js.map +1 -0
  196. package/dist/lib/filter-pill/index.cjs +2 -0
  197. package/dist/lib/filter-pill/index.cjs.map +1 -0
  198. package/dist/lib/filter-pill/index.js +5 -0
  199. package/dist/lib/filter-pill/index.js.map +1 -0
  200. package/dist/lib/general-row/general-row.cjs +1 -1
  201. package/dist/lib/general-row/general-row.cjs.map +1 -1
  202. package/dist/lib/general-row/general-row.js +154 -100
  203. package/dist/lib/general-row/general-row.js.map +1 -1
  204. package/dist/lib/general-row/leftbar-general-row-icon.cjs +1 -1
  205. package/dist/lib/general-row/leftbar-general-row-icon.cjs.map +1 -1
  206. package/dist/lib/general-row/leftbar-general-row-icon.js +1 -1
  207. package/dist/lib/general-row/leftbar-general-row-icon.js.map +1 -1
  208. package/dist/lib/group-row/group-row.cjs +1 -1
  209. package/dist/lib/group-row/group-row.cjs.map +1 -1
  210. package/dist/lib/group-row/group-row.js +2 -2
  211. package/dist/lib/group-row/group-row.js.map +1 -1
  212. package/dist/lib/grouped-chip/grouped-chip.cjs +1 -1
  213. package/dist/lib/grouped-chip/grouped-chip.cjs.map +1 -1
  214. package/dist/lib/grouped-chip/grouped-chip.js +33 -33
  215. package/dist/lib/grouped-chip/grouped-chip.js.map +1 -1
  216. package/dist/lib/hovercard/hovercard.cjs +1 -1
  217. package/dist/lib/hovercard/hovercard.cjs.map +1 -1
  218. package/dist/lib/hovercard/hovercard.js +37 -28
  219. package/dist/lib/hovercard/hovercard.js.map +1 -1
  220. package/dist/lib/icon/icon.cjs +1 -1
  221. package/dist/lib/icon/icon.cjs.map +1 -1
  222. package/dist/lib/icon/icon.js +1 -1
  223. package/dist/lib/icon/icon.js.map +1 -1
  224. package/dist/lib/illustration/illustration.cjs +1 -1
  225. package/dist/lib/illustration/illustration.cjs.map +1 -1
  226. package/dist/lib/illustration/illustration.js +1 -1
  227. package/dist/lib/illustration/illustration.js.map +1 -1
  228. package/dist/lib/image-viewer/image-viewer.cjs +1 -1
  229. package/dist/lib/image-viewer/image-viewer.cjs.map +1 -1
  230. package/dist/lib/image-viewer/image-viewer.js +28 -27
  231. package/dist/lib/image-viewer/image-viewer.js.map +1 -1
  232. package/dist/lib/input/input-constants.cjs +1 -1
  233. package/dist/lib/input/input-constants.cjs.map +1 -1
  234. package/dist/lib/input/input-constants.js +43 -22
  235. package/dist/lib/input/input-constants.js.map +1 -1
  236. package/dist/lib/input/input.cjs +1 -1
  237. package/dist/lib/input/input.cjs.map +1 -1
  238. package/dist/lib/input/input.js +165 -79
  239. package/dist/lib/input/input.js.map +1 -1
  240. package/dist/lib/input-group/input-group.cjs +1 -1
  241. package/dist/lib/input-group/input-group.cjs.map +1 -1
  242. package/dist/lib/input-group/input-group.js +35 -28
  243. package/dist/lib/input-group/input-group.js.map +1 -1
  244. package/dist/lib/item-layout/item-layout.cjs +3 -3
  245. package/dist/lib/item-layout/item-layout.cjs.map +1 -1
  246. package/dist/lib/item-layout/item-layout.js +74 -39
  247. package/dist/lib/item-layout/item-layout.js.map +1 -1
  248. package/dist/lib/ivr-node/ivr-node.cjs +1 -1
  249. package/dist/lib/ivr-node/ivr-node.cjs.map +1 -1
  250. package/dist/lib/ivr-node/ivr-node.js +1 -1
  251. package/dist/lib/ivr-node/ivr-node.js.map +1 -1
  252. package/dist/lib/keyboard-shortcut/keyboard-shortcut.cjs +1 -1
  253. package/dist/lib/keyboard-shortcut/keyboard-shortcut.cjs.map +1 -1
  254. package/dist/lib/keyboard-shortcut/keyboard-shortcut.js +57 -43
  255. package/dist/lib/keyboard-shortcut/keyboard-shortcut.js.map +1 -1
  256. package/dist/lib/kitchen-sink/kitchen-sink-view.cjs +2 -0
  257. package/dist/lib/kitchen-sink/kitchen-sink-view.cjs.map +1 -0
  258. package/dist/lib/kitchen-sink/kitchen-sink-view.js +263 -0
  259. package/dist/lib/kitchen-sink/kitchen-sink-view.js.map +1 -0
  260. package/dist/lib/link/link.cjs +1 -1
  261. package/dist/lib/link/link.cjs.map +1 -1
  262. package/dist/lib/link/link.js +22 -12
  263. package/dist/lib/link/link.js.map +1 -1
  264. package/dist/lib/list-item/list-item.cjs +1 -1
  265. package/dist/lib/list-item/list-item.cjs.map +1 -1
  266. package/dist/lib/list-item/list-item.js +27 -16
  267. package/dist/lib/list-item/list-item.js.map +1 -1
  268. package/dist/lib/message-input/message-input-button.cjs +1 -1
  269. package/dist/lib/message-input/message-input-button.cjs.map +1 -1
  270. package/dist/lib/message-input/message-input-button.js +4 -4
  271. package/dist/lib/message-input/message-input-button.js.map +1 -1
  272. package/dist/lib/message-input/message-input-link.cjs +1 -1
  273. package/dist/lib/message-input/message-input-link.cjs.map +1 -1
  274. package/dist/lib/message-input/message-input-link.js +12 -12
  275. package/dist/lib/message-input/message-input-link.js.map +1 -1
  276. package/dist/lib/message-input/message-input-topbar.cjs +1 -1
  277. package/dist/lib/message-input/message-input-topbar.cjs.map +1 -1
  278. package/dist/lib/message-input/message-input-topbar.js +2 -2
  279. package/dist/lib/message-input/message-input-topbar.js.map +1 -1
  280. package/dist/lib/message-input/message-input.cjs +1 -1
  281. package/dist/lib/message-input/message-input.cjs.map +1 -1
  282. package/dist/lib/message-input/message-input.js +52 -52
  283. package/dist/lib/message-input/message-input.js.map +1 -1
  284. package/dist/lib/modal/modal.cjs +1 -1
  285. package/dist/lib/modal/modal.cjs.map +1 -1
  286. package/dist/lib/modal/modal.js +120 -106
  287. package/dist/lib/modal/modal.js.map +1 -1
  288. package/dist/lib/mode-directive/index.cjs +2 -0
  289. package/dist/lib/mode-directive/index.cjs.map +1 -0
  290. package/dist/lib/mode-directive/index.js +5 -0
  291. package/dist/lib/mode-directive/index.js.map +1 -0
  292. package/dist/lib/mode-directive/mode.cjs +2 -0
  293. package/dist/lib/mode-directive/mode.cjs.map +1 -0
  294. package/dist/lib/mode-directive/mode.js +75 -0
  295. package/dist/lib/mode-directive/mode.js.map +1 -0
  296. package/dist/lib/mode-island/index.cjs +2 -0
  297. package/dist/lib/mode-island/index.cjs.map +1 -0
  298. package/dist/lib/mode-island/index.js +7 -0
  299. package/dist/lib/mode-island/index.js.map +1 -0
  300. package/dist/lib/mode-island/mode-island-constants.cjs +2 -0
  301. package/dist/lib/mode-island/mode-island-constants.cjs.map +1 -0
  302. package/dist/lib/mode-island/mode-island-constants.js +12 -0
  303. package/dist/lib/mode-island/mode-island-constants.js.map +1 -0
  304. package/dist/lib/mode-island/mode-island.cjs +2 -0
  305. package/dist/lib/mode-island/mode-island.cjs.map +1 -0
  306. package/dist/lib/mode-island/mode-island.js +130 -0
  307. package/dist/lib/mode-island/mode-island.js.map +1 -0
  308. package/dist/lib/mode-island/utils.cjs +2 -0
  309. package/dist/lib/mode-island/utils.cjs.map +1 -0
  310. package/dist/lib/mode-island/utils.js +32 -0
  311. package/dist/lib/mode-island/utils.js.map +1 -0
  312. package/dist/lib/mode-island/validators.cjs +2 -0
  313. package/dist/lib/mode-island/validators.cjs.map +1 -0
  314. package/dist/lib/mode-island/validators.js +12 -0
  315. package/dist/lib/mode-island/validators.js.map +1 -0
  316. package/dist/lib/motion-text/motion-text-constants.cjs +1 -1
  317. package/dist/lib/motion-text/motion-text-constants.cjs.map +1 -1
  318. package/dist/lib/motion-text/motion-text-constants.js +18 -8
  319. package/dist/lib/motion-text/motion-text-constants.js.map +1 -1
  320. package/dist/lib/motion-text/motion-text.cjs +1 -1
  321. package/dist/lib/motion-text/motion-text.cjs.map +1 -1
  322. package/dist/lib/motion-text/motion-text.js +17 -17
  323. package/dist/lib/motion-text/motion-text.js.map +1 -1
  324. package/dist/lib/notice/notice-action.cjs +1 -1
  325. package/dist/lib/notice/notice-action.cjs.map +1 -1
  326. package/dist/lib/notice/notice-action.js +9 -9
  327. package/dist/lib/notice/notice-action.js.map +1 -1
  328. package/dist/lib/notice/notice-content.cjs +1 -1
  329. package/dist/lib/notice/notice-content.cjs.map +1 -1
  330. package/dist/lib/notice/notice-content.js +38 -21
  331. package/dist/lib/notice/notice-content.js.map +1 -1
  332. package/dist/lib/notice/notice-icon.cjs +1 -1
  333. package/dist/lib/notice/notice-icon.cjs.map +1 -1
  334. package/dist/lib/notice/notice-icon.js +1 -1
  335. package/dist/lib/notice/notice-icon.js.map +1 -1
  336. package/dist/lib/notice/notice.cjs +1 -1
  337. package/dist/lib/notice/notice.cjs.map +1 -1
  338. package/dist/lib/notice/notice.js +20 -19
  339. package/dist/lib/notice/notice.js.map +1 -1
  340. package/dist/lib/pagination/pagination.cjs +1 -1
  341. package/dist/lib/pagination/pagination.cjs.map +1 -1
  342. package/dist/lib/pagination/pagination.js +16 -15
  343. package/dist/lib/pagination/pagination.js.map +1 -1
  344. package/dist/lib/popover/popover-constants.cjs +1 -1
  345. package/dist/lib/popover/popover-constants.cjs.map +1 -1
  346. package/dist/lib/popover/popover-constants.js +16 -16
  347. package/dist/lib/popover/popover-constants.js.map +1 -1
  348. package/dist/lib/popover/popover-header-footer.cjs +1 -1
  349. package/dist/lib/popover/popover-header-footer.cjs.map +1 -1
  350. package/dist/lib/popover/popover-header-footer.js +19 -12
  351. package/dist/lib/popover/popover-header-footer.js.map +1 -1
  352. package/dist/lib/popover/popover.cjs +1 -1
  353. package/dist/lib/popover/popover.cjs.map +1 -1
  354. package/dist/lib/popover/popover.js +80 -62
  355. package/dist/lib/popover/popover.js.map +1 -1
  356. package/dist/lib/radio/radio.cjs +1 -1
  357. package/dist/lib/radio/radio.cjs.map +1 -1
  358. package/dist/lib/radio/radio.js +103 -41
  359. package/dist/lib/radio/radio.js.map +1 -1
  360. package/dist/lib/rich-text-editor/rich-text-editor.cjs +3 -3
  361. package/dist/lib/rich-text-editor/rich-text-editor.cjs.map +1 -1
  362. package/dist/lib/rich-text-editor/rich-text-editor.js +637 -590
  363. package/dist/lib/rich-text-editor/rich-text-editor.js.map +1 -1
  364. package/dist/lib/root-layout/root-layout-constants.cjs +1 -1
  365. package/dist/lib/root-layout/root-layout-constants.cjs.map +1 -1
  366. package/dist/lib/root-layout/root-layout-constants.js +4 -2
  367. package/dist/lib/root-layout/root-layout-constants.js.map +1 -1
  368. package/dist/lib/root-layout/root-layout.cjs +1 -1
  369. package/dist/lib/root-layout/root-layout.cjs.map +1 -1
  370. package/dist/lib/root-layout/root-layout.js +15 -13
  371. package/dist/lib/root-layout/root-layout.js.map +1 -1
  372. package/dist/lib/segmented-control/index.cjs +2 -0
  373. package/dist/lib/segmented-control/index.cjs.map +1 -0
  374. package/dist/lib/segmented-control/index.js +20 -0
  375. package/dist/lib/segmented-control/index.js.map +1 -0
  376. package/dist/lib/segmented-control/segmented-control-constants.cjs +2 -0
  377. package/dist/lib/segmented-control/segmented-control-constants.cjs.map +1 -0
  378. package/dist/lib/segmented-control/segmented-control-constants.js +45 -0
  379. package/dist/lib/segmented-control/segmented-control-constants.js.map +1 -0
  380. package/dist/lib/segmented-control/segmented-control-item.cjs +2 -0
  381. package/dist/lib/segmented-control/segmented-control-item.cjs.map +1 -0
  382. package/dist/lib/segmented-control/segmented-control-item.js +124 -0
  383. package/dist/lib/segmented-control/segmented-control-item.js.map +1 -0
  384. package/dist/lib/segmented-control/segmented-control.cjs +2 -0
  385. package/dist/lib/segmented-control/segmented-control.cjs.map +1 -0
  386. package/dist/lib/segmented-control/segmented-control.js +236 -0
  387. package/dist/lib/segmented-control/segmented-control.js.map +1 -0
  388. package/dist/lib/select-menu/select-menu-constants.cjs +1 -1
  389. package/dist/lib/select-menu/select-menu-constants.cjs.map +1 -1
  390. package/dist/lib/select-menu/select-menu-constants.js +13 -6
  391. package/dist/lib/select-menu/select-menu-constants.js.map +1 -1
  392. package/dist/lib/select-menu/select-menu.cjs +1 -1
  393. package/dist/lib/select-menu/select-menu.cjs.map +1 -1
  394. package/dist/lib/select-menu/select-menu.js +133 -67
  395. package/dist/lib/select-menu/select-menu.js.map +1 -1
  396. package/dist/lib/settings-menu-button/settings-menu-button.cjs +1 -1
  397. package/dist/lib/settings-menu-button/settings-menu-button.cjs.map +1 -1
  398. package/dist/lib/settings-menu-button/settings-menu-button.js +20 -20
  399. package/dist/lib/settings-menu-button/settings-menu-button.js.map +1 -1
  400. package/dist/lib/skeleton/skeleton-constants.cjs +1 -1
  401. package/dist/lib/skeleton/skeleton-constants.cjs.map +1 -1
  402. package/dist/lib/skeleton/skeleton-constants.js +26 -14
  403. package/dist/lib/skeleton/skeleton-constants.js.map +1 -1
  404. package/dist/lib/skeleton/skeleton-list-item.cjs +1 -1
  405. package/dist/lib/skeleton/skeleton-list-item.cjs.map +1 -1
  406. package/dist/lib/skeleton/skeleton-list-item.js +3 -3
  407. package/dist/lib/skeleton/skeleton-list-item.js.map +1 -1
  408. package/dist/lib/skeleton/skeleton-shape.cjs +1 -1
  409. package/dist/lib/skeleton/skeleton-shape.cjs.map +1 -1
  410. package/dist/lib/skeleton/skeleton-shape.js +11 -11
  411. package/dist/lib/skeleton/skeleton-shape.js.map +1 -1
  412. package/dist/lib/split-button/split-button-constants.cjs +1 -1
  413. package/dist/lib/split-button/split-button-constants.cjs.map +1 -1
  414. package/dist/lib/split-button/split-button-constants.js +7 -0
  415. package/dist/lib/split-button/split-button-constants.js.map +1 -1
  416. package/dist/lib/split-button/split-button-end.cjs +2 -0
  417. package/dist/lib/split-button/split-button-end.cjs.map +1 -0
  418. package/dist/lib/split-button/{split-button-omega.js → split-button-end.js} +16 -16
  419. package/dist/lib/split-button/split-button-end.js.map +1 -0
  420. package/dist/lib/split-button/split-button-start.cjs +2 -0
  421. package/dist/lib/split-button/split-button-start.cjs.map +1 -0
  422. package/dist/lib/split-button/split-button-start.js +231 -0
  423. package/dist/lib/split-button/split-button-start.js.map +1 -0
  424. package/dist/lib/split-button/split-button.cjs +1 -1
  425. package/dist/lib/split-button/split-button.cjs.map +1 -1
  426. package/dist/lib/split-button/split-button.js +337 -101
  427. package/dist/lib/split-button/split-button.js.map +1 -1
  428. package/dist/lib/stack/stack-constants.cjs +1 -1
  429. package/dist/lib/stack/stack-constants.cjs.map +1 -1
  430. package/dist/lib/stack/stack-constants.js +1 -1
  431. package/dist/lib/stack/stack-constants.js.map +1 -1
  432. package/dist/lib/stack/stack.cjs.map +1 -1
  433. package/dist/lib/stack/stack.js +5 -3
  434. package/dist/lib/stack/stack.js.map +1 -1
  435. package/dist/lib/tab/index.cjs +1 -1
  436. package/dist/lib/tab/index.js +14 -11
  437. package/dist/lib/tab/tab-group.cjs +1 -1
  438. package/dist/lib/tab/tab-group.cjs.map +1 -1
  439. package/dist/lib/tab/tab-group.js +171 -56
  440. package/dist/lib/tab/tab-group.js.map +1 -1
  441. package/dist/lib/tab/tab.cjs +1 -1
  442. package/dist/lib/tab/tab.cjs.map +1 -1
  443. package/dist/lib/tab/tab.js +105 -31
  444. package/dist/lib/tab/tab.js.map +1 -1
  445. package/dist/lib/tab/tabs-constants.cjs +1 -1
  446. package/dist/lib/tab/tabs-constants.cjs.map +1 -1
  447. package/dist/lib/tab/tabs-constants.js +31 -10
  448. package/dist/lib/tab/tabs-constants.js.map +1 -1
  449. package/dist/lib/text/index.cjs +2 -0
  450. package/dist/lib/text/index.cjs.map +1 -0
  451. package/dist/lib/text/index.js +20 -0
  452. package/dist/lib/text/index.js.map +1 -0
  453. package/dist/lib/text/text-constants.cjs +2 -0
  454. package/dist/lib/text/text-constants.cjs.map +1 -0
  455. package/dist/lib/text/text-constants.js +78 -0
  456. package/dist/lib/text/text-constants.js.map +1 -0
  457. package/dist/lib/text/text-tone-tokens.cjs +2 -0
  458. package/dist/lib/text/text-tone-tokens.cjs.map +1 -0
  459. package/dist/lib/text/text-tone-tokens.js +33 -0
  460. package/dist/lib/text/text-tone-tokens.js.map +1 -0
  461. package/dist/lib/text/text.cjs +2 -0
  462. package/dist/lib/text/text.cjs.map +1 -0
  463. package/dist/lib/text/text.js +206 -0
  464. package/dist/lib/text/text.js.map +1 -0
  465. package/dist/lib/toast/toast.cjs +1 -1
  466. package/dist/lib/toast/toast.cjs.map +1 -1
  467. package/dist/lib/toast/toast.js +12 -11
  468. package/dist/lib/toast/toast.js.map +1 -1
  469. package/dist/lib/toggle/toggle-constants.cjs +1 -1
  470. package/dist/lib/toggle/toggle-constants.cjs.map +1 -1
  471. package/dist/lib/toggle/toggle-constants.js +6 -2
  472. package/dist/lib/toggle/toggle-constants.js.map +1 -1
  473. package/dist/lib/toggle/toggle.cjs +1 -1
  474. package/dist/lib/toggle/toggle.cjs.map +1 -1
  475. package/dist/lib/toggle/toggle.js +39 -35
  476. package/dist/lib/toggle/toggle.js.map +1 -1
  477. package/dist/lib/tooltip/tooltip.cjs +2 -2
  478. package/dist/lib/tooltip/tooltip.cjs.map +1 -1
  479. package/dist/lib/tooltip/tooltip.js +31 -26
  480. package/dist/lib/tooltip/tooltip.js.map +1 -1
  481. package/dist/lib/tooltip-directive/tooltip.cjs +1 -1
  482. package/dist/lib/tooltip-directive/tooltip.cjs.map +1 -1
  483. package/dist/lib/tooltip-directive/tooltip.js +40 -39
  484. package/dist/lib/tooltip-directive/tooltip.js.map +1 -1
  485. package/dist/lib/top-banner-info/top-banner-info.cjs +1 -1
  486. package/dist/lib/top-banner-info/top-banner-info.cjs.map +1 -1
  487. package/dist/lib/top-banner-info/top-banner-info.js +16 -16
  488. package/dist/lib/top-banner-info/top-banner-info.js.map +1 -1
  489. package/dist/lib/unread-pill/unread-pill.cjs +1 -1
  490. package/dist/lib/unread-pill/unread-pill.cjs.map +1 -1
  491. package/dist/lib/unread-pill/unread-pill.js +1 -1
  492. package/dist/lib/unread-pill/unread-pill.js.map +1 -1
  493. package/dist/localization/en-US.cjs +5 -0
  494. package/dist/localization/en-US.cjs.map +1 -1
  495. package/dist/localization/en-US.js +5 -0
  496. package/dist/localization/en-US.js.map +1 -1
  497. package/dist/mode_constants-C1GFodVj.js +14 -0
  498. package/dist/mode_constants-C1GFodVj.js.map +1 -0
  499. package/dist/mode_constants-DeLSnTcQ.cjs +2 -0
  500. package/dist/mode_constants-DeLSnTcQ.cjs.map +1 -0
  501. package/dist/node_modules/@tiptap/vue-3.cjs.map +1 -1
  502. package/dist/node_modules/@tiptap/vue-3.js.map +1 -1
  503. package/dist/shared/sr_only_close_button.cjs +1 -1
  504. package/dist/shared/sr_only_close_button.cjs.map +1 -1
  505. package/dist/shared/sr_only_close_button.js +1 -1
  506. package/dist/shared/sr_only_close_button.js.map +1 -1
  507. package/dist/style.css +1 -1
  508. package/dist/types/common/constants/index.d.ts +25 -19
  509. package/dist/types/common/constants/index.d.ts.map +1 -1
  510. package/dist/types/common/constants/sizes.d.ts +22 -0
  511. package/dist/types/common/constants/sizes.d.ts.map +1 -0
  512. package/dist/types/common/mixins/index.d.ts +1 -0
  513. package/dist/types/common/mixins/mode.d.ts +25 -0
  514. package/dist/types/common/mixins/mode.d.ts.map +1 -0
  515. package/dist/types/common/mode_constants.d.ts +37 -0
  516. package/dist/types/common/mode_constants.d.ts.map +1 -0
  517. package/dist/types/common/sr_only_close_button.vue.d.ts +53 -7
  518. package/dist/types/common/sr_only_close_button.vue.d.ts.map +1 -1
  519. package/dist/types/components/avatar/avatar.vue.d.ts +71 -25
  520. package/dist/types/components/avatar/avatar.vue.d.ts.map +1 -1
  521. package/dist/types/components/avatar/avatar_constants.d.ts +86 -29
  522. package/dist/types/components/avatar/avatar_constants.d.ts.map +1 -1
  523. package/dist/types/components/avatar/index.d.ts +1 -1
  524. package/dist/types/components/badge/badge.vue.d.ts.map +1 -1
  525. package/dist/types/components/banner/banner.vue.d.ts +246 -15
  526. package/dist/types/components/banner/banner.vue.d.ts.map +1 -1
  527. package/dist/types/components/breadcrumbs/breadcrumb_item.vue.d.ts +9 -0
  528. package/dist/types/components/breadcrumbs/breadcrumb_item.vue.d.ts.map +1 -1
  529. package/dist/types/components/breadcrumbs/breadcrumbs.vue.d.ts +9 -0
  530. package/dist/types/components/button/button.vue.d.ts +53 -7
  531. package/dist/types/components/button/button.vue.d.ts.map +1 -1
  532. package/dist/types/components/button/button_constants.d.ts +28 -19
  533. package/dist/types/components/button/button_constants.d.ts.map +1 -1
  534. package/dist/types/components/checkbox/checkbox.vue.d.ts +178 -4
  535. package/dist/types/components/checkbox/checkbox.vue.d.ts.map +1 -1
  536. package/dist/types/components/checkbox_group/checkbox_group.vue.d.ts +138 -0
  537. package/dist/types/components/chip/chip.vue.d.ts +58 -12
  538. package/dist/types/components/chip/chip.vue.d.ts.map +1 -1
  539. package/dist/types/components/chip/chip_constants.d.ts +24 -21
  540. package/dist/types/components/chip/chip_constants.d.ts.map +1 -1
  541. package/dist/types/components/codeblock/codeblock.vue.d.ts +25 -2
  542. package/dist/types/components/codeblock/codeblock.vue.d.ts.map +1 -1
  543. package/dist/types/components/codeblock/codeblock_constants.d.ts +9 -0
  544. package/dist/types/components/codeblock/codeblock_constants.d.ts.map +1 -0
  545. package/dist/types/components/collapsible/collapsible.vue.d.ts +53 -7
  546. package/dist/types/components/collapsible/collapsible.vue.d.ts.map +1 -1
  547. package/dist/types/components/combobox/combobox.vue.d.ts +109 -34
  548. package/dist/types/components/combobox/combobox.vue.d.ts.map +1 -1
  549. package/dist/types/components/combobox/combobox_empty-list.vue.d.ts +40 -7
  550. package/dist/types/components/combobox/combobox_empty-list.vue.d.ts.map +1 -1
  551. package/dist/types/components/combobox/combobox_loading-list.vue.d.ts +64 -22
  552. package/dist/types/components/combobox/combobox_loading-list.vue.d.ts.map +1 -1
  553. package/dist/types/components/combobox_multi_select/combobox_multi_select_constants.d.ts +16 -13
  554. package/dist/types/components/combobox_multi_select/combobox_multi_select_constants.d.ts.map +1 -1
  555. package/dist/types/components/combobox_with_popover/combobox_with_popover.vue.d.ts +388 -82
  556. package/dist/types/components/combobox_with_popover/combobox_with_popover.vue.d.ts.map +1 -1
  557. package/dist/types/components/datepicker/modules/month-year-picker.vue.d.ts.map +1 -1
  558. package/dist/types/components/dropdown/dropdown.vue.d.ts +170 -14
  559. package/dist/types/components/dropdown/dropdown.vue.d.ts.map +1 -1
  560. package/dist/types/components/emoji/emoji.vue.d.ts +24 -15
  561. package/dist/types/components/emoji_picker/emoji_picker.vue.d.ts +196 -6
  562. package/dist/types/components/emoji_picker/modules/emoji_search.vue.d.ts +196 -6
  563. package/dist/types/components/emoji_picker/modules/emoji_search.vue.d.ts.map +1 -1
  564. package/dist/types/components/emoji_picker/modules/emoji_tabset.vue.d.ts.map +1 -1
  565. package/dist/types/components/emoji_text_wrapper/emoji_text_wrapper.vue.d.ts +24 -15
  566. package/dist/types/components/emoji_text_wrapper/emoji_text_wrapper.vue.d.ts.map +1 -1
  567. package/dist/types/components/empty_state/empty_state.vue.d.ts.map +1 -1
  568. package/dist/types/components/empty_state/empty_state_constants.d.ts +52 -31
  569. package/dist/types/components/empty_state/empty_state_constants.d.ts.map +1 -1
  570. package/dist/types/components/filter_pill/filter_pill.vue.d.ts +4487 -0
  571. package/dist/types/components/filter_pill/filter_pill.vue.d.ts.map +1 -0
  572. package/dist/types/components/filter_pill/index.d.ts +2 -0
  573. package/dist/types/components/filter_pill/index.d.ts.map +1 -0
  574. package/dist/types/components/hovercard/hovercard.vue.d.ts +368 -29
  575. package/dist/types/components/hovercard/hovercard.vue.d.ts.map +1 -1
  576. package/dist/types/components/image_viewer/image_viewer.vue.d.ts +131 -14
  577. package/dist/types/components/image_viewer/image_viewer.vue.d.ts.map +1 -1
  578. package/dist/types/components/input/input.vue.d.ts +187 -5
  579. package/dist/types/components/input/input.vue.d.ts.map +1 -1
  580. package/dist/types/components/input/input_constants.d.ts +44 -46
  581. package/dist/types/components/input/input_constants.d.ts.map +1 -1
  582. package/dist/types/components/input_group/input_group.vue.d.ts +138 -0
  583. package/dist/types/components/input_group/input_group.vue.d.ts.map +1 -1
  584. package/dist/types/components/item_layout/item_layout.vue.d.ts +37 -6
  585. package/dist/types/components/item_layout/item_layout.vue.d.ts.map +1 -1
  586. package/dist/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts +138 -0
  587. package/dist/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts.map +1 -1
  588. package/dist/types/components/link/link.vue.d.ts +9 -0
  589. package/dist/types/components/list_item/list_item.vue.d.ts +40 -7
  590. package/dist/types/components/list_item/list_item.vue.d.ts.map +1 -1
  591. package/dist/types/components/modal/modal.vue.d.ts +271 -16
  592. package/dist/types/components/modal/modal.vue.d.ts.map +1 -1
  593. package/dist/types/components/mode_island/index.d.ts +3 -0
  594. package/dist/types/components/mode_island/index.d.ts.map +1 -0
  595. package/dist/types/components/mode_island/mode_island.vue.d.ts +3 -0
  596. package/dist/types/components/mode_island/mode_island.vue.d.ts.map +1 -0
  597. package/dist/types/components/mode_island/mode_island_constants.d.ts +10 -0
  598. package/dist/types/components/mode_island/mode_island_constants.d.ts.map +1 -0
  599. package/dist/types/components/mode_island/utils.d.ts +12 -0
  600. package/dist/types/components/mode_island/utils.d.ts.map +1 -0
  601. package/dist/types/components/mode_island/validators.d.ts +6 -0
  602. package/dist/types/components/mode_island/validators.d.ts.map +1 -0
  603. package/dist/types/components/motion_text/motion_text_constants.d.ts +27 -23
  604. package/dist/types/components/motion_text/motion_text_constants.d.ts.map +1 -1
  605. package/dist/types/components/notice/notice.vue.d.ts +246 -15
  606. package/dist/types/components/notice/notice.vue.d.ts.map +1 -1
  607. package/dist/types/components/notice/notice_action.vue.d.ts +106 -14
  608. package/dist/types/components/notice/notice_action.vue.d.ts.map +1 -1
  609. package/dist/types/components/notice/notice_content.vue.d.ts +140 -1
  610. package/dist/types/components/notice/notice_content.vue.d.ts.map +1 -1
  611. package/dist/types/components/notice/notice_icon.vue.d.ts.map +1 -1
  612. package/dist/types/components/pagination/pagination.vue.d.ts +53 -7
  613. package/dist/types/components/pagination/pagination.vue.d.ts.map +1 -1
  614. package/dist/types/components/popover/popover.vue.d.ts +159 -14
  615. package/dist/types/components/popover/popover.vue.d.ts.map +1 -1
  616. package/dist/types/components/popover/popover_header_footer.vue.d.ts +62 -7
  617. package/dist/types/components/popover/popover_header_footer.vue.d.ts.map +1 -1
  618. package/dist/types/components/radio/radio.vue.d.ts +173 -0
  619. package/dist/types/components/radio/radio.vue.d.ts.map +1 -1
  620. package/dist/types/components/radio_group/radio_group.vue.d.ts +138 -0
  621. package/dist/types/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts +9 -0
  622. package/dist/types/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts.map +1 -1
  623. package/dist/types/components/rich_text_editor/extensions/channels/ChannelSuggestion.vue.d.ts.map +1 -1
  624. package/dist/types/components/rich_text_editor/extensions/emoji/EmojiComponent.vue.d.ts +24 -15
  625. package/dist/types/components/rich_text_editor/extensions/emoji/EmojiSuggestion.vue.d.ts +24 -15
  626. package/dist/types/components/rich_text_editor/extensions/mentions/MentionComponent.vue.d.ts +9 -0
  627. package/dist/types/components/rich_text_editor/extensions/mentions/MentionSuggestion.vue.d.ts +209 -25
  628. package/dist/types/components/rich_text_editor/extensions/mentions/MentionSuggestion.vue.d.ts.map +1 -1
  629. package/dist/types/components/rich_text_editor/extensions/slash_command/SlashCommandSuggestion.vue.d.ts +140 -1
  630. package/dist/types/components/rich_text_editor/extensions/slash_command/SlashCommandSuggestion.vue.d.ts.map +1 -1
  631. package/dist/types/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts +40 -7
  632. package/dist/types/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts.map +1 -1
  633. package/dist/types/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts +399 -26
  634. package/dist/types/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts.map +1 -1
  635. package/dist/types/components/root_layout/root_layout_constants.d.ts +2 -0
  636. package/dist/types/components/root_layout/root_layout_constants.d.ts.map +1 -1
  637. package/dist/types/components/segmented_control/index.d.ts +4 -0
  638. package/dist/types/components/segmented_control/index.d.ts.map +1 -0
  639. package/dist/types/components/segmented_control/segmented_control.vue.d.ts +224 -0
  640. package/dist/types/components/segmented_control/segmented_control.vue.d.ts.map +1 -0
  641. package/dist/types/components/segmented_control/segmented_control_constants.d.ts +41 -0
  642. package/dist/types/components/segmented_control/segmented_control_constants.d.ts.map +1 -0
  643. package/dist/types/components/segmented_control/segmented_control_item.vue.d.ts +35 -0
  644. package/dist/types/components/segmented_control/segmented_control_item.vue.d.ts.map +1 -0
  645. package/dist/types/components/select_menu/select_menu.vue.d.ts +182 -18
  646. package/dist/types/components/select_menu/select_menu.vue.d.ts.map +1 -1
  647. package/dist/types/components/select_menu/select_menu_constants.d.ts +12 -7
  648. package/dist/types/components/select_menu/select_menu_constants.d.ts.map +1 -1
  649. package/dist/types/components/skeleton/skeleton-list-item.vue.d.ts +13 -10
  650. package/dist/types/components/skeleton/skeleton-paragraph.vue.d.ts +3 -0
  651. package/dist/types/components/skeleton/skeleton-shape.vue.d.ts +5 -5
  652. package/dist/types/components/skeleton/skeleton-text.vue.d.ts +3 -0
  653. package/dist/types/components/skeleton/skeleton.vue.d.ts +24 -15
  654. package/dist/types/components/skeleton/skeleton_constants.d.ts +18 -13
  655. package/dist/types/components/skeleton/skeleton_constants.d.ts.map +1 -1
  656. package/dist/types/components/split_button/{split_button-omega.vue.d.ts → split_button-end.vue.d.ts} +64 -13
  657. package/dist/types/components/split_button/{split_button-omega.vue.d.ts.map → split_button-end.vue.d.ts.map} +1 -1
  658. package/dist/types/components/split_button/{split_button-alpha.vue.d.ts → split_button-start.vue.d.ts} +125 -11
  659. package/dist/types/components/split_button/split_button-start.vue.d.ts.map +1 -0
  660. package/dist/types/components/split_button/split_button.vue.d.ts +589 -66
  661. package/dist/types/components/split_button/split_button.vue.d.ts.map +1 -1
  662. package/dist/types/components/split_button/split_button_constants.d.ts +12 -7
  663. package/dist/types/components/split_button/split_button_constants.d.ts.map +1 -1
  664. package/dist/types/components/stack/stack_constants.d.ts.map +1 -1
  665. package/dist/types/components/tab/index.d.ts +1 -1
  666. package/dist/types/components/tab/tab.vue.d.ts +85 -11
  667. package/dist/types/components/tab/tab.vue.d.ts.map +1 -1
  668. package/dist/types/components/tab/tab_group.vue.d.ts +91 -5
  669. package/dist/types/components/tab/tab_group.vue.d.ts.map +1 -1
  670. package/dist/types/components/tab/tabs_constants.d.ts +23 -5
  671. package/dist/types/components/tab/tabs_constants.d.ts.map +1 -1
  672. package/dist/types/components/text/index.d.ts +3 -0
  673. package/dist/types/components/text/index.d.ts.map +1 -0
  674. package/dist/types/components/text/scripts/update-text-tone-tokens.d.cts +3 -0
  675. package/dist/types/components/text/scripts/update-text-tone-tokens.d.cts.map +1 -0
  676. package/dist/types/components/text/scripts/update_text_tone_tokens.d.cts +3 -0
  677. package/dist/types/components/text/scripts/update_text_tone_tokens.d.cts.map +1 -0
  678. package/dist/types/components/text/scripts/update_text_tone_tokens.d.ts +1 -0
  679. package/dist/types/components/text/scripts/update_text_tone_tokens.d.ts.map +1 -0
  680. package/dist/types/components/text/text.vue.d.ts +141 -0
  681. package/dist/types/components/text/text.vue.d.ts.map +1 -0
  682. package/dist/types/components/text/text_constants.d.ts +82 -0
  683. package/dist/types/components/text/text_constants.d.ts.map +1 -0
  684. package/dist/types/components/text/text_tone_tokens.d.ts +3 -0
  685. package/dist/types/components/text/text_tone_tokens.d.ts.map +1 -0
  686. package/dist/types/components/toast/layouts/toast_layout_alternate.vue.d.ts +246 -15
  687. package/dist/types/components/toast/layouts/toast_layout_alternate.vue.d.ts.map +1 -1
  688. package/dist/types/components/toast/layouts/toast_layout_alternate_icon.vue.d.ts.map +1 -1
  689. package/dist/types/components/toast/layouts/toast_layout_default.vue.d.ts +246 -15
  690. package/dist/types/components/toast/layouts/toast_layout_default.vue.d.ts.map +1 -1
  691. package/dist/types/components/toast/toast.vue.d.ts +1033 -109
  692. package/dist/types/components/toast/toast.vue.d.ts.map +1 -1
  693. package/dist/types/components/toggle/toggle.vue.d.ts +14 -6
  694. package/dist/types/components/toggle/toggle.vue.d.ts.map +1 -1
  695. package/dist/types/components/toggle/toggle_constants.d.ts +6 -4
  696. package/dist/types/components/toggle/toggle_constants.d.ts.map +1 -1
  697. package/dist/types/components/tooltip/tooltip.vue.d.ts +27 -1
  698. package/dist/types/components/tooltip/tooltip.vue.d.ts.map +1 -1
  699. package/dist/types/directives/mode_directive/index.d.ts +2 -0
  700. package/dist/types/directives/mode_directive/index.d.ts.map +1 -0
  701. package/dist/types/directives/mode_directive/mode.d.ts +6 -0
  702. package/dist/types/directives/mode_directive/mode.d.ts.map +1 -0
  703. package/dist/types/directives/tooltip_directive/tooltip.d.ts.map +1 -1
  704. package/dist/types/index.d.ts +5 -0
  705. package/dist/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts +80 -8
  706. package/dist/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts.map +1 -1
  707. package/dist/types/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts +303 -29
  708. package/dist/types/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts.map +1 -1
  709. package/dist/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +293 -30
  710. package/dist/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts.map +1 -1
  711. package/dist/types/recipes/cards/ivr_node/ivr_node.vue.d.ts +223 -21
  712. package/dist/types/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
  713. package/dist/types/recipes/chips/grouped_chip/grouped_chip.vue.d.ts +58 -12
  714. package/dist/types/recipes/chips/grouped_chip/grouped_chip.vue.d.ts.map +1 -1
  715. package/dist/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts +237 -28
  716. package/dist/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
  717. package/dist/types/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts +184 -21
  718. package/dist/types/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts.map +1 -1
  719. package/dist/types/recipes/conversation_view/editor/EditorToolbarButton.vue.d.ts +53 -7
  720. package/dist/types/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts +223 -21
  721. package/dist/types/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts.map +1 -1
  722. package/dist/types/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts +212 -21
  723. package/dist/types/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts.map +1 -1
  724. package/dist/types/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts +128 -38
  725. package/dist/types/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts.map +1 -1
  726. package/dist/types/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts +90 -13
  727. package/dist/types/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts.map +1 -1
  728. package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +111 -32
  729. package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
  730. package/dist/types/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts +90 -13
  731. package/dist/types/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts.map +1 -1
  732. package/dist/types/recipes/conversation_view/message_input/message_input_button.vue.d.ts +218 -8
  733. package/dist/types/recipes/conversation_view/message_input/message_input_button.vue.d.ts.map +1 -1
  734. package/dist/types/recipes/conversation_view/message_input/message_input_link.vue.d.ts +617 -34
  735. package/dist/types/recipes/conversation_view/message_input/message_input_link.vue.d.ts.map +1 -1
  736. package/dist/types/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts +218 -8
  737. package/dist/types/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts.map +1 -1
  738. package/dist/types/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts +53 -7
  739. package/dist/types/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts.map +1 -1
  740. package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +108 -31
  741. package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts.map +1 -1
  742. package/dist/types/recipes/leftbar/callbox/callbox.vue.d.ts +71 -25
  743. package/dist/types/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
  744. package/dist/types/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts +77 -22
  745. package/dist/types/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts.map +1 -1
  746. package/dist/types/recipes/leftbar/contact_row/contact_row.vue.d.ts +557 -64
  747. package/dist/types/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
  748. package/dist/types/recipes/leftbar/general_row/general_row.vue.d.ts +462 -24
  749. package/dist/types/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  750. package/dist/types/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts.map +1 -1
  751. package/dist/types/recipes/leftbar/group_row/group_row.vue.d.ts +462 -24
  752. package/dist/types/recipes/leftbar/group_row/group_row.vue.d.ts.map +1 -1
  753. package/dist/types/recipes/leftbar/unread_pill/unread_pill.vue.d.ts.map +1 -1
  754. package/dist/types/recipes/notices/top_banner_info/top_banner_info.vue.d.ts.map +1 -1
  755. package/package.json +6 -5
  756. package/dist/lib/split-button/split-button-alpha.cjs +0 -2
  757. package/dist/lib/split-button/split-button-alpha.cjs.map +0 -1
  758. package/dist/lib/split-button/split-button-alpha.js +0 -138
  759. package/dist/lib/split-button/split-button-alpha.js.map +0 -1
  760. package/dist/lib/split-button/split-button-omega.cjs +0 -2
  761. package/dist/lib/split-button/split-button-omega.cjs.map +0 -1
  762. package/dist/lib/split-button/split-button-omega.js.map +0 -1
  763. package/dist/types/components/split_button/split_button-alpha.vue.d.ts.map +0 -1
@@ -1,25 +1,28 @@
1
- import { DtIconClose as I } from "@dialpad/dialtone-icons/vue3";
2
- import D from "../../common/mixins/modal.js";
1
+ import { DtIconClose as O } from "@dialpad/dialtone-icons/vue";
2
+ import B from "../../common/mixins/modal.js";
3
+ import F from "../../common/mixins/mode.js";
3
4
  import { MODAL_BANNER_KINDS as y, MODAL_SIZE_MODIFIERS as b, MODAL_KIND_MODIFIERS as E } from "./modal-constants.js";
4
- import { disableRootScrolling as O, returnFirstEl as g, enableRootScrolling as B, hasSlotContent as F, getUniqueString as M } from "../../common/utils/index.js";
5
- import { EVENT_KEYNAMES as d } from "../../common/constants/index.js";
6
- import A from "../../shared/sr_only_close_button.js";
7
- import { DialtoneLocalization as N } from "../../localization/index.js";
8
- import { resolveComponent as r, openBlock as a, createBlock as u, Teleport as R, createVNode as h, mergeProps as L, toHandlers as v, withCtx as f, createElementBlock as n, normalizeClass as c, renderSlot as m, createTextVNode as z, toDisplayString as _, createCommentVNode as S, Transition as K, withDirectives as q, createElementVNode as j, vShow as H } from "vue";
9
- import { _ as V } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
10
- import P from "../button/button.js";
11
- import U from "../lazy-show/lazy-show.js";
12
- import { NOTICE_KINDS as W } from "../notice/notice-constants.js";
13
- const Z = {
5
+ import { disableRootScrolling as M, returnFirstEl as g, enableRootScrolling as A, hasSlotContent as N, getUniqueString as R } from "../../common/utils/index.js";
6
+ import { EVENT_KEYNAMES as r } from "../../common/constants/index.js";
7
+ import L from "../../shared/sr_only_close_button.js";
8
+ import { DialtoneLocalization as v } from "../../localization/index.js";
9
+ import { resolveComponent as n, openBlock as a, createBlock as c, Teleport as z, createVNode as f, mergeProps as K, toHandlers as q, withCtx as m, createElementBlock as d, normalizeClass as u, renderSlot as h, createTextVNode as S, toDisplayString as _, createCommentVNode as C, Transition as j, withDirectives as x, createElementVNode as H, vShow as V } from "vue";
10
+ import { _ as P } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
11
+ import U from "../text/text.js";
12
+ import W from "../button/button.js";
13
+ import Z from "../lazy-show/lazy-show.js";
14
+ import { NOTICE_KINDS as Y } from "../notice/notice-constants.js";
15
+ const $ = {
14
16
  compatConfig: { MODE: 3 },
15
17
  name: "DtModal",
16
18
  components: {
17
- DtLazyShow: U,
18
- DtButton: P,
19
- DtIconClose: I,
20
- SrOnlyCloseButton: A
19
+ DtLazyShow: Z,
20
+ DtButton: W,
21
+ DtText: U,
22
+ DtIconClose: O,
23
+ SrOnlyCloseButton: L
21
24
  },
22
- mixins: [D],
25
+ mixins: [B, F],
23
26
  props: {
24
27
  /**
25
28
  * Body text to display as the modal's main content.
@@ -43,7 +46,7 @@ const Z = {
43
46
  labelledById: {
44
47
  type: String,
45
48
  default: function() {
46
- return M();
49
+ return R();
47
50
  }
48
51
  },
49
52
  /**
@@ -76,7 +79,7 @@ const Z = {
76
79
  kind: {
77
80
  type: String,
78
81
  default: "default",
79
- validator: (e) => Object.keys(E).includes(e)
82
+ validator: (t) => Object.keys(E).includes(t)
80
83
  },
81
84
  /**
82
85
  * The size of the modal. size - default or full,
@@ -85,7 +88,7 @@ const Z = {
85
88
  size: {
86
89
  type: String,
87
90
  default: "default",
88
- validator: (e) => Object.keys(b).includes(e)
91
+ validator: (t) => Object.keys(b).includes(t)
89
92
  },
90
93
  /**
91
94
  * Additional class name for the root modal element.
@@ -121,8 +124,8 @@ const Z = {
121
124
  bannerKind: {
122
125
  type: String,
123
126
  default: "warning",
124
- validate(e) {
125
- return W.includes(e);
127
+ validator(t) {
128
+ return Y.includes(t);
126
129
  }
127
130
  },
128
131
  /**
@@ -168,7 +171,7 @@ const Z = {
168
171
  initialFocusElement: {
169
172
  type: [String, HTMLElement],
170
173
  default: "first",
171
- validator: (e) => e === "first" || e instanceof HTMLElement || e.startsWith("#")
174
+ validator: (t) => t === "first" || t instanceof HTMLElement || t.startsWith("#")
172
175
  },
173
176
  /**
174
177
  * A CSS selector string for the element to portal the modal to. If not provided, the modal will be rendered in its default location.
@@ -207,36 +210,36 @@ const Z = {
207
210
  MODAL_KIND_MODIFIERS: E,
208
211
  MODAL_SIZE_MODIFIERS: b,
209
212
  MODAL_BANNER_KINDS: y,
210
- EVENT_KEYNAMES: d,
211
- hasSlotContent: F,
212
- i18n: new N()
213
+ EVENT_KEYNAMES: r,
214
+ hasSlotContent: N,
215
+ i18n: new v()
213
216
  };
214
217
  },
215
218
  computed: {
216
219
  modalListeners() {
217
220
  return {
218
- click: (e) => {
219
- this.closeOnClick && e.target === e.currentTarget ? this.close() : this.show && e.target !== e.currentTarget && this.handleModalClick(e), this.$emit("click", e);
221
+ click: (t) => {
222
+ this.closeOnClick && t.target === t.currentTarget ? this.close() : this.show && t.target !== t.currentTarget && this.handleModalClick(t), this.$emit("click", t);
220
223
  },
221
- keydown: (e) => {
222
- switch (e.code) {
223
- case d.esc:
224
- case d.escape:
224
+ keydown: (t) => {
225
+ switch (t.code) {
226
+ case r.esc:
227
+ case r.escape:
225
228
  this.close();
226
229
  break;
227
- case d.tab:
228
- this.trapFocus(e);
230
+ case r.tab:
231
+ this.trapFocus(t);
229
232
  break;
230
233
  }
231
- this.$emit("keydown", e);
234
+ this.$emit("keydown", t);
232
235
  },
233
236
  "after-enter": async () => {
234
237
  this.$emit("update:show", !0), await this.setFocusAfterTransition();
235
238
  },
236
- focusin: (e) => {
237
- var t;
238
- const o = ((t = this.$refs.modalRoot) == null ? void 0 : t.$el) || this.$el;
239
- this.show && o && !o.contains(e.target) && (e.preventDefault(), this.focusFirstElement(o));
239
+ focusin: (t) => {
240
+ var e;
241
+ const o = ((e = this.$refs.modalRoot) == null ? void 0 : e.$el) || this.$el;
242
+ this.show && o && !o.contains(t.target) && (t.preventDefault(), this.focusFirstElement(o));
240
243
  }
241
244
  };
242
245
  },
@@ -255,15 +258,15 @@ const Z = {
255
258
  },
256
259
  watch: {
257
260
  show: {
258
- handler(e) {
259
- var o, t, i;
260
- if (e) {
261
+ handler(t) {
262
+ var o, e, i;
263
+ if (t) {
261
264
  this.previousActiveElement = document.activeElement;
262
265
  const l = ((o = this.$refs.modalRoot) == null ? void 0 : o.$el) || this.$el;
263
- O(g(l).getRootNode().host);
266
+ M(g(l).getRootNode().host);
264
267
  } else {
265
- const l = ((t = this.$refs.modalRoot) == null ? void 0 : t.$el) || this.$el;
266
- B(g(l).getRootNode().host), (i = this.previousActiveElement) == null || i.focus(), this.previousActiveElement = null;
268
+ const l = ((e = this.$refs.modalRoot) == null ? void 0 : e.$el) || this.$el;
269
+ A(g(l).getRootNode().host), (i = this.previousActiveElement) == null || i.focus(), this.previousActiveElement = null;
267
270
  }
268
271
  }
269
272
  }
@@ -274,129 +277,140 @@ const Z = {
274
277
  },
275
278
  async setFocusAfterTransition() {
276
279
  var o;
277
- const e = ((o = this.$refs.modalRoot) == null ? void 0 : o.$el) || this.$el;
278
- this.initialFocusElement === "first" ? await this.focusFirstElement(e) : this.initialFocusElement.startsWith("#") ? await this.focusElementById(this.initialFocusElement) : this.initialFocusElement instanceof HTMLElement && this.initialFocusElement.focus();
280
+ const t = ((o = this.$refs.modalRoot) == null ? void 0 : o.$el) || this.$el;
281
+ this.initialFocusElement === "first" ? await this.focusFirstElement(t) : this.initialFocusElement.startsWith("#") ? await this.focusElementById(this.initialFocusElement) : this.initialFocusElement instanceof HTMLElement && this.initialFocusElement.focus();
279
282
  },
280
- trapFocus(e) {
283
+ trapFocus(t) {
281
284
  var o;
282
285
  if (this.show) {
283
- const t = ((o = this.$refs.modalRoot) == null ? void 0 : o.$el) || this.$el;
284
- this.focusTrappedTabPress(e, t);
286
+ const e = ((o = this.$refs.modalRoot) == null ? void 0 : o.$el) || this.$el;
287
+ this.focusTrappedTabPress(t, e);
285
288
  }
286
289
  },
287
- handleModalClick(e) {
290
+ handleModalClick(t) {
288
291
  var l;
289
- const o = e.target, t = ((l = this.$refs.modalRoot) == null ? void 0 : l.$el) || this.$el, i = this._getFocusableElements(t);
290
- i.length && !i.includes(o) && (i.includes(document.activeElement) || this.focusFirstElement(t));
292
+ const o = t.target, e = ((l = this.$refs.modalRoot) == null ? void 0 : l.$el) || this.$el, i = this._getFocusableElements(e);
293
+ i.length && !i.includes(o) && (i.includes(document.activeElement) || this.focusFirstElement(e));
291
294
  }
292
295
  }
293
- }, x = ["aria-describedby", "aria-labelledby"], Y = ["id"], $ = ["id"], G = {
296
+ }, G = ["aria-describedby", "aria-labelledby"], J = ["id"], Q = {
294
297
  key: 4,
295
298
  class: "d-modal__footer"
296
299
  };
297
- function J(e, o, t, i, l, s) {
298
- const C = r("sr-only-close-button"), k = r("dt-icon-close"), w = r("dt-button"), p = r("dt-lazy-show");
299
- return a(), u(R, {
300
- disabled: !t.appendTo,
301
- to: t.appendTo
300
+ function X(t, o, e, i, l, s) {
301
+ const k = n("dt-text"), w = n("sr-only-close-button"), p = n("dt-icon-close"), T = n("dt-button"), D = n("dt-lazy-show");
302
+ return a(), c(z, {
303
+ disabled: !e.appendTo,
304
+ to: e.appendTo
302
305
  }, [
303
- h(p, L({
306
+ f(D, K({
304
307
  ref: "modalRoot",
305
308
  transition: "d-zoom",
306
- show: t.show,
309
+ show: e.show,
307
310
  class: [
308
311
  "d-modal",
309
- l.MODAL_KIND_MODIFIERS[t.kind],
310
- l.MODAL_SIZE_MODIFIERS[t.size],
311
- t.modalClass
312
+ l.MODAL_KIND_MODIFIERS[e.kind],
313
+ l.MODAL_SIZE_MODIFIERS[e.size],
314
+ e.modalClass
312
315
  ],
313
316
  "data-qa": "dt-modal",
314
317
  "aria-hidden": s.open
315
- }, v(s.modalListeners)), {
316
- default: f(() => [
317
- t.show && (l.hasSlotContent(e.$slots.banner) || t.bannerTitle) ? (a(), n("div", {
318
+ }, t.modeAttrs, q(s.modalListeners)), {
319
+ default: m(() => [
320
+ e.show && (l.hasSlotContent(t.$slots.banner) || e.bannerTitle) ? (a(), d("div", {
318
321
  key: 0,
319
322
  "data-qa": "dt-modal-banner",
320
- class: c([
323
+ class: u([
321
324
  "d-modal__banner",
322
- t.bannerClass,
325
+ e.bannerClass,
323
326
  s.bannerKindClass
324
327
  ])
325
328
  }, [
326
- m(e.$slots, "banner", {}, () => [
327
- z(_(t.bannerTitle), 1)
329
+ h(t.$slots, "banner", {}, () => [
330
+ S(_(e.bannerTitle), 1)
328
331
  ])
329
- ], 2)) : S("", !0),
330
- h(K, {
332
+ ], 2)) : C("", !0),
333
+ f(j, {
331
334
  appear: "",
332
335
  name: "d-modal__dialog"
333
336
  }, {
334
- default: f(() => [
335
- q(j("div", {
336
- class: c([
337
+ default: m(() => [
338
+ x(H("div", {
339
+ class: u([
337
340
  "d-modal__dialog",
338
- { "d-modal__dialog--scrollable": t.fixedHeaderFooter },
339
- t.dialogClass
341
+ { "d-modal__dialog--scrollable": e.fixedHeaderFooter },
342
+ e.dialogClass
340
343
  ]),
341
344
  role: "dialog",
342
345
  "aria-modal": "true",
343
- "aria-describedby": t.describedById,
344
- "aria-labelledby": t.labelledById
346
+ "aria-describedby": e.describedById,
347
+ "aria-labelledby": e.labelledById
345
348
  }, [
346
- l.hasSlotContent(e.$slots.header) ? (a(), n("div", {
349
+ l.hasSlotContent(t.$slots.header) ? (a(), d("div", {
347
350
  key: 0,
348
- id: t.labelledById,
351
+ id: e.labelledById,
349
352
  class: "d-modal__header",
350
353
  "data-qa": "dt-modal-title"
351
354
  }, [
352
- m(e.$slots, "header")
353
- ], 8, Y)) : (a(), n("h2", {
355
+ h(t.$slots, "header")
356
+ ], 8, J)) : (a(), c(k, {
354
357
  key: 1,
355
- id: t.labelledById,
358
+ id: e.labelledById,
359
+ kind: "headline",
360
+ size: 600,
361
+ strength: "medium",
362
+ density: "100",
363
+ "text-box-trim": "start",
364
+ as: "h2",
356
365
  class: "d-modal__header",
357
366
  "data-qa": "dt-modal-title"
358
- }, _(t.title), 9, $)),
359
- l.hasSlotContent(e.$slots.default) ? (a(), n("div", {
367
+ }, {
368
+ default: m(() => [
369
+ S(_(e.title), 1)
370
+ ]),
371
+ _: 1
372
+ }, 8, ["id"])),
373
+ l.hasSlotContent(t.$slots.default) ? (a(), d("div", {
360
374
  key: 2,
361
- class: c([
375
+ class: u([
362
376
  "d-modal__content",
363
- t.contentClass
377
+ e.contentClass
364
378
  ]),
365
379
  "data-qa": "dt-modal-copy"
366
380
  }, [
367
- m(e.$slots, "default")
368
- ], 2)) : (a(), n("p", {
381
+ h(t.$slots, "default")
382
+ ], 2)) : (a(), d("p", {
369
383
  key: 3,
370
- class: c([
384
+ class: u([
371
385
  "d-modal__content",
372
- t.contentClass
386
+ e.contentClass
373
387
  ]),
374
388
  "data-qa": "dt-modal-copy"
375
- }, _(t.copy), 3)),
376
- s.hasFooterSlot ? (a(), n("footer", G, [
377
- m(e.$slots, "footer")
378
- ])) : S("", !0),
379
- t.hideClose ? (a(), u(C, {
389
+ }, _(e.copy), 3)),
390
+ s.hasFooterSlot ? (a(), d("footer", Q, [
391
+ h(t.$slots, "footer")
392
+ ])) : C("", !0),
393
+ e.hideClose ? (a(), c(w, {
380
394
  key: 5,
381
395
  onClose: s.close
382
- }, null, 8, ["onClose"])) : (a(), u(w, {
396
+ }, null, 8, ["onClose"])) : (a(), c(T, {
383
397
  key: 6,
384
398
  class: "d-modal__close",
385
399
  "data-qa": "dt-modal-close-button",
386
- size: "md",
400
+ size: 300,
387
401
  kind: "muted",
388
402
  importance: "clear",
389
403
  "aria-label": s.closeButtonTitle,
390
404
  title: s.closeButtonTitle,
391
405
  onClick: s.close
392
406
  }, {
393
- icon: f(({ iconSize: T }) => [
394
- h(k, { size: T }, null, 8, ["size"])
407
+ icon: m(({ iconSize: I }) => [
408
+ f(p, { size: I }, null, 8, ["size"])
395
409
  ]),
396
410
  _: 1
397
411
  }, 8, ["aria-label", "title", "onClick"]))
398
- ], 10, x), [
399
- [H, t.show]
412
+ ], 10, G), [
413
+ [V, e.show]
400
414
  ])
401
415
  ]),
402
416
  _: 3
@@ -406,8 +420,8 @@ function J(e, o, t, i, l, s) {
406
420
  }, 16, ["show", "class", "aria-hidden"])
407
421
  ], 8, ["disabled", "to"]);
408
422
  }
409
- const ce = /* @__PURE__ */ V(Z, [["render", J]]);
423
+ const ft = /* @__PURE__ */ P($, [["render", X]]);
410
424
  export {
411
- ce as default
425
+ ft as default
412
426
  };
413
427
  //# sourceMappingURL=modal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modal.js","sources":["../../../components/modal/modal.vue"],"sourcesContent":["<template>\n <teleport\n :disabled=\"!appendTo\"\n :to=\"appendTo\"\n >\n <dt-lazy-show\n ref=\"modalRoot\"\n transition=\"d-zoom\"\n :show=\"show\"\n :class=\"[\n 'd-modal',\n MODAL_KIND_MODIFIERS[kind],\n MODAL_SIZE_MODIFIERS[size],\n modalClass,\n ]\"\n data-qa=\"dt-modal\"\n :aria-hidden=\"open\"\n v-on=\"modalListeners\"\n >\n <div\n v-if=\"show && (hasSlotContent($slots.banner) || bannerTitle)\"\n data-qa=\"dt-modal-banner\"\n :class=\"[\n 'd-modal__banner',\n bannerClass,\n bannerKindClass,\n ]\"\n >\n <!-- @slot Slot for the banner, defaults to bannerTitle prop -->\n <slot name=\"banner\">\n {{ bannerTitle }}\n </slot>\n </div>\n <transition\n appear\n name=\"d-modal__dialog\"\n >\n <div\n v-show=\"show\"\n :class=\"[\n 'd-modal__dialog',\n { 'd-modal__dialog--scrollable': fixedHeaderFooter },\n dialogClass,\n ]\"\n role=\"dialog\"\n aria-modal=\"true\"\n :aria-describedby=\"describedById\"\n :aria-labelledby=\"labelledById\"\n >\n <div\n v-if=\"hasSlotContent($slots.header)\"\n :id=\"labelledById\"\n class=\"d-modal__header\"\n data-qa=\"dt-modal-title\"\n >\n <!-- @slot Slot for dialog header section, taking the place of any \"title\" text prop -->\n <slot name=\"header\" />\n </div>\n <h2\n v-else\n :id=\"labelledById\"\n class=\"d-modal__header\"\n data-qa=\"dt-modal-title\"\n >\n {{ title }}\n </h2>\n <div\n v-if=\"hasSlotContent($slots.default)\"\n :class=\"[\n 'd-modal__content',\n contentClass,\n ]\"\n data-qa=\"dt-modal-copy\"\n >\n <!-- @slot Default slot for dialog body section, taking the place of any \"copy\" text prop -->\n <slot />\n </div>\n <p\n v-else\n :class=\"[\n 'd-modal__content',\n contentClass,\n ]\"\n data-qa=\"dt-modal-copy\"\n >\n {{ copy }}\n </p>\n <footer\n v-if=\"hasFooterSlot\"\n class=\"d-modal__footer\"\n >\n <!-- @slot Slot for dialog footer content, often containing cancel and confirm buttons. -->\n <slot name=\"footer\" />\n </footer>\n <sr-only-close-button\n v-if=\"hideClose\"\n @close=\"close\"\n />\n <dt-button\n v-else\n class=\"d-modal__close\"\n data-qa=\"dt-modal-close-button\"\n size=\"md\"\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 </dt-lazy-show>\n </teleport>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport { DtButton } from '@/components/button';\nimport { DtIconClose } from '@dialpad/dialtone-icons/vue3';\nimport Modal from '@/common/mixins/modal';\nimport {\n MODAL_BANNER_KINDS,\n MODAL_KIND_MODIFIERS,\n MODAL_SIZE_MODIFIERS,\n} from './modal_constants';\nimport { returnFirstEl, getUniqueString, hasSlotContent, disableRootScrolling, enableRootScrolling } from '@/common/utils';\nimport { DtLazyShow } from '@/components/lazy_show';\nimport { EVENT_KEYNAMES } from '@/common/constants';\nimport SrOnlyCloseButton from '@/common/sr_only_close_button.vue';\nimport { NOTICE_KINDS } from '@/components/notice';\nimport { DialtoneLocalization } from '@/localization';\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 compatConfig: { MODE: 3 },\n name: 'DtModal',\n\n components: {\n DtLazyShow,\n DtButton,\n DtIconClose,\n SrOnlyCloseButton,\n },\n\n mixins: [Modal],\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 show: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Title text to display in the modal header.\n */\n title: {\n type: String,\n default: '',\n },\n\n /**\n * Title text to display in the modal banner.\n */\n bannerTitle: {\n type: String,\n default: '',\n },\n\n /**\n * The theme of the modal. kind - default or danger,\n * @values default, danger\n */\n kind: {\n type: String,\n default: 'default',\n validator: (k) => Object.keys(MODAL_KIND_MODIFIERS).includes(k),\n },\n\n /**\n * The size of the modal. size - default or full,\n * @values default, full\n */\n size: {\n type: String,\n default: 'default',\n validator: (s) => Object.keys(MODAL_SIZE_MODIFIERS).includes(s),\n },\n\n /**\n * Additional class name for the root modal element.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n modalClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Additional class name for the dialog element within the modal.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n dialogClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Additional class name for the content element within the modal.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n contentClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Sets the color of the banner.\n * @values base, error, info, success, warning\n */\n bannerKind: {\n type: String,\n default: 'warning',\n validate (kind) {\n return NOTICE_KINDS.includes(kind);\n },\n },\n\n /**\n * Additional class name for the banner element within the modal.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n bannerClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Hides the close button on the modal\n * @values true, false\n */\n hideClose: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Whether the modal will close when you click outside of the dialog on the overlay.\n * @values true, false\n */\n closeOnClick: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Scrollable modal that allows scroll the modal content keeping the header and footer fixed\n * @values true, false\n */\n fixedHeaderFooter: {\n type: Boolean,\n default: true,\n },\n\n /**\n * The element that is focused when the modal is opened. This can be an\n * HTMLElement within the modal, a string starting with '#' which will\n * find the element by ID. 'first' which will automatically focus\n * the first element, or 'dialog' which will focus the dialog window itself.\n * If the dialog is modal this prop cannot be 'none'.\n */\n initialFocusElement: {\n type: [String, HTMLElement],\n default: 'first',\n validator: initialFocusElement => {\n return initialFocusElement === 'first' ||\n (initialFocusElement instanceof HTMLElement) ||\n initialFocusElement.startsWith('#');\n },\n },\n\n /**\n * 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 emits: [\n /**\n * Native button click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Native keydown event\n *\n * @event keydown\n * @type {KeyboardEvent}\n */\n 'keydown',\n\n /**\n * The modal will emit a \"false\" boolean value for this event when the user performs a modal-closing action.\n * Parent components can sync on this value to create a 2-way binding to control modal visibility.\n *\n * @event update:show\n * @type {Boolean}\n */\n 'update:show',\n ],\n\n data () {\n return {\n MODAL_KIND_MODIFIERS,\n MODAL_SIZE_MODIFIERS,\n MODAL_BANNER_KINDS,\n EVENT_KEYNAMES,\n hasSlotContent,\n i18n: new DialtoneLocalization(),\n };\n },\n\n computed: {\n modalListeners () {\n return {\n click: event => {\n // Handle backdrop clicks for closing modal\n if (this.closeOnClick && event.target === event.currentTarget) {\n this.close();\n } else if (this.show && event.target !== event.currentTarget) {\n // Ensure focus stays within modal when clicking inside it\n this.handleModalClick(event);\n }\n\n this.$emit('click', event);\n },\n\n keydown: event => {\n switch (event.code) {\n case EVENT_KEYNAMES.esc:\n case EVENT_KEYNAMES.escape:\n this.close();\n break;\n case EVENT_KEYNAMES.tab:\n this.trapFocus(event);\n break;\n }\n this.$emit('keydown', event);\n },\n\n 'after-enter': async () => {\n this.$emit('update:show', true);\n await this.setFocusAfterTransition();\n },\n\n focusin: event => {\n // Ensure focus stays within modal\n const modalEl = this.$refs.modalRoot?.$el || this.$el;\n if (this.show && modalEl && !modalEl.contains(event.target)) {\n event.preventDefault();\n this.focusFirstElement(modalEl);\n }\n },\n };\n },\n\n open () {\n return `${!this.show}`;\n },\n\n hasFooterSlot () {\n return !!this.$slots.footer;\n },\n\n bannerKindClass () {\n return MODAL_BANNER_KINDS[this.bannerKind];\n },\n\n closeButtonTitle () {\n return this.i18n.$t('DIALTONE_CLOSE_BUTTON');\n },\n },\n\n watch: {\n show: {\n handler (isShowing) {\n if (isShowing) {\n // Set a reference to the previously-active element, to which we'll return focus on modal close.\n this.previousActiveElement = document.activeElement;\n const modalEl = this.$refs.modalRoot?.$el || this.$el;\n disableRootScrolling(returnFirstEl(modalEl).getRootNode().host);\n } else {\n const modalEl = this.$refs.modalRoot?.$el || this.$el;\n enableRootScrolling(returnFirstEl(modalEl).getRootNode().host);\n // Modal is being hidden, so return focus to the previously active element before clearing the reference.\n this.previousActiveElement?.focus();\n this.previousActiveElement = null;\n }\n },\n },\n },\n\n methods: {\n close () {\n this.$emit('update:show', false);\n },\n\n async setFocusAfterTransition () {\n const modalEl = this.$refs.modalRoot?.$el || this.$el;\n if (this.initialFocusElement === 'first') {\n await this.focusFirstElement(modalEl);\n } else if (this.initialFocusElement.startsWith('#')) {\n await this.focusElementById(this.initialFocusElement);\n } else if (this.initialFocusElement instanceof HTMLElement) {\n this.initialFocusElement.focus();\n }\n },\n\n trapFocus (e) {\n if (this.show) {\n const modalEl = this.$refs.modalRoot?.$el || this.$el;\n this.focusTrappedTabPress(e, modalEl);\n }\n },\n\n handleModalClick (event) {\n // Ensure focus stays within modal when clicking inside it\n const clickedElement = event.target;\n const modalEl = this.$refs.modalRoot?.$el || this.$el;\n const focusableElements = this._getFocusableElements(modalEl);\n\n // If the clicked element is not focusable, ensure focus stays in modal\n if (focusableElements.length && !focusableElements.includes(clickedElement)) {\n // Check if current active element is still within the modal\n if (!focusableElements.includes(document.activeElement)) {\n this.focusFirstElement(modalEl);\n }\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtLazyShow","DtButton","DtIconClose","SrOnlyCloseButton","Modal","getUniqueString","k","MODAL_KIND_MODIFIERS","s","MODAL_SIZE_MODIFIERS","kind","NOTICE_KINDS","initialFocusElement","MODAL_BANNER_KINDS","EVENT_KEYNAMES","hasSlotContent","DialtoneLocalization","event","modalEl","_a","isShowing","disableRootScrolling","returnFirstEl","_b","enableRootScrolling","_c","clickedElement","focusableElements","_createBlock","_Teleport","$props","_createVNode","_component_dt_lazy_show","_mergeProps","$data","$options","_toHandlers","_ctx","_createElementBlock","_normalizeClass","_renderSlot","_Transition","_createElementVNode","_hoisted_3","_openBlock","_hoisted_4","_component_sr_only_close_button","_component_dt_button","_withCtx","iconSize","_component_dt_icon_close"],"mappings":"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"}
1
+ {"version":3,"file":"modal.js","sources":["../../../components/modal/modal.vue"],"sourcesContent":["<template>\n <teleport\n :disabled=\"!appendTo\"\n :to=\"appendTo\"\n >\n <dt-lazy-show\n ref=\"modalRoot\"\n transition=\"d-zoom\"\n :show=\"show\"\n :class=\"[\n 'd-modal',\n MODAL_KIND_MODIFIERS[kind],\n MODAL_SIZE_MODIFIERS[size],\n modalClass,\n ]\"\n data-qa=\"dt-modal\"\n :aria-hidden=\"open\"\n v-bind=\"modeAttrs\"\n v-on=\"modalListeners\"\n >\n <div\n v-if=\"show && (hasSlotContent($slots.banner) || bannerTitle)\"\n data-qa=\"dt-modal-banner\"\n :class=\"[\n 'd-modal__banner',\n bannerClass,\n bannerKindClass,\n ]\"\n >\n <!-- @slot Slot for the banner, defaults to bannerTitle prop -->\n <slot name=\"banner\">\n {{ bannerTitle }}\n </slot>\n </div>\n <transition\n appear\n name=\"d-modal__dialog\"\n >\n <div\n v-show=\"show\"\n :class=\"[\n 'd-modal__dialog',\n { 'd-modal__dialog--scrollable': fixedHeaderFooter },\n dialogClass,\n ]\"\n role=\"dialog\"\n aria-modal=\"true\"\n :aria-describedby=\"describedById\"\n :aria-labelledby=\"labelledById\"\n >\n <div\n v-if=\"hasSlotContent($slots.header)\"\n :id=\"labelledById\"\n class=\"d-modal__header\"\n data-qa=\"dt-modal-title\"\n >\n <!-- @slot Slot for dialog header section, taking the place of any \"title\" text prop -->\n <slot name=\"header\" />\n </div>\n <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\"\n data-qa=\"dt-modal-title\"\n >\n {{ title }}\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\"\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=\"hideClose\"\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 </dt-lazy-show>\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 Modal from '@/common/mixins/modal';\nimport ModeMixin from '@/common/mixins/mode';\nimport {\n MODAL_BANNER_KINDS,\n MODAL_KIND_MODIFIERS,\n MODAL_SIZE_MODIFIERS,\n} from './modal_constants';\nimport { returnFirstEl, getUniqueString, hasSlotContent, disableRootScrolling, enableRootScrolling } from '@/common/utils';\nimport { DtLazyShow } from '@/components/lazy_show';\nimport { EVENT_KEYNAMES } from '@/common/constants';\nimport SrOnlyCloseButton from '@/common/sr_only_close_button.vue';\nimport { NOTICE_KINDS } from '@/components/notice';\nimport { DialtoneLocalization } from '@/localization';\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 compatConfig: { MODE: 3 },\n name: 'DtModal',\n\n components: {\n DtLazyShow,\n DtButton,\n DtText,\n DtIconClose,\n SrOnlyCloseButton,\n },\n\n mixins: [Modal, 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 show: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Title text to display in the modal header.\n */\n title: {\n type: String,\n default: '',\n },\n\n /**\n * Title text to display in the modal banner.\n */\n bannerTitle: {\n type: String,\n default: '',\n },\n\n /**\n * The theme of the modal. kind - default or danger,\n * @values default, danger\n */\n kind: {\n type: String,\n default: 'default',\n validator: (k) => Object.keys(MODAL_KIND_MODIFIERS).includes(k),\n },\n\n /**\n * The size of the modal. size - default or full,\n * @values default, full\n */\n size: {\n type: String,\n default: 'default',\n validator: (s) => Object.keys(MODAL_SIZE_MODIFIERS).includes(s),\n },\n\n /**\n * Additional class name for the root modal element.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n modalClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Additional class name for the dialog element within the modal.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n dialogClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Additional class name for the content element within the modal.\n * Can accept String, Object, and Array, i.e. has the\n * same API as Vue's built-in handling of the class attribute.\n */\n contentClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Sets the color of the banner.\n * @values base, error, info, success, warning\n */\n bannerKind: {\n type: String,\n default: 'warning',\n 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 * Hides the close button on the modal\n * @values true, false\n */\n hideClose: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Whether the modal will close when you click outside of the dialog on the overlay.\n * @values true, false\n */\n closeOnClick: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Scrollable modal that allows scroll the modal content keeping the header and footer fixed\n * @values true, false\n */\n fixedHeaderFooter: {\n type: Boolean,\n default: true,\n },\n\n /**\n * The element that is focused when the modal is opened. This can be an\n * HTMLElement within the modal, a string starting with '#' which will\n * find the element by ID. 'first' which will automatically focus\n * the first element, or 'dialog' which will focus the dialog window itself.\n * If the dialog is modal this prop cannot be 'none'.\n */\n initialFocusElement: {\n type: [String, HTMLElement],\n default: 'first',\n validator: initialFocusElement => {\n return initialFocusElement === 'first' ||\n (initialFocusElement instanceof HTMLElement) ||\n initialFocusElement.startsWith('#');\n },\n },\n\n /**\n * 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 emits: [\n /**\n * Native button click event\n *\n * @event click\n * @type {PointerEvent | KeyboardEvent}\n */\n 'click',\n\n /**\n * Native keydown event\n *\n * @event keydown\n * @type {KeyboardEvent}\n */\n 'keydown',\n\n /**\n * The modal will emit a \"false\" boolean value for this event when the user performs a modal-closing action.\n * Parent components can sync on this value to create a 2-way binding to control modal visibility.\n *\n * @event update:show\n * @type {Boolean}\n */\n 'update:show',\n ],\n\n data () {\n return {\n MODAL_KIND_MODIFIERS,\n MODAL_SIZE_MODIFIERS,\n MODAL_BANNER_KINDS,\n EVENT_KEYNAMES,\n hasSlotContent,\n i18n: new DialtoneLocalization(),\n };\n },\n\n computed: {\n modalListeners () {\n return {\n click: event => {\n // Handle backdrop clicks for closing modal\n if (this.closeOnClick && event.target === event.currentTarget) {\n this.close();\n } else if (this.show && event.target !== event.currentTarget) {\n // Ensure focus stays within modal when clicking inside it\n this.handleModalClick(event);\n }\n\n this.$emit('click', event);\n },\n\n keydown: event => {\n switch (event.code) {\n case EVENT_KEYNAMES.esc:\n case EVENT_KEYNAMES.escape:\n this.close();\n break;\n case EVENT_KEYNAMES.tab:\n this.trapFocus(event);\n break;\n }\n this.$emit('keydown', event);\n },\n\n 'after-enter': async () => {\n this.$emit('update:show', true);\n await this.setFocusAfterTransition();\n },\n\n focusin: event => {\n // Ensure focus stays within modal\n const modalEl = this.$refs.modalRoot?.$el || this.$el;\n if (this.show && modalEl && !modalEl.contains(event.target)) {\n event.preventDefault();\n this.focusFirstElement(modalEl);\n }\n },\n };\n },\n\n open () {\n return `${!this.show}`;\n },\n\n hasFooterSlot () {\n return !!this.$slots.footer;\n },\n\n bannerKindClass () {\n return MODAL_BANNER_KINDS[this.bannerKind];\n },\n\n closeButtonTitle () {\n return this.i18n.$t('DIALTONE_CLOSE_BUTTON');\n },\n },\n\n watch: {\n show: {\n handler (isShowing) {\n if (isShowing) {\n // Set a reference to the previously-active element, to which we'll return focus on modal close.\n this.previousActiveElement = document.activeElement;\n const modalEl = this.$refs.modalRoot?.$el || this.$el;\n disableRootScrolling(returnFirstEl(modalEl).getRootNode().host);\n } else {\n const modalEl = this.$refs.modalRoot?.$el || this.$el;\n enableRootScrolling(returnFirstEl(modalEl).getRootNode().host);\n // Modal is being hidden, so return focus to the previously active element before clearing the reference.\n this.previousActiveElement?.focus();\n this.previousActiveElement = null;\n }\n },\n },\n },\n\n methods: {\n close () {\n this.$emit('update:show', false);\n },\n\n async setFocusAfterTransition () {\n const modalEl = this.$refs.modalRoot?.$el || this.$el;\n if (this.initialFocusElement === 'first') {\n await this.focusFirstElement(modalEl);\n } else if (this.initialFocusElement.startsWith('#')) {\n await this.focusElementById(this.initialFocusElement);\n } else if (this.initialFocusElement instanceof HTMLElement) {\n this.initialFocusElement.focus();\n }\n },\n\n trapFocus (e) {\n if (this.show) {\n const modalEl = this.$refs.modalRoot?.$el || this.$el;\n this.focusTrappedTabPress(e, modalEl);\n }\n },\n\n handleModalClick (event) {\n // Ensure focus stays within modal when clicking inside it\n const clickedElement = event.target;\n const modalEl = this.$refs.modalRoot?.$el || this.$el;\n const focusableElements = this._getFocusableElements(modalEl);\n\n // If the clicked element is not focusable, ensure focus stays in modal\n if (focusableElements.length && !focusableElements.includes(clickedElement)) {\n // Check if current active element is still within the modal\n if (!focusableElements.includes(document.activeElement)) {\n this.focusFirstElement(modalEl);\n }\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtLazyShow","DtButton","DtText","DtIconClose","SrOnlyCloseButton","Modal","ModeMixin","getUniqueString","k","MODAL_KIND_MODIFIERS","s","MODAL_SIZE_MODIFIERS","kind","NOTICE_KINDS","initialFocusElement","MODAL_BANNER_KINDS","EVENT_KEYNAMES","hasSlotContent","DialtoneLocalization","event","modalEl","_a","isShowing","disableRootScrolling","returnFirstEl","_b","enableRootScrolling","_c","e","clickedElement","focusableElements","_createBlock","_Teleport","$props","_createVNode","_component_dt_lazy_show","_mergeProps","$data","$options","_ctx","_toHandlers","_createElementBlock","_normalizeClass","_renderSlot","_Transition","_createElementVNode","_component_dt_text","_openBlock","_hoisted_3","_component_sr_only_close_button","_component_dt_button","_withCtx","iconSize","_component_dt_icon_close"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./mode.cjs");exports.DtModeDirective=e.DtModeDirective;
2
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import { DtModeDirective as r } from "./mode.js";
2
+ export {
3
+ r as DtModeDirective
4
+ };
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("../mode-island/utils.cjs"),M=require("../../mode_constants-DeLSnTcQ.cjs"),b=M.a,i={inverted:"invert"},f={name:"dt-mode-directive",install(O){const o=new WeakMap;O.directive("dt-mode",{mounted(e,r){if(r.value===!1)return;const t=c(r.arg),d=v(e,t);o.set(e,d)},updated(e,r){const t=o.get(e),d=r.value!==r.oldValue,a=c(r.arg),n=a!==(t==null?void 0:t.arg);if(!d&&!n||(m(t),l(e),o.delete(e),r.value===!1))return;const u=v(e,a);o.set(e,u)},unmounted(e){m(o.get(e)),l(e),o.delete(e)}});function c(e){return e?b.includes(e)?e:i[e]?(console.warn(`[DtModeDirective] Invalid mode "${e}". Did you mean "${i[e]}"? Falling back to "${i[e]}".`),i[e]):(console.warn(`[DtModeDirective] Invalid mode "${e}". Valid modes: ${b.join(", ")}. Falling back to "invert".`),"invert"):"invert"}function v(e,r){const t={arg:r,contrastObserver:null,modeObserver:null};if(e.setAttribute("data-dt-contrast",s.getRootContrast()),t.contrastObserver=new MutationObserver(()=>{e.setAttribute("data-dt-contrast",s.getRootContrast())}),t.contrastObserver.observe(document.documentElement,{attributes:!0,attributeFilter:["data-dt-contrast"]}),r==="light"||r==="dark")e.setAttribute("data-dt-mode",r);else{const d=s.findParentMode(e);e.setAttribute("data-dt-mode",s.getOppositeMode(d));const a={attributes:!0,attributeFilter:["data-dt-mode"],subtree:!1};t.modeObserver=new MutationObserver(()=>{const u=s.findParentMode(e);e.setAttribute("data-dt-mode",s.getOppositeMode(u))}),t.modeObserver.observe(document.documentElement,a);let n=e.parentElement;for(;n&&n!==document.documentElement;)t.modeObserver.observe(n,a),n=n.parentElement}return t}function l(e){e.removeAttribute("data-dt-mode"),e.removeAttribute("data-dt-contrast")}function m(e){e&&(e.contrastObserver&&(e.contrastObserver.disconnect(),e.contrastObserver=null),e.modeObserver&&(e.modeObserver.disconnect(),e.modeObserver=null))}}};exports.DtModeDirective=f;exports.default=f;
2
+ //# sourceMappingURL=mode.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mode.cjs","sources":["../../../directives/mode_directive/mode.js"],"sourcesContent":["import {\n getOppositeMode,\n getRootContrast,\n findParentMode,\n} from '@/components/mode_island/utils';\nimport { CONTENT_MODE_VALUES } from '@/common/mode_constants';\n\nconst VALID_MODES = CONTENT_MODE_VALUES;\n\nconst SUGGESTIONS = {\n inverted: 'invert',\n};\n\n/**\n * v-dt-mode directive — applies a color mode (light, dark, or invert) to an element.\n *\n * Sets `data-dt-mode` and `data-dt-contrast` attributes so descendant token-based\n * styles (`d-fc-primary`, `d-bgc-secondary`, etc.) resolve to the correct palette.\n *\n * @example\n * // Explicit modes\n * <section v-dt-mode:dark>Dark content</section>\n * <section v-dt-mode:light>Light content</section>\n *\n * // Invert nearest parent mode (default when no arg)\n * <section v-dt-mode>Inverted content</section>\n * <section v-dt-mode:invert>Same as above</section>\n *\n * // Dynamic arg\n * <section v-dt-mode:[reactiveMode]>Reactive mode</section>\n *\n * // Disable with false value\n * <section v-dt-mode:dark=\"false\">No mode applied</section>\n */\nexport const DtModeDirective = {\n name: 'dt-mode-directive',\n install (app) {\n const instances = new WeakMap();\n\n app.directive('dt-mode', {\n mounted (el, binding) {\n if (binding.value === false) return;\n const mode = resolveArg(binding.arg);\n const state = applyMode(el, mode);\n instances.set(el, state);\n },\n\n updated (el, binding) {\n const prev = instances.get(el);\n const valueChanged = binding.value !== binding.oldValue;\n const resolvedArg = resolveArg(binding.arg);\n const argChanged = resolvedArg !== prev?.arg;\n if (!valueChanged && !argChanged) return;\n\n cleanup(prev);\n removeAttributes(el);\n instances.delete(el);\n\n if (binding.value === false) return;\n\n const state = applyMode(el, resolvedArg);\n instances.set(el, state);\n },\n\n unmounted (el) {\n cleanup(instances.get(el));\n removeAttributes(el);\n instances.delete(el);\n },\n });\n\n function resolveArg (arg) {\n if (!arg) return 'invert';\n if (VALID_MODES.includes(arg)) return arg;\n if (SUGGESTIONS[arg]) {\n // eslint-disable-next-line no-console\n console.warn(\n `[DtModeDirective] Invalid mode \"${arg}\". Did you mean \"${SUGGESTIONS[arg]}\"? Falling back to \"${SUGGESTIONS[arg]}\".`,\n );\n return SUGGESTIONS[arg];\n }\n // eslint-disable-next-line no-console\n console.warn(\n `[DtModeDirective] Invalid mode \"${arg}\". Valid modes: ${VALID_MODES.join(', ')}. Falling back to \"invert\".`,\n );\n return 'invert';\n }\n\n function applyMode (el, mode) {\n const state = {\n arg: mode,\n contrastObserver: null,\n modeObserver: null,\n };\n\n // Set contrast from root\n el.setAttribute('data-dt-contrast', getRootContrast());\n\n // Watch for contrast changes on root\n state.contrastObserver = new MutationObserver(() => {\n el.setAttribute('data-dt-contrast', getRootContrast());\n });\n state.contrastObserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['data-dt-contrast'],\n });\n\n if (mode === 'light' || mode === 'dark') {\n el.setAttribute('data-dt-mode', mode);\n } else {\n // invert mode\n const parentMode = findParentMode(el);\n el.setAttribute('data-dt-mode', getOppositeMode(parentMode));\n\n // Watch for mode changes on root and ancestors\n const config = {\n attributes: true,\n attributeFilter: ['data-dt-mode'],\n subtree: false,\n };\n\n state.modeObserver = new MutationObserver(() => {\n const currentParentMode = findParentMode(el);\n el.setAttribute('data-dt-mode', getOppositeMode(currentParentMode));\n });\n\n // Observe root element\n state.modeObserver.observe(document.documentElement, config);\n\n // Observe all ancestor elements for data-dt-mode changes.\n // This includes ancestors that don't yet have the attribute,\n // because a sibling directive may set it after this one mounts\n // (Vue 3 fires child mounted before parent mounted).\n let parent = el.parentElement;\n while (parent && parent !== document.documentElement) {\n state.modeObserver.observe(parent, config);\n parent = parent.parentElement;\n }\n }\n\n return state;\n }\n\n function removeAttributes (el) {\n el.removeAttribute('data-dt-mode');\n el.removeAttribute('data-dt-contrast');\n }\n\n function cleanup (state) {\n if (!state) return;\n if (state.contrastObserver) {\n state.contrastObserver.disconnect();\n state.contrastObserver = null;\n }\n if (state.modeObserver) {\n state.modeObserver.disconnect();\n state.modeObserver = null;\n }\n }\n },\n};\n\nexport default DtModeDirective;\n"],"names":["VALID_MODES","CONTENT_MODE_VALUES","SUGGESTIONS","DtModeDirective","app","instances","el","binding","mode","resolveArg","state","applyMode","prev","valueChanged","resolvedArg","argChanged","cleanup","removeAttributes","arg","getRootContrast","parentMode","findParentMode","getOppositeMode","config","currentParentMode","parent"],"mappings":"uMAOMA,EAAcC,EAAAA,EAEdC,EAAc,CAClB,SAAU,QACZ,EAuBaC,EAAkB,CAC7B,KAAM,oBACN,QAASC,EAAK,CACZ,MAAMC,EAAY,IAAI,QAEtBD,EAAI,UAAU,UAAW,CACvB,QAASE,EAAIC,EAAS,CACpB,GAAIA,EAAQ,QAAU,GAAO,OAC7B,MAAMC,EAAOC,EAAWF,EAAQ,GAAG,EAC7BG,EAAQC,EAAUL,EAAIE,CAAI,EAChCH,EAAU,IAAIC,EAAII,CAAK,CACzB,EAEA,QAASJ,EAAIC,EAAS,CACpB,MAAMK,EAAOP,EAAU,IAAIC,CAAE,EACvBO,EAAeN,EAAQ,QAAUA,EAAQ,SACzCO,EAAcL,EAAWF,EAAQ,GAAG,EACpCQ,EAAaD,KAAgBF,GAAA,YAAAA,EAAM,KAOzC,GANI,CAACC,GAAgB,CAACE,IAEtBC,EAAQJ,CAAI,EACZK,EAAiBX,CAAE,EACnBD,EAAU,OAAOC,CAAE,EAEfC,EAAQ,QAAU,IAAO,OAE7B,MAAMG,EAAQC,EAAUL,EAAIQ,CAAW,EACvCT,EAAU,IAAIC,EAAII,CAAK,CACzB,EAEA,UAAWJ,EAAI,CACbU,EAAQX,EAAU,IAAIC,CAAE,CAAC,EACzBW,EAAiBX,CAAE,EACnBD,EAAU,OAAOC,CAAE,CACrB,CACN,CAAK,EAED,SAASG,EAAYS,EAAK,CACxB,OAAKA,EACDlB,EAAY,SAASkB,CAAG,EAAUA,EAClChB,EAAYgB,CAAG,GAEjB,QAAQ,KACN,mCAAmCA,CAAG,oBAAoBhB,EAAYgB,CAAG,CAAC,uBAAuBhB,EAAYgB,CAAG,CAAC,IAC3H,EACehB,EAAYgB,CAAG,IAGxB,QAAQ,KACN,mCAAmCA,CAAG,mBAAmBlB,EAAY,KAAK,IAAI,CAAC,6BACvF,EACa,UAbU,QAcnB,CAEA,SAASW,EAAWL,EAAIE,EAAM,CAC5B,MAAME,EAAQ,CACZ,IAAKF,EACL,iBAAkB,KAClB,aAAc,IACtB,EAcM,GAXAF,EAAG,aAAa,mBAAoBa,EAAAA,iBAAiB,EAGrDT,EAAM,iBAAmB,IAAI,iBAAiB,IAAM,CAClDJ,EAAG,aAAa,mBAAoBa,EAAAA,iBAAiB,CACvD,CAAC,EACDT,EAAM,iBAAiB,QAAQ,SAAS,gBAAiB,CACvD,WAAY,GACZ,gBAAiB,CAAC,kBAAkB,CAC5C,CAAO,EAEGF,IAAS,SAAWA,IAAS,OAC/BF,EAAG,aAAa,eAAgBE,CAAI,MAC/B,CAEL,MAAMY,EAAaC,EAAAA,eAAef,CAAE,EACpCA,EAAG,aAAa,eAAgBgB,EAAAA,gBAAgBF,CAAU,CAAC,EAG3D,MAAMG,EAAS,CACb,WAAY,GACZ,gBAAiB,CAAC,cAAc,EAChC,QAAS,EACnB,EAEQb,EAAM,aAAe,IAAI,iBAAiB,IAAM,CAC9C,MAAMc,EAAoBH,EAAAA,eAAef,CAAE,EAC3CA,EAAG,aAAa,eAAgBgB,EAAAA,gBAAgBE,CAAiB,CAAC,CACpE,CAAC,EAGDd,EAAM,aAAa,QAAQ,SAAS,gBAAiBa,CAAM,EAM3D,IAAIE,EAASnB,EAAG,cAChB,KAAOmB,GAAUA,IAAW,SAAS,iBACnCf,EAAM,aAAa,QAAQe,EAAQF,CAAM,EACzCE,EAASA,EAAO,aAEpB,CAEA,OAAOf,CACT,CAEA,SAASO,EAAkBX,EAAI,CAC7BA,EAAG,gBAAgB,cAAc,EACjCA,EAAG,gBAAgB,kBAAkB,CACvC,CAEA,SAASU,EAASN,EAAO,CAClBA,IACDA,EAAM,mBACRA,EAAM,iBAAiB,WAAU,EACjCA,EAAM,iBAAmB,MAEvBA,EAAM,eACRA,EAAM,aAAa,WAAU,EAC7BA,EAAM,aAAe,MAEzB,CACF,CACF"}
@@ -0,0 +1,75 @@
1
+ import { getRootContrast as l, findParentMode as b, getOppositeMode as f } from "../mode-island/utils.js";
2
+ import { a as M } from "../../mode_constants-C1GFodVj.js";
3
+ const O = M, d = {
4
+ inverted: "invert"
5
+ }, E = {
6
+ name: "dt-mode-directive",
7
+ install(p) {
8
+ const o = /* @__PURE__ */ new WeakMap();
9
+ p.directive("dt-mode", {
10
+ mounted(t, r) {
11
+ if (r.value === !1) return;
12
+ const e = u(r.arg), s = c(t, e);
13
+ o.set(t, s);
14
+ },
15
+ updated(t, r) {
16
+ const e = o.get(t), s = r.value !== r.oldValue, a = u(r.arg), n = a !== (e == null ? void 0 : e.arg);
17
+ if (!s && !n || (m(e), v(t), o.delete(t), r.value === !1)) return;
18
+ const i = c(t, a);
19
+ o.set(t, i);
20
+ },
21
+ unmounted(t) {
22
+ m(o.get(t)), v(t), o.delete(t);
23
+ }
24
+ });
25
+ function u(t) {
26
+ return t ? O.includes(t) ? t : d[t] ? (console.warn(
27
+ `[DtModeDirective] Invalid mode "${t}". Did you mean "${d[t]}"? Falling back to "${d[t]}".`
28
+ ), d[t]) : (console.warn(
29
+ `[DtModeDirective] Invalid mode "${t}". Valid modes: ${O.join(", ")}. Falling back to "invert".`
30
+ ), "invert") : "invert";
31
+ }
32
+ function c(t, r) {
33
+ const e = {
34
+ arg: r,
35
+ contrastObserver: null,
36
+ modeObserver: null
37
+ };
38
+ if (t.setAttribute("data-dt-contrast", l()), e.contrastObserver = new MutationObserver(() => {
39
+ t.setAttribute("data-dt-contrast", l());
40
+ }), e.contrastObserver.observe(document.documentElement, {
41
+ attributes: !0,
42
+ attributeFilter: ["data-dt-contrast"]
43
+ }), r === "light" || r === "dark")
44
+ t.setAttribute("data-dt-mode", r);
45
+ else {
46
+ const s = b(t);
47
+ t.setAttribute("data-dt-mode", f(s));
48
+ const a = {
49
+ attributes: !0,
50
+ attributeFilter: ["data-dt-mode"],
51
+ subtree: !1
52
+ };
53
+ e.modeObserver = new MutationObserver(() => {
54
+ const i = b(t);
55
+ t.setAttribute("data-dt-mode", f(i));
56
+ }), e.modeObserver.observe(document.documentElement, a);
57
+ let n = t.parentElement;
58
+ for (; n && n !== document.documentElement; )
59
+ e.modeObserver.observe(n, a), n = n.parentElement;
60
+ }
61
+ return e;
62
+ }
63
+ function v(t) {
64
+ t.removeAttribute("data-dt-mode"), t.removeAttribute("data-dt-contrast");
65
+ }
66
+ function m(t) {
67
+ t && (t.contrastObserver && (t.contrastObserver.disconnect(), t.contrastObserver = null), t.modeObserver && (t.modeObserver.disconnect(), t.modeObserver = null));
68
+ }
69
+ }
70
+ };
71
+ export {
72
+ E as DtModeDirective,
73
+ E as default
74
+ };
75
+ //# sourceMappingURL=mode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mode.js","sources":["../../../directives/mode_directive/mode.js"],"sourcesContent":["import {\n getOppositeMode,\n getRootContrast,\n findParentMode,\n} from '@/components/mode_island/utils';\nimport { CONTENT_MODE_VALUES } from '@/common/mode_constants';\n\nconst VALID_MODES = CONTENT_MODE_VALUES;\n\nconst SUGGESTIONS = {\n inverted: 'invert',\n};\n\n/**\n * v-dt-mode directive — applies a color mode (light, dark, or invert) to an element.\n *\n * Sets `data-dt-mode` and `data-dt-contrast` attributes so descendant token-based\n * styles (`d-fc-primary`, `d-bgc-secondary`, etc.) resolve to the correct palette.\n *\n * @example\n * // Explicit modes\n * <section v-dt-mode:dark>Dark content</section>\n * <section v-dt-mode:light>Light content</section>\n *\n * // Invert nearest parent mode (default when no arg)\n * <section v-dt-mode>Inverted content</section>\n * <section v-dt-mode:invert>Same as above</section>\n *\n * // Dynamic arg\n * <section v-dt-mode:[reactiveMode]>Reactive mode</section>\n *\n * // Disable with false value\n * <section v-dt-mode:dark=\"false\">No mode applied</section>\n */\nexport const DtModeDirective = {\n name: 'dt-mode-directive',\n install (app) {\n const instances = new WeakMap();\n\n app.directive('dt-mode', {\n mounted (el, binding) {\n if (binding.value === false) return;\n const mode = resolveArg(binding.arg);\n const state = applyMode(el, mode);\n instances.set(el, state);\n },\n\n updated (el, binding) {\n const prev = instances.get(el);\n const valueChanged = binding.value !== binding.oldValue;\n const resolvedArg = resolveArg(binding.arg);\n const argChanged = resolvedArg !== prev?.arg;\n if (!valueChanged && !argChanged) return;\n\n cleanup(prev);\n removeAttributes(el);\n instances.delete(el);\n\n if (binding.value === false) return;\n\n const state = applyMode(el, resolvedArg);\n instances.set(el, state);\n },\n\n unmounted (el) {\n cleanup(instances.get(el));\n removeAttributes(el);\n instances.delete(el);\n },\n });\n\n function resolveArg (arg) {\n if (!arg) return 'invert';\n if (VALID_MODES.includes(arg)) return arg;\n if (SUGGESTIONS[arg]) {\n // eslint-disable-next-line no-console\n console.warn(\n `[DtModeDirective] Invalid mode \"${arg}\". Did you mean \"${SUGGESTIONS[arg]}\"? Falling back to \"${SUGGESTIONS[arg]}\".`,\n );\n return SUGGESTIONS[arg];\n }\n // eslint-disable-next-line no-console\n console.warn(\n `[DtModeDirective] Invalid mode \"${arg}\". Valid modes: ${VALID_MODES.join(', ')}. Falling back to \"invert\".`,\n );\n return 'invert';\n }\n\n function applyMode (el, mode) {\n const state = {\n arg: mode,\n contrastObserver: null,\n modeObserver: null,\n };\n\n // Set contrast from root\n el.setAttribute('data-dt-contrast', getRootContrast());\n\n // Watch for contrast changes on root\n state.contrastObserver = new MutationObserver(() => {\n el.setAttribute('data-dt-contrast', getRootContrast());\n });\n state.contrastObserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['data-dt-contrast'],\n });\n\n if (mode === 'light' || mode === 'dark') {\n el.setAttribute('data-dt-mode', mode);\n } else {\n // invert mode\n const parentMode = findParentMode(el);\n el.setAttribute('data-dt-mode', getOppositeMode(parentMode));\n\n // Watch for mode changes on root and ancestors\n const config = {\n attributes: true,\n attributeFilter: ['data-dt-mode'],\n subtree: false,\n };\n\n state.modeObserver = new MutationObserver(() => {\n const currentParentMode = findParentMode(el);\n el.setAttribute('data-dt-mode', getOppositeMode(currentParentMode));\n });\n\n // Observe root element\n state.modeObserver.observe(document.documentElement, config);\n\n // Observe all ancestor elements for data-dt-mode changes.\n // This includes ancestors that don't yet have the attribute,\n // because a sibling directive may set it after this one mounts\n // (Vue 3 fires child mounted before parent mounted).\n let parent = el.parentElement;\n while (parent && parent !== document.documentElement) {\n state.modeObserver.observe(parent, config);\n parent = parent.parentElement;\n }\n }\n\n return state;\n }\n\n function removeAttributes (el) {\n el.removeAttribute('data-dt-mode');\n el.removeAttribute('data-dt-contrast');\n }\n\n function cleanup (state) {\n if (!state) return;\n if (state.contrastObserver) {\n state.contrastObserver.disconnect();\n state.contrastObserver = null;\n }\n if (state.modeObserver) {\n state.modeObserver.disconnect();\n state.modeObserver = null;\n }\n }\n },\n};\n\nexport default DtModeDirective;\n"],"names":["VALID_MODES","CONTENT_MODE_VALUES","SUGGESTIONS","DtModeDirective","app","instances","el","binding","mode","resolveArg","state","applyMode","prev","valueChanged","resolvedArg","argChanged","cleanup","removeAttributes","arg","getRootContrast","parentMode","findParentMode","getOppositeMode","config","currentParentMode","parent"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./mode-island.cjs"),d=require("./mode-island-constants.cjs");exports.DtModeIsland=e.default;exports.DT_MODE_ISLAND_TYPES=d.DT_MODE_ISLAND_TYPES;
2
+ //# sourceMappingURL=index.cjs.map