@dialpad/dialtone-vue 2.161.0 → 2.162.0-beta.1

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 (216) hide show
  1. package/dist/common/sr_only_close_button.vue.cjs +3 -3
  2. package/dist/common/sr_only_close_button.vue.cjs.map +1 -1
  3. package/dist/common/sr_only_close_button.vue.js +3 -3
  4. package/dist/common/sr_only_close_button.vue.js.map +1 -1
  5. package/dist/component-documentation.json +1 -1
  6. package/dist/components/avatar/avatar.vue.cjs +13 -24
  7. package/dist/components/avatar/avatar.vue.cjs.map +1 -1
  8. package/dist/components/avatar/avatar.vue.js +13 -24
  9. package/dist/components/avatar/avatar.vue.js.map +1 -1
  10. package/dist/components/badge/badge.vue.cjs +13 -34
  11. package/dist/components/badge/badge.vue.cjs.map +1 -1
  12. package/dist/components/badge/badge.vue.js +13 -34
  13. package/dist/components/badge/badge.vue.js.map +1 -1
  14. package/dist/components/chip/chip.vue.cjs +4 -4
  15. package/dist/components/chip/chip.vue.cjs.map +1 -1
  16. package/dist/components/chip/chip.vue.js +4 -4
  17. package/dist/components/chip/chip.vue.js.map +1 -1
  18. package/dist/components/collapsible/collapsible.vue.cjs +4 -3
  19. package/dist/components/collapsible/collapsible.vue.cjs.map +1 -1
  20. package/dist/components/collapsible/collapsible.vue.js +4 -3
  21. package/dist/components/collapsible/collapsible.vue.js.map +1 -1
  22. package/dist/components/datepicker/modules/month-year-picker.vue.cjs +14 -6
  23. package/dist/components/datepicker/modules/month-year-picker.vue.cjs.map +1 -1
  24. package/dist/components/datepicker/modules/month-year-picker.vue.js +14 -6
  25. package/dist/components/datepicker/modules/month-year-picker.vue.js.map +1 -1
  26. package/dist/components/emoji_picker/modules/emoji_search.vue.cjs +6 -5
  27. package/dist/components/emoji_picker/modules/emoji_search.vue.cjs.map +1 -1
  28. package/dist/components/emoji_picker/modules/emoji_search.vue.js +6 -5
  29. package/dist/components/emoji_picker/modules/emoji_search.vue.js.map +1 -1
  30. package/dist/components/emoji_picker/modules/emoji_tabset.vue.cjs +23 -14
  31. package/dist/components/emoji_picker/modules/emoji_tabset.vue.cjs.map +1 -1
  32. package/dist/components/emoji_picker/modules/emoji_tabset.vue.js +23 -14
  33. package/dist/components/emoji_picker/modules/emoji_tabset.vue.js.map +1 -1
  34. package/dist/components/empty_state/empty_state.vue.cjs +20 -80
  35. package/dist/components/empty_state/empty_state.vue.cjs.map +1 -1
  36. package/dist/components/empty_state/empty_state.vue.js +21 -81
  37. package/dist/components/empty_state/empty_state.vue.js.map +1 -1
  38. package/dist/components/empty_state/empty_state_constants.cjs +18 -0
  39. package/dist/components/empty_state/empty_state_constants.cjs.map +1 -1
  40. package/dist/components/empty_state/empty_state_constants.js +18 -0
  41. package/dist/components/empty_state/empty_state_constants.js.map +1 -1
  42. package/dist/components/icon/icon.vue.cjs +2 -2
  43. package/dist/components/icon/icon.vue.js +2 -2
  44. package/dist/components/illustration/illustration.vue.cjs +2 -2
  45. package/dist/components/illustration/illustration.vue.js +2 -2
  46. package/dist/components/image_viewer/image_viewer.vue.cjs +4 -4
  47. package/dist/components/image_viewer/image_viewer.vue.cjs.map +1 -1
  48. package/dist/components/image_viewer/image_viewer.vue.js +4 -4
  49. package/dist/components/image_viewer/image_viewer.vue.js.map +1 -1
  50. package/dist/components/keyboard_shortcut/keyboard_shortcut.vue.cjs +24 -9
  51. package/dist/components/keyboard_shortcut/keyboard_shortcut.vue.cjs.map +1 -1
  52. package/dist/components/keyboard_shortcut/keyboard_shortcut.vue.js +22 -7
  53. package/dist/components/keyboard_shortcut/keyboard_shortcut.vue.js.map +1 -1
  54. package/dist/components/keyboard_shortcut/keyboard_shortcut_constants.cjs +8 -14
  55. package/dist/components/keyboard_shortcut/keyboard_shortcut_constants.cjs.map +1 -1
  56. package/dist/components/keyboard_shortcut/keyboard_shortcut_constants.js +9 -15
  57. package/dist/components/keyboard_shortcut/keyboard_shortcut_constants.js.map +1 -1
  58. package/dist/components/list_item/list_item.vue.cjs +3 -3
  59. package/dist/components/list_item/list_item.vue.cjs.map +1 -1
  60. package/dist/components/list_item/list_item.vue.js +3 -3
  61. package/dist/components/list_item/list_item.vue.js.map +1 -1
  62. package/dist/components/modal/modal.vue.cjs +4 -4
  63. package/dist/components/modal/modal.vue.cjs.map +1 -1
  64. package/dist/components/modal/modal.vue.js +4 -4
  65. package/dist/components/modal/modal.vue.js.map +1 -1
  66. package/dist/components/notice/notice_action.vue.cjs +4 -4
  67. package/dist/components/notice/notice_action.vue.cjs.map +1 -1
  68. package/dist/components/notice/notice_action.vue.js +4 -4
  69. package/dist/components/notice/notice_action.vue.js.map +1 -1
  70. package/dist/components/notice/notice_icon.vue.cjs +12 -8
  71. package/dist/components/notice/notice_icon.vue.cjs.map +1 -1
  72. package/dist/components/notice/notice_icon.vue.js +12 -8
  73. package/dist/components/notice/notice_icon.vue.js.map +1 -1
  74. package/dist/components/pagination/pagination.vue.cjs +11 -5
  75. package/dist/components/pagination/pagination.vue.cjs.map +1 -1
  76. package/dist/components/pagination/pagination.vue.js +11 -5
  77. package/dist/components/pagination/pagination.vue.js.map +1 -1
  78. package/dist/components/popover/popover_header_footer.vue.cjs +4 -4
  79. package/dist/components/popover/popover_header_footer.vue.cjs.map +1 -1
  80. package/dist/components/popover/popover_header_footer.vue.js +4 -4
  81. package/dist/components/popover/popover_header_footer.vue.js.map +1 -1
  82. package/dist/dialtone-vue.cjs +0 -3
  83. package/dist/dialtone-vue.cjs.map +1 -1
  84. package/dist/dialtone-vue.js +2 -5
  85. package/dist/lib/general-row.cjs +0 -1
  86. package/dist/lib/general-row.cjs.map +1 -1
  87. package/dist/lib/general-row.js +1 -2
  88. package/dist/lib/keyboard-shortcut.cjs +0 -2
  89. package/dist/lib/keyboard-shortcut.cjs.map +1 -1
  90. package/dist/lib/keyboard-shortcut.js +2 -4
  91. package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.cjs +5 -5
  92. package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.cjs.map +1 -1
  93. package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.js +5 -5
  94. package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.js.map +1 -1
  95. package/dist/recipes/cards/ivr_node/ivr_node.vue.cjs +25 -5
  96. package/dist/recipes/cards/ivr_node/ivr_node.vue.cjs.map +1 -1
  97. package/dist/recipes/cards/ivr_node/ivr_node.vue.js +26 -6
  98. package/dist/recipes/cards/ivr_node/ivr_node.vue.js.map +1 -1
  99. package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.cjs +5 -4
  100. package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.cjs.map +1 -1
  101. package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.js +5 -4
  102. package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.js.map +1 -1
  103. package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.cjs +3 -3
  104. package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.cjs.map +1 -1
  105. package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.js +3 -3
  106. package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.js.map +1 -1
  107. package/dist/recipes/conversation_view/editor/editor.vue.cjs +35 -22
  108. package/dist/recipes/conversation_view/editor/editor.vue.cjs.map +1 -1
  109. package/dist/recipes/conversation_view/editor/editor.vue.js +35 -22
  110. package/dist/recipes/conversation_view/editor/editor.vue.js.map +1 -1
  111. package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.cjs +7 -6
  112. package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.cjs.map +1 -1
  113. package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.js +7 -6
  114. package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.js.map +1 -1
  115. package/dist/recipes/conversation_view/feed_pill/feed_item_pill.vue.cjs +9 -17
  116. package/dist/recipes/conversation_view/feed_pill/feed_item_pill.vue.cjs.map +1 -1
  117. package/dist/recipes/conversation_view/feed_pill/feed_item_pill.vue.js +9 -17
  118. package/dist/recipes/conversation_view/feed_pill/feed_item_pill.vue.js.map +1 -1
  119. package/dist/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.cjs +6 -5
  120. package/dist/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.cjs.map +1 -1
  121. package/dist/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.js +6 -5
  122. package/dist/recipes/conversation_view/message_input/meeting_pill/MeetingPill.vue.js.map +1 -1
  123. package/dist/recipes/conversation_view/message_input/message_input.vue.cjs +22 -11
  124. package/dist/recipes/conversation_view/message_input/message_input.vue.cjs.map +1 -1
  125. package/dist/recipes/conversation_view/message_input/message_input.vue.js +22 -11
  126. package/dist/recipes/conversation_view/message_input/message_input.vue.js.map +1 -1
  127. package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.cjs +6 -6
  128. package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.cjs.map +1 -1
  129. package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.js +6 -6
  130. package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.js.map +1 -1
  131. package/dist/recipes/item_layout/contact_info/contact_info.vue.cjs +14 -10
  132. package/dist/recipes/item_layout/contact_info/contact_info.vue.cjs.map +1 -1
  133. package/dist/recipes/item_layout/contact_info/contact_info.vue.js +14 -10
  134. package/dist/recipes/item_layout/contact_info/contact_info.vue.js.map +1 -1
  135. package/dist/recipes/leftbar/callbox/callbox.vue.cjs +6 -3
  136. package/dist/recipes/leftbar/callbox/callbox.vue.cjs.map +1 -1
  137. package/dist/recipes/leftbar/callbox/callbox.vue.js +6 -3
  138. package/dist/recipes/leftbar/callbox/callbox.vue.js.map +1 -1
  139. package/dist/recipes/leftbar/contact_row/contact_row.vue.cjs +6 -5
  140. package/dist/recipes/leftbar/contact_row/contact_row.vue.cjs.map +1 -1
  141. package/dist/recipes/leftbar/contact_row/contact_row.vue.js +6 -5
  142. package/dist/recipes/leftbar/contact_row/contact_row.vue.js.map +1 -1
  143. package/dist/recipes/leftbar/general_row/general_row.vue.cjs +8 -7
  144. package/dist/recipes/leftbar/general_row/general_row.vue.cjs.map +1 -1
  145. package/dist/recipes/leftbar/general_row/general_row.vue.js +8 -7
  146. package/dist/recipes/leftbar/general_row/general_row.vue.js.map +1 -1
  147. package/dist/recipes/leftbar/general_row/general_row_constants.cjs +0 -17
  148. package/dist/recipes/leftbar/general_row/general_row_constants.cjs.map +1 -1
  149. package/dist/recipes/leftbar/general_row/general_row_constants.js +0 -17
  150. package/dist/recipes/leftbar/general_row/general_row_constants.js.map +1 -1
  151. package/dist/recipes/leftbar/general_row/leftbar_general_row_icon.vue.cjs +36 -4
  152. package/dist/recipes/leftbar/general_row/leftbar_general_row_icon.vue.cjs.map +1 -1
  153. package/dist/recipes/leftbar/general_row/leftbar_general_row_icon.vue.js +37 -5
  154. package/dist/recipes/leftbar/general_row/leftbar_general_row_icon.vue.js.map +1 -1
  155. package/dist/recipes/leftbar/group_row/group_row.vue.cjs +3 -3
  156. package/dist/recipes/leftbar/group_row/group_row.vue.cjs.map +1 -1
  157. package/dist/recipes/leftbar/group_row/group_row.vue.js +3 -3
  158. package/dist/recipes/leftbar/group_row/group_row.vue.js.map +1 -1
  159. package/dist/recipes/leftbar/unread_pill/unread_pill.vue.cjs +4 -3
  160. package/dist/recipes/leftbar/unread_pill/unread_pill.vue.cjs.map +1 -1
  161. package/dist/recipes/leftbar/unread_pill/unread_pill.vue.js +4 -3
  162. package/dist/recipes/leftbar/unread_pill/unread_pill.vue.js.map +1 -1
  163. package/dist/style.css +127 -124
  164. package/dist/types/components/avatar/avatar.vue.d.ts +4 -34
  165. package/dist/types/components/avatar/avatar.vue.d.ts.map +1 -1
  166. package/dist/types/components/badge/badge.vue.d.ts +16 -45
  167. package/dist/types/components/badge/badge.vue.d.ts.map +1 -1
  168. package/dist/types/components/chip/chip.vue.d.ts +1 -1
  169. package/dist/types/components/collapsible/collapsible.vue.d.ts +1 -1
  170. package/dist/types/components/collapsible/collapsible.vue.d.ts.map +1 -1
  171. package/dist/types/components/emoji_picker/modules/emoji_tabset.vue.d.ts +1 -67
  172. package/dist/types/components/empty_state/empty_state_constants.d.ts +27 -0
  173. package/dist/types/components/keyboard_shortcut/index.d.ts +1 -1
  174. package/dist/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts +7 -15
  175. package/dist/types/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts.map +1 -1
  176. package/dist/types/components/keyboard_shortcut/keyboard_shortcut_constants.d.ts +0 -11
  177. package/dist/types/components/keyboard_shortcut/keyboard_shortcut_constants.d.ts.map +1 -1
  178. package/dist/types/components/modal/modal.vue.d.ts +4 -6
  179. package/dist/types/components/modal/modal.vue.d.ts.map +1 -1
  180. package/dist/types/components/notice/notice_action.vue.d.ts +5 -4
  181. package/dist/types/components/notice/notice_action.vue.d.ts.map +1 -1
  182. package/dist/types/components/notice/notice_icon.vue.d.ts +1 -1
  183. package/dist/types/components/notice/notice_icon.vue.d.ts.map +1 -1
  184. package/dist/types/components/pagination/pagination.vue.d.ts.map +1 -1
  185. package/dist/types/components/split_button/split_button-omega.vue.d.ts +1 -1
  186. package/dist/types/recipes/buttons/callbar_button/callbar_button.vue.d.ts +1 -1
  187. package/dist/types/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +1 -1
  188. package/dist/types/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
  189. package/dist/types/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
  190. package/dist/types/recipes/conversation_view/editor/editor.vue.d.ts +8 -8
  191. package/dist/types/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
  192. package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +0 -1
  193. package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
  194. package/dist/types/recipes/conversation_view/feed_pill/feed_item_pill.vue.d.ts +2 -16
  195. package/dist/types/recipes/conversation_view/feed_pill/feed_item_pill.vue.d.ts.map +1 -1
  196. package/dist/types/recipes/conversation_view/message_input/message_input.vue.d.ts +4 -6
  197. package/dist/types/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  198. package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +3 -16
  199. package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts.map +1 -1
  200. package/dist/types/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
  201. package/dist/types/recipes/leftbar/contact_row/contact_row.vue.d.ts +0 -1
  202. package/dist/types/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
  203. package/dist/types/recipes/leftbar/general_row/general_row.vue.d.ts +1 -1
  204. package/dist/types/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  205. package/dist/types/recipes/leftbar/general_row/general_row_constants.d.ts +0 -6
  206. package/dist/types/recipes/leftbar/general_row/general_row_constants.d.ts.map +1 -1
  207. package/dist/types/recipes/leftbar/general_row/index.d.ts +1 -1
  208. package/dist/types/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts +1 -1
  209. package/dist/types/recipes/leftbar/unread_pill/unread_pill.vue.d.ts.map +1 -1
  210. package/package.json +1 -1
  211. package/dist/common/storybook_utils.cjs +0 -8
  212. package/dist/common/storybook_utils.cjs.map +0 -1
  213. package/dist/common/storybook_utils.js +0 -8
  214. package/dist/common/storybook_utils.js.map +0 -1
  215. package/dist/types/common/storybook_utils.d.ts +0 -35
  216. package/dist/types/common/storybook_utils.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"emoji_search.vue.cjs","sources":["../../../../components/emoji_picker/modules/emoji_search.vue"],"sourcesContent":["<template>\n <div class=\"d-emoji-picker__search d-emoji-picker__alignment\">\n <dt-input\n id=\"searchInput\"\n ref=\"searchInputRef\"\n :placeholder=\"searchPlaceholderLabel\"\n :value=\"modelValue\"\n @input=\"updateModelValue\"\n @keydown.up=\"focusTabset\"\n @keydown.down.prevent=\"focusEmojiSelector\"\n @keydown.enter=\"selectFirstEmoji\"\n >\n <template #leftIcon>\n <dt-icon\n name=\"search\"\n size=\"200\"\n />\n </template>\n <template\n v-if=\"modelValue.length > 0\"\n #rightIcon\n >\n <dt-button\n importance=\"clear\"\n size=\"xs\"\n class=\"d-mrn4\"\n circle\n kind=\"muted\"\n @click=\"clearSearch\"\n >\n <template #icon>\n <dt-icon\n name=\"close\"\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n </dt-input>\n </div>\n</template>\n\n<script>\nimport { DtInput } from '@/components/input';\nimport { DtIcon } from '@/components/icon';\nimport { DtButton } from '@/components/button';\n\nexport default {\n name: 'EmojiSearch',\n\n components: {\n DtInput,\n DtIcon,\n DtButton,\n },\n\n props: {\n searchPlaceholderLabel: {\n type: String,\n required: true,\n },\n\n modelValue: {\n type: String,\n default: '',\n },\n },\n\n mounted () {\n this.focusSearchInput();\n },\n\n methods: {\n updateModelValue (value) {\n this.$emit('update:model-value', value);\n },\n\n focusEmojiSelector () {\n this.$emit('focus-emoji-selector');\n },\n\n focusTabset () {\n this.$emit('focus-tabset');\n },\n\n selectFirstEmoji () {\n this.$emit('select-first-emoji');\n },\n\n clearSearch () {\n this.$emit('update:model-value', '');\n this.focusSearchInput();\n },\n\n focusSearchInput () {\n this.$refs.searchInputRef.focus();\n },\n },\n};\n</script>\n"],"names":["DtInput","DtIcon","DtButton"],"mappings":";;;;;AA+CA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,SAAAA;AAAAA,IACA,QAAAC;AAAAA,IACA,UAAAC;AAAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA,wBAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA,IAEA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AACA,SAAA,iBAAA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA,IACA,iBAAA,OAAA;AACA,WAAA,MAAA,sBAAA,KAAA;AAAA,IACA;AAAA,IAEA,qBAAA;AACA,WAAA,MAAA,sBAAA;AAAA,IACA;AAAA,IAEA,cAAA;AACA,WAAA,MAAA,cAAA;AAAA,IACA;AAAA,IAEA,mBAAA;AACA,WAAA,MAAA,oBAAA;AAAA,IACA;AAAA,IAEA,cAAA;AACA,WAAA,MAAA,sBAAA,EAAA;AACA,WAAA,iBAAA;AAAA,IACA;AAAA,IAEA,mBAAA;AACA,WAAA,MAAA,eAAA;IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"emoji_search.vue.cjs","sources":["../../../../components/emoji_picker/modules/emoji_search.vue"],"sourcesContent":["<template>\n <div class=\"d-emoji-picker__search d-emoji-picker__alignment\">\n <dt-input\n id=\"searchInput\"\n ref=\"searchInputRef\"\n :placeholder=\"searchPlaceholderLabel\"\n :value=\"modelValue\"\n @input=\"updateModelValue\"\n @keydown.up=\"focusTabset\"\n @keydown.down.prevent=\"focusEmojiSelector\"\n @keydown.enter=\"selectFirstEmoji\"\n >\n <template #leftIcon>\n <dt-icon-search\n size=\"200\"\n />\n </template>\n <template\n v-if=\"modelValue.length > 0\"\n #rightIcon\n >\n <dt-button\n importance=\"clear\"\n size=\"xs\"\n class=\"d-mrn4\"\n circle\n kind=\"muted\"\n @click=\"clearSearch\"\n >\n <template #icon>\n <dt-icon-close\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n </dt-input>\n </div>\n</template>\n\n<script>\nimport { DtIconSearch, DtIconXCircle } from '@dialpad/dialtone-icons/vue2';\nimport { DtInput } from '@/components/input';\nimport { DtButton } from '@/components/button';\n\nexport default {\n name: 'EmojiSearch',\n\n components: {\n DtInput,\n DtIconSearch,\n DtIconXCircle,\n DtButton,\n },\n\n props: {\n searchPlaceholderLabel: {\n type: String,\n required: true,\n },\n\n modelValue: {\n type: String,\n default: '',\n },\n },\n\n mounted () {\n this.focusSearchInput();\n },\n\n methods: {\n updateModelValue (value) {\n this.$emit('update:model-value', value);\n },\n\n focusEmojiSelector () {\n this.$emit('focus-emoji-selector');\n },\n\n focusTabset () {\n this.$emit('focus-tabset');\n },\n\n selectFirstEmoji () {\n this.$emit('select-first-emoji');\n },\n\n clearSearch () {\n this.$emit('update:model-value', '');\n this.focusSearchInput();\n },\n\n focusSearchInput () {\n this.$refs.searchInputRef.focus();\n },\n },\n};\n</script>\n"],"names":["DtInput","DtIconSearch","DtIconXCircle","DtButton"],"mappings":";;;;;AA6CA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,SAAAA;AAAAA,IACA,cAAAC,KAAA;AAAA,IACA,eAAAC,KAAA;AAAA,IACA,UAAAC;AAAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA,wBAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA,IAEA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AACA,SAAA,iBAAA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA,IACA,iBAAA,OAAA;AACA,WAAA,MAAA,sBAAA,KAAA;AAAA,IACA;AAAA,IAEA,qBAAA;AACA,WAAA,MAAA,sBAAA;AAAA,IACA;AAAA,IAEA,cAAA;AACA,WAAA,MAAA,cAAA;AAAA,IACA;AAAA,IAEA,mBAAA;AACA,WAAA,MAAA,oBAAA;AAAA,IACA;AAAA,IAEA,cAAA;AACA,WAAA,MAAA,sBAAA,EAAA;AACA,WAAA,iBAAA;AAAA,IACA;AAAA,IAEA,mBAAA;AACA,WAAA,MAAA,eAAA;IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,12 +1,13 @@
