@dialpad/dialtone-vue 3.120.0 → 3.120.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (425) hide show
  1. package/dist/chunks/_plugin-vue_export-helper-caHeSgYY.js +11 -0
  2. package/dist/chunks/_plugin-vue_export-helper-caHeSgYY.js.map +1 -0
  3. package/dist/chunks/_plugin-vue_export-helper-fhnQq0tA.js +10 -0
  4. package/dist/chunks/_plugin-vue_export-helper-fhnQq0tA.js.map +1 -0
  5. package/dist/chunks/{dropdown-eWOvBvwq.js → dropdown-Hn-TeTvZ.js} +151 -104
  6. package/dist/chunks/{dropdown-UO3UJalk.js.map → dropdown-Hn-TeTvZ.js.map} +1 -1
  7. package/dist/chunks/dropdown-w8Do29L5.js +442 -0
  8. package/dist/chunks/{dropdown-eWOvBvwq.js.map → dropdown-w8Do29L5.js.map} +1 -1
  9. package/dist/chunks/dropdown_constants-2pGCXy7m.js +8 -0
  10. package/dist/chunks/dropdown_constants-2pGCXy7m.js.map +1 -0
  11. package/dist/chunks/dropdown_constants-w1MXGC3Z.js +9 -0
  12. package/dist/chunks/dropdown_constants-w1MXGC3Z.js.map +1 -0
  13. package/dist/chunks/{icon_constants-OpYAAKwF.js → icon_constants-Dy4MEUJL.js} +7 -6
  14. package/dist/chunks/{icon_constants-2S_OSQ1t.js.map → icon_constants-Dy4MEUJL.js.map} +1 -1
  15. package/dist/chunks/icon_constants-QYpmdE0R.js +16 -0
  16. package/dist/chunks/{icon_constants-OpYAAKwF.js.map → icon_constants-QYpmdE0R.js.map} +1 -1
  17. package/dist/chunks/index-4qgKeErp.js +446 -0
  18. package/dist/chunks/{index-b4iXYvId.js.map → index-4qgKeErp.js.map} +1 -1
  19. package/dist/chunks/index-b_MgDylR.js +447 -0
  20. package/dist/chunks/{index-6tYeqbgP.js.map → index-b_MgDylR.js.map} +1 -1
  21. package/dist/chunks/{input-4UQWegUk.js → input-NmYDD5bn.js} +83 -60
  22. package/dist/chunks/{input-0Uksk4DP.js.map → input-NmYDD5bn.js.map} +1 -1
  23. package/dist/chunks/input-ttnte8zB.js +295 -0
  24. package/dist/chunks/{input-4UQWegUk.js.map → input-ttnte8zB.js.map} +1 -1
  25. package/dist/chunks/input_group-M-D25pOJ.js +152 -0
  26. package/dist/chunks/{input_group-bBKaq3Wi.js.map → input_group-M-D25pOJ.js.map} +1 -1
  27. package/dist/chunks/{input_group-bBKaq3Wi.js → input_group-jWnq2DJT.js} +27 -24
  28. package/dist/chunks/{input_group-AS760Cp7.js.map → input_group-jWnq2DJT.js.map} +1 -1
  29. package/dist/chunks/keyboard_list_navigation-ScXhrxya.js +284 -0
  30. package/dist/chunks/{keyboard_list_navigation-N74Bpdq7.js.map → keyboard_list_navigation-ScXhrxya.js.map} +1 -1
  31. package/dist/chunks/keyboard_list_navigation-fJnl_Iox.js +283 -0
  32. package/dist/chunks/{keyboard_list_navigation-F0O8nht0.js.map → keyboard_list_navigation-fJnl_Iox.js.map} +1 -1
  33. package/dist/chunks/link_constants-Huj7D_hm.js +22 -0
  34. package/dist/chunks/{link_constants-Kn6kP4i1.js.map → link_constants-Huj7D_hm.js.map} +1 -1
  35. package/dist/chunks/link_constants-nWVlXQBs.js +23 -0
  36. package/dist/chunks/{link_constants-vIUB92L4.js.map → link_constants-nWVlXQBs.js.map} +1 -1
  37. package/dist/chunks/list_item_constants-EiqkqZvP.js +13 -0
  38. package/dist/chunks/{list_item_constants-Tsz5CO1m.js.map → list_item_constants-EiqkqZvP.js.map} +1 -1
  39. package/dist/chunks/list_item_constants-u1xcN9Dd.js +14 -0
  40. package/dist/chunks/{list_item_constants-LTUc74pD.js.map → list_item_constants-u1xcN9Dd.js.map} +1 -1
  41. package/dist/chunks/modal-VgxXAQFP.js +105 -0
  42. package/dist/chunks/{modal-qEzlo0Sj.js.map → modal-VgxXAQFP.js.map} +1 -1
  43. package/dist/chunks/modal-XOr4kiNZ.js +106 -0
  44. package/dist/chunks/{modal-VuMFkZFH.js.map → modal-XOr4kiNZ.js.map} +1 -1
  45. package/dist/chunks/notice_action-WTucGhvr.js +222 -0
  46. package/dist/chunks/{notice_action-tJfD5Qw1.js.map → notice_action-WTucGhvr.js.map} +1 -1
  47. package/dist/chunks/notice_action-p-ePanW_.js +223 -0
  48. package/dist/chunks/{notice_action-jO199emq.js.map → notice_action-p-ePanW_.js.map} +1 -1
  49. package/dist/chunks/notice_constants-7Qt2CQEY.js +7 -0
  50. package/dist/chunks/{notice_constants-mC6al2Dm.js.map → notice_constants-7Qt2CQEY.js.map} +1 -1
  51. package/dist/chunks/notice_constants-UXo9e3bS.js +6 -0
  52. package/dist/chunks/{notice_constants-c--hBFQw.js.map → notice_constants-UXo9e3bS.js.map} +1 -1
  53. package/dist/chunks/popover_constants-JwBF9h1Z.js +143 -0
  54. package/dist/chunks/{popover_constants-hOEhklvr.js.map → popover_constants-JwBF9h1Z.js.map} +1 -1
  55. package/dist/chunks/popover_constants-Qkpb0yh2.js +144 -0
  56. package/dist/chunks/{popover_constants-qjlEkroB.js.map → popover_constants-Qkpb0yh2.js.map} +1 -1
  57. package/dist/chunks/{sr_only_close_button-7O-Ev8uM.js → sr_only_close_button-3EdsV-dH.js} +28 -24
  58. package/dist/chunks/{sr_only_close_button-iD7s1Pbj.js.map → sr_only_close_button-3EdsV-dH.js.map} +1 -1
  59. package/dist/chunks/sr_only_close_button-xGrHFjwA.js +91 -0
  60. package/dist/chunks/{sr_only_close_button-7O-Ev8uM.js.map → sr_only_close_button-xGrHFjwA.js.map} +1 -1
  61. package/dist/chunks/stack_constants-HraCekPm.js +15 -0
  62. package/dist/chunks/{stack_constants-m9Ickqw0.js.map → stack_constants-HraCekPm.js.map} +1 -1
  63. package/dist/chunks/stack_constants-SMzMWnAQ.js +14 -0
  64. package/dist/chunks/{stack_constants-u7tNqGtc.js.map → stack_constants-SMzMWnAQ.js.map} +1 -1
  65. package/dist/chunks/tab-RTDgnD9-.js +391 -0
  66. package/dist/chunks/{tab-at7WWglk.js.map → tab-RTDgnD9-.js.map} +1 -1
  67. package/dist/chunks/tab-qc3f42Yp.js +390 -0
  68. package/dist/chunks/{tab-GQZFMq83.js.map → tab-qc3f42Yp.js.map} +1 -1
  69. package/dist/common/constants.cjs +60 -0
  70. package/dist/{lib → common}/constants.cjs.map +1 -1
  71. package/dist/{lib → common}/constants.js +25 -18
  72. package/dist/{lib → common}/constants.js.map +1 -1
  73. package/dist/common/dates.cjs +72 -0
  74. package/dist/{lib → common}/dates.cjs.map +1 -1
  75. package/dist/common/dates.js +72 -0
  76. package/dist/{lib → common}/dates.js.map +1 -1
  77. package/dist/common/emoji.cjs +163 -0
  78. package/dist/common/emoji.cjs.map +1 -0
  79. package/dist/common/emoji.js +168 -0
  80. package/dist/common/emoji.js.map +1 -0
  81. package/dist/common/mixins.cjs +17 -0
  82. package/dist/{lib → common}/mixins.cjs.map +1 -1
  83. package/dist/common/mixins.js +17 -0
  84. package/dist/common/utils.cjs +243 -0
  85. package/dist/{lib → common}/utils.cjs.map +1 -1
  86. package/dist/common/utils.js +243 -0
  87. package/dist/{lib → common}/utils.js.map +1 -1
  88. package/dist/common/validators.cjs +23 -0
  89. package/dist/{lib → common}/validators.cjs.map +1 -1
  90. package/dist/common/validators.js +23 -0
  91. package/dist/{lib → common}/validators.js.map +1 -1
  92. package/dist/dialtone-vue.cjs +373 -1
  93. package/dist/dialtone-vue.cjs.map +1 -1
  94. package/dist/dialtone-vue.js +328 -327
  95. package/dist/dialtone-vue.js.map +1 -1
  96. package/dist/lib/attachment-carousel.cjs +345 -1
  97. package/dist/lib/attachment-carousel.cjs.map +1 -1
  98. package/dist/lib/attachment-carousel.js +126 -108
  99. package/dist/lib/attachment-carousel.js.map +1 -1
  100. package/dist/lib/avatar.cjs +447 -1
  101. package/dist/lib/avatar.cjs.map +1 -1
  102. package/dist/lib/avatar.js +135 -101
  103. package/dist/lib/avatar.js.map +1 -1
  104. package/dist/lib/badge.cjs +206 -1
  105. package/dist/lib/badge.cjs.map +1 -1
  106. package/dist/lib/badge.js +64 -48
  107. package/dist/lib/badge.js.map +1 -1
  108. package/dist/lib/banner.cjs +242 -2
  109. package/dist/lib/banner.cjs.map +1 -1
  110. package/dist/lib/banner.js +81 -71
  111. package/dist/lib/banner.js.map +1 -1
  112. package/dist/lib/breadcrumbs.cjs +150 -1
  113. package/dist/lib/breadcrumbs.cjs.map +1 -1
  114. package/dist/lib/breadcrumbs.js +60 -52
  115. package/dist/lib/breadcrumbs.js.map +1 -1
  116. package/dist/lib/button-group.cjs +41 -1
  117. package/dist/lib/button-group.cjs.map +1 -1
  118. package/dist/lib/button-group.js +15 -14
  119. package/dist/lib/button-group.js.map +1 -1
  120. package/dist/lib/button.cjs +356 -1
  121. package/dist/lib/button.cjs.map +1 -1
  122. package/dist/lib/button.js +108 -88
  123. package/dist/lib/button.js.map +1 -1
  124. package/dist/lib/callbar-button-with-popover.cjs +322 -1
  125. package/dist/lib/callbar-button-with-popover.cjs.map +1 -1
  126. package/dist/lib/callbar-button-with-popover.js +101 -83
  127. package/dist/lib/callbar-button-with-popover.js.map +1 -1
  128. package/dist/lib/callbar-button.cjs +200 -1
  129. package/dist/lib/callbar-button.cjs.map +1 -1
  130. package/dist/lib/callbar-button.js +52 -45
  131. package/dist/lib/callbar-button.js.map +1 -1
  132. package/dist/lib/callbox.cjs +217 -1
  133. package/dist/lib/callbox.cjs.map +1 -1
  134. package/dist/lib/callbox.js +80 -67
  135. package/dist/lib/callbox.js.map +1 -1
  136. package/dist/lib/card.cjs +91 -1
  137. package/dist/lib/card.cjs.map +1 -1
  138. package/dist/lib/card.js +27 -27
  139. package/dist/lib/card.js.map +1 -1
  140. package/dist/lib/checkbox-group.cjs +115 -1
  141. package/dist/lib/checkbox-group.cjs.map +1 -1
  142. package/dist/lib/checkbox-group.js +34 -23
  143. package/dist/lib/checkbox-group.js.map +1 -1
  144. package/dist/lib/checkbox.cjs +156 -1
  145. package/dist/lib/checkbox.cjs.map +1 -1
  146. package/dist/lib/checkbox.js +72 -60
  147. package/dist/lib/checkbox.js.map +1 -1
  148. package/dist/lib/chip.cjs +235 -1
  149. package/dist/lib/chip.cjs.map +1 -1
  150. package/dist/lib/chip.js +84 -67
  151. package/dist/lib/chip.js.map +1 -1
  152. package/dist/lib/codeblock.cjs +23 -2
  153. package/dist/lib/codeblock.cjs.map +1 -1
  154. package/dist/lib/codeblock.js +13 -13
  155. package/dist/lib/codeblock.js.map +1 -1
  156. package/dist/lib/collapsible.cjs +398 -1
  157. package/dist/lib/collapsible.cjs.map +1 -1
  158. package/dist/lib/collapsible.js +123 -100
  159. package/dist/lib/collapsible.js.map +1 -1
  160. package/dist/lib/combobox-multi-select.cjs +589 -1
  161. package/dist/lib/combobox-multi-select.cjs.map +1 -1
  162. package/dist/lib/combobox-multi-select.js +270 -177
  163. package/dist/lib/combobox-multi-select.js.map +1 -1
  164. package/dist/lib/combobox-with-popover.cjs +452 -1
  165. package/dist/lib/combobox-with-popover.cjs.map +1 -1
  166. package/dist/lib/combobox-with-popover.js +172 -127
  167. package/dist/lib/combobox-with-popover.js.map +1 -1
  168. package/dist/lib/combobox.cjs +18 -1
  169. package/dist/lib/combobox.cjs.map +1 -1
  170. package/dist/lib/combobox.js +9 -9
  171. package/dist/lib/contact-info.cjs +205 -1
  172. package/dist/lib/contact-info.cjs.map +1 -1
  173. package/dist/lib/contact-info.js +69 -60
  174. package/dist/lib/contact-info.js.map +1 -1
  175. package/dist/lib/contact-row.cjs +246 -1
  176. package/dist/lib/contact-row.cjs.map +1 -1
  177. package/dist/lib/contact-row.js +67 -63
  178. package/dist/lib/contact-row.js.map +1 -1
  179. package/dist/lib/datepicker.cjs +854 -1
  180. package/dist/lib/datepicker.cjs.map +1 -1
  181. package/dist/lib/datepicker.js +585 -441
  182. package/dist/lib/datepicker.js.map +1 -1
  183. package/dist/lib/description-list.cjs +116 -1
  184. package/dist/lib/description-list.cjs.map +1 -1
  185. package/dist/lib/description-list.js +56 -24
  186. package/dist/lib/description-list.js.map +1 -1
  187. package/dist/lib/dropdown.cjs +36 -1
  188. package/dist/lib/dropdown.cjs.map +1 -1
  189. package/dist/lib/dropdown.js +22 -21
  190. package/dist/lib/dropdown.js.map +1 -1
  191. package/dist/lib/editor.cjs +711 -1
  192. package/dist/lib/editor.cjs.map +1 -1
  193. package/dist/lib/editor.js +271 -235
  194. package/dist/lib/editor.js.map +1 -1
  195. package/dist/lib/emoji-picker.cjs +1277 -1
  196. package/dist/lib/emoji-picker.cjs.map +1 -1
  197. package/dist/lib/emoji-picker.js +859 -569
  198. package/dist/lib/emoji-picker.js.map +1 -1
  199. package/dist/lib/emoji-row.cjs +128 -1
  200. package/dist/lib/emoji-row.cjs.map +1 -1
  201. package/dist/lib/emoji-row.js +89 -75
  202. package/dist/lib/emoji-row.js.map +1 -1
  203. package/dist/lib/emoji-text-wrapper.cjs +102 -1
  204. package/dist/lib/emoji-text-wrapper.cjs.map +1 -1
  205. package/dist/lib/emoji-text-wrapper.js +42 -31
  206. package/dist/lib/emoji-text-wrapper.js.map +1 -1
  207. package/dist/lib/emoji.cjs +158 -1
  208. package/dist/lib/emoji.cjs.map +1 -1
  209. package/dist/lib/emoji.js +153 -6
  210. package/dist/lib/emoji.js.map +1 -1
  211. package/dist/lib/feed-item-row.cjs +296 -1
  212. package/dist/lib/feed-item-row.cjs.map +1 -1
  213. package/dist/lib/feed-item-row.js +119 -100
  214. package/dist/lib/feed-item-row.js.map +1 -1
  215. package/dist/lib/feed-pill.cjs +173 -1
  216. package/dist/lib/feed-pill.cjs.map +1 -1
  217. package/dist/lib/feed-pill.js +70 -57
  218. package/dist/lib/feed-pill.js.map +1 -1
  219. package/dist/lib/general-row.cjs +518 -1
  220. package/dist/lib/general-row.cjs.map +1 -1
  221. package/dist/lib/general-row.js +186 -148
  222. package/dist/lib/general-row.js.map +1 -1
  223. package/dist/lib/group-row.cjs +116 -1
  224. package/dist/lib/group-row.cjs.map +1 -1
  225. package/dist/lib/group-row.js +37 -35
  226. package/dist/lib/group-row.js.map +1 -1
  227. package/dist/lib/grouped-chip.cjs +96 -1
  228. package/dist/lib/grouped-chip.cjs.map +1 -1
  229. package/dist/lib/grouped-chip.js +51 -46
  230. package/dist/lib/grouped-chip.js.map +1 -1
  231. package/dist/lib/hovercard.cjs +223 -1
  232. package/dist/lib/hovercard.cjs.map +1 -1
  233. package/dist/lib/hovercard.js +115 -80
  234. package/dist/lib/hovercard.js.map +1 -1
  235. package/dist/lib/icon.cjs +58 -1
  236. package/dist/lib/icon.cjs.map +1 -1
  237. package/dist/lib/icon.js +20 -20
  238. package/dist/lib/icon.js.map +1 -1
  239. package/dist/lib/image-viewer.cjs +243 -1
  240. package/dist/lib/image-viewer.cjs.map +1 -1
  241. package/dist/lib/image-viewer.js +104 -80
  242. package/dist/lib/image-viewer.js.map +1 -1
  243. package/dist/lib/input-group.cjs +91 -1
  244. package/dist/lib/input-group.cjs.map +1 -1
  245. package/dist/lib/input-group.js +41 -39
  246. package/dist/lib/input-group.js.map +1 -1
  247. package/dist/lib/input.cjs +578 -1
  248. package/dist/lib/input.cjs.map +1 -1
  249. package/dist/lib/input.js +185 -137
  250. package/dist/lib/input.js.map +1 -1
  251. package/dist/lib/item-layout.cjs +91 -1
  252. package/dist/lib/item-layout.cjs.map +1 -1
  253. package/dist/lib/item-layout.js +45 -39
  254. package/dist/lib/item-layout.js.map +1 -1
  255. package/dist/lib/ivr-node.cjs +263 -1
  256. package/dist/lib/ivr-node.cjs.map +1 -1
  257. package/dist/lib/ivr-node.js +130 -112
  258. package/dist/lib/ivr-node.js.map +1 -1
  259. package/dist/lib/keyboard-shortcut.cjs +119 -1
  260. package/dist/lib/keyboard-shortcut.cjs.map +1 -1
  261. package/dist/lib/keyboard-shortcut.js +58 -48
  262. package/dist/lib/keyboard-shortcut.js.map +1 -1
  263. package/dist/lib/lazy-show.cjs +82 -1
  264. package/dist/lib/lazy-show.cjs.map +1 -1
  265. package/dist/lib/lazy-show.js +21 -19
  266. package/dist/lib/lazy-show.js.map +1 -1
  267. package/dist/lib/link.cjs +43 -1
  268. package/dist/lib/link.cjs.map +1 -1
  269. package/dist/lib/link.js +20 -19
  270. package/dist/lib/link.js.map +1 -1
  271. package/dist/lib/list-item-group.cjs +67 -1
  272. package/dist/lib/list-item-group.cjs.map +1 -1
  273. package/dist/lib/list-item-group.js +24 -22
  274. package/dist/lib/list-item-group.js.map +1 -1
  275. package/dist/lib/list-item.cjs +216 -1
  276. package/dist/lib/list-item.cjs.map +1 -1
  277. package/dist/lib/list-item.js +71 -60
  278. package/dist/lib/list-item.js.map +1 -1
  279. package/dist/lib/message-input.cjs +708 -1
  280. package/dist/lib/message-input.cjs.map +1 -1
  281. package/dist/lib/message-input.js +232 -206
  282. package/dist/lib/message-input.js.map +1 -1
  283. package/dist/lib/modal.cjs +444 -2
  284. package/dist/lib/modal.cjs.map +1 -1
  285. package/dist/lib/modal.js +153 -120
  286. package/dist/lib/modal.js.map +1 -1
  287. package/dist/lib/notice.cjs +197 -1
  288. package/dist/lib/notice.cjs.map +1 -1
  289. package/dist/lib/notice.js +66 -63
  290. package/dist/lib/notice.js.map +1 -1
  291. package/dist/lib/pagination.cjs +205 -1
  292. package/dist/lib/pagination.cjs.map +1 -1
  293. package/dist/lib/pagination.js +96 -81
  294. package/dist/lib/pagination.js.map +1 -1
  295. package/dist/lib/popover.cjs +1080 -1
  296. package/dist/lib/popover.cjs.map +1 -1
  297. package/dist/lib/popover.js +447 -267
  298. package/dist/lib/popover.js.map +1 -1
  299. package/dist/lib/presence.cjs +70 -1
  300. package/dist/lib/presence.cjs.map +1 -1
  301. package/dist/lib/presence.js +33 -27
  302. package/dist/lib/presence.js.map +1 -1
  303. package/dist/lib/radio-group.cjs +88 -1
  304. package/dist/lib/radio-group.cjs.map +1 -1
  305. package/dist/lib/radio-group.js +18 -18
  306. package/dist/lib/radio-group.js.map +1 -1
  307. package/dist/lib/radio.cjs +162 -1
  308. package/dist/lib/radio.cjs.map +1 -1
  309. package/dist/lib/radio.js +66 -57
  310. package/dist/lib/radio.js.map +1 -1
  311. package/dist/lib/rich-text-editor.cjs +1137 -1
  312. package/dist/lib/rich-text-editor.cjs.map +1 -1
  313. package/dist/lib/rich-text-editor.js +567 -386
  314. package/dist/lib/rich-text-editor.js.map +1 -1
  315. package/dist/lib/root-layout.cjs +158 -1
  316. package/dist/lib/root-layout.cjs.map +1 -1
  317. package/dist/lib/root-layout.js +33 -31
  318. package/dist/lib/root-layout.js.map +1 -1
  319. package/dist/lib/scroller.cjs +1090 -1
  320. package/dist/lib/scroller.cjs.map +1 -1
  321. package/dist/lib/scroller.js +668 -345
  322. package/dist/lib/scroller.js.map +1 -1
  323. package/dist/lib/select-menu.cjs +312 -1
  324. package/dist/lib/select-menu.cjs.map +1 -1
  325. package/dist/lib/select-menu.js +124 -79
  326. package/dist/lib/select-menu.js.map +1 -1
  327. package/dist/lib/settings-menu-button.cjs +77 -1
  328. package/dist/lib/settings-menu-button.cjs.map +1 -1
  329. package/dist/lib/settings-menu-button.js +31 -30
  330. package/dist/lib/settings-menu-button.js.map +1 -1
  331. package/dist/lib/skeleton.cjs +635 -1
  332. package/dist/lib/skeleton.cjs.map +1 -1
  333. package/dist/lib/skeleton.js +189 -152
  334. package/dist/lib/skeleton.js.map +1 -1
  335. package/dist/lib/stack.cjs +123 -1
  336. package/dist/lib/stack.cjs.map +1 -1
  337. package/dist/lib/stack.js +61 -53
  338. package/dist/lib/stack.js.map +1 -1
  339. package/dist/lib/tabs.cjs +102 -1
  340. package/dist/lib/tabs.cjs.map +1 -1
  341. package/dist/lib/tabs.js +47 -41
  342. package/dist/lib/tabs.js.map +1 -1
  343. package/dist/lib/time-pill.cjs +41 -1
  344. package/dist/lib/time-pill.cjs.map +1 -1
  345. package/dist/lib/time-pill.js +18 -14
  346. package/dist/lib/time-pill.js.map +1 -1
  347. package/dist/lib/toast.cjs +281 -1
  348. package/dist/lib/toast.cjs.map +1 -1
  349. package/dist/lib/toast.js +96 -74
  350. package/dist/lib/toast.js.map +1 -1
  351. package/dist/lib/toggle.cjs +192 -1
  352. package/dist/lib/toggle.cjs.map +1 -1
  353. package/dist/lib/toggle.js +60 -49
  354. package/dist/lib/toggle.js.map +1 -1
  355. package/dist/lib/tooltip-directive.cjs +84 -1
  356. package/dist/lib/tooltip-directive.cjs.map +1 -1
  357. package/dist/lib/tooltip-directive.js +56 -42
  358. package/dist/lib/tooltip-directive.js.map +1 -1
  359. package/dist/lib/tooltip.cjs +460 -1
  360. package/dist/lib/tooltip.cjs.map +1 -1
  361. package/dist/lib/tooltip.js +162 -103
  362. package/dist/lib/tooltip.js.map +1 -1
  363. package/dist/lib/top-banner-info.cjs +71 -1
  364. package/dist/lib/top-banner-info.cjs.map +1 -1
  365. package/dist/lib/top-banner-info.js +27 -22
  366. package/dist/lib/top-banner-info.js.map +1 -1
  367. package/dist/lib/unread-pill.cjs +73 -1
  368. package/dist/lib/unread-pill.cjs.map +1 -1
  369. package/dist/lib/unread-pill.js +28 -25
  370. package/dist/lib/unread-pill.js.map +1 -1
  371. package/dist/lib/validation-messages.cjs +89 -1
  372. package/dist/lib/validation-messages.cjs.map +1 -1
  373. package/dist/lib/validation-messages.js +41 -36
  374. package/dist/lib/validation-messages.js.map +1 -1
  375. package/dist/style.css +1257 -1
  376. package/dist/types/components/rich_text_editor/extensions/emoji/EmojiComponent.vue.d.ts +2 -2
  377. package/dist/types/components/rich_text_editor/extensions/mentions/MentionComponent.vue.d.ts +2 -2
  378. package/package.json +30 -29
  379. package/dist/chunks/_plugin-vue_export-helper-6_y-gaV6.js +0 -2
  380. package/dist/chunks/_plugin-vue_export-helper-6_y-gaV6.js.map +0 -1
  381. package/dist/chunks/_plugin-vue_export-helper-hUChTQA_.js +0 -10
  382. package/dist/chunks/_plugin-vue_export-helper-hUChTQA_.js.map +0 -1
  383. package/dist/chunks/dropdown-UO3UJalk.js +0 -2
  384. package/dist/chunks/dropdown_constants-EUcDxBrX.js +0 -9
  385. package/dist/chunks/dropdown_constants-EUcDxBrX.js.map +0 -1
  386. package/dist/chunks/dropdown_constants-KHFvVI2L.js +0 -2
  387. package/dist/chunks/dropdown_constants-KHFvVI2L.js.map +0 -1
  388. package/dist/chunks/icon_constants-2S_OSQ1t.js +0 -2
  389. package/dist/chunks/index-6tYeqbgP.js +0 -3
  390. package/dist/chunks/index-IBtQ5jRJ.js +0 -2
  391. package/dist/chunks/index-IBtQ5jRJ.js.map +0 -1
  392. package/dist/chunks/index-b4iXYvId.js +0 -399
  393. package/dist/chunks/index-mRmwpCBG.js +0 -256
  394. package/dist/chunks/index-mRmwpCBG.js.map +0 -1
  395. package/dist/chunks/input-0Uksk4DP.js +0 -2
  396. package/dist/chunks/input_group-AS760Cp7.js +0 -2
  397. package/dist/chunks/keyboard_list_navigation-F0O8nht0.js +0 -197
  398. package/dist/chunks/keyboard_list_navigation-N74Bpdq7.js +0 -2
  399. package/dist/chunks/link_constants-Kn6kP4i1.js +0 -2
  400. package/dist/chunks/link_constants-vIUB92L4.js +0 -16
  401. package/dist/chunks/list_item_constants-LTUc74pD.js +0 -13
  402. package/dist/chunks/list_item_constants-Tsz5CO1m.js +0 -2
  403. package/dist/chunks/modal-VuMFkZFH.js +0 -82
  404. package/dist/chunks/modal-qEzlo0Sj.js +0 -2
  405. package/dist/chunks/notice_action-jO199emq.js +0 -2
  406. package/dist/chunks/notice_action-tJfD5Qw1.js +0 -209
  407. package/dist/chunks/notice_constants-c--hBFQw.js +0 -6
  408. package/dist/chunks/notice_constants-mC6al2Dm.js +0 -2
  409. package/dist/chunks/popover_constants-hOEhklvr.js +0 -2
  410. package/dist/chunks/popover_constants-qjlEkroB.js +0 -114
  411. package/dist/chunks/sr_only_close_button-iD7s1Pbj.js +0 -3
  412. package/dist/chunks/stack_constants-m9Ickqw0.js +0 -2
  413. package/dist/chunks/stack_constants-u7tNqGtc.js +0 -13
  414. package/dist/chunks/tab-GQZFMq83.js +0 -367
  415. package/dist/chunks/tab-at7WWglk.js +0 -2
  416. package/dist/lib/constants.cjs +0 -2
  417. package/dist/lib/dates.cjs +0 -2
  418. package/dist/lib/dates.js +0 -57
  419. package/dist/lib/mixins.cjs +0 -2
  420. package/dist/lib/mixins.js +0 -17
  421. package/dist/lib/utils.cjs +0 -2
  422. package/dist/lib/utils.js +0 -171
  423. package/dist/lib/validators.cjs +0 -2
  424. package/dist/lib/validators.js +0 -12
  425. /package/dist/{lib → common}/mixins.js.map +0 -0
