@dialpad/dialtone-vue 3.210.0 → 3.211.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 (558) 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 +10 -10
  4. package/dist/common/constants/index.js.map +1 -1
  5. package/dist/common/mixins/keyboard-list-navigation.cjs +1 -1
  6. package/dist/common/mixins/keyboard-list-navigation.cjs.map +1 -1
  7. package/dist/common/mixins/keyboard-list-navigation.js +7 -7
  8. package/dist/common/mixins/keyboard-list-navigation.js.map +1 -1
  9. package/dist/component-documentation.json +1 -1
  10. package/dist/dialtone-vue.cjs +1 -1
  11. package/dist/dialtone-vue.js +425 -387
  12. package/dist/dialtone-vue.js.map +1 -1
  13. package/dist/lib/attachment-carousel/attachment-carousel.cjs +1 -1
  14. package/dist/lib/attachment-carousel/attachment-carousel.cjs.map +1 -1
  15. package/dist/lib/attachment-carousel/attachment-carousel.js +64 -117
  16. package/dist/lib/attachment-carousel/attachment-carousel.js.map +1 -1
  17. package/dist/lib/avatar/avatar-constants.cjs +1 -1
  18. package/dist/lib/avatar/avatar-constants.cjs.map +1 -1
  19. package/dist/lib/avatar/avatar-constants.js +169 -43
  20. package/dist/lib/avatar/avatar-constants.js.map +1 -1
  21. package/dist/lib/avatar/avatar.cjs +1 -1
  22. package/dist/lib/avatar/avatar.cjs.map +1 -1
  23. package/dist/lib/avatar/avatar.js +185 -100
  24. package/dist/lib/avatar/avatar.js.map +1 -1
  25. package/dist/lib/avatar/index.cjs +1 -1
  26. package/dist/lib/avatar/index.js +16 -10
  27. package/dist/lib/badge/badge.cjs +1 -1
  28. package/dist/lib/badge/badge.cjs.map +1 -1
  29. package/dist/lib/badge/badge.js +47 -35
  30. package/dist/lib/badge/badge.js.map +1 -1
  31. package/dist/lib/banner/banner.cjs +1 -1
  32. package/dist/lib/banner/banner.cjs.map +1 -1
  33. package/dist/lib/banner/banner.js +19 -18
  34. package/dist/lib/banner/banner.js.map +1 -1
  35. package/dist/lib/breadcrumbs/breadcrumb-item.cjs +1 -1
  36. package/dist/lib/breadcrumbs/breadcrumb-item.cjs.map +1 -1
  37. package/dist/lib/breadcrumbs/breadcrumb-item.js +3 -1
  38. package/dist/lib/breadcrumbs/breadcrumb-item.js.map +1 -1
  39. package/dist/lib/breadcrumbs/breadcrumbs.cjs +1 -1
  40. package/dist/lib/breadcrumbs/breadcrumbs.cjs.map +1 -1
  41. package/dist/lib/breadcrumbs/breadcrumbs.js +21 -18
  42. package/dist/lib/breadcrumbs/breadcrumbs.js.map +1 -1
  43. package/dist/lib/button/button-constants.cjs +1 -1
  44. package/dist/lib/button/button-constants.cjs.map +1 -1
  45. package/dist/lib/button/button-constants.js +23 -19
  46. package/dist/lib/button/button-constants.js.map +1 -1
  47. package/dist/lib/button/button.cjs +1 -1
  48. package/dist/lib/button/button.cjs.map +1 -1
  49. package/dist/lib/button/button.js +171 -66
  50. package/dist/lib/button/button.js.map +1 -1
  51. package/dist/lib/callbar-button/callbar-button.cjs +1 -1
  52. package/dist/lib/callbar-button/callbar-button.cjs.map +1 -1
  53. package/dist/lib/callbar-button/callbar-button.js +13 -14
  54. package/dist/lib/callbar-button/callbar-button.js.map +1 -1
  55. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs +1 -1
  56. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs.map +1 -1
  57. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js +42 -30
  58. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js.map +1 -1
  59. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.cjs +1 -1
  60. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.cjs.map +1 -1
  61. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.js +38 -26
  62. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.js.map +1 -1
  63. package/dist/lib/callbox/callbox.cjs +1 -1
  64. package/dist/lib/callbox/callbox.cjs.map +1 -1
  65. package/dist/lib/callbox/callbox.js +47 -47
  66. package/dist/lib/callbox/callbox.js.map +1 -1
  67. package/dist/lib/checkbox/checkbox.cjs +1 -1
  68. package/dist/lib/checkbox/checkbox.cjs.map +1 -1
  69. package/dist/lib/checkbox/checkbox.js +97 -43
  70. package/dist/lib/checkbox/checkbox.js.map +1 -1
  71. package/dist/lib/chip/chip.cjs +1 -1
  72. package/dist/lib/chip/chip.cjs.map +1 -1
  73. package/dist/lib/chip/chip.js +1 -1
  74. package/dist/lib/chip/chip.js.map +1 -1
  75. package/dist/lib/codeblock/codeblock-constants.cjs +2 -0
  76. package/dist/lib/codeblock/codeblock-constants.cjs.map +1 -0
  77. package/dist/lib/codeblock/codeblock-constants.js +6 -0
  78. package/dist/lib/codeblock/codeblock-constants.js.map +1 -0
  79. package/dist/lib/codeblock/codeblock.cjs +1 -2
  80. package/dist/lib/codeblock/codeblock.cjs.map +1 -1
  81. package/dist/lib/codeblock/codeblock.js +34 -13
  82. package/dist/lib/codeblock/codeblock.js.map +1 -1
  83. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs +1 -1
  84. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs.map +1 -1
  85. package/dist/lib/combobox-multi-select/combobox-multi-select.js +31 -31
  86. package/dist/lib/combobox-multi-select/combobox-multi-select.js.map +1 -1
  87. package/dist/lib/contact-centers-row/contact-centers-row.cjs +1 -1
  88. package/dist/lib/contact-centers-row/contact-centers-row.cjs.map +1 -1
  89. package/dist/lib/contact-centers-row/contact-centers-row.js +33 -33
  90. package/dist/lib/contact-centers-row/contact-centers-row.js.map +1 -1
  91. package/dist/lib/contact-info/contact-info.cjs +1 -1
  92. package/dist/lib/contact-info/contact-info.cjs.map +1 -1
  93. package/dist/lib/contact-info/contact-info.js +56 -56
  94. package/dist/lib/contact-info/contact-info.js.map +1 -1
  95. package/dist/lib/contact-row/contact-row.cjs +1 -1
  96. package/dist/lib/contact-row/contact-row.cjs.map +1 -1
  97. package/dist/lib/contact-row/contact-row.js +1 -1
  98. package/dist/lib/contact-row/contact-row.js.map +1 -1
  99. package/dist/lib/datepicker/datepicker.cjs +1 -1
  100. package/dist/lib/datepicker/datepicker.cjs.map +1 -1
  101. package/dist/lib/datepicker/datepicker.js +13 -17
  102. package/dist/lib/datepicker/datepicker.js.map +1 -1
  103. package/dist/lib/dropdown/dropdown-list.cjs +1 -1
  104. package/dist/lib/dropdown/dropdown-list.cjs.map +1 -1
  105. package/dist/lib/dropdown/dropdown-list.js +29 -18
  106. package/dist/lib/dropdown/dropdown-list.js.map +1 -1
  107. package/dist/lib/editor/editor.cjs.map +1 -1
  108. package/dist/lib/editor/editor.js.map +1 -1
  109. package/dist/lib/emoji-picker/emoji-picker.cjs +1 -1
  110. package/dist/lib/emoji-picker/emoji-picker.cjs.map +1 -1
  111. package/dist/lib/emoji-picker/emoji-picker.js +2 -2
  112. package/dist/lib/emoji-picker/emoji-picker.js.map +1 -1
  113. package/dist/lib/empty-state/empty-state-constants.cjs +1 -1
  114. package/dist/lib/empty-state/empty-state-constants.cjs.map +1 -1
  115. package/dist/lib/empty-state/empty-state-constants.js +28 -16
  116. package/dist/lib/empty-state/empty-state-constants.js.map +1 -1
  117. package/dist/lib/empty-state/empty-state.cjs +1 -1
  118. package/dist/lib/empty-state/empty-state.cjs.map +1 -1
  119. package/dist/lib/empty-state/empty-state.js +54 -32
  120. package/dist/lib/empty-state/empty-state.js.map +1 -1
  121. package/dist/lib/feed-item-pill/feed-item-pill.cjs +1 -1
  122. package/dist/lib/feed-item-pill/feed-item-pill.cjs.map +1 -1
  123. package/dist/lib/feed-item-pill/feed-item-pill.js +56 -53
  124. package/dist/lib/feed-item-pill/feed-item-pill.js.map +1 -1
  125. package/dist/lib/feed-item-row/feed-item-row.cjs +1 -1
  126. package/dist/lib/feed-item-row/feed-item-row.cjs.map +1 -1
  127. package/dist/lib/feed-item-row/feed-item-row.js +11 -11
  128. package/dist/lib/feed-item-row/feed-item-row.js.map +1 -1
  129. package/dist/lib/filter-pill/filter-pill.cjs +2 -0
  130. package/dist/lib/filter-pill/filter-pill.cjs.map +1 -0
  131. package/dist/lib/filter-pill/filter-pill.js +346 -0
  132. package/dist/lib/filter-pill/filter-pill.js.map +1 -0
  133. package/dist/lib/filter-pill/index.cjs +2 -0
  134. package/dist/lib/filter-pill/index.cjs.map +1 -0
  135. package/dist/lib/filter-pill/index.js +5 -0
  136. package/dist/lib/filter-pill/index.js.map +1 -0
  137. package/dist/lib/general-row/general-row.cjs +1 -1
  138. package/dist/lib/general-row/general-row.cjs.map +1 -1
  139. package/dist/lib/general-row/general-row.js +153 -99
  140. package/dist/lib/general-row/general-row.js.map +1 -1
  141. package/dist/lib/group-row/group-row.cjs +1 -1
  142. package/dist/lib/group-row/group-row.cjs.map +1 -1
  143. package/dist/lib/group-row/group-row.js +1 -1
  144. package/dist/lib/group-row/group-row.js.map +1 -1
  145. package/dist/lib/grouped-chip/grouped-chip.cjs +1 -1
  146. package/dist/lib/grouped-chip/grouped-chip.cjs.map +1 -1
  147. package/dist/lib/grouped-chip/grouped-chip.js +31 -31
  148. package/dist/lib/grouped-chip/grouped-chip.js.map +1 -1
  149. package/dist/lib/input/input-constants.cjs +1 -1
  150. package/dist/lib/input/input-constants.cjs.map +1 -1
  151. package/dist/lib/input/input-constants.js +17 -22
  152. package/dist/lib/input/input-constants.js.map +1 -1
  153. package/dist/lib/input/input.cjs +1 -1
  154. package/dist/lib/input/input.cjs.map +1 -1
  155. package/dist/lib/input/input.js +144 -72
  156. package/dist/lib/input/input.js.map +1 -1
  157. package/dist/lib/input-group/input-group.cjs +1 -1
  158. package/dist/lib/input-group/input-group.cjs.map +1 -1
  159. package/dist/lib/input-group/input-group.js +35 -28
  160. package/dist/lib/input-group/input-group.js.map +1 -1
  161. package/dist/lib/item-layout/item-layout.cjs +3 -3
  162. package/dist/lib/item-layout/item-layout.cjs.map +1 -1
  163. package/dist/lib/item-layout/item-layout.js +74 -39
  164. package/dist/lib/item-layout/item-layout.js.map +1 -1
  165. package/dist/lib/keyboard-shortcut/keyboard-shortcut.cjs +1 -1
  166. package/dist/lib/keyboard-shortcut/keyboard-shortcut.cjs.map +1 -1
  167. package/dist/lib/keyboard-shortcut/keyboard-shortcut.js +56 -43
  168. package/dist/lib/keyboard-shortcut/keyboard-shortcut.js.map +1 -1
  169. package/dist/lib/kitchen-sink/kitchen-sink-view.cjs +2 -0
  170. package/dist/lib/kitchen-sink/kitchen-sink-view.cjs.map +1 -0
  171. package/dist/lib/kitchen-sink/kitchen-sink-view.js +263 -0
  172. package/dist/lib/kitchen-sink/kitchen-sink-view.js.map +1 -0
  173. package/dist/lib/link/link.cjs +1 -1
  174. package/dist/lib/link/link.cjs.map +1 -1
  175. package/dist/lib/link/link.js +22 -12
  176. package/dist/lib/link/link.js.map +1 -1
  177. package/dist/lib/list-item/list-item.cjs +1 -1
  178. package/dist/lib/list-item/list-item.cjs.map +1 -1
  179. package/dist/lib/list-item/list-item.js +25 -15
  180. package/dist/lib/list-item/list-item.js.map +1 -1
  181. package/dist/lib/loader/loader.cjs +13 -1
  182. package/dist/lib/loader/loader.cjs.map +1 -1
  183. package/dist/lib/loader/loader.js +31 -20
  184. package/dist/lib/loader/loader.js.map +1 -1
  185. package/dist/lib/message-input/message-input.cjs +1 -1
  186. package/dist/lib/message-input/message-input.cjs.map +1 -1
  187. package/dist/lib/message-input/message-input.js +39 -39
  188. package/dist/lib/message-input/message-input.js.map +1 -1
  189. package/dist/lib/modal/modal.cjs +1 -1
  190. package/dist/lib/modal/modal.cjs.map +1 -1
  191. package/dist/lib/modal/modal.js +74 -61
  192. package/dist/lib/modal/modal.js.map +1 -1
  193. package/dist/lib/mode-island/index.cjs +2 -0
  194. package/dist/lib/mode-island/index.cjs.map +1 -0
  195. package/dist/lib/mode-island/index.js +7 -0
  196. package/dist/lib/mode-island/index.js.map +1 -0
  197. package/dist/lib/mode-island/mode-island-constants.cjs +2 -0
  198. package/dist/lib/mode-island/mode-island-constants.cjs.map +1 -0
  199. package/dist/lib/mode-island/mode-island-constants.js +12 -0
  200. package/dist/lib/mode-island/mode-island-constants.js.map +1 -0
  201. package/dist/lib/mode-island/mode-island.cjs +2 -0
  202. package/dist/lib/mode-island/mode-island.cjs.map +1 -0
  203. package/dist/lib/mode-island/mode-island.js +130 -0
  204. package/dist/lib/mode-island/mode-island.js.map +1 -0
  205. package/dist/lib/mode-island/utils.cjs +2 -0
  206. package/dist/lib/mode-island/utils.cjs.map +1 -0
  207. package/dist/lib/mode-island/utils.js +32 -0
  208. package/dist/lib/mode-island/utils.js.map +1 -0
  209. package/dist/lib/mode-island/validators.cjs +2 -0
  210. package/dist/lib/mode-island/validators.cjs.map +1 -0
  211. package/dist/lib/mode-island/validators.js +12 -0
  212. package/dist/lib/mode-island/validators.js.map +1 -0
  213. package/dist/lib/notice/notice-action.cjs +1 -1
  214. package/dist/lib/notice/notice-action.cjs.map +1 -1
  215. package/dist/lib/notice/notice-action.js +7 -7
  216. package/dist/lib/notice/notice-action.js.map +1 -1
  217. package/dist/lib/notice/notice-content.cjs +1 -1
  218. package/dist/lib/notice/notice-content.cjs.map +1 -1
  219. package/dist/lib/notice/notice-content.js +38 -21
  220. package/dist/lib/notice/notice-content.js.map +1 -1
  221. package/dist/lib/notice/notice.cjs +1 -1
  222. package/dist/lib/notice/notice.cjs.map +1 -1
  223. package/dist/lib/notice/notice.js +20 -19
  224. package/dist/lib/notice/notice.js.map +1 -1
  225. package/dist/lib/pagination/pagination.cjs +1 -1
  226. package/dist/lib/pagination/pagination.cjs.map +1 -1
  227. package/dist/lib/pagination/pagination.js +15 -14
  228. package/dist/lib/pagination/pagination.js.map +1 -1
  229. package/dist/lib/popover/popover.cjs +1 -1
  230. package/dist/lib/popover/popover.cjs.map +1 -1
  231. package/dist/lib/popover/popover.js +1 -1
  232. package/dist/lib/popover/popover.js.map +1 -1
  233. package/dist/lib/progress-circle/index.cjs +2 -0
  234. package/dist/lib/progress-circle/index.cjs.map +1 -0
  235. package/dist/lib/progress-circle/index.js +10 -0
  236. package/dist/lib/progress-circle/index.js.map +1 -0
  237. package/dist/lib/progress-circle/progress-circle-constants.cjs +2 -0
  238. package/dist/lib/progress-circle/progress-circle-constants.cjs.map +1 -0
  239. package/dist/lib/progress-circle/progress-circle-constants.js +25 -0
  240. package/dist/lib/progress-circle/progress-circle-constants.js.map +1 -0
  241. package/dist/lib/progress-circle/progress-circle.cjs +2 -0
  242. package/dist/lib/progress-circle/progress-circle.cjs.map +1 -0
  243. package/dist/lib/progress-circle/progress-circle.js +136 -0
  244. package/dist/lib/progress-circle/progress-circle.js.map +1 -0
  245. package/dist/lib/radio/radio.cjs +1 -1
  246. package/dist/lib/radio/radio.cjs.map +1 -1
  247. package/dist/lib/radio/radio.js +103 -41
  248. package/dist/lib/radio/radio.js.map +1 -1
  249. package/dist/lib/rich-text-editor/rich-text-editor.cjs +4 -4
  250. package/dist/lib/rich-text-editor/rich-text-editor.cjs.map +1 -1
  251. package/dist/lib/rich-text-editor/rich-text-editor.js +607 -560
  252. package/dist/lib/rich-text-editor/rich-text-editor.js.map +1 -1
  253. package/dist/lib/root-layout/root-layout-constants.cjs +1 -1
  254. package/dist/lib/root-layout/root-layout-constants.cjs.map +1 -1
  255. package/dist/lib/root-layout/root-layout-constants.js +4 -2
  256. package/dist/lib/root-layout/root-layout-constants.js.map +1 -1
  257. package/dist/lib/root-layout/root-layout.cjs +1 -1
  258. package/dist/lib/root-layout/root-layout.cjs.map +1 -1
  259. package/dist/lib/root-layout/root-layout.js +15 -13
  260. package/dist/lib/root-layout/root-layout.js.map +1 -1
  261. package/dist/lib/select-menu/select-menu.cjs +1 -1
  262. package/dist/lib/select-menu/select-menu.cjs.map +1 -1
  263. package/dist/lib/select-menu/select-menu.js +113 -61
  264. package/dist/lib/select-menu/select-menu.js.map +1 -1
  265. package/dist/lib/settings-menu-button/settings-menu-button.cjs +1 -1
  266. package/dist/lib/settings-menu-button/settings-menu-button.cjs.map +1 -1
  267. package/dist/lib/settings-menu-button/settings-menu-button.js +14 -15
  268. package/dist/lib/settings-menu-button/settings-menu-button.js.map +1 -1
  269. package/dist/lib/split-button/split-button-end.cjs +2 -0
  270. package/dist/lib/split-button/split-button-end.cjs.map +1 -0
  271. package/dist/lib/split-button/{split-button-omega.js → split-button-end.js} +13 -13
  272. package/dist/lib/split-button/split-button-end.js.map +1 -0
  273. package/dist/lib/split-button/split-button-start.cjs +2 -0
  274. package/dist/lib/split-button/split-button-start.cjs.map +1 -0
  275. package/dist/lib/split-button/split-button-start.js +231 -0
  276. package/dist/lib/split-button/split-button-start.js.map +1 -0
  277. package/dist/lib/split-button/split-button.cjs +1 -1
  278. package/dist/lib/split-button/split-button.cjs.map +1 -1
  279. package/dist/lib/split-button/split-button.js +334 -98
  280. package/dist/lib/split-button/split-button.js.map +1 -1
  281. package/dist/lib/tab/index.cjs +1 -1
  282. package/dist/lib/tab/index.js +13 -11
  283. package/dist/lib/tab/tab-group.cjs +1 -1
  284. package/dist/lib/tab/tab-group.cjs.map +1 -1
  285. package/dist/lib/tab/tab-group.js +107 -46
  286. package/dist/lib/tab/tab-group.js.map +1 -1
  287. package/dist/lib/tab/tab.cjs +1 -1
  288. package/dist/lib/tab/tab.cjs.map +1 -1
  289. package/dist/lib/tab/tab.js +128 -37
  290. package/dist/lib/tab/tab.js.map +1 -1
  291. package/dist/lib/tab/tabs-constants.cjs +1 -1
  292. package/dist/lib/tab/tabs-constants.cjs.map +1 -1
  293. package/dist/lib/tab/tabs-constants.js +13 -11
  294. package/dist/lib/tab/tabs-constants.js.map +1 -1
  295. package/dist/lib/text/index.cjs +2 -0
  296. package/dist/lib/text/index.cjs.map +1 -0
  297. package/dist/lib/text/index.js +20 -0
  298. package/dist/lib/text/index.js.map +1 -0
  299. package/dist/lib/text/text-constants.cjs +2 -0
  300. package/dist/lib/text/text-constants.cjs.map +1 -0
  301. package/dist/lib/text/text-constants.js +69 -0
  302. package/dist/lib/text/text-constants.js.map +1 -0
  303. package/dist/lib/text/text-tone-tokens.cjs +2 -0
  304. package/dist/lib/text/text-tone-tokens.cjs.map +1 -0
  305. package/dist/lib/text/text-tone-tokens.js +33 -0
  306. package/dist/lib/text/text-tone-tokens.js.map +1 -0
  307. package/dist/lib/text/text.cjs +2 -0
  308. package/dist/lib/text/text.cjs.map +1 -0
  309. package/dist/lib/text/text.js +203 -0
  310. package/dist/lib/text/text.js.map +1 -0
  311. package/dist/lib/toast/toast.cjs +1 -1
  312. package/dist/lib/toast/toast.cjs.map +1 -1
  313. package/dist/lib/toast/toast.js +10 -9
  314. package/dist/lib/toast/toast.js.map +1 -1
  315. package/dist/lib/toggle/toggle.cjs +1 -1
  316. package/dist/lib/toggle/toggle.cjs.map +1 -1
  317. package/dist/lib/toggle/toggle.js +37 -33
  318. package/dist/lib/toggle/toggle.js.map +1 -1
  319. package/dist/lib/top-banner-info/top-banner-info.cjs +1 -1
  320. package/dist/lib/top-banner-info/top-banner-info.cjs.map +1 -1
  321. package/dist/lib/top-banner-info/top-banner-info.js +16 -16
  322. package/dist/lib/top-banner-info/top-banner-info.js.map +1 -1
  323. package/dist/localization/en-US.cjs +2 -0
  324. package/dist/localization/en-US.cjs.map +1 -1
  325. package/dist/localization/en-US.js +2 -0
  326. package/dist/localization/en-US.js.map +1 -1
  327. package/dist/localization/es-LA.cjs +1 -1
  328. package/dist/localization/es-LA.cjs.map +1 -1
  329. package/dist/localization/es-LA.js +1 -1
  330. package/dist/localization/es-LA.js.map +1 -1
  331. package/dist/localization/it-IT.cjs +3 -3
  332. package/dist/localization/it-IT.cjs.map +1 -1
  333. package/dist/localization/it-IT.js +3 -3
  334. package/dist/localization/it-IT.js.map +1 -1
  335. package/dist/localization/nl-NL.cjs +2 -2
  336. package/dist/localization/nl-NL.cjs.map +1 -1
  337. package/dist/localization/nl-NL.js +2 -2
  338. package/dist/localization/nl-NL.js.map +1 -1
  339. package/dist/localization/ru-RU.cjs +1 -1
  340. package/dist/localization/ru-RU.cjs.map +1 -1
  341. package/dist/localization/ru-RU.js +1 -1
  342. package/dist/localization/ru-RU.js.map +1 -1
  343. package/dist/localization/zh-CN.cjs +1 -1
  344. package/dist/localization/zh-CN.cjs.map +1 -1
  345. package/dist/localization/zh-CN.js +1 -1
  346. package/dist/localization/zh-CN.js.map +1 -1
  347. package/dist/node_modules/@tiptap/vue-3.cjs.map +1 -1
  348. package/dist/node_modules/@tiptap/vue-3.js.map +1 -1
  349. package/dist/style.css +1 -1
  350. package/dist/types/common/mixins/keyboard_list_navigation.d.ts.map +1 -1
  351. package/dist/types/common/sr_only_close_button.vue.d.ts +38 -2
  352. package/dist/types/components/avatar/avatar.vue.d.ts +71 -25
  353. package/dist/types/components/avatar/avatar.vue.d.ts.map +1 -1
  354. package/dist/types/components/avatar/avatar_constants.d.ts +86 -29
  355. package/dist/types/components/avatar/avatar_constants.d.ts.map +1 -1
  356. package/dist/types/components/avatar/index.d.ts +1 -1
  357. package/dist/types/components/badge/badge.vue.d.ts.map +1 -1
  358. package/dist/types/components/banner/banner.vue.d.ts +216 -5
  359. package/dist/types/components/banner/banner.vue.d.ts.map +1 -1
  360. package/dist/types/components/breadcrumbs/breadcrumb_item.vue.d.ts +9 -0
  361. package/dist/types/components/breadcrumbs/breadcrumb_item.vue.d.ts.map +1 -1
  362. package/dist/types/components/breadcrumbs/breadcrumbs.vue.d.ts +9 -0
  363. package/dist/types/components/button/button.vue.d.ts +38 -2
  364. package/dist/types/components/button/button.vue.d.ts.map +1 -1
  365. package/dist/types/components/button/button_constants.d.ts +4 -0
  366. package/dist/types/components/button/button_constants.d.ts.map +1 -1
  367. package/dist/types/components/checkbox/checkbox.vue.d.ts +178 -4
  368. package/dist/types/components/checkbox/checkbox.vue.d.ts.map +1 -1
  369. package/dist/types/components/checkbox_group/checkbox_group.vue.d.ts +138 -0
  370. package/dist/types/components/chip/chip.vue.d.ts +38 -2
  371. package/dist/types/components/chip/chip.vue.d.ts.map +1 -1
  372. package/dist/types/components/codeblock/codeblock.vue.d.ts +22 -1
  373. package/dist/types/components/codeblock/codeblock.vue.d.ts.map +1 -1
  374. package/dist/types/components/codeblock/codeblock_constants.d.ts +3 -0
  375. package/dist/types/components/codeblock/codeblock_constants.d.ts.map +1 -0
  376. package/dist/types/components/collapsible/collapsible.vue.d.ts +38 -2
  377. package/dist/types/components/collapsible/collapsible.vue.d.ts.map +1 -1
  378. package/dist/types/components/combobox/combobox.vue.d.ts +81 -15
  379. package/dist/types/components/combobox/combobox.vue.d.ts.map +1 -1
  380. package/dist/types/components/combobox/combobox_empty-list.vue.d.ts +40 -7
  381. package/dist/types/components/combobox/combobox_empty-list.vue.d.ts.map +1 -1
  382. package/dist/types/components/combobox/combobox_loading-list.vue.d.ts +40 -7
  383. package/dist/types/components/combobox/combobox_loading-list.vue.d.ts.map +1 -1
  384. package/dist/types/components/datepicker/modules/month-year-picker.vue.d.ts.map +1 -1
  385. package/dist/types/components/dropdown/dropdown.vue.d.ts +76 -4
  386. package/dist/types/components/dropdown/dropdown.vue.d.ts.map +1 -1
  387. package/dist/types/components/emoji_picker/emoji_picker.vue.d.ts +190 -0
  388. package/dist/types/components/emoji_picker/modules/emoji_search.vue.d.ts +190 -0
  389. package/dist/types/components/emoji_picker/modules/emoji_search.vue.d.ts.map +1 -1
  390. package/dist/types/components/empty_state/empty_state.vue.d.ts.map +1 -1
  391. package/dist/types/components/empty_state/empty_state_constants.d.ts +23 -5
  392. package/dist/types/components/filter_pill/filter_pill.vue.d.ts +2382 -0
  393. package/dist/types/components/filter_pill/filter_pill.vue.d.ts.map +1 -0
  394. package/dist/types/components/filter_pill/index.d.ts +2 -0
  395. package/dist/types/components/filter_pill/index.d.ts.map +1 -0
  396. package/dist/types/components/hovercard/hovercard.vue.d.ts +152 -8
  397. package/dist/types/components/hovercard/hovercard.vue.d.ts.map +1 -1
  398. package/dist/types/components/image_viewer/image_viewer.vue.d.ts +76 -4
  399. package/dist/types/components/image_viewer/image_viewer.vue.d.ts.map +1 -1
  400. package/dist/types/components/input/input.vue.d.ts +182 -0
  401. package/dist/types/components/input/input.vue.d.ts.map +1 -1
  402. package/dist/types/components/input/input_constants.d.ts +4 -11
  403. package/dist/types/components/input_group/input_group.vue.d.ts +138 -0
  404. package/dist/types/components/input_group/input_group.vue.d.ts.map +1 -1
  405. package/dist/types/components/item_layout/item_layout.vue.d.ts +37 -6
  406. package/dist/types/components/item_layout/item_layout.vue.d.ts.map +1 -1
  407. package/dist/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts +138 -0
  408. package/dist/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts.map +1 -1
  409. package/dist/types/components/link/link.vue.d.ts +9 -0
  410. package/dist/types/components/list_item/list_item.vue.d.ts +40 -7
  411. package/dist/types/components/list_item/list_item.vue.d.ts.map +1 -1
  412. package/dist/types/components/loader/loader.vue.d.ts +1 -32
  413. package/dist/types/components/loader/loader.vue.d.ts.map +1 -1
  414. package/dist/types/components/modal/modal.vue.d.ts +214 -4
  415. package/dist/types/components/modal/modal.vue.d.ts.map +1 -1
  416. package/dist/types/components/mode_island/index.d.ts +3 -0
  417. package/dist/types/components/mode_island/index.d.ts.map +1 -0
  418. package/dist/types/components/mode_island/mode_island.vue.d.ts +3 -0
  419. package/dist/types/components/mode_island/mode_island.vue.d.ts.map +1 -0
  420. package/dist/types/components/mode_island/mode_island_constants.d.ts +10 -0
  421. package/dist/types/components/mode_island/mode_island_constants.d.ts.map +1 -0
  422. package/dist/types/components/mode_island/utils.d.ts +12 -0
  423. package/dist/types/components/mode_island/utils.d.ts.map +1 -0
  424. package/dist/types/components/mode_island/validators.d.ts +6 -0
  425. package/dist/types/components/mode_island/validators.d.ts.map +1 -0
  426. package/dist/types/components/notice/notice.vue.d.ts +216 -5
  427. package/dist/types/components/notice/notice.vue.d.ts.map +1 -1
  428. package/dist/types/components/notice/notice_action.vue.d.ts +76 -4
  429. package/dist/types/components/notice/notice_action.vue.d.ts.map +1 -1
  430. package/dist/types/components/notice/notice_content.vue.d.ts +140 -1
  431. package/dist/types/components/notice/notice_content.vue.d.ts.map +1 -1
  432. package/dist/types/components/pagination/pagination.vue.d.ts +38 -2
  433. package/dist/types/components/pagination/pagination.vue.d.ts.map +1 -1
  434. package/dist/types/components/popover/popover.vue.d.ts +76 -4
  435. package/dist/types/components/popover/popover.vue.d.ts.map +1 -1
  436. package/dist/types/components/popover/popover_header_footer.vue.d.ts +38 -2
  437. package/dist/types/components/popover/popover_header_footer.vue.d.ts.map +1 -1
  438. package/dist/types/components/progress_circle/index.d.ts +3 -0
  439. package/dist/types/components/progress_circle/index.d.ts.map +1 -0
  440. package/dist/types/components/progress_circle/progress_circle.vue.d.ts +70 -0
  441. package/dist/types/components/progress_circle/progress_circle.vue.d.ts.map +1 -0
  442. package/dist/types/components/progress_circle/progress_circle_constants.d.ts +23 -0
  443. package/dist/types/components/progress_circle/progress_circle_constants.d.ts.map +1 -0
  444. package/dist/types/components/radio/radio.vue.d.ts +173 -0
  445. package/dist/types/components/radio/radio.vue.d.ts.map +1 -1
  446. package/dist/types/components/radio_group/radio_group.vue.d.ts +138 -0
  447. package/dist/types/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts +9 -0
  448. package/dist/types/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts.map +1 -1
  449. package/dist/types/components/rich_text_editor/extensions/mentions/MentionComponent.vue.d.ts +9 -0
  450. package/dist/types/components/rich_text_editor/extensions/mentions/MentionSuggestion.vue.d.ts +209 -25
  451. package/dist/types/components/rich_text_editor/extensions/mentions/MentionSuggestion.vue.d.ts.map +1 -1
  452. package/dist/types/components/rich_text_editor/extensions/slash_command/SlashCommandSuggestion.vue.d.ts +140 -1
  453. package/dist/types/components/rich_text_editor/extensions/slash_command/SlashCommandSuggestion.vue.d.ts.map +1 -1
  454. package/dist/types/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts +40 -7
  455. package/dist/types/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts.map +1 -1
  456. package/dist/types/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts +296 -6
  457. package/dist/types/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts.map +1 -1
  458. package/dist/types/components/root_layout/root_layout_constants.d.ts +2 -0
  459. package/dist/types/components/root_layout/root_layout_constants.d.ts.map +1 -1
  460. package/dist/types/components/select_menu/select_menu.vue.d.ts +172 -13
  461. package/dist/types/components/select_menu/select_menu.vue.d.ts.map +1 -1
  462. package/dist/types/components/split_button/{split_button-omega.vue.d.ts → split_button-end.vue.d.ts} +39 -3
  463. package/dist/types/components/split_button/{split_button-omega.vue.d.ts.map → split_button-end.vue.d.ts.map} +1 -1
  464. package/dist/types/components/split_button/{split_button-alpha.vue.d.ts → split_button-start.vue.d.ts} +103 -4
  465. package/dist/types/components/split_button/split_button-start.vue.d.ts.map +1 -0
  466. package/dist/types/components/split_button/split_button.vue.d.ts +443 -34
  467. package/dist/types/components/split_button/split_button.vue.d.ts.map +1 -1
  468. package/dist/types/components/tab/index.d.ts +1 -1
  469. package/dist/types/components/tab/tab.vue.d.ts +73 -7
  470. package/dist/types/components/tab/tab.vue.d.ts.map +1 -1
  471. package/dist/types/components/tab/tab_group.vue.d.ts +42 -0
  472. package/dist/types/components/tab/tab_group.vue.d.ts.map +1 -1
  473. package/dist/types/components/tab/tabs_constants.d.ts +5 -3
  474. package/dist/types/components/tab/tabs_constants.d.ts.map +1 -1
  475. package/dist/types/components/text/index.d.ts +3 -0
  476. package/dist/types/components/text/index.d.ts.map +1 -0
  477. package/dist/types/components/text/scripts/update-text-tone-tokens.d.cts +3 -0
  478. package/dist/types/components/text/scripts/update-text-tone-tokens.d.cts.map +1 -0
  479. package/dist/types/components/text/scripts/update_text_tone_tokens.d.cts +3 -0
  480. package/dist/types/components/text/scripts/update_text_tone_tokens.d.cts.map +1 -0
  481. package/dist/types/components/text/scripts/update_text_tone_tokens.d.ts +1 -0
  482. package/dist/types/components/text/scripts/update_text_tone_tokens.d.ts.map +1 -0
  483. package/dist/types/components/text/text.vue.d.ts +141 -0
  484. package/dist/types/components/text/text.vue.d.ts.map +1 -0
  485. package/dist/types/components/text/text_constants.d.ts +73 -0
  486. package/dist/types/components/text/text_constants.d.ts.map +1 -0
  487. package/dist/types/components/text/text_tone_tokens.d.ts +3 -0
  488. package/dist/types/components/text/text_tone_tokens.d.ts.map +1 -0
  489. package/dist/types/components/toast/layouts/toast_layout_alternate.vue.d.ts +216 -5
  490. package/dist/types/components/toast/layouts/toast_layout_alternate.vue.d.ts.map +1 -1
  491. package/dist/types/components/toast/layouts/toast_layout_default.vue.d.ts +216 -5
  492. package/dist/types/components/toast/layouts/toast_layout_default.vue.d.ts.map +1 -1
  493. package/dist/types/components/toast/toast.vue.d.ts +864 -20
  494. package/dist/types/components/toast/toast.vue.d.ts.map +1 -1
  495. package/dist/types/components/toggle/toggle.vue.d.ts +9 -1
  496. package/dist/types/components/toggle/toggle.vue.d.ts.map +1 -1
  497. package/dist/types/index.d.ts +4 -0
  498. package/dist/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts +38 -2
  499. package/dist/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts.map +1 -1
  500. package/dist/types/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts +152 -8
  501. package/dist/types/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts.map +1 -1
  502. package/dist/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +152 -8
  503. package/dist/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts.map +1 -1
  504. package/dist/types/recipes/cards/ivr_node/ivr_node.vue.d.ts +114 -6
  505. package/dist/types/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
  506. package/dist/types/recipes/chips/grouped_chip/grouped_chip.vue.d.ts +38 -2
  507. package/dist/types/recipes/chips/grouped_chip/grouped_chip.vue.d.ts.map +1 -1
  508. package/dist/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +239 -35
  509. package/dist/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts.map +1 -1
  510. package/dist/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts +196 -12
  511. package/dist/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
  512. package/dist/types/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts +158 -10
  513. package/dist/types/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts.map +1 -1
  514. package/dist/types/recipes/conversation_view/editor/EditorToolbarButton.vue.d.ts +38 -2
  515. package/dist/types/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts +114 -6
  516. package/dist/types/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts.map +1 -1
  517. package/dist/types/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts +114 -6
  518. package/dist/types/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts.map +1 -1
  519. package/dist/types/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts +38 -2
  520. package/dist/types/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts.map +1 -1
  521. package/dist/types/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts +75 -8
  522. package/dist/types/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts.map +1 -1
  523. package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +111 -32
  524. package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
  525. package/dist/types/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts +75 -8
  526. package/dist/types/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts.map +1 -1
  527. package/dist/types/recipes/conversation_view/message_input/message_input_button.vue.d.ts +176 -2
  528. package/dist/types/recipes/conversation_view/message_input/message_input_button.vue.d.ts.map +1 -1
  529. package/dist/types/recipes/conversation_view/message_input/message_input_link.vue.d.ts +472 -8
  530. package/dist/types/recipes/conversation_view/message_input/message_input_link.vue.d.ts.map +1 -1
  531. package/dist/types/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts +176 -2
  532. package/dist/types/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts.map +1 -1
  533. package/dist/types/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts +38 -2
  534. package/dist/types/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts.map +1 -1
  535. package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +108 -31
  536. package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts.map +1 -1
  537. package/dist/types/recipes/leftbar/callbox/callbox.vue.d.ts +71 -25
  538. package/dist/types/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
  539. package/dist/types/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts +38 -2
  540. package/dist/types/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts.map +1 -1
  541. package/dist/types/recipes/leftbar/contact_row/contact_row.vue.d.ts +467 -28
  542. package/dist/types/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
  543. package/dist/types/recipes/leftbar/general_row/general_row.vue.d.ts +396 -3
  544. package/dist/types/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  545. package/dist/types/recipes/leftbar/group_row/group_row.vue.d.ts +396 -3
  546. package/dist/types/recipes/leftbar/group_row/group_row.vue.d.ts.map +1 -1
  547. package/dist/types/recipes/notices/top_banner_info/top_banner_info.vue.d.ts.map +1 -1
  548. package/package.json +6 -5
  549. package/dist/lib/split-button/split-button-alpha.cjs +0 -2
  550. package/dist/lib/split-button/split-button-alpha.cjs.map +0 -1
  551. package/dist/lib/split-button/split-button-alpha.js +0 -138
  552. package/dist/lib/split-button/split-button-alpha.js.map +0 -1
  553. package/dist/lib/split-button/split-button-omega.cjs +0 -2
  554. package/dist/lib/split-button/split-button-omega.cjs.map +0 -1
  555. package/dist/lib/split-button/split-button-omega.js.map +0 -1
  556. package/dist/types/components/split_button/split_button-alpha.vue.d.ts.map +0 -1
  557. package/dist/types/recipes/conversation_view/attachment_carousel/media_components/progress_bar.vue.d.ts +0 -30
  558. package/dist/types/recipes/conversation_view/attachment_carousel/media_components/progress_bar.vue.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"input.cjs","sources":["../../../components/input/input.vue"],"sourcesContent":["<template>\n <div\n ref=\"container\"\n :class=\"[rootClass, 'd-input__root', { 'd-input--hidden': hidden }]\"\n v-bind=\"addClassStyleAttrs($attrs)\"\n data-qa=\"dt-input\"\n >\n <label\n class=\"d-input__label\"\n :aria-details=\"$slots.description || description ? descriptionKey : undefined\"\n data-qa=\"dt-input-label-wrapper\"\n >\n <!-- @slot Slot for label, defaults to label prop -->\n <slot name=\"labelSlot\">\n <div\n v-if=\"labelVisible && label\"\n ref=\"label\"\n data-qa=\"dt-input-label\"\n :class=\"[\n 'd-input__label-text',\n 'd-label',\n labelSizeClasses[size],\n ]\"\n >\n {{ label }}\n </div>\n </slot>\n <div\n v-if=\"hasSlotContent($slots.description) || description || shouldValidateLength\"\n :id=\"descriptionKey\"\n ref=\"description\"\n :class=\"[\n 'd-input__description',\n 'd-description',\n descriptionSizeClasses[size],\n ]\"\n data-qa=\"dt-input-description\"\n >\n <div\n v-if=\"hasSlotContent($slots.description) || description\"\n >\n <!-- @slot Slot for description, defaults to description prop -->\n <slot name=\"description\">{{ description }}</slot>\n </div>\n <div\n v-if=\"shouldValidateLength\"\n data-qa=\"dt-input-length-description\"\n class=\"d-input__length-description\"\n >\n {{ validationProps.length.description }}\n </div>\n </div>\n <div\n :class=\"inputWrapperClasses()\"\n :read-only=\"disabled === true ? true : undefined\"\n >\n <span\n class=\"d-input-icon d-input-icon--left\"\n data-qa=\"dt-input-left-icon-wrapper\"\n @focusout=\"onBlur\"\n >\n <!-- @slot Slot for left icon -->\n <slot\n name=\"leftIcon\"\n :icon-size=\"iconSize\"\n />\n </span>\n <textarea\n v-if=\"isTextarea\"\n ref=\"input\"\n :name=\"name\"\n :disabled=\"disabled\"\n :autocomplete=\"$attrs.autocomplete ?? 'off'\"\n :class=\"inputClasses()\"\n :maxlength=\"shouldLimitMaxLength ? validationProps.length.max : null\"\n data-qa=\"dt-input-input\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n v-on=\"inputListeners\"\n />\n <input\n v-else\n ref=\"input\"\n :value=\"modelValue\"\n :name=\"name\"\n :type=\"type\"\n :disabled=\"disabled\"\n :autocomplete=\"$attrs.autocomplete ?? 'off'\"\n :class=\"inputClasses()\"\n :maxlength=\"shouldLimitMaxLength ? validationProps.length.max : null\"\n data-qa=\"dt-input-input\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n v-on=\"inputListeners\"\n >\n <span\n class=\"d-input-icon d-input-icon--right\"\n data-qa=\"dt-input-right-icon-wrapper\"\n @focusout=\"onBlur\"\n >\n <!-- @slot Slot for right icon -->\n <slot\n name=\"rightIcon\"\n :icon-size=\"iconSize\"\n :clear=\"clearInput\"\n />\n </span>\n </div>\n </label>\n <dt-validation-messages\n :validation-messages=\"validationMessages\"\n :show-messages=\"showMessages\"\n :class=\"messagesClass\"\n v-bind=\"messagesChildProps\"\n data-qa=\"dt-input-messages\"\n />\n </div>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport { DESCRIPTION_SIZE_TYPES, VALIDATION_MESSAGE_TYPES } from '@/common/constants';\nimport {\n INPUT_TYPES,\n INPUT_SIZES,\n INPUT_SIZE_CLASSES,\n INPUT_ICON_SIZES,\n INPUT_STATE_CLASSES,\n DESCRIPTION_SIZE_CLASSES,\n LABEL_SIZE_CLASSES,\n} from './input_constants';\nimport {\n getUniqueString,\n getValidationState,\n hasSlotContent,\n removeClassStyleAttrs,\n addClassStyleAttrs,\n} from '@/common/utils';\nimport { DtValidationMessages } from '@/components/validation_messages';\nimport { MessagesMixin } from '@/common/mixins/input';\n\n/**\n * An input field is an input control that allows users to enter alphanumeric information.\n * It can have a range of options and supports single line and multi-line lengths,\n * as well as varying formats, including numbers, masked passwords, etc.\n * @property {Boolean} placeholder attribute\n * @see https://dialtone.dialpad.com/components/input.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtInput',\n\n components: { DtValidationMessages },\n\n mixins: [MessagesMixin],\n\n inheritAttrs: false,\n\n props: {\n /**\n * Name property of the input element\n */\n name: {\n type: String,\n default: '',\n },\n\n /**\n * Type of the input.\n * When `textarea` a `<textarea>` element will be rendered instead of an `<input>` element.\n * @values text, password, email, number, textarea, date, time, file, tel, search, color\n * @default 'text'\n */\n type: {\n type: String,\n default: INPUT_TYPES.TEXT,\n validator: (t) => Object.values(INPUT_TYPES).includes(t),\n },\n\n /**\n * Value of the input\n */\n modelValue: {\n type: [String, Number],\n default: '',\n },\n\n /**\n * Disables the input\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Label for the input\n */\n label: {\n type: String,\n default: '',\n },\n\n /**\n * Determines visibility of input label.\n * @values true, false\n */\n labelVisible: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Description for the input\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Size of the input, one of `xs`, `sm`, `md`, `lg`, `xl`\n * @values xs, sm, md, lg, xl\n */\n size: {\n type: String,\n default: 'md',\n validator: (t) => Object.values(INPUT_SIZES).includes(t),\n },\n\n /**\n * Additional class name for the input 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 inputClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Additional class name for the input wrapper element.\n * Can accept all of: String, Object, and Array, i.e. has the\n * same api as Vue's built-in handling of the class attribute.\n */\n inputWrapperClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Additional class name for the root element.\n * Can accept all of: String, Object, and Array, i.e. has the\n * same api as Vue's built-in handling of the class attribute.\n */\n rootClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * The current character length that the user has entered into the input.\n * This will only need to be used if you are using `validate.length` and\n * the string contains abnormal characters.\n * For example, an emoji could take up many characters in the input, but should only count as 1 character.\n * If no number is provided, a built-in length calculation will be used for the length validation.\n */\n currentLength: {\n type: Number,\n default: null,\n },\n\n /**\n * Whether the input will continue to display a warning validation message even if the input has lost focus.\n */\n retainWarning: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Validation for the input. Supports maximum length validation with the structure:\n * `{ \"length\": {\"description\": string, \"max\": number, \"warn\": number, \"message\": string,\n * \"limitMaxLength\": boolean }}`\n */\n validate: {\n type: Object,\n default: null,\n },\n\n /**\n * hidden allows to use input without the element visually present in DOM\n */\n hidden: {\n type: Boolean,\n default: false,\n },\n },\n\n emits: [\n /**\n * Native input event\n *\n * @event input\n * @type {String}\n */\n 'input',\n\n /**\n * Native input blur event\n *\n * @event blur\n * @type {FocusEvent}\n */\n 'blur',\n\n /**\n * Input clear event\n *\n * @event clear\n */\n 'clear',\n\n /**\n * Native input focus event\n *\n * @event focus\n * @type {FocusEvent}\n */\n 'focus',\n\n /**\n * Native input focusin event\n *\n * @event focusin\n * @type {FocusEvent}\n */\n 'focusin',\n\n /**\n * Native input focusout event\n *\n * @event focusout\n * @type {FocusEvent}\n */\n 'focusout',\n\n /**\n * Event fired to sync the modelValue prop with the parent component\n * @event update:modelValue\n */\n 'update:modelValue',\n\n /**\n * Length of the input when currentLength prop is not passed\n *\n * @event update:length\n * @type {Number}\n */\n 'update:length',\n\n /**\n * Result of the input validation\n *\n * @event update:invalid\n * @type {Boolean}\n */\n 'update:invalid',\n ],\n\n data () {\n return {\n isInputFocused: false,\n isInvalid: false,\n defaultLength: 0,\n hasSlotContent,\n isComposing: false,\n };\n },\n\n computed: {\n\n isTextarea () {\n return this.type === INPUT_TYPES.TEXTAREA;\n },\n\n isDefaultSize () {\n return this.size === INPUT_SIZES.DEFAULT;\n },\n\n iconSize () {\n return INPUT_ICON_SIZES[this.size];\n },\n\n isValidSize () {\n return Object.values(INPUT_SIZES).includes(this.size);\n },\n\n isValidDescriptionSize () {\n return Object.values(DESCRIPTION_SIZE_TYPES).includes(this.size);\n },\n\n inputComponent () {\n if (this.isTextarea) {\n return 'textarea';\n }\n\n return 'input';\n },\n\n inputListeners () {\n return {\n compositionstart: () => {\n this.isComposing = true;\n },\n\n compositionend: () => {\n this.isComposing = false;\n },\n\n input: async event => {\n if (this.isComposing) return;\n let val = event.target.value;\n if (this.type === INPUT_TYPES.FILE) {\n const files = Array.from(event.target.files);\n val = files.map(file => file.name);\n }\n this.$emit('input', val);\n this.$emit('update:modelValue', val);\n },\n\n blur: event => {\n this.isInputFocused = false;\n this.onBlur(event);\n },\n\n focus: event => {\n this.isInputFocused = true;\n this.$emit('focus', event);\n },\n\n focusin: event => this.$emit('focusin', event),\n focusout: event => this.$emit('focusout', event),\n };\n },\n\n descriptionKey () {\n return `input-description-${getUniqueString()}`;\n },\n\n inputState () {\n return getValidationState(this.validationMessages);\n },\n\n defaultLengthCalculation () {\n return this.calculateLength(this.modelValue);\n },\n\n validationProps () {\n return {\n length: {\n description: this?.validate?.length?.description,\n max: this?.validate?.length?.max,\n warn: this?.validate?.length?.warn,\n message: this?.validate?.length?.message,\n limitMaxLength: this?.validate?.length?.limitMaxLength ? this.validate.length.limitMaxLength : false,\n },\n };\n },\n\n validationMessages () {\n // Add length validation message if exists\n if (this.showLengthLimitValidation) {\n return this.formattedMessages.concat([this.inputLengthErrorMessage()]);\n }\n\n return this.formattedMessages;\n },\n\n showInputState () {\n return this.showMessages && this.inputState;\n },\n\n inputLength () {\n return this.currentLength ? this.currentLength : this.defaultLengthCalculation;\n },\n\n inputLengthState () {\n if (this.inputLength < this.validationProps.length.warn) {\n return null;\n } else if (this.inputLength <= this.validationProps.length.max) {\n return this.validationProps.length.warn ? VALIDATION_MESSAGE_TYPES.WARNING : null;\n } else {\n return VALIDATION_MESSAGE_TYPES.ERROR;\n }\n },\n\n shouldValidateLength () {\n return !!(\n this.validationProps.length.description &&\n this.validationProps.length.max\n );\n },\n\n shouldLimitMaxLength () {\n return this.shouldValidateLength && this.validationProps.length.limitMaxLength;\n },\n\n showLengthLimitValidation () {\n return (\n this.shouldValidateLength &&\n this.inputLengthState !== null &&\n this.validationProps.length.message &&\n (this.retainWarning || this.isInputFocused || this.isInvalid)\n );\n },\n\n sizeModifierClass () {\n if (this.isDefaultSize || !this.isValidSize) {\n return '';\n }\n\n return INPUT_SIZE_CLASSES[this.inputComponent][this.size];\n },\n\n stateClass () {\n return [INPUT_STATE_CLASSES[this.inputState]];\n },\n },\n\n watch: {\n isInvalid (val) {\n this.$emit('update:invalid', val);\n },\n\n modelValue: {\n immediate: true,\n handler (newValue) {\n if (this.shouldValidateLength) {\n this.validateLength(this.inputLength);\n }\n\n if (this.currentLength == null) {\n this.$emit('update:length', this.calculateLength(newValue));\n }\n\n // Set textarea value programmatically to avoid attribute binding\n // Skip during IME composition to avoid interrupting in-progress input\n if (this.isTextarea && this.$refs.input && this.$refs.input.value !== newValue && !this.isComposing) {\n this.$refs.input.value = newValue;\n }\n },\n },\n },\n\n beforeMount () {\n this.descriptionSizeClasses = DESCRIPTION_SIZE_CLASSES;\n this.labelSizeClasses = LABEL_SIZE_CLASSES;\n },\n\n mounted () {\n // Set initial textarea value programmatically\n if (this.isTextarea && this.$refs.input) {\n this.$refs.input.value = this.modelValue;\n }\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n inputClasses () {\n return [\n 'd-input__input',\n this.inputComponent === 'input' ? 'd-input' : 'd-textarea',\n {\n [this.stateClass]: this.showInputState,\n 'd-input-icon--left': this.$slots.leftIcon,\n 'd-input-icon--right': this.$slots.rightIcon,\n },\n this.sizeModifierClass,\n this.inputClass,\n ];\n },\n\n inputWrapperClasses () {\n if (this.hidden) {\n return [];\n }\n return [\n 'd-input__wrapper',\n { [this.stateClass]: this.showInputState },\n this.inputWrapperClass,\n ];\n },\n\n calculateLength (value) {\n if (typeof value !== 'string') {\n return 0;\n }\n\n return [...value].length;\n },\n\n inputLengthErrorMessage () {\n return {\n message: this.validationProps.length.message,\n type: this.inputLengthState,\n };\n },\n\n onBlur (e) {\n // Do not emit a blur event if the target element is a child of this component\n if (!this.$refs.container?.contains(e.relatedTarget)) {\n this.$emit('blur', e);\n }\n },\n\n emitClearEvents () {\n this.$emit('input', '');\n this.$emit('clear');\n this.$emit('update:modelValue', '');\n },\n\n blur () {\n this.$refs.input.blur();\n },\n\n focus () {\n this.$refs.input.focus();\n },\n\n select () {\n this.$refs.input.select();\n },\n\n getMessageKey (type, index) {\n return `message-${type}-${index}`;\n },\n\n validateLength (length) {\n this.isInvalid = (length > this.validationProps.length.max);\n },\n\n clearInput () {\n this.$refs.input.value = '';\n this.$refs.input.focus();\n this.emitClearEvents();\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtValidationMessages","MessagesMixin","INPUT_TYPES","t","INPUT_SIZES","hasSlotContent","INPUT_ICON_SIZES","DESCRIPTION_SIZE_TYPES","event","val","file","getUniqueString","getValidationState","_b","_a","_d","_c","_f","_e","_h","_g","_j","_i","VALIDATION_MESSAGE_TYPES","INPUT_SIZE_CLASSES","INPUT_STATE_CLASSES","newValue","DESCRIPTION_SIZE_CLASSES","LABEL_SIZE_CLASSES","removeClassStyleAttrs","addClassStyleAttrs","value","type","index","length","_openBlock","_createElementBlock","_mergeProps","$props","$options","_ctx","_createElementVNode","_renderSlot","_normalizeClass","$data","_hoisted_3","_hoisted_4","_toDisplayString","args","_toHandlers","_hoisted_6","_hoisted_7","_createVNode","_component_dt_validation_messages"],"mappings":"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"}
