@dialpad/dialtone-vue 3.220.0-next.4 → 3.220.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 (1010) hide show
  1. package/dist/attachment_carousel-BHxR7A76.cjs +2 -0
  2. package/dist/attachment_carousel-BHxR7A76.cjs.map +1 -0
  3. package/dist/{attachment_carousel-1qxTI-NN.js → attachment_carousel-CouFqFMw.js} +5 -5
  4. package/dist/attachment_carousel-CouFqFMw.js.map +1 -0
  5. package/dist/{combobox-BQBKrDTW.js → combobox-DgClbLOg.js} +35 -36
  6. package/dist/combobox-DgClbLOg.js.map +1 -0
  7. package/dist/combobox-DhjZxfUw.cjs +3 -0
  8. package/dist/combobox-DhjZxfUw.cjs.map +1 -0
  9. package/dist/common/constants/index.cjs +1 -1
  10. package/dist/common/constants/index.cjs.map +1 -1
  11. package/dist/common/constants/index.d.ts +21 -27
  12. package/dist/common/constants/index.d.ts.map +1 -1
  13. package/dist/common/constants/index.js +14 -25
  14. package/dist/common/constants/index.js.map +1 -1
  15. package/dist/common/mixins/index.cjs +1 -1
  16. package/dist/common/mixins/index.d.ts +0 -1
  17. package/dist/common/mixins/index.js +1 -2
  18. package/dist/common/mixins/input-group.cjs +1 -1
  19. package/dist/common/mixins/input-group.cjs.map +1 -1
  20. package/dist/common/mixins/input-group.js +2 -2
  21. package/dist/common/mixins/input-group.js.map +1 -1
  22. package/dist/common/mixins/input.cjs +1 -1
  23. package/dist/common/mixins/input.cjs.map +1 -1
  24. package/dist/common/mixins/input.d.ts +33 -27
  25. package/dist/common/mixins/input.d.ts.map +1 -1
  26. package/dist/common/mixins/input.js +8 -0
  27. package/dist/common/mixins/input.js.map +1 -1
  28. package/dist/common/sr_only_close_button.vue.d.ts +7 -98
  29. package/dist/common/sr_only_close_button.vue.d.ts.map +1 -1
  30. package/dist/common/utils/index.cjs +1 -1
  31. package/dist/common/utils/index.cjs.map +1 -1
  32. package/dist/common/utils/index.d.ts +8 -2
  33. package/dist/common/utils/index.d.ts.map +1 -1
  34. package/dist/common/utils/index.js +88 -79
  35. package/dist/common/utils/index.js.map +1 -1
  36. package/dist/component-documentation.json +1 -1
  37. package/dist/components/avatar/avatar.vue.d.ts +27 -85
  38. package/dist/components/avatar/avatar.vue.d.ts.map +1 -1
  39. package/dist/components/avatar/avatar_constants.d.ts +29 -86
  40. package/dist/components/avatar/avatar_constants.d.ts.map +1 -1
  41. package/dist/components/avatar/index.d.ts +1 -1
  42. package/dist/components/badge/badge.vue.d.ts +1 -19
  43. package/dist/components/badge/badge.vue.d.ts.map +1 -1
  44. package/dist/components/badge/badge_constants.d.ts +1 -1
  45. package/dist/components/banner/banner.vue.d.ts +50 -447
  46. package/dist/components/banner/banner.vue.d.ts.map +1 -1
  47. package/dist/components/breadcrumbs/breadcrumb_item.vue.d.ts +17 -27
  48. package/dist/components/breadcrumbs/breadcrumb_item.vue.d.ts.map +1 -1
  49. package/dist/components/breadcrumbs/breadcrumbs.vue.d.ts +16 -35
  50. package/dist/components/button/button.vue.d.ts +7 -98
  51. package/dist/components/button/button.vue.d.ts.map +1 -1
  52. package/dist/components/button/button_constants.d.ts +20 -29
  53. package/dist/components/button/button_constants.d.ts.map +1 -1
  54. package/dist/components/card/card.vue.d.ts +11 -2
  55. package/dist/components/card/card.vue.d.ts.map +1 -1
  56. package/dist/components/checkbox/checkbox.vue.d.ts +11 -183
  57. package/dist/components/checkbox/checkbox.vue.d.ts.map +1 -1
  58. package/dist/components/checkbox/checkbox_constants.d.ts +2 -2
  59. package/dist/components/checkbox_group/checkbox_group.vue.d.ts +15 -145
  60. package/dist/components/chip/chip.vue.d.ts +16 -125
  61. package/dist/components/chip/chip.vue.d.ts.map +1 -1
  62. package/dist/components/chip/chip_constants.d.ts +21 -24
  63. package/dist/components/chip/chip_constants.d.ts.map +1 -1
  64. package/dist/components/codeblock/codeblock.vue.d.ts +2 -25
  65. package/dist/components/codeblock/codeblock.vue.d.ts.map +1 -1
  66. package/dist/components/collapsible/collapsible.vue.d.ts +11 -102
  67. package/dist/components/collapsible/collapsible.vue.d.ts.map +1 -1
  68. package/dist/components/combobox/combobox.vue.d.ts +85 -160
  69. package/dist/components/combobox/combobox.vue.d.ts.map +1 -1
  70. package/dist/components/combobox/combobox_empty-list.vue.d.ts +28 -61
  71. package/dist/components/combobox/combobox_empty-list.vue.d.ts.map +1 -1
  72. package/dist/components/combobox/combobox_loading-list.vue.d.ts +48 -90
  73. package/dist/components/combobox/combobox_loading-list.vue.d.ts.map +1 -1
  74. package/dist/components/combobox_multi_select/combobox_multi_select.vue.d.ts.map +1 -1
  75. package/dist/components/combobox_multi_select/combobox_multi_select_constants.d.ts +13 -16
  76. package/dist/components/combobox_multi_select/combobox_multi_select_constants.d.ts.map +1 -1
  77. package/dist/components/combobox_with_popover/combobox_with_popover.vue.d.ts +196 -610
  78. package/dist/components/combobox_with_popover/combobox_with_popover.vue.d.ts.map +1 -1
  79. package/dist/components/datepicker/modules/month-year-picker.vue.d.ts.map +1 -1
  80. package/dist/components/dropdown/dropdown.vue.d.ts +28 -292
  81. package/dist/components/dropdown/dropdown.vue.d.ts.map +1 -1
  82. package/dist/components/emoji/emoji.vue.d.ts +20 -29
  83. package/dist/components/emoji_picker/emoji_picker.vue.d.ts +25 -225
  84. package/dist/components/emoji_picker/modules/emoji_search.vue.d.ts +25 -225
  85. package/dist/components/emoji_picker/modules/emoji_search.vue.d.ts.map +1 -1
  86. package/dist/components/emoji_picker/modules/emoji_tabset.vue.d.ts.map +1 -1
  87. package/dist/components/emoji_text_wrapper/emoji_text_wrapper.vue.d.ts +20 -29
  88. package/dist/components/emoji_text_wrapper/emoji_text_wrapper.vue.d.ts.map +1 -1
  89. package/dist/components/empty_state/empty_state.vue.d.ts.map +1 -1
  90. package/dist/components/empty_state/empty_state_constants.d.ts +31 -52
  91. package/dist/components/empty_state/empty_state_constants.d.ts.map +1 -1
  92. package/dist/components/hovercard/hovercard.vue.d.ts +57 -596
  93. package/dist/components/hovercard/hovercard.vue.d.ts.map +1 -1
  94. package/dist/components/image_viewer/image_viewer.vue.d.ts +17 -224
  95. package/dist/components/image_viewer/image_viewer.vue.d.ts.map +1 -1
  96. package/dist/components/input/input.vue.d.ts +21 -214
  97. package/dist/components/input/input.vue.d.ts.map +1 -1
  98. package/dist/components/input/input_constants.d.ts +48 -46
  99. package/dist/components/input/input_constants.d.ts.map +1 -1
  100. package/dist/components/input_group/input_group.vue.d.ts +0 -142
  101. package/dist/components/input_group/input_group.vue.d.ts.map +1 -1
  102. package/dist/components/item_layout/item_layout.vue.d.ts +27 -58
  103. package/dist/components/item_layout/item_layout.vue.d.ts.map +1 -1
  104. package/dist/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts +0 -142
  105. package/dist/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts.map +1 -1
  106. package/dist/components/link/index.d.ts +1 -1
  107. package/dist/components/link/link.vue.d.ts +6 -26
  108. package/dist/components/link/link_constants.d.ts +4 -6
  109. package/dist/components/link/link_constants.d.ts.map +1 -1
  110. package/dist/components/list_item/list_item.vue.d.ts +28 -61
  111. package/dist/components/list_item/list_item.vue.d.ts.map +1 -1
  112. package/dist/components/modal/modal.vue.d.ts +108 -411
  113. package/dist/components/modal/modal.vue.d.ts.map +1 -1
  114. package/dist/components/modal/modal_constants.d.ts +6 -7
  115. package/dist/components/motion_text/motion_text_constants.d.ts +23 -27
  116. package/dist/components/motion_text/motion_text_constants.d.ts.map +1 -1
  117. package/dist/components/notice/notice.vue.d.ts +50 -447
  118. package/dist/components/notice/notice.vue.d.ts.map +1 -1
  119. package/dist/components/notice/notice_action.vue.d.ts +20 -211
  120. package/dist/components/notice/notice_action.vue.d.ts.map +1 -1
  121. package/dist/components/notice/notice_constants.d.ts.map +1 -1
  122. package/dist/components/notice/notice_content.vue.d.ts +9 -170
  123. package/dist/components/notice/notice_content.vue.d.ts.map +1 -1
  124. package/dist/components/notice/notice_icon.vue.d.ts +2 -11
  125. package/dist/components/notice/notice_icon.vue.d.ts.map +1 -1
  126. package/dist/components/pagination/pagination.vue.d.ts +10 -101
  127. package/dist/components/pagination/pagination.vue.d.ts.map +1 -1
  128. package/dist/components/popover/popover.vue.d.ts +23 -267
  129. package/dist/components/popover/popover.vue.d.ts.map +1 -1
  130. package/dist/components/popover/popover_header_footer.vue.d.ts +7 -107
  131. package/dist/components/popover/popover_header_footer.vue.d.ts.map +1 -1
  132. package/dist/components/radio/radio.vue.d.ts +8 -179
  133. package/dist/components/radio/radio.vue.d.ts.map +1 -1
  134. package/dist/components/radio/radio_constants.d.ts +2 -2
  135. package/dist/components/radio_group/radio_group.vue.d.ts +2 -143
  136. package/dist/components/resizable/resizable_constants.d.ts.map +1 -1
  137. package/dist/components/resizable/resizable_panel.vue.d.ts +0 -2
  138. package/dist/components/resizable/resizable_panel.vue.d.ts.map +1 -1
  139. package/dist/components/resizable/resizable_utils.d.ts.map +1 -1
  140. package/dist/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts +6 -26
  141. package/dist/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts.map +1 -1
  142. package/dist/components/rich_text_editor/extensions/channels/ChannelSuggestion.vue.d.ts.map +1 -1
  143. package/dist/components/rich_text_editor/extensions/emoji/EmojiComponent.vue.d.ts +20 -29
  144. package/dist/components/rich_text_editor/extensions/emoji/EmojiSuggestion.vue.d.ts +20 -29
  145. package/dist/components/rich_text_editor/extensions/mentions/MentionComponent.vue.d.ts +6 -26
  146. package/dist/components/rich_text_editor/extensions/mentions/MentionSuggestion.vue.d.ts +27 -227
  147. package/dist/components/rich_text_editor/extensions/mentions/MentionSuggestion.vue.d.ts.map +1 -1
  148. package/dist/components/rich_text_editor/extensions/slash_command/SlashCommandSuggestion.vue.d.ts +1 -144
  149. package/dist/components/rich_text_editor/extensions/slash_command/SlashCommandSuggestion.vue.d.ts.map +1 -1
  150. package/dist/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts +28 -61
  151. package/dist/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts.map +1 -1
  152. package/dist/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts +51 -597
  153. package/dist/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts.map +1 -1
  154. package/dist/components/rich_text_editor/rich_text_editor.vue.d.ts +15 -105
  155. package/dist/components/rich_text_editor/rich_text_editor.vue.d.ts.map +1 -1
  156. package/dist/components/root_layout/root_layout.vue.d.ts +2 -2
  157. package/dist/components/root_layout/root_layout_constants.d.ts +0 -2
  158. package/dist/components/root_layout/root_layout_constants.d.ts.map +1 -1
  159. package/dist/components/scroller/modules/core_scroller.vue.d.ts +4 -4
  160. package/dist/components/scroller/modules/dynamic_scroller.vue.d.ts +24 -24
  161. package/dist/components/scroller/scroller.vue.d.ts +34 -34
  162. package/dist/components/select_menu/select_menu.vue.d.ts +34 -190
  163. package/dist/components/select_menu/select_menu.vue.d.ts.map +1 -1
  164. package/dist/components/select_menu/select_menu_constants.d.ts +9 -14
  165. package/dist/components/select_menu/select_menu_constants.d.ts.map +1 -1
  166. package/dist/components/skeleton/skeleton-list-item.vue.d.ts +12 -15
  167. package/dist/components/skeleton/skeleton-paragraph.vue.d.ts +2 -5
  168. package/dist/components/skeleton/skeleton-shape.vue.d.ts +5 -5
  169. package/dist/components/skeleton/skeleton-text.vue.d.ts +1 -4
  170. package/dist/components/skeleton/skeleton.vue.d.ts +20 -29
  171. package/dist/components/skeleton/skeleton_constants.d.ts +13 -18
  172. package/dist/components/skeleton/skeleton_constants.d.ts.map +1 -1
  173. package/dist/components/split_button/{split_button-start.vue.d.ts → split_button-alpha.vue.d.ts} +11 -170
  174. package/dist/components/split_button/split_button-alpha.vue.d.ts.map +1 -0
  175. package/dist/components/split_button/{split_button-end.vue.d.ts → split_button-omega.vue.d.ts} +13 -109
  176. package/dist/components/split_button/split_button-omega.vue.d.ts.map +1 -0
  177. package/dist/components/split_button/split_button.vue.d.ts +87 -809
  178. package/dist/components/split_button/split_button.vue.d.ts.map +1 -1
  179. package/dist/components/split_button/split_button_constants.d.ts +7 -12
  180. package/dist/components/split_button/split_button_constants.d.ts.map +1 -1
  181. package/dist/components/stack/stack_constants.d.ts.map +1 -1
  182. package/dist/components/tab/index.d.ts +1 -1
  183. package/dist/components/tab/tab.vue.d.ts +11 -131
  184. package/dist/components/tab/tab.vue.d.ts.map +1 -1
  185. package/dist/components/tab/tab_group.vue.d.ts +13 -139
  186. package/dist/components/tab/tab_group.vue.d.ts.map +1 -1
  187. package/dist/components/tab/tabs_constants.d.ts +5 -23
  188. package/dist/components/tab/tabs_constants.d.ts.map +1 -1
  189. package/dist/components/toast/layouts/toast_layout_alternate.vue.d.ts +45 -442
  190. package/dist/components/toast/layouts/toast_layout_alternate.vue.d.ts.map +1 -1
  191. package/dist/components/toast/layouts/toast_layout_alternate_icon.vue.d.ts +2 -11
  192. package/dist/components/toast/layouts/toast_layout_alternate_icon.vue.d.ts.map +1 -1
  193. package/dist/components/toast/layouts/toast_layout_default.vue.d.ts +48 -445
  194. package/dist/components/toast/layouts/toast_layout_default.vue.d.ts.map +1 -1
  195. package/dist/components/toast/toast.vue.d.ts +212 -1836
  196. package/dist/components/toast/toast.vue.d.ts.map +1 -1
  197. package/dist/components/toggle/toggle.vue.d.ts +21 -20
  198. package/dist/components/toggle/toggle.vue.d.ts.map +1 -1
  199. package/dist/components/toggle/toggle_constants.d.ts +4 -6
  200. package/dist/components/toggle/toggle_constants.d.ts.map +1 -1
  201. package/dist/components/tooltip/tooltip.vue.d.ts +8 -43
  202. package/dist/components/tooltip/tooltip.vue.d.ts.map +1 -1
  203. package/dist/datepicker-DprRX9AH.cjs +2 -0
  204. package/dist/datepicker-DprRX9AH.cjs.map +1 -0
  205. package/dist/{datepicker-B2nhxiCg.js → datepicker-LVDRC6Lf.js} +24 -20
  206. package/dist/datepicker-LVDRC6Lf.js.map +1 -0
  207. package/dist/dialtone-vue.cjs +1 -1
  208. package/dist/dialtone-vue.css +1 -1
  209. package/dist/dialtone-vue.js +151 -174
  210. package/dist/directives/tooltip_directive/tooltip.d.ts.map +1 -1
  211. package/dist/emoji_picker-Cl-T4BXK.cjs +2 -0
  212. package/dist/emoji_picker-Cl-T4BXK.cjs.map +1 -0
  213. package/dist/{emoji_picker-BjgAohQy.js → emoji_picker-tVHfpHDk.js} +8 -9
  214. package/dist/emoji_picker-tVHfpHDk.js.map +1 -0
  215. package/dist/index.d.ts +0 -9
  216. package/dist/lib/attachment-carousel/attachment-carousel.cjs +1 -1
  217. package/dist/lib/attachment-carousel/attachment-carousel.js +1 -1
  218. package/dist/lib/attachment-carousel/index.cjs +1 -1
  219. package/dist/lib/attachment-carousel/index.js +1 -1
  220. package/dist/lib/avatar/avatar-constants.cjs +1 -1
  221. package/dist/lib/avatar/avatar-constants.cjs.map +1 -1
  222. package/dist/lib/avatar/avatar-constants.js +24 -111
  223. package/dist/lib/avatar/avatar-constants.js.map +1 -1
  224. package/dist/lib/avatar/avatar.cjs +1 -1
  225. package/dist/lib/avatar/avatar.cjs.map +1 -1
  226. package/dist/lib/avatar/avatar.js +84 -145
  227. package/dist/lib/avatar/avatar.js.map +1 -1
  228. package/dist/lib/avatar/index.cjs +1 -1
  229. package/dist/lib/avatar/index.js +3 -3
  230. package/dist/lib/badge/badge-constants.cjs +1 -1
  231. package/dist/lib/badge/badge-constants.cjs.map +1 -1
  232. package/dist/lib/badge/badge-constants.js +1 -1
  233. package/dist/lib/badge/badge-constants.js.map +1 -1
  234. package/dist/lib/badge/badge.cjs +1 -1
  235. package/dist/lib/badge/badge.cjs.map +1 -1
  236. package/dist/lib/badge/badge.js +23 -51
  237. package/dist/lib/badge/badge.js.map +1 -1
  238. package/dist/lib/banner/banner.cjs +2 -2
  239. package/dist/lib/banner/banner.cjs.map +1 -1
  240. package/dist/lib/banner/banner.js +24 -71
  241. package/dist/lib/banner/banner.js.map +1 -1
  242. package/dist/lib/breadcrumbs/breadcrumb-item.cjs +1 -1
  243. package/dist/lib/breadcrumbs/breadcrumb-item.cjs.map +1 -1
  244. package/dist/lib/breadcrumbs/breadcrumb-item.js +38 -29
  245. package/dist/lib/breadcrumbs/breadcrumb-item.js.map +1 -1
  246. package/dist/lib/breadcrumbs/breadcrumbs.cjs +1 -1
  247. package/dist/lib/breadcrumbs/breadcrumbs.cjs.map +1 -1
  248. package/dist/lib/breadcrumbs/breadcrumbs.js +2 -10
  249. package/dist/lib/breadcrumbs/breadcrumbs.js.map +1 -1
  250. package/dist/lib/button/button-constants.cjs +1 -1
  251. package/dist/lib/button/button-constants.cjs.map +1 -1
  252. package/dist/lib/button/button-constants.js +3 -17
  253. package/dist/lib/button/button-constants.js.map +1 -1
  254. package/dist/lib/button/button.cjs +1 -1
  255. package/dist/lib/button/button.cjs.map +1 -1
  256. package/dist/lib/button/button.js +19 -162
  257. package/dist/lib/button/button.js.map +1 -1
  258. package/dist/lib/button-group/button-group.cjs.map +1 -1
  259. package/dist/lib/button-group/button-group.js.map +1 -1
  260. package/dist/lib/callbar-button/callbar-button.cjs +1 -1
  261. package/dist/lib/callbar-button/callbar-button.cjs.map +1 -1
  262. package/dist/lib/callbar-button/callbar-button.js +27 -26
  263. package/dist/lib/callbar-button/callbar-button.js.map +1 -1
  264. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs +1 -1
  265. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs.map +1 -1
  266. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js +36 -45
  267. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js.map +1 -1
  268. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.cjs +1 -1
  269. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.cjs.map +1 -1
  270. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.js +38 -47
  271. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.js.map +1 -1
  272. package/dist/lib/callbox/callbox.cjs +1 -1
  273. package/dist/lib/callbox/callbox.cjs.map +1 -1
  274. package/dist/lib/callbox/callbox.js +8 -8
  275. package/dist/lib/callbox/callbox.js.map +1 -1
  276. package/dist/lib/card/card.cjs +1 -1
  277. package/dist/lib/card/card.cjs.map +1 -1
  278. package/dist/lib/card/card.js +18 -10
  279. package/dist/lib/card/card.js.map +1 -1
  280. package/dist/lib/checkbox/checkbox-constants.cjs +1 -1
  281. package/dist/lib/checkbox/checkbox-constants.cjs.map +1 -1
  282. package/dist/lib/checkbox/checkbox-constants.js +2 -2
  283. package/dist/lib/checkbox/checkbox-constants.js.map +1 -1
  284. package/dist/lib/checkbox/checkbox.cjs +1 -1
  285. package/dist/lib/checkbox/checkbox.cjs.map +1 -1
  286. package/dist/lib/checkbox/checkbox.js +30 -80
  287. package/dist/lib/checkbox/checkbox.js.map +1 -1
  288. package/dist/lib/checkbox-group/checkbox-group.cjs +1 -1
  289. package/dist/lib/checkbox-group/checkbox-group.cjs.map +1 -1
  290. package/dist/lib/checkbox-group/checkbox-group.js +12 -6
  291. package/dist/lib/checkbox-group/checkbox-group.js.map +1 -1
  292. package/dist/lib/checkbox-group/checkboxes-decorator.cjs +1 -1
  293. package/dist/lib/checkbox-group/checkboxes-decorator.cjs.map +1 -1
  294. package/dist/lib/checkbox-group/checkboxes-decorator.js +1 -0
  295. package/dist/lib/checkbox-group/checkboxes-decorator.js.map +1 -1
  296. package/dist/lib/chip/chip-constants.cjs +1 -1
  297. package/dist/lib/chip/chip-constants.cjs.map +1 -1
  298. package/dist/lib/chip/chip-constants.js +0 -9
  299. package/dist/lib/chip/chip-constants.js.map +1 -1
  300. package/dist/lib/chip/chip.cjs +1 -1
  301. package/dist/lib/chip/chip.cjs.map +1 -1
  302. package/dist/lib/chip/chip.js +26 -43
  303. package/dist/lib/chip/chip.js.map +1 -1
  304. package/dist/lib/codeblock/codeblock.cjs +2 -1
  305. package/dist/lib/codeblock/codeblock.cjs.map +1 -1
  306. package/dist/lib/codeblock/codeblock.js +14 -25
  307. package/dist/lib/codeblock/codeblock.js.map +1 -1
  308. package/dist/lib/collapsible/collapsible.cjs +1 -1
  309. package/dist/lib/collapsible/collapsible.cjs.map +1 -1
  310. package/dist/lib/collapsible/collapsible.js +2 -2
  311. package/dist/lib/collapsible/collapsible.js.map +1 -1
  312. package/dist/lib/combobox/combobox.cjs +1 -1
  313. package/dist/lib/combobox/combobox.js +1 -1
  314. package/dist/lib/combobox/index.cjs +1 -1
  315. package/dist/lib/combobox/index.js +1 -1
  316. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.cjs +1 -1
  317. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.cjs.map +1 -1
  318. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.js +0 -6
  319. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.js.map +1 -1
  320. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs +1 -1
  321. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs.map +1 -1
  322. package/dist/lib/combobox-multi-select/combobox-multi-select.js +48 -69
  323. package/dist/lib/combobox-multi-select/combobox-multi-select.js.map +1 -1
  324. package/dist/lib/combobox-with-popover/combobox-with-popover.cjs +1 -1
  325. package/dist/lib/combobox-with-popover/combobox-with-popover.cjs.map +1 -1
  326. package/dist/lib/combobox-with-popover/combobox-with-popover.js +47 -64
  327. package/dist/lib/combobox-with-popover/combobox-with-popover.js.map +1 -1
  328. package/dist/lib/contact-centers-row/contact-centers-row.cjs +1 -1
  329. package/dist/lib/contact-centers-row/contact-centers-row.cjs.map +1 -1
  330. package/dist/lib/contact-centers-row/contact-centers-row.js +45 -51
  331. package/dist/lib/contact-centers-row/contact-centers-row.js.map +1 -1
  332. package/dist/lib/contact-info/contact-info.cjs +1 -1
  333. package/dist/lib/contact-info/contact-info.cjs.map +1 -1
  334. package/dist/lib/contact-info/contact-info.js +8 -8
  335. package/dist/lib/contact-info/contact-info.js.map +1 -1
  336. package/dist/lib/contact-row/contact-row.cjs +1 -1
  337. package/dist/lib/contact-row/contact-row.cjs.map +1 -1
  338. package/dist/lib/contact-row/contact-row.js +3 -3
  339. package/dist/lib/contact-row/contact-row.js.map +1 -1
  340. package/dist/lib/datepicker/datepicker.cjs +1 -1
  341. package/dist/lib/datepicker/datepicker.js +1 -1
  342. package/dist/lib/datepicker/index.cjs +1 -1
  343. package/dist/lib/datepicker/index.js +1 -1
  344. package/dist/lib/description-list/description-list.cjs +1 -1
  345. package/dist/lib/description-list/description-list.cjs.map +1 -1
  346. package/dist/lib/description-list/description-list.js +1 -1
  347. package/dist/lib/description-list/description-list.js.map +1 -1
  348. package/dist/lib/dropdown/dropdown-constants.cjs +1 -1
  349. package/dist/lib/dropdown/dropdown-constants.cjs.map +1 -1
  350. package/dist/lib/dropdown/dropdown-constants.js +2 -2
  351. package/dist/lib/dropdown/dropdown-constants.js.map +1 -1
  352. package/dist/lib/dropdown/dropdown-list.cjs +1 -1
  353. package/dist/lib/dropdown/dropdown-list.cjs.map +1 -1
  354. package/dist/lib/dropdown/dropdown-list.js +16 -28
  355. package/dist/lib/dropdown/dropdown-list.js.map +1 -1
  356. package/dist/lib/dropdown/dropdown.cjs +1 -1
  357. package/dist/lib/dropdown/dropdown.cjs.map +1 -1
  358. package/dist/lib/dropdown/dropdown.js +29 -43
  359. package/dist/lib/dropdown/dropdown.js.map +1 -1
  360. package/dist/lib/editor/EditorToolbarButton.cjs +1 -1
  361. package/dist/lib/editor/EditorToolbarButton.cjs.map +1 -1
  362. package/dist/lib/editor/EditorToolbarButton.js +1 -1
  363. package/dist/lib/editor/EditorToolbarButton.js.map +1 -1
  364. package/dist/lib/editor/EditorToolbarDropdownButton.cjs +1 -1
  365. package/dist/lib/editor/EditorToolbarDropdownButton.cjs.map +1 -1
  366. package/dist/lib/editor/EditorToolbarDropdownButton.js +1 -1
  367. package/dist/lib/editor/EditorToolbarDropdownButton.js.map +1 -1
  368. package/dist/lib/editor/EditorToolbarPopoverButton.cjs +1 -1
  369. package/dist/lib/editor/EditorToolbarPopoverButton.cjs.map +1 -1
  370. package/dist/lib/editor/EditorToolbarPopoverButton.js +1 -1
  371. package/dist/lib/editor/EditorToolbarPopoverButton.js.map +1 -1
  372. package/dist/lib/editor/editor.cjs +1 -1
  373. package/dist/lib/editor/editor.cjs.map +1 -1
  374. package/dist/lib/editor/editor.js +143 -142
  375. package/dist/lib/editor/editor.js.map +1 -1
  376. package/dist/lib/emoji-picker/emoji-picker.cjs +1 -1
  377. package/dist/lib/emoji-picker/emoji-picker.js +1 -1
  378. package/dist/lib/emoji-picker/index.cjs +1 -1
  379. package/dist/lib/emoji-picker/index.js +1 -1
  380. package/dist/lib/emoji-row/emoji-row.cjs +1 -1
  381. package/dist/lib/emoji-row/emoji-row.cjs.map +1 -1
  382. package/dist/lib/emoji-row/emoji-row.js +1 -1
  383. package/dist/lib/emoji-row/emoji-row.js.map +1 -1
  384. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.cjs.map +1 -1
  385. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.js.map +1 -1
  386. package/dist/lib/empty-state/empty-state-constants.cjs +1 -1
  387. package/dist/lib/empty-state/empty-state-constants.cjs.map +1 -1
  388. package/dist/lib/empty-state/empty-state-constants.js +9 -37
  389. package/dist/lib/empty-state/empty-state-constants.js.map +1 -1
  390. package/dist/lib/empty-state/empty-state.cjs +1 -1
  391. package/dist/lib/empty-state/empty-state.cjs.map +1 -1
  392. package/dist/lib/empty-state/empty-state.js +30 -77
  393. package/dist/lib/empty-state/empty-state.js.map +1 -1
  394. package/dist/lib/feed-item-pill/feed-item-pill.cjs +1 -1
  395. package/dist/lib/feed-item-pill/feed-item-pill.cjs.map +1 -1
  396. package/dist/lib/feed-item-pill/feed-item-pill.js +42 -40
  397. package/dist/lib/feed-item-pill/feed-item-pill.js.map +1 -1
  398. package/dist/lib/feed-item-row/feed-item-row.cjs +1 -1
  399. package/dist/lib/feed-item-row/feed-item-row.cjs.map +1 -1
  400. package/dist/lib/feed-item-row/feed-item-row.js +3 -3
  401. package/dist/lib/feed-item-row/feed-item-row.js.map +1 -1
  402. package/dist/lib/general-row/general-row.cjs +1 -1
  403. package/dist/lib/general-row/general-row.cjs.map +1 -1
  404. package/dist/lib/general-row/general-row.js +61 -105
  405. package/dist/lib/general-row/general-row.js.map +1 -1
  406. package/dist/lib/general-row/leftbar-general-row-icon.cjs +1 -1
  407. package/dist/lib/general-row/leftbar-general-row-icon.cjs.map +1 -1
  408. package/dist/lib/general-row/leftbar-general-row-icon.js +1 -1
  409. package/dist/lib/general-row/leftbar-general-row-icon.js.map +1 -1
  410. package/dist/lib/group-row/group-row.cjs +1 -1
  411. package/dist/lib/group-row/group-row.cjs.map +1 -1
  412. package/dist/lib/group-row/group-row.js +2 -2
  413. package/dist/lib/group-row/group-row.js.map +1 -1
  414. package/dist/lib/grouped-chip/grouped-chip.cjs +1 -1
  415. package/dist/lib/grouped-chip/grouped-chip.cjs.map +1 -1
  416. package/dist/lib/grouped-chip/grouped-chip.js +9 -9
  417. package/dist/lib/grouped-chip/grouped-chip.js.map +1 -1
  418. package/dist/lib/hovercard/hovercard.cjs +1 -1
  419. package/dist/lib/hovercard/hovercard.cjs.map +1 -1
  420. package/dist/lib/hovercard/hovercard.js +24 -38
  421. package/dist/lib/hovercard/hovercard.js.map +1 -1
  422. package/dist/lib/icon/icon.cjs +1 -1
  423. package/dist/lib/icon/icon.cjs.map +1 -1
  424. package/dist/lib/icon/icon.js +1 -1
  425. package/dist/lib/icon/icon.js.map +1 -1
  426. package/dist/lib/illustration/illustration.cjs +1 -1
  427. package/dist/lib/illustration/illustration.cjs.map +1 -1
  428. package/dist/lib/illustration/illustration.js +1 -1
  429. package/dist/lib/illustration/illustration.js.map +1 -1
  430. package/dist/lib/image-viewer/image-viewer.cjs +1 -1
  431. package/dist/lib/image-viewer/image-viewer.cjs.map +1 -1
  432. package/dist/lib/image-viewer/image-viewer.js +32 -33
  433. package/dist/lib/image-viewer/image-viewer.js.map +1 -1
  434. package/dist/lib/input/input-constants.cjs +1 -1
  435. package/dist/lib/input/input-constants.cjs.map +1 -1
  436. package/dist/lib/input/input-constants.js +11 -25
  437. package/dist/lib/input/input-constants.js.map +1 -1
  438. package/dist/lib/input/input.cjs +1 -1
  439. package/dist/lib/input/input.cjs.map +1 -1
  440. package/dist/lib/input/input.js +85 -190
  441. package/dist/lib/input/input.js.map +1 -1
  442. package/dist/lib/input-group/input-group.cjs +1 -1
  443. package/dist/lib/input-group/input-group.cjs.map +1 -1
  444. package/dist/lib/input-group/input-group.js +15 -25
  445. package/dist/lib/input-group/input-group.js.map +1 -1
  446. package/dist/lib/item-layout/item-layout.cjs +3 -3
  447. package/dist/lib/item-layout/item-layout.cjs.map +1 -1
  448. package/dist/lib/item-layout/item-layout.js +19 -82
  449. package/dist/lib/item-layout/item-layout.js.map +1 -1
  450. package/dist/lib/ivr-node/ivr-node.cjs +1 -1
  451. package/dist/lib/ivr-node/ivr-node.cjs.map +1 -1
  452. package/dist/lib/ivr-node/ivr-node.js +1 -1
  453. package/dist/lib/ivr-node/ivr-node.js.map +1 -1
  454. package/dist/lib/keyboard-shortcut/keyboard-shortcut.cjs +1 -1
  455. package/dist/lib/keyboard-shortcut/keyboard-shortcut.cjs.map +1 -1
  456. package/dist/lib/keyboard-shortcut/keyboard-shortcut.js +38 -48
  457. package/dist/lib/keyboard-shortcut/keyboard-shortcut.js.map +1 -1
  458. package/dist/lib/link/index.cjs +1 -1
  459. package/dist/lib/link/index.js +2 -2
  460. package/dist/lib/link/link-constants.cjs +1 -1
  461. package/dist/lib/link/link-constants.cjs.map +1 -1
  462. package/dist/lib/link/link-constants.js +14 -17
  463. package/dist/lib/link/link-constants.js.map +1 -1
  464. package/dist/lib/link/link.cjs +1 -1
  465. package/dist/lib/link/link.cjs.map +1 -1
  466. package/dist/lib/link/link.js +2 -17
  467. package/dist/lib/link/link.js.map +1 -1
  468. package/dist/lib/list-item/list-item.cjs +1 -1
  469. package/dist/lib/list-item/list-item.cjs.map +1 -1
  470. package/dist/lib/list-item/list-item.js +5 -9
  471. package/dist/lib/list-item/list-item.js.map +1 -1
  472. package/dist/lib/list-item-group/list-item-group.cjs +1 -1
  473. package/dist/lib/list-item-group/list-item-group.cjs.map +1 -1
  474. package/dist/lib/list-item-group/list-item-group.js +1 -1
  475. package/dist/lib/list-item-group/list-item-group.js.map +1 -1
  476. package/dist/lib/message-input/index.cjs +1 -1
  477. package/dist/lib/message-input/index.js +1 -1
  478. package/dist/lib/message-input/message-input-button.cjs +1 -1
  479. package/dist/lib/message-input/message-input-button.cjs.map +1 -1
  480. package/dist/lib/message-input/message-input-button.js +1 -1
  481. package/dist/lib/message-input/message-input-button.js.map +1 -1
  482. package/dist/lib/message-input/message-input-link.cjs +1 -1
  483. package/dist/lib/message-input/message-input-link.cjs.map +1 -1
  484. package/dist/lib/message-input/message-input-link.js +9 -9
  485. package/dist/lib/message-input/message-input-link.js.map +1 -1
  486. package/dist/lib/message-input/message-input-topbar.cjs +1 -1
  487. package/dist/lib/message-input/message-input-topbar.cjs.map +1 -1
  488. package/dist/lib/message-input/message-input-topbar.js +2 -2
  489. package/dist/lib/message-input/message-input-topbar.js.map +1 -1
  490. package/dist/lib/message-input/message-input.cjs +1 -1
  491. package/dist/lib/message-input/message-input.js +1 -1
  492. package/dist/lib/modal/modal-constants.cjs +1 -1
  493. package/dist/lib/modal/modal-constants.cjs.map +1 -1
  494. package/dist/lib/modal/modal-constants.js +3 -3
  495. package/dist/lib/modal/modal-constants.js.map +1 -1
  496. package/dist/lib/modal/modal.cjs +1 -1
  497. package/dist/lib/modal/modal.cjs.map +1 -1
  498. package/dist/lib/modal/modal.js +164 -181
  499. package/dist/lib/modal/modal.js.map +1 -1
  500. package/dist/lib/motion-text/motion-text-constants.cjs +1 -1
  501. package/dist/lib/motion-text/motion-text-constants.cjs.map +1 -1
  502. package/dist/lib/motion-text/motion-text-constants.js +6 -18
  503. package/dist/lib/motion-text/motion-text-constants.js.map +1 -1
  504. package/dist/lib/motion-text/motion-text.cjs +1 -1
  505. package/dist/lib/motion-text/motion-text.cjs.map +1 -1
  506. package/dist/lib/motion-text/motion-text.js +7 -5
  507. package/dist/lib/motion-text/motion-text.js.map +1 -1
  508. package/dist/lib/notice/notice-action.cjs +1 -1
  509. package/dist/lib/notice/notice-action.cjs.map +1 -1
  510. package/dist/lib/notice/notice-action.js +26 -34
  511. package/dist/lib/notice/notice-action.js.map +1 -1
  512. package/dist/lib/notice/notice-constants.cjs +1 -1
  513. package/dist/lib/notice/notice-constants.cjs.map +1 -1
  514. package/dist/lib/notice/notice-constants.js +2 -2
  515. package/dist/lib/notice/notice-constants.js.map +1 -1
  516. package/dist/lib/notice/notice-content.cjs +1 -1
  517. package/dist/lib/notice/notice-content.cjs.map +1 -1
  518. package/dist/lib/notice/notice-content.js +18 -51
  519. package/dist/lib/notice/notice-content.js.map +1 -1
  520. package/dist/lib/notice/notice-icon.cjs +1 -1
  521. package/dist/lib/notice/notice-icon.cjs.map +1 -1
  522. package/dist/lib/notice/notice-icon.js +28 -38
  523. package/dist/lib/notice/notice-icon.js.map +1 -1
  524. package/dist/lib/notice/notice.cjs +1 -1
  525. package/dist/lib/notice/notice.cjs.map +1 -1
  526. package/dist/lib/notice/notice.js +23 -70
  527. package/dist/lib/notice/notice.js.map +1 -1
  528. package/dist/lib/pagination/pagination.cjs +1 -1
  529. package/dist/lib/pagination/pagination.cjs.map +1 -1
  530. package/dist/lib/pagination/pagination.js +12 -13
  531. package/dist/lib/pagination/pagination.js.map +1 -1
  532. package/dist/lib/popover/popover-constants.cjs +1 -1
  533. package/dist/lib/popover/popover-constants.cjs.map +1 -1
  534. package/dist/lib/popover/popover-constants.js +6 -6
  535. package/dist/lib/popover/popover-constants.js.map +1 -1
  536. package/dist/lib/popover/popover-header-footer.cjs +1 -1
  537. package/dist/lib/popover/popover-header-footer.cjs.map +1 -1
  538. package/dist/lib/popover/popover-header-footer.js +3 -11
  539. package/dist/lib/popover/popover-header-footer.js.map +1 -1
  540. package/dist/lib/popover/popover.cjs +1 -1
  541. package/dist/lib/popover/popover.cjs.map +1 -1
  542. package/dist/lib/popover/popover.js +59 -88
  543. package/dist/lib/popover/popover.js.map +1 -1
  544. package/dist/lib/radio/radio-constants.cjs +1 -1
  545. package/dist/lib/radio/radio-constants.cjs.map +1 -1
  546. package/dist/lib/radio/radio-constants.js +2 -2
  547. package/dist/lib/radio/radio-constants.js.map +1 -1
  548. package/dist/lib/radio/radio.cjs +1 -1
  549. package/dist/lib/radio/radio.cjs.map +1 -1
  550. package/dist/lib/radio/radio.js +33 -95
  551. package/dist/lib/radio/radio.js.map +1 -1
  552. package/dist/lib/radio-group/radio-group.cjs +1 -1
  553. package/dist/lib/radio-group/radio-group.cjs.map +1 -1
  554. package/dist/lib/radio-group/radio-group.js +2 -2
  555. package/dist/lib/radio-group/radio-group.js.map +1 -1
  556. package/dist/lib/resizable/index.cjs +1 -1
  557. package/dist/lib/resizable/index.js +3 -3
  558. package/dist/lib/resizable/resizable-handle.cjs +1 -1
  559. package/dist/lib/resizable/resizable-handle.js +1 -1
  560. package/dist/lib/resizable/resizable-panel.cjs +1 -1
  561. package/dist/lib/resizable/resizable-panel.cjs.map +1 -1
  562. package/dist/lib/resizable/resizable-panel.js +3 -11
  563. package/dist/lib/resizable/resizable-panel.js.map +1 -1
  564. package/dist/lib/resizable/resizable.cjs +1 -1
  565. package/dist/lib/resizable/resizable.js +1 -1
  566. package/dist/lib/rich-text-editor/index.cjs +1 -1
  567. package/dist/lib/rich-text-editor/index.js +1 -1
  568. package/dist/lib/rich-text-editor/markdownRenderer.cjs +1 -1
  569. package/dist/lib/rich-text-editor/markdownRenderer.js +1 -1
  570. package/dist/lib/rich-text-editor/rich-text-editor.cjs +1 -1
  571. package/dist/lib/rich-text-editor/rich-text-editor.js +1 -1
  572. package/dist/lib/root-layout/root-layout-constants.cjs +1 -1
  573. package/dist/lib/root-layout/root-layout-constants.cjs.map +1 -1
  574. package/dist/lib/root-layout/root-layout-constants.js +0 -2
  575. package/dist/lib/root-layout/root-layout-constants.js.map +1 -1
  576. package/dist/lib/root-layout/root-layout.cjs +1 -1
  577. package/dist/lib/root-layout/root-layout.cjs.map +1 -1
  578. package/dist/lib/root-layout/root-layout.js +2 -2
  579. package/dist/lib/root-layout/root-layout.js.map +1 -1
  580. package/dist/lib/scroller/index.cjs +1 -1
  581. package/dist/lib/scroller/index.js +1 -1
  582. package/dist/lib/scroller/scroller.cjs +1 -1
  583. package/dist/lib/scroller/scroller.js +1 -1
  584. package/dist/lib/select-menu/select-menu-constants.cjs +1 -1
  585. package/dist/lib/select-menu/select-menu-constants.cjs.map +1 -1
  586. package/dist/lib/select-menu/select-menu-constants.js +2 -7
  587. package/dist/lib/select-menu/select-menu-constants.js.map +1 -1
  588. package/dist/lib/select-menu/select-menu.cjs +1 -1
  589. package/dist/lib/select-menu/select-menu.cjs.map +1 -1
  590. package/dist/lib/select-menu/select-menu.js +64 -119
  591. package/dist/lib/select-menu/select-menu.js.map +1 -1
  592. package/dist/lib/settings-menu-button/settings-menu-button.cjs +1 -1
  593. package/dist/lib/settings-menu-button/settings-menu-button.cjs.map +1 -1
  594. package/dist/lib/settings-menu-button/settings-menu-button.js +5 -5
  595. package/dist/lib/settings-menu-button/settings-menu-button.js.map +1 -1
  596. package/dist/lib/skeleton/skeleton-constants.cjs +1 -1
  597. package/dist/lib/skeleton/skeleton-constants.cjs.map +1 -1
  598. package/dist/lib/skeleton/skeleton-constants.js +4 -12
  599. package/dist/lib/skeleton/skeleton-constants.js.map +1 -1
  600. package/dist/lib/skeleton/skeleton-list-item.cjs +1 -1
  601. package/dist/lib/skeleton/skeleton-list-item.cjs.map +1 -1
  602. package/dist/lib/skeleton/skeleton-list-item.js +2 -2
  603. package/dist/lib/skeleton/skeleton-list-item.js.map +1 -1
  604. package/dist/lib/skeleton/skeleton-shape.cjs +1 -1
  605. package/dist/lib/skeleton/skeleton-shape.cjs.map +1 -1
  606. package/dist/lib/skeleton/skeleton-shape.js +3 -3
  607. package/dist/lib/skeleton/skeleton-shape.js.map +1 -1
  608. package/dist/lib/split-button/split-button-alpha.cjs +2 -0
  609. package/dist/lib/split-button/split-button-alpha.cjs.map +1 -0
  610. package/dist/lib/split-button/split-button-alpha.js +107 -0
  611. package/dist/lib/split-button/split-button-alpha.js.map +1 -0
  612. package/dist/lib/split-button/split-button-constants.cjs +1 -1
  613. package/dist/lib/split-button/split-button-constants.cjs.map +1 -1
  614. package/dist/lib/split-button/split-button-constants.js +0 -5
  615. package/dist/lib/split-button/split-button-constants.js.map +1 -1
  616. package/dist/lib/split-button/split-button-omega.cjs +2 -0
  617. package/dist/lib/split-button/split-button-omega.cjs.map +1 -0
  618. package/dist/lib/split-button/{split-button-end.js → split-button-omega.js} +9 -9
  619. package/dist/lib/split-button/split-button-omega.js.map +1 -0
  620. package/dist/lib/split-button/split-button.cjs +1 -1
  621. package/dist/lib/split-button/split-button.cjs.map +1 -1
  622. package/dist/lib/split-button/split-button.js +71 -246
  623. package/dist/lib/split-button/split-button.js.map +1 -1
  624. package/dist/lib/stack/stack-constants.cjs +1 -1
  625. package/dist/lib/stack/stack-constants.cjs.map +1 -1
  626. package/dist/lib/stack/stack-constants.js +2 -10
  627. package/dist/lib/stack/stack-constants.js.map +1 -1
  628. package/dist/lib/stack/stack.cjs.map +1 -1
  629. package/dist/lib/stack/stack.js.map +1 -1
  630. package/dist/lib/tab/index.cjs +1 -1
  631. package/dist/lib/tab/index.js +5 -5
  632. package/dist/lib/tab/tab-group.cjs +1 -1
  633. package/dist/lib/tab/tab-group.cjs.map +1 -1
  634. package/dist/lib/tab/tab-group.js +52 -186
  635. package/dist/lib/tab/tab-group.js.map +1 -1
  636. package/dist/lib/tab/tab.cjs +1 -1
  637. package/dist/lib/tab/tab.cjs.map +1 -1
  638. package/dist/lib/tab/tab.js +23 -108
  639. package/dist/lib/tab/tab.js.map +1 -1
  640. package/dist/lib/tab/tabs-constants.cjs +1 -1
  641. package/dist/lib/tab/tabs-constants.cjs.map +1 -1
  642. package/dist/lib/tab/tabs-constants.js +2 -33
  643. package/dist/lib/tab/tabs-constants.js.map +1 -1
  644. package/dist/lib/toast/index.cjs +1 -1
  645. package/dist/lib/toast/index.js +1 -1
  646. package/dist/lib/toast/toast.cjs +1 -1
  647. package/dist/lib/toast/toast.js +1 -1
  648. package/dist/lib/toggle/toggle-constants.cjs +1 -1
  649. package/dist/lib/toggle/toggle-constants.cjs.map +1 -1
  650. package/dist/lib/toggle/toggle-constants.js +0 -2
  651. package/dist/lib/toggle/toggle-constants.js.map +1 -1
  652. package/dist/lib/toggle/toggle.cjs +1 -1
  653. package/dist/lib/toggle/toggle.cjs.map +1 -1
  654. package/dist/lib/toggle/toggle.js +31 -26
  655. package/dist/lib/toggle/toggle.js.map +1 -1
  656. package/dist/lib/tooltip/tooltip.cjs +4 -1
  657. package/dist/lib/tooltip/tooltip.cjs.map +1 -1
  658. package/dist/lib/tooltip/tooltip.js +32 -46
  659. package/dist/lib/tooltip/tooltip.js.map +1 -1
  660. package/dist/lib/tooltip-directive/tooltip.cjs +1 -1
  661. package/dist/lib/tooltip-directive/tooltip.cjs.map +1 -1
  662. package/dist/lib/tooltip-directive/tooltip.js +35 -36
  663. package/dist/lib/tooltip-directive/tooltip.js.map +1 -1
  664. package/dist/lib/top-banner-info/top-banner-info.cjs +1 -1
  665. package/dist/lib/top-banner-info/top-banner-info.cjs.map +1 -1
  666. package/dist/lib/top-banner-info/top-banner-info.js +4 -4
  667. package/dist/lib/top-banner-info/top-banner-info.js.map +1 -1
  668. package/dist/lib/unread-pill/unread-pill.cjs +1 -1
  669. package/dist/lib/unread-pill/unread-pill.cjs.map +1 -1
  670. package/dist/lib/unread-pill/unread-pill.js +1 -1
  671. package/dist/lib/unread-pill/unread-pill.js.map +1 -1
  672. package/dist/lib/validation-messages/validation-messages.cjs +1 -1
  673. package/dist/lib/validation-messages/validation-messages.cjs.map +1 -1
  674. package/dist/lib/validation-messages/validation-messages.js +2 -2
  675. package/dist/lib/validation-messages/validation-messages.js.map +1 -1
  676. package/dist/localization/en-US.cjs +0 -5
  677. package/dist/localization/en-US.cjs.map +1 -1
  678. package/dist/localization/en-US.js +1 -1
  679. package/dist/localization/en-US.js.map +1 -1
  680. package/dist/{markdownRenderer-Dsq-CiH9.cjs → markdownRenderer-DCgGQseq.cjs} +1 -1
  681. package/dist/{markdownRenderer-Dsq-CiH9.cjs.map → markdownRenderer-DCgGQseq.cjs.map} +1 -1
  682. package/dist/{markdownRenderer-k7_rQkox.js → markdownRenderer-D_P94RyM.js} +1 -1
  683. package/dist/{markdownRenderer-k7_rQkox.js.map → markdownRenderer-D_P94RyM.js.map} +1 -1
  684. package/dist/message_input-BiCHkV9g.cjs +2 -0
  685. package/dist/message_input-BiCHkV9g.cjs.map +1 -0
  686. package/dist/{message_input-rXsWKem_.js → message_input-DO6pV_GG.js} +132 -131
  687. package/dist/message_input-DO6pV_GG.js.map +1 -0
  688. package/dist/recipes/buttons/callbar_button/callbar_button.vue.d.ts +17 -142
  689. package/dist/recipes/buttons/callbar_button/callbar_button.vue.d.ts.map +1 -1
  690. package/dist/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts +53 -532
  691. package/dist/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts.map +1 -1
  692. package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +49 -508
  693. package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts.map +1 -1
  694. package/dist/recipes/cards/ivr_node/ivr_node.vue.d.ts +46 -392
  695. package/dist/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
  696. package/dist/recipes/chips/grouped_chip/grouped_chip.vue.d.ts +16 -125
  697. package/dist/recipes/chips/grouped_chip/grouped_chip.vue.d.ts.map +1 -1
  698. package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts +31 -420
  699. package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
  700. package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts +24 -322
  701. package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts.map +1 -1
  702. package/dist/recipes/conversation_view/editor/EditorToolbarButton.vue.d.ts +7 -98
  703. package/dist/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts +35 -390
  704. package/dist/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts.map +1 -1
  705. package/dist/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts +30 -365
  706. package/dist/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts.map +1 -1
  707. package/dist/recipes/conversation_view/editor/editor.vue.d.ts +284 -1824
  708. package/dist/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
  709. package/dist/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts +55 -199
  710. package/dist/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts.map +1 -1
  711. package/dist/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts +48 -161
  712. package/dist/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts.map +1 -1
  713. package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +56 -165
  714. package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
  715. package/dist/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts +34 -156
  716. package/dist/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts.map +1 -1
  717. package/dist/recipes/conversation_view/message_input/message_input.vue.d.ts +188 -2104
  718. package/dist/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  719. package/dist/recipes/conversation_view/message_input/message_input_button.vue.d.ts +15 -283
  720. package/dist/recipes/conversation_view/message_input/message_input_button.vue.d.ts.map +1 -1
  721. package/dist/recipes/conversation_view/message_input/message_input_link.vue.d.ts +85 -881
  722. package/dist/recipes/conversation_view/message_input/message_input_link.vue.d.ts.map +1 -1
  723. package/dist/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts +15 -283
  724. package/dist/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts.map +1 -1
  725. package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts +7 -98
  726. package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts.map +1 -1
  727. package/dist/recipes/item_layout/contact_info/contact_info.vue.d.ts +54 -143
  728. package/dist/recipes/item_layout/contact_info/contact_info.vue.d.ts.map +1 -1
  729. package/dist/recipes/leftbar/callbox/callbox.vue.d.ts +34 -110
  730. package/dist/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
  731. package/dist/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts +33 -150
  732. package/dist/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts.map +1 -1
  733. package/dist/recipes/leftbar/contact_row/contact_row.vue.d.ts +85 -673
  734. package/dist/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
  735. package/dist/recipes/leftbar/general_row/general_row.vue.d.ts +39 -560
  736. package/dist/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  737. package/dist/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts.map +1 -1
  738. package/dist/recipes/leftbar/group_row/group_row.vue.d.ts +38 -559
  739. package/dist/recipes/leftbar/group_row/group_row.vue.d.ts.map +1 -1
  740. package/dist/recipes/leftbar/unread_pill/unread_pill.vue.d.ts.map +1 -1
  741. package/dist/recipes/notices/top_banner_info/top_banner_info.vue.d.ts.map +1 -1
  742. package/dist/{resizable-CcxS3dH7.js → resizable-D4-peBOl.js} +3 -3
  743. package/dist/{resizable-CcxS3dH7.js.map → resizable-D4-peBOl.js.map} +1 -1
  744. package/dist/{resizable-DdPrpKvD.cjs → resizable-aOVGO_Os.cjs} +2 -2
  745. package/dist/{resizable-DdPrpKvD.cjs.map → resizable-aOVGO_Os.cjs.map} +1 -1
  746. package/dist/{resizable_handle-vqI5i9u6.js → resizable_handle-BlKBiWnx.js} +3 -3
  747. package/dist/{resizable_handle-vqI5i9u6.js.map → resizable_handle-BlKBiWnx.js.map} +1 -1
  748. package/dist/{resizable_handle-g45rLu_2.cjs → resizable_handle-RIKS8frB.cjs} +2 -2
  749. package/dist/{resizable_handle-g45rLu_2.cjs.map → resizable_handle-RIKS8frB.cjs.map} +1 -1
  750. package/dist/{resizable_utils-CQscchW4.js → resizable_utils-BComtrMV.js} +47 -29
  751. package/dist/resizable_utils-BComtrMV.js.map +1 -0
  752. package/dist/resizable_utils-DhuzXRdP.cjs +2 -0
  753. package/dist/resizable_utils-DhuzXRdP.cjs.map +1 -0
  754. package/dist/{rich_text_editor-DRwU4mUa.js → rich_text_editor-DYu2R0kw.js} +602 -640
  755. package/dist/{rich_text_editor-DRwU4mUa.js.map → rich_text_editor-DYu2R0kw.js.map} +1 -1
  756. package/dist/rich_text_editor-FduHYl-G.cjs +12 -0
  757. package/dist/{rich_text_editor-TolFmwK_.cjs.map → rich_text_editor-FduHYl-G.cjs.map} +1 -1
  758. package/dist/{scroller-DPqcc_Wl.js → scroller-BGVDh3sq.js} +6 -6
  759. package/dist/scroller-BGVDh3sq.js.map +1 -0
  760. package/dist/scroller-CjAsgjl9.cjs +2 -0
  761. package/dist/scroller-CjAsgjl9.cjs.map +1 -0
  762. package/dist/shared/sr_only_close_button.cjs +1 -1
  763. package/dist/shared/sr_only_close_button.cjs.map +1 -1
  764. package/dist/shared/sr_only_close_button.js +1 -1
  765. package/dist/shared/sr_only_close_button.js.map +1 -1
  766. package/dist/{toast-DqbTiHVx.js → toast-DvPN-bCi.js} +89 -222
  767. package/dist/toast-DvPN-bCi.js.map +1 -0
  768. package/dist/toast-d8_zmgkL.cjs +2 -0
  769. package/dist/toast-d8_zmgkL.cjs.map +1 -0
  770. package/dist/{useResizableCalculations-CoVtK_0B.cjs → useResizableCalculations-BDITle3Q.cjs} +2 -2
  771. package/dist/{useResizableCalculations-CoVtK_0B.cjs.map → useResizableCalculations-BDITle3Q.cjs.map} +1 -1
  772. package/dist/{useResizableCalculations-YI08W37g.js → useResizableCalculations-DAajatT4.js} +2 -2
  773. package/dist/{useResizableCalculations-YI08W37g.js.map → useResizableCalculations-DAajatT4.js.map} +1 -1
  774. package/package.json +5 -7
  775. package/dist/attachment_carousel-1qxTI-NN.js.map +0 -1
  776. package/dist/attachment_carousel-wnZS3vEt.cjs +0 -2
  777. package/dist/attachment_carousel-wnZS3vEt.cjs.map +0 -1
  778. package/dist/combobox-BQBKrDTW.js.map +0 -1
  779. package/dist/combobox-Da7wBh3G.cjs +0 -3
  780. package/dist/combobox-Da7wBh3G.cjs.map +0 -1
  781. package/dist/common/composables/useIndicatorAnimation.cjs +0 -2
  782. package/dist/common/composables/useIndicatorAnimation.cjs.map +0 -1
  783. package/dist/common/composables/useIndicatorAnimation.d.ts +0 -18
  784. package/dist/common/composables/useIndicatorAnimation.d.ts.map +0 -1
  785. package/dist/common/composables/useIndicatorAnimation.js +0 -78
  786. package/dist/common/composables/useIndicatorAnimation.js.map +0 -1
  787. package/dist/common/constants/sizes.cjs +0 -2
  788. package/dist/common/constants/sizes.cjs.map +0 -1
  789. package/dist/common/constants/sizes.d.ts +0 -22
  790. package/dist/common/constants/sizes.d.ts.map +0 -1
  791. package/dist/common/constants/sizes.js +0 -19
  792. package/dist/common/constants/sizes.js.map +0 -1
  793. package/dist/common/mixins/mode.cjs +0 -2
  794. package/dist/common/mixins/mode.cjs.map +0 -1
  795. package/dist/common/mixins/mode.d.ts +0 -25
  796. package/dist/common/mixins/mode.d.ts.map +0 -1
  797. package/dist/common/mixins/mode.js +0 -62
  798. package/dist/common/mixins/mode.js.map +0 -1
  799. package/dist/common/mode_constants.d.ts +0 -37
  800. package/dist/common/mode_constants.d.ts.map +0 -1
  801. package/dist/components/box/box.vue.d.ts +0 -75
  802. package/dist/components/box/box.vue.d.ts.map +0 -1
  803. package/dist/components/box/box_constants.d.ts +0 -11
  804. package/dist/components/box/box_constants.d.ts.map +0 -1
  805. package/dist/components/box/index.d.ts +0 -3
  806. package/dist/components/box/index.d.ts.map +0 -1
  807. package/dist/components/box/validators.d.ts +0 -11
  808. package/dist/components/box/validators.d.ts.map +0 -1
  809. package/dist/components/codeblock/codeblock_constants.d.ts +0 -9
  810. package/dist/components/codeblock/codeblock_constants.d.ts.map +0 -1
  811. package/dist/components/filter_pill/filter_pill.vue.d.ts +0 -4739
  812. package/dist/components/filter_pill/filter_pill.vue.d.ts.map +0 -1
  813. package/dist/components/filter_pill/index.d.ts +0 -2
  814. package/dist/components/filter_pill/index.d.ts.map +0 -1
  815. package/dist/components/mode_island/index.d.ts +0 -3
  816. package/dist/components/mode_island/index.d.ts.map +0 -1
  817. package/dist/components/mode_island/mode_island.vue.d.ts +0 -3
  818. package/dist/components/mode_island/mode_island.vue.d.ts.map +0 -1
  819. package/dist/components/mode_island/mode_island_constants.d.ts +0 -10
  820. package/dist/components/mode_island/mode_island_constants.d.ts.map +0 -1
  821. package/dist/components/mode_island/utils.d.ts +0 -12
  822. package/dist/components/mode_island/utils.d.ts.map +0 -1
  823. package/dist/components/mode_island/validators.d.ts +0 -6
  824. package/dist/components/mode_island/validators.d.ts.map +0 -1
  825. package/dist/components/prose/index.d.ts +0 -3
  826. package/dist/components/prose/index.d.ts.map +0 -1
  827. package/dist/components/prose/prose.vue.d.ts +0 -26
  828. package/dist/components/prose/prose.vue.d.ts.map +0 -1
  829. package/dist/components/prose/prose_constants.d.ts +0 -34
  830. package/dist/components/prose/prose_constants.d.ts.map +0 -1
  831. package/dist/components/segmented_control/index.d.ts +0 -4
  832. package/dist/components/segmented_control/index.d.ts.map +0 -1
  833. package/dist/components/segmented_control/segmented_control.vue.d.ts +0 -226
  834. package/dist/components/segmented_control/segmented_control.vue.d.ts.map +0 -1
  835. package/dist/components/segmented_control/segmented_control_constants.d.ts +0 -41
  836. package/dist/components/segmented_control/segmented_control_constants.d.ts.map +0 -1
  837. package/dist/components/segmented_control/segmented_control_item.vue.d.ts +0 -35
  838. package/dist/components/segmented_control/segmented_control_item.vue.d.ts.map +0 -1
  839. package/dist/components/split_button/split_button-end.vue.d.ts.map +0 -1
  840. package/dist/components/split_button/split_button-start.vue.d.ts.map +0 -1
  841. package/dist/components/text/index.d.ts +0 -3
  842. package/dist/components/text/index.d.ts.map +0 -1
  843. package/dist/components/text/text.vue.d.ts +0 -145
  844. package/dist/components/text/text.vue.d.ts.map +0 -1
  845. package/dist/components/text/text_constants.d.ts +0 -95
  846. package/dist/components/text/text_constants.d.ts.map +0 -1
  847. package/dist/datepicker-B2nhxiCg.js.map +0 -1
  848. package/dist/datepicker-CZrNL0Yn.cjs +0 -2
  849. package/dist/datepicker-CZrNL0Yn.cjs.map +0 -1
  850. package/dist/directives/focusgroup_directive/focusgroup.d.ts +0 -6
  851. package/dist/directives/focusgroup_directive/focusgroup.d.ts.map +0 -1
  852. package/dist/directives/focusgroup_directive/focusgroup_constants.d.ts +0 -74
  853. package/dist/directives/focusgroup_directive/focusgroup_constants.d.ts.map +0 -1
  854. package/dist/directives/focusgroup_directive/focusgroup_utils.d.ts +0 -15
  855. package/dist/directives/focusgroup_directive/focusgroup_utils.d.ts.map +0 -1
  856. package/dist/directives/focusgroup_directive/index.d.ts +0 -2
  857. package/dist/directives/focusgroup_directive/index.d.ts.map +0 -1
  858. package/dist/directives/focustrap_directive/focustrap.d.ts +0 -6
  859. package/dist/directives/focustrap_directive/focustrap.d.ts.map +0 -1
  860. package/dist/directives/focustrap_directive/focustrap_constants.d.ts +0 -7
  861. package/dist/directives/focustrap_directive/focustrap_constants.d.ts.map +0 -1
  862. package/dist/directives/focustrap_directive/focustrap_utils.d.ts +0 -5
  863. package/dist/directives/focustrap_directive/focustrap_utils.d.ts.map +0 -1
  864. package/dist/directives/focustrap_directive/index.d.ts +0 -2
  865. package/dist/directives/focustrap_directive/index.d.ts.map +0 -1
  866. package/dist/directives/mode_directive/index.d.ts +0 -2
  867. package/dist/directives/mode_directive/index.d.ts.map +0 -1
  868. package/dist/directives/mode_directive/mode.d.ts +0 -6
  869. package/dist/directives/mode_directive/mode.d.ts.map +0 -1
  870. package/dist/emoji_picker-BQW4qRFg.cjs +0 -2
  871. package/dist/emoji_picker-BQW4qRFg.cjs.map +0 -1
  872. package/dist/emoji_picker-BjgAohQy.js.map +0 -1
  873. package/dist/lib/box/box-constants.cjs +0 -2
  874. package/dist/lib/box/box-constants.cjs.map +0 -1
  875. package/dist/lib/box/box-constants.js +0 -107
  876. package/dist/lib/box/box-constants.js.map +0 -1
  877. package/dist/lib/box/box.cjs +0 -2
  878. package/dist/lib/box/box.cjs.map +0 -1
  879. package/dist/lib/box/box.js +0 -237
  880. package/dist/lib/box/box.js.map +0 -1
  881. package/dist/lib/box/index.cjs +0 -1
  882. package/dist/lib/box/index.js +0 -3
  883. package/dist/lib/box/validators.cjs +0 -2
  884. package/dist/lib/box/validators.cjs.map +0 -1
  885. package/dist/lib/box/validators.js +0 -17
  886. package/dist/lib/box/validators.js.map +0 -1
  887. package/dist/lib/codeblock/codeblock-constants.cjs +0 -2
  888. package/dist/lib/codeblock/codeblock-constants.cjs.map +0 -1
  889. package/dist/lib/codeblock/codeblock-constants.js +0 -20
  890. package/dist/lib/codeblock/codeblock-constants.js.map +0 -1
  891. package/dist/lib/filter-pill/filter-pill.cjs +0 -2
  892. package/dist/lib/filter-pill/filter-pill.cjs.map +0 -1
  893. package/dist/lib/filter-pill/filter-pill.js +0 -441
  894. package/dist/lib/filter-pill/filter-pill.js.map +0 -1
  895. package/dist/lib/filter-pill/index.cjs +0 -1
  896. package/dist/lib/filter-pill/index.js +0 -2
  897. package/dist/lib/focusgroup-directive/focusgroup-constants.cjs +0 -2
  898. package/dist/lib/focusgroup-directive/focusgroup-constants.cjs.map +0 -1
  899. package/dist/lib/focusgroup-directive/focusgroup-constants.js +0 -77
  900. package/dist/lib/focusgroup-directive/focusgroup-constants.js.map +0 -1
  901. package/dist/lib/focusgroup-directive/focusgroup-utils.cjs +0 -2
  902. package/dist/lib/focusgroup-directive/focusgroup-utils.cjs.map +0 -1
  903. package/dist/lib/focusgroup-directive/focusgroup-utils.js +0 -33
  904. package/dist/lib/focusgroup-directive/focusgroup-utils.js.map +0 -1
  905. package/dist/lib/focusgroup-directive/focusgroup.cjs +0 -2
  906. package/dist/lib/focusgroup-directive/focusgroup.cjs.map +0 -1
  907. package/dist/lib/focusgroup-directive/focusgroup.js +0 -143
  908. package/dist/lib/focusgroup-directive/focusgroup.js.map +0 -1
  909. package/dist/lib/focusgroup-directive/index.cjs +0 -1
  910. package/dist/lib/focusgroup-directive/index.js +0 -2
  911. package/dist/lib/focustrap-directive/focustrap-constants.cjs +0 -2
  912. package/dist/lib/focustrap-directive/focustrap-constants.cjs.map +0 -1
  913. package/dist/lib/focustrap-directive/focustrap-constants.js +0 -10
  914. package/dist/lib/focustrap-directive/focustrap-constants.js.map +0 -1
  915. package/dist/lib/focustrap-directive/focustrap-utils.cjs +0 -2
  916. package/dist/lib/focustrap-directive/focustrap-utils.cjs.map +0 -1
  917. package/dist/lib/focustrap-directive/focustrap-utils.js +0 -19
  918. package/dist/lib/focustrap-directive/focustrap-utils.js.map +0 -1
  919. package/dist/lib/focustrap-directive/focustrap.cjs +0 -2
  920. package/dist/lib/focustrap-directive/focustrap.cjs.map +0 -1
  921. package/dist/lib/focustrap-directive/focustrap.js +0 -96
  922. package/dist/lib/focustrap-directive/focustrap.js.map +0 -1
  923. package/dist/lib/focustrap-directive/index.cjs +0 -1
  924. package/dist/lib/focustrap-directive/index.js +0 -2
  925. package/dist/lib/kitchen-sink/kitchen-sink-view.cjs +0 -2
  926. package/dist/lib/kitchen-sink/kitchen-sink-view.cjs.map +0 -1
  927. package/dist/lib/kitchen-sink/kitchen-sink-view.js +0 -205
  928. package/dist/lib/kitchen-sink/kitchen-sink-view.js.map +0 -1
  929. package/dist/lib/mode-directive/index.cjs +0 -1
  930. package/dist/lib/mode-directive/index.js +0 -2
  931. package/dist/lib/mode-directive/mode.cjs +0 -2
  932. package/dist/lib/mode-directive/mode.cjs.map +0 -1
  933. package/dist/lib/mode-directive/mode.js +0 -67
  934. package/dist/lib/mode-directive/mode.js.map +0 -1
  935. package/dist/lib/mode-island/index.cjs +0 -1
  936. package/dist/lib/mode-island/index.js +0 -3
  937. package/dist/lib/mode-island/mode-island-constants.cjs +0 -2
  938. package/dist/lib/mode-island/mode-island-constants.cjs.map +0 -1
  939. package/dist/lib/mode-island/mode-island-constants.js +0 -10
  940. package/dist/lib/mode-island/mode-island-constants.js.map +0 -1
  941. package/dist/lib/mode-island/mode-island.cjs +0 -2
  942. package/dist/lib/mode-island/mode-island.cjs.map +0 -1
  943. package/dist/lib/mode-island/mode-island.js +0 -102
  944. package/dist/lib/mode-island/mode-island.js.map +0 -1
  945. package/dist/lib/mode-island/utils.cjs +0 -2
  946. package/dist/lib/mode-island/utils.cjs.map +0 -1
  947. package/dist/lib/mode-island/utils.js +0 -28
  948. package/dist/lib/mode-island/utils.js.map +0 -1
  949. package/dist/lib/mode-island/validators.cjs +0 -2
  950. package/dist/lib/mode-island/validators.cjs.map +0 -1
  951. package/dist/lib/mode-island/validators.js +0 -10
  952. package/dist/lib/mode-island/validators.js.map +0 -1
  953. package/dist/lib/prose/index.cjs +0 -1
  954. package/dist/lib/prose/index.js +0 -3
  955. package/dist/lib/prose/prose-constants.cjs +0 -2
  956. package/dist/lib/prose/prose-constants.cjs.map +0 -1
  957. package/dist/lib/prose/prose-constants.js +0 -89
  958. package/dist/lib/prose/prose-constants.js.map +0 -1
  959. package/dist/lib/prose/prose.cjs +0 -2
  960. package/dist/lib/prose/prose.cjs.map +0 -1
  961. package/dist/lib/prose/prose.js +0 -68
  962. package/dist/lib/prose/prose.js.map +0 -1
  963. package/dist/lib/segmented-control/index.cjs +0 -1
  964. package/dist/lib/segmented-control/index.js +0 -4
  965. package/dist/lib/segmented-control/segmented-control-constants.cjs +0 -2
  966. package/dist/lib/segmented-control/segmented-control-constants.cjs.map +0 -1
  967. package/dist/lib/segmented-control/segmented-control-constants.js +0 -41
  968. package/dist/lib/segmented-control/segmented-control-constants.js.map +0 -1
  969. package/dist/lib/segmented-control/segmented-control-item.cjs +0 -2
  970. package/dist/lib/segmented-control/segmented-control-item.cjs.map +0 -1
  971. package/dist/lib/segmented-control/segmented-control-item.js +0 -104
  972. package/dist/lib/segmented-control/segmented-control-item.js.map +0 -1
  973. package/dist/lib/segmented-control/segmented-control.cjs +0 -2
  974. package/dist/lib/segmented-control/segmented-control.cjs.map +0 -1
  975. package/dist/lib/segmented-control/segmented-control.js +0 -204
  976. package/dist/lib/segmented-control/segmented-control.js.map +0 -1
  977. package/dist/lib/split-button/split-button-end.cjs +0 -2
  978. package/dist/lib/split-button/split-button-end.cjs.map +0 -1
  979. package/dist/lib/split-button/split-button-end.js.map +0 -1
  980. package/dist/lib/split-button/split-button-start.cjs +0 -2
  981. package/dist/lib/split-button/split-button-start.cjs.map +0 -1
  982. package/dist/lib/split-button/split-button-start.js +0 -182
  983. package/dist/lib/split-button/split-button-start.js.map +0 -1
  984. package/dist/lib/text/index.cjs +0 -1
  985. package/dist/lib/text/index.js +0 -3
  986. package/dist/lib/text/text-constants.cjs +0 -2
  987. package/dist/lib/text/text-constants.cjs.map +0 -1
  988. package/dist/lib/text/text-constants.js +0 -128
  989. package/dist/lib/text/text-constants.js.map +0 -1
  990. package/dist/lib/text/text.cjs +0 -2
  991. package/dist/lib/text/text.cjs.map +0 -1
  992. package/dist/lib/text/text.js +0 -150
  993. package/dist/lib/text/text.js.map +0 -1
  994. package/dist/message_input-DktL-f28.cjs +0 -2
  995. package/dist/message_input-DktL-f28.cjs.map +0 -1
  996. package/dist/message_input-rXsWKem_.js.map +0 -1
  997. package/dist/mode_constants-CzYJW9ua.cjs +0 -2
  998. package/dist/mode_constants-CzYJW9ua.cjs.map +0 -1
  999. package/dist/mode_constants-tb7TL85q.js +0 -14
  1000. package/dist/mode_constants-tb7TL85q.js.map +0 -1
  1001. package/dist/resizable_utils-CQscchW4.js.map +0 -1
  1002. package/dist/resizable_utils-DabS08OL.cjs +0 -2
  1003. package/dist/resizable_utils-DabS08OL.cjs.map +0 -1
  1004. package/dist/rich_text_editor-TolFmwK_.cjs +0 -12
  1005. package/dist/scroller-C15VLKNK.cjs +0 -2
  1006. package/dist/scroller-C15VLKNK.cjs.map +0 -1
  1007. package/dist/scroller-DPqcc_Wl.js.map +0 -1
  1008. package/dist/toast-BuNWsrhy.cjs +0 -2
  1009. package/dist/toast-BuNWsrhy.cjs.map +0 -1
  1010. package/dist/toast-DqbTiHVx.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"resizable_utils-CQscchW4.js","names":[],"sources":["../components/resizable/resizable_constants.ts","../components/resizable/resizable_utils.ts"],"sourcesContent":["/**\n * Resizable panel system — types and injection keys.\n *\n * @see resizable.vue — provides all keys\n * @see resizable_panel.vue — consumes panel/layout keys\n * @see resizable_handle.vue — consumes handle/resize keys\n */\nimport type { InjectionKey, ComputedRef, ComponentInternalInstance } from 'vue';\nimport type { LayoutResult } from './composables/computeLayout';\n\n// ─── Sizing Types ──────────────────────────────────────────────────────────\n\n/**\n * Resizable panels accept Dialtone layout tokens (numeric strings mapped to\n * `--dt-layout-*` pixel values, e.g. '500' → 320px) or percentage values with\n * a 'p' suffix (e.g. '50p' → 50% of the container).\n *\n * The accepted set matches DtBox's layout value surface so the same numeric\n * label resolves to the same pixel size across DtResizable, DtBox, and the\n * `d-w-*` / `d-h-*` utility classes.\n *\n * parseSizeToPixels() warns for unrecognized values.\n */\nexport type ResizableSizeValue = string;\n\n// ─── Types ──────────────────────────────────────────────────────────────────\n\nexport type ResizableDirection = 'row' | 'column';\n\nexport interface ResizablePanelConfig {\n /** Panel identifier. Auto-generated by ResizableGroup if not provided. */\n id: string;\n /** Initial size - layout token (e.g., '500') or percentage with 'p' suffix (e.g., '50p') */\n initialSize?: ResizableSizeValue;\n\n // ─── User Drag Limits (Absolute Boundaries) ───\n /** Hard floor for user dragging. User cannot drag panel smaller than this. */\n userMinSize?: ResizableSizeValue;\n /** Hard ceiling for user dragging. User cannot drag panel larger than this. */\n userMaxSize?: ResizableSizeValue;\n\n // ─── System Scaling Limits (Operating Range) ───\n /**\n * System scaling floor. System won't compress panel below this during viewport resize.\n * Must be >= userMinSize. Falls back to userMinSize if not specified.\n */\n systemMinSize?: ResizableSizeValue;\n /**\n * System scaling ceiling. System won't expand panel above this during viewport resize.\n * Must be <= userMaxSize. Falls back to userMaxSize if not specified.\n */\n systemMaxSize?: ResizableSizeValue;\n\n // ─── Auto-Collapse ───\n /**\n * Container width threshold for auto-collapse.\n * When container width drops below this value, panel auto-collapses.\n * This is the container width, not the panel width.\n */\n collapseSize?: ResizableSizeValue;\n\n // ─── Behavior Flags ───\n /** Whether this panel can be resized by user dragging */\n resizable?: boolean;\n /** Whether this panel can be manually collapsed via UI */\n collapsible?: boolean;\n /** Initial collapsed state */\n collapsed?: boolean;\n\n}\n\nexport interface ResizablePanelState extends ResizablePanelConfig {\n // ─── Core State ───\n /** Current size in pixels (primary storage) */\n pixelSize: number;\n\n // ─── User Drag Constraints (Computed Pixels) ───\n /** Computed pixel value for userMinSize (absolute floor for user dragging) */\n userMinSizePixels?: number;\n /** Computed pixel value for userMaxSize (absolute ceiling for user dragging) */\n userMaxSizePixels?: number;\n\n // ─── System Scaling Constraints (Computed Pixels) ───\n /** Computed pixel value for systemMinSize (system scaling floor) */\n systemMinSizePixels?: number;\n /** Computed pixel value for systemMaxSize (system scaling ceiling) */\n systemMaxSizePixels?: number;\n\n // ─── Auto-Collapse State ───\n /** Computed pixel value for collapseSize (container width threshold) */\n collapseSizePixels?: number;\n /** True if panel was auto-collapsed (vs manually collapsed via UI) */\n autoCollapsed?: boolean;\n\n // ─── Manual Resize Tracking ───\n /**\n * Internal: Stores the user's preferred pixel size when they drag a panel.\n * Used by the drag system to track intent before converting to ratio.\n * Not exposed as a component prop.\n */\n manualTargetSize?: number;\n /**\n * Stores the user's preferred ratio (0–1) when they drag a panel.\n * - undefined: no manual target, panel scales proportionally with viewport\n * - number: panel targets (ratio × containerSize) pixels on each render,\n * still subject to min/max constraints.\n *\n * Enables correct proportional scaling when the viewport changes.\n * Panel feels \"sticky\" at the chosen proportion.\n */\n manualTargetRatio?: number;\n\n // ─── Storage Restoration ───\n /**\n * True if this panel's state was loaded from localStorage on the current\n * initialization pass. Prevents double-restoration when loadFromStorage is\n * called multiple times (e.g. the deferred 100ms retry in useResizableCore).\n */\n restoredFromStorage?: boolean;\n\n}\n\nexport interface ResizableHandleConfig {\n id: string;\n beforePanelId: string;\n afterPanelId: string;\n direction: ResizableDirection;\n}\n\nexport type ResizableSizeMode = 'percentage' | 'pixels';\n\n\nexport interface ResizableGroupConfig {\n direction: ResizableDirection;\n panels: ResizablePanelConfig[];\n storageKey?: string; // Optional localStorage key for persistence\n sizeMode?: ResizableSizeMode; // Whether to use percentage or pixel-based sizing\n limitToParent?: boolean; // Limit resizing to parent viewport bounds\n}\n\nexport interface ResizableGroupState {\n direction: ResizableDirection;\n panels: ResizablePanelState[];\n containerSize: number; // Total container size in pixels\n isResizing: boolean;\n activeHandleId?: string;\n}\n\nexport interface ResizableEvents {\n 'panel-resize': (panelId: string, size: number) => void;\n 'panel-collapse': (panelId: string, collapsed: boolean) => void;\n 'resize-start': (handleId: string) => void;\n 'resize-end': (handleId: string) => void;\n}\n\n/**\n * Defines collapse behavior for a panel during space constraints.\n * Used to determine which panels collapse first when viewport shrinks.\n */\nexport interface CollapseRule {\n /** Panel ID this rule applies to */\n panelId: string;\n /** Collapse priority - lower numbers collapse first */\n priority: number;\n /** Optional threshold that triggers collapse (overrides panel's userMinSize) */\n minSizeBeforeCollapse?: ResizableSizeValue;\n}\n\n/**\n// ─── Defaults ─────────────────────────────────────────────────────────────\n\n/** Default panel size when no initialSize is specified (50% of container). */\nexport const DEFAULT_PANEL_SIZE = '50p';\n\n/** Minimum panel size in pixels below which a resize is rejected. */\nexport const MIN_PANEL_SIZE_PX = 10;\n\n// ─── Storage Adapter ───────────────────────────────────────────────────────\n\n/**\n * Interface for pluggable storage backends.\n * Implement this to persist panel layouts to Pinia, Vuex, IndexedDB, etc.\n * The built-in `localStorageAdapter(key)` factory creates a localStorage-backed adapter.\n */\nexport interface ResizableStorageAdapter {\n /** Persist the current panel layout. */\n save(data: ResizableStoragePanelData[]): void;\n /** Load a previously saved layout. Returns null if nothing is stored. */\n load(): ResizableStoragePanelData[] | null;\n /** Remove all persisted data for this layout. */\n clear(): void;\n}\n\n/**\n * Shape of a single panel's persisted data.\n * Intentionally minimal — only what's needed to restore a layout.\n */\nexport interface ResizableStoragePanelData {\n id: string;\n pixelSize: number;\n collapsed?: boolean;\n autoCollapsed?: boolean;\n manualTargetRatio?: number;\n}\n\n// ─── Injection Context ──────────────────────────────────────────────────────\n// Single context object for provide/inject between ResizableGroup, Panel, Handle.\n\nexport interface ResizableContext {\n // Reactive state\n layout: ComputedRef<LayoutResult>;\n panels: ComputedRef<ResizablePanelState[]>;\n panelMap: ComputedRef<Map<string, ResizablePanelState>>;\n direction: ComputedRef<ResizableDirection>;\n containerSize: ComputedRef<number>;\n containerElement: ComputedRef<HTMLElement | null>;\n isResizing: ComputedRef<boolean>;\n activeHandleId: ComputedRef<string | undefined>;\n isInitializing: ComputedRef<boolean>;\n messages: Record<string, string>;\n\n // Offset (from fixed header/toolbar)\n offsetHandleStyles: ComputedRef<Record<string, string>>;\n offsetContentStyles: ComputedRef<Record<string, string>>;\n\n // Operations\n startResize: (handleId: string) => void;\n resetPanels: (\n beforePanelId?: string,\n afterPanelId?: string,\n behavior?: 'both' | 'before' | 'after' | 'all',\n ) => void;\n registerHandle: (instance: ComponentInternalInstance | null) => void;\n unregisterHandle: (instance: ComponentInternalInstance | null) => void;\n registerPanel: (config: ResizablePanelConfig) => void;\n unregisterPanel: (id: string) => void;\n saveToStorage: () => void;\n announce: (message: string) => void;\n collapsePanel: (panelId: string, collapsed: boolean) => void;\n emitPanelResize: (panelId: string, size: number) => void;\n commitPanelSize: (panelId: string, pixels: number) => void;\n updateSavedPanel: (panelId: string, updates: Partial<ResizableStoragePanelData>) => void;\n}\n\nexport const RESIZABLE_CONTEXT_KEY: InjectionKey<ResizableContext> = Symbol('resizable-context');\n\n/**\n * Build a composite handle ID from the before and after panel IDs.\n * Handles use the format \"{beforePanelId}:{afterPanelId}\" throughout the system.\n */\nexport function buildHandleId(beforeId: string, afterId: string): string {\n return `${beforeId}:${afterId}`;\n}\n","import type { ResizableSizeValue } from './resizable_constants';\n\n// ─── Layout Token Resolution ───────────────────────────────────────────────\n// Resolves Dialtone layout tokens (e.g., '500', '200', '8px') to pixel values.\n// Reads --dt-layout-{token} CSS custom properties at runtime to stay in sync\n// with the token pipeline. Falls back to a static map in environments where\n// CSS custom properties aren't available (tests, SSR).\n//\n// The allowlist (keys of FALLBACK_LAYOUT_TOKENS) mirrors DtBox's layout value\n// set so the same numeric label resolves to the same pixel size in both\n// components and in the `d-w-*` / `d-h-*` utility classes.\n\n/** Cache for resolved token pixel values (populated on first use). */\nconst tokenCache = new Map<string, number>();\n\n/** Root font size cache — read once from getComputedStyle. */\nlet cachedRootFontSize: number | null = null;\n\nfunction getRootFontSize(): number {\n if (cachedRootFontSize !== null) return cachedRootFontSize;\n if (typeof document !== 'undefined') {\n cachedRootFontSize = parseFloat(getComputedStyle(document.documentElement).fontSize) || 10;\n } else {\n cachedRootFontSize = 10; // Dialtone default\n }\n return cachedRootFontSize;\n}\n\n/**\n * Resolve a Dialtone layout token to pixels via CSS custom properties.\n * Early-rejects tokens not in the FALLBACK_LAYOUT_TOKENS allowlist so the\n * accepted value set matches DtBox regardless of whether extra layout stops\n * exist in the token pipeline.\n * Falls back to FALLBACK_LAYOUT_TOKENS when CSS isn't available.\n */\nfunction resolveTokenPixels(token: string): number | undefined {\n if (!Object.prototype.hasOwnProperty.call(FALLBACK_LAYOUT_TOKENS, token)) return undefined;\n if (tokenCache.has(token)) return tokenCache.get(token);\n\n // Try runtime CSS resolution first so theme overrides propagate without rebuild\n if (typeof document !== 'undefined') {\n const cssValue = getComputedStyle(document.documentElement)\n .getPropertyValue(`--dt-layout-${token}`)\n .trim();\n\n if (cssValue) {\n const remMatch = cssValue.match(/^([\\d.]+)rem$/);\n if (remMatch) {\n const px = parseFloat(remMatch[1]) * getRootFontSize();\n tokenCache.set(token, px);\n return px;\n }\n const pxMatch = cssValue.match(/^([\\d.]+)px$/);\n if (pxMatch) {\n const px = parseFloat(pxMatch[1]);\n tokenCache.set(token, px);\n return px;\n }\n }\n }\n\n // Static fallback — kept for jsdom tests and SSR where CSS custom properties aren't loaded.\n const px = FALLBACK_LAYOUT_TOKENS[token];\n tokenCache.set(token, px);\n return px;\n}\n\n/**\n * Static fallback map — mirrors the DtBox layout value set from\n * `packages/dialtone-vue/components/box/box_constants.js` (DT_BOX_LAYOUT_VALUES)\n * and the underlying `layout.*` tokens in `dialtone-tokens`.\n * Acts as the allowlist for `isValidSizing` and as the pixel source when CSS\n * custom properties aren't available (tests, SSR).\n */\nconst FALLBACK_LAYOUT_TOKENS: Record<string, number> = {\n // off-scale (DLT-3330)\n '0': 0, '1px': 1, '2px': 2, '8px': 8, '25': 16, '20px': 20, '24px': 24, '50': 32, '75': 48,\n // 100-multiples (layout.base × N)\n '100': 64, '200': 128, '300': 192, '400': 256, '500': 320,\n '600': 384, '700': 448, '800': 512, '900': 576, '1000': 640,\n '1100': 704, '1200': 768, '1300': 832, '1400': 896, '1500': 960, '1600': 1024,\n};\n\n// ─── Percentage Resolution ─────────────────────────────────────────────────\n// Percentage tokens use a simple pattern: numeric value + 'p' suffix.\n\nfunction parsePercentage(value: string): number | undefined {\n if (!value.endsWith('p')) return undefined;\n const num = parseFloat(value.slice(0, -1));\n return isFinite(num) && num >= 0 && num <= 100 ? num : undefined;\n}\n\n// ─── Token Helpers ──────────────────────────────────────────────────────────\n\nfunction isSizeToken(value: string): boolean {\n return resolveTokenPixels(value) !== undefined;\n}\n\nfunction isPercentageToken(value: string): boolean {\n return parsePercentage(value) !== undefined;\n}\n\nexport function isValidSizing(value: string): boolean {\n return isSizeToken(value) || isPercentageToken(value);\n}\n\nfunction parseTokenToPixels(value: string, containerSize: number): number {\n const sizePixels = resolveTokenPixels(value);\n if (sizePixels !== undefined) return sizePixels;\n\n const percentage = parsePercentage(value);\n if (percentage !== undefined) return (percentage / 100) * containerSize;\n\n console.warn(`[resizable] Invalid sizing value: ${value}`);\n return 0;\n}\n\n// ─── Public API ─────────────────────────────────────────────────────────────\n\nexport interface ParseSizeOptions {\n /**\n * When true, clamps the result to container size.\n * Panels cannot exceed their parent container.\n * @default true\n */\n clampToContainer?: boolean;\n}\n\n/**\n * Parses a ResizableSizeValue and returns the pixel value.\n * Handles layout tokens (e.g., '500') and percentage tokens (e.g., '50p').\n *\n * Layout tokens resolve from --dt-layout-{token} CSS custom properties at\n * runtime, falling back to a static map in test/SSR environments.\n *\n * @param value - Layout token or percentage token\n * @param containerSize - Container size in pixels\n * @param options - Optional configuration\n * @returns Pixel value, clamped to container by default\n *\n * @example\n * parseSizeToPixels('500', 1000) // Returns 320 (from --dt-layout-500)\n * parseSizeToPixels('50p', 1000) // Returns 500 (50% of 1000)\n * parseSizeToPixels('1600', 1000) // Returns 1000 (clamped from 1024px)\n */\nexport function parseSizeToPixels(\n value: ResizableSizeValue,\n containerSize: number,\n options?: ParseSizeOptions\n): number {\n const { clampToContainer = true } = options ?? {};\n const validatedContainerSize = validateContainerSize(containerSize);\n\n if (isCollapsedPanel(validatedContainerSize, value)) {\n return 0;\n }\n\n const calculationContainerSize = validatedContainerSize === 0 ? 1000 : validatedContainerSize;\n\n if (typeof value === 'string' && isValidSizing(value)) {\n const result = parseTokenToPixels(value, calculationContainerSize);\n return validatePixelResult(result, value, validatedContainerSize, clampToContainer);\n }\n\n console.warn(\n `[resizable] Invalid ResizableSizeValue: ${value}. Expected a size token or percentage with 'p' suffix.`\n );\n return 0;\n}\n\nexport function validateContainerSize(containerSize: number): number {\n if (!isFinite(containerSize) || containerSize < 0) {\n console.warn(`[resizable] Invalid containerSize: ${containerSize}. Using fallback value of 1000px.`);\n return 1000;\n }\n\n if (containerSize > 10000) {\n console.warn(`[resizable] Unusually large containerSize: ${containerSize}px. Capping at 10000px.`);\n return 10000;\n }\n\n return containerSize;\n}\n\nfunction isCollapsedPanel(containerSize: number, value: ResizableSizeValue): boolean {\n return containerSize === 0 && value === '0';\n}\n\nfunction validatePixelResult(\n result: number,\n value: ResizableSizeValue,\n containerSize: number,\n clampToContainer: boolean\n): number {\n if (!isFinite(result) || result < 0) {\n console.warn(\n `[resizable] Invalid pixel calculation result: ${result} for value: ${value}, containerSize: ${containerSize}`\n );\n return 0;\n }\n\n if (clampToContainer && containerSize > 0 && result > containerSize) {\n console.warn(\n `[resizable] Size value '${value}' (${result}px) exceeds container (${containerSize}px). Clamping to container.`\n );\n return containerSize;\n }\n\n return result;\n}\n\nexport function isPercentageValue(value: ResizableSizeValue): boolean {\n return isPercentageToken(value);\n}\n\nexport function isCSSValue(value: ResizableSizeValue): boolean {\n return isSizeToken(value);\n}\n\nexport function pixelsToPercentage(pixels: number, containerSize: number): number {\n return (pixels / containerSize) * 100;\n}\n\n/**\n * Checks if a panel's userMinSize is percentage-based (e.g., '50p').\n */\nexport function hasPercentageMinSize(panel: { userMinSize?: ResizableSizeValue }): boolean {\n if (!panel.userMinSize) return false;\n return isPercentageToken(panel.userMinSize);\n}\n\n/**\n * Invalidate the token cache. Call when the theme changes or\n * when token values may have been updated at runtime.\n */\nexport function invalidateTokenCache(): void {\n tokenCache.clear();\n cachedRootFontSize = null;\n}\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- var e=`50p`,t=10,n=Symbol(`resizable-context`);function r(e,t){return`${e}:${t}`}var i=new Map,a=null;function o(){return a===null&&(a=typeof document<`u`&&parseFloat(getComputedStyle(document.documentElement).fontSize)||10),a}function s(e){if(!Object.prototype.hasOwnProperty.call(c,e))return;if(i.has(e))return i.get(e);if(typeof document<`u`){let t=getComputedStyle(document.documentElement).getPropertyValue(`--dt-layout-${e}`).trim();if(t){let n=t.match(/^([\d.]+)rem$/);if(n){let t=parseFloat(n[1])*o();return i.set(e,t),t}let r=t.match(/^([\d.]+)px$/);if(r){let t=parseFloat(r[1]);return i.set(e,t),t}}}let t=c[e];return i.set(e,t),t}var c={0:0,"1px":1,"2px":2,"8px":8,25:16,"20px":20,"24px":24,50:32,75:48,100:64,200:128,300:192,400:256,500:320,600:384,700:448,800:512,900:576,1e3:640,1100:704,1200:768,1300:832,1400:896,1500:960,1600:1024};function l(e){if(!e.endsWith(`p`))return;let t=parseFloat(e.slice(0,-1));return isFinite(t)&&t>=0&&t<=100?t:void 0}function u(e){return s(e)!==void 0}function d(e){return l(e)!==void 0}function f(e){return u(e)||d(e)}function p(e,t){let n=s(e);if(n!==void 0)return n;let r=l(e);return r===void 0?(console.warn(`[resizable] Invalid sizing value: ${e}`),0):r/100*t}function m(e,t,n){let{clampToContainer:r=!0}=n??{},i=h(t);if(g(i,e))return 0;let a=i===0?1e3:i;return typeof e==`string`&&f(e)?_(p(e,a),e,i,r):(console.warn(`[resizable] Invalid ResizableSizeValue: ${e}. Expected a size token or percentage with 'p' suffix.`),0)}function h(e){return!isFinite(e)||e<0?(console.warn(`[resizable] Invalid containerSize: ${e}. Using fallback value of 1000px.`),1e3):e>1e4?(console.warn(`[resizable] Unusually large containerSize: ${e}px. Capping at 10000px.`),1e4):e}function g(e,t){return e===0&&t===`0`}function _(e,t,n,r){return!isFinite(e)||e<0?(console.warn(`[resizable] Invalid pixel calculation result: ${e} for value: ${t}, containerSize: ${n}`),0):r&&n>0&&e>n?(console.warn(`[resizable] Size value '${t}' (${e}px) exceeds container (${n}px). Clamping to container.`),n):e}function v(e){return d(e)}function y(e){return u(e)}function b(e,t){return e/t*100}function x(e){return e.userMinSize?d(e.userMinSize):!1}function S(){i.clear(),a=null}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return e}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return t}});
2
- //# sourceMappingURL=resizable_utils-DabS08OL.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resizable_utils-DabS08OL.cjs","names":[],"sources":["../components/resizable/resizable_constants.ts","../components/resizable/resizable_utils.ts"],"sourcesContent":["/**\n * Resizable panel system — types and injection keys.\n *\n * @see resizable.vue — provides all keys\n * @see resizable_panel.vue — consumes panel/layout keys\n * @see resizable_handle.vue — consumes handle/resize keys\n */\nimport type { InjectionKey, ComputedRef, ComponentInternalInstance } from 'vue';\nimport type { LayoutResult } from './composables/computeLayout';\n\n// ─── Sizing Types ──────────────────────────────────────────────────────────\n\n/**\n * Resizable panels accept Dialtone layout tokens (numeric strings mapped to\n * `--dt-layout-*` pixel values, e.g. '500' → 320px) or percentage values with\n * a 'p' suffix (e.g. '50p' → 50% of the container).\n *\n * The accepted set matches DtBox's layout value surface so the same numeric\n * label resolves to the same pixel size across DtResizable, DtBox, and the\n * `d-w-*` / `d-h-*` utility classes.\n *\n * parseSizeToPixels() warns for unrecognized values.\n */\nexport type ResizableSizeValue = string;\n\n// ─── Types ──────────────────────────────────────────────────────────────────\n\nexport type ResizableDirection = 'row' | 'column';\n\nexport interface ResizablePanelConfig {\n /** Panel identifier. Auto-generated by ResizableGroup if not provided. */\n id: string;\n /** Initial size - layout token (e.g., '500') or percentage with 'p' suffix (e.g., '50p') */\n initialSize?: ResizableSizeValue;\n\n // ─── User Drag Limits (Absolute Boundaries) ───\n /** Hard floor for user dragging. User cannot drag panel smaller than this. */\n userMinSize?: ResizableSizeValue;\n /** Hard ceiling for user dragging. User cannot drag panel larger than this. */\n userMaxSize?: ResizableSizeValue;\n\n // ─── System Scaling Limits (Operating Range) ───\n /**\n * System scaling floor. System won't compress panel below this during viewport resize.\n * Must be >= userMinSize. Falls back to userMinSize if not specified.\n */\n systemMinSize?: ResizableSizeValue;\n /**\n * System scaling ceiling. System won't expand panel above this during viewport resize.\n * Must be <= userMaxSize. Falls back to userMaxSize if not specified.\n */\n systemMaxSize?: ResizableSizeValue;\n\n // ─── Auto-Collapse ───\n /**\n * Container width threshold for auto-collapse.\n * When container width drops below this value, panel auto-collapses.\n * This is the container width, not the panel width.\n */\n collapseSize?: ResizableSizeValue;\n\n // ─── Behavior Flags ───\n /** Whether this panel can be resized by user dragging */\n resizable?: boolean;\n /** Whether this panel can be manually collapsed via UI */\n collapsible?: boolean;\n /** Initial collapsed state */\n collapsed?: boolean;\n\n}\n\nexport interface ResizablePanelState extends ResizablePanelConfig {\n // ─── Core State ───\n /** Current size in pixels (primary storage) */\n pixelSize: number;\n\n // ─── User Drag Constraints (Computed Pixels) ───\n /** Computed pixel value for userMinSize (absolute floor for user dragging) */\n userMinSizePixels?: number;\n /** Computed pixel value for userMaxSize (absolute ceiling for user dragging) */\n userMaxSizePixels?: number;\n\n // ─── System Scaling Constraints (Computed Pixels) ───\n /** Computed pixel value for systemMinSize (system scaling floor) */\n systemMinSizePixels?: number;\n /** Computed pixel value for systemMaxSize (system scaling ceiling) */\n systemMaxSizePixels?: number;\n\n // ─── Auto-Collapse State ───\n /** Computed pixel value for collapseSize (container width threshold) */\n collapseSizePixels?: number;\n /** True if panel was auto-collapsed (vs manually collapsed via UI) */\n autoCollapsed?: boolean;\n\n // ─── Manual Resize Tracking ───\n /**\n * Internal: Stores the user's preferred pixel size when they drag a panel.\n * Used by the drag system to track intent before converting to ratio.\n * Not exposed as a component prop.\n */\n manualTargetSize?: number;\n /**\n * Stores the user's preferred ratio (0–1) when they drag a panel.\n * - undefined: no manual target, panel scales proportionally with viewport\n * - number: panel targets (ratio × containerSize) pixels on each render,\n * still subject to min/max constraints.\n *\n * Enables correct proportional scaling when the viewport changes.\n * Panel feels \"sticky\" at the chosen proportion.\n */\n manualTargetRatio?: number;\n\n // ─── Storage Restoration ───\n /**\n * True if this panel's state was loaded from localStorage on the current\n * initialization pass. Prevents double-restoration when loadFromStorage is\n * called multiple times (e.g. the deferred 100ms retry in useResizableCore).\n */\n restoredFromStorage?: boolean;\n\n}\n\nexport interface ResizableHandleConfig {\n id: string;\n beforePanelId: string;\n afterPanelId: string;\n direction: ResizableDirection;\n}\n\nexport type ResizableSizeMode = 'percentage' | 'pixels';\n\n\nexport interface ResizableGroupConfig {\n direction: ResizableDirection;\n panels: ResizablePanelConfig[];\n storageKey?: string; // Optional localStorage key for persistence\n sizeMode?: ResizableSizeMode; // Whether to use percentage or pixel-based sizing\n limitToParent?: boolean; // Limit resizing to parent viewport bounds\n}\n\nexport interface ResizableGroupState {\n direction: ResizableDirection;\n panels: ResizablePanelState[];\n containerSize: number; // Total container size in pixels\n isResizing: boolean;\n activeHandleId?: string;\n}\n\nexport interface ResizableEvents {\n 'panel-resize': (panelId: string, size: number) => void;\n 'panel-collapse': (panelId: string, collapsed: boolean) => void;\n 'resize-start': (handleId: string) => void;\n 'resize-end': (handleId: string) => void;\n}\n\n/**\n * Defines collapse behavior for a panel during space constraints.\n * Used to determine which panels collapse first when viewport shrinks.\n */\nexport interface CollapseRule {\n /** Panel ID this rule applies to */\n panelId: string;\n /** Collapse priority - lower numbers collapse first */\n priority: number;\n /** Optional threshold that triggers collapse (overrides panel's userMinSize) */\n minSizeBeforeCollapse?: ResizableSizeValue;\n}\n\n/**\n// ─── Defaults ─────────────────────────────────────────────────────────────\n\n/** Default panel size when no initialSize is specified (50% of container). */\nexport const DEFAULT_PANEL_SIZE = '50p';\n\n/** Minimum panel size in pixels below which a resize is rejected. */\nexport const MIN_PANEL_SIZE_PX = 10;\n\n// ─── Storage Adapter ───────────────────────────────────────────────────────\n\n/**\n * Interface for pluggable storage backends.\n * Implement this to persist panel layouts to Pinia, Vuex, IndexedDB, etc.\n * The built-in `localStorageAdapter(key)` factory creates a localStorage-backed adapter.\n */\nexport interface ResizableStorageAdapter {\n /** Persist the current panel layout. */\n save(data: ResizableStoragePanelData[]): void;\n /** Load a previously saved layout. Returns null if nothing is stored. */\n load(): ResizableStoragePanelData[] | null;\n /** Remove all persisted data for this layout. */\n clear(): void;\n}\n\n/**\n * Shape of a single panel's persisted data.\n * Intentionally minimal — only what's needed to restore a layout.\n */\nexport interface ResizableStoragePanelData {\n id: string;\n pixelSize: number;\n collapsed?: boolean;\n autoCollapsed?: boolean;\n manualTargetRatio?: number;\n}\n\n// ─── Injection Context ──────────────────────────────────────────────────────\n// Single context object for provide/inject between ResizableGroup, Panel, Handle.\n\nexport interface ResizableContext {\n // Reactive state\n layout: ComputedRef<LayoutResult>;\n panels: ComputedRef<ResizablePanelState[]>;\n panelMap: ComputedRef<Map<string, ResizablePanelState>>;\n direction: ComputedRef<ResizableDirection>;\n containerSize: ComputedRef<number>;\n containerElement: ComputedRef<HTMLElement | null>;\n isResizing: ComputedRef<boolean>;\n activeHandleId: ComputedRef<string | undefined>;\n isInitializing: ComputedRef<boolean>;\n messages: Record<string, string>;\n\n // Offset (from fixed header/toolbar)\n offsetHandleStyles: ComputedRef<Record<string, string>>;\n offsetContentStyles: ComputedRef<Record<string, string>>;\n\n // Operations\n startResize: (handleId: string) => void;\n resetPanels: (\n beforePanelId?: string,\n afterPanelId?: string,\n behavior?: 'both' | 'before' | 'after' | 'all',\n ) => void;\n registerHandle: (instance: ComponentInternalInstance | null) => void;\n unregisterHandle: (instance: ComponentInternalInstance | null) => void;\n registerPanel: (config: ResizablePanelConfig) => void;\n unregisterPanel: (id: string) => void;\n saveToStorage: () => void;\n announce: (message: string) => void;\n collapsePanel: (panelId: string, collapsed: boolean) => void;\n emitPanelResize: (panelId: string, size: number) => void;\n commitPanelSize: (panelId: string, pixels: number) => void;\n updateSavedPanel: (panelId: string, updates: Partial<ResizableStoragePanelData>) => void;\n}\n\nexport const RESIZABLE_CONTEXT_KEY: InjectionKey<ResizableContext> = Symbol('resizable-context');\n\n/**\n * Build a composite handle ID from the before and after panel IDs.\n * Handles use the format \"{beforePanelId}:{afterPanelId}\" throughout the system.\n */\nexport function buildHandleId(beforeId: string, afterId: string): string {\n return `${beforeId}:${afterId}`;\n}\n","import type { ResizableSizeValue } from './resizable_constants';\n\n// ─── Layout Token Resolution ───────────────────────────────────────────────\n// Resolves Dialtone layout tokens (e.g., '500', '200', '8px') to pixel values.\n// Reads --dt-layout-{token} CSS custom properties at runtime to stay in sync\n// with the token pipeline. Falls back to a static map in environments where\n// CSS custom properties aren't available (tests, SSR).\n//\n// The allowlist (keys of FALLBACK_LAYOUT_TOKENS) mirrors DtBox's layout value\n// set so the same numeric label resolves to the same pixel size in both\n// components and in the `d-w-*` / `d-h-*` utility classes.\n\n/** Cache for resolved token pixel values (populated on first use). */\nconst tokenCache = new Map<string, number>();\n\n/** Root font size cache — read once from getComputedStyle. */\nlet cachedRootFontSize: number | null = null;\n\nfunction getRootFontSize(): number {\n if (cachedRootFontSize !== null) return cachedRootFontSize;\n if (typeof document !== 'undefined') {\n cachedRootFontSize = parseFloat(getComputedStyle(document.documentElement).fontSize) || 10;\n } else {\n cachedRootFontSize = 10; // Dialtone default\n }\n return cachedRootFontSize;\n}\n\n/**\n * Resolve a Dialtone layout token to pixels via CSS custom properties.\n * Early-rejects tokens not in the FALLBACK_LAYOUT_TOKENS allowlist so the\n * accepted value set matches DtBox regardless of whether extra layout stops\n * exist in the token pipeline.\n * Falls back to FALLBACK_LAYOUT_TOKENS when CSS isn't available.\n */\nfunction resolveTokenPixels(token: string): number | undefined {\n if (!Object.prototype.hasOwnProperty.call(FALLBACK_LAYOUT_TOKENS, token)) return undefined;\n if (tokenCache.has(token)) return tokenCache.get(token);\n\n // Try runtime CSS resolution first so theme overrides propagate without rebuild\n if (typeof document !== 'undefined') {\n const cssValue = getComputedStyle(document.documentElement)\n .getPropertyValue(`--dt-layout-${token}`)\n .trim();\n\n if (cssValue) {\n const remMatch = cssValue.match(/^([\\d.]+)rem$/);\n if (remMatch) {\n const px = parseFloat(remMatch[1]) * getRootFontSize();\n tokenCache.set(token, px);\n return px;\n }\n const pxMatch = cssValue.match(/^([\\d.]+)px$/);\n if (pxMatch) {\n const px = parseFloat(pxMatch[1]);\n tokenCache.set(token, px);\n return px;\n }\n }\n }\n\n // Static fallback — kept for jsdom tests and SSR where CSS custom properties aren't loaded.\n const px = FALLBACK_LAYOUT_TOKENS[token];\n tokenCache.set(token, px);\n return px;\n}\n\n/**\n * Static fallback map — mirrors the DtBox layout value set from\n * `packages/dialtone-vue/components/box/box_constants.js` (DT_BOX_LAYOUT_VALUES)\n * and the underlying `layout.*` tokens in `dialtone-tokens`.\n * Acts as the allowlist for `isValidSizing` and as the pixel source when CSS\n * custom properties aren't available (tests, SSR).\n */\nconst FALLBACK_LAYOUT_TOKENS: Record<string, number> = {\n // off-scale (DLT-3330)\n '0': 0, '1px': 1, '2px': 2, '8px': 8, '25': 16, '20px': 20, '24px': 24, '50': 32, '75': 48,\n // 100-multiples (layout.base × N)\n '100': 64, '200': 128, '300': 192, '400': 256, '500': 320,\n '600': 384, '700': 448, '800': 512, '900': 576, '1000': 640,\n '1100': 704, '1200': 768, '1300': 832, '1400': 896, '1500': 960, '1600': 1024,\n};\n\n// ─── Percentage Resolution ─────────────────────────────────────────────────\n// Percentage tokens use a simple pattern: numeric value + 'p' suffix.\n\nfunction parsePercentage(value: string): number | undefined {\n if (!value.endsWith('p')) return undefined;\n const num = parseFloat(value.slice(0, -1));\n return isFinite(num) && num >= 0 && num <= 100 ? num : undefined;\n}\n\n// ─── Token Helpers ──────────────────────────────────────────────────────────\n\nfunction isSizeToken(value: string): boolean {\n return resolveTokenPixels(value) !== undefined;\n}\n\nfunction isPercentageToken(value: string): boolean {\n return parsePercentage(value) !== undefined;\n}\n\nexport function isValidSizing(value: string): boolean {\n return isSizeToken(value) || isPercentageToken(value);\n}\n\nfunction parseTokenToPixels(value: string, containerSize: number): number {\n const sizePixels = resolveTokenPixels(value);\n if (sizePixels !== undefined) return sizePixels;\n\n const percentage = parsePercentage(value);\n if (percentage !== undefined) return (percentage / 100) * containerSize;\n\n console.warn(`[resizable] Invalid sizing value: ${value}`);\n return 0;\n}\n\n// ─── Public API ─────────────────────────────────────────────────────────────\n\nexport interface ParseSizeOptions {\n /**\n * When true, clamps the result to container size.\n * Panels cannot exceed their parent container.\n * @default true\n */\n clampToContainer?: boolean;\n}\n\n/**\n * Parses a ResizableSizeValue and returns the pixel value.\n * Handles layout tokens (e.g., '500') and percentage tokens (e.g., '50p').\n *\n * Layout tokens resolve from --dt-layout-{token} CSS custom properties at\n * runtime, falling back to a static map in test/SSR environments.\n *\n * @param value - Layout token or percentage token\n * @param containerSize - Container size in pixels\n * @param options - Optional configuration\n * @returns Pixel value, clamped to container by default\n *\n * @example\n * parseSizeToPixels('500', 1000) // Returns 320 (from --dt-layout-500)\n * parseSizeToPixels('50p', 1000) // Returns 500 (50% of 1000)\n * parseSizeToPixels('1600', 1000) // Returns 1000 (clamped from 1024px)\n */\nexport function parseSizeToPixels(\n value: ResizableSizeValue,\n containerSize: number,\n options?: ParseSizeOptions\n): number {\n const { clampToContainer = true } = options ?? {};\n const validatedContainerSize = validateContainerSize(containerSize);\n\n if (isCollapsedPanel(validatedContainerSize, value)) {\n return 0;\n }\n\n const calculationContainerSize = validatedContainerSize === 0 ? 1000 : validatedContainerSize;\n\n if (typeof value === 'string' && isValidSizing(value)) {\n const result = parseTokenToPixels(value, calculationContainerSize);\n return validatePixelResult(result, value, validatedContainerSize, clampToContainer);\n }\n\n console.warn(\n `[resizable] Invalid ResizableSizeValue: ${value}. Expected a size token or percentage with 'p' suffix.`\n );\n return 0;\n}\n\nexport function validateContainerSize(containerSize: number): number {\n if (!isFinite(containerSize) || containerSize < 0) {\n console.warn(`[resizable] Invalid containerSize: ${containerSize}. Using fallback value of 1000px.`);\n return 1000;\n }\n\n if (containerSize > 10000) {\n console.warn(`[resizable] Unusually large containerSize: ${containerSize}px. Capping at 10000px.`);\n return 10000;\n }\n\n return containerSize;\n}\n\nfunction isCollapsedPanel(containerSize: number, value: ResizableSizeValue): boolean {\n return containerSize === 0 && value === '0';\n}\n\nfunction validatePixelResult(\n result: number,\n value: ResizableSizeValue,\n containerSize: number,\n clampToContainer: boolean\n): number {\n if (!isFinite(result) || result < 0) {\n console.warn(\n `[resizable] Invalid pixel calculation result: ${result} for value: ${value}, containerSize: ${containerSize}`\n );\n return 0;\n }\n\n if (clampToContainer && containerSize > 0 && result > containerSize) {\n console.warn(\n `[resizable] Size value '${value}' (${result}px) exceeds container (${containerSize}px). Clamping to container.`\n );\n return containerSize;\n }\n\n return result;\n}\n\nexport function isPercentageValue(value: ResizableSizeValue): boolean {\n return isPercentageToken(value);\n}\n\nexport function isCSSValue(value: ResizableSizeValue): boolean {\n return isSizeToken(value);\n}\n\nexport function pixelsToPercentage(pixels: number, containerSize: number): number {\n return (pixels / containerSize) * 100;\n}\n\n/**\n * Checks if a panel's userMinSize is percentage-based (e.g., '50p').\n */\nexport function hasPercentageMinSize(panel: { userMinSize?: ResizableSizeValue }): boolean {\n if (!panel.userMinSize) return false;\n return isPercentageToken(panel.userMinSize);\n}\n\n/**\n * Invalidate the token cache. Call when the theme changes or\n * when token values may have been updated at runtime.\n */\nexport function invalidateTokenCache(): void {\n tokenCache.clear();\n cachedRootFontSize = null;\n}\n"],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- const e=require(`./chunk-Bmb41Sf3.cjs`),t=require(`./common/utils/index.cjs`),n=require(`./_plugin-vue_export-helper-D8jCH6HB.cjs`),r=require(`./common/emoji/index.cjs`),i=require(`./lib/avatar/avatar.cjs`),a=require(`./lib/badge/badge.cjs`),o=require(`./lib/text/text.cjs`),s=require(`./lib/link/link.cjs`),c=require(`./localization/index.cjs`),l=require(`./lib/button/button.cjs`),u=require(`./lib/list-item/list-item.cjs`),d=require(`./lib/stack/stack.cjs`),f=require(`./lib/popover/popover.cjs`),p=require(`./lib/emoji/emoji.cjs`),m=require(`./lib/input/input.cjs`),h=require(`./node_modules/@tiptap/vue-3.cjs`),g=require(`./lib/rich-text-editor/rich-text-editor-constants.cjs`),_=require(`./markdownRenderer-Dsq-CiH9.cjs`);let v=require(`vue`),y=require(`regex-combined-emojis`),b=require(`@dialpad/dialtone-icons/vue`),x=require(`@tiptap/core`),S=require(`@tiptap/pm/state`),C=require(`@tiptap/pm/tables`),w=require(`@tiptap/extension-blockquote`);w=e.t(w);let T=require(`@tiptap/extension-code-block`);T=e.t(T);let E=require(`@tiptap/extension-code`);E=e.t(E);let D=require(`@tiptap/extension-document`);D=e.t(D);let O=require(`@tiptap/extensions`),k=require(`@tiptap/extension-hard-break`);k=e.t(k);let A=require(`@tiptap/extension-paragraph`);A=e.t(A);let j=require(`@tiptap/extension-bold`);j=e.t(j);let M=require(`@tiptap/extension-list`),N=require(`@tiptap/extension-italic`);N=e.t(N);let ee=require(`@tiptap/extension-link`);ee=e.t(ee);let te=require(`@tiptap/extension-strike`);te=e.t(te);let ne=require(`@tiptap/extension-underline`);ne=e.t(ne);let re=require(`@tiptap/extension-text`);re=e.t(re);let ie=require(`@tiptap/extension-text-align`);ie=e.t(ie);let ae=require(`@tiptap/extension-table`),oe=require(`@tiptap/extension-text-style`),se=require(`@tiptap/suggestion`);se=e.t(se);let ce=require(`@tiptap/extension-image`);ce=e.t(ce);let P=require(`@tiptap/extension-mention`);P=e.t(P);let le=require(`@dialpad/dialtone-icons/vue/hash`);le=e.t(le);let ue=require(`@dialpad/dialtone-icons/vue/lock`);ue=e.t(ue);let de=require(`deep-equal`);de=e.t(de);var fe=[`top`,`right`,`bottom`,`left`],pe=[`start`,`end`],me=fe.reduce((e,t)=>e.concat(t,t+`-`+pe[0],t+`-`+pe[1]),[]),F=Math.min,I=Math.max,he=Math.round,L=e=>({x:e,y:e}),ge={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function _e(e,t,n){return I(e,F(t,n))}function R(e,t){return typeof e==`function`?e(t):e}function z(e){return e.split(`-`)[0]}function B(e){return e.split(`-`)[1]}function ve(e){return e===`x`?`y`:`x`}function ye(e){return e===`y`?`height`:`width`}function V(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function be(e){return ve(V(e))}function xe(e,t,n){n===void 0&&(n=!1);let r=B(e),i=be(e),a=ye(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=Ae(o)),[o,Ae(o)]}function Se(e){let t=Ae(e);return[Ce(e),t,Ce(t)]}function Ce(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var we=[`left`,`right`],Te=[`right`,`left`],Ee=[`top`,`bottom`],De=[`bottom`,`top`];function Oe(e,t,n){switch(e){case`top`:case`bottom`:return n?t?Te:we:t?we:Te;case`left`:case`right`:return t?Ee:De;default:return[]}}function ke(e,t,n,r){let i=B(e),a=Oe(z(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(Ce)))),a}function Ae(e){let t=z(e);return ge[t]+e.slice(t.length)}function je(e){return{top:0,right:0,bottom:0,left:0,...e}}function Me(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:je(e)}function H(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function Ne(e,t,n){let{reference:r,floating:i}=e,a=V(t),o=be(t),s=ye(o),c=z(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(B(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1);break}return p}async function Pe(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=R(t,e),p=Me(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=H(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=H(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var Fe=50,Ie=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:Pe},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=Ne(l,r,c),f=r,p=0,m={};for(let n=0;n<a.length;n++){let h=a[n];if(!h)continue;let{name:g,fn:_}=h,{x:v,y,data:b,reset:x}=await _({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:m,rects:l,platform:s,elements:{reference:e,floating:t}});u=v??u,d=y??d,m[g]={...m[g],...b},x&&p<Fe&&(p++,typeof x==`object`&&(x.placement&&(f=x.placement),x.rects&&(l=x.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):x.rects),{x:u,y:d}=Ne(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:m}},Le=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=R(e,t)||{};if(l==null)return{};let d=Me(u),f={x:n,y:r},p=be(i),m=ye(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=F(d[_],T),D=F(d[v],T),O=E,k=C-h[m]-D,A=C/2-h[m]/2+w,j=_e(O,A,k),M=!c.arrow&&B(i)!=null&&A!==j&&a.reference[m]/2-(A<O?E:D)-h[m]/2<0,N=M?A<O?A-O:A-k:0;return{[p]:f[p]+N,data:{[p]:j,centerOffset:A-j-N,...M&&{alignmentOffset:N}},reset:M}}});function Re(e,t,n){return(e?[...n.filter(t=>B(t)===e),...n.filter(t=>B(t)!==e)]:n.filter(e=>z(e)===e)).filter(n=>e?B(n)===e||(t?Ce(n)!==n:!1):!0)}var ze=function(e){return e===void 0&&(e={}),{name:`autoPlacement`,options:e,async fn(t){let{rects:n,middlewareData:r,placement:i,platform:a,elements:o}=t,{crossAxis:s=!1,alignment:c,allowedPlacements:l=me,autoAlignment:u=!0,...d}=R(e,t),f=c!==void 0||l===me?Re(c||null,u,l):l,p=await a.detectOverflow(t,d),m=r.autoPlacement?.index||0,h=f[m];if(h==null)return{};let g=xe(h,n,await(a.isRTL==null?void 0:a.isRTL(o.floating)));if(i!==h)return{reset:{placement:f[0]}};let _=[p[z(h)],p[g[0]],p[g[1]]],v=[...r.autoPlacement?.overflows||[],{placement:h,overflows:_}],y=f[m+1];if(y)return{data:{index:m+1,overflows:v},reset:{placement:y}};let b=v.map(e=>{let t=B(e.placement);return[e.placement,t&&s?e.overflows.slice(0,2).reduce((e,t)=>e+t,0):e.overflows[0],e.overflows]}).sort((e,t)=>e[1]-t[1]),x=b.filter(e=>e[2].slice(0,B(e[0])?2:3).every(e=>e<=0))[0]?.[0]||b[0][0];return x===i?{}:{data:{index:m+1,overflows:v},reset:{placement:x}}}}},Be=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=R(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=z(r),_=V(o),v=z(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[Ae(o)]:Se(o)),x=p!==`none`;!d&&x&&b.push(...ke(o,m,p,y));let S=[o,...b],C=await s.detectOverflow(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=xe(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(!(u===`alignment`&&_!==V(t))||T.every(e=>V(e.placement)===_?e.overflows[0]>0:!0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=V(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o;break}if(r!==n)return{reset:{placement:n}}}return{}}}};function Ve(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function He(e){return fe.some(t=>e[t]>=0)}var Ue=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n,platform:r}=t,{strategy:i=`referenceHidden`,...a}=R(e,t);switch(i){case`referenceHidden`:{let e=Ve(await r.detectOverflow(t,{...a,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:He(e)}}}case`escaped`:{let e=Ve(await r.detectOverflow(t,{...a,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:He(e)}}}default:return{}}}}};function We(e){let t=F(...e.map(e=>e.left)),n=F(...e.map(e=>e.top)),r=I(...e.map(e=>e.right)),i=I(...e.map(e=>e.bottom));return{x:t,y:n,width:r-t,height:i-n}}function Ge(e){let t=e.slice().sort((e,t)=>e.y-t.y),n=[],r=null;for(let e=0;e<t.length;e++){let i=t[e];!r||i.y-r.y>r.height/2?n.push([i]):n[n.length-1].push(i),r=i}return n.map(e=>H(We(e)))}var Ke=function(e){return e===void 0&&(e={}),{name:`inline`,options:e,async fn(t){let{placement:n,elements:r,rects:i,platform:a,strategy:o}=t,{padding:s=2,x:c,y:l}=R(e,t),u=Array.from(await(a.getClientRects==null?void 0:a.getClientRects(r.reference))||[]),d=Ge(u),f=H(We(u)),p=Me(s);function m(){if(d.length===2&&d[0].left>d[1].right&&c!=null&&l!=null)return d.find(e=>c>e.left-p.left&&c<e.right+p.right&&l>e.top-p.top&&l<e.bottom+p.bottom)||f;if(d.length>=2){if(V(n)===`y`){let e=d[0],t=d[d.length-1],r=z(n)===`top`,i=e.top,a=t.bottom,o=r?e.left:t.left,s=r?e.right:t.right;return{top:i,bottom:a,left:o,right:s,width:s-o,height:a-i,x:o,y:i}}let e=z(n)===`left`,t=I(...d.map(e=>e.right)),r=F(...d.map(e=>e.left)),i=d.filter(n=>e?n.left===r:n.right===t),a=i[0].top,o=i[i.length-1].bottom,s=r,c=t;return{top:a,bottom:o,left:s,right:c,width:c-s,height:o-a,x:s,y:a}}return f}let h=await a.getElementRects({reference:{getBoundingClientRect:m},floating:r.floating,strategy:o});return i.reference.x!==h.reference.x||i.reference.y!==h.reference.y||i.reference.width!==h.reference.width||i.reference.height!==h.reference.height?{reset:{rects:h}}:{}}}},qe=new Set([`left`,`top`]);async function Je(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=z(n),s=B(n),c=V(n)===`y`,l=qe.has(o)?-1:1,u=a&&c?-1:1,d=R(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var Ye=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await Je(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},Xe=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=R(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=V(z(i)),p=ve(f),m=u[p],h=u[f];if(o){let e=p===`y`?`top`:`left`,t=p===`y`?`bottom`:`right`,n=m+d[e],r=m-d[t];m=_e(n,m,r)}if(s){let e=f===`y`?`top`:`left`,t=f===`y`?`bottom`:`right`,n=h+d[e],r=h-d[t];h=_e(n,h,r)}let g=c.fn({...t,[p]:m,[f]:h});return{...g,data:{x:g.x-n,y:g.y-r,enabled:{[p]:o,[f]:s}}}}}},Ze=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){var n,r;let{placement:i,rects:a,platform:o,elements:s}=t,{apply:c=()=>{},...l}=R(e,t),u=await o.detectOverflow(t,l),d=z(i),f=B(i),p=V(i)===`y`,{width:m,height:h}=a.floating,g,_;d===`top`||d===`bottom`?(g=d,_=f===(await(o.isRTL==null?void 0:o.isRTL(s.floating))?`start`:`end`)?`left`:`right`):(_=d,g=f===`end`?`top`:`bottom`);let v=h-u.top-u.bottom,y=m-u.left-u.right,b=F(h-u[g],v),x=F(m-u[_],y),S=!t.middlewareData.shift,C=b,w=x;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(w=y),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(C=v),S&&!f){let e=I(u.left,0),t=I(u.right,0),n=I(u.top,0),r=I(u.bottom,0);p?w=m-2*(e!==0||t!==0?e+t:I(u.left,u.right)):C=h-2*(n!==0||r!==0?n+r:I(u.top,u.bottom))}await c({...t,availableWidth:w,availableHeight:C});let T=await o.getDimensions(s.floating);return m!==T.width||h!==T.height?{reset:{rects:!0}}:{}}}};function Qe(){return typeof window<`u`}function U(e){return $e(e)?(e.nodeName||``).toLowerCase():`#document`}function W(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function G(e){return(($e(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function $e(e){return Qe()?e instanceof Node||e instanceof W(e).Node:!1}function K(e){return Qe()?e instanceof Element||e instanceof W(e).Element:!1}function q(e){return Qe()?e instanceof HTMLElement||e instanceof W(e).HTMLElement:!1}function et(e){return!Qe()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof W(e).ShadowRoot}function tt(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=X(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function nt(e){return/^(table|td|th)$/.test(U(e))}function rt(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var it=/transform|translate|scale|rotate|perspective|filter/,at=/paint|layout|strict|content/,J=e=>!!e&&e!==`none`,ot;function st(e){let t=K(e)?X(e):e;return J(t.transform)||J(t.translate)||J(t.scale)||J(t.rotate)||J(t.perspective)||!lt()&&(J(t.backdropFilter)||J(t.filter))||it.test(t.willChange||``)||at.test(t.contain||``)}function ct(e){let t=Z(e);for(;q(t)&&!Y(t);){if(st(t))return t;if(rt(t))return null;t=Z(t)}return null}function lt(){return ot??(ot=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`)),ot}function Y(e){return/^(html|body|#document)$/.test(U(e))}function X(e){return W(e).getComputedStyle(e)}function ut(e){return K(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Z(e){if(U(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||et(e)&&e.host||G(e);return et(t)?t.host:t}function dt(e){let t=Z(e);return Y(t)?e.ownerDocument?e.ownerDocument.body:e.body:q(t)&&tt(t)?t:dt(t)}function ft(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=dt(e),i=r===e.ownerDocument?.body,a=W(r);if(i){let e=pt(a);return t.concat(a,a.visualViewport||[],tt(r)?r:[],e&&n?ft(e):[])}else return t.concat(r,ft(r,[],n))}function pt(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function mt(e){let t=X(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=q(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=he(n)!==a||he(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function ht(e){return K(e)?e:e.contextElement}function Q(e){let t=ht(e);if(!q(t))return L(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=mt(t),o=(a?he(n.width):n.width)/r,s=(a?he(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var gt=L(0);function _t(e){let t=W(e);return!lt()||!t.visualViewport?gt:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function vt(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==W(e)?!1:t}function yt(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=ht(e),o=L(1);t&&(r?K(r)&&(o=Q(r)):o=Q(e));let s=vt(a,n,r)?_t(a):L(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=W(a),t=r&&K(r)?W(r):r,n=e,i=pt(n);for(;i&&r&&t!==n;){let e=Q(i),t=i.getBoundingClientRect(),r=X(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=W(i),i=pt(n)}}return H({width:u,height:d,x:c,y:l})}function bt(e,t){let n=ut(e).scrollLeft;return t?t.left+n:yt(G(e)).left+n}function xt(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-bt(e,n),y:n.top+t.scrollTop}}function St(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=G(r),s=t?rt(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=L(1),u=L(0),d=q(r);if((d||!d&&!a)&&((U(r)!==`body`||tt(o))&&(c=ut(r)),d)){let e=yt(r);l=Q(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?xt(o,c):L(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function Ct(e){return Array.from(e.getClientRects())}function wt(e){let t=G(e),n=ut(e),r=e.ownerDocument.body,i=I(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=I(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+bt(e),s=-n.scrollTop;return X(r).direction===`rtl`&&(o+=I(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var Tt=25;function Et(e,t){let n=W(e),r=G(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=lt();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=bt(r);if(l<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),i=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,o=Math.abs(r.clientWidth-t.clientWidth-i);o<=Tt&&(a-=o)}else l<=Tt&&(a+=l);return{width:a,height:o,x:s,y:c}}function Dt(e,t){let n=yt(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=q(e)?Q(e):L(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function Ot(e,t,n){let r;if(t===`viewport`)r=Et(e,n);else if(t===`document`)r=wt(G(e));else if(K(t))r=Dt(t,n);else{let n=_t(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return H(r)}function kt(e,t){let n=Z(e);return n===t||!K(n)||Y(n)?!1:X(n).position===`fixed`||kt(n,t)}function At(e,t){let n=t.get(e);if(n)return n;let r=ft(e,[],!1).filter(e=>K(e)&&U(e)!==`body`),i=null,a=X(e).position===`fixed`,o=a?Z(e):e;for(;K(o)&&!Y(o);){let t=X(o),n=st(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||tt(o)&&!n&&kt(e,o))?r=r.filter(e=>e!==o):i=t,o=Z(o)}return t.set(e,r),r}function jt(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?rt(t)?[]:At(t,this._c):[].concat(n),r],o=Ot(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e<a.length;e++){let n=Ot(t,a[e],i);s=I(n.top,s),c=F(n.right,c),l=F(n.bottom,l),u=I(n.left,u)}return{width:c-u,height:l-s,x:u,y:s}}function Mt(e){let{width:t,height:n}=mt(e);return{width:t,height:n}}function Nt(e,t,n){let r=q(t),i=G(t),a=n===`fixed`,o=yt(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=L(0);function l(){c.x=bt(i)}if(r||!r&&!a)if((U(t)!==`body`||tt(i))&&(s=ut(t)),r){let e=yt(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}else i&&l();a&&!r&&i&&l();let u=i&&!r&&!a?xt(i,s):L(0);return{x:o.left+s.scrollLeft-c.x-u.x,y:o.top+s.scrollTop-c.y-u.y,width:o.width,height:o.height}}function Pt(e){return X(e).position===`static`}function Ft(e,t){if(!q(e)||X(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return G(e)===n&&(n=n.ownerDocument.body),n}function It(e,t){let n=W(e);if(rt(e))return n;if(!q(e)){let t=Z(e);for(;t&&!Y(t);){if(K(t)&&!Pt(t))return t;t=Z(t)}return n}let r=Ft(e,t);for(;r&&nt(r)&&Pt(r);)r=Ft(r,t);return r&&Y(r)&&Pt(r)&&!st(r)?n:r||ct(e)||n}var Lt=async function(e){let t=this.getOffsetParent||It,n=this.getDimensions,r=await n(e.floating);return{reference:Nt(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function Rt(e){return X(e).direction===`rtl`}var zt={convertOffsetParentRelativeRectToViewportRelativeRect:St,getDocumentElement:G,getClippingRect:jt,getOffsetParent:It,getElementRects:Lt,getClientRects:Ct,getDimensions:Mt,getScale:Q,isElement:K,isRTL:Rt},Bt=Ye,Vt=ze,Ht=Xe,Ut=Be,Wt=Ze,Gt=Ue,Kt=Le,qt=Ke,Jt=(e,t,n)=>{let r=new Map,i={platform:zt,...n},a={...i.platform,_c:r};return Ie(e,t,{...i,platform:a})};function Yt(e,t){let n=Math.min(e.top,t.top),r=Math.max(e.bottom,t.bottom),i=Math.min(e.left,t.left),a=Math.max(e.right,t.right)-i,o=r-n;return new DOMRect(i,n,a,o)}var Xt=class{constructor({editor:e,element:t,view:n,updateDelay:r=250,resizeDelay:i=60,shouldShow:a,appendTo:o,getReferencedVirtualElement:s,options:c}){this.preventHide=!1,this.isVisible=!1,this.scrollTarget=window,this.floatingUIOptions={strategy:`absolute`,placement:`top`,offset:8,flip:{},shift:{},arrow:!1,size:!1,autoPlacement:!1,hide:!1,inline:!1,onShow:void 0,onHide:void 0,onUpdate:void 0,onDestroy:void 0},this.shouldShow=({view:e,state:t,from:n,to:r})=>{let{doc:i,selection:a}=t,{empty:o}=a,s=!i.textBetween(n,r).length&&(0,x.isTextSelection)(t.selection),c=this.element.contains(document.activeElement);return!(!(e.hasFocus()||c)||o||s||!this.editor.isEditable)},this.mousedownHandler=()=>{this.preventHide=!0},this.dragstartHandler=()=>{this.hide()},this.resizeHandler=()=>{this.resizeDebounceTimer&&clearTimeout(this.resizeDebounceTimer),this.resizeDebounceTimer=window.setTimeout(()=>{this.updatePosition()},this.resizeDelay)},this.focusHandler=()=>{setTimeout(()=>this.update(this.editor.view))},this.blurHandler=({event:e})=>{if(this.editor.isDestroyed){this.destroy();return}if(this.preventHide){this.preventHide=!1;return}e?.relatedTarget&&this.element.parentNode?.contains(e.relatedTarget)||e?.relatedTarget!==this.editor.view.dom&&this.hide()},this.handleDebouncedUpdate=(e,t)=>{let n=!t?.selection.eq(e.state.selection),r=!t?.doc.eq(e.state.doc);!n&&!r||(this.updateDebounceTimer&&clearTimeout(this.updateDebounceTimer),this.updateDebounceTimer=window.setTimeout(()=>{this.updateHandler(e,n,r,t)},this.updateDelay))},this.updateHandler=(e,t,n,r)=>{let{composing:i}=e;if(!(i||!t&&!n)){if(!this.getShouldShow(r)){this.hide();return}this.updatePosition(),this.show()}},this.transactionHandler=({transaction:e})=>{let t=e.getMeta(`bubbleMenu`);t===`updatePosition`?this.updatePosition():t&&typeof t==`object`&&t.type===`updateOptions`&&this.updateOptions(t.options)},this.editor=e,this.element=t,this.view=n,this.updateDelay=r,this.resizeDelay=i,this.appendTo=o,this.scrollTarget=c?.scrollTarget??window,this.getReferencedVirtualElement=s,this.floatingUIOptions={...this.floatingUIOptions,...c},this.element.tabIndex=0,a&&(this.shouldShow=a),this.element.addEventListener(`mousedown`,this.mousedownHandler,{capture:!0}),this.view.dom.addEventListener(`dragstart`,this.dragstartHandler),this.editor.on(`focus`,this.focusHandler),this.editor.on(`blur`,this.blurHandler),this.editor.on(`transaction`,this.transactionHandler),window.addEventListener(`resize`,this.resizeHandler),this.scrollTarget.addEventListener(`scroll`,this.resizeHandler),this.update(n,n.state),this.getShouldShow()&&(this.show(),this.updatePosition())}get middlewares(){let e=[];return this.floatingUIOptions.flip&&e.push(Ut(typeof this.floatingUIOptions.flip==`boolean`?void 0:this.floatingUIOptions.flip)),this.floatingUIOptions.shift&&e.push(Ht(typeof this.floatingUIOptions.shift==`boolean`?void 0:this.floatingUIOptions.shift)),this.floatingUIOptions.offset&&e.push(Bt(typeof this.floatingUIOptions.offset==`boolean`?void 0:this.floatingUIOptions.offset)),this.floatingUIOptions.arrow&&e.push(Kt(this.floatingUIOptions.arrow)),this.floatingUIOptions.size&&e.push(Wt(typeof this.floatingUIOptions.size==`boolean`?void 0:this.floatingUIOptions.size)),this.floatingUIOptions.autoPlacement&&e.push(Vt(typeof this.floatingUIOptions.autoPlacement==`boolean`?void 0:this.floatingUIOptions.autoPlacement)),this.floatingUIOptions.hide&&e.push(Gt(typeof this.floatingUIOptions.hide==`boolean`?void 0:this.floatingUIOptions.hide)),this.floatingUIOptions.inline&&e.push(qt(typeof this.floatingUIOptions.inline==`boolean`?void 0:this.floatingUIOptions.inline)),e}get virtualElement(){let{selection:e}=this.editor.state,t=this.getReferencedVirtualElement?.call(this);if(t)return t;if(!this.view?.dom?.parentNode)return;let n=(0,x.posToDOMRect)(this.view,e.from,e.to),r={getBoundingClientRect:()=>n,getClientRects:()=>[n]};if(e instanceof S.NodeSelection){let t=this.view.nodeDOM(e.from),n=t.dataset.nodeViewWrapper?t:t.querySelector(`[data-node-view-wrapper]`);n&&(t=n),t&&(r={getBoundingClientRect:()=>t.getBoundingClientRect(),getClientRects:()=>[t.getBoundingClientRect()]})}if(e instanceof C.CellSelection){let{$anchorCell:t,$headCell:n}=e,i=t?t.pos:n.pos,a=n?n.pos:t.pos,o=this.view.nodeDOM(i),s=this.view.nodeDOM(a);if(!o||!s)return;let c=o===s?o.getBoundingClientRect():Yt(o.getBoundingClientRect(),s.getBoundingClientRect());r={getBoundingClientRect:()=>c,getClientRects:()=>[c]}}return r}updatePosition(){let e=this.virtualElement;e&&Jt(e,this.element,{placement:this.floatingUIOptions.placement,strategy:this.floatingUIOptions.strategy,middleware:this.middlewares}).then(({x:e,y:t,strategy:n,middlewareData:r})=>{if(r.hide?.referenceHidden||r.hide?.escaped){this.element.style.visibility=`hidden`;return}this.element.style.visibility=`visible`,this.element.style.width=`max-content`,this.element.style.position=n,this.element.style.left=`${e}px`,this.element.style.top=`${t}px`,this.isVisible&&this.floatingUIOptions.onUpdate&&this.floatingUIOptions.onUpdate()})}update(e,t){let{state:n}=e,r=n.selection.from!==n.selection.to;if(this.updateDelay>0&&r){this.handleDebouncedUpdate(e,t);return}let i=!t?.selection.eq(e.state.selection),a=!t?.doc.eq(e.state.doc);this.updateHandler(e,i,a,t)}getShouldShow(e){let{state:t}=this.view,{selection:n}=t,{ranges:r}=n,i=Math.min(...r.map(e=>e.$from.pos)),a=Math.max(...r.map(e=>e.$to.pos));return this.shouldShow?.call(this,{editor:this.editor,element:this.element,view:this.view,state:t,oldState:e,from:i,to:a})||!1}show(){var e;this.isVisible||(this.element.style.visibility=`visible`,this.element.style.opacity=`1`,(e=(typeof this.appendTo==`function`?this.appendTo():this.appendTo)??this.view.dom.parentElement)==null||e.appendChild(this.element),this.floatingUIOptions.onShow&&this.floatingUIOptions.onShow(),this.isVisible=!0)}hide(){this.isVisible&&(this.element.style.visibility=`hidden`,this.element.style.opacity=`0`,this.element.remove(),this.floatingUIOptions.onHide&&this.floatingUIOptions.onHide(),this.isVisible=!1)}updateOptions(e){if(e.updateDelay!==void 0&&(this.updateDelay=e.updateDelay),e.resizeDelay!==void 0&&(this.resizeDelay=e.resizeDelay),e.appendTo!==void 0&&(this.appendTo=e.appendTo),e.getReferencedVirtualElement!==void 0&&(this.getReferencedVirtualElement=e.getReferencedVirtualElement),e.shouldShow!==void 0&&e.shouldShow&&(this.shouldShow=e.shouldShow),e.options!==void 0){let t=e.options.scrollTarget??window;t!==this.scrollTarget&&(this.scrollTarget.removeEventListener(`scroll`,this.resizeHandler),this.scrollTarget=t,this.scrollTarget.addEventListener(`scroll`,this.resizeHandler)),this.floatingUIOptions={...this.floatingUIOptions,...e.options}}}destroy(){this.hide(),this.element.removeEventListener(`mousedown`,this.mousedownHandler,{capture:!0}),this.view.dom.removeEventListener(`dragstart`,this.dragstartHandler),window.removeEventListener(`resize`,this.resizeHandler),this.scrollTarget.removeEventListener(`scroll`,this.resizeHandler),this.editor.off(`focus`,this.focusHandler),this.editor.off(`blur`,this.blurHandler),this.editor.off(`transaction`,this.transactionHandler),this.floatingUIOptions.onDestroy&&this.floatingUIOptions.onDestroy()}},Zt=e=>new S.Plugin({key:typeof e.pluginKey==`string`?new S.PluginKey(e.pluginKey):e.pluginKey,view:t=>new Xt({view:t,...e})}),Qt=(0,v.defineComponent)({name:`BubbleMenu`,inheritAttrs:!1,props:{pluginKey:{type:[String,Object],default:`bubbleMenu`},editor:{type:Object,required:!0},updateDelay:{type:Number,default:void 0},resizeDelay:{type:Number,default:void 0},options:{type:Object,default:()=>({})},appendTo:{type:[Object,Function],default:void 0},shouldShow:{type:Function,default:null},getReferencedVirtualElement:{type:Function,default:void 0}},setup(e,{slots:t,attrs:n}){let r=(0,v.ref)(null);return(0,v.onMounted)(()=>{let{editor:t,options:n,pluginKey:i,resizeDelay:a,appendTo:o,shouldShow:s,getReferencedVirtualElement:c,updateDelay:l}=e,u=r.value;u&&(u.style.visibility=`hidden`,u.style.position=`absolute`,u.remove(),(0,v.nextTick)(()=>{t.registerPlugin(Zt({editor:t,element:u,options:n,pluginKey:i,resizeDelay:a,appendTo:o,shouldShow:s,getReferencedVirtualElement:c,updateDelay:l}))}))}),(0,v.onBeforeUnmount)(()=>{let{pluginKey:t,editor:n}=e;n.unregisterPlugin(t)}),()=>(0,v.h)(`div`,{ref:r,...n},t.default?.call(t))}}),$t=class{constructor({editor:e,element:t,view:n,updateDelay:r=250,resizeDelay:i=60,options:a,appendTo:o,shouldShow:s}){this.preventHide=!1,this.isVisible=!1,this.scrollTarget=window,this.shouldShow=({view:e,state:t})=>{let{selection:n}=t,{$anchor:r,empty:i}=n,a=r.depth===1,o=r.parent.isTextblock&&!r.parent.type.spec.code&&!r.parent.textContent&&r.parent.childCount===0&&!this.getTextContent(r.parent);return!(!e.hasFocus()||!i||!a||!o||!this.editor.isEditable)},this.floatingUIOptions={strategy:`absolute`,placement:`right`,offset:8,flip:{},shift:{},arrow:!1,size:!1,autoPlacement:!1,hide:!1,inline:!1},this.updateHandler=(e,t,n,r)=>{let{composing:i}=e;if(!(i||!t&&!n)){if(!this.getShouldShow(r)){this.hide();return}this.updatePosition(),this.show()}},this.mousedownHandler=()=>{this.preventHide=!0},this.focusHandler=()=>{setTimeout(()=>this.update(this.editor.view))},this.blurHandler=({event:e})=>{if(this.preventHide){this.preventHide=!1;return}e?.relatedTarget&&this.element.parentNode?.contains(e.relatedTarget)||e?.relatedTarget!==this.editor.view.dom&&this.hide()},this.transactionHandler=({transaction:e})=>{let t=e.getMeta(`floatingMenu`);t===`updatePosition`?this.updatePosition():t&&typeof t==`object`&&t.type===`updateOptions`&&this.updateOptions(t.options)},this.resizeHandler=()=>{this.resizeDebounceTimer&&clearTimeout(this.resizeDebounceTimer),this.resizeDebounceTimer=window.setTimeout(()=>{this.updatePosition()},this.resizeDelay)},this.editor=e,this.element=t,this.view=n,this.updateDelay=r,this.resizeDelay=i,this.appendTo=o,this.scrollTarget=a?.scrollTarget??window,this.floatingUIOptions={...this.floatingUIOptions,...a},this.element.tabIndex=0,s&&(this.shouldShow=s),this.element.addEventListener(`mousedown`,this.mousedownHandler,{capture:!0}),this.editor.on(`focus`,this.focusHandler),this.editor.on(`blur`,this.blurHandler),this.editor.on(`transaction`,this.transactionHandler),window.addEventListener(`resize`,this.resizeHandler),this.scrollTarget.addEventListener(`scroll`,this.resizeHandler),this.update(n,n.state),this.getShouldShow()&&(this.show(),this.updatePosition())}getTextContent(e){return(0,x.getText)(e,{textSerializers:(0,x.getTextSerializersFromSchema)(this.editor.schema)})}get middlewares(){let e=[];return this.floatingUIOptions.flip&&e.push(Ut(typeof this.floatingUIOptions.flip==`boolean`?void 0:this.floatingUIOptions.flip)),this.floatingUIOptions.shift&&e.push(Ht(typeof this.floatingUIOptions.shift==`boolean`?void 0:this.floatingUIOptions.shift)),this.floatingUIOptions.offset&&e.push(Bt(typeof this.floatingUIOptions.offset==`boolean`?void 0:this.floatingUIOptions.offset)),this.floatingUIOptions.arrow&&e.push(Kt(this.floatingUIOptions.arrow)),this.floatingUIOptions.size&&e.push(Wt(typeof this.floatingUIOptions.size==`boolean`?void 0:this.floatingUIOptions.size)),this.floatingUIOptions.autoPlacement&&e.push(Vt(typeof this.floatingUIOptions.autoPlacement==`boolean`?void 0:this.floatingUIOptions.autoPlacement)),this.floatingUIOptions.hide&&e.push(Gt(typeof this.floatingUIOptions.hide==`boolean`?void 0:this.floatingUIOptions.hide)),this.floatingUIOptions.inline&&e.push(qt(typeof this.floatingUIOptions.inline==`boolean`?void 0:this.floatingUIOptions.inline)),e}getShouldShow(e){let{state:t}=this.view,{selection:n}=t,{ranges:r}=n,i=Math.min(...r.map(e=>e.$from.pos)),a=Math.max(...r.map(e=>e.$to.pos));return this.shouldShow?.call(this,{editor:this.editor,view:this.view,state:t,oldState:e,from:i,to:a})}updateOptions(e){if(e.updateDelay!==void 0&&(this.updateDelay=e.updateDelay),e.resizeDelay!==void 0&&(this.resizeDelay=e.resizeDelay),e.appendTo!==void 0&&(this.appendTo=e.appendTo),e.shouldShow!==void 0&&e.shouldShow&&(this.shouldShow=e.shouldShow),e.options!==void 0){let t=e.options.scrollTarget??window;t!==this.scrollTarget&&(this.scrollTarget.removeEventListener(`scroll`,this.resizeHandler),this.scrollTarget=t,this.scrollTarget.addEventListener(`scroll`,this.resizeHandler)),this.floatingUIOptions={...this.floatingUIOptions,...e.options}}}updatePosition(){let{selection:e}=this.editor.state,t=(0,x.posToDOMRect)(this.view,e.from,e.to);Jt({getBoundingClientRect:()=>t,getClientRects:()=>[t]},this.element,{placement:this.floatingUIOptions.placement,strategy:this.floatingUIOptions.strategy,middleware:this.middlewares}).then(({x:e,y:t,strategy:n,middlewareData:r})=>{if(r.hide?.referenceHidden||r.hide?.escaped){this.element.style.visibility=`hidden`;return}this.element.style.visibility=`visible`,this.element.style.width=`max-content`,this.element.style.position=n,this.element.style.left=`${e}px`,this.element.style.top=`${t}px`,this.isVisible&&this.floatingUIOptions.onUpdate&&this.floatingUIOptions.onUpdate()})}update(e,t){let n=!t?.selection.eq(e.state.selection),r=!t?.doc.eq(e.state.doc);this.updateHandler(e,n,r,t)}show(){var e;this.isVisible||(this.element.style.visibility=`visible`,this.element.style.opacity=`1`,(e=(typeof this.appendTo==`function`?this.appendTo():this.appendTo)??this.view.dom.parentElement)==null||e.appendChild(this.element),this.floatingUIOptions.onShow&&this.floatingUIOptions.onShow(),this.isVisible=!0)}hide(){this.isVisible&&(this.element.style.visibility=`hidden`,this.element.style.opacity=`0`,this.element.remove(),this.floatingUIOptions.onHide&&this.floatingUIOptions.onHide(),this.isVisible=!1)}destroy(){this.hide(),this.element.removeEventListener(`mousedown`,this.mousedownHandler,{capture:!0}),window.removeEventListener(`resize`,this.resizeHandler),this.scrollTarget.removeEventListener(`scroll`,this.resizeHandler),this.editor.off(`focus`,this.focusHandler),this.editor.off(`blur`,this.blurHandler),this.editor.off(`transaction`,this.transactionHandler),this.floatingUIOptions.onDestroy&&this.floatingUIOptions.onDestroy()}},en=e=>new S.Plugin({key:typeof e.pluginKey==`string`?new S.PluginKey(e.pluginKey):e.pluginKey,view:t=>new $t({view:t,...e})});(0,v.defineComponent)({name:`FloatingMenu`,inheritAttrs:!1,props:{pluginKey:{type:null,default:`floatingMenu`},editor:{type:Object,required:!0},updateDelay:{type:Number,default:void 0},resizeDelay:{type:Number,default:void 0},options:{type:Object,default:()=>({})},appendTo:{type:[Object,Function],default:void 0},shouldShow:{type:Function,default:null}},setup(e,{slots:t,attrs:n}){let r=(0,v.ref)(null);return(0,v.onMounted)(()=>{let{pluginKey:t,editor:n,updateDelay:i,resizeDelay:a,options:o,appendTo:s,shouldShow:c}=e,l=r.value;l&&(l.style.visibility=`hidden`,l.style.position=`absolute`,l.remove(),n.registerPlugin(en({pluginKey:t,editor:n,element:l,updateDelay:i,resizeDelay:a,options:o,appendTo:s,shouldShow:c})))}),(0,v.onBeforeUnmount)(()=>{let{pluginKey:t,editor:n}=e;n.unregisterPlugin(t)}),()=>(0,v.h)(`div`,{ref:r,...n},t.default?.call(t))}});var $=e=>({default:null,parseHTML:t=>t.getAttribute(e),renderHTML:t=>t[e]?{[e]:t[e]}:{}}),tn=()=>{let e=$(`style`);return e.renderHTML=e=>e.style?{style:nn(e.style)}:{},e};function nn(e){return e.replace(/(?<![a-z-])width\s*:\s*([^;]+);?/gi,(e,t)=>/^\s*0\s*[a-z%]*\s*(!important)?\s*$/i.test(t)?`width: 100%;`:e)}var rn=ae.Table.extend({addAttributes(){return{...this.parent?.(),border:$(`border`),cellpadding:$(`cellpadding`),cellspacing:$(`cellspacing`),style:tn()}},renderHTML({HTMLAttributes:e}){return[`table`,(0,x.mergeAttributes)(this.options.HTMLAttributes,e),[`tbody`,0]]}}),an=ae.TableRow.extend({addAttributes(){return{...this.parent?.(),style:$(`style`)}}}),on={style:$(`style`),valign:$(`valign`),width:$(`width`)},sn=ae.TableCell.extend({addAttributes(){return{...this.parent?.(),...on}}}),cn=ae.TableHeader.extend({addAttributes(){return{...this.parent?.(),...on}}}),ln=oe.TextStyle.extend({parseHTML(){return[...this.parent?.()||[],{tag:`div`,consuming:!1,getAttrs:e=>e.hasAttribute(`style`)?{}:!1},{tag:`a`,consuming:!1,getAttrs:e=>e.hasAttribute(`style`)?{}:!1}]}}),un={compatConfig:{MODE:3},name:`EmojiComponent`,components:{NodeViewWrapper:h.NodeViewWrapper,DtEmoji:p.default},props:h.nodeViewProps};function dn(e,t,n,r,i,a){let o=(0,v.resolveComponent)(`dt-emoji`),s=(0,v.resolveComponent)(`node-view-wrapper`);return(0,v.openBlock)(),(0,v.createBlock)(s,{class:`d-d-inline-block d-va-bottom d-lh0`},{default:(0,v.withCtx)(()=>[(0,v.createVNode)(o,{size:`500`,code:e.node.attrs.code},null,8,[`code`])]),_:1})}var fn=n.t(un,[[`render`,dn]]),pn={compatConfig:{MODE:3},name:`SuggestionList`,components:{DtListItem:u.default},props:{items:{type:Array,required:!0},command:{type:Function,required:!0},itemComponent:{type:Object,required:!0},itemType:{type:String,required:!0}},data(){return{selectedIndex:0}},watch:{items(){this.selectedIndex=0}},methods:{onKeyDown({event:e}){return e.key===`ArrowUp`?(this.upHandler(),!0):e.key===`ArrowDown`?(this.downHandler(),!0):e.key===`Enter`||e.key===`Tab`?(this.selectHandler(),!0):!1},upHandler(){this.selectedIndex=(this.selectedIndex+this.items.length-1)%this.items.length,this.scrollActiveElementIntoView()},downHandler(){this.selectedIndex=(this.selectedIndex+1)%this.items.length,this.scrollActiveElementIntoView()},async scrollActiveElementIntoView(){await this.$nextTick();let e=this.$refs.suggestionList.querySelector(`.d-list-item--highlighted`);e&&e.scrollIntoView({behavior:`smooth`,block:`nearest`})},selectHandler(){this.selectItem(this.selectedIndex)},selectItem(e){let t=this.items[e];switch(this.itemType){case`emoji`:this.command(t);return;case`mention`:this.command({name:t.name,id:t.id,avatarSrc:t.avatarSrc,contactKey:t.contactKey});break;case`channel`:this.command({name:t.name,id:t.id,locked:t.locked,channelKey:t.channelKey});break;case`slash-command`:this.command({command:t.command});break}}}},mn={class:`d-popover__dialog d-suggestion-list__container`},hn={ref:`suggestionList`,class:`d-suggestion-list`};function gn(e,t,n,r,i,a){let o=(0,v.resolveComponent)(`dt-list-item`);return(0,v.openBlock)(),(0,v.createElementBlock)(`div`,mn,[(0,v.withDirectives)((0,v.createElementVNode)(`ul`,hn,[((0,v.openBlock)(!0),(0,v.createElementBlock)(v.Fragment,null,(0,v.renderList)(n.items,(e,t)=>((0,v.openBlock)(),(0,v.createBlock)(o,{key:e.id,class:(0,v.normalizeClass)([`d-suggestion-list__item`,{"d-list-item--highlighted":t===i.selectedIndex}]),"navigation-type":`arrow-keys`,onClick:e=>a.selectItem(t),onKeydown:(0,v.withModifiers)(a.onKeyDown,[`prevent`])},{default:(0,v.withCtx)(()=>[((0,v.openBlock)(),(0,v.createBlock)((0,v.resolveDynamicComponent)(n.itemComponent),{item:e},null,8,[`item`]))]),_:2},1032,[`class`,`onClick`,`onKeydown`]))),128))],512),[[v.vShow,n.items.length]])])}var _n=n.t(pn,[[`render`,gn]]),vn=`top-start`;function yn(){return{getBoundingClientRect:()=>({width:0,height:0,x:0,y:0,top:0,left:0,right:0,bottom:0})}}function bn(e){return{getBoundingClientRect:e}}async function xn(e,t,n={}){if(!e||!t?.getBoundingClientRect)return;let{placement:r=vn,middleware:i=[Bt(0),Ut(),Ht({padding:8})]}=n,{x:a,y:o}=await Jt(t,e,{placement:r,middleware:i});Object.assign(e.style,{left:`${a}px`,top:`${o}px`})}function Sn(e,t={}){let{zIndex:n=`650`}=t;e.style.position=`absolute`,e.style.zIndex=n,e.style.display=`none`}function Cn(e){e&&(e.style.display=`block`)}function wn(e){e&&(e.style.display=`none`)}function Tn(e,t){return n=>{n.key===`Escape`&&t()&&e()}}function En(e){document.addEventListener(`keydown`,e)}function Dn(e){document.removeEventListener(`keydown`,e)}function On(e,t,n,r){return new h.VueRenderer(e,{props:{itemComponent:(0,v.markRaw)(t),itemType:n,...r},editor:r.editor})}function kn(e){e.escHandler&&Dn(e.escHandler),e.floatingEl?.remove(),e.component?.destroy()}function An(e,t,n={}){let{listComponent:r=_n,placement:i=vn,zIndex:a=`650`}=n;return()=>{let n=null,o=null,s=!1,c=yn(),l=null;function u(){xn(o,c,{placement:i})}function d(){o&&(Cn(o),s=!0,u())}function f(){o&&(wn(o),s=!1)}return{onStart:i=>{n=On(r,e,t,i),i.clientRect&&(o=n.element,Sn(o,{zIndex:a}),document.body.appendChild(o),c=bn(i.clientRect),l=Tn(f,()=>s),En(l),i.items.length>0&&d())},onUpdate(e){n?.updateProps(e),e.items.length>0?d():f(),e.clientRect&&(c=bn(e.clientRect),u())},onKeyDown(e){if(s)return n?.ref?.onKeyDown(e)},onExit(){kn({escHandler:l,floatingEl:o,component:n}),l=null,o=null,n=null}}}}var jn={compatConfig:{MODE:3},name:`EmojiSuggestion`,components:{DtEmoji:p.default,DtStack:d.default},props:{item:{type:Object,required:!0}}};function Mn(e,t,n,r,i,a){let o=(0,v.resolveComponent)(`dt-emoji`),s=(0,v.resolveComponent)(`dt-stack`);return(0,v.openBlock)(),(0,v.createBlock)(s,{direction:`row`,gap:`100`},{default:(0,v.withCtx)(()=>[(0,v.createVNode)(o,{size:`200`,code:n.item.code},null,8,[`code`]),(0,v.createTextVNode)(` `+(0,v.toDisplayString)(n.item.code),1)]),_:1})}var Nn=n.t(jn,[[`render`,Mn]]),Pn=20,Fn=(e,t,n)=>{let r=e.shortname?.replaceAll(`:`,``),i=t.shortname?.replaceAll(`:`,``),a=r.startsWith(n),o=i.startsWith(n);return a&&!o?-1:!a&&o?1:r.localeCompare(i)},In={items:({query:e})=>{if(e.length<2)return[];let t=Object.values(r.getEmojiData());return e=e.toLowerCase(),t.filter(t=>[t.name,t.shortname?.replaceAll(`:`,``),...t.keywords||[]].some(t=>t&&t.startsWith(e))).splice(0,Pn).sort((t,n)=>Fn(t,n,e)).map(e=>({code:e.shortname}))},command:({editor:e,range:t,props:n})=>{e.view.state.selection.$to.nodeAfter?.text?.startsWith(` `)&&(t.to+=1),e.chain().focus().insertContentAt(t,[{type:`emoji`,attrs:n}]).run(),window.getSelection()?.collapseToEnd()},render:An(Nn,`emoji`)},Ln=/(:\w+:)$/,Rn=RegExp(y.emojiPattern+`$`),zn=e=>{if(e&&r.codeToEmojiData(e[0]))return{text:e[2]||e[0]}},Bn=e=>[...e.matchAll(r.emojiShortCodeRegex)].filter(e=>r.codeToEmojiData(e[0])).map(e=>({index:e.index,text:e[0],match:e})),Vn=x.Node.create({name:`emoji`,addOptions(){return{HTMLAttributes:{}}},group:`inline`,inline:!0,selectable:!1,atom:!0,addNodeView(){return h.VueNodeViewRenderer(fn)},addAttributes(){return{code:{default:null}}},parseHTML(){return[{tag:`emoji-component`}]},renderText({node:e}){return r.stringToUnicode(r.codeToEmojiData(e.attrs.code).unicode_output)},renderHTML({HTMLAttributes:e}){return[`emoji-component`,(0,x.mergeAttributes)(this.options.HTMLAttributes,e)]},addInputRules(){return[new x.InputRule({find:e=>{let t=e.match(Ln)||e.match(Rn);if(t)return zn(t)},handler:({state:e,range:t,match:n})=>{let{tr:r}=e,i=t.from,a=t.to;r.replaceWith(i,a,this.type.create({code:n[0]}))}})]},addPasteRules(){return[(0,x.nodePasteRule)({find:Bn,type:this.type,getAttributes(e){return{code:e[0]}}}),(0,x.nodePasteRule)({find:r.emojiRegex,type:this.type,getAttributes(e){return{code:e[0]}}})]},addProseMirrorPlugins(){return[(0,se.default)({char:`:`,pluginKey:new S.PluginKey(`emoji`),editor:this.editor,...this.options.suggestion,...In})]},addKeyboardShortcuts(){return{Backspace:()=>this.editor.commands.command(({tr:e,state:t})=>{let n=!1,{selection:r}=t,{empty:i,anchor:a}=r;return i?(t.doc.nodesBetween(a-1,a,(t,r)=>{if(t.type.name===this.name)return n=!0,e.insertText(``,r,r+t.nodeSize),!1}),n):!1})}}});function Hn(e,t,n=()=>!0){let r=[];t.lastIndex=0;let i;for(;i=t.exec(e);)n(e,i)&&r.push(i);return r}function Un(e,t){return![`#`,`@`].includes(e.charAt(t.index))&&![`#`,`@`].includes(e.charAt(t.index-1))}function Wn(e){let t=RegExp(`(?:`+[`[!?.,:;'"]`,`(?:&|&amp;)(?:lt|gt|quot|apos|raquo|laquo|rsaquo|lsaquo);)+$`].join(`|`),`g`);return e.replace(t,``)}function Gn(e,t){let n=e.slice(0,t+1).search(/\S+\s*$/),r=e.slice(t).search(/\s/);if(r<0){let t=e.slice(n);return{text:t,from:n,to:n+t.length}}return{text:e.slice(n,r+t),from:n,to:r+t}}function Kn(e,t,n,r){let i=Gn(e,t);if(r.lastIndex=0,!r.test(i.text))return i;let a=n===`left`?i.from-1:i.to+1;return a<=0||a>=e.length||a===t?i:Kn(e,a,n,r)}function qn(e,t,n,r){let i=(0,x.getMarksBetween)(Math.max(e.from-1,0),Math.min(e.to+1,t.content.size),t);for(let e of i)e.mark.type===r&&n.removeMark(e.from,e.to,r)}var Jn=t.getPhoneNumberRegex(1,15);function Yn(e,n,r,i,a,o){if(!e)return;let s=r-n-1;s=s<0?0:s;let c=i-n,l=Kn(e,s,`left`,Jn),u=Kn(e,c,`right`,Jn);Hn(e.slice(l.from,u.to),t.linkRegex,Un).forEach(e=>{let t=Wn(e[0]),r=n+l.from+e.index+1,i=r+t.length;a.addMark(r,i,o.create())})}function Xn(e){let t=!1;return new S.Plugin({key:new S.PluginKey(`autolink`),appendTransaction:(n,r,i)=>{let a=n.some(e=>e.docChanged)&&!r.doc.eq(i.doc);if(t&&!a)return;let{tr:o}=i,{textContent:s}=i.doc;return t||Yn(s,0,0,s.length,o,e.type),t=!0,(0,x.getChangedRanges)((0,x.combineTransactionSteps)(r.doc,[...n])).forEach(({oldRange:t,newRange:n})=>{qn(n,i.doc,o,e.type),(0,x.findChildrenInRange)(i.doc,n,e=>e.isTextblock).forEach(({node:r,pos:i})=>{Yn(r.textContent,i,t.from,n.to,o,e.type)})}),o}})}var Zn={class:`d-link d-c-text d-d-inline-block d-wb-break-all`,rel:`noopener noreferrer nofollow`},Qn=x.Mark.create({name:`CustomLink`,renderHTML({HTMLAttributes:e}){return[`a`,(0,x.mergeAttributes)(this.options.HTMLAttributes,e,Zn)]},renderText({node:e}){return e.attrs.text},addProseMirrorPlugins(){return[Xn({type:this.type})]}}),$n=ce.default.extend({name:`ConfigurableImage`,addAttributes(){return{src:{default:``},alt:{default:void 0},title:{default:void 0},width:{default:void 0},height:{default:void 0},style:{default:void 0}}}}).configure({inline:!0,allowBase64:!0}),er=new Set(`address.article.aside.blockquote.dd.details.dialog.div.dl.dt.fieldset.figcaption.figure.footer.form.h1.h2.h3.h4.h5.h6.header.hgroup.hr.li.main.nav.ol.p.pre.section.table.ul`.split(`.`)),tr=A.default.extend({parseHTML(){return[{tag:`div`,getAttrs:e=>{for(let t of e.children)if(er.has(t.tagName.toLowerCase()))return!1;return null}}]},renderHTML({HTMLAttributes:e}){return[`div`,(0,x.mergeAttributes)(this.options.HTMLAttributes,e),0]}}),nr={compatConfig:{MODE:3},name:`MentionComponent`,components:{NodeViewWrapper:h.NodeViewWrapper,DtLink:s.default},props:h.nodeViewProps,computed:{text(){return`@`+this.$props.node.attrs.name}},methods:{getMentionData(){return{name:this.$props.node.attrs.name,id:this.$props.node.attrs.id,avatarSrc:this.$props.node.attrs.avatarSrc,contactKey:this.$props.node.attrs.contactKey}},handleClick(){this.$props.editor.emit(`mention-click`,this.getMentionData())},handleMouseEnter(e){this.$props.editor.emit(`mention-hover`,{...this.getMentionData(),event:e})},handleMouseLeave(e){this.$props.editor.emit(`mention-leave`,{...this.getMentionData(),event:e})}}};function rr(e,t,n,r,i,a){let o=(0,v.resolveComponent)(`dt-link`),s=(0,v.resolveComponent)(`node-view-wrapper`);return(0,v.openBlock)(),(0,v.createBlock)(s,{class:`d-d-inline-block`},{default:(0,v.withCtx)(()=>[(0,v.createVNode)(o,{kind:`mention`,onClick:(0,v.withModifiers)(a.handleClick,[`prevent`]),onMouseenter:a.handleMouseEnter,onMouseleave:a.handleMouseLeave,onFocusin:a.handleMouseEnter,onFocusout:a.handleMouseLeave},{default:(0,v.withCtx)(()=>[(0,v.createTextVNode)((0,v.toDisplayString)(a.text),1)]),_:1},8,[`onClick`,`onMouseenter`,`onMouseleave`,`onFocusin`,`onFocusout`])]),_:1})}var ir=n.t(nr,[[`render`,rr]]),ar=P.default.extend({addNodeView(){return h.VueNodeViewRenderer(ir)},parseHTML(){return[{tag:`mention-component`}]},addAttributes(){return{name:{default:``},avatarSrc:{default:``},id:{default:``},contactKey:{default:``}}},renderText({node:e}){return`@${e.attrs.id}`},renderHTML({HTMLAttributes:e}){return[`mention-component`,(0,x.mergeAttributes)(this.options.HTMLAttributes,e)]}}).configure({suggestion:{char:`@`,pluginKey:new S.PluginKey(`mentionSuggestion`)}}),or={compatConfig:{MODE:3},name:`ChannelComponent`,components:{NodeViewWrapper:h.NodeViewWrapper,DtLink:s.default,DtIconLock:b.DtIconLock,DtStack:d.default},props:h.nodeViewProps,computed:{text(){return this.$props.node.attrs.locked?this.$props.node.attrs.name:`#`+this.$props.node.attrs.name}},methods:{handleClick(){let e={name:this.$props.node.attrs.name,id:this.$props.node.attrs.id,locked:this.$props.node.attrs.locked,channelKey:this.$props.node.attrs.channelKey};this.$props.editor.emit(`channel-click`,e)}}};function sr(e,t,n,r,i,a){let o=(0,v.resolveComponent)(`dt-icon-lock`),s=(0,v.resolveComponent)(`dt-stack`),c=(0,v.resolveComponent)(`dt-link`),l=(0,v.resolveComponent)(`node-view-wrapper`);return(0,v.openBlock)(),(0,v.createBlock)(l,{class:`d-d-inline-block`},{default:(0,v.withCtx)(()=>[(0,v.createVNode)(c,{kind:`mention`,onClick:(0,v.withModifiers)(a.handleClick,[`prevent`])},{default:(0,v.withCtx)(()=>[(0,v.createVNode)(s,{direction:`row`,gap:`0`},{default:(0,v.withCtx)(()=>[e.$props.node.attrs.locked?((0,v.openBlock)(),(0,v.createBlock)(o,{key:0,size:`200`})):(0,v.createCommentVNode)(``,!0),(0,v.createElementVNode)(`span`,null,(0,v.toDisplayString)(a.text),1)]),_:1})]),_:1},8,[`onClick`])]),_:1})}var cr=n.t(or,[[`render`,sr]]),lr=P.default.extend({name:`channel`,addNodeView(){return h.VueNodeViewRenderer(cr)},parseHTML(){return[{tag:`channel-component`}]},addAttributes(){return{name:{default:``},id:{default:``},locked:{default:!1},channelKey:{default:``}}},renderText({node:e}){return`#${e.attrs.id}`},renderHTML({HTMLAttributes:e}){return[`channel-component`,(0,x.mergeAttributes)(this.options.HTMLAttributes,e)]}}).configure({suggestion:{char:`#`,pluginKey:new S.PluginKey(`channelSuggestion`)}}),ur={compatConfig:{MODE:3},name:`SlashCommandsComponent`,components:{NodeViewWrapper:h.NodeViewWrapper},props:{...h.nodeViewProps},emits:[`selected-command`],computed:{text(){return`/`+this.$props.node.attrs.command}},created(){let e=this.$props.node.attrs.command;this.$emit(`selected-command`,e);let t=this.editor?.storage?.[`slash-commands`]?.onSelectedCommand;t&&typeof t==`function`&&t(e)}};function dr(e,t,n,r,i,a){let o=(0,v.resolveComponent)(`node-view-wrapper`);return(0,v.openBlock)(),(0,v.createBlock)(o,{class:`d-d-inline-block`},{default:(0,v.withCtx)(()=>[(0,v.createTextVNode)((0,v.toDisplayString)(a.text),1)]),_:1})}var fr=n.t(ur,[[`render`,dr]]),pr=(e,t)=>[...e.matchAll(t)].map(e=>{let t=e[2];return t.endsWith(` `)||(t+=` `),{index:e.index,text:t,match:e}}),mr=P.default.extend({name:`slash-commands`,group:`inline`,inline:!0,addOptions(){return{...this.parent?.(),onSelectedCommand:null}},addStorage(){return{onSelectedCommand:this.options.onSelectedCommand}},addNodeView(){return h.VueNodeViewRenderer(fr)},parseHTML(){return[{tag:`command-component`}]},addAttributes(){return{command:{default:``},parametersExample:{default:``},description:{default:``}}},renderText({node:e}){return`/${e.attrs.command}`},renderHTML({HTMLAttributes:e}){return[`command-component`,(0,x.mergeAttributes)(this.options.HTMLAttributes,e)]},addInputRules(){let e=this.options.suggestion?.items({query:``}).map(e=>e.command);return[(0,x.nodeInputRule)({find:RegExp(`^((?:\\/)(${e.join(`|`)})) $`),type:this.type,getAttributes(e){return{command:e[2]}}})]},addPasteRules(){let e=this.options.suggestion?.items({query:``}).map(e=>e.command),t=RegExp(`^((?:\\/)(${e.join(`|`)})) ?$`,`g`);return[(0,x.nodePasteRule)({find:e=>pr(e,t),type:this.type,getAttributes(e){return{command:e[0].trim()}}})]}}).configure({suggestion:{char:`/`,pluginKey:new S.PluginKey(`slashCommandSuggestion`)}}),hr=100,gr={name:`VariableComponent`,components:{DtBadge:a.default,DtButton:l.default,DtPopover:f.default,DtInput:m.default,NodeViewWrapper:h.NodeViewWrapper},props:h.nodeViewProps,data(){return{i18n:new c.DialtoneLocalization,MAX_VARIABLE_ALT_LENGTH:hr}},computed:{altText:{get(){return this.node?.attrs?.altText||``},set(e){this.updateAttributes({altText:e})}},variableId(){return this.node?.attrs?.id},placeholder(){return this.variableData?.placeholder||``},variableItems(){return this.extension?.options?.variableItems||[]},variableData(){return this.variableItems.find(e=>e.id===this.variableId)},enableAltText(){return this.node?.attrs?.enableAltText},badgeLabel(){return`{} ${this.placeholder}`},placeholderText(){return`Replaces ${this.placeholder}`}}};function _r(e,t,n,r,i,a){let o=(0,v.resolveComponent)(`dt-badge`),s=(0,v.resolveComponent)(`dt-button`),c=(0,v.resolveComponent)(`dt-input`),l=(0,v.resolveComponent)(`dt-popover`),u=(0,v.resolveComponent)(`node-view-wrapper`);return(0,v.openBlock)(),(0,v.createBlock)(u,{class:`d-d-inline-block`},{default:(0,v.withCtx)(()=>[a.enableAltText?((0,v.openBlock)(),(0,v.createBlock)(l,{key:0,padding:`small`,"navigation-type":`arrow-keys`,placement:`top-start`,modal:!1},{anchor:(0,v.withCtx)(({attrs:e})=>[(0,v.createVNode)(s,(0,v.mergeProps)(e,{kind:`unstyled`}),{default:(0,v.withCtx)(()=>[(0,v.createVNode)(o,{text:a.badgeLabel,contenteditable:`false`},null,8,[`text`])]),_:1},16)]),content:(0,v.withCtx)(({close:e})=>[(0,v.createVNode)(c,{modelValue:a.altText,"onUpdate:modelValue":t[0]||(t[0]=e=>a.altText=e),class:`d-p-100 d-w332`,label:i.i18n.$t(`DIALTONE_EDITOR_VARIABLE_LABEL`),placeholder:a.placeholderText,validate:{length:{description:i.i18n.$t(`DIALTONE_EDITOR_VARIABLE_VALIDATE_DESCRIPTION`),message:i.i18n.$t(`DIALTONE_EDITOR_VARIABLE_VALIDATE_MESSAGE`),max:i.MAX_VARIABLE_ALT_LENGTH,warn:i.MAX_VARIABLE_ALT_LENGTH,limitMaxLength:!0}},onKeyup:(0,v.withKeys)(t=>e(),[`enter`])},null,8,[`modelValue`,`label`,`placeholder`,`validate`,`onKeyup`])]),_:1})):((0,v.openBlock)(),(0,v.createBlock)(o,{key:1,text:a.badgeLabel,contenteditable:`false`},null,8,[`text`]))]),_:1})}var vr=n.t(gr,[[`render`,_r]]),yr=x.Node.create({name:`variable`,group:`inline`,inline:!0,selectable:!0,atom:!0,addOptions(){return{HTMLAttributes:{},variableItems:[]}},addNodeView(){return h.VueNodeViewRenderer(vr)},addAttributes(){return{id:{default:null,parseHTML:e=>e.getAttribute(`data-variable-id`),renderHTML:e=>e.id?{"data-variable-id":e.id}:{}},altText:{default:``,parseHTML:e=>e.getAttribute(`data-alt-text`),renderHTML:e=>e.altText?{"data-alt-text":e.altText}:{}},enableAltText:{default:!0,parseHTML:e=>e.getAttribute(`data-enable-alt-text`)===`true`,renderHTML:e=>({"data-enable-alt-text":String(e.enableAltText)})}}},parseHTML(){return[{tag:`variable`}]},renderText({node:e}){return e.attrs.altText},renderHTML({node:e,HTMLAttributes:t}){return[`variable`,(0,x.mergeAttributes)(this.options.HTMLAttributes,t,{"data-variable-id":e.attrs.id,"data-alt-text":e.attrs.altText,"data-enable-alt-text":String(e.attrs.enableAltText)})]},addCommands(){return{insertVariable:(e={})=>({commands:t})=>t.insertContent({type:this.name,attrs:{id:e.id||null,altText:e.altText||``,enableAltText:e.enableAltText}})}}}),br={compatConfig:{MODE:3},name:`MentionSuggestion`,components:{DtAvatar:i.default,DtStack:d.default,DtText:o.default},props:{item:{type:Object,required:!0}},computed:{name(){return this.item.name},avatarSrc(){return this.item.avatarSrc},presence(){return this.item.presence},status(){return this.item.status},presenceText(){return this.item.presenceText},presenceFontColorClass(){return{active:`d-recipe-contact-row--active`,busy:`d-recipe-contact-row--busy`,away:`d-recipe-contact-row--away`,offline:`d-recipe-contact-row--busy`}[this.presence]},showDetails(){return this.item.showDetails}}},xr={class:`d-mention-suggestion__name`};function Sr(e,t,n,r,i,a){let o=(0,v.resolveComponent)(`dt-avatar`),s=(0,v.resolveComponent)(`dt-text`),c=(0,v.resolveComponent)(`dt-stack`);return(0,v.openBlock)(),(0,v.createBlock)(c,{direction:`row`,class:`d-mention-suggestion__container`,gap:`100`},{default:(0,v.withCtx)(()=>[(0,v.createVNode)(o,{"full-name":a.name,"image-src":a.avatarSrc,"image-alt":a.name,"show-presence":a.showDetails,presence:a.presence,size:200},null,8,[`full-name`,`image-src`,`image-alt`,`show-presence`,`presence`]),(0,v.createVNode)(c,{class:`d-mention-suggestion__details-container`,gap:`1`},{default:(0,v.withCtx)(()=>[(0,v.createElementVNode)(`span`,xr,(0,v.toDisplayString)(a.name),1),a.showDetails?((0,v.openBlock)(),(0,v.createBlock)(c,{key:0,direction:`row`,gap:`50`},{default:(0,v.withCtx)(()=>[a.presenceText?((0,v.openBlock)(),(0,v.createBlock)(s,{key:0,kind:`label`,size:200,strength:`normal`,class:(0,v.normalizeClass)([`d-mention-suggestion__presence`,[a.presenceFontColorClass]])},{default:(0,v.withCtx)(()=>[(0,v.createTextVNode)((0,v.toDisplayString)(a.presenceText),1)]),_:1},8,[`class`])):(0,v.createCommentVNode)(``,!0),a.status&&a.presenceText?((0,v.openBlock)(),(0,v.createBlock)(s,{key:1,kind:`label`,size:200,strength:`normal`,as:`div`,class:`d-mention-suggestion__divider`},{default:(0,v.withCtx)(()=>[...t[0]||(t[0]=[(0,v.createTextVNode)(` • `,-1)])]),_:1})):(0,v.createCommentVNode)(``,!0),a.status?((0,v.openBlock)(),(0,v.createBlock)(s,{key:2,kind:`label`,size:200,strength:`normal`,as:`div`,class:`d-mention-suggestion__status`},{default:(0,v.withCtx)(()=>[(0,v.createTextVNode)((0,v.toDisplayString)(a.status),1)]),_:1})):(0,v.createCommentVNode)(``,!0)]),_:1})):(0,v.createCommentVNode)(``,!0)]),_:1})]),_:1})}var Cr={allowSpaces:!0,render:An(n.t(br,[[`render`,Sr]]),`mention`)},wr={compatConfig:{MODE:3},name:`ChannelSuggestion`,components:{DtStack:d.default,DtIconHash:le.default,DtIconLock:ue.default},props:{item:{type:Object,required:!0}},computed:{name(){return this.item.name}}};function Tr(e,t,n,r,i,a){let o=(0,v.resolveComponent)(`dt-icon-hash`),s=(0,v.resolveComponent)(`dt-icon-lock`),c=(0,v.resolveComponent)(`dt-stack`);return(0,v.openBlock)(),(0,v.createBlock)(c,{direction:`row`,gap:`400`},{default:(0,v.withCtx)(()=>[n.item.locked?((0,v.openBlock)(),(0,v.createBlock)(s,{key:1,size:`300`})):((0,v.openBlock)(),(0,v.createBlock)(o,{key:0,size:`300`})),(0,v.createElementVNode)(`span`,null,(0,v.toDisplayString)(a.name),1)]),_:1})}var Er={allowSpaces:!0,render:An(n.t(wr,[[`render`,Tr]]),`channel`)},Dr={compatConfig:{MODE:3},name:`SlashCommandSuggestion`,components:{DtText:o.default},props:{item:{type:Object,required:!0}},computed:{command(){return this.item.command},description(){return this.item.description},parametersExample(){return this.item.parametersExample}}},Or={key:0};function kr(e,t,n,r,i,a){let o=(0,v.resolveComponent)(`dt-text`);return(0,v.openBlock)(),(0,v.createElementBlock)(`div`,null,[(0,v.createVNode)(o,{kind:`body`,size:300,density:300,as:`div`},{default:(0,v.withCtx)(()=>[(0,v.createElementVNode)(`span`,null,`/`+(0,v.toDisplayString)(a.command),1),a.parametersExample?((0,v.openBlock)(),(0,v.createElementBlock)(`span`,Or,(0,v.toDisplayString)(a.parametersExample),1)):(0,v.createCommentVNode)(``,!0)]),_:1}),(0,v.createVNode)(o,{kind:`body`,size:200,tone:`tertiary`,as:`div`},{default:(0,v.withCtx)(()=>[(0,v.createTextVNode)((0,v.toDisplayString)(a.description),1)]),_:1})])}var Ar={allowSpaces:!0,startOfLine:!0,render:An(n.t(Dr,[[`render`,kr]]),`slash-command`)},jr={compatConfig:{MODE:3},name:`DtRichTextEditor`,components:{EditorContent:h.EditorContent,BubbleMenu:Qt,DtButton:l.default,DtStack:d.default},props:{modelValue:{type:[Object,String],default:``},editable:{type:Boolean,default:!0},allowTyping:{type:Boolean,default:!0},pasteRichText:{type:Boolean,default:!0},allowLineBreaks:{type:Boolean,default:!1},inputAriaLabel:{type:String,required:!0},inputClass:{type:String,default:``},autoFocus:{type:[Boolean,String,Number],default:!1,validator(e){return typeof e==`string`?g.RICH_TEXT_EDITOR_AUTOFOCUS_TYPES.includes(e):!0}},outputFormat:{type:String,default:`html`,validator(e){return g.RICH_TEXT_EDITOR_OUTPUT_FORMATS.includes(e)}},placeholder:{type:String,default:``},link:{type:[Boolean,Object],default:!1},customLink:{type:[Boolean,Object],default:!1},mentionSuggestion:{type:Object,default:null},channelSuggestion:{type:Object,default:null},slashCommandSuggestion:{type:Object,default:null},allowBlockquote:{type:Boolean,default:!0},allowBold:{type:Boolean,default:!0},allowBulletList:{type:Boolean,default:!0},allowItalic:{type:Boolean,default:!0},allowStrike:{type:Boolean,default:!0},allowUnderline:{type:Boolean,default:!0},allowCode:{type:Boolean,default:!0},allowCodeblock:{type:Boolean,default:!0},allowInlineImages:{type:Boolean,default:!1},allowFontColor:{type:Boolean,default:!1},allowBackgroundColor:{type:Boolean,default:!1},allowFontSize:{type:Boolean,default:!1},allowFontFamily:{type:Boolean,default:!1},allowLineHeight:{type:Boolean,default:!1},allowVariable:{type:Boolean,default:!1},variableItems:{type:Array,default:()=>[]},additionalExtensions:{type:Array,default:()=>[]},showLinkBubbleMenu:{type:Boolean,default:!0},preserveWhitespace:{type:[Boolean,String],default:`full`},useDivTags:{type:Boolean,default:!1},allowTables:{type:Boolean,default:!1},allowTextAlign:{type:Boolean,default:!0},allowImageResize:{type:Boolean,default:!1}},emits:[`update:modelValue`,`json-input`,`html-input`,`text-input`,`markdown-input`,`blur`,`focus`,`enter`,`edit-link`,`selected`,`selected-command`,`mention-click`,`mention-hover`,`mention-leave`,`channel-click`],data(){return{editor:null,appendTo:()=>t.returnFirstEl(this.$refs.editor.$el).getRootNode()?.querySelector(`body`),floatingOptions:{placement:`top-start`},i18n:new c.DialtoneLocalization}},computed:{attrs(){return{...this.$attrs,onInput:()=>{},onFocus:()=>{},onBlur:()=>{}}},extensions(){let e=[D.default,re.default,O.UndoRedo,k.default];e.push(this.useDivTags?tr:A.default),this.allowBold&&e.push(j.default),this.allowBlockquote&&e.push(w.default),this.allowBulletList&&(e.push(M.BulletList),e.push(M.ListItem.extend({renderText({node:e}){return e.textContent}})),e.push(M.OrderedList)),this.allowItalic&&e.push(N.default),this.allowStrike&&e.push(te.default),this.allowUnderline&&e.push(ne.default),this.placeholder&&e.push(O.Placeholder.configure({placeholder:this.placeholder}));let t=this,n=x.Extension.create({addKeyboardShortcuts(){return{"Shift-Enter":({editor:e})=>t.allowLineBreaks?!1:(e.commands.first(({commands:e})=>[()=>e.newlineInCode(),()=>t.allowBulletList&&e.splitListItem(`listItem`),()=>e.createParagraphNear(),()=>e.liftEmptyBlock(),()=>e.splitBlock()]),!0),Enter:()=>t.allowLineBreaks?!1:(t.$emit(`enter`),!0)}}});if(e.push(n),this.link&&e.push(ee.default.extend({inclusive:!1,addKeyboardShortcuts(){return{"Mod-k":()=>(t.$emit(`edit-link`),!0)}}}).configure({HTMLAttributes:{class:`d-link d-wb-break-all`},openOnClick:!1,autolink:!0,protocols:g.RICH_TEXT_EDITOR_SUPPORTED_LINK_PROTOCOLS})),this.customLink&&e.push(this.getExtension(Qn,this.customLink)),this.mentionSuggestion){let t={...this.mentionSuggestion,...Cr};e.push(ar.configure({suggestion:t}))}if(this.channelSuggestion){let t={...this.channelSuggestion,...Er};e.push(lr.configure({suggestion:t}))}if(this.slashCommandSuggestion){let t={...this.slashCommandSuggestion,...Ar};e.push(mr.configure({suggestion:t,onSelectedCommand:e=>{this.$emit(`selected-command`,e)}}))}return this.allowVariable&&e.push(yr.configure({variableItems:this.variableItems})),e.push(Vn),this.allowTextAlign&&e.push(ie.default.configure({types:[`paragraph`]})),this.allowCode&&e.push(E.default),this.allowCodeblock&&e.push(T.default.extend({renderText({node:e,pos:t,range:n}){let r=n?.from??0,i=n?.to??t+e.nodeSize;if(r<=t&&i>=t+e.nodeSize)return`\`\`\`\n${e.textContent}\n\`\`\``;let a=Math.max(0,r-t-1),o=Math.min(e.textContent.length,i-t-1);return e.textContent.slice(a,o)},addCommands(){return{...this.parent?.(),toggleCodeBlock:(e={})=>({state:t,chain:n,commands:r})=>{let i=t.schema.nodes[this.name],{$from:a}=t.selection;if(a.parent.type===i){let e=t.schema.nodes.paragraph,r=a.parent.textContent.split(`
2
- `),i=a.before(),o=a.parent;return n().command(({tr:n})=>{let a=r.map(n=>e.create({},n?[t.schema.text(n)]:[]));return n.replaceWith(i,i+o.nodeSize,a),!0}).run()}let{from:o,to:s}=t.selection,c=[];if(t.doc.nodesBetween(o,s,(e,t)=>{if(e.isTextblock)return c.push({node:e,pos:t}),!1}),c.length<=1)return r.setNode(this.name,e);let l=c.map(({node:e})=>e.textContent).join(`
3
- `),u=c[0].pos,d=c[c.length-1],f=d.pos+d.node.nodeSize;return n().command(({tr:n})=>{let r=l.length?[t.schema.text(l)]:[];return n.replaceWith(u,f,i.create(e,r)),!0}).run()}}}}).configure({HTMLAttributes:{class:`d-rich-text-editor__code-block`}})),this.allowInlineImages&&e.push($n.configure({resize:{enabled:this.allowImageResize,alwaysPreserveAspectRatio:!0}})),(this.allowFontFamily||this.allowFontColor||this.allowFontSize||this.allowBackgroundColor||this.allowLineHeight)&&(e.push(oe.TextStyleKit.configure({color:this.allowFontColor,backgroundColor:this.allowBackgroundColor,fontFamily:this.allowFontFamily,fontSize:this.allowFontSize,lineHeight:this.allowLineHeight})),e.push(ln)),this.additionalExtensions.length&&e.push(...this.additionalExtensions),this.allowTables&&e.push(rn.configure({resizable:!0}),an,cn,sn,O.Gapcursor),e},inputAttrs(){let e={"aria-label":this.inputAriaLabel,"aria-multiline":!0,role:`textbox`};return this.editable||(e[`aria-readonly`]=!0),e}},watch:{editable(e){this.editor.setEditable(e),this.updateEditorAttributes({"aria-readonly":!e})},inputClass(e){this.updateEditorAttributes({class:e})},inputAriaLabel(e){this.updateEditorAttributes({"aria-label":e})},extensions(){this.destroyEditor(),this.createEditor()},modelValue(e){this.processValue(e)}},created(){this.createEditor()},beforeUnmount(){this.destroyEditor()},mounted(){t.warnIfUnmounted(t.returnFirstEl(this.$el),this.$options.name),this.processValue(this.modelValue,!1)},methods:{createEditor(){this.editor=new h.Editor({autofocus:this.autoFocus,content:this.modelValue,editable:this.editable,extensions:this.extensions,shouldRerenderOnTransaction:!1,parseOptions:{preserveWhitespace:this.preserveWhitespace},editorProps:{attributes:{...this.inputAttrs,class:this.inputClass},handleKeyDown:(e,t)=>{if(this.allowTyping)return!1;let n=[`Backspace`];return!this.allowLineBreaks&&!t.shiftKey&&n.push(`Enter`),!n.includes(t.key)},handlePaste:(e,t)=>{let n=t.clipboardData||window.clipboardData,r=n.getData(`text/plain`),i=n.getData(`text/html`);return this.processPasteData(e,r,i)},transformPastedHTML(e){return e.replace(/<hr[^>]*\/?>/gi,`<p><br></p>`).replace(/(<\/\w+>)((<br \/>)+)/g,`$2$1`)}}}),this.addEditorListeners()},bubbleMenuShouldShow({editor:e}){return e.isActive(`link`)},getSelectedLinkText(e){let{view:t,state:n}=e,{from:r,to:i}=t.state.selection,a=n.doc.textBetween(r,i,``),o=this.editor.state.doc.nodeAt(r);return o&&o.marks?.at(0)?.type?.name===`link`?o.textContent:a},editLink(){let e=this.getSelectedLinkText(this.editor),t={href:this.editor.getAttributes(`link`).href,text:e};this.$emit(`edit-link`,t)},removeLink(){this.editor?.chain()?.focus()?.unsetLink()?.run()},openLink(){this.editor?.chain()?.focus();let e=this.editor.getAttributes(`link`).href;window.open(e,`_blank`)},setLink(e,t,n,r=g.RICH_TEXT_EDITOR_SUPPORTED_LINK_PROTOCOLS,i){if(!e){this.removeLink();return}r.find(t=>t.test(e))||(e=`${i}${e}`),this.editor.chain().focus().extendMarkRange(`link`).run();let a=this.editor?.view?.state?.selection,o=t||e;this.editor.chain().focus().insertContent(o).setTextSelection({from:a.from,to:a.from+o.length}).setLink({href:e,class:n.class}).run()},processValue(e,t=!0){if(!this.editor)return;let n=this.getOutput();if(!(t&&(0,de.default)(e,n))){if(typeof e==`string`&&this.outputFormat===`text`){let t=RegExp(`(${y.emojiPattern})`,`g`);e=e?.replace(t,`<emoji-component code="$1"></emoji-component>`)}this.editor.commands.setContent(e,{emitUpdate:!1,parseOptions:{preserveWhitespace:this.preserveWhitespace}})}},destroyEditor(){this.editor.destroy()},insertPlainTextWithHardBreaks(e,t){let n=(this.pasteRichText?t:t.replace(/\r\n/g,`
4
- `).replace(/\n\n/g,`
5
- `)).replace(/[\r\n]+$/,``).split(/\r?\n/),r=[];for(let e=0;e<n.length;e++)e>0&&r.push({type:`hardBreak`}),n[e]&&r.push({type:`text`,text:n[e]});this.editor.chain().focus().insertContent(r).run()},shouldPreserveLineBreaks(e,t){return this.pasteRichText?!t&&e&&this.hasBlankLines(e):!!e},processPasteData(e,t,n){if(this.shouldPreserveLineBreaks(t,n))return this.insertPlainTextWithHardBreaks(e,t),!0;if(this.shouldHandlePreformattedHTML(n)){let t=this.extractPreformattedText(n);if(t&&t.includes(`
6
- `))return this.insertPlainTextWithHardBreaks(e,t),!0}return!1},shouldHandlePreformattedHTML(e){return this.pasteRichText&&e&&this.containsPreformattedContent(e)},containsPreformattedContent(e){let t=document.createElement(`div`);t.innerHTML=e;let n=t.querySelectorAll(`*`);for(let e of n)if(this.hasPreWhitespace(e)&&this.hasLineBreaks(e))return!0;return!1},hasPreWhitespace(e){let t=e.getAttribute(`style`)||``,n=e.style.whiteSpace||``,r=n===`pre`||n===`pre-wrap`,i=t.includes(`white-space: pre`);return r||i},hasLineBreaks(e){return e.textContent&&e.textContent.includes(`
7
- `)},hasBlankLines(e){return e.includes(`
8
-
9
- `)||/\n\s*\n/.test(e)},extractPreformattedText(e){let t=document.createElement(`div`);return t.innerHTML=e,this.walkAndExtractText(t)},walkAndExtractText(e){let t=``;if(e.nodeType===Node.TEXT_NODE)t+=e.textContent;else if(e.nodeType===Node.ELEMENT_NODE)if(this.hasPreWhitespace(e))t+=e.textContent;else for(let n of e.childNodes)t+=this.walkAndExtractText(n);return t},triggerInputChangeEvents(){let e=this.getOutput();this.$emit(`update:modelValue`,e);let t=this.editor.getJSON();this.$emit(`json-input`,t);let n=this.editor.getHTML();this.$emit(`html-input`,n);let r=this.editor.getText({blockSeparator:`
10
- `});this.$emit(`text-input`,r);let i=_.t(t,this.extensions);this.$emit(`markdown-input`,i)},addEditorListeners(){this.editor.on(`create`,()=>{this.triggerInputChangeEvents()}),this.editor.on(`update`,()=>{this.triggerInputChangeEvents()}),this.editor.on(`selectionUpdate`,({editor:e})=>{this.$emit(`selected`,this.getSelectedLinkText(e))}),this.editor.on(`focus`,({event:e})=>{this.$emit(`focus`,e)}),this.editor.on(`blur`,({event:e})=>{this.$emit(`blur`,e)}),this.editor.on(`mention-click`,e=>{this.$emit(`mention-click`,e)}),this.editor.on(`mention-hover`,e=>{this.$emit(`mention-hover`,e)}),this.editor.on(`mention-leave`,e=>{this.$emit(`mention-leave`,e)}),this.editor.on(`channel-click`,e=>{this.$emit(`channel-click`,e)})},getOutput(){switch(this.outputFormat){case`json`:return this.editor.getJSON();case`html`:return this.editor.getHTML();case`markdown`:return _.t(this.editor.getJSON(),this.extensions);default:return this.editor.getText({blockSeparator:`
11
- `})}},getExtension(e,t){return typeof t==`boolean`?e:e.configure?.(t)},updateEditorAttributes(e){this.editor.setOptions({editorProps:{attributes:{...this.inputAttrs,class:this.inputClass,...e}}})},focusEditor(){this.editor.commands.focus()}}},Mr={class:`d-popover__dialog`};function Nr(e,t,n,r,i,a){let o=(0,v.resolveComponent)(`dt-button`),s=(0,v.resolveComponent)(`dt-stack`),c=(0,v.resolveComponent)(`bubble-menu`),l=(0,v.resolveComponent)(`editor-content`);return(0,v.openBlock)(),(0,v.createElementBlock)(`div`,null,[i.editor&&n.link&&n.showLinkBubbleMenu?((0,v.openBlock)(),(0,v.createBlock)(c,{key:0,editor:i.editor,"should-show":a.bubbleMenuShouldShow,options:i.floatingOptions,"append-to":i.appendTo,style:{visibility:`visible`}},{default:(0,v.withCtx)(()=>[(0,v.createElementVNode)(`div`,Mr,[(0,v.createVNode)(s,{direction:`row`,class:`d-rich-text-editor-bubble-menu__button-stack`,gap:`0`},{default:(0,v.withCtx)(()=>[(0,v.createVNode)(o,{kind:`muted`,importance:`clear`,onClick:a.editLink},{default:(0,v.withCtx)(()=>[(0,v.createTextVNode)((0,v.toDisplayString)(i.i18n.$t(`DIALTONE_RICH_TEXT_EDITOR_EDIT_BUTTON_LABEL`)),1)]),_:1},8,[`onClick`]),(0,v.createVNode)(o,{kind:`muted`,importance:`clear`,onClick:a.openLink},{default:(0,v.withCtx)(()=>[(0,v.createTextVNode)((0,v.toDisplayString)(i.i18n.$t(`DIALTONE_RICH_TEXT_EDITOR_OPEN_LINK_BUTTON_LABEL`)),1)]),_:1},8,[`onClick`]),(0,v.createVNode)(o,{kind:`critical`,importance:`clear`,onClick:a.removeLink},{default:(0,v.withCtx)(()=>[(0,v.createTextVNode)((0,v.toDisplayString)(i.i18n.$t(`DIALTONE_RICH_TEXT_EDITOR_REMOVE_BUTTON_LABEL`)),1)]),_:1},8,[`onClick`])]),_:1})])]),_:1},8,[`editor`,`should-show`,`options`,`append-to`])):(0,v.createCommentVNode)(``,!0),(0,v.createVNode)(l,(0,v.mergeProps)({ref:`editor`,editor:i.editor,class:`d-rich-text-editor`,"data-qa":`dt-rich-text-editor`},a.attrs),null,16,[`editor`])])}var Pr=n.t(jr,[[`render`,Nr]]);Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Pr}});
12
- //# sourceMappingURL=rich_text_editor-TolFmwK_.cjs.map
@@ -1,2 +0,0 @@
1
- require(`./chunk-Bmb41Sf3.cjs`);const e=require(`./common/utils/index.cjs`),t=require(`./_plugin-vue_export-helper-D8jCH6HB.cjs`);let n=require(`vue`);var r={__name:`core_scroller`,props:{items:{type:Array,required:!0},keyField:{type:String,default:`id`},direction:{type:String,default:`vertical`,validator:e=>[`vertical`,`horizontal`].includes(e)},itemSize:{type:Number,default:null},minItemSize:{type:[Number,String],default:null},sizeField:{type:String,default:`size`},buffer:{type:Number,default:200},enableHover:{type:Boolean,default:!0},listTag:{type:String,default:`div`},itemTag:{type:String,default:`div`},listClass:{type:[String,Object,Array],default:``},itemClass:{type:[String,Object,Array],default:``}},emits:[`user-position`],setup(e,{expose:t,emit:r}){let i=e,a=r,o=(0,n.reactive)(new Map),s=(0,n.reactive)(new Map),c=(0,n.ref)([]),l=(0,n.ref)(null),u=(0,n.ref)(!1),d=(0,n.ref)(null),f=(0,n.ref)(`top`),p=0,m=0,h=!1,g=0,_=null,v=null,y=0,b=0,x=(0,n.computed)(()=>{if(i.itemSize===null){let e={"-1":{accumulator:0}},t=i.items,n=i.sizeField,r=i.minItemSize,a=1e4,o=0,s;for(let i=0,c=t.length;i<c;i++)s=t[i][n]||r,s<a&&(a=s),o+=s,e[i]={accumulator:o,size:s};return v=a,e}return[]}),S=(0,n.computed)(()=>i.items.length&&typeof i.items[0]!=`object`),C=(0,n.computed)(()=>{let e={};for(let t=0,n=i.items.length;t<n;t++)e[i.items[t][i.keyField]]=t;return e});(0,n.watch)(x,()=>{k(!1)},{deep:!0}),(0,n.onMounted)(()=>{(0,n.nextTick)(()=>{k(!0),u.value=!0})});let w=(e,t,r,i,a)=>{let o=(0,n.shallowReactive)({item:r,position:0,nr:(0,n.markRaw)({id:b++,index:t,used:!0,key:i,type:a})});return e.value.push(o),o},T=(e,t=!1)=>{let n=s,r=e.nr.type,i=n.get(r);i||(i=[],n.set(r,i)),i.push(e),t||(e.nr.used=!1,e.position=-9999)},E=()=>{let e=i.direction===`vertical`,t;return t=e?{start:d.value.scrollTop,end:d.value.scrollTop+d.value.clientHeight}:{start:d.value.scrollLeft,end:d.value.scrollLeft+d.value.clientWidth},t},D=()=>{throw setTimeout(()=>{console.error(`It seems the scroller element isn't scrolling, so it tries to render all the items at once.`,`Scroller:`,d),console.error(`Make sure the scroller has a fixed height (or width) and 'overflow-y' (or 'overflow-x') set to 'auto' so it can scroll correctly and only render the items visible in the scroll viewport.`)}),Error(`Rendered items limit reached`)},O=()=>{c.value.sort((e,t)=>e.nr.index-t.nr.index)},k=(e,t=!1)=>{let n=i.itemSize,r=v,a=S.value?null:i.keyField,l=i.items,u=l.length,d=x.value,f=o,h=s,b=c,k=C,A,j,M,N,P;if(!u)A=j=N=P=M=0;else{let e=E();if(t){let t=e.start-g.value;if(t<0&&(t=-t),n===null&&t<r.value||t<n)return{continuous:!0}}g=e.start;let a=i.buffer;if(e.start-=a,e.end+=a,n===null){let t,n=0,r=u-1,i=~~(u/2),a;do a=i,t=d[i]?.accumulator,t<e.start?n=i:i<u-1&&d[i+1]?.accumulator>e.start&&(r=i),i=~~((n+r)/2);while(i!==a);for(i<0&&(i=0),A=i,M=d[u-1]?.accumulator,j=i;j<u&&d[j]?.accumulator<e.end;j++);for(j===-1?j=l.length-1:(j++,j>u&&(j=u)),N=p;N<u&&d[N]?.accumulator<e.start;N++);for(P=N;P<u&&d[P]?.accumulator<e.end;P++);}else{A=~~(e.start/n);let t=A%1;A-=t,j=Math.ceil(e.end/n),N=Math.max(0,Math.floor(e.start/n)),P=Math.floor(e.end/n),A<0&&(A=0),j>u&&(j=u),N<0&&(N=0),P>u&&(P=u),M=Math.ceil(u/1)*n}}j-A>1e3&&D(),y=M;let F,I=A<=m&&j>=A;if(I)for(let t=0,n=b.value.length;t<n;t++)F=b.value[t],F?.nr.used&&(e&&(F.nr.index=k[F.item[a]]),(F.nr.index==null||F.nr.index<A||F.nr.index>=j)&&T(F));let L=I?null:new Map,R,z,B;for(let e=A;e<j;e++){R=l[e];let t=a?R?.[a]:R;if(t==null)throw Error(`Key is ${t} on item (keyField is '${a}')`);if(F=f.get(t),!n&&!d[e]?.size){F&&T(F);continue}z=R.type;let r=h.get(z);if(!F)I?F=r&&r.length?r.pop():w(b,e,R,t,z):(B=L.get(z)||0,(!r||B>=r.length)&&(F=w(b,e,R,t,z),T(F,!0),r=h.get(z)),F=r[B],L.set(z,B+1)),f.delete(F.nr.key),F.nr.used=!0,F.nr.index=e,F.nr.key=t,F.nr.type=z,f.set(t,F);else if(!F.nr.used&&(F.nr.used=!0,r)){let e=r.indexOf(F);e!==-1&&r.splice(e,1)}F.item=R,n===null?(F.position=d[e-1]?.accumulator,F.offset=0):(F.position=Math.floor(e)*n,F.offset=e%1*n)}return p=A,m=j,clearTimeout(_),_=setTimeout(O,300),{continuous:I}},A=e=>{let t=i.direction===`vertical`?{scroll:`scrollTop`,start:`top`}:{scroll:`scrollLeft`,start:`left`},n=d.value,r=t.scroll;n[r]=e},j=e=>{let t;t=i.itemSize===null?e>0?x.value[e-1]?.accumulator:0:Math.floor(e)*i.itemSize,A(t)},M=()=>{let e=d.value;f.value!==`middle`&&(f.value=`middle`,a(`user-position`,`middle`)),e.scrollTop===0&&(f.value=`top`,a(`user-position`,`top`)),e.scrollTop+e.clientHeight===e.scrollHeight&&(f.value=`bottom`,a(`user-position`,`bottom`)),h||(h=!0,requestAnimationFrame(()=>{h=!1,k(!1,!0)}))};return t({scrollToItem:j,_updateVisibleItems:k}),(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{ref_key:`scroller`,ref:d,class:(0,n.normalizeClass)([`vue-recycle-scroller`,{ready:u.value,[`direction-${e.direction}`]:!0}]),onScrollPassive:M},[((0,n.openBlock)(),(0,n.createBlock)((0,n.resolveDynamicComponent)(e.listTag),{ref:`wrapper`,style:(0,n.normalizeStyle)({[e.direction===`vertical`?`minHeight`:`minWidth`]:`${(0,n.unref)(y)}px`}),class:(0,n.normalizeClass)([`vue-recycle-scroller__item-wrapper`,e.listClass])},{default:(0,n.withCtx)(()=>[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(c.value,r=>((0,n.openBlock)(),(0,n.createBlock)((0,n.resolveDynamicComponent)(e.itemTag),(0,n.mergeProps)({key:r.nr.id,style:u.value?{transform:`translate${e.direction===`vertical`?`Y`:`X`}(${r.position}px) translate${e.direction===`vertical`?`X`:`Y`}(${r.offset}px)`,width:void 0,height:void 0}:null,class:[`vue-recycle-scroller__item-view`,[e.itemClass,{hover:i.enableHover&&l.value===r.nr.key}]]},(0,n.toHandlers)(i.enableHover?{mouseenter:()=>{l.value=r.nr.key},mouseleave:()=>{l.value=null}}:{})),{default:(0,n.withCtx)(()=>[(0,n.renderSlot)(t.$slots,`default`,{item:r.item,index:r.nr.index,active:r.nr.used})]),_:2},1040,[`style`,`class`]))),128))]),_:3},8,[`style`,`class`]))],34))}},i={name:`DynamicScroller`,components:{CoreScroller:r,DtScrollerItem:{name:`DtScrollerItem`,inject:[`vscrollData`,`vscrollParent`,`vscrollResizeObserver`],props:{item:{required:!0},watchData:{type:Boolean,default:!1},active:{type:Boolean,required:!0},index:{type:Number,default:void 0},sizeDependencies:{type:[Array,Object],default:null},tag:{type:String,default:`div`}},computed:{id(){if(this.vscrollData.simpleArray)return this.index;if(this.vscrollData.keyField in this.item)return this.item[this.vscrollData.keyField];throw Error(`keyField '${this.vscrollData.keyField}' not found in your item. You should set a valid keyField prop on your Scroller`)},size(){return this.vscrollData.sizes[this.id]||0},finalActive(){return this.active&&this.vscrollData.active}},watch:{watchData:`updateWatchData`,id(t,n){if(e.returnFirstEl(this.$el).$_vs_id=this.id,this.size||this.onDataUpdate(),this.$_sizeObserved){let e=this.vscrollData.sizes[n],r=this.vscrollData.sizes[t];e!=null&&e!==r&&this.applySize(e)}},finalActive(e){this.size||(e?this.vscrollParent.$_undefinedMap[this.id]||(this.vscrollParent.$_undefinedSizes++,this.vscrollParent.$_undefinedMap[this.id]=!0):this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=!1)),this.vscrollResizeObserver?e?this.observeSize():this.unobserveSize():e&&this.$_pendingVScrollUpdate===this.id&&this.updateSize()}},created(){if(!this.$isServer&&(this.$_forceNextVScrollUpdate=null,this.updateWatchData(),!this.vscrollResizeObserver))for(let e in this.sizeDependencies)this.$watch(()=>this.sizeDependencies[e],this.onDataUpdate)},mounted(){this.finalActive&&(this.updateSize(),this.observeSize())},beforeUnmount(){this.unobserveSize()},methods:{updateSize(){this.finalActive?this.$_pendingSizeUpdate!==this.id&&(this.$_pendingSizeUpdate=this.id,this.$_forceNextVScrollUpdate=null,this.$_pendingVScrollUpdate=null,this.computeSize(this.id)):this.$_forceNextVScrollUpdate=this.id},updateWatchData(){this.watchData&&!this.vscrollResizeObserver?this.$_watchData=this.$watch(`item`,()=>{this.onDataUpdate()},{deep:!0}):this.$_watchData&&(this.$_watchData(),this.$_watchData=null)},onVscrollUpdate({force:e}){!this.finalActive&&e&&(this.$_pendingVScrollUpdate=this.id),(this.$_forceNextVScrollUpdate===this.id||e||!this.size)&&this.updateSize()},onDataUpdate(){this.updateSize()},computeSize(t){this.$nextTick(()=>{if(this.id===t){let t=e.returnFirstEl(this.$el).offsetWidth,n=e.returnFirstEl(this.$el).offsetHeight;this.applyWidthHeight(t,n)}this.$_pendingSizeUpdate=null})},applyWidthHeight(e,t){let n=~~(this.vscrollParent.direction===`vertical`?t:e);n&&this.size!==n&&this.applySize(n)},applySize(e){this.vscrollParent.$_undefinedMap[this.id]&&(this.vscrollParent.$_undefinedSizes--,this.vscrollParent.$_undefinedMap[this.id]=void 0),this.vscrollData.sizes[this.id]=e},observeSize(){this.vscrollResizeObserver&&(this.$_sizeObserved||(this.vscrollResizeObserver.observe(e.returnFirstEl(this.$el)),this.$el.$_vs_id=this.id,this.$el.$_vs_onResize=this.onResize,this.$_sizeObserved=!0))},unobserveSize(){this.vscrollResizeObserver&&this.$_sizeObserved&&(this.vscrollResizeObserver.unobserve(e.returnFirstEl(this.$el)),this.$el.$_vs_onResize=void 0,this.$_sizeObserved=!1)},onResize(e,t,n){this.id===e&&this.applyWidthHeight(t,n)}},render(){return(0,n.h)(this.tag,this.$slots.default())}}},provide(){return typeof ResizeObserver<`u`&&(this.$_resizeObserver=new ResizeObserver(e=>{requestAnimationFrame(()=>{if(Array.isArray(e)){for(let t of e)if(t.target&&t.target.$_vs_onResize){let e,n;if(t.borderBoxSize){let r=t.borderBoxSize[0];e=r.inlineSize,n=r.blockSize}else e=t.contentRect.width,n=t.contentRect.height;t.target.$_vs_onResize(t.target.$_vs_id,e,n)}}})})),{vscrollData:this.vscrollData,vscrollParent:this,vscrollResizeObserver:this.$_resizeObserver}},inheritAttrs:!1,props:{items:{type:Array,required:!0},dynamic:{type:Boolean,default:!1},keyField:{type:String,default:`id`},direction:{type:String,default:`vertical`,validator:e=>[`vertical`,`horizontal`].includes(e)},listTag:{type:String,default:`div`},itemTag:{type:String,default:`div`},minItemSize:{type:[Number,String]}},data(){return{vscrollData:{active:!0,sizes:{},keyField:this.keyField,simpleArray:!1}}},computed:{simpleArray(){return this.items.length&&typeof this.items[0]!=`object`},itemsWithSize(){let e=[],{items:t,keyField:n,simpleArray:r}=this,i=this.vscrollData.sizes,a=t.length;for(let o=0;o<a;o++){let a=t[o],s=r?o:a[n],c=i[s];c===void 0&&!this.$_undefinedMap[s]&&(c=0),e.push({item:a,[n]:s,size:c})}return e}},watch:{simpleArray:{handler(e){this.vscrollData.simpleArray=e},immediate:!0},itemsWithSize(t,n){let r=e.returnFirstEl(this.$el).scrollTop,i=0,a=0,o=Math.min(t.length,n.length);for(let e=0;e<o&&!(i>=r);e++)i+=n[e].size||this.minItemSize,a+=t[e].size||this.minItemSize;let s=a-i;s!==0&&(e.returnFirstEl(this.$el).scrollTop+=s)}},beforeCreate(){this.$_updates=[],this.$_undefinedSizes=0,this.$_undefinedMap={}},activated(){this.vscrollData.active=!0},deactivated(){this.vscrollData.active=!1},methods:{dynamicScrollerUpdateItems(){let e=this.$refs.scroller;e&&e._updateVisibleItems(!0)},dynamicScrollerUpdateItemsFromBottom(){let e=this.$refs.scroller;e&&e._updateVisibleItems(!1,!0)},scrollToItem(e){let t=this.$refs.scroller;t&&t.scrollToItem(e)},scrollToBottom(){if(this.$_scrollingToBottom)return;this.$_scrollingToBottom=!0;let t=e.returnFirstEl(this.$el);this.$nextTick(()=>{t.scrollTop=t.scrollHeight+5e3;let e=()=>{t.scrollTop=t.scrollHeight+5e3,requestAnimationFrame(()=>{t.scrollTop=t.scrollHeight+5e3,this.$_undefinedSizes===0?this.$_scrollingToBottom=!1:requestAnimationFrame(e)})};requestAnimationFrame(e)})}}};function a(e,t,r,i,a,o){let s=(0,n.resolveComponent)(`dt-scroller-item`),c=(0,n.resolveComponent)(`core-scroller`);return(0,n.openBlock)(),(0,n.createBlock)(c,(0,n.mergeProps)({ref:`scroller`,items:o.itemsWithSize,"min-item-size":r.minItemSize,direction:r.direction,"key-field":r.keyField,"list-tag":r.listTag,"item-tag":r.itemTag},e.$attrs),{default:(0,n.withCtx)(({item:t,index:r,active:i})=>[(0,n.createVNode)(s,{item:t,active:i,"size-dependencies":[t.message],"data-index":r},{default:(0,n.withCtx)(()=>[(0,n.renderSlot)(e.$slots,`default`,(0,n.normalizeProps)((0,n.guardReactiveProps)({item:t.item,index:r,active:i,itemWithSize:t})))]),_:2},1032,[`item`,`active`,`size-dependencies`,`data-index`])]),_:3},16,[`items`,`min-item-size`,`direction`,`key-field`,`list-tag`,`item-tag`])}var o=t.t(i,[[`render`,a]]),s=Object.assign({name:`DtScroller`},{__name:`scroller`,props:{direction:{type:String,default:`vertical`,validator:e=>[`vertical`,`horizontal`].includes(e)},dynamic:{type:Boolean,default:!1},itemSize:{type:Number,default:null},itemTag:{type:String,default:`div`},items:{type:Array,required:!0},keyField:{type:String,default:`id`},listTag:{type:String,default:`div`},minItemSize:{type:[Number,String],default:null},scrollerHeight:{type:[String,Number],default:`100%`},scrollerWidth:{type:[String,Number],default:`100%`}},emits:[`user-position`],setup(e,{expose:t,emit:i}){let a=e;(0,n.provide)(`emit`,i);let s=(0,n.ref)(null),c=(0,n.computed)(()=>({width:typeof a.scrollerWidth==`number`?`${a.scrollerWidth}px`:a.scrollerWidth,height:typeof a.scrollerHeight==`number`?`${a.scrollerHeight}px`:a.scrollerHeight}));(0,n.watch)(a,()=>{p()},{deep:!0,immediate:!0});function l(){s.value&&s.value.scrollToBottom()}function u(e){s.value&&s.value.scrollToItem(e)}function d(){s.value&&(a.dynamic?s.value.dynamicScrollerUpdateItems():s.value._updateVisibleItems(!0))}function f(){s.value&&(a.dynamic?s.value.dynamicScrollerUpdateItemsFromBottom():s.value._updateVisibleItems(!1,!0))}function p(){a.dynamic&&!a.minItemSize&&console.error(`scroller error: 'minItemSize' is required on 'dynamic' mode.`),!a.dynamic&&!a.itemSize&&console.error(`scroller error: 'itemSize' is required.`)}return t({scrollToBottom:l,scrollToItem:u,updateItems:d,updateItemsFromBottom:f}),(t,i)=>((0,n.openBlock)(),(0,n.createBlock)((0,n.resolveDynamicComponent)(e.dynamic?o:r),{ref_key:`scroller`,ref:s,"data-qa":`dt-scroller`,items:e.items,"item-size":e.itemSize,"min-item-size":e.minItemSize,direction:e.direction,"key-field":e.keyField,"list-tag":e.listTag,"item-tag":e.itemTag,style:(0,n.normalizeStyle)(c.value),tabindex:`0`,onUserPosition:i[0]||(i[0]=e=>t.$emit(`user-position`,e))},{default:(0,n.withCtx)(({item:e,index:r,active:i})=>[(0,n.renderSlot)(t.$slots,`default`,(0,n.normalizeProps)((0,n.guardReactiveProps)({item:e,index:r,active:i})))]),_:3},40,[`items`,`item-size`,`min-item-size`,`direction`,`key-field`,`list-tag`,`item-tag`,`style`]))}});Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
2
- //# sourceMappingURL=scroller-C15VLKNK.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scroller-C15VLKNK.cjs","names":["$emit"],"sources":["../components/scroller/modules/core_scroller.vue","../components/scroller/modules/scroller_item.vue","../components/scroller/modules/dynamic_scroller.vue","../components/scroller/scroller.vue"],"sourcesContent":["<!-- eslint-disable max-len -->\n<template>\n <div\n ref=\"scroller\"\n class=\"vue-recycle-scroller\"\n :class=\"{\n ready,\n [`direction-${direction}`]: true,\n }\"\n @scroll.passive=\"handleScroll\"\n >\n <component\n :is=\"listTag\"\n ref=\"wrapper\"\n :style=\"{ [direction === 'vertical' ? 'minHeight' : 'minWidth']: `${totalSize}px` }\"\n class=\"vue-recycle-scroller__item-wrapper\"\n :class=\"listClass\"\n >\n <component\n :is=\"itemTag\"\n v-for=\"view in pool\"\n :key=\"view.nr.id\"\n :style=\"ready ? {\n transform: `translate${direction === 'vertical' ? 'Y' : 'X'}(${view.position}px) translate${direction === 'vertical' ? 'X' : 'Y'}(${view.offset}px)`,\n width: undefined,\n height: undefined,\n } : null\"\n class=\"vue-recycle-scroller__item-view\"\n :class=\"[\n itemClass,\n {\n hover: props.enableHover && hoverKey === view.nr.key,\n },\n ]\"\n v-on=\"props.enableHover ? {\n mouseenter: () => { hoverKey = view.nr.key },\n mouseleave: () => { hoverKey = null },\n } : {}\"\n >\n <slot\n :item=\"view.item\"\n :index=\"view.nr.index\"\n :active=\"view.nr.used\"\n />\n </component>\n </component>\n </div>\n</template>\n\n<script setup>\n/*\nThis is a code from external library (https://github.com/Akryum/vue-virtual-scroller/blob/master/packages/vue-virtual-scroller/src/components/RecycleScroller.vue)\nWe have modified it for our own specific use.\n*/\nimport { computed, watch, markRaw, shallowReactive, onMounted, nextTick, reactive, ref } from 'vue';\n\nconst props = defineProps({\n /**\n * List of items you want to display in the scroller.\n */\n items: {\n type: Array,\n required: true,\n },\n\n /**\n *\n * Field used to identify items and optimize managing rendered views\n */\n keyField: {\n type: String,\n default: 'id',\n },\n\n /**\n * Direction of the scroller. Can be either `vertical` or `horizontal`.\n */\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n\n /**\n * Size of the items in the list.\n * If it is set to null (the default value), it will use variable size mode.\n */\n itemSize: {\n type: Number,\n default: null,\n },\n\n /**\n * Minimum size used if the height (or width in horizontal mode) of an item is unknown.\n */\n minItemSize: {\n type: [Number, String],\n default: null,\n },\n\n /**\n * Field used to get the item's size in variable size mode.\n */\n sizeField: {\n type: String,\n default: 'size',\n },\n\n /**\n * Amount of pixel to add to edges of the scrolling visible area to start rendering items further away.\n */\n buffer: {\n type: Number,\n default: 200,\n },\n\n /**\n * Enables hover state CSS class and mouse events on items.\n * Set to false if you want to manage hover state yourself.\n */\n enableHover: {\n type: Boolean,\n default: true,\n },\n\n /**\n * The element to render as the list's wrapper.\n */\n listTag: {\n type: String,\n default: 'div',\n },\n\n /**\n * The element to render as the list item.\n */\n itemTag: {\n type: String,\n default: 'div',\n },\n\n /**\n * The custom classes added to the item list wrapper.\n */\n listClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * The custom classes added to each item.\n */\n itemClass: {\n type: [String, Object, Array],\n default: '',\n },\n});\n\nconst emit = defineEmits(['user-position']);\n\nconst views = reactive(new Map());\n// const reactiveItems = reactive(props.items);\nconst unusedViews = reactive(new Map());\nconst updateTimeout = null;\nconst pool = ref([]);\nconst hoverKey = ref(null);\nconst ready = ref(false);\nconst scroller = ref(null);\nconst userPosition = ref('top');\n\nlet startIndex = 0;\nlet endIndex = 0;\nlet scrollDirty = false;\nlet lastUpdateScrollPosition = 0;\nlet sortTimer = null;\nlet computedMinItemSize = null;\nlet totalSize = 0;\nlet uid = 0;\n\nconst sizes = computed(() => {\n if (props.itemSize === null) {\n const sizes = {\n '-1': { accumulator: 0 },\n };\n const items = props.items;\n const field = props.sizeField;\n const minItemSize = props.minItemSize;\n let computedMinSize = 10000;\n let accumulator = 0;\n let current;\n for (let i = 0, l = items.length; i < l; i++) {\n current = items[i][field] || minItemSize;\n if (current < computedMinSize) {\n computedMinSize = current;\n }\n accumulator += current;\n sizes[i] = { accumulator, size: current };\n }\n\n computedMinItemSize = computedMinSize;\n return sizes;\n }\n return [];\n});\n\nconst simpleArray = computed(() => {\n return props.items.length && typeof props.items[0] !== 'object';\n});\n\nconst itemIndexByKey = computed(() => {\n const result = {};\n for (let i = 0, l = props.items.length; i < l; i++) {\n result[props.items[i][props.keyField]] = i;\n }\n return result;\n});\n\n// watch(reactiveItems, () => {\n// // if add to the top\n// // _updateVisibleItems(true);\n// // if autoscrolling if add to the bottom\n// // _updateVisibleItems(false, true);\n// });\n\nwatch(sizes, () => {\n _updateVisibleItems(false);\n}, { deep: true });\n\nonMounted(() => {\n nextTick(() => {\n // In SSR mode, render the real number of visible items\n _updateVisibleItems(true);\n ready.value = true;\n });\n});\n\nconst _addView = (pool, index, item, key, type) => {\n const nr = markRaw({\n id: uid++,\n index,\n used: true,\n key,\n type,\n });\n const view = shallowReactive({\n item,\n position: 0,\n nr,\n });\n pool.value.push(view);\n return view;\n};\n\nconst _unuseView = (view, fake = false) => {\n const _unusedViews = unusedViews;\n const type = view.nr.type;\n let unusedPool = _unusedViews.get(type);\n if (!unusedPool) {\n unusedPool = [];\n _unusedViews.set(type, unusedPool);\n }\n unusedPool.push(view);\n if (!fake) {\n view.nr.used = false;\n view.position = -9999;\n }\n};\n\nconst _getScroll = () => {\n const isVertical = props.direction === 'vertical';\n let scrollState;\n\n if (isVertical) {\n scrollState = {\n start: scroller.value.scrollTop,\n end: scroller.value.scrollTop + scroller.value.clientHeight,\n };\n } else {\n scrollState = {\n start: scroller.value.scrollLeft,\n end: scroller.value.scrollLeft + scroller.value.clientWidth,\n };\n }\n\n return scrollState;\n};\n\nconst _itemsLimitError = () => {\n setTimeout(() => {\n \n console.error('It seems the scroller element isn\\'t scrolling, so it tries to render all the items at once.', 'Scroller:', scroller);\n \n console.error('Make sure the scroller has a fixed height (or width) and \\'overflow-y\\' (or \\'overflow-x\\') set to \\'auto\\' so it can scroll correctly and only render the items visible in the scroll viewport.');\n });\n throw new Error('Rendered items limit reached');\n};\n\nconst _sortViews = () => {\n pool.value.sort((viewA, viewB) => viewA.nr.index - viewB.nr.index);\n};\n\nconst _updateVisibleItems = (checkItem, checkPositionDiff = false) => {\n const itemSize = props.itemSize;\n const minItemSize = computedMinItemSize;\n const keyField = simpleArray.value ? null : props.keyField;\n const items = props.items;\n const count = items.length;\n const _sizes = sizes.value;\n const _views = views;\n const _unusedViews = unusedViews;\n const _pool = pool;\n const _itemIndexByKey = itemIndexByKey;\n let _startIndex, _endIndex;\n let _totalSize;\n let visibleStartIndex, visibleEndIndex;\n\n if (!count) {\n _startIndex = _endIndex = visibleStartIndex = visibleEndIndex = _totalSize = 0;\n } else {\n const scroll = _getScroll();\n\n // Skip update if use hasn't scrolled enough\n if (checkPositionDiff) {\n let positionDiff = scroll.start - lastUpdateScrollPosition.value;\n if (positionDiff < 0) positionDiff = -positionDiff;\n if ((itemSize === null && positionDiff < minItemSize.value) || positionDiff < itemSize) {\n return {\n continuous: true,\n };\n }\n }\n lastUpdateScrollPosition = scroll.start;\n\n const _buffer = props.buffer;\n scroll.start -= _buffer;\n scroll.end += _buffer;\n\n // Variable size mode\n if (itemSize === null) {\n let h;\n let a = 0;\n let b = count - 1;\n let i = ~~(count / 2);\n let oldI;\n\n // Searching for _startIndex\n do {\n oldI = i;\n h = _sizes[i]?.accumulator;\n if (h < scroll.start) {\n a = i;\n } else if (i < count - 1 && _sizes[i + 1]?.accumulator > scroll.start) {\n b = i;\n }\n i = ~~((a + b) / 2);\n } while (i !== oldI);\n i < 0 && (i = 0);\n _startIndex = i;\n\n // For container style\n _totalSize = _sizes[count - 1]?.accumulator;\n\n // Searching for _endIndex\n for (\n _endIndex = i;\n _endIndex < count && _sizes[_endIndex]?.accumulator < scroll.end;\n _endIndex++\n );\n\n if (_endIndex === -1) {\n _endIndex = items.length - 1;\n } else {\n _endIndex++;\n // Bounds\n _endIndex > count && (_endIndex = count);\n }\n\n // search visible _startIndex\n for (\n visibleStartIndex = startIndex;\n visibleStartIndex < count && (_sizes[visibleStartIndex]?.accumulator) < scroll.start;\n visibleStartIndex++\n );\n\n // search visible endIndex\n for (\n visibleEndIndex = visibleStartIndex;\n visibleEndIndex < count && (_sizes[visibleEndIndex]?.accumulator) < scroll.end;\n visibleEndIndex++\n );\n } else {\n // Fixed size mode\n _startIndex = ~~(scroll.start / itemSize);\n const remainer = _startIndex % 1;\n _startIndex -= remainer;\n _endIndex = Math.ceil(scroll.end / itemSize);\n visibleStartIndex = Math.max(0, Math.floor((scroll.start) / itemSize));\n visibleEndIndex = Math.floor((scroll.end) / itemSize);\n\n // Bounds\n _startIndex < 0 && (_startIndex = 0);\n _endIndex > count && (_endIndex = count);\n visibleStartIndex < 0 && (visibleStartIndex = 0);\n visibleEndIndex > count && (visibleEndIndex = count);\n\n _totalSize = Math.ceil(count / 1) * itemSize;\n }\n }\n\n // items limit 1000\n if (_endIndex - _startIndex > 1000) {\n _itemsLimitError();\n }\n\n totalSize = _totalSize;\n\n let view;\n\n const continuous = _startIndex <= endIndex && _endIndex >= _startIndex;\n\n // Unuse views that are no longer visible\n if (continuous) {\n for (let i = 0, l = _pool.value.length; i < l; i++) {\n view = _pool.value[i];\n if (view?.nr.used) {\n // Update view item index\n if (checkItem) {\n view.nr.index = _itemIndexByKey[view.item[keyField]];\n }\n\n // Check if index is still in visible range\n if (\n view.nr.index == null ||\n view.nr.index < _startIndex ||\n view.nr.index >= _endIndex\n ) {\n _unuseView(view);\n }\n }\n }\n }\n\n const unusedIndex = continuous ? null : new Map();\n\n let item, type;\n let v;\n for (let i = _startIndex; i < _endIndex; i++) {\n item = items[i];\n const key = keyField ? item?.[keyField] : item;\n\n if (key == null) {\n throw new Error(`Key is ${key} on item (keyField is '${keyField}')`);\n }\n view = _views.get(key);\n\n if (!itemSize && !_sizes[i]?.size) {\n if (view) _unuseView(view);\n continue;\n }\n\n type = item.type;\n\n let unusedPool = _unusedViews.get(type);\n // let newlyUsedView = false;\n\n // No view assigned to item\n if (!view) {\n if (continuous) {\n // Reuse existing view\n if (unusedPool && unusedPool.length) {\n view = unusedPool.pop();\n } else {\n view = _addView(_pool, i, item, key, type);\n }\n } else {\n // Use existing view\n // We don't care if they are already used\n // because we are not in continous scrolling\n v = unusedIndex.get(type) || 0;\n\n if (!unusedPool || v >= unusedPool.length) {\n view = _addView(_pool, i, item, key, type);\n _unuseView(view, true);\n unusedPool = _unusedViews.get(type);\n }\n\n view = unusedPool[v];\n unusedIndex.set(type, v + 1);\n }\n\n // Assign view to item\n _views.delete(view.nr.key);\n view.nr.used = true;\n view.nr.index = i;\n view.nr.key = key;\n view.nr.type = type;\n _views.set(key, view);\n\n // newlyUsedView = true;\n } else {\n // View already assigned to item\n if (!view.nr.used) {\n view.nr.used = true;\n // newlyUsedView = true;\n if (unusedPool) {\n const index = unusedPool.indexOf(view);\n if (index !== -1) unusedPool.splice(index, 1);\n }\n }\n }\n\n // Always set item in case it's a new object with the same key\n view.item = item;\n\n // if (newlyUsedView) {\n // if (items.length === 0) return;\n // if (i === items.length - 1) emit('scroll-end');\n // if (i === 0) emit('scroll-start');\n // }\n\n // Update position\n if (itemSize === null) {\n view.position = _sizes[i - 1]?.accumulator;\n view.offset = 0;\n } else {\n view.position = Math.floor(i) * itemSize;\n view.offset = (i % 1) * itemSize;\n }\n }\n\n startIndex = _startIndex;\n endIndex = _endIndex;\n\n // After the user has finished scrolling\n // Sort views so text selection is correct\n clearTimeout(sortTimer);\n sortTimer = setTimeout(_sortViews, 300);\n\n return {\n continuous,\n };\n};\n\nconst _scrollToPosition = (position) => {\n const direction = props.direction === 'vertical'\n ? { scroll: 'scrollTop', start: 'top' }\n : { scroll: 'scrollLeft', start: 'left' };\n\n const viewport = scroller.value;\n const scrollDirection = direction.scroll;\n\n viewport[scrollDirection] = position;\n};\n\nconst scrollToItem = (index) => {\n let scroll;\n if (props.itemSize === null) {\n scroll = index > 0 ? sizes.value[index - 1]?.accumulator : 0;\n } else {\n scroll = Math.floor(index) * props.itemSize;\n }\n _scrollToPosition(scroll);\n};\n\nconst handleScroll = () => {\n const container = scroller.value;\n\n if (userPosition.value !== 'middle') {\n userPosition.value = 'middle';\n emit('user-position', 'middle');\n }\n\n // Check if the scroll is at the top of the container\n if (container.scrollTop === 0) {\n userPosition.value = 'top';\n emit('user-position', 'top');\n }\n\n // Check if the scroll is at the bottom of the container\n if (container.scrollTop + container.clientHeight === container.scrollHeight) {\n userPosition.value = 'bottom';\n emit('user-position', 'bottom');\n }\n\n if (!scrollDirty) {\n scrollDirty = true;\n if (updateTimeout) return;\n\n const requestUpdate = () => requestAnimationFrame(() => {\n scrollDirty = false;\n _updateVisibleItems(false, true);\n });\n\n requestUpdate();\n }\n};\n\ndefineExpose({\n scrollToItem,\n _updateVisibleItems,\n});\n</script>\n","<script>\n/*\nThis is a code from external library (https://github.com/Akryum/vue-virtual-scroller/blob/master/packages/vue-virtual-scroller/src/components/DynamicScrollerItem.vue)\nWe have modified it for our own specific use.\n*/\nimport { h } from 'vue';\nimport { returnFirstEl } from '@/common/utils';\n\nexport default {\n name: 'DtScrollerItem',\n\n inject: [\n 'vscrollData',\n 'vscrollParent',\n 'vscrollResizeObserver',\n ],\n\n props: {\n // eslint-disable-next-line vue/require-prop-types\n item: {\n required: true,\n },\n\n watchData: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Indicates if the view is actively used to display an item.\n */\n active: {\n type: Boolean,\n required: true,\n },\n\n index: {\n type: Number,\n default: undefined,\n },\n\n sizeDependencies: {\n type: [Array, Object],\n default: null,\n },\n\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n id () {\n if (this.vscrollData.simpleArray) return this.index;\n \n if (this.vscrollData.keyField in this.item) return this.item[this.vscrollData.keyField];\n throw new Error(`keyField '${this.vscrollData.keyField}' not found in your item. You should set a valid keyField prop on your Scroller`);\n },\n\n size () {\n return this.vscrollData.sizes[this.id] || 0;\n },\n\n finalActive () {\n return this.active && this.vscrollData.active;\n },\n },\n\n watch: {\n watchData: 'updateWatchData',\n\n id (value, oldValue) {\n returnFirstEl(this.$el).$_vs_id = this.id;\n if (!this.size) {\n this.onDataUpdate();\n }\n\n if (this.$_sizeObserved) {\n // In case the old item had the same size, it won't trigger the ResizeObserver\n // since we are reusing the same DOM node\n const oldSize = this.vscrollData.sizes[oldValue];\n const size = this.vscrollData.sizes[value];\n if (oldSize != null && oldSize !== size) {\n this.applySize(oldSize);\n }\n }\n },\n\n finalActive (value) {\n if (!this.size) {\n if (value) {\n if (!this.vscrollParent.$_undefinedMap[this.id]) {\n this.vscrollParent.$_undefinedSizes++;\n this.vscrollParent.$_undefinedMap[this.id] = true;\n }\n } else {\n if (this.vscrollParent.$_undefinedMap[this.id]) {\n this.vscrollParent.$_undefinedSizes--;\n this.vscrollParent.$_undefinedMap[this.id] = false;\n }\n }\n }\n\n if (this.vscrollResizeObserver) {\n if (value) {\n this.observeSize();\n } else {\n this.unobserveSize();\n }\n } else if (value && this.$_pendingVScrollUpdate === this.id) {\n this.updateSize();\n }\n },\n },\n\n created () {\n if (this.$isServer) return;\n\n this.$_forceNextVScrollUpdate = null;\n this.updateWatchData();\n\n if (!this.vscrollResizeObserver) {\n for (const k in this.sizeDependencies) {\n this.$watch(() => this.sizeDependencies[k], this.onDataUpdate);\n }\n }\n },\n\n mounted () {\n if (this.finalActive) {\n this.updateSize();\n this.observeSize();\n }\n },\n\n beforeUnmount () {\n this.unobserveSize();\n },\n\n methods: {\n updateSize () {\n if (this.finalActive) {\n if (this.$_pendingSizeUpdate !== this.id) {\n this.$_pendingSizeUpdate = this.id;\n this.$_forceNextVScrollUpdate = null;\n this.$_pendingVScrollUpdate = null;\n this.computeSize(this.id);\n }\n } else {\n this.$_forceNextVScrollUpdate = this.id;\n }\n },\n\n updateWatchData () {\n if (this.watchData && !this.vscrollResizeObserver) {\n this.$_watchData = this.$watch('item', () => {\n this.onDataUpdate();\n }, {\n deep: true,\n });\n } else if (this.$_watchData) {\n this.$_watchData();\n this.$_watchData = null;\n }\n },\n\n onVscrollUpdate ({ force }) {\n // If not active, sechedule a size update when it becomes active\n if (!this.finalActive && force) {\n this.$_pendingVScrollUpdate = this.id;\n }\n\n if (this.$_forceNextVScrollUpdate === this.id || force || !this.size) {\n this.updateSize();\n }\n },\n\n onDataUpdate () {\n this.updateSize();\n },\n\n computeSize (id) {\n this.$nextTick(() => {\n if (this.id === id) {\n const width = returnFirstEl(this.$el).offsetWidth;\n const height = returnFirstEl(this.$el).offsetHeight;\n this.applyWidthHeight(width, height);\n }\n this.$_pendingSizeUpdate = null;\n });\n },\n\n applyWidthHeight (width, height) {\n const size = ~~(this.vscrollParent.direction === 'vertical' ? height : width);\n if (size && this.size !== size) {\n this.applySize(size);\n }\n },\n\n applySize (size) {\n if (this.vscrollParent.$_undefinedMap[this.id]) {\n this.vscrollParent.$_undefinedSizes--;\n this.vscrollParent.$_undefinedMap[this.id] = undefined;\n }\n this.vscrollData.sizes[this.id] = size;\n },\n\n observeSize () {\n if (!this.vscrollResizeObserver) return;\n if (this.$_sizeObserved) return;\n this.vscrollResizeObserver.observe(returnFirstEl(this.$el));\n this.$el.$_vs_id = this.id;\n this.$el.$_vs_onResize = this.onResize;\n this.$_sizeObserved = true;\n },\n\n unobserveSize () {\n if (!this.vscrollResizeObserver) return;\n if (!this.$_sizeObserved) return;\n this.vscrollResizeObserver.unobserve(returnFirstEl(this.$el));\n this.$el.$_vs_onResize = undefined;\n this.$_sizeObserved = false;\n },\n\n onResize (id, width, height) {\n if (this.id === id) {\n this.applyWidthHeight(width, height);\n }\n },\n },\n\n render () {\n return h(this.tag, this.$slots.default());\n },\n};\n</script>\n","<template>\n <core-scroller\n ref=\"scroller\"\n :items=\"itemsWithSize\"\n :min-item-size=\"minItemSize\"\n :direction=\"direction\"\n :key-field=\"keyField\"\n :list-tag=\"listTag\"\n :item-tag=\"itemTag\"\n v-bind=\"$attrs\"\n >\n <template\n #default=\"{ item: itemWithSize, index, active }\"\n >\n <dt-scroller-item\n :item=\"itemWithSize\"\n :active=\"active\"\n :size-dependencies=\"[\n itemWithSize.message,\n ]\"\n :data-index=\"index\"\n >\n <slot\n v-bind=\"{\n item: itemWithSize.item,\n index,\n active,\n itemWithSize,\n }\"\n />\n </dt-scroller-item>\n </template>\n </core-scroller>\n</template>\n\n<!-- eslint-disable-next-line max-len -->\n<!-- This is a code from external library (https://github.com/Akryum/vue-virtual-scroller/blob/master/packages/vue-virtual-scroller/src/components/DynamicScroller.vue)\nWe have modified it for our own specific use. -->\n<script>\nimport CoreScroller from './core_scroller.vue';\nimport DtScrollerItem from './scroller_item.vue';\nimport { returnFirstEl } from '@/common/utils';\n\nexport default {\n name: 'DynamicScroller',\n\n components: {\n CoreScroller,\n DtScrollerItem,\n },\n\n provide () {\n if (typeof ResizeObserver !== 'undefined') {\n this.$_resizeObserver = new ResizeObserver(entries => {\n requestAnimationFrame(() => {\n if (!Array.isArray(entries)) {\n return;\n }\n for (const entry of entries) {\n if (entry.target && entry.target.$_vs_onResize) {\n let width, height;\n if (entry.borderBoxSize) {\n const resizeObserverSize = entry.borderBoxSize[0];\n width = resizeObserverSize.inlineSize;\n height = resizeObserverSize.blockSize;\n } else {\n // @TODO remove when contentRect is deprecated\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n entry.target.$_vs_onResize(entry.target.$_vs_id, width, height);\n }\n }\n });\n });\n }\n\n return {\n vscrollData: this.vscrollData,\n vscrollParent: this,\n vscrollResizeObserver: this.$_resizeObserver,\n };\n },\n\n inheritAttrs: false,\n\n props: {\n /*\n * The items to render.\n * If the items are simple arrays, the index will be used as the key.\n * If the items are objects, the keyField will be used as the key.\n */\n items: {\n type: Array,\n required: true,\n },\n\n /*\n * Indicates if the items are dynamic.\n * If true, the items will be wrapped in a DtScrollerItem component.\n * This is required for dynamic items to be able to react to changes in their size.\n */\n dynamic: {\n type: Boolean,\n default: false,\n },\n\n /*\n * The key field to use for the items.\n * Only used if the items are objects.\n */\n keyField: {\n type: String,\n default: 'id',\n },\n\n /*\n * The direction of the scroller.\n * Can be either 'vertical' or 'horizontal'.\n */\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n\n /*\n * The tag to use for the list.\n */\n listTag: {\n type: String,\n default: 'div',\n },\n\n /*\n * The tag to use for the items.\n */\n itemTag: {\n type: String,\n default: 'div',\n },\n\n /*\n * Display height (or width in horizontal mode) of the items in pixels\n * used to calculate the scroll size and position.\n * Is required for the initial render of items in DYNAMIC size mode.\n */\n minItemSize: {\n type: [Number, String],\n },\n },\n\n data () {\n return {\n vscrollData: {\n active: true,\n sizes: {},\n keyField: this.keyField,\n simpleArray: false,\n },\n };\n },\n\n computed: {\n simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object';\n },\n\n itemsWithSize () {\n const result = [];\n const { items, keyField, simpleArray } = this;\n const sizes = this.vscrollData.sizes;\n const l = items.length;\n for (let i = 0; i < l; i++) {\n const item = items[i];\n const id = simpleArray ? i : item[keyField];\n let size = sizes[id];\n if (typeof size === 'undefined' && !this.$_undefinedMap[id]) {\n size = 0;\n }\n result.push({\n item,\n [keyField]: id,\n size,\n });\n }\n return result;\n },\n },\n\n watch: {\n simpleArray: {\n handler (value) {\n this.vscrollData.simpleArray = value;\n },\n\n immediate: true,\n },\n\n itemsWithSize (next, prev) {\n const scrollTop = returnFirstEl(this.$el).scrollTop;\n\n // Calculate total diff between prev and next sizes\n // over current scroll top. Then add it to scrollTop to\n // avoid jumping the contents that the user is seeing.\n let prevActiveTop = 0; let activeTop = 0;\n const length = Math.min(next.length, prev.length);\n for (let i = 0; i < length; i++) {\n if (prevActiveTop >= scrollTop) {\n break;\n }\n prevActiveTop += prev[i].size || this.minItemSize;\n activeTop += next[i].size || this.minItemSize;\n }\n const offset = activeTop - prevActiveTop;\n\n if (offset === 0) {\n return;\n }\n\n returnFirstEl(this.$el).scrollTop += offset;\n },\n },\n\n beforeCreate () {\n this.$_updates = [];\n this.$_undefinedSizes = 0;\n this.$_undefinedMap = {};\n },\n\n activated () {\n this.vscrollData.active = true;\n },\n\n deactivated () {\n this.vscrollData.active = false;\n },\n\n methods: {\n dynamicScrollerUpdateItems () {\n const scroller = this.$refs.scroller;\n if (scroller) scroller._updateVisibleItems(true);\n },\n\n dynamicScrollerUpdateItemsFromBottom () {\n const scroller = this.$refs.scroller;\n if (scroller) scroller._updateVisibleItems(false, true);\n },\n\n scrollToItem (index) {\n const scroller = this.$refs.scroller;\n if (scroller) scroller.scrollToItem(index);\n },\n\n scrollToBottom () {\n if (this.$_scrollingToBottom) return;\n this.$_scrollingToBottom = true;\n const el = returnFirstEl(this.$el);\n // Item is inserted to the DOM\n this.$nextTick(() => {\n el.scrollTop = el.scrollHeight + 5000;\n // Item sizes are computed\n const cb = () => {\n el.scrollTop = el.scrollHeight + 5000;\n requestAnimationFrame(() => {\n el.scrollTop = el.scrollHeight + 5000;\n if (this.$_undefinedSizes === 0) {\n this.$_scrollingToBottom = false;\n } else {\n requestAnimationFrame(cb);\n }\n });\n };\n requestAnimationFrame(cb);\n });\n },\n },\n};\n</script>\n","<template>\n <component\n :is=\"dynamic ? DynamicScroller : CoreScroller\"\n ref=\"scroller\"\n data-qa=\"dt-scroller\"\n :items=\"items\"\n :item-size=\"itemSize\"\n :min-item-size=\"minItemSize\"\n :direction=\"direction\"\n :key-field=\"keyField\"\n :list-tag=\"listTag\"\n :item-tag=\"itemTag\"\n :style=\"computedStyle\"\n tabindex=\"0\"\n @user-position=\"$emit('user-position', $event)\"\n >\n <template\n #default=\"{ item, index, active }\"\n >\n <slot\n v-bind=\"{\n item: item,\n index,\n active,\n }\"\n />\n </template>\n </component>\n</template>\n\n<script setup>\nimport CoreScroller from './modules/core_scroller.vue';\nimport DynamicScroller from './modules/dynamic_scroller.vue';\nimport { provide, computed, watch, ref } from 'vue';\n\ndefineOptions({\n name: 'DtScroller',\n});\n\nconst props = defineProps({\n /**\n * The direction of the scroller.\n * @values vertical, horizontal\n */\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n\n /**\n * Indicates if the items need to react to changes in their size.\n * If disabled the itemSize prop is required and you will get improved performance.\n * If enabled the minItemSize prop is required and you\n * will have reduced performance but the ability to reactively size list items\n * @values true, false\n */\n dynamic: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Display height (or width in horizontal mode) of the items in pixels\n * used to calculate the scroll size and position.\n * Required if DYNAMIC is false\n */\n itemSize: {\n type: Number,\n default: null,\n },\n\n /**\n * The tag to use for the items.\n */\n itemTag: {\n type: String,\n default: 'div',\n },\n\n /**\n * The items to render.\n * If the items are simple arrays, the index will be used as the key.\n * If the items are objects, the keyField will be used as the key.\n * @example items: [ 'item1', 'item2', 'item3' ]\n * @example items: [ { id: 1, name: 'item1' }, { id: 2, name: 'item2' }, { id: 3, name: 'item3' } ]\n */\n items: {\n type: Array,\n required: true,\n },\n\n /**\n * The key field to use for the items.\n * If the items are objects, the scroller needs to be able to identify them.\n * By default it will look for an id field on the items.\n * This can be configured with this prop if you are using another field name.\n */\n keyField: {\n type: String,\n default: 'id',\n },\n\n /**\n * The tag to use for the list.\n */\n listTag: {\n type: String,\n default: 'div',\n },\n\n /**\n * Minimum size used if the height (or width in horizontal mode) of a item is unknown.\n * Is required for the initial render of items in DYNAMIC size mode.\n */\n minItemSize: {\n type: [Number, String],\n default: null,\n },\n\n /**\n * The height of the scroller.\n * Can be a number (in pixels) or a string (in CSS units).\n */\n scrollerHeight: {\n type: [String, Number],\n default: '100%',\n },\n\n /**\n * The width of the scroller.\n * Can be a number (in pixels) or a string (in CSS units).\n */\n scrollerWidth: {\n type: [String, Number],\n default: '100%',\n },\n});\n\nconst emits = defineEmits([\n /**\n * Describe when the scroller changes from start/middle/end\n * @param {string} position The position of the scroller.\n * @values start, middle, end\n */\n 'user-position',\n]);\n\nprovide('emit', emits);\n\nconst scroller = ref(null);\n\nconst computedStyle = computed(() => {\n return {\n width: typeof props.scrollerWidth === 'number' ? `${props.scrollerWidth}px` : props.scrollerWidth,\n height: typeof props.scrollerHeight === 'number' ? `${props.scrollerHeight}px` : props.scrollerHeight,\n };\n});\n\nwatch(props, () => {\n validateProps();\n}, { deep: true, immediate: true });\n\nfunction scrollToBottom () {\n if (scroller.value) scroller.value.scrollToBottom();\n}\n\nfunction scrollToItem (index) {\n if (scroller.value) scroller.value.scrollToItem(index);\n}\n\nfunction updateItems () {\n if (!scroller.value) return;\n if (props.dynamic) {\n scroller.value.dynamicScrollerUpdateItems();\n } else {\n scroller.value._updateVisibleItems(true);\n }\n}\n\nfunction updateItemsFromBottom () {\n if (!scroller.value) return;\n if (props.dynamic) {\n scroller.value.dynamicScrollerUpdateItemsFromBottom();\n } else {\n scroller.value._updateVisibleItems(false, true);\n }\n}\n\nfunction validateProps () {\n if (props.dynamic && !props.minItemSize) {\n console.error('scroller error: \\'minItemSize\\' is required on \\'dynamic\\' mode.');\n }\n\n if (!props.dynamic && !props.itemSize) {\n console.error('scroller error: \\'itemSize\\' is required.');\n }\n}\n\ndefineExpose({\n scrollToBottom,\n scrollToItem,\n updateItems,\n updateItemsFromBottom,\n});\n</script>\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"scroller-DPqcc_Wl.js","names":["$emit"],"sources":["../components/scroller/modules/core_scroller.vue","../components/scroller/modules/scroller_item.vue","../components/scroller/modules/dynamic_scroller.vue","../components/scroller/scroller.vue"],"sourcesContent":["<!-- eslint-disable max-len -->\n<template>\n <div\n ref=\"scroller\"\n class=\"vue-recycle-scroller\"\n :class=\"{\n ready,\n [`direction-${direction}`]: true,\n }\"\n @scroll.passive=\"handleScroll\"\n >\n <component\n :is=\"listTag\"\n ref=\"wrapper\"\n :style=\"{ [direction === 'vertical' ? 'minHeight' : 'minWidth']: `${totalSize}px` }\"\n class=\"vue-recycle-scroller__item-wrapper\"\n :class=\"listClass\"\n >\n <component\n :is=\"itemTag\"\n v-for=\"view in pool\"\n :key=\"view.nr.id\"\n :style=\"ready ? {\n transform: `translate${direction === 'vertical' ? 'Y' : 'X'}(${view.position}px) translate${direction === 'vertical' ? 'X' : 'Y'}(${view.offset}px)`,\n width: undefined,\n height: undefined,\n } : null\"\n class=\"vue-recycle-scroller__item-view\"\n :class=\"[\n itemClass,\n {\n hover: props.enableHover && hoverKey === view.nr.key,\n },\n ]\"\n v-on=\"props.enableHover ? {\n mouseenter: () => { hoverKey = view.nr.key },\n mouseleave: () => { hoverKey = null },\n } : {}\"\n >\n <slot\n :item=\"view.item\"\n :index=\"view.nr.index\"\n :active=\"view.nr.used\"\n />\n </component>\n </component>\n </div>\n</template>\n\n<script setup>\n/*\nThis is a code from external library (https://github.com/Akryum/vue-virtual-scroller/blob/master/packages/vue-virtual-scroller/src/components/RecycleScroller.vue)\nWe have modified it for our own specific use.\n*/\nimport { computed, watch, markRaw, shallowReactive, onMounted, nextTick, reactive, ref } from 'vue';\n\nconst props = defineProps({\n /**\n * List of items you want to display in the scroller.\n */\n items: {\n type: Array,\n required: true,\n },\n\n /**\n *\n * Field used to identify items and optimize managing rendered views\n */\n keyField: {\n type: String,\n default: 'id',\n },\n\n /**\n * Direction of the scroller. Can be either `vertical` or `horizontal`.\n */\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n\n /**\n * Size of the items in the list.\n * If it is set to null (the default value), it will use variable size mode.\n */\n itemSize: {\n type: Number,\n default: null,\n },\n\n /**\n * Minimum size used if the height (or width in horizontal mode) of an item is unknown.\n */\n minItemSize: {\n type: [Number, String],\n default: null,\n },\n\n /**\n * Field used to get the item's size in variable size mode.\n */\n sizeField: {\n type: String,\n default: 'size',\n },\n\n /**\n * Amount of pixel to add to edges of the scrolling visible area to start rendering items further away.\n */\n buffer: {\n type: Number,\n default: 200,\n },\n\n /**\n * Enables hover state CSS class and mouse events on items.\n * Set to false if you want to manage hover state yourself.\n */\n enableHover: {\n type: Boolean,\n default: true,\n },\n\n /**\n * The element to render as the list's wrapper.\n */\n listTag: {\n type: String,\n default: 'div',\n },\n\n /**\n * The element to render as the list item.\n */\n itemTag: {\n type: String,\n default: 'div',\n },\n\n /**\n * The custom classes added to the item list wrapper.\n */\n listClass: {\n type: [String, Object, Array],\n default: '',\n },\n\n /**\n * The custom classes added to each item.\n */\n itemClass: {\n type: [String, Object, Array],\n default: '',\n },\n});\n\nconst emit = defineEmits(['user-position']);\n\nconst views = reactive(new Map());\n// const reactiveItems = reactive(props.items);\nconst unusedViews = reactive(new Map());\nconst updateTimeout = null;\nconst pool = ref([]);\nconst hoverKey = ref(null);\nconst ready = ref(false);\nconst scroller = ref(null);\nconst userPosition = ref('top');\n\nlet startIndex = 0;\nlet endIndex = 0;\nlet scrollDirty = false;\nlet lastUpdateScrollPosition = 0;\nlet sortTimer = null;\nlet computedMinItemSize = null;\nlet totalSize = 0;\nlet uid = 0;\n\nconst sizes = computed(() => {\n if (props.itemSize === null) {\n const sizes = {\n '-1': { accumulator: 0 },\n };\n const items = props.items;\n const field = props.sizeField;\n const minItemSize = props.minItemSize;\n let computedMinSize = 10000;\n let accumulator = 0;\n let current;\n for (let i = 0, l = items.length; i < l; i++) {\n current = items[i][field] || minItemSize;\n if (current < computedMinSize) {\n computedMinSize = current;\n }\n accumulator += current;\n sizes[i] = { accumulator, size: current };\n }\n\n computedMinItemSize = computedMinSize;\n return sizes;\n }\n return [];\n});\n\nconst simpleArray = computed(() => {\n return props.items.length && typeof props.items[0] !== 'object';\n});\n\nconst itemIndexByKey = computed(() => {\n const result = {};\n for (let i = 0, l = props.items.length; i < l; i++) {\n result[props.items[i][props.keyField]] = i;\n }\n return result;\n});\n\n// watch(reactiveItems, () => {\n// // if add to the top\n// // _updateVisibleItems(true);\n// // if autoscrolling if add to the bottom\n// // _updateVisibleItems(false, true);\n// });\n\nwatch(sizes, () => {\n _updateVisibleItems(false);\n}, { deep: true });\n\nonMounted(() => {\n nextTick(() => {\n // In SSR mode, render the real number of visible items\n _updateVisibleItems(true);\n ready.value = true;\n });\n});\n\nconst _addView = (pool, index, item, key, type) => {\n const nr = markRaw({\n id: uid++,\n index,\n used: true,\n key,\n type,\n });\n const view = shallowReactive({\n item,\n position: 0,\n nr,\n });\n pool.value.push(view);\n return view;\n};\n\nconst _unuseView = (view, fake = false) => {\n const _unusedViews = unusedViews;\n const type = view.nr.type;\n let unusedPool = _unusedViews.get(type);\n if (!unusedPool) {\n unusedPool = [];\n _unusedViews.set(type, unusedPool);\n }\n unusedPool.push(view);\n if (!fake) {\n view.nr.used = false;\n view.position = -9999;\n }\n};\n\nconst _getScroll = () => {\n const isVertical = props.direction === 'vertical';\n let scrollState;\n\n if (isVertical) {\n scrollState = {\n start: scroller.value.scrollTop,\n end: scroller.value.scrollTop + scroller.value.clientHeight,\n };\n } else {\n scrollState = {\n start: scroller.value.scrollLeft,\n end: scroller.value.scrollLeft + scroller.value.clientWidth,\n };\n }\n\n return scrollState;\n};\n\nconst _itemsLimitError = () => {\n setTimeout(() => {\n \n console.error('It seems the scroller element isn\\'t scrolling, so it tries to render all the items at once.', 'Scroller:', scroller);\n \n console.error('Make sure the scroller has a fixed height (or width) and \\'overflow-y\\' (or \\'overflow-x\\') set to \\'auto\\' so it can scroll correctly and only render the items visible in the scroll viewport.');\n });\n throw new Error('Rendered items limit reached');\n};\n\nconst _sortViews = () => {\n pool.value.sort((viewA, viewB) => viewA.nr.index - viewB.nr.index);\n};\n\nconst _updateVisibleItems = (checkItem, checkPositionDiff = false) => {\n const itemSize = props.itemSize;\n const minItemSize = computedMinItemSize;\n const keyField = simpleArray.value ? null : props.keyField;\n const items = props.items;\n const count = items.length;\n const _sizes = sizes.value;\n const _views = views;\n const _unusedViews = unusedViews;\n const _pool = pool;\n const _itemIndexByKey = itemIndexByKey;\n let _startIndex, _endIndex;\n let _totalSize;\n let visibleStartIndex, visibleEndIndex;\n\n if (!count) {\n _startIndex = _endIndex = visibleStartIndex = visibleEndIndex = _totalSize = 0;\n } else {\n const scroll = _getScroll();\n\n // Skip update if use hasn't scrolled enough\n if (checkPositionDiff) {\n let positionDiff = scroll.start - lastUpdateScrollPosition.value;\n if (positionDiff < 0) positionDiff = -positionDiff;\n if ((itemSize === null && positionDiff < minItemSize.value) || positionDiff < itemSize) {\n return {\n continuous: true,\n };\n }\n }\n lastUpdateScrollPosition = scroll.start;\n\n const _buffer = props.buffer;\n scroll.start -= _buffer;\n scroll.end += _buffer;\n\n // Variable size mode\n if (itemSize === null) {\n let h;\n let a = 0;\n let b = count - 1;\n let i = ~~(count / 2);\n let oldI;\n\n // Searching for _startIndex\n do {\n oldI = i;\n h = _sizes[i]?.accumulator;\n if (h < scroll.start) {\n a = i;\n } else if (i < count - 1 && _sizes[i + 1]?.accumulator > scroll.start) {\n b = i;\n }\n i = ~~((a + b) / 2);\n } while (i !== oldI);\n i < 0 && (i = 0);\n _startIndex = i;\n\n // For container style\n _totalSize = _sizes[count - 1]?.accumulator;\n\n // Searching for _endIndex\n for (\n _endIndex = i;\n _endIndex < count && _sizes[_endIndex]?.accumulator < scroll.end;\n _endIndex++\n );\n\n if (_endIndex === -1) {\n _endIndex = items.length - 1;\n } else {\n _endIndex++;\n // Bounds\n _endIndex > count && (_endIndex = count);\n }\n\n // search visible _startIndex\n for (\n visibleStartIndex = startIndex;\n visibleStartIndex < count && (_sizes[visibleStartIndex]?.accumulator) < scroll.start;\n visibleStartIndex++\n );\n\n // search visible endIndex\n for (\n visibleEndIndex = visibleStartIndex;\n visibleEndIndex < count && (_sizes[visibleEndIndex]?.accumulator) < scroll.end;\n visibleEndIndex++\n );\n } else {\n // Fixed size mode\n _startIndex = ~~(scroll.start / itemSize);\n const remainer = _startIndex % 1;\n _startIndex -= remainer;\n _endIndex = Math.ceil(scroll.end / itemSize);\n visibleStartIndex = Math.max(0, Math.floor((scroll.start) / itemSize));\n visibleEndIndex = Math.floor((scroll.end) / itemSize);\n\n // Bounds\n _startIndex < 0 && (_startIndex = 0);\n _endIndex > count && (_endIndex = count);\n visibleStartIndex < 0 && (visibleStartIndex = 0);\n visibleEndIndex > count && (visibleEndIndex = count);\n\n _totalSize = Math.ceil(count / 1) * itemSize;\n }\n }\n\n // items limit 1000\n if (_endIndex - _startIndex > 1000) {\n _itemsLimitError();\n }\n\n totalSize = _totalSize;\n\n let view;\n\n const continuous = _startIndex <= endIndex && _endIndex >= _startIndex;\n\n // Unuse views that are no longer visible\n if (continuous) {\n for (let i = 0, l = _pool.value.length; i < l; i++) {\n view = _pool.value[i];\n if (view?.nr.used) {\n // Update view item index\n if (checkItem) {\n view.nr.index = _itemIndexByKey[view.item[keyField]];\n }\n\n // Check if index is still in visible range\n if (\n view.nr.index == null ||\n view.nr.index < _startIndex ||\n view.nr.index >= _endIndex\n ) {\n _unuseView(view);\n }\n }\n }\n }\n\n const unusedIndex = continuous ? null : new Map();\n\n let item, type;\n let v;\n for (let i = _startIndex; i < _endIndex; i++) {\n item = items[i];\n const key = keyField ? item?.[keyField] : item;\n\n if (key == null) {\n throw new Error(`Key is ${key} on item (keyField is '${keyField}')`);\n }\n view = _views.get(key);\n\n if (!itemSize && !_sizes[i]?.size) {\n if (view) _unuseView(view);\n continue;\n }\n\n type = item.type;\n\n let unusedPool = _unusedViews.get(type);\n // let newlyUsedView = false;\n\n // No view assigned to item\n if (!view) {\n if (continuous) {\n // Reuse existing view\n if (unusedPool && unusedPool.length) {\n view = unusedPool.pop();\n } else {\n view = _addView(_pool, i, item, key, type);\n }\n } else {\n // Use existing view\n // We don't care if they are already used\n // because we are not in continous scrolling\n v = unusedIndex.get(type) || 0;\n\n if (!unusedPool || v >= unusedPool.length) {\n view = _addView(_pool, i, item, key, type);\n _unuseView(view, true);\n unusedPool = _unusedViews.get(type);\n }\n\n view = unusedPool[v];\n unusedIndex.set(type, v + 1);\n }\n\n // Assign view to item\n _views.delete(view.nr.key);\n view.nr.used = true;\n view.nr.index = i;\n view.nr.key = key;\n view.nr.type = type;\n _views.set(key, view);\n\n // newlyUsedView = true;\n } else {\n // View already assigned to item\n if (!view.nr.used) {\n view.nr.used = true;\n // newlyUsedView = true;\n if (unusedPool) {\n const index = unusedPool.indexOf(view);\n if (index !== -1) unusedPool.splice(index, 1);\n }\n }\n }\n\n // Always set item in case it's a new object with the same key\n view.item = item;\n\n // if (newlyUsedView) {\n // if (items.length === 0) return;\n // if (i === items.length - 1) emit('scroll-end');\n // if (i === 0) emit('scroll-start');\n // }\n\n // Update position\n if (itemSize === null) {\n view.position = _sizes[i - 1]?.accumulator;\n view.offset = 0;\n } else {\n view.position = Math.floor(i) * itemSize;\n view.offset = (i % 1) * itemSize;\n }\n }\n\n startIndex = _startIndex;\n endIndex = _endIndex;\n\n // After the user has finished scrolling\n // Sort views so text selection is correct\n clearTimeout(sortTimer);\n sortTimer = setTimeout(_sortViews, 300);\n\n return {\n continuous,\n };\n};\n\nconst _scrollToPosition = (position) => {\n const direction = props.direction === 'vertical'\n ? { scroll: 'scrollTop', start: 'top' }\n : { scroll: 'scrollLeft', start: 'left' };\n\n const viewport = scroller.value;\n const scrollDirection = direction.scroll;\n\n viewport[scrollDirection] = position;\n};\n\nconst scrollToItem = (index) => {\n let scroll;\n if (props.itemSize === null) {\n scroll = index > 0 ? sizes.value[index - 1]?.accumulator : 0;\n } else {\n scroll = Math.floor(index) * props.itemSize;\n }\n _scrollToPosition(scroll);\n};\n\nconst handleScroll = () => {\n const container = scroller.value;\n\n if (userPosition.value !== 'middle') {\n userPosition.value = 'middle';\n emit('user-position', 'middle');\n }\n\n // Check if the scroll is at the top of the container\n if (container.scrollTop === 0) {\n userPosition.value = 'top';\n emit('user-position', 'top');\n }\n\n // Check if the scroll is at the bottom of the container\n if (container.scrollTop + container.clientHeight === container.scrollHeight) {\n userPosition.value = 'bottom';\n emit('user-position', 'bottom');\n }\n\n if (!scrollDirty) {\n scrollDirty = true;\n if (updateTimeout) return;\n\n const requestUpdate = () => requestAnimationFrame(() => {\n scrollDirty = false;\n _updateVisibleItems(false, true);\n });\n\n requestUpdate();\n }\n};\n\ndefineExpose({\n scrollToItem,\n _updateVisibleItems,\n});\n</script>\n","<script>\n/*\nThis is a code from external library (https://github.com/Akryum/vue-virtual-scroller/blob/master/packages/vue-virtual-scroller/src/components/DynamicScrollerItem.vue)\nWe have modified it for our own specific use.\n*/\nimport { h } from 'vue';\nimport { returnFirstEl } from '@/common/utils';\n\nexport default {\n name: 'DtScrollerItem',\n\n inject: [\n 'vscrollData',\n 'vscrollParent',\n 'vscrollResizeObserver',\n ],\n\n props: {\n // eslint-disable-next-line vue/require-prop-types\n item: {\n required: true,\n },\n\n watchData: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Indicates if the view is actively used to display an item.\n */\n active: {\n type: Boolean,\n required: true,\n },\n\n index: {\n type: Number,\n default: undefined,\n },\n\n sizeDependencies: {\n type: [Array, Object],\n default: null,\n },\n\n tag: {\n type: String,\n default: 'div',\n },\n },\n\n computed: {\n id () {\n if (this.vscrollData.simpleArray) return this.index;\n \n if (this.vscrollData.keyField in this.item) return this.item[this.vscrollData.keyField];\n throw new Error(`keyField '${this.vscrollData.keyField}' not found in your item. You should set a valid keyField prop on your Scroller`);\n },\n\n size () {\n return this.vscrollData.sizes[this.id] || 0;\n },\n\n finalActive () {\n return this.active && this.vscrollData.active;\n },\n },\n\n watch: {\n watchData: 'updateWatchData',\n\n id (value, oldValue) {\n returnFirstEl(this.$el).$_vs_id = this.id;\n if (!this.size) {\n this.onDataUpdate();\n }\n\n if (this.$_sizeObserved) {\n // In case the old item had the same size, it won't trigger the ResizeObserver\n // since we are reusing the same DOM node\n const oldSize = this.vscrollData.sizes[oldValue];\n const size = this.vscrollData.sizes[value];\n if (oldSize != null && oldSize !== size) {\n this.applySize(oldSize);\n }\n }\n },\n\n finalActive (value) {\n if (!this.size) {\n if (value) {\n if (!this.vscrollParent.$_undefinedMap[this.id]) {\n this.vscrollParent.$_undefinedSizes++;\n this.vscrollParent.$_undefinedMap[this.id] = true;\n }\n } else {\n if (this.vscrollParent.$_undefinedMap[this.id]) {\n this.vscrollParent.$_undefinedSizes--;\n this.vscrollParent.$_undefinedMap[this.id] = false;\n }\n }\n }\n\n if (this.vscrollResizeObserver) {\n if (value) {\n this.observeSize();\n } else {\n this.unobserveSize();\n }\n } else if (value && this.$_pendingVScrollUpdate === this.id) {\n this.updateSize();\n }\n },\n },\n\n created () {\n if (this.$isServer) return;\n\n this.$_forceNextVScrollUpdate = null;\n this.updateWatchData();\n\n if (!this.vscrollResizeObserver) {\n for (const k in this.sizeDependencies) {\n this.$watch(() => this.sizeDependencies[k], this.onDataUpdate);\n }\n }\n },\n\n mounted () {\n if (this.finalActive) {\n this.updateSize();\n this.observeSize();\n }\n },\n\n beforeUnmount () {\n this.unobserveSize();\n },\n\n methods: {\n updateSize () {\n if (this.finalActive) {\n if (this.$_pendingSizeUpdate !== this.id) {\n this.$_pendingSizeUpdate = this.id;\n this.$_forceNextVScrollUpdate = null;\n this.$_pendingVScrollUpdate = null;\n this.computeSize(this.id);\n }\n } else {\n this.$_forceNextVScrollUpdate = this.id;\n }\n },\n\n updateWatchData () {\n if (this.watchData && !this.vscrollResizeObserver) {\n this.$_watchData = this.$watch('item', () => {\n this.onDataUpdate();\n }, {\n deep: true,\n });\n } else if (this.$_watchData) {\n this.$_watchData();\n this.$_watchData = null;\n }\n },\n\n onVscrollUpdate ({ force }) {\n // If not active, sechedule a size update when it becomes active\n if (!this.finalActive && force) {\n this.$_pendingVScrollUpdate = this.id;\n }\n\n if (this.$_forceNextVScrollUpdate === this.id || force || !this.size) {\n this.updateSize();\n }\n },\n\n onDataUpdate () {\n this.updateSize();\n },\n\n computeSize (id) {\n this.$nextTick(() => {\n if (this.id === id) {\n const width = returnFirstEl(this.$el).offsetWidth;\n const height = returnFirstEl(this.$el).offsetHeight;\n this.applyWidthHeight(width, height);\n }\n this.$_pendingSizeUpdate = null;\n });\n },\n\n applyWidthHeight (width, height) {\n const size = ~~(this.vscrollParent.direction === 'vertical' ? height : width);\n if (size && this.size !== size) {\n this.applySize(size);\n }\n },\n\n applySize (size) {\n if (this.vscrollParent.$_undefinedMap[this.id]) {\n this.vscrollParent.$_undefinedSizes--;\n this.vscrollParent.$_undefinedMap[this.id] = undefined;\n }\n this.vscrollData.sizes[this.id] = size;\n },\n\n observeSize () {\n if (!this.vscrollResizeObserver) return;\n if (this.$_sizeObserved) return;\n this.vscrollResizeObserver.observe(returnFirstEl(this.$el));\n this.$el.$_vs_id = this.id;\n this.$el.$_vs_onResize = this.onResize;\n this.$_sizeObserved = true;\n },\n\n unobserveSize () {\n if (!this.vscrollResizeObserver) return;\n if (!this.$_sizeObserved) return;\n this.vscrollResizeObserver.unobserve(returnFirstEl(this.$el));\n this.$el.$_vs_onResize = undefined;\n this.$_sizeObserved = false;\n },\n\n onResize (id, width, height) {\n if (this.id === id) {\n this.applyWidthHeight(width, height);\n }\n },\n },\n\n render () {\n return h(this.tag, this.$slots.default());\n },\n};\n</script>\n","<template>\n <core-scroller\n ref=\"scroller\"\n :items=\"itemsWithSize\"\n :min-item-size=\"minItemSize\"\n :direction=\"direction\"\n :key-field=\"keyField\"\n :list-tag=\"listTag\"\n :item-tag=\"itemTag\"\n v-bind=\"$attrs\"\n >\n <template\n #default=\"{ item: itemWithSize, index, active }\"\n >\n <dt-scroller-item\n :item=\"itemWithSize\"\n :active=\"active\"\n :size-dependencies=\"[\n itemWithSize.message,\n ]\"\n :data-index=\"index\"\n >\n <slot\n v-bind=\"{\n item: itemWithSize.item,\n index,\n active,\n itemWithSize,\n }\"\n />\n </dt-scroller-item>\n </template>\n </core-scroller>\n</template>\n\n<!-- eslint-disable-next-line max-len -->\n<!-- This is a code from external library (https://github.com/Akryum/vue-virtual-scroller/blob/master/packages/vue-virtual-scroller/src/components/DynamicScroller.vue)\nWe have modified it for our own specific use. -->\n<script>\nimport CoreScroller from './core_scroller.vue';\nimport DtScrollerItem from './scroller_item.vue';\nimport { returnFirstEl } from '@/common/utils';\n\nexport default {\n name: 'DynamicScroller',\n\n components: {\n CoreScroller,\n DtScrollerItem,\n },\n\n provide () {\n if (typeof ResizeObserver !== 'undefined') {\n this.$_resizeObserver = new ResizeObserver(entries => {\n requestAnimationFrame(() => {\n if (!Array.isArray(entries)) {\n return;\n }\n for (const entry of entries) {\n if (entry.target && entry.target.$_vs_onResize) {\n let width, height;\n if (entry.borderBoxSize) {\n const resizeObserverSize = entry.borderBoxSize[0];\n width = resizeObserverSize.inlineSize;\n height = resizeObserverSize.blockSize;\n } else {\n // @TODO remove when contentRect is deprecated\n width = entry.contentRect.width;\n height = entry.contentRect.height;\n }\n entry.target.$_vs_onResize(entry.target.$_vs_id, width, height);\n }\n }\n });\n });\n }\n\n return {\n vscrollData: this.vscrollData,\n vscrollParent: this,\n vscrollResizeObserver: this.$_resizeObserver,\n };\n },\n\n inheritAttrs: false,\n\n props: {\n /*\n * The items to render.\n * If the items are simple arrays, the index will be used as the key.\n * If the items are objects, the keyField will be used as the key.\n */\n items: {\n type: Array,\n required: true,\n },\n\n /*\n * Indicates if the items are dynamic.\n * If true, the items will be wrapped in a DtScrollerItem component.\n * This is required for dynamic items to be able to react to changes in their size.\n */\n dynamic: {\n type: Boolean,\n default: false,\n },\n\n /*\n * The key field to use for the items.\n * Only used if the items are objects.\n */\n keyField: {\n type: String,\n default: 'id',\n },\n\n /*\n * The direction of the scroller.\n * Can be either 'vertical' or 'horizontal'.\n */\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n\n /*\n * The tag to use for the list.\n */\n listTag: {\n type: String,\n default: 'div',\n },\n\n /*\n * The tag to use for the items.\n */\n itemTag: {\n type: String,\n default: 'div',\n },\n\n /*\n * Display height (or width in horizontal mode) of the items in pixels\n * used to calculate the scroll size and position.\n * Is required for the initial render of items in DYNAMIC size mode.\n */\n minItemSize: {\n type: [Number, String],\n },\n },\n\n data () {\n return {\n vscrollData: {\n active: true,\n sizes: {},\n keyField: this.keyField,\n simpleArray: false,\n },\n };\n },\n\n computed: {\n simpleArray () {\n return this.items.length && typeof this.items[0] !== 'object';\n },\n\n itemsWithSize () {\n const result = [];\n const { items, keyField, simpleArray } = this;\n const sizes = this.vscrollData.sizes;\n const l = items.length;\n for (let i = 0; i < l; i++) {\n const item = items[i];\n const id = simpleArray ? i : item[keyField];\n let size = sizes[id];\n if (typeof size === 'undefined' && !this.$_undefinedMap[id]) {\n size = 0;\n }\n result.push({\n item,\n [keyField]: id,\n size,\n });\n }\n return result;\n },\n },\n\n watch: {\n simpleArray: {\n handler (value) {\n this.vscrollData.simpleArray = value;\n },\n\n immediate: true,\n },\n\n itemsWithSize (next, prev) {\n const scrollTop = returnFirstEl(this.$el).scrollTop;\n\n // Calculate total diff between prev and next sizes\n // over current scroll top. Then add it to scrollTop to\n // avoid jumping the contents that the user is seeing.\n let prevActiveTop = 0; let activeTop = 0;\n const length = Math.min(next.length, prev.length);\n for (let i = 0; i < length; i++) {\n if (prevActiveTop >= scrollTop) {\n break;\n }\n prevActiveTop += prev[i].size || this.minItemSize;\n activeTop += next[i].size || this.minItemSize;\n }\n const offset = activeTop - prevActiveTop;\n\n if (offset === 0) {\n return;\n }\n\n returnFirstEl(this.$el).scrollTop += offset;\n },\n },\n\n beforeCreate () {\n this.$_updates = [];\n this.$_undefinedSizes = 0;\n this.$_undefinedMap = {};\n },\n\n activated () {\n this.vscrollData.active = true;\n },\n\n deactivated () {\n this.vscrollData.active = false;\n },\n\n methods: {\n dynamicScrollerUpdateItems () {\n const scroller = this.$refs.scroller;\n if (scroller) scroller._updateVisibleItems(true);\n },\n\n dynamicScrollerUpdateItemsFromBottom () {\n const scroller = this.$refs.scroller;\n if (scroller) scroller._updateVisibleItems(false, true);\n },\n\n scrollToItem (index) {\n const scroller = this.$refs.scroller;\n if (scroller) scroller.scrollToItem(index);\n },\n\n scrollToBottom () {\n if (this.$_scrollingToBottom) return;\n this.$_scrollingToBottom = true;\n const el = returnFirstEl(this.$el);\n // Item is inserted to the DOM\n this.$nextTick(() => {\n el.scrollTop = el.scrollHeight + 5000;\n // Item sizes are computed\n const cb = () => {\n el.scrollTop = el.scrollHeight + 5000;\n requestAnimationFrame(() => {\n el.scrollTop = el.scrollHeight + 5000;\n if (this.$_undefinedSizes === 0) {\n this.$_scrollingToBottom = false;\n } else {\n requestAnimationFrame(cb);\n }\n });\n };\n requestAnimationFrame(cb);\n });\n },\n },\n};\n</script>\n","<template>\n <component\n :is=\"dynamic ? DynamicScroller : CoreScroller\"\n ref=\"scroller\"\n data-qa=\"dt-scroller\"\n :items=\"items\"\n :item-size=\"itemSize\"\n :min-item-size=\"minItemSize\"\n :direction=\"direction\"\n :key-field=\"keyField\"\n :list-tag=\"listTag\"\n :item-tag=\"itemTag\"\n :style=\"computedStyle\"\n tabindex=\"0\"\n @user-position=\"$emit('user-position', $event)\"\n >\n <template\n #default=\"{ item, index, active }\"\n >\n <slot\n v-bind=\"{\n item: item,\n index,\n active,\n }\"\n />\n </template>\n </component>\n</template>\n\n<script setup>\nimport CoreScroller from './modules/core_scroller.vue';\nimport DynamicScroller from './modules/dynamic_scroller.vue';\nimport { provide, computed, watch, ref } from 'vue';\n\ndefineOptions({\n name: 'DtScroller',\n});\n\nconst props = defineProps({\n /**\n * The direction of the scroller.\n * @values vertical, horizontal\n */\n direction: {\n type: String,\n default: 'vertical',\n validator: (value) => ['vertical', 'horizontal'].includes(value),\n },\n\n /**\n * Indicates if the items need to react to changes in their size.\n * If disabled the itemSize prop is required and you will get improved performance.\n * If enabled the minItemSize prop is required and you\n * will have reduced performance but the ability to reactively size list items\n * @values true, false\n */\n dynamic: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Display height (or width in horizontal mode) of the items in pixels\n * used to calculate the scroll size and position.\n * Required if DYNAMIC is false\n */\n itemSize: {\n type: Number,\n default: null,\n },\n\n /**\n * The tag to use for the items.\n */\n itemTag: {\n type: String,\n default: 'div',\n },\n\n /**\n * The items to render.\n * If the items are simple arrays, the index will be used as the key.\n * If the items are objects, the keyField will be used as the key.\n * @example items: [ 'item1', 'item2', 'item3' ]\n * @example items: [ { id: 1, name: 'item1' }, { id: 2, name: 'item2' }, { id: 3, name: 'item3' } ]\n */\n items: {\n type: Array,\n required: true,\n },\n\n /**\n * The key field to use for the items.\n * If the items are objects, the scroller needs to be able to identify them.\n * By default it will look for an id field on the items.\n * This can be configured with this prop if you are using another field name.\n */\n keyField: {\n type: String,\n default: 'id',\n },\n\n /**\n * The tag to use for the list.\n */\n listTag: {\n type: String,\n default: 'div',\n },\n\n /**\n * Minimum size used if the height (or width in horizontal mode) of a item is unknown.\n * Is required for the initial render of items in DYNAMIC size mode.\n */\n minItemSize: {\n type: [Number, String],\n default: null,\n },\n\n /**\n * The height of the scroller.\n * Can be a number (in pixels) or a string (in CSS units).\n */\n scrollerHeight: {\n type: [String, Number],\n default: '100%',\n },\n\n /**\n * The width of the scroller.\n * Can be a number (in pixels) or a string (in CSS units).\n */\n scrollerWidth: {\n type: [String, Number],\n default: '100%',\n },\n});\n\nconst emits = defineEmits([\n /**\n * Describe when the scroller changes from start/middle/end\n * @param {string} position The position of the scroller.\n * @values start, middle, end\n */\n 'user-position',\n]);\n\nprovide('emit', emits);\n\nconst scroller = ref(null);\n\nconst computedStyle = computed(() => {\n return {\n width: typeof props.scrollerWidth === 'number' ? `${props.scrollerWidth}px` : props.scrollerWidth,\n height: typeof props.scrollerHeight === 'number' ? `${props.scrollerHeight}px` : props.scrollerHeight,\n };\n});\n\nwatch(props, () => {\n validateProps();\n}, { deep: true, immediate: true });\n\nfunction scrollToBottom () {\n if (scroller.value) scroller.value.scrollToBottom();\n}\n\nfunction scrollToItem (index) {\n if (scroller.value) scroller.value.scrollToItem(index);\n}\n\nfunction updateItems () {\n if (!scroller.value) return;\n if (props.dynamic) {\n scroller.value.dynamicScrollerUpdateItems();\n } else {\n scroller.value._updateVisibleItems(true);\n }\n}\n\nfunction updateItemsFromBottom () {\n if (!scroller.value) return;\n if (props.dynamic) {\n scroller.value.dynamicScrollerUpdateItemsFromBottom();\n } else {\n scroller.value._updateVisibleItems(false, true);\n }\n}\n\nfunction validateProps () {\n if (props.dynamic && !props.minItemSize) {\n console.error('scroller error: \\'minItemSize\\' is required on \\'dynamic\\' mode.');\n }\n\n if (!props.dynamic && !props.itemSize) {\n console.error('scroller error: \\'itemSize\\' is required.');\n }\n}\n\ndefineExpose({\n scrollToBottom,\n scrollToItem,\n updateItems,\n updateItemsFromBottom,\n});\n</script>\n"],"mappings":"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"}