vft 0.0.9 → 0.0.13

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 (607) hide show
  1. package/dist/index.css +1 -1
  2. package/es/_virtual/_plugin-vue_export-helper.mjs +10 -0
  3. package/es/_virtual/_plugin-vue_export-helper.mjs.map +1 -0
  4. package/es/component.mjs +16 -3
  5. package/es/component.mjs.map +1 -1
  6. package/es/components/avatar/avatar.vue2.mjs +18 -14
  7. package/es/components/avatar/avatar.vue2.mjs.map +1 -1
  8. package/es/components/back-top/back-top.vue2.mjs +19 -10
  9. package/es/components/back-top/back-top.vue2.mjs.map +1 -1
  10. package/es/components/collapse-transition/index.d.ts +4 -0
  11. package/es/components/collapse-transition/index.mjs +10 -0
  12. package/es/components/collapse-transition/index.mjs.map +1 -0
  13. package/es/components/collapse-transition/src/collapse-transition.vue.d.ts +2 -0
  14. package/es/components/collapse-transition/src/collapse-transition.vue.mjs +5 -0
  15. package/es/components/collapse-transition/src/collapse-transition.vue.mjs.map +1 -0
  16. package/es/components/collapse-transition/src/collapse-transition.vue2.mjs +47 -0
  17. package/es/components/collapse-transition/src/collapse-transition.vue2.mjs.map +1 -0
  18. package/es/components/collapse-transition/style/css.d.ts +0 -0
  19. package/es/components/collapse-transition/style/css.mjs +3 -0
  20. package/es/components/collapse-transition/style/css.mjs.map +1 -0
  21. package/es/components/collapse-transition/style/index.d.ts +0 -0
  22. package/es/components/collapse-transition/style/index.mjs +3 -0
  23. package/es/components/collapse-transition/style/index.mjs.map +1 -0
  24. package/es/components/divider/divider.vue2.mjs +14 -10
  25. package/es/components/divider/divider.vue2.mjs.map +1 -1
  26. package/es/components/empty/empty.vue2.mjs +16 -12
  27. package/es/components/empty/empty.vue2.mjs.map +1 -1
  28. package/es/components/focus-trap/focus-trap.vue.d.ts +32 -0
  29. package/es/components/focus-trap/focus-trap.vue.mjs +11 -0
  30. package/es/components/focus-trap/focus-trap.vue.mjs.map +1 -0
  31. package/es/components/focus-trap/focus-trap.vue2.mjs +160 -0
  32. package/es/components/focus-trap/focus-trap.vue2.mjs.map +1 -0
  33. package/es/components/focus-trap/index.d.ts +5 -0
  34. package/es/components/focus-trap/index.mjs +26 -0
  35. package/es/components/focus-trap/index.mjs.map +1 -0
  36. package/es/components/focus-trap/tokens.d.ts +13 -0
  37. package/es/components/focus-trap/tokens.mjs +18 -0
  38. package/es/components/focus-trap/tokens.mjs.map +1 -0
  39. package/es/components/focus-trap/utils.d.ts +29 -0
  40. package/es/components/focus-trap/utils.mjs +90 -0
  41. package/es/components/focus-trap/utils.mjs.map +1 -0
  42. package/es/components/icon/icon.vue2.mjs +19 -15
  43. package/es/components/icon/icon.vue2.mjs.map +1 -1
  44. package/es/components/index.d.ts +5 -0
  45. package/es/components/index.mjs +32 -13
  46. package/es/components/index.mjs.map +1 -1
  47. package/es/components/menu/index.d.ts +504 -0
  48. package/es/components/menu/index.mjs +21 -0
  49. package/es/components/menu/index.mjs.map +1 -0
  50. package/es/components/menu/menu-collapse-transition.vue.d.ts +5 -0
  51. package/es/components/menu/menu-collapse-transition.vue.mjs +16 -0
  52. package/es/components/menu/menu-collapse-transition.vue.mjs.map +1 -0
  53. package/es/components/menu/menu-collapse-transition.vue2.mjs +34 -0
  54. package/es/components/menu/menu-collapse-transition.vue2.mjs.map +1 -0
  55. package/es/components/menu/menu-item-group.vue.d.ts +13 -0
  56. package/es/components/menu/menu-item-group.vue.mjs +5 -0
  57. package/es/components/menu/menu-item-group.vue.mjs.map +1 -0
  58. package/es/components/menu/menu-item-group.vue2.mjs +39 -0
  59. package/es/components/menu/menu-item-group.vue2.mjs.map +1 -0
  60. package/es/components/menu/menu-item.vue.d.ts +81 -0
  61. package/es/components/menu/menu-item.vue.mjs +5 -0
  62. package/es/components/menu/menu-item.vue.mjs.map +1 -0
  63. package/es/components/menu/menu-item.vue2.mjs +115 -0
  64. package/es/components/menu/menu-item.vue2.mjs.map +1 -0
  65. package/es/components/menu/menu.vue.d.ts +109 -0
  66. package/es/components/menu/menu.vue.mjs +5 -0
  67. package/es/components/menu/menu.vue.mjs.map +1 -0
  68. package/es/components/menu/menu.vue2.mjs +207 -0
  69. package/es/components/menu/menu.vue2.mjs.map +1 -0
  70. package/es/components/menu/style/css.d.ts +0 -0
  71. package/es/components/menu/style/css.mjs +3 -0
  72. package/es/components/menu/style/css.mjs.map +1 -0
  73. package/es/components/menu/style/index.d.ts +0 -0
  74. package/es/components/menu/style/index.mjs +3 -0
  75. package/es/components/menu/style/index.mjs.map +1 -0
  76. package/es/components/menu/sub-menu.vue.d.ts +112 -0
  77. package/es/components/menu/sub-menu.vue.mjs +5 -0
  78. package/es/components/menu/sub-menu.vue.mjs.map +1 -0
  79. package/es/components/menu/sub-menu.vue2.mjs +232 -0
  80. package/es/components/menu/sub-menu.vue2.mjs.map +1 -0
  81. package/es/components/menu/types.d.ts +59 -0
  82. package/es/components/menu/types.mjs +2 -0
  83. package/es/components/menu/types.mjs.map +1 -0
  84. package/es/components/menu/use-menu-css-var.d.ts +1 -0
  85. package/es/components/menu/use-menu-css-var.mjs +18 -0
  86. package/es/components/menu/use-menu-css-var.mjs.map +1 -0
  87. package/es/components/menu/use-menu.d.ts +14 -0
  88. package/es/components/menu/use-menu.mjs +23 -0
  89. package/es/components/menu/use-menu.mjs.map +1 -0
  90. package/es/components/menu/utils/menu-bar.d.ts +7 -0
  91. package/es/components/menu/utils/menu-bar.mjs +16 -0
  92. package/es/components/menu/utils/menu-bar.mjs.map +1 -0
  93. package/es/components/menu/utils/menu-item.d.ts +9 -0
  94. package/es/components/menu/utils/menu-item.mjs +42 -0
  95. package/es/components/menu/utils/menu-item.mjs.map +1 -0
  96. package/es/components/menu/utils/submenu.d.ts +12 -0
  97. package/es/components/menu/utils/submenu.mjs +45 -0
  98. package/es/components/menu/utils/submenu.mjs.map +1 -0
  99. package/es/components/menu-item/style/css.d.ts +0 -0
  100. package/es/components/menu-item/style/css.mjs +3 -0
  101. package/es/components/menu-item/style/css.mjs.map +1 -0
  102. package/es/components/menu-item/style/index.d.ts +0 -0
  103. package/es/components/menu-item/style/index.mjs +3 -0
  104. package/es/components/menu-item/style/index.mjs.map +1 -0
  105. package/es/components/menu-item-group/style/css.d.ts +0 -0
  106. package/es/components/menu-item-group/style/css.mjs +3 -0
  107. package/es/components/menu-item-group/style/css.mjs.map +1 -0
  108. package/es/components/menu-item-group/style/index.d.ts +0 -0
  109. package/es/components/menu-item-group/style/index.mjs +3 -0
  110. package/es/components/menu-item-group/style/index.mjs.map +1 -0
  111. package/es/components/popover/directive.d.ts +4 -0
  112. package/es/components/popover/directive.mjs +16 -0
  113. package/es/components/popover/directive.mjs.map +1 -0
  114. package/es/components/popover/index.d.ts +181 -0
  115. package/es/components/popover/index.mjs +11 -0
  116. package/es/components/popover/index.mjs.map +1 -0
  117. package/es/components/popover/popover.vue.d.ts +187 -0
  118. package/es/components/popover/popover.vue.mjs +5 -0
  119. package/es/components/popover/popover.vue.mjs.map +1 -0
  120. package/es/components/popover/popover.vue2.mjs +117 -0
  121. package/es/components/popover/popover.vue2.mjs.map +1 -0
  122. package/es/components/popover/style/css.d.ts +0 -0
  123. package/es/components/popover/style/css.mjs +4 -0
  124. package/es/components/popover/style/css.mjs.map +1 -0
  125. package/es/components/popover/style/index.d.ts +0 -0
  126. package/es/components/popover/style/index.mjs +4 -0
  127. package/es/components/popover/style/index.mjs.map +1 -0
  128. package/es/components/popover/types.mjs +2 -0
  129. package/es/components/popover/types.mjs.map +1 -0
  130. package/es/components/popper/arrow.vue.d.ts +18 -0
  131. package/es/components/popper/arrow.vue.mjs +5 -0
  132. package/es/components/popper/arrow.vue.mjs.map +1 -0
  133. package/es/components/popper/arrow.vue2.mjs +47 -0
  134. package/es/components/popper/arrow.vue2.mjs.map +1 -0
  135. package/es/components/popper/composables/index.d.ts +3 -0
  136. package/es/components/popper/composables/index.mjs +9 -0
  137. package/es/components/popper/composables/index.mjs.map +1 -0
  138. package/es/components/popper/composables/use-content-dom.d.ts +16 -0
  139. package/es/components/popper/composables/use-content-dom.mjs +43 -0
  140. package/es/components/popper/composables/use-content-dom.mjs.map +1 -0
  141. package/es/components/popper/composables/use-content.d.ts +77 -0
  142. package/es/components/popper/composables/use-content.mjs +64 -0
  143. package/es/components/popper/composables/use-content.mjs.map +1 -0
  144. package/es/components/popper/composables/use-focus-trap.d.ts +11 -0
  145. package/es/components/popper/composables/use-focus-trap.mjs +28 -0
  146. package/es/components/popper/composables/use-focus-trap.mjs.map +1 -0
  147. package/es/components/popper/constants.d.ts +24 -0
  148. package/es/components/popper/constants.mjs +6 -0
  149. package/es/components/popper/constants.mjs.map +1 -0
  150. package/es/components/popper/content.vue.d.ts +222 -0
  151. package/es/components/popper/content.vue.mjs +5 -0
  152. package/es/components/popper/content.vue.mjs.map +1 -0
  153. package/es/components/popper/content.vue2.mjs +144 -0
  154. package/es/components/popper/content.vue2.mjs.map +1 -0
  155. package/es/components/popper/index.d.ts +18 -0
  156. package/es/components/popper/index.mjs +17 -0
  157. package/es/components/popper/index.mjs.map +1 -0
  158. package/es/components/popper/popper.vue.d.ts +13 -0
  159. package/es/components/popper/popper.vue.mjs +5 -0
  160. package/es/components/popper/popper.vue.mjs.map +1 -0
  161. package/es/components/popper/popper.vue2.mjs +40 -0
  162. package/es/components/popper/popper.vue2.mjs.map +1 -0
  163. package/es/components/popper/style/css.d.ts +0 -0
  164. package/es/components/popper/style/css.mjs +3 -0
  165. package/es/components/popper/style/css.mjs.map +1 -0
  166. package/es/components/popper/style/index.d.ts +0 -0
  167. package/es/components/popper/style/index.mjs +3 -0
  168. package/es/components/popper/style/index.mjs.map +1 -0
  169. package/es/components/popper/trigger.vue.d.ts +99 -0
  170. package/es/components/popper/trigger.vue.mjs +5 -0
  171. package/es/components/popper/trigger.vue.mjs.map +1 -0
  172. package/es/components/popper/trigger.vue2.mjs +118 -0
  173. package/es/components/popper/trigger.vue2.mjs.map +1 -0
  174. package/es/components/popper/types.d.ts +45 -0
  175. package/es/components/popper/types.mjs +2 -0
  176. package/es/components/popper/types.mjs.map +1 -0
  177. package/es/components/popper/utils.d.ts +49 -0
  178. package/es/components/popper/utils.mjs +56 -0
  179. package/es/components/popper/utils.mjs.map +1 -0
  180. package/es/components/result/result.vue2.mjs +30 -21
  181. package/es/components/result/result.vue2.mjs.map +1 -1
  182. package/es/components/slot/index.d.ts +2 -0
  183. package/es/components/slot/index.mjs +6 -0
  184. package/es/components/slot/index.mjs.map +1 -0
  185. package/es/components/slot/only-child.d.ts +7 -0
  186. package/es/components/slot/only-child.mjs +60 -0
  187. package/es/components/slot/only-child.mjs.map +1 -0
  188. package/es/components/sub-menu/style/css.d.ts +0 -0
  189. package/es/components/sub-menu/style/css.mjs +3 -0
  190. package/es/components/sub-menu/style/css.mjs.map +1 -0
  191. package/es/components/sub-menu/style/index.d.ts +0 -0
  192. package/es/components/sub-menu/style/index.mjs +3 -0
  193. package/es/components/sub-menu/style/index.mjs.map +1 -0
  194. package/es/components/tabs/index.d.ts +21 -103
  195. package/es/components/tabs/index.mjs +5 -5
  196. package/es/components/tabs/index.mjs.map +1 -1
  197. package/es/components/tabs/tab-bar.vue2.mjs +14 -11
  198. package/es/components/tabs/tab-bar.vue2.mjs.map +1 -1
  199. package/es/components/tabs/tab-nav.vue2.mjs +91 -75
  200. package/es/components/tabs/tab-nav.vue2.mjs.map +1 -1
  201. package/es/components/tabs/tab-pane.vue2.mjs +32 -26
  202. package/es/components/tabs/tab-pane.vue2.mjs.map +1 -1
  203. package/es/components/tabs/tabs.vue2.mjs +52 -47
  204. package/es/components/tabs/tabs.vue2.mjs.map +1 -1
  205. package/es/components/tooltip/constants.d.ts +18 -0
  206. package/es/components/tooltip/constants.mjs +5 -0
  207. package/es/components/tooltip/constants.mjs.map +1 -0
  208. package/es/components/tooltip/content.vue.d.ts +268 -0
  209. package/es/components/tooltip/content.vue.mjs +5 -0
  210. package/es/components/tooltip/content.vue.mjs.map +1 -0
  211. package/es/components/tooltip/content.vue2.mjs +175 -0
  212. package/es/components/tooltip/content.vue2.mjs.map +1 -0
  213. package/es/components/tooltip/index.d.ts +396 -0
  214. package/es/components/tooltip/index.mjs +11 -0
  215. package/es/components/tooltip/index.mjs.map +1 -0
  216. package/es/components/tooltip/style/css.d.ts +0 -0
  217. package/es/components/tooltip/style/css.mjs +4 -0
  218. package/es/components/tooltip/style/css.mjs.map +1 -0
  219. package/es/components/tooltip/style/index.d.ts +0 -0
  220. package/es/components/tooltip/style/index.mjs +4 -0
  221. package/es/components/tooltip/style/index.mjs.map +1 -0
  222. package/es/components/tooltip/tooltip.vue.d.ts +470 -0
  223. package/es/components/tooltip/tooltip.vue.mjs +5 -0
  224. package/es/components/tooltip/tooltip.vue.mjs.map +1 -0
  225. package/es/components/tooltip/tooltip.vue2.mjs +224 -0
  226. package/es/components/tooltip/tooltip.vue2.mjs.map +1 -0
  227. package/es/components/tooltip/trigger.vue.d.ts +54 -0
  228. package/es/components/tooltip/trigger.vue.mjs +5 -0
  229. package/es/components/tooltip/trigger.vue.mjs.map +1 -0
  230. package/es/components/tooltip/trigger.vue2.mjs +91 -0
  231. package/es/components/tooltip/trigger.vue2.mjs.map +1 -0
  232. package/es/components/tooltip/types.d.ts +53 -0
  233. package/es/components/tooltip/types.mjs +2 -0
  234. package/es/components/tooltip/types.mjs.map +1 -0
  235. package/es/components/tooltip/utils.d.ts +11 -0
  236. package/es/components/tooltip/utils.mjs +19 -0
  237. package/es/components/tooltip/utils.mjs.map +1 -0
  238. package/es/hooks/index.d.ts +8 -0
  239. package/es/hooks/index.mjs +32 -6
  240. package/es/hooks/index.mjs.map +1 -1
  241. package/es/hooks/use-delayed-toggle/index.d.ts +10 -0
  242. package/es/hooks/use-delayed-toggle/index.mjs +21 -0
  243. package/es/hooks/use-delayed-toggle/index.mjs.map +1 -0
  244. package/es/hooks/use-forward-ref/index.d.ts +9 -0
  245. package/es/hooks/use-forward-ref/index.mjs +24 -0
  246. package/es/hooks/use-forward-ref/index.mjs.map +1 -0
  247. package/es/hooks/use-id/index.d.ts +9 -0
  248. package/es/hooks/use-id/index.mjs +29 -0
  249. package/es/hooks/use-id/index.mjs.map +1 -0
  250. package/es/hooks/use-model-toggle/index.d.ts +25 -0
  251. package/es/hooks/use-model-toggle/index.mjs +62 -0
  252. package/es/hooks/use-model-toggle/index.mjs.map +1 -0
  253. package/es/hooks/use-namespace/index.d.ts +5 -2
  254. package/es/hooks/use-namespace/index.mjs +32 -27
  255. package/es/hooks/use-namespace/index.mjs.map +1 -1
  256. package/es/hooks/use-popper/index.d.ts +78 -0
  257. package/es/hooks/use-popper/index.mjs +98 -0
  258. package/es/hooks/use-popper/index.mjs.map +1 -0
  259. package/es/hooks/use-popper-container/index.d.ts +5 -0
  260. package/es/hooks/use-popper-container/index.mjs +27 -0
  261. package/es/hooks/use-popper-container/index.mjs.map +1 -0
  262. package/es/hooks/use-timeout/index.d.ts +4 -0
  263. package/es/hooks/use-timeout/index.mjs +15 -0
  264. package/es/hooks/use-timeout/index.mjs.map +1 -0
  265. package/es/hooks/use-z-index/index.d.ts +7 -0
  266. package/es/hooks/use-z-index/index.mjs +18 -0
  267. package/es/hooks/use-z-index/index.mjs.map +1 -0
  268. package/es/index.mjs +92 -47
  269. package/es/index.mjs.map +1 -1
  270. package/es/package.json.mjs +1 -1
  271. package/es/style.css +1 -1
  272. package/es/theme-style/src/collapse-transition.scss.mjs +5 -0
  273. package/es/theme-style/src/collapse-transition.scss.mjs.map +1 -0
  274. package/es/theme-style/src/menu-item-group.scss.mjs +5 -0
  275. package/es/theme-style/src/menu-item-group.scss.mjs.map +1 -0
  276. package/es/theme-style/src/menu-item.scss.mjs +5 -0
  277. package/es/theme-style/src/menu-item.scss.mjs.map +1 -0
  278. package/es/theme-style/src/menu.scss.mjs +5 -0
  279. package/es/theme-style/src/menu.scss.mjs.map +1 -0
  280. package/es/theme-style/src/popover.scss.mjs +5 -0
  281. package/es/theme-style/src/popover.scss.mjs.map +1 -0
  282. package/es/theme-style/src/popper.scss.mjs +5 -0
  283. package/es/theme-style/src/popper.scss.mjs.map +1 -0
  284. package/es/theme-style/src/sub-menu.scss.mjs +5 -0
  285. package/es/theme-style/src/sub-menu.scss.mjs.map +1 -0
  286. package/es/theme-style/src/tooltip.scss.mjs +5 -0
  287. package/es/theme-style/src/tooltip.scss.mjs.map +1 -0
  288. package/es/utils/event.d.ts +6 -0
  289. package/es/utils/event.mjs +10 -0
  290. package/es/utils/event.mjs.map +1 -0
  291. package/es/utils/index.d.ts +2 -0
  292. package/es/utils/index.mjs +24 -19
  293. package/es/utils/index.mjs.map +1 -1
  294. package/es/utils/typescript.d.ts +12 -0
  295. package/es/utils/typescript.mjs +5 -0
  296. package/es/utils/typescript.mjs.map +1 -0
  297. package/lib/_virtual/_plugin-vue_export-helper.js +2 -0
  298. package/lib/_virtual/_plugin-vue_export-helper.js.map +1 -0
  299. package/lib/component.js +1 -1
  300. package/lib/component.js.map +1 -1
  301. package/lib/components/avatar/avatar.vue2.js +1 -1
  302. package/lib/components/avatar/avatar.vue2.js.map +1 -1
  303. package/lib/components/back-top/back-top.vue2.js +1 -1
  304. package/lib/components/back-top/back-top.vue2.js.map +1 -1
  305. package/lib/components/collapse-transition/index.d.ts +4 -0
  306. package/lib/components/collapse-transition/index.js +2 -0
  307. package/lib/components/collapse-transition/index.js.map +1 -0
  308. package/lib/components/collapse-transition/src/collapse-transition.vue.d.ts +2 -0
  309. package/lib/components/collapse-transition/src/collapse-transition.vue.js +2 -0
  310. package/lib/components/collapse-transition/src/collapse-transition.vue.js.map +1 -0
  311. package/lib/components/collapse-transition/src/collapse-transition.vue2.js +2 -0
  312. package/lib/components/collapse-transition/src/collapse-transition.vue2.js.map +1 -0
  313. package/lib/components/collapse-transition/style/css.d.ts +0 -0
  314. package/lib/components/collapse-transition/style/css.js +2 -0
  315. package/lib/components/collapse-transition/style/css.js.map +1 -0
  316. package/lib/components/collapse-transition/style/index.d.ts +0 -0
  317. package/lib/components/collapse-transition/style/index.js +2 -0
  318. package/lib/components/collapse-transition/style/index.js.map +1 -0
  319. package/lib/components/divider/divider.vue2.js +1 -1
  320. package/lib/components/divider/divider.vue2.js.map +1 -1
  321. package/lib/components/empty/empty.vue2.js +1 -1
  322. package/lib/components/empty/empty.vue2.js.map +1 -1
  323. package/lib/components/focus-trap/focus-trap.vue.d.ts +32 -0
  324. package/lib/components/focus-trap/focus-trap.vue.js +2 -0
  325. package/lib/components/focus-trap/focus-trap.vue.js.map +1 -0
  326. package/lib/components/focus-trap/focus-trap.vue2.js +2 -0
  327. package/lib/components/focus-trap/focus-trap.vue2.js.map +1 -0
  328. package/lib/components/focus-trap/index.d.ts +5 -0
  329. package/lib/components/focus-trap/index.js +2 -0
  330. package/lib/components/focus-trap/index.js.map +1 -0
  331. package/lib/components/focus-trap/tokens.d.ts +13 -0
  332. package/lib/components/focus-trap/tokens.js +2 -0
  333. package/lib/components/focus-trap/tokens.js.map +1 -0
  334. package/lib/components/focus-trap/utils.d.ts +29 -0
  335. package/lib/components/focus-trap/utils.js +2 -0
  336. package/lib/components/focus-trap/utils.js.map +1 -0
  337. package/lib/components/icon/icon.vue2.js +1 -1
  338. package/lib/components/icon/icon.vue2.js.map +1 -1
  339. package/lib/components/index.d.ts +5 -0
  340. package/lib/components/index.js +1 -1
  341. package/lib/components/menu/index.d.ts +504 -0
  342. package/lib/components/menu/index.js +2 -0
  343. package/lib/components/menu/index.js.map +1 -0
  344. package/lib/components/menu/menu-collapse-transition.vue.d.ts +5 -0
  345. package/lib/components/menu/menu-collapse-transition.vue.js +2 -0
  346. package/lib/components/menu/menu-collapse-transition.vue.js.map +1 -0
  347. package/lib/components/menu/menu-collapse-transition.vue2.js +2 -0
  348. package/lib/components/menu/menu-collapse-transition.vue2.js.map +1 -0
  349. package/lib/components/menu/menu-item-group.vue.d.ts +13 -0
  350. package/lib/components/menu/menu-item-group.vue.js +2 -0
  351. package/lib/components/menu/menu-item-group.vue.js.map +1 -0
  352. package/lib/components/menu/menu-item-group.vue2.js +2 -0
  353. package/lib/components/menu/menu-item-group.vue2.js.map +1 -0
  354. package/lib/components/menu/menu-item.vue.d.ts +81 -0
  355. package/lib/components/menu/menu-item.vue.js +2 -0
  356. package/lib/components/menu/menu-item.vue.js.map +1 -0
  357. package/lib/components/menu/menu-item.vue2.js +2 -0
  358. package/lib/components/menu/menu-item.vue2.js.map +1 -0
  359. package/lib/components/menu/menu.vue.d.ts +109 -0
  360. package/lib/components/menu/menu.vue.js +2 -0
  361. package/lib/components/menu/menu.vue.js.map +1 -0
  362. package/lib/components/menu/menu.vue2.js +2 -0
  363. package/lib/components/menu/menu.vue2.js.map +1 -0
  364. package/lib/components/menu/style/css.d.ts +0 -0
  365. package/lib/components/menu/style/css.js +2 -0
  366. package/lib/components/menu/style/css.js.map +1 -0
  367. package/lib/components/menu/style/index.d.ts +0 -0
  368. package/lib/components/menu/style/index.js +2 -0
  369. package/lib/components/menu/style/index.js.map +1 -0
  370. package/lib/components/menu/sub-menu.vue.d.ts +112 -0
  371. package/lib/components/menu/sub-menu.vue.js +2 -0
  372. package/lib/components/menu/sub-menu.vue.js.map +1 -0
  373. package/lib/components/menu/sub-menu.vue2.js +2 -0
  374. package/lib/components/menu/sub-menu.vue2.js.map +1 -0
  375. package/lib/components/menu/types.d.ts +59 -0
  376. package/lib/components/menu/types.js +2 -0
  377. package/lib/components/menu/types.js.map +1 -0
  378. package/lib/components/menu/use-menu-css-var.d.ts +1 -0
  379. package/lib/components/menu/use-menu-css-var.js +2 -0
  380. package/lib/components/menu/use-menu-css-var.js.map +1 -0
  381. package/lib/components/menu/use-menu.d.ts +14 -0
  382. package/lib/components/menu/use-menu.js +2 -0
  383. package/lib/components/menu/use-menu.js.map +1 -0
  384. package/lib/components/menu/utils/menu-bar.d.ts +7 -0
  385. package/lib/components/menu/utils/menu-bar.js +2 -0
  386. package/lib/components/menu/utils/menu-bar.js.map +1 -0
  387. package/lib/components/menu/utils/menu-item.d.ts +9 -0
  388. package/lib/components/menu/utils/menu-item.js +2 -0
  389. package/lib/components/menu/utils/menu-item.js.map +1 -0
  390. package/lib/components/menu/utils/submenu.d.ts +12 -0
  391. package/lib/components/menu/utils/submenu.js +2 -0
  392. package/lib/components/menu/utils/submenu.js.map +1 -0
  393. package/lib/components/menu-item/style/css.d.ts +0 -0
  394. package/lib/components/menu-item/style/css.js +2 -0
  395. package/lib/components/menu-item/style/css.js.map +1 -0
  396. package/lib/components/menu-item/style/index.d.ts +0 -0
  397. package/lib/components/menu-item/style/index.js +2 -0
  398. package/lib/components/menu-item/style/index.js.map +1 -0
  399. package/lib/components/menu-item-group/style/css.d.ts +0 -0
  400. package/lib/components/menu-item-group/style/css.js +2 -0
  401. package/lib/components/menu-item-group/style/css.js.map +1 -0
  402. package/lib/components/menu-item-group/style/index.d.ts +0 -0
  403. package/lib/components/menu-item-group/style/index.js +2 -0
  404. package/lib/components/menu-item-group/style/index.js.map +1 -0
  405. package/lib/components/popover/directive.d.ts +4 -0
  406. package/lib/components/popover/directive.js +2 -0
  407. package/lib/components/popover/directive.js.map +1 -0
  408. package/lib/components/popover/index.d.ts +181 -0
  409. package/lib/components/popover/index.js +2 -0
  410. package/lib/components/popover/index.js.map +1 -0
  411. package/lib/components/popover/popover.vue.d.ts +187 -0
  412. package/lib/components/popover/popover.vue.js +2 -0
  413. package/lib/components/popover/popover.vue.js.map +1 -0
  414. package/lib/components/popover/popover.vue2.js +2 -0
  415. package/lib/components/popover/popover.vue2.js.map +1 -0
  416. package/lib/components/popover/style/css.d.ts +0 -0
  417. package/lib/components/popover/style/css.js +2 -0
  418. package/lib/components/popover/style/css.js.map +1 -0
  419. package/lib/components/popover/style/index.d.ts +0 -0
  420. package/lib/components/popover/style/index.js +2 -0
  421. package/lib/components/popover/style/index.js.map +1 -0
  422. package/lib/components/popover/types.js +2 -0
  423. package/lib/components/popover/types.js.map +1 -0
  424. package/lib/components/popper/arrow.vue.d.ts +18 -0
  425. package/lib/components/popper/arrow.vue.js +2 -0
  426. package/lib/components/popper/arrow.vue.js.map +1 -0
  427. package/lib/components/popper/arrow.vue2.js +2 -0
  428. package/lib/components/popper/arrow.vue2.js.map +1 -0
  429. package/lib/components/popper/composables/index.d.ts +3 -0
  430. package/lib/components/popper/composables/index.js +2 -0
  431. package/lib/components/popper/composables/index.js.map +1 -0
  432. package/lib/components/popper/composables/use-content-dom.d.ts +16 -0
  433. package/lib/components/popper/composables/use-content-dom.js +2 -0
  434. package/lib/components/popper/composables/use-content-dom.js.map +1 -0
  435. package/lib/components/popper/composables/use-content.d.ts +77 -0
  436. package/lib/components/popper/composables/use-content.js +2 -0
  437. package/lib/components/popper/composables/use-content.js.map +1 -0
  438. package/lib/components/popper/composables/use-focus-trap.d.ts +11 -0
  439. package/lib/components/popper/composables/use-focus-trap.js +2 -0
  440. package/lib/components/popper/composables/use-focus-trap.js.map +1 -0
  441. package/lib/components/popper/constants.d.ts +24 -0
  442. package/lib/components/popper/constants.js +2 -0
  443. package/lib/components/popper/constants.js.map +1 -0
  444. package/lib/components/popper/content.vue.d.ts +222 -0
  445. package/lib/components/popper/content.vue.js +2 -0
  446. package/lib/components/popper/content.vue.js.map +1 -0
  447. package/lib/components/popper/content.vue2.js +2 -0
  448. package/lib/components/popper/content.vue2.js.map +1 -0
  449. package/lib/components/popper/index.d.ts +18 -0
  450. package/lib/components/popper/index.js +2 -0
  451. package/lib/components/popper/index.js.map +1 -0
  452. package/lib/components/popper/popper.vue.d.ts +13 -0
  453. package/lib/components/popper/popper.vue.js +2 -0
  454. package/lib/components/popper/popper.vue.js.map +1 -0
  455. package/lib/components/popper/popper.vue2.js +2 -0
  456. package/lib/components/popper/popper.vue2.js.map +1 -0
  457. package/lib/components/popper/style/css.d.ts +0 -0
  458. package/lib/components/popper/style/css.js +2 -0
  459. package/lib/components/popper/style/css.js.map +1 -0
  460. package/lib/components/popper/style/index.d.ts +0 -0
  461. package/lib/components/popper/style/index.js +2 -0
  462. package/lib/components/popper/style/index.js.map +1 -0
  463. package/lib/components/popper/trigger.vue.d.ts +99 -0
  464. package/lib/components/popper/trigger.vue.js +2 -0
  465. package/lib/components/popper/trigger.vue.js.map +1 -0
  466. package/lib/components/popper/trigger.vue2.js +2 -0
  467. package/lib/components/popper/trigger.vue2.js.map +1 -0
  468. package/lib/components/popper/types.d.ts +45 -0
  469. package/lib/components/popper/types.js +2 -0
  470. package/lib/components/popper/types.js.map +1 -0
  471. package/lib/components/popper/utils.d.ts +49 -0
  472. package/lib/components/popper/utils.js +2 -0
  473. package/lib/components/popper/utils.js.map +1 -0
  474. package/lib/components/result/result.vue2.js +1 -1
  475. package/lib/components/result/result.vue2.js.map +1 -1
  476. package/lib/components/slot/index.d.ts +2 -0
  477. package/lib/components/slot/index.js +2 -0
  478. package/lib/components/slot/index.js.map +1 -0
  479. package/lib/components/slot/only-child.d.ts +7 -0
  480. package/lib/components/slot/only-child.js +2 -0
  481. package/lib/components/slot/only-child.js.map +1 -0
  482. package/lib/components/sub-menu/style/css.d.ts +0 -0
  483. package/lib/components/sub-menu/style/css.js +2 -0
  484. package/lib/components/sub-menu/style/css.js.map +1 -0
  485. package/lib/components/sub-menu/style/index.d.ts +0 -0
  486. package/lib/components/sub-menu/style/index.js +2 -0
  487. package/lib/components/sub-menu/style/index.js.map +1 -0
  488. package/lib/components/tabs/index.d.ts +21 -103
  489. package/lib/components/tabs/index.js +1 -1
  490. package/lib/components/tabs/index.js.map +1 -1
  491. package/lib/components/tabs/tab-bar.vue2.js +1 -1
  492. package/lib/components/tabs/tab-bar.vue2.js.map +1 -1
  493. package/lib/components/tabs/tab-nav.vue2.js +1 -1
  494. package/lib/components/tabs/tab-nav.vue2.js.map +1 -1
  495. package/lib/components/tabs/tab-pane.vue2.js +1 -1
  496. package/lib/components/tabs/tab-pane.vue2.js.map +1 -1
  497. package/lib/components/tabs/tabs.vue2.js +1 -1
  498. package/lib/components/tabs/tabs.vue2.js.map +1 -1
  499. package/lib/components/tooltip/constants.d.ts +18 -0
  500. package/lib/components/tooltip/constants.js +2 -0
  501. package/lib/components/tooltip/constants.js.map +1 -0
  502. package/lib/components/tooltip/content.vue.d.ts +268 -0
  503. package/lib/components/tooltip/content.vue.js +2 -0
  504. package/lib/components/tooltip/content.vue.js.map +1 -0
  505. package/lib/components/tooltip/content.vue2.js +2 -0
  506. package/lib/components/tooltip/content.vue2.js.map +1 -0
  507. package/lib/components/tooltip/index.d.ts +396 -0
  508. package/lib/components/tooltip/index.js +2 -0
  509. package/lib/components/tooltip/index.js.map +1 -0
  510. package/lib/components/tooltip/style/css.d.ts +0 -0
  511. package/lib/components/tooltip/style/css.js +2 -0
  512. package/lib/components/tooltip/style/css.js.map +1 -0
  513. package/lib/components/tooltip/style/index.d.ts +0 -0
  514. package/lib/components/tooltip/style/index.js +2 -0
  515. package/lib/components/tooltip/style/index.js.map +1 -0
  516. package/lib/components/tooltip/tooltip.vue.d.ts +470 -0
  517. package/lib/components/tooltip/tooltip.vue.js +2 -0
  518. package/lib/components/tooltip/tooltip.vue.js.map +1 -0
  519. package/lib/components/tooltip/tooltip.vue2.js +2 -0
  520. package/lib/components/tooltip/tooltip.vue2.js.map +1 -0
  521. package/lib/components/tooltip/trigger.vue.d.ts +54 -0
  522. package/lib/components/tooltip/trigger.vue.js +2 -0
  523. package/lib/components/tooltip/trigger.vue.js.map +1 -0
  524. package/lib/components/tooltip/trigger.vue2.js +2 -0
  525. package/lib/components/tooltip/trigger.vue2.js.map +1 -0
  526. package/lib/components/tooltip/types.d.ts +53 -0
  527. package/lib/components/tooltip/types.js +2 -0
  528. package/lib/components/tooltip/types.js.map +1 -0
  529. package/lib/components/tooltip/utils.d.ts +11 -0
  530. package/lib/components/tooltip/utils.js +2 -0
  531. package/lib/components/tooltip/utils.js.map +1 -0
  532. package/lib/hooks/index.d.ts +8 -0
  533. package/lib/hooks/index.js +1 -1
  534. package/lib/hooks/use-delayed-toggle/index.d.ts +10 -0
  535. package/lib/hooks/use-delayed-toggle/index.js +2 -0
  536. package/lib/hooks/use-delayed-toggle/index.js.map +1 -0
  537. package/lib/hooks/use-forward-ref/index.d.ts +9 -0
  538. package/lib/hooks/use-forward-ref/index.js +2 -0
  539. package/lib/hooks/use-forward-ref/index.js.map +1 -0
  540. package/lib/hooks/use-id/index.d.ts +9 -0
  541. package/lib/hooks/use-id/index.js +6 -0
  542. package/lib/hooks/use-id/index.js.map +1 -0
  543. package/lib/hooks/use-model-toggle/index.d.ts +25 -0
  544. package/lib/hooks/use-model-toggle/index.js +2 -0
  545. package/lib/hooks/use-model-toggle/index.js.map +1 -0
  546. package/lib/hooks/use-namespace/index.d.ts +5 -2
  547. package/lib/hooks/use-namespace/index.js +1 -1
  548. package/lib/hooks/use-namespace/index.js.map +1 -1
  549. package/lib/hooks/use-popper/index.d.ts +78 -0
  550. package/lib/hooks/use-popper/index.js +2 -0
  551. package/lib/hooks/use-popper/index.js.map +1 -0
  552. package/lib/hooks/use-popper-container/index.d.ts +5 -0
  553. package/lib/hooks/use-popper-container/index.js +2 -0
  554. package/lib/hooks/use-popper-container/index.js.map +1 -0
  555. package/lib/hooks/use-timeout/index.d.ts +4 -0
  556. package/lib/hooks/use-timeout/index.js +2 -0
  557. package/lib/hooks/use-timeout/index.js.map +1 -0
  558. package/lib/hooks/use-z-index/index.d.ts +7 -0
  559. package/lib/hooks/use-z-index/index.js +2 -0
  560. package/lib/hooks/use-z-index/index.js.map +1 -0
  561. package/lib/index.js +1 -1
  562. package/lib/index.js.map +1 -1
  563. package/lib/package.json.js +1 -1
  564. package/lib/theme-style/src/collapse-transition.scss.js +2 -0
  565. package/lib/theme-style/src/collapse-transition.scss.js.map +1 -0
  566. package/lib/theme-style/src/menu-item-group.scss.js +2 -0
  567. package/lib/theme-style/src/menu-item-group.scss.js.map +1 -0
  568. package/lib/theme-style/src/menu-item.scss.js +2 -0
  569. package/lib/theme-style/src/menu-item.scss.js.map +1 -0
  570. package/lib/theme-style/src/menu.scss.js +2 -0
  571. package/lib/theme-style/src/menu.scss.js.map +1 -0
  572. package/lib/theme-style/src/popover.scss.js +2 -0
  573. package/lib/theme-style/src/popover.scss.js.map +1 -0
  574. package/lib/theme-style/src/popper.scss.js +2 -0
  575. package/lib/theme-style/src/popper.scss.js.map +1 -0
  576. package/lib/theme-style/src/sub-menu.scss.js +2 -0
  577. package/lib/theme-style/src/sub-menu.scss.js.map +1 -0
  578. package/lib/theme-style/src/tooltip.scss.js +2 -0
  579. package/lib/theme-style/src/tooltip.scss.js.map +1 -0
  580. package/lib/utils/event.d.ts +6 -0
  581. package/lib/utils/event.js +2 -0
  582. package/lib/utils/event.js.map +1 -0
  583. package/lib/utils/index.d.ts +2 -0
  584. package/lib/utils/index.js +1 -1
  585. package/lib/utils/typescript.d.ts +12 -0
  586. package/lib/utils/typescript.js +2 -0
  587. package/lib/utils/typescript.js.map +1 -0
  588. package/package.json +3 -1
  589. package/theme-style/index.css +1 -1
  590. package/theme-style/src/collapse-transition.scss +0 -0
  591. package/theme-style/src/common/var.scss +5 -0
  592. package/theme-style/src/index.scss +7 -0
  593. package/theme-style/src/menu-item-group.scss +0 -0
  594. package/theme-style/src/menu-item.scss +0 -0
  595. package/theme-style/src/menu.scss +341 -0
  596. package/theme-style/src/popover.scss +62 -0
  597. package/theme-style/src/popper.scss +108 -0
  598. package/theme-style/src/sub-menu.scss +0 -0
  599. package/theme-style/src/tooltip.scss +0 -0
  600. package/theme-style/vft-collapse-transition.css +0 -0
  601. package/theme-style/vft-menu-item-group.css +0 -0
  602. package/theme-style/vft-menu-item.css +0 -0
  603. package/theme-style/vft-menu.css +1 -0
  604. package/theme-style/vft-popover.css +1 -0
  605. package/theme-style/vft-popper.css +1 -0
  606. package/theme-style/vft-sub-menu.css +0 -0
  607. package/theme-style/vft-tooltip.css +0 -0