1
+ import { DtIconSearch, DtIconXCircle } from "@dialpad/dialtone-icons/vue2";
1
2
  import normalizeComponent from "../../../_virtual/_plugin-vue2_normalizer.js";
2
3
  import DtInput from "../../input/input.vue.js";
3
- import DtIcon from "../../icon/icon.vue.js";
4
4
  import DtButton from "../../button/button.vue.js";
5
5
  const _sfc_main = {
6
6
  name: "EmojiSearch",
7
7
  components: {
8
8
  DtInput,
9
- DtIcon,
9
+ DtIconSearch,
10
+ DtIconXCircle,
10
11
  DtButton
11
12
  },
12
13
  props: {
@@ -57,11 +58,11 @@ var _sfc_render = function render() {
57
58
  if (!$event.type.indexOf("key") && _vm._k($event.keyCode, "enter", 13, $event.key, "Enter")) return null;
58
59
  return _vm.selectFirstEmoji.apply(null, arguments);
59
60
  }] }, scopedSlots: _vm._u([{ key: "leftIcon", fn: function() {
60
- return [_c("dt-icon", { attrs: { "name": "search", "size": "200" } })];
61
+ return [_c("dt-icon-search", { attrs: { "size": "200" } })];
61
62
  }, proxy: true }, _vm.modelValue.length > 0 ? { key: "rightIcon", fn: function() {
62
63
  return [_c("dt-button", { staticClass: "d-mrn4", attrs: { "importance": "clear", "size": "xs", "circle": "", "kind": "muted" }, on: { "click": _vm.clearSearch }, scopedSlots: _vm._u([{ key: "icon", fn: function() {
63
- return [_c("dt-icon", { attrs: { "name": "close", "size": "200" } })];
64
- }, proxy: true }], null, false, 1154370889) })];
64
+ return [_c("dt-icon-close", { attrs: { "size": "200" } })];
65
+ }, proxy: true }], null, false, 4156074325) })];
65
66
  }, proxy: true } : null], null, true) })], 1);
