@dialpad/dialtone-vue 3.223.0-next.3 → 3.223.0-next.4

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 (387) hide show
  1. package/dist/Combobox-CYEmi3dv.cjs +3 -0
  2. package/dist/Combobox-CYEmi3dv.cjs.map +1 -0
  3. package/dist/{Combobox-By01ETlj.js → Combobox-D8nQeBIf.js} +33 -32
  4. package/dist/Combobox-D8nQeBIf.js.map +1 -0
  5. package/dist/TextList-B6XFfQfD.js +88 -0
  6. package/dist/TextList-B6XFfQfD.js.map +1 -0
  7. package/dist/TextList-Dd-ROFiI.cjs +2 -0
  8. package/dist/TextList-Dd-ROFiI.cjs.map +1 -0
  9. package/dist/TextListItem-DIlrCkaM.cjs +2 -0
  10. package/dist/TextListItem-DIlrCkaM.cjs.map +1 -0
  11. package/dist/TextListItem-ImUi_FWh.js +62 -0
  12. package/dist/TextListItem-ImUi_FWh.js.map +1 -0
  13. package/dist/{Toast-CHbVmbBg.js → Toast-BIHkIpZP.js} +95 -94
  14. package/dist/Toast-BIHkIpZP.js.map +1 -0
  15. package/dist/Toast-D8ARDEgT.cjs +2 -0
  16. package/dist/Toast-D8ARDEgT.cjs.map +1 -0
  17. package/dist/{attachment_carousel-BFIAXWOZ.js → attachment_carousel-CyiexPBk.js} +1 -1
  18. package/dist/{attachment_carousel-BFIAXWOZ.js.map → attachment_carousel-CyiexPBk.js.map} +1 -1
  19. package/dist/{attachment_carousel-BJxqNJ5T.cjs → attachment_carousel-DJqILY7f.cjs} +1 -1
  20. package/dist/{attachment_carousel-BJxqNJ5T.cjs.map → attachment_carousel-DJqILY7f.cjs.map} +1 -1
  21. package/dist/common/mixins/input.d.ts +4 -4
  22. package/dist/common/mixins/input_group.d.ts +2 -2
  23. package/dist/common/sr_only_close_button.vue.d.ts +30 -30
  24. package/dist/common/sr_only_close_button.vue.d.ts.map +1 -1
  25. package/dist/common/validators/index.cjs +1 -1
  26. package/dist/common/validators/index.cjs.map +1 -1
  27. package/dist/common/validators/index.d.ts +2 -0
  28. package/dist/common/validators/index.d.ts.map +1 -1
  29. package/dist/common/validators/index.js +9 -2
  30. package/dist/common/validators/index.js.map +1 -1
  31. package/dist/component-documentation.json +1 -1
  32. package/dist/components/Avatar/Avatar.vue.d.ts +10 -10
  33. package/dist/components/Avatar/Avatar.vue.d.ts.map +1 -1
  34. package/dist/components/Badge/Badge.vue.d.ts +13 -13
  35. package/dist/components/Banner/Banner.vue.d.ts +106 -106
  36. package/dist/components/Banner/Banner.vue.d.ts.map +1 -1
  37. package/dist/components/Box/Box.vue.d.ts +18 -0
  38. package/dist/components/Box/Box.vue.d.ts.map +1 -1
  39. package/dist/components/Box/BoxConstants.d.ts +4 -0
  40. package/dist/components/Box/BoxConstants.d.ts.map +1 -1
  41. package/dist/components/Box/Validators.d.ts +4 -0
  42. package/dist/components/Box/Validators.d.ts.map +1 -1
  43. package/dist/components/Box/index.d.ts +1 -1
  44. package/dist/components/Breadcrumbs/BreadcrumbItem.vue.d.ts +1 -0
  45. package/dist/components/Breadcrumbs/BreadcrumbItem.vue.d.ts.map +1 -1
  46. package/dist/components/Breadcrumbs/Breadcrumbs.vue.d.ts +3 -2
  47. package/dist/components/Button/Button.vue.d.ts +25 -25
  48. package/dist/components/Button/Button.vue.d.ts.map +1 -1
  49. package/dist/components/Card/Card.vue.d.ts +6 -6
  50. package/dist/components/Checkbox/Checkbox.vue.d.ts +26 -26
  51. package/dist/components/Checkbox/Checkbox.vue.d.ts.map +1 -1
  52. package/dist/components/CheckboxGroup/CheckboxGroup.vue.d.ts +46 -46
  53. package/dist/components/CheckboxGroup/CheckboxGroup.vue.d.ts.map +1 -1
  54. package/dist/components/Chip/Chip.vue.d.ts +40 -40
  55. package/dist/components/Chip/Chip.vue.d.ts.map +1 -1
  56. package/dist/components/Codeblock/Codeblock.vue.d.ts +2 -2
  57. package/dist/components/Collapsible/Collapsible.vue.d.ts +39 -39
  58. package/dist/components/Collapsible/Collapsible.vue.d.ts.map +1 -1
  59. package/dist/components/Combobox/Combobox.vue.d.ts +66 -66
  60. package/dist/components/Combobox/Combobox.vue.d.ts.map +1 -1
  61. package/dist/components/Combobox/ComboboxEmptyList.vue.d.ts +29 -29
  62. package/dist/components/Combobox/ComboboxEmptyList.vue.d.ts.map +1 -1
  63. package/dist/components/Combobox/ComboboxLoadingList.vue.d.ts +35 -35
  64. package/dist/components/Combobox/ComboboxLoadingList.vue.d.ts.map +1 -1
  65. package/dist/components/ComboboxWithPopover/ComboboxWithPopover.vue.d.ts +216 -216
  66. package/dist/components/ComboboxWithPopover/ComboboxWithPopover.vue.d.ts.map +1 -1
  67. package/dist/components/DescriptionList/DescriptionList.vue.d.ts +4 -4
  68. package/dist/components/Dropdown/Dropdown.vue.d.ts +82 -82
  69. package/dist/components/Dropdown/Dropdown.vue.d.ts.map +1 -1
  70. package/dist/components/Emoji/Emoji.vue.d.ts +17 -17
  71. package/dist/components/EmojiPicker/EmojiPicker.vue.d.ts +37 -37
  72. package/dist/components/EmojiPicker/EmojiPicker.vue.d.ts.map +1 -1
  73. package/dist/components/EmojiPicker/Modules/EmojiSearch.vue.d.ts +37 -37
  74. package/dist/components/EmojiPicker/Modules/EmojiSearch.vue.d.ts.map +1 -1
  75. package/dist/components/EmojiTextWrapper/EmojiTextWrapper.vue.d.ts +24 -24
  76. package/dist/components/EmojiTextWrapper/EmojiTextWrapper.vue.d.ts.map +1 -1
  77. package/dist/components/EmptyState/EmptyState.vue.d.ts.map +1 -1
  78. package/dist/components/FilterPill/FilterPill.vue.d.ts +308 -308
  79. package/dist/components/FilterPill/FilterPill.vue.d.ts.map +1 -1
  80. package/dist/components/Hovercard/Hovercard.vue.d.ts +156 -156
  81. package/dist/components/Hovercard/Hovercard.vue.d.ts.map +1 -1
  82. package/dist/components/Icon/Icon.vue.d.ts +7 -7
  83. package/dist/components/ImageViewer/ImageViewer.vue.d.ts +60 -60
  84. package/dist/components/ImageViewer/ImageViewer.vue.d.ts.map +1 -1
  85. package/dist/components/Input/Input.vue.d.ts +37 -37
  86. package/dist/components/Input/Input.vue.d.ts.map +1 -1
  87. package/dist/components/InputGroup/InputGroup.vue.d.ts +46 -46
  88. package/dist/components/InputGroup/InputGroup.vue.d.ts.map +1 -1
  89. package/dist/components/ItemLayout/ItemLayout.vue.d.ts +20 -20
  90. package/dist/components/KeyboardShortcut/KeyboardShortcut.vue.d.ts +80 -80
  91. package/dist/components/KeyboardShortcut/KeyboardShortcut.vue.d.ts.map +1 -1
  92. package/dist/components/Link/Link.vue.d.ts +1 -0
  93. package/dist/components/Link/LinkConstants.d.ts +3 -0
  94. package/dist/components/Link/LinkConstants.d.ts.map +1 -1
  95. package/dist/components/ListItem/ListItem.vue.d.ts +27 -27
  96. package/dist/components/ListItem/ListItem.vue.d.ts.map +1 -1
  97. package/dist/components/ListItemGroup/ListItemGroup.vue.d.ts +4 -4
  98. package/dist/components/Loader/Loader.vue.d.ts +7 -7
  99. package/dist/components/Modal/Modal.vue.d.ts +79 -85
  100. package/dist/components/Modal/Modal.vue.d.ts.map +1 -1
  101. package/dist/components/Modal/ModalConstants.d.ts +0 -5
  102. package/dist/components/Modal/index.d.ts +1 -1
  103. package/dist/components/Notice/Notice.vue.d.ts +106 -106
  104. package/dist/components/Notice/Notice.vue.d.ts.map +1 -1
  105. package/dist/components/Notice/NoticeAction.vue.d.ts +62 -62
  106. package/dist/components/Notice/NoticeAction.vue.d.ts.map +1 -1
  107. package/dist/components/Notice/NoticeContent.vue.d.ts +4 -4
  108. package/dist/components/Notice/NoticeIcon.vue.d.ts +32 -32
  109. package/dist/components/Notice/NoticeIcon.vue.d.ts.map +1 -1
  110. package/dist/components/Pagination/Pagination.vue.d.ts +40 -40
  111. package/dist/components/Pagination/Pagination.vue.d.ts.map +1 -1
  112. package/dist/components/Popover/Popover.vue.d.ts +78 -78
  113. package/dist/components/Popover/Popover.vue.d.ts.map +1 -1
  114. package/dist/components/Popover/PopoverHeaderFooter.vue.d.ts +34 -34
  115. package/dist/components/Popover/PopoverHeaderFooter.vue.d.ts.map +1 -1
  116. package/dist/components/ProgressCircle/ProgressCircle.vue.d.ts +7 -7
  117. package/dist/components/Prose/Prose.vue.d.ts.map +1 -1
  118. package/dist/components/Radio/Radio.vue.d.ts +26 -26
  119. package/dist/components/Radio/Radio.vue.d.ts.map +1 -1
  120. package/dist/components/RadioGroup/RadioGroup.vue.d.ts +46 -46
  121. package/dist/components/RadioGroup/RadioGroup.vue.d.ts.map +1 -1
  122. package/dist/components/RichTextEditor/Extensions/Channels/ChannelComponent.vue.d.ts +6 -5
  123. package/dist/components/RichTextEditor/Extensions/Channels/ChannelComponent.vue.d.ts.map +1 -1
  124. package/dist/components/RichTextEditor/Extensions/Channels/ChannelSuggestion.vue.d.ts +10 -10
  125. package/dist/components/RichTextEditor/Extensions/Channels/ChannelSuggestion.vue.d.ts.map +1 -1
  126. package/dist/components/RichTextEditor/Extensions/Emoji/EmojiComponent.vue.d.ts +17 -17
  127. package/dist/components/RichTextEditor/Extensions/Emoji/EmojiSuggestion.vue.d.ts +17 -17
  128. package/dist/components/RichTextEditor/Extensions/Mentions/MentionComponent.vue.d.ts +1 -0
  129. package/dist/components/RichTextEditor/Extensions/Mentions/MentionSuggestion.vue.d.ts +10 -10
  130. package/dist/components/RichTextEditor/Extensions/Suggestion/SuggestionList.vue.d.ts +27 -27
  131. package/dist/components/RichTextEditor/Extensions/Suggestion/SuggestionList.vue.d.ts.map +1 -1
  132. package/dist/components/RichTextEditor/Extensions/Variable/VariableComponent.vue.d.ts +153 -153
  133. package/dist/components/RichTextEditor/Extensions/Variable/VariableComponent.vue.d.ts.map +1 -1
  134. package/dist/components/RootLayout/RootLayout.vue.d.ts +10 -10
  135. package/dist/components/SegmentedControl/SegmentedControl.vue.d.ts.map +1 -1
  136. package/dist/components/SelectMenu/SelectMenu.vue.d.ts +33 -33
  137. package/dist/components/SelectMenu/SelectMenu.vue.d.ts.map +1 -1
  138. package/dist/components/Skeleton/Skeleton.vue.d.ts +8 -8
  139. package/dist/components/Skeleton/SkeletonListItem.vue.d.ts +4 -4
  140. package/dist/components/Skeleton/SkeletonParagraph.vue.d.ts +2 -2
  141. package/dist/components/Skeleton/SkeletonShape.vue.d.ts +2 -2
  142. package/dist/components/SplitButton/SplitButton.vue.d.ts +157 -157
  143. package/dist/components/SplitButton/SplitButton.vue.d.ts.map +1 -1
  144. package/dist/components/SplitButton/SplitButtonEnd.vue.d.ts +30 -30
  145. package/dist/components/SplitButton/SplitButtonEnd.vue.d.ts.map +1 -1
  146. package/dist/components/SplitButton/SplitButtonStart.vue.d.ts +31 -31
  147. package/dist/components/Tab/Tab.vue.d.ts +33 -33
  148. package/dist/components/Tab/TabGroup.vue.d.ts +6 -6
  149. package/dist/components/Tab/TabPanel.vue.d.ts +2 -2
  150. package/dist/components/TextList/TextList.vue.d.ts +87 -0
  151. package/dist/components/TextList/TextList.vue.d.ts.map +1 -0
  152. package/dist/components/TextList/TextListConstants.d.ts +20 -0
  153. package/dist/components/TextList/TextListConstants.d.ts.map +1 -0
  154. package/dist/components/TextList/TextListItem.vue.d.ts +60 -0
  155. package/dist/components/TextList/TextListItem.vue.d.ts.map +1 -0
  156. package/dist/components/TextList/Validators.d.ts +5 -0
  157. package/dist/components/TextList/Validators.d.ts.map +1 -0
  158. package/dist/components/TextList/index.d.ts +4 -0
  159. package/dist/components/TextList/index.d.ts.map +1 -0
  160. package/dist/components/Toast/Layouts/ToastLayoutAlternate.vue.d.ts +108 -108
  161. package/dist/components/Toast/Layouts/ToastLayoutAlternate.vue.d.ts.map +1 -1
  162. package/dist/components/Toast/Layouts/ToastLayoutAlternateIcon.vue.d.ts +34 -34
  163. package/dist/components/Toast/Layouts/ToastLayoutAlternateIcon.vue.d.ts.map +1 -1
  164. package/dist/components/Toast/Layouts/ToastLayoutDefault.vue.d.ts +106 -106
  165. package/dist/components/Toast/Layouts/ToastLayoutDefault.vue.d.ts.map +1 -1
  166. package/dist/components/Toast/Toast.vue.d.ts +436 -436
  167. package/dist/components/Toast/Toast.vue.d.ts.map +1 -1
  168. package/dist/components/Toggle/Toggle.vue.d.ts +4 -4
  169. package/dist/components/Toggle/Toggle.vue.d.ts.map +1 -1
  170. package/dist/components/Tooltip/Tooltip.vue.d.ts +4 -4
  171. package/dist/components/ValidationMessages/ValidationMessages.vue.d.ts +22 -22
  172. package/dist/components/ValidationMessages/ValidationMessages.vue.d.ts.map +1 -1
  173. package/dist/dialtone-vue.cjs +1 -1
  174. package/dist/dialtone-vue.js +134 -130
  175. package/dist/index.d.ts +1 -0
  176. package/dist/lib/attachment-carousel/attachment-carousel.cjs +1 -1
  177. package/dist/lib/attachment-carousel/attachment-carousel.js +1 -1
  178. package/dist/lib/attachment-carousel/index.cjs +1 -1
  179. package/dist/lib/attachment-carousel/index.js +1 -1
  180. package/dist/lib/avatar/avatar.cjs +1 -1
  181. package/dist/lib/avatar/avatar.cjs.map +1 -1
  182. package/dist/lib/avatar/avatar.js +55 -54
  183. package/dist/lib/avatar/avatar.js.map +1 -1
  184. package/dist/lib/badge/badge.cjs +1 -1
  185. package/dist/lib/badge/badge.cjs.map +1 -1
  186. package/dist/lib/badge/badge.js +36 -35
  187. package/dist/lib/badge/badge.js.map +1 -1
  188. package/dist/lib/box/box-constants.cjs +1 -1
  189. package/dist/lib/box/box-constants.cjs.map +1 -1
  190. package/dist/lib/box/box-constants.js +34 -7
  191. package/dist/lib/box/box-constants.js.map +1 -1
  192. package/dist/lib/box/box.cjs +1 -1
  193. package/dist/lib/box/box.cjs.map +1 -1
  194. package/dist/lib/box/box.js +93 -34
  195. package/dist/lib/box/box.js.map +1 -1
  196. package/dist/lib/box/index.cjs +1 -1
  197. package/dist/lib/box/index.js +3 -3
  198. package/dist/lib/box/validators.cjs +1 -1
  199. package/dist/lib/box/validators.cjs.map +1 -1
  200. package/dist/lib/box/validators.js +4 -4
  201. package/dist/lib/box/validators.js.map +1 -1
  202. package/dist/lib/button/button.cjs +1 -1
  203. package/dist/lib/button/button.cjs.map +1 -1
  204. package/dist/lib/button/button.js +69 -68
  205. package/dist/lib/button/button.js.map +1 -1
  206. package/dist/lib/chip/chip.cjs +1 -1
  207. package/dist/lib/chip/chip.cjs.map +1 -1
  208. package/dist/lib/chip/chip.js +36 -35
  209. package/dist/lib/chip/chip.js.map +1 -1
  210. package/dist/lib/codeblock/codeblock.cjs +1 -1
  211. package/dist/lib/codeblock/codeblock.cjs.map +1 -1
  212. package/dist/lib/codeblock/codeblock.js +11 -10
  213. package/dist/lib/codeblock/codeblock.js.map +1 -1
  214. package/dist/lib/combobox/combobox.cjs +1 -1
  215. package/dist/lib/combobox/combobox.js +1 -1
  216. package/dist/lib/combobox/index.cjs +1 -1
  217. package/dist/lib/combobox/index.js +1 -1
  218. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs +1 -1
  219. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs.map +1 -1
  220. package/dist/lib/combobox-multi-select/combobox-multi-select.js +53 -53
  221. package/dist/lib/combobox-multi-select/combobox-multi-select.js.map +1 -1
  222. package/dist/lib/combobox-with-popover/combobox-with-popover.cjs +1 -1
  223. package/dist/lib/combobox-with-popover/combobox-with-popover.cjs.map +1 -1
  224. package/dist/lib/combobox-with-popover/combobox-with-popover.js +48 -47
  225. package/dist/lib/combobox-with-popover/combobox-with-popover.js.map +1 -1
  226. package/dist/lib/editor/editor.cjs +1 -1
  227. package/dist/lib/editor/editor.js +1 -1
  228. package/dist/lib/emoji/emoji.cjs +1 -1
  229. package/dist/lib/emoji/emoji.cjs.map +1 -1
  230. package/dist/lib/emoji/emoji.js +25 -24
  231. package/dist/lib/emoji/emoji.js.map +1 -1
  232. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.cjs +1 -1
  233. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.cjs.map +1 -1
  234. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.js +20 -19
  235. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.js.map +1 -1
  236. package/dist/lib/empty-state/empty-state.cjs +1 -1
  237. package/dist/lib/empty-state/empty-state.cjs.map +1 -1
  238. package/dist/lib/empty-state/empty-state.js +31 -30
  239. package/dist/lib/empty-state/empty-state.js.map +1 -1
  240. package/dist/lib/filter-pill/filter-pill.cjs +1 -1
  241. package/dist/lib/filter-pill/filter-pill.cjs.map +1 -1
  242. package/dist/lib/filter-pill/filter-pill.js +73 -72
  243. package/dist/lib/filter-pill/filter-pill.js.map +1 -1
  244. package/dist/lib/icon/icon.cjs +1 -1
  245. package/dist/lib/icon/icon.cjs.map +1 -1
  246. package/dist/lib/icon/icon.js +16 -15
  247. package/dist/lib/icon/icon.js.map +1 -1
  248. package/dist/lib/input/input.cjs +1 -1
  249. package/dist/lib/input/input.cjs.map +1 -1
  250. package/dist/lib/input/input.js +64 -63
  251. package/dist/lib/input/input.js.map +1 -1
  252. package/dist/lib/link/link-constants.cjs +1 -1
  253. package/dist/lib/link/link-constants.cjs.map +1 -1
  254. package/dist/lib/link/link-constants.js +11 -9
  255. package/dist/lib/link/link-constants.js.map +1 -1
  256. package/dist/lib/link/link.cjs +1 -1
  257. package/dist/lib/link/link.cjs.map +1 -1
  258. package/dist/lib/link/link.js +17 -14
  259. package/dist/lib/link/link.js.map +1 -1
  260. package/dist/lib/loader/loader.cjs +3 -3
  261. package/dist/lib/loader/loader.cjs.map +1 -1
  262. package/dist/lib/loader/loader.js +21 -20
  263. package/dist/lib/loader/loader.js.map +1 -1
  264. package/dist/lib/message-input/index.cjs +1 -1
  265. package/dist/lib/message-input/index.js +1 -1
  266. package/dist/lib/message-input/message-input.cjs +1 -1
  267. package/dist/lib/message-input/message-input.js +1 -1
  268. package/dist/lib/modal/index.cjs +1 -1
  269. package/dist/lib/modal/index.js +3 -3
  270. package/dist/lib/modal/modal-constants.cjs +1 -1
  271. package/dist/lib/modal/modal-constants.cjs.map +1 -1
  272. package/dist/lib/modal/modal-constants.js +1 -4
  273. package/dist/lib/modal/modal-constants.js.map +1 -1
  274. package/dist/lib/modal/modal.cjs +1 -1
  275. package/dist/lib/modal/modal.cjs.map +1 -1
  276. package/dist/lib/modal/modal.js +40 -42
  277. package/dist/lib/modal/modal.js.map +1 -1
  278. package/dist/lib/progress-circle/progress-circle.cjs +1 -1
  279. package/dist/lib/progress-circle/progress-circle.cjs.map +1 -1
  280. package/dist/lib/progress-circle/progress-circle.js +33 -32
  281. package/dist/lib/progress-circle/progress-circle.js.map +1 -1
  282. package/dist/lib/prose/prose.cjs +1 -1
  283. package/dist/lib/prose/prose.cjs.map +1 -1
  284. package/dist/lib/prose/prose.js +23 -22
  285. package/dist/lib/prose/prose.js.map +1 -1
  286. package/dist/lib/segmented-control/segmented-control.cjs +1 -1
  287. package/dist/lib/segmented-control/segmented-control.cjs.map +1 -1
  288. package/dist/lib/segmented-control/segmented-control.js +42 -41
  289. package/dist/lib/segmented-control/segmented-control.js.map +1 -1
  290. package/dist/lib/select-menu/select-menu.cjs +1 -1
  291. package/dist/lib/select-menu/select-menu.cjs.map +1 -1
  292. package/dist/lib/select-menu/select-menu.js +48 -47
  293. package/dist/lib/select-menu/select-menu.js.map +1 -1
  294. package/dist/lib/split-button/split-button.cjs +1 -1
  295. package/dist/lib/split-button/split-button.cjs.map +1 -1
  296. package/dist/lib/split-button/split-button.js +45 -44
  297. package/dist/lib/split-button/split-button.js.map +1 -1
  298. package/dist/lib/tab/tab-group.cjs +1 -1
  299. package/dist/lib/tab/tab-group.cjs.map +1 -1
  300. package/dist/lib/tab/tab-group.js +34 -35
  301. package/dist/lib/tab/tab-group.js.map +1 -1
  302. package/dist/lib/text-list/index.cjs +1 -0
  303. package/dist/lib/text-list/index.js +4 -0
  304. package/dist/lib/text-list/text-list-constants.cjs +2 -0
  305. package/dist/lib/text-list/text-list-constants.cjs.map +1 -0
  306. package/dist/lib/text-list/text-list-constants.js +31 -0
  307. package/dist/lib/text-list/text-list-constants.js.map +1 -0
  308. package/dist/lib/text-list/text-list-item.cjs +1 -0
  309. package/dist/lib/text-list/text-list-item.js +2 -0
  310. package/dist/lib/text-list/text-list.cjs +1 -0
  311. package/dist/lib/text-list/text-list.js +2 -0
  312. package/dist/lib/text-list/validators.cjs +2 -0
  313. package/dist/lib/text-list/validators.cjs.map +1 -0
  314. package/dist/lib/text-list/validators.js +10 -0
  315. package/dist/lib/text-list/validators.js.map +1 -0
  316. package/dist/lib/toast/index.cjs +1 -1
  317. package/dist/lib/toast/index.js +1 -1
  318. package/dist/lib/toast/toast.cjs +1 -1
  319. package/dist/lib/toast/toast.js +1 -1
  320. package/dist/lib/toggle/toggle.cjs +1 -1
  321. package/dist/lib/toggle/toggle.cjs.map +1 -1
  322. package/dist/lib/toggle/toggle.js +23 -22
  323. package/dist/lib/toggle/toggle.js.map +1 -1
  324. package/dist/{message_input-DOE5NEU9.js → message_input-C6BcWqr8.js} +1 -1
  325. package/dist/{message_input-DOE5NEU9.js.map → message_input-C6BcWqr8.js.map} +1 -1
  326. package/dist/{message_input-DMyIOe4y.cjs → message_input-ftx8f8wC.cjs} +1 -1
  327. package/dist/{message_input-DMyIOe4y.cjs.map → message_input-ftx8f8wC.cjs.map} +1 -1
  328. package/dist/recipes/buttons/callbar_button/callbar_button.vue.d.ts +33 -33
  329. package/dist/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts +149 -149
  330. package/dist/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts.map +1 -1
  331. package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +147 -147
  332. package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts.map +1 -1
  333. package/dist/recipes/cards/ivr_node/ivr_node.vue.d.ts +173 -173
  334. package/dist/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
  335. package/dist/recipes/chips/grouped_chip/grouped_chip.vue.d.ts +40 -40
  336. package/dist/recipes/chips/grouped_chip/grouped_chip.vue.d.ts.map +1 -1
  337. package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts +132 -132
  338. package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
  339. package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts +97 -97
  340. package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts.map +1 -1
  341. package/dist/recipes/conversation_view/editor/EditorToolbarButton.vue.d.ts +25 -25
  342. package/dist/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts +107 -107
  343. package/dist/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts.map +1 -1
  344. package/dist/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts +103 -103
  345. package/dist/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts.map +1 -1
  346. package/dist/recipes/conversation_view/editor/editor.vue.d.ts +636 -636
  347. package/dist/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
  348. package/dist/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts +70 -70
  349. package/dist/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts.map +1 -1
  350. package/dist/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts +66 -66
  351. package/dist/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts.map +1 -1
  352. package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +55 -55
  353. package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
  354. package/dist/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts +55 -55
  355. package/dist/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts.map +1 -1
  356. package/dist/recipes/conversation_view/message_input/message_input.vue.d.ts +604 -604
  357. package/dist/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  358. package/dist/recipes/conversation_view/message_input/message_input_button.vue.d.ts +109 -109
  359. package/dist/recipes/conversation_view/message_input/message_input_button.vue.d.ts.map +1 -1
  360. package/dist/recipes/conversation_view/message_input/message_input_link.vue.d.ts +254 -254
  361. package/dist/recipes/conversation_view/message_input/message_input_link.vue.d.ts.map +1 -1
  362. package/dist/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts +149 -149
  363. package/dist/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts.map +1 -1
  364. package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts +30 -30
  365. package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts.map +1 -1
  366. package/dist/recipes/item_layout/contact_info/contact_info.vue.d.ts +30 -30
  367. package/dist/recipes/leftbar/callbox/callbox.vue.d.ts +28 -28
  368. package/dist/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
  369. package/dist/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts +72 -72
  370. package/dist/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts.map +1 -1
  371. package/dist/recipes/leftbar/contact_row/contact_row.vue.d.ts +215 -215
  372. package/dist/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
  373. package/dist/recipes/leftbar/general_row/general_row.vue.d.ts +176 -176
  374. package/dist/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  375. package/dist/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts +80 -80
  376. package/dist/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts.map +1 -1
  377. package/dist/recipes/leftbar/group_row/group_row.vue.d.ts +181 -181
  378. package/dist/recipes/leftbar/group_row/group_row.vue.d.ts.map +1 -1
  379. package/dist/recipes/leftbar/unread_pill/unread_pill.vue.d.ts +10 -10
  380. package/dist/recipes/leftbar/unread_pill/unread_pill.vue.d.ts.map +1 -1
  381. package/package.json +4 -4
  382. package/dist/Combobox-By01ETlj.js.map +0 -1
  383. package/dist/Combobox-D4hc1-41.cjs +0 -3
  384. package/dist/Combobox-D4hc1-41.cjs.map +0 -1
  385. package/dist/Toast-CHbVmbBg.js.map +0 -1
  386. package/dist/Toast-DX-REYXG.cjs +0 -2
  387. package/dist/Toast-DX-REYXG.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"filter-pill.cjs","names":[],"sources":["../../../components/FilterPill/FilterPill.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n 'd-filter-pill',\n { 'd-filter-pill--read-only': readOnly },\n ]\"\n data-qa=\"dt-filter-pill\"\n >\n <component\n :is=\"overlayComponent\"\n v-model:open=\"isOpen\"\n v-bind=\"overlayProps\"\n :content-mode=\"contentMode\"\n >\n <template #anchor=\"slotData\">\n <dt-button\n v-dt-tooltip=\"resolvedStartTooltipText\"\n v-bind=\"useDropdown ? slotData : slotData.attrs\"\n :active=\"isActive\"\n :aria-disabled=\"readOnly || undefined\"\n :class=\"[\n 'd-filter-pill__primary',\n {\n 'd-filter-pill--selected': isActive,\n },\n ]\"\n :disabled=\"disabled\"\n :kind=\"buttonKind\"\n :size=\"size\"\n data-qa=\"dt-filter-pill__button\"\n importance=\"outlined\"\n @click=\"openPopover\"\n @keydown.up.down.prevent=\"openPopover\"\n >\n <template\n v-if=\"$slots.startIcon\"\n #startIcon=\"{ iconSize }\"\n >\n <!-- @slot Icon displayed before the label -->\n <slot\n name=\"startIcon\"\n :icon-size=\"iconSize\"\n />\n </template>\n <span :class=\"['d-filter-pill__label', labelClass]\">\n <!-- @slot Allows you to customize the label slot -->\n <slot\n :label=\"label\"\n :filters=\"filters\"\n :active-filters=\"activeFilters\"\n :active-filter-list=\"activeFilterList\"\n :active-filter-overflow=\"activeFilterOverflow\"\n >\n <span\n class=\"d-filter-pill__label-start\"\n :title=\"label\"\n v-text=\"label\"\n />\n <span\n v-if=\"activeFilterList\"\n class=\"d-filter-pill__label-end\"\n :title=\"activeFilterList\"\n v-text=\"activeFilterList\"\n />\n <span\n v-if=\"activeFilterOverflow\"\n class=\"d-filter-pill__label-end-overflow\"\n :title=\"`plus ${activeFilters.length - 1} others`\"\n v-text=\"activeFilterOverflow\"\n />\n </slot>\n </span>\n <template\n v-if=\"!readOnly\"\n #endIcon=\"{ iconSize }\"\n >\n <dt-icon-chevron-down\n :size=\"iconSize\"\n class=\"d-filter-pill__icon\"\n data-qa=\"dt-filter-pill__icon\"\n />\n </template>\n </dt-button>\n </template>\n <template\n v-if=\"!useDropdown\"\n #content=\"{ close }\"\n >\n <!-- @slot Allows you to override the popover content, only use this if you need custom behavior -->\n <slot\n :close=\"close\"\n :apply=\"applySelection\"\n :cancel=\"cancelSelection\"\n :pending-filters=\"pendingFilters\"\n name=\"content\"\n >\n <dt-checkbox-group\n v-if=\"modelValue?.length\"\n :model-value=\"deferSelection ? pendingActiveFilters : activeFilters\"\n :aria-label=\"label\"\n :name=\"label || 'filter-pill'\"\n >\n <dt-checkbox\n v-for=\"filter in displayFilters\"\n :key=\"filter.name\"\n :label=\"filter.name\"\n :value=\"filter.name\"\n @update:model-value=\"($event) => filter.active = $event\"\n />\n </dt-checkbox-group>\n </slot>\n </template>\n <template\n v-if=\"!useDropdown && $slots.headerContent\"\n #headerContent=\"{ close }\"\n >\n <!-- @slot Allows you to customize the popover header -->\n <slot\n name=\"headerContent\"\n :close=\"close\"\n />\n </template>\n <template\n v-if=\"!useDropdown && (deferSelection || $slots.footerContent)\"\n #footerContent=\"{ close }\"\n >\n <!-- @slot Allows you to customize the popover footer. Receives { close, apply, cancel } bindings. -->\n <slot\n name=\"footerContent\"\n :close=\"close\"\n :apply=\"applySelection\"\n :cancel=\"cancelSelection\"\n >\n <dt-stack\n v-if=\"deferSelection\"\n direction=\"row\"\n gap=\"400\"\n justify=\"end\"\n data-qa=\"dt-filter-pill__deferred-footer\"\n >\n <dt-button\n importance=\"clear\"\n kind=\"muted\"\n :size=\"200\"\n data-qa=\"dt-filter-pill__cancel-button\"\n @click=\"cancelSelection\"\n >\n {{ cancelButtonLabel }}\n </dt-button>\n <dt-button\n importance=\"primary\"\n :size=\"200\"\n data-qa=\"dt-filter-pill__apply-button\"\n @click=\"applySelection\"\n >\n {{ applyButtonLabel }}\n </dt-button>\n </dt-stack>\n </slot>\n </template>\n <template\n v-if=\"useDropdown\"\n #list=\"{ close }\"\n >\n <!-- @slot Allows you to override the dropdown content -->\n <slot\n :close=\"close\"\n name=\"content\"\n >\n <dt-list-item\n v-for=\"filter in filters\"\n :key=\"filter.name\"\n role=\"menuitem\"\n navigation-type=\"arrow-keys\"\n :selected=\"filter.active\"\n @click=\"selectFilter(filter, close)\"\n >\n {{ filter.name }}\n </dt-list-item>\n </slot>\n </template>\n </component>\n <dt-button\n v-if=\"hasClear\"\n v-dt-tooltip=\"endTooltipText\"\n :active=\"isActive\"\n :aria-label=\"clearButtonAriaLabel\"\n :class=\"[\n 'd-filter-pill__clear',\n { 'd-filter-pill__clear--selected': isActive },\n ]\"\n :disabled=\"disabled\"\n :kind=\"buttonKind\"\n :size=\"size\"\n :title=\"clearButtonTitle\"\n data-qa=\"dt-filter-pill__clear-button\"\n importance=\"outlined\"\n @click=\"clearFilter\"\n >\n <template #icon>\n <dt-icon-close :size=\"clearIconSize\" />\n </template>\n </dt-button>\n </div>\n</template>\n\n<script>\nimport { DtPopover, POPOVER_APPEND_TO_VALUES, POPOVER_PADDING_CLASSES } from '@/components/Popover';\nimport { HTML_ELEMENT_TYPE } from '@/common/constants';\nimport { CONTENT_MODE_PROP } from '@/common/mode_constants';\nimport { BUTTON_SIZE_MODIFIERS, BUTTON_ICON_SIZES, DtButton } from '@/components/Button';\nimport { DtIconChevronDown, DtIconClose } from '@dialpad/dialtone-icons/vue';\nimport { DialtoneLocalization } from '@/localization';\nimport { DtCheckbox } from '@/components/Checkbox';\nimport { DtCheckboxGroup } from '@/components/CheckboxGroup';\nimport { DtDropdown } from '@/components/Dropdown';\nimport { DtListItem } from '@/components/ListItem';\nimport { DtStack } from '@/components/Stack';\n\nexport default {\n name: 'DtFilterPill',\n\n components: {\n DtCheckboxGroup,\n DtCheckbox,\n DtPopover,\n DtButton,\n DtIconClose,\n DtIconChevronDown,\n DtDropdown,\n DtListItem,\n DtStack,\n },\n\n props: {\n /**\n * When true, uses DtDropdown instead of DtPopover as the overlay.\n * Provides keyboard navigation (arrow keys) for list items.\n * Default content renders DtListItem elements (single-select)\n * instead of checkboxes (multi-select).\n */\n useDropdown: {\n type: Boolean,\n default: false,\n },\n\n /**\n * When true, checkbox changes are held in a pending state until the user\n * clicks Apply. Cancel or closing the popover discards pending changes.\n * Only applies to popover mode (not useDropdown).\n */\n deferSelection: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Array of filters to display in the popover,\n * should be an array of objects with `name` and `active` properties\n */\n modelValue: {\n type: Array,\n default: () => [],\n },\n\n /**\n * Text shown in tooltip when you hover the start button,\n * required if no content is passed to default slot\n */\n startTooltipText: {\n type: String,\n default: '',\n },\n\n /**\n * HTML disabled attribute\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * When true, the pill cannot be interacted with but does not\n * receive disabled visual styling. Adds `d-filter-pill--read-only`\n * class and hides the chevron icon. The clear button is suppressed\n * and the tooltip falls back to a read-only message when\n * startTooltipText is not provided.\n */\n readOnly: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Shows the clear button when a filter is active\n * @values true, false\n */\n showClear: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Label of the button\n */\n label: {\n type: String,\n default: undefined,\n },\n\n /**\n * Text shown in tooltip when you hover the end button,\n * required as it is an icon only button\n */\n endTooltipText: {\n type: String,\n default: '',\n },\n\n /**\n * Sets the element to which the\n * <a class=\"d-link\" href=\"https://dialtone.dialpad.com/components/popover.html#vue-api\" target=\"_blank\">popover component</a>\n * is going to append to\n * @values body, parent, root, HTMLElement\n */\n popoverAppendTo: {\n type: [HTML_ELEMENT_TYPE, String],\n default: 'body',\n validator: appendTo => {\n return POPOVER_APPEND_TO_VALUES.includes(appendTo) ||\n (appendTo instanceof HTMLElement);\n },\n },\n\n /**\n * If the dropdown does not fit in the direction described by \"popoverPlacement\",\n * it will attempt to change it's direction to the \"popoverFallbackPlacements\".\n *\n * @values top, top-start, top-end,\n * right, right-start, right-end,\n * left, left-start, left-end,\n * bottom, bottom-start, bottom-end,\n * auto, auto-start, auto-end\n * */\n popoverFallbackPlacements: {\n type: Array,\n default: () => {\n return ['auto'];\n },\n },\n\n /**\n * Determines maximum height for the popover before overflow.\n * Possible units rem|px|em\n */\n popoverMaxHeight: {\n type: String,\n default: '',\n },\n\n /**\n * Determines maximum width for the popover before overflow.\n * Possible units rem|px|%|em\n */\n popoverMaxWidth: {\n type: String,\n default: '',\n },\n\n /**\n * Padding size class for the popover content.\n * @values none, small, medium, large\n */\n popoverPadding: {\n type: String,\n default: 'large',\n validator: (padding) => {\n return Object.keys(POPOVER_PADDING_CLASSES).some((item) => item === padding);\n },\n },\n\n /**\n * The direction the popover displays relative to the anchor.\n * <a class=\"d-link\" href=\"https://atomiks.github.io/tippyjs/v6/all-props/#placement\" target=\"_blank\">Tippy.js docs</a>\n * @values top, top-start, top-end, right, right-start, right-end, left, left-start, left-end, bottom, bottom-start, bottom-end, auto, auto-start, auto-end\n */\n popoverPlacement: {\n type: String,\n default: 'bottom-start',\n },\n\n /**\n * Additional CSS class(es) applied to the label wrapper element.\n */\n labelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional CSS class(es) applied to the popover content area.\n * Only applies when useDropdown is false.\n */\n popoverContentClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional CSS class(es) applied to the outer popover header element (`d-popover__header`).\n * Only applies when useDropdown is false.\n */\n popoverHeaderClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional CSS class(es) applied to the outer popover footer element (`d-popover__footer`).\n * Only applies when useDropdown is false.\n */\n popoverFooterClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional CSS class(es) applied to the popover dialog element.\n * Only applies when useDropdown is false.\n */\n popoverDialogClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional CSS class(es) applied to the dropdown list wrapper.\n * Only applies when useDropdown is true.\n */\n dropdownListClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Applies a color mode to the positioned content element.\n * @values light, dark, invert\n */\n contentMode: CONTENT_MODE_PROP,\n\n /**\n * The size of the button.\n * @values 100, 200, 300, 400, 500\n */\n size: {\n type: [String, Number],\n default: 200,\n validator: (s) => Object.keys(BUTTON_SIZE_MODIFIERS).includes(String(s)),\n },\n },\n\n emits: [\n /**\n * Emitted when clicking the clear button\n *\n * @event clear\n * @type {Boolean | Array}\n */\n 'clear',\n\n /**\n * Emitted when popover is shown or hidden\n *\n * @event opened\n * @type {Boolean | Array}\n */\n 'open',\n\n /**\n * Emitted when the active filters change\n * @type {Array}\n */\n 'update:modelValue',\n\n /**\n * Emitted when deferred selection is applied\n *\n * @event apply\n */\n 'apply',\n ],\n\n data () {\n return {\n isOpen: false,\n i18n: new DialtoneLocalization(),\n filters: this.modelValue,\n pendingFilters: null,\n };\n },\n\n computed: {\n overlayComponent () {\n return this.useDropdown ? 'dt-dropdown' : 'dt-popover';\n },\n\n overlayProps () {\n const props = {\n 'append-to': this.popoverAppendTo,\n 'fallback-placements': this.popoverFallbackPlacements,\n 'max-height': this.popoverMaxHeight,\n 'max-width': this.popoverMaxWidth,\n modal: true,\n placement: this.popoverPlacement,\n };\n if (this.useDropdown) {\n props['list-class'] = this.dropdownListClass;\n } else {\n props.padding = this.popoverPadding;\n props['content-class'] = this.popoverContentClass;\n props['header-wrapper-class'] = this.popoverHeaderClass;\n props['footer-wrapper-class'] = this.popoverFooterClass;\n props['dialog-class'] = this.popoverDialogClass;\n }\n return props;\n },\n\n buttonKind () {\n return (this.isActive && !this.disabled) ? 'default' : 'muted';\n },\n\n resolvedStartTooltipText () {\n if (this.readOnly) return this.startTooltipText || this.i18n.$t('DIALTONE_FILTER_PILL_READ_ONLY_TOOLTIP');\n return this.startTooltipText;\n },\n\n clearButtonAriaLabel () {\n return this.endTooltipText || this.i18n.$t('DIALTONE_FILTER_PILL_CLEAR_BUTTON_LABEL');\n },\n\n clearButtonTitle () {\n if (this.endTooltipText) return;\n\n return this.clearButtonAriaLabel\n },\n\n activeFilters () {\n return this.filters.filter(filter => filter.active).map(filter => filter.name);\n },\n\n activeFilterList () {\n if (this.activeFilters.length === this.filters.length && this.filters.length > 1) {\n return 'All';\n }\n\n return this.activeFilters[0] ?? '';\n },\n\n activeFilterOverflow () {\n if (this.activeFilters.length <= 1) return '';\n if (this.activeFilters.length === this.filters.length && this.filters.length > 1) return '';\n\n return '+' + (this.activeFilters.length - 1);\n },\n\n isActive () {\n return this.activeFilterList.length > 0;\n },\n\n hasClear () {\n return !this.readOnly && this.showClear && this.activeFilterList.length > 0;\n },\n\n displayFilters () {\n return (this.deferSelection && this.pendingFilters) ? this.pendingFilters : this.filters;\n },\n\n pendingActiveFilters () {\n if (!this.pendingFilters) return [];\n return this.pendingFilters.filter(f => f.active).map(f => f.name);\n },\n\n cancelButtonLabel () {\n return this.i18n.$t('DIALTONE_FILTER_PILL_CANCEL_BUTTON_LABEL');\n },\n\n applyButtonLabel () {\n return this.i18n.$t('DIALTONE_FILTER_PILL_APPLY_BUTTON_LABEL');\n },\n\n clearIconSize () {\n if (String(this.size) === '100') return '100';\n return BUTTON_ICON_SIZES[String(this.size)];\n },\n },\n\n watch: {\n isOpen (isOpen) {\n this.$emit('open', isOpen);\n if (this.deferSelection) {\n if (isOpen) {\n this.pendingFilters = JSON.parse(JSON.stringify(this.filters));\n } else {\n this.pendingFilters = null;\n }\n }\n },\n\n filters: {\n deep: true,\n handler (filters) {\n this.$emit('update:modelValue', filters);\n },\n },\n },\n\n mounted () {\n if (!(this.modelValue?.length || (this.$slots.content && this.$slots.content()))) {\n console.warn('Please provide content through the v-model or the \"content\" slot.');\n }\n if (this.deferSelection && this.useDropdown) {\n console.warn('deferSelection has no effect when useDropdown is true.');\n }\n },\n\n methods: {\n clearFilter ($event) {\n this.filters.forEach(filter => delete filter.active);\n this.$emit('clear', $event)\n },\n\n openPopover () {\n if (this.readOnly) return;\n this.isOpen = true;\n },\n\n selectFilter (selectedFilter, close) {\n this.filters.forEach(filter => {\n filter.active = filter === selectedFilter;\n });\n close();\n },\n\n applySelection () {\n if (!this.pendingFilters) return;\n this.filters.forEach((filter, i) => {\n if (this.pendingFilters[i]) {\n filter.active = this.pendingFilters[i].active;\n } else {\n delete filter.active;\n }\n });\n this.$emit('apply');\n this.isOpen = false;\n },\n\n cancelSelection () {\n this.isOpen = false;\n },\n },\n};\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"filter-pill.cjs","names":[],"sources":["../../../components/FilterPill/FilterPill.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n 'd-filter-pill',\n { 'd-filter-pill--read-only': readOnly },\n ]\"\n data-qa=\"dt-filter-pill\"\n >\n <component\n :is=\"overlayComponent\"\n v-model:open=\"isOpen\"\n v-bind=\"overlayProps\"\n :content-mode=\"contentMode\"\n >\n <template #anchor=\"slotData\">\n <dt-button\n v-dt-tooltip=\"resolvedStartTooltipText\"\n v-bind=\"useDropdown ? slotData : slotData.attrs\"\n :active=\"isActive\"\n :aria-disabled=\"readOnly || undefined\"\n :class=\"[\n 'd-filter-pill__primary',\n {\n 'd-filter-pill--selected': isActive,\n },\n ]\"\n :disabled=\"disabled\"\n :kind=\"buttonKind\"\n :size=\"size\"\n data-qa=\"dt-filter-pill__button\"\n importance=\"outlined\"\n @click=\"openPopover\"\n @keydown.up.down.prevent=\"openPopover\"\n >\n <template\n v-if=\"$slots.startIcon\"\n #startIcon=\"{ iconSize }\"\n >\n <!-- @slot Icon displayed before the label -->\n <slot\n name=\"startIcon\"\n :icon-size=\"iconSize\"\n />\n </template>\n <span :class=\"['d-filter-pill__label', labelClass]\">\n <!-- @slot Allows you to customize the label slot -->\n <slot\n :label=\"label\"\n :filters=\"filters\"\n :active-filters=\"activeFilters\"\n :active-filter-list=\"activeFilterList\"\n :active-filter-overflow=\"activeFilterOverflow\"\n >\n <span\n class=\"d-filter-pill__label-start\"\n :title=\"label\"\n v-text=\"label\"\n />\n <span\n v-if=\"activeFilterList\"\n class=\"d-filter-pill__label-end\"\n :title=\"activeFilterList\"\n v-text=\"activeFilterList\"\n />\n <span\n v-if=\"activeFilterOverflow\"\n class=\"d-filter-pill__label-end-overflow\"\n :title=\"`plus ${activeFilters.length - 1} others`\"\n v-text=\"activeFilterOverflow\"\n />\n </slot>\n </span>\n <template\n v-if=\"!readOnly\"\n #endIcon=\"{ iconSize }\"\n >\n <dt-icon-chevron-down\n :size=\"iconSize\"\n class=\"d-filter-pill__icon\"\n data-qa=\"dt-filter-pill__icon\"\n />\n </template>\n </dt-button>\n </template>\n <template\n v-if=\"!useDropdown\"\n #content=\"{ close }\"\n >\n <!-- @slot Allows you to override the popover content, only use this if you need custom behavior -->\n <slot\n :close=\"close\"\n :apply=\"applySelection\"\n :cancel=\"cancelSelection\"\n :pending-filters=\"pendingFilters\"\n name=\"content\"\n >\n <dt-checkbox-group\n v-if=\"modelValue?.length\"\n :model-value=\"deferSelection ? pendingActiveFilters : activeFilters\"\n :aria-label=\"label\"\n :name=\"label || 'filter-pill'\"\n >\n <dt-checkbox\n v-for=\"filter in displayFilters\"\n :key=\"filter.name\"\n :label=\"filter.name\"\n :value=\"filter.name\"\n @update:model-value=\"($event) => filter.active = $event\"\n />\n </dt-checkbox-group>\n </slot>\n </template>\n <template\n v-if=\"!useDropdown && $slots.headerContent\"\n #headerContent=\"{ close }\"\n >\n <!-- @slot Allows you to customize the popover header -->\n <slot\n name=\"headerContent\"\n :close=\"close\"\n />\n </template>\n <template\n v-if=\"!useDropdown && (deferSelection || $slots.footerContent)\"\n #footerContent=\"{ close }\"\n >\n <!-- @slot Allows you to customize the popover footer. Receives { close, apply, cancel } bindings. -->\n <slot\n name=\"footerContent\"\n :close=\"close\"\n :apply=\"applySelection\"\n :cancel=\"cancelSelection\"\n >\n <dt-stack\n v-if=\"deferSelection\"\n direction=\"row\"\n gap=\"400\"\n justify=\"end\"\n data-qa=\"dt-filter-pill__deferred-footer\"\n >\n <dt-button\n importance=\"clear\"\n kind=\"muted\"\n :size=\"200\"\n data-qa=\"dt-filter-pill__cancel-button\"\n @click=\"cancelSelection\"\n >\n {{ cancelButtonLabel }}\n </dt-button>\n <dt-button\n importance=\"primary\"\n :size=\"200\"\n data-qa=\"dt-filter-pill__apply-button\"\n @click=\"applySelection\"\n >\n {{ applyButtonLabel }}\n </dt-button>\n </dt-stack>\n </slot>\n </template>\n <template\n v-if=\"useDropdown\"\n #list=\"{ close }\"\n >\n <!-- @slot Allows you to override the dropdown content -->\n <slot\n :close=\"close\"\n name=\"content\"\n >\n <dt-list-item\n v-for=\"filter in filters\"\n :key=\"filter.name\"\n role=\"menuitem\"\n navigation-type=\"arrow-keys\"\n :selected=\"filter.active\"\n @click=\"selectFilter(filter, close)\"\n >\n {{ filter.name }}\n </dt-list-item>\n </slot>\n </template>\n </component>\n <dt-button\n v-if=\"hasClear\"\n v-dt-tooltip=\"endTooltipText\"\n :active=\"isActive\"\n :aria-label=\"clearButtonAriaLabel\"\n :class=\"[\n 'd-filter-pill__clear',\n { 'd-filter-pill__clear--selected': isActive },\n ]\"\n :disabled=\"disabled\"\n :kind=\"buttonKind\"\n :size=\"size\"\n :title=\"clearButtonTitle\"\n data-qa=\"dt-filter-pill__clear-button\"\n importance=\"outlined\"\n @click=\"clearFilter\"\n >\n <template #icon>\n <dt-icon-close :size=\"clearIconSize\" />\n </template>\n </dt-button>\n </div>\n</template>\n\n<script>\nimport { DtPopover, POPOVER_APPEND_TO_VALUES, POPOVER_PADDING_CLASSES } from '@/components/Popover';\nimport { HTML_ELEMENT_TYPE } from '@/common/constants';\nimport { CONTENT_MODE_PROP } from '@/common/mode_constants';\nimport { ordinalSizeValidator } from '@/common/validators';\nimport { BUTTON_SIZE_MODIFIERS, BUTTON_ICON_SIZES, DtButton } from '@/components/Button';\nimport { DtIconChevronDown, DtIconClose } from '@dialpad/dialtone-icons/vue';\nimport { DialtoneLocalization } from '@/localization';\nimport { DtCheckbox } from '@/components/Checkbox';\nimport { DtCheckboxGroup } from '@/components/CheckboxGroup';\nimport { DtDropdown } from '@/components/Dropdown';\nimport { DtListItem } from '@/components/ListItem';\nimport { DtStack } from '@/components/Stack';\n\nexport default {\n name: 'DtFilterPill',\n\n components: {\n DtCheckboxGroup,\n DtCheckbox,\n DtPopover,\n DtButton,\n DtIconClose,\n DtIconChevronDown,\n DtDropdown,\n DtListItem,\n DtStack,\n },\n\n props: {\n /**\n * When true, uses DtDropdown instead of DtPopover as the overlay.\n * Provides keyboard navigation (arrow keys) for list items.\n * Default content renders DtListItem elements (single-select)\n * instead of checkboxes (multi-select).\n */\n useDropdown: {\n type: Boolean,\n default: false,\n },\n\n /**\n * When true, checkbox changes are held in a pending state until the user\n * clicks Apply. Cancel or closing the popover discards pending changes.\n * Only applies to popover mode (not useDropdown).\n */\n deferSelection: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Array of filters to display in the popover,\n * should be an array of objects with `name` and `active` properties\n */\n modelValue: {\n type: Array,\n default: () => [],\n },\n\n /**\n * Text shown in tooltip when you hover the start button,\n * required if no content is passed to default slot\n */\n startTooltipText: {\n type: String,\n default: '',\n },\n\n /**\n * HTML disabled attribute\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * When true, the pill cannot be interacted with but does not\n * receive disabled visual styling. Adds `d-filter-pill--read-only`\n * class and hides the chevron icon. The clear button is suppressed\n * and the tooltip falls back to a read-only message when\n * startTooltipText is not provided.\n */\n readOnly: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Shows the clear button when a filter is active\n * @values true, false\n */\n showClear: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Label of the button\n */\n label: {\n type: String,\n default: undefined,\n },\n\n /**\n * Text shown in tooltip when you hover the end button,\n * required as it is an icon only button\n */\n endTooltipText: {\n type: String,\n default: '',\n },\n\n /**\n * Sets the element to which the\n * <a class=\"d-link\" href=\"https://dialtone.dialpad.com/components/popover.html#vue-api\" target=\"_blank\">popover component</a>\n * is going to append to\n * @values body, parent, root, HTMLElement\n */\n popoverAppendTo: {\n type: [HTML_ELEMENT_TYPE, String],\n default: 'body',\n validator: appendTo => {\n return POPOVER_APPEND_TO_VALUES.includes(appendTo) ||\n (appendTo instanceof HTMLElement);\n },\n },\n\n /**\n * If the dropdown does not fit in the direction described by \"popoverPlacement\",\n * it will attempt to change it's direction to the \"popoverFallbackPlacements\".\n *\n * @values top, top-start, top-end,\n * right, right-start, right-end,\n * left, left-start, left-end,\n * bottom, bottom-start, bottom-end,\n * auto, auto-start, auto-end\n * */\n popoverFallbackPlacements: {\n type: Array,\n default: () => {\n return ['auto'];\n },\n },\n\n /**\n * Determines maximum height for the popover before overflow.\n * Possible units rem|px|em\n */\n popoverMaxHeight: {\n type: String,\n default: '',\n },\n\n /**\n * Determines maximum width for the popover before overflow.\n * Possible units rem|px|%|em\n */\n popoverMaxWidth: {\n type: String,\n default: '',\n },\n\n /**\n * Padding size class for the popover content.\n * @values none, small, medium, large\n */\n popoverPadding: {\n type: String,\n default: 'large',\n validator: (padding) => {\n return Object.keys(POPOVER_PADDING_CLASSES).some((item) => item === padding);\n },\n },\n\n /**\n * The direction the popover displays relative to the anchor.\n * <a class=\"d-link\" href=\"https://atomiks.github.io/tippyjs/v6/all-props/#placement\" target=\"_blank\">Tippy.js docs</a>\n * @values top, top-start, top-end, right, right-start, right-end, left, left-start, left-end, bottom, bottom-start, bottom-end, auto, auto-start, auto-end\n */\n popoverPlacement: {\n type: String,\n default: 'bottom-start',\n },\n\n /**\n * Additional CSS class(es) applied to the label wrapper element.\n */\n labelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional CSS class(es) applied to the popover content area.\n * Only applies when useDropdown is false.\n */\n popoverContentClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional CSS class(es) applied to the outer popover header element (`d-popover__header`).\n * Only applies when useDropdown is false.\n */\n popoverHeaderClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional CSS class(es) applied to the outer popover footer element (`d-popover__footer`).\n * Only applies when useDropdown is false.\n */\n popoverFooterClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional CSS class(es) applied to the popover dialog element.\n * Only applies when useDropdown is false.\n */\n popoverDialogClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional CSS class(es) applied to the dropdown list wrapper.\n * Only applies when useDropdown is true.\n */\n dropdownListClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Applies a color mode to the positioned content element.\n * @values light, dark, invert\n */\n contentMode: CONTENT_MODE_PROP,\n\n /**\n * The size of the button.\n * @values 100, 200, 300, 400, 500\n */\n size: {\n type: [String, Number],\n default: 200,\n validator: ordinalSizeValidator(BUTTON_SIZE_MODIFIERS),\n },\n },\n\n emits: [\n /**\n * Emitted when clicking the clear button\n *\n * @event clear\n * @type {Boolean | Array}\n */\n 'clear',\n\n /**\n * Emitted when popover is shown or hidden\n *\n * @event opened\n * @type {Boolean | Array}\n */\n 'open',\n\n /**\n * Emitted when the active filters change\n * @type {Array}\n */\n 'update:modelValue',\n\n /**\n * Emitted when deferred selection is applied\n *\n * @event apply\n */\n 'apply',\n ],\n\n data () {\n return {\n isOpen: false,\n i18n: new DialtoneLocalization(),\n filters: this.modelValue,\n pendingFilters: null,\n };\n },\n\n computed: {\n overlayComponent () {\n return this.useDropdown ? 'dt-dropdown' : 'dt-popover';\n },\n\n overlayProps () {\n const props = {\n 'append-to': this.popoverAppendTo,\n 'fallback-placements': this.popoverFallbackPlacements,\n 'max-height': this.popoverMaxHeight,\n 'max-width': this.popoverMaxWidth,\n modal: true,\n placement: this.popoverPlacement,\n };\n if (this.useDropdown) {\n props['list-class'] = this.dropdownListClass;\n } else {\n props.padding = this.popoverPadding;\n props['content-class'] = this.popoverContentClass;\n props['header-wrapper-class'] = this.popoverHeaderClass;\n props['footer-wrapper-class'] = this.popoverFooterClass;\n props['dialog-class'] = this.popoverDialogClass;\n }\n return props;\n },\n\n buttonKind () {\n return (this.isActive && !this.disabled) ? 'default' : 'muted';\n },\n\n resolvedStartTooltipText () {\n if (this.readOnly) return this.startTooltipText || this.i18n.$t('DIALTONE_FILTER_PILL_READ_ONLY_TOOLTIP');\n return this.startTooltipText;\n },\n\n clearButtonAriaLabel () {\n return this.endTooltipText || this.i18n.$t('DIALTONE_FILTER_PILL_CLEAR_BUTTON_LABEL');\n },\n\n clearButtonTitle () {\n if (this.endTooltipText) return;\n\n return this.clearButtonAriaLabel\n },\n\n activeFilters () {\n return this.filters.filter(filter => filter.active).map(filter => filter.name);\n },\n\n activeFilterList () {\n if (this.activeFilters.length === this.filters.length && this.filters.length > 1) {\n return 'All';\n }\n\n return this.activeFilters[0] ?? '';\n },\n\n activeFilterOverflow () {\n if (this.activeFilters.length <= 1) return '';\n if (this.activeFilters.length === this.filters.length && this.filters.length > 1) return '';\n\n return '+' + (this.activeFilters.length - 1);\n },\n\n isActive () {\n return this.activeFilterList.length > 0;\n },\n\n hasClear () {\n return !this.readOnly && this.showClear && this.activeFilterList.length > 0;\n },\n\n displayFilters () {\n return (this.deferSelection && this.pendingFilters) ? this.pendingFilters : this.filters;\n },\n\n pendingActiveFilters () {\n if (!this.pendingFilters) return [];\n return this.pendingFilters.filter(f => f.active).map(f => f.name);\n },\n\n cancelButtonLabel () {\n return this.i18n.$t('DIALTONE_FILTER_PILL_CANCEL_BUTTON_LABEL');\n },\n\n applyButtonLabel () {\n return this.i18n.$t('DIALTONE_FILTER_PILL_APPLY_BUTTON_LABEL');\n },\n\n clearIconSize () {\n if (String(this.size) === '100') return '100';\n return BUTTON_ICON_SIZES[String(this.size)];\n },\n },\n\n watch: {\n isOpen (isOpen) {\n this.$emit('open', isOpen);\n if (this.deferSelection) {\n if (isOpen) {\n this.pendingFilters = JSON.parse(JSON.stringify(this.filters));\n } else {\n this.pendingFilters = null;\n }\n }\n },\n\n filters: {\n deep: true,\n handler (filters) {\n this.$emit('update:modelValue', filters);\n },\n },\n },\n\n mounted () {\n if (!(this.modelValue?.length || (this.$slots.content && this.$slots.content()))) {\n console.warn('Please provide content through the v-model or the \"content\" slot.');\n }\n if (this.deferSelection && this.useDropdown) {\n console.warn('deferSelection has no effect when useDropdown is true.');\n }\n },\n\n methods: {\n clearFilter ($event) {\n this.filters.forEach(filter => delete filter.active);\n this.$emit('clear', $event)\n },\n\n openPopover () {\n if (this.readOnly) return;\n this.isOpen = true;\n },\n\n selectFilter (selectedFilter, close) {\n this.filters.forEach(filter => {\n filter.active = filter === selectedFilter;\n });\n close();\n },\n\n applySelection () {\n if (!this.pendingFilters) return;\n this.filters.forEach((filter, i) => {\n if (this.pendingFilters[i]) {\n filter.active = this.pendingFilters[i].active;\n } else {\n delete filter.active;\n }\n });\n this.$emit('apply');\n this.isOpen = false;\n },\n\n cancelSelection () {\n this.isOpen = false;\n },\n },\n};\n</script>\n"],"mappings":"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"}