@@ -1,2 +1,159 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../chunks/index-IBtQ5jRJ.js");require("emoji-regex");require("@dialpad/dialtone-emojis");require("vue");require("../chunks/_plugin-vue_export-helper-6_y-gaV6.js");require("./skeleton.cjs");require("../chunks/icon_constants-2S_OSQ1t.js");require("@dialpad/dialtone-icons/icons.json");exports.DtEmoji=e.D;
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const common_emoji = require("../common/emoji.cjs");
4
+ const vue = require("vue");
5
+ const _pluginVue_exportHelper = require("../chunks/_plugin-vue_export-helper-fhnQq0tA.js");
6
+ const lib_skeleton = require("./skeleton.cjs");
7
+ const icon_constants = require("../chunks/icon_constants-QYpmdE0R.js");
8
+ require("emoji-regex");
9
+ require("@dialpad/dialtone-emojis");
10
+ require("@dialpad/dialtone-icons/icons.json");
11
+ const _sfc_main = {
12
+ name: "DtEmoji",
13
+ components: {
14
+ DtSkeleton: lib_skeleton.DtSkeleton
15
+ },
16
+ props: {
17
+ /**
18
+ * Supports shortcode ex: :smile: or unicode ex: 😄. Will display the resulting emoji.
19
+ * <a class="d-link" href="https://emojipedia.org/joypixels/" target="_blank">JoyPixels</a>
20
+ * for all supported shortcode/unicode or the docs for setting up custom emojis.
21
+ */
22
+ code: {
23
+ type: String,
24
+ required: true
25
+ },
26
+ /**
27
+ * The size of the emoji. Can be any of the icon size utility classes from
28
+ * <a class="d-link" href="https://dialtone.dialpad.com/components/icon.html" target="_blank"> Dialpad Icon Size</a>
29
+ * @values 100, 200, 300, 400, 500, 600, 700, 800
30
+ */
31
+ size: {
32
+ type: String,
33
+ default: "500",
34
+ validator: (t) => Object.keys(icon_constants.ICON_SIZE_MODIFIERS).includes(t)
35
+ },
36
+ /**
37
+ * Additional class name for the emoji img element.
38
+ * Can accept String, Object, and Array, i.e. has the
39
+ * same API as Vue's built-in handling of the class attribute.
40
+ */
41
+ imgClass: {
42
+ type: [String, Object, Array],
43
+ default: ""
44
+ },
45
+ /**
46
+ * Will be read out on a screen reader for this emoji. You must use this prop if you want your emoji to be i18n
47
+ * Compatible as Dialtone Vue will not translate it by itself. If you do not set this prop the aria-label will
48
+ * be set to the english description of the emoji. You can retrieve the description for an emoji yourself via the
49
+ * getEmojiData() function
50
+ */
51
+ ariaLabel: {
52
+ type: String,
53
+ default: null
54
+ },
55
+ /**
56
+ * Shows a skeleton loader while the emoji asset is loading.
57
+ * @values true, false
58
+ */
59
+ showSkeleton: {
60
+ type: Boolean,
61
+ default: true
62
+ }
63
+ },
64
+ data() {
65
+ return {
66
+ emojiData: null,
67
+ imgLoading: false
68
+ };
69
+ },
70
+ computed: {
71
+ emojiDataValid() {
72
+ return !!this.emojiData;
73
+ },
74
+ emojiSrc() {
75
+ var _a;
76
+ if (!this.emojiDataValid) {
77
+ return "invalid";
78
+ }
79
+ if ((_a = this.emojiData) == null ? void 0 : _a.custom) {
80
+ return common_emoji.customEmojiAssetUrl + this.emojiData.key + this.emojiData.extension;
81
+ }
82
+ if (["100", "200"].includes(this.size)) {
83
+ return common_emoji.emojiImageUrlSmall + this.emojiData.key + common_emoji.emojiFileExtensionSmall;
84
+ } else {
85
+ return common_emoji.emojiImageUrlLarge + this.emojiData.key + common_emoji.emojiFileExtensionLarge;
86
+ }
87
+ },
88
+ emojiAlt() {
89
+ if (!this.emojiDataValid) {
90
+ return void 0;
91
+ }
92
+ return this.emojiData.unicode_output ? common_emoji.stringToUnicode(this.emojiData.unicode_output) : this.emojiData.name;
93
+ },
94
+ emojiLabel() {
95
+ if (!this.emojiDataValid) {
96
+ return "Invalid Emoji";
97
+ }
98
+ return this.ariaLabel ? this.ariaLabel : this.emojiData.name;
99
+ },
100
+ emojiSize() {
101
+ return icon_constants.ICON_SIZE_MODIFIERS[this.size];
102
+ }
103
+ },
104
+ watch: {
105
+ code: {
106
+ handler: function() {
107
+ this.getEmojiData();
108
+ },
109
+ immediate: true
110
+ },
111
+ emojiSrc: {
112
+ handler: async function() {
113
+ this.imgLoading = true;
114
+ },
115
+ immediate: true
116
+ }
117
+ },
118
+ methods: {
119
+ getEmojiData() {
120
+ this.emojiData = common_emoji.codeToEmojiData(this.code);
121
+ },
122
+ imageLoaded() {
123
+ this.imgLoading = false;
124
+ },
125
+ imageErrored() {
126
+ this.imgLoading = false;
127
+ }
128
+ }
129
+ };
130
+ const _hoisted_1 = ["aria-label", "alt", "title", "src"];
131
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
132
+ const _component_dt_skeleton = vue.resolveComponent("dt-skeleton");
133
+ return vue.openBlock(), vue.createElementBlock("span", {
134
+ class: vue.normalizeClass(["d-emoji", "d-icon", $options.emojiSize])
135
+ }, [
136
+ vue.withDirectives(vue.createVNode(_component_dt_skeleton, {
137
+ offset: 0,
138
+ class: vue.normalizeClass(["d-icon", $options.emojiSize]),
139
+ "shape-option": { shape: "circle", size: "100%" }
140
+ }, null, 8, ["class"]), [
141
+ [vue.vShow, $data.imgLoading && $props.showSkeleton]
142
+ ]),
143
+ vue.withDirectives(vue.createElementVNode("img", {
144
+ ref: "emojiImg",
145
+ class: vue.normalizeClass(["d-icon", $options.emojiSize, $props.imgClass]),
146
+ "aria-label": $options.emojiLabel,
147
+ alt: $options.emojiAlt,
148
+ title: $options.emojiLabel,
149
+ src: $options.emojiSrc,
150
+ onLoad: _cache[0] || (_cache[0] = (...args) => $options.imageLoaded && $options.imageLoaded(...args)),
151
+ onError: _cache[1] || (_cache[1] = (...args) => $options.imageErrored && $options.imageErrored(...args))
152
+ }, null, 42, _hoisted_1), [
153
+ [vue.vShow, !$data.imgLoading]
154
+ ])
155
+ ], 2);
156
+ }
157
+ const DtEmoji = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["render", _sfc_render]]);
158
+ exports.DtEmoji = DtEmoji;
2
159
  //# sourceMappingURL=emoji.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"emoji.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"emoji.cjs","sources":["../../components/emoji/emoji.vue"],"sourcesContent":["<template>\n <span :class=\"['d-emoji', 'd-icon', emojiSize]\">\n <dt-skeleton\n v-show=\"imgLoading && showSkeleton\"\n :offset=\"0\"\n :class=\"['d-icon', emojiSize]\"\n :shape-option=\"{ shape: 'circle', size: '100%' }\"\n />\n <img\n v-show=\"!imgLoading\"\n ref=\"emojiImg\"\n :class=\"['d-icon', emojiSize, imgClass]\"\n :aria-label=\"emojiLabel\"\n :alt=\"emojiAlt\"\n :title=\"emojiLabel\"\n :src=\"emojiSrc\"\n @load=\"imageLoaded\"\n @error=\"imageErrored\"\n >\n </span>\n</template>\n\n<script>\nimport { ICON_SIZE_MODIFIERS } from '@/components/icon';\nimport {\n codeToEmojiData,\n stringToUnicode,\n emojiImageUrlSmall,\n emojiFileExtensionSmall,\n emojiImageUrlLarge,\n emojiFileExtensionLarge,\n customEmojiAssetUrl,\n} from '@/common/emoji';\nimport { DtSkeleton } from '@/components/skeleton';\n\n/**\n * Renders an emoji from a shortcode such as :smile: or unicode character such as 😄\n * @see https://dialtone.dialpad.com/components/emoji.html\n */\nexport default {\n name: 'DtEmoji',\n\n components: {\n DtSkeleton,\n },\n\n props: {\n /**\n * Supports shortcode ex: :smile: or unicode ex: 😄. Will display the resulting emoji.\n * <a class=\"d-link\" href=\"https://emojipedia.org/joypixels/\" target=\"_blank\">JoyPixels</a>\n * for all supported shortcode/unicode or the docs for setting up custom emojis.\n */\n code: {\n type: String,\n required: true,\n },\n\n /**\n * The size of the emoji. Can be any of the icon size utility classes from\n * <a class=\"d-link\" href=\"https://dialtone.dialpad.com/components/icon.html\" target=\"_blank\"> Dialpad Icon Size</a>\n * @values 100, 200, 300, 400, 500, 600, 700, 800\n */\n size: {\n type: String,\n default: '500',\n validator: (t) => Object.keys(ICON_SIZE_MODIFIERS).includes(t),\n },\n\n /**\n * Additional class name for the emoji img 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 imgClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Will be read out on a screen reader for this emoji. You must use this prop if you want your emoji to be i18n\n * Compatible as Dialtone Vue will not translate it by itself. If you do not set this prop the aria-label will\n * be set to the english description of the emoji. You can retrieve the description for an emoji yourself via the\n * getEmojiData() function\n */\n ariaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * Shows a skeleton loader while the emoji asset is loading.\n * @values true, false\n */\n showSkeleton: {\n type: Boolean,\n default: true,\n },\n },\n\n data () {\n return {\n emojiData: null,\n imgLoading: false,\n };\n },\n\n computed: {\n emojiDataValid () {\n return !!this.emojiData;\n },\n\n emojiSrc () {\n if (!this.emojiDataValid) { return 'invalid'; }\n\n // custom emoji\n if (this.emojiData?.custom) {\n return customEmojiAssetUrl + this.emojiData.key + this.emojiData.extension;\n }\n\n if (['100', '200'].includes(this.size)) {\n return emojiImageUrlSmall + this.emojiData.key + emojiFileExtensionSmall;\n } else {\n return emojiImageUrlLarge + this.emojiData.key + emojiFileExtensionLarge;\n }\n },\n\n emojiAlt () {\n if (!this.emojiDataValid) { return undefined; }\n return this.emojiData.unicode_output ? stringToUnicode(this.emojiData.unicode_output) : this.emojiData.name;\n },\n\n emojiLabel () {\n if (!this.emojiDataValid) { return 'Invalid Emoji'; }\n return this.ariaLabel ? this.ariaLabel : this.emojiData.name;\n },\n\n emojiSize () {\n return ICON_SIZE_MODIFIERS[this.size];\n },\n },\n\n watch: {\n code: {\n handler: function () {\n this.getEmojiData();\n },\n\n immediate: true,\n },\n\n emojiSrc: {\n handler: async function () {\n this.imgLoading = true;\n },\n\n immediate: true,\n },\n },\n\n methods: {\n getEmojiData () {\n this.emojiData = codeToEmojiData(this.code);\n },\n\n imageLoaded () {\n this.imgLoading = false;\n },\n\n imageErrored () {\n this.imgLoading = false;\n },\n },\n};\n</script>\n"],"names":["DtSkeleton","ICON_SIZE_MODIFIERS","customEmojiAssetUrl","emojiImageUrlSmall","emojiFileExtensionSmall","emojiImageUrlLarge","emojiFileExtensionLarge","stringToUnicode","codeToEmojiData","_createElementBlock","_createVNode","_vShow","_createElementVNode","_normalizeClass"],"mappings":"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"}