66
67
  };
67
68
  var _sfc_staticRenderFns = [];
@@ -1 +1 @@
1
- {"version":3,"file":"emoji_search.vue.js","sources":["../../../../components/emoji_picker/modules/emoji_search.vue"],"sourcesContent":["<template>\n <div class=\"d-emoji-picker__search d-emoji-picker__alignment\">\n <dt-input\n id=\"searchInput\"\n ref=\"searchInputRef\"\n :placeholder=\"searchPlaceholderLabel\"\n :value=\"modelValue\"\n @input=\"updateModelValue\"\n @keydown.up=\"focusTabset\"\n @keydown.down.prevent=\"focusEmojiSelector\"\n @keydown.enter=\"selectFirstEmoji\"\n >\n <template #leftIcon>\n <dt-icon\n name=\"search\"\n size=\"200\"\n />\n </template>\n <template\n v-if=\"modelValue.length > 0\"\n #rightIcon\n >\n <dt-button\n importance=\"clear\"\n size=\"xs\"\n class=\"d-mrn4\"\n circle\n kind=\"muted\"\n @click=\"clearSearch\"\n >\n <template #icon>\n <dt-icon\n name=\"close\"\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n </dt-input>\n </div>\n</template>\n\n<script>\nimport { DtInput } from '@/components/input';\nimport { DtIcon } from '@/components/icon';\nimport { DtButton } from '@/components/button';\n\nexport default {\n name: 'EmojiSearch',\n\n components: {\n DtInput,\n DtIcon,\n DtButton,\n },\n\n props: {\n searchPlaceholderLabel: {\n type: String,\n required: true,\n },\n\n modelValue: {\n type: String,\n default: '',\n },\n },\n\n mounted () {\n this.focusSearchInput();\n },\n\n methods: {\n updateModelValue (value) {\n this.$emit('update:model-value', value);\n },\n\n focusEmojiSelector () {\n this.$emit('focus-emoji-selector');\n },\n\n focusTabset () {\n this.$emit('focus-tabset');\n },\n\n selectFirstEmoji () {\n this.$emit('select-first-emoji');\n },\n\n clearSearch () {\n this.$emit('update:model-value', '');\n this.focusSearchInput();\n },\n\n focusSearchInput () {\n this.$refs.searchInputRef.focus();\n },\n },\n};\n</script>\n"],"names":[],"mappings":";;;;AA+CA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA,wBAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA,IAEA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AACA,SAAA,iBAAA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA,IACA,iBAAA,OAAA;AACA,WAAA,MAAA,sBAAA,KAAA;AAAA,IACA;AAAA,IAEA,qBAAA;AACA,WAAA,MAAA,sBAAA;AAAA,IACA;AAAA,IAEA,cAAA;AACA,WAAA,MAAA,cAAA;AAAA,IACA;AAAA,IAEA,mBAAA;AACA,WAAA,MAAA,oBAAA;AAAA,IACA;AAAA,IAEA,cAAA;AACA,WAAA,MAAA,sBAAA,EAAA;AACA,WAAA,iBAAA;AAAA,IACA;AAAA,IAEA,mBAAA;AACA,WAAA,MAAA,eAAA;IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"emoji_search.vue.js","sources":["../../../../components/emoji_picker/modules/emoji_search.vue"],"sourcesContent":["<template>\n <div class=\"d-emoji-picker__search d-emoji-picker__alignment\">\n <dt-input\n id=\"searchInput\"\n ref=\"searchInputRef\"\n :placeholder=\"searchPlaceholderLabel\"\n :value=\"modelValue\"\n @input=\"updateModelValue\"\n @keydown.up=\"focusTabset\"\n @keydown.down.prevent=\"focusEmojiSelector\"\n @keydown.enter=\"selectFirstEmoji\"\n >\n <template #leftIcon>\n <dt-icon-search\n size=\"200\"\n />\n </template>\n <template\n v-if=\"modelValue.length > 0\"\n #rightIcon\n >\n <dt-button\n importance=\"clear\"\n size=\"xs\"\n class=\"d-mrn4\"\n circle\n kind=\"muted\"\n @click=\"clearSearch\"\n >\n <template #icon>\n <dt-icon-close\n size=\"200\"\n />\n </template>\n </dt-button>\n </template>\n </dt-input>\n </div>\n</template>\n\n<script>\nimport { DtIconSearch, DtIconXCircle } from '@dialpad/dialtone-icons/vue2';\nimport { DtInput } from '@/components/input';\nimport { DtButton } from '@/components/button';\n\nexport default {\n name: 'EmojiSearch',\n\n components: {\n DtInput,\n DtIconSearch,\n DtIconXCircle,\n DtButton,\n },\n\n props: {\n searchPlaceholderLabel: {\n type: String,\n required: true,\n },\n\n modelValue: {\n type: String,\n default: '',\n },\n },\n\n mounted () {\n this.focusSearchInput();\n },\n\n methods: {\n updateModelValue (value) {\n this.$emit('update:model-value', value);\n },\n\n focusEmojiSelector () {\n this.$emit('focus-emoji-selector');\n },\n\n focusTabset () {\n this.$emit('focus-tabset');\n },\n\n selectFirstEmoji () {\n this.$emit('select-first-emoji');\n },\n\n clearSearch () {\n this.$emit('update:model-value', '');\n this.focusSearchInput();\n },\n\n focusSearchInput () {\n this.$refs.searchInputRef.focus();\n },\n },\n};\n</script>\n"],"names":[],"mappings":";;;;AA6CA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,OAAA;AAAA,IACA,wBAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA,IAEA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AACA,SAAA,iBAAA;AAAA,EACA;AAAA,EAEA,SAAA;AAAA,IACA,iBAAA,OAAA;AACA,WAAA,MAAA,sBAAA,KAAA;AAAA,IACA;AAAA,IAEA,qBAAA;AACA,WAAA,MAAA,sBAAA;AAAA,IACA;AAAA,IAEA,cAAA;AACA,WAAA,MAAA,cAAA;AAAA,IACA;AAAA,IAEA,mBAAA;AACA,WAAA,MAAA,oBAAA;AAAA,IACA;AAAA,IAEA,cAAA;AACA,WAAA,MAAA,sBAAA,EAAA;AACA,WAAA,iBAAA;AAAA,IACA;AAAA,IAEA,mBAAA;AACA,WAAA,MAAA,eAAA;IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,17 +1,21 @@
1
1
  "use strict";