@@ -1,31 +1,32 @@
1
1
  import { HTML_ELEMENT_TYPE as e } from "../../common/constants/index.js";
2
- import { t } from "../../_plugin-vue_export-helper-BTgDAbhb.js";
3
- import { t as n } from "../../mode_constants-tb7TL85q.js";
4
- import { BUTTON_ICON_SIZES as r, BUTTON_SIZE_MODIFIERS as i } from "../button/button-constants.js";
5
- import { DialtoneLocalization as a } from "../../localization/index.js";
6
- import o from "../button/button.js";
7
- import s from "../checkbox/checkbox.js";
8
- import c from "../checkbox-group/checkbox-group.js";
9
- import l from "../list-item/list-item.js";
10
- import u from "../stack/stack.js";
11
- import { POPOVER_APPEND_TO_VALUES as d, POPOVER_PADDING_CLASSES as f } from "../popover/popover-constants.js";
12
- import p from "../popover/popover.js";
13
- import m from "../dropdown/dropdown.js";
14
- import { Fragment as h, createBlock as g, createCommentVNode as _, createElementBlock as v, createElementVNode as y, createSlots as b, createTextVNode as x, createVNode as S, mergeProps as C, normalizeClass as w, openBlock as T, renderList as E, renderSlot as D, resolveComponent as O, resolveDirective as k, resolveDynamicComponent as A, toDisplayString as j, withCtx as M, withDirectives as N, withKeys as P, withModifiers as F } from "vue";
15
- import { DtIconChevronDown as I, DtIconClose as L } from "@dialpad/dialtone-icons/vue";
2
+ import { ordinalSizeValidator as t } from "../../common/validators/index.js";
3
+ import { t as n } from "../../_plugin-vue_export-helper-BTgDAbhb.js";
4
+ import { t as r } from "../../mode_constants-tb7TL85q.js";
5
+ import { BUTTON_ICON_SIZES as i, BUTTON_SIZE_MODIFIERS as a } from "../button/button-constants.js";
6
+ import { DialtoneLocalization as o } from "../../localization/index.js";
7
+ import s from "../button/button.js";
8
+ import c from "../checkbox/checkbox.js";
9
+ import l from "../checkbox-group/checkbox-group.js";
10
+ import u from "../list-item/list-item.js";
11
+ import d from "../stack/stack.js";
12
+ import { POPOVER_APPEND_TO_VALUES as f, POPOVER_PADDING_CLASSES as p } from "../popover/popover-constants.js";
13
+ import m from "../popover/popover.js";
14
+ import h from "../dropdown/dropdown.js";
15
+ import { Fragment as g, createBlock as _, createCommentVNode as v, createElementBlock as y, createElementVNode as b, createSlots as x, createTextVNode as S, createVNode as C, mergeProps as w, normalizeClass as T, openBlock as E, renderList as D, renderSlot as O, resolveComponent as k, resolveDirective as A, resolveDynamicComponent as j, toDisplayString as M, withCtx as N, withDirectives as P, withKeys as F, withModifiers as I } from "vue";
16
+ import { DtIconChevronDown as L, DtIconClose as R } from "@dialpad/dialtone-icons/vue";
16
17
  //#region components/FilterPill/FilterPill.vue
