@dialpad/dialtone-vue 3.219.0 → 3.220.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (970) hide show
  1. package/dist/{attachment_carousel-CouFqFMw.js → attachment_carousel-1qxTI-NN.js} +5 -5
  2. package/dist/attachment_carousel-1qxTI-NN.js.map +1 -0
  3. package/dist/attachment_carousel-wnZS3vEt.cjs +2 -0
  4. package/dist/attachment_carousel-wnZS3vEt.cjs.map +1 -0
  5. package/dist/{combobox-DgClbLOg.js → combobox-BQBKrDTW.js} +36 -35
  6. package/dist/combobox-BQBKrDTW.js.map +1 -0
  7. package/dist/combobox-Da7wBh3G.cjs +3 -0
  8. package/dist/combobox-Da7wBh3G.cjs.map +1 -0
  9. package/dist/common/composables/useIndicatorAnimation.cjs +2 -0
  10. package/dist/common/composables/useIndicatorAnimation.cjs.map +1 -0
  11. package/dist/common/composables/useIndicatorAnimation.d.ts +18 -0
  12. package/dist/common/composables/useIndicatorAnimation.d.ts.map +1 -0
  13. package/dist/common/composables/useIndicatorAnimation.js +78 -0
  14. package/dist/common/composables/useIndicatorAnimation.js.map +1 -0
  15. package/dist/common/constants/index.cjs +1 -1
  16. package/dist/common/constants/index.cjs.map +1 -1
  17. package/dist/common/constants/index.d.ts +27 -21
  18. package/dist/common/constants/index.d.ts.map +1 -1
  19. package/dist/common/constants/index.js +25 -14
  20. package/dist/common/constants/index.js.map +1 -1
  21. package/dist/common/constants/sizes.cjs +2 -0
  22. package/dist/common/constants/sizes.cjs.map +1 -0
  23. package/dist/common/constants/sizes.d.ts +22 -0
  24. package/dist/common/constants/sizes.d.ts.map +1 -0
  25. package/dist/common/constants/sizes.js +19 -0
  26. package/dist/common/constants/sizes.js.map +1 -0
  27. package/dist/common/mixins/index.cjs +1 -1
  28. package/dist/common/mixins/index.d.ts +1 -0
  29. package/dist/common/mixins/index.js +2 -1
  30. package/dist/common/mixins/input.cjs +1 -1
  31. package/dist/common/mixins/input.cjs.map +1 -1
  32. package/dist/common/mixins/input.d.ts +27 -33
  33. package/dist/common/mixins/input.d.ts.map +1 -1
  34. package/dist/common/mixins/input.js +0 -8
  35. package/dist/common/mixins/input.js.map +1 -1
  36. package/dist/common/mixins/mode.cjs +2 -0
  37. package/dist/common/mixins/mode.cjs.map +1 -0
  38. package/dist/common/mixins/mode.d.ts +25 -0
  39. package/dist/common/mixins/mode.d.ts.map +1 -0
  40. package/dist/common/mixins/mode.js +62 -0
  41. package/dist/common/mixins/mode.js.map +1 -0
  42. package/dist/common/mode_constants.d.ts +37 -0
  43. package/dist/common/mode_constants.d.ts.map +1 -0
  44. package/dist/common/sr_only_close_button.vue.d.ts +53 -7
  45. package/dist/common/sr_only_close_button.vue.d.ts.map +1 -1
  46. package/dist/common/utils/index.cjs +1 -1
  47. package/dist/common/utils/index.cjs.map +1 -1
  48. package/dist/common/utils/index.d.ts +2 -8
  49. package/dist/common/utils/index.d.ts.map +1 -1
  50. package/dist/common/utils/index.js +79 -88
  51. package/dist/common/utils/index.js.map +1 -1
  52. package/dist/component-documentation.json +1 -1
  53. package/dist/components/avatar/avatar.vue.d.ts +85 -27
  54. package/dist/components/avatar/avatar.vue.d.ts.map +1 -1
  55. package/dist/components/avatar/avatar_constants.d.ts +86 -29
  56. package/dist/components/avatar/avatar_constants.d.ts.map +1 -1
  57. package/dist/components/avatar/index.d.ts +1 -1
  58. package/dist/components/badge/badge.vue.d.ts +1 -1
  59. package/dist/components/badge/badge.vue.d.ts.map +1 -1
  60. package/dist/components/badge/badge_constants.d.ts +1 -1
  61. package/dist/components/banner/banner.vue.d.ts +269 -34
  62. package/dist/components/banner/banner.vue.d.ts.map +1 -1
  63. package/dist/components/box/box.vue.d.ts +73 -0
  64. package/dist/components/box/box.vue.d.ts.map +1 -0
  65. package/dist/components/box/box_constants.d.ts +11 -0
  66. package/dist/components/box/box_constants.d.ts.map +1 -0
  67. package/dist/components/box/index.d.ts +3 -0
  68. package/dist/components/box/index.d.ts.map +1 -0
  69. package/dist/components/box/validators.d.ts +11 -0
  70. package/dist/components/box/validators.d.ts.map +1 -0
  71. package/dist/components/breadcrumbs/breadcrumb_item.vue.d.ts +26 -17
  72. package/dist/components/breadcrumbs/breadcrumb_item.vue.d.ts.map +1 -1
  73. package/dist/components/breadcrumbs/breadcrumbs.vue.d.ts +25 -16
  74. package/dist/components/button/button.vue.d.ts +53 -7
  75. package/dist/components/button/button.vue.d.ts.map +1 -1
  76. package/dist/components/button/button_constants.d.ts +29 -20
  77. package/dist/components/button/button_constants.d.ts.map +1 -1
  78. package/dist/components/card/card.vue.d.ts +0 -9
  79. package/dist/components/card/card.vue.d.ts.map +1 -1
  80. package/dist/components/checkbox/checkbox.vue.d.ts +183 -10
  81. package/dist/components/checkbox/checkbox.vue.d.ts.map +1 -1
  82. package/dist/components/checkbox/checkbox_constants.d.ts +2 -2
  83. package/dist/components/checkbox_group/checkbox_group.vue.d.ts +142 -0
  84. package/dist/components/chip/chip.vue.d.ts +62 -16
  85. package/dist/components/chip/chip.vue.d.ts.map +1 -1
  86. package/dist/components/chip/chip_constants.d.ts +24 -21
  87. package/dist/components/chip/chip_constants.d.ts.map +1 -1
  88. package/dist/components/codeblock/codeblock.vue.d.ts +25 -2
  89. package/dist/components/codeblock/codeblock.vue.d.ts.map +1 -1
  90. package/dist/components/codeblock/codeblock_constants.d.ts +9 -0
  91. package/dist/components/codeblock/codeblock_constants.d.ts.map +1 -0
  92. package/dist/components/collapsible/collapsible.vue.d.ts +53 -7
  93. package/dist/components/collapsible/collapsible.vue.d.ts.map +1 -1
  94. package/dist/components/combobox/combobox.vue.d.ts +113 -38
  95. package/dist/components/combobox/combobox.vue.d.ts.map +1 -1
  96. package/dist/components/combobox/combobox_empty-list.vue.d.ts +40 -7
  97. package/dist/components/combobox/combobox_empty-list.vue.d.ts.map +1 -1
  98. package/dist/components/combobox/combobox_loading-list.vue.d.ts +64 -22
  99. package/dist/components/combobox/combobox_loading-list.vue.d.ts.map +1 -1
  100. package/dist/components/combobox_multi_select/combobox_multi_select_constants.d.ts +16 -13
  101. package/dist/components/combobox_multi_select/combobox_multi_select_constants.d.ts.map +1 -1
  102. package/dist/components/combobox_with_popover/combobox_with_popover.vue.d.ts +399 -93
  103. package/dist/components/combobox_with_popover/combobox_with_popover.vue.d.ts.map +1 -1
  104. package/dist/components/datepicker/modules/month-year-picker.vue.d.ts.map +1 -1
  105. package/dist/components/dropdown/dropdown.vue.d.ts +175 -19
  106. package/dist/components/dropdown/dropdown.vue.d.ts.map +1 -1
  107. package/dist/components/emoji/emoji.vue.d.ts +24 -15
  108. package/dist/components/emoji_picker/emoji_picker.vue.d.ts +204 -22
  109. package/dist/components/emoji_picker/modules/emoji_search.vue.d.ts +204 -22
  110. package/dist/components/emoji_picker/modules/emoji_search.vue.d.ts.map +1 -1
  111. package/dist/components/emoji_picker/modules/emoji_tabset.vue.d.ts.map +1 -1
  112. package/dist/components/emoji_text_wrapper/emoji_text_wrapper.vue.d.ts +24 -15
  113. package/dist/components/emoji_text_wrapper/emoji_text_wrapper.vue.d.ts.map +1 -1
  114. package/dist/components/empty_state/empty_state.vue.d.ts.map +1 -1
  115. package/dist/components/empty_state/empty_state_constants.d.ts +52 -31
  116. package/dist/components/empty_state/empty_state_constants.d.ts.map +1 -1
  117. package/dist/components/filter_pill/filter_pill.vue.d.ts +4491 -0
  118. package/dist/components/filter_pill/filter_pill.vue.d.ts.map +1 -0
  119. package/dist/components/filter_pill/index.d.ts +2 -0
  120. package/dist/components/filter_pill/index.d.ts.map +1 -0
  121. package/dist/components/hovercard/hovercard.vue.d.ts +380 -41
  122. package/dist/components/hovercard/hovercard.vue.d.ts.map +1 -1
  123. package/dist/components/image_viewer/image_viewer.vue.d.ts +131 -14
  124. package/dist/components/image_viewer/image_viewer.vue.d.ts.map +1 -1
  125. package/dist/components/input/input.vue.d.ts +195 -19
  126. package/dist/components/input/input.vue.d.ts.map +1 -1
  127. package/dist/components/input/input_constants.d.ts +46 -48
  128. package/dist/components/input/input_constants.d.ts.map +1 -1
  129. package/dist/components/input_group/input_group.vue.d.ts +142 -0
  130. package/dist/components/input_group/input_group.vue.d.ts.map +1 -1
  131. package/dist/components/item_layout/item_layout.vue.d.ts +37 -6
  132. package/dist/components/item_layout/item_layout.vue.d.ts.map +1 -1
  133. package/dist/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts +142 -0
  134. package/dist/components/keyboard_shortcut/keyboard_shortcut.vue.d.ts.map +1 -1
  135. package/dist/components/link/index.d.ts +1 -1
  136. package/dist/components/link/link.vue.d.ts +25 -6
  137. package/dist/components/link/link_constants.d.ts +4 -4
  138. package/dist/components/link/link_constants.d.ts.map +1 -1
  139. package/dist/components/list_item/list_item.vue.d.ts +40 -7
  140. package/dist/components/list_item/list_item.vue.d.ts.map +1 -1
  141. package/dist/components/modal/modal.vue.d.ts +292 -97
  142. package/dist/components/modal/modal.vue.d.ts.map +1 -1
  143. package/dist/components/modal/modal_constants.d.ts +7 -6
  144. package/dist/components/mode_island/index.d.ts +3 -0
  145. package/dist/components/mode_island/index.d.ts.map +1 -0
  146. package/dist/components/mode_island/mode_island.vue.d.ts +3 -0
  147. package/dist/components/mode_island/mode_island.vue.d.ts.map +1 -0
  148. package/dist/components/mode_island/mode_island_constants.d.ts +10 -0
  149. package/dist/components/mode_island/mode_island_constants.d.ts.map +1 -0
  150. package/dist/components/mode_island/utils.d.ts +12 -0
  151. package/dist/components/mode_island/utils.d.ts.map +1 -0
  152. package/dist/components/mode_island/validators.d.ts +6 -0
  153. package/dist/components/mode_island/validators.d.ts.map +1 -0
  154. package/dist/components/motion_text/motion_text_constants.d.ts +27 -23
  155. package/dist/components/motion_text/motion_text_constants.d.ts.map +1 -1
  156. package/dist/components/notice/notice.vue.d.ts +269 -34
  157. package/dist/components/notice/notice.vue.d.ts.map +1 -1
  158. package/dist/components/notice/notice_action.vue.d.ts +112 -20
  159. package/dist/components/notice/notice_action.vue.d.ts.map +1 -1
  160. package/dist/components/notice/notice_constants.d.ts.map +1 -1
  161. package/dist/components/notice/notice_content.vue.d.ts +144 -1
  162. package/dist/components/notice/notice_content.vue.d.ts.map +1 -1
  163. package/dist/components/notice/notice_icon.vue.d.ts +2 -2
  164. package/dist/components/notice/notice_icon.vue.d.ts.map +1 -1
  165. package/dist/components/pagination/pagination.vue.d.ts +56 -10
  166. package/dist/components/pagination/pagination.vue.d.ts.map +1 -1
  167. package/dist/components/popover/popover.vue.d.ts +163 -18
  168. package/dist/components/popover/popover.vue.d.ts.map +1 -1
  169. package/dist/components/popover/popover_header_footer.vue.d.ts +62 -7
  170. package/dist/components/popover/popover_header_footer.vue.d.ts.map +1 -1
  171. package/dist/components/radio/radio.vue.d.ts +178 -6
  172. package/dist/components/radio/radio.vue.d.ts.map +1 -1
  173. package/dist/components/radio/radio_constants.d.ts +2 -2
  174. package/dist/components/radio_group/radio_group.vue.d.ts +142 -0
  175. package/dist/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts +25 -6
  176. package/dist/components/rich_text_editor/extensions/channels/ChannelComponent.vue.d.ts.map +1 -1
  177. package/dist/components/rich_text_editor/extensions/channels/ChannelSuggestion.vue.d.ts.map +1 -1
  178. package/dist/components/rich_text_editor/extensions/emoji/EmojiComponent.vue.d.ts +24 -15
  179. package/dist/components/rich_text_editor/extensions/emoji/EmojiSuggestion.vue.d.ts +24 -15
  180. package/dist/components/rich_text_editor/extensions/mentions/MentionComponent.vue.d.ts +25 -6
  181. package/dist/components/rich_text_editor/extensions/mentions/MentionSuggestion.vue.d.ts +227 -27
  182. package/dist/components/rich_text_editor/extensions/mentions/MentionSuggestion.vue.d.ts.map +1 -1
  183. package/dist/components/rich_text_editor/extensions/slash_command/SlashCommandSuggestion.vue.d.ts +144 -1
  184. package/dist/components/rich_text_editor/extensions/slash_command/SlashCommandSuggestion.vue.d.ts.map +1 -1
  185. package/dist/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts +40 -7
  186. package/dist/components/rich_text_editor/extensions/suggestion/SuggestionList.vue.d.ts.map +1 -1
  187. package/dist/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts +411 -44
  188. package/dist/components/rich_text_editor/extensions/variable/VariableComponent.vue.d.ts.map +1 -1
  189. package/dist/components/rich_text_editor/rich_text_editor.vue.d.ts +59 -13
  190. package/dist/components/rich_text_editor/rich_text_editor.vue.d.ts.map +1 -1
  191. package/dist/components/root_layout/root_layout_constants.d.ts +2 -0
  192. package/dist/components/root_layout/root_layout_constants.d.ts.map +1 -1
  193. package/dist/components/scroller/modules/core_scroller.vue.d.ts +2 -2
  194. package/dist/components/scroller/modules/dynamic_scroller.vue.d.ts +12 -12
  195. package/dist/components/scroller/scroller.vue.d.ts +18 -18
  196. package/dist/components/segmented_control/index.d.ts +4 -0
  197. package/dist/components/segmented_control/index.d.ts.map +1 -0
  198. package/dist/components/segmented_control/segmented_control.vue.d.ts +226 -0
  199. package/dist/components/segmented_control/segmented_control.vue.d.ts.map +1 -0
  200. package/dist/components/segmented_control/segmented_control_constants.d.ts +41 -0
  201. package/dist/components/segmented_control/segmented_control_constants.d.ts.map +1 -0
  202. package/dist/components/segmented_control/segmented_control_item.vue.d.ts +35 -0
  203. package/dist/components/segmented_control/segmented_control_item.vue.d.ts.map +1 -0
  204. package/dist/components/select_menu/select_menu.vue.d.ts +189 -31
  205. package/dist/components/select_menu/select_menu.vue.d.ts.map +1 -1
  206. package/dist/components/select_menu/select_menu_constants.d.ts +14 -9
  207. package/dist/components/select_menu/select_menu_constants.d.ts.map +1 -1
  208. package/dist/components/skeleton/skeleton-list-item.vue.d.ts +13 -10
  209. package/dist/components/skeleton/skeleton-paragraph.vue.d.ts +3 -0
  210. package/dist/components/skeleton/skeleton-shape.vue.d.ts +5 -5
  211. package/dist/components/skeleton/skeleton-text.vue.d.ts +3 -0
  212. package/dist/components/skeleton/skeleton.vue.d.ts +24 -15
  213. package/dist/components/skeleton/skeleton_constants.d.ts +18 -13
  214. package/dist/components/skeleton/skeleton_constants.d.ts.map +1 -1
  215. package/dist/components/split_button/{split_button-omega.vue.d.ts → split_button-end.vue.d.ts} +64 -13
  216. package/dist/components/split_button/{split_button-omega.vue.d.ts.map → split_button-end.vue.d.ts.map} +1 -1
  217. package/dist/components/split_button/{split_button-alpha.vue.d.ts → split_button-start.vue.d.ts} +125 -11
  218. package/dist/components/split_button/split_button-start.vue.d.ts.map +1 -0
  219. package/dist/components/split_button/split_button.vue.d.ts +602 -78
  220. package/dist/components/split_button/split_button.vue.d.ts.map +1 -1
  221. package/dist/components/split_button/split_button_constants.d.ts +12 -7
  222. package/dist/components/split_button/split_button_constants.d.ts.map +1 -1
  223. package/dist/components/stack/stack_constants.d.ts.map +1 -1
  224. package/dist/components/tab/index.d.ts +1 -1
  225. package/dist/components/tab/tab.vue.d.ts +86 -11
  226. package/dist/components/tab/tab.vue.d.ts.map +1 -1
  227. package/dist/components/tab/tab_group.vue.d.ts +125 -10
  228. package/dist/components/tab/tab_group.vue.d.ts.map +1 -1
  229. package/dist/components/tab/tabs_constants.d.ts +23 -5
  230. package/dist/components/tab/tabs_constants.d.ts.map +1 -1
  231. package/dist/components/text/index.d.ts +3 -0
  232. package/dist/components/text/index.d.ts.map +1 -0
  233. package/dist/components/text/text.vue.d.ts +145 -0
  234. package/dist/components/text/text.vue.d.ts.map +1 -0
  235. package/dist/components/text/text_constants.d.ts +93 -0
  236. package/dist/components/text/text_constants.d.ts.map +1 -0
  237. package/dist/components/toast/layouts/toast_layout_alternate.vue.d.ts +264 -29
  238. package/dist/components/toast/layouts/toast_layout_alternate.vue.d.ts.map +1 -1
  239. package/dist/components/toast/layouts/toast_layout_alternate_icon.vue.d.ts +2 -2
  240. package/dist/components/toast/layouts/toast_layout_alternate_icon.vue.d.ts.map +1 -1
  241. package/dist/components/toast/layouts/toast_layout_default.vue.d.ts +267 -32
  242. package/dist/components/toast/layouts/toast_layout_default.vue.d.ts.map +1 -1
  243. package/dist/components/toast/toast.vue.d.ts +1125 -185
  244. package/dist/components/toast/toast.vue.d.ts.map +1 -1
  245. package/dist/components/toggle/toggle.vue.d.ts +19 -19
  246. package/dist/components/toggle/toggle.vue.d.ts.map +1 -1
  247. package/dist/components/toggle/toggle_constants.d.ts +6 -4
  248. package/dist/components/toggle/toggle_constants.d.ts.map +1 -1
  249. package/dist/components/tooltip/tooltip.vue.d.ts +31 -5
  250. package/dist/components/tooltip/tooltip.vue.d.ts.map +1 -1
  251. package/dist/{datepicker-LVDRC6Lf.js → datepicker-B2nhxiCg.js} +20 -24
  252. package/dist/datepicker-B2nhxiCg.js.map +1 -0
  253. package/dist/datepicker-CZrNL0Yn.cjs +2 -0
  254. package/dist/datepicker-CZrNL0Yn.cjs.map +1 -0
  255. package/dist/dialtone-vue.cjs +1 -1
  256. package/dist/dialtone-vue.css +1 -1
  257. package/dist/dialtone-vue.js +170 -150
  258. package/dist/directives/focusgroup_directive/focusgroup.d.ts +6 -0
  259. package/dist/directives/focusgroup_directive/focusgroup.d.ts.map +1 -0
  260. package/dist/directives/focusgroup_directive/focusgroup_constants.d.ts +74 -0
  261. package/dist/directives/focusgroup_directive/focusgroup_constants.d.ts.map +1 -0
  262. package/dist/directives/focusgroup_directive/focusgroup_utils.d.ts +15 -0
  263. package/dist/directives/focusgroup_directive/focusgroup_utils.d.ts.map +1 -0
  264. package/dist/directives/focusgroup_directive/index.d.ts +2 -0
  265. package/dist/directives/focusgroup_directive/index.d.ts.map +1 -0
  266. package/dist/directives/focustrap_directive/focustrap.d.ts +6 -0
  267. package/dist/directives/focustrap_directive/focustrap.d.ts.map +1 -0
  268. package/dist/directives/focustrap_directive/focustrap_constants.d.ts +7 -0
  269. package/dist/directives/focustrap_directive/focustrap_constants.d.ts.map +1 -0
  270. package/dist/directives/focustrap_directive/focustrap_utils.d.ts +5 -0
  271. package/dist/directives/focustrap_directive/focustrap_utils.d.ts.map +1 -0
  272. package/dist/directives/focustrap_directive/index.d.ts +2 -0
  273. package/dist/directives/focustrap_directive/index.d.ts.map +1 -0
  274. package/dist/directives/mode_directive/index.d.ts +2 -0
  275. package/dist/directives/mode_directive/index.d.ts.map +1 -0
  276. package/dist/directives/mode_directive/mode.d.ts +6 -0
  277. package/dist/directives/mode_directive/mode.d.ts.map +1 -0
  278. package/dist/directives/tooltip_directive/tooltip.d.ts.map +1 -1
  279. package/dist/emoji_picker-BQW4qRFg.cjs +2 -0
  280. package/dist/emoji_picker-BQW4qRFg.cjs.map +1 -0
  281. package/dist/{emoji_picker-tVHfpHDk.js → emoji_picker-BjgAohQy.js} +9 -8
  282. package/dist/emoji_picker-BjgAohQy.js.map +1 -0
  283. package/dist/index.d.ts +8 -0
  284. package/dist/lib/attachment-carousel/attachment-carousel.cjs +1 -1
  285. package/dist/lib/attachment-carousel/attachment-carousel.js +1 -1
  286. package/dist/lib/attachment-carousel/index.cjs +1 -1
  287. package/dist/lib/attachment-carousel/index.js +1 -1
  288. package/dist/lib/avatar/avatar-constants.cjs +1 -1
  289. package/dist/lib/avatar/avatar-constants.cjs.map +1 -1
  290. package/dist/lib/avatar/avatar-constants.js +111 -24
  291. package/dist/lib/avatar/avatar-constants.js.map +1 -1
  292. package/dist/lib/avatar/avatar.cjs +1 -1
  293. package/dist/lib/avatar/avatar.cjs.map +1 -1
  294. package/dist/lib/avatar/avatar.js +145 -84
  295. package/dist/lib/avatar/avatar.js.map +1 -1
  296. package/dist/lib/avatar/index.cjs +1 -1
  297. package/dist/lib/avatar/index.js +3 -3
  298. package/dist/lib/badge/badge-constants.cjs +1 -1
  299. package/dist/lib/badge/badge-constants.cjs.map +1 -1
  300. package/dist/lib/badge/badge-constants.js +1 -1
  301. package/dist/lib/badge/badge-constants.js.map +1 -1
  302. package/dist/lib/badge/badge.cjs +1 -1
  303. package/dist/lib/badge/badge.cjs.map +1 -1
  304. package/dist/lib/badge/badge.js +26 -14
  305. package/dist/lib/badge/badge.js.map +1 -1
  306. package/dist/lib/banner/banner.cjs +2 -2
  307. package/dist/lib/banner/banner.cjs.map +1 -1
  308. package/dist/lib/banner/banner.js +17 -16
  309. package/dist/lib/banner/banner.js.map +1 -1
  310. package/dist/lib/box/box-constants.cjs +2 -0
  311. package/dist/lib/box/box-constants.cjs.map +1 -0
  312. package/dist/lib/box/box-constants.js +103 -0
  313. package/dist/lib/box/box-constants.js.map +1 -0
  314. package/dist/lib/box/box.cjs +2 -0
  315. package/dist/lib/box/box.cjs.map +1 -0
  316. package/dist/lib/box/box.js +229 -0
  317. package/dist/lib/box/box.js.map +1 -0
  318. package/dist/lib/box/index.cjs +1 -0
  319. package/dist/lib/box/index.js +3 -0
  320. package/dist/lib/box/validators.cjs +2 -0
  321. package/dist/lib/box/validators.cjs.map +1 -0
  322. package/dist/lib/box/validators.js +7 -0
  323. package/dist/lib/box/validators.js.map +1 -0
  324. package/dist/lib/breadcrumbs/breadcrumb-item.cjs +1 -1
  325. package/dist/lib/breadcrumbs/breadcrumb-item.cjs.map +1 -1
  326. package/dist/lib/breadcrumbs/breadcrumb-item.js +29 -38
  327. package/dist/lib/breadcrumbs/breadcrumb-item.js.map +1 -1
  328. package/dist/lib/breadcrumbs/breadcrumbs.cjs +1 -1
  329. package/dist/lib/breadcrumbs/breadcrumbs.cjs.map +1 -1
  330. package/dist/lib/breadcrumbs/breadcrumbs.js +6 -6
  331. package/dist/lib/breadcrumbs/breadcrumbs.js.map +1 -1
  332. package/dist/lib/button/button-constants.cjs +1 -1
  333. package/dist/lib/button/button-constants.cjs.map +1 -1
  334. package/dist/lib/button/button-constants.js +17 -3
  335. package/dist/lib/button/button-constants.js.map +1 -1
  336. package/dist/lib/button/button.cjs +1 -1
  337. package/dist/lib/button/button.cjs.map +1 -1
  338. package/dist/lib/button/button.js +98 -15
  339. package/dist/lib/button/button.js.map +1 -1
  340. package/dist/lib/button-group/button-group.cjs.map +1 -1
  341. package/dist/lib/button-group/button-group.js.map +1 -1
  342. package/dist/lib/callbar-button/callbar-button.cjs +1 -1
  343. package/dist/lib/callbar-button/callbar-button.cjs.map +1 -1
  344. package/dist/lib/callbar-button/callbar-button.js +26 -27
  345. package/dist/lib/callbar-button/callbar-button.js.map +1 -1
  346. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs +1 -1
  347. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.cjs.map +1 -1
  348. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js +45 -36
  349. package/dist/lib/callbar-button-with-dropdown/callbar-button-with-dropdown.js.map +1 -1
  350. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.cjs +1 -1
  351. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.cjs.map +1 -1
  352. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.js +47 -38
  353. package/dist/lib/callbar-button-with-popover/callbar-button-with-popover.js.map +1 -1
  354. package/dist/lib/callbox/callbox.cjs +1 -1
  355. package/dist/lib/callbox/callbox.cjs.map +1 -1
  356. package/dist/lib/callbox/callbox.js +4 -4
  357. package/dist/lib/callbox/callbox.js.map +1 -1
  358. package/dist/lib/card/card.cjs +1 -1
  359. package/dist/lib/card/card.cjs.map +1 -1
  360. package/dist/lib/card/card.js +10 -18
  361. package/dist/lib/card/card.js.map +1 -1
  362. package/dist/lib/checkbox/checkbox-constants.cjs +1 -1
  363. package/dist/lib/checkbox/checkbox-constants.cjs.map +1 -1
  364. package/dist/lib/checkbox/checkbox-constants.js +2 -2
  365. package/dist/lib/checkbox/checkbox-constants.js.map +1 -1
  366. package/dist/lib/checkbox/checkbox.cjs +1 -1
  367. package/dist/lib/checkbox/checkbox.cjs.map +1 -1
  368. package/dist/lib/checkbox/checkbox.js +79 -28
  369. package/dist/lib/checkbox/checkbox.js.map +1 -1
  370. package/dist/lib/checkbox-group/checkboxes-decorator.cjs +1 -1
  371. package/dist/lib/checkbox-group/checkboxes-decorator.cjs.map +1 -1
  372. package/dist/lib/checkbox-group/checkboxes-decorator.js +0 -1
  373. package/dist/lib/checkbox-group/checkboxes-decorator.js.map +1 -1
  374. package/dist/lib/chip/chip-constants.cjs +1 -1
  375. package/dist/lib/chip/chip-constants.cjs.map +1 -1
  376. package/dist/lib/chip/chip-constants.js +9 -0
  377. package/dist/lib/chip/chip-constants.js.map +1 -1
  378. package/dist/lib/chip/chip.cjs +1 -1
  379. package/dist/lib/chip/chip.cjs.map +1 -1
  380. package/dist/lib/chip/chip.js +13 -13
  381. package/dist/lib/chip/chip.js.map +1 -1
  382. package/dist/lib/codeblock/codeblock-constants.cjs +2 -0
  383. package/dist/lib/codeblock/codeblock-constants.cjs.map +1 -0
  384. package/dist/lib/codeblock/codeblock-constants.js +20 -0
  385. package/dist/lib/codeblock/codeblock-constants.js.map +1 -0
  386. package/dist/lib/codeblock/codeblock.cjs +1 -2
  387. package/dist/lib/codeblock/codeblock.cjs.map +1 -1
  388. package/dist/lib/codeblock/codeblock.js +25 -14
  389. package/dist/lib/codeblock/codeblock.js.map +1 -1
  390. package/dist/lib/collapsible/collapsible.cjs +1 -1
  391. package/dist/lib/collapsible/collapsible.cjs.map +1 -1
  392. package/dist/lib/collapsible/collapsible.js +1 -1
  393. package/dist/lib/collapsible/collapsible.js.map +1 -1
  394. package/dist/lib/combobox/combobox.cjs +1 -1
  395. package/dist/lib/combobox/combobox.js +1 -1
  396. package/dist/lib/combobox/index.cjs +1 -1
  397. package/dist/lib/combobox/index.js +1 -1
  398. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.cjs +1 -1
  399. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.cjs.map +1 -1
  400. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.js +6 -0
  401. package/dist/lib/combobox-multi-select/combobox-multi-select-constants.js.map +1 -1
  402. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs +1 -1
  403. package/dist/lib/combobox-multi-select/combobox-multi-select.cjs.map +1 -1
  404. package/dist/lib/combobox-multi-select/combobox-multi-select.js +34 -33
  405. package/dist/lib/combobox-multi-select/combobox-multi-select.js.map +1 -1
  406. package/dist/lib/combobox-with-popover/combobox-with-popover.cjs +1 -1
  407. package/dist/lib/combobox-with-popover/combobox-with-popover.cjs.map +1 -1
  408. package/dist/lib/combobox-with-popover/combobox-with-popover.js +51 -46
  409. package/dist/lib/combobox-with-popover/combobox-with-popover.js.map +1 -1
  410. package/dist/lib/contact-centers-row/contact-centers-row.cjs +1 -1
  411. package/dist/lib/contact-centers-row/contact-centers-row.cjs.map +1 -1
  412. package/dist/lib/contact-centers-row/contact-centers-row.js +51 -45
  413. package/dist/lib/contact-centers-row/contact-centers-row.js.map +1 -1
  414. package/dist/lib/contact-info/contact-info.cjs +1 -1
  415. package/dist/lib/contact-info/contact-info.cjs.map +1 -1
  416. package/dist/lib/contact-info/contact-info.js +8 -8
  417. package/dist/lib/contact-info/contact-info.js.map +1 -1
  418. package/dist/lib/contact-row/contact-row.cjs +1 -1
  419. package/dist/lib/contact-row/contact-row.cjs.map +1 -1
  420. package/dist/lib/contact-row/contact-row.js +3 -3
  421. package/dist/lib/contact-row/contact-row.js.map +1 -1
  422. package/dist/lib/datepicker/datepicker.cjs +1 -1
  423. package/dist/lib/datepicker/datepicker.js +1 -1
  424. package/dist/lib/datepicker/index.cjs +1 -1
  425. package/dist/lib/datepicker/index.js +1 -1
  426. package/dist/lib/description-list/description-list.cjs +1 -1
  427. package/dist/lib/description-list/description-list.cjs.map +1 -1
  428. package/dist/lib/description-list/description-list.js +1 -1
  429. package/dist/lib/description-list/description-list.js.map +1 -1
  430. package/dist/lib/dropdown/dropdown-constants.cjs +1 -1
  431. package/dist/lib/dropdown/dropdown-constants.cjs.map +1 -1
  432. package/dist/lib/dropdown/dropdown-constants.js +2 -2
  433. package/dist/lib/dropdown/dropdown-constants.js.map +1 -1
  434. package/dist/lib/dropdown/dropdown-list.cjs +1 -1
  435. package/dist/lib/dropdown/dropdown-list.cjs.map +1 -1
  436. package/dist/lib/dropdown/dropdown-list.js +28 -16
  437. package/dist/lib/dropdown/dropdown-list.js.map +1 -1
  438. package/dist/lib/dropdown/dropdown.cjs +1 -1
  439. package/dist/lib/dropdown/dropdown.cjs.map +1 -1
  440. package/dist/lib/dropdown/dropdown.js +30 -26
  441. package/dist/lib/dropdown/dropdown.js.map +1 -1
  442. package/dist/lib/editor/EditorToolbarButton.cjs +1 -1
  443. package/dist/lib/editor/EditorToolbarButton.cjs.map +1 -1
  444. package/dist/lib/editor/EditorToolbarButton.js +1 -1
  445. package/dist/lib/editor/EditorToolbarButton.js.map +1 -1
  446. package/dist/lib/editor/EditorToolbarDropdownButton.cjs +1 -1
  447. package/dist/lib/editor/EditorToolbarDropdownButton.cjs.map +1 -1
  448. package/dist/lib/editor/EditorToolbarDropdownButton.js +1 -1
  449. package/dist/lib/editor/EditorToolbarDropdownButton.js.map +1 -1
  450. package/dist/lib/editor/EditorToolbarPopoverButton.cjs +1 -1
  451. package/dist/lib/editor/EditorToolbarPopoverButton.cjs.map +1 -1
  452. package/dist/lib/editor/EditorToolbarPopoverButton.js +1 -1
  453. package/dist/lib/editor/EditorToolbarPopoverButton.js.map +1 -1
  454. package/dist/lib/editor/editor.cjs +1 -1
  455. package/dist/lib/editor/editor.cjs.map +1 -1
  456. package/dist/lib/editor/editor.js +134 -135
  457. package/dist/lib/editor/editor.js.map +1 -1
  458. package/dist/lib/emoji-picker/emoji-picker.cjs +1 -1
  459. package/dist/lib/emoji-picker/emoji-picker.js +1 -1
  460. package/dist/lib/emoji-picker/index.cjs +1 -1
  461. package/dist/lib/emoji-picker/index.js +1 -1
  462. package/dist/lib/emoji-row/emoji-row.cjs +1 -1
  463. package/dist/lib/emoji-row/emoji-row.cjs.map +1 -1
  464. package/dist/lib/emoji-row/emoji-row.js +1 -1
  465. package/dist/lib/emoji-row/emoji-row.js.map +1 -1
  466. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.cjs.map +1 -1
  467. package/dist/lib/emoji-text-wrapper/emoji-text-wrapper.js.map +1 -1
  468. package/dist/lib/empty-state/empty-state-constants.cjs +1 -1
  469. package/dist/lib/empty-state/empty-state-constants.cjs.map +1 -1
  470. package/dist/lib/empty-state/empty-state-constants.js +37 -9
  471. package/dist/lib/empty-state/empty-state-constants.js.map +1 -1
  472. package/dist/lib/empty-state/empty-state.cjs +1 -1
  473. package/dist/lib/empty-state/empty-state.cjs.map +1 -1
  474. package/dist/lib/empty-state/empty-state.js +46 -26
  475. package/dist/lib/empty-state/empty-state.js.map +1 -1
  476. package/dist/lib/feed-item-pill/feed-item-pill.cjs +1 -1
  477. package/dist/lib/feed-item-pill/feed-item-pill.cjs.map +1 -1
  478. package/dist/lib/feed-item-pill/feed-item-pill.js +40 -42
  479. package/dist/lib/feed-item-pill/feed-item-pill.js.map +1 -1
  480. package/dist/lib/feed-item-row/feed-item-row.cjs +1 -1
  481. package/dist/lib/feed-item-row/feed-item-row.cjs.map +1 -1
  482. package/dist/lib/feed-item-row/feed-item-row.js +3 -3
  483. package/dist/lib/feed-item-row/feed-item-row.js.map +1 -1
  484. package/dist/lib/filter-pill/filter-pill.cjs +2 -0
  485. package/dist/lib/filter-pill/filter-pill.cjs.map +1 -0
  486. package/dist/lib/filter-pill/filter-pill.js +433 -0
  487. package/dist/lib/filter-pill/filter-pill.js.map +1 -0
  488. package/dist/lib/filter-pill/index.cjs +1 -0
  489. package/dist/lib/filter-pill/index.js +2 -0
  490. package/dist/lib/focusgroup-directive/focusgroup-constants.cjs +2 -0
  491. package/dist/lib/focusgroup-directive/focusgroup-constants.cjs.map +1 -0
  492. package/dist/lib/focusgroup-directive/focusgroup-constants.js +77 -0
  493. package/dist/lib/focusgroup-directive/focusgroup-constants.js.map +1 -0
  494. package/dist/lib/focusgroup-directive/focusgroup-utils.cjs +2 -0
  495. package/dist/lib/focusgroup-directive/focusgroup-utils.cjs.map +1 -0
  496. package/dist/lib/focusgroup-directive/focusgroup-utils.js +33 -0
  497. package/dist/lib/focusgroup-directive/focusgroup-utils.js.map +1 -0
  498. package/dist/lib/focusgroup-directive/focusgroup.cjs +2 -0
  499. package/dist/lib/focusgroup-directive/focusgroup.cjs.map +1 -0
  500. package/dist/lib/focusgroup-directive/focusgroup.js +143 -0
  501. package/dist/lib/focusgroup-directive/focusgroup.js.map +1 -0
  502. package/dist/lib/focusgroup-directive/index.cjs +1 -0
  503. package/dist/lib/focusgroup-directive/index.js +2 -0
  504. package/dist/lib/focustrap-directive/focustrap-constants.cjs +2 -0
  505. package/dist/lib/focustrap-directive/focustrap-constants.cjs.map +1 -0
  506. package/dist/lib/focustrap-directive/focustrap-constants.js +10 -0
  507. package/dist/lib/focustrap-directive/focustrap-constants.js.map +1 -0
  508. package/dist/lib/focustrap-directive/focustrap-utils.cjs +2 -0
  509. package/dist/lib/focustrap-directive/focustrap-utils.cjs.map +1 -0
  510. package/dist/lib/focustrap-directive/focustrap-utils.js +19 -0
  511. package/dist/lib/focustrap-directive/focustrap-utils.js.map +1 -0
  512. package/dist/lib/focustrap-directive/focustrap.cjs +2 -0
  513. package/dist/lib/focustrap-directive/focustrap.cjs.map +1 -0
  514. package/dist/lib/focustrap-directive/focustrap.js +96 -0
  515. package/dist/lib/focustrap-directive/focustrap.js.map +1 -0
  516. package/dist/lib/focustrap-directive/index.cjs +1 -0
  517. package/dist/lib/focustrap-directive/index.js +2 -0
  518. package/dist/lib/general-row/general-row.cjs +1 -1
  519. package/dist/lib/general-row/general-row.cjs.map +1 -1
  520. package/dist/lib/general-row/general-row.js +105 -61
  521. package/dist/lib/general-row/general-row.js.map +1 -1
  522. package/dist/lib/general-row/leftbar-general-row-icon.cjs +1 -1
  523. package/dist/lib/general-row/leftbar-general-row-icon.cjs.map +1 -1
  524. package/dist/lib/general-row/leftbar-general-row-icon.js +1 -1
  525. package/dist/lib/general-row/leftbar-general-row-icon.js.map +1 -1
  526. package/dist/lib/group-row/group-row.cjs +1 -1
  527. package/dist/lib/group-row/group-row.cjs.map +1 -1
  528. package/dist/lib/group-row/group-row.js +2 -2
  529. package/dist/lib/group-row/group-row.js.map +1 -1
  530. package/dist/lib/grouped-chip/grouped-chip.cjs +1 -1
  531. package/dist/lib/grouped-chip/grouped-chip.cjs.map +1 -1
  532. package/dist/lib/grouped-chip/grouped-chip.js +9 -9
  533. package/dist/lib/grouped-chip/grouped-chip.js.map +1 -1
  534. package/dist/lib/hovercard/hovercard.cjs +1 -1
  535. package/dist/lib/hovercard/hovercard.cjs.map +1 -1
  536. package/dist/lib/hovercard/hovercard.js +28 -24
  537. package/dist/lib/hovercard/hovercard.js.map +1 -1
  538. package/dist/lib/icon/icon.cjs +1 -1
  539. package/dist/lib/icon/icon.cjs.map +1 -1
  540. package/dist/lib/icon/icon.js +1 -1
  541. package/dist/lib/icon/icon.js.map +1 -1
  542. package/dist/lib/illustration/illustration.cjs +1 -1
  543. package/dist/lib/illustration/illustration.cjs.map +1 -1
  544. package/dist/lib/illustration/illustration.js +1 -1
  545. package/dist/lib/illustration/illustration.js.map +1 -1
  546. package/dist/lib/image-viewer/image-viewer.cjs +1 -1
  547. package/dist/lib/image-viewer/image-viewer.cjs.map +1 -1
  548. package/dist/lib/image-viewer/image-viewer.js +32 -31
  549. package/dist/lib/image-viewer/image-viewer.js.map +1 -1
  550. package/dist/lib/input/input-constants.cjs +1 -1
  551. package/dist/lib/input/input-constants.cjs.map +1 -1
  552. package/dist/lib/input/input-constants.js +25 -11
  553. package/dist/lib/input/input-constants.js.map +1 -1
  554. package/dist/lib/input/input.cjs +1 -1
  555. package/dist/lib/input/input.cjs.map +1 -1
  556. package/dist/lib/input/input.js +161 -79
  557. package/dist/lib/input/input.js.map +1 -1
  558. package/dist/lib/input-group/input-group.cjs +1 -1
  559. package/dist/lib/input-group/input-group.cjs.map +1 -1
  560. package/dist/lib/input-group/input-group.js +25 -15
  561. package/dist/lib/input-group/input-group.js.map +1 -1
  562. package/dist/lib/item-layout/item-layout.cjs +3 -3
  563. package/dist/lib/item-layout/item-layout.cjs.map +1 -1
  564. package/dist/lib/item-layout/item-layout.js +35 -12
  565. package/dist/lib/item-layout/item-layout.js.map +1 -1
  566. package/dist/lib/ivr-node/ivr-node.cjs +1 -1
  567. package/dist/lib/ivr-node/ivr-node.cjs.map +1 -1
  568. package/dist/lib/ivr-node/ivr-node.js +1 -1
  569. package/dist/lib/ivr-node/ivr-node.js.map +1 -1
  570. package/dist/lib/keyboard-shortcut/keyboard-shortcut.cjs +1 -1
  571. package/dist/lib/keyboard-shortcut/keyboard-shortcut.cjs.map +1 -1
  572. package/dist/lib/keyboard-shortcut/keyboard-shortcut.js +48 -38
  573. package/dist/lib/keyboard-shortcut/keyboard-shortcut.js.map +1 -1
  574. package/dist/lib/kitchen-sink/kitchen-sink-view.cjs +2 -0
  575. package/dist/lib/kitchen-sink/kitchen-sink-view.cjs.map +1 -0
  576. package/dist/lib/kitchen-sink/kitchen-sink-view.js +205 -0
  577. package/dist/lib/kitchen-sink/kitchen-sink-view.js.map +1 -0
  578. package/dist/lib/link/index.cjs +1 -1
  579. package/dist/lib/link/index.js +2 -2
  580. package/dist/lib/link/link-constants.cjs +1 -1
  581. package/dist/lib/link/link-constants.cjs.map +1 -1
  582. package/dist/lib/link/link-constants.js +7 -7
  583. package/dist/lib/link/link-constants.js.map +1 -1
  584. package/dist/lib/link/link.cjs +1 -1
  585. package/dist/lib/link/link.cjs.map +1 -1
  586. package/dist/lib/link/link.js +17 -2
  587. package/dist/lib/link/link.js.map +1 -1
  588. package/dist/lib/list-item/list-item.cjs +1 -1
  589. package/dist/lib/list-item/list-item.cjs.map +1 -1
  590. package/dist/lib/list-item/list-item.js +9 -5
  591. package/dist/lib/list-item/list-item.js.map +1 -1
  592. package/dist/lib/list-item-group/list-item-group.cjs +1 -1
  593. package/dist/lib/list-item-group/list-item-group.cjs.map +1 -1
  594. package/dist/lib/list-item-group/list-item-group.js +1 -1
  595. package/dist/lib/list-item-group/list-item-group.js.map +1 -1
  596. package/dist/lib/message-input/index.cjs +1 -1
  597. package/dist/lib/message-input/index.js +1 -1
  598. package/dist/lib/message-input/message-input-button.cjs +1 -1
  599. package/dist/lib/message-input/message-input-button.cjs.map +1 -1
  600. package/dist/lib/message-input/message-input-button.js +1 -1
  601. package/dist/lib/message-input/message-input-button.js.map +1 -1
  602. package/dist/lib/message-input/message-input-link.cjs +1 -1
  603. package/dist/lib/message-input/message-input-link.cjs.map +1 -1
  604. package/dist/lib/message-input/message-input-link.js +9 -9
  605. package/dist/lib/message-input/message-input-link.js.map +1 -1
  606. package/dist/lib/message-input/message-input-topbar.cjs +1 -1
  607. package/dist/lib/message-input/message-input-topbar.cjs.map +1 -1
  608. package/dist/lib/message-input/message-input-topbar.js +2 -2
  609. package/dist/lib/message-input/message-input-topbar.js.map +1 -1
  610. package/dist/lib/message-input/message-input.cjs +1 -1
  611. package/dist/lib/message-input/message-input.js +1 -1
  612. package/dist/lib/modal/modal-constants.cjs +1 -1
  613. package/dist/lib/modal/modal-constants.cjs.map +1 -1
  614. package/dist/lib/modal/modal-constants.js +3 -3
  615. package/dist/lib/modal/modal-constants.js.map +1 -1
  616. package/dist/lib/modal/modal.cjs +1 -1
  617. package/dist/lib/modal/modal.cjs.map +1 -1
  618. package/dist/lib/modal/modal.js +158 -157
  619. package/dist/lib/modal/modal.js.map +1 -1
  620. package/dist/lib/mode-directive/index.cjs +1 -0
  621. package/dist/lib/mode-directive/index.js +2 -0
  622. package/dist/lib/mode-directive/mode.cjs +2 -0
  623. package/dist/lib/mode-directive/mode.cjs.map +1 -0
  624. package/dist/lib/mode-directive/mode.js +67 -0
  625. package/dist/lib/mode-directive/mode.js.map +1 -0
  626. package/dist/lib/mode-island/index.cjs +1 -0
  627. package/dist/lib/mode-island/index.js +3 -0
  628. package/dist/lib/mode-island/mode-island-constants.cjs +2 -0
  629. package/dist/lib/mode-island/mode-island-constants.cjs.map +1 -0
  630. package/dist/lib/mode-island/mode-island-constants.js +10 -0
  631. package/dist/lib/mode-island/mode-island-constants.js.map +1 -0
  632. package/dist/lib/mode-island/mode-island.cjs +2 -0
  633. package/dist/lib/mode-island/mode-island.cjs.map +1 -0
  634. package/dist/lib/mode-island/mode-island.js +102 -0
  635. package/dist/lib/mode-island/mode-island.js.map +1 -0
  636. package/dist/lib/mode-island/utils.cjs +2 -0
  637. package/dist/lib/mode-island/utils.cjs.map +1 -0
  638. package/dist/lib/mode-island/utils.js +28 -0
  639. package/dist/lib/mode-island/utils.js.map +1 -0
  640. package/dist/lib/mode-island/validators.cjs +2 -0
  641. package/dist/lib/mode-island/validators.cjs.map +1 -0
  642. package/dist/lib/mode-island/validators.js +10 -0
  643. package/dist/lib/mode-island/validators.js.map +1 -0
  644. package/dist/lib/motion-text/motion-text-constants.cjs +1 -1
  645. package/dist/lib/motion-text/motion-text-constants.cjs.map +1 -1
  646. package/dist/lib/motion-text/motion-text-constants.js +18 -6
  647. package/dist/lib/motion-text/motion-text-constants.js.map +1 -1
  648. package/dist/lib/motion-text/motion-text.cjs +1 -1
  649. package/dist/lib/motion-text/motion-text.cjs.map +1 -1
  650. package/dist/lib/motion-text/motion-text.js +5 -7
  651. package/dist/lib/motion-text/motion-text.js.map +1 -1
  652. package/dist/lib/notice/notice-action.cjs +1 -1
  653. package/dist/lib/notice/notice-action.cjs.map +1 -1
  654. package/dist/lib/notice/notice-action.js +14 -14
  655. package/dist/lib/notice/notice-action.js.map +1 -1
  656. package/dist/lib/notice/notice-constants.cjs +1 -1
  657. package/dist/lib/notice/notice-constants.cjs.map +1 -1
  658. package/dist/lib/notice/notice-constants.js +2 -2
  659. package/dist/lib/notice/notice-constants.js.map +1 -1
  660. package/dist/lib/notice/notice-content.cjs +1 -1
  661. package/dist/lib/notice/notice-content.cjs.map +1 -1
  662. package/dist/lib/notice/notice-content.js +29 -12
  663. package/dist/lib/notice/notice-content.js.map +1 -1
  664. package/dist/lib/notice/notice-icon.cjs +1 -1
  665. package/dist/lib/notice/notice-icon.cjs.map +1 -1
  666. package/dist/lib/notice/notice-icon.js +4 -4
  667. package/dist/lib/notice/notice-icon.js.map +1 -1
  668. package/dist/lib/notice/notice.cjs +1 -1
  669. package/dist/lib/notice/notice.cjs.map +1 -1
  670. package/dist/lib/notice/notice.js +17 -16
  671. package/dist/lib/notice/notice.js.map +1 -1
  672. package/dist/lib/pagination/pagination.cjs +1 -1
  673. package/dist/lib/pagination/pagination.cjs.map +1 -1
  674. package/dist/lib/pagination/pagination.js +13 -12
  675. package/dist/lib/pagination/pagination.js.map +1 -1
  676. package/dist/lib/popover/popover-constants.cjs +1 -1
  677. package/dist/lib/popover/popover-constants.cjs.map +1 -1
  678. package/dist/lib/popover/popover-constants.js +6 -6
  679. package/dist/lib/popover/popover-constants.js.map +1 -1
  680. package/dist/lib/popover/popover-header-footer.cjs +1 -1
  681. package/dist/lib/popover/popover-header-footer.cjs.map +1 -1
  682. package/dist/lib/popover/popover-header-footer.js +11 -3
  683. package/dist/lib/popover/popover-header-footer.js.map +1 -1
  684. package/dist/lib/popover/popover.cjs +1 -1
  685. package/dist/lib/popover/popover.cjs.map +1 -1
  686. package/dist/lib/popover/popover.js +78 -58
  687. package/dist/lib/popover/popover.js.map +1 -1
  688. package/dist/lib/radio/radio-constants.cjs +1 -1
  689. package/dist/lib/radio/radio-constants.cjs.map +1 -1
  690. package/dist/lib/radio/radio-constants.js +2 -2
  691. package/dist/lib/radio/radio-constants.js.map +1 -1
  692. package/dist/lib/radio/radio.cjs +1 -1
  693. package/dist/lib/radio/radio.cjs.map +1 -1
  694. package/dist/lib/radio/radio.js +94 -31
  695. package/dist/lib/radio/radio.js.map +1 -1
  696. package/dist/lib/resizable/index.cjs +1 -1
  697. package/dist/lib/resizable/index.js +3 -3
  698. package/dist/lib/resizable/resizable-handle.cjs +1 -1
  699. package/dist/lib/resizable/resizable-handle.js +1 -1
  700. package/dist/lib/resizable/resizable-panel.cjs +1 -1
  701. package/dist/lib/resizable/resizable-panel.js +1 -1
  702. package/dist/lib/resizable/resizable.cjs +1 -1
  703. package/dist/lib/resizable/resizable.js +1 -1
  704. package/dist/lib/rich-text-editor/index.cjs +1 -1
  705. package/dist/lib/rich-text-editor/index.js +1 -1
  706. package/dist/lib/rich-text-editor/markdownRenderer.cjs +1 -1
  707. package/dist/lib/rich-text-editor/markdownRenderer.js +1 -1
  708. package/dist/lib/rich-text-editor/rich-text-editor.cjs +1 -1
  709. package/dist/lib/rich-text-editor/rich-text-editor.js +1 -1
  710. package/dist/lib/root-layout/root-layout-constants.cjs +1 -1
  711. package/dist/lib/root-layout/root-layout-constants.cjs.map +1 -1
  712. package/dist/lib/root-layout/root-layout-constants.js +2 -0
  713. package/dist/lib/root-layout/root-layout-constants.js.map +1 -1
  714. package/dist/lib/root-layout/root-layout.cjs +1 -1
  715. package/dist/lib/root-layout/root-layout.cjs.map +1 -1
  716. package/dist/lib/root-layout/root-layout.js +2 -2
  717. package/dist/lib/root-layout/root-layout.js.map +1 -1
  718. package/dist/lib/scroller/index.cjs +1 -1
  719. package/dist/lib/scroller/index.js +1 -1
  720. package/dist/lib/scroller/scroller.cjs +1 -1
  721. package/dist/lib/scroller/scroller.js +1 -1
  722. package/dist/lib/segmented-control/index.cjs +1 -0
  723. package/dist/lib/segmented-control/index.js +4 -0
  724. package/dist/lib/segmented-control/segmented-control-constants.cjs +2 -0
  725. package/dist/lib/segmented-control/segmented-control-constants.cjs.map +1 -0
  726. package/dist/lib/segmented-control/segmented-control-constants.js +41 -0
  727. package/dist/lib/segmented-control/segmented-control-constants.js.map +1 -0
  728. package/dist/lib/segmented-control/segmented-control-item.cjs +2 -0
  729. package/dist/lib/segmented-control/segmented-control-item.cjs.map +1 -0
  730. package/dist/lib/segmented-control/segmented-control-item.js +104 -0
  731. package/dist/lib/segmented-control/segmented-control-item.js.map +1 -0
  732. package/dist/lib/segmented-control/segmented-control.cjs +2 -0
  733. package/dist/lib/segmented-control/segmented-control.cjs.map +1 -0
  734. package/dist/lib/segmented-control/segmented-control.js +204 -0
  735. package/dist/lib/segmented-control/segmented-control.js.map +1 -0
  736. package/dist/lib/select-menu/select-menu-constants.cjs +1 -1
  737. package/dist/lib/select-menu/select-menu-constants.cjs.map +1 -1
  738. package/dist/lib/select-menu/select-menu-constants.js +7 -2
  739. package/dist/lib/select-menu/select-menu-constants.js.map +1 -1
  740. package/dist/lib/select-menu/select-menu.cjs +1 -1
  741. package/dist/lib/select-menu/select-menu.cjs.map +1 -1
  742. package/dist/lib/select-menu/select-menu.js +117 -58
  743. package/dist/lib/select-menu/select-menu.js.map +1 -1
  744. package/dist/lib/settings-menu-button/settings-menu-button.cjs +1 -1
  745. package/dist/lib/settings-menu-button/settings-menu-button.cjs.map +1 -1
  746. package/dist/lib/settings-menu-button/settings-menu-button.js +5 -5
  747. package/dist/lib/settings-menu-button/settings-menu-button.js.map +1 -1
  748. package/dist/lib/skeleton/skeleton-constants.cjs +1 -1
  749. package/dist/lib/skeleton/skeleton-constants.cjs.map +1 -1
  750. package/dist/lib/skeleton/skeleton-constants.js +10 -2
  751. package/dist/lib/skeleton/skeleton-constants.js.map +1 -1
  752. package/dist/lib/skeleton/skeleton-list-item.cjs +1 -1
  753. package/dist/lib/skeleton/skeleton-list-item.cjs.map +1 -1
  754. package/dist/lib/skeleton/skeleton-list-item.js +2 -2
  755. package/dist/lib/skeleton/skeleton-list-item.js.map +1 -1
  756. package/dist/lib/skeleton/skeleton-shape.cjs +1 -1
  757. package/dist/lib/skeleton/skeleton-shape.cjs.map +1 -1
  758. package/dist/lib/skeleton/skeleton-shape.js +3 -3
  759. package/dist/lib/skeleton/skeleton-shape.js.map +1 -1
  760. package/dist/lib/split-button/split-button-constants.cjs +1 -1
  761. package/dist/lib/split-button/split-button-constants.cjs.map +1 -1
  762. package/dist/lib/split-button/split-button-constants.js +5 -0
  763. package/dist/lib/split-button/split-button-constants.js.map +1 -1
  764. package/dist/lib/split-button/split-button-end.cjs +2 -0
  765. package/dist/lib/split-button/split-button-end.cjs.map +1 -0
  766. package/dist/lib/split-button/{split-button-omega.js → split-button-end.js} +9 -9
  767. package/dist/lib/split-button/split-button-end.js.map +1 -0
  768. package/dist/lib/split-button/split-button-start.cjs +2 -0
  769. package/dist/lib/split-button/split-button-start.cjs.map +1 -0
  770. package/dist/lib/split-button/split-button-start.js +182 -0
  771. package/dist/lib/split-button/split-button-start.js.map +1 -0
  772. package/dist/lib/split-button/split-button.cjs +1 -1
  773. package/dist/lib/split-button/split-button.cjs.map +1 -1
  774. package/dist/lib/split-button/split-button.js +246 -71
  775. package/dist/lib/split-button/split-button.js.map +1 -1
  776. package/dist/lib/stack/stack-constants.cjs +1 -1
  777. package/dist/lib/stack/stack-constants.cjs.map +1 -1
  778. package/dist/lib/stack/stack-constants.js +10 -2
  779. package/dist/lib/stack/stack-constants.js.map +1 -1
  780. package/dist/lib/stack/stack.cjs.map +1 -1
  781. package/dist/lib/stack/stack.js.map +1 -1
  782. package/dist/lib/tab/index.cjs +1 -1
  783. package/dist/lib/tab/index.js +5 -5
  784. package/dist/lib/tab/tab-group.cjs +1 -1
  785. package/dist/lib/tab/tab-group.cjs.map +1 -1
  786. package/dist/lib/tab/tab-group.js +173 -50
  787. package/dist/lib/tab/tab-group.js.map +1 -1
  788. package/dist/lib/tab/tab.cjs +1 -1
  789. package/dist/lib/tab/tab.cjs.map +1 -1
  790. package/dist/lib/tab/tab.js +108 -23
  791. package/dist/lib/tab/tab.js.map +1 -1
  792. package/dist/lib/tab/tabs-constants.cjs +1 -1
  793. package/dist/lib/tab/tabs-constants.cjs.map +1 -1
  794. package/dist/lib/tab/tabs-constants.js +33 -2
  795. package/dist/lib/tab/tabs-constants.js.map +1 -1
  796. package/dist/lib/text/index.cjs +1 -0
  797. package/dist/lib/text/index.js +3 -0
  798. package/dist/lib/text/text-constants.cjs +2 -0
  799. package/dist/lib/text/text-constants.cjs.map +1 -0
  800. package/dist/lib/text/text-constants.js +126 -0
  801. package/dist/lib/text/text-constants.js.map +1 -0
  802. package/dist/lib/text/text.cjs +2 -0
  803. package/dist/lib/text/text.cjs.map +1 -0
  804. package/dist/lib/text/text.js +150 -0
  805. package/dist/lib/text/text.js.map +1 -0
  806. package/dist/lib/toast/index.cjs +1 -1
  807. package/dist/lib/toast/index.js +1 -1
  808. package/dist/lib/toast/toast.cjs +1 -1
  809. package/dist/lib/toast/toast.js +1 -1
  810. package/dist/lib/toggle/toggle-constants.cjs +1 -1
  811. package/dist/lib/toggle/toggle-constants.cjs.map +1 -1
  812. package/dist/lib/toggle/toggle-constants.js +2 -0
  813. package/dist/lib/toggle/toggle-constants.js.map +1 -1
  814. package/dist/lib/toggle/toggle.cjs +1 -1
  815. package/dist/lib/toggle/toggle.cjs.map +1 -1
  816. package/dist/lib/toggle/toggle.js +24 -29
  817. package/dist/lib/toggle/toggle.js.map +1 -1
  818. package/dist/lib/tooltip/tooltip.cjs +1 -4
  819. package/dist/lib/tooltip/tooltip.cjs.map +1 -1
  820. package/dist/lib/tooltip/tooltip.js +36 -31
  821. package/dist/lib/tooltip/tooltip.js.map +1 -1
  822. package/dist/lib/tooltip-directive/tooltip.cjs +1 -1
  823. package/dist/lib/tooltip-directive/tooltip.cjs.map +1 -1
  824. package/dist/lib/tooltip-directive/tooltip.js +36 -35
  825. package/dist/lib/tooltip-directive/tooltip.js.map +1 -1
  826. package/dist/lib/top-banner-info/top-banner-info.cjs +1 -1
  827. package/dist/lib/top-banner-info/top-banner-info.cjs.map +1 -1
  828. package/dist/lib/top-banner-info/top-banner-info.js +4 -4
  829. package/dist/lib/top-banner-info/top-banner-info.js.map +1 -1
  830. package/dist/lib/unread-pill/unread-pill.cjs +1 -1
  831. package/dist/lib/unread-pill/unread-pill.cjs.map +1 -1
  832. package/dist/lib/unread-pill/unread-pill.js +1 -1
  833. package/dist/lib/unread-pill/unread-pill.js.map +1 -1
  834. package/dist/lib/validation-messages/validation-messages.cjs +1 -1
  835. package/dist/lib/validation-messages/validation-messages.cjs.map +1 -1
  836. package/dist/lib/validation-messages/validation-messages.js +2 -2
  837. package/dist/lib/validation-messages/validation-messages.js.map +1 -1
  838. package/dist/localization/en-US.cjs +5 -0
  839. package/dist/localization/en-US.cjs.map +1 -1
  840. package/dist/localization/en-US.js +1 -1
  841. package/dist/localization/en-US.js.map +1 -1
  842. package/dist/{markdownRenderer-DCgGQseq.cjs → markdownRenderer-Dsq-CiH9.cjs} +1 -1
  843. package/dist/{markdownRenderer-DCgGQseq.cjs.map → markdownRenderer-Dsq-CiH9.cjs.map} +1 -1
  844. package/dist/{markdownRenderer-D_P94RyM.js → markdownRenderer-k7_rQkox.js} +1 -1
  845. package/dist/{markdownRenderer-D_P94RyM.js.map → markdownRenderer-k7_rQkox.js.map} +1 -1
  846. package/dist/{message_input-CHlTsBGK.js → message_input-BYy1xKCy.js} +129 -130
  847. package/dist/message_input-BYy1xKCy.js.map +1 -0
  848. package/dist/message_input-sSCHhaeC.cjs +2 -0
  849. package/dist/message_input-sSCHhaeC.cjs.map +1 -0
  850. package/dist/mode_constants-CzYJW9ua.cjs +2 -0
  851. package/dist/mode_constants-CzYJW9ua.cjs.map +1 -0
  852. package/dist/mode_constants-tb7TL85q.js +14 -0
  853. package/dist/mode_constants-tb7TL85q.js.map +1 -0
  854. package/dist/recipes/buttons/callbar_button/callbar_button.vue.d.ts +85 -14
  855. package/dist/recipes/buttons/callbar_button/callbar_button.vue.d.ts.map +1 -1
  856. package/dist/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts +313 -41
  857. package/dist/recipes/buttons/callbar_button_with_dropdown/callbar_button_with_dropdown.vue.d.ts.map +1 -1
  858. package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts +302 -41
  859. package/dist/recipes/buttons/callbar_button_with_popover/callbar_button_with_popover.vue.d.ts.map +1 -1
  860. package/dist/recipes/cards/ivr_node/ivr_node.vue.d.ts +228 -35
  861. package/dist/recipes/cards/ivr_node/ivr_node.vue.d.ts.map +1 -1
  862. package/dist/recipes/chips/grouped_chip/grouped_chip.vue.d.ts +62 -16
  863. package/dist/recipes/chips/grouped_chip/grouped_chip.vue.d.ts.map +1 -1
  864. package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts +237 -28
  865. package/dist/recipes/conversation_view/attachment_carousel/attachment_carousel.vue.d.ts.map +1 -1
  866. package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts +184 -21
  867. package/dist/recipes/conversation_view/attachment_carousel/media_components/image_carousel.vue.d.ts.map +1 -1
  868. package/dist/recipes/conversation_view/editor/EditorToolbarButton.vue.d.ts +53 -7
  869. package/dist/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts +228 -26
  870. package/dist/recipes/conversation_view/editor/EditorToolbarDropdownButton.vue.d.ts.map +1 -1
  871. package/dist/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts +216 -25
  872. package/dist/recipes/conversation_view/editor/EditorToolbarPopoverButton.vue.d.ts.map +1 -1
  873. package/dist/recipes/conversation_view/editor/editor.vue.d.ts +1163 -178
  874. package/dist/recipes/conversation_view/editor/editor.vue.d.ts.map +1 -1
  875. package/dist/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts +132 -42
  876. package/dist/recipes/conversation_view/emoji_row/emoji_row.vue.d.ts.map +1 -1
  877. package/dist/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts +91 -23
  878. package/dist/recipes/conversation_view/feed_item_pill/feed_item_pill.vue.d.ts.map +1 -1
  879. package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts +126 -35
  880. package/dist/recipes/conversation_view/feed_item_row/feed_item_row.vue.d.ts.map +1 -1
  881. package/dist/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts +90 -13
  882. package/dist/recipes/conversation_view/message_input/extensions/meeting_pill/MeetingPill.vue.d.ts.map +1 -1
  883. package/dist/recipes/conversation_view/message_input/message_input.vue.d.ts +1622 -207
  884. package/dist/recipes/conversation_view/message_input/message_input.vue.d.ts.map +1 -1
  885. package/dist/recipes/conversation_view/message_input/message_input_button.vue.d.ts +226 -12
  886. package/dist/recipes/conversation_view/message_input/message_input_button.vue.d.ts.map +1 -1
  887. package/dist/recipes/conversation_view/message_input/message_input_link.vue.d.ts +636 -55
  888. package/dist/recipes/conversation_view/message_input/message_input_link.vue.d.ts.map +1 -1
  889. package/dist/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts +226 -12
  890. package/dist/recipes/conversation_view/message_input/message_input_topbar.vue.d.ts.map +1 -1
  891. package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts +53 -7
  892. package/dist/recipes/header/settings_menu_button/settings_menu_button.vue.d.ts.map +1 -1
  893. package/dist/recipes/item_layout/contact_info/contact_info.vue.d.ts +122 -33
  894. package/dist/recipes/item_layout/contact_info/contact_info.vue.d.ts.map +1 -1
  895. package/dist/recipes/leftbar/callbox/callbox.vue.d.ts +87 -29
  896. package/dist/recipes/leftbar/callbox/callbox.vue.d.ts.map +1 -1
  897. package/dist/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts +82 -28
  898. package/dist/recipes/leftbar/contact_centers_row/contact_centers_row.vue.d.ts.map +1 -1
  899. package/dist/recipes/leftbar/contact_row/contact_row.vue.d.ts +588 -72
  900. package/dist/recipes/leftbar/contact_row/contact_row.vue.d.ts.map +1 -1
  901. package/dist/recipes/leftbar/general_row/general_row.vue.d.ts +480 -31
  902. package/dist/recipes/leftbar/general_row/general_row.vue.d.ts.map +1 -1
  903. package/dist/recipes/leftbar/general_row/leftbar_general_row_icon.vue.d.ts.map +1 -1
  904. package/dist/recipes/leftbar/group_row/group_row.vue.d.ts +479 -30
  905. package/dist/recipes/leftbar/group_row/group_row.vue.d.ts.map +1 -1
  906. package/dist/recipes/leftbar/unread_pill/unread_pill.vue.d.ts.map +1 -1
  907. package/dist/recipes/notices/top_banner_info/top_banner_info.vue.d.ts.map +1 -1
  908. package/dist/{resizable-aOVGO_Os.cjs → resizable-DhowneUp.cjs} +2 -2
  909. package/dist/{resizable-aOVGO_Os.cjs.map → resizable-DhowneUp.cjs.map} +1 -1
  910. package/dist/{resizable-D4-peBOl.js → resizable-xcOu-0_w.js} +3 -3
  911. package/dist/{resizable-D4-peBOl.js.map → resizable-xcOu-0_w.js.map} +1 -1
  912. package/dist/{resizable_handle-BlKBiWnx.js → resizable_handle-BAZzCA_i.js} +3 -3
  913. package/dist/{resizable_handle-BlKBiWnx.js.map → resizable_handle-BAZzCA_i.js.map} +1 -1
  914. package/dist/{resizable_handle-RIKS8frB.cjs → resizable_handle-fjKg48eY.cjs} +2 -2
  915. package/dist/{resizable_handle-RIKS8frB.cjs.map → resizable_handle-fjKg48eY.cjs.map} +1 -1
  916. package/dist/{resizable_utils-DhuzXRdP.cjs → resizable_utils-BE4lK07_.cjs} +1 -1
  917. package/dist/{resizable_utils-DhuzXRdP.cjs.map → resizable_utils-BE4lK07_.cjs.map} +1 -1
  918. package/dist/{resizable_utils-BComtrMV.js → resizable_utils-DsKnGHKW.js} +1 -1
  919. package/dist/{resizable_utils-BComtrMV.js.map → resizable_utils-DsKnGHKW.js.map} +1 -1
  920. package/dist/{rich_text_editor-Ba67C4Uk.js → rich_text_editor-CEW74QNe.js} +637 -598
  921. package/dist/{rich_text_editor-Ba67C4Uk.js.map → rich_text_editor-CEW74QNe.js.map} +1 -1
  922. package/dist/rich_text_editor-immDiKq_.cjs +10 -0
  923. package/dist/{rich_text_editor-DMP5eTlf.cjs.map → rich_text_editor-immDiKq_.cjs.map} +1 -1
  924. package/dist/scroller-C15VLKNK.cjs +2 -0
  925. package/dist/scroller-C15VLKNK.cjs.map +1 -0
  926. package/dist/{scroller-BGVDh3sq.js → scroller-DPqcc_Wl.js} +6 -6
  927. package/dist/scroller-DPqcc_Wl.js.map +1 -0
  928. package/dist/shared/sr_only_close_button.cjs +1 -1
  929. package/dist/shared/sr_only_close_button.cjs.map +1 -1
  930. package/dist/shared/sr_only_close_button.js +1 -1
  931. package/dist/shared/sr_only_close_button.js.map +1 -1
  932. package/dist/toast-B1WZNMAm.cjs +2 -0
  933. package/dist/toast-B1WZNMAm.cjs.map +1 -0
  934. package/dist/{toast-DvPN-bCi.js → toast-DaH2KF7B.js} +52 -51
  935. package/dist/toast-DaH2KF7B.js.map +1 -0
  936. package/dist/{useResizableCalculations-DAajatT4.js → useResizableCalculations-2UpEXvfY.js} +2 -2
  937. package/dist/{useResizableCalculations-DAajatT4.js.map → useResizableCalculations-2UpEXvfY.js.map} +1 -1
  938. package/dist/{useResizableCalculations-BDITle3Q.cjs → useResizableCalculations-DPBjAFWQ.cjs} +2 -2
  939. package/dist/{useResizableCalculations-BDITle3Q.cjs.map → useResizableCalculations-DPBjAFWQ.cjs.map} +1 -1
  940. package/package.json +9 -7
  941. package/dist/attachment_carousel-BHxR7A76.cjs +0 -2
  942. package/dist/attachment_carousel-BHxR7A76.cjs.map +0 -1
  943. package/dist/attachment_carousel-CouFqFMw.js.map +0 -1
  944. package/dist/combobox-DgClbLOg.js.map +0 -1
  945. package/dist/combobox-DhjZxfUw.cjs +0 -3
  946. package/dist/combobox-DhjZxfUw.cjs.map +0 -1
  947. package/dist/components/split_button/split_button-alpha.vue.d.ts.map +0 -1
  948. package/dist/datepicker-DprRX9AH.cjs +0 -2
  949. package/dist/datepicker-DprRX9AH.cjs.map +0 -1
  950. package/dist/datepicker-LVDRC6Lf.js.map +0 -1
  951. package/dist/emoji_picker-Cl-T4BXK.cjs +0 -2
  952. package/dist/emoji_picker-Cl-T4BXK.cjs.map +0 -1
  953. package/dist/emoji_picker-tVHfpHDk.js.map +0 -1
  954. package/dist/lib/split-button/split-button-alpha.cjs +0 -2
  955. package/dist/lib/split-button/split-button-alpha.cjs.map +0 -1
  956. package/dist/lib/split-button/split-button-alpha.js +0 -107
  957. package/dist/lib/split-button/split-button-alpha.js.map +0 -1
  958. package/dist/lib/split-button/split-button-omega.cjs +0 -2
  959. package/dist/lib/split-button/split-button-omega.cjs.map +0 -1
  960. package/dist/lib/split-button/split-button-omega.js.map +0 -1
  961. package/dist/message_input-AWgvtwMV.cjs +0 -2
  962. package/dist/message_input-AWgvtwMV.cjs.map +0 -1
  963. package/dist/message_input-CHlTsBGK.js.map +0 -1
  964. package/dist/rich_text_editor-DMP5eTlf.cjs +0 -10
  965. package/dist/scroller-BGVDh3sq.js.map +0 -1
  966. package/dist/scroller-CjAsgjl9.cjs +0 -2
  967. package/dist/scroller-CjAsgjl9.cjs.map +0 -1
  968. package/dist/toast-DvPN-bCi.js.map +0 -1
  969. package/dist/toast-d8_zmgkL.cjs +0 -2
  970. package/dist/toast-d8_zmgkL.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mode-island-constants.cjs","names":[],"sources":["../../../components/mode_island/mode_island_constants.js"],"sourcesContent":["export const DT_MODE_ISLAND_TYPES = {\n INVERTED: 'inverted',\n LIGHT: 'light',\n DARK: 'dark',\n};\n\nexport default {\n DT_MODE_ISLAND_TYPES,\n};"],"mappings":"+FAAA,IAAa,EAAuB,CAClC,SAAU,WACV,MAAO,QACP,KAAM,OACP,CAED,EAAe,CACb,uBACD"}