2
+ const vue2 = require("@dialpad/dialtone-icons/vue2");
3
+ const _pluginVue2_normalizer = require("../../../_virtual/_plugin-vue2_normalizer.cjs");
2
4
  const tab_group = require("../../tabs/tab_group.vue.cjs");
3
5
  const tab = require("../../tabs/tab.vue.cjs");
4
- const icon = require("../../icon/icon.vue.cjs");
5
- const _pluginVue2_normalizer = require("../../../_virtual/_plugin-vue2_normalizer.cjs");
6
6
  const emoji_picker_constants = require("../emoji_picker_constants.cjs");
7
7
  const _sfc_main = {
8
8
  name: "EmojiTabset",
9
9
  components: {
10
10
  DtTabGroup: tab_group,
11
- DtTab: tab,
12
- DtIcon: icon
11
+ DtTab: tab
13
12
  },
14
13
  props: {
14
+ /**
15
+ * Whether to show the recently used tab or not
16
+ * @type {Boolean}
17
+ * @default false
18
+ */
15
19
  showRecentlyUsedTab: {
16
20
  type: Boolean,
17
21
  default: false
@@ -28,6 +32,11 @@ const _sfc_main = {
28
32
  type: String,
29
33
  default: ""
30
34
  },
35
+ /**
36
+ * The labels for the aria-label
37
+ * @type {Array}
38
+ * @required
39
+ */
31
40
  tabSetLabels: {
32
41
  type: Array,
33
42
  required: true
@@ -38,15 +47,15 @@ const _sfc_main = {
38
47
  selectedTab: "1",
39
48
  tabsetRef: [],
40
49
  TABS_DATA: [
41
- { label: emoji_picker_constants.EMOJI_PICKER_CATEGORIES.MOST_RECENTLY_USED, icon: "clock" },
42
- { label: emoji_picker_constants.EMOJI_PICKER_CATEGORIES.SMILEYS_AND_PEOPLE, icon: "satisfied" },
43
- { label: emoji_picker_constants.EMOJI_PICKER_CATEGORIES.NATURE, icon: "living-thing" },
44
- { label: emoji_picker_constants.EMOJI_PICKER_CATEGORIES.FOOD, icon: "food" },
45
- { label: emoji_picker_constants.EMOJI_PICKER_CATEGORIES.ACTIVITY, icon: "object" },
46
- { label: emoji_picker_constants.EMOJI_PICKER_CATEGORIES.TRAVEL, icon: "transportation" },
47
- { label: emoji_picker_constants.EMOJI_PICKER_CATEGORIES.OBJECTS, icon: "lightbulb" },
48
- { label: emoji_picker_constants.EMOJI_PICKER_CATEGORIES.SYMBOLS, icon: "heart" },
49
- { label: emoji_picker_constants.EMOJI_PICKER_CATEGORIES.FLAGS, icon: "flag" }
50
+ { label: emoji_picker_constants.EMOJI_PICKER_CATEGORIES.MOST_RECENTLY_USED, icon: vue2.DtIconClock },
51
+ { label: emoji_picker_constants.EMOJI_PICKER_CATEGORIES.SMILEYS_AND_PEOPLE, icon: vue2.DtIconSatisfied },
52
+ { label: emoji_picker_constants.EMOJI_PICKER_CATEGORIES.NATURE, icon: vue2.DtIconLivingThing },
53
+ { label: emoji_picker_constants.EMOJI_PICKER_CATEGORIES.FOOD, icon: vue2.DtIconFood },
54
+ { label: emoji_picker_constants.EMOJI_PICKER_CATEGORIES.ACTIVITY, icon: vue2.DtIconObject },
55
+ { label: emoji_picker_constants.EMOJI_PICKER_CATEGORIES.TRAVEL, icon: vue2.DtIconTransportation },
56
+ { label: emoji_picker_constants.EMOJI_PICKER_CATEGORIES.OBJECTS, icon: vue2.DtIconLightbulb },
57
+ { label: emoji_picker_constants.EMOJI_PICKER_CATEGORIES.SYMBOLS, icon: vue2.DtIconHeart },
58
+ { label: emoji_picker_constants.EMOJI_PICKER_CATEGORIES.FLAGS, icon: vue2.DtIconFlag }
50
59
  ]
51
60
  };
52
61
  },
@@ -132,7 +141,7 @@ var _sfc_render = function render() {
132
141
  return _vm.selectTabset(tab2.id);
133
142
  }, "keydown": function($event) {
134
143
  return _vm.handleKeyDown($event, tab2.id);
135
- } } }, [_c("dt-icon", { attrs: { "size": "400", "name": tab2.icon } })], 1);
144
+ } } }, [_c(tab2.icon, { tag: "component", attrs: { "size": "400" } })], 1);
136
145
  });
137
146
  }, proxy: true }]) })], 1);
138
147
  };