1
+ {"version":3,"file":"input.cjs","sources":["../../../components/input/input.vue"],"sourcesContent":["<template>\n <div\n ref=\"container\"\n :class=\"[rootClass, 'd-input__root', { 'd-input--hidden': hidden }]\"\n v-bind=\"addClassStyleAttrs($attrs)\"\n data-qa=\"dt-input\"\n >\n <label\n class=\"d-input__label\"\n :aria-details=\"$slots.description || description ? descriptionKey : undefined\"\n data-qa=\"dt-input-label-wrapper\"\n >\n <!-- @slot Slot for label, defaults to label prop -->\n <slot name=\"labelSlot\">\n <dt-text\n v-if=\"labelVisible && label\"\n ref=\"label\"\n data-qa=\"dt-input-label\"\n kind=\"label\"\n :size=\"resolvedLabelSize\"\n :strength=\"labelStrength\"\n tone=\"secondary\"\n :class=\"['d-input__label-text', labelClass]\"\n >\n {{ label }}\n </dt-text>\n </slot>\n <dt-text\n v-if=\"hasSlotContent($slots.description) || description || shouldValidateLength\"\n :id=\"descriptionKey\"\n ref=\"description\"\n kind=\"body\"\n :size=\"resolvedDescriptionSize\"\n tone=\"tertiary\"\n :density=\"resolvedDescriptionDensity\"\n as=\"div\"\n :class=\"[\n 'd-input__description',\n 'd-description',\n descriptionClass,\n ]\"\n data-qa=\"dt-input-description\"\n >\n <div\n v-if=\"hasSlotContent($slots.description) || description\"\n >\n <!-- @slot Slot for description, defaults to description prop -->\n <slot name=\"description\">{{ description }}</slot>\n </div>\n <div\n v-if=\"shouldValidateLength\"\n data-qa=\"dt-input-length-description\"\n class=\"d-input__length-description\"\n >\n {{ validationProps.length.description }}\n </div>\n </dt-text>\n <div\n :class=\"inputWrapperClasses()\"\n :read-only=\"disabled === true ? true : undefined\"\n >\n <span\n class=\"d-input-icon d-input-icon--left\"\n data-qa=\"dt-input-left-icon-wrapper\"\n @focusout=\"onBlur\"\n >\n <!-- @slot Slot for start icon -->\n <slot\n v-if=\"$slots.startIcon\"\n name=\"startIcon\"\n :icon-size=\"iconSize\"\n />\n <!-- @slot @deprecated Use startIcon -->\n <slot\n v-else\n name=\"leftIcon\"\n :icon-size=\"iconSize\"\n />\n </span>\n <textarea\n v-if=\"isTextarea\"\n ref=\"input\"\n :name=\"name\"\n :disabled=\"disabled\"\n :autocomplete=\"$attrs.autocomplete ?? 'off'\"\n :class=\"inputClasses()\"\n :maxlength=\"shouldLimitMaxLength ? validationProps.length.max : null\"\n :aria-label=\"!labelVisible && label ? label : undefined\"\n data-qa=\"dt-input-input\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n v-on=\"inputListeners\"\n />\n <input\n v-else\n ref=\"input\"\n :value=\"modelValue\"\n :name=\"name\"\n :type=\"type\"\n :disabled=\"disabled\"\n :autocomplete=\"$attrs.autocomplete ?? 'off'\"\n :class=\"inputClasses()\"\n :maxlength=\"shouldLimitMaxLength ? validationProps.length.max : null\"\n :aria-label=\"!labelVisible && label ? label : undefined\"\n data-qa=\"dt-input-input\"\n v-bind=\"removeClassStyleAttrs($attrs)\"\n v-on=\"inputListeners\"\n >\n <span\n class=\"d-input-icon d-input-icon--right\"\n data-qa=\"dt-input-right-icon-wrapper\"\n @focusout=\"onBlur\"\n >\n <!-- @slot Slot for end icon -->\n <slot\n v-if=\"$slots.endIcon\"\n name=\"endIcon\"\n :icon-size=\"iconSize\"\n :clear=\"clearInput\"\n />\n <!-- @slot @deprecated Use endIcon -->\n <slot\n v-else\n name=\"rightIcon\"\n :icon-size=\"iconSize\"\n :clear=\"clearInput\"\n />\n </span>\n </div>\n </label>\n <dt-validation-messages\n :validation-messages=\"validationMessages\"\n :show-messages=\"showMessages\"\n :class=\"messagesClass\"\n v-bind=\"messagesChildProps\"\n data-qa=\"dt-input-messages\"\n />\n </div>\n</template>\n\n<script>\n/* eslint-disable max-lines */\nimport { DESCRIPTION_SIZE_TYPES, VALIDATION_MESSAGE_TYPES } from '@/common/constants';\nimport {\n INPUT_TYPES,\n INPUT_SIZES,\n INPUT_SIZE_CLASSES,\n INPUT_ICON_SIZES,\n INPUT_STATE_CLASSES,\n} from './input_constants';\nimport {\n getUniqueString,\n getValidationState,\n hasSlotContent,\n removeClassStyleAttrs,\n addClassStyleAttrs,\n} from '@/common/utils';\nimport { DtValidationMessages } from '@/components/validation_messages';\nimport { DtText, TEXT_SIZE_MODIFIERS, TEXT_STRENGTH_MODIFIERS } from '@/components/text';\nimport { MessagesMixin } from '@/common/mixins/input';\n\n/**\n * An input field is an input control that allows users to enter alphanumeric information.\n * It can have a range of options and supports single line and multi-line lengths,\n * as well as varying formats, including numbers, masked passwords, etc.\n * @property {Boolean} placeholder attribute\n * @see https://dialtone.dialpad.com/components/input.html\n */\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtInput',\n\n components: { DtValidationMessages, DtText },\n\n mixins: [MessagesMixin],\n\n inheritAttrs: false,\n\n props: {\n /**\n * Name property of the input element\n */\n name: {\n type: String,\n default: '',\n },\n\n /**\n * Type of the input.\n * When `textarea` a `<textarea>` element will be rendered instead of an `<input>` element.\n * @values text, password, email, number, textarea, date, time, file, tel, search, color\n * @default 'text'\n */\n type: {\n type: String,\n default: INPUT_TYPES.TEXT,\n validator: (t) => Object.values(INPUT_TYPES).includes(t),\n },\n\n /**\n * Value of the input\n */\n modelValue: {\n type: [String, Number],\n default: '',\n },\n\n /**\n * Disables the input\n * @values true, false\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Label for the input\n */\n label: {\n type: String,\n default: '',\n },\n\n /**\n * Determines visibility of input label.\n * @values true, false\n */\n labelVisible: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Description for the input\n */\n description: {\n type: String,\n default: '',\n },\n\n /**\n * Used to customize the description container\n */\n descriptionClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Size of the input, one of `xs`, `sm`, `md`, `lg`, `xl`\n * @values xs, sm, md, lg, xl\n */\n size: {\n type: String,\n default: 'md',\n validator: (t) => Object.values(INPUT_SIZES).includes(t),\n },\n\n /**\n * Additional class name for the input 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 inputClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Additional class name for the input wrapper element.\n * Can accept all of: String, Object, and Array, i.e. has the\n * same api as Vue's built-in handling of the class attribute.\n */\n inputWrapperClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Additional class name for the root element.\n * Can accept all of: String, Object, and Array, i.e. has the\n * same api as Vue's built-in handling of the class attribute.\n */\n rootClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * The current character length that the user has entered into the input.\n * This will only need to be used if you are using `validate.length` and\n * the string contains abnormal characters.\n * For example, an emoji could take up many characters in the input, but should only count as 1 character.\n * If no number is provided, a built-in length calculation will be used for the length validation.\n */\n currentLength: {\n type: Number,\n default: null,\n },\n\n /**\n * Whether the input will continue to display a warning validation message even if the input has lost focus.\n */\n retainWarning: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Validation for the input. Supports maximum length validation with the structure:\n * `{ \"length\": {\"description\": string, \"max\": number, \"warn\": number, \"message\": string,\n * \"limitMaxLength\": boolean }}`\n */\n validate: {\n type: Object,\n default: null,\n },\n\n /**\n * hidden allows to use input without the element visually present in DOM\n */\n hidden: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Overrides the label text size. When not provided, the label size\n * is derived from the component size prop.\n * @values lg, md, sm, xs\n */\n labelSize: {\n type: String,\n default: null,\n validator: (s) => TEXT_SIZE_MODIFIERS.label.includes(s),\n },\n\n /**\n * Overrides the label font weight.\n * @values bold, semibold, medium, normal\n */\n labelStrength: {\n type: String,\n default: null,\n validator: (s) => Object.keys(TEXT_STRENGTH_MODIFIERS).includes(s),\n },\n\n /**\n * Used to customize the label container\n */\n labelClass: {\n type: [String, Array, Object],\n default: '',\n },\n },\n\n emits: [\n /**\n * Native input event\n *\n * @event input\n * @type {String}\n */\n 'input',\n\n /**\n * Native input blur event\n *\n * @event blur\n * @type {FocusEvent}\n */\n 'blur',\n\n /**\n * Input clear event\n *\n * @event clear\n */\n 'clear',\n\n /**\n * Native input focus event\n *\n * @event focus\n * @type {FocusEvent}\n */\n 'focus',\n\n /**\n * Native input focusin event\n *\n * @event focusin\n * @type {FocusEvent}\n */\n 'focusin',\n\n /**\n * Native input focusout event\n *\n * @event focusout\n * @type {FocusEvent}\n */\n 'focusout',\n\n /**\n * Event fired to sync the modelValue prop with the parent component\n * @event update:modelValue\n */\n 'update:modelValue',\n\n /**\n * Length of the input when currentLength prop is not passed\n *\n * @event update:length\n * @type {Number}\n */\n 'update:length',\n\n /**\n * Result of the input validation\n *\n * @event update:invalid\n * @type {Boolean}\n */\n 'update:invalid',\n ],\n\n data () {\n return {\n isInputFocused: false,\n isInvalid: false,\n defaultLength: 0,\n hasSlotContent,\n isComposing: false,\n };\n },\n\n computed: {\n\n isTextarea () {\n return this.type === INPUT_TYPES.TEXTAREA;\n },\n\n isDefaultSize () {\n return this.size === INPUT_SIZES.DEFAULT;\n },\n\n iconSize () {\n return INPUT_ICON_SIZES[this.size];\n },\n\n isValidSize () {\n return Object.values(INPUT_SIZES).includes(this.size);\n },\n\n isValidDescriptionSize () {\n return Object.values(DESCRIPTION_SIZE_TYPES).includes(this.size);\n },\n\n inputComponent () {\n if (this.isTextarea) {\n return 'textarea';\n }\n\n return 'input';\n },\n\n inputListeners () {\n return {\n compositionstart: () => {\n this.isComposing = true;\n },\n\n compositionend: () => {\n this.isComposing = false;\n },\n\n input: async event => {\n if (this.isComposing) return;\n let val = event.target.value;\n if (this.type === INPUT_TYPES.FILE) {\n const files = Array.from(event.target.files);\n val = files.map(file => file.name);\n }\n this.$emit('input', val);\n this.$emit('update:modelValue', val);\n },\n\n blur: event => {\n this.isInputFocused = false;\n this.onBlur(event);\n },\n\n focus: event => {\n this.isInputFocused = true;\n this.$emit('focus', event);\n },\n\n focusin: event => this.$emit('focusin', event),\n focusout: event => this.$emit('focusout', event),\n };\n },\n\n descriptionKey () {\n return `input-description-${getUniqueString()}`;\n },\n\n inputState () {\n return getValidationState(this.validationMessages);\n },\n\n defaultLengthCalculation () {\n return this.calculateLength(this.modelValue);\n },\n\n validationProps () {\n return {\n length: {\n description: this?.validate?.length?.description,\n max: this?.validate?.length?.max,\n warn: this?.validate?.length?.warn,\n message: this?.validate?.length?.message,\n limitMaxLength: this?.validate?.length?.limitMaxLength ? this.validate.length.limitMaxLength : false,\n },\n };\n },\n\n validationMessages () {\n // Add length validation message if exists\n if (this.showLengthLimitValidation) {\n return this.formattedMessages.concat([this.inputLengthErrorMessage()]);\n }\n\n return this.formattedMessages;\n },\n\n showInputState () {\n return this.showMessages && this.inputState;\n },\n\n inputLength () {\n return this.currentLength ? this.currentLength : this.defaultLengthCalculation;\n },\n\n inputLengthState () {\n if (this.inputLength < this.validationProps.length.warn) {\n return null;\n } else if (this.inputLength <= this.validationProps.length.max) {\n return this.validationProps.length.warn ? VALIDATION_MESSAGE_TYPES.WARNING : null;\n } else {\n return VALIDATION_MESSAGE_TYPES.ERROR;\n }\n },\n\n shouldValidateLength () {\n return !!(\n this.validationProps.length.description &&\n this.validationProps.length.max\n );\n },\n\n shouldLimitMaxLength () {\n return this.shouldValidateLength && this.validationProps.length.limitMaxLength;\n },\n\n showLengthLimitValidation () {\n return (\n this.shouldValidateLength &&\n this.inputLengthState !== null &&\n this.validationProps.length.message &&\n (this.retainWarning || this.isInputFocused || this.isInvalid)\n );\n },\n\n resolvedLabelSize () {\n return this.labelSize ?? (this.size === 'xl' ? 'lg' : this.size);\n },\n\n resolvedDescriptionSize () {\n const map = { xs: 'xs', sm: 'xs', md: 'sm', lg: 'sm', xl: 'md' };\n return map[this.size] || 'sm';\n },\n\n resolvedDescriptionDensity () {\n return this.size === 'xl' ? '300' : undefined;\n },\n\n sizeModifierClass () {\n if (this.isDefaultSize || !this.isValidSize) {\n return '';\n }\n\n return INPUT_SIZE_CLASSES[this.inputComponent][this.size];\n },\n\n stateClass () {\n return [INPUT_STATE_CLASSES[this.inputState]];\n },\n },\n\n watch: {\n isInvalid (val) {\n this.$emit('update:invalid', val);\n },\n\n modelValue: {\n immediate: true,\n handler (newValue) {\n if (this.shouldValidateLength) {\n this.validateLength(this.inputLength);\n }\n\n if (this.currentLength == null) {\n this.$emit('update:length', this.calculateLength(newValue));\n }\n\n // Set textarea value programmatically to avoid attribute binding\n // Skip during IME composition to avoid interrupting in-progress input\n if (this.isTextarea && this.$refs.input && this.$refs.input.value !== newValue && !this.isComposing) {\n this.$refs.input.value = newValue;\n }\n },\n },\n },\n\n mounted () {\n // Set initial textarea value programmatically\n if (this.isTextarea && this.$refs.input) {\n this.$refs.input.value = this.modelValue;\n }\n this.runValidations();\n },\n\n methods: {\n removeClassStyleAttrs,\n addClassStyleAttrs,\n inputClasses () {\n return [\n 'd-input__input',\n this.inputComponent === 'input' ? 'd-input' : 'd-textarea',\n {\n [this.stateClass]: this.showInputState,\n 'd-input-icon--left': this.$slots.startIcon || this.$slots.leftIcon,\n 'd-input-icon--right': this.$slots.endIcon || this.$slots.rightIcon,\n },\n this.sizeModifierClass,\n this.inputClass,\n ];\n },\n\n inputWrapperClasses () {\n if (this.hidden) {\n return [];\n }\n return [\n 'd-input__wrapper',\n { [this.stateClass]: this.showInputState },\n this.inputWrapperClass,\n ];\n },\n\n calculateLength (value) {\n if (typeof value !== 'string') {\n return 0;\n }\n\n return [...value].length;\n },\n\n inputLengthErrorMessage () {\n return {\n message: this.validationProps.length.message,\n type: this.inputLengthState,\n };\n },\n\n onBlur (e) {\n // Do not emit a blur event if the target element is a child of this component\n if (!this.$refs.container?.contains(e.relatedTarget)) {\n this.$emit('blur', e);\n }\n },\n\n emitClearEvents () {\n this.$emit('input', '');\n this.$emit('clear');\n this.$emit('update:modelValue', '');\n },\n\n blur () {\n this.$refs.input.blur();\n },\n\n focus () {\n this.$refs.input.focus();\n },\n\n select () {\n this.$refs.input.select();\n },\n\n getMessageKey (type, index) {\n return `message-${type}-${index}`;\n },\n\n validateLength (length) {\n this.isInvalid = (length > this.validationProps.length.max);\n },\n\n clearInput () {\n this.$refs.input.value = '';\n this.$refs.input.focus();\n this.emitClearEvents();\n },\n\n runValidations () {\n if (!this.label && !this.$attrs['aria-label']) {\n console.info(\n '[Dialtone] A label is required for accessibility. Provide a label prop and use label-visible=\"false\" to hide it visually.',\n );\n }\n },\n },\n};\n</script>\n"],"names":["_sfc_main","DtValidationMessages","DtText","MessagesMixin","INPUT_TYPES","t","INPUT_SIZES","s","TEXT_SIZE_MODIFIERS","TEXT_STRENGTH_MODIFIERS","hasSlotContent","INPUT_ICON_SIZES","DESCRIPTION_SIZE_TYPES","event","val","file","getUniqueString","getValidationState","_b","_a","_d","_c","_f","_e","_h","_g","_j","_i","VALIDATION_MESSAGE_TYPES","INPUT_SIZE_CLASSES","INPUT_STATE_CLASSES","newValue","removeClassStyleAttrs","addClassStyleAttrs","value","type","index","length","_openBlock","_createElementBlock","_mergeProps","$props","$options","_ctx","_createElementVNode","_renderSlot","_createBlock","_component_dt_text","$data","_normalizeClass","_hoisted_2","_hoisted_3","_toDisplayString","args","_toHandlers","_hoisted_5","_hoisted_6","_createVNode","_component_dt_validation_messages"],"mappings":"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"}
@@ -1,14 +1,16 @@
1
- import { VALIDATION_MESSAGE_TYPES as L, DESCRIPTION_SIZE_TYPES as b } from "../../common/constants/index.js";
2
- import { INPUT_TYPES as o, DESCRIPTION_SIZE_CLASSES as I, LABEL_SIZE_CLASSES as _, INPUT_STATE_CLASSES as E, INPUT_SIZE_CLASSES as V, INPUT_SIZES as m, INPUT_ICON_SIZES as z } from "./input-constants.js";
3
- import { addClassStyleAttrs as M, removeClassStyleAttrs as P, getValidationState as T, getUniqueString as A, hasSlotContent as N } from "../../common/utils/index.js";
1
+ import { VALIDATION_MESSAGE_TYPES as y, DESCRIPTION_SIZE_TYPES as E } from "../../common/constants/index.js";
2
+ import { INPUT_TYPES as c, INPUT_STATE_CLASSES as T, INPUT_SIZE_CLASSES as V, INPUT_SIZES as f, INPUT_ICON_SIZES as M } from "./input-constants.js";
3
+ import { addClassStyleAttrs as P, removeClassStyleAttrs as x, getValidationState as A, getUniqueString as D, hasSlotContent as O } from "../../common/utils/index.js";
4
4
  import { MessagesMixin as w } from "../../common/mixins/input.js";