@@ -0,0 +1,10 @@
1
+ //#region components/mode_island/mode_island_constants.js
2
+ var e = {
3
+ INVERTED: "inverted",
4
+ LIGHT: "light",
5
+ DARK: "dark"
6
+ }, t = { DT_MODE_ISLAND_TYPES: e };
7
+ //#endregion
8
+ export { e as DT_MODE_ISLAND_TYPES, t as default };
9
+
10
+ //# sourceMappingURL=mode-island-constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mode-island-constants.js","names":[],"sources":["../../../components/mode_island/mode_island_constants.js"],"sourcesContent":["export const DT_MODE_ISLAND_TYPES = {\n INVERTED: 'inverted',\n LIGHT: 'light',\n DARK: 'dark',\n};\n\nexport default {\n DT_MODE_ISLAND_TYPES,\n};"],"mappings":";AAAA,IAAa,IAAuB;CAClC,UAAU;CACV,OAAO;CACP,MAAM;CACP,EAED,IAAe,EACb,yBACD"}
@@ -0,0 +1,2 @@
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../../chunk-Bmb41Sf3.cjs`);const e=require(`../../_plugin-vue_export-helper-D8jCH6HB.cjs`),t=require(`./utils.cjs`),n=require(`./mode-island-constants.cjs`),r=require(`./validators.cjs`);let i=require(`vue`);var a={name:`DtModeIsland`,compatConfig:{MODE:3},provide(){return{dtModeIslandMode:()=>this.computedMode}},inject:{parentModeIslandMode:{from:`dtModeIslandMode`,default:null}},props:{as:{type:String,default:`div`},mode:{type:String,default:n.DT_MODE_ISLAND_TYPES.INVERTED,validator:r.modeValidator}},data(){return{currentContrast:t.getRootContrast(),contrastObserver:null,modeObserver:null,elementRef:null,calculatedMode:null}},computed:{isInverted(){return this.mode===n.DT_MODE_ISLAND_TYPES.INVERTED},invertedAttribute(){return this.isInverted?``:null},computedMode(){return this.mode===n.DT_MODE_ISLAND_TYPES.LIGHT||this.mode===n.DT_MODE_ISLAND_TYPES.DARK?this.mode:this.mode===n.DT_MODE_ISLAND_TYPES.INVERTED&&this.calculatedMode?this.calculatedMode:this.calculateInvertedMode()}},beforeCreate(){if(this.$attrs&&this.$attrs[`data-dt-brand`])throw Error(`[DtModeIsland] The data-dt-brand attribute is not allowed on mode islands. Brand should only be set at the root level.`)},mounted(){this.elementRef=this.$el,this.setupContrastObserver(),this.isInverted&&(this.calculatedMode=this.calculateInvertedMode(),this.setupModeObserver()),this.currentContrast=t.getRootContrast()},beforeUnmount(){this.contrastObserver&&(this.contrastObserver.disconnect(),this.contrastObserver=null),this.modeObserver&&(this.modeObserver.disconnect(),this.modeObserver=null)},methods:{calculateInvertedMode(){return this.parentModeIslandMode?t.getOppositeMode(typeof this.parentModeIslandMode==`function`?this.parentModeIslandMode():this.parentModeIslandMode):this.elementRef?t.getOppositeMode(t.findParentMode(this.elementRef)):t.getOppositeMode(t.getRootMode())},setupContrastObserver(){this.contrastObserver=new MutationObserver(e=>{for(let n of e)n.type===`attributes`&&n.attributeName===`data-dt-contrast`&&(this.currentContrast=t.getRootContrast())}),this.contrastObserver.observe(document.documentElement,{attributes:!0,attributeFilter:[`data-dt-contrast`]})},setupModeObserver(){let e={attributes:!0,attributeFilter:[`data-dt-mode`],subtree:!1};this.modeObserver=new MutationObserver(e=>{for(let t of e)t.type===`attributes`&&t.attributeName===`data-dt-mode`&&(this.calculatedMode=this.calculateInvertedMode())}),this.modeObserver.observe(document.documentElement,e);let t=this.elementRef?.parentElement;for(;t;)t.hasAttribute(`data-dt-mode`)&&this.modeObserver.observe(t,e),t=t.parentElement}}};function o(e,t,n,r,a,o){return(0,i.openBlock)(),(0,i.createBlock)((0,i.resolveDynamicComponent)(n.as),{class:`d-mode-island`,"data-dt-mode":o.computedMode,"data-mode-island-inverted":o.invertedAttribute,"data-dt-contrast":a.currentContrast},{default:(0,i.withCtx)(()=>[(0,i.renderSlot)(e.$slots,`default`)]),_:3},8,[`data-dt-mode`,`data-mode-island-inverted`,`data-dt-contrast`])}var s=e.t(a,[[`render`,o]]);exports.default=s;
2
+ //# sourceMappingURL=mode-island.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mode-island.cjs","names":[],"sources":["../../../components/mode_island/mode_island.vue"],"sourcesContent":["<template>\n <component\n :is=\"as\"\n class=\"d-mode-island\"\n :data-dt-mode=\"computedMode\"\n :data-mode-island-inverted=\"invertedAttribute\"\n :data-dt-contrast=\"currentContrast\"\n >\n <!-- @slot Slot for main content -->\n <slot />\n </component>\n</template>\n\n<script>\nimport { DT_MODE_ISLAND_TYPES } from './mode_island_constants';\nimport { modeValidator } from './validators';\nimport {\n getOppositeMode,\n getRootMode,\n getRootContrast,\n findParentMode,\n} from './utils';\n\nexport default {\n name: 'DtModeIsland',\n compatConfig: { MODE: 3 },\n\n provide () {\n return {\n dtModeIslandMode: () => this.computedMode,\n };\n },\n\n inject: {\n parentModeIslandMode: {\n from: 'dtModeIslandMode',\n default: null,\n },\n },\n\n props: {\n /**\n * Set this prop to render the mode island as a specific HTML element.\n * @type {String}\n * @values div, section, nav, article, aside, header, footer, main\n */\n as: {\n type: String,\n default: 'div',\n },\n\n /**\n * The mode to apply to the island.\n * - 'inverted': Opposite of parent or root mode\n * - 'light': Always light mode\n * - 'dark': Always dark mode\n * @type {String}\n * @values inverted, light, dark\n */\n mode: {\n type: String,\n default: DT_MODE_ISLAND_TYPES.INVERTED,\n validator: modeValidator,\n },\n },\n\n data () {\n return {\n currentContrast: getRootContrast(),\n contrastObserver: null,\n modeObserver: null,\n elementRef: null,\n calculatedMode: null, // Store calculated mode as reactive data\n };\n },\n\n computed: {\n isInverted () {\n return this.mode === DT_MODE_ISLAND_TYPES.INVERTED;\n },\n\n invertedAttribute () {\n return this.isInverted ? '' : null;\n },\n\n computedMode () {\n // If mode is explicitly light or dark, use it directly\n if (this.mode === DT_MODE_ISLAND_TYPES.LIGHT || this.mode === DT_MODE_ISLAND_TYPES.DARK) {\n return this.mode;\n }\n\n // If mode is inverted, use the calculated mode if available\n if (this.mode === DT_MODE_ISLAND_TYPES.INVERTED && this.calculatedMode) {\n return this.calculatedMode;\n }\n\n // Otherwise calculate it now\n return this.calculateInvertedMode();\n },\n },\n\n beforeCreate () {\n // Throw error if data-dt-brand is manually set\n if (this.$attrs && this.$attrs['data-dt-brand']) {\n throw new Error('[DtModeIsland] The data-dt-brand attribute is not allowed on mode islands. Brand should only be set at the root level.');\n }\n },\n\n mounted () {\n // Store element reference\n this.elementRef = this.$el;\n\n // Setup MutationObserver to watch for contrast changes on root\n this.setupContrastObserver();\n\n // Setup MutationObserver to watch for mode changes (only if inverted)\n if (this.isInverted) {\n // Initialize the calculated mode\n this.calculatedMode = this.calculateInvertedMode();\n this.setupModeObserver();\n }\n\n // Initial contrast value\n this.currentContrast = getRootContrast();\n },\n\n beforeUnmount () {\n // Cleanup observers\n if (this.contrastObserver) {\n this.contrastObserver.disconnect();\n this.contrastObserver = null;\n }\n if (this.modeObserver) {\n this.modeObserver.disconnect();\n this.modeObserver = null;\n }\n },\n\n methods: {\n calculateInvertedMode () {\n // First check if there's a parent mode island\n if (this.parentModeIslandMode) {\n const parentMode = typeof this.parentModeIslandMode === 'function'\n ? this.parentModeIslandMode()\n : this.parentModeIslandMode;\n return getOppositeMode(parentMode);\n }\n\n // Otherwise, find the nearest parent with data-dt-mode\n if (this.elementRef) {\n const parentMode = findParentMode(this.elementRef);\n return getOppositeMode(parentMode);\n }\n\n // Default fallback\n return getOppositeMode(getRootMode());\n },\n\n setupContrastObserver () {\n this.contrastObserver = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === 'attributes' && mutation.attributeName === 'data-dt-contrast') {\n this.currentContrast = getRootContrast();\n }\n }\n });\n\n this.contrastObserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['data-dt-contrast'],\n });\n },\n\n setupModeObserver () {\n const config = {\n attributes: true,\n attributeFilter: ['data-dt-mode'],\n subtree: false,\n };\n\n this.modeObserver = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === 'attributes' && mutation.attributeName === 'data-dt-mode') {\n // Recalculate and update the reactive data property\n this.calculatedMode = this.calculateInvertedMode();\n }\n }\n });\n\n // Observe root element\n this.modeObserver.observe(document.documentElement, config);\n\n // Also observe all parent elements with data-dt-mode\n let parent = this.elementRef?.parentElement;\n while (parent) {\n if (parent.hasAttribute('data-dt-mode')) {\n this.modeObserver.observe(parent, config);\n }\n parent = parent.parentElement;\n }\n },\n },\n};\n</script>\n"],"mappings":"wTAuBA,IAAK,EAAU,CACb,KAAM,eACN,aAAc,CAAE,KAAM,EAAG,CAEzB,SAAW,CACT,MAAO,CACL,qBAAwB,KAAK,aAC9B,EAGH,OAAQ,CACN,qBAAsB,CACpB,KAAM,mBACN,QAAS,KACV,CACF,CAED,MAAO,CAML,GAAI,CACF,KAAM,OACN,QAAS,MACV,CAUD,KAAM,CACJ,KAAM,OACN,QAAS,EAAA,qBAAqB,SAC9B,UAAW,EAAA,cACZ,CACF,CAED,MAAQ,CACN,MAAO,CACL,gBAAiB,EAAA,iBAAiB,CAClC,iBAAkB,KAClB,aAAc,KACd,WAAY,KACZ,eAAgB,KACjB,EAGH,SAAU,CACR,YAAc,CACZ,OAAO,KAAK,OAAS,EAAA,qBAAqB,UAG5C,mBAAqB,CACnB,OAAO,KAAK,WAAa,GAAK,MAGhC,cAAgB,CAYd,OAVI,KAAK,OAAS,EAAA,qBAAqB,OAAS,KAAK,OAAS,EAAA,qBAAqB,KAC1E,KAAK,KAIV,KAAK,OAAS,EAAA,qBAAqB,UAAY,KAAK,eAC/C,KAAK,eAIP,KAAK,uBAAuB,EAEtC,CAED,cAAgB,CAEd,GAAI,KAAK,QAAU,KAAK,OAAO,iBAC7B,MAAU,MAAM,yHAAyH,EAI7I,SAAW,CAET,KAAK,WAAa,KAAK,IAGvB,KAAK,uBAAuB,CAGxB,KAAK,aAEP,KAAK,eAAiB,KAAK,uBAAuB,CAClD,KAAK,mBAAmB,EAI1B,KAAK,gBAAkB,EAAA,iBAAiB,EAG1C,eAAiB,CAEX,KAAK,mBACP,KAAK,iBAAiB,YAAY,CAClC,KAAK,iBAAmB,MAEtB,KAAK,eACP,KAAK,aAAa,YAAY,CAC9B,KAAK,aAAe,OAIxB,QAAS,CACP,uBAAyB,CAgBvB,OAdI,KAAK,qBAIA,EAAA,gBAHY,OAAO,KAAK,sBAAyB,WACpD,KAAK,sBAAqB,CAC1B,KAAK,qBACyB,CAIhC,KAAK,WAEA,EAAA,gBADY,EAAA,eAAe,KAAK,WAAW,CAChB,CAI7B,EAAA,gBAAgB,EAAA,aAAa,CAAC,EAGvC,uBAAyB,CACvB,KAAK,iBAAmB,IAAI,iBAAkB,GAAkB,CAC9D,IAAK,IAAM,KAAY,EACjB,EAAS,OAAS,cAAgB,EAAS,gBAAkB,qBAC/D,KAAK,gBAAkB,EAAA,iBAAiB,GAG5C,CAEF,KAAK,iBAAiB,QAAQ,SAAS,gBAAiB,CACtD,WAAY,GACZ,gBAAiB,CAAC,mBAAmB,CACtC,CAAC,EAGJ,mBAAqB,CACnB,IAAM,EAAS,CACb,WAAY,GACZ,gBAAiB,CAAC,eAAe,CACjC,QAAS,GACV,CAED,KAAK,aAAe,IAAI,iBAAkB,GAAkB,CAC1D,IAAK,IAAM,KAAY,EACjB,EAAS,OAAS,cAAgB,EAAS,gBAAkB,iBAE/D,KAAK,eAAiB,KAAK,uBAAuB,GAGtD,CAGF,KAAK,aAAa,QAAQ,SAAS,gBAAiB,EAAO,CAG3D,IAAI,EAAS,KAAK,YAAY,cAC9B,KAAO,GACD,EAAO,aAAa,eAAe,EACrC,KAAK,aAAa,QAAQ,EAAQ,EAAO,CAE3C,EAAS,EAAO,eAGrB,CACF,iGAxMQ,EAAA,GAAE,CAAA,CACP,MAAM,gBACL,eAAc,EAAA,aACd,4BAA2B,EAAA,kBAC3B,mBAAkB,EAAA,4CAGX,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,UAAA,CAAA,CAAA"}
@@ -0,0 +1,102 @@
1
+ import { t as e } from "../../_plugin-vue_export-helper-BTgDAbhb.js";
2
+ import { findParentMode as t, getOppositeMode as n, getRootContrast as r, getRootMode as i } from "./utils.js";
3
+ import { DT_MODE_ISLAND_TYPES as a } from "./mode-island-constants.js";
4
+ import { modeValidator as o } from "./validators.js";
5
+ import { createBlock as s, openBlock as c, renderSlot as l, resolveDynamicComponent as u, withCtx as d } from "vue";
6
+ //#region components/mode_island/mode_island.vue
7
+ var f = {
8
+ name: "DtModeIsland",
9
+ compatConfig: { MODE: 3 },
10
+ provide() {
11
+ return { dtModeIslandMode: () => this.computedMode };
12
+ },
13
+ inject: { parentModeIslandMode: {
14
+ from: "dtModeIslandMode",
15
+ default: null
16
+ } },
17
+ props: {
18
+ as: {
19
+ type: String,
20
+ default: "div"
21
+ },
22
+ mode: {
23
+ type: String,
24
+ default: a.INVERTED,
25
+ validator: o
26
+ }
27
+ },
28
+ data() {
29
+ return {
30
+ currentContrast: r(),
31
+ contrastObserver: null,
32
+ modeObserver: null,
33
+ elementRef: null,
34
+ calculatedMode: null
35
+ };
36
+ },
37
+ computed: {
38
+ isInverted() {
39
+ return this.mode === a.INVERTED;
40
+ },
41
+ invertedAttribute() {
42
+ return this.isInverted ? "" : null;
43
+ },
44
+ computedMode() {
45
+ return this.mode === a.LIGHT || this.mode === a.DARK ? this.mode : this.mode === a.INVERTED && this.calculatedMode ? this.calculatedMode : this.calculateInvertedMode();
46
+ }
47
+ },
48
+ beforeCreate() {
49
+ if (this.$attrs && this.$attrs["data-dt-brand"]) throw Error("[DtModeIsland] The data-dt-brand attribute is not allowed on mode islands. Brand should only be set at the root level.");
50
+ },
51
+ mounted() {
52
+ this.elementRef = this.$el, this.setupContrastObserver(), this.isInverted && (this.calculatedMode = this.calculateInvertedMode(), this.setupModeObserver()), this.currentContrast = r();
53
+ },
54
+ beforeUnmount() {
55
+ this.contrastObserver && (this.contrastObserver.disconnect(), this.contrastObserver = null), this.modeObserver && (this.modeObserver.disconnect(), this.modeObserver = null);
56
+ },
57
+ methods: {
58
+ calculateInvertedMode() {
59
+ return this.parentModeIslandMode ? n(typeof this.parentModeIslandMode == "function" ? this.parentModeIslandMode() : this.parentModeIslandMode) : this.elementRef ? n(t(this.elementRef)) : n(i());
60
+ },
61
+ setupContrastObserver() {
62
+ this.contrastObserver = new MutationObserver((e) => {
63
+ for (let t of e) t.type === "attributes" && t.attributeName === "data-dt-contrast" && (this.currentContrast = r());
64
+ }), this.contrastObserver.observe(document.documentElement, {
65
+ attributes: !0,
66
+ attributeFilter: ["data-dt-contrast"]
67
+ });
68
+ },
69
+ setupModeObserver() {
70
+ let e = {
71
+ attributes: !0,
72
+ attributeFilter: ["data-dt-mode"],
73
+ subtree: !1
74
+ };
75
+ this.modeObserver = new MutationObserver((e) => {
76
+ for (let t of e) t.type === "attributes" && t.attributeName === "data-dt-mode" && (this.calculatedMode = this.calculateInvertedMode());
77
+ }), this.modeObserver.observe(document.documentElement, e);
78
+ let t = this.elementRef?.parentElement;
79
+ for (; t;) t.hasAttribute("data-dt-mode") && this.modeObserver.observe(t, e), t = t.parentElement;
80
+ }
81
+ }
82
+ };
83
+ function p(e, t, n, r, i, a) {
84
+ return c(), s(u(n.as), {
85
+ class: "d-mode-island",
86
+ "data-dt-mode": a.computedMode,
87
+ "data-mode-island-inverted": a.invertedAttribute,
88
+ "data-dt-contrast": i.currentContrast
89
+ }, {
90
+ default: d(() => [l(e.$slots, "default")]),
91
+ _: 3
92
+ }, 8, [
93
+ "data-dt-mode",
94
+ "data-mode-island-inverted",
95
+ "data-dt-contrast"
96
+ ]);
97
+ }
98
+ var m = /* @__PURE__ */ e(f, [["render", p]]);
99
+ //#endregion
100
+ export { m as default };
101
+
102
+ //# sourceMappingURL=mode-island.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mode-island.js","names":[],"sources":["../../../components/mode_island/mode_island.vue"],"sourcesContent":["<template>\n <component\n :is=\"as\"\n class=\"d-mode-island\"\n :data-dt-mode=\"computedMode\"\n :data-mode-island-inverted=\"invertedAttribute\"\n :data-dt-contrast=\"currentContrast\"\n >\n <!-- @slot Slot for main content -->\n <slot />\n </component>\n</template>\n\n<script>\nimport { DT_MODE_ISLAND_TYPES } from './mode_island_constants';\nimport { modeValidator } from './validators';\nimport {\n getOppositeMode,\n getRootMode,\n getRootContrast,\n findParentMode,\n} from './utils';\n\nexport default {\n name: 'DtModeIsland',\n compatConfig: { MODE: 3 },\n\n provide () {\n return {\n dtModeIslandMode: () => this.computedMode,\n };\n },\n\n inject: {\n parentModeIslandMode: {\n from: 'dtModeIslandMode',\n default: null,\n },\n },\n\n props: {\n /**\n * Set this prop to render the mode island as a specific HTML element.\n * @type {String}\n * @values div, section, nav, article, aside, header, footer, main\n */\n as: {\n type: String,\n default: 'div',\n },\n\n /**\n * The mode to apply to the island.\n * - 'inverted': Opposite of parent or root mode\n * - 'light': Always light mode\n * - 'dark': Always dark mode\n * @type {String}\n * @values inverted, light, dark\n */\n mode: {\n type: String,\n default: DT_MODE_ISLAND_TYPES.INVERTED,\n validator: modeValidator,\n },\n },\n\n data () {\n return {\n currentContrast: getRootContrast(),\n contrastObserver: null,\n modeObserver: null,\n elementRef: null,\n calculatedMode: null, // Store calculated mode as reactive data\n };\n },\n\n computed: {\n isInverted () {\n return this.mode === DT_MODE_ISLAND_TYPES.INVERTED;\n },\n\n invertedAttribute () {\n return this.isInverted ? '' : null;\n },\n\n computedMode () {\n // If mode is explicitly light or dark, use it directly\n if (this.mode === DT_MODE_ISLAND_TYPES.LIGHT || this.mode === DT_MODE_ISLAND_TYPES.DARK) {\n return this.mode;\n }\n\n // If mode is inverted, use the calculated mode if available\n if (this.mode === DT_MODE_ISLAND_TYPES.INVERTED && this.calculatedMode) {\n return this.calculatedMode;\n }\n\n // Otherwise calculate it now\n return this.calculateInvertedMode();\n },\n },\n\n beforeCreate () {\n // Throw error if data-dt-brand is manually set\n if (this.$attrs && this.$attrs['data-dt-brand']) {\n throw new Error('[DtModeIsland] The data-dt-brand attribute is not allowed on mode islands. Brand should only be set at the root level.');\n }\n },\n\n mounted () {\n // Store element reference\n this.elementRef = this.$el;\n\n // Setup MutationObserver to watch for contrast changes on root\n this.setupContrastObserver();\n\n // Setup MutationObserver to watch for mode changes (only if inverted)\n if (this.isInverted) {\n // Initialize the calculated mode\n this.calculatedMode = this.calculateInvertedMode();\n this.setupModeObserver();\n }\n\n // Initial contrast value\n this.currentContrast = getRootContrast();\n },\n\n beforeUnmount () {\n // Cleanup observers\n if (this.contrastObserver) {\n this.contrastObserver.disconnect();\n this.contrastObserver = null;\n }\n if (this.modeObserver) {\n this.modeObserver.disconnect();\n this.modeObserver = null;\n }\n },\n\n methods: {\n calculateInvertedMode () {\n // First check if there's a parent mode island\n if (this.parentModeIslandMode) {\n const parentMode = typeof this.parentModeIslandMode === 'function'\n ? this.parentModeIslandMode()\n : this.parentModeIslandMode;\n return getOppositeMode(parentMode);\n }\n\n // Otherwise, find the nearest parent with data-dt-mode\n if (this.elementRef) {\n const parentMode = findParentMode(this.elementRef);\n return getOppositeMode(parentMode);\n }\n\n // Default fallback\n return getOppositeMode(getRootMode());\n },\n\n setupContrastObserver () {\n this.contrastObserver = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === 'attributes' && mutation.attributeName === 'data-dt-contrast') {\n this.currentContrast = getRootContrast();\n }\n }\n });\n\n this.contrastObserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['data-dt-contrast'],\n });\n },\n\n setupModeObserver () {\n const config = {\n attributes: true,\n attributeFilter: ['data-dt-mode'],\n subtree: false,\n };\n\n this.modeObserver = new MutationObserver((mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === 'attributes' && mutation.attributeName === 'data-dt-mode') {\n // Recalculate and update the reactive data property\n this.calculatedMode = this.calculateInvertedMode();\n }\n }\n });\n\n // Observe root element\n this.modeObserver.observe(document.documentElement, config);\n\n // Also observe all parent elements with data-dt-mode\n let parent = this.elementRef?.parentElement;\n while (parent) {\n if (parent.hasAttribute('data-dt-mode')) {\n this.modeObserver.observe(parent, config);\n }\n parent = parent.parentElement;\n }\n },\n },\n};\n</script>\n"],"mappings":";;;;;;AAuBA,IAAK,IAAU;CACb,MAAM;CACN,cAAc,EAAE,MAAM,GAAG;CAEzB,UAAW;AACT,SAAO,EACL,wBAAwB,KAAK,cAC9B;;CAGH,QAAQ,EACN,sBAAsB;EACpB,MAAM;EACN,SAAS;EACV,EACF;CAED,OAAO;EAML,IAAI;GACF,MAAM;GACN,SAAS;GACV;EAUD,MAAM;GACJ,MAAM;GACN,SAAS,EAAqB;GAC9B,WAAW;GACZ;EACF;CAED,OAAQ;AACN,SAAO;GACL,iBAAiB,GAAiB;GAClC,kBAAkB;GAClB,cAAc;GACd,YAAY;GACZ,gBAAgB;GACjB;;CAGH,UAAU;EACR,aAAc;AACZ,UAAO,KAAK,SAAS,EAAqB;;EAG5C,oBAAqB;AACnB,UAAO,KAAK,aAAa,KAAK;;EAGhC,eAAgB;AAYd,UAVI,KAAK,SAAS,EAAqB,SAAS,KAAK,SAAS,EAAqB,OAC1E,KAAK,OAIV,KAAK,SAAS,EAAqB,YAAY,KAAK,iBAC/C,KAAK,iBAIP,KAAK,uBAAuB;;EAEtC;CAED,eAAgB;AAEd,MAAI,KAAK,UAAU,KAAK,OAAO,iBAC7B,OAAU,MAAM,yHAAyH;;CAI7I,UAAW;AAeT,EAbA,KAAK,aAAa,KAAK,KAGvB,KAAK,uBAAuB,EAGxB,KAAK,eAEP,KAAK,iBAAiB,KAAK,uBAAuB,EAClD,KAAK,mBAAmB,GAI1B,KAAK,kBAAkB,GAAiB;;CAG1C,gBAAiB;AAMf,EAJI,KAAK,qBACP,KAAK,iBAAiB,YAAY,EAClC,KAAK,mBAAmB,OAEtB,KAAK,iBACP,KAAK,aAAa,YAAY,EAC9B,KAAK,eAAe;;CAIxB,SAAS;EACP,wBAAyB;AAgBvB,UAdI,KAAK,uBAIA,EAHY,OAAO,KAAK,wBAAyB,aACpD,KAAK,sBAAqB,GAC1B,KAAK,qBACyB,GAIhC,KAAK,aAEA,EADY,EAAe,KAAK,WAAW,CAChB,GAI7B,EAAgB,GAAa,CAAC;;EAGvC,wBAAyB;AASvB,GARA,KAAK,mBAAmB,IAAI,kBAAkB,MAAkB;AAC9D,SAAK,IAAM,KAAY,EACrB,CAAI,EAAS,SAAS,gBAAgB,EAAS,kBAAkB,uBAC/D,KAAK,kBAAkB,GAAiB;KAG5C,EAEF,KAAK,iBAAiB,QAAQ,SAAS,iBAAiB;IACtD,YAAY;IACZ,iBAAiB,CAAC,mBAAmB;IACtC,CAAC;;EAGJ,oBAAqB;GACnB,IAAM,IAAS;IACb,YAAY;IACZ,iBAAiB,CAAC,eAAe;IACjC,SAAS;IACV;AAYD,GAVA,KAAK,eAAe,IAAI,kBAAkB,MAAkB;AAC1D,SAAK,IAAM,KAAY,EACrB,CAAI,EAAS,SAAS,gBAAgB,EAAS,kBAAkB,mBAE/D,KAAK,iBAAiB,KAAK,uBAAuB;KAGtD,EAGF,KAAK,aAAa,QAAQ,SAAS,iBAAiB,EAAO;GAG3D,IAAI,IAAS,KAAK,YAAY;AAC9B,UAAO,GAIL,CAHI,EAAO,aAAa,eAAe,IACrC,KAAK,aAAa,QAAQ,GAAQ,EAAO,EAE3C,IAAS,EAAO;;EAGrB;CACF;;aAzMC,EASY,EARL,EAAA,GAAE,EAAA;EACP,OAAM;EACL,gBAAc,EAAA;EACd,6BAA2B,EAAA;EAC3B,oBAAkB,EAAA;;mBAGX,CAAR,EAAQ,EAAA,QAAA,UAAA,CAAA,CAAA"}
@@ -0,0 +1,2 @@
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});function e(e){return e===`light`?`dark`:`light`}function t(){return document.documentElement.getAttribute(`data-dt-mode`)||`light`}function n(){return document.documentElement.getAttribute(`data-dt-contrast`)||`default`}function r(e){let n=e?.parentElement;for(;n&&n!==document.documentElement;){if(n.hasAttribute(`data-dt-mode`))return n.getAttribute(`data-dt-mode`);n=n.parentElement}return t()}var i={getOppositeMode:e,getRootMode:t,getRootContrast:n,findParentMode:r};exports.default=i,exports.findParentMode=r,exports.getOppositeMode=e,exports.getRootContrast=n,exports.getRootMode=t;
2
+ //# sourceMappingURL=utils.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.cjs","names":[],"sources":["../../../components/mode_island/utils.js"],"sourcesContent":["/**\n * Get the opposite mode (light <-> dark)\n * @param {string} currentMode - The current mode\n * @returns {string} The opposite mode\n */\nexport function getOppositeMode (currentMode) {\n return currentMode === 'light' ? 'dark' : 'light';\n}\n\n/**\n * Get the mode from the root HTML element\n * @returns {string} The root mode or 'light' as default\n */\nexport function getRootMode () {\n const rootMode = document.documentElement.getAttribute('data-dt-mode');\n return rootMode || 'light';\n}\n\n/**\n * Get the contrast from the root HTML element\n * @returns {string} The root contrast or 'default' as default\n */\nexport function getRootContrast () {\n const rootContrast = document.documentElement.getAttribute('data-dt-contrast');\n return rootContrast || 'default';\n}\n\n/**\n * Find the mode from the nearest parent element with data-dt-mode attribute\n * @param {HTMLElement} el - The starting element\n * @returns {string} The parent mode or root mode\n */\nexport function findParentMode (el) {\n let parent = el?.parentElement;\n while (parent && parent !== document.documentElement) {\n if (parent.hasAttribute('data-dt-mode')) {\n return parent.getAttribute('data-dt-mode');\n }\n parent = parent.parentElement;\n }\n return getRootMode();\n}\n\nexport default {\n getOppositeMode,\n getRootMode,\n getRootContrast,\n findParentMode,\n};"],"mappings":"+FAKA,SAAgB,EAAiB,EAAa,CAC5C,OAAO,IAAgB,QAAU,OAAS,QAO5C,SAAgB,GAAe,CAE7B,OADiB,SAAS,gBAAgB,aAAa,eAAe,EACnD,QAOrB,SAAgB,GAAmB,CAEjC,OADqB,SAAS,gBAAgB,aAAa,mBAAmB,EACvD,UAQzB,SAAgB,EAAgB,EAAI,CAClC,IAAI,EAAS,GAAI,cACjB,KAAO,GAAU,IAAW,SAAS,iBAAiB,CACpD,GAAI,EAAO,aAAa,eAAe,CACrC,OAAO,EAAO,aAAa,eAAe,CAE5C,EAAS,EAAO,cAElB,OAAO,GAAa,CAGtB,IAAA,EAAe,CACb,kBACA,cACA,kBACA,iBACD"}
@@ -0,0 +1,28 @@
1
+ //#region components/mode_island/utils.js
2
+ function e(e) {
3
+ return e === "light" ? "dark" : "light";
4
+ }
5
+ function t() {
6
+ return document.documentElement.getAttribute("data-dt-mode") || "light";
7
+ }
8
+ function n() {
9
+ return document.documentElement.getAttribute("data-dt-contrast") || "default";
10
+ }
11
+ function r(e) {
12
+ let n = e?.parentElement;
13
+ for (; n && n !== document.documentElement;) {
14
+ if (n.hasAttribute("data-dt-mode")) return n.getAttribute("data-dt-mode");
15
+ n = n.parentElement;
16
+ }
17
+ return t();
18
+ }
19
+ var i = {
20
+ getOppositeMode: e,
21
+ getRootMode: t,
22
+ getRootContrast: n,
23
+ findParentMode: r
24
+ };
25
+ //#endregion
26
+ export { i as default, r as findParentMode, e as getOppositeMode, n as getRootContrast, t as getRootMode };
27
+
28
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","names":[],"sources":["../../../components/mode_island/utils.js"],"sourcesContent":["/**\n * Get the opposite mode (light <-> dark)\n * @param {string} currentMode - The current mode\n * @returns {string} The opposite mode\n */\nexport function getOppositeMode (currentMode) {\n return currentMode === 'light' ? 'dark' : 'light';\n}\n\n/**\n * Get the mode from the root HTML element\n * @returns {string} The root mode or 'light' as default\n */\nexport function getRootMode () {\n const rootMode = document.documentElement.getAttribute('data-dt-mode');\n return rootMode || 'light';\n}\n\n/**\n * Get the contrast from the root HTML element\n * @returns {string} The root contrast or 'default' as default\n */\nexport function getRootContrast () {\n const rootContrast = document.documentElement.getAttribute('data-dt-contrast');\n return rootContrast || 'default';\n}\n\n/**\n * Find the mode from the nearest parent element with data-dt-mode attribute\n * @param {HTMLElement} el - The starting element\n * @returns {string} The parent mode or root mode\n */\nexport function findParentMode (el) {\n let parent = el?.parentElement;\n while (parent && parent !== document.documentElement) {\n if (parent.hasAttribute('data-dt-mode')) {\n return parent.getAttribute('data-dt-mode');\n }\n parent = parent.parentElement;\n }\n return getRootMode();\n}\n\nexport default {\n getOppositeMode,\n getRootMode,\n getRootContrast,\n findParentMode,\n};"],"mappings":";AAKA,SAAgB,EAAiB,GAAa;AAC5C,QAAO,MAAgB,UAAU,SAAS;;AAO5C,SAAgB,IAAe;AAE7B,QADiB,SAAS,gBAAgB,aAAa,eAAe,IACnD;;AAOrB,SAAgB,IAAmB;AAEjC,QADqB,SAAS,gBAAgB,aAAa,mBAAmB,IACvD;;AAQzB,SAAgB,EAAgB,GAAI;CAClC,IAAI,IAAS,GAAI;AACjB,QAAO,KAAU,MAAW,SAAS,kBAAiB;AACpD,MAAI,EAAO,aAAa,eAAe,CACrC,QAAO,EAAO,aAAa,eAAe;AAE5C,MAAS,EAAO;;AAElB,QAAO,GAAa;;AAGtB,IAAA,IAAe;CACb;CACA;CACA;CACA;CACD"}
@@ -0,0 +1,2 @@
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require(`./mode-island-constants.cjs`);function t(t){return Object.values(e.DT_MODE_ISLAND_TYPES).includes(t)}var n={modeValidator:t};exports.default=n,exports.modeValidator=t;
2
+ //# sourceMappingURL=validators.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.cjs","names":["DT_MODE_ISLAND_TYPES"],"sources":["../../../components/mode_island/validators.js"],"sourcesContent":["import { DT_MODE_ISLAND_TYPES } from './mode_island_constants';\n\nexport function modeValidator (mode) {\n return Object.values(DT_MODE_ISLAND_TYPES).includes(mode);\n}\n\nexport default {\n modeValidator,\n};"],"mappings":"8IAEA,SAAgB,EAAe,EAAM,CACnC,OAAO,OAAO,OAAOA,EAAAA,qBAAqB,CAAC,SAAS,EAAK,CAG3D,IAAA,EAAe,CACb,gBACD"}
@@ -0,0 +1,10 @@
1
+ import { DT_MODE_ISLAND_TYPES as e } from "./mode-island-constants.js";
2
+ //#region components/mode_island/validators.js
3
+ function t(t) {
4
+ return Object.values(e).includes(t);
5
+ }
6
+ var n = { modeValidator: t };
7
+ //#endregion
8
+ export { n as default, t as modeValidator };
9
+
10
+ //# sourceMappingURL=validators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validators.js","names":[],"sources":["../../../components/mode_island/validators.js"],"sourcesContent":["import { DT_MODE_ISLAND_TYPES } from './mode_island_constants';\n\nexport function modeValidator (mode) {\n return Object.values(DT_MODE_ISLAND_TYPES).includes(mode);\n}\n\nexport default {\n modeValidator,\n};"],"mappings":";;AAEA,SAAgB,EAAe,GAAM;AACnC,QAAO,OAAO,OAAO,EAAqB,CAAC,SAAS,EAAK;;AAG3D,IAAA,IAAe,EACb,kBACD"}
@@ -1,2 +1,2 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var e=[`gradient-in`,`fade-in`,`slide-in`,`gradient-sweep`,`shimmer`,`none`],t=[`sm`,`md`,`lg`],n={sm:{characterDelay:20,wordDelay:30,duration:600},md:{characterDelay:30,wordDelay:50,duration:1e3},lg:{characterDelay:50,wordDelay:100,duration:1500}},r={MOTION_TEXT_ANIMATION_MODES:e,MOTION_TEXT_SPEEDS:t,MOTION_TEXT_TIMING_PRESETS:n};exports.MOTION_TEXT_ANIMATION_MODES=e,exports.MOTION_TEXT_SPEEDS=t,exports.MOTION_TEXT_TIMING_PRESETS=n,exports.default=r;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var e=[`gradient-in`,`fade-in`,`slide-in`,`gradient-sweep`,`shimmer`,`none`],t=[`100`,`200`,`300`,`400`,`500`],n={100:{characterDelay:10,wordDelay:15,duration:300},200:{characterDelay:20,wordDelay:30,duration:600},300:{characterDelay:30,wordDelay:50,duration:1e3},400:{characterDelay:50,wordDelay:100,duration:1500},500:{characterDelay:80,wordDelay:180,duration:2100}},r={MOTION_TEXT_ANIMATION_MODES:e,MOTION_TEXT_SPEEDS:t,MOTION_TEXT_TIMING_PRESETS:n};exports.MOTION_TEXT_ANIMATION_MODES=e,exports.MOTION_TEXT_SPEEDS=t,exports.MOTION_TEXT_TIMING_PRESETS=n,exports.default=r;
2
2
  //# sourceMappingURL=motion-text-constants.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"motion-text-constants.cjs","names":[],"sources":["../../../components/motion_text/motion_text_constants.js"],"sourcesContent":["// Animation mode options\nexport const MOTION_TEXT_ANIMATION_MODES = [\n 'gradient-in',\n 'fade-in',\n 'slide-in',\n 'gradient-sweep',\n 'shimmer',\n 'none',\n];\n\n// Speed options (t-shirt sizing)\nexport const MOTION_TEXT_SPEEDS = ['sm', 'md', 'lg'];\n\n// Timing presets based on speed\nexport const MOTION_TEXT_TIMING_PRESETS = {\n sm: {\n characterDelay: 20,\n wordDelay: 30,\n duration: 600,\n },\n md: {\n characterDelay: 30,\n wordDelay: 50,\n duration: 1000,\n },\n lg: {\n characterDelay: 50,\n wordDelay: 100,\n duration: 1500,\n },\n};\n\nexport default {\n MOTION_TEXT_ANIMATION_MODES,\n MOTION_TEXT_SPEEDS,\n MOTION_TEXT_TIMING_PRESETS,\n};\n"],"mappings":"+FACA,IAAa,EAA8B,CACzC,cACA,UACA,WACA,iBACA,UACA,OACD,CAGY,EAAqB,CAAC,KAAM,KAAM,KAAK,CAGvC,EAA6B,CACxC,GAAI,CACF,eAAgB,GAChB,UAAW,GACX,SAAU,IACX,CACD,GAAI,CACF,eAAgB,GAChB,UAAW,GACX,SAAU,IACX,CACD,GAAI,CACF,eAAgB,GAChB,UAAW,IACX,SAAU,KACX,CACF,CAED,EAAe,CACb,8BACA,qBACA,6BACD"}
1
+ {"version":3,"file":"motion-text-constants.cjs","names":[],"sources":["../../../components/motion_text/motion_text_constants.js"],"sourcesContent":["// Animation mode options\nexport const MOTION_TEXT_ANIMATION_MODES = [\n 'gradient-in',\n 'fade-in',\n 'slide-in',\n 'gradient-sweep',\n 'shimmer',\n 'none',\n];\n\n// Speed options\nexport const MOTION_TEXT_SPEEDS = ['100', '200', '300', '400', '500'];\n\n// Timing presets based on speed\nexport const MOTION_TEXT_TIMING_PRESETS = {\n 100: {\n characterDelay: 10,\n wordDelay: 15,\n duration: 300,\n },\n 200: {\n characterDelay: 20,\n wordDelay: 30,\n duration: 600,\n },\n 300: {\n characterDelay: 30,\n wordDelay: 50,\n duration: 1000,\n },\n 400: {\n characterDelay: 50,\n wordDelay: 100,\n duration: 1500,\n },\n 500: {\n characterDelay: 80,\n wordDelay: 180,\n duration: 2100,\n },\n};\n\nexport default {\n MOTION_TEXT_ANIMATION_MODES,\n MOTION_TEXT_SPEEDS,\n MOTION_TEXT_TIMING_PRESETS,\n};\n"],"mappings":"+FACA,IAAa,EAA8B,CACzC,cACA,UACA,WACA,iBACA,UACA,OACD,CAGY,EAAqB,CAAC,MAAO,MAAO,MAAO,MAAO,MAAM,CAGxD,EAA6B,CACxC,IAAK,CACH,eAAgB,GAChB,UAAW,GACX,SAAU,IACX,CACD,IAAK,CACH,eAAgB,GAChB,UAAW,GACX,SAAU,IACX,CACD,IAAK,CACH,eAAgB,GAChB,UAAW,GACX,SAAU,IACX,CACD,IAAK,CACH,eAAgB,GAChB,UAAW,IACX,SAAU,KACX,CACD,IAAK,CACH,eAAgB,GAChB,UAAW,IACX,SAAU,KACX,CACF,CAED,EAAe,CACb,8BACA,qBACA,6BACD"}
@@ -7,24 +7,36 @@ var e = [
7
7
  "shimmer",
8
8
  "none"
9
9
  ], t = [
10
- "sm",
11
- "md",
12
- "lg"
10
+ "100",
11
+ "200",
12
+ "300",
13
+ "400",
14
+ "500"
13
15
  ], n = {
14
- sm: {
16
+ 100: {
17
+ characterDelay: 10,
18
+ wordDelay: 15,
19
+ duration: 300
20
+ },
21
+ 200: {
15
22
  characterDelay: 20,
16
23
  wordDelay: 30,
17
24
  duration: 600
18
25
  },
19
- md: {
26
+ 300: {
20
27
  characterDelay: 30,
21
28
  wordDelay: 50,
22
29
  duration: 1e3
23
30
  },
24
- lg: {
31
+ 400: {
25
32
  characterDelay: 50,
26
33
  wordDelay: 100,
27
34
  duration: 1500
35
+ },
36
+ 500: {
37
+ characterDelay: 80,
38
+ wordDelay: 180,
39
+ duration: 2100
28
40
  }
29
41
  }, r = {
30
42
  MOTION_TEXT_ANIMATION_MODES: e,
@@ -1 +1 @@
1
- {"version":3,"file":"motion-text-constants.js","names":[],"sources":["../../../components/motion_text/motion_text_constants.js"],"sourcesContent":["// Animation mode options\nexport const MOTION_TEXT_ANIMATION_MODES = [\n 'gradient-in',\n 'fade-in',\n 'slide-in',\n 'gradient-sweep',\n 'shimmer',\n 'none',\n];\n\n// Speed options (t-shirt sizing)\nexport const MOTION_TEXT_SPEEDS = ['sm', 'md', 'lg'];\n\n// Timing presets based on speed\nexport const MOTION_TEXT_TIMING_PRESETS = {\n sm: {\n characterDelay: 20,\n wordDelay: 30,\n duration: 600,\n },\n md: {\n characterDelay: 30,\n wordDelay: 50,\n duration: 1000,\n },\n lg: {\n characterDelay: 50,\n wordDelay: 100,\n duration: 1500,\n },\n};\n\nexport default {\n MOTION_TEXT_ANIMATION_MODES,\n MOTION_TEXT_SPEEDS,\n MOTION_TEXT_TIMING_PRESETS,\n};\n"],"mappings":";AACA,IAAa,IAA8B;CACzC;CACA;CACA;CACA;CACA;CACA;CACD,EAGY,IAAqB;CAAC;CAAM;CAAM;CAAK,EAGvC,IAA6B;CACxC,IAAI;EACF,gBAAgB;EAChB,WAAW;EACX,UAAU;EACX;CACD,IAAI;EACF,gBAAgB;EAChB,WAAW;EACX,UAAU;EACX;CACD,IAAI;EACF,gBAAgB;EAChB,WAAW;EACX,UAAU;EACX;CACF,EAED,IAAe;CACb;CACA;CACA;CACD"}
1
+ {"version":3,"file":"motion-text-constants.js","names":[],"sources":["../../../components/motion_text/motion_text_constants.js"],"sourcesContent":["// Animation mode options\nexport const MOTION_TEXT_ANIMATION_MODES = [\n 'gradient-in',\n 'fade-in',\n 'slide-in',\n 'gradient-sweep',\n 'shimmer',\n 'none',\n];\n\n// Speed options\nexport const MOTION_TEXT_SPEEDS = ['100', '200', '300', '400', '500'];\n\n// Timing presets based on speed\nexport const MOTION_TEXT_TIMING_PRESETS = {\n 100: {\n characterDelay: 10,\n wordDelay: 15,\n duration: 300,\n },\n 200: {\n characterDelay: 20,\n wordDelay: 30,\n duration: 600,\n },\n 300: {\n characterDelay: 30,\n wordDelay: 50,\n duration: 1000,\n },\n 400: {\n characterDelay: 50,\n wordDelay: 100,\n duration: 1500,\n },\n 500: {\n characterDelay: 80,\n wordDelay: 180,\n duration: 2100,\n },\n};\n\nexport default {\n MOTION_TEXT_ANIMATION_MODES,\n MOTION_TEXT_SPEEDS,\n MOTION_TEXT_TIMING_PRESETS,\n};\n"],"mappings":";AACA,IAAa,IAA8B;CACzC;CACA;CACA;CACA;CACA;CACA;CACD,EAGY,IAAqB;CAAC;CAAO;CAAO;CAAO;CAAO;CAAM,EAGxD,IAA6B;CACxC,KAAK;EACH,gBAAgB;EAChB,WAAW;EACX,UAAU;EACX;CACD,KAAK;EACH,gBAAgB;EAChB,WAAW;EACX,UAAU;EACX;CACD,KAAK;EACH,gBAAgB;EAChB,WAAW;EACX,UAAU;EACX;CACD,KAAK;EACH,gBAAgB;EAChB,WAAW;EACX,UAAU;EACX;CACD,KAAK;EACH,gBAAgB;EAChB,WAAW;EACX,UAAU;EACX;CACF,EAED,IAAe;CACb;CACA;CACA;CACD"}
@@ -1,2 +1,2 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../../chunk-Bmb41Sf3.cjs`);const e=require(`../../_plugin-vue_export-helper-D8jCH6HB.cjs`),t=require(`./motion-text-constants.cjs`);let n=require(`vue`);var r={compatConfig:{MODE:3},name:`DtMotionText`,inheritAttrs:!1,props:{text:{type:String,default:``},animationMode:{type:String,default:`gradient-in`,validator:e=>t.MOTION_TEXT_ANIMATION_MODES.includes(e)},speed:{type:String,default:`md`,validator:e=>t.MOTION_TEXT_SPEEDS.includes(e)},autoStart:{type:Boolean,default:!0},loop:{type:Boolean,default:!1},respectsReducedMotion:{type:Boolean,default:!0},screenReaderText:{type:String,default:``}},emits:[`start`,`complete`,`progress`,`pause`,`resume`],data(){return{words:[],visibleWordCount:0,visibleCharsPerWord:[],isAnimating:!1,isPaused:!1,isLooped:!1,animationTimeouts:[],prefersReducedMotion:!1,animationKey:0}},computed:{timing(){return t.MOTION_TEXT_TIMING_PRESETS[this.speed]},componentStyles(){return{"--d-motion-text-duration":`${this.timing.duration}ms`,"--d-motion-text-char-duration":`${this.timing.duration}ms`,"--d-motion-text-word-duration":`${this.timing.duration*2}ms`}},isStaticAnimationMode(){return this.animationMode===`gradient-sweep`||this.animationMode===`shimmer`},motionTextClasses(){return[`d-motion-text`,`d-motion-text--${this.animationMode}`,{"d-motion-text--animating":this.isAnimating,"d-motion-text--paused":this.isPaused,"d-motion-text--looped":this.isLooped},this.$attrs.class]}},watch:{text(){this.reset(),this.initializeContent()},loop:{handler(e){this.isLooped=e},immediate:!0}},mounted(){this.checkReducedMotion(),this.initializeContent()},beforeUnmount(){this.clearTimeouts()},methods:{processTextToChars(e){let t=[],n=(e,r=0)=>{if(e.nodeType===Node.TEXT_NODE){let n=e.textContent?.match(/\S+\s*/g)||[];return t.push(...n.map((e,t)=>({text:e,chars:e.split(``),index:r+t}))),r+n.length}else if(e.nodeType===Node.ELEMENT_NODE){let t=r;return Array.from(e.childNodes).forEach(e=>{t=n(e,t)}),t}return r};return n(e),t},processDirectText(e){return e?(e.match(/\S+\s*/g)||[]).map((e,t)=>({text:e,chars:e.split(``),index:t})):[]},checkReducedMotion(){typeof window<`u`&&window.matchMedia&&(this.prefersReducedMotion=window.matchMedia(`(prefers-reduced-motion: reduce)`).matches)},clearTimeouts(){this.animationTimeouts.forEach(e=>clearTimeout(e)),this.animationTimeouts=[]},start(){if(!this.isAnimating){if(this.isAnimating=!0,this.isPaused=!1,this.$emit(`start`),this.respectsReducedMotion&&this.prefersReducedMotion){this.showAllContent();return}if(this.animationMode===`none`){this.showAllContent();return}this.isStaticAnimationMode||this.showNextWord()}},pause(){!this.isAnimating||this.isPaused||(this.isPaused=!0,this.clearTimeouts(),this.$emit(`pause`))},resume(){this.isPaused&&(this.isPaused=!1,this.$emit(`resume`),this.showNextWord())},reset(){this.clearTimeouts(),this.isAnimating=!1,this.isPaused=!1,this.visibleWordCount=0,this.visibleCharsPerWord=Array(this.words.length).fill(0),this.animationKey++},skipToEnd(){this.showAllContent()},showAllContent(){this.visibleWordCount=this.words.length,this.visibleCharsPerWord=this.words.map(e=>e.chars.length),setTimeout(()=>{this.isAnimating=!1,this.$emit(`complete`)},0)},showNextWord(){if(this.isPaused||this.visibleWordCount>=this.words.length){this.visibleWordCount>=this.words.length&&this.completeAnimation();return}let e=setTimeout(()=>{this.visibleWordCount++,this.$emit(`progress`,{wordsComplete:this.visibleWordCount,totalWords:this.words.length,progress:this.visibleWordCount/this.words.length}),this.animateCharsForWord(this.visibleWordCount-1)},this.timing.wordDelay);this.animationTimeouts.push(e)},animateCharsForWord(e){if(this.isPaused||e>=this.words.length)return;this.visibleCharsPerWord[e]=0;let t=this.words[e].chars.length,n=()=>{if(this.isPaused||this.visibleCharsPerWord[e]>=t){this.visibleCharsPerWord[e]>=t&&this.showNextWord();return}this.visibleCharsPerWord[e]++;let r=setTimeout(n,this.timing.characterDelay);this.animationTimeouts.push(r)};n()},completeAnimation(){if(this.isAnimating=!1,this.clearTimeouts(),this.$emit(`complete`),this.loop){let e=setTimeout(()=>{this.reset(),this.$nextTick(()=>{this.start()})},500);this.animationTimeouts.push(e)}},initializeContent(){if(this.isStaticAnimationMode){this.autoStart&&this.$nextTick(()=>this.start());return}this.text?this.words=this.processDirectText(this.text):this.$refs.contentRef&&(this.words=this.processTextToChars(this.$refs.contentRef)),this.visibleCharsPerWord=Array(this.words.length).fill(0),this.visibleWordCount=0,this.autoStart&&this.words.length>0&&this.$nextTick(()=>this.start())}}},i=[`data-text-content`,`aria-live`,`aria-label`],a={key:0,class:`d-motion-text__sr-only`},o=[`aria-hidden`],s=[`data-text-content`],c={key:3,class:`d-motion-text__fallback`};function l(e,t,r,l,u,d){return(0,n.openBlock)(),(0,n.createElementBlock)(`span`,{ref:`contentRef`,class:(0,n.normalizeClass)(d.motionTextClasses),style:(0,n.normalizeStyle)(d.componentStyles),"data-text-content":d.isStaticAnimationMode?r.text:void 0,"aria-live":u.isAnimating?`polite`:`off`,"aria-label":r.screenReaderText||void 0},[r.screenReaderText?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,a,(0,n.toDisplayString)(r.screenReaderText),1)):(0,n.createCommentVNode)(``,!0),d.isStaticAnimationMode?((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,{key:1},[(0,n.createTextVNode)((0,n.toDisplayString)(r.text)+` `,1),r.text?(0,n.createCommentVNode)(``,!0):(0,n.renderSlot)(e.$slots,`default`,{key:0})],64)):((0,n.openBlock)(),(0,n.createElementBlock)(`span`,{key:u.animationKey,class:`d-motion-text__content`,"aria-hidden":u.isAnimating},[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(u.words,(e,t)=>((0,n.openBlock)(),(0,n.createBlock)(n.Transition,{key:`${u.animationKey}-${t}`,name:`d-motion-text-word-${r.animationMode}`},{default:(0,n.withCtx)(()=>[t<u.visibleWordCount?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,{key:0,class:`d-motion-text__word`,"data-text-content":e.text,style:(0,n.normalizeStyle)({"--word-index":t})},[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(e.chars,(e,i)=>((0,n.openBlock)(),(0,n.createBlock)(n.Transition,{key:`${u.animationKey}-${t}-${i}`,name:`d-motion-text-char-${r.animationMode}`},{default:(0,n.withCtx)(()=>[i<u.visibleCharsPerWord[t]?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,{key:0,class:`d-motion-text__char`,style:(0,n.normalizeStyle)({"--char-index":i,"--char-delay":`${i*d.timing.characterDelay}ms`})},(0,n.toDisplayString)(e),5)):(0,n.createCommentVNode)(``,!0)]),_:2},1032,[`name`]))),128))],12,s)):(0,n.createCommentVNode)(``,!0)]),_:2},1032,[`name`]))),128))],8,o)),!u.words.length&&!r.text&&!d.isStaticAnimationMode?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,c,[(0,n.renderSlot)(e.$slots,`default`)])):(0,n.createCommentVNode)(``,!0)],14,i)}var u=e.t(r,[[`render`,l]]);exports.default=u;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../../chunk-Bmb41Sf3.cjs`);const e=require(`../../_plugin-vue_export-helper-D8jCH6HB.cjs`),t=require(`./motion-text-constants.cjs`);let n=require(`vue`);var r={compatConfig:{MODE:3},name:`DtMotionText`,props:{text:{type:String,default:``},animationMode:{type:String,default:`gradient-in`,validator:e=>t.MOTION_TEXT_ANIMATION_MODES.includes(e)},speed:{type:[String,Number],default:300,validator:e=>t.MOTION_TEXT_SPEEDS.includes(String(e))},autoStart:{type:Boolean,default:!0},loop:{type:Boolean,default:!1},respectsReducedMotion:{type:Boolean,default:!0},screenReaderText:{type:String,default:``}},emits:[`start`,`complete`,`progress`,`pause`,`resume`],data(){return{words:[],visibleWordCount:0,visibleCharsPerWord:[],isAnimating:!1,isPaused:!1,isLooped:!1,animationTimeouts:[],prefersReducedMotion:!1,animationKey:0}},computed:{timing(){return t.MOTION_TEXT_TIMING_PRESETS[String(this.speed)]},componentStyles(){return{"--d-motion-text-duration":`${this.timing.duration}ms`,"--d-motion-text-char-duration":`${this.timing.duration}ms`,"--d-motion-text-word-duration":`${this.timing.duration*2}ms`}},isStaticAnimationMode(){return this.animationMode===`gradient-sweep`||this.animationMode===`shimmer`},motionTextClasses(){return[`d-motion-text`,`d-motion-text--${this.animationMode}`,{"d-motion-text--animating":this.isAnimating,"d-motion-text--paused":this.isPaused,"d-motion-text--looped":this.isLooped}]}},watch:{text(){this.reset(),this.initializeContent()},loop:{handler(e){this.isLooped=e},immediate:!0}},mounted(){this.checkReducedMotion(),this.initializeContent()},beforeUnmount(){this.clearTimeouts()},methods:{processTextToChars(e){let t=[],n=(e,r=0)=>{if(e.nodeType===Node.TEXT_NODE){let n=e.textContent?.match(/\S+\s*/g)||[];return t.push(...n.map((e,t)=>({text:e,chars:e.split(``),index:r+t}))),r+n.length}else if(e.nodeType===Node.ELEMENT_NODE){let t=r;return Array.from(e.childNodes).forEach(e=>{t=n(e,t)}),t}return r};return n(e),t},processDirectText(e){return e?(e.match(/\S+\s*/g)||[]).map((e,t)=>({text:e,chars:e.split(``),index:t})):[]},checkReducedMotion(){typeof window<`u`&&window.matchMedia&&(this.prefersReducedMotion=window.matchMedia(`(prefers-reduced-motion: reduce)`).matches)},clearTimeouts(){this.animationTimeouts.forEach(e=>clearTimeout(e)),this.animationTimeouts=[]},start(){if(!this.isAnimating){if(this.isAnimating=!0,this.isPaused=!1,this.$emit(`start`),this.respectsReducedMotion&&this.prefersReducedMotion){this.showAllContent();return}if(this.animationMode===`none`){this.showAllContent();return}this.isStaticAnimationMode||this.showNextWord()}},pause(){!this.isAnimating||this.isPaused||(this.isPaused=!0,this.clearTimeouts(),this.$emit(`pause`))},resume(){this.isPaused&&(this.isPaused=!1,this.$emit(`resume`),this.showNextWord())},reset(){this.clearTimeouts(),this.isAnimating=!1,this.isPaused=!1,this.visibleWordCount=0,this.visibleCharsPerWord=Array(this.words.length).fill(0),this.animationKey++},skipToEnd(){this.showAllContent()},showAllContent(){this.visibleWordCount=this.words.length,this.visibleCharsPerWord=this.words.map(e=>e.chars.length),setTimeout(()=>{this.isAnimating=!1,this.$emit(`complete`)},0)},showNextWord(){if(this.isPaused||this.visibleWordCount>=this.words.length){this.visibleWordCount>=this.words.length&&this.completeAnimation();return}let e=setTimeout(()=>{this.visibleWordCount++,this.$emit(`progress`,{wordsComplete:this.visibleWordCount,totalWords:this.words.length,progress:this.visibleWordCount/this.words.length}),this.animateCharsForWord(this.visibleWordCount-1)},this.timing.wordDelay);this.animationTimeouts.push(e)},animateCharsForWord(e){if(this.isPaused||e>=this.words.length)return;this.visibleCharsPerWord[e]=0;let t=this.words[e].chars.length,n=()=>{if(this.isPaused||this.visibleCharsPerWord[e]>=t){this.visibleCharsPerWord[e]>=t&&this.showNextWord();return}this.visibleCharsPerWord[e]++;let r=setTimeout(n,this.timing.characterDelay);this.animationTimeouts.push(r)};n()},completeAnimation(){if(this.isAnimating=!1,this.clearTimeouts(),this.$emit(`complete`),this.loop){let e=setTimeout(()=>{this.reset(),this.$nextTick(()=>{this.start()})},500);this.animationTimeouts.push(e)}},initializeContent(){if(this.isStaticAnimationMode){this.autoStart&&this.$nextTick(()=>this.start());return}this.text?this.words=this.processDirectText(this.text):this.$refs.contentRef&&(this.words=this.processTextToChars(this.$refs.contentRef)),this.visibleCharsPerWord=Array(this.words.length).fill(0),this.visibleWordCount=0,this.autoStart&&this.words.length>0&&this.$nextTick(()=>this.start())}}},i=[`data-text-content`,`aria-live`,`aria-label`],a={key:0,class:`d-motion-text__sr-only`},o=[`aria-hidden`],s=[`data-text-content`],c={key:3,class:`d-motion-text__fallback`};function l(e,t,r,l,u,d){return(0,n.openBlock)(),(0,n.createElementBlock)(`span`,{ref:`contentRef`,class:(0,n.normalizeClass)(d.motionTextClasses),style:(0,n.normalizeStyle)(d.componentStyles),"data-text-content":d.isStaticAnimationMode?r.text:void 0,"aria-live":u.isAnimating?`polite`:`off`,"aria-label":r.screenReaderText||void 0},[r.screenReaderText?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,a,(0,n.toDisplayString)(r.screenReaderText),1)):(0,n.createCommentVNode)(``,!0),d.isStaticAnimationMode?((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,{key:1},[(0,n.createTextVNode)((0,n.toDisplayString)(r.text)+` `,1),r.text?(0,n.createCommentVNode)(``,!0):(0,n.renderSlot)(e.$slots,`default`,{key:0})],64)):((0,n.openBlock)(),(0,n.createElementBlock)(`span`,{key:u.animationKey,class:`d-motion-text__content`,"aria-hidden":u.isAnimating},[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(u.words,(e,t)=>((0,n.openBlock)(),(0,n.createBlock)(n.Transition,{key:`${u.animationKey}-${t}`,name:`d-motion-text-word-${r.animationMode}`},{default:(0,n.withCtx)(()=>[t<u.visibleWordCount?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,{key:0,class:`d-motion-text__word`,"data-text-content":e.text,style:(0,n.normalizeStyle)({"--word-index":t})},[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(e.chars,(e,i)=>((0,n.openBlock)(),(0,n.createBlock)(n.Transition,{key:`${u.animationKey}-${t}-${i}`,name:`d-motion-text-char-${r.animationMode}`},{default:(0,n.withCtx)(()=>[i<u.visibleCharsPerWord[t]?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,{key:0,class:`d-motion-text__char`,style:(0,n.normalizeStyle)({"--char-index":i,"--char-delay":`${i*d.timing.characterDelay}ms`})},(0,n.toDisplayString)(e),5)):(0,n.createCommentVNode)(``,!0)]),_:2},1032,[`name`]))),128))],12,s)):(0,n.createCommentVNode)(``,!0)]),_:2},1032,[`name`]))),128))],8,o)),!u.words.length&&!r.text&&!d.isStaticAnimationMode?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,c,[(0,n.renderSlot)(e.$slots,`default`)])):(0,n.createCommentVNode)(``,!0)],14,i)}var u=e.t(r,[[`render`,l]]);exports.default=u;
2
2
  //# sourceMappingURL=motion-text.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"motion-text.cjs","names":[],"sources":["../../../components/motion_text/motion_text.vue"],"sourcesContent":["<template>\n <span\n ref=\"contentRef\"\n :class=\"motionTextClasses\"\n :style=\"componentStyles\"\n :data-text-content=\"isStaticAnimationMode ? text : undefined\"\n :aria-live=\"isAnimating ? 'polite' : 'off'\"\n :aria-label=\"screenReaderText || undefined\"\n >\n <!-- Screen reader content -->\n <span\n v-if=\"screenReaderText\"\n class=\"d-motion-text__sr-only\"\n >\n {{ screenReaderText }}\n </span>\n\n <!-- Gradient-sweep and shimmer modes: Simple static text with gradient animation -->\n <template v-if=\"isStaticAnimationMode\">\n {{ text }}\n <slot v-if=\"!text\" />\n </template>\n\n <!-- Character-by-character animated content for other modes -->\n <span\n v-else\n :key=\"animationKey\"\n class=\"d-motion-text__content\"\n :aria-hidden=\"isAnimating\"\n >\n <template\n v-for=\"(word, wordIdx) in words\"\n :key=\"`${animationKey}-${wordIdx}`\"\n >\n <Transition\n :name=\"`d-motion-text-word-${animationMode}`\"\n >\n <span\n v-if=\"wordIdx < visibleWordCount\"\n class=\"d-motion-text__word\"\n :data-text-content=\"word.text\"\n :style=\"{ '--word-index': wordIdx }\"\n >\n <template\n v-for=\"(char, charIdx) in word.chars\"\n :key=\"`${animationKey}-${wordIdx}-${charIdx}`\"\n >\n <Transition\n :name=\"`d-motion-text-char-${animationMode}`\"\n >\n <span\n v-if=\"charIdx < visibleCharsPerWord[wordIdx]\"\n class=\"d-motion-text__char\"\n :style=\"{\n '--char-index': charIdx,\n '--char-delay': `${charIdx * timing.characterDelay}ms`,\n }\"\n >{{ char }}</span>\n </Transition>\n </template>\n </span>\n </Transition>\n </template>\n </span>\n\n <!-- Fallback slot content -->\n <span\n v-if=\"!words.length && !text && !isStaticAnimationMode\"\n class=\"d-motion-text__fallback\"\n >\n <slot />\n </span>\n </span>\n</template>\n\n<script>\nimport { MOTION_TEXT_ANIMATION_MODES, MOTION_TEXT_SPEEDS, MOTION_TEXT_TIMING_PRESETS } from './motion_text_constants';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtMotionText',\n\n inheritAttrs: false,\n\n props: {\n /**\n * The text content to animate.\n * @type {string}\n */\n text: {\n type: String,\n default: '',\n },\n\n /**\n * The animation mode to use for the text reveal.\n * @values gradient-in, fade-in, slide-in, gradient-sweep, shimmer, none\n */\n animationMode: {\n type: String,\n default: 'gradient-in',\n validator: (value) => MOTION_TEXT_ANIMATION_MODES.includes(value),\n },\n\n /**\n * Animation speed using t-shirt sizing.\n * @values sm, md, lg\n */\n speed: {\n type: String,\n default: 'md',\n validator: (value) => MOTION_TEXT_SPEEDS.includes(value),\n },\n\n /**\n * Whether to start animation automatically when component is mounted.\n * @values true, false\n */\n autoStart: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Whether to loop the animation continuously.\n * @values true, false\n */\n loop: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Whether to respect the user's prefers-reduced-motion system setting.\n * @values true, false\n */\n respectsReducedMotion: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Alternative text for screen readers. If provided, this will be announced\n * instead of the animated text.\n * @type {string}\n */\n screenReaderText: {\n type: String,\n default: '',\n },\n },\n\n emits: [\n /**\n * Emitted when the animation starts.\n * @event start\n */\n 'start',\n\n /**\n * Emitted when the animation completes.\n * @event complete\n */\n 'complete',\n\n /**\n * Emitted during animation progress.\n * @event progress\n * @type {{ wordsComplete: number, totalWords: number, progress: number }}\n */\n 'progress',\n\n /**\n * Emitted when the animation is paused.\n * @event pause\n */\n 'pause',\n\n /**\n * Emitted when the animation resumes.\n * @event resume\n */\n 'resume',\n ],\n\n data () {\n return {\n words: [],\n visibleWordCount: 0,\n visibleCharsPerWord: [],\n isAnimating: false,\n isPaused: false,\n isLooped: false,\n animationTimeouts: [],\n prefersReducedMotion: false,\n animationKey: 0,\n };\n },\n\n computed: {\n /**\n * Get timing preset based on speed prop\n */\n timing () {\n return MOTION_TEXT_TIMING_PRESETS[this.speed];\n },\n\n /**\n * Computed styles with timing CSS variables\n */\n componentStyles () {\n return {\n '--d-motion-text-duration': `${this.timing.duration}ms`,\n '--d-motion-text-char-duration': `${this.timing.duration}ms`,\n '--d-motion-text-word-duration': `${this.timing.duration * 2}ms`,\n };\n },\n\n /**\n * Check if current animation mode is static (gradient-sweep or shimmer)\n */\n isStaticAnimationMode () {\n return this.animationMode === 'gradient-sweep' || this.animationMode === 'shimmer';\n },\n\n /**\n * Computed classes for the motion text element\n */\n motionTextClasses () {\n return [\n 'd-motion-text',\n `d-motion-text--${this.animationMode}`,\n {\n 'd-motion-text--animating': this.isAnimating,\n 'd-motion-text--paused': this.isPaused,\n 'd-motion-text--looped': this.isLooped,\n },\n this.$attrs.class,\n ];\n },\n },\n\n watch: {\n text () {\n this.reset();\n this.initializeContent();\n },\n\n loop: {\n handler (newVal) {\n this.isLooped = newVal;\n },\n\n immediate: true,\n },\n },\n\n mounted () {\n this.checkReducedMotion();\n this.initializeContent();\n },\n\n beforeUnmount () {\n this.clearTimeouts();\n },\n\n methods: {\n /**\n * Self-contained text processing from DOM nodes\n */\n processTextToChars (node) {\n const words = [];\n\n const processNode = (node, index = 0) => {\n if (node.nodeType === Node.TEXT_NODE) {\n const matches = node.textContent?.match(/\\S+\\s*/g) || [];\n words.push(...matches.map((text, i) => ({\n text,\n chars: text.split(''),\n index: index + i,\n })));\n return index + matches.length;\n } else if (node.nodeType === Node.ELEMENT_NODE) {\n let currentIdx = index;\n Array.from(node.childNodes).forEach(child => {\n currentIdx = processNode(child, currentIdx);\n });\n return currentIdx;\n }\n return index;\n };\n\n processNode(node);\n return words;\n },\n\n /**\n * Process direct text prop into word/character data\n */\n processDirectText (text) {\n if (!text) return [];\n\n const matches = text.match(/\\S+\\s*/g) || [];\n return matches.map((wordText, i) => ({\n text: wordText,\n chars: wordText.split(''),\n index: i,\n }));\n },\n\n /**\n * Check for reduced motion preference\n */\n checkReducedMotion () {\n if (typeof window !== 'undefined' && window.matchMedia) {\n this.prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n },\n\n /**\n * Clear all animation timeouts\n */\n clearTimeouts () {\n this.animationTimeouts.forEach(timeout => clearTimeout(timeout));\n this.animationTimeouts = [];\n },\n\n /**\n * Start the animation\n * @public\n */\n start () {\n if (this.isAnimating) return;\n\n this.isAnimating = true;\n this.isPaused = false;\n this.$emit('start');\n\n // Skip animation if reduced motion is preferred and enabled\n if (this.respectsReducedMotion && this.prefersReducedMotion) {\n this.showAllContent();\n return;\n }\n\n if (this.animationMode === 'none') {\n this.showAllContent();\n return;\n }\n\n // For gradient-sweep and shimmer modes, just mark as animating (CSS handles the animation)\n if (this.isStaticAnimationMode) {\n return;\n }\n\n // Start the word-by-word animation for \"-in\" modes\n this.showNextWord();\n },\n\n /**\n * Pause the animation\n * @public\n */\n pause () {\n if (!this.isAnimating || this.isPaused) return;\n\n this.isPaused = true;\n this.clearTimeouts();\n this.$emit('pause');\n },\n\n /**\n * Resume the animation\n * @public\n */\n resume () {\n if (!this.isPaused) return;\n\n this.isPaused = false;\n this.$emit('resume');\n this.showNextWord();\n },\n\n /**\n * Reset the animation to initial state\n * @public\n */\n reset () {\n this.clearTimeouts();\n this.isAnimating = false;\n this.isPaused = false;\n this.visibleWordCount = 0;\n this.visibleCharsPerWord = Array(this.words.length).fill(0);\n this.animationKey++;\n },\n\n /**\n * Skip to the end of the animation\n * @public\n */\n skipToEnd () {\n this.showAllContent();\n },\n\n /**\n * Show all content immediately\n */\n showAllContent () {\n this.visibleWordCount = this.words.length;\n this.visibleCharsPerWord = this.words.map(word => word.chars.length);\n setTimeout(() => {\n this.isAnimating = false;\n this.$emit('complete');\n }, 0);\n },\n\n /**\n * Show next word in sequence\n */\n showNextWord () {\n if (this.isPaused || this.visibleWordCount >= this.words.length) {\n if (this.visibleWordCount >= this.words.length) {\n this.completeAnimation();\n }\n return;\n }\n\n const timeout = setTimeout(() => {\n this.visibleWordCount++;\n this.$emit('progress', {\n wordsComplete: this.visibleWordCount,\n totalWords: this.words.length,\n progress: this.visibleWordCount / this.words.length,\n });\n\n this.animateCharsForWord(this.visibleWordCount - 1);\n }, this.timing.wordDelay);\n\n this.animationTimeouts.push(timeout);\n },\n\n /**\n * Animate characters for a specific word\n */\n animateCharsForWord (wordIdx) {\n if (this.isPaused || wordIdx >= this.words.length) return;\n\n this.visibleCharsPerWord[wordIdx] = 0;\n const chars = this.words[wordIdx].chars.length;\n\n const revealChar = () => {\n if (this.isPaused || this.visibleCharsPerWord[wordIdx] >= chars) {\n if (this.visibleCharsPerWord[wordIdx] >= chars) {\n this.showNextWord();\n }\n return;\n }\n\n this.visibleCharsPerWord[wordIdx]++;\n const timeout = setTimeout(revealChar, this.timing.characterDelay);\n this.animationTimeouts.push(timeout);\n };\n\n revealChar();\n },\n\n /**\n * Complete the animation\n */\n completeAnimation () {\n this.isAnimating = false;\n this.clearTimeouts();\n\n this.$emit('complete');\n\n if (this.loop) {\n const timeout = setTimeout(() => {\n this.reset();\n this.$nextTick(() => {\n this.start();\n });\n }, 500);\n\n this.animationTimeouts.push(timeout);\n }\n },\n\n /**\n * Initialize content based on text prop or slot content\n */\n initializeContent () {\n // For gradient-sweep and shimmer modes, skip word/character processing\n if (this.isStaticAnimationMode) {\n if (this.autoStart) {\n this.$nextTick(() => this.start());\n }\n return;\n }\n\n if (this.text) {\n this.words = this.processDirectText(this.text);\n } else if (this.$refs.contentRef) {\n this.words = this.processTextToChars(this.$refs.contentRef);\n }\n\n this.visibleCharsPerWord = Array(this.words.length).fill(0);\n this.visibleWordCount = 0;\n\n if (this.autoStart && this.words.length > 0) {\n this.$nextTick(() => this.start());\n }\n },\n },\n};\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"motion-text.cjs","names":[],"sources":["../../../components/motion_text/motion_text.vue"],"sourcesContent":["<template>\n <span\n ref=\"contentRef\"\n :class=\"motionTextClasses\"\n :style=\"componentStyles\"\n :data-text-content=\"isStaticAnimationMode ? text : undefined\"\n :aria-live=\"isAnimating ? 'polite' : 'off'\"\n :aria-label=\"screenReaderText || undefined\"\n >\n <!-- Screen reader content -->\n <span\n v-if=\"screenReaderText\"\n class=\"d-motion-text__sr-only\"\n >\n {{ screenReaderText }}\n </span>\n\n <!-- Gradient-sweep and shimmer modes: Simple static text with gradient animation -->\n <template v-if=\"isStaticAnimationMode\">\n {{ text }}\n <slot v-if=\"!text\" />\n </template>\n\n <!-- Character-by-character animated content for other modes -->\n <span\n v-else\n :key=\"animationKey\"\n class=\"d-motion-text__content\"\n :aria-hidden=\"isAnimating\"\n >\n <template\n v-for=\"(word, wordIdx) in words\"\n :key=\"`${animationKey}-${wordIdx}`\"\n >\n <Transition\n :name=\"`d-motion-text-word-${animationMode}`\"\n >\n <span\n v-if=\"wordIdx < visibleWordCount\"\n class=\"d-motion-text__word\"\n :data-text-content=\"word.text\"\n :style=\"{ '--word-index': wordIdx }\"\n >\n <template\n v-for=\"(char, charIdx) in word.chars\"\n :key=\"`${animationKey}-${wordIdx}-${charIdx}`\"\n >\n <Transition\n :name=\"`d-motion-text-char-${animationMode}`\"\n >\n <span\n v-if=\"charIdx < visibleCharsPerWord[wordIdx]\"\n class=\"d-motion-text__char\"\n :style=\"{\n '--char-index': charIdx,\n '--char-delay': `${charIdx * timing.characterDelay}ms`,\n }\"\n >{{ char }}</span>\n </Transition>\n </template>\n </span>\n </Transition>\n </template>\n </span>\n\n <!-- Fallback slot content -->\n <span\n v-if=\"!words.length && !text && !isStaticAnimationMode\"\n class=\"d-motion-text__fallback\"\n >\n <slot />\n </span>\n </span>\n</template>\n\n<script>\nimport { MOTION_TEXT_ANIMATION_MODES, MOTION_TEXT_SPEEDS, MOTION_TEXT_TIMING_PRESETS } from './motion_text_constants';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtMotionText',\n\n props: {\n /**\n * The text content to animate.\n * @type {string}\n */\n text: {\n type: String,\n default: '',\n },\n\n /**\n * The animation mode to use for the text reveal.\n * @values gradient-in, fade-in, slide-in, gradient-sweep, shimmer, none\n */\n animationMode: {\n type: String,\n default: 'gradient-in',\n validator: (value) => MOTION_TEXT_ANIMATION_MODES.includes(value),\n },\n\n /**\n * Animation speed.\n * @values 100, 200, 300, 400, 500\n */\n speed: {\n type: [String, Number],\n default: 300,\n validator: (value) => MOTION_TEXT_SPEEDS.includes(String(value)),\n },\n\n /**\n * Whether to start animation automatically when component is mounted.\n * @values true, false\n */\n autoStart: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Whether to loop the animation continuously.\n * @values true, false\n */\n loop: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Whether to respect the user's prefers-reduced-motion system setting.\n * @values true, false\n */\n respectsReducedMotion: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Alternative text for screen readers. If provided, this will be announced\n * instead of the animated text.\n * @type {string}\n */\n screenReaderText: {\n type: String,\n default: '',\n },\n },\n\n emits: [\n /**\n * Emitted when the animation starts.\n * @event start\n */\n 'start',\n\n /**\n * Emitted when the animation completes.\n * @event complete\n */\n 'complete',\n\n /**\n * Emitted during animation progress.\n * @event progress\n * @type {{ wordsComplete: number, totalWords: number, progress: number }}\n */\n 'progress',\n\n /**\n * Emitted when the animation is paused.\n * @event pause\n */\n 'pause',\n\n /**\n * Emitted when the animation resumes.\n * @event resume\n */\n 'resume',\n ],\n\n data () {\n return {\n words: [],\n visibleWordCount: 0,\n visibleCharsPerWord: [],\n isAnimating: false,\n isPaused: false,\n isLooped: false,\n animationTimeouts: [],\n prefersReducedMotion: false,\n animationKey: 0,\n };\n },\n\n computed: {\n /**\n * Get timing preset based on speed prop\n */\n timing () {\n return MOTION_TEXT_TIMING_PRESETS[String(this.speed)];\n },\n\n /**\n * Computed styles with timing CSS variables\n */\n componentStyles () {\n return {\n '--d-motion-text-duration': `${this.timing.duration}ms`,\n '--d-motion-text-char-duration': `${this.timing.duration}ms`,\n '--d-motion-text-word-duration': `${this.timing.duration * 2}ms`,\n };\n },\n\n /**\n * Check if current animation mode is static (gradient-sweep or shimmer)\n */\n isStaticAnimationMode () {\n return this.animationMode === 'gradient-sweep' || this.animationMode === 'shimmer';\n },\n\n /**\n * Computed classes for the motion text element\n */\n motionTextClasses () {\n return [\n 'd-motion-text',\n `d-motion-text--${this.animationMode}`,\n {\n 'd-motion-text--animating': this.isAnimating,\n 'd-motion-text--paused': this.isPaused,\n 'd-motion-text--looped': this.isLooped,\n },\n ];\n },\n },\n\n watch: {\n text () {\n this.reset();\n this.initializeContent();\n },\n\n loop: {\n handler (newVal) {\n this.isLooped = newVal;\n },\n\n immediate: true,\n },\n },\n\n mounted () {\n this.checkReducedMotion();\n this.initializeContent();\n },\n\n beforeUnmount () {\n this.clearTimeouts();\n },\n\n methods: {\n /**\n * Self-contained text processing from DOM nodes\n */\n processTextToChars (node) {\n const words = [];\n\n const processNode = (node, index = 0) => {\n if (node.nodeType === Node.TEXT_NODE) {\n const matches = node.textContent?.match(/\\S+\\s*/g) || [];\n words.push(...matches.map((text, i) => ({\n text,\n chars: text.split(''),\n index: index + i,\n })));\n return index + matches.length;\n } else if (node.nodeType === Node.ELEMENT_NODE) {\n let currentIdx = index;\n Array.from(node.childNodes).forEach(child => {\n currentIdx = processNode(child, currentIdx);\n });\n return currentIdx;\n }\n return index;\n };\n\n processNode(node);\n return words;\n },\n\n /**\n * Process direct text prop into word/character data\n */\n processDirectText (text) {\n if (!text) return [];\n\n const matches = text.match(/\\S+\\s*/g) || [];\n return matches.map((wordText, i) => ({\n text: wordText,\n chars: wordText.split(''),\n index: i,\n }));\n },\n\n /**\n * Check for reduced motion preference\n */\n checkReducedMotion () {\n if (typeof window !== 'undefined' && window.matchMedia) {\n this.prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n },\n\n /**\n * Clear all animation timeouts\n */\n clearTimeouts () {\n this.animationTimeouts.forEach(timeout => clearTimeout(timeout));\n this.animationTimeouts = [];\n },\n\n /**\n * Start the animation\n * @public\n */\n start () {\n if (this.isAnimating) return;\n\n this.isAnimating = true;\n this.isPaused = false;\n this.$emit('start');\n\n // Skip animation if reduced motion is preferred and enabled\n if (this.respectsReducedMotion && this.prefersReducedMotion) {\n this.showAllContent();\n return;\n }\n\n if (this.animationMode === 'none') {\n this.showAllContent();\n return;\n }\n\n // For gradient-sweep and shimmer modes, just mark as animating (CSS handles the animation)\n if (this.isStaticAnimationMode) {\n return;\n }\n\n // Start the word-by-word animation for \"-in\" modes\n this.showNextWord();\n },\n\n /**\n * Pause the animation\n * @public\n */\n pause () {\n if (!this.isAnimating || this.isPaused) return;\n\n this.isPaused = true;\n this.clearTimeouts();\n this.$emit('pause');\n },\n\n /**\n * Resume the animation\n * @public\n */\n resume () {\n if (!this.isPaused) return;\n\n this.isPaused = false;\n this.$emit('resume');\n this.showNextWord();\n },\n\n /**\n * Reset the animation to initial state\n * @public\n */\n reset () {\n this.clearTimeouts();\n this.isAnimating = false;\n this.isPaused = false;\n this.visibleWordCount = 0;\n this.visibleCharsPerWord = Array(this.words.length).fill(0);\n this.animationKey++;\n },\n\n /**\n * Skip to the end of the animation\n * @public\n */\n skipToEnd () {\n this.showAllContent();\n },\n\n /**\n * Show all content immediately\n */\n showAllContent () {\n this.visibleWordCount = this.words.length;\n this.visibleCharsPerWord = this.words.map(word => word.chars.length);\n setTimeout(() => {\n this.isAnimating = false;\n this.$emit('complete');\n }, 0);\n },\n\n /**\n * Show next word in sequence\n */\n showNextWord () {\n if (this.isPaused || this.visibleWordCount >= this.words.length) {\n if (this.visibleWordCount >= this.words.length) {\n this.completeAnimation();\n }\n return;\n }\n\n const timeout = setTimeout(() => {\n this.visibleWordCount++;\n this.$emit('progress', {\n wordsComplete: this.visibleWordCount,\n totalWords: this.words.length,\n progress: this.visibleWordCount / this.words.length,\n });\n\n this.animateCharsForWord(this.visibleWordCount - 1);\n }, this.timing.wordDelay);\n\n this.animationTimeouts.push(timeout);\n },\n\n /**\n * Animate characters for a specific word\n */\n animateCharsForWord (wordIdx) {\n if (this.isPaused || wordIdx >= this.words.length) return;\n\n this.visibleCharsPerWord[wordIdx] = 0;\n const chars = this.words[wordIdx].chars.length;\n\n const revealChar = () => {\n if (this.isPaused || this.visibleCharsPerWord[wordIdx] >= chars) {\n if (this.visibleCharsPerWord[wordIdx] >= chars) {\n this.showNextWord();\n }\n return;\n }\n\n this.visibleCharsPerWord[wordIdx]++;\n const timeout = setTimeout(revealChar, this.timing.characterDelay);\n this.animationTimeouts.push(timeout);\n };\n\n revealChar();\n },\n\n /**\n * Complete the animation\n */\n completeAnimation () {\n this.isAnimating = false;\n this.clearTimeouts();\n\n this.$emit('complete');\n\n if (this.loop) {\n const timeout = setTimeout(() => {\n this.reset();\n this.$nextTick(() => {\n this.start();\n });\n }, 500);\n\n this.animationTimeouts.push(timeout);\n }\n },\n\n /**\n * Initialize content based on text prop or slot content\n */\n initializeContent () {\n // For gradient-sweep and shimmer modes, skip word/character processing\n if (this.isStaticAnimationMode) {\n if (this.autoStart) {\n this.$nextTick(() => this.start());\n }\n return;\n }\n\n if (this.text) {\n this.words = this.processDirectText(this.text);\n } else if (this.$refs.contentRef) {\n this.words = this.processTextToChars(this.$refs.contentRef);\n }\n\n this.visibleCharsPerWord = Array(this.words.length).fill(0);\n this.visibleWordCount = 0;\n\n if (this.autoStart && this.words.length > 0) {\n this.$nextTick(() => this.start());\n }\n },\n },\n};\n</script>\n"],"mappings":"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"}
@@ -5,7 +5,6 @@ import { Fragment as i, Transition as a, createBlock as o, createCommentVNode as
5
5
  var _ = {
6
6
  compatConfig: { MODE: 3 },
7
7
  name: "DtMotionText",
8
- inheritAttrs: !1,
9
8
  props: {
10
9
  text: {
11
10
  type: String,
@@ -17,9 +16,9 @@ var _ = {
17
16
  validator: (e) => t.includes(e)
18
17
  },
19
18
  speed: {
20
- type: String,
21
- default: "md",
22
- validator: (e) => n.includes(e)
19
+ type: [String, Number],
20
+ default: 300,
21
+ validator: (e) => n.includes(String(e))
23
22
  },
24
23
  autoStart: {
25
24
  type: Boolean,
@@ -60,7 +59,7 @@ var _ = {
60
59
  },
61
60
  computed: {
62
61
  timing() {
63
- return r[this.speed];
62
+ return r[String(this.speed)];
64
63
  },
65
64
  componentStyles() {
66
65
  return {
@@ -80,8 +79,7 @@ var _ = {
80
79
  "d-motion-text--animating": this.isAnimating,
81
80
  "d-motion-text--paused": this.isPaused,
82
81
  "d-motion-text--looped": this.isLooped
83
- },
84
- this.$attrs.class
82
+ }
85
83
  ];
86
84
  }
87
85
  },
@@ -1 +1 @@
1
- {"version":3,"file":"motion-text.js","names":[],"sources":["../../../components/motion_text/motion_text.vue"],"sourcesContent":["<template>\n <span\n ref=\"contentRef\"\n :class=\"motionTextClasses\"\n :style=\"componentStyles\"\n :data-text-content=\"isStaticAnimationMode ? text : undefined\"\n :aria-live=\"isAnimating ? 'polite' : 'off'\"\n :aria-label=\"screenReaderText || undefined\"\n >\n <!-- Screen reader content -->\n <span\n v-if=\"screenReaderText\"\n class=\"d-motion-text__sr-only\"\n >\n {{ screenReaderText }}\n </span>\n\n <!-- Gradient-sweep and shimmer modes: Simple static text with gradient animation -->\n <template v-if=\"isStaticAnimationMode\">\n {{ text }}\n <slot v-if=\"!text\" />\n </template>\n\n <!-- Character-by-character animated content for other modes -->\n <span\n v-else\n :key=\"animationKey\"\n class=\"d-motion-text__content\"\n :aria-hidden=\"isAnimating\"\n >\n <template\n v-for=\"(word, wordIdx) in words\"\n :key=\"`${animationKey}-${wordIdx}`\"\n >\n <Transition\n :name=\"`d-motion-text-word-${animationMode}`\"\n >\n <span\n v-if=\"wordIdx < visibleWordCount\"\n class=\"d-motion-text__word\"\n :data-text-content=\"word.text\"\n :style=\"{ '--word-index': wordIdx }\"\n >\n <template\n v-for=\"(char, charIdx) in word.chars\"\n :key=\"`${animationKey}-${wordIdx}-${charIdx}`\"\n >\n <Transition\n :name=\"`d-motion-text-char-${animationMode}`\"\n >\n <span\n v-if=\"charIdx < visibleCharsPerWord[wordIdx]\"\n class=\"d-motion-text__char\"\n :style=\"{\n '--char-index': charIdx,\n '--char-delay': `${charIdx * timing.characterDelay}ms`,\n }\"\n >{{ char }}</span>\n </Transition>\n </template>\n </span>\n </Transition>\n </template>\n </span>\n\n <!-- Fallback slot content -->\n <span\n v-if=\"!words.length && !text && !isStaticAnimationMode\"\n class=\"d-motion-text__fallback\"\n >\n <slot />\n </span>\n </span>\n</template>\n\n<script>\nimport { MOTION_TEXT_ANIMATION_MODES, MOTION_TEXT_SPEEDS, MOTION_TEXT_TIMING_PRESETS } from './motion_text_constants';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtMotionText',\n\n inheritAttrs: false,\n\n props: {\n /**\n * The text content to animate.\n * @type {string}\n */\n text: {\n type: String,\n default: '',\n },\n\n /**\n * The animation mode to use for the text reveal.\n * @values gradient-in, fade-in, slide-in, gradient-sweep, shimmer, none\n */\n animationMode: {\n type: String,\n default: 'gradient-in',\n validator: (value) => MOTION_TEXT_ANIMATION_MODES.includes(value),\n },\n\n /**\n * Animation speed using t-shirt sizing.\n * @values sm, md, lg\n */\n speed: {\n type: String,\n default: 'md',\n validator: (value) => MOTION_TEXT_SPEEDS.includes(value),\n },\n\n /**\n * Whether to start animation automatically when component is mounted.\n * @values true, false\n */\n autoStart: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Whether to loop the animation continuously.\n * @values true, false\n */\n loop: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Whether to respect the user's prefers-reduced-motion system setting.\n * @values true, false\n */\n respectsReducedMotion: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Alternative text for screen readers. If provided, this will be announced\n * instead of the animated text.\n * @type {string}\n */\n screenReaderText: {\n type: String,\n default: '',\n },\n },\n\n emits: [\n /**\n * Emitted when the animation starts.\n * @event start\n */\n 'start',\n\n /**\n * Emitted when the animation completes.\n * @event complete\n */\n 'complete',\n\n /**\n * Emitted during animation progress.\n * @event progress\n * @type {{ wordsComplete: number, totalWords: number, progress: number }}\n */\n 'progress',\n\n /**\n * Emitted when the animation is paused.\n * @event pause\n */\n 'pause',\n\n /**\n * Emitted when the animation resumes.\n * @event resume\n */\n 'resume',\n ],\n\n data () {\n return {\n words: [],\n visibleWordCount: 0,\n visibleCharsPerWord: [],\n isAnimating: false,\n isPaused: false,\n isLooped: false,\n animationTimeouts: [],\n prefersReducedMotion: false,\n animationKey: 0,\n };\n },\n\n computed: {\n /**\n * Get timing preset based on speed prop\n */\n timing () {\n return MOTION_TEXT_TIMING_PRESETS[this.speed];\n },\n\n /**\n * Computed styles with timing CSS variables\n */\n componentStyles () {\n return {\n '--d-motion-text-duration': `${this.timing.duration}ms`,\n '--d-motion-text-char-duration': `${this.timing.duration}ms`,\n '--d-motion-text-word-duration': `${this.timing.duration * 2}ms`,\n };\n },\n\n /**\n * Check if current animation mode is static (gradient-sweep or shimmer)\n */\n isStaticAnimationMode () {\n return this.animationMode === 'gradient-sweep' || this.animationMode === 'shimmer';\n },\n\n /**\n * Computed classes for the motion text element\n */\n motionTextClasses () {\n return [\n 'd-motion-text',\n `d-motion-text--${this.animationMode}`,\n {\n 'd-motion-text--animating': this.isAnimating,\n 'd-motion-text--paused': this.isPaused,\n 'd-motion-text--looped': this.isLooped,\n },\n this.$attrs.class,\n ];\n },\n },\n\n watch: {\n text () {\n this.reset();\n this.initializeContent();\n },\n\n loop: {\n handler (newVal) {\n this.isLooped = newVal;\n },\n\n immediate: true,\n },\n },\n\n mounted () {\n this.checkReducedMotion();\n this.initializeContent();\n },\n\n beforeUnmount () {\n this.clearTimeouts();\n },\n\n methods: {\n /**\n * Self-contained text processing from DOM nodes\n */\n processTextToChars (node) {\n const words = [];\n\n const processNode = (node, index = 0) => {\n if (node.nodeType === Node.TEXT_NODE) {\n const matches = node.textContent?.match(/\\S+\\s*/g) || [];\n words.push(...matches.map((text, i) => ({\n text,\n chars: text.split(''),\n index: index + i,\n })));\n return index + matches.length;\n } else if (node.nodeType === Node.ELEMENT_NODE) {\n let currentIdx = index;\n Array.from(node.childNodes).forEach(child => {\n currentIdx = processNode(child, currentIdx);\n });\n return currentIdx;\n }\n return index;\n };\n\n processNode(node);\n return words;\n },\n\n /**\n * Process direct text prop into word/character data\n */\n processDirectText (text) {\n if (!text) return [];\n\n const matches = text.match(/\\S+\\s*/g) || [];\n return matches.map((wordText, i) => ({\n text: wordText,\n chars: wordText.split(''),\n index: i,\n }));\n },\n\n /**\n * Check for reduced motion preference\n */\n checkReducedMotion () {\n if (typeof window !== 'undefined' && window.matchMedia) {\n this.prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n },\n\n /**\n * Clear all animation timeouts\n */\n clearTimeouts () {\n this.animationTimeouts.forEach(timeout => clearTimeout(timeout));\n this.animationTimeouts = [];\n },\n\n /**\n * Start the animation\n * @public\n */\n start () {\n if (this.isAnimating) return;\n\n this.isAnimating = true;\n this.isPaused = false;\n this.$emit('start');\n\n // Skip animation if reduced motion is preferred and enabled\n if (this.respectsReducedMotion && this.prefersReducedMotion) {\n this.showAllContent();\n return;\n }\n\n if (this.animationMode === 'none') {\n this.showAllContent();\n return;\n }\n\n // For gradient-sweep and shimmer modes, just mark as animating (CSS handles the animation)\n if (this.isStaticAnimationMode) {\n return;\n }\n\n // Start the word-by-word animation for \"-in\" modes\n this.showNextWord();\n },\n\n /**\n * Pause the animation\n * @public\n */\n pause () {\n if (!this.isAnimating || this.isPaused) return;\n\n this.isPaused = true;\n this.clearTimeouts();\n this.$emit('pause');\n },\n\n /**\n * Resume the animation\n * @public\n */\n resume () {\n if (!this.isPaused) return;\n\n this.isPaused = false;\n this.$emit('resume');\n this.showNextWord();\n },\n\n /**\n * Reset the animation to initial state\n * @public\n */\n reset () {\n this.clearTimeouts();\n this.isAnimating = false;\n this.isPaused = false;\n this.visibleWordCount = 0;\n this.visibleCharsPerWord = Array(this.words.length).fill(0);\n this.animationKey++;\n },\n\n /**\n * Skip to the end of the animation\n * @public\n */\n skipToEnd () {\n this.showAllContent();\n },\n\n /**\n * Show all content immediately\n */\n showAllContent () {\n this.visibleWordCount = this.words.length;\n this.visibleCharsPerWord = this.words.map(word => word.chars.length);\n setTimeout(() => {\n this.isAnimating = false;\n this.$emit('complete');\n }, 0);\n },\n\n /**\n * Show next word in sequence\n */\n showNextWord () {\n if (this.isPaused || this.visibleWordCount >= this.words.length) {\n if (this.visibleWordCount >= this.words.length) {\n this.completeAnimation();\n }\n return;\n }\n\n const timeout = setTimeout(() => {\n this.visibleWordCount++;\n this.$emit('progress', {\n wordsComplete: this.visibleWordCount,\n totalWords: this.words.length,\n progress: this.visibleWordCount / this.words.length,\n });\n\n this.animateCharsForWord(this.visibleWordCount - 1);\n }, this.timing.wordDelay);\n\n this.animationTimeouts.push(timeout);\n },\n\n /**\n * Animate characters for a specific word\n */\n animateCharsForWord (wordIdx) {\n if (this.isPaused || wordIdx >= this.words.length) return;\n\n this.visibleCharsPerWord[wordIdx] = 0;\n const chars = this.words[wordIdx].chars.length;\n\n const revealChar = () => {\n if (this.isPaused || this.visibleCharsPerWord[wordIdx] >= chars) {\n if (this.visibleCharsPerWord[wordIdx] >= chars) {\n this.showNextWord();\n }\n return;\n }\n\n this.visibleCharsPerWord[wordIdx]++;\n const timeout = setTimeout(revealChar, this.timing.characterDelay);\n this.animationTimeouts.push(timeout);\n };\n\n revealChar();\n },\n\n /**\n * Complete the animation\n */\n completeAnimation () {\n this.isAnimating = false;\n this.clearTimeouts();\n\n this.$emit('complete');\n\n if (this.loop) {\n const timeout = setTimeout(() => {\n this.reset();\n this.$nextTick(() => {\n this.start();\n });\n }, 500);\n\n this.animationTimeouts.push(timeout);\n }\n },\n\n /**\n * Initialize content based on text prop or slot content\n */\n initializeContent () {\n // For gradient-sweep and shimmer modes, skip word/character processing\n if (this.isStaticAnimationMode) {\n if (this.autoStart) {\n this.$nextTick(() => this.start());\n }\n return;\n }\n\n if (this.text) {\n this.words = this.processDirectText(this.text);\n } else if (this.$refs.contentRef) {\n this.words = this.processTextToChars(this.$refs.contentRef);\n }\n\n this.visibleCharsPerWord = Array(this.words.length).fill(0);\n this.visibleWordCount = 0;\n\n if (this.autoStart && this.words.length > 0) {\n this.$nextTick(() => this.start());\n }\n },\n },\n};\n</script>\n"],"mappings":";;;;AA8EA,IAAK,IAAU;CACb,cAAc,EAAE,MAAM,GAAG;CACzB,MAAM;CAEN,cAAc;CAEd,OAAO;EAKL,MAAM;GACJ,MAAM;GACN,SAAS;GACV;EAMD,eAAe;GACb,MAAM;GACN,SAAS;GACT,YAAY,MAAU,EAA4B,SAAS,EAAM;GAClE;EAMD,OAAO;GACL,MAAM;GACN,SAAS;GACT,YAAY,MAAU,EAAmB,SAAS,EAAM;GACzD;EAMD,WAAW;GACT,MAAM;GACN,SAAS;GACV;EAMD,MAAM;GACJ,MAAM;GACN,SAAS;GACV;EAMD,uBAAuB;GACrB,MAAM;GACN,SAAS;GACV;EAOD,kBAAkB;GAChB,MAAM;GACN,SAAS;GACV;EACF;CAED,OAAO;EAKL;EAMA;EAOA;EAMA;EAMA;EACD;CAED,OAAQ;AACN,SAAO;GACL,OAAO,EAAE;GACT,kBAAkB;GAClB,qBAAqB,EAAE;GACvB,aAAa;GACb,UAAU;GACV,UAAU;GACV,mBAAmB,EAAE;GACrB,sBAAsB;GACtB,cAAc;GACf;;CAGH,UAAU;EAIR,SAAU;AACR,UAAO,EAA2B,KAAK;;EAMzC,kBAAmB;AACjB,UAAO;IACL,4BAA4B,GAAG,KAAK,OAAO,SAAS;IACpD,iCAAiC,GAAG,KAAK,OAAO,SAAS;IACzD,iCAAiC,GAAG,KAAK,OAAO,WAAW,EAAE;IAC9D;;EAMH,wBAAyB;AACvB,UAAO,KAAK,kBAAkB,oBAAoB,KAAK,kBAAkB;;EAM3E,oBAAqB;AACnB,UAAO;IACL;IACA,kBAAkB,KAAK;IACvB;KACE,4BAA4B,KAAK;KACjC,yBAAyB,KAAK;KAC9B,yBAAyB,KAAK;KAC/B;IACD,KAAK,OAAO;IACb;;EAEJ;CAED,OAAO;EACL,OAAQ;AAEN,GADA,KAAK,OAAO,EACZ,KAAK,mBAAmB;;EAG1B,MAAM;GACJ,QAAS,GAAQ;AACf,SAAK,WAAW;;GAGlB,WAAW;GACZ;EACF;CAED,UAAW;AAET,EADA,KAAK,oBAAoB,EACzB,KAAK,mBAAmB;;CAG1B,gBAAiB;AACf,OAAK,eAAe;;CAGtB,SAAS;EAIP,mBAAoB,GAAM;GACxB,IAAM,IAAQ,EAAE,EAEV,KAAe,GAAM,IAAQ,MAAM;AACvC,QAAI,EAAK,aAAa,KAAK,WAAW;KACpC,IAAM,IAAU,EAAK,aAAa,MAAM,UAAS,IAAK,EAAE;AAMxD,YALA,EAAM,KAAK,GAAG,EAAQ,KAAK,GAAM,OAAO;MACtC;MACA,OAAO,EAAK,MAAM,GAAG;MACrB,OAAO,IAAQ;MAChB,EAAE,CAAC,EACG,IAAQ,EAAQ;eACd,EAAK,aAAa,KAAK,cAAc;KAC9C,IAAI,IAAa;AAIjB,YAHA,MAAM,KAAK,EAAK,WAAW,CAAC,SAAQ,MAAS;AAC3C,UAAa,EAAY,GAAO,EAAW;OAC3C,EACK;;AAET,WAAO;;AAIT,UADA,EAAY,EAAK,EACV;;EAMT,kBAAmB,GAAM;AAIvB,UAHK,KAEW,EAAK,MAAM,UAAS,IAAK,EAAE,EAC5B,KAAK,GAAU,OAAO;IACnC,MAAM;IACN,OAAO,EAAS,MAAM,GAAG;IACzB,OAAO;IACR,EAAE,GAPe,EAAE;;EAatB,qBAAsB;AACpB,GAAI,OAAO,SAAW,OAAe,OAAO,eAC1C,KAAK,uBAAuB,OAAO,WAAW,mCAAmC,CAAC;;EAOtF,gBAAiB;AAEf,GADA,KAAK,kBAAkB,SAAQ,MAAW,aAAa,EAAQ,CAAC,EAChE,KAAK,oBAAoB,EAAE;;EAO7B,QAAS;AACH,aAAK,aAOT;QALA,KAAK,cAAc,IACnB,KAAK,WAAW,IAChB,KAAK,MAAM,QAAQ,EAGf,KAAK,yBAAyB,KAAK,sBAAsB;AAC3D,UAAK,gBAAgB;AACrB;;AAGF,QAAI,KAAK,kBAAkB,QAAQ;AACjC,UAAK,gBAAgB;AACrB;;AAIE,SAAK,yBAKT,KAAK,cAAc;;;EAOrB,QAAS;AACH,IAAC,KAAK,eAAe,KAAK,aAE9B,KAAK,WAAW,IAChB,KAAK,eAAe,EACpB,KAAK,MAAM,QAAQ;;EAOrB,SAAU;AACH,QAAK,aAEV,KAAK,WAAW,IAChB,KAAK,MAAM,SAAS,EACpB,KAAK,cAAc;;EAOrB,QAAS;AAMP,GALA,KAAK,eAAe,EACpB,KAAK,cAAc,IACnB,KAAK,WAAW,IAChB,KAAK,mBAAmB,GACxB,KAAK,sBAAsB,MAAM,KAAK,MAAM,OAAO,CAAC,KAAK,EAAE,EAC3D,KAAK;;EAOP,YAAa;AACX,QAAK,gBAAgB;;EAMvB,iBAAkB;AAGhB,GAFA,KAAK,mBAAmB,KAAK,MAAM,QACnC,KAAK,sBAAsB,KAAK,MAAM,KAAI,MAAQ,EAAK,MAAM,OAAO,EACpE,iBAAiB;AAEf,IADA,KAAK,cAAc,IACnB,KAAK,MAAM,WAAW;MACrB,EAAE;;EAMP,eAAgB;AACd,OAAI,KAAK,YAAY,KAAK,oBAAoB,KAAK,MAAM,QAAQ;AAC/D,IAAI,KAAK,oBAAoB,KAAK,MAAM,UACtC,KAAK,mBAAmB;AAE1B;;GAGF,IAAM,IAAU,iBAAiB;AAQ/B,IAPA,KAAK,oBACL,KAAK,MAAM,YAAY;KACrB,eAAe,KAAK;KACpB,YAAY,KAAK,MAAM;KACvB,UAAU,KAAK,mBAAmB,KAAK,MAAM;KAC9C,CAAC,EAEF,KAAK,oBAAoB,KAAK,mBAAmB,EAAE;MAClD,KAAK,OAAO,UAAU;AAEzB,QAAK,kBAAkB,KAAK,EAAQ;;EAMtC,oBAAqB,GAAS;AAC5B,OAAI,KAAK,YAAY,KAAW,KAAK,MAAM,OAAQ;AAEnD,QAAK,oBAAoB,KAAW;GACpC,IAAM,IAAQ,KAAK,MAAM,GAAS,MAAM,QAElC,UAAmB;AACvB,QAAI,KAAK,YAAY,KAAK,oBAAoB,MAAY,GAAO;AAC/D,KAAI,KAAK,oBAAoB,MAAY,KACvC,KAAK,cAAc;AAErB;;AAGF,SAAK,oBAAoB;IACzB,IAAM,IAAU,WAAW,GAAY,KAAK,OAAO,eAAe;AAClE,SAAK,kBAAkB,KAAK,EAAQ;;AAGtC,MAAY;;EAMd,oBAAqB;AAMnB,OALA,KAAK,cAAc,IACnB,KAAK,eAAe,EAEpB,KAAK,MAAM,WAAW,EAElB,KAAK,MAAM;IACb,IAAM,IAAU,iBAAiB;AAE/B,KADA,KAAK,OAAO,EACZ,KAAK,gBAAgB;AACnB,WAAK,OAAO;OACZ;OACD,IAAI;AAEP,SAAK,kBAAkB,KAAK,EAAQ;;;EAOxC,oBAAqB;AAEnB,OAAI,KAAK,uBAAuB;AAC9B,IAAI,KAAK,aACP,KAAK,gBAAgB,KAAK,OAAO,CAAC;AAEpC;;AAYF,GATI,KAAK,OACP,KAAK,QAAQ,KAAK,kBAAkB,KAAK,KAAK,GACrC,KAAK,MAAM,eACpB,KAAK,QAAQ,KAAK,mBAAmB,KAAK,MAAM,WAAW,GAG7D,KAAK,sBAAsB,MAAM,KAAK,MAAM,OAAO,CAAC,KAAK,EAAE,EAC3D,KAAK,mBAAmB,GAEpB,KAAK,aAAa,KAAK,MAAM,SAAS,KACxC,KAAK,gBAAgB,KAAK,OAAO,CAAC;;EAGvC;CACF;;;;;;CApfK,OAAM;;;CAwDN,OAAM;;;aAnEV,EAuEO,QAAA;EAtEL,KAAI;EACH,OAAK,EAAE,EAAA,kBAAiB;EACxB,OAAK,EAAE,EAAA,gBAAe;EACtB,qBAAmB,EAAA,wBAAwB,EAAA,OAAO,KAAA;EAClD,aAAW,EAAA,cAAW,WAAA;EACtB,cAAY,EAAA,oBAAoB,KAAA;;EAIzB,EAAA,oBAAA,GAAA,EADR,EAKO,QALP,GAKO,EADF,EAAA,iBAAgB,EAAA,EAAA,IAAA,EAAA,IAAA,GAAA;EAIL,EAAA,yBAAA,GAAA,EAAhB,EAGW,GAAA,EAAA,KAAA,GAAA,EAAA,CAAA,EAAA,EAFN,EAAA,KAAI,GAAG,KACV,EAAA,EAAa,EAAA,OAAQ,EAAA,IAAA,GAAA,GAArB,EAAqB,EAAA,QAAA,WAAA,EAAA,KAAA,GAAA,CAAA,CAAA,EAAA,GAAA,KAAA,GAAA,EAIvB,EAuCO,QAAA;GArCJ,KAAK,EAAA;GACN,OAAM;GACL,eAAa,EAAA;cAEd,EAgCW,GAAA,MAAA,EA/BiB,EAAA,QAAlB,GAAM,YAGd,EA2Ba,GAAA;WA7BJ,EAAA,aAAY,GAAI;GAGtB,MAAI,sBAAwB,EAAA;;oBAyBtB,CAtBC,IAAU,EAAA,oBAAA,GAAA,EADlB,EAuBO,QAAA;;IArBL,OAAM;IACL,qBAAmB,EAAK;IACxB,OAAK,EAAA,EAAA,gBAAoB,GAAO,CAAA;eAEjC,EAgBW,GAAA,MAAA,EAfiB,EAAK,QAAvB,GAAM,YAGd,EAWa,GAAA;YAbJ,EAAA,aAAY,GAAI,EAAO,GAAI;IAGjC,MAAI,sBAAwB,EAAA;;qBASX,CANV,IAAU,EAAA,oBAAoB,MAAA,GAAA,EADtC,EAOkB,QAAA;;KALhB,OAAM;KACL,OAAK,EAAA;sBAAwC;yBAAgD,IAAU,EAAA,OAAO,eAAc;;SAI3H,EAAI,EAAA,EAAA,IAAA,EAAA,IAAA,GAAA,CAAA,CAAA;;;;;GAUX,EAAA,MAAM,UAAM,CAAK,EAAA,QAAI,CAAK,EAAA,yBAAA,GAAA,EADnC,EAKO,QALP,GAKO,CADL,EAAQ,EAAA,QAAA,UAAA,CAAA,CAAA,IAAA,EAAA,IAAA,GAAA"}
1
+ {"version":3,"file":"motion-text.js","names":[],"sources":["../../../components/motion_text/motion_text.vue"],"sourcesContent":["<template>\n <span\n ref=\"contentRef\"\n :class=\"motionTextClasses\"\n :style=\"componentStyles\"\n :data-text-content=\"isStaticAnimationMode ? text : undefined\"\n :aria-live=\"isAnimating ? 'polite' : 'off'\"\n :aria-label=\"screenReaderText || undefined\"\n >\n <!-- Screen reader content -->\n <span\n v-if=\"screenReaderText\"\n class=\"d-motion-text__sr-only\"\n >\n {{ screenReaderText }}\n </span>\n\n <!-- Gradient-sweep and shimmer modes: Simple static text with gradient animation -->\n <template v-if=\"isStaticAnimationMode\">\n {{ text }}\n <slot v-if=\"!text\" />\n </template>\n\n <!-- Character-by-character animated content for other modes -->\n <span\n v-else\n :key=\"animationKey\"\n class=\"d-motion-text__content\"\n :aria-hidden=\"isAnimating\"\n >\n <template\n v-for=\"(word, wordIdx) in words\"\n :key=\"`${animationKey}-${wordIdx}`\"\n >\n <Transition\n :name=\"`d-motion-text-word-${animationMode}`\"\n >\n <span\n v-if=\"wordIdx < visibleWordCount\"\n class=\"d-motion-text__word\"\n :data-text-content=\"word.text\"\n :style=\"{ '--word-index': wordIdx }\"\n >\n <template\n v-for=\"(char, charIdx) in word.chars\"\n :key=\"`${animationKey}-${wordIdx}-${charIdx}`\"\n >\n <Transition\n :name=\"`d-motion-text-char-${animationMode}`\"\n >\n <span\n v-if=\"charIdx < visibleCharsPerWord[wordIdx]\"\n class=\"d-motion-text__char\"\n :style=\"{\n '--char-index': charIdx,\n '--char-delay': `${charIdx * timing.characterDelay}ms`,\n }\"\n >{{ char }}</span>\n </Transition>\n </template>\n </span>\n </Transition>\n </template>\n </span>\n\n <!-- Fallback slot content -->\n <span\n v-if=\"!words.length && !text && !isStaticAnimationMode\"\n class=\"d-motion-text__fallback\"\n >\n <slot />\n </span>\n </span>\n</template>\n\n<script>\nimport { MOTION_TEXT_ANIMATION_MODES, MOTION_TEXT_SPEEDS, MOTION_TEXT_TIMING_PRESETS } from './motion_text_constants';\n\nexport default {\n compatConfig: { MODE: 3 },\n name: 'DtMotionText',\n\n props: {\n /**\n * The text content to animate.\n * @type {string}\n */\n text: {\n type: String,\n default: '',\n },\n\n /**\n * The animation mode to use for the text reveal.\n * @values gradient-in, fade-in, slide-in, gradient-sweep, shimmer, none\n */\n animationMode: {\n type: String,\n default: 'gradient-in',\n validator: (value) => MOTION_TEXT_ANIMATION_MODES.includes(value),\n },\n\n /**\n * Animation speed.\n * @values 100, 200, 300, 400, 500\n */\n speed: {\n type: [String, Number],\n default: 300,\n validator: (value) => MOTION_TEXT_SPEEDS.includes(String(value)),\n },\n\n /**\n * Whether to start animation automatically when component is mounted.\n * @values true, false\n */\n autoStart: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Whether to loop the animation continuously.\n * @values true, false\n */\n loop: {\n type: Boolean,\n default: false,\n },\n\n /**\n * Whether to respect the user's prefers-reduced-motion system setting.\n * @values true, false\n */\n respectsReducedMotion: {\n type: Boolean,\n default: true,\n },\n\n /**\n * Alternative text for screen readers. If provided, this will be announced\n * instead of the animated text.\n * @type {string}\n */\n screenReaderText: {\n type: String,\n default: '',\n },\n },\n\n emits: [\n /**\n * Emitted when the animation starts.\n * @event start\n */\n 'start',\n\n /**\n * Emitted when the animation completes.\n * @event complete\n */\n 'complete',\n\n /**\n * Emitted during animation progress.\n * @event progress\n * @type {{ wordsComplete: number, totalWords: number, progress: number }}\n */\n 'progress',\n\n /**\n * Emitted when the animation is paused.\n * @event pause\n */\n 'pause',\n\n /**\n * Emitted when the animation resumes.\n * @event resume\n */\n 'resume',\n ],\n\n data () {\n return {\n words: [],\n visibleWordCount: 0,\n visibleCharsPerWord: [],\n isAnimating: false,\n isPaused: false,\n isLooped: false,\n animationTimeouts: [],\n prefersReducedMotion: false,\n animationKey: 0,\n };\n },\n\n computed: {\n /**\n * Get timing preset based on speed prop\n */\n timing () {\n return MOTION_TEXT_TIMING_PRESETS[String(this.speed)];\n },\n\n /**\n * Computed styles with timing CSS variables\n */\n componentStyles () {\n return {\n '--d-motion-text-duration': `${this.timing.duration}ms`,\n '--d-motion-text-char-duration': `${this.timing.duration}ms`,\n '--d-motion-text-word-duration': `${this.timing.duration * 2}ms`,\n };\n },\n\n /**\n * Check if current animation mode is static (gradient-sweep or shimmer)\n */\n isStaticAnimationMode () {\n return this.animationMode === 'gradient-sweep' || this.animationMode === 'shimmer';\n },\n\n /**\n * Computed classes for the motion text element\n */\n motionTextClasses () {\n return [\n 'd-motion-text',\n `d-motion-text--${this.animationMode}`,\n {\n 'd-motion-text--animating': this.isAnimating,\n 'd-motion-text--paused': this.isPaused,\n 'd-motion-text--looped': this.isLooped,\n },\n ];\n },\n },\n\n watch: {\n text () {\n this.reset();\n this.initializeContent();\n },\n\n loop: {\n handler (newVal) {\n this.isLooped = newVal;\n },\n\n immediate: true,\n },\n },\n\n mounted () {\n this.checkReducedMotion();\n this.initializeContent();\n },\n\n beforeUnmount () {\n this.clearTimeouts();\n },\n\n methods: {\n /**\n * Self-contained text processing from DOM nodes\n */\n processTextToChars (node) {\n const words = [];\n\n const processNode = (node, index = 0) => {\n if (node.nodeType === Node.TEXT_NODE) {\n const matches = node.textContent?.match(/\\S+\\s*/g) || [];\n words.push(...matches.map((text, i) => ({\n text,\n chars: text.split(''),\n index: index + i,\n })));\n return index + matches.length;\n } else if (node.nodeType === Node.ELEMENT_NODE) {\n let currentIdx = index;\n Array.from(node.childNodes).forEach(child => {\n currentIdx = processNode(child, currentIdx);\n });\n return currentIdx;\n }\n return index;\n };\n\n processNode(node);\n return words;\n },\n\n /**\n * Process direct text prop into word/character data\n */\n processDirectText (text) {\n if (!text) return [];\n\n const matches = text.match(/\\S+\\s*/g) || [];\n return matches.map((wordText, i) => ({\n text: wordText,\n chars: wordText.split(''),\n index: i,\n }));\n },\n\n /**\n * Check for reduced motion preference\n */\n checkReducedMotion () {\n if (typeof window !== 'undefined' && window.matchMedia) {\n this.prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n },\n\n /**\n * Clear all animation timeouts\n */\n clearTimeouts () {\n this.animationTimeouts.forEach(timeout => clearTimeout(timeout));\n this.animationTimeouts = [];\n },\n\n /**\n * Start the animation\n * @public\n */\n start () {\n if (this.isAnimating) return;\n\n this.isAnimating = true;\n this.isPaused = false;\n this.$emit('start');\n\n // Skip animation if reduced motion is preferred and enabled\n if (this.respectsReducedMotion && this.prefersReducedMotion) {\n this.showAllContent();\n return;\n }\n\n if (this.animationMode === 'none') {\n this.showAllContent();\n return;\n }\n\n // For gradient-sweep and shimmer modes, just mark as animating (CSS handles the animation)\n if (this.isStaticAnimationMode) {\n return;\n }\n\n // Start the word-by-word animation for \"-in\" modes\n this.showNextWord();\n },\n\n /**\n * Pause the animation\n * @public\n */\n pause () {\n if (!this.isAnimating || this.isPaused) return;\n\n this.isPaused = true;\n this.clearTimeouts();\n this.$emit('pause');\n },\n\n /**\n * Resume the animation\n * @public\n */\n resume () {\n if (!this.isPaused) return;\n\n this.isPaused = false;\n this.$emit('resume');\n this.showNextWord();\n },\n\n /**\n * Reset the animation to initial state\n * @public\n */\n reset () {\n this.clearTimeouts();\n this.isAnimating = false;\n this.isPaused = false;\n this.visibleWordCount = 0;\n this.visibleCharsPerWord = Array(this.words.length).fill(0);\n this.animationKey++;\n },\n\n /**\n * Skip to the end of the animation\n * @public\n */\n skipToEnd () {\n this.showAllContent();\n },\n\n /**\n * Show all content immediately\n */\n showAllContent () {\n this.visibleWordCount = this.words.length;\n this.visibleCharsPerWord = this.words.map(word => word.chars.length);\n setTimeout(() => {\n this.isAnimating = false;\n this.$emit('complete');\n }, 0);\n },\n\n /**\n * Show next word in sequence\n */\n showNextWord () {\n if (this.isPaused || this.visibleWordCount >= this.words.length) {\n if (this.visibleWordCount >= this.words.length) {\n this.completeAnimation();\n }\n return;\n }\n\n const timeout = setTimeout(() => {\n this.visibleWordCount++;\n this.$emit('progress', {\n wordsComplete: this.visibleWordCount,\n totalWords: this.words.length,\n progress: this.visibleWordCount / this.words.length,\n });\n\n this.animateCharsForWord(this.visibleWordCount - 1);\n }, this.timing.wordDelay);\n\n this.animationTimeouts.push(timeout);\n },\n\n /**\n * Animate characters for a specific word\n */\n animateCharsForWord (wordIdx) {\n if (this.isPaused || wordIdx >= this.words.length) return;\n\n this.visibleCharsPerWord[wordIdx] = 0;\n const chars = this.words[wordIdx].chars.length;\n\n const revealChar = () => {\n if (this.isPaused || this.visibleCharsPerWord[wordIdx] >= chars) {\n if (this.visibleCharsPerWord[wordIdx] >= chars) {\n this.showNextWord();\n }\n return;\n }\n\n this.visibleCharsPerWord[wordIdx]++;\n const timeout = setTimeout(revealChar, this.timing.characterDelay);\n this.animationTimeouts.push(timeout);\n };\n\n revealChar();\n },\n\n /**\n * Complete the animation\n */\n completeAnimation () {\n this.isAnimating = false;\n this.clearTimeouts();\n\n this.$emit('complete');\n\n if (this.loop) {\n const timeout = setTimeout(() => {\n this.reset();\n this.$nextTick(() => {\n this.start();\n });\n }, 500);\n\n this.animationTimeouts.push(timeout);\n }\n },\n\n /**\n * Initialize content based on text prop or slot content\n */\n initializeContent () {\n // For gradient-sweep and shimmer modes, skip word/character processing\n if (this.isStaticAnimationMode) {\n if (this.autoStart) {\n this.$nextTick(() => this.start());\n }\n return;\n }\n\n if (this.text) {\n this.words = this.processDirectText(this.text);\n } else if (this.$refs.contentRef) {\n this.words = this.processTextToChars(this.$refs.contentRef);\n }\n\n this.visibleCharsPerWord = Array(this.words.length).fill(0);\n this.visibleWordCount = 0;\n\n if (this.autoStart && this.words.length > 0) {\n this.$nextTick(() => this.start());\n }\n },\n },\n};\n</script>\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../../chunk-Bmb41Sf3.cjs`);const e=require(`../../_plugin-vue_export-helper-D8jCH6HB.cjs`),t=require(`../../localization/index.cjs`),n=require(`../button/button.cjs`),r=require(`../../shared/sr_only_close_button.cjs`);let i=require(`vue`);var a={compatConfig:{MODE:3},name:`DtNoticeAction`,components:{DtIconClose:require(`@dialpad/dialtone-icons/vue3`).DtIconClose,DtButton:n.default,SrOnlyCloseButton:r.default},props:{hideClose:{type:Boolean,default:!1},hideAction:{type:Boolean,default:!1}},emits:[`close`],data(){return{i18n:new t.DialtoneLocalization}},computed:{closeButtonTitle(){return this.i18n.$t(`DIALTONE_CLOSE_BUTTON`)}},mounted(){this.hideClose||(this.lastFocusedElement=document.activeElement)},beforeUnmount(){this.lastFocusedElement?.focus()},methods:{close(){this.$emit(`close`)}}},o={class:`d-notice__actions`,"data-qa":`notice-content-actions`};function s(e,t,n,r,a,s){let c=(0,i.resolveComponent)(`dt-icon-close`),l=(0,i.resolveComponent)(`dt-button`),u=(0,i.resolveComponent)(`sr-only-close-button`);return(0,i.openBlock)(),(0,i.createElementBlock)(`div`,o,[n.hideAction?(0,i.createCommentVNode)(``,!0):(0,i.renderSlot)(e.$slots,`default`,{key:0}),n.hideClose?((0,i.openBlock)(),(0,i.createBlock)(u,{key:2,onClose:s.close},null,8,[`onClose`])):((0,i.openBlock)(),(0,i.createBlock)(l,{key:1,ref:`closeButton`,circle:!0,"data-qa":`dt-notice-action-close-button`,importance:`clear`,size:`sm`,"aria-label":s.closeButtonTitle,title:s.closeButtonTitle,onClick:s.close},{icon:(0,i.withCtx)(()=>[(0,i.createVNode)(c,{size:`200`})]),_:1},8,[`aria-label`,`title`,`onClick`]))])}var c=e.t(a,[[`render`,s]]);exports.default=c;
1
+ Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}}),require(`../../chunk-Bmb41Sf3.cjs`);const e=require(`../../_plugin-vue_export-helper-D8jCH6HB.cjs`),t=require(`../../localization/index.cjs`),n=require(`../button/button.cjs`),r=require(`../../shared/sr_only_close_button.cjs`);let i=require(`vue`);var a={compatConfig:{MODE:3},name:`DtNoticeAction`,components:{DtIconClose:require(`@dialpad/dialtone-icons/vue`).DtIconClose,DtButton:n.default,SrOnlyCloseButton:r.default},props:{showClose:{type:Boolean,default:!0},showAction:{type:Boolean,default:!0}},emits:[`close`],data(){return{i18n:new t.DialtoneLocalization}},computed:{closeButtonTitle(){return this.i18n.$t(`DIALTONE_CLOSE_BUTTON`)}},mounted(){this.showClose&&(this.lastFocusedElement=document.activeElement)},beforeUnmount(){this.lastFocusedElement?.focus()},methods:{close(){this.$emit(`close`)}}},o={class:`d-notice__actions`,"data-qa":`notice-content-actions`};function s(e,t,n,r,a,s){let c=(0,i.resolveComponent)(`dt-icon-close`),l=(0,i.resolveComponent)(`dt-button`),u=(0,i.resolveComponent)(`sr-only-close-button`);return(0,i.openBlock)(),(0,i.createElementBlock)(`div`,o,[n.showAction?(0,i.renderSlot)(e.$slots,`default`,{key:0}):(0,i.createCommentVNode)(``,!0),n.showClose?((0,i.openBlock)(),(0,i.createBlock)(l,{key:1,ref:`closeButton`,"data-qa":`dt-notice-action-close-button`,importance:`clear`,kind:`muted`,size:200,"aria-label":s.closeButtonTitle,title:s.closeButtonTitle,onClick:s.close},{startIcon:(0,i.withCtx)(()=>[(0,i.createVNode)(c,{size:`200`})]),_:1},8,[`aria-label`,`title`,`onClick`])):((0,i.openBlock)(),(0,i.createBlock)(u,{key:2,onClose:s.close},null,8,[`onClose`]))])}var c=e.t(a,[[`render`,s]]);exports.default=c;
2
2
  //# sourceMappingURL=notice-action.cjs.map