@@ -1 +1 @@
1
- {"version":3,"file":"emoji_tabset.vue.cjs","sources":["../../../../components/emoji_picker/modules/emoji_tabset.vue"],"sourcesContent":["<template>\n <div class=\"d-emoji-picker__tabset\">\n <dt-tab-group\n size=\"sm\"\n tab-list-class=\"d-emoji-picker__tabset-list\"\n :selected=\"selectedTab\"\n >\n <template #tabs>\n <dt-tab\n v-for=\"(tab, index) in tabs\"\n :id=\"tab.id\"\n :ref=\"`tabsetRef-${index}`\"\n :key=\"tab.id\"\n :panel-id=\"tab.panelId\"\n :label=\"tab.label\"\n aria-controls=\"d-emoji-picker-list\"\n :tabindex=\"index + 1\"\n @click.capture.stop=\"selectTabset(tab.id)\"\n @keydown=\"handleKeyDown($event, tab.id)\"\n >\n <dt-icon\n size=\"400\"\n :name=\"tab.icon\"\n />\n </dt-tab>\n </template>\n </dt-tab-group>\n </div>\n</template>\n\n<script>\nimport DtTabGroup from '@/components/tabs/tab_group.vue';\nimport DtTab from '@/components/tabs/tab.vue';\nimport DtIcon from '@/components/icon/icon.vue';\nimport { EMOJI_PICKER_CATEGORIES } from '@/components/emoji_picker';\n\nexport default {\n name: 'EmojiTabset',\n\n components: {\n DtTabGroup,\n DtTab,\n DtIcon,\n },\n\n props: {\n showRecentlyUsedTab: {\n type: Boolean,\n default: false,\n },\n\n scrollIntoTab: {\n type: Number,\n required: true,\n },\n\n isScrolling: {\n type: Boolean,\n default: false,\n },\n\n emojiFilter: {\n type: String,\n default: '',\n },\n\n tabSetLabels: {\n type: Array,\n required: true,\n },\n },\n\n data () {\n return {\n selectedTab: '1',\n tabsetRef: [],\n TABS_DATA: [\n { label: EMOJI_PICKER_CATEGORIES.MOST_RECENTLY_USED, icon: 'clock' },\n { label: EMOJI_PICKER_CATEGORIES.SMILEYS_AND_PEOPLE, icon: 'satisfied' },\n { label: EMOJI_PICKER_CATEGORIES.NATURE, icon: 'living-thing' },\n { label: EMOJI_PICKER_CATEGORIES.FOOD, icon: 'food' },\n { label: EMOJI_PICKER_CATEGORIES.ACTIVITY, icon: 'object' },\n { label: EMOJI_PICKER_CATEGORIES.TRAVEL, icon: 'transportation' },\n { label: EMOJI_PICKER_CATEGORIES.OBJECTS, icon: 'lightbulb' },\n { label: EMOJI_PICKER_CATEGORIES.SYMBOLS, icon: 'heart' },\n { label: EMOJI_PICKER_CATEGORIES.FLAGS, icon: 'flag' },\n ],\n };\n },\n\n computed: {\n tabs () {\n const tabsData = this.showRecentlyUsedTab ? this.TABS_DATA : this.TABS_DATA.slice(1);\n return tabsData.map((tab, index) => ({\n ...tab,\n label: this.tabSetLabels[index],\n id: (index + 1).toString(),\n panelId: (index + 1).toString(),\n }));\n },\n\n isSearching () {\n return this.emojiFilter.length > 0;\n },\n },\n\n watch: {\n scrollIntoTab: function (newVal) {\n if (!this.isScrolling && !this.isSearching) {\n this.selectedTab = (newVal + 1).toString();\n }\n },\n\n isSearching: function (newVal) {\n if (newVal) {\n this.selectedTab = null;\n }\n },\n },\n\n mounted () {\n this.$nextTick(() => {\n this.setTabsetRef();\n });\n },\n\n methods: {\n selectTabset (id) {\n if (!this.isScrolling) {\n this.selectedTab = id;\n }\n this.$emit('selected-tabset', id);\n },\n\n setTabsetRef () {\n this.tabs.forEach((skin, index) => {\n const refKey = `tabsetRef-${index}`;\n if (this.$refs[refKey]) {\n this.$set(this.tabsetRef, index, this.$refs[refKey][0].$el);\n }\n });\n },\n\n focusTabset () {\n if (this.tabsetRef[0]) {\n this.tabsetRef[0].focus();\n }\n },\n\n // eslint-disable-next-line complexity\n handleKeyDown (event, tabId) {\n if (event.key === 'Enter') {\n this.selectTabset(tabId);\n if (this.tabsetRef[tabId - 1]) {\n this.tabsetRef[tabId - 1].blur();\n }\n }\n\n if (event.key === 'Tab') {\n event.preventDefault();\n if (event.shiftKey) {\n this.$emit('focus-skin-selector');\n } else {\n this.$emit('focus-search-input');\n }\n }\n\n if (event.key === 'ArrowDown') {\n this.$emit('focus-search-input');\n }\n },\n },\n};\n</script>\n"],"names":["DtTabGroup","DtTab","DtIcon","EMOJI_PICKER_CATEGORIES","tab"],"mappings":"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"}
1
+ {"version":3,"file":"emoji_tabset.vue.cjs","sources":["../../../../components/emoji_picker/modules/emoji_tabset.vue"],"sourcesContent":["<template>\n <div class=\"d-emoji-picker__tabset\">\n <dt-tab-group\n size=\"sm\"\n tab-list-class=\"d-emoji-picker__tabset-list\"\n :selected=\"selectedTab\"\n >\n <template #tabs>\n <dt-tab\n v-for=\"(tab, index) in tabs\"\n :id=\"tab.id\"\n :ref=\"`tabsetRef-${index}`\"\n :key=\"tab.id\"\n :panel-id=\"tab.panelId\"\n :label=\"tab.label\"\n aria-controls=\"d-emoji-picker-list\"\n :tabindex=\"index + 1\"\n @click.capture.stop=\"selectTabset(tab.id)\"\n @keydown=\"handleKeyDown($event, tab.id)\"\n >\n <component\n :is=\"tab.icon\"\n size=\"400\"\n />\n </dt-tab>\n </template>\n </dt-tab-group>\n </div>\n</template>\n\n<script>\nimport { DtTab, DtTabGroup } from '@/components/tabs';\nimport { EMOJI_PICKER_CATEGORIES } from '@/components/emoji_picker';\nimport {\n DtIconClock,\n DtIconSatisfied,\n DtIconLivingThing,\n DtIconFood,\n DtIconObject,\n DtIconTransportation,\n DtIconLightbulb,\n DtIconHeart,\n DtIconFlag,\n} from '@dialpad/dialtone-icons/vue2';\n\nexport default {\n name: 'EmojiTabset',\n\n components: {\n DtTabGroup,\n DtTab,\n },\n\n props: {\n /**\n * Whether to show the recently used tab or not\n * @type {Boolean}\n * @default false\n */\n showRecentlyUsedTab: {\n type: Boolean,\n default: false,\n },\n\n scrollIntoTab: {\n type: Number,\n required: true,\n },\n\n isScrolling: {\n type: Boolean,\n default: false,\n },\n\n emojiFilter: {\n type: String,\n default: '',\n },\n\n /**\n * The labels for the aria-label\n * @type {Array}\n * @required\n */\n tabSetLabels: {\n type: Array,\n required: true,\n },\n },\n\n data () {\n return {\n selectedTab: '1',\n tabsetRef: [],\n TABS_DATA: [\n { label: EMOJI_PICKER_CATEGORIES.MOST_RECENTLY_USED, icon: DtIconClock },\n { label: EMOJI_PICKER_CATEGORIES.SMILEYS_AND_PEOPLE, icon: DtIconSatisfied },\n { label: EMOJI_PICKER_CATEGORIES.NATURE, icon: DtIconLivingThing },\n { label: EMOJI_PICKER_CATEGORIES.FOOD, icon: DtIconFood },\n { label: EMOJI_PICKER_CATEGORIES.ACTIVITY, icon: DtIconObject },\n { label: EMOJI_PICKER_CATEGORIES.TRAVEL, icon: DtIconTransportation },\n { label: EMOJI_PICKER_CATEGORIES.OBJECTS, icon: DtIconLightbulb },\n { label: EMOJI_PICKER_CATEGORIES.SYMBOLS, icon: DtIconHeart },\n { label: EMOJI_PICKER_CATEGORIES.FLAGS, icon: DtIconFlag },\n ],\n };\n },\n\n computed: {\n tabs () {\n const tabsData = this.showRecentlyUsedTab ? this.TABS_DATA : this.TABS_DATA.slice(1);\n return tabsData.map((tab, index) => ({\n ...tab,\n label: this.tabSetLabels[index],\n id: (index + 1).toString(),\n panelId: (index + 1).toString(),\n }));\n },\n\n isSearching () {\n return this.emojiFilter.length > 0;\n },\n },\n\n watch: {\n scrollIntoTab: function (newVal) {\n if (!this.isScrolling && !this.isSearching) {\n this.selectedTab = (newVal + 1).toString();\n }\n },\n\n isSearching: function (newVal) {\n if (newVal) {\n this.selectedTab = null;\n }\n },\n },\n\n mounted () {\n this.$nextTick(() => {\n this.setTabsetRef();\n });\n },\n\n methods: {\n selectTabset (id) {\n if (!this.isScrolling) {\n this.selectedTab = id;\n }\n this.$emit('selected-tabset', id);\n },\n\n setTabsetRef () {\n this.tabs.forEach((skin, index) => {\n const refKey = `tabsetRef-${index}`;\n if (this.$refs[refKey]) {\n this.$set(this.tabsetRef, index, this.$refs[refKey][0].$el);\n }\n });\n },\n\n focusTabset () {\n if (this.tabsetRef[0]) {\n this.tabsetRef[0].focus();\n }\n },\n\n // eslint-disable-next-line complexity\n handleKeyDown (event, tabId) {\n if (event.key === 'Enter') {\n this.selectTabset(tabId);\n if (this.tabsetRef[tabId - 1]) {\n this.tabsetRef[tabId - 1].blur();\n }\n }\n\n if (event.key === 'Tab') {\n event.preventDefault();\n if (event.shiftKey) {\n this.$emit('focus-skin-selector');\n } else {\n this.$emit('focus-search-input');\n }\n }\n\n if (event.key === 'ArrowDown') {\n this.$emit('focus-search-input');\n }\n },\n },\n};\n</script>\n"],"names":["DtTabGroup","DtTab","EMOJI_PICKER_CATEGORIES","DtIconClock","DtIconSatisfied","DtIconLivingThing","DtIconFood","DtIconObject","DtIconTransportation","DtIconLightbulb","DtIconHeart","DtIconFlag","tab"],"mappings":"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"}
@@ -1,16 +1,20 @@
1
+ import { DtIconClock, DtIconSatisfied, DtIconLivingThing, DtIconFood, DtIconObject, DtIconTransportation, DtIconLightbulb, DtIconHeart, DtIconFlag } from "@dialpad/dialtone-icons/vue2";
2
+ import normalizeComponent from "../../../_virtual/_plugin-vue2_normalizer.js";
1
3
  import DtTabGroup from "../../tabs/tab_group.vue.js";
2
4
  import DtTab from "../../tabs/tab.vue.js";
3
- import DtIcon from "../../icon/icon.vue.js";
4
- import normalizeComponent from "../../../_virtual/_plugin-vue2_normalizer.js";
5
5
  import { EMOJI_PICKER_CATEGORIES } from "../emoji_picker_constants.js";
6
6
  const _sfc_main = {
7
7
  name: "EmojiTabset",
8
8
  components: {
9
9
  DtTabGroup,
10
- DtTab,
11
- DtIcon
10
+ DtTab
12
11
  },
13
12
  props: {
13
+ /**
14
+ * Whether to show the recently used tab or not
15
+ * @type {Boolean}
16
+ * @default false
17
+ */
14
18
  showRecentlyUsedTab: {
15
19
  type: Boolean,
16
20
  default: false
@@ -27,6 +31,11 @@ const _sfc_main = {
27
31
  type: String,
28
32
  default: ""
29
33
  },
34
+ /**
35
+ * The labels for the aria-label
36
+ * @type {Array}
37
+ * @required
38
+ */
30
39
  tabSetLabels: {
31
40
  type: Array,
32
41
  required: true
@@ -37,15 +46,15 @@ const _sfc_main = {
37
46
  selectedTab: "1",
38
47
  tabsetRef: [],
39
48
  TABS_DATA: [
40
- { label: EMOJI_PICKER_CATEGORIES.MOST_RECENTLY_USED, icon: "clock" },
41
- { label: EMOJI_PICKER_CATEGORIES.SMILEYS_AND_PEOPLE, icon: "satisfied" },
42
- { label: EMOJI_PICKER_CATEGORIES.NATURE, icon: "living-thing" },
43
- { label: EMOJI_PICKER_CATEGORIES.FOOD, icon: "food" },
44
- { label: EMOJI_PICKER_CATEGORIES.ACTIVITY, icon: "object" },
45
- { label: EMOJI_PICKER_CATEGORIES.TRAVEL, icon: "transportation" },
46
- { label: EMOJI_PICKER_CATEGORIES.OBJECTS, icon: "lightbulb" },
47
- { label: EMOJI_PICKER_CATEGORIES.SYMBOLS, icon: "heart" },
48
- { label: EMOJI_PICKER_CATEGORIES.FLAGS, icon: "flag" }
49
+ { label: EMOJI_PICKER_CATEGORIES.MOST_RECENTLY_USED, icon: DtIconClock },
50
+ { label: EMOJI_PICKER_CATEGORIES.SMILEYS_AND_PEOPLE, icon: DtIconSatisfied },
51
+ { label: EMOJI_PICKER_CATEGORIES.NATURE, icon: DtIconLivingThing },
52
+ { label: EMOJI_PICKER_CATEGORIES.FOOD, icon: DtIconFood },
53
+ { label: EMOJI_PICKER_CATEGORIES.ACTIVITY, icon: DtIconObject },
54
+ { label: EMOJI_PICKER_CATEGORIES.TRAVEL, icon: DtIconTransportation },
55
+ { label: EMOJI_PICKER_CATEGORIES.OBJECTS, icon: DtIconLightbulb },
56
+ { label: EMOJI_PICKER_CATEGORIES.SYMBOLS, icon: DtIconHeart },
57
+ { label: EMOJI_PICKER_CATEGORIES.FLAGS, icon: DtIconFlag }
49
58
  ]
50
59
  };
51
60
  },
@@ -131,7 +140,7 @@ var _sfc_render = function render() {
131
140
  return _vm.selectTabset(tab.id);
132
141
  }, "keydown": function($event) {
133
142
  return _vm.handleKeyDown($event, tab.id);
134
- } } }, [_c("dt-icon", { attrs: { "size": "400", "name": tab.icon } })], 1);
143
+ } } }, [_c(tab.icon, { tag: "component", attrs: { "size": "400" } })], 1);
135
144
  });