17
- var R = {
18
+ var z = {
18
19
  name: "DtFilterPill",
19
20
  components: {
20
- DtCheckboxGroup: c,
21
- DtCheckbox: s,
22
- DtPopover: p,
23
- DtButton: o,
24
- DtIconClose: L,
25
- DtIconChevronDown: I,
26
- DtDropdown: m,
27
- DtListItem: l,
28
- DtStack: u
21
+ DtCheckboxGroup: l,
22
+ DtCheckbox: c,
23
+ DtPopover: m,
24
+ DtButton: s,
25
+ DtIconClose: R,
26
+ DtIconChevronDown: L,
27
+ DtDropdown: h,
28
+ DtListItem: u,
29
+ DtStack: d
29
30
  },
30
31
  props: {
31
32
  useDropdown: {
@@ -67,7 +68,7 @@ var R = {
67
68
  popoverAppendTo: {
68
69
  type: [e, String],
69
70
  default: "body",
70
- validator: (e) => d.includes(e) || e instanceof HTMLElement
71
+ validator: (e) => f.includes(e) || e instanceof HTMLElement
71
72
  },
72
73
  popoverFallbackPlacements: {
73
74
  type: Array,
@@ -84,7 +85,7 @@ var R = {
84
85
  popoverPadding: {
85
86
  type: String,
86
87
  default: "large",
87
- validator: (e) => Object.keys(f).some((t) => t === e)
88
+ validator: (e) => Object.keys(p).some((t) => t === e)
88
89
  },
89
90
  popoverPlacement: {
90
91
  type: String,
@@ -138,11 +139,11 @@ var R = {
138
139
  ],
139
140
  default: ""
140
141
  },
141
- contentMode: n,
142
+ contentMode: r,
142
143
  size: {
143
144
  type: [String, Number],
144
145
  default: 200,
145
- validator: (e) => Object.keys(i).includes(String(e))
146
+ validator: t(a)
146
147
  }
147
148
  },
148
149
  emits: [
@@ -154,7 +155,7 @@ var R = {
154
155
  data() {
155
156
  return {
156
157
  isOpen: !1,
157
- i18n: new a(),
158
+ i18n: new o(),
158
159
  filters: this.modelValue,
159
160
  pendingFilters: null
160
161
  };
@@ -214,7 +215,7 @@ var R = {
214
215
  return this.i18n.$t("DIALTONE_FILTER_PILL_APPLY_BUTTON_LABEL");
215
216
  },
216
217
  clearIconSize() {
217
- return String(this.size) === "100" ? "100" : r[String(this.size)];
218
+ return String(this.size) === "100" ? "100" : i[String(this.size)];
218
219
  }
219
220
  },
220
221
  watch: {
@@ -252,17 +253,17 @@ var R = {
252
253
  this.isOpen = !1;
253
254
  }
254
255
  }
255
- }, z = ["title", "textContent"], B = ["title", "textContent"], V = ["title", "textContent"];
256
- function H(e, t, n, r, i, a) {
257
- let o = O("dt-icon-chevron-down"), s = O("dt-button"), c = O("dt-checkbox"), l = O("dt-checkbox-group"), u = O("dt-stack"), d = O("dt-list-item"), f = O("dt-icon-close"), p = k("dt-tooltip");
258
- return T(), v("div", {
259
- class: w(["d-filter-pill", { "d-filter-pill--read-only": n.readOnly }]),
256
+ }, B = ["title", "textContent"], V = ["title", "textContent"], H = ["title", "textContent"];
257
+ function U(e, t, n, r, i, a) {
258
+ let o = k("dt-icon-chevron-down"), s = k("dt-button"), c = k("dt-checkbox"), l = k("dt-checkbox-group"), u = k("dt-stack"), d = k("dt-list-item"), f = k("dt-icon-close"), p = A("dt-tooltip");
259
+ return E(), y("div", {
260
+ class: T(["d-filter-pill", { "d-filter-pill--read-only": n.readOnly }]),
260
261
  "data-qa": "dt-filter-pill"
261
- }, [(T(), g(A(a.overlayComponent), C({
262
+ }, [(E(), _(j(a.overlayComponent), w({
262
263
  open: i.isOpen,
263
264
  "onUpdate:open": t[0] || (t[0] = (e) => i.isOpen = e)
264
- }, a.overlayProps, { "content-mode": n.contentMode }), b({
265
- anchor: M((t) => [N((T(), g(s, C(n.useDropdown ? t : t.attrs, {
265
+ }, a.overlayProps, { "content-mode": n.contentMode }), x({
266
+ anchor: N((t) => [P((E(), _(s, w(n.useDropdown ? t : t.attrs, {
266
267
  active: a.isActive,
267
268
  "aria-disabled": n.readOnly || void 0,
268
269
  class: ["d-filter-pill__primary", { "d-filter-pill--selected": a.isActive }],
@@ -272,41 +273,41 @@ function H(e, t, n, r, i, a) {
272
273
  "data-qa": "dt-filter-pill__button",
273
274
  importance: "outlined",
274
275
  onClick: a.openPopover,
275
- onKeydown: P(F(a.openPopover, ["prevent"]), ["up", "down"])
276
- }), b({
277
- default: M(() => [y("span", { class: w(["d-filter-pill__label", n.labelClass]) }, [D(e.$slots, "default", {
276
+ onKeydown: F(I(a.openPopover, ["prevent"]), ["up", "down"])
277
+ }), x({
278
+ default: N(() => [b("span", { class: T(["d-filter-pill__label", n.labelClass]) }, [O(e.$slots, "default", {
278
279
  label: n.label,
279
280
  filters: i.filters,
280
281
  activeFilters: a.activeFilters,
281
282
  activeFilterList: a.activeFilterList,
282
283
  activeFilterOverflow: a.activeFilterOverflow
283
284
  }, () => [
284
- y("span", {
285
+ b("span", {
285
286
  class: "d-filter-pill__label-start",
286
287
  title: n.label,
287
- textContent: j(n.label)
288
- }, null, 8, z),
289
- a.activeFilterList ? (T(), v("span", {
288
+ textContent: M(n.label)
289
+ }, null, 8, B),
290
+ a.activeFilterList ? (E(), y("span", {
290
291
  key: 0,
291
292
  class: "d-filter-pill__label-end",
292
293
  title: a.activeFilterList,
293
- textContent: j(a.activeFilterList)
294
- }, null, 8, B)) : _("", !0),
295
- a.activeFilterOverflow ? (T(), v("span", {
294
+ textContent: M(a.activeFilterList)
295
+ }, null, 8, V)) : v("", !0),
296
+ a.activeFilterOverflow ? (E(), y("span", {
296
297
  key: 1,
297
298
  class: "d-filter-pill__label-end-overflow",
298
299
  title: `plus ${a.activeFilters.length - 1} others`,
299
- textContent: j(a.activeFilterOverflow)
300
- }, null, 8, V)) : _("", !0)
300
+ textContent: M(a.activeFilterOverflow)
301
+ }, null, 8, H)) : v("", !0)
301
302
  ])], 2)]),
302
303
  _: 2
303
304
  }, [e.$slots.startIcon ? {
304
305
  name: "startIcon",
305
- fn: M(({ iconSize: t }) => [D(e.$slots, "startIcon", { iconSize: t })]),
306
+ fn: N(({ iconSize: t }) => [O(e.$slots, "startIcon", { iconSize: t })]),
306
307
  key: "0"
307
308
  } : void 0, n.readOnly ? void 0 : {
308
309
  name: "endIcon",
309
- fn: M(({ iconSize: e }) => [S(o, {
310
+ fn: N(({ iconSize: e }) => [C(o, {
310
311
  size: e,
311
312
  class: "d-filter-pill__icon",
312
313
  "data-qa": "dt-filter-pill__icon"
@@ -326,18 +327,18 @@ function H(e, t, n, r, i, a) {
326
327
  }, [
327
328
  n.useDropdown ? void 0 : {
328
329
  name: "content",
329
- fn: M(({ close: t }) => [D(e.$slots, "content", {
330
+ fn: N(({ close: t }) => [O(e.$slots, "content", {
330
331
  close: t,
331
332
  apply: a.applySelection,
332
333
  cancel: a.cancelSelection,
333
334
  pendingFilters: i.pendingFilters
334
- }, () => [n.modelValue?.length ? (T(), g(l, {
335
+ }, () => [n.modelValue?.length ? (E(), _(l, {
335
336
  key: 0,
336
337
  "model-value": n.deferSelection ? a.pendingActiveFilters : a.activeFilters,
337
338
  "aria-label": n.label,
338
339
  name: n.label || "filter-pill"
339
340
  }, {
340
- default: M(() => [(T(!0), v(h, null, E(a.displayFilters, (e) => (T(), g(c, {
341
+ default: N(() => [(E(!0), y(g, null, D(a.displayFilters, (e) => (E(), _(c, {
341
342
  key: e.name,
342
343
  label: e.name,
343
344
  value: e.name,
@@ -352,68 +353,68 @@ function H(e, t, n, r, i, a) {
352
353
  "model-value",
353
354
  "aria-label",
354
355
  "name"
355
- ])) : _("", !0)])]),
356
+ ])) : v("", !0)])]),
356
357
  key: "0"
357
358
  },
358
359
  !n.useDropdown && e.$slots.headerContent ? {
359
360
  name: "headerContent",
360
- fn: M(({ close: t }) => [D(e.$slots, "headerContent", { close: t })]),
361
+ fn: N(({ close: t }) => [O(e.$slots, "headerContent", { close: t })]),
361
362
  key: "1"
362
363
  } : void 0,
363
364
  !n.useDropdown && (n.deferSelection || e.$slots.footerContent) ? {
364
365
  name: "footerContent",
365
- fn: M(({ close: t }) => [D(e.$slots, "footerContent", {
366
+ fn: N(({ close: t }) => [O(e.$slots, "footerContent", {
366
367
  close: t,
367
368
  apply: a.applySelection,
368
369
  cancel: a.cancelSelection
369
- }, () => [n.deferSelection ? (T(), g(u, {
370
+ }, () => [n.deferSelection ? (E(), _(u, {
370
371
  key: 0,
371
372
  direction: "row",
372
373
  gap: "400",
373
374
  justify: "end",
374
375
  "data-qa": "dt-filter-pill__deferred-footer"
375
376
  }, {
376
- default: M(() => [S(s, {
377
+ default: N(() => [C(s, {
377
378
  importance: "clear",
378
379
  kind: "muted",
379
380
  size: 200,
380
381
  "data-qa": "dt-filter-pill__cancel-button",
381
382
  onClick: a.cancelSelection
382
383
  }, {
383
- default: M(() => [x(j(a.cancelButtonLabel), 1)]),
384
+ default: N(() => [S(M(a.cancelButtonLabel), 1)]),
384
385
  _: 1
385
- }, 8, ["onClick"]), S(s, {
386
+ }, 8, ["onClick"]), C(s, {
386
387
  importance: "primary",
387
388
  size: 200,
388
389
  "data-qa": "dt-filter-pill__apply-button",
389
390
  onClick: a.applySelection
390
391
  }, {
391
- default: M(() => [x(j(a.applyButtonLabel), 1)]),
392
+ default: N(() => [S(M(a.applyButtonLabel), 1)]),
392
393
  _: 1
393
394
  }, 8, ["onClick"])]),
394
395
  _: 1
395
- })) : _("", !0)])]),
396
+ })) : v("", !0)])]),
396
397
  key: "2"
397
398
  } : void 0,
398
399
  n.useDropdown ? {
399
400
  name: "list",
400
- fn: M(({ close: t }) => [D(e.$slots, "content", { close: t }, () => [(T(!0), v(h, null, E(i.filters, (e) => (T(), g(d, {
401
+ fn: N(({ close: t }) => [O(e.$slots, "content", { close: t }, () => [(E(!0), y(g, null, D(i.filters, (e) => (E(), _(d, {
401
402
  key: e.name,
402
403
  role: "menuitem",
403
404
  "navigation-type": "arrow-keys",
404
405
  selected: e.active,
405
406
  onClick: (n) => a.selectFilter(e, t)
406
407
  }, {
407
- default: M(() => [x(j(e.name), 1)]),
408
+ default: N(() => [S(M(e.name), 1)]),
408
409
  _: 2
409
410
  }, 1032, ["selected", "onClick"]))), 128))])]),
410
411
  key: "3"
411
412
  } : void 0
412
- ]), 1040, ["open", "content-mode"])), a.hasClear ? N((T(), g(s, {
413
+ ]), 1040, ["open", "content-mode"])), a.hasClear ? P((E(), _(s, {
413
414
  key: 0,
414
415
  active: a.isActive,
415
416
  "aria-label": a.clearButtonAriaLabel,
416
- class: w(["d-filter-pill__clear", { "d-filter-pill__clear--selected": a.isActive }]),
417
+ class: T(["d-filter-pill__clear", { "d-filter-pill__clear--selected": a.isActive }]),
417
418
  disabled: n.disabled,
418
419
  kind: a.buttonKind,
419
420
  size: n.size,
@@ -422,7 +423,7 @@ function H(e, t, n, r, i, a) {
422
423
  importance: "outlined",
423
424
  onClick: a.clearFilter
424
425
  }, {
425
- icon: M(() => [S(f, { size: a.clearIconSize }, null, 8, ["size"])]),
426
+ icon: N(() => [C(f, { size: a.clearIconSize }, null, 8, ["size"])]),
426
427
  _: 1
427
428
  }, 8, [
428
429
  "active",
@@ -433,10 +434,10 @@ function H(e, t, n, r, i, a) {
433
434
  "size",
434
435
  "title",
435
436
  "onClick"
436
- ])), [[p, n.endTooltipText]]) : _("", !0)], 2);
437
+ ])), [[p, n.endTooltipText]]) : v("", !0)], 2);
437
438
  }
438
- var U = /* @__PURE__ */ t(R, [["render", H]]);
439
+ var W = /* @__PURE__ */ n(z, [["render", U]]);
439
440
  //#endregion
440
- export { U as default };
441
+ export { W as default };
441
442
 
442
443
  //# sourceMappingURL=filter-pill.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter-pill.js","names":[],"sources":["../../../components/FilterPill/FilterPill.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n 'd-filter-pill',\n { 'd-filter-pill--read-only': readOnly },\n ]\"\n data-qa=\"dt-filter-pill\"\n >\n <component\n :is=\"overlayComponent\"\n v-model:open=\"isOpen\"\n v-bind=\"overlayProps\"\n :content-mode=\"contentMode\"\n >\n <template #anchor=\"slotData\">\n <dt-button\n v-dt-tooltip=\"resolvedStartTooltipText\"\n v-bind=\"useDropdown ? slotData : slotData.attrs\"\n :active=\"isActive\"\n :aria-disabled=\"readOnly || undefined\"\n :class=\"[\n 'd-filter-pill__primary',\n {\n 'd-filter-pill--selected': isActive,\n },\n ]\"\n :disabled=\"disabled\"\n :kind=\"buttonKind\"\n :size=\"size\"\n data-qa=\"dt-filter-pill__button\"\n importance=\"outlined\"\n @click=\"openPopover\"\n @keydown.up.down.prevent=\"openPopover\"\n >\n <template\n v-if=\"$slots.startIcon\"\n #startIcon=\"{ iconSize }\"\n >\n <!-- @slot Icon displayed before the label -->\n <slot\n name=\"startIcon\"\n :icon-size=\"iconSize\"\n />\n </template>\n <span :class=\"['d-filter-pill__label', labelClass]\">\n <!-- @slot Allows you to customize the label slot -->\n <slot\n :label=\"label\"\n :filters=\"filters\"\n :active-filters=\"activeFilters\"\n :active-filter-list=\"activeFilterList\"\n :active-filter-overflow=\"activeFilterOverflow\"\n >\n <span\n class=\"d-filter-pill__label-start\"\n :title=\"label\"\n v-text=\"label\"\n />\n <span\n v-if=\"activeFilterList\"\n class=\"d-filter-pill__label-end\"\n :title=\"activeFilterList\"\n v-text=\"activeFilterList\"\n />\n <span\n v-if=\"activeFilterOverflow\"\n class=\"d-filter-pill__label-end-overflow\"\n :title=\"`plus ${activeFilters.length - 1} others`\"\n v-text=\"activeFilterOverflow\"\n />\n </slot>\n </span>\n <template\n v-if=\"!readOnly\"\n #endIcon=\"{ iconSize }\"\n >\n <dt-icon-chevron-down\n :size=\"iconSize\"\n class=\"d-filter-pill__icon\"\n data-qa=\"dt-filter-pill__icon\"\n />\n </template>\n </dt-button>\n </template>\n <template\n v-if=\"!useDropdown\"\n #content=\"{ close }\"\n >\n <!-- @slot Allows you to override the popover content, only use this if you need custom behavior -->\n <slot\n :close=\"close\"\n :apply=\"applySelection\"\n :cancel=\"cancelSelection\"\n :pending-filters=\"pendingFilters\"\n name=\"content\"\n >\n <dt-checkbox-group\n v-if=\"modelValue?.length\"\n :model-value=\"deferSelection ? pendingActiveFilters : activeFilters\"\n :aria-label=\"label\"\n :name=\"label || 'filter-pill'\"\n >\n <dt-checkbox\n v-for=\"filter in displayFilters\"\n :key=\"filter.name\"\n :label=\"filter.name\"\n :value=\"filter.name\"\n @update:model-value=\"($event) => filter.active = $event\"\n />\n </dt-checkbox-group>\n </slot>\n </template>\n <template\n v-if=\"!useDropdown && $slots.headerContent\"\n #headerContent=\"{ close }\"\n >\n <!-- @slot Allows you to customize the popover header -->\n <slot\n name=\"headerContent\"\n :close=\"close\"\n />\n </template>\n <template\n v-if=\"!useDropdown && (deferSelection || $slots.footerContent)\"\n #footerContent=\"{ close }\"\n >\n <!-- @slot Allows you to customize the popover footer. Receives { close, apply, cancel } bindings. -->\n <slot\n name=\"footerContent\"\n :close=\"close\"\n :apply=\"applySelection\"\n :cancel=\"cancelSelection\"\n >\n <dt-stack\n v-if=\"deferSelection\"\n direction=\"row\"\n gap=\"400\"\n justify=\"end\"\n data-qa=\"dt-filter-pill__deferred-footer\"\n >\n <dt-button\n importance=\"clear\"\n kind=\"muted\"\n :size=\"200\"\n data-qa=\"dt-filter-pill__cancel-button\"\n @click=\"cancelSelection\"\n >\n {{ cancelButtonLabel }}\n </dt-button>\n <dt-button\n importance=\"primary\"\n :size=\"200\"\n data-qa=\"dt-filter-pill__apply-button\"\n @click=\"applySelection\"\n >\n {{ applyButtonLabel }}\n </dt-button>\n </dt-stack>\n </slot>\n </template>\n <template\n v-if=\"useDropdown\"\n #list=\"{ close }\"\n >\n <!-- @slot Allows you to override the dropdown content -->\n <slot\n :close=\"close\"\n name=\"content\"\n >\n <dt-list-item\n v-for=\"filter in filters\"\n :key=\"filter.name\"\n role=\"menuitem\"\n navigation-type=\"arrow-keys\"\n :selected=\"filter.active\"\n @click=\"selectFilter(filter, close)\"\n >\n {{ filter.name }}\n </dt-list-item>\n </slot>\n </template>\n </component>\n <dt-button\n v-if=\"hasClear\"\n v-dt-tooltip=\"endTooltipText\"\n :active=\"isActive\"\n :aria-label=\"clearButtonAriaLabel\"\n :class=\"[\n 'd-filter-pill__clear',\n { 'd-filter-pill__clear--selected': isActive },\n ]\"\n :disabled=\"disabled\"\n :kind=\"buttonKind\"\n :size=\"size\"\n :title=\"clearButtonTitle\"\n data-qa=\"dt-filter-pill__clear-button\"\n importance=\"outlined\"\n @click=\"clearFilter\"\n >\n <template #icon>\n <dt-icon-close :size=\"clearIconSize\" />\n </template>\n </dt-button>\n </div>\n</template>\n\n<script>\nimport { DtPopover, POPOVER_APPEND_TO_VALUES, POPOVER_PADDING_CLASSES } from '@/components/Popover';\nimport { HTML_ELEMENT_TYPE } from '@/common/constants';\nimport { CONTENT_MODE_PROP } from '@/common/mode_constants';\nimport { BUTTON_SIZE_MODIFIERS, BUTTON_ICON_SIZES, DtButton } from '@/components/Button';\nimport { DtIconChevronDown, DtIconClose } from '@dialpad/dialtone-icons/vue';\nimport { DialtoneLocalization } from '@/localization';\nimport { DtCheckbox } from '@/components/Checkbox';\nimport { DtCheckboxGroup } from '@/components/CheckboxGroup';\nimport { DtDropdown } from '@/components/Dropdown';\nimport { DtListItem } from '@/components/ListItem';\nimport { DtStack } from '@/components/Stack';\n\nexport default {\n name: 'DtFilterPill',\n\n components: {\n DtCheckboxGroup,\n DtCheckbox,\n DtPopover,\n DtButton,\n DtIconClose,\n DtIconChevronDown,\n DtDropdown,\n DtListItem,\n DtStack,\n },\n\n props: {\n /**\n * When true, uses DtDropdown instead of DtPopover as the overlay.\n * Provides keyboard navigation (arrow keys) for list items.\n * Default content renders DtListItem elements (single-select)\n * instead of checkboxes (multi-select).\n */\n useDropdown: {\n type: Boolean,\n default: false,\n },\n\n /**\n * When true, checkbox changes are held in a pending state until the user\n * clicks Apply. Cancel or closing the popover discards pending changes.\n * Only applies to popover mode (not useDropdown).\n */\n deferSelection: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Array of filters to display in the popover,\n * should be an array of objects with `name` and `active` properties\n */\n modelValue: {\n type: Array,\n default: () => [],\n },\n\n /**\n * Text shown in tooltip when you hover the start button,\n * required if no content is passed to default slot\n */\n startTooltipText: {\n type: String,\n default: '',\n },\n\n /**\n * HTML disabled attribute\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * When true, the pill cannot be interacted with but does not\n * receive disabled visual styling. Adds `d-filter-pill--read-only`\n * class and hides the chevron icon. The clear button is suppressed\n * and the tooltip falls back to a read-only message when\n * startTooltipText is not provided.\n */\n readOnly: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Shows the clear button when a filter is active\n * @values true, false\n */\n showClear: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Label of the button\n */\n label: {\n type: String,\n default: undefined,\n },\n\n /**\n * Text shown in tooltip when you hover the end button,\n * required as it is an icon only button\n */\n endTooltipText: {\n type: String,\n default: '',\n },\n\n /**\n * Sets the element to which the\n * <a class=\"d-link\" href=\"https://dialtone.dialpad.com/components/popover.html#vue-api\" target=\"_blank\">popover component</a>\n * is going to append to\n * @values body, parent, root, HTMLElement\n */\n popoverAppendTo: {\n type: [HTML_ELEMENT_TYPE, String],\n default: 'body',\n validator: appendTo => {\n return POPOVER_APPEND_TO_VALUES.includes(appendTo) ||\n (appendTo instanceof HTMLElement);\n },\n },\n\n /**\n * If the dropdown does not fit in the direction described by \"popoverPlacement\",\n * it will attempt to change it's direction to the \"popoverFallbackPlacements\".\n *\n * @values top, top-start, top-end,\n * right, right-start, right-end,\n * left, left-start, left-end,\n * bottom, bottom-start, bottom-end,\n * auto, auto-start, auto-end\n * */\n popoverFallbackPlacements: {\n type: Array,\n default: () => {\n return ['auto'];\n },\n },\n\n /**\n * Determines maximum height for the popover before overflow.\n * Possible units rem|px|em\n */\n popoverMaxHeight: {\n type: String,\n default: '',\n },\n\n /**\n * Determines maximum width for the popover before overflow.\n * Possible units rem|px|%|em\n */\n popoverMaxWidth: {\n type: String,\n default: '',\n },\n\n /**\n * Padding size class for the popover content.\n * @values none, small, medium, large\n */\n popoverPadding: {\n type: String,\n default: 'large',\n validator: (padding) => {\n return Object.keys(POPOVER_PADDING_CLASSES).some((item) => item === padding);\n },\n },\n\n /**\n * The direction the popover displays relative to the anchor.\n * <a class=\"d-link\" href=\"https://atomiks.github.io/tippyjs/v6/all-props/#placement\" target=\"_blank\">Tippy.js docs</a>\n * @values top, top-start, top-end, right, right-start, right-end, left, left-start, left-end, bottom, bottom-start, bottom-end, auto, auto-start, auto-end\n */\n popoverPlacement: {\n type: String,\n default: 'bottom-start',\n },\n\n /**\n * Additional CSS class(es) applied to the label wrapper element.\n */\n labelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional CSS class(es) applied to the popover content area.\n * Only applies when useDropdown is false.\n */\n popoverContentClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional CSS class(es) applied to the outer popover header element (`d-popover__header`).\n * Only applies when useDropdown is false.\n */\n popoverHeaderClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional CSS class(es) applied to the outer popover footer element (`d-popover__footer`).\n * Only applies when useDropdown is false.\n */\n popoverFooterClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional CSS class(es) applied to the popover dialog element.\n * Only applies when useDropdown is false.\n */\n popoverDialogClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional CSS class(es) applied to the dropdown list wrapper.\n * Only applies when useDropdown is true.\n */\n dropdownListClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Applies a color mode to the positioned content element.\n * @values light, dark, invert\n */\n contentMode: CONTENT_MODE_PROP,\n\n /**\n * The size of the button.\n * @values 100, 200, 300, 400, 500\n */\n size: {\n type: [String, Number],\n default: 200,\n validator: (s) => Object.keys(BUTTON_SIZE_MODIFIERS).includes(String(s)),\n },\n },\n\n emits: [\n /**\n * Emitted when clicking the clear button\n *\n * @event clear\n * @type {Boolean | Array}\n */\n 'clear',\n\n /**\n * Emitted when popover is shown or hidden\n *\n * @event opened\n * @type {Boolean | Array}\n */\n 'open',\n\n /**\n * Emitted when the active filters change\n * @type {Array}\n */\n 'update:modelValue',\n\n /**\n * Emitted when deferred selection is applied\n *\n * @event apply\n */\n 'apply',\n ],\n\n data () {\n return {\n isOpen: false,\n i18n: new DialtoneLocalization(),\n filters: this.modelValue,\n pendingFilters: null,\n };\n },\n\n computed: {\n overlayComponent () {\n return this.useDropdown ? 'dt-dropdown' : 'dt-popover';\n },\n\n overlayProps () {\n const props = {\n 'append-to': this.popoverAppendTo,\n 'fallback-placements': this.popoverFallbackPlacements,\n 'max-height': this.popoverMaxHeight,\n 'max-width': this.popoverMaxWidth,\n modal: true,\n placement: this.popoverPlacement,\n };\n if (this.useDropdown) {\n props['list-class'] = this.dropdownListClass;\n } else {\n props.padding = this.popoverPadding;\n props['content-class'] = this.popoverContentClass;\n props['header-wrapper-class'] = this.popoverHeaderClass;\n props['footer-wrapper-class'] = this.popoverFooterClass;\n props['dialog-class'] = this.popoverDialogClass;\n }\n return props;\n },\n\n buttonKind () {\n return (this.isActive && !this.disabled) ? 'default' : 'muted';\n },\n\n resolvedStartTooltipText () {\n if (this.readOnly) return this.startTooltipText || this.i18n.$t('DIALTONE_FILTER_PILL_READ_ONLY_TOOLTIP');\n return this.startTooltipText;\n },\n\n clearButtonAriaLabel () {\n return this.endTooltipText || this.i18n.$t('DIALTONE_FILTER_PILL_CLEAR_BUTTON_LABEL');\n },\n\n clearButtonTitle () {\n if (this.endTooltipText) return;\n\n return this.clearButtonAriaLabel\n },\n\n activeFilters () {\n return this.filters.filter(filter => filter.active).map(filter => filter.name);\n },\n\n activeFilterList () {\n if (this.activeFilters.length === this.filters.length && this.filters.length > 1) {\n return 'All';\n }\n\n return this.activeFilters[0] ?? '';\n },\n\n activeFilterOverflow () {\n if (this.activeFilters.length <= 1) return '';\n if (this.activeFilters.length === this.filters.length && this.filters.length > 1) return '';\n\n return '+' + (this.activeFilters.length - 1);\n },\n\n isActive () {\n return this.activeFilterList.length > 0;\n },\n\n hasClear () {\n return !this.readOnly && this.showClear && this.activeFilterList.length > 0;\n },\n\n displayFilters () {\n return (this.deferSelection && this.pendingFilters) ? this.pendingFilters : this.filters;\n },\n\n pendingActiveFilters () {\n if (!this.pendingFilters) return [];\n return this.pendingFilters.filter(f => f.active).map(f => f.name);\n },\n\n cancelButtonLabel () {\n return this.i18n.$t('DIALTONE_FILTER_PILL_CANCEL_BUTTON_LABEL');\n },\n\n applyButtonLabel () {\n return this.i18n.$t('DIALTONE_FILTER_PILL_APPLY_BUTTON_LABEL');\n },\n\n clearIconSize () {\n if (String(this.size) === '100') return '100';\n return BUTTON_ICON_SIZES[String(this.size)];\n },\n },\n\n watch: {\n isOpen (isOpen) {\n this.$emit('open', isOpen);\n if (this.deferSelection) {\n if (isOpen) {\n this.pendingFilters = JSON.parse(JSON.stringify(this.filters));\n } else {\n this.pendingFilters = null;\n }\n }\n },\n\n filters: {\n deep: true,\n handler (filters) {\n this.$emit('update:modelValue', filters);\n },\n },\n },\n\n mounted () {\n if (!(this.modelValue?.length || (this.$slots.content && this.$slots.content()))) {\n console.warn('Please provide content through the v-model or the \"content\" slot.');\n }\n if (this.deferSelection && this.useDropdown) {\n console.warn('deferSelection has no effect when useDropdown is true.');\n }\n },\n\n methods: {\n clearFilter ($event) {\n this.filters.forEach(filter => delete filter.active);\n this.$emit('clear', $event)\n },\n\n openPopover () {\n if (this.readOnly) return;\n this.isOpen = true;\n },\n\n selectFilter (selectedFilter, close) {\n this.filters.forEach(filter => {\n filter.active = filter === selectedFilter;\n });\n close();\n },\n\n applySelection () {\n if (!this.pendingFilters) return;\n this.filters.forEach((filter, i) => {\n if (this.pendingFilters[i]) {\n filter.active = this.pendingFilters[i].active;\n } else {\n delete filter.active;\n }\n });\n this.$emit('apply');\n this.isOpen = false;\n },\n\n cancelSelection () {\n this.isOpen = false;\n },\n },\n};\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"filter-pill.js","names":[],"sources":["../../../components/FilterPill/FilterPill.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n 'd-filter-pill',\n { 'd-filter-pill--read-only': readOnly },\n ]\"\n data-qa=\"dt-filter-pill\"\n >\n <component\n :is=\"overlayComponent\"\n v-model:open=\"isOpen\"\n v-bind=\"overlayProps\"\n :content-mode=\"contentMode\"\n >\n <template #anchor=\"slotData\">\n <dt-button\n v-dt-tooltip=\"resolvedStartTooltipText\"\n v-bind=\"useDropdown ? slotData : slotData.attrs\"\n :active=\"isActive\"\n :aria-disabled=\"readOnly || undefined\"\n :class=\"[\n 'd-filter-pill__primary',\n {\n 'd-filter-pill--selected': isActive,\n },\n ]\"\n :disabled=\"disabled\"\n :kind=\"buttonKind\"\n :size=\"size\"\n data-qa=\"dt-filter-pill__button\"\n importance=\"outlined\"\n @click=\"openPopover\"\n @keydown.up.down.prevent=\"openPopover\"\n >\n <template\n v-if=\"$slots.startIcon\"\n #startIcon=\"{ iconSize }\"\n >\n <!-- @slot Icon displayed before the label -->\n <slot\n name=\"startIcon\"\n :icon-size=\"iconSize\"\n />\n </template>\n <span :class=\"['d-filter-pill__label', labelClass]\">\n <!-- @slot Allows you to customize the label slot -->\n <slot\n :label=\"label\"\n :filters=\"filters\"\n :active-filters=\"activeFilters\"\n :active-filter-list=\"activeFilterList\"\n :active-filter-overflow=\"activeFilterOverflow\"\n >\n <span\n class=\"d-filter-pill__label-start\"\n :title=\"label\"\n v-text=\"label\"\n />\n <span\n v-if=\"activeFilterList\"\n class=\"d-filter-pill__label-end\"\n :title=\"activeFilterList\"\n v-text=\"activeFilterList\"\n />\n <span\n v-if=\"activeFilterOverflow\"\n class=\"d-filter-pill__label-end-overflow\"\n :title=\"`plus ${activeFilters.length - 1} others`\"\n v-text=\"activeFilterOverflow\"\n />\n </slot>\n </span>\n <template\n v-if=\"!readOnly\"\n #endIcon=\"{ iconSize }\"\n >\n <dt-icon-chevron-down\n :size=\"iconSize\"\n class=\"d-filter-pill__icon\"\n data-qa=\"dt-filter-pill__icon\"\n />\n </template>\n </dt-button>\n </template>\n <template\n v-if=\"!useDropdown\"\n #content=\"{ close }\"\n >\n <!-- @slot Allows you to override the popover content, only use this if you need custom behavior -->\n <slot\n :close=\"close\"\n :apply=\"applySelection\"\n :cancel=\"cancelSelection\"\n :pending-filters=\"pendingFilters\"\n name=\"content\"\n >\n <dt-checkbox-group\n v-if=\"modelValue?.length\"\n :model-value=\"deferSelection ? pendingActiveFilters : activeFilters\"\n :aria-label=\"label\"\n :name=\"label || 'filter-pill'\"\n >\n <dt-checkbox\n v-for=\"filter in displayFilters\"\n :key=\"filter.name\"\n :label=\"filter.name\"\n :value=\"filter.name\"\n @update:model-value=\"($event) => filter.active = $event\"\n />\n </dt-checkbox-group>\n </slot>\n </template>\n <template\n v-if=\"!useDropdown && $slots.headerContent\"\n #headerContent=\"{ close }\"\n >\n <!-- @slot Allows you to customize the popover header -->\n <slot\n name=\"headerContent\"\n :close=\"close\"\n />\n </template>\n <template\n v-if=\"!useDropdown && (deferSelection || $slots.footerContent)\"\n #footerContent=\"{ close }\"\n >\n <!-- @slot Allows you to customize the popover footer. Receives { close, apply, cancel } bindings. -->\n <slot\n name=\"footerContent\"\n :close=\"close\"\n :apply=\"applySelection\"\n :cancel=\"cancelSelection\"\n >\n <dt-stack\n v-if=\"deferSelection\"\n direction=\"row\"\n gap=\"400\"\n justify=\"end\"\n data-qa=\"dt-filter-pill__deferred-footer\"\n >\n <dt-button\n importance=\"clear\"\n kind=\"muted\"\n :size=\"200\"\n data-qa=\"dt-filter-pill__cancel-button\"\n @click=\"cancelSelection\"\n >\n {{ cancelButtonLabel }}\n </dt-button>\n <dt-button\n importance=\"primary\"\n :size=\"200\"\n data-qa=\"dt-filter-pill__apply-button\"\n @click=\"applySelection\"\n >\n {{ applyButtonLabel }}\n </dt-button>\n </dt-stack>\n </slot>\n </template>\n <template\n v-if=\"useDropdown\"\n #list=\"{ close }\"\n >\n <!-- @slot Allows you to override the dropdown content -->\n <slot\n :close=\"close\"\n name=\"content\"\n >\n <dt-list-item\n v-for=\"filter in filters\"\n :key=\"filter.name\"\n role=\"menuitem\"\n navigation-type=\"arrow-keys\"\n :selected=\"filter.active\"\n @click=\"selectFilter(filter, close)\"\n >\n {{ filter.name }}\n </dt-list-item>\n </slot>\n </template>\n </component>\n <dt-button\n v-if=\"hasClear\"\n v-dt-tooltip=\"endTooltipText\"\n :active=\"isActive\"\n :aria-label=\"clearButtonAriaLabel\"\n :class=\"[\n 'd-filter-pill__clear',\n { 'd-filter-pill__clear--selected': isActive },\n ]\"\n :disabled=\"disabled\"\n :kind=\"buttonKind\"\n :size=\"size\"\n :title=\"clearButtonTitle\"\n data-qa=\"dt-filter-pill__clear-button\"\n importance=\"outlined\"\n @click=\"clearFilter\"\n >\n <template #icon>\n <dt-icon-close :size=\"clearIconSize\" />\n </template>\n </dt-button>\n </div>\n</template>\n\n<script>\nimport { DtPopover, POPOVER_APPEND_TO_VALUES, POPOVER_PADDING_CLASSES } from '@/components/Popover';\nimport { HTML_ELEMENT_TYPE } from '@/common/constants';\nimport { CONTENT_MODE_PROP } from '@/common/mode_constants';\nimport { ordinalSizeValidator } from '@/common/validators';\nimport { BUTTON_SIZE_MODIFIERS, BUTTON_ICON_SIZES, DtButton } from '@/components/Button';\nimport { DtIconChevronDown, DtIconClose } from '@dialpad/dialtone-icons/vue';\nimport { DialtoneLocalization } from '@/localization';\nimport { DtCheckbox } from '@/components/Checkbox';\nimport { DtCheckboxGroup } from '@/components/CheckboxGroup';\nimport { DtDropdown } from '@/components/Dropdown';\nimport { DtListItem } from '@/components/ListItem';\nimport { DtStack } from '@/components/Stack';\n\nexport default {\n name: 'DtFilterPill',\n\n components: {\n DtCheckboxGroup,\n DtCheckbox,\n DtPopover,\n DtButton,\n DtIconClose,\n DtIconChevronDown,\n DtDropdown,\n DtListItem,\n DtStack,\n },\n\n props: {\n /**\n * When true, uses DtDropdown instead of DtPopover as the overlay.\n * Provides keyboard navigation (arrow keys) for list items.\n * Default content renders DtListItem elements (single-select)\n * instead of checkboxes (multi-select).\n */\n useDropdown: {\n type: Boolean,\n default: false,\n },\n\n /**\n * When true, checkbox changes are held in a pending state until the user\n * clicks Apply. Cancel or closing the popover discards pending changes.\n * Only applies to popover mode (not useDropdown).\n */\n deferSelection: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Array of filters to display in the popover,\n * should be an array of objects with `name` and `active` properties\n */\n modelValue: {\n type: Array,\n default: () => [],\n },\n\n /**\n * Text shown in tooltip when you hover the start button,\n * required if no content is passed to default slot\n */\n startTooltipText: {\n type: String,\n default: '',\n },\n\n /**\n * HTML disabled attribute\n */\n disabled: {\n type: Boolean,\n default: false,\n },\n\n /**\n * When true, the pill cannot be interacted with but does not\n * receive disabled visual styling. Adds `d-filter-pill--read-only`\n * class and hides the chevron icon. The clear button is suppressed\n * and the tooltip falls back to a read-only message when\n * startTooltipText is not provided.\n */\n readOnly: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Shows the clear button when a filter is active\n * @values true, false\n */\n showClear: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Label of the button\n */\n label: {\n type: String,\n default: undefined,\n },\n\n /**\n * Text shown in tooltip when you hover the end button,\n * required as it is an icon only button\n */\n endTooltipText: {\n type: String,\n default: '',\n },\n\n /**\n * Sets the element to which the\n * <a class=\"d-link\" href=\"https://dialtone.dialpad.com/components/popover.html#vue-api\" target=\"_blank\">popover component</a>\n * is going to append to\n * @values body, parent, root, HTMLElement\n */\n popoverAppendTo: {\n type: [HTML_ELEMENT_TYPE, String],\n default: 'body',\n validator: appendTo => {\n return POPOVER_APPEND_TO_VALUES.includes(appendTo) ||\n (appendTo instanceof HTMLElement);\n },\n },\n\n /**\n * If the dropdown does not fit in the direction described by \"popoverPlacement\",\n * it will attempt to change it's direction to the \"popoverFallbackPlacements\".\n *\n * @values top, top-start, top-end,\n * right, right-start, right-end,\n * left, left-start, left-end,\n * bottom, bottom-start, bottom-end,\n * auto, auto-start, auto-end\n * */\n popoverFallbackPlacements: {\n type: Array,\n default: () => {\n return ['auto'];\n },\n },\n\n /**\n * Determines maximum height for the popover before overflow.\n * Possible units rem|px|em\n */\n popoverMaxHeight: {\n type: String,\n default: '',\n },\n\n /**\n * Determines maximum width for the popover before overflow.\n * Possible units rem|px|%|em\n */\n popoverMaxWidth: {\n type: String,\n default: '',\n },\n\n /**\n * Padding size class for the popover content.\n * @values none, small, medium, large\n */\n popoverPadding: {\n type: String,\n default: 'large',\n validator: (padding) => {\n return Object.keys(POPOVER_PADDING_CLASSES).some((item) => item === padding);\n },\n },\n\n /**\n * The direction the popover displays relative to the anchor.\n * <a class=\"d-link\" href=\"https://atomiks.github.io/tippyjs/v6/all-props/#placement\" target=\"_blank\">Tippy.js docs</a>\n * @values top, top-start, top-end, right, right-start, right-end, left, left-start, left-end, bottom, bottom-start, bottom-end, auto, auto-start, auto-end\n */\n popoverPlacement: {\n type: String,\n default: 'bottom-start',\n },\n\n /**\n * Additional CSS class(es) applied to the label wrapper element.\n */\n labelClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional CSS class(es) applied to the popover content area.\n * Only applies when useDropdown is false.\n */\n popoverContentClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional CSS class(es) applied to the outer popover header element (`d-popover__header`).\n * Only applies when useDropdown is false.\n */\n popoverHeaderClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional CSS class(es) applied to the outer popover footer element (`d-popover__footer`).\n * Only applies when useDropdown is false.\n */\n popoverFooterClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional CSS class(es) applied to the popover dialog element.\n * Only applies when useDropdown is false.\n */\n popoverDialogClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Additional CSS class(es) applied to the dropdown list wrapper.\n * Only applies when useDropdown is true.\n */\n dropdownListClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Applies a color mode to the positioned content element.\n * @values light, dark, invert\n */\n contentMode: CONTENT_MODE_PROP,\n\n /**\n * The size of the button.\n * @values 100, 200, 300, 400, 500\n */\n size: {\n type: [String, Number],\n default: 200,\n validator: ordinalSizeValidator(BUTTON_SIZE_MODIFIERS),\n },\n },\n\n emits: [\n /**\n * Emitted when clicking the clear button\n *\n * @event clear\n * @type {Boolean | Array}\n */\n 'clear',\n\n /**\n * Emitted when popover is shown or hidden\n *\n * @event opened\n * @type {Boolean | Array}\n */\n 'open',\n\n /**\n * Emitted when the active filters change\n * @type {Array}\n */\n 'update:modelValue',\n\n /**\n * Emitted when deferred selection is applied\n *\n * @event apply\n */\n 'apply',\n ],\n\n data () {\n return {\n isOpen: false,\n i18n: new DialtoneLocalization(),\n filters: this.modelValue,\n pendingFilters: null,\n };\n },\n\n computed: {\n overlayComponent () {\n return this.useDropdown ? 'dt-dropdown' : 'dt-popover';\n },\n\n overlayProps () {\n const props = {\n 'append-to': this.popoverAppendTo,\n 'fallback-placements': this.popoverFallbackPlacements,\n 'max-height': this.popoverMaxHeight,\n 'max-width': this.popoverMaxWidth,\n modal: true,\n placement: this.popoverPlacement,\n };\n if (this.useDropdown) {\n props['list-class'] = this.dropdownListClass;\n } else {\n props.padding = this.popoverPadding;\n props['content-class'] = this.popoverContentClass;\n props['header-wrapper-class'] = this.popoverHeaderClass;\n props['footer-wrapper-class'] = this.popoverFooterClass;\n props['dialog-class'] = this.popoverDialogClass;\n }\n return props;\n },\n\n buttonKind () {\n return (this.isActive && !this.disabled) ? 'default' : 'muted';\n },\n\n resolvedStartTooltipText () {\n if (this.readOnly) return this.startTooltipText || this.i18n.$t('DIALTONE_FILTER_PILL_READ_ONLY_TOOLTIP');\n return this.startTooltipText;\n },\n\n clearButtonAriaLabel () {\n return this.endTooltipText || this.i18n.$t('DIALTONE_FILTER_PILL_CLEAR_BUTTON_LABEL');\n },\n\n clearButtonTitle () {\n if (this.endTooltipText) return;\n\n return this.clearButtonAriaLabel\n },\n\n activeFilters () {\n return this.filters.filter(filter => filter.active).map(filter => filter.name);\n },\n\n activeFilterList () {\n if (this.activeFilters.length === this.filters.length && this.filters.length > 1) {\n return 'All';\n }\n\n return this.activeFilters[0] ?? '';\n },\n\n activeFilterOverflow () {\n if (this.activeFilters.length <= 1) return '';\n if (this.activeFilters.length === this.filters.length && this.filters.length > 1) return '';\n\n return '+' + (this.activeFilters.length - 1);\n },\n\n isActive () {\n return this.activeFilterList.length > 0;\n },\n\n hasClear () {\n return !this.readOnly && this.showClear && this.activeFilterList.length > 0;\n },\n\n displayFilters () {\n return (this.deferSelection && this.pendingFilters) ? this.pendingFilters : this.filters;\n },\n\n pendingActiveFilters () {\n if (!this.pendingFilters) return [];\n return this.pendingFilters.filter(f => f.active).map(f => f.name);\n },\n\n cancelButtonLabel () {\n return this.i18n.$t('DIALTONE_FILTER_PILL_CANCEL_BUTTON_LABEL');\n },\n\n applyButtonLabel () {\n return this.i18n.$t('DIALTONE_FILTER_PILL_APPLY_BUTTON_LABEL');\n },\n\n clearIconSize () {\n if (String(this.size) === '100') return '100';\n return BUTTON_ICON_SIZES[String(this.size)];\n },\n },\n\n watch: {\n isOpen (isOpen) {\n this.$emit('open', isOpen);\n if (this.deferSelection) {\n if (isOpen) {\n this.pendingFilters = JSON.parse(JSON.stringify(this.filters));\n } else {\n this.pendingFilters = null;\n }\n }\n },\n\n filters: {\n deep: true,\n handler (filters) {\n this.$emit('update:modelValue', filters);\n },\n },\n },\n\n mounted () {\n if (!(this.modelValue?.length || (this.$slots.content && this.$slots.content()))) {\n console.warn('Please provide content through the v-model or the \"content\" slot.');\n }\n if (this.deferSelection && this.useDropdown) {\n console.warn('deferSelection has no effect when useDropdown is true.');\n }\n },\n\n methods: {\n clearFilter ($event) {\n this.filters.forEach(filter => delete filter.active);\n this.$emit('clear', $event)\n },\n\n openPopover () {\n if (this.readOnly) return;\n this.isOpen = true;\n },\n\n selectFilter (selectedFilter, close) {\n this.filters.forEach(filter => {\n filter.active = filter === selectedFilter;\n });\n close();\n },\n\n applySelection () {\n if (!this.pendingFilters) return;\n this.filters.forEach((filter, i) => {\n if (this.pendingFilters[i]) {\n filter.active = this.pendingFilters[i].active;\n } else {\n delete filter.active;\n }\n });\n this.$emit('apply');\n this.isOpen = false;\n },\n\n cancelSelection () {\n this.isOpen = false;\n },\n },\n};\n</script>\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../../chunk-Bmb41Sf3.cjs`);const e=require(`../../_plugin-vue_export-helper-D8jCH6HB.cjs`),t=require(`./icon-constants.cjs`);let n=require(`vue`),r=require(`@dialpad/dialtone-icons/vue`);var i={name:`DtIcon`,props:{size:{type:String,default:`500`,validator:e=>Object.keys(t.ICON_SIZE_MODIFIERS).includes(e)},name:{type:String,required:!0,validator:e=>t.ICON_NAMES.includes(e)},ariaLabel:{type:String,default:void 0}},data(){return{}},computed:{icon(){return r.icons[`./src/icons/${this.name}.vue`]},iconAriaLabel(){return this.ariaLabel}}};function a(e,t,r,i,a,o){return o.icon?((0,n.openBlock)(),(0,n.createBlock)((0,n.resolveDynamicComponent)(o.icon),{key:0,size:r.size,"aria-label":o.iconAriaLabel,"data-qa":e.$attrs[`data-qa`]??`dt-icon`},null,8,[`size`,`aria-label`,`data-qa`])):(0,n.createCommentVNode)(``,!0)}var o=e.t(i,[[`render`,a]]);exports.default=o;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../../chunk-Bmb41Sf3.cjs`);const e=require(`../../common/validators/index.cjs`),t=require(`../../_plugin-vue_export-helper-D8jCH6HB.cjs`),n=require(`./icon-constants.cjs`);let r=require(`vue`),i=require(`@dialpad/dialtone-icons/vue`);var a={name:`DtIcon`,props:{size:{type:[String,Number],default:500,validator:e.ordinalSizeValidator(n.ICON_SIZE_MODIFIERS)},name:{type:String,required:!0,validator:e=>n.ICON_NAMES.includes(e)},ariaLabel:{type:String,default:void 0}},data(){return{}},computed:{icon(){return i.icons[`./src/icons/${this.name}.vue`]},iconAriaLabel(){return this.ariaLabel}}};function o(e,t,n,i,a,o){return o.icon?((0,r.openBlock)(),(0,r.createBlock)((0,r.resolveDynamicComponent)(o.icon),{key:0,size:n.size,"aria-label":o.iconAriaLabel,"data-qa":e.$attrs[`data-qa`]??`dt-icon`},null,8,[`size`,`aria-label`,`data-qa`])):(0,r.createCommentVNode)(``,!0)}var s=t.t(a,[[`render`,o]]);exports.default=s;
2
2
  //# sourceMappingURL=icon.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"icon.cjs","names":[],"sources":["../../../components/Icon/Icon.vue"],"sourcesContent":["<template>\n <component\n :is=\"icon\"\n v-if=\"icon\"\n :size=\"size\"\n :aria-label=\"iconAriaLabel\"\n :data-qa=\"$attrs['data-qa'] ?? 'dt-icon'\"\n />\n</template>\n\n<script>\nimport { icons } from '@dialpad/dialtone-icons/vue';\nimport { ICON_SIZE_MODIFIERS, ICON_NAMES } from './IconConstants';\n// import { DialtoneLocalization } from '@/localization';\n// import { toFluentKeyString } from '@/common/utils';\n\n/**\n * The Icon component provides a set of glyphs and sizes to provide context your application.\n * @see https://dialtone.dialpad.com/components/icon.html\n */\nexport default {\n name: 'DtIcon',\n\n props: {\n /**\n * The size of the icon.\n * @values 100, 200, 300, 400, 500, 600, 700, 800\n */\n size: {\n type: String,\n default: '500',\n validator: (s) => Object.keys(ICON_SIZE_MODIFIERS).includes(s),\n },\n\n /**\n * The icon name in kebab-case\n */\n name: {\n type: String,\n required: true,\n validator: (name) => ICON_NAMES.includes(name),\n },\n\n /**\n * The label of the icon as read out by a screen-reader. Leave this unset if your icon is purely presentational\n */\n ariaLabel: {\n type: String,\n default: undefined,\n },\n },\n\n data () {\n return {\n // i18n: new DialtoneLocalization(),\n };\n },\n\n computed: {\n icon () {\n return icons[`./src/icons/${this.name}.vue`];\n },\n\n iconAriaLabel () {\n // const fluentKey = toFluentKeyString(this.name);\n // return this.ariaLabel || this.i18n.$t(`DIALTONE_ICON_${fluentKey}`);\n return this.ariaLabel;\n },\n },\n};\n</script>\n"],"mappings":"mSAoBA,IAAK,EAAU,CACb,KAAM,SAEN,MAAO,CAKL,KAAM,CACJ,KAAM,OACN,QAAS,MACT,UAAY,GAAM,OAAO,KAAK,EAAA,oBAAoB,CAAC,SAAS,EAAE,CAC/D,CAKD,KAAM,CACJ,KAAM,OACN,SAAU,GACV,UAAY,GAAS,EAAA,WAAW,SAAS,EAAK,CAC/C,CAKD,UAAW,CACT,KAAM,OACN,QAAS,IAAA,GACV,CACF,CAED,MAAQ,CACN,MAAO,EAEN,EAGH,SAAU,CACR,MAAQ,CACN,OAAO,EAAA,MAAM,eAAe,KAAK,KAAK,QAGxC,eAAiB,CAGf,OAAO,KAAK,WAEf,CACF,gCAlES,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,EAAA,EAAA,cAAA,EAAA,EAAA,yBADD,EAAA,KAAI,CAAA,OAER,KAAM,EAAA,KACN,aAAY,EAAA,cACZ,UAAS,EAAA,OAAM,YAAA"}
1
+ {"version":3,"file":"icon.cjs","names":[],"sources":["../../../components/Icon/Icon.vue"],"sourcesContent":["<template>\n <component\n :is=\"icon\"\n v-if=\"icon\"\n :size=\"size\"\n :aria-label=\"iconAriaLabel\"\n :data-qa=\"$attrs['data-qa'] ?? 'dt-icon'\"\n />\n</template>\n\n<script>\nimport { icons } from '@dialpad/dialtone-icons/vue';\nimport { ICON_SIZE_MODIFIERS, ICON_NAMES } from './IconConstants';\nimport { ordinalSizeValidator } from '@/common/validators';\n// import { DialtoneLocalization } from '@/localization';\n// import { toFluentKeyString } from '@/common/utils';\n\n/**\n * The Icon component provides a set of glyphs and sizes to provide context your application.\n * @see https://dialtone.dialpad.com/components/icon.html\n */\nexport default {\n name: 'DtIcon',\n\n props: {\n /**\n * The size of the icon.\n * @values 100, 200, 300, 400, 500, 600, 700, 800\n */\n size: {\n type: [String, Number],\n default: 500,\n validator: ordinalSizeValidator(ICON_SIZE_MODIFIERS),\n },\n\n /**\n * The icon name in kebab-case\n */\n name: {\n type: String,\n required: true,\n validator: (name) => ICON_NAMES.includes(name),\n },\n\n /**\n * The label of the icon as read out by a screen-reader. Leave this unset if your icon is purely presentational\n */\n ariaLabel: {\n type: String,\n default: undefined,\n },\n },\n\n data () {\n return {\n // i18n: new DialtoneLocalization(),\n };\n },\n\n computed: {\n icon () {\n return icons[`./src/icons/${this.name}.vue`];\n },\n\n iconAriaLabel () {\n // const fluentKey = toFluentKeyString(this.name);\n // return this.ariaLabel || this.i18n.$t(`DIALTONE_ICON_${fluentKey}`);\n return this.ariaLabel;\n },\n },\n};\n</script>\n"],"mappings":"kVAqBA,IAAK,EAAU,CACb,KAAM,SAEN,MAAO,CAKL,KAAM,CACJ,KAAM,CAAC,OAAQ,OAAO,CACtB,QAAS,IACT,UAAW,EAAA,qBAAqB,EAAA,oBAAoB,CACrD,CAKD,KAAM,CACJ,KAAM,OACN,SAAU,GACV,UAAY,GAAS,EAAA,WAAW,SAAS,EAAK,CAC/C,CAKD,UAAW,CACT,KAAM,OACN,QAAS,IAAA,GACV,CACF,CAED,MAAQ,CACN,MAAO,EAEN,EAGH,SAAU,CACR,MAAQ,CACN,OAAO,EAAA,MAAM,eAAe,KAAK,KAAK,QAGxC,eAAiB,CAGf,OAAO,KAAK,WAEf,CACF,gCAnES,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,EAAA,EAAA,cAAA,EAAA,EAAA,yBADD,EAAA,KAAI,CAAA,OAER,KAAM,EAAA,KACN,aAAY,EAAA,cACZ,UAAS,EAAA,OAAM,YAAA"}