@@ -1,6 +1,10 @@
1
- import { defineComponent as f, getCurrentInstance as z, computed as d, openBlock as r, createElementBlock as i, normalizeClass as l, unref as e, createElementVNode as C, normalizeStyle as T, renderSlot as u, createVNode as A, createCommentVNode as N } from "vue";
1
+ import { defineComponent as f, getCurrentInstance as z, computed as d, openBlock as i, createElementBlock as n, normalizeClass as l, unref as e, createElementVNode as C, normalizeStyle as T, renderSlot as u, createVNode as A, createCommentVNode as N } from "vue";
2
2
  import { renderTNode as E, setSize as _, VNode as O } from "@vft/utils";
3
3
  import { useNamespace as k } from "../../hooks/use-namespace/index.mjs";
4
+ import "@popperjs/core";
5
+ import "lodash";
6
+ import "../../hooks/use-z-index/index.mjs";
7
+ import "@vueuse/core";
4
8
  import "@vue/shared";
5
9
  import { getSizeType as S } from "../../utils/helper.mjs";
6
10
  import { EmptyEnum as o } from "./constants.mjs";
@@ -14,7 +18,7 @@ const h = ["src"], m = (
14
18
  k("empty")
15
19
  ), v = f({
16
20
  name: m.b()
17
- }), Q = /* @__PURE__ */ f({
21
+ }), Y = /* @__PURE__ */ f({
18
22
  ...v,
19
23
  props: {
20
24
  img: null,
@@ -22,7 +26,7 @@ const h = ["src"], m = (
22
26
  size: null,
23
27
  desc: null
24
28
  },
25
- setup(s) {
29
+ setup(r) {
26
30
  const g = z(), t = (/* @__PURE__ */ new Map([
27
31
  [
28
32
  o.NO_COLLECT,
@@ -60,39 +64,39 @@ const h = ["src"], m = (
60
64
  img: b
61
65
  }
62
66
  ]
63
- ])).get(s.type), y = d(() => s.img || (t == null ? void 0 : t.img)), c = d(() => E(g, "desc", { defaultNode: t == null ? void 0 : t.text })), a = S(s.size);
64
- return (n, M) => {
67
+ ])).get(r.type), y = d(() => r.img || (t == null ? void 0 : t.img)), c = d(() => E(g, "desc", { defaultNode: t == null ? void 0 : t.text })), a = S(r.size);
68
+ return (s, M) => {
65
69
  var p;
66
- return r(), i("div", {
70
+ return i(), n("div", {
67
71
  class: l([e(m).b(), e(a) ? e(m).m(e(a)) : ""])
68
72
  }, [
69
73
  C("div", {
70
74
  class: l(e(m).e("image")),
71
- style: T(e(a) ? {} : e(_)(((p = e(t)) == null ? void 0 : p.size) || s.size))
75
+ style: T(e(a) ? {} : e(_)(((p = e(t)) == null ? void 0 : p.size) || r.size))
72
76
  }, [
73
- n.$slots.img ? u(n.$slots, "img", { key: 0 }) : (r(), i("img", {
77
+ s.$slots.img ? u(s.$slots, "img", { key: 0 }) : (i(), n("img", {
74
78
  key: 1,
75
79
  src: e(y),
76
80
  alt: ""
77
81
  }, null, 8, h))
78
82
  ], 6),
79
- e(c) ? (r(), i("span", {
83
+ e(c) ? (i(), n("span", {
80
84
  key: 0,
81
85
  class: l(e(m).e("desc"))
82
86
  }, [
83
87
  A(e(O), { content: e(c) }, null, 8, ["content"])
84
88
  ], 2)) : N("", !0),
85
- n.$slots.default ? (r(), i("div", {
89
+ s.$slots.default ? (i(), n("div", {
86
90
  key: 1,
87
91
  class: l(e(m).e("bottom"))
88
92
  }, [
89
- u(n.$slots, "default")
93
+ u(s.$slots, "default")
90
94
  ], 2)) : N("", !0)
91
95
  ], 2);
92
96
  };
93
97
  }
94
98
  });
95
99
  export {
96
- Q as default
100
+ Y as default
97
101
  };
98
102
  //# sourceMappingURL=empty.vue2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"empty.vue2.mjs","sources":["../../../../../packages/components/empty/empty.vue"],"sourcesContent":["<script lang=\"ts\">\nconst ns = /* hoist-static*/ useNamespace('empty')\n\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n name: ns.b()\n});</script>\n<script setup lang=\"ts\">\nimport { renderTNode, setSize, VNode } from '@vft/utils';\nimport { useNamespace } from '@vft-ui/hooks';\nimport { getCurrentInstance, computed } from 'vue';\nimport type { ComponentSize } from '../types';\nimport { getSizeType } from '@vft-ui/utils';\nimport { EmptyEnum } from './constants';\n\nimport NoCollect from './assets/no-collect.png';\nimport NoData from './assets/no-data.png';\nimport NoFilter from './assets/no-filter.png';\nimport NoPageData from './assets/no-page-data.png';\nimport NoSearch from './assets/no-search.png';\n\ninterface EmptyProps {\n /** 图片类型或字符串 支持自定义 slot */\n img?: string;\n type?: EmptyEnum;\n /** 图片大小 */\n size?: ComponentSize | string | number[];\n /** 图片底部描述 支持自定义 slot */\n desc?: string;\n}\n\ndefineProps({\n \"img\": null,\n \"type\": { default: EmptyEnum.NO_DATA },\n \"size\": null,\n \"desc\": null\n})\n\n\n\n;\n\nconst instance = getCurrentInstance();\n\nconst imgTypeMap = new Map<EmptyEnum, {text: string; img: string; size?: EmptyProps['size']; descStyle?: Record<string, Numberish>}>([\n [\n\t\tEmptyEnum.NO_COLLECT,\n {\n text: '暂无收藏记录',\n img: NoCollect\n }\n ],\n [\n\t\tEmptyEnum.NO_PAGE_DATA,\n {\n text: '没有找到相关信息',\n size: 300,\n img: NoPageData\n }\n ],\n [\n\t\tEmptyEnum.NO_DATA,\n {\n text: '暂无数据',\n img: NoData\n }\n ],\n [\n\t\tEmptyEnum.NO_FILTER,\n {\n text: '此筛选条件下无结果',\n img: NoFilter\n }\n ],\n [\n\t\tEmptyEnum.NO_SEARCH,\n {\n text: '没有搜索结果',\n img: NoSearch\n }\n ]\n]);\n\nconst imgInfos = imgTypeMap.get(__props.type);\n\nconst imgContent = computed(() => __props.img || imgInfos?.img);\n\nconst descContent = computed(() => renderTNode(instance, 'desc', { defaultNode: imgInfos?.text }));\n\nconst _sizeType = getSizeType(__props.size as string);\n</script>\n\n<template>\n <div :class=\"[ns.b(), _sizeType ? ns.m(_sizeType) : '']\">\n <div :class=\"ns.e('image')\" :style=\"_sizeType ? {} : setSize(imgInfos?.size || size)\">\n <slot v-if=\"$slots.img\" name=\"img\" />\n <img v-else :src=\"imgContent\" alt=\"\" />\n </div>\n <span :class=\"ns.e('desc')\" v-if=\"descContent\">\n <v-node :content=\"descContent\" />\n </span>\n <div v-if=\"$slots.default\" :class=\"ns.e('bottom')\">\n <slot />\n </div>\n </div>\n</template>\n"],"names":["ns","useNamespace","__default__","DO_defineComponent","instance","getCurrentInstance","imgInfos","EmptyEnum","NoCollect","NoPageData","NoData","NoFilter","NoSearch","__props","imgContent","computed","descContent","renderTNode","_sizeType","getSizeType"],"mappings":";;;;;;;;;;;mBACMA;AAAA;AAAA,EAAuBC,EAAa,OAAO;AAAA,GAGjDC,IAA6BC,EAAmB;AAAA,EAC9C,MAAMH,EAAG,EAAE;AACb,CAAC;;;;;;;;;AAoCD,UAAMI,IAAWC,KAyCXC,yBAvCiB,IAA8G;AAAA,MACnI;AAAA,QACAC,EAAU;AAAA,QACR;AAAA,UACE,MAAM;AAAA,UACN,KAAKC;AAAA,QACP;AAAA,MACF;AAAA,MACA;AAAA,QACAD,EAAU;AAAA,QACR;AAAA,UACE,MAAM;AAAA,UACN,MAAM;AAAA,UACN,KAAKE;AAAA,QACP;AAAA,MACF;AAAA,MACA;AAAA,QACAF,EAAU;AAAA,QACR;AAAA,UACE,MAAM;AAAA,UACN,KAAKG;AAAA,QACP;AAAA,MACF;AAAA,MACA;AAAA,QACAH,EAAU;AAAA,QACR;AAAA,UACE,MAAM;AAAA,UACN,KAAKI;AAAA,QACP;AAAA,MACF;AAAA,MACA;AAAA,QACAJ,EAAU;AAAA,QACR;AAAA,UACE,MAAM;AAAA,UACN,KAAKK;AAAA,QACP;AAAA,MACF;AAAA,IAAA,CACD,GAE2B,IAAIC,EAAQ,IAAI,GAEtCC,IAAaC,EAAS,MAAMF,EAAQ,QAAOP,KAAA,gBAAAA,EAAU,IAAG,GAExDU,IAAcD,EAAS,MAAME,EAAYb,GAAU,QAAQ,EAAE,aAAaE,KAAA,gBAAAA,EAAU,KAAK,CAAC,CAAC,GAE3FY,IAAYC,EAAYN,EAAQ,IAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"empty.vue2.mjs","sources":["../../../../../packages/components/empty/empty.vue"],"sourcesContent":["<script lang=\"ts\">\nconst ns = /* hoist-static*/ useNamespace('empty')\n\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n name: ns.b()\n});</script>\n<script setup lang=\"ts\">\nimport { renderTNode, setSize, VNode } from '@vft/utils';\nimport { useNamespace } from '@vft-ui/hooks';\nimport { getCurrentInstance, computed } from 'vue';\nimport type { ComponentSize } from '../types';\nimport { getSizeType } from '@vft-ui/utils';\nimport { EmptyEnum } from './constants';\n\nimport NoCollect from './assets/no-collect.png';\nimport NoData from './assets/no-data.png';\nimport NoFilter from './assets/no-filter.png';\nimport NoPageData from './assets/no-page-data.png';\nimport NoSearch from './assets/no-search.png';\n\ninterface EmptyProps {\n /** 图片类型或字符串 支持自定义 slot */\n img?: string;\n type?: EmptyEnum;\n /** 图片大小 */\n size?: ComponentSize | string | number[];\n /** 图片底部描述 支持自定义 slot */\n desc?: string;\n}\n\ndefineProps({\n \"img\": null,\n \"type\": { default: EmptyEnum.NO_DATA },\n \"size\": null,\n \"desc\": null\n})\n\n\n\n;\n\nconst instance = getCurrentInstance();\n\nconst imgTypeMap = new Map<EmptyEnum, {text: string; img: string; size?: EmptyProps['size']; descStyle?: Record<string, Numberish>}>([\n [\n\t\tEmptyEnum.NO_COLLECT,\n {\n text: '暂无收藏记录',\n img: NoCollect\n }\n ],\n [\n\t\tEmptyEnum.NO_PAGE_DATA,\n {\n text: '没有找到相关信息',\n size: 300,\n img: NoPageData\n }\n ],\n [\n\t\tEmptyEnum.NO_DATA,\n {\n text: '暂无数据',\n img: NoData\n }\n ],\n [\n\t\tEmptyEnum.NO_FILTER,\n {\n text: '此筛选条件下无结果',\n img: NoFilter\n }\n ],\n [\n\t\tEmptyEnum.NO_SEARCH,\n {\n text: '没有搜索结果',\n img: NoSearch\n }\n ]\n]);\n\nconst imgInfos = imgTypeMap.get(__props.type);\n\nconst imgContent = computed(() => __props.img || imgInfos?.img);\n\nconst descContent = computed(() => renderTNode(instance, 'desc', { defaultNode: imgInfos?.text }));\n\nconst _sizeType = getSizeType(__props.size as string);\n</script>\n\n<template>\n <div :class=\"[ns.b(), _sizeType ? ns.m(_sizeType) : '']\">\n <div :class=\"ns.e('image')\" :style=\"_sizeType ? {} : setSize(imgInfos?.size || size)\">\n <slot v-if=\"$slots.img\" name=\"img\" />\n <img v-else :src=\"imgContent\" alt=\"\" />\n </div>\n <span :class=\"ns.e('desc')\" v-if=\"descContent\">\n <v-node :content=\"descContent\" />\n </span>\n <div v-if=\"$slots.default\" :class=\"ns.e('bottom')\">\n <slot />\n </div>\n </div>\n</template>\n"],"names":["ns","useNamespace","__default__","DO_defineComponent","instance","getCurrentInstance","imgInfos","EmptyEnum","NoCollect","NoPageData","NoData","NoFilter","NoSearch","__props","imgContent","computed","descContent","renderTNode","_sizeType","getSizeType"],"mappings":";;;;;;;;;;;;;;;mBACMA;AAAA;AAAA,EAAuBC,EAAa,OAAO;AAAA,GAGjDC,IAA6BC,EAAmB;AAAA,EAC9C,MAAMH,EAAG,EAAE;AACb,CAAC;;;;;;;;;AAoCD,UAAMI,IAAWC,KAyCXC,yBAvCiB,IAA8G;AAAA,MACnI;AAAA,QACAC,EAAU;AAAA,QACR;AAAA,UACE,MAAM;AAAA,UACN,KAAKC;AAAA,QACP;AAAA,MACF;AAAA,MACA;AAAA,QACAD,EAAU;AAAA,QACR;AAAA,UACE,MAAM;AAAA,UACN,MAAM;AAAA,UACN,KAAKE;AAAA,QACP;AAAA,MACF;AAAA,MACA;AAAA,QACAF,EAAU;AAAA,QACR;AAAA,UACE,MAAM;AAAA,UACN,KAAKG;AAAA,QACP;AAAA,MACF;AAAA,MACA;AAAA,QACAH,EAAU;AAAA,QACR;AAAA,UACE,MAAM;AAAA,UACN,KAAKI;AAAA,QACP;AAAA,MACF;AAAA,MACA;AAAA,QACAJ,EAAU;AAAA,QACR;AAAA,UACE,MAAM;AAAA,UACN,KAAKK;AAAA,QACP;AAAA,MACF;AAAA,IAAA,CACD,GAE2B,IAAIC,EAAQ,IAAI,GAEtCC,IAAaC,EAAS,MAAMF,EAAQ,QAAOP,KAAA,gBAAAA,EAAU,IAAG,GAExDU,IAAcD,EAAS,MAAME,EAAYb,GAAU,QAAQ,EAAE,aAAaE,KAAA,gBAAAA,EAAU,KAAK,CAAC,CAAC,GAE3FY,IAAYC,EAAYN,EAAQ,IAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,32 @@
1
+ import type { PropType } from 'vue';
2
+ declare const _sfc_main: import("vue").DefineComponent<{
3
+ loop: BooleanConstructor;
4
+ trapped: BooleanConstructor;
5
+ focusTrapEl: PropType<HTMLElement>;
6
+ focusStartEl: {
7
+ type: PropType<HTMLElement | "first" | "container">;
8
+ default: string;
9
+ };
10
+ }, {
11
+ onKeydown: (e: KeyboardEvent) => void;
12
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("focusin" | "focusout" | "focusAfterTrapped" | "focusAfterReleased" | "focusout-prevented" | "release-requested")[], "focusin" | "focusout" | "focusAfterTrapped" | "focusAfterReleased" | "focusout-prevented" | "release-requested", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
13
+ loop: BooleanConstructor;
14
+ trapped: BooleanConstructor;
15
+ focusTrapEl: PropType<HTMLElement>;
16
+ focusStartEl: {
17
+ type: PropType<HTMLElement | "first" | "container">;
18
+ default: string;
19
+ };
20
+ }>> & {
21
+ onFocusin?: ((...args: any[]) => any) | undefined;
22
+ onFocusout?: ((...args: any[]) => any) | undefined;
23
+ onFocusAfterTrapped?: ((...args: any[]) => any) | undefined;
24
+ onFocusAfterReleased?: ((...args: any[]) => any) | undefined;
25
+ "onFocusout-prevented"?: ((...args: any[]) => any) | undefined;
26
+ "onRelease-requested"?: ((...args: any[]) => any) | undefined;
27
+ }, {
28
+ loop: boolean;
29
+ trapped: boolean;
30
+ focusStartEl: HTMLElement | "first" | "container";
31
+ }>;
32
+ export default _sfc_main;
@@ -0,0 +1,11 @@
1
+ import r from "./focus-trap.vue2.mjs";
2
+ import { renderSlot as e } from "vue";
3
+ import t from "../../_virtual/_plugin-vue_export-helper.mjs";
4
+ function n(o, s, f, p, a, d) {
5
+ return e(o.$slots, "default", { handleKeydown: o.onKeydown });
6
+ }
7
+ const u = /* @__PURE__ */ t(r, [["render", n]]);
8
+ export {
9
+ u as default
10
+ };
11
+ //# sourceMappingURL=focus-trap.vue.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus-trap.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -0,0 +1,160 @@
1
+ import { EVENT_CODE as w } from "@vft/constants";
2
+ import { useEscapeKeydown as j } from "@vft/use";
3
+ import { isString as q } from "@vft/utils";
4
+ import { isNil as x } from "lodash";
5
+ import { defineComponent as J, ref as M, provide as Y, watch as O, unref as E, onMounted as z, onBeforeUnmount as G, nextTick as I } from "vue";
6
+ import { ON_TRAP_FOCUS_EVT as U, ON_RELEASE_FOCUS_EVT as K, FOCUS_TRAP_INJECTION_KEY as H, FOCUS_AFTER_TRAPPED as b, FOCUS_AFTER_TRAPPED_OPTS as k, FOCUS_AFTER_RELEASED as y } from "./tokens.mjs";
7
+ import { useFocusReason as Q, tryFocus as f, createFocusOutPreventedEvent as m, getEdges as W, focusableStack as N, focusFirstDescendant as X, obtainAllFocusableElements as Z, isFocusCausedByUserEvent as $ } from "./utils.mjs";
8
+ const ce = J({
9
+ name: "VftFocusTrap",
10
+ inheritAttrs: !1,
11
+ props: {
12
+ loop: Boolean,
13
+ trapped: Boolean,
14
+ focusTrapEl: Object,
15
+ focusStartEl: {
16
+ type: [Object, String],
17
+ default: "first"
18
+ }
19
+ },
20
+ emits: [
21
+ U,
22
+ K,
23
+ "focusin",
24
+ "focusout",
25
+ "focusout-prevented",
26
+ "release-requested"
27
+ ],
28
+ setup(n, { emit: r }) {
29
+ const c = M();
30
+ let l, T;
31
+ const { focusReason: d } = Q();
32
+ j((e) => {
33
+ n.trapped && !i.paused && r("release-requested", e);
34
+ });
35
+ const i = {
36
+ paused: !1,
37
+ pause() {
38
+ this.paused = !0;
39
+ },
40
+ resume() {
41
+ this.paused = !1;
42
+ }
43
+ }, v = (e) => {
44
+ if (!n.loop && !n.trapped || i.paused)
45
+ return;
46
+ const { key: t, altKey: s, ctrlKey: o, metaKey: a, currentTarget: R, shiftKey: h } = e, { loop: D } = n, V = t === w.tab && !s && !o && !a, p = document.activeElement;
47
+ if (V && p) {
48
+ const P = R, [_, C] = W(P);
49
+ if (_ && C) {
50
+ if (!h && p === C) {
51
+ const u = m({
52
+ focusReason: d.value
53
+ });
54
+ r("focusout-prevented", u), u.defaultPrevented || (e.preventDefault(), D && f(_, !0));
55
+ } else if (h && [_, P].includes(p)) {
56
+ const u = m({
57
+ focusReason: d.value
58
+ });
59
+ r("focusout-prevented", u), u.defaultPrevented || (e.preventDefault(), D && f(C, !0));
60
+ }
61
+ } else if (p === P) {
62
+ const u = m({
63
+ focusReason: d.value
64
+ });
65
+ r("focusout-prevented", u), u.defaultPrevented || e.preventDefault();
66
+ }
67
+ }
68
+ };
69
+ Y(H, {
70
+ focusTrapRef: c,
71
+ onKeydown: v
72
+ }), O(
73
+ () => n.focusTrapEl,
74
+ (e) => {
75
+ e && (c.value = e);
76
+ },
77
+ { immediate: !0 }
78
+ ), O([c], ([e], [t]) => {
79
+ e && (e.addEventListener("keydown", v), e.addEventListener("focusin", g), e.addEventListener("focusout", S)), t && (t.removeEventListener("keydown", v), t.removeEventListener("focusin", g), t.removeEventListener("focusout", S));
80
+ });
81
+ const F = (e) => {
82
+ r(U, e);
83
+ }, B = (e) => r(K, e), g = (e) => {
84
+ const t = E(c);
85
+ if (!t)
86
+ return;
87
+ const s = e.target, o = e.relatedTarget, a = s && t.contains(s);
88
+ n.trapped || o && t.contains(o) || (l = o), a && r("focusin", e), !i.paused && n.trapped && (a ? T = s : f(T, !0));
89
+ }, S = (e) => {
90
+ const t = E(c);
91
+ if (!(i.paused || !t))
92
+ if (n.trapped) {
93
+ const s = e.relatedTarget;
94
+ !x(s) && !t.contains(s) && setTimeout(() => {
95
+ if (!i.paused && n.trapped) {
96
+ const o = m({
97
+ focusReason: d.value
98
+ });
99
+ r("focusout-prevented", o), o.defaultPrevented || f(T, !0);
100
+ }
101
+ }, 0);
102
+ } else {
103
+ const s = e.target;
104
+ s && t.contains(s) || r("focusout", e);
105
+ }
106
+ };
107
+ async function L() {
108
+ await I();
109
+ const e = E(c);
110
+ if (e) {
111
+ N.push(i);
112
+ const t = e.contains(
113
+ document.activeElement
114
+ ) ? l : document.activeElement;
115
+ if (l = t, !e.contains(t)) {
116
+ const o = new Event(
117
+ b,
118
+ k
119
+ );
120
+ e.addEventListener(b, F), e.dispatchEvent(o), o.defaultPrevented || I(() => {
121
+ let a = n.focusStartEl;
122
+ q(a) || (f(a), document.activeElement !== a && (a = "first")), a === "first" && X(
123
+ Z(e),
124
+ !0
125
+ ), (document.activeElement === t || a === "container") && f(e);
126
+ });
127
+ }
128
+ }
129
+ }
130
+ function A() {
131
+ const e = E(c);
132
+ if (e) {
133
+ e.removeEventListener(b, F);
134
+ const t = new CustomEvent(y, {
135
+ ...k,
136
+ detail: {
137
+ focusReason: d.value
138
+ }
139
+ });
140
+ e.addEventListener(y, B), e.dispatchEvent(t), !t.defaultPrevented && (d.value == "keyboard" || !$() || e.contains(document.activeElement)) && f(l ?? document.body), e.removeEventListener(y, F), N.remove(i);
141
+ }
142
+ }
143
+ return z(() => {
144
+ n.trapped && L(), O(
145
+ () => n.trapped,
146
+ (e) => {
147
+ e ? L() : A();
148
+ }
149
+ );
150
+ }), G(() => {
151
+ n.trapped && A();
152
+ }), {
153
+ onKeydown: v
154
+ };
155
+ }
156
+ });
157
+ export {
158
+ ce as default
159
+ };
160
+ //# sourceMappingURL=focus-trap.vue2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus-trap.vue2.mjs","sources":["../../../../../packages/components/focus-trap/focus-trap.vue"],"sourcesContent":["<template>\n <slot :handle-keydown=\"onKeydown\" />\n</template>\n\n<script lang=\"ts\">\nimport { EVENT_CODE } from '@vft/constants';\nimport { useEscapeKeydown } from '@vft/use';\nimport { isString } from '@vft/utils';\nimport { isNil } from 'lodash';\nimport type { PropType } from 'vue';\nimport {\n defineComponent,\n nextTick,\n onBeforeUnmount,\n onMounted,\n provide,\n ref,\n unref,\n watch\n} from 'vue';\nimport {\n FOCUS_AFTER_RELEASED,\n FOCUS_AFTER_TRAPPED,\n FOCUS_AFTER_TRAPPED_OPTS,\n FOCUS_TRAP_INJECTION_KEY,\n ON_RELEASE_FOCUS_EVT,\n ON_TRAP_FOCUS_EVT\n} from './tokens';\nimport type { FocusLayer } from './utils';\nimport {\n createFocusOutPreventedEvent,\n focusableStack,\n focusFirstDescendant,\n getEdges,\n isFocusCausedByUserEvent,\n obtainAllFocusableElements,\n tryFocus,\n useFocusReason\n} from './utils';\n\nexport default defineComponent({\n name: 'VftFocusTrap',\n inheritAttrs: false,\n props: {\n loop: Boolean,\n trapped: Boolean,\n focusTrapEl: Object as PropType<HTMLElement>,\n focusStartEl: {\n type: [Object, String] as PropType<'container' | 'first' | HTMLElement>,\n default: 'first'\n }\n },\n emits: [\n ON_TRAP_FOCUS_EVT,\n ON_RELEASE_FOCUS_EVT,\n 'focusin',\n 'focusout',\n 'focusout-prevented',\n 'release-requested'\n ],\n setup (props, { emit }) {\n\t\tconst forwardRef = ref<HTMLElement | undefined>()\n\t\tlet lastFocusBeforeTrapped: HTMLElement | null\n\t\tlet lastFocusAfterTrapped: HTMLElement | null\n\n\t\tconst { focusReason } = useFocusReason()\n\n\t\tuseEscapeKeydown((event) => {\n\t\t\tif (props.trapped && !focusLayer.paused) {\n\t\t\t\temit('release-requested', event)\n\t\t\t}\n\t\t})\n\n\t\tconst focusLayer: FocusLayer = {\n\t\t\tpaused: false,\n\t\t\tpause () {\n\t\t\t\tthis.paused = true\n\t\t\t},\n\t\t\tresume () {\n\t\t\t\tthis.paused = false\n\t\t\t},\n\t\t}\n\n\t\tconst onKeydown = (e: KeyboardEvent) => {\n\t\t\tif (!props.loop && !props.trapped) return\n\t\t\tif (focusLayer.paused) return\n\n\t\t\tconst { key, altKey, ctrlKey, metaKey, currentTarget, shiftKey } = e\n\t\t\tconst { loop } = props\n\t\t\tconst isTabbing =\n\t\t\t\tkey === EVENT_CODE.tab && !altKey && !ctrlKey && !metaKey\n\n\t\t\tconst currentFocusingEl = document.activeElement\n\t\t\tif (isTabbing && currentFocusingEl) {\n\t\t\t\tconst container = currentTarget as HTMLElement\n\t\t\t\tconst [first, last] = getEdges(container)\n\t\t\t\tconst isTabbable = first && last\n\t\t\t\tif (!isTabbable) {\n\t\t\t\t\tif (currentFocusingEl === container) {\n\t\t\t\t\t\tconst focusoutPreventedEvent = createFocusOutPreventedEvent({\n\t\t\t\t\t\t\tfocusReason: focusReason.value,\n\t\t\t\t\t\t})\n\t\t\t\t\t\temit('focusout-prevented', focusoutPreventedEvent)\n\t\t\t\t\t\tif (!focusoutPreventedEvent.defaultPrevented) {\n\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (!shiftKey && currentFocusingEl === last) {\n\t\t\t\t\t\tconst focusoutPreventedEvent = createFocusOutPreventedEvent({\n\t\t\t\t\t\t\tfocusReason: focusReason.value,\n\t\t\t\t\t\t})\n\t\t\t\t\t\temit('focusout-prevented', focusoutPreventedEvent)\n\t\t\t\t\t\tif (!focusoutPreventedEvent.defaultPrevented) {\n\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\tif (loop) tryFocus(first, true)\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (\n\t\t\t\t\t\tshiftKey &&\n\t\t\t\t\t\t[first, container].includes(currentFocusingEl as HTMLElement)\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst focusoutPreventedEvent = createFocusOutPreventedEvent({\n\t\t\t\t\t\t\tfocusReason: focusReason.value,\n\t\t\t\t\t\t})\n\t\t\t\t\t\temit('focusout-prevented', focusoutPreventedEvent)\n\t\t\t\t\t\tif (!focusoutPreventedEvent.defaultPrevented) {\n\t\t\t\t\t\t\te.preventDefault()\n\t\t\t\t\t\t\tif (loop) tryFocus(last, true)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tprovide(FOCUS_TRAP_INJECTION_KEY, {\n\t\t\tfocusTrapRef: forwardRef,\n\t\t\tonKeydown,\n\t\t})\n\n\t\twatch(\n\t\t\t() => props.focusTrapEl,\n\t\t\t(focusTrapEl) => {\n\t\t\t\tif (focusTrapEl) {\n\t\t\t\t\tforwardRef.value = focusTrapEl\n\t\t\t\t}\n\t\t\t},\n\t\t\t{ immediate: true }\n\t\t)\n\n\t\twatch([forwardRef], ([forwardRef], [oldForwardRef]) => {\n\t\t\tif (forwardRef) {\n\t\t\t\tforwardRef.addEventListener('keydown', onKeydown)\n\t\t\t\tforwardRef.addEventListener('focusin', onFocusIn)\n\t\t\t\tforwardRef.addEventListener('focusout', onFocusOut)\n\t\t\t}\n\t\t\tif (oldForwardRef) {\n\t\t\t\toldForwardRef.removeEventListener('keydown', onKeydown)\n\t\t\t\toldForwardRef.removeEventListener('focusin', onFocusIn)\n\t\t\t\toldForwardRef.removeEventListener('focusout', onFocusOut)\n\t\t\t}\n\t\t})\n\n\t\tconst trapOnFocus = (e: Event) => {\n\t\t\temit(ON_TRAP_FOCUS_EVT, e)\n\t\t}\n\t\tconst releaseOnFocus = (e: Event) => emit(ON_RELEASE_FOCUS_EVT, e)\n\n\t\tconst onFocusIn = (e: FocusEvent) => {\n\t\t\tconst trapContainer = unref(forwardRef)\n\t\t\tif (!trapContainer) return\n\n\t\t\tconst target = e.target as HTMLElement | null\n\t\t\tconst relatedTarget = e.relatedTarget as HTMLElement | null\n\t\t\tconst isFocusedInTrap = target && trapContainer.contains(target)\n\n\t\t\tif (!props.trapped) {\n\t\t\t\tconst isPrevFocusedInTrap =\n\t\t\t\t\trelatedTarget && trapContainer.contains(relatedTarget)\n\t\t\t\tif (!isPrevFocusedInTrap) {\n\t\t\t\t\tlastFocusBeforeTrapped = relatedTarget\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (isFocusedInTrap) emit('focusin', e)\n\n\t\t\tif (focusLayer.paused) return\n\n\t\t\tif (props.trapped) {\n\t\t\t\tif (isFocusedInTrap) {\n\t\t\t\t\tlastFocusAfterTrapped = target\n\t\t\t\t} else {\n\t\t\t\t\ttryFocus(lastFocusAfterTrapped, true)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst onFocusOut = (e: Event) => {\n\t\t\tconst trapContainer = unref(forwardRef)\n\t\t\tif (focusLayer.paused || !trapContainer) return\n\n\t\t\tif (props.trapped) {\n\t\t\t\tconst relatedTarget = (e as FocusEvent)\n\t\t\t\t\t.relatedTarget as HTMLElement | null\n\t\t\t\tif (!isNil(relatedTarget) && !trapContainer.contains(relatedTarget)) {\n\t\t\t\t\t// Give embedded focus layer time to pause this layer before reclaiming focus\n\t\t\t\t\t// And only reclaim focus if it should currently be trapping\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tif (!focusLayer.paused && props.trapped) {\n\t\t\t\t\t\t\tconst focusoutPreventedEvent = createFocusOutPreventedEvent({\n\t\t\t\t\t\t\t\tfocusReason: focusReason.value,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\temit('focusout-prevented', focusoutPreventedEvent)\n\t\t\t\t\t\t\tif (!focusoutPreventedEvent.defaultPrevented) {\n\t\t\t\t\t\t\t\ttryFocus(lastFocusAfterTrapped, true)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 0)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst target = e.target as HTMLElement | null\n\t\t\t\tconst isFocusedInTrap = target && trapContainer.contains(target)\n\t\t\t\tif (!isFocusedInTrap) emit('focusout', e)\n\t\t\t}\n\t\t}\n\n\t\tasync function startTrap () {\n\t\t\t// Wait for forwardRef to resolve\n\t\t\tawait nextTick()\n\t\t\tconst trapContainer = unref(forwardRef)\n\t\t\tif (trapContainer) {\n\t\t\t\tfocusableStack.push(focusLayer)\n\t\t\t\tconst prevFocusedElement = trapContainer.contains(\n\t\t\t\t\tdocument.activeElement\n\t\t\t\t)\n\t\t\t\t\t? lastFocusBeforeTrapped\n\t\t\t\t\t: document.activeElement\n\t\t\t\tlastFocusBeforeTrapped = prevFocusedElement as HTMLElement | null\n\t\t\t\tconst isPrevFocusContained = trapContainer.contains(prevFocusedElement)\n\t\t\t\tif (!isPrevFocusContained) {\n\t\t\t\t\tconst focusEvent = new Event(\n\t\t\t\t\t\tFOCUS_AFTER_TRAPPED,\n\t\t\t\t\t\tFOCUS_AFTER_TRAPPED_OPTS\n\t\t\t\t\t)\n\t\t\t\t\ttrapContainer.addEventListener(FOCUS_AFTER_TRAPPED, trapOnFocus)\n\t\t\t\t\ttrapContainer.dispatchEvent(focusEvent)\n\t\t\t\t\tif (!focusEvent.defaultPrevented) {\n\t\t\t\t\t\tnextTick(() => {\n\t\t\t\t\t\t\tlet focusStartEl = props.focusStartEl\n\t\t\t\t\t\t\tif (!isString(focusStartEl)) {\n\t\t\t\t\t\t\t\ttryFocus(focusStartEl)\n\t\t\t\t\t\t\t\tif (document.activeElement !== focusStartEl) {\n\t\t\t\t\t\t\t\t\tfocusStartEl = 'first'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (focusStartEl === 'first') {\n\t\t\t\t\t\t\t\tfocusFirstDescendant(\n\t\t\t\t\t\t\t\t\tobtainAllFocusableElements(trapContainer),\n\t\t\t\t\t\t\t\t\ttrue\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tdocument.activeElement === prevFocusedElement ||\n\t\t\t\t\t\t\t\tfocusStartEl === 'container'\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\ttryFocus(trapContainer)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction stopTrap () {\n\t\t\tconst trapContainer = unref(forwardRef)\n\n\t\t\tif (trapContainer) {\n\t\t\t\ttrapContainer.removeEventListener(FOCUS_AFTER_TRAPPED, trapOnFocus)\n\n\t\t\t\tconst releasedEvent = new CustomEvent(FOCUS_AFTER_RELEASED, {\n\t\t\t\t\t...FOCUS_AFTER_TRAPPED_OPTS,\n\t\t\t\t\tdetail: {\n\t\t\t\t\t\tfocusReason: focusReason.value,\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t\ttrapContainer.addEventListener(FOCUS_AFTER_RELEASED, releaseOnFocus)\n\t\t\t\ttrapContainer.dispatchEvent(releasedEvent)\n\t\t\t\tif (\n\t\t\t\t\t!releasedEvent.defaultPrevented &&\n\t\t\t\t\t(focusReason.value == 'keyboard' ||\n\t\t\t\t\t\t!isFocusCausedByUserEvent() ||\n\t\t\t\t\t\ttrapContainer.contains(document.activeElement))\n\t\t\t\t) {\n\t\t\t\t\ttryFocus(lastFocusBeforeTrapped ?? document.body)\n\t\t\t\t}\n\n\t\t\t\ttrapContainer.removeEventListener(FOCUS_AFTER_RELEASED, trapOnFocus)\n\t\t\t\tfocusableStack.remove(focusLayer)\n\t\t\t}\n\t\t}\n\n\t\tonMounted(() => {\n\t\t\tif (props.trapped) {\n\t\t\t\tstartTrap()\n\t\t\t}\n\n\t\t\twatch(\n\t\t\t\t() => props.trapped,\n\t\t\t\t(trapped) => {\n\t\t\t\t\tif (trapped) {\n\t\t\t\t\t\tstartTrap()\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstopTrap()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t})\n\n\t\tonBeforeUnmount(() => {\n\t\t\tif (props.trapped) {\n\t\t\t\tstopTrap()\n\t\t\t}\n\t\t})\n\n\t\treturn {\n\t\t\tonKeydown,\n\t\t}\n }\n});\n</script>\n"],"names":["_sfc_main","defineComponent","ON_TRAP_FOCUS_EVT","ON_RELEASE_FOCUS_EVT","props","emit","forwardRef","ref","lastFocusBeforeTrapped","lastFocusAfterTrapped","focusReason","useFocusReason","useEscapeKeydown","event","focusLayer","onKeydown","key","altKey","ctrlKey","metaKey","currentTarget","shiftKey","loop","isTabbing","EVENT_CODE","currentFocusingEl","container","first","last","getEdges","focusoutPreventedEvent","createFocusOutPreventedEvent","tryFocus","provide","FOCUS_TRAP_INJECTION_KEY","watch","focusTrapEl","oldForwardRef","onFocusIn","onFocusOut","trapOnFocus","releaseOnFocus","trapContainer","unref","target","relatedTarget","isFocusedInTrap","isNil","startTrap","nextTick","focusableStack","prevFocusedElement","focusEvent","FOCUS_AFTER_TRAPPED","FOCUS_AFTER_TRAPPED_OPTS","focusStartEl","isString","focusFirstDescendant","obtainAllFocusableElements","stopTrap","releasedEvent","FOCUS_AFTER_RELEASED","isFocusCausedByUserEvent","onMounted","trapped","onBeforeUnmount"],"mappings":";;;;;;;AAwCA,MAAAA,KAAeC,EAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,cAAc;AAAA,EACd,OAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,aAAa;AAAA,IACb,cAAc;AAAA,MACZ,MAAM,CAAC,QAAQ,MAAM;AAAA,MACrB,SAAS;AAAA,IACX;AAAA,EACF;AAAA,EACA,OAAO;AAAA,IACLC;AAAA,IACAC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,MAAOC,GAAO,EAAE,MAAAC,KAAQ;AACxB,UAAMC,IAAaC;AACf,QAAAC,GACAC;AAEE,UAAA,EAAE,aAAAC,MAAgBC;AAExB,IAAAC,EAAiB,CAACC,MAAU;AAC3B,MAAIT,EAAM,WAAW,CAACU,EAAW,UAChCT,EAAK,qBAAqBQ,CAAK;AAAA,IAChC,CACA;AAED,UAAMC,IAAyB;AAAA,MAC9B,QAAQ;AAAA,MACR,QAAS;AACR,aAAK,SAAS;AAAA,MACf;AAAA,MACA,SAAU;AACT,aAAK,SAAS;AAAA,MACf;AAAA,IAAA,GAGKC,IAAY,CAAC,MAAqB;AAEvC,UADI,CAACX,EAAM,QAAQ,CAACA,EAAM,WACtBU,EAAW;AAAQ;AAEvB,YAAM,EAAE,KAAAE,GAAK,QAAAC,GAAQ,SAAAC,GAAS,SAAAC,GAAS,eAAAC,GAAe,UAAAC,EAAa,IAAA,GAC7D,EAAE,MAAAC,EAAS,IAAAlB,GACXmB,IACLP,MAAQQ,EAAW,OAAO,CAACP,KAAU,CAACC,KAAW,CAACC,GAE7CM,IAAoB,SAAS;AACnC,UAAIF,KAAaE,GAAmB;AACnC,cAAMC,IAAYN,GACZ,CAACO,GAAOC,CAAI,IAAIC,EAASH,CAAS;AAExC,YADmBC,KAASC;AAYvB,cAAA,CAACP,KAAYI,MAAsBG,GAAM;AAC5C,kBAAME,IAAyBC,EAA6B;AAAA,cAC3D,aAAarB,EAAY;AAAA,YAAA,CACzB;AACD,YAAAL,EAAK,sBAAsByB,CAAsB,GAC5CA,EAAuB,qBAC3B,EAAE,eAAe,GACbR,KAAMU,EAASL,GAAO,EAAI;AAAA,UAC/B,WAEAN,KACA,CAACM,GAAOD,CAAS,EAAE,SAASD,CAAgC,GAC3D;AACD,kBAAMK,IAAyBC,EAA6B;AAAA,cAC3D,aAAarB,EAAY;AAAA,YAAA,CACzB;AACD,YAAAL,EAAK,sBAAsByB,CAAsB,GAC5CA,EAAuB,qBAC3B,EAAE,eAAe,GACbR,KAAMU,EAASJ,GAAM,EAAI;AAAA,UAE/B;AAAA,mBA/BIH,MAAsBC,GAAW;AACpC,gBAAMI,IAAyBC,EAA6B;AAAA,YAC3D,aAAarB,EAAY;AAAA,UAAA,CACzB;AACD,UAAAL,EAAK,sBAAsByB,CAAsB,GAC5CA,EAAuB,oBAC3B,EAAE,eAAe;AAAA,QAEnB;AAAA,MAyBF;AAAA,IAAA;AAGD,IAAAG,EAAQC,GAA0B;AAAA,MACjC,cAAc5B;AAAA,MACd,WAAAS;AAAA,IAAA,CACA,GAEDoB;AAAA,MACC,MAAM/B,EAAM;AAAA,MACZ,CAACgC,MAAgB;AAChB,QAAIA,MACH9B,EAAW,QAAQ8B;AAAA,MAErB;AAAA,MACA,EAAE,WAAW,GAAK;AAAA,IAAA,GAGbD,EAAA,CAAC7B,CAAU,GAAG,CAAC,CAACA,CAAU,GAAG,CAAC+B,CAAa,MAAM;AACtD,MAAI/B,MACHA,EAAW,iBAAiB,WAAWS,CAAS,GAChDT,EAAW,iBAAiB,WAAWgC,CAAS,GAChDhC,EAAW,iBAAiB,YAAYiC,CAAU,IAE/CF,MACWA,EAAA,oBAAoB,WAAWtB,CAAS,GACxCsB,EAAA,oBAAoB,WAAWC,CAAS,GACxCD,EAAA,oBAAoB,YAAYE,CAAU;AAAA,IACzD,CACA;AAEK,UAAAC,IAAc,CAAC,MAAa;AACjC,MAAAnC,EAAKH,GAAmB,CAAC;AAAA,IAAA,GAEpBuC,IAAiB,CAAC,MAAapC,EAAKF,GAAsB,CAAC,GAE3DmC,IAAY,CAAC,MAAkB;AAC9B,YAAAI,IAAgBC,EAAMrC,CAAU;AACtC,UAAI,CAACoC;AAAe;AAEpB,YAAME,IAAS,EAAE,QACXC,IAAgB,EAAE,eAClBC,IAAkBF,KAAUF,EAAc,SAASE,CAAM;AAY/D,MAVKxC,EAAM,WAETyC,KAAiBH,EAAc,SAASG,CAAa,MAE5BrC,IAAAqC,IAIvBC,KAAiBzC,EAAK,WAAW,CAAC,GAElC,CAAAS,EAAW,UAEXV,EAAM,YACL0C,IACqBrC,IAAAmC,IAExBZ,EAASvB,GAAuB,EAAI;AAAA,IAEtC,GAGK8B,IAAa,CAAC,MAAa;AAC1B,YAAAG,IAAgBC,EAAMrC,CAAU;AAClC,UAAA,EAAAQ,EAAW,UAAU,CAAC4B;AAE1B,YAAItC,EAAM,SAAS;AAClB,gBAAMyC,IAAiB,EACrB;AACE,UAAA,CAACE,EAAMF,CAAa,KAAK,CAACH,EAAc,SAASG,CAAa,KAGjE,WAAW,MAAM;AAChB,gBAAI,CAAC/B,EAAW,UAAUV,EAAM,SAAS;AACxC,oBAAM0B,IAAyBC,EAA6B;AAAA,gBAC3D,aAAarB,EAAY;AAAA,cAAA,CACzB;AACD,cAAAL,EAAK,sBAAsByB,CAAsB,GAC5CA,EAAuB,oBAC3BE,EAASvB,GAAuB,EAAI;AAAA,YAEtC;AAAA,aACE,CAAC;AAAA,QACL,OACM;AACN,gBAAMmC,IAAS,EAAE;AAEjB,UADwBA,KAAUF,EAAc,SAASE,CAAM,KACzCvC,EAAK,YAAY,CAAC;AAAA,QACzC;AAAA,IAAA;AAGD,mBAAe2C,IAAa;AAE3B,YAAMC,EAAS;AACT,YAAAP,IAAgBC,EAAMrC,CAAU;AACtC,UAAIoC,GAAe;AAClB,QAAAQ,EAAe,KAAKpC,CAAU;AAC9B,cAAMqC,IAAqBT,EAAc;AAAA,UACxC,SAAS;AAAA,QAAA,IAEPlC,IACA,SAAS;AAGZ,YAFyBA,IAAA2C,GAErB,CADyBT,EAAc,SAASS,CAAkB,GAC3C;AAC1B,gBAAMC,IAAa,IAAI;AAAA,YACtBC;AAAA,YACAC;AAAA,UAAA;AAEa,UAAAZ,EAAA,iBAAiBW,GAAqBb,CAAW,GAC/DE,EAAc,cAAcU,CAAU,GACjCA,EAAW,oBACfH,EAAS,MAAM;AACd,gBAAIM,IAAenD,EAAM;AACrB,YAACoD,EAASD,CAAY,MACzBvB,EAASuB,CAAY,GACjB,SAAS,kBAAkBA,MACfA,IAAA,WAGbA,MAAiB,WACpBE;AAAA,cACCC,EAA2BhB,CAAa;AAAA,cACxC;AAAA,YAAA,IAID,SAAS,kBAAkBS,KAC3BI,MAAiB,gBAEjBvB,EAASU,CAAa;AAAA,UACvB,CACA;AAAA,QAEH;AAAA,MACD;AAAA,IACD;AAEA,aAASiB,IAAY;AACd,YAAAjB,IAAgBC,EAAMrC,CAAU;AAEtC,UAAIoC,GAAe;AACJ,QAAAA,EAAA,oBAAoBW,GAAqBb,CAAW;AAE5D,cAAAoB,IAAgB,IAAI,YAAYC,GAAsB;AAAA,UAC3D,GAAGP;AAAA,UACH,QAAQ;AAAA,YACP,aAAa5C,EAAY;AAAA,UAC1B;AAAA,QAAA,CACA;AACa,QAAAgC,EAAA,iBAAiBmB,GAAsBpB,CAAc,GACnEC,EAAc,cAAckB,CAAa,GAExC,CAACA,EAAc,qBACdlD,EAAY,SAAS,cACrB,CAACoD,EAAA,KACDpB,EAAc,SAAS,SAAS,aAAa,MAErCV,EAAAxB,KAA0B,SAAS,IAAI,GAGnCkC,EAAA,oBAAoBmB,GAAsBrB,CAAW,GACnEU,EAAe,OAAOpC,CAAU;AAAA,MACjC;AAAA,IACD;AAEA,WAAAiD,EAAU,MAAM;AACf,MAAI3D,EAAM,WACC4C,KAGXb;AAAA,QACC,MAAM/B,EAAM;AAAA,QACZ,CAAC4D,MAAY;AACZ,UAAIA,IACOhB,MAEDW;QAEX;AAAA,MAAA;AAAA,IACD,CACA,GAEDM,EAAgB,MAAM;AACrB,MAAI7D,EAAM,WACAuD;IACV,CACA,GAEM;AAAA,MACN,WAAA5C;AAAA,IAAA;AAAA,EAED;AACF,CAAC;"}
@@ -0,0 +1,5 @@
1
+ import VftFocusTrap from './focus-trap.vue';
2
+ export { VftFocusTrap };
3
+ export default VftFocusTrap;
4
+ export * from './tokens';
5
+ export * from './utils';
@@ -0,0 +1,26 @@
1
+ import E from "./focus-trap.vue.mjs";
2
+ import { FOCUSOUT_PREVENTED as _, FOCUSOUT_PREVENTED_OPTS as F, FOCUS_AFTER_RELEASED as o, FOCUS_AFTER_TRAPPED as T, FOCUS_AFTER_TRAPPED_OPTS as O, FOCUS_TRAP_INJECTION_KEY as r, ON_RELEASE_FOCUS_EVT as S, ON_TRAP_FOCUS_EVT as u } from "./tokens.mjs";
3
+ import { createFocusOutPreventedEvent as a, focusFirstDescendant as c, focusableStack as P, getEdges as U, getVisibleElement as n, isFocusCausedByUserEvent as A, isHidden as C, obtainAllFocusableElements as i, tryFocus as l, useFocusReason as d } from "./utils.mjs";
4
+ export {
5
+ _ as FOCUSOUT_PREVENTED,
6
+ F as FOCUSOUT_PREVENTED_OPTS,
7
+ o as FOCUS_AFTER_RELEASED,
8
+ T as FOCUS_AFTER_TRAPPED,
9
+ O as FOCUS_AFTER_TRAPPED_OPTS,
10
+ r as FOCUS_TRAP_INJECTION_KEY,
11
+ S as ON_RELEASE_FOCUS_EVT,
12
+ u as ON_TRAP_FOCUS_EVT,
13
+ E as VftFocusTrap,
14
+ a as createFocusOutPreventedEvent,
15
+ E as default,
16
+ c as focusFirstDescendant,
17
+ P as focusableStack,
18
+ U as getEdges,
19
+ n as getVisibleElement,
20
+ A as isFocusCausedByUserEvent,
21
+ C as isHidden,
22
+ i as obtainAllFocusableElements,
23
+ l as tryFocus,
24
+ d as useFocusReason
25
+ };
26
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -0,0 +1,13 @@
1
+ import type { InjectionKey, Ref } from 'vue';
2
+ export declare const FOCUS_AFTER_TRAPPED = "focus-trap.focus-after-trapped";
3
+ export declare const FOCUS_AFTER_RELEASED = "focus-trap.focus-after-released";
4
+ export declare const FOCUSOUT_PREVENTED = "focus-trap.focusout-prevented";
5
+ export declare const FOCUS_AFTER_TRAPPED_OPTS: EventInit;
6
+ export declare const FOCUSOUT_PREVENTED_OPTS: EventInit;
7
+ export declare const ON_TRAP_FOCUS_EVT = "focusAfterTrapped";
8
+ export declare const ON_RELEASE_FOCUS_EVT = "focusAfterReleased";
9
+ export type FocusTrapInjectionContext = {
10
+ focusTrapRef: Ref<HTMLElement | undefined>;
11
+ onKeydown: (e: KeyboardEvent) => void;
12
+ };
13
+ export declare const FOCUS_TRAP_INJECTION_KEY: InjectionKey<FocusTrapInjectionContext>;
@@ -0,0 +1,18 @@
1
+ const e = "focus-trap.focus-after-trapped", s = "focus-trap.focus-after-released", t = "focus-trap.focusout-prevented", c = {
2
+ cancelable: !0,
3
+ bubbles: !1
4
+ }, E = {
5
+ cancelable: !0,
6
+ bubbles: !1
7
+ }, o = "focusAfterTrapped", _ = "focusAfterReleased", T = Symbol("vftFocusTrap");
8
+ export {
9
+ t as FOCUSOUT_PREVENTED,
10
+ E as FOCUSOUT_PREVENTED_OPTS,
11
+ s as FOCUS_AFTER_RELEASED,
12
+ e as FOCUS_AFTER_TRAPPED,
13
+ c as FOCUS_AFTER_TRAPPED_OPTS,
14
+ T as FOCUS_TRAP_INJECTION_KEY,
15
+ _ as ON_RELEASE_FOCUS_EVT,
16
+ o as ON_TRAP_FOCUS_EVT
17
+ };
18
+ //# sourceMappingURL=tokens.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.mjs","sources":["../../../../../packages/components/focus-trap/tokens.ts"],"sourcesContent":["import type { InjectionKey, Ref } from 'vue';\n\nexport const FOCUS_AFTER_TRAPPED = 'focus-trap.focus-after-trapped';\nexport const FOCUS_AFTER_RELEASED = 'focus-trap.focus-after-released';\nexport const FOCUSOUT_PREVENTED = 'focus-trap.focusout-prevented';\nexport const FOCUS_AFTER_TRAPPED_OPTS: EventInit = {\n\tcancelable: true,\n\tbubbles: false,\n};\nexport const FOCUSOUT_PREVENTED_OPTS: EventInit = {\n\tcancelable: true,\n\tbubbles: false,\n};\n\nexport const ON_TRAP_FOCUS_EVT = 'focusAfterTrapped';\nexport const ON_RELEASE_FOCUS_EVT = 'focusAfterReleased';\n\nexport type FocusTrapInjectionContext = {\n\tfocusTrapRef: Ref<HTMLElement | undefined>\n\tonKeydown: (e: KeyboardEvent) => void\n}\n\nexport const FOCUS_TRAP_INJECTION_KEY: InjectionKey<FocusTrapInjectionContext> =\n\tSymbol('vftFocusTrap');\n"],"names":["FOCUS_AFTER_TRAPPED","FOCUS_AFTER_RELEASED","FOCUSOUT_PREVENTED","FOCUS_AFTER_TRAPPED_OPTS","FOCUSOUT_PREVENTED_OPTS","ON_TRAP_FOCUS_EVT","ON_RELEASE_FOCUS_EVT","FOCUS_TRAP_INJECTION_KEY"],"mappings":"AAEO,MAAMA,IAAsB,kCACtBC,IAAuB,mCACvBC,IAAqB,iCACrBC,IAAsC;AAAA,EAClD,YAAY;AAAA,EACZ,SAAS;AACV,GACaC,IAAqC;AAAA,EACjD,YAAY;AAAA,EACZ,SAAS;AACV,GAEaC,IAAoB,qBACpBC,IAAuB,sBAOvBC,IACZ,OAAO,cAAc;"}
@@ -0,0 +1,29 @@
1
+ declare const focusReason: import("vue").Ref<"pointer" | "keyboard" | undefined>;
2
+ declare const lastUserFocusTimestamp: import("vue").Ref<number>;
3
+ declare const lastAutomatedFocusTimestamp: import("vue").Ref<number>;
4
+ export type FocusLayer = {
5
+ paused: boolean;
6
+ pause: () => void;
7
+ resume: () => void;
8
+ };
9
+ export type FocusStack = FocusLayer[];
10
+ export declare const obtainAllFocusableElements: (element: HTMLElement) => HTMLElement[];
11
+ export declare const getVisibleElement: (elements: HTMLElement[], container: HTMLElement) => HTMLElement | undefined;
12
+ export declare const isHidden: (element: HTMLElement, container: HTMLElement) => boolean;
13
+ export declare const getEdges: (container: HTMLElement) => (HTMLElement | undefined)[];
14
+ export declare const tryFocus: (element?: HTMLElement | {
15
+ focus: () => void;
16
+ } | null, shouldSelect?: boolean) => void;
17
+ export declare const focusFirstDescendant: (elements: HTMLElement[], shouldSelect?: boolean) => void;
18
+ export declare const focusableStack: {
19
+ push: (layer: FocusLayer) => void;
20
+ remove: (layer: FocusLayer) => void;
21
+ };
22
+ export declare const isFocusCausedByUserEvent: () => boolean;
23
+ export declare const useFocusReason: () => {
24
+ focusReason: typeof focusReason;
25
+ lastUserFocusTimestamp: typeof lastUserFocusTimestamp;
26
+ lastAutomatedFocusTimestamp: typeof lastAutomatedFocusTimestamp;
27
+ };
28
+ export declare const createFocusOutPreventedEvent: (detail: CustomEventInit['detail']) => CustomEvent<any>;
29
+ export {};
@@ -0,0 +1,90 @@
1
+ import { ref as i, onMounted as v, onBeforeUnmount as p } from "vue";
2
+ import { FOCUSOUT_PREVENTED as F, FOCUSOUT_PREVENTED_OPTS as w } from "./tokens.mjs";
3
+ const a = i(), u = i(0), d = i(0);
4
+ let r = 0;
5
+ const T = (e) => {
6
+ const n = [], o = document.createTreeWalker(e, NodeFilter.SHOW_ELEMENT, {
7
+ acceptNode: (t) => {
8
+ const s = t.tagName === "INPUT" && t.type === "hidden";
9
+ return t.disabled || t.hidden || s ? NodeFilter.FILTER_SKIP : t.tabIndex >= 0 || t === document.activeElement ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
10
+ }
11
+ });
12
+ for (; o.nextNode(); )
13
+ n.push(o.currentNode);
14
+ return n;
15
+ }, l = (e, n) => {
16
+ for (const o of e)
17
+ if (!N(o, n))
18
+ return o;
19
+ }, N = (e, n) => {
20
+ if (process.env.NODE_ENV === "test")
21
+ return !1;
22
+ if (getComputedStyle(e).visibility === "hidden")
23
+ return !0;
24
+ for (; e; ) {
25
+ if (n && e === n)
26
+ return !1;
27
+ if (getComputedStyle(e).display === "none")
28
+ return !0;
29
+ e = e.parentElement;
30
+ }
31
+ return !1;
32
+ }, R = (e) => {
33
+ const n = T(e), o = l(n, e), t = l(n.reverse(), e);
34
+ return [o, t];
35
+ }, y = (e) => e instanceof HTMLInputElement && "select" in e, S = (e, n) => {
36
+ if (e && e.focus) {
37
+ const o = document.activeElement;
38
+ e.focus({ preventScroll: !0 }), d.value = window.performance.now(), e !== o && y(e) && n && e.select();
39
+ }
40
+ };
41
+ function m(e, n) {
42
+ const o = [...e], t = e.indexOf(n);
43
+ return t !== -1 && o.splice(t, 1), o;
44
+ }
45
+ const L = () => {
46
+ let e = [];
47
+ return {
48
+ push: (t) => {
49
+ const s = e[0];
50
+ s && t !== s && s.pause(), e = m(e, t), e.unshift(t);
51
+ },
52
+ remove: (t) => {
53
+ var s, f;
54
+ e = m(e, t), (f = (s = e[0]) == null ? void 0 : s.resume) == null || f.call(s);
55
+ }
56
+ };
57
+ }, k = (e, n = !1) => {
58
+ const o = document.activeElement;
59
+ for (const t of e)
60
+ if (S(t, n), document.activeElement !== o)
61
+ return;
62
+ }, C = L(), I = () => u.value > d.value, c = () => {
63
+ a.value = "pointer", u.value = window.performance.now();
64
+ }, E = () => {
65
+ a.value = "keyboard", u.value = window.performance.now();
66
+ }, O = () => (v(() => {
67
+ r === 0 && (document.addEventListener("mousedown", c), document.addEventListener("touchstart", c), document.addEventListener("keydown", E)), r++;
68
+ }), p(() => {
69
+ r--, r <= 0 && (document.removeEventListener("mousedown", c), document.removeEventListener("touchstart", c), document.removeEventListener("keydown", E));
70
+ }), {
71
+ focusReason: a,
72
+ lastUserFocusTimestamp: u,
73
+ lastAutomatedFocusTimestamp: d
74
+ }), P = (e) => new CustomEvent(F, {
75
+ ...w,
76
+ detail: e
77
+ });
78
+ export {
79
+ P as createFocusOutPreventedEvent,
80
+ k as focusFirstDescendant,
81
+ C as focusableStack,
82
+ R as getEdges,
83
+ l as getVisibleElement,
84
+ I as isFocusCausedByUserEvent,
85
+ N as isHidden,
86
+ T as obtainAllFocusableElements,
87
+ S as tryFocus,
88
+ O as useFocusReason
89
+ };
90
+ //# sourceMappingURL=utils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.mjs","sources":["../../../../../packages/components/focus-trap/utils.ts"],"sourcesContent":["import { onBeforeUnmount, onMounted, ref } from 'vue'\nimport { FOCUSOUT_PREVENTED, FOCUSOUT_PREVENTED_OPTS } from './tokens'\n\nconst focusReason = ref<'pointer' | 'keyboard'>()\nconst lastUserFocusTimestamp = ref<number>(0)\nconst lastAutomatedFocusTimestamp = ref<number>(0)\nlet focusReasonUserCount = 0\n\nexport type FocusLayer = {\n\tpaused: boolean\n\tpause: () => void\n\tresume: () => void\n}\n\nexport type FocusStack = FocusLayer[]\n\nexport const obtainAllFocusableElements = (\n\telement: HTMLElement\n): HTMLElement[] => {\n\tconst nodes: HTMLElement[] = []\n\tconst walker = document.createTreeWalker(element, NodeFilter.SHOW_ELEMENT, {\n\t\tacceptNode: (\n\t\t\tnode: Element & {\n\t\t\t\tdisabled: boolean\n\t\t\t\thidden: boolean\n\t\t\t\ttype: string\n\t\t\t\ttabIndex: number\n\t\t\t}\n\t\t) => {\n\t\t\tconst isHiddenInput = node.tagName === 'INPUT' && node.type === 'hidden'\n\t\t\tif (node.disabled || node.hidden || isHiddenInput)\n\t\t\t\treturn NodeFilter.FILTER_SKIP\n\t\t\treturn node.tabIndex >= 0 || node === document.activeElement\n\t\t\t\t? NodeFilter.FILTER_ACCEPT\n\t\t\t\t: NodeFilter.FILTER_SKIP\n\t\t},\n\t})\n\twhile (walker.nextNode()) nodes.push(walker.currentNode as HTMLElement)\n\t\n\treturn nodes\n}\n\nexport const getVisibleElement = (\n\telements: HTMLElement[],\n\tcontainer: HTMLElement\n) => {\n\tfor (const element of elements) {\n\t\tif (!isHidden(element, container)) return element\n\t}\n}\n\nexport const isHidden = (element: HTMLElement, container: HTMLElement) => {\n\tif (process.env.NODE_ENV === 'test') return false\n\tif (getComputedStyle(element).visibility === 'hidden') return true\n\t\n\twhile (element) {\n\t\tif (container && element === container) return false\n\t\tif (getComputedStyle(element).display === 'none') return true\n\t\telement = element.parentElement as HTMLElement\n\t}\n\t\n\treturn false\n}\n\nexport const getEdges = (container: HTMLElement) => {\n\tconst focusable = obtainAllFocusableElements(container)\n\tconst first = getVisibleElement(focusable, container)\n\tconst last = getVisibleElement(focusable.reverse(), container)\n\treturn [first, last]\n}\n\nconst isSelectable = (\n\telement: any\n): element is HTMLInputElement & {select: () => void} => {\n\treturn element instanceof HTMLInputElement && 'select' in element\n}\n\nexport const tryFocus = (\n\telement?: HTMLElement | {focus: () => void} | null,\n\tshouldSelect?: boolean\n) => {\n\tif (element && element.focus) {\n\t\tconst prevFocusedElement = document.activeElement\n\t\telement.focus({ preventScroll: true })\n\t\tlastAutomatedFocusTimestamp.value = window.performance.now()\n\t\tif (\n\t\t\telement !== prevFocusedElement &&\n\t\t\tisSelectable(element) &&\n\t\t\tshouldSelect\n\t\t) {\n\t\t\telement.select()\n\t\t}\n\t}\n}\n\nfunction removeFromStack<T> (list: T[], item: T) {\n\tconst copy = [...list]\n\t\n\tconst idx = list.indexOf(item)\n\t\n\tif (idx !== -1) {\n\t\tcopy.splice(idx, 1)\n\t}\n\treturn copy\n}\n\nconst createFocusableStack = () => {\n\tlet stack = [] as FocusStack\n\t\n\tconst push = (layer: FocusLayer) => {\n\t\tconst currentLayer = stack[0]\n\t\t\n\t\tif (currentLayer && layer !== currentLayer) {\n\t\t\tcurrentLayer.pause()\n\t\t}\n\t\t\n\t\tstack = removeFromStack(stack, layer)\n\t\tstack.unshift(layer)\n\t}\n\t\n\tconst remove = (layer: FocusLayer) => {\n\t\tstack = removeFromStack(stack, layer)\n\t\tstack[0]?.resume?.()\n\t}\n\t\n\treturn {\n\t\tpush,\n\t\tremove,\n\t}\n}\n\nexport const focusFirstDescendant = (\n\telements: HTMLElement[],\n\tshouldSelect = false\n) => {\n\tconst prevFocusedElement = document.activeElement\n\tfor (const element of elements) {\n\t\ttryFocus(element, shouldSelect)\n\t\tif (document.activeElement !== prevFocusedElement) return\n\t}\n}\n\nexport const focusableStack = createFocusableStack()\n\nexport const isFocusCausedByUserEvent = (): boolean => {\n\treturn lastUserFocusTimestamp.value > lastAutomatedFocusTimestamp.value\n}\n\nconst notifyFocusReasonPointer = () => {\n\tfocusReason.value = 'pointer'\n\tlastUserFocusTimestamp.value = window.performance.now()\n}\n\nconst notifyFocusReasonKeydown = () => {\n\tfocusReason.value = 'keyboard'\n\tlastUserFocusTimestamp.value = window.performance.now()\n}\n\nexport const useFocusReason = (): {\n\tfocusReason: typeof focusReason\n\tlastUserFocusTimestamp: typeof lastUserFocusTimestamp\n\tlastAutomatedFocusTimestamp: typeof lastAutomatedFocusTimestamp\n} => {\n\tonMounted(() => {\n\t\tif (focusReasonUserCount === 0) {\n\t\t\tdocument.addEventListener('mousedown', notifyFocusReasonPointer)\n\t\t\tdocument.addEventListener('touchstart', notifyFocusReasonPointer)\n\t\t\tdocument.addEventListener('keydown', notifyFocusReasonKeydown)\n\t\t}\n\t\tfocusReasonUserCount++\n\t})\n\t\n\tonBeforeUnmount(() => {\n\t\tfocusReasonUserCount--\n\t\tif (focusReasonUserCount <= 0) {\n\t\t\tdocument.removeEventListener('mousedown', notifyFocusReasonPointer)\n\t\t\tdocument.removeEventListener('touchstart', notifyFocusReasonPointer)\n\t\t\tdocument.removeEventListener('keydown', notifyFocusReasonKeydown)\n\t\t}\n\t})\n\t\n\treturn {\n\t\tfocusReason,\n\t\tlastUserFocusTimestamp,\n\t\tlastAutomatedFocusTimestamp,\n\t}\n}\n\nexport const createFocusOutPreventedEvent = (\n\tdetail: CustomEventInit['detail']\n) => {\n\treturn new CustomEvent(FOCUSOUT_PREVENTED, {\n\t\t...FOCUSOUT_PREVENTED_OPTS,\n\t\tdetail,\n\t})\n}\n"],"names":["focusReason","ref","lastUserFocusTimestamp","lastAutomatedFocusTimestamp","focusReasonUserCount","obtainAllFocusableElements","element","nodes","walker","node","isHiddenInput","getVisibleElement","elements","container","isHidden","getEdges","focusable","first","last","isSelectable","tryFocus","shouldSelect","prevFocusedElement","removeFromStack","list","item","copy","idx","createFocusableStack","stack","layer","currentLayer","_b","_a","focusFirstDescendant","focusableStack","isFocusCausedByUserEvent","notifyFocusReasonPointer","notifyFocusReasonKeydown","useFocusReason","onMounted","onBeforeUnmount","createFocusOutPreventedEvent","detail","FOCUSOUT_PREVENTED","FOCUSOUT_PREVENTED_OPTS"],"mappings":"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"}
@@ -1,13 +1,17 @@
1
- import { defineComponent as o, computed as n, openBlock as c, createElementBlock as s, renderSlot as r } from "vue";
1
+ import { defineComponent as t, computed as i, openBlock as c, createElementBlock as s, renderSlot as r } from "vue";
2
2
  import { addUnit as a } from "@vft/utils";
3
- import { useNamespace as u } from "../../hooks/use-namespace/index.mjs";
3
+ import { useNamespace as f } from "../../hooks/use-namespace/index.mjs";
4
+ import "@popperjs/core";
5
+ import "lodash";
6
+ import "../../hooks/use-z-index/index.mjs";
7
+ import "@vueuse/core";
4
8
  import "@vue/shared";
5
- const f = (
9
+ const u = (
6
10
  /* hoist-static*/
7
- u("icon")
8
- ), m = o({
9
- name: f.b()
10
- }), I = /* @__PURE__ */ o({
11
+ f("icon")
12
+ ), m = t({
13
+ name: u.b()
14
+ }), b = /* @__PURE__ */ t({
11
15
  ...m,
12
16
  props: {
13
17
  dot: { type: Boolean },
@@ -21,18 +25,18 @@ const f = (
21
25
  scale: null
22
26
  },
23
27
  emits: ["click"],
24
- setup(i, { emit: d }) {
25
- n(() => {
26
- const e = {};
27
- return i.color && (e.color = i.color), i.size && (e.fontSize = a(i.size)), i.spin && (e.animation = "vri-rotate 1s linear 0s infinite"), i.cursor && (e.cursor = "pointer"), i.scale && (e.transform = "scale(0.8)"), e;
28
+ setup(e, { emit: d }) {
29
+ i(() => {
30
+ const o = {};
31
+ return e.color && (o.color = e.color), e.size && (o.fontSize = a(e.size)), e.spin && (o.animation = "vft-rotate 1s linear 0s infinite"), e.cursor && (o.cursor = "pointer"), e.scale && (o.transform = "scale(0.8)"), o;
28
32
  });
29
- const t = ((e) => e == null ? void 0 : e.includes("/"))(i.icon), l = n(() => i.classPrefix);
30
- return n(() => t ? "" : [i.icon.startsWith("vi-") ? "vicon" : "iconfont", `${l.value || ""}${i.icon}`]), (e, B) => (c(), s("div", null, [
31
- r(e.$slots, "default")
33
+ const n = ((o) => o == null ? void 0 : o.includes("/"))(e.icon), l = i(() => e.classPrefix);
34
+ return i(() => n ? "" : [e.icon.startsWith("vi-") ? "vicon" : "iconfont", `${l.value || ""}${e.icon}`]), (o, B) => (c(), s("div", null, [
35
+ r(o.$slots, "default")
32
36
  ]));
33
37
  }
34
38
  });
35
39
  export {
36
- I as default
40
+ b as default
37
41
  };
38
42
  //# sourceMappingURL=icon.vue2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"icon.vue2.mjs","sources":["../../../../../packages/components/icon/icon.vue"],"sourcesContent":["<script lang=\"ts\">\nconst ns = /* hoist-static*/ useNamespace('icon')\n\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n name: ns.b()\n});</script>\n<script lang=\"ts\" setup>\nimport { computed, type CSSProperties, inject } from 'vue';\nimport { addUnit } from '@vft/utils';\nimport { useNamespace } from '@vft-ui/hooks';\n\nexport interface IconProps {\n /** 是否显示图标右上角小红点 */\n dot?: boolean;\n /** 图标名称或图片链接 */\n icon: string;\n /** 图标大小 */\n size?: Numberish;\n /** 图标右上角徽标的内容 */\n badge?: Numberish;\n /** 图标颜色 */\n color?: string;\n /** 类名前缀,用于使用自定义图标 */\n classPrefix?: string;\n spin?: boolean;\n cursor?: boolean;\n scale?: number\n}\n\nconst emit = defineEmits(['click']);\n\ndefineProps({\n \"dot\": { type: Boolean, },\n \"icon\": null,\n \"size\": null,\n \"badge\": null,\n \"color\": null,\n \"classPrefix\": null,\n \"spin\": { type: Boolean, },\n \"cursor\": { type: Boolean, },\n \"scale\": null\n})\n\n\n\n;\n\nconst style = computed(() => {\n const _style: CSSProperties = {};\n if (__props.color) {\n _style['color'] = __props.color;\n }\n if (__props.size) {\n _style['fontSize'] = addUnit(__props.size);\n }\n if (__props.spin) {\n _style['animation'] = 'vri-rotate 1s linear 0s infinite';\n }\n if (__props.cursor) {\n _style['cursor'] = 'pointer';\n }\n if (__props.scale) {\n _style.transform = 'scale(0.8)';\n }\n return _style;\n});\n\nconst isImage = (name?: string) => name?.includes('/');\nconst isImageIcon = isImage(__props.icon);\n\n\nconst _classPrefix = computed(() => __props.classPrefix);\nconst classes = computed(() => (isImageIcon ? '' : [__props.icon.startsWith('vi-') ? 'vicon' : 'iconfont', `${_classPrefix.value || ''}${__props.icon}`]));\n</script>\n\n<template>\n\t<div>\n\t\t<slot></slot>\n\t</div>\n</template>\n"],"names":["ns","useNamespace","__default__","DO_defineComponent","computed","_style","__props","addUnit","isImageIcon","name","_classPrefix"],"mappings":";;;;AACA,MAAMA;AAAA;AAAA,EAAuBC,EAAa,MAAM;AAAA,GAGhDC,IAA6BC,EAAmB;AAAA,EAC9C,MAAMH,EAAG,EAAE;AACb,CAAC;;;;;;;;;;;;;;;AA0Ca,IAAAI,EAAS,MAAM;AAC3B,YAAMC,IAAwB,CAAA;AAC9B,aAAIC,EAAQ,UACHD,EAAA,QAAWC,EAAQ,QAExBA,EAAQ,SACVD,EAAO,WAAcE,EAAQD,EAAQ,IAAI,IAEvCA,EAAQ,SACVD,EAAO,YAAe,qCAEpBC,EAAQ,WACVD,EAAO,SAAY,YAEjBC,EAAQ,UACVD,EAAO,YAAY,eAEdA;AAAA,IAAA,CACR;AAGK,UAAAG,KADU,CAACC,MAAkBA,KAAA,gBAAAA,EAAM,SAAS,MACtBH,EAAQ,IAAI,GAGlCI,IAAeN,EAAS,MAAME,EAAQ,WAAW;AACvC,WAAAF,EAAS,MAAOI,IAAc,KAAK,CAACF,EAAQ,KAAK,WAAW,KAAK,IAAI,UAAU,YAAY,GAAGI,EAAa,SAAS,KAAKJ,EAAQ,MAAM,CAAE;;;;;"}
1
+ {"version":3,"file":"icon.vue2.mjs","sources":["../../../../../packages/components/icon/icon.vue"],"sourcesContent":["<script lang=\"ts\">\nconst ns = /* hoist-static*/ useNamespace('icon')\n\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n name: ns.b()\n});</script>\n<script lang=\"ts\" setup>\nimport { computed, type CSSProperties, inject } from 'vue';\nimport { addUnit } from '@vft/utils';\nimport { useNamespace } from '@vft-ui/hooks';\n\nexport interface IconProps {\n /** 是否显示图标右上角小红点 */\n dot?: boolean;\n /** 图标名称或图片链接 */\n icon: string;\n /** 图标大小 */\n size?: Numberish;\n /** 图标右上角徽标的内容 */\n badge?: Numberish;\n /** 图标颜色 */\n color?: string;\n /** 类名前缀,用于使用自定义图标 */\n classPrefix?: string;\n spin?: boolean;\n cursor?: boolean;\n scale?: number\n}\n\nconst emit = defineEmits(['click']);\n\ndefineProps({\n \"dot\": { type: Boolean, },\n \"icon\": null,\n \"size\": null,\n \"badge\": null,\n \"color\": null,\n \"classPrefix\": null,\n \"spin\": { type: Boolean, },\n \"cursor\": { type: Boolean, },\n \"scale\": null\n})\n\n\n\n;\n\nconst style = computed(() => {\n const _style: CSSProperties = {};\n if (__props.color) {\n _style['color'] = __props.color;\n }\n if (__props.size) {\n _style['fontSize'] = addUnit(__props.size);\n }\n if (__props.spin) {\n _style['animation'] = 'vft-rotate 1s linear 0s infinite';\n }\n if (__props.cursor) {\n _style['cursor'] = 'pointer';\n }\n if (__props.scale) {\n _style.transform = 'scale(0.8)';\n }\n return _style;\n});\n\nconst isImage = (name?: string) => name?.includes('/');\nconst isImageIcon = isImage(__props.icon);\n\n\nconst _classPrefix = computed(() => __props.classPrefix);\nconst classes = computed(() => (isImageIcon ? '' : [__props.icon.startsWith('vi-') ? 'vicon' : 'iconfont', `${_classPrefix.value || ''}${__props.icon}`]));\n</script>\n\n<template>\n\t<div>\n\t\t<slot></slot>\n\t</div>\n</template>\n"],"names":["ns","useNamespace","__default__","DO_defineComponent","computed","_style","__props","addUnit","isImageIcon","name","_classPrefix"],"mappings":";;;;;;;;AACA,MAAMA;AAAA;AAAA,EAAuBC,EAAa,MAAM;AAAA,GAGhDC,IAA6BC,EAAmB;AAAA,EAC9C,MAAMH,EAAG,EAAE;AACb,CAAC;;;;;;;;;;;;;;;AA0Ca,IAAAI,EAAS,MAAM;AAC3B,YAAMC,IAAwB,CAAA;AAC9B,aAAIC,EAAQ,UACHD,EAAA,QAAWC,EAAQ,QAExBA,EAAQ,SACVD,EAAO,WAAcE,EAAQD,EAAQ,IAAI,IAEvCA,EAAQ,SACVD,EAAO,YAAe,qCAEpBC,EAAQ,WACVD,EAAO,SAAY,YAEjBC,EAAQ,UACVD,EAAO,YAAY,eAEdA;AAAA,IAAA,CACR;AAGK,UAAAG,KADU,CAACC,MAAkBA,KAAA,gBAAAA,EAAM,SAAS,MACtBH,EAAQ,IAAI,GAGlCI,IAAeN,EAAS,MAAME,EAAQ,WAAW;AACvC,WAAAF,EAAS,MAAOI,IAAc,KAAK,CAACF,EAAQ,KAAK,WAAW,KAAK,IAAI,UAAU,YAAY,GAAGI,EAAa,SAAS,KAAKJ,EAAQ,MAAM,CAAE;;;;;"}