136
145
  }, proxy: true }]) })], 1);
137
146
  };
@@ -1 +1 @@
1
- {"version":3,"file":"emoji_tabset.vue.js","sources":["../../../../components/emoji_picker/modules/emoji_tabset.vue"],"sourcesContent":["<template>\n <div class=\"d-emoji-picker__tabset\">\n <dt-tab-group\n size=\"sm\"\n tab-list-class=\"d-emoji-picker__tabset-list\"\n :selected=\"selectedTab\"\n >\n <template #tabs>\n <dt-tab\n v-for=\"(tab, index) in tabs\"\n :id=\"tab.id\"\n :ref=\"`tabsetRef-${index}`\"\n :key=\"tab.id\"\n :panel-id=\"tab.panelId\"\n :label=\"tab.label\"\n aria-controls=\"d-emoji-picker-list\"\n :tabindex=\"index + 1\"\n @click.capture.stop=\"selectTabset(tab.id)\"\n @keydown=\"handleKeyDown($event, tab.id)\"\n >\n <dt-icon\n size=\"400\"\n :name=\"tab.icon\"\n />\n </dt-tab>\n </template>\n </dt-tab-group>\n </div>\n</template>\n\n<script>\nimport DtTabGroup from '@/components/tabs/tab_group.vue';\nimport DtTab from '@/components/tabs/tab.vue';\nimport DtIcon from '@/components/icon/icon.vue';\nimport { EMOJI_PICKER_CATEGORIES } from '@/components/emoji_picker';\n\nexport default {\n name: 'EmojiTabset',\n\n components: {\n DtTabGroup,\n DtTab,\n DtIcon,\n },\n\n props: {\n showRecentlyUsedTab: {\n type: Boolean,\n default: false,\n },\n\n scrollIntoTab: {\n type: Number,\n required: true,\n },\n\n isScrolling: {\n type: Boolean,\n default: false,\n },\n\n emojiFilter: {\n type: String,\n default: '',\n },\n\n tabSetLabels: {\n type: Array,\n required: true,\n },\n },\n\n data () {\n return {\n selectedTab: '1',\n tabsetRef: [],\n TABS_DATA: [\n { label: EMOJI_PICKER_CATEGORIES.MOST_RECENTLY_USED, icon: 'clock' },\n { label: EMOJI_PICKER_CATEGORIES.SMILEYS_AND_PEOPLE, icon: 'satisfied' },\n { label: EMOJI_PICKER_CATEGORIES.NATURE, icon: 'living-thing' },\n { label: EMOJI_PICKER_CATEGORIES.FOOD, icon: 'food' },\n { label: EMOJI_PICKER_CATEGORIES.ACTIVITY, icon: 'object' },\n { label: EMOJI_PICKER_CATEGORIES.TRAVEL, icon: 'transportation' },\n { label: EMOJI_PICKER_CATEGORIES.OBJECTS, icon: 'lightbulb' },\n { label: EMOJI_PICKER_CATEGORIES.SYMBOLS, icon: 'heart' },\n { label: EMOJI_PICKER_CATEGORIES.FLAGS, icon: 'flag' },\n ],\n };\n },\n\n computed: {\n tabs () {\n const tabsData = this.showRecentlyUsedTab ? this.TABS_DATA : this.TABS_DATA.slice(1);\n return tabsData.map((tab, index) => ({\n ...tab,\n label: this.tabSetLabels[index],\n id: (index + 1).toString(),\n panelId: (index + 1).toString(),\n }));\n },\n\n isSearching () {\n return this.emojiFilter.length > 0;\n },\n },\n\n watch: {\n scrollIntoTab: function (newVal) {\n if (!this.isScrolling && !this.isSearching) {\n this.selectedTab = (newVal + 1).toString();\n }\n },\n\n isSearching: function (newVal) {\n if (newVal) {\n this.selectedTab = null;\n }\n },\n },\n\n mounted () {\n this.$nextTick(() => {\n this.setTabsetRef();\n });\n },\n\n methods: {\n selectTabset (id) {\n if (!this.isScrolling) {\n this.selectedTab = id;\n }\n this.$emit('selected-tabset', id);\n },\n\n setTabsetRef () {\n this.tabs.forEach((skin, index) => {\n const refKey = `tabsetRef-${index}`;\n if (this.$refs[refKey]) {\n this.$set(this.tabsetRef, index, this.$refs[refKey][0].$el);\n }\n });\n },\n\n focusTabset () {\n if (this.tabsetRef[0]) {\n this.tabsetRef[0].focus();\n }\n },\n\n // eslint-disable-next-line complexity\n handleKeyDown (event, tabId) {\n if (event.key === 'Enter') {\n this.selectTabset(tabId);\n if (this.tabsetRef[tabId - 1]) {\n this.tabsetRef[tabId - 1].blur();\n }\n }\n\n if (event.key === 'Tab') {\n event.preventDefault();\n if (event.shiftKey) {\n this.$emit('focus-skin-selector');\n } else {\n this.$emit('focus-search-input');\n }\n }\n\n if (event.key === 'ArrowDown') {\n this.$emit('focus-search-input');\n }\n },\n },\n};\n</script>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emoji_tabset.vue.js","sources":["../../../../components/emoji_picker/modules/emoji_tabset.vue"],"sourcesContent":["<template>\n <div class=\"d-emoji-picker__tabset\">\n <dt-tab-group\n size=\"sm\"\n tab-list-class=\"d-emoji-picker__tabset-list\"\n :selected=\"selectedTab\"\n >\n <template #tabs>\n <dt-tab\n v-for=\"(tab, index) in tabs\"\n :id=\"tab.id\"\n :ref=\"`tabsetRef-${index}`\"\n :key=\"tab.id\"\n :panel-id=\"tab.panelId\"\n :label=\"tab.label\"\n aria-controls=\"d-emoji-picker-list\"\n :tabindex=\"index + 1\"\n @click.capture.stop=\"selectTabset(tab.id)\"\n @keydown=\"handleKeyDown($event, tab.id)\"\n >\n <component\n :is=\"tab.icon\"\n size=\"400\"\n />\n </dt-tab>\n </template>\n </dt-tab-group>\n </div>\n</template>\n\n<script>\nimport { DtTab, DtTabGroup } from '@/components/tabs';\nimport { EMOJI_PICKER_CATEGORIES } from '@/components/emoji_picker';\nimport {\n DtIconClock,\n DtIconSatisfied,\n DtIconLivingThing,\n DtIconFood,\n DtIconObject,\n DtIconTransportation,\n DtIconLightbulb,\n DtIconHeart,\n DtIconFlag,\n} from '@dialpad/dialtone-icons/vue2';\n\nexport default {\n name: 'EmojiTabset',\n\n components: {\n DtTabGroup,\n DtTab,\n },\n\n props: {\n /**\n * Whether to show the recently used tab or not\n * @type {Boolean}\n * @default false\n */\n showRecentlyUsedTab: {\n type: Boolean,\n default: false,\n },\n\n scrollIntoTab: {\n type: Number,\n required: true,\n },\n\n isScrolling: {\n type: Boolean,\n default: false,\n },\n\n emojiFilter: {\n type: String,\n default: '',\n },\n\n /**\n * The labels for the aria-label\n * @type {Array}\n * @required\n */\n tabSetLabels: {\n type: Array,\n required: true,\n },\n },\n\n data () {\n return {\n selectedTab: '1',\n tabsetRef: [],\n TABS_DATA: [\n { label: EMOJI_PICKER_CATEGORIES.MOST_RECENTLY_USED, icon: DtIconClock },\n { label: EMOJI_PICKER_CATEGORIES.SMILEYS_AND_PEOPLE, icon: DtIconSatisfied },\n { label: EMOJI_PICKER_CATEGORIES.NATURE, icon: DtIconLivingThing },\n { label: EMOJI_PICKER_CATEGORIES.FOOD, icon: DtIconFood },\n { label: EMOJI_PICKER_CATEGORIES.ACTIVITY, icon: DtIconObject },\n { label: EMOJI_PICKER_CATEGORIES.TRAVEL, icon: DtIconTransportation },\n { label: EMOJI_PICKER_CATEGORIES.OBJECTS, icon: DtIconLightbulb },\n { label: EMOJI_PICKER_CATEGORIES.SYMBOLS, icon: DtIconHeart },\n { label: EMOJI_PICKER_CATEGORIES.FLAGS, icon: DtIconFlag },\n ],\n };\n },\n\n computed: {\n tabs () {\n const tabsData = this.showRecentlyUsedTab ? this.TABS_DATA : this.TABS_DATA.slice(1);\n return tabsData.map((tab, index) => ({\n ...tab,\n label: this.tabSetLabels[index],\n id: (index + 1).toString(),\n panelId: (index + 1).toString(),\n }));\n },\n\n isSearching () {\n return this.emojiFilter.length > 0;\n },\n },\n\n watch: {\n scrollIntoTab: function (newVal) {\n if (!this.isScrolling && !this.isSearching) {\n this.selectedTab = (newVal + 1).toString();\n }\n },\n\n isSearching: function (newVal) {\n if (newVal) {\n this.selectedTab = null;\n }\n },\n },\n\n mounted () {\n this.$nextTick(() => {\n this.setTabsetRef();\n });\n },\n\n methods: {\n selectTabset (id) {\n if (!this.isScrolling) {\n this.selectedTab = id;\n }\n this.$emit('selected-tabset', id);\n },\n\n setTabsetRef () {\n this.tabs.forEach((skin, index) => {\n const refKey = `tabsetRef-${index}`;\n if (this.$refs[refKey]) {\n this.$set(this.tabsetRef, index, this.$refs[refKey][0].$el);\n }\n });\n },\n\n focusTabset () {\n if (this.tabsetRef[0]) {\n this.tabsetRef[0].focus();\n }\n },\n\n // eslint-disable-next-line complexity\n handleKeyDown (event, tabId) {\n if (event.key === 'Enter') {\n this.selectTabset(tabId);\n if (this.tabsetRef[tabId - 1]) {\n this.tabsetRef[tabId - 1].blur();\n }\n }\n\n if (event.key === 'Tab') {\n event.preventDefault();\n if (event.shiftKey) {\n this.$emit('focus-skin-selector');\n } else {\n this.$emit('focus-search-input');\n }\n }\n\n if (event.key === 'ArrowDown') {\n this.$emit('focus-search-input');\n }\n },\n },\n};\n</script>\n"],"names":[],"mappings":"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"}
@@ -1,16 +1,10 @@
1
1
  "use strict";
2
2
  const empty_state_constants = require("./empty_state_constants.cjs");
3
3
  const _pluginVue2_normalizer = require("../../_virtual/_plugin-vue2_normalizer.cjs");
4
- const illustration = require("../illustration/illustration.vue.cjs");
5
- const icon = require("../icon/icon.vue.cjs");
6
4
  const stack = require("../stack/stack.vue.cjs");
7
- const illustration_constants = require("../illustration/illustration_constants.cjs");
8
- const icon_constants = require("../icon/icon_constants.cjs");
9
5
  const _sfc_main = {
10
6
  name: "DtEmptyState",
11
7
  components: {
12
- DtIllustration: illustration,
13
- DtIcon: icon,
14
8
  DtStack: stack
15
9
  },
16
10
  props: {
@@ -23,28 +17,6 @@ const _sfc_main = {
23
17
  default: "lg",
24
18
  validator: (s) => Object.keys(empty_state_constants.EMPTY_STATE_SIZE_MODIFIERS).includes(s)
25
19
  },
26
- /**
27
- * The illustration name in kebab-case
28
- * This only displays when size is 'lg' or 'md'
29
- * This has priority over icon.
30
- * @type {String}
31
- */
32
- illustrationName: {
33
- type: String,
34
- default: null,
35
- validator: (name) => illustration_constants.ILLUSTRATION_NAMES.includes(name)
36
- },
37
- /**
38
- * The icon name in kebab-case
39
- * This will be shown in 'lg' and 'md' size only if illustrationName prop is not provided and
40
- * Will always be shown in 'sm' size.
41
- * @type {String}
42
- */
43
- iconName: {
44
- type: String,
45
- default: null,
46
- validator: (name) => icon_constants.ICON_NAMES.includes(name)
47
- },
48
20
  /**
49
21
  * Header text
50
22
  * @type {String}
@@ -60,36 +32,31 @@ const _sfc_main = {
60
32
  bodyText: {
61
33
  type: String,
62
34
  default: null
63
- },
64
- /**
65
- * Whether to show the illustration
66
- * @type {Boolean}
67
- */
68
- showIllustration: {
69
- type: Boolean,
70
- default: true
71
35
  }
72
36
  },
73
37
  computed: {
74
- /**
75
- * Illustration will always be shown in lg and md size
76
- * Illustration will not be shown in sm size
77
- */
78
- showIllustrationComponent() {
79
- return this.illustrationName && this.notSmSize;
38
+ hasIcon() {
39
+ return this.$scopedSlots.icon && this.$scopedSlots.icon();
40
+ },
41
+ hasIllustration() {
42
+ return this.$scopedSlots.illustration && this.$scopedSlots.illustration();
43
+ },
44
+ isSmallSize() {
45
+ return this.size === "sm";
80
46
  },
81
47
  /**
82
48
  * Icon will be shown in lg and md size only if illustration is not provided
83
49
  * Icon will always be shown in sm size
84
50
  */
85
51
  showIcon() {
86
- if (!this.iconName) {
87
- return false;
88
- }
89
- return !(this.illustrationName && this.notSmSize);
52
+ return this.hasIcon && (!this.hasIllustration || this.isSmallSize);
90
53
  },
91
- notSmSize() {
92
- return this.size !== "sm";
54
+ /**
55
+ * Illustration will always be shown in lg and md size
56
+ * Illustration will not be shown in sm size
57
+ */
58
+ showIllustration() {
59
+ return this.hasIllustration && !this.isSmallSize;
93
60
  },
94
61
  sizeClass() {
95
62
  return empty_state_constants.EMPTY_STATE_SIZE_MODIFIERS[this.size];
@@ -98,51 +65,24 @@ const _sfc_main = {
98
65
  return ["d-empty-state", this.sizeClass];
99
66
  },
100
67
  contentClass() {
101
- switch (this.size) {
102
- case "sm":
103
- return "d-empty-state__content--sm";
104
- case "md":
105
- return "d-empty-state__content--md";
106
- case "lg":
107
- return "d-empty-state__content--lg";
108
- default:
109
- return "d-empty-state__content--lg";
110
- }
68
+ return empty_state_constants.EMPTY_STATE_CONTENT_SIZE_MODIFIERS[this.size];
111
69
  },
112
70
  headlineClass() {
113
- switch (this.size) {
114
- case "sm":
115
- return "d-headline--md";
116
- case "md":
117
- return "d-headline--xl";
118
- case "lg":
119
- return "d-headline--xxl";
120
- default:
121
- return "d-headline--xxl";
122
- }
71
+ return empty_state_constants.EMPTY_STATE_HEADLINE_SIZE_MODIFIERS[this.size];
123
72
  },
124
73
  bodyClass() {
125
- switch (this.size) {
126
- case "sm":
127
- return "d-body--sm";
128
- case "md":
129
- return "d-body--sm";
130
- case "lg":
131
- return "d-body--md";
132
- default:
133
- return "d-body--md";
134
- }
74
+ return empty_state_constants.EMPTY_STATE_BODY_SIZE_MODIFIERS[this.size];
135
75
  }
136
76
  },
137
77
  mounted() {
138
78
  if (!this.bodyText && !this.$slots.body) {
139
- console.warn("Dialtone Empty State component: You should provide either bodyText or content on body slot.");
79
+ console.error("DtEmptyState: You should provide either bodyText or content on body slot.");
140
80
  }
141
81
  }
142
82
  };
143
83
  var _sfc_render = function render() {
144
84
  var _vm = this, _c = _vm._self._c;
145
- return _c("dt-stack", { class: _vm.emptyStateClasses }, [_vm.showIllustration ? [_vm.showIcon ? _c("span", { staticClass: "d-empty-state__icon" }, [_c("dt-icon", { attrs: { "name": _vm.iconName, "size": "800" } })], 1) : _vm._e(), _vm.showIllustrationComponent ? _c("span", { staticClass: "d-empty-state__illustration" }, [_c("dt-illustration", { attrs: { "name": _vm.illustrationName } })], 1) : _vm._e()] : _vm._e(), _c("dt-stack", { class: ["d-empty-state__content", _vm.contentClass], attrs: { "gap": "450" } }, [_c("div", { class: ["d-empty-state__header-text", _vm.headlineClass] }, [_vm._v(" " + _vm._s(_vm.headerText) + " ")]), _vm.bodyText ? _c("p", { class: ["d-empty-state__body-text", _vm.bodyClass] }, [_vm._v(" " + _vm._s(_vm.bodyText) + " ")]) : _vm._e()]), _vm._t("body")], 2);
85
+ return _c("dt-stack", { class: _vm.emptyStateClasses }, [_vm.showIllustration ? _c("span", { staticClass: "d-empty-state__illustration" }, [_vm._t("illustration")], 2) : _vm._e(), _vm.showIcon ? _c("span", { staticClass: "d-empty-state__icon" }, [_vm._t("icon", null, { "iconSize": "800" })], 2) : _vm._e(), _c("dt-stack", { class: ["d-empty-state__content", _vm.contentClass], attrs: { "gap": "450" } }, [_c("div", { class: ["d-empty-state__header-text", _vm.headlineClass] }, [_vm._v(" " + _vm._s(_vm.headerText) + " ")]), _vm.bodyText ? _c("p", { class: ["d-empty-state__body-text", _vm.bodyClass] }, [_vm._v(" " + _vm._s(_vm.bodyText) + " ")]) : _vm._e()]), _vm._t("body")], 2);
146
86
  };
147
87
  var _sfc_staticRenderFns = [];
148
88
  var __component__ = /* @__PURE__ */ _pluginVue2_normalizer(
@@ -1 +1 @@
1
- {"version":3,"file":"empty_state.vue.cjs","sources":["../../../components/empty_state/empty_state.vue"],"sourcesContent":["<template>\n <dt-stack\n :class=\"emptyStateClasses\"\n >\n <template v-if=\"showIllustration\">\n <span\n v-if=\"showIcon\"\n class=\"d-empty-state__icon\"\n >\n <dt-icon\n :name=\"iconName\"\n size=\"800\"\n />\n </span>\n\n <span\n v-if=\"showIllustrationComponent\"\n class=\"d-empty-state__illustration\"\n >\n <dt-illustration\n :name=\"illustrationName\"\n />\n </span>\n </template>\n\n <dt-stack\n gap=\"450\"\n :class=\"['d-empty-state__content', contentClass]\"\n >\n <div :class=\"['d-empty-state__header-text', headlineClass]\">\n {{ headerText }}\n </div>\n\n <p\n v-if=\"bodyText\"\n :class=\"['d-empty-state__body-text', bodyClass]\"\n >\n {{ bodyText }}\n </p>\n </dt-stack>\n\n <slot name=\"body\" />\n </dt-stack>\n</template>\n\n<script>\nimport { EMPTY_STATE_SIZE_MODIFIERS } from './empty_state_constants.js';\nimport { DtIllustration, ILLUSTRATION_NAMES } from '@/components/illustration';\nimport { DtIcon, ICON_NAMES } from '@/components/icon';\nimport { DtStack } from '@/components/stack';\n\nexport default {\n name: 'DtEmptyState',\n\n components: {\n DtIllustration,\n DtIcon,\n DtStack,\n },\n\n props: {\n /**\n * The empty state size.\n * @values 'sm', 'md', 'lg'\n */\n size: {\n type: String,\n default: 'lg',\n validator: (s) => Object.keys(EMPTY_STATE_SIZE_MODIFIERS).includes(s),\n },\n\n /**\n * The illustration name in kebab-case\n * This only displays when size is 'lg' or 'md'\n * This has priority over icon.\n * @type {String}\n */\n illustrationName: {\n type: String,\n default: null,\n validator: (name) => ILLUSTRATION_NAMES.includes(name),\n },\n\n /**\n * The icon name in kebab-case\n * This will be shown in 'lg' and 'md' size only if illustrationName prop is not provided and\n * Will always be shown in 'sm' size.\n * @type {String}\n */\n iconName: {\n type: String,\n default: null,\n validator: (name) => ICON_NAMES.includes(name),\n },\n\n /**\n * Header text\n * @type {String}\n */\n headerText: {\n type: String,\n required: true,\n },\n\n /**\n * Body text\n * @type {String}\n */\n bodyText: {\n type: String,\n default: null,\n },\n\n /**\n * Whether to show the illustration\n * @type {Boolean}\n */\n showIllustration: {\n type: Boolean,\n default: true,\n },\n },\n\n computed: {\n /**\n * Illustration will always be shown in lg and md size\n * Illustration will not be shown in sm size\n */\n showIllustrationComponent () {\n return this.illustrationName && this.notSmSize;\n },\n\n /**\n * Icon will be shown in lg and md size only if illustration is not provided\n * Icon will always be shown in sm size\n */\n showIcon () {\n if (!this.iconName) {\n return false;\n }\n\n return !(this.illustrationName && this.notSmSize);\n },\n\n notSmSize () {\n return this.size !== 'sm';\n },\n\n sizeClass () {\n return EMPTY_STATE_SIZE_MODIFIERS[this.size];\n },\n\n emptyStateClasses () {\n return ['d-empty-state', this.sizeClass];\n },\n\n contentClass () {\n switch (this.size) {\n case 'sm':\n return 'd-empty-state__content--sm';\n case 'md':\n return 'd-empty-state__content--md';\n case 'lg':\n return 'd-empty-state__content--lg';\n default:\n return 'd-empty-state__content--lg';\n }\n },\n\n headlineClass () {\n switch (this.size) {\n case 'sm':\n return 'd-headline--md';\n case 'md':\n return 'd-headline--xl';\n case 'lg':\n return 'd-headline--xxl';\n default:\n return 'd-headline--xxl';\n }\n },\n\n bodyClass () {\n switch (this.size) {\n case 'sm':\n return 'd-body--sm';\n case 'md':\n return 'd-body--sm';\n case 'lg':\n return 'd-body--md';\n default:\n return 'd-body--md';\n }\n },\n },\n\n mounted () {\n if (!this.bodyText && !this.$slots.body) {\n console.warn('Dialtone Empty State component: You should provide either bodyText or content on body slot.');\n }\n },\n};\n</script>\n"],"names":["DtIllustration","DtIcon","DtStack","EMPTY_STATE_SIZE_MODIFIERS","ILLUSTRATION_NAMES","ICON_NAMES"],"mappings":";;;;;;;;AAmDA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,gBAAAA;AAAAA,IACA,QAAAC;AAAAA,IACA,SAAAC;AAAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,MAAA,OAAA,KAAAC,gDAAA,EAAA,SAAA,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,kBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,SAAAC,0CAAA,SAAA,IAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,SAAAC,0BAAA,SAAA,IAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,kBAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,4BAAA;AACA,aAAA,KAAA,oBAAA,KAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,WAAA;AACA,UAAA,CAAA,KAAA,UAAA;AACA,eAAA;AAAA,MACA;AAEA,aAAA,EAAA,KAAA,oBAAA,KAAA;AAAA,IACA;AAAA,IAEA,YAAA;AACA,aAAA,KAAA,SAAA;AAAA,IACA;AAAA,IAEA,YAAA;AACA,aAAAF,sBAAA,2BAAA,KAAA,IAAA;AAAA,IACA;AAAA,IAEA,oBAAA;AACA,aAAA,CAAA,iBAAA,KAAA,SAAA;AAAA,IACA;AAAA,IAEA,eAAA;AACA,cAAA,KAAA,MAAA;AAAA,QACA,KAAA;AACA,iBAAA;AAAA,QACA,KAAA;AACA,iBAAA;AAAA,QACA,KAAA;AACA,iBAAA;AAAA,QACA;AACA,iBAAA;AAAA,MACA;AAAA,IACA;AAAA,IAEA,gBAAA;AACA,cAAA,KAAA,MAAA;AAAA,QACA,KAAA;AACA,iBAAA;AAAA,QACA,KAAA;AACA,iBAAA;AAAA,QACA,KAAA;AACA,iBAAA;AAAA,QACA;AACA,iBAAA;AAAA,MACA;AAAA,IACA;AAAA,IAEA,YAAA;AACA,cAAA,KAAA,MAAA;AAAA,QACA,KAAA;AACA,iBAAA;AAAA,QACA,KAAA;AACA,iBAAA;AAAA,QACA,KAAA;AACA,iBAAA;AAAA,QACA;AACA,iBAAA;AAAA,MACA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AACA,QAAA,CAAA,KAAA,YAAA,CAAA,KAAA,OAAA,MAAA;AACA,cAAA,KAAA,6FAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"empty_state.vue.cjs","sources":["../../../components/empty_state/empty_state.vue"],"sourcesContent":["<template>\n <dt-stack\n :class=\"emptyStateClasses\"\n >\n <span\n v-if=\"showIllustration\"\n class=\"d-empty-state__illustration\"\n >\n <!-- @slot Slot for the illustration. Displays when size is 'lg' or 'md'. Overrides icon. -->\n <slot name=\"illustration\" />\n </span>\n\n <span\n v-if=\"showIcon\"\n class=\"d-empty-state__icon\"\n >\n <!-- @slot Slot for the icon. Displayed if illustration is not provided. -->\n <slot\n name=\"icon\"\n :icon-size=\"'800'\"\n />\n </span>\n\n <dt-stack\n gap=\"450\"\n :class=\"['d-empty-state__content', contentClass]\"\n >\n <div :class=\"['d-empty-state__header-text', headlineClass]\">\n {{ headerText }}\n </div>\n\n <p\n v-if=\"bodyText\"\n :class=\"['d-empty-state__body-text', bodyClass]\"\n >\n {{ bodyText }}\n </p>\n </dt-stack>\n\n <slot name=\"body\" />\n </dt-stack>\n</template>\n\n<script>\nimport {\n EMPTY_STATE_BODY_SIZE_MODIFIERS,\n EMPTY_STATE_CONTENT_SIZE_MODIFIERS,\n EMPTY_STATE_HEADLINE_SIZE_MODIFIERS,\n EMPTY_STATE_SIZE_MODIFIERS,\n} from './empty_state_constants.js';\nimport { DtStack } from '@/components/stack';\n\nexport default {\n name: 'DtEmptyState',\n\n components: {\n DtStack,\n },\n\n props: {\n /**\n * The empty state size.\n * @values 'sm', 'md', 'lg'\n */\n size: {\n type: String,\n default: 'lg',\n validator: (s) => Object.keys(EMPTY_STATE_SIZE_MODIFIERS).includes(s),\n },\n\n /**\n * Header text\n * @type {String}\n */\n headerText: {\n type: String,\n required: true,\n },\n\n /**\n * Body text\n * @type {String}\n */\n bodyText: {\n type: String,\n default: null,\n },\n },\n\n computed: {\n hasIcon () {\n return this.$scopedSlots.icon && this.$scopedSlots.icon();\n },\n\n hasIllustration () {\n return this.$scopedSlots.illustration && this.$scopedSlots.illustration();\n },\n\n isSmallSize () {\n return this.size === 'sm';\n },\n\n /**\n * Icon will be shown in lg and md size only if illustration is not provided\n * Icon will always be shown in sm size\n */\n showIcon () {\n return this.hasIcon && (!this.hasIllustration || this.isSmallSize);\n },\n\n /**\n * Illustration will always be shown in lg and md size\n * Illustration will not be shown in sm size\n */\n showIllustration () {\n return this.hasIllustration && !this.isSmallSize;\n },\n\n sizeClass () {\n return EMPTY_STATE_SIZE_MODIFIERS[this.size];\n },\n\n emptyStateClasses () {\n return ['d-empty-state', this.sizeClass];\n },\n\n contentClass () {\n return EMPTY_STATE_CONTENT_SIZE_MODIFIERS[this.size];\n },\n\n headlineClass () {\n return EMPTY_STATE_HEADLINE_SIZE_MODIFIERS[this.size];\n },\n\n bodyClass () {\n return EMPTY_STATE_BODY_SIZE_MODIFIERS[this.size];\n },\n },\n\n mounted () {\n if (!this.bodyText && !this.$slots.body) {\n console.error('DtEmptyState: You should provide either bodyText or content on body slot.');\n }\n },\n};\n</script>\n"],"names":["DtStack","EMPTY_STATE_SIZE_MODIFIERS","EMPTY_STATE_CONTENT_SIZE_MODIFIERS","EMPTY_STATE_HEADLINE_SIZE_MODIFIERS","EMPTY_STATE_BODY_SIZE_MODIFIERS"],"mappings":";;;;AAoDA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,YAAA;AAAA,IACA,SAAAA;AAAAA,EACA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,MAAA,OAAA,KAAAC,gDAAA,EAAA,SAAA,CAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,YAAA;AAAA,MACA,MAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,UAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,UAAA;AACA,aAAA,KAAA,aAAA,QAAA,KAAA,aAAA;IACA;AAAA,IAEA,kBAAA;AACA,aAAA,KAAA,aAAA,gBAAA,KAAA,aAAA;IACA;AAAA,IAEA,cAAA;AACA,aAAA,KAAA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,WAAA;AACA,aAAA,KAAA,YAAA,CAAA,KAAA,mBAAA,KAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,mBAAA;AACA,aAAA,KAAA,mBAAA,CAAA,KAAA;AAAA,IACA;AAAA,IAEA,YAAA;AACA,aAAAA,sBAAA,2BAAA,KAAA,IAAA;AAAA,IACA;AAAA,IAEA,oBAAA;AACA,aAAA,CAAA,iBAAA,KAAA,SAAA;AAAA,IACA;AAAA,IAEA,eAAA;AACA,aAAAC,sBAAA,mCAAA,KAAA,IAAA;AAAA,IACA;AAAA,IAEA,gBAAA;AACA,aAAAC,sBAAA,oCAAA,KAAA,IAAA;AAAA,IACA;AAAA,IAEA,YAAA;AACA,aAAAC,sBAAA,gCAAA,KAAA,IAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AACA,QAAA,CAAA,KAAA,YAAA,CAAA,KAAA,OAAA,MAAA;AACA,cAAA,MAAA,2EAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;"}