package/dist/lib/emoji.js CHANGED
@@ -1,12 +1,159 @@
1
- import { D as f } from "../chunks/index-mRmwpCBG.js";
1
+ import { customEmojiAssetUrl, emojiImageUrlSmall, emojiFileExtensionSmall, emojiImageUrlLarge, emojiFileExtensionLarge, stringToUnicode, codeToEmojiData } from "../common/emoji.js";
2
+ import { resolveComponent, openBlock, createElementBlock, normalizeClass, withDirectives, createVNode, vShow, createElementVNode } from "vue";
3
+ import { _export_sfc } from "../chunks/_plugin-vue_export-helper-caHeSgYY.js";
4
+ import { DtSkeleton } from "./skeleton.js";
5
+ import { ICON_SIZE_MODIFIERS } from "../chunks/icon_constants-Dy4MEUJL.js";
2
6
  import "emoji-regex";
3
7
  import "@dialpad/dialtone-emojis";
4
- import "vue";
5
- import "../chunks/_plugin-vue_export-helper-hUChTQA_.js";
6
- import "./skeleton.js";
7
- import "../chunks/icon_constants-OpYAAKwF.js";
8
8
  import "@dialpad/dialtone-icons/icons.json";
9
+ const _sfc_main = {
10
+ name: "DtEmoji",
11
+ components: {
12
+ DtSkeleton
13
+ },
14
+ props: {
15
+ /**
16
+ * Supports shortcode ex: :smile: or unicode ex: 😄. Will display the resulting emoji.
17
+ * <a class="d-link" href="https://emojipedia.org/joypixels/" target="_blank">JoyPixels</a>
18
+ * for all supported shortcode/unicode or the docs for setting up custom emojis.
19
+ */
20
+ code: {
21
+ type: String,
22
+ required: true
23
+ },
24
+ /**
25
+ * The size of the emoji. Can be any of the icon size utility classes from
26
+ * <a class="d-link" href="https://dialtone.dialpad.com/components/icon.html" target="_blank"> Dialpad Icon Size</a>
27
+ * @values 100, 200, 300, 400, 500, 600, 700, 800
28
+ */
29
+ size: {
30
+ type: String,
31
+ default: "500",
32
+ validator: (t) => Object.keys(ICON_SIZE_MODIFIERS).includes(t)
33
+ },
34
+ /**
35
+ * Additional class name for the emoji img element.
36
+ * Can accept String, Object, and Array, i.e. has the
37
+ * same API as Vue's built-in handling of the class attribute.
38
+ */
39
+ imgClass: {
40
+ type: [String, Object, Array],
41
+ default: ""
42
+ },
43
+ /**
44
+ * Will be read out on a screen reader for this emoji. You must use this prop if you want your emoji to be i18n
45
+ * Compatible as Dialtone Vue will not translate it by itself. If you do not set this prop the aria-label will
46
+ * be set to the english description of the emoji. You can retrieve the description for an emoji yourself via the
47
+ * getEmojiData() function
48
+ */
49
+ ariaLabel: {
50
+ type: String,
51
+ default: null
52
+ },
53
+ /**
54
+ * Shows a skeleton loader while the emoji asset is loading.
55
+ * @values true, false
56
+ */
57
+ showSkeleton: {
58
+ type: Boolean,
59
+ default: true
60
+ }
61
+ },
62
+ data() {
63
+ return {
64
+ emojiData: null,
65
+ imgLoading: false
66
+ };
67
+ },
68
+ computed: {
69
+ emojiDataValid() {
70
+ return !!this.emojiData;
71
+ },
72
+ emojiSrc() {
73
+ var _a;
74
+ if (!this.emojiDataValid) {
75
+ return "invalid";
76
+ }
77
+ if ((_a = this.emojiData) == null ? void 0 : _a.custom) {
78
+ return customEmojiAssetUrl + this.emojiData.key + this.emojiData.extension;
79
+ }
80
+ if (["100", "200"].includes(this.size)) {
81
+ return emojiImageUrlSmall + this.emojiData.key + emojiFileExtensionSmall;
82
+ } else {
83
+ return emojiImageUrlLarge + this.emojiData.key + emojiFileExtensionLarge;
84
+ }
85
+ },
86
+ emojiAlt() {
87
+ if (!this.emojiDataValid) {
88
+ return void 0;
89
+ }
90
+ return this.emojiData.unicode_output ? stringToUnicode(this.emojiData.unicode_output) : this.emojiData.name;
91
+ },
92
+ emojiLabel() {
93
+ if (!this.emojiDataValid) {
94
+ return "Invalid Emoji";
95
+ }
96
+ return this.ariaLabel ? this.ariaLabel : this.emojiData.name;
97
+ },
98
+ emojiSize() {
99
+ return ICON_SIZE_MODIFIERS[this.size];
100
+ }
101
+ },
102
+ watch: {
103
+ code: {
104
+ handler: function() {
105
+ this.getEmojiData();
106
+ },
107
+ immediate: true
108
+ },
109
+ emojiSrc: {
110
+ handler: async function() {
111
+ this.imgLoading = true;
112
+ },
113
+ immediate: true
114
+ }
115
+ },
116
+ methods: {
117
+ getEmojiData() {
118
+ this.emojiData = codeToEmojiData(this.code);
119
+ },
120
+ imageLoaded() {
121
+ this.imgLoading = false;
122
+ },
123
+ imageErrored() {
124
+ this.imgLoading = false;
125
+ }
126
+ }
127
+ };
128
+ const _hoisted_1 = ["aria-label", "alt", "title", "src"];
129
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
130
+ const _component_dt_skeleton = resolveComponent("dt-skeleton");
131
+ return openBlock(), createElementBlock("span", {
132
+ class: normalizeClass(["d-emoji", "d-icon", $options.emojiSize])
133
+ }, [
134
+ withDirectives(createVNode(_component_dt_skeleton, {
135
+ offset: 0,
136
+ class: normalizeClass(["d-icon", $options.emojiSize]),
137
+ "shape-option": { shape: "circle", size: "100%" }
138
+ }, null, 8, ["class"]), [
139
+ [vShow, $data.imgLoading && $props.showSkeleton]
140
+ ]),
141
+ withDirectives(createElementVNode("img", {
142
+ ref: "emojiImg",
143
+ class: normalizeClass(["d-icon", $options.emojiSize, $props.imgClass]),
144
+ "aria-label": $options.emojiLabel,
145
+ alt: $options.emojiAlt,
146
+ title: $options.emojiLabel,
147
+ src: $options.emojiSrc,
148
+ onLoad: _cache[0] || (_cache[0] = (...args) => $options.imageLoaded && $options.imageLoaded(...args)),
149
+ onError: _cache[1] || (_cache[1] = (...args) => $options.imageErrored && $options.imageErrored(...args))
150
+ }, null, 42, _hoisted_1), [
151
+ [vShow, !$data.imgLoading]
152
+ ])
153
+ ], 2);
154
+ }
155
+ const DtEmoji = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
9
156
  export {
10
- f as DtEmoji
157
+ DtEmoji
11
158
  };
