@dialpad/dialtone-vue 2.153.0 → 2.154.0

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 (398) hide show
  1. package/dist/chunks/{dropdown-YdCyJ5Dq.js → dropdown-6UoczdUY.js} +41 -77
  2. package/dist/chunks/{dropdown-YdCyJ5Dq.js.map → dropdown-6UoczdUY.js.map} +1 -1
  3. package/dist/chunks/{dropdown-mjrYu_mK.js → dropdown-pHxnQPzT.js} +41 -77
  4. package/dist/chunks/{dropdown-mjrYu_mK.js.map → dropdown-pHxnQPzT.js.map} +1 -1
  5. package/dist/chunks/dropdown_constants-2pGCXy7m.js.map +1 -1
  6. package/dist/chunks/dropdown_constants-w1MXGC3Z.js.map +1 -1
  7. package/dist/chunks/{icon_constants-TdxqLsS2.js → icon_constants-Dy4MEUJL.js} +2 -3
  8. package/dist/chunks/icon_constants-Dy4MEUJL.js.map +1 -0
  9. package/dist/chunks/{icon_constants-VEA0wI5C.js → icon_constants-QYpmdE0R.js} +2 -3
  10. package/dist/chunks/icon_constants-QYpmdE0R.js.map +1 -0
  11. package/dist/chunks/{index-i65YVk-U.js → index-ODod4Oj_.js} +13 -5
  12. package/dist/chunks/{index-i65YVk-U.js.map → index-ODod4Oj_.js.map} +1 -1
  13. package/dist/chunks/{index-NYFNZeHH.js → index-anN_sx1F.js} +13 -5
  14. package/dist/chunks/{index-NYFNZeHH.js.map → index-anN_sx1F.js.map} +1 -1
  15. package/dist/chunks/{index-mBWay1Qb.js → index-eJ-WWRdf.js} +87 -122
  16. package/dist/chunks/{index-mBWay1Qb.js.map → index-eJ-WWRdf.js.map} +1 -1
  17. package/dist/chunks/{index-DyqUqjvI.js → index-gj1jEXP4.js} +87 -122
  18. package/dist/chunks/{index-DyqUqjvI.js.map → index-gj1jEXP4.js.map} +1 -1
  19. package/dist/chunks/{input-PhJeBN6r.js → input-6kbd8Pju.js} +9 -3
  20. package/dist/chunks/{input-PhJeBN6r.js.map → input-6kbd8Pju.js.map} +1 -1
  21. package/dist/chunks/{input-Hqw33WBe.js → input-Axw-wFj2.js} +9 -3
  22. package/dist/chunks/{input-Hqw33WBe.js.map → input-Axw-wFj2.js.map} +1 -1
  23. package/dist/chunks/{input_group-pE6ec9R3.js → input_group-m3cWYUfI.js} +2 -4
  24. package/dist/chunks/{input_group-ZI7aVGEp.js.map → input_group-m3cWYUfI.js.map} +1 -1
  25. package/dist/chunks/{input_group-ZI7aVGEp.js → input_group-qVZaS5Bb.js} +2 -4
  26. package/dist/chunks/{input_group-pE6ec9R3.js.map → input_group-qVZaS5Bb.js.map} +1 -1
  27. package/dist/chunks/{keyboard_list_navigation-YIqTuw1W.js → keyboard_list_navigation-ScXhrxya.js} +5 -6
  28. package/dist/chunks/{keyboard_list_navigation-x3D6RcC7.js.map → keyboard_list_navigation-ScXhrxya.js.map} +1 -1
  29. package/dist/chunks/{keyboard_list_navigation-x3D6RcC7.js → keyboard_list_navigation-fJnl_Iox.js} +5 -6
  30. package/dist/chunks/{keyboard_list_navigation-YIqTuw1W.js.map → keyboard_list_navigation-fJnl_Iox.js.map} +1 -1
  31. package/dist/chunks/link_constants-AfTWrr-n.js.map +1 -1
  32. package/dist/chunks/link_constants-x8NwdqmA.js.map +1 -1
  33. package/dist/chunks/list_item_constants-EiqkqZvP.js.map +1 -1
  34. package/dist/chunks/list_item_constants-u1xcN9Dd.js.map +1 -1
  35. package/dist/chunks/{modal-OaWxzqNt.js → modal-VgxXAQFP.js} +2 -4
  36. package/dist/chunks/{modal-OaWxzqNt.js.map → modal-VgxXAQFP.js.map} +1 -1
  37. package/dist/chunks/{modal-8X6poIZW.js → modal-XOr4kiNZ.js} +2 -4
  38. package/dist/chunks/{modal-8X6poIZW.js.map → modal-XOr4kiNZ.js.map} +1 -1
  39. package/dist/chunks/{notice_action-qQr3K2TC.js → notice_action-IRUoLX2d.js} +46 -71
  40. package/dist/chunks/{notice_action-qQr3K2TC.js.map → notice_action-IRUoLX2d.js.map} +1 -1
  41. package/dist/chunks/{notice_action-tEvvMg7Q.js → notice_action-P6uDyE9x.js} +46 -71
  42. package/dist/chunks/{notice_action-tEvvMg7Q.js.map → notice_action-P6uDyE9x.js.map} +1 -1
  43. package/dist/chunks/notice_constants-7Qt2CQEY.js.map +1 -1
  44. package/dist/chunks/notice_constants-UXo9e3bS.js.map +1 -1
  45. package/dist/chunks/{popover_constants-6YkPPbnk.js → popover_constants-WsOUIY-m.js} +47 -26
  46. package/dist/chunks/{popover_constants-6YkPPbnk.js.map → popover_constants-WsOUIY-m.js.map} +1 -1
  47. package/dist/chunks/{popover_constants-h9MD6WUt.js → popover_constants-XnGWXaxX.js} +47 -26
  48. package/dist/chunks/{popover_constants-h9MD6WUt.js.map → popover_constants-XnGWXaxX.js.map} +1 -1
  49. package/dist/chunks/{sr_only_close_button-IjMVfBDE.js → sr_only_close_button-81bHIpPu.js} +18 -24
  50. package/dist/chunks/{sr_only_close_button-IjMVfBDE.js.map → sr_only_close_button-81bHIpPu.js.map} +1 -1
  51. package/dist/chunks/{sr_only_close_button-2Q9Ny1Nc.js → sr_only_close_button-ZaGdAHz7.js} +18 -24
  52. package/dist/chunks/{sr_only_close_button-2Q9Ny1Nc.js.map → sr_only_close_button-ZaGdAHz7.js.map} +1 -1
  53. package/dist/chunks/stack_constants-HraCekPm.js.map +1 -1
  54. package/dist/chunks/stack_constants-SMzMWnAQ.js.map +1 -1
  55. package/dist/chunks/{tab-79yMX6m6.js → tab-FcsV5VmK.js} +68 -86
  56. package/dist/chunks/{tab-muPOS7JE.js.map → tab-FcsV5VmK.js.map} +1 -1
  57. package/dist/chunks/{tab-muPOS7JE.js → tab-V4cb44Ry.js} +68 -86
  58. package/dist/chunks/{tab-79yMX6m6.js.map → tab-V4cb44Ry.js.map} +1 -1
  59. package/dist/common/constants.cjs.map +1 -1
  60. package/dist/common/constants.js.map +1 -1
  61. package/dist/common/dates.cjs +1 -3
  62. package/dist/common/dates.cjs.map +1 -1
  63. package/dist/common/dates.js +1 -3
  64. package/dist/common/dates.js.map +1 -1
  65. package/dist/common/emoji.cjs +1 -1
  66. package/dist/common/emoji.js +1 -1
  67. package/dist/common/mixins.cjs +3 -3
  68. package/dist/common/mixins.js +3 -3
  69. package/dist/common/utils.cjs +44 -8
  70. package/dist/common/utils.cjs.map +1 -1
  71. package/dist/common/utils.js +44 -8
  72. package/dist/common/utils.js.map +1 -1
  73. package/dist/common/validators.cjs.map +1 -1
  74. package/dist/common/validators.js.map +1 -1
  75. package/dist/component-documentation.json +1 -1
  76. package/dist/dialtone-vue.cjs +12 -12
  77. package/dist/dialtone-vue.js +12 -12
  78. package/dist/lib/attachment-carousel.cjs +48 -172
  79. package/dist/lib/attachment-carousel.cjs.map +1 -1
  80. package/dist/lib/attachment-carousel.js +48 -172
  81. package/dist/lib/attachment-carousel.js.map +1 -1
  82. package/dist/lib/avatar.cjs +58 -75
  83. package/dist/lib/avatar.cjs.map +1 -1
  84. package/dist/lib/avatar.js +58 -75
  85. package/dist/lib/avatar.js.map +1 -1
  86. package/dist/lib/badge.cjs +20 -31
  87. package/dist/lib/badge.cjs.map +1 -1
  88. package/dist/lib/badge.js +20 -31
  89. package/dist/lib/badge.js.map +1 -1
  90. package/dist/lib/banner.cjs +29 -53
  91. package/dist/lib/banner.cjs.map +1 -1
  92. package/dist/lib/banner.js +29 -53
  93. package/dist/lib/banner.js.map +1 -1
  94. package/dist/lib/breadcrumbs.cjs +30 -36
  95. package/dist/lib/breadcrumbs.cjs.map +1 -1
  96. package/dist/lib/breadcrumbs.js +30 -36
  97. package/dist/lib/breadcrumbs.js.map +1 -1
  98. package/dist/lib/button-group.cjs +14 -7
  99. package/dist/lib/button-group.cjs.map +1 -1
  100. package/dist/lib/button-group.js +14 -7
  101. package/dist/lib/button-group.js.map +1 -1
  102. package/dist/lib/button.cjs +62 -55
  103. package/dist/lib/button.cjs.map +1 -1
  104. package/dist/lib/button.js +62 -55
  105. package/dist/lib/button.js.map +1 -1
  106. package/dist/lib/callbar-button-with-popover.cjs +23 -91
  107. package/dist/lib/callbar-button-with-popover.cjs.map +1 -1
  108. package/dist/lib/callbar-button-with-popover.js +23 -91
  109. package/dist/lib/callbar-button-with-popover.js.map +1 -1
  110. package/dist/lib/callbar-button.cjs +33 -49
  111. package/dist/lib/callbar-button.cjs.map +1 -1
  112. package/dist/lib/callbar-button.js +33 -49
  113. package/dist/lib/callbar-button.js.map +1 -1
  114. package/dist/lib/callbox.cjs +15 -78
  115. package/dist/lib/callbox.cjs.map +1 -1
  116. package/dist/lib/callbox.js +15 -78
  117. package/dist/lib/callbox.js.map +1 -1
  118. package/dist/lib/card.cjs +23 -16
  119. package/dist/lib/card.cjs.map +1 -1
  120. package/dist/lib/card.js +23 -16
  121. package/dist/lib/card.js.map +1 -1
  122. package/dist/lib/checkbox-group.cjs +15 -3
  123. package/dist/lib/checkbox-group.cjs.map +1 -1
  124. package/dist/lib/checkbox-group.js +15 -3
  125. package/dist/lib/checkbox-group.js.map +1 -1
  126. package/dist/lib/checkbox.cjs +16 -52
  127. package/dist/lib/checkbox.cjs.map +1 -1
  128. package/dist/lib/checkbox.js +16 -52
  129. package/dist/lib/checkbox.js.map +1 -1
  130. package/dist/lib/chip.cjs +26 -58
  131. package/dist/lib/chip.cjs.map +1 -1
  132. package/dist/lib/chip.js +26 -58
  133. package/dist/lib/chip.js.map +1 -1
  134. package/dist/lib/codeblock.cjs +11 -4
  135. package/dist/lib/codeblock.cjs.map +1 -1
  136. package/dist/lib/codeblock.js +11 -4
  137. package/dist/lib/codeblock.js.map +1 -1
  138. package/dist/lib/collapsible.cjs +34 -91
  139. package/dist/lib/collapsible.cjs.map +1 -1
  140. package/dist/lib/collapsible.js +34 -91
  141. package/dist/lib/collapsible.js.map +1 -1
  142. package/dist/lib/combobox-multi-select.cjs +38 -131
  143. package/dist/lib/combobox-multi-select.cjs.map +1 -1
  144. package/dist/lib/combobox-multi-select.js +38 -131
  145. package/dist/lib/combobox-multi-select.js.map +1 -1
  146. package/dist/lib/combobox-with-popover.cjs +39 -130
  147. package/dist/lib/combobox-with-popover.cjs.map +1 -1
  148. package/dist/lib/combobox-with-popover.js +39 -130
  149. package/dist/lib/combobox-with-popover.js.map +1 -1
  150. package/dist/lib/combobox.cjs +3 -3
  151. package/dist/lib/combobox.js +3 -3
  152. package/dist/lib/contact-centers-row.cjs +29 -86
  153. package/dist/lib/contact-centers-row.cjs.map +1 -1
  154. package/dist/lib/contact-centers-row.js +29 -86
  155. package/dist/lib/contact-centers-row.js.map +1 -1
  156. package/dist/lib/contact-info.cjs +31 -95
  157. package/dist/lib/contact-info.cjs.map +1 -1
  158. package/dist/lib/contact-info.js +31 -95
  159. package/dist/lib/contact-info.js.map +1 -1
  160. package/dist/lib/contact-row.cjs +18 -61
  161. package/dist/lib/contact-row.cjs.map +1 -1
  162. package/dist/lib/contact-row.js +18 -61
  163. package/dist/lib/contact-row.js.map +1 -1
  164. package/dist/lib/datepicker.cjs +102 -361
  165. package/dist/lib/datepicker.cjs.map +1 -1
  166. package/dist/lib/datepicker.js +102 -361
  167. package/dist/lib/datepicker.js.map +1 -1
  168. package/dist/lib/description-list.cjs +12 -11
  169. package/dist/lib/description-list.cjs.map +1 -1
  170. package/dist/lib/description-list.js +12 -11
  171. package/dist/lib/description-list.js.map +1 -1
  172. package/dist/lib/dropdown.cjs +17 -13
  173. package/dist/lib/dropdown.cjs.map +1 -1
  174. package/dist/lib/dropdown.js +17 -13
  175. package/dist/lib/dropdown.js.map +1 -1
  176. package/dist/lib/editor.cjs +109 -409
  177. package/dist/lib/editor.cjs.map +1 -1
  178. package/dist/lib/editor.js +109 -409
  179. package/dist/lib/editor.js.map +1 -1
  180. package/dist/lib/emoji-picker.cjs +234 -512
  181. package/dist/lib/emoji-picker.cjs.map +1 -1
  182. package/dist/lib/emoji-picker.js +234 -512
  183. package/dist/lib/emoji-picker.js.map +1 -1
  184. package/dist/lib/emoji-row.cjs +31 -69
  185. package/dist/lib/emoji-row.cjs.map +1 -1
  186. package/dist/lib/emoji-row.js +31 -69
  187. package/dist/lib/emoji-row.js.map +1 -1
  188. package/dist/lib/emoji-text-wrapper.cjs +22 -14
  189. package/dist/lib/emoji-text-wrapper.cjs.map +1 -1
  190. package/dist/lib/emoji-text-wrapper.js +22 -14
  191. package/dist/lib/emoji-text-wrapper.js.map +1 -1
  192. package/dist/lib/emoji.cjs +13 -40
  193. package/dist/lib/emoji.cjs.map +1 -1
  194. package/dist/lib/emoji.js +13 -40
  195. package/dist/lib/emoji.js.map +1 -1
  196. package/dist/lib/empty-state.cjs +12 -27
  197. package/dist/lib/empty-state.cjs.map +1 -1
  198. package/dist/lib/empty-state.js +12 -27
  199. package/dist/lib/empty-state.js.map +1 -1
  200. package/dist/lib/feed-item-row.cjs +27 -106
  201. package/dist/lib/feed-item-row.cjs.map +1 -1
  202. package/dist/lib/feed-item-row.js +27 -106
  203. package/dist/lib/feed-item-row.js.map +1 -1
  204. package/dist/lib/feed-pill.cjs +35 -90
  205. package/dist/lib/feed-pill.cjs.map +1 -1
  206. package/dist/lib/feed-pill.js +35 -90
  207. package/dist/lib/feed-pill.js.map +1 -1
  208. package/dist/lib/general-row.cjs +75 -184
  209. package/dist/lib/general-row.cjs.map +1 -1
  210. package/dist/lib/general-row.js +75 -184
  211. package/dist/lib/general-row.js.map +1 -1
  212. package/dist/lib/group-row.cjs +16 -27
  213. package/dist/lib/group-row.cjs.map +1 -1
  214. package/dist/lib/group-row.js +16 -27
  215. package/dist/lib/group-row.js.map +1 -1
  216. package/dist/lib/grouped-chip.cjs +20 -68
  217. package/dist/lib/grouped-chip.cjs.map +1 -1
  218. package/dist/lib/grouped-chip.js +20 -68
  219. package/dist/lib/grouped-chip.js.map +1 -1
  220. package/dist/lib/hovercard.cjs +41 -71
  221. package/dist/lib/hovercard.cjs.map +1 -1
  222. package/dist/lib/hovercard.js +41 -71
  223. package/dist/lib/hovercard.js.map +1 -1
  224. package/dist/lib/icon.cjs +12 -10
  225. package/dist/lib/icon.cjs.map +1 -1
  226. package/dist/lib/icon.js +12 -10
  227. package/dist/lib/icon.js.map +1 -1
  228. package/dist/lib/illustration.cjs +12 -9
  229. package/dist/lib/illustration.cjs.map +1 -1
  230. package/dist/lib/illustration.js +12 -9
  231. package/dist/lib/illustration.js.map +1 -1
  232. package/dist/lib/image-viewer.cjs +23 -88
  233. package/dist/lib/image-viewer.cjs.map +1 -1
  234. package/dist/lib/image-viewer.js +23 -88
  235. package/dist/lib/image-viewer.js.map +1 -1
  236. package/dist/lib/input-group.cjs +14 -24
  237. package/dist/lib/input-group.cjs.map +1 -1
  238. package/dist/lib/input-group.js +14 -24
  239. package/dist/lib/input-group.js.map +1 -1
  240. package/dist/lib/input.cjs +47 -109
  241. package/dist/lib/input.cjs.map +1 -1
  242. package/dist/lib/input.js +47 -109
  243. package/dist/lib/input.js.map +1 -1
  244. package/dist/lib/item-layout.cjs +11 -42
  245. package/dist/lib/item-layout.cjs.map +1 -1
  246. package/dist/lib/item-layout.js +11 -42
  247. package/dist/lib/item-layout.js.map +1 -1
  248. package/dist/lib/ivr-node.cjs +47 -135
  249. package/dist/lib/ivr-node.cjs.map +1 -1
  250. package/dist/lib/ivr-node.js +47 -135
  251. package/dist/lib/ivr-node.js.map +1 -1
  252. package/dist/lib/keyboard-shortcut.cjs +23 -35
  253. package/dist/lib/keyboard-shortcut.cjs.map +1 -1
  254. package/dist/lib/keyboard-shortcut.js +23 -35
  255. package/dist/lib/keyboard-shortcut.js.map +1 -1
  256. package/dist/lib/lazy-show.cjs +11 -15
  257. package/dist/lib/lazy-show.cjs.map +1 -1
  258. package/dist/lib/lazy-show.js +11 -15
  259. package/dist/lib/lazy-show.js.map +1 -1
  260. package/dist/lib/link.cjs +15 -9
  261. package/dist/lib/link.cjs.map +1 -1
  262. package/dist/lib/link.js +15 -9
  263. package/dist/lib/link.js.map +1 -1
  264. package/dist/lib/list-item-group.cjs +11 -17
  265. package/dist/lib/list-item-group.cjs.map +1 -1
  266. package/dist/lib/list-item-group.js +11 -17
  267. package/dist/lib/list-item-group.js.map +1 -1
  268. package/dist/lib/list-item.cjs +23 -42
  269. package/dist/lib/list-item.cjs.map +1 -1
  270. package/dist/lib/list-item.js +23 -42
  271. package/dist/lib/list-item.js.map +1 -1
  272. package/dist/lib/message-input.cjs +97 -360
  273. package/dist/lib/message-input.cjs.map +1 -1
  274. package/dist/lib/message-input.js +97 -360
  275. package/dist/lib/message-input.js.map +1 -1
  276. package/dist/lib/modal.cjs +36 -94
  277. package/dist/lib/modal.cjs.map +1 -1
  278. package/dist/lib/modal.js +36 -94
  279. package/dist/lib/modal.js.map +1 -1
  280. package/dist/lib/notice.cjs +21 -40
  281. package/dist/lib/notice.cjs.map +1 -1
  282. package/dist/lib/notice.js +21 -40
  283. package/dist/lib/notice.js.map +1 -1
  284. package/dist/lib/pagination.cjs +20 -81
  285. package/dist/lib/pagination.cjs.map +1 -1
  286. package/dist/lib/pagination.js +20 -81
  287. package/dist/lib/pagination.js.map +1 -1
  288. package/dist/lib/popover.cjs +75 -194
  289. package/dist/lib/popover.cjs.map +1 -1
  290. package/dist/lib/popover.js +76 -195
  291. package/dist/lib/popover.js.map +1 -1
  292. package/dist/lib/presence.cjs +22 -23
  293. package/dist/lib/presence.cjs.map +1 -1
  294. package/dist/lib/presence.js +22 -23
  295. package/dist/lib/presence.js.map +1 -1
  296. package/dist/lib/radio-group.cjs +11 -2
  297. package/dist/lib/radio-group.cjs.map +1 -1
  298. package/dist/lib/radio-group.js +11 -2
  299. package/dist/lib/radio-group.js.map +1 -1
  300. package/dist/lib/radio.cjs +15 -47
  301. package/dist/lib/radio.cjs.map +1 -1
  302. package/dist/lib/radio.js +15 -47
  303. package/dist/lib/radio.js.map +1 -1
  304. package/dist/lib/rich-text-editor.cjs +317 -336
  305. package/dist/lib/rich-text-editor.cjs.map +1 -1
  306. package/dist/lib/rich-text-editor.js +317 -336
  307. package/dist/lib/rich-text-editor.js.map +1 -1
  308. package/dist/lib/root-layout.cjs +15 -33
  309. package/dist/lib/root-layout.cjs.map +1 -1
  310. package/dist/lib/root-layout.js +15 -33
  311. package/dist/lib/root-layout.js.map +1 -1
  312. package/dist/lib/scrollbar-directive.cjs +422 -388
  313. package/dist/lib/scrollbar-directive.cjs.map +1 -1
  314. package/dist/lib/scrollbar-directive.js +422 -388
  315. package/dist/lib/scrollbar-directive.js.map +1 -1
  316. package/dist/lib/select-menu.cjs +33 -52
  317. package/dist/lib/select-menu.cjs.map +1 -1
  318. package/dist/lib/select-menu.js +33 -52
  319. package/dist/lib/select-menu.js.map +1 -1
  320. package/dist/lib/settings-menu-button.cjs +16 -42
  321. package/dist/lib/settings-menu-button.cjs.map +1 -1
  322. package/dist/lib/settings-menu-button.js +16 -42
  323. package/dist/lib/settings-menu-button.js.map +1 -1
  324. package/dist/lib/skeleton.cjs +93 -118
  325. package/dist/lib/skeleton.cjs.map +1 -1
  326. package/dist/lib/skeleton.js +93 -118
  327. package/dist/lib/skeleton.js.map +1 -1
  328. package/dist/lib/split-button.cjs +64 -164
  329. package/dist/lib/split-button.cjs.map +1 -1
  330. package/dist/lib/split-button.js +64 -164
  331. package/dist/lib/split-button.js.map +1 -1
  332. package/dist/lib/stack.cjs +33 -21
  333. package/dist/lib/stack.cjs.map +1 -1
  334. package/dist/lib/stack.js +33 -21
  335. package/dist/lib/stack.js.map +1 -1
  336. package/dist/lib/tabs.cjs +13 -20
  337. package/dist/lib/tabs.cjs.map +1 -1
  338. package/dist/lib/tabs.js +13 -20
  339. package/dist/lib/tabs.js.map +1 -1
  340. package/dist/lib/time-pill.cjs +11 -8
  341. package/dist/lib/time-pill.cjs.map +1 -1
  342. package/dist/lib/time-pill.js +11 -8
  343. package/dist/lib/time-pill.js.map +1 -1
  344. package/dist/lib/toast.cjs +21 -42
  345. package/dist/lib/toast.cjs.map +1 -1
  346. package/dist/lib/toast.js +21 -42
  347. package/dist/lib/toast.js.map +1 -1
  348. package/dist/lib/toggle.cjs +24 -28
  349. package/dist/lib/toggle.cjs.map +1 -1
  350. package/dist/lib/toggle.js +24 -28
  351. package/dist/lib/toggle.js.map +1 -1
  352. package/dist/lib/tooltip-directive.cjs +26 -32
  353. package/dist/lib/tooltip-directive.cjs.map +1 -1
  354. package/dist/lib/tooltip-directive.js +26 -32
  355. package/dist/lib/tooltip-directive.js.map +1 -1
  356. package/dist/lib/tooltip.cjs +21 -31
  357. package/dist/lib/tooltip.cjs.map +1 -1
  358. package/dist/lib/tooltip.js +22 -32
  359. package/dist/lib/tooltip.js.map +1 -1
  360. package/dist/lib/top-banner-info.cjs +21 -18
  361. package/dist/lib/top-banner-info.cjs.map +1 -1
  362. package/dist/lib/top-banner-info.js +21 -18
  363. package/dist/lib/top-banner-info.js.map +1 -1
  364. package/dist/lib/unread-pill.cjs +12 -18
  365. package/dist/lib/unread-pill.cjs.map +1 -1
  366. package/dist/lib/unread-pill.js +12 -18
  367. package/dist/lib/unread-pill.js.map +1 -1
  368. package/dist/lib/validation-messages.cjs +16 -23
  369. package/dist/lib/validation-messages.cjs.map +1 -1
  370. package/dist/lib/validation-messages.js +16 -23
  371. package/dist/lib/validation-messages.js.map +1 -1
  372. package/dist/style.css +9 -9
  373. package/dist/types/common/emoji/index.d.ts +59236 -2
  374. package/dist/types/common/emoji/index.d.ts.map +1 -1
  375. package/dist/types/components/button/button.vue.d.ts +1 -1
  376. package/dist/types/components/chip/chip.vue.d.ts +1 -1
  377. package/dist/types/components/combobox/combobox.vue.d.ts +1 -1
  378. package/dist/types/components/icon/icon.vue.d.ts +2 -2
  379. package/dist/types/components/icon/icon_constants.d.ts +1 -1
  380. package/dist/types/components/icon/icon_constants.d.ts.map +1 -1
  381. package/dist/types/components/illustration/illustration.vue.d.ts +2 -2
  382. package/dist/types/components/illustration/illustration_constants.d.ts +1 -1
  383. package/dist/types/components/illustration/illustration_constants.d.ts.map +1 -1
  384. package/dist/types/components/input/input.vue.d.ts +3 -2
  385. package/dist/types/components/input/input.vue.d.ts.map +1 -1
  386. package/dist/types/components/modal/modal.vue.d.ts +1 -1
  387. package/dist/types/components/rich_text_editor/rich_text_editor.vue.d.ts +1 -1
  388. package/dist/types/components/split_button/split_button-alpha.vue.d.ts +1 -1
  389. package/dist/types/components/toast/toast.vue.d.ts +1 -1
  390. package/dist/types/components/tooltip/tooltip.vue.d.ts +1 -1
  391. package/dist/types/recipes/comboboxes/combobox_with_popover/combobox_with_popover.vue.d.ts +1 -1
  392. package/dist/types/recipes/conversation_view/editor/editor.vue.d.ts +1 -1
  393. package/dist/types/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +1 -1
  394. package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts +15 -0
  395. package/dist/types/recipes/item_layout/contact_info/contact_info.vue.d.ts.map +1 -1
  396. package/package.json +2 -4
  397. package/dist/chunks/icon_constants-TdxqLsS2.js.map +0 -1
  398. package/dist/chunks/icon_constants-VEA0wI5C.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"datepicker.js","sources":["../../components/datepicker/datepicker_constants.js","../../components/datepicker/utils.js","../../components/datepicker/modules/month-year-picker.vue","../../components/datepicker/modules/calendar.vue","../../components/datepicker/datepicker.vue","../../components/datepicker/formatUtils.js"],"sourcesContent":["/**\n * Week start day\n * 0 - Sunday\n * 1 - Monday\n */\nexport const WEEK_START = 0;\n\nexport const MONTH_FORMAT = 'MMMM';\n\nexport const INTL_MONTH_FORMAT = 'long';\n","import {\n startOfWeek, addDays, getMonth, isEqual,\n addMonths, startOfMonth, getDay, getDate,\n subMonths, endOfMonth,\n} from 'date-fns';\nimport { WEEK_START } from '@/components/datepicker/datepicker_constants.js';\n\nconst _parsedGetDate = (value) => (value ? new Date(value) : new Date());\n\n/**\n * Get 7 days from the provided start date, month is used to check\n * whether the date is from the specified month or in the offset\n */\nconst getWeekDays = (startDay, month, selectedDay) => {\n const startDate = _parsedGetDate(JSON.parse(JSON.stringify(startDay)));\n const dates = [];\n for (let i = 0; i < 7; i++) {\n const next = addDays(startDate, i);\n const isNext = getMonth(next) !== month;\n dates.push({\n text: next.getDate(),\n value: next,\n currentMonth: !isNext,\n isFirstDayOfMonth: next.getDate() === 1 && !isNext,\n // will be selected if the date is the same as the selected day and is from the current month\n selected: selectedDay ? (next.getDate() === selectedDay && !isNext) : false,\n });\n }\n return dates;\n};\n\nconst isDateEqual = (date, dateToCompare) => {\n if (!date || !dateToCompare) {\n return false;\n }\n return isEqual(date, dateToCompare);\n};\n\n/**\n * Get days for the calendar to be displayed in a table grouped by weeks\n */\nexport const getCalendarDays = (month, year, selectedDay) => {\n const weeks = [];\n const firstDate = _parsedGetDate(new Date(year, month));\n const lastDate = _parsedGetDate(new Date(year, month + 1, 0));\n\n const weekStartsOn = WEEK_START;\n\n const firstDateInCalendar = startOfWeek(firstDate, { weekStartsOn });\n\n const addDaysToWeek = (date) => {\n const days = getWeekDays(date, month, selectedDay);\n\n weeks.push({ days });\n\n if (\n !weeks[weeks.length - 1].days.some((day) =>\n isDateEqual(day.value, lastDate),\n )\n ) {\n const nextDate = addDays(date, 7);\n addDaysToWeek(nextDate);\n }\n };\n\n addDaysToWeek(firstDateInCalendar);\n\n return weeks;\n};\n\n/**\n * Generate week day names based on locale and in order specified in week start\n */\nexport const getWeekDayNames = (locale, weekStart) => {\n // Get list in order from sun ... sat\n const days = [1, 2, 3, 4, 5, 6, 7].map((day) => {\n return new Intl.DateTimeFormat(locale, { weekday: 'short', timeZone: 'UTC' })\n .format(new Date(`2017-01-0${day}T00:00:00+00:00`))\n .slice(0, 2);\n });\n\n // Get days that are in order before specified week start\n const beforeWeekStart = days.slice(0, weekStart);\n // Get days that are in order after specified week start\n const afterWeekStart = days.slice(weekStart + 1, days.length);\n\n // return them in correct order\n return [days[weekStart]].concat(...afterWeekStart).concat(...beforeWeekStart);\n};\n\nexport const formatMonth = (month, monthFormat, locale) => {\n return new Intl.DateTimeFormat(locale, { month: monthFormat }).format(new Date(2000, month, 1));\n};\n\nexport const calculateNextFocusDate = (currentDate) => {\n const date = new Date(currentDate);\n const currentWeekday = getDay(date);\n const nextMonthDate = addMonths(date, 1);\n const nextMonthStart = startOfMonth(nextMonthDate);\n const nextMonthStartWeekday = getDay(nextMonthStart);\n\n const dayDifference = (currentWeekday - nextMonthStartWeekday + 7) % 7;\n\n // Add the difference in days to the first day of the next month\n const focusDate = addDays(nextMonthStart, dayDifference);\n\n // Returns only the day of the month\n return getDate(focusDate);\n};\n\nexport const calculatePrevFocusDate = (currentDate) => {\n const date = new Date(currentDate);\n const currentWeekday = getDay(date);\n\n // Move to the last day of the previous month\n const lastDayOfPrevMonth = endOfMonth(subMonths(date, 1));\n let focusDate = lastDayOfPrevMonth;\n\n // Adjust to the same weekday in the last week of the previous month\n while (getDay(focusDate) !== currentWeekday) {\n focusDate = addDays(focusDate, -1);\n }\n\n // Returns only the day of the month\n return getDate(focusDate);\n};\n","<template>\n <dt-stack\n direction=\"row\"\n class=\"d-datepicker__month-year\"\n gap=\"300\"\n >\n <dt-stack\n as=\"nav\"\n direction=\"row\"\n gap=\"200\"\n class=\"d-datepicker__nav\"\n >\n <dt-tooltip\n :message=\"prevYearLabel\"\n placement=\"top\"\n :fallback-placements=\"['top-start', 'auto']\"\n >\n <template #anchor>\n <dt-button\n id=\"prevYearButton\"\n :ref=\"refNames[0]\"\n size=\"xs\"\n importance=\"clear\"\n kind=\"muted\"\n :circle=\"true\"\n class=\"d-datepicker__nav-btn\"\n type=\"button\"\n :aria-label=\"`${changeToLabel} ${prevYearLabel} ${selectYear - 1}`\"\n @click=\"changeYear(-1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon\n name=\"chevrons-left\"\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n <dt-tooltip\n :message=\"prevMonthLabel\"\n placement=\"top\"\n :fallback-placements=\"['top-end', 'auto']\"\n >\n <template #anchor>\n <dt-button\n id=\"prevMonthButton\"\n :ref=\"refNames[1]\"\n size=\"xs\"\n importance=\"clear\"\n kind=\"muted\"\n :circle=\"true\"\n class=\"d-datepicker__nav-btn\"\n type=\"button\"\n :aria-label=\"`${changeToLabel} ${prevMonthLabel} ${formattedMonth(selectMonth - 1)}`\"\n @click=\"changeMonth(-1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon\n name=\"chevron-left\"\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n </dt-stack>\n <div\n id=\"calendar-heading\"\n class=\"d-datepicker__month-year-title\"\n >\n {{ formattedMonth(selectMonth) }}\n\n {{ selectYear }}\n </div>\n <dt-stack\n as=\"nav\"\n direction=\"row\"\n gap=\"200\"\n class=\"d-datepicker__nav\"\n >\n <dt-tooltip\n :message=\"nextMonthLabel\"\n placement=\"top\"\n :fallback-placements=\"['top-start', 'auto']\"\n >\n <template #anchor>\n <dt-button\n id=\"nextMonthButton\"\n :ref=\"refNames[2]\"\n size=\"xs\"\n importance=\"clear\"\n :circle=\"true\"\n kind=\"muted\"\n class=\"d-datepicker__nav-btn\"\n type=\"button\"\n :aria-label=\"`${changeToLabel} ${nextMonthLabel} ${formattedMonth(selectMonth + 1)}`\"\n @click=\"changeMonth(1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon\n name=\"chevron-right\"\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n <dt-tooltip\n :message=\"nextYearLabel\"\n placement=\"top\"\n :fallback-placements=\"['top-end', 'auto']\"\n >\n <template #anchor>\n <dt-button\n id=\"nextYearButton\"\n :ref=\"refNames[3]\"\n size=\"xs\"\n kind=\"muted\"\n :circle=\"true\"\n importance=\"clear\"\n class=\"d-datepicker__nav-btn\"\n type=\"button\"\n :aria-label=\"`${changeToLabel} ${nextYearLabel} ${selectYear + 1}`\"\n @click=\"changeYear(1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon\n name=\"chevrons-right\"\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n </dt-stack>\n </dt-stack>\n</template>\n\n<script>\nimport { DtIcon } from '@/components/icon';\nimport { getYear, addMonths, getMonth, set, subMonths, getDate } from 'date-fns';\nimport { getCalendarDays, formatMonth } from '../utils';\nimport { INTL_MONTH_FORMAT } from '../datepicker_constants';\nimport DtStack from '@/components/stack/stack.vue';\nimport DtTooltip from '@/components/tooltip/tooltip.vue';\nimport DtButton from '@/components/button/button.vue';\n\nexport default {\n name: 'DtDatepickerMonthYearPicker',\n\n components: { DtButton, DtTooltip, DtStack, DtIcon },\n\n props: {\n locale: {\n type: String,\n required: true,\n },\n\n prevMonthLabel: {\n type: String,\n required: true,\n },\n\n nextMonthLabel: {\n type: String,\n required: true,\n },\n\n prevYearLabel: {\n type: String,\n required: true,\n },\n\n nextYearLabel: {\n type: String,\n required: true,\n },\n\n changeToLabel: {\n type: String,\n required: true,\n },\n\n selectedDate: {\n type: Date,\n required: true,\n },\n },\n\n emits: [\n /**\n * Will retrieve the calendar days of the given date\n *\n * @event calendar-days\n * @type {Array}\n */\n 'calendar-days',\n\n /**\n * Will focus first day in calendar\n *\n * @event focus-first-day\n */\n 'focus-first-day',\n\n /**\n * Will focus last day in calendar\n *\n * @event focus-last-day\n */\n 'focus-last-day',\n\n /**\n * Will close the datepicker\n *\n * @event close-datepicker\n */\n 'close-datepicker',\n ],\n\n data () {\n return {\n selectMonth: getMonth(this.selectedDate),\n selectYear: getYear(this.selectedDate),\n highlightedDay: null,\n focusPicker: 0,\n focusRefs: [],\n refNames: ['prevYearButtonRef', 'prevMonthButtonRef', 'nextMonthButtonRef', 'nextYearButtonRef'],\n };\n },\n\n computed: {\n // Get days for the currently selected month and year and highlight the selected day\n calendarDays () {\n return getCalendarDays(this.selectMonth, this.selectYear, this.highlightedDay);\n },\n\n formattedMonth () {\n return (month) => formatMonth(month, INTL_MONTH_FORMAT, this.locale);\n },\n },\n\n watch: {\n selectMonth: {\n handler () {\n this.highlightDay();\n this.$emit('calendar-days', this.calendarDays);\n },\n\n immediate: true,\n },\n\n selectYear: {\n handler () {\n this.highlightDay();\n this.$emit('calendar-days', this.calendarDays);\n },\n\n immediate: true,\n },\n\n },\n\n mounted () {\n this.setButtonsRef();\n this.focusMonthYearPicker();\n },\n\n methods: {\n setButtonsRef () {\n this.focusRefs = this.refNames.map(refName => this.$refs[refName]);\n },\n\n focusMonthYearPicker () {\n this.focusPicker = 0;\n this.focusRefs[0].$el.focus();\n },\n\n handleKeyDown (event) {\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault();\n if (this.focusPicker === 0) {\n this.focusPicker = 3;\n this.focusRefs[this.focusPicker].$el.focus();\n } else {\n this.focusPicker--;\n this.focusRefs[this.focusPicker].$el.focus();\n }\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n if (this.focusPicker === 3) {\n this.focusPicker = 0;\n this.focusRefs[this.focusPicker].$el.focus();\n } else {\n this.focusPicker++;\n this.focusRefs[this.focusPicker].$el.focus();\n }\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n this.$emit('focus-first-day');\n break;\n\n case 'Tab':\n event.preventDefault();\n this.$emit('focus-first-day');\n break;\n\n case 'Escape':\n this.$emit('close-datepicker');\n break;\n }\n },\n\n highlightDay () {\n const year = getYear(this.selectedDate);\n const month = getMonth(this.selectedDate);\n\n if (year !== this.selectYear || month !== this.selectMonth) {\n this.highlightedDay = null;\n } else {\n this.highlightedDay = getDate(this.selectedDate);\n }\n },\n\n changeMonth (value) {\n // Adjust year when changing from January to December or vice versa\n if ((this.selectMonth === 0 && value === -1) || (this.selectMonth === 11 && value === 1)) {\n this.selectYear += value;\n }\n\n // Calculate the new date by adding or subtracting months\n const initialDate = set(this.selectedDate, { month: this.selectMonth, year: this.selectYear });\n const newDate = value === 1 ? addMonths(initialDate, 1) : subMonths(initialDate, 1);\n\n // Update the selected month\n this.selectMonth = getMonth(newDate);\n },\n\n changeYear (value) {\n this.selectYear = this.selectYear + value;\n },\n\n goToNextMonth () {\n this.changeMonth(1);\n },\n\n goToPrevMonth () {\n this.changeMonth(-1);\n },\n },\n};\n</script>\n","<template>\n <table\n class=\"d-datepicker__calendar\"\n aria-labelledby=\"calendar-heading\"\n >\n <thead>\n <tr>\n <th\n v-for=\"day in weekDays\"\n :key=\"day\"\n scope=\"col\"\n class=\"d-datepicker__cell d-datepicker__cell--header\"\n >\n <span\n class=\"d-datepicker__weekday\"\n :title=\"day\"\n :aria-label=\"day\"\n > {{ day }}</span>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n v-for=\"(week, indexWeek) in calendarDays\"\n :key=\"indexWeek\"\n >\n <td\n v-for=\"(day, indexDays) in week.days\"\n :key=\"indexWeek + indexDays\"\n class=\"d-datepicker__cell\"\n role=\"listbox\"\n >\n <dt-button\n :ref=\"`buttonRef_${indexWeek}_${indexDays}`\"\n class=\"d-datepicker__day\"\n :circle=\"true\"\n size=\"sm\"\n importance=\"clear\"\n :disabled=\"!day.currentMonth\"\n :class=\"{\n 'd-datepicker__day--disabled': !day.currentMonth,\n 'd-datepicker__day--selected': selectedDay\n ? ((day.text === selectedDay) && day.currentMonth)\n : day.selected,\n }\"\n type=\"button\"\n :aria-selected=\"!!selectedDay ? ((day.text === selectedDay) && day.currentMonth) : day.selected\"\n :aria-label=\"dayAriaLabel(day)\"\n role=\"option\"\n @click=\"selectDay(day)\"\n @keydown=\"handleKeyDown($event)\"\n >\n {{ day.text }}\n </dt-button>\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script>\nimport { getWeekDayNames, calculateNextFocusDate, calculatePrevFocusDate } from '@/components/datepicker/utils';\nimport { WEEK_START, MONTH_FORMAT } from '@/components/datepicker/datepicker_constants.js';\nimport { format, getYear } from 'date-fns';\nimport DtButton from '@/components/button/button.vue';\n\nexport default {\n name: 'DtDatepickerCalendar',\n components: { DtButton },\n\n props: {\n calendarDays: {\n type: Array,\n required: true,\n },\n\n locale: {\n type: String,\n required: true,\n },\n\n selectDayLabel: {\n type: String,\n required: true,\n },\n },\n\n emits: [\n /**\n * Event fired when a date is selected\n *\n * @event select-date\n * @type {Date}\n */\n 'select-date',\n\n /**\n * Will focus the month and year picker\n *\n * @event focus-month-year-picker\n */\n 'focus-month-year-picker',\n\n /**\n * Will close the datepicker\n *\n * @event close-datepicker\n */\n 'close-datepicker',\n ],\n\n data () {\n return {\n // local selectedDay to override the received by props calendarDays\n selectedDay: null,\n focusDay: 0,\n daysRef: [],\n };\n },\n\n computed: {\n weekDays () {\n return getWeekDayNames(this.locale, WEEK_START);\n },\n },\n\n watch: {\n calendarDays () {\n // on calendarDays update, reset our local variables\n this.focusDay = 0;\n this.selectedDay = null;\n\n this.daysRef = [];\n\n this.$nextTick(() => {\n this.daysRef = [];\n this.setDayRef();\n });\n },\n },\n\n methods: {\n dayAriaLabel (day) {\n return `${this.selectDayLabel} ${day.text} ${format(day.value, MONTH_FORMAT)} ${getYear(day.value)}`;\n },\n\n setDayRef (el, day) {\n this.calendarDays.forEach((week, weekIndex) => {\n week.days.forEach((day, dayIndex) => {\n const refKey = `buttonRef_${weekIndex}_${dayIndex}`;\n const dayButton = this.$refs[refKey];\n if (dayButton && day.currentMonth) {\n this.daysRef.push({ el: dayButton[0], day });\n }\n });\n });\n },\n\n handleKeyDown (event) {\n switch (event.key) {\n case 'ArrowUp':\n event.preventDefault();\n this.focusDay -= 7;\n try {\n this.daysRef[this.focusDay].el.$el.focus();\n } catch (error) {\n const prevFocusDate = calculatePrevFocusDate(this.daysRef[this.focusDay + 7].day.value);\n this.$emit('go-to-prev-month');\n this.$nextTick(() => {\n this.setDayRef();\n this.daysRef[prevFocusDate - 1].el.$el.focus();\n this.focusDay += prevFocusDate - 1;\n });\n }\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n this.focusDay += 7;\n try {\n this.daysRef[this.focusDay].el.$el.focus();\n } catch (error) {\n const nextFocusDate = calculateNextFocusDate(this.daysRef[this.focusDay - 7].day.value);\n this.$emit('go-to-next-month');\n this.$nextTick(() => {\n this.setDayRef();\n this.daysRef[nextFocusDate - 1].el.$el.focus();\n this.focusDay += nextFocusDate - 1;\n });\n }\n break;\n\n case 'ArrowLeft':\n event.preventDefault();\n if (this.focusDay > 0) {\n this.focusDay -= 1;\n this.daysRef[this.focusDay].el.$el.focus();\n } else {\n // if we are on month first day, jump to last day of prev month\n this.$emit('go-to-prev-month');\n this.$nextTick(() => {\n this.focusLastDay();\n });\n }\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n if (this.focusDay < this.daysRef.length - 1) {\n this.focusDay += 1;\n this.daysRef[this.focusDay].el.$el.focus();\n } else {\n // if we are on month last day, jump to first day of next month\n this.$emit('go-to-next-month');\n this.$nextTick(() => {\n this.focusFirstDay();\n });\n }\n break;\n\n case 'Tab':\n event.preventDefault();\n this.$emit('focus-month-year-picker');\n break;\n\n case 'Escape':\n this.$emit('close-datepicker');\n break;\n }\n },\n\n focusFirstDay () {\n this.focusDay = 0;\n this.$nextTick(() => {\n this.daysRef[this.focusDay].el.$el.focus();\n });\n },\n\n focusLastDay () {\n this.$nextTick(() => {\n this.focusDay = this.daysRef.length - 1;\n this.daysRef[this.focusDay].el.$el.focus();\n });\n },\n\n selectDay (day) {\n if (!day.currentMonth) { return; }\n\n // local selectedDay is updated when a day is selected\n this.selectedDay = day.text;\n this.$emit('select-date', day.value);\n },\n },\n};\n</script>\n","<!-- eslint-disable vue/multi-word-component-names -->\n<template>\n <dt-stack\n class=\"d-datepicker\"\n gap=\"400\"\n >\n <div class=\"d-datepicker__hd\">\n <month-year-picker\n ref=\"monthYearPicker\"\n :locale=\"locale\"\n :prev-month-label=\"prevMonthLabel\"\n :next-month-label=\"nextMonthLabel\"\n :prev-year-label=\"prevYearLabel\"\n :next-year-label=\"nextYearLabel\"\n :change-to-label=\"changeToLabel\"\n :selected-date=\"selectedDate\"\n @calendar-days=\"updateCalendarDays\"\n @focus-first-day=\"$refs.calendar.focusFirstDay()\"\n @focus-last-day=\"$refs.calendar.focusLastDay()\"\n @close-datepicker=\"$emit('close-datepicker')\"\n />\n </div>\n <div class=\"d-datepicker__bd\">\n <calendar\n ref=\"calendar\"\n :locale=\"locale\"\n :calendar-days=\"calendarDays\"\n :select-day-label=\"selectDayLabel\"\n @select-date=\"$emit('selected-date', $event)\"\n @focus-month-year-picker=\"$refs.monthYearPicker.focusMonthYearPicker()\"\n @close-datepicker=\"$emit('close-datepicker')\"\n @go-to-next-month=\"$refs.monthYearPicker.goToNextMonth()\"\n @go-to-prev-month=\"$refs.monthYearPicker.goToPrevMonth()\"\n />\n </div>\n </dt-stack>\n</template>\n\n<script>\nimport MonthYearPicker from './modules/month-year-picker.vue';\nimport Calendar from './modules/calendar.vue';\nimport DtStack from '@/components/stack/stack.vue';\n\nexport default {\n name: 'DtDatepicker',\n\n components: { DtStack, MonthYearPicker, Calendar },\n\n props: {\n /**\n * Label for the previous month button\n *\n * @type {String}\n * @example 'Previous month'\n */\n prevMonthLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Label for the next month button\n *\n * @type {String}\n * @example 'Next month'\n */\n nextMonthLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Label for the previous year button\n *\n * @type {String}\n * @example 'Previous year'\n */\n prevYearLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Label for the next year button\n *\n * @type {String}\n * @example 'Next year'\n */\n nextYearLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Label for the select day button\n *\n * @type {String}\n * @example 'Select day'\n */\n selectDayLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Label for the change to button\n *\n * @type {String}\n * @example 'Change to'\n */\n changeToLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Locale for the calendar\n *\n * @type {String}\n */\n locale: {\n type: String,\n default: 'en-US',\n },\n\n /**\n * Selected date\n *\n * @type {Date}\n */\n selectedDate: {\n type: Date,\n default: () => (new Date()),\n },\n },\n\n emits: [\n /**\n * Event fired when a date is selected\n *\n * @event selected-date\n * @type {Date}\n */\n 'selected-date',\n\n /**\n * Event fired when user presses the esc key\n *\n * @event close-datepicker\n */\n 'close-datepicker',\n ],\n\n data () {\n return {\n calendarDays: [],\n };\n },\n\n methods: {\n updateCalendarDays (days) {\n this.calendarDays = days;\n },\n },\n};\n</script>\n","/**\n * Formats a date into a long format using the specified locale.\n *\n * @param {Date} date - The date to format.\n * @param {string} [locale='default'] - The locale to use for formatting. Defaults to 'default'.\n * @returns {string} The formatted date string.\n */\nexport function formatLong (date, locale = 'default') {\n return new Intl.DateTimeFormat(locale, { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }).format(date);\n}\n\n/**\n * Formats the given date in medium format.\n *\n * @param {Date} date - The date to be formatted.\n * @param {string} [locale='default'] - The locale to be used for formatting. Defaults to 'default'.\n * @returns {string} The formatted date string in medium format.\n */\nexport function formatMedium (date, locale = 'default') {\n return new Intl.DateTimeFormat(locale, { year: 'numeric', month: 'long', day: 'numeric' }).format(date);\n}\n\n/**\n * Formats a date into a short string representation.\n * @param {Date} date - The date to format.\n * @param {string} [locale='default'] - The locale to use for formatting. Defaults to 'default'.\n * @param {boolean} [showWeekday=true] - Whether to include the weekday in the formatted string. Defaults to true.\n * @returns {string} The formatted date string.\n */\nexport function formatShort (date, locale = 'default', showWeekday = true) {\n const options = showWeekday ? { weekday: 'short', year: 'numeric', month: 'short', day: 'numeric' } : { year: 'numeric', month: 'short', day: 'numeric' };\n return new Intl.DateTimeFormat(locale, options).format(date);\n}\n\n/**\n * Formats a date without the year.\n *\n * @param {Date} date - The date to format.\n * @param {string} [locale='default'] - The locale to use for formatting. Defaults to 'default'.\n * @param {boolean} [abbreviated=false] - Whether to use abbreviated month names. Defaults to false.\n * @returns {string} The formatted date without the year.\n */\nexport function formatNoYear (date, locale = 'default', abbreviated = false) {\n const monthFormat = abbreviated ? 'short' : 'long';\n return new Intl.DateTimeFormat(locale, { month: monthFormat, day: 'numeric' }).format(date);\n}\n\n/**\n * Formats a date into a numerical string representation.\n *\n * @param {Date} date - The date to format.\n * @param {string} [locale='default'] - The locale to use for formatting. Defaults to 'default'.\n * @returns {string} The formatted numerical date string.\n */\nexport function formatNumerical (date, locale = 'default') {\n return new Intl.DateTimeFormat(locale, { year: '2-digit', month: '2-digit', day: '2-digit' }).format(date);\n}\n\nexport default {\n formatLong,\n formatMedium,\n formatShort,\n formatNoYear,\n formatNumerical,\n};\n"],"names":["WEEK_START","MONTH_FORMAT","INTL_MONTH_FORMAT","_parsedGetDate","value","Date","getWeekDays","startDay","month","selectedDay","startDate","JSON","parse","stringify","dates","i","next","addDays","isNext","getMonth","push","text","getDate","currentMonth","isFirstDayOfMonth","selected","isDateEqual","date","dateToCompare","isEqual","getCalendarDays","year","weeks","firstDate","lastDate","weekStartsOn","firstDateInCalendar","startOfWeek","addDaysToWeek","days","length","some","day","nextDate","getWeekDayNames","locale","weekStart","map","Intl","DateTimeFormat","weekday","timeZone","format","slice","beforeWeekStart","afterWeekStart","concat","formatMonth","monthFormat","calculateNextFocusDate","currentDate","currentWeekday","getDay","nextMonthDate","addMonths","nextMonthStart","startOfMonth","nextMonthStartWeekday","dayDifference","focusDate","calculatePrevFocusDate","lastDayOfPrevMonth","endOfMonth","subMonths","_sfc_main","name","components","DtButton","DtTooltip","DtStack","DtIcon","props","type","String","required","prevMonthLabel","nextMonthLabel","prevYearLabel","nextYearLabel","changeToLabel","selectedDate","emits","data","selectMonth","selectYear","getYear","highlightedDay","focusPicker","focusRefs","refNames","computed","calendarDays","formattedMonth","watch","handler","highlightDay","$emit","immediate","mounted","setButtonsRef","focusMonthYearPicker","methods","refName","$refs","$el","focus","handleKeyDown","event","key","preventDefault","changeMonth","initialDate","set","newDate","changeYear","goToNextMonth","goToPrevMonth","Array","selectDayLabel","focusDay","daysRef","weekDays","$nextTick","setDayRef","dayAriaLabel","el","forEach","week","weekIndex","dayIndex","refKey","dayButton","error","prevFocusDate","nextFocusDate","focusLastDay","focusFirstDay","selectDay","MonthYearPicker","Calendar","default","updateCalendarDays","formatLong","formatMedium","formatShort","showWeekday","options","formatNoYear","abbreviated","formatNumerical"],"mappings":"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"}
