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 +1 @@
1
- {"version":3,"file":"empty.vue2.js","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":"sfACMA,EAAuBC,EAAAA,aAAa,OAAO,EAGjDC,EAA6BC,EAAAA,gBAAmB,CAC9C,KAAMH,EAAG,EAAE,CACb,CAAC,6GAoCD,MAAMI,EAAWC,EAAAA,qBAyCXC,MAvCiB,IAA8G,CACnI,CACAC,EAAAA,UAAU,WACR,CACE,KAAM,SACN,IAAKC,EAAA,OACP,CACF,EACA,CACAD,EAAAA,UAAU,aACR,CACE,KAAM,WACN,KAAM,IACN,IAAKE,EAAA,OACP,CACF,EACA,CACAF,EAAAA,UAAU,QACR,CACE,KAAM,OACN,IAAKG,EAAA,OACP,CACF,EACA,CACAH,EAAAA,UAAU,UACR,CACE,KAAM,YACN,IAAKI,EAAA,OACP,CACF,EACA,CACAJ,EAAAA,UAAU,UACR,CACE,KAAM,SACN,IAAKK,EAAA,OACP,CACF,CAAA,CACD,EAE2B,IAAIC,EAAQ,IAAI,EAEtCC,EAAaC,EAAAA,SAAS,IAAMF,EAAQ,MAAOP,GAAA,YAAAA,EAAU,IAAG,EAExDU,EAAcD,EAAAA,SAAS,IAAME,EAAAA,YAAYb,EAAU,OAAQ,CAAE,YAAaE,GAAA,YAAAA,EAAU,IAAK,CAAC,CAAC,EAE3FY,EAAYC,EAAAA,YAAYN,EAAQ,IAAc"}
1
+ {"version":3,"file":"empty.vue2.js","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":"smBACMA,EAAuBC,EAAAA,aAAa,OAAO,EAGjDC,EAA6BC,EAAAA,gBAAmB,CAC9C,KAAMH,EAAG,EAAE,CACb,CAAC,6GAoCD,MAAMI,EAAWC,EAAAA,qBAyCXC,MAvCiB,IAA8G,CACnI,CACAC,EAAAA,UAAU,WACR,CACE,KAAM,SACN,IAAKC,EAAA,OACP,CACF,EACA,CACAD,EAAAA,UAAU,aACR,CACE,KAAM,WACN,KAAM,IACN,IAAKE,EAAA,OACP,CACF,EACA,CACAF,EAAAA,UAAU,QACR,CACE,KAAM,OACN,IAAKG,EAAA,OACP,CACF,EACA,CACAH,EAAAA,UAAU,UACR,CACE,KAAM,YACN,IAAKI,EAAA,OACP,CACF,EACA,CACAJ,EAAAA,UAAU,UACR,CACE,KAAM,SACN,IAAKK,EAAA,OACP,CACF,CAAA,CACD,EAE2B,IAAIC,EAAQ,IAAI,EAEtCC,EAAaC,EAAAA,SAAS,IAAMF,EAAQ,MAAOP,GAAA,YAAAA,EAAU,IAAG,EAExDU,EAAcD,EAAAA,SAAS,IAAME,EAAAA,YAAYb,EAAU,OAAQ,CAAE,YAAaE,GAAA,YAAAA,EAAU,IAAK,CAAC,CAAC,EAE3FY,EAAYC,EAAAA,YAAYN,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,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("./focus-trap.vue2.js"),t=require("vue"),u=require("../../_virtual/_plugin-vue_export-helper.js");function o(e,s,l,a,d,c){return t.renderSlot(e.$slots,"default",{handleKeydown:e.onKeydown})}const n=u.default(r.default,[["render",o]]);exports.default=n;
2
+ //# sourceMappingURL=focus-trap.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus-trap.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const D=require("@vft/constants"),h=require("@vft/use"),k=require("@vft/utils"),q=require("lodash"),s=require("vue"),u=require("./tokens.js"),n=require("./utils.js"),I=s.defineComponent({name:"VftFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[u.ON_TRAP_FOCUS_EVT,u.ON_RELEASE_FOCUS_EVT,"focusin","focusout","focusout-prevented","release-requested"],setup(o,{emit:i}){const d=s.ref();let v,T;const{focusReason:l}=n.useFocusReason();h.useEscapeKeydown(e=>{o.trapped&&!E.paused&&i("release-requested",e)});const E={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},F=e=>{if(!o.loop&&!o.trapped||E.paused)return;const{key:t,altKey:c,ctrlKey:r,metaKey:a,currentTarget:y,shiftKey:b}=e,{loop:g}=o,U=t===D.EVENT_CODE.tab&&!c&&!r&&!a,p=document.activeElement;if(U&&p){const P=y,[O,S]=n.getEdges(P);if(O&&S){if(!b&&p===S){const f=n.createFocusOutPreventedEvent({focusReason:l.value});i("focusout-prevented",f),f.defaultPrevented||(e.preventDefault(),g&&n.tryFocus(O,!0))}else if(b&&[O,P].includes(p)){const f=n.createFocusOutPreventedEvent({focusReason:l.value});i("focusout-prevented",f),f.defaultPrevented||(e.preventDefault(),g&&n.tryFocus(S,!0))}}else if(p===P){const f=n.createFocusOutPreventedEvent({focusReason:l.value});i("focusout-prevented",f),f.defaultPrevented||e.preventDefault()}}};s.provide(u.FOCUS_TRAP_INJECTION_KEY,{focusTrapRef:d,onKeydown:F}),s.watch(()=>o.focusTrapEl,e=>{e&&(d.value=e)},{immediate:!0}),s.watch([d],([e],[t])=>{e&&(e.addEventListener("keydown",F),e.addEventListener("focusin",m),e.addEventListener("focusout",A)),t&&(t.removeEventListener("keydown",F),t.removeEventListener("focusin",m),t.removeEventListener("focusout",A))});const _=e=>{i(u.ON_TRAP_FOCUS_EVT,e)},L=e=>i(u.ON_RELEASE_FOCUS_EVT,e),m=e=>{const t=s.unref(d);if(!t)return;const c=e.target,r=e.relatedTarget,a=c&&t.contains(c);o.trapped||r&&t.contains(r)||(v=r),a&&i("focusin",e),!E.paused&&o.trapped&&(a?T=c:n.tryFocus(T,!0))},A=e=>{const t=s.unref(d);if(!(E.paused||!t))if(o.trapped){const c=e.relatedTarget;!q.isNil(c)&&!t.contains(c)&&setTimeout(()=>{if(!E.paused&&o.trapped){const r=n.createFocusOutPreventedEvent({focusReason:l.value});i("focusout-prevented",r),r.defaultPrevented||n.tryFocus(T,!0)}},0)}else{const c=e.target;c&&t.contains(c)||i("focusout",e)}};async function C(){await s.nextTick();const e=s.unref(d);if(e){n.focusableStack.push(E);const t=e.contains(document.activeElement)?v:document.activeElement;if(v=t,!e.contains(t)){const r=new Event(u.FOCUS_AFTER_TRAPPED,u.FOCUS_AFTER_TRAPPED_OPTS);e.addEventListener(u.FOCUS_AFTER_TRAPPED,_),e.dispatchEvent(r),r.defaultPrevented||s.nextTick(()=>{let a=o.focusStartEl;k.isString(a)||(n.tryFocus(a),document.activeElement!==a&&(a="first")),a==="first"&&n.focusFirstDescendant(n.obtainAllFocusableElements(e),!0),(document.activeElement===t||a==="container")&&n.tryFocus(e)})}}}function R(){const e=s.unref(d);if(e){e.removeEventListener(u.FOCUS_AFTER_TRAPPED,_);const t=new CustomEvent(u.FOCUS_AFTER_RELEASED,{...u.FOCUS_AFTER_TRAPPED_OPTS,detail:{focusReason:l.value}});e.addEventListener(u.FOCUS_AFTER_RELEASED,L),e.dispatchEvent(t),!t.defaultPrevented&&(l.value=="keyboard"||!n.isFocusCausedByUserEvent()||e.contains(document.activeElement))&&n.tryFocus(v??document.body),e.removeEventListener(u.FOCUS_AFTER_RELEASED,_),n.focusableStack.remove(E)}}return s.onMounted(()=>{o.trapped&&C(),s.watch(()=>o.trapped,e=>{e?C():R()})}),s.onBeforeUnmount(()=>{o.trapped&&R()}),{onKeydown:F}}});exports.default=I;
2
+ //# sourceMappingURL=focus-trap.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focus-trap.vue2.js","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":"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"}
@@ -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,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const s=require("./focus-trap.vue.js"),E=require("./tokens.js"),e=require("./utils.js");exports.VftFocusTrap=s.default;exports.default=s.default;exports.FOCUSOUT_PREVENTED=E.FOCUSOUT_PREVENTED;exports.FOCUSOUT_PREVENTED_OPTS=E.FOCUSOUT_PREVENTED_OPTS;exports.FOCUS_AFTER_RELEASED=E.FOCUS_AFTER_RELEASED;exports.FOCUS_AFTER_TRAPPED=E.FOCUS_AFTER_TRAPPED;exports.FOCUS_AFTER_TRAPPED_OPTS=E.FOCUS_AFTER_TRAPPED_OPTS;exports.FOCUS_TRAP_INJECTION_KEY=E.FOCUS_TRAP_INJECTION_KEY;exports.ON_RELEASE_FOCUS_EVT=E.ON_RELEASE_FOCUS_EVT;exports.ON_TRAP_FOCUS_EVT=E.ON_TRAP_FOCUS_EVT;exports.createFocusOutPreventedEvent=e.createFocusOutPreventedEvent;exports.focusFirstDescendant=e.focusFirstDescendant;exports.focusableStack=e.focusableStack;exports.getEdges=e.getEdges;exports.getVisibleElement=e.getVisibleElement;exports.isFocusCausedByUserEvent=e.isFocusCausedByUserEvent;exports.isHidden=e.isHidden;exports.obtainAllFocusableElements=e.obtainAllFocusableElements;exports.tryFocus=e.tryFocus;exports.useFocusReason=e.useFocusReason;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","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,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E="focus-trap.focus-after-trapped",_="focus-trap.focus-after-released",T="focus-trap.focusout-prevented",e={cancelable:!0,bubbles:!1},O={cancelable:!0,bubbles:!1},t="focusAfterTrapped",S="focusAfterReleased",s=Symbol("vftFocusTrap");exports.FOCUSOUT_PREVENTED=T;exports.FOCUSOUT_PREVENTED_OPTS=O;exports.FOCUS_AFTER_RELEASED=_;exports.FOCUS_AFTER_TRAPPED=E;exports.FOCUS_AFTER_TRAPPED_OPTS=e;exports.FOCUS_TRAP_INJECTION_KEY=s;exports.ON_RELEASE_FOCUS_EVT=S;exports.ON_TRAP_FOCUS_EVT=t;
2
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","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":"gFAEO,MAAMA,EAAsB,iCACtBC,EAAuB,kCACvBC,EAAqB,gCACrBC,EAAsC,CAClD,WAAY,GACZ,QAAS,EACV,EACaC,EAAqC,CACjD,WAAY,GACZ,QAAS,EACV,EAEaC,EAAoB,oBACpBC,EAAuB,qBAOvBC,EACZ,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,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("vue"),E=require("./tokens.js"),d=r.ref(),i=r.ref(0),l=r.ref(0);let c=0;const F=e=>{const n=[],o=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:t=>{const s=t.tagName==="INPUT"&&t.type==="hidden";return t.disabled||t.hidden||s?NodeFilter.FILTER_SKIP:t.tabIndex>=0||t===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;o.nextNode();)n.push(o.currentNode);return n},a=(e,n)=>{for(const o of e)if(!p(o,n))return o},p=(e,n)=>{if(process.env.NODE_ENV==="test")return!1;if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(n&&e===n)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1},b=e=>{const n=F(e),o=a(n,e),t=a(n.reverse(),e);return[o,t]},y=e=>e instanceof HTMLInputElement&&"select"in e,w=(e,n)=>{if(e&&e.focus){const o=document.activeElement;e.focus({preventScroll:!0}),l.value=window.performance.now(),e!==o&&y(e)&&n&&e.select()}};function m(e,n){const o=[...e],t=e.indexOf(n);return t!==-1&&o.splice(t,1),o}const S=()=>{let e=[];return{push:t=>{const s=e[0];s&&t!==s&&s.pause(),e=m(e,t),e.unshift(t)},remove:t=>{var s,f;e=m(e,t),(f=(s=e[0])==null?void 0:s.resume)==null||f.call(s)}}},T=(e,n=!1)=>{const o=document.activeElement;for(const t of e)if(w(t,n),document.activeElement!==o)return},N=S(),L=()=>i.value>l.value,u=()=>{d.value="pointer",i.value=window.performance.now()},v=()=>{d.value="keyboard",i.value=window.performance.now()},g=()=>(r.onMounted(()=>{c===0&&(document.addEventListener("mousedown",u),document.addEventListener("touchstart",u),document.addEventListener("keydown",v)),c++}),r.onBeforeUnmount(()=>{c--,c<=0&&(document.removeEventListener("mousedown",u),document.removeEventListener("touchstart",u),document.removeEventListener("keydown",v))}),{focusReason:d,lastUserFocusTimestamp:i,lastAutomatedFocusTimestamp:l}),h=e=>new CustomEvent(E.FOCUSOUT_PREVENTED,{...E.FOCUSOUT_PREVENTED_OPTS,detail:e});exports.createFocusOutPreventedEvent=h;exports.focusFirstDescendant=T;exports.focusableStack=N;exports.getEdges=b;exports.getVisibleElement=a;exports.isFocusCausedByUserEvent=L;exports.isHidden=p;exports.obtainAllFocusableElements=F;exports.tryFocus=w;exports.useFocusReason=g;
2
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","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":"gIAGMA,EAAcC,EAA4B,IAAA,EAC1CC,EAAyBD,EAAAA,IAAY,CAAC,EACtCE,EAA8BF,EAAAA,IAAY,CAAC,EACjD,IAAIG,EAAuB,EAUd,MAAAC,EACZC,GACmB,CACnB,MAAMC,EAAuB,CAAA,EACvBC,EAAS,SAAS,iBAAiBF,EAAS,WAAW,aAAc,CAC1E,WACCG,GAMI,CACJ,MAAMC,EAAgBD,EAAK,UAAY,SAAWA,EAAK,OAAS,SAC5D,OAAAA,EAAK,UAAYA,EAAK,QAAUC,EAC5B,WAAW,YACZD,EAAK,UAAY,GAAKA,IAAS,SAAS,cAC5C,WAAW,cACX,WAAW,WACf,CAAA,CACA,EACD,KAAOD,EAAO,SAAS,GAASD,EAAA,KAAKC,EAAO,WAA0B,EAE/D,OAAAD,CACR,EAEaI,EAAoB,CAChCC,EACAC,IACI,CACJ,UAAWP,KAAWM,EACjB,GAAA,CAACE,EAASR,EAASO,CAAS,EAAU,OAAAP,CAE5C,EAEaQ,EAAW,CAACR,EAAsBO,IAA2B,CACrE,GAAA,QAAQ,IAAI,WAAa,OAAe,MAAA,GACxC,GAAA,iBAAiBP,CAAO,EAAE,aAAe,SAAiB,MAAA,GAE9D,KAAOA,GAAS,CACf,GAAIO,GAAaP,IAAYO,EAAkB,MAAA,GAC3C,GAAA,iBAAiBP,CAAO,EAAE,UAAY,OAAe,MAAA,GACzDA,EAAUA,EAAQ,aACnB,CAEO,MAAA,EACR,EAEaS,EAAYF,GAA2B,CAC7C,MAAAG,EAAYX,EAA2BQ,CAAS,EAChDI,EAAQN,EAAkBK,EAAWH,CAAS,EAC9CK,EAAOP,EAAkBK,EAAU,UAAWH,CAAS,EACtD,MAAA,CAACI,EAAOC,CAAI,CACpB,EAEMC,EACLb,GAEOA,aAAmB,kBAAoB,WAAYA,EAG9Cc,EAAW,CACvBd,EACAe,IACI,CACA,GAAAf,GAAWA,EAAQ,MAAO,CAC7B,MAAMgB,EAAqB,SAAS,cACpChB,EAAQ,MAAM,CAAE,cAAe,EAAM,CAAA,EACTH,EAAA,MAAQ,OAAO,YAAY,IAAI,EAE1DG,IAAYgB,GACZH,EAAab,CAAO,GACpBe,GAEAf,EAAQ,OAAO,CAEjB,CACD,EAEA,SAASiB,EAAoBC,EAAWC,EAAS,CAC1C,MAAAC,EAAO,CAAC,GAAGF,CAAI,EAEfG,EAAMH,EAAK,QAAQC,CAAI,EAE7B,OAAIE,IAAQ,IACND,EAAA,OAAOC,EAAK,CAAC,EAEZD,CACR,CAEA,MAAME,EAAuB,IAAM,CAClC,IAAIC,EAAQ,CAAA,EAkBL,MAAA,CACN,KAjBaC,GAAsB,CAC7B,MAAAC,EAAeF,EAAM,CAAC,EAExBE,GAAgBD,IAAUC,GAC7BA,EAAa,MAAM,EAGZF,EAAAN,EAAgBM,EAAOC,CAAK,EACpCD,EAAM,QAAQC,CAAK,CAAA,EAUnB,OAPeA,GAAsB,SAC7BD,EAAAN,EAAgBM,EAAOC,CAAK,GAC9BE,GAAAC,EAAAJ,EAAA,CAAC,IAAD,YAAAI,EAAI,SAAJ,MAAAD,EAAA,KAAAC,EAAa,CAKnB,CAEF,EAEaC,EAAuB,CACnCtB,EACAS,EAAe,KACX,CACJ,MAAMC,EAAqB,SAAS,cACpC,UAAWhB,KAAWM,EAErB,GADAQ,EAASd,EAASe,CAAY,EAC1B,SAAS,gBAAkBC,EAAoB,MAErD,EAEaa,EAAiBP,EAAqB,EAEtCQ,EAA2B,IAChClC,EAAuB,MAAQC,EAA4B,MAG7DkC,EAA2B,IAAM,CACtCrC,EAAY,MAAQ,UACGE,EAAA,MAAQ,OAAO,YAAY,IAAI,CACvD,EAEMoC,EAA2B,IAAM,CACtCtC,EAAY,MAAQ,WACGE,EAAA,MAAQ,OAAO,YAAY,IAAI,CACvD,EAEaqC,EAAiB,KAK7BC,EAAAA,UAAU,IAAM,CACXpC,IAAyB,IACnB,SAAA,iBAAiB,YAAaiC,CAAwB,EACtD,SAAA,iBAAiB,aAAcA,CAAwB,EACvD,SAAA,iBAAiB,UAAWC,CAAwB,GAE9DlC,GAAA,CACA,EAEDqC,EAAAA,gBAAgB,IAAM,CACrBrC,IACIA,GAAwB,IAClB,SAAA,oBAAoB,YAAaiC,CAAwB,EACzD,SAAA,oBAAoB,aAAcA,CAAwB,EAC1D,SAAA,oBAAoB,UAAWC,CAAwB,EACjE,CACA,EAEM,CACN,YAAAtC,EACA,uBAAAE,EACA,4BAAAC,CAAA,GAIWuC,EACZC,GAEO,IAAI,YAAYC,qBAAoB,CAC1C,GAAGC,EAAA,wBACH,OAAAF,CAAA,CACA"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("vue"),c=require("@vft/utils"),l=require("../../hooks/use-namespace/index.js");require("@vue/shared");const s=l.useNamespace("icon"),u=i.defineComponent({name:s.b()}),r=i.defineComponent({...u,props:{dot:{type:Boolean},icon:null,size:null,badge:null,color:null,classPrefix:null,spin:{type:Boolean},cursor:{type:Boolean},scale:null},emits:["click"],setup(n,{emit:a}){i.computed(()=>{const e={};return n.color&&(e.color=n.color),n.size&&(e.fontSize=c.addUnit(n.size)),n.spin&&(e.animation="vri-rotate 1s linear 0s infinite"),n.cursor&&(e.cursor="pointer"),n.scale&&(e.transform="scale(0.8)"),e});const t=(e=>e==null?void 0:e.includes("/"))(n.icon),o=i.computed(()=>n.classPrefix);return i.computed(()=>t?"":[n.icon.startsWith("vi-")?"vicon":"iconfont",`${o.value||""}${n.icon}`]),(e,f)=>(i.openBlock(),i.createElementBlock("div",null,[i.renderSlot(e.$slots,"default")]))}});exports.default=r;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const n=require("vue"),c=require("@vft/utils"),l=require("../../hooks/use-namespace/index.js");require("@popperjs/core");require("lodash");require("../../hooks/use-z-index/index.js");require("@vueuse/core");require("@vue/shared");const s=l.useNamespace("icon"),r=n.defineComponent({name:s.b()}),u=n.defineComponent({...r,props:{dot:{type:Boolean},icon:null,size:null,badge:null,color:null,classPrefix:null,spin:{type:Boolean},cursor:{type:Boolean},scale:null},emits:["click"],setup(i,{emit:a}){n.computed(()=>{const e={};return i.color&&(e.color=i.color),i.size&&(e.fontSize=c.addUnit(i.size)),i.spin&&(e.animation="vft-rotate 1s linear 0s infinite"),i.cursor&&(e.cursor="pointer"),i.scale&&(e.transform="scale(0.8)"),e});const t=(e=>e==null?void 0:e.includes("/"))(i.icon),o=n.computed(()=>i.classPrefix);return n.computed(()=>t?"":[i.icon.startsWith("vi-")?"vicon":"iconfont",`${o.value||""}${i.icon}`]),(e,d)=>(n.openBlock(),n.createElementBlock("div",null,[n.renderSlot(e.$slots,"default")]))}});exports.default=u;
2
2
  //# sourceMappingURL=icon.vue2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"icon.vue2.js","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":"kOACA,MAAMA,EAAuBC,EAAAA,aAAa,MAAM,EAGhDC,EAA6BC,EAAAA,gBAAmB,CAC9C,KAAMH,EAAG,EAAE,CACb,CAAC,yMA0CaI,EAAAA,SAAS,IAAM,CAC3B,MAAMC,EAAwB,CAAA,EAC9B,OAAIC,EAAQ,QACHD,EAAA,MAAWC,EAAQ,OAExBA,EAAQ,OACVD,EAAO,SAAcE,EAAQ,QAAAD,EAAQ,IAAI,GAEvCA,EAAQ,OACVD,EAAO,UAAe,oCAEpBC,EAAQ,SACVD,EAAO,OAAY,WAEjBC,EAAQ,QACVD,EAAO,UAAY,cAEdA,CAAA,CACR,EAGK,MAAAG,GADWC,GAAkBA,GAAA,YAAAA,EAAM,SAAS,MACtBH,EAAQ,IAAI,EAGlCI,EAAeN,EAAA,SAAS,IAAME,EAAQ,WAAW,EACvCF,OAAAA,WAAS,IAAOI,EAAc,GAAK,CAACF,EAAQ,KAAK,WAAW,KAAK,EAAI,QAAU,WAAY,GAAGI,EAAa,OAAS,KAAKJ,EAAQ,MAAM,CAAE"}
1
+ {"version":3,"file":"icon.vue2.js","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":"kVACA,MAAMA,EAAuBC,EAAAA,aAAa,MAAM,EAGhDC,EAA6BC,EAAAA,gBAAmB,CAC9C,KAAMH,EAAG,EAAE,CACb,CAAC,yMA0CaI,EAAAA,SAAS,IAAM,CAC3B,MAAMC,EAAwB,CAAA,EAC9B,OAAIC,EAAQ,QACHD,EAAA,MAAWC,EAAQ,OAExBA,EAAQ,OACVD,EAAO,SAAcE,EAAQ,QAAAD,EAAQ,IAAI,GAEvCA,EAAQ,OACVD,EAAO,UAAe,oCAEpBC,EAAQ,SACVD,EAAO,OAAY,WAEjBC,EAAQ,QACVD,EAAO,UAAY,cAEdA,CAAA,CACR,EAGK,MAAAG,GADWC,GAAkBA,GAAA,YAAAA,EAAM,SAAS,MACtBH,EAAQ,IAAI,EAGlCI,EAAeN,EAAA,SAAS,IAAME,EAAQ,WAAW,EACvCF,OAAAA,WAAS,IAAOI,EAAc,GAAK,CAACF,EAAQ,KAAK,WAAW,KAAK,EAAI,QAAU,WAAY,GAAGI,EAAa,OAAS,KAAKJ,EAAQ,MAAM,CAAE"}
@@ -5,3 +5,8 @@ export * from './empty';
5
5
  export * from './result';
6
6
  export * from './exception';
7
7
  export * from './tabs';
8
+ export * from './popper';
9
+ export * from './collapse-transition';
10
+ export * from './tooltip';
11
+ export * from './popover';
12
+ export * from './menu';
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./divider/index.js"),n=require("./icon/index.js"),r=require("./avatar/index.js"),i=require("./empty/index.js"),o=require("./result/index.js"),s=require("./exception/index.js"),t=require("./tabs/index.js"),f=require("./empty/constants.js"),c=require("./tabs/types.js");exports.VftDivider=e.VftDivider;exports.VftIcon=n.VftIcon;exports.VftAvatar=r.VftAvatar;exports.VftEmpty=i.VftEmpty;exports.VftResult=o.VftResult;exports.VftException=s.VftException;exports.VftTabPane=t.VftTabPane;exports.VftTabs=t.VftTabs;exports.EmptyEnum=f.EmptyEnum;exports.TabsRootContextKey=c.TabsRootContextKey;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./divider/index.js"),n=require("./icon/index.js"),o=require("./avatar/index.js"),u=require("./empty/index.js"),i=require("./result/index.js"),f=require("./exception/index.js"),t=require("./tabs/index.js"),s=require("./popper/index.js"),p=require("./collapse-transition/index.js"),V=require("./tooltip/index.js"),c=require("./popover/index.js"),e=require("./menu/index.js"),a=require("./empty/constants.js"),_=require("./tabs/types.js"),d=require("./popper/arrow.vue2.js"),l=require("./popper/trigger.vue2.js"),q=require("./popper/content.vue2.js");exports.VftDivider=r.VftDivider;exports.VftIcon=n.VftIcon;exports.VftAvatar=o.VftAvatar;exports.VftEmpty=u.VftEmpty;exports.VftResult=i.VftResult;exports.VftException=f.VftException;exports.VftTabPane=t.VftTabPane;exports.VftTabs=t.VftTabs;exports.VftPopper=s.VftPopper;exports.VftCollapseTransition=p.VftCollapseTransition;exports.VftTooltip=V.VftTooltip;exports.VftPopover=c.VftPopover;exports.VftMenu=e.VftMenu;exports.VftMenuItem=e.VftMenuItem;exports.VftMenuItemGroup=e.VftMenuItemGroup;exports.VftSubMenu=e.VftSubMenu;exports.EmptyEnum=a.EmptyEnum;exports.TabsRootContextKey=_.TabsRootContextKey;exports.VftPopperArrow=d.default;exports.VftPopperTrigger=l.default;exports.VftPopperContent=q.default;
2
2
  //# sourceMappingURL=index.js.map