12
159
  //# sourceMappingURL=emoji.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"emoji.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
1
+ {"version":3,"file":"emoji.js","sources":["../../components/emoji/emoji.vue"],"sourcesContent":["<template>\n <span :class=\"['d-emoji', 'd-icon', emojiSize]\">\n <dt-skeleton\n v-show=\"imgLoading && showSkeleton\"\n :offset=\"0\"\n :class=\"['d-icon', emojiSize]\"\n :shape-option=\"{ shape: 'circle', size: '100%' }\"\n />\n <img\n v-show=\"!imgLoading\"\n ref=\"emojiImg\"\n :class=\"['d-icon', emojiSize, imgClass]\"\n :aria-label=\"emojiLabel\"\n :alt=\"emojiAlt\"\n :title=\"emojiLabel\"\n :src=\"emojiSrc\"\n @load=\"imageLoaded\"\n @error=\"imageErrored\"\n >\n </span>\n</template>\n\n<script>\nimport { ICON_SIZE_MODIFIERS } from '@/components/icon';\nimport {\n codeToEmojiData,\n stringToUnicode,\n emojiImageUrlSmall,\n emojiFileExtensionSmall,\n emojiImageUrlLarge,\n emojiFileExtensionLarge,\n customEmojiAssetUrl,\n} from '@/common/emoji';\nimport { DtSkeleton } from '@/components/skeleton';\n\n/**\n * Renders an emoji from a shortcode such as :smile: or unicode character such as 😄\n * @see https://dialtone.dialpad.com/components/emoji.html\n */\nexport default {\n name: 'DtEmoji',\n\n components: {\n DtSkeleton,\n },\n\n props: {\n /**\n * Supports shortcode ex: :smile: or unicode ex: 😄. Will display the resulting emoji.\n * <a class=\"d-link\" href=\"https://emojipedia.org/joypixels/\" target=\"_blank\">JoyPixels</a>\n * for all supported shortcode/unicode or the docs for setting up custom emojis.\n */\n code: {\n type: String,\n required: true,\n },\n\n /**\n * The size of the emoji. Can be any of the icon size utility classes from\n * <a class=\"d-link\" href=\"https://dialtone.dialpad.com/components/icon.html\" target=\"_blank\"> Dialpad Icon Size</a>\n * @values 100, 200, 300, 400, 500, 600, 700, 800\n */\n size: {\n type: String,\n default: '500',\n validator: (t) => Object.keys(ICON_SIZE_MODIFIERS).includes(t),\n },\n\n /**\n * Additional class name for the emoji img 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 imgClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * Will be read out on a screen reader for this emoji. You must use this prop if you want your emoji to be i18n\n * Compatible as Dialtone Vue will not translate it by itself. If you do not set this prop the aria-label will\n * be set to the english description of the emoji. You can retrieve the description for an emoji yourself via the\n * getEmojiData() function\n */\n ariaLabel: {\n type: String,\n default: null,\n },\n\n /**\n * Shows a skeleton loader while the emoji asset is loading.\n * @values true, false\n */\n showSkeleton: {\n type: Boolean,\n default: true,\n },\n },\n\n data () {\n return {\n emojiData: null,\n imgLoading: false,\n };\n },\n\n computed: {\n emojiDataValid () {\n return !!this.emojiData;\n },\n\n emojiSrc () {\n if (!this.emojiDataValid) { return 'invalid'; }\n\n // custom emoji\n if (this.emojiData?.custom) {\n return customEmojiAssetUrl + this.emojiData.key + this.emojiData.extension;\n }\n\n if (['100', '200'].includes(this.size)) {\n return emojiImageUrlSmall + this.emojiData.key + emojiFileExtensionSmall;\n } else {\n return emojiImageUrlLarge + this.emojiData.key + emojiFileExtensionLarge;\n }\n },\n\n emojiAlt () {\n if (!this.emojiDataValid) { return undefined; }\n return this.emojiData.unicode_output ? stringToUnicode(this.emojiData.unicode_output) : this.emojiData.name;\n },\n\n emojiLabel () {\n if (!this.emojiDataValid) { return 'Invalid Emoji'; }\n return this.ariaLabel ? this.ariaLabel : this.emojiData.name;\n },\n\n emojiSize () {\n return ICON_SIZE_MODIFIERS[this.size];\n },\n },\n\n watch: {\n code: {\n handler: function () {\n this.getEmojiData();\n },\n\n immediate: true,\n },\n\n emojiSrc: {\n handler: async function () {\n this.imgLoading = true;\n },\n\n immediate: true,\n },\n },\n\n methods: {\n getEmojiData () {\n this.emojiData = codeToEmojiData(this.code);\n },\n\n imageLoaded () {\n this.imgLoading = false;\n },\n\n imageErrored () {\n this.imgLoading = false;\n },\n },\n};\n</script>\n"],"names":["_createElementBlock","_createVNode","_vShow","_createElementVNode","_normalizeClass"],"mappings":"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"}
@@ -1,2 +1,297 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("../chunks/modal-qEzlo0Sj.js"),e=require("vue"),u=require("../chunks/_plugin-vue_export-helper-6_y-gaV6.js"),_=require("./avatar.cjs"),f=require("./lazy-show.cjs"),h=require("./list-item.cjs"),w=require("./badge.cjs");require("./utils.cjs");require("./constants.cjs");require("@dialpad/dialtone-icons/icons.json");require("../chunks/icon_constants-2S_OSQ1t.js");require("./presence.cjs");require("./icon.cjs");require("@dialpad/dialtone-icons/vue3");require("../chunks/list_item_constants-Tsz5CO1m.js");require("./item-layout.cjs");const r={NORMAL:"",SEARCHED:"dt-feed-item-row--state-searched",ERROR:"dt-feed-item-row--state-error"},o="NORMAL",v={name:"DtRecipeFeedItemRow",components:{DtAvatar:_.DtAvatar,DtLazyShow:f.DtLazyShow,DtListItem:h.DtListItem,DtBadge:w.DtBadge},mixins:[m.M],inheritAttrs:!1,props:{avatarSeed:{type:String,default:null},showHeader:{type:Boolean,default:!1},avatarImageUrl:{type:String,default:""},displayName:{type:String,default:""},time:{type:String,default:""},shortTime:{type:String,default:""},labelText:{type:String,default:""},isActive:{type:Boolean,default:!1},state:{type:String,default:o,validator:t=>Object.keys(r).includes(t)}},emits:["hover","focus","keydown"],data(){return{transitionActive:!1}},computed:{feedListeners(){return{mouseenter:()=>this.setHover(!0),mouseleave:()=>this.setHover(!1),focusin:()=>this.setFocus(!0),focusout:()=>this.setFocus(!1),transitionend:()=>this.transitionComplete(),keydown:t=>{switch(t.code){case"Tab":this.trapFocus(t);break}this.$emit("keydown",t)}}},listItemClasses(){return["dt-feed-item-row",{"dt-feed-item-row--active":this.isActive&&this.state===o},{"dt-feed-item-row--state-transition":this.transitionActive},r[this.state]]}},watch:{state:{immediate:!0,handler:function(t,s){t!==o&&(this.transitionActive=!0)}}},methods:{transitionComplete(){this.state===o&&(this.transitionActive=!1)},trapFocus(t){this.focusTrappedTabPress(t)},setFocus(t){this.$emit("focus",t)},setHover(t){this.$emit("hover",t)}}},y={key:0,class:"dt-feed-item-row__avatar-container"},S={class:"dt-feed-item-row__content"},g={key:0,"data-qa":"dt-feed-item-row--header",class:"dt-feed-item-row__header"},p={class:"dt-feed-item-row__header__name"},k={class:"dt-feed-item-row__header__time"},E={"data-qa":"dt-feed-item-row--content"},C={key:1,"data-qa":"dt-feed-item-row--attachment",class:"dt-feed-item-row__attachment"},D={key:0,class:"dt-feed-item-row__reactions","data-qa":"dt-feed-item-row--reactions"},q={key:1,class:"dt-feed-item-row__threading"},A={"data-qa":"dt-feed-item-row--menu",class:"dt-feed-item-row__menu"};function B(t,s,a,R,T,i){const d=e.resolveComponent("dt-avatar"),n=e.resolveComponent("dt-badge"),l=e.resolveComponent("dt-lazy-show"),c=e.resolveComponent("dt-list-item");return e.openBlock(),e.createBlock(c,e.mergeProps({ref:"FeedItemRef","navigation-type":"none"},t.$attrs,{class:["dt-feed-item-row",i.listItemClasses],"data-qa":"dt-feed-item-row"},e.toHandlers(i.feedListeners)),{left:e.withCtx(()=>[a.showHeader?(e.openBlock(),e.createElementBlock("div",y,[e.renderSlot(t.$slots,"avatar",{},()=>[e.createVNode(d,{"full-name":a.displayName,"image-src":a.avatarImageUrl,"image-alt":"",seed:a.avatarSeed},null,8,["full-name","image-src","seed"])],!0)])):e.createCommentVNode("",!0),a.showHeader?e.createCommentVNode("",!0):e.withDirectives((e.openBlock(),e.createElementBlock("span",{key:1,class:"dt-feed-item-row__left-time","data-qa":"dt-feed-item-row--left-time"},e.toDisplayString(a.shortTime),513)),[[e.vShow,a.isActive]])]),bottom:e.withCtx(()=>[t.$slots.reactions?(e.openBlock(),e.createElementBlock("div",D,[e.renderSlot(t.$slots,"reactions",{},void 0,!0)])):e.createCommentVNode("",!0),t.$slots.threading?(e.openBlock(),e.createElementBlock("div",q,[e.renderSlot(t.$slots,"threading",{},void 0,!0)])):e.createCommentVNode("",!0)]),right:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",A,[e.createVNode(l,{appear:!0,transition:"fade",show:a.isActive},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"menu",{},void 0,!0)]),_:3},8,["show"])],512),[[e.vShow,a.isActive]])]),default:e.withCtx(()=>[e.createElementVNode("article",S,[a.showHeader?(e.openBlock(),e.createElementBlock("div",g,[e.createElementVNode("p",p,e.toDisplayString(a.displayName),1),e.createElementVNode("time",k,e.toDisplayString(a.time),1),a.labelText?(e.openBlock(),e.createBlock(n,{key:0,text:a.labelText},null,8,["text"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("span",E,[e.renderSlot(t.$slots,"default",{},void 0,!0)]),t.$slots.attachment?(e.openBlock(),e.createElementBlock("div",C,[e.renderSlot(t.$slots,"attachment",{},void 0,!0)])):e.createCommentVNode("",!0)])]),_:3},16,["class"])}const N=u._(v,[["render",B],["__scopeId","data-v-070cce61"]]);exports.DEFAULT_FEED_ROW_STATE=o;exports.DtRecipeFeedItemRow=N;exports.FEED_ROW_STATE_BACKGROUND_COLOR=r;
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const modal = require("../chunks/modal-VgxXAQFP.js");
4
+ const vue = require("vue");
5
+ const _pluginVue_exportHelper = require("../chunks/_plugin-vue_export-helper-fhnQq0tA.js");
6
+ const lib_avatar = require("./avatar.cjs");
7
+ const lib_lazyShow = require("./lazy-show.cjs");
8
+ const lib_listItem = require("./list-item.cjs");
9
+ const lib_badge = require("./badge.cjs");
10
+ require("../common/utils.cjs");
11
+ require("../common/constants.cjs");
12
+ require("@dialpad/dialtone-icons/icons.json");
13
+ require("../chunks/icon_constants-QYpmdE0R.js");
14
+ require("./presence.cjs");
15
+ require("./icon.cjs");
16
+ require("@dialpad/dialtone-icons/vue3");
17
+ require("../chunks/list_item_constants-EiqkqZvP.js");
18
+ require("./item-layout.cjs");
19
+ const FEED_ROW_STATE_BACKGROUND_COLOR = {
20
+ NORMAL: "",
21
+ SEARCHED: "dt-feed-item-row--state-searched",
22
+ ERROR: "dt-feed-item-row--state-error"
23
+ };
24
+ const DEFAULT_FEED_ROW_STATE = "NORMAL";
25
+ const _sfc_main = {
26
+ name: "DtRecipeFeedItemRow",
27
+ components: {
28
+ DtAvatar: lib_avatar.DtAvatar,
29
+ DtLazyShow: lib_lazyShow.DtLazyShow,
30
+ DtListItem: lib_listItem.DtListItem,
31
+ DtBadge: lib_badge.DtBadge
32
+ },
33
+ mixins: [modal.Modal],
34
+ inheritAttrs: false,
35
+ props: {
36
+ /**
37
+ * Avatar seed, set this to the user's ID to get the same avatar background gradient each time it is displayed.
38
+ */
39
+ avatarSeed: {
40
+ type: String,
41
+ default: null
42
+ },
43
+ /**
44
+ * Show avatar, show header text or dont show left time and vice versa
45
+ */
46
+ showHeader: {
47
+ type: Boolean,
48
+ default: false
49
+ },
50
+ /**
51
+ * Optional avatar image url.
52
+ * If not provided it will use extracted initials from displayName.
53
+ */
54
+ avatarImageUrl: {
55
+ type: String,
56
+ default: ""
57
+ },
58
+ /**
59
+ * The display name of the sender
60
+ */
61
+ displayName: {
62
+ type: String,
63
+ default: ""
64
+ },
65
+ /**
66
+ * time string displayed as is.
67
+ * Shown on the header when showHeader is true
68
+ */
69
+ time: {
70
+ type: String,
71
+ default: ""
72
+ },
73
+ /**
74
+ * short time string without AM/PM displayed as is.
75
+ * Shown on the left of feed item when showHeader is false and isActive is true
76
+ */
77
+ shortTime: {
78
+ type: String,
79
+ default: ""
80
+ },
81
+ /**
82
+ * A label displayed next to the displayName. Will not show if empty.
83
+ */
84
+ labelText: {
85
+ type: String,
86
+ default: ""
87
+ },
88
+ /**
89
+ * displays a darkened background on the row.
90
+ */
91
+ isActive: {
92
+ type: Boolean,
93
+ default: false
94
+ },
95
+ /**
96
+ * state for the feed item row. Can be normal, searched & error
97
+ */
98
+ state: {
99
+ type: String,
100
+ default: DEFAULT_FEED_ROW_STATE,
101
+ validator: (state) => Object.keys(FEED_ROW_STATE_BACKGROUND_COLOR).includes(state)
102
+ }
103
+ },
104
+ emits: [
105
+ /**
106
+ * Fires when hovered over feed row
107
+ *
108
+ * @event hover
109
+ * @type {Boolean}
110
+ */
111
+ "hover",
112
+ /**
113
+ * Fires when focused over feed row
114
+ *
115
+ * @event focus
116
+ * @type {Boolean}
117
+ */
118
+ "focus",
119
+ /**
120
+ * Key down event
121
+ *
122
+ * @event keydown
123
+ * @type {KeyboardEvent}
124
+ */
125
+ "keydown"
126
+ ],
127
+ data() {
128
+ return {
129
+ transitionActive: false
130
+ };
131
+ },
132
+ computed: {
133
+ feedListeners() {
134
+ return {
135
+ mouseenter: () => this.setHover(true),
136
+ mouseleave: () => this.setHover(false),
137
+ focusin: () => this.setFocus(true),
138
+ focusout: () => this.setFocus(false),
139
+ transitionend: () => this.transitionComplete(),
140
+ keydown: (event) => {
141
+ switch (event.code) {
142
+ case "Tab":
143
+ this.trapFocus(event);
144
+ break;
145
+ }
146
+ this.$emit("keydown", event);
147
+ }
148
+ };
149
+ },
150
+ listItemClasses() {
151
+ return [
152
+ "dt-feed-item-row",
153
+ { "dt-feed-item-row--active": this.isActive && this.state === DEFAULT_FEED_ROW_STATE },
154
+ { "dt-feed-item-row--state-transition": this.transitionActive },
155
+ FEED_ROW_STATE_BACKGROUND_COLOR[this.state]
156
+ ];
157
+ }
158
+ },
159
+ watch: {
160
+ state: {
161
+ immediate: true,
162
+ handler: function(newState, oldState) {
163
+ if (newState !== DEFAULT_FEED_ROW_STATE) {
164
+ this.transitionActive = true;
165
+ }
166
+ }
167
+ }
168
+ },
169
+ methods: {
170
+ transitionComplete() {
171
+ if (this.state === DEFAULT_FEED_ROW_STATE) {
172
+ this.transitionActive = false;
173
+ }
174
+ },
175
+ trapFocus(e) {
176
+ this.focusTrappedTabPress(e);
177
+ },
178
+ setFocus(bool) {
179
+ this.$emit("focus", bool);
180
+ },
181
+ setHover(bool) {
182
+ this.$emit("hover", bool);
183
+ }
184
+ }
185
+ };
186
+ const _hoisted_1 = {
187
+ key: 0,
188
+ class: "dt-feed-item-row__avatar-container"
189
+ };
190
+ const _hoisted_2 = { class: "dt-feed-item-row__content" };
191
+ const _hoisted_3 = {
192
+ key: 0,
193
+ "data-qa": "dt-feed-item-row--header",
194
+ class: "dt-feed-item-row__header"
195
+ };
196
+ const _hoisted_4 = { class: "dt-feed-item-row__header__name" };
197
+ const _hoisted_5 = { class: "dt-feed-item-row__header__time" };
198
+ const _hoisted_6 = { "data-qa": "dt-feed-item-row--content" };
199
+ const _hoisted_7 = {
200
+ key: 1,
201
+ "data-qa": "dt-feed-item-row--attachment",
202
+ class: "dt-feed-item-row__attachment"
203
+ };
204
+ const _hoisted_8 = {
205
+ key: 0,
206
+ class: "dt-feed-item-row__reactions",
207
+ "data-qa": "dt-feed-item-row--reactions"
208
+ };
209
+ const _hoisted_9 = {
210
+ key: 1,
211
+ class: "dt-feed-item-row__threading"
212
+ };
213
+ const _hoisted_10 = {
214
+ "data-qa": "dt-feed-item-row--menu",
215
+ class: "dt-feed-item-row__menu"
216
+ };
217
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
218
+ const _component_dt_avatar = vue.resolveComponent("dt-avatar");
219
+ const _component_dt_badge = vue.resolveComponent("dt-badge");
220
+ const _component_dt_lazy_show = vue.resolveComponent("dt-lazy-show");
221
+ const _component_dt_list_item = vue.resolveComponent("dt-list-item");
222
+ return vue.openBlock(), vue.createBlock(_component_dt_list_item, vue.mergeProps({
223
+ ref: "FeedItemRef",
224
+ "navigation-type": "none"
225
+ }, _ctx.$attrs, {
226
+ class: ["dt-feed-item-row", $options.listItemClasses],
227
+ "data-qa": "dt-feed-item-row"
228
+ }, vue.toHandlers($options.feedListeners)), {
229
+ left: vue.withCtx(() => [
230
+ $props.showHeader ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
231
+ vue.renderSlot(_ctx.$slots, "avatar", {}, () => [
232
+ vue.createVNode(_component_dt_avatar, {
233
+ "full-name": $props.displayName,
234
+ "image-src": $props.avatarImageUrl,
235
+ "image-alt": "",
236
+ seed: $props.avatarSeed
237
+ }, null, 8, ["full-name", "image-src", "seed"])
238
+ ], true)
239
+ ])) : vue.createCommentVNode("", true),
240
+ !$props.showHeader ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("span", {
241
+ key: 1,
242
+ class: "dt-feed-item-row__left-time",
243
+ "data-qa": "dt-feed-item-row--left-time"
244
+ }, vue.toDisplayString($props.shortTime), 513)), [
245
+ [vue.vShow, $props.isActive]
246
+ ]) : vue.createCommentVNode("", true)
247
+ ]),
248
+ bottom: vue.withCtx(() => [
249
+ _ctx.$slots.reactions ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_8, [
250
+ vue.renderSlot(_ctx.$slots, "reactions", {}, void 0, true)
251
+ ])) : vue.createCommentVNode("", true),
252
+ _ctx.$slots.threading ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_9, [
253
+ vue.renderSlot(_ctx.$slots, "threading", {}, void 0, true)
254
+ ])) : vue.createCommentVNode("", true)
255
+ ]),
256
+ right: vue.withCtx(() => [
257
+ vue.withDirectives(vue.createElementVNode("div", _hoisted_10, [
258
+ vue.createVNode(_component_dt_lazy_show, {
259
+ appear: true,
260
+ transition: "fade",
261
+ show: $props.isActive
262
+ }, {
263
+ default: vue.withCtx(() => [
264
+ vue.renderSlot(_ctx.$slots, "menu", {}, void 0, true)
265
+ ]),
266
+ _: 3
267
+ }, 8, ["show"])
268
+ ], 512), [
269
+ [vue.vShow, $props.isActive]
270
+ ])
271
+ ]),
272
+ default: vue.withCtx(() => [
273
+ vue.createElementVNode("article", _hoisted_2, [
274
+ $props.showHeader ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, [
275
+ vue.createElementVNode("p", _hoisted_4, vue.toDisplayString($props.displayName), 1),
276
+ vue.createElementVNode("time", _hoisted_5, vue.toDisplayString($props.time), 1),
277
+ $props.labelText ? (vue.openBlock(), vue.createBlock(_component_dt_badge, {
278
+ key: 0,
279
+ text: $props.labelText
280
+ }, null, 8, ["text"])) : vue.createCommentVNode("", true)
281
+ ])) : vue.createCommentVNode("", true),
282
+ vue.createElementVNode("span", _hoisted_6, [
283
+ vue.renderSlot(_ctx.$slots, "default", {}, void 0, true)
284
+ ]),
285
+ _ctx.$slots.attachment ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7, [
286
+ vue.renderSlot(_ctx.$slots, "attachment", {}, void 0, true)
287
+ ])) : vue.createCommentVNode("", true)
288
+ ])
289
+ ]),
290
+ _: 3
291
+ }, 16, ["class"]);
292
+ }
293
+ const feed_item_row = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-070cce61"]]);
294
+ exports.DEFAULT_FEED_ROW_STATE = DEFAULT_FEED_ROW_STATE;
295
+ exports.DtRecipeFeedItemRow = feed_item_row;
296
+ exports.FEED_ROW_STATE_BACKGROUND_COLOR = FEED_ROW_STATE_BACKGROUND_COLOR;
2
297
  //# sourceMappingURL=feed-item-row.cjs.map