1
+ {"version":3,"file":"datepicker.js","sources":["../../components/datepicker/datepicker_constants.js","../../components/datepicker/utils.js","../../components/datepicker/modules/month-year-picker.vue","../../components/datepicker/modules/calendar.vue","../../components/datepicker/datepicker.vue","../../components/datepicker/formatUtils.js"],"sourcesContent":["/**\n * Week start day\n * 0 - Sunday\n * 1 - Monday\n */\nexport const WEEK_START = 0;\n\nexport const MONTH_FORMAT = 'MMMM';\n\nexport const INTL_MONTH_FORMAT = 'long';\n","import {\n startOfWeek, addDays, getMonth, isEqual,\n addMonths, startOfMonth, getDay, getDate,\n subMonths, endOfMonth,\n} from 'date-fns';\nimport { WEEK_START } from '@/components/datepicker/datepicker_constants.js';\n\nconst _parsedGetDate = (value) => (value ? new Date(value) : new Date());\n\n/**\n * Get 7 days from the provided start date, month is used to check\n * whether the date is from the specified month or in the offset\n */\nconst getWeekDays = (startDay, month, selectedDay) => {\n const startDate = _parsedGetDate(JSON.parse(JSON.stringify(startDay)));\n const dates = [];\n for (let i = 0; i < 7; i++) {\n const next = addDays(startDate, i);\n const isNext = getMonth(next) !== month;\n dates.push({\n text: next.getDate(),\n value: next,\n currentMonth: !isNext,\n isFirstDayOfMonth: next.getDate() === 1 && !isNext,\n // will be selected if the date is the same as the selected day and is from the current month\n selected: selectedDay ? (next.getDate() === selectedDay && !isNext) : false,\n });\n }\n return dates;\n};\n\nconst isDateEqual = (date, dateToCompare) => {\n if (!date || !dateToCompare) {\n return false;\n }\n return isEqual(date, dateToCompare);\n};\n\n/**\n * Get days for the calendar to be displayed in a table grouped by weeks\n */\nexport const getCalendarDays = (month, year, selectedDay) => {\n const weeks = [];\n const firstDate = _parsedGetDate(new Date(year, month));\n const lastDate = _parsedGetDate(new Date(year, month + 1, 0));\n\n const weekStartsOn = WEEK_START;\n\n const firstDateInCalendar = startOfWeek(firstDate, { weekStartsOn });\n\n const addDaysToWeek = (date) => {\n const days = getWeekDays(date, month, selectedDay);\n\n weeks.push({ days });\n\n if (\n !weeks[weeks.length - 1].days.some((day) =>\n isDateEqual(day.value, lastDate),\n )\n ) {\n const nextDate = addDays(date, 7);\n addDaysToWeek(nextDate);\n }\n };\n\n addDaysToWeek(firstDateInCalendar);\n\n return weeks;\n};\n\n/**\n * Generate week day names based on locale and in order specified in week start\n */\nexport const getWeekDayNames = (locale, weekStart) => {\n // Get list in order from sun ... sat\n const days = [1, 2, 3, 4, 5, 6, 7].map((day) => {\n return new Intl.DateTimeFormat(locale, { weekday: 'short', timeZone: 'UTC' })\n .format(new Date(`2017-01-0${day}T00:00:00+00:00`))\n .slice(0, 2);\n });\n\n // Get days that are in order before specified week start\n const beforeWeekStart = days.slice(0, weekStart);\n // Get days that are in order after specified week start\n const afterWeekStart = days.slice(weekStart + 1, days.length);\n\n // return them in correct order\n return [days[weekStart]].concat(...afterWeekStart).concat(...beforeWeekStart);\n};\n\nexport const formatMonth = (month, monthFormat, locale) => {\n return new Intl.DateTimeFormat(locale, { month: monthFormat }).format(new Date(2000, month, 1));\n};\n\nexport const calculateNextFocusDate = (currentDate) => {\n const date = new Date(currentDate);\n const currentWeekday = getDay(date);\n const nextMonthDate = addMonths(date, 1);\n const nextMonthStart = startOfMonth(nextMonthDate);\n const nextMonthStartWeekday = getDay(nextMonthStart);\n\n const dayDifference = (currentWeekday - nextMonthStartWeekday + 7) % 7;\n\n // Add the difference in days to the first day of the next month\n const focusDate = addDays(nextMonthStart, dayDifference);\n\n // Returns only the day of the month\n return getDate(focusDate);\n};\n\nexport const calculatePrevFocusDate = (currentDate) => {\n const date = new Date(currentDate);\n const currentWeekday = getDay(date);\n\n // Move to the last day of the previous month\n const lastDayOfPrevMonth = endOfMonth(subMonths(date, 1));\n let focusDate = lastDayOfPrevMonth;\n\n // Adjust to the same weekday in the last week of the previous month\n while (getDay(focusDate) !== currentWeekday) {\n focusDate = addDays(focusDate, -1);\n }\n\n // Returns only the day of the month\n return getDate(focusDate);\n};\n","<template>\n <dt-stack\n direction=\"row\"\n class=\"d-datepicker__month-year\"\n gap=\"300\"\n >\n <dt-stack\n as=\"nav\"\n direction=\"row\"\n gap=\"200\"\n class=\"d-datepicker__nav\"\n >\n <dt-tooltip\n :message=\"prevYearLabel\"\n placement=\"top\"\n :fallback-placements=\"['top-start', 'auto']\"\n >\n <template #anchor>\n <dt-button\n id=\"prevYearButton\"\n :ref=\"refNames[0]\"\n size=\"xs\"\n importance=\"clear\"\n kind=\"muted\"\n :circle=\"true\"\n class=\"d-datepicker__nav-btn\"\n type=\"button\"\n :aria-label=\"`${changeToLabel} ${prevYearLabel} ${selectYear - 1}`\"\n @click=\"changeYear(-1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon\n name=\"chevrons-left\"\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n <dt-tooltip\n :message=\"prevMonthLabel\"\n placement=\"top\"\n :fallback-placements=\"['top-end', 'auto']\"\n >\n <template #anchor>\n <dt-button\n id=\"prevMonthButton\"\n :ref=\"refNames[1]\"\n size=\"xs\"\n importance=\"clear\"\n kind=\"muted\"\n :circle=\"true\"\n class=\"d-datepicker__nav-btn\"\n type=\"button\"\n :aria-label=\"`${changeToLabel} ${prevMonthLabel} ${formattedMonth(selectMonth - 1)}`\"\n @click=\"changeMonth(-1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon\n name=\"chevron-left\"\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n </dt-stack>\n <div\n id=\"calendar-heading\"\n class=\"d-datepicker__month-year-title\"\n >\n {{ formattedMonth(selectMonth) }}\n\n {{ selectYear }}\n </div>\n <dt-stack\n as=\"nav\"\n direction=\"row\"\n gap=\"200\"\n class=\"d-datepicker__nav\"\n >\n <dt-tooltip\n :message=\"nextMonthLabel\"\n placement=\"top\"\n :fallback-placements=\"['top-start', 'auto']\"\n >\n <template #anchor>\n <dt-button\n id=\"nextMonthButton\"\n :ref=\"refNames[2]\"\n size=\"xs\"\n importance=\"clear\"\n :circle=\"true\"\n kind=\"muted\"\n class=\"d-datepicker__nav-btn\"\n type=\"button\"\n :aria-label=\"`${changeToLabel} ${nextMonthLabel} ${formattedMonth(selectMonth + 1)}`\"\n @click=\"changeMonth(1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon\n name=\"chevron-right\"\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n <dt-tooltip\n :message=\"nextYearLabel\"\n placement=\"top\"\n :fallback-placements=\"['top-end', 'auto']\"\n >\n <template #anchor>\n <dt-button\n id=\"nextYearButton\"\n :ref=\"refNames[3]\"\n size=\"xs\"\n kind=\"muted\"\n :circle=\"true\"\n importance=\"clear\"\n class=\"d-datepicker__nav-btn\"\n type=\"button\"\n :aria-label=\"`${changeToLabel} ${nextYearLabel} ${selectYear + 1}`\"\n @click=\"changeYear(1)\"\n @keydown=\"handleKeyDown($event)\"\n >\n <dt-icon\n name=\"chevrons-right\"\n size=\"200\"\n />\n </dt-button>\n </template>\n </dt-tooltip>\n </dt-stack>\n </dt-stack>\n</template>\n\n<script>\nimport { DtIcon } from '@/components/icon';\nimport { getYear, addMonths, getMonth, set, subMonths, getDate } from 'date-fns';\nimport { getCalendarDays, formatMonth } from '../utils';\nimport { INTL_MONTH_FORMAT } from '../datepicker_constants';\nimport DtStack from '@/components/stack/stack.vue';\nimport DtTooltip from '@/components/tooltip/tooltip.vue';\nimport DtButton from '@/components/button/button.vue';\n\nexport default {\n name: 'DtDatepickerMonthYearPicker',\n\n components: { DtButton, DtTooltip, DtStack, DtIcon },\n\n props: {\n locale: {\n type: String,\n required: true,\n },\n\n prevMonthLabel: {\n type: String,\n required: true,\n },\n\n nextMonthLabel: {\n type: String,\n required: true,\n },\n\n prevYearLabel: {\n type: String,\n required: true,\n },\n\n nextYearLabel: {\n type: String,\n required: true,\n },\n\n changeToLabel: {\n type: String,\n required: true,\n },\n\n selectedDate: {\n type: Date,\n required: true,\n },\n },\n\n emits: [\n /**\n * Will retrieve the calendar days of the given date\n *\n * @event calendar-days\n * @type {Array}\n */\n 'calendar-days',\n\n /**\n * Will focus first day in calendar\n *\n * @event focus-first-day\n */\n 'focus-first-day',\n\n /**\n * Will focus last day in calendar\n *\n * @event focus-last-day\n */\n 'focus-last-day',\n\n /**\n * Will close the datepicker\n *\n * @event close-datepicker\n */\n 'close-datepicker',\n ],\n\n data () {\n return {\n selectMonth: getMonth(this.selectedDate),\n selectYear: getYear(this.selectedDate),\n highlightedDay: null,\n focusPicker: 0,\n focusRefs: [],\n refNames: ['prevYearButtonRef', 'prevMonthButtonRef', 'nextMonthButtonRef', 'nextYearButtonRef'],\n };\n },\n\n computed: {\n // Get days for the currently selected month and year and highlight the selected day\n calendarDays () {\n return getCalendarDays(this.selectMonth, this.selectYear, this.highlightedDay);\n },\n\n formattedMonth () {\n return (month) => formatMonth(month, INTL_MONTH_FORMAT, this.locale);\n },\n },\n\n watch: {\n selectMonth: {\n handler () {\n this.highlightDay();\n this.$emit('calendar-days', this.calendarDays);\n },\n\n immediate: true,\n },\n\n selectYear: {\n handler () {\n this.highlightDay();\n this.$emit('calendar-days', this.calendarDays);\n },\n\n immediate: true,\n },\n\n },\n\n mounted () {\n this.setButtonsRef();\n this.focusMonthYearPicker();\n },\n\n methods: {\n setButtonsRef () {\n this.focusRefs = this.refNames.map(refName => this.$refs[refName]);\n },\n\n focusMonthYearPicker () {\n this.focusPicker = 0;\n this.focusRefs[0].$el.focus();\n },\n\n handleKeyDown (event) {\n switch (event.key) {\n case 'ArrowLeft':\n event.preventDefault();\n if (this.focusPicker === 0) {\n this.focusPicker = 3;\n this.focusRefs[this.focusPicker].$el.focus();\n } else {\n this.focusPicker--;\n this.focusRefs[this.focusPicker].$el.focus();\n }\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n if (this.focusPicker === 3) {\n this.focusPicker = 0;\n this.focusRefs[this.focusPicker].$el.focus();\n } else {\n this.focusPicker++;\n this.focusRefs[this.focusPicker].$el.focus();\n }\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n this.$emit('focus-first-day');\n break;\n\n case 'Tab':\n event.preventDefault();\n this.$emit('focus-first-day');\n break;\n\n case 'Escape':\n this.$emit('close-datepicker');\n break;\n }\n },\n\n highlightDay () {\n const year = getYear(this.selectedDate);\n const month = getMonth(this.selectedDate);\n\n if (year !== this.selectYear || month !== this.selectMonth) {\n this.highlightedDay = null;\n } else {\n this.highlightedDay = getDate(this.selectedDate);\n }\n },\n\n changeMonth (value) {\n // Adjust year when changing from January to December or vice versa\n if ((this.selectMonth === 0 && value === -1) || (this.selectMonth === 11 && value === 1)) {\n this.selectYear += value;\n }\n\n // Calculate the new date by adding or subtracting months\n const initialDate = set(this.selectedDate, { month: this.selectMonth, year: this.selectYear });\n const newDate = value === 1 ? addMonths(initialDate, 1) : subMonths(initialDate, 1);\n\n // Update the selected month\n this.selectMonth = getMonth(newDate);\n },\n\n changeYear (value) {\n this.selectYear = this.selectYear + value;\n },\n\n goToNextMonth () {\n this.changeMonth(1);\n },\n\n goToPrevMonth () {\n this.changeMonth(-1);\n },\n },\n};\n</script>\n","<template>\n <table\n class=\"d-datepicker__calendar\"\n aria-labelledby=\"calendar-heading\"\n >\n <thead>\n <tr>\n <th\n v-for=\"day in weekDays\"\n :key=\"day\"\n scope=\"col\"\n class=\"d-datepicker__cell d-datepicker__cell--header\"\n >\n <span\n class=\"d-datepicker__weekday\"\n :title=\"day\"\n :aria-label=\"day\"\n > {{ day }}</span>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n v-for=\"(week, indexWeek) in calendarDays\"\n :key=\"indexWeek\"\n >\n <td\n v-for=\"(day, indexDays) in week.days\"\n :key=\"indexWeek + indexDays\"\n class=\"d-datepicker__cell\"\n role=\"listbox\"\n >\n <dt-button\n :ref=\"`buttonRef_${indexWeek}_${indexDays}`\"\n class=\"d-datepicker__day\"\n :circle=\"true\"\n size=\"sm\"\n importance=\"clear\"\n :disabled=\"!day.currentMonth\"\n :class=\"{\n 'd-datepicker__day--disabled': !day.currentMonth,\n 'd-datepicker__day--selected': selectedDay\n ? ((day.text === selectedDay) && day.currentMonth)\n : day.selected,\n }\"\n type=\"button\"\n :aria-selected=\"!!selectedDay ? ((day.text === selectedDay) && day.currentMonth) : day.selected\"\n :aria-label=\"dayAriaLabel(day)\"\n role=\"option\"\n @click=\"selectDay(day)\"\n @keydown=\"handleKeyDown($event)\"\n >\n {{ day.text }}\n </dt-button>\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script>\nimport { getWeekDayNames, calculateNextFocusDate, calculatePrevFocusDate } from '@/components/datepicker/utils';\nimport { WEEK_START, MONTH_FORMAT } from '@/components/datepicker/datepicker_constants.js';\nimport { format, getYear } from 'date-fns';\nimport DtButton from '@/components/button/button.vue';\n\nexport default {\n name: 'DtDatepickerCalendar',\n components: { DtButton },\n\n props: {\n calendarDays: {\n type: Array,\n required: true,\n },\n\n locale: {\n type: String,\n required: true,\n },\n\n selectDayLabel: {\n type: String,\n required: true,\n },\n },\n\n emits: [\n /**\n * Event fired when a date is selected\n *\n * @event select-date\n * @type {Date}\n */\n 'select-date',\n\n /**\n * Will focus the month and year picker\n *\n * @event focus-month-year-picker\n */\n 'focus-month-year-picker',\n\n /**\n * Will close the datepicker\n *\n * @event close-datepicker\n */\n 'close-datepicker',\n ],\n\n data () {\n return {\n // local selectedDay to override the received by props calendarDays\n selectedDay: null,\n focusDay: 0,\n daysRef: [],\n };\n },\n\n computed: {\n weekDays () {\n return getWeekDayNames(this.locale, WEEK_START);\n },\n },\n\n watch: {\n calendarDays () {\n // on calendarDays update, reset our local variables\n this.focusDay = 0;\n this.selectedDay = null;\n\n this.daysRef = [];\n\n this.$nextTick(() => {\n this.daysRef = [];\n this.setDayRef();\n });\n },\n },\n\n methods: {\n dayAriaLabel (day) {\n return `${this.selectDayLabel} ${day.text} ${format(day.value, MONTH_FORMAT)} ${getYear(day.value)}`;\n },\n\n setDayRef (el, day) {\n this.calendarDays.forEach((week, weekIndex) => {\n week.days.forEach((day, dayIndex) => {\n const refKey = `buttonRef_${weekIndex}_${dayIndex}`;\n const dayButton = this.$refs[refKey];\n if (dayButton && day.currentMonth) {\n this.daysRef.push({ el: dayButton[0], day });\n }\n });\n });\n },\n\n handleKeyDown (event) {\n switch (event.key) {\n case 'ArrowUp':\n event.preventDefault();\n this.focusDay -= 7;\n try {\n this.daysRef[this.focusDay].el.$el.focus();\n } catch (error) {\n const prevFocusDate = calculatePrevFocusDate(this.daysRef[this.focusDay + 7].day.value);\n this.$emit('go-to-prev-month');\n this.$nextTick(() => {\n this.setDayRef();\n this.daysRef[prevFocusDate - 1].el.$el.focus();\n this.focusDay += prevFocusDate - 1;\n });\n }\n break;\n\n case 'ArrowDown':\n event.preventDefault();\n this.focusDay += 7;\n try {\n this.daysRef[this.focusDay].el.$el.focus();\n } catch (error) {\n const nextFocusDate = calculateNextFocusDate(this.daysRef[this.focusDay - 7].day.value);\n this.$emit('go-to-next-month');\n this.$nextTick(() => {\n this.setDayRef();\n this.daysRef[nextFocusDate - 1].el.$el.focus();\n this.focusDay += nextFocusDate - 1;\n });\n }\n break;\n\n case 'ArrowLeft':\n event.preventDefault();\n if (this.focusDay > 0) {\n this.focusDay -= 1;\n this.daysRef[this.focusDay].el.$el.focus();\n } else {\n // if we are on month first day, jump to last day of prev month\n this.$emit('go-to-prev-month');\n this.$nextTick(() => {\n this.focusLastDay();\n });\n }\n break;\n\n case 'ArrowRight':\n event.preventDefault();\n if (this.focusDay < this.daysRef.length - 1) {\n this.focusDay += 1;\n this.daysRef[this.focusDay].el.$el.focus();\n } else {\n // if we are on month last day, jump to first day of next month\n this.$emit('go-to-next-month');\n this.$nextTick(() => {\n this.focusFirstDay();\n });\n }\n break;\n\n case 'Tab':\n event.preventDefault();\n this.$emit('focus-month-year-picker');\n break;\n\n case 'Escape':\n this.$emit('close-datepicker');\n break;\n }\n },\n\n focusFirstDay () {\n this.focusDay = 0;\n this.$nextTick(() => {\n this.daysRef[this.focusDay].el.$el.focus();\n });\n },\n\n focusLastDay () {\n this.$nextTick(() => {\n this.focusDay = this.daysRef.length - 1;\n this.daysRef[this.focusDay].el.$el.focus();\n });\n },\n\n selectDay (day) {\n if (!day.currentMonth) { return; }\n\n // local selectedDay is updated when a day is selected\n this.selectedDay = day.text;\n this.$emit('select-date', day.value);\n },\n },\n};\n</script>\n","<!-- eslint-disable vue/multi-word-component-names -->\n<template>\n <dt-stack\n class=\"d-datepicker\"\n gap=\"400\"\n >\n <div class=\"d-datepicker__hd\">\n <month-year-picker\n ref=\"monthYearPicker\"\n :locale=\"locale\"\n :prev-month-label=\"prevMonthLabel\"\n :next-month-label=\"nextMonthLabel\"\n :prev-year-label=\"prevYearLabel\"\n :next-year-label=\"nextYearLabel\"\n :change-to-label=\"changeToLabel\"\n :selected-date=\"selectedDate\"\n @calendar-days=\"updateCalendarDays\"\n @focus-first-day=\"$refs.calendar.focusFirstDay()\"\n @focus-last-day=\"$refs.calendar.focusLastDay()\"\n @close-datepicker=\"$emit('close-datepicker')\"\n />\n </div>\n <div class=\"d-datepicker__bd\">\n <calendar\n ref=\"calendar\"\n :locale=\"locale\"\n :calendar-days=\"calendarDays\"\n :select-day-label=\"selectDayLabel\"\n @select-date=\"$emit('selected-date', $event)\"\n @focus-month-year-picker=\"$refs.monthYearPicker.focusMonthYearPicker()\"\n @close-datepicker=\"$emit('close-datepicker')\"\n @go-to-next-month=\"$refs.monthYearPicker.goToNextMonth()\"\n @go-to-prev-month=\"$refs.monthYearPicker.goToPrevMonth()\"\n />\n </div>\n </dt-stack>\n</template>\n\n<script>\nimport MonthYearPicker from './modules/month-year-picker.vue';\nimport Calendar from './modules/calendar.vue';\nimport DtStack from '@/components/stack/stack.vue';\n\nexport default {\n name: 'DtDatepicker',\n\n components: { DtStack, MonthYearPicker, Calendar },\n\n props: {\n /**\n * Label for the previous month button\n *\n * @type {String}\n * @example 'Previous month'\n */\n prevMonthLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Label for the next month button\n *\n * @type {String}\n * @example 'Next month'\n */\n nextMonthLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Label for the previous year button\n *\n * @type {String}\n * @example 'Previous year'\n */\n prevYearLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Label for the next year button\n *\n * @type {String}\n * @example 'Next year'\n */\n nextYearLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Label for the select day button\n *\n * @type {String}\n * @example 'Select day'\n */\n selectDayLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Label for the change to button\n *\n * @type {String}\n * @example 'Change to'\n */\n changeToLabel: {\n type: String,\n required: true,\n },\n\n /**\n * Locale for the calendar\n *\n * @type {String}\n */\n locale: {\n type: String,\n default: 'en-US',\n },\n\n /**\n * Selected date\n *\n * @type {Date}\n */\n selectedDate: {\n type: Date,\n default: () => (new Date()),\n },\n },\n\n emits: [\n /**\n * Event fired when a date is selected\n *\n * @event selected-date\n * @type {Date}\n */\n 'selected-date',\n\n /**\n * Event fired when user presses the esc key\n *\n * @event close-datepicker\n */\n 'close-datepicker',\n ],\n\n data () {\n return {\n calendarDays: [],\n };\n },\n\n methods: {\n updateCalendarDays (days) {\n this.calendarDays = days;\n },\n },\n};\n</script>\n","/**\n * Formats a date into a long format using the specified locale.\n *\n * @param {Date} date - The date to format.\n * @param {string} [locale='default'] - The locale to use for formatting. Defaults to 'default'.\n * @returns {string} The formatted date string.\n */\nexport function formatLong (date, locale = 'default') {\n return new Intl.DateTimeFormat(locale, { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' }).format(date);\n}\n\n/**\n * Formats the given date in medium format.\n *\n * @param {Date} date - The date to be formatted.\n * @param {string} [locale='default'] - The locale to be used for formatting. Defaults to 'default'.\n * @returns {string} The formatted date string in medium format.\n */\nexport function formatMedium (date, locale = 'default') {\n return new Intl.DateTimeFormat(locale, { year: 'numeric', month: 'long', day: 'numeric' }).format(date);\n}\n\n/**\n * Formats a date into a short string representation.\n * @param {Date} date - The date to format.\n * @param {string} [locale='default'] - The locale to use for formatting. Defaults to 'default'.\n * @param {boolean} [showWeekday=true] - Whether to include the weekday in the formatted string. Defaults to true.\n * @returns {string} The formatted date string.\n */\nexport function formatShort (date, locale = 'default', showWeekday = true) {\n const options = showWeekday ? { weekday: 'short', year: 'numeric', month: 'short', day: 'numeric' } : { year: 'numeric', month: 'short', day: 'numeric' };\n return new Intl.DateTimeFormat(locale, options).format(date);\n}\n\n/**\n * Formats a date without the year.\n *\n * @param {Date} date - The date to format.\n * @param {string} [locale='default'] - The locale to use for formatting. Defaults to 'default'.\n * @param {boolean} [abbreviated=false] - Whether to use abbreviated month names. Defaults to false.\n * @returns {string} The formatted date without the year.\n */\nexport function formatNoYear (date, locale = 'default', abbreviated = false) {\n const monthFormat = abbreviated ? 'short' : 'long';\n return new Intl.DateTimeFormat(locale, { month: monthFormat, day: 'numeric' }).format(date);\n}\n\n/**\n * Formats a date into a numerical string representation.\n *\n * @param {Date} date - The date to format.\n * @param {string} [locale='default'] - The locale to use for formatting. Defaults to 'default'.\n * @returns {string} The formatted numerical date string.\n */\nexport function formatNumerical (date, locale = 'default') {\n return new Intl.DateTimeFormat(locale, { year: '2-digit', month: '2-digit', day: '2-digit' }).format(date);\n}\n\nexport default {\n formatLong,\n formatMedium,\n formatShort,\n formatNoYear,\n formatNumerical,\n};\n"],"names":["_sfc_main","day"],"mappings":"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"}
@@ -94,20 +94,21 @@ const _sfc_main = {
94
94
  };