5
- import { resolveComponent as x, openBlock as a, createElementBlock as n, mergeProps as h, createElementVNode as p, renderSlot as c, normalizeClass as f, toDisplayString as S, createCommentVNode as g, createTextVNode as O, toHandlers as y, createVNode as B } from "vue";
6
- import { _ as D } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
5
+ import { resolveComponent as C, openBlock as a, createElementBlock as o, mergeProps as p, createElementVNode as m, renderSlot as l, createBlock as L, normalizeClass as S, withCtx as I, createTextVNode as z, toDisplayString as b, createCommentVNode as g, toHandlers as _, createVNode as N } from "vue";
6
+ import { _ as k } from "../../_plugin-vue_export-helper-CHgC5LLL.js";
7
+ import B from "../text/text.js";
7
8
  import q from "../validation-messages/validation-messages.js";
8
- const j = {
9
+ import { TEXT_STRENGTH_MODIFIERS as j, TEXT_SIZE_MODIFIERS as F } from "../text/text-constants.js";
10
+ const R = {
9
11
  compatConfig: { MODE: 3 },
10
12
  name: "DtInput",
11
- components: { DtValidationMessages: q },
13
+ components: { DtValidationMessages: q, DtText: B },
12
14
  mixins: [w],
13
15
  inheritAttrs: !1,
14
16
  props: {
@@ -27,8 +29,8 @@ const j = {
27
29
  */
28
30
  type: {
29
31
  type: String,
30
- default: o.TEXT,
31
- validator: (t) => Object.values(o).includes(t)
32
+ default: c.TEXT,
33
+ validator: (t) => Object.values(c).includes(t)
32
34
  },
33
35
  /**
34
36
  * Value of the input
@@ -67,6 +69,13 @@ const j = {
67
69
  type: String,
68
70
  default: ""
69
71
  },
72
+ /**
73
+ * Used to customize the description container
74
+ */
75
+ descriptionClass: {
76
+ type: [String, Array, Object],
77
+ default: ""
78
+ },
70
79
  /**
71
80
  * Size of the input, one of `xs`, `sm`, `md`, `lg`, `xl`
72
81
  * @values xs, sm, md, lg, xl
@@ -74,7 +83,7 @@ const j = {
74
83
  size: {
75
84
  type: String,
76
85
  default: "md",
77
- validator: (t) => Object.values(m).includes(t)
86
+ validator: (t) => Object.values(f).includes(t)
78
87
  },
79
88
  /**
80
89
  * Additional class name for the input element.
@@ -136,6 +145,32 @@ const j = {
136
145
  hidden: {
137
146
  type: Boolean,
138
147
  default: !1
148
+ },
149
+ /**
150
+ * Overrides the label text size. When not provided, the label size
151
+ * is derived from the component size prop.
152
+ * @values lg, md, sm, xs
153
+ */
154
+ labelSize: {
155
+ type: String,
156
+ default: null,
157
+ validator: (t) => F.label.includes(t)
158
+ },
159
+ /**
160
+ * Overrides the label font weight.
161
+ * @values bold, semibold, medium, normal
162
+ */
163
+ labelStrength: {
164
+ type: String,
165
+ default: null,
166
+ validator: (t) => Object.keys(j).includes(t)
167
+ },
168
+ /**
169
+ * Used to customize the label container
170
+ */
171
+ labelClass: {
172
+ type: [String, Array, Object],
173
+ default: ""
139
174
  }
140
175
  },
141
176
  emits: [
@@ -205,25 +240,25 @@ const j = {
205
240
  isInputFocused: !1,
206
241
  isInvalid: !1,
207
242
  defaultLength: 0,
208
- hasSlotContent: N,
243
+ hasSlotContent: O,
209
244
  isComposing: !1
210
245
  };
211
246
  },
212
247
  computed: {
213
248
  isTextarea() {
214
- return this.type === o.TEXTAREA;
249
+ return this.type === c.TEXTAREA;
215
250
  },
216
251
  isDefaultSize() {
217
- return this.size === m.DEFAULT;
252
+ return this.size === f.DEFAULT;
218
253
  },
219
254
  iconSize() {
220
- return z[this.size];
255
+ return M[this.size];
221
256
  },
222
257
  isValidSize() {
223
- return Object.values(m).includes(this.size);
258
+ return Object.values(f).includes(this.size);
224
259
  },
225
260
  isValidDescriptionSize() {
226
- return Object.values(b).includes(this.size);
261
+ return Object.values(E).includes(this.size);
227
262
  },
228
263
  inputComponent() {
229
264
  return this.isTextarea ? "textarea" : "input";
@@ -239,7 +274,7 @@ const j = {
239
274
  input: async (t) => {
240
275
  if (this.isComposing) return;
241
276
  let s = t.target.value;
242
- this.type === o.FILE && (s = Array.from(t.target.files).map((r) => r.name)), this.$emit("input", s), this.$emit("update:modelValue", s);
277
+ this.type === c.FILE && (s = Array.from(t.target.files).map((r) => r.name)), this.$emit("input", s), this.$emit("update:modelValue", s);
243
278
  },
244
279
  blur: (t) => {
245
280
  this.isInputFocused = !1, this.onBlur(t);
@@ -252,23 +287,23 @@ const j = {
252
287
  };
253
288
  },
254
289
  descriptionKey() {
255
- return `input-description-${A()}`;
290
+ return `input-description-${D()}`;
256
291
  },
257
292
  inputState() {
258
- return T(this.validationMessages);
293
+ return A(this.validationMessages);
259
294
  },
260
295
  defaultLengthCalculation() {
261
296
  return this.calculateLength(this.modelValue);
262
297
  },
263
298
  validationProps() {
264
- var t, s, i, r, u, e, d, l, v, C;
299
+ var t, s, i, r, u, e, d, h, n, v;
265
300
  return {
266
301
  length: {
267
302
  description: (s = (t = this == null ? void 0 : this.validate) == null ? void 0 : t.length) == null ? void 0 : s.description,
268
303
  max: (r = (i = this == null ? void 0 : this.validate) == null ? void 0 : i.length) == null ? void 0 : r.max,
269
304
  warn: (e = (u = this == null ? void 0 : this.validate) == null ? void 0 : u.length) == null ? void 0 : e.warn,
270
- message: (l = (d = this == null ? void 0 : this.validate) == null ? void 0 : d.length) == null ? void 0 : l.message,
271
- limitMaxLength: (C = (v = this == null ? void 0 : this.validate) == null ? void 0 : v.length) != null && C.limitMaxLength ? this.validate.length.limitMaxLength : !1
305
+ message: (h = (d = this == null ? void 0 : this.validate) == null ? void 0 : d.length) == null ? void 0 : h.message,
306
+ limitMaxLength: (v = (n = this == null ? void 0 : this.validate) == null ? void 0 : n.length) != null && v.limitMaxLength ? this.validate.length.limitMaxLength : !1
272
307
  }
273
308
  };
274
309
  },
@@ -282,7 +317,7 @@ const j = {
282
317
  return this.currentLength ? this.currentLength : this.defaultLengthCalculation;
283
318
  },
284
319
  inputLengthState() {
285
- return this.inputLength < this.validationProps.length.warn ? null : this.inputLength <= this.validationProps.length.max ? this.validationProps.length.warn ? L.WARNING : null : L.ERROR;
320
+ return this.inputLength < this.validationProps.length.warn ? null : this.inputLength <= this.validationProps.length.max ? this.validationProps.length.warn ? y.WARNING : null : y.ERROR;
286
321
  },
287
322
  shouldValidateLength() {
288
323
  return !!(this.validationProps.length.description && this.validationProps.length.max);
@@ -293,11 +328,20 @@ const j = {
293
328
  showLengthLimitValidation() {
294
329
  return this.shouldValidateLength && this.inputLengthState !== null && this.validationProps.length.message && (this.retainWarning || this.isInputFocused || this.isInvalid);
295
330
  },
331
+ resolvedLabelSize() {
332
+ return this.labelSize ?? (this.size === "xl" ? "lg" : this.size);
333
+ },
334
+ resolvedDescriptionSize() {
335
+ return { xs: "xs", sm: "xs", md: "sm", lg: "sm", xl: "md" }[this.size] || "sm";
336
+ },
337
+ resolvedDescriptionDensity() {
338
+ return this.size === "xl" ? "300" : void 0;
339
+ },
296
340
  sizeModifierClass() {
297
341
  return this.isDefaultSize || !this.isValidSize ? "" : V[this.inputComponent][this.size];
298
342
  },
299
343
  stateClass() {
300
- return [E[this.inputState]];
344
+ return [T[this.inputState]];
301
345
  }
302
346
  },
303
347
  watch: {
@@ -311,23 +355,20 @@ const j = {
311
355
  }
312
356
  }
313
357
  },
314
- beforeMount() {
315
- this.descriptionSizeClasses = I, this.labelSizeClasses = _;
316
- },
317
358
  mounted() {
318
- this.isTextarea && this.$refs.input && (this.$refs.input.value = this.modelValue);
359
+ this.isTextarea && this.$refs.input && (this.$refs.input.value = this.modelValue), this.runValidations();
319
360
  },
320
361
  methods: {
321
- removeClassStyleAttrs: P,
322
- addClassStyleAttrs: M,
362
+ removeClassStyleAttrs: x,
363
+ addClassStyleAttrs: P,
323
364
  inputClasses() {
324
365
  return [
325
366
  "d-input__input",
326
367
  this.inputComponent === "input" ? "d-input" : "d-textarea",
327
368
  {
328
369
  [this.stateClass]: this.showInputState,
329
- "d-input-icon--left": this.$slots.leftIcon,
330
- "d-input-icon--right": this.$slots.rightIcon
370
+ "d-input-icon--left": this.$slots.startIcon || this.$slots.leftIcon,
371
+ "d-input-icon--right": this.$slots.endIcon || this.$slots.rightIcon
331
372
  },
332
373
  this.sizeModifierClass,
333
374
  this.inputClass
@@ -373,66 +414,90 @@ const j = {
373
414
  },
374
415
  clearInput() {
375
416
  this.$refs.input.value = "", this.$refs.input.focus(), this.emitClearEvents();
417
+ },
418
+ runValidations() {
419
+ !this.label && !this.$attrs["aria-label"] && console.info(
420
+ '[Dialtone] A label is required for accessibility. Provide a label prop and use label-visible="false" to hide it visually.'
421
+ );
376
422
  }
377
423
  }
378
- }, k = ["aria-details"], F = ["id"], R = { key: 0 }, U = {
424
+ }, U = ["aria-details"], W = { key: 0 }, Z = {
379
425
  key: 1,
380
426
  "data-qa": "dt-input-length-description",
381
427
  class: "d-input__length-description"
382
- }, W = ["read-only"], Z = ["name", "disabled", "autocomplete", "maxlength"], K = ["value", "name", "type", "disabled", "autocomplete", "maxlength"];
428
+ }, K = ["read-only"], X = ["name", "disabled", "autocomplete", "maxlength", "aria-label"], G = ["value", "name", "type", "disabled", "autocomplete", "maxlength", "aria-label"];
383
429
  function Y(t, s, i, r, u, e) {
384
- const d = x("dt-validation-messages");
385
- return a(), n("div", h({
430
+ const d = C("dt-text"), h = C("dt-validation-messages");
431
+ return a(), o("div", p({
386
432
  ref: "container",
387
433
  class: [i.rootClass, "d-input__root", { "d-input--hidden": i.hidden }]
388
434
  }, e.addClassStyleAttrs(t.$attrs), { "data-qa": "dt-input" }), [
389
- p("label", {
435
+ m("label", {
390
436
  class: "d-input__label",
391
437
  "aria-details": t.$slots.description || i.description ? e.descriptionKey : void 0,
392
438
  "data-qa": "dt-input-label-wrapper"
393
439
  }, [
394
- c(t.$slots, "labelSlot", {}, () => [
395
- i.labelVisible && i.label ? (a(), n("div", {
440
+ l(t.$slots, "labelSlot", {}, () => [
441
+ i.labelVisible && i.label ? (a(), L(d, {
396
442
  key: 0,
397
443
  ref: "label",
398
444
  "data-qa": "dt-input-label",
399
- class: f([
400
- "d-input__label-text",
401
- "d-label",
402
- t.labelSizeClasses[i.size]
403
- ])
404
- }, S(i.label), 3)) : g("", !0)
445
+ kind: "label",
446
+ size: e.resolvedLabelSize,
447
+ strength: i.labelStrength,
448
+ tone: "secondary",
449
+ class: S(["d-input__label-text", i.labelClass])
450
+ }, {
451
+ default: I(() => [
452
+ z(b(i.label), 1)
453
+ ]),
454
+ _: 1
455
+ }, 8, ["size", "strength", "class"])) : g("", !0)
405
456
  ]),
406
- u.hasSlotContent(t.$slots.description) || i.description || e.shouldValidateLength ? (a(), n("div", {
457
+ u.hasSlotContent(t.$slots.description) || i.description || e.shouldValidateLength ? (a(), L(d, {
407
458
  key: 0,
408
459
  id: e.descriptionKey,
409
460
  ref: "description",
410
- class: f([
461
+ kind: "body",
462
+ size: e.resolvedDescriptionSize,
463
+ tone: "tertiary",
464
+ density: e.resolvedDescriptionDensity,
465
+ as: "div",
466
+ class: S([
411
467
  "d-input__description",
412
468
  "d-description",
413
- t.descriptionSizeClasses[i.size]
469
+ i.descriptionClass
414
470
  ]),
415
471
  "data-qa": "dt-input-description"
416
- }, [
417
- u.hasSlotContent(t.$slots.description) || i.description ? (a(), n("div", R, [
418
- c(t.$slots, "description", {}, () => [
419
- O(S(i.description), 1)
420
- ])
421
- ])) : g("", !0),
422
- e.shouldValidateLength ? (a(), n("div", U, S(e.validationProps.length.description), 1)) : g("", !0)
423
- ], 10, F)) : g("", !0),
424
- p("div", {
425
- class: f(e.inputWrapperClasses()),
472
+ }, {
473
+ default: I(() => [
474
+ u.hasSlotContent(t.$slots.description) || i.description ? (a(), o("div", W, [
475
+ l(t.$slots, "description", {}, () => [
476
+ z(b(i.description), 1)
477
+ ])
478
+ ])) : g("", !0),
479
+ e.shouldValidateLength ? (a(), o("div", Z, b(e.validationProps.length.description), 1)) : g("", !0)
480
+ ]),
481
+ _: 3
482
+ }, 8, ["id", "size", "density", "class"])) : g("", !0),
483
+ m("div", {
484
+ class: S(e.inputWrapperClasses()),
426
485
  "read-only": i.disabled === !0 ? !0 : void 0
427
486
  }, [
428
- p("span", {
487
+ m("span", {
429
488
  class: "d-input-icon d-input-icon--left",
430
489
  "data-qa": "dt-input-left-icon-wrapper",
431
- onFocusout: s[0] || (s[0] = (...l) => e.onBlur && e.onBlur(...l))
490
+ onFocusout: s[0] || (s[0] = (...n) => e.onBlur && e.onBlur(...n))
432
491
  }, [
433
- c(t.$slots, "leftIcon", { iconSize: e.iconSize })
492
+ t.$slots.startIcon ? l(t.$slots, "startIcon", {
493
+ key: 0,
494
+ iconSize: e.iconSize
495
+ }) : l(t.$slots, "leftIcon", {
496
+ key: 1,
497
+ iconSize: e.iconSize
498
+ })
434
499
  ], 32),
435
- e.isTextarea ? (a(), n("textarea", h({
500
+ e.isTextarea ? (a(), o("textarea", p({
436
501
  key: 0,
437
502
  ref: "input",
438
503
  name: i.name,
@@ -440,8 +505,9 @@ function Y(t, s, i, r, u, e) {
440
505
  autocomplete: t.$attrs.autocomplete ?? "off",
441
506
  class: e.inputClasses(),
442
507
  maxlength: e.shouldLimitMaxLength ? e.validationProps.length.max : null,
508
+ "aria-label": !i.labelVisible && i.label ? i.label : void 0,
443
509
  "data-qa": "dt-input-input"
444
- }, e.removeClassStyleAttrs(t.$attrs), y(e.inputListeners, !0)), null, 16, Z)) : (a(), n("input", h({
510
+ }, e.removeClassStyleAttrs(t.$attrs), _(e.inputListeners, !0)), null, 16, X)) : (a(), o("input", p({
445
511
  key: 1,
446
512
  ref: "input",
447
513
  value: i.modelValue,
@@ -451,29 +517,35 @@ function Y(t, s, i, r, u, e) {
451
517
  autocomplete: t.$attrs.autocomplete ?? "off",
452
518
  class: e.inputClasses(),
453
519
  maxlength: e.shouldLimitMaxLength ? e.validationProps.length.max : null,
520
+ "aria-label": !i.labelVisible && i.label ? i.label : void 0,
454
521
  "data-qa": "dt-input-input"
455
- }, e.removeClassStyleAttrs(t.$attrs), y(e.inputListeners, !0)), null, 16, K)),
456
- p("span", {
522
+ }, e.removeClassStyleAttrs(t.$attrs), _(e.inputListeners, !0)), null, 16, G)),
523
+ m("span", {
457
524
  class: "d-input-icon d-input-icon--right",
458
525
  "data-qa": "dt-input-right-icon-wrapper",
459
- onFocusout: s[1] || (s[1] = (...l) => e.onBlur && e.onBlur(...l))
526
+ onFocusout: s[1] || (s[1] = (...n) => e.onBlur && e.onBlur(...n))
460
527
  }, [
461
- c(t.$slots, "rightIcon", {
528
+ t.$slots.endIcon ? l(t.$slots, "endIcon", {
529
+ key: 0,
530
+ iconSize: e.iconSize,
531
+ clear: e.clearInput
532
+ }) : l(t.$slots, "rightIcon", {
533
+ key: 1,
462
534
  iconSize: e.iconSize,
463
535
  clear: e.clearInput
464
536
  })
465
537
  ], 32)
466
- ], 10, W)
467
- ], 8, k),
468
- B(d, h({
538
+ ], 10, K)
539
+ ], 8, U),
540
+ N(h, p({
469
541
  "validation-messages": e.validationMessages,
470
542
  "show-messages": t.showMessages,
471
543
  class: t.messagesClass
472
544
  }, t.messagesChildProps, { "data-qa": "dt-input-messages" }), null, 16, ["validation-messages", "show-messages", "class"])
473
545
  ], 16);
474
546
  }
475
- const et = /* @__PURE__ */ D(j, [["render", Y]]);
547
+ const nt = /* @__PURE__ */ k(R, [["render", Y]]);
476
548
  export {
477
- et as default
549
+ nt as default
478
550
  };
479
551
  //# sourceMappingURL=input.js.map