95
95
  var _sfc_render = function render() {
96
96
  var _vm = this, _c = _vm._self._c;
97
- return _c("dl", {
98
- class: ["dt-description-list", _vm.getDirectionClass, _vm.getGapClass]
99
- }, [_vm._l(_vm.items, function(item) {
100
- return [_c("dt", {
101
- key: `dt-${item.term}`,
102
- class: _vm.dtClass
103
- }, [_vm._v(" " + _vm._s(item.term) + " ")]), _c("dd", {
104
- key: `dd-${item.term}`,
105
- class: _vm.ddClass
106
- }, [_vm._v(" " + _vm._s(item.description) + " ")])];
97
+ return _c("dl", { class: ["dt-description-list", _vm.getDirectionClass, _vm.getGapClass] }, [_vm._l(_vm.items, function(item) {
98
+ return [_c("dt", { key: `dt-${item.term}`, class: _vm.dtClass }, [_vm._v(" " + _vm._s(item.term) + " ")]), _c("dd", { key: `dd-${item.term}`, class: _vm.ddClass }, [_vm._v(" " + _vm._s(item.description) + " ")])];
107
99
  })], 2);
108
100
  };
109
101
  var _sfc_staticRenderFns = [];
110
- var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(_sfc_main, _sfc_render, _sfc_staticRenderFns, false, null, null, null, null);
102
+ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
103
+ _sfc_main,
104
+ _sfc_render,
105
+ _sfc_staticRenderFns,
106
+ false,
107
+ null,
108
+ null,
109
+ null,
110
+ null
111
+ );
111
112
  const description_list = __component__.exports;
112
113
  exports.DT_DESCRIPTION_LIST_DIRECTION = DT_DESCRIPTION_LIST_DIRECTION;
113
114
  exports.DtDescriptionList = description_list;
@@ -1 +1 @@
1
- {"version":3,"file":"description-list.cjs","sources":["../../components/description_list/description_list_constants.js","../../components/description_list/description_list_validators.js","../../components/description_list/description_list.vue"],"sourcesContent":["export const DT_DESCRIPTION_LIST_DIRECTION = ['row', 'column'];\n","const hasValidTerm = item => {\n if (!item.term) {\n return false;\n }\n\n return typeof item.term === 'string';\n};\n\nconst hasValidDescription = item => {\n if (!item.description) {\n return false;\n }\n\n return typeof item.description === 'string';\n};\n\nexport const itemsValidator = items => {\n if (!Array.isArray(items)) {\n return false;\n }\n\n return items.every(item => {\n if (typeof item !== 'object') {\n return false;\n }\n\n if (!hasValidTerm(item)) {\n return false;\n }\n\n if (!hasValidDescription(item)) {\n return false;\n }\n\n return true;\n });\n};\n","<template>\n <dl :class=\"['dt-description-list', getDirectionClass, getGapClass]\">\n <template\n v-for=\"item in items\"\n >\n <dt\n :key=\"`dt-${item.term}`\"\n :class=\"dtClass\"\n >\n {{ item.term }}\n </dt>\n <dd\n :key=\"`dd-${item.term}`\"\n :class=\"ddClass\"\n >\n {{ item.description }}\n </dd>\n </template>\n </dl>\n</template>\n\n<script>\nimport { DT_STACK_GAP } from '../stack/stack_constants';\nimport { DT_DESCRIPTION_LIST_DIRECTION } from './description_list_constants';\nimport { itemsValidator } from './description_list_validators';\n\nexport default {\n name: 'DtDescriptionList',\n\n props: {\n /**\n * The direction for the list\n * @values row, column\n */\n direction: {\n type: String,\n default: 'row',\n validator: direction => DT_DESCRIPTION_LIST_DIRECTION.includes(direction),\n },\n\n /**\n * A list of items that represent the term and the description\n */\n items: {\n type: Array,\n default: () => [],\n validator: items => itemsValidator(items),\n required: true,\n },\n\n /**\n * Set the space between the elements\n * @values 0, 100, 200, 300, 400, 500, 600\n */\n gap: {\n type: String,\n default: '400',\n validator: (gap) => DT_STACK_GAP.includes(gap),\n },\n\n /**\n * Used to customize the term element\n */\n termClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the description element\n */\n descriptionClass: {\n type: [String, Array, Object],\n default: '',\n },\n },\n\n computed: {\n dtClass () {\n return ['dt-description-list__term', this.termClass];\n },\n\n ddClass () {\n return ['dt-description-list__description', this.descriptionClass];\n },\n\n getDirectionClass () {\n return `dt-description-list--${this.direction}`;\n },\n\n getGapClass () {\n return `dt-description-list--gap-${this.gap}`;\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n.dt-description-list {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n flex-direction: row;\n line-height: var(--dt-font-line-height-300);\n font-size: var(--dt-font-size-100);\n --description-list-gap: var(--dt-space-400);\n gap: var(--description-list-gap);\n each(range(0, 600, 100), {\n &--gap-@{value} {\n --description-list-gap: ~\"var(--dt-space-@{value})\";\n }\n });\n &--column {\n flex-direction: column;\n }\n &__term {\n color: var(--dt-color-foreground-tertiary);\n flex: 0 1 40%;\n }\n &__description {\n color: var(--dt-color-foreground-primary);\n flex: 1 1 50%;\n margin-left: 0;\n }\n}\n</style>\n"],"names":["DT_DESCRIPTION_LIST_DIRECTION","hasValidTerm","item","term","hasValidDescription","description","itemsValidator","items","Array","isArray","every","_sfc_main","name","props","direction","type","String","default","validator","includes","required","gap","DT_STACK_GAP","termClass","Object","descriptionClass","computed","dtClass","ddClass","getDirectionClass","getGapClass"],"mappings":";;;;MAAaA,gCAAgC,CAAC,OAAO,QAAQ;ACA7D,MAAMC,eAAeC,UAAQ;AAC3B,MAAI,CAACA,KAAKC,MAAM;AACd,WAAO;AAAA,EACT;AAEA,SAAO,OAAOD,KAAKC,SAAS;AAC9B;AAEA,MAAMC,sBAAsBF,UAAQ;AAClC,MAAI,CAACA,KAAKG,aAAa;AACrB,WAAO;AAAA,EACT;AAEA,SAAO,OAAOH,KAAKG,gBAAgB;AACrC;AAEO,MAAMC,iBAAiBC,WAAS;AACrC,MAAI,CAACC,MAAMC,QAAQF,KAAK,GAAG;AACzB,WAAO;AAAA,EACT;AAEA,SAAOA,MAAMG,MAAMR,UAAQ;AACzB,QAAI,OAAOA,SAAS,UAAU;AAC5B,aAAO;AAAA,IACT;AAEA,QAAI,CAACD,aAAaC,IAAI,GAAG;AACvB,aAAO;AAAA,IACT;AAEA,QAAI,CAACE,oBAAoBF,IAAI,GAAG;AAC9B,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT,CAAC;AACH;ACVA,MAAAS,YAAA;AAAA,EACAC,MAAA;AAAA,EAEAC,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKAC,WAAA;AAAA,MACAC,MAAAC;AAAAA,MACAC,SAAA;AAAA,MACAC,WAAAJ,eAAAd,8BAAAmB,SAAAL,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKAP,OAAA;AAAA,MACAQ,MAAAP;AAAAA,MACAS,SAAAA,MAAA,CAAA;AAAA,MACAC,WAAAX,WAAAD,eAAAC,KAAA;AAAA,MACAa,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMAC,KAAA;AAAA,MACAN,MAAAC;AAAAA,MACAC,SAAA;AAAA,MACAC,WAAAG,SAAAC,6BAAAH,SAAAE,GAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKAE,WAAA;AAAA,MACAR,MAAA,CAAAC,QAAAR,OAAAgB,MAAA;AAAA,MACAP,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKAQ,kBAAA;AAAA,MACAV,MAAA,CAAAC,QAAAR,OAAAgB,MAAA;AAAA,MACAP,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEAS,UAAA;AAAA,IACAC,UAAA;AACA,aAAA,CAAA,6BAAA,KAAAJ,SAAA;AAAA,IACA;AAAA,IAEAK,UAAA;AACA,aAAA,CAAA,oCAAA,KAAAH,gBAAA;AAAA,IACA;AAAA,IAEAI,oBAAA;AACA,aAAA,wBAAA,KAAAf,SAAA;AAAA,IACA;AAAA,IAEAgB,cAAA;AACA,aAAA,4BAAA,KAAAT,GAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"description-list.cjs","sources":["../../components/description_list/description_list_constants.js","../../components/description_list/description_list_validators.js","../../components/description_list/description_list.vue"],"sourcesContent":["export const DT_DESCRIPTION_LIST_DIRECTION = ['row', 'column'];\n","const hasValidTerm = item => {\n if (!item.term) {\n return false;\n }\n\n return typeof item.term === 'string';\n};\n\nconst hasValidDescription = item => {\n if (!item.description) {\n return false;\n }\n\n return typeof item.description === 'string';\n};\n\nexport const itemsValidator = items => {\n if (!Array.isArray(items)) {\n return false;\n }\n\n return items.every(item => {\n if (typeof item !== 'object') {\n return false;\n }\n\n if (!hasValidTerm(item)) {\n return false;\n }\n\n if (!hasValidDescription(item)) {\n return false;\n }\n\n return true;\n });\n};\n","<template>\n <dl :class=\"['dt-description-list', getDirectionClass, getGapClass]\">\n <template\n v-for=\"item in items\"\n >\n <dt\n :key=\"`dt-${item.term}`\"\n :class=\"dtClass\"\n >\n {{ item.term }}\n </dt>\n <dd\n :key=\"`dd-${item.term}`\"\n :class=\"ddClass\"\n >\n {{ item.description }}\n </dd>\n </template>\n </dl>\n</template>\n\n<script>\nimport { DT_STACK_GAP } from '../stack/stack_constants';\nimport { DT_DESCRIPTION_LIST_DIRECTION } from './description_list_constants';\nimport { itemsValidator } from './description_list_validators';\n\nexport default {\n name: 'DtDescriptionList',\n\n props: {\n /**\n * The direction for the list\n * @values row, column\n */\n direction: {\n type: String,\n default: 'row',\n validator: direction => DT_DESCRIPTION_LIST_DIRECTION.includes(direction),\n },\n\n /**\n * A list of items that represent the term and the description\n */\n items: {\n type: Array,\n default: () => [],\n validator: items => itemsValidator(items),\n required: true,\n },\n\n /**\n * Set the space between the elements\n * @values 0, 100, 200, 300, 400, 500, 600\n */\n gap: {\n type: String,\n default: '400',\n validator: (gap) => DT_STACK_GAP.includes(gap),\n },\n\n /**\n * Used to customize the term element\n */\n termClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the description element\n */\n descriptionClass: {\n type: [String, Array, Object],\n default: '',\n },\n },\n\n computed: {\n dtClass () {\n return ['dt-description-list__term', this.termClass];\n },\n\n ddClass () {\n return ['dt-description-list__description', this.descriptionClass];\n },\n\n getDirectionClass () {\n return `dt-description-list--${this.direction}`;\n },\n\n getGapClass () {\n return `dt-description-list--gap-${this.gap}`;\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n.dt-description-list {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n flex-direction: row;\n line-height: var(--dt-font-line-height-300);\n font-size: var(--dt-font-size-100);\n --description-list-gap: var(--dt-space-400);\n gap: var(--description-list-gap);\n each(range(0, 600, 100), {\n &--gap-@{value} {\n --description-list-gap: ~\"var(--dt-space-@{value})\";\n }\n });\n &--column {\n flex-direction: column;\n }\n &__term {\n color: var(--dt-color-foreground-tertiary);\n flex: 0 1 40%;\n }\n &__description {\n color: var(--dt-color-foreground-primary);\n flex: 1 1 50%;\n margin-left: 0;\n }\n}\n</style>\n"],"names":["DT_STACK_GAP"],"mappings":";;;;AAAY,MAAC,gCAAgC,CAAC,OAAO,QAAQ;ACA7D,MAAM,eAAe,UAAQ;AAC3B,MAAI,CAAC,KAAK,MAAM;AACd,WAAO;AAAA,EACR;AAED,SAAO,OAAO,KAAK,SAAS;AAC9B;AAEA,MAAM,sBAAsB,UAAQ;AAClC,MAAI,CAAC,KAAK,aAAa;AACrB,WAAO;AAAA,EACR;AAED,SAAO,OAAO,KAAK,gBAAgB;AACrC;AAEO,MAAM,iBAAiB,WAAS;AACrC,MAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AACzB,WAAO;AAAA,EACR;AAED,SAAO,MAAM,MAAM,UAAQ;AACzB,QAAI,OAAO,SAAS,UAAU;AAC5B,aAAO;AAAA,IACR;AAED,QAAI,CAAC,aAAa,IAAI,GAAG;AACvB,aAAO;AAAA,IACR;AAED,QAAI,CAAC,oBAAoB,IAAI,GAAG;AAC9B,aAAO;AAAA,IACR;AAED,WAAO;AAAA,EACX,CAAG;AACH;ACVA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,eAAA,8BAAA,SAAA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA,MAAA,CAAA;AAAA,MACA,WAAA,WAAA,eAAA,KAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,KAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,QAAAA,6BAAA,SAAA,GAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AAAA,MACA,MAAA,CAAA,QAAA,OAAA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,kBAAA;AAAA,MACA,MAAA,CAAA,QAAA,OAAA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,UAAA;AACA,aAAA,CAAA,6BAAA,KAAA,SAAA;AAAA,IACA;AAAA,IAEA,UAAA;AACA,aAAA,CAAA,oCAAA,KAAA,gBAAA;AAAA,IACA;AAAA,IAEA,oBAAA;AACA,aAAA,wBAAA,KAAA,SAAA;AAAA,IACA;AAAA,IAEA,cAAA;AACA,aAAA,4BAAA,KAAA,GAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;;;"}
@@ -92,20 +92,21 @@ const _sfc_main = {
92
92
  };
93
93
  var _sfc_render = function render() {
94
94
  var _vm = this, _c = _vm._self._c;
95
- return _c("dl", {
96
- class: ["dt-description-list", _vm.getDirectionClass, _vm.getGapClass]
97
- }, [_vm._l(_vm.items, function(item) {
98
- return [_c("dt", {
99
- key: `dt-${item.term}`,
100
- class: _vm.dtClass
101
- }, [_vm._v(" " + _vm._s(item.term) + " ")]), _c("dd", {
102
- key: `dd-${item.term}`,
103
- class: _vm.ddClass
104
- }, [_vm._v(" " + _vm._s(item.description) + " ")])];
95
+ return _c("dl", { class: ["dt-description-list", _vm.getDirectionClass, _vm.getGapClass] }, [_vm._l(_vm.items, function(item) {
96
+ return [_c("dt", { key: `dt-${item.term}`, class: _vm.dtClass }, [_vm._v(" " + _vm._s(item.term) + " ")]), _c("dd", { key: `dd-${item.term}`, class: _vm.ddClass }, [_vm._v(" " + _vm._s(item.description) + " ")])];
105
97
  })], 2);
106
98
  };
107
99
  var _sfc_staticRenderFns = [];
108
- var __component__ = /* @__PURE__ */ normalizeComponent(_sfc_main, _sfc_render, _sfc_staticRenderFns, false, null, null, null, null);
100
+ var __component__ = /* @__PURE__ */ normalizeComponent(
101
+ _sfc_main,
102
+ _sfc_render,
103
+ _sfc_staticRenderFns,
104
+ false,
105
+ null,
106
+ null,
107
+ null,
108
+ null
109
+ );
109
110
  const description_list = __component__.exports;
110
111
  export {
111
112
  DT_DESCRIPTION_LIST_DIRECTION,
@@ -1 +1 @@
1
- {"version":3,"file":"description-list.js","sources":["../../components/description_list/description_list_constants.js","../../components/description_list/description_list_validators.js","../../components/description_list/description_list.vue"],"sourcesContent":["export const DT_DESCRIPTION_LIST_DIRECTION = ['row', 'column'];\n","const hasValidTerm = item => {\n if (!item.term) {\n return false;\n }\n\n return typeof item.term === 'string';\n};\n\nconst hasValidDescription = item => {\n if (!item.description) {\n return false;\n }\n\n return typeof item.description === 'string';\n};\n\nexport const itemsValidator = items => {\n if (!Array.isArray(items)) {\n return false;\n }\n\n return items.every(item => {\n if (typeof item !== 'object') {\n return false;\n }\n\n if (!hasValidTerm(item)) {\n return false;\n }\n\n if (!hasValidDescription(item)) {\n return false;\n }\n\n return true;\n });\n};\n","<template>\n <dl :class=\"['dt-description-list', getDirectionClass, getGapClass]\">\n <template\n v-for=\"item in items\"\n >\n <dt\n :key=\"`dt-${item.term}`\"\n :class=\"dtClass\"\n >\n {{ item.term }}\n </dt>\n <dd\n :key=\"`dd-${item.term}`\"\n :class=\"ddClass\"\n >\n {{ item.description }}\n </dd>\n </template>\n </dl>\n</template>\n\n<script>\nimport { DT_STACK_GAP } from '../stack/stack_constants';\nimport { DT_DESCRIPTION_LIST_DIRECTION } from './description_list_constants';\nimport { itemsValidator } from './description_list_validators';\n\nexport default {\n name: 'DtDescriptionList',\n\n props: {\n /**\n * The direction for the list\n * @values row, column\n */\n direction: {\n type: String,\n default: 'row',\n validator: direction => DT_DESCRIPTION_LIST_DIRECTION.includes(direction),\n },\n\n /**\n * A list of items that represent the term and the description\n */\n items: {\n type: Array,\n default: () => [],\n validator: items => itemsValidator(items),\n required: true,\n },\n\n /**\n * Set the space between the elements\n * @values 0, 100, 200, 300, 400, 500, 600\n */\n gap: {\n type: String,\n default: '400',\n validator: (gap) => DT_STACK_GAP.includes(gap),\n },\n\n /**\n * Used to customize the term element\n */\n termClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the description element\n */\n descriptionClass: {\n type: [String, Array, Object],\n default: '',\n },\n },\n\n computed: {\n dtClass () {\n return ['dt-description-list__term', this.termClass];\n },\n\n ddClass () {\n return ['dt-description-list__description', this.descriptionClass];\n },\n\n getDirectionClass () {\n return `dt-description-list--${this.direction}`;\n },\n\n getGapClass () {\n return `dt-description-list--gap-${this.gap}`;\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n.dt-description-list {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n flex-direction: row;\n line-height: var(--dt-font-line-height-300);\n font-size: var(--dt-font-size-100);\n --description-list-gap: var(--dt-space-400);\n gap: var(--description-list-gap);\n each(range(0, 600, 100), {\n &--gap-@{value} {\n --description-list-gap: ~\"var(--dt-space-@{value})\";\n }\n });\n &--column {\n flex-direction: column;\n }\n &__term {\n color: var(--dt-color-foreground-tertiary);\n flex: 0 1 40%;\n }\n &__description {\n color: var(--dt-color-foreground-primary);\n flex: 1 1 50%;\n margin-left: 0;\n }\n}\n</style>\n"],"names":["DT_DESCRIPTION_LIST_DIRECTION","hasValidTerm","item","term","hasValidDescription","description","itemsValidator","items","Array","isArray","every","_sfc_main","name","props","direction","type","String","default","validator","includes","required","gap","DT_STACK_GAP","termClass","Object","descriptionClass","computed","dtClass","ddClass","getDirectionClass","getGapClass"],"mappings":";;MAAaA,gCAAgC,CAAC,OAAO,QAAQ;ACA7D,MAAMC,eAAeC,UAAQ;AAC3B,MAAI,CAACA,KAAKC,MAAM;AACd,WAAO;AAAA,EACT;AAEA,SAAO,OAAOD,KAAKC,SAAS;AAC9B;AAEA,MAAMC,sBAAsBF,UAAQ;AAClC,MAAI,CAACA,KAAKG,aAAa;AACrB,WAAO;AAAA,EACT;AAEA,SAAO,OAAOH,KAAKG,gBAAgB;AACrC;AAEO,MAAMC,iBAAiBC,WAAS;AACrC,MAAI,CAACC,MAAMC,QAAQF,KAAK,GAAG;AACzB,WAAO;AAAA,EACT;AAEA,SAAOA,MAAMG,MAAMR,UAAQ;AACzB,QAAI,OAAOA,SAAS,UAAU;AAC5B,aAAO;AAAA,IACT;AAEA,QAAI,CAACD,aAAaC,IAAI,GAAG;AACvB,aAAO;AAAA,IACT;AAEA,QAAI,CAACE,oBAAoBF,IAAI,GAAG;AAC9B,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT,CAAC;AACH;ACVA,MAAAS,YAAA;AAAA,EACAC,MAAA;AAAA,EAEAC,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKAC,WAAA;AAAA,MACAC,MAAAC;AAAAA,MACAC,SAAA;AAAA,MACAC,WAAAJ,eAAAd,8BAAAmB,SAAAL,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKAP,OAAA;AAAA,MACAQ,MAAAP;AAAAA,MACAS,SAAAA,MAAA,CAAA;AAAA,MACAC,WAAAX,WAAAD,eAAAC,KAAA;AAAA,MACAa,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMAC,KAAA;AAAA,MACAN,MAAAC;AAAAA,MACAC,SAAA;AAAA,MACAC,WAAAG,SAAAC,aAAAH,SAAAE,GAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKAE,WAAA;AAAA,MACAR,MAAA,CAAAC,QAAAR,OAAAgB,MAAA;AAAA,MACAP,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKAQ,kBAAA;AAAA,MACAV,MAAA,CAAAC,QAAAR,OAAAgB,MAAA;AAAA,MACAP,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEAS,UAAA;AAAA,IACAC,UAAA;AACA,aAAA,CAAA,6BAAA,KAAAJ,SAAA;AAAA,IACA;AAAA,IAEAK,UAAA;AACA,aAAA,CAAA,oCAAA,KAAAH,gBAAA;AAAA,IACA;AAAA,IAEAI,oBAAA;AACA,aAAA,wBAAA,KAAAf,SAAA;AAAA,IACA;AAAA,IAEAgB,cAAA;AACA,aAAA,4BAAA,KAAAT,GAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"description-list.js","sources":["../../components/description_list/description_list_constants.js","../../components/description_list/description_list_validators.js","../../components/description_list/description_list.vue"],"sourcesContent":["export const DT_DESCRIPTION_LIST_DIRECTION = ['row', 'column'];\n","const hasValidTerm = item => {\n if (!item.term) {\n return false;\n }\n\n return typeof item.term === 'string';\n};\n\nconst hasValidDescription = item => {\n if (!item.description) {\n return false;\n }\n\n return typeof item.description === 'string';\n};\n\nexport const itemsValidator = items => {\n if (!Array.isArray(items)) {\n return false;\n }\n\n return items.every(item => {\n if (typeof item !== 'object') {\n return false;\n }\n\n if (!hasValidTerm(item)) {\n return false;\n }\n\n if (!hasValidDescription(item)) {\n return false;\n }\n\n return true;\n });\n};\n","<template>\n <dl :class=\"['dt-description-list', getDirectionClass, getGapClass]\">\n <template\n v-for=\"item in items\"\n >\n <dt\n :key=\"`dt-${item.term}`\"\n :class=\"dtClass\"\n >\n {{ item.term }}\n </dt>\n <dd\n :key=\"`dd-${item.term}`\"\n :class=\"ddClass\"\n >\n {{ item.description }}\n </dd>\n </template>\n </dl>\n</template>\n\n<script>\nimport { DT_STACK_GAP } from '../stack/stack_constants';\nimport { DT_DESCRIPTION_LIST_DIRECTION } from './description_list_constants';\nimport { itemsValidator } from './description_list_validators';\n\nexport default {\n name: 'DtDescriptionList',\n\n props: {\n /**\n * The direction for the list\n * @values row, column\n */\n direction: {\n type: String,\n default: 'row',\n validator: direction => DT_DESCRIPTION_LIST_DIRECTION.includes(direction),\n },\n\n /**\n * A list of items that represent the term and the description\n */\n items: {\n type: Array,\n default: () => [],\n validator: items => itemsValidator(items),\n required: true,\n },\n\n /**\n * Set the space between the elements\n * @values 0, 100, 200, 300, 400, 500, 600\n */\n gap: {\n type: String,\n default: '400',\n validator: (gap) => DT_STACK_GAP.includes(gap),\n },\n\n /**\n * Used to customize the term element\n */\n termClass: {\n type: [String, Array, Object],\n default: '',\n },\n\n /**\n * Used to customize the description element\n */\n descriptionClass: {\n type: [String, Array, Object],\n default: '',\n },\n },\n\n computed: {\n dtClass () {\n return ['dt-description-list__term', this.termClass];\n },\n\n ddClass () {\n return ['dt-description-list__description', this.descriptionClass];\n },\n\n getDirectionClass () {\n return `dt-description-list--${this.direction}`;\n },\n\n getGapClass () {\n return `dt-description-list--gap-${this.gap}`;\n },\n },\n};\n</script>\n\n<style lang=\"less\">\n.dt-description-list {\n display: flex;\n flex-wrap: wrap;\n align-items: flex-start;\n flex-direction: row;\n line-height: var(--dt-font-line-height-300);\n font-size: var(--dt-font-size-100);\n --description-list-gap: var(--dt-space-400);\n gap: var(--description-list-gap);\n each(range(0, 600, 100), {\n &--gap-@{value} {\n --description-list-gap: ~\"var(--dt-space-@{value})\";\n }\n });\n &--column {\n flex-direction: column;\n }\n &__term {\n color: var(--dt-color-foreground-tertiary);\n flex: 0 1 40%;\n }\n &__description {\n color: var(--dt-color-foreground-primary);\n flex: 1 1 50%;\n margin-left: 0;\n }\n}\n</style>\n"],"names":[],"mappings":";;AAAY,MAAC,gCAAgC,CAAC,OAAO,QAAQ;ACA7D,MAAM,eAAe,UAAQ;AAC3B,MAAI,CAAC,KAAK,MAAM;AACd,WAAO;AAAA,EACR;AAED,SAAO,OAAO,KAAK,SAAS;AAC9B;AAEA,MAAM,sBAAsB,UAAQ;AAClC,MAAI,CAAC,KAAK,aAAa;AACrB,WAAO;AAAA,EACR;AAED,SAAO,OAAO,KAAK,gBAAgB;AACrC;AAEO,MAAM,iBAAiB,WAAS;AACrC,MAAI,CAAC,MAAM,QAAQ,KAAK,GAAG;AACzB,WAAO;AAAA,EACR;AAED,SAAO,MAAM,MAAM,UAAQ;AACzB,QAAI,OAAO,SAAS,UAAU;AAC5B,aAAO;AAAA,IACR;AAED,QAAI,CAAC,aAAa,IAAI,GAAG;AACvB,aAAO;AAAA,IACR;AAED,QAAI,CAAC,oBAAoB,IAAI,GAAG;AAC9B,aAAO;AAAA,IACR;AAED,WAAO;AAAA,EACX,CAAG;AACH;ACVA,MAAA,YAAA;AAAA,EACA,MAAA;AAAA,EAEA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,eAAA,8BAAA,SAAA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,OAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA,MAAA,CAAA;AAAA,MACA,WAAA,WAAA,eAAA,KAAA;AAAA,MACA,UAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAMA,KAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,WAAA,CAAA,QAAA,aAAA,SAAA,GAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,WAAA;AAAA,MACA,MAAA,CAAA,QAAA,OAAA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAKA,kBAAA;AAAA,MACA,MAAA,CAAA,QAAA,OAAA,MAAA;AAAA,MACA,SAAA;AAAA,IACA;AAAA,EACA;AAAA,EAEA,UAAA;AAAA,IACA,UAAA;AACA,aAAA,CAAA,6BAAA,KAAA,SAAA;AAAA,IACA;AAAA,IAEA,UAAA;AACA,aAAA,CAAA,oCAAA,KAAA,gBAAA;AAAA,IACA;AAAA,IAEA,oBAAA;AACA,aAAA,wBAAA,KAAA,SAAA;AAAA,IACA;AAAA,IAEA,cAAA;AACA,aAAA,4BAAA,KAAA,GAAA;AAAA,IACA;AAAA,EACA;AACA;;;;;;;;;;;;;;;;;;;"}
@@ -1,24 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const dropdown = require("../chunks/dropdown-mjrYu_mK.js");
3
+ const dropdown = require("../chunks/dropdown-pHxnQPzT.js");
4
4
  const _pluginVue2_normalizer = require("../chunks/_plugin-vue2_normalizer-1aBeR4AK.js");
5
5
  const dropdown_constants = require("../chunks/dropdown_constants-2pGCXy7m.js");
6
- require("../chunks/keyboard_list_navigation-x3D6RcC7.js");
6
+ require("../chunks/keyboard_list_navigation-fJnl_Iox.js");
7
7
  require("../common/utils.cjs");
8
8
  require("../common/constants.cjs");
9
9
  require("vue");
10
- require("../chunks/sr_only_close_button-2Q9Ny1Nc.js");
10
+ require("../chunks/sr_only_close_button-ZaGdAHz7.js");
11
11
  require("./icon.cjs");
12
12
  require("@dialpad/dialtone-icons/vue2");
13
- require("../chunks/icon_constants-VEA0wI5C.js");
13
+ require("../chunks/icon_constants-QYpmdE0R.js");
14
14
  require("@dialpad/dialtone-icons/icons.json");
15
15
  require("./button.cjs");
16
16
  require("../chunks/link_constants-x8NwdqmA.js");
17
17
  require("./popover.cjs");
18
- require("../chunks/popover_constants-h9MD6WUt.js");
18
+ require("../chunks/popover_constants-XnGWXaxX.js");
19
19
  require("tippy.js");
20
20
  require("@linusborg/vue-simple-portal");
21
- require("../chunks/modal-OaWxzqNt.js");
21
+ require("../chunks/modal-VgxXAQFP.js");
22
22
  require("./lazy-show.cjs");
23
23
  require("../chunks/list_item_constants-EiqkqZvP.js");
24
24
  const _sfc_main = {
@@ -26,15 +26,19 @@ const _sfc_main = {
26
26
  };
27
27
  var _sfc_render = function render() {
28
28
  var _vm = this, _c = _vm._self._c;
29
- return _c("li", {
30
- staticClass: "dt-list-separator",
31
- attrs: {
32
- "aria-hidden": "true"
33
- }
34
- });
29
+ return _c("li", { staticClass: "dt-list-separator", attrs: { "aria-hidden": "true" } });
35
30
  };
36
31
  var _sfc_staticRenderFns = [];
37
- var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(_sfc_main, _sfc_render, _sfc_staticRenderFns, false, null, null, null, null);
32
+ var __component__ = /* @__PURE__ */ _pluginVue2_normalizer.normalizeComponent(
33
+ _sfc_main,
34
+ _sfc_render,
35
+ _sfc_staticRenderFns,
36
+ false,
37
+ null,
38
+ null,
39
+ null,
40
+ null
41
+ );
38
42
  const dropdown_separator = __component__.exports;
39
43
  exports.DtDropdown = dropdown.DtDropdown;
40
44
  exports.DROPDOWN_PADDING_CLASSES = dropdown_constants.DROPDOWN_PADDING_CLASSES;
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.cjs","sources":["../../components/dropdown/dropdown_separator.vue"],"sourcesContent":["<template>\n <li\n aria-hidden=\"true\"\n class=\"dt-list-separator\"\n />\n</template>\n\n<script>\nexport default {\n name: 'DtDropdownSeparator',\n};\n</script>\n\n<style lang=\"less\">\n.dt-list-item[role=\"menuitem\"] {\n border-radius: var(--dt-size-300);\n}\n.dt-list-separator {\n border-top: var(--dt-size-100) solid var(--dt-color-border-default);\n list-style: none;\n margin: var(--dt-space-300) var(--dt-space-300-negative);\n}\n</style>\n"],"names":["_sfc_main","name"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAAA,YAAA;AAAA,EACAC,MAAA;AACA;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"dropdown.cjs","sources":["../../components/dropdown/dropdown_separator.vue"],"sourcesContent":["<template>\n <li\n aria-hidden=\"true\"\n class=\"dt-list-separator\"\n />\n</template>\n\n<script>\nexport default {\n name: 'DtDropdownSeparator',\n};\n</script>\n\n<style lang=\"less\">\n.dt-list-item[role=\"menuitem\"] {\n border-radius: var(--dt-size-300);\n}\n.dt-list-separator {\n border-top: var(--dt-size-100) solid var(--dt-color-border-default);\n list-style: none;\n margin: var(--dt-space-300) var(--dt-space-300-negative);\n}\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAQA,MAAA,YAAA;AAAA,EACA,MAAA;AACA;;;;;;;;;;;;;;;;;;;;"}
@@ -1,22 +1,22 @@
1
- import { DtDropdown } from "../chunks/dropdown-YdCyJ5Dq.js";
1
+ import { DtDropdown } from "../chunks/dropdown-6UoczdUY.js";
2
2
  import { normalizeComponent } from "../chunks/_plugin-vue2_normalizer-sOSkiPF3.js";
3
3
  import { DROPDOWN_PADDING_CLASSES } from "../chunks/dropdown_constants-w1MXGC3Z.js";
4
- import "../chunks/keyboard_list_navigation-YIqTuw1W.js";
4
+ import "../chunks/keyboard_list_navigation-ScXhrxya.js";
5
5
  import "../common/utils.js";
6
6
  import "../common/constants.js";
7
7
  import "vue";
8
- import "../chunks/sr_only_close_button-IjMVfBDE.js";
8
+ import "../chunks/sr_only_close_button-81bHIpPu.js";
9
9
  import "./icon.js";
10
10
  import "@dialpad/dialtone-icons/vue2";
11
- import "../chunks/icon_constants-TdxqLsS2.js";
11
+ import "../chunks/icon_constants-Dy4MEUJL.js";
12
12
  import "@dialpad/dialtone-icons/icons.json";
13
13
  import "./button.js";
14
14
  import "../chunks/link_constants-AfTWrr-n.js";
15
15
  import "./popover.js";
16
- import "../chunks/popover_constants-6YkPPbnk.js";
16
+ import "../chunks/popover_constants-WsOUIY-m.js";
17
17
  import "tippy.js";
18
18
  import "@linusborg/vue-simple-portal";
19
- import "../chunks/modal-8X6poIZW.js";
19
+ import "../chunks/modal-XOr4kiNZ.js";
20
20
  import "./lazy-show.js";
21
21
  import "../chunks/list_item_constants-u1xcN9Dd.js";
22
22
  const _sfc_main = {
@@ -24,15 +24,19 @@ const _sfc_main = {
24
24
  };
25
25
  var _sfc_render = function render() {
26
26
  var _vm = this, _c = _vm._self._c;
27
- return _c("li", {
28
- staticClass: "dt-list-separator",
29
- attrs: {
30
- "aria-hidden": "true"
31
- }
32
- });
27
+ return _c("li", { staticClass: "dt-list-separator", attrs: { "aria-hidden": "true" } });
33
28
  };
34
29
  var _sfc_staticRenderFns = [];
35
- var __component__ = /* @__PURE__ */ normalizeComponent(_sfc_main, _sfc_render, _sfc_staticRenderFns, false, null, null, null, null);
30
+ var __component__ = /* @__PURE__ */ normalizeComponent(
31
+ _sfc_main,
32
+ _sfc_render,
33
+ _sfc_staticRenderFns,
34
+ false,
35
+ null,
36
+ null,
37
+ null,
38
+ null
39
+ );
36
40
  const dropdown_separator = __component__.exports;
37
41
  export {
38
42
  DROPDOWN_PADDING_CLASSES,
@@ -1 +1 @@
1
- {"version":3,"file":"dropdown.js","sources":["../../components/dropdown/dropdown_separator.vue"],"sourcesContent":["<template>\n <li\n aria-hidden=\"true\"\n class=\"dt-list-separator\"\n />\n</template>\n\n<script>\nexport default {\n name: 'DtDropdownSeparator',\n};\n</script>\n\n<style lang=\"less\">\n.dt-list-item[role=\"menuitem\"] {\n border-radius: var(--dt-size-300);\n}\n.dt-list-separator {\n border-top: var(--dt-size-100) solid var(--dt-color-border-default);\n list-style: none;\n margin: var(--dt-space-300) var(--dt-space-300-negative);\n}\n</style>\n"],"names":["_sfc_main","name"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAQA,MAAAA,YAAA;AAAA,EACAC,MAAA;AACA;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"dropdown.js","sources":["../../components/dropdown/dropdown_separator.vue"],"sourcesContent":["<template>\n <li\n aria-hidden=\"true\"\n class=\"dt-list-separator\"\n />\n</template>\n\n<script>\nexport default {\n name: 'DtDropdownSeparator',\n};\n</script>\n\n<style lang=\"less\">\n.dt-list-item[role=\"menuitem\"] {\n border-radius: var(--dt-size-300);\n}\n.dt-list-separator {\n border-top: var(--dt-size-100) solid var(--dt-color-border-default);\n list-style: none;\n margin: var(--dt-space-300) var(--dt-space-300-negative);\n}\n</style>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAQA,MAAA,YAAA;AAAA,EACA,MAAA;AACA;;;;;;;;;;;;;;;;;"}