@element-plus/nightly 0.0.20250916 → 0.0.20250918

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 (628) hide show
  1. package/attributes.json +1 -1
  2. package/dist/index.full.js +68 -30
  3. package/dist/index.full.min.js +12 -12
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +13 -13
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +68 -30
  8. package/dist/locale/af.js +1 -1
  9. package/dist/locale/af.min.js +1 -1
  10. package/dist/locale/af.min.mjs +1 -1
  11. package/dist/locale/af.mjs +1 -1
  12. package/dist/locale/ar-eg.js +1 -1
  13. package/dist/locale/ar-eg.min.js +1 -1
  14. package/dist/locale/ar-eg.min.mjs +1 -1
  15. package/dist/locale/ar-eg.mjs +1 -1
  16. package/dist/locale/ar.js +1 -1
  17. package/dist/locale/ar.min.js +1 -1
  18. package/dist/locale/ar.min.mjs +1 -1
  19. package/dist/locale/ar.mjs +1 -1
  20. package/dist/locale/az.js +1 -1
  21. package/dist/locale/az.min.js +1 -1
  22. package/dist/locale/az.min.mjs +1 -1
  23. package/dist/locale/az.mjs +1 -1
  24. package/dist/locale/bg.js +1 -1
  25. package/dist/locale/bg.min.js +1 -1
  26. package/dist/locale/bg.min.mjs +1 -1
  27. package/dist/locale/bg.mjs +1 -1
  28. package/dist/locale/bn.js +1 -1
  29. package/dist/locale/bn.min.js +1 -1
  30. package/dist/locale/bn.min.mjs +1 -1
  31. package/dist/locale/bn.mjs +1 -1
  32. package/dist/locale/ca.js +1 -1
  33. package/dist/locale/ca.min.js +1 -1
  34. package/dist/locale/ca.min.mjs +1 -1
  35. package/dist/locale/ca.mjs +1 -1
  36. package/dist/locale/ckb.js +1 -1
  37. package/dist/locale/ckb.min.js +1 -1
  38. package/dist/locale/ckb.min.mjs +1 -1
  39. package/dist/locale/ckb.mjs +1 -1
  40. package/dist/locale/cs.js +1 -1
  41. package/dist/locale/cs.min.js +1 -1
  42. package/dist/locale/cs.min.mjs +1 -1
  43. package/dist/locale/cs.mjs +1 -1
  44. package/dist/locale/da.js +1 -1
  45. package/dist/locale/da.min.js +1 -1
  46. package/dist/locale/da.min.mjs +1 -1
  47. package/dist/locale/da.mjs +1 -1
  48. package/dist/locale/de.js +1 -1
  49. package/dist/locale/de.min.js +1 -1
  50. package/dist/locale/de.min.mjs +1 -1
  51. package/dist/locale/de.mjs +1 -1
  52. package/dist/locale/el.js +1 -1
  53. package/dist/locale/el.min.js +1 -1
  54. package/dist/locale/el.min.mjs +1 -1
  55. package/dist/locale/el.mjs +1 -1
  56. package/dist/locale/en.js +1 -1
  57. package/dist/locale/en.min.js +1 -1
  58. package/dist/locale/en.min.mjs +1 -1
  59. package/dist/locale/en.mjs +1 -1
  60. package/dist/locale/eo.js +1 -1
  61. package/dist/locale/eo.min.js +1 -1
  62. package/dist/locale/eo.min.mjs +1 -1
  63. package/dist/locale/eo.mjs +1 -1
  64. package/dist/locale/es.js +1 -1
  65. package/dist/locale/es.min.js +1 -1
  66. package/dist/locale/es.min.mjs +1 -1
  67. package/dist/locale/es.mjs +1 -1
  68. package/dist/locale/et.js +1 -1
  69. package/dist/locale/et.min.js +1 -1
  70. package/dist/locale/et.min.mjs +1 -1
  71. package/dist/locale/et.mjs +1 -1
  72. package/dist/locale/eu.js +1 -1
  73. package/dist/locale/eu.min.js +1 -1
  74. package/dist/locale/eu.min.mjs +1 -1
  75. package/dist/locale/eu.mjs +1 -1
  76. package/dist/locale/fa.js +1 -1
  77. package/dist/locale/fa.min.js +1 -1
  78. package/dist/locale/fa.min.mjs +1 -1
  79. package/dist/locale/fa.mjs +1 -1
  80. package/dist/locale/fi.js +1 -1
  81. package/dist/locale/fi.min.js +1 -1
  82. package/dist/locale/fi.min.mjs +1 -1
  83. package/dist/locale/fi.mjs +1 -1
  84. package/dist/locale/fr.js +1 -1
  85. package/dist/locale/fr.min.js +1 -1
  86. package/dist/locale/fr.min.mjs +1 -1
  87. package/dist/locale/fr.mjs +1 -1
  88. package/dist/locale/he.js +1 -1
  89. package/dist/locale/he.min.js +1 -1
  90. package/dist/locale/he.min.mjs +1 -1
  91. package/dist/locale/he.mjs +1 -1
  92. package/dist/locale/hi.js +1 -1
  93. package/dist/locale/hi.min.js +1 -1
  94. package/dist/locale/hi.min.mjs +1 -1
  95. package/dist/locale/hi.mjs +1 -1
  96. package/dist/locale/hr.js +1 -1
  97. package/dist/locale/hr.min.js +1 -1
  98. package/dist/locale/hr.min.mjs +1 -1
  99. package/dist/locale/hr.mjs +1 -1
  100. package/dist/locale/hu.js +1 -1
  101. package/dist/locale/hu.min.js +1 -1
  102. package/dist/locale/hu.min.mjs +1 -1
  103. package/dist/locale/hu.mjs +1 -1
  104. package/dist/locale/hy-am.js +1 -1
  105. package/dist/locale/hy-am.min.js +1 -1
  106. package/dist/locale/hy-am.min.mjs +1 -1
  107. package/dist/locale/hy-am.mjs +1 -1
  108. package/dist/locale/id.js +1 -1
  109. package/dist/locale/id.min.js +1 -1
  110. package/dist/locale/id.min.mjs +1 -1
  111. package/dist/locale/id.mjs +1 -1
  112. package/dist/locale/it.js +1 -1
  113. package/dist/locale/it.min.js +1 -1
  114. package/dist/locale/it.min.mjs +1 -1
  115. package/dist/locale/it.mjs +1 -1
  116. package/dist/locale/ja.js +1 -1
  117. package/dist/locale/ja.min.js +1 -1
  118. package/dist/locale/ja.min.mjs +1 -1
  119. package/dist/locale/ja.mjs +1 -1
  120. package/dist/locale/kk.js +1 -1
  121. package/dist/locale/kk.min.js +1 -1
  122. package/dist/locale/kk.min.mjs +1 -1
  123. package/dist/locale/kk.mjs +1 -1
  124. package/dist/locale/km.js +1 -1
  125. package/dist/locale/km.min.js +1 -1
  126. package/dist/locale/km.min.mjs +1 -1
  127. package/dist/locale/km.mjs +1 -1
  128. package/dist/locale/ko.js +1 -1
  129. package/dist/locale/ko.min.js +1 -1
  130. package/dist/locale/ko.min.mjs +1 -1
  131. package/dist/locale/ko.mjs +1 -1
  132. package/dist/locale/ku.js +1 -1
  133. package/dist/locale/ku.min.js +1 -1
  134. package/dist/locale/ku.min.mjs +1 -1
  135. package/dist/locale/ku.mjs +1 -1
  136. package/dist/locale/ky.js +1 -1
  137. package/dist/locale/ky.min.js +1 -1
  138. package/dist/locale/ky.min.mjs +1 -1
  139. package/dist/locale/ky.mjs +1 -1
  140. package/dist/locale/lo.js +1 -1
  141. package/dist/locale/lo.min.js +1 -1
  142. package/dist/locale/lo.min.mjs +1 -1
  143. package/dist/locale/lo.mjs +1 -1
  144. package/dist/locale/lt.js +1 -1
  145. package/dist/locale/lt.min.js +1 -1
  146. package/dist/locale/lt.min.mjs +1 -1
  147. package/dist/locale/lt.mjs +1 -1
  148. package/dist/locale/lv.js +1 -1
  149. package/dist/locale/lv.min.js +1 -1
  150. package/dist/locale/lv.min.mjs +1 -1
  151. package/dist/locale/lv.mjs +1 -1
  152. package/dist/locale/mg.js +1 -1
  153. package/dist/locale/mg.min.js +1 -1
  154. package/dist/locale/mg.min.mjs +1 -1
  155. package/dist/locale/mg.mjs +1 -1
  156. package/dist/locale/mn.js +1 -1
  157. package/dist/locale/mn.min.js +1 -1
  158. package/dist/locale/mn.min.mjs +1 -1
  159. package/dist/locale/mn.mjs +1 -1
  160. package/dist/locale/ms.js +1 -1
  161. package/dist/locale/ms.min.js +1 -1
  162. package/dist/locale/ms.min.mjs +1 -1
  163. package/dist/locale/ms.mjs +1 -1
  164. package/dist/locale/my.js +1 -1
  165. package/dist/locale/my.min.js +1 -1
  166. package/dist/locale/my.min.mjs +1 -1
  167. package/dist/locale/my.mjs +1 -1
  168. package/dist/locale/nb-no.js +1 -1
  169. package/dist/locale/nb-no.min.js +1 -1
  170. package/dist/locale/nb-no.min.mjs +1 -1
  171. package/dist/locale/nb-no.mjs +1 -1
  172. package/dist/locale/nl.js +1 -1
  173. package/dist/locale/nl.min.js +1 -1
  174. package/dist/locale/nl.min.mjs +1 -1
  175. package/dist/locale/nl.mjs +1 -1
  176. package/dist/locale/no.js +1 -1
  177. package/dist/locale/no.min.js +1 -1
  178. package/dist/locale/no.min.mjs +1 -1
  179. package/dist/locale/no.mjs +1 -1
  180. package/dist/locale/pa.js +1 -1
  181. package/dist/locale/pa.min.js +1 -1
  182. package/dist/locale/pa.min.mjs +1 -1
  183. package/dist/locale/pa.mjs +1 -1
  184. package/dist/locale/pl.js +1 -1
  185. package/dist/locale/pl.min.js +1 -1
  186. package/dist/locale/pl.min.mjs +1 -1
  187. package/dist/locale/pl.mjs +1 -1
  188. package/dist/locale/pt-br.js +1 -1
  189. package/dist/locale/pt-br.min.js +1 -1
  190. package/dist/locale/pt-br.min.mjs +1 -1
  191. package/dist/locale/pt-br.mjs +1 -1
  192. package/dist/locale/pt.js +1 -1
  193. package/dist/locale/pt.min.js +1 -1
  194. package/dist/locale/pt.min.mjs +1 -1
  195. package/dist/locale/pt.mjs +1 -1
  196. package/dist/locale/ro.js +1 -1
  197. package/dist/locale/ro.min.js +1 -1
  198. package/dist/locale/ro.min.mjs +1 -1
  199. package/dist/locale/ro.mjs +1 -1
  200. package/dist/locale/ru.js +1 -1
  201. package/dist/locale/ru.min.js +1 -1
  202. package/dist/locale/ru.min.mjs +1 -1
  203. package/dist/locale/ru.mjs +1 -1
  204. package/dist/locale/sk.js +1 -1
  205. package/dist/locale/sk.min.js +1 -1
  206. package/dist/locale/sk.min.mjs +1 -1
  207. package/dist/locale/sk.mjs +1 -1
  208. package/dist/locale/sl.js +1 -1
  209. package/dist/locale/sl.min.js +1 -1
  210. package/dist/locale/sl.min.mjs +1 -1
  211. package/dist/locale/sl.mjs +1 -1
  212. package/dist/locale/sr.js +1 -1
  213. package/dist/locale/sr.min.js +1 -1
  214. package/dist/locale/sr.min.mjs +1 -1
  215. package/dist/locale/sr.mjs +1 -1
  216. package/dist/locale/sv.js +1 -1
  217. package/dist/locale/sv.min.js +1 -1
  218. package/dist/locale/sv.min.mjs +1 -1
  219. package/dist/locale/sv.mjs +1 -1
  220. package/dist/locale/sw.js +1 -1
  221. package/dist/locale/sw.min.js +1 -1
  222. package/dist/locale/sw.min.mjs +1 -1
  223. package/dist/locale/sw.mjs +1 -1
  224. package/dist/locale/ta.js +1 -1
  225. package/dist/locale/ta.min.js +1 -1
  226. package/dist/locale/ta.min.mjs +1 -1
  227. package/dist/locale/ta.mjs +1 -1
  228. package/dist/locale/te.js +1 -1
  229. package/dist/locale/te.min.js +1 -1
  230. package/dist/locale/te.min.mjs +1 -1
  231. package/dist/locale/te.mjs +1 -1
  232. package/dist/locale/th.js +1 -1
  233. package/dist/locale/th.min.js +1 -1
  234. package/dist/locale/th.min.mjs +1 -1
  235. package/dist/locale/th.mjs +1 -1
  236. package/dist/locale/tk.js +1 -1
  237. package/dist/locale/tk.min.js +1 -1
  238. package/dist/locale/tk.min.mjs +1 -1
  239. package/dist/locale/tk.mjs +1 -1
  240. package/dist/locale/tr.js +1 -1
  241. package/dist/locale/tr.min.js +1 -1
  242. package/dist/locale/tr.min.mjs +1 -1
  243. package/dist/locale/tr.mjs +1 -1
  244. package/dist/locale/ug-cn.js +1 -1
  245. package/dist/locale/ug-cn.min.js +1 -1
  246. package/dist/locale/ug-cn.min.mjs +1 -1
  247. package/dist/locale/ug-cn.mjs +1 -1
  248. package/dist/locale/uk.js +1 -1
  249. package/dist/locale/uk.min.js +1 -1
  250. package/dist/locale/uk.min.mjs +1 -1
  251. package/dist/locale/uk.mjs +1 -1
  252. package/dist/locale/uz-uz.js +1 -1
  253. package/dist/locale/uz-uz.min.js +1 -1
  254. package/dist/locale/uz-uz.min.mjs +1 -1
  255. package/dist/locale/uz-uz.mjs +1 -1
  256. package/dist/locale/vi.js +1 -1
  257. package/dist/locale/vi.min.js +1 -1
  258. package/dist/locale/vi.min.mjs +1 -1
  259. package/dist/locale/vi.mjs +1 -1
  260. package/dist/locale/zh-cn.js +1 -1
  261. package/dist/locale/zh-cn.min.js +1 -1
  262. package/dist/locale/zh-cn.min.mjs +1 -1
  263. package/dist/locale/zh-cn.mjs +1 -1
  264. package/dist/locale/zh-hk.js +1 -1
  265. package/dist/locale/zh-hk.min.js +1 -1
  266. package/dist/locale/zh-hk.min.mjs +1 -1
  267. package/dist/locale/zh-hk.mjs +1 -1
  268. package/dist/locale/zh-mo.js +1 -1
  269. package/dist/locale/zh-mo.min.js +1 -1
  270. package/dist/locale/zh-mo.min.mjs +1 -1
  271. package/dist/locale/zh-mo.mjs +1 -1
  272. package/dist/locale/zh-tw.js +1 -1
  273. package/dist/locale/zh-tw.min.js +1 -1
  274. package/dist/locale/zh-tw.min.mjs +1 -1
  275. package/dist/locale/zh-tw.mjs +1 -1
  276. package/es/components/anchor/index.mjs +1 -1
  277. package/es/components/anchor/src/anchor-link.mjs +5 -81
  278. package/es/components/anchor/src/anchor-link.mjs.map +1 -1
  279. package/es/components/anchor/src/anchor-link2.mjs +81 -5
  280. package/es/components/anchor/src/anchor-link2.mjs.map +1 -1
  281. package/es/components/badge/index.mjs +2 -2
  282. package/es/components/badge/src/badge.mjs +71 -32
  283. package/es/components/badge/src/badge.mjs.map +1 -1
  284. package/es/components/badge/src/badge2.mjs +32 -71
  285. package/es/components/badge/src/badge2.mjs.map +1 -1
  286. package/es/components/button/index.mjs +2 -2
  287. package/es/components/button/src/button-group.mjs +1 -1
  288. package/es/components/button/src/button.mjs +65 -88
  289. package/es/components/button/src/button.mjs.map +1 -1
  290. package/es/components/button/src/button2.mjs +88 -65
  291. package/es/components/button/src/button2.mjs.map +1 -1
  292. package/es/components/cascader-panel/src/store.d.ts +1 -1
  293. package/es/components/cascader-panel/src/store.mjs.map +1 -1
  294. package/es/components/col/index.mjs +2 -2
  295. package/es/components/col/src/col.mjs +43 -64
  296. package/es/components/col/src/col.mjs.map +1 -1
  297. package/es/components/col/src/col2.mjs +64 -43
  298. package/es/components/col/src/col2.mjs.map +1 -1
  299. package/es/components/collapse/index.mjs +2 -2
  300. package/es/components/collapse/src/collapse-item.mjs +95 -18
  301. package/es/components/collapse/src/collapse-item.mjs.map +1 -1
  302. package/es/components/collapse/src/collapse-item2.mjs +18 -95
  303. package/es/components/collapse/src/collapse-item2.mjs.map +1 -1
  304. package/es/components/countdown/index.mjs +2 -2
  305. package/es/components/countdown/src/countdown.mjs +79 -21
  306. package/es/components/countdown/src/countdown.mjs.map +1 -1
  307. package/es/components/countdown/src/countdown2.mjs +21 -79
  308. package/es/components/countdown/src/countdown2.mjs.map +1 -1
  309. package/es/components/date-picker/src/instance.d.ts +1 -1
  310. package/es/components/date-picker-panel/src/composables/use-basic-date-table.d.ts +1 -0
  311. package/es/components/date-picker-panel/src/composables/use-basic-date-table.mjs +4 -0
  312. package/es/components/date-picker-panel/src/composables/use-basic-date-table.mjs.map +1 -1
  313. package/es/components/date-picker-panel/src/date-picker-com/basic-date-table.mjs +3 -2
  314. package/es/components/date-picker-panel/src/date-picker-com/basic-date-table.mjs.map +1 -1
  315. package/es/components/date-picker-panel/src/instance.d.ts +1 -1
  316. package/es/components/descriptions/index.mjs +2 -2
  317. package/es/components/descriptions/src/description.mjs +26 -127
  318. package/es/components/descriptions/src/description.mjs.map +1 -1
  319. package/es/components/descriptions/src/description2.mjs +127 -26
  320. package/es/components/descriptions/src/description2.mjs.map +1 -1
  321. package/es/components/divider/index.mjs +2 -2
  322. package/es/components/divider/src/divider.mjs +16 -34
  323. package/es/components/divider/src/divider.mjs.map +1 -1
  324. package/es/components/divider/src/divider2.mjs +34 -16
  325. package/es/components/divider/src/divider2.mjs.map +1 -1
  326. package/es/components/drawer/index.mjs +2 -2
  327. package/es/components/drawer/src/drawer.mjs +27 -192
  328. package/es/components/drawer/src/drawer.mjs.map +1 -1
  329. package/es/components/drawer/src/drawer2.mjs +192 -27
  330. package/es/components/drawer/src/drawer2.mjs.map +1 -1
  331. package/es/components/dropdown/src/dropdown.d.ts +1 -1
  332. package/es/components/dropdown/src/dropdown.mjs.map +1 -1
  333. package/es/components/dropdown/src/tokens.d.ts +1 -1
  334. package/es/components/dropdown/src/tokens.mjs.map +1 -1
  335. package/es/components/image/index.mjs +2 -2
  336. package/es/components/image/src/image.d.ts +1 -0
  337. package/es/components/image/src/image.mjs +69 -227
  338. package/es/components/image/src/image.mjs.map +1 -1
  339. package/es/components/image/src/image.vue.d.ts +7 -0
  340. package/es/components/image/src/image2.mjs +234 -65
  341. package/es/components/image/src/image2.mjs.map +1 -1
  342. package/es/components/image-viewer/src/image-viewer.d.ts +2 -0
  343. package/es/components/image-viewer/src/image-viewer.mjs +5 -0
  344. package/es/components/image-viewer/src/image-viewer.mjs.map +1 -1
  345. package/es/components/image-viewer/src/image-viewer.vue.d.ts +9 -0
  346. package/es/components/image-viewer/src/image-viewer2.mjs +35 -24
  347. package/es/components/image-viewer/src/image-viewer2.mjs.map +1 -1
  348. package/es/components/index.mjs +18 -18
  349. package/es/components/input-tag/src/composables/use-drag-tag.d.ts +1 -1
  350. package/es/components/input-tag/src/composables/use-drag-tag.mjs.map +1 -1
  351. package/es/components/mention/index.mjs +2 -2
  352. package/es/components/mention/src/mention-dropdown.mjs +166 -15
  353. package/es/components/mention/src/mention-dropdown.mjs.map +1 -1
  354. package/es/components/mention/src/mention-dropdown2.mjs +15 -166
  355. package/es/components/mention/src/mention-dropdown2.mjs.map +1 -1
  356. package/es/components/mention/src/mention.mjs +74 -303
  357. package/es/components/mention/src/mention.mjs.map +1 -1
  358. package/es/components/mention/src/mention2.mjs +303 -74
  359. package/es/components/mention/src/mention2.mjs.map +1 -1
  360. package/es/components/pagination/src/components/next.mjs +35 -18
  361. package/es/components/pagination/src/components/next.mjs.map +1 -1
  362. package/es/components/pagination/src/components/next2.mjs +18 -35
  363. package/es/components/pagination/src/components/next2.mjs.map +1 -1
  364. package/es/components/pagination/src/components/sizes.mjs +71 -23
  365. package/es/components/pagination/src/components/sizes.mjs.map +1 -1
  366. package/es/components/pagination/src/components/sizes2.mjs +23 -71
  367. package/es/components/pagination/src/components/sizes2.mjs.map +1 -1
  368. package/es/components/pagination/src/pagination.mjs +2 -2
  369. package/es/components/popconfirm/src/popconfirm.mjs +1 -1
  370. package/es/components/segmented/index.mjs +2 -2
  371. package/es/components/segmented/src/segmented.mjs +42 -170
  372. package/es/components/segmented/src/segmented.mjs.map +1 -1
  373. package/es/components/segmented/src/segmented2.mjs +170 -42
  374. package/es/components/segmented/src/segmented2.mjs.map +1 -1
  375. package/es/components/select/src/select.d.ts +1 -1
  376. package/es/components/select/src/select.mjs.map +1 -1
  377. package/es/components/select/src/useSelect.d.ts +1 -1
  378. package/es/components/select/src/useSelect.mjs.map +1 -1
  379. package/es/components/select-v2/src/defaults.d.ts +1 -1
  380. package/es/components/select-v2/src/defaults.mjs.map +1 -1
  381. package/es/components/skeleton/index.mjs +4 -4
  382. package/es/components/skeleton/src/skeleton-item.mjs +17 -22
  383. package/es/components/skeleton/src/skeleton-item.mjs.map +1 -1
  384. package/es/components/skeleton/src/skeleton-item2.mjs +22 -17
  385. package/es/components/skeleton/src/skeleton-item2.mjs.map +1 -1
  386. package/es/components/skeleton/src/skeleton.mjs +18 -48
  387. package/es/components/skeleton/src/skeleton.mjs.map +1 -1
  388. package/es/components/skeleton/src/skeleton2.mjs +48 -18
  389. package/es/components/skeleton/src/skeleton2.mjs.map +1 -1
  390. package/es/components/slider/index.mjs +2 -2
  391. package/es/components/slider/src/slider.mjs +92 -238
  392. package/es/components/slider/src/slider.mjs.map +1 -1
  393. package/es/components/slider/src/slider2.mjs +238 -92
  394. package/es/components/slider/src/slider2.mjs.map +1 -1
  395. package/es/components/splitter/index.mjs +2 -2
  396. package/es/components/splitter/src/split-panel.mjs +157 -17
  397. package/es/components/splitter/src/split-panel.mjs.map +1 -1
  398. package/es/components/splitter/src/split-panel2.mjs +17 -157
  399. package/es/components/splitter/src/split-panel2.mjs.map +1 -1
  400. package/es/components/splitter/src/splitter2.mjs.map +1 -1
  401. package/es/components/table/src/table-header/index.d.ts +1 -1
  402. package/es/components/table/src/table-header/index.mjs.map +1 -1
  403. package/es/components/table-v2/src/composables/use-styles.d.ts +1 -2
  404. package/es/components/table-v2/src/composables/use-styles.mjs.map +1 -1
  405. package/es/components/tabs/src/tab-bar.d.ts +4 -4
  406. package/es/components/tabs/src/tab-bar.vue.d.ts +9 -9
  407. package/es/components/tabs/src/tab-nav.d.ts +15 -15
  408. package/es/components/tabs/src/tab-nav.mjs +1 -1
  409. package/es/components/tabs/src/tab-nav.mjs.map +1 -1
  410. package/es/components/tabs/src/tab-pane.d.ts +1 -1
  411. package/es/components/tabs/src/tab-pane.mjs +4 -1
  412. package/es/components/tabs/src/tab-pane.mjs.map +1 -1
  413. package/es/components/tabs/src/tab-pane.vue.d.ts +3 -3
  414. package/es/components/tabs/src/tab-pane2.mjs +4 -1
  415. package/es/components/tabs/src/tab-pane2.mjs.map +1 -1
  416. package/es/components/tabs/src/tabs.d.ts +1 -1
  417. package/es/components/tooltip/index.mjs +2 -2
  418. package/es/components/tooltip/src/tooltip.mjs +166 -30
  419. package/es/components/tooltip/src/tooltip.mjs.map +1 -1
  420. package/es/components/tooltip/src/tooltip2.mjs +30 -166
  421. package/es/components/tooltip/src/tooltip2.mjs.map +1 -1
  422. package/es/components/tooltip-v2/index.mjs +2 -2
  423. package/es/components/tooltip-v2/src/content.mjs +110 -48
  424. package/es/components/tooltip-v2/src/content.mjs.map +1 -1
  425. package/es/components/tooltip-v2/src/content2.mjs +48 -110
  426. package/es/components/tooltip-v2/src/content2.mjs.map +1 -1
  427. package/es/components/tooltip-v2/src/root.mjs +79 -17
  428. package/es/components/tooltip-v2/src/root.mjs.map +1 -1
  429. package/es/components/tooltip-v2/src/root2.mjs +17 -79
  430. package/es/components/tooltip-v2/src/root2.mjs.map +1 -1
  431. package/es/components/tooltip-v2/src/tooltip.mjs +2 -2
  432. package/es/components/tooltip-v2/src/tooltip2.mjs +4 -4
  433. package/es/components/tour/index.mjs +2 -2
  434. package/es/components/tour/src/tour.mjs +69 -154
  435. package/es/components/tour/src/tour.mjs.map +1 -1
  436. package/es/components/tour/src/tour2.mjs +154 -69
  437. package/es/components/tour/src/tour2.mjs.map +1 -1
  438. package/es/components/upload/index.mjs +1 -1
  439. package/es/components/upload/src/upload-list.mjs +25 -173
  440. package/es/components/upload/src/upload-list.mjs.map +1 -1
  441. package/es/components/upload/src/upload-list2.mjs +173 -25
  442. package/es/components/upload/src/upload-list2.mjs.map +1 -1
  443. package/es/components/upload/src/upload2.mjs +1 -1
  444. package/es/hooks/use-id/index.d.ts +1 -1
  445. package/es/hooks/use-id/index.mjs.map +1 -1
  446. package/es/index.d.ts +53 -34
  447. package/es/index.mjs +18 -18
  448. package/es/version.d.ts +1 -1
  449. package/es/version.mjs +1 -1
  450. package/es/version.mjs.map +1 -1
  451. package/lib/components/anchor/index.js +1 -1
  452. package/lib/components/anchor/src/anchor-link.js +5 -81
  453. package/lib/components/anchor/src/anchor-link.js.map +1 -1
  454. package/lib/components/anchor/src/anchor-link2.js +81 -5
  455. package/lib/components/anchor/src/anchor-link2.js.map +1 -1
  456. package/lib/components/badge/index.js +2 -2
  457. package/lib/components/badge/src/badge.js +71 -32
  458. package/lib/components/badge/src/badge.js.map +1 -1
  459. package/lib/components/badge/src/badge2.js +32 -71
  460. package/lib/components/badge/src/badge2.js.map +1 -1
  461. package/lib/components/button/index.js +2 -2
  462. package/lib/components/button/src/button-group.js +1 -1
  463. package/lib/components/button/src/button.js +68 -88
  464. package/lib/components/button/src/button.js.map +1 -1
  465. package/lib/components/button/src/button2.js +88 -68
  466. package/lib/components/button/src/button2.js.map +1 -1
  467. package/lib/components/cascader-panel/src/store.d.ts +1 -1
  468. package/lib/components/cascader-panel/src/store.js.map +1 -1
  469. package/lib/components/col/index.js +2 -2
  470. package/lib/components/col/src/col.js +43 -64
  471. package/lib/components/col/src/col.js.map +1 -1
  472. package/lib/components/col/src/col2.js +64 -43
  473. package/lib/components/col/src/col2.js.map +1 -1
  474. package/lib/components/collapse/index.js +2 -2
  475. package/lib/components/collapse/src/collapse-item.js +95 -18
  476. package/lib/components/collapse/src/collapse-item.js.map +1 -1
  477. package/lib/components/collapse/src/collapse-item2.js +18 -95
  478. package/lib/components/collapse/src/collapse-item2.js.map +1 -1
  479. package/lib/components/countdown/index.js +2 -2
  480. package/lib/components/countdown/src/countdown.js +79 -22
  481. package/lib/components/countdown/src/countdown.js.map +1 -1
  482. package/lib/components/countdown/src/countdown2.js +22 -79
  483. package/lib/components/countdown/src/countdown2.js.map +1 -1
  484. package/lib/components/date-picker/src/instance.d.ts +1 -1
  485. package/lib/components/date-picker-panel/src/composables/use-basic-date-table.d.ts +1 -0
  486. package/lib/components/date-picker-panel/src/composables/use-basic-date-table.js +4 -0
  487. package/lib/components/date-picker-panel/src/composables/use-basic-date-table.js.map +1 -1
  488. package/lib/components/date-picker-panel/src/date-picker-com/basic-date-table.js +3 -2
  489. package/lib/components/date-picker-panel/src/date-picker-com/basic-date-table.js.map +1 -1
  490. package/lib/components/date-picker-panel/src/instance.d.ts +1 -1
  491. package/lib/components/descriptions/index.js +2 -2
  492. package/lib/components/descriptions/src/description.js +26 -127
  493. package/lib/components/descriptions/src/description.js.map +1 -1
  494. package/lib/components/descriptions/src/description2.js +127 -26
  495. package/lib/components/descriptions/src/description2.js.map +1 -1
  496. package/lib/components/divider/index.js +2 -2
  497. package/lib/components/divider/src/divider.js +16 -34
  498. package/lib/components/divider/src/divider.js.map +1 -1
  499. package/lib/components/divider/src/divider2.js +34 -16
  500. package/lib/components/divider/src/divider2.js.map +1 -1
  501. package/lib/components/drawer/index.js +2 -2
  502. package/lib/components/drawer/src/drawer.js +28 -192
  503. package/lib/components/drawer/src/drawer.js.map +1 -1
  504. package/lib/components/drawer/src/drawer2.js +192 -28
  505. package/lib/components/drawer/src/drawer2.js.map +1 -1
  506. package/lib/components/dropdown/src/dropdown.d.ts +1 -1
  507. package/lib/components/dropdown/src/dropdown.js.map +1 -1
  508. package/lib/components/dropdown/src/tokens.d.ts +1 -1
  509. package/lib/components/dropdown/src/tokens.js.map +1 -1
  510. package/lib/components/image/index.js +2 -2
  511. package/lib/components/image/src/image.d.ts +1 -0
  512. package/lib/components/image/src/image.js +69 -226
  513. package/lib/components/image/src/image.js.map +1 -1
  514. package/lib/components/image/src/image.vue.d.ts +7 -0
  515. package/lib/components/image/src/image2.js +233 -65
  516. package/lib/components/image/src/image2.js.map +1 -1
  517. package/lib/components/image-viewer/src/image-viewer.d.ts +2 -0
  518. package/lib/components/image-viewer/src/image-viewer.js +5 -0
  519. package/lib/components/image-viewer/src/image-viewer.js.map +1 -1
  520. package/lib/components/image-viewer/src/image-viewer.vue.d.ts +9 -0
  521. package/lib/components/image-viewer/src/image-viewer2.js +33 -22
  522. package/lib/components/image-viewer/src/image-viewer2.js.map +1 -1
  523. package/lib/components/index.js +18 -18
  524. package/lib/components/input-tag/src/composables/use-drag-tag.d.ts +1 -1
  525. package/lib/components/input-tag/src/composables/use-drag-tag.js.map +1 -1
  526. package/lib/components/mention/index.js +2 -2
  527. package/lib/components/mention/src/mention-dropdown.js +166 -16
  528. package/lib/components/mention/src/mention-dropdown.js.map +1 -1
  529. package/lib/components/mention/src/mention-dropdown2.js +16 -166
  530. package/lib/components/mention/src/mention-dropdown2.js.map +1 -1
  531. package/lib/components/mention/src/mention.js +74 -301
  532. package/lib/components/mention/src/mention.js.map +1 -1
  533. package/lib/components/mention/src/mention2.js +301 -74
  534. package/lib/components/mention/src/mention2.js.map +1 -1
  535. package/lib/components/pagination/src/components/next.js +35 -18
  536. package/lib/components/pagination/src/components/next.js.map +1 -1
  537. package/lib/components/pagination/src/components/next2.js +18 -35
  538. package/lib/components/pagination/src/components/next2.js.map +1 -1
  539. package/lib/components/pagination/src/components/sizes.js +71 -23
  540. package/lib/components/pagination/src/components/sizes.js.map +1 -1
  541. package/lib/components/pagination/src/components/sizes2.js +23 -71
  542. package/lib/components/pagination/src/components/sizes2.js.map +1 -1
  543. package/lib/components/pagination/src/pagination.js +2 -2
  544. package/lib/components/popconfirm/src/popconfirm.js +1 -1
  545. package/lib/components/segmented/index.js +2 -2
  546. package/lib/components/segmented/src/segmented.js +44 -170
  547. package/lib/components/segmented/src/segmented.js.map +1 -1
  548. package/lib/components/segmented/src/segmented2.js +170 -44
  549. package/lib/components/segmented/src/segmented2.js.map +1 -1
  550. package/lib/components/select/src/select.d.ts +1 -1
  551. package/lib/components/select/src/select.js.map +1 -1
  552. package/lib/components/select/src/useSelect.d.ts +1 -1
  553. package/lib/components/select/src/useSelect.js.map +1 -1
  554. package/lib/components/select-v2/src/defaults.d.ts +1 -1
  555. package/lib/components/select-v2/src/defaults.js.map +1 -1
  556. package/lib/components/skeleton/index.js +4 -4
  557. package/lib/components/skeleton/src/skeleton-item.js +17 -22
  558. package/lib/components/skeleton/src/skeleton-item.js.map +1 -1
  559. package/lib/components/skeleton/src/skeleton-item2.js +22 -17
  560. package/lib/components/skeleton/src/skeleton-item2.js.map +1 -1
  561. package/lib/components/skeleton/src/skeleton.js +18 -48
  562. package/lib/components/skeleton/src/skeleton.js.map +1 -1
  563. package/lib/components/skeleton/src/skeleton2.js +48 -18
  564. package/lib/components/skeleton/src/skeleton2.js.map +1 -1
  565. package/lib/components/slider/index.js +2 -2
  566. package/lib/components/slider/src/slider.js +93 -238
  567. package/lib/components/slider/src/slider.js.map +1 -1
  568. package/lib/components/slider/src/slider2.js +238 -93
  569. package/lib/components/slider/src/slider2.js.map +1 -1
  570. package/lib/components/splitter/index.js +2 -2
  571. package/lib/components/splitter/src/split-panel.js +157 -17
  572. package/lib/components/splitter/src/split-panel.js.map +1 -1
  573. package/lib/components/splitter/src/split-panel2.js +17 -157
  574. package/lib/components/splitter/src/split-panel2.js.map +1 -1
  575. package/lib/components/splitter/src/splitter2.js.map +1 -1
  576. package/lib/components/table/src/table-header/index.d.ts +1 -1
  577. package/lib/components/table/src/table-header/index.js.map +1 -1
  578. package/lib/components/table-v2/src/composables/use-styles.d.ts +1 -2
  579. package/lib/components/table-v2/src/composables/use-styles.js.map +1 -1
  580. package/lib/components/tabs/src/tab-bar.d.ts +4 -4
  581. package/lib/components/tabs/src/tab-bar.vue.d.ts +9 -9
  582. package/lib/components/tabs/src/tab-nav.d.ts +15 -15
  583. package/lib/components/tabs/src/tab-nav.js +1 -1
  584. package/lib/components/tabs/src/tab-nav.js.map +1 -1
  585. package/lib/components/tabs/src/tab-pane.d.ts +1 -1
  586. package/lib/components/tabs/src/tab-pane.js +4 -1
  587. package/lib/components/tabs/src/tab-pane.js.map +1 -1
  588. package/lib/components/tabs/src/tab-pane.vue.d.ts +3 -3
  589. package/lib/components/tabs/src/tab-pane2.js +4 -1
  590. package/lib/components/tabs/src/tab-pane2.js.map +1 -1
  591. package/lib/components/tabs/src/tabs.d.ts +1 -1
  592. package/lib/components/tooltip/index.js +2 -2
  593. package/lib/components/tooltip/src/tooltip.js +166 -34
  594. package/lib/components/tooltip/src/tooltip.js.map +1 -1
  595. package/lib/components/tooltip/src/tooltip2.js +34 -166
  596. package/lib/components/tooltip/src/tooltip2.js.map +1 -1
  597. package/lib/components/tooltip-v2/index.js +2 -2
  598. package/lib/components/tooltip-v2/src/content.js +110 -48
  599. package/lib/components/tooltip-v2/src/content.js.map +1 -1
  600. package/lib/components/tooltip-v2/src/content2.js +48 -110
  601. package/lib/components/tooltip-v2/src/content2.js.map +1 -1
  602. package/lib/components/tooltip-v2/src/root.js +79 -17
  603. package/lib/components/tooltip-v2/src/root.js.map +1 -1
  604. package/lib/components/tooltip-v2/src/root2.js +17 -79
  605. package/lib/components/tooltip-v2/src/root2.js.map +1 -1
  606. package/lib/components/tooltip-v2/src/tooltip.js +2 -2
  607. package/lib/components/tooltip-v2/src/tooltip2.js +4 -4
  608. package/lib/components/tour/index.js +2 -2
  609. package/lib/components/tour/src/tour.js +69 -153
  610. package/lib/components/tour/src/tour.js.map +1 -1
  611. package/lib/components/tour/src/tour2.js +153 -69
  612. package/lib/components/tour/src/tour2.js.map +1 -1
  613. package/lib/components/upload/index.js +1 -1
  614. package/lib/components/upload/src/upload-list.js +26 -173
  615. package/lib/components/upload/src/upload-list.js.map +1 -1
  616. package/lib/components/upload/src/upload-list2.js +173 -26
  617. package/lib/components/upload/src/upload-list2.js.map +1 -1
  618. package/lib/components/upload/src/upload2.js +1 -1
  619. package/lib/hooks/use-id/index.d.ts +1 -1
  620. package/lib/hooks/use-id/index.js.map +1 -1
  621. package/lib/index.d.ts +53 -34
  622. package/lib/index.js +18 -18
  623. package/lib/version.d.ts +1 -1
  624. package/lib/version.js +1 -1
  625. package/lib/version.js.map +1 -1
  626. package/package.json +2 -2
  627. package/tags.json +1 -1
  628. package/web-types.json +1 -1
@@ -9,9 +9,9 @@ export declare const tabNavProps: {
9
9
  props: {
10
10
  readonly label: string;
11
11
  readonly disabled: boolean;
12
- readonly closable: boolean;
13
12
  readonly lazy: boolean;
14
13
  readonly name?: import("@element-plus/nightly/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown> | undefined;
14
+ readonly closable?: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
15
15
  };
16
16
  paneName: TabPaneName | undefined;
17
17
  active: boolean;
@@ -25,9 +25,9 @@ export declare const tabNavProps: {
25
25
  props: {
26
26
  readonly label: string;
27
27
  readonly disabled: boolean;
28
- readonly closable: boolean;
29
28
  readonly lazy: boolean;
30
29
  readonly name?: import("@element-plus/nightly/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown> | undefined;
30
+ readonly closable?: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
31
31
  };
32
32
  paneName: TabPaneName | undefined;
33
33
  active: boolean;
@@ -41,9 +41,9 @@ export declare const tabNavProps: {
41
41
  props: {
42
42
  readonly label: string;
43
43
  readonly disabled: boolean;
44
- readonly closable: boolean;
45
44
  readonly lazy: boolean;
46
45
  readonly name?: import("@element-plus/nightly/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown> | undefined;
46
+ readonly closable?: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
47
47
  };
48
48
  paneName: TabPaneName | undefined;
49
49
  active: boolean;
@@ -57,9 +57,9 @@ export declare const tabNavProps: {
57
57
  props: {
58
58
  readonly label: string;
59
59
  readonly disabled: boolean;
60
- readonly closable: boolean;
61
60
  readonly lazy: boolean;
62
61
  readonly name?: import("@element-plus/nightly/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown> | undefined;
62
+ readonly closable?: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
63
63
  };
64
64
  paneName: TabPaneName | undefined;
65
65
  active: boolean;
@@ -87,9 +87,9 @@ declare const TabNav: import("vue").DefineComponent<{
87
87
  props: {
88
88
  readonly label: string;
89
89
  readonly disabled: boolean;
90
- readonly closable: boolean;
91
90
  readonly lazy: boolean;
92
91
  readonly name?: import("@element-plus/nightly/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown> | undefined;
92
+ readonly closable?: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
93
93
  };
94
94
  paneName: TabPaneName | undefined;
95
95
  active: boolean;
@@ -103,9 +103,9 @@ declare const TabNav: import("vue").DefineComponent<{
103
103
  props: {
104
104
  readonly label: string;
105
105
  readonly disabled: boolean;
106
- readonly closable: boolean;
107
106
  readonly lazy: boolean;
108
107
  readonly name?: import("@element-plus/nightly/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown> | undefined;
108
+ readonly closable?: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
109
109
  };
110
110
  paneName: TabPaneName | undefined;
111
111
  active: boolean;
@@ -119,9 +119,9 @@ declare const TabNav: import("vue").DefineComponent<{
119
119
  props: {
120
120
  readonly label: string;
121
121
  readonly disabled: boolean;
122
- readonly closable: boolean;
123
122
  readonly lazy: boolean;
124
123
  readonly name?: import("@element-plus/nightly/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown> | undefined;
124
+ readonly closable?: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
125
125
  };
126
126
  paneName: TabPaneName | undefined;
127
127
  active: boolean;
@@ -135,9 +135,9 @@ declare const TabNav: import("vue").DefineComponent<{
135
135
  props: {
136
136
  readonly label: string;
137
137
  readonly disabled: boolean;
138
- readonly closable: boolean;
139
138
  readonly lazy: boolean;
140
139
  readonly name?: import("@element-plus/nightly/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown> | undefined;
140
+ readonly closable?: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
141
141
  };
142
142
  paneName: TabPaneName | undefined;
143
143
  active: boolean;
@@ -160,9 +160,9 @@ declare const TabNav: import("vue").DefineComponent<{
160
160
  props: {
161
161
  readonly label: string;
162
162
  readonly disabled: boolean;
163
- readonly closable: boolean;
164
163
  readonly lazy: boolean;
165
164
  readonly name?: import("@element-plus/nightly/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown> | undefined;
165
+ readonly closable?: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
166
166
  };
167
167
  paneName: TabPaneName | undefined;
168
168
  active: boolean;
@@ -176,9 +176,9 @@ declare const TabNav: import("vue").DefineComponent<{
176
176
  props: {
177
177
  readonly label: string;
178
178
  readonly disabled: boolean;
179
- readonly closable: boolean;
180
179
  readonly lazy: boolean;
181
180
  readonly name?: import("@element-plus/nightly/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown> | undefined;
181
+ readonly closable?: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
182
182
  };
183
183
  paneName: TabPaneName | undefined;
184
184
  active: boolean;
@@ -192,9 +192,9 @@ declare const TabNav: import("vue").DefineComponent<{
192
192
  props: {
193
193
  readonly label: string;
194
194
  readonly disabled: boolean;
195
- readonly closable: boolean;
196
195
  readonly lazy: boolean;
197
196
  readonly name?: import("@element-plus/nightly/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown> | undefined;
197
+ readonly closable?: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
198
198
  };
199
199
  paneName: TabPaneName | undefined;
200
200
  active: boolean;
@@ -208,9 +208,9 @@ declare const TabNav: import("vue").DefineComponent<{
208
208
  props: {
209
209
  readonly label: string;
210
210
  readonly disabled: boolean;
211
- readonly closable: boolean;
212
211
  readonly lazy: boolean;
213
212
  readonly name?: import("@element-plus/nightly/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown> | undefined;
213
+ readonly closable?: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
214
214
  };
215
215
  paneName: TabPaneName | undefined;
216
216
  active: boolean;
@@ -230,9 +230,9 @@ declare const TabNav: import("vue").DefineComponent<{
230
230
  props: {
231
231
  readonly label: string;
232
232
  readonly disabled: boolean;
233
- readonly closable: boolean;
234
233
  readonly lazy: boolean;
235
234
  readonly name?: import("@element-plus/nightly/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown> | undefined;
235
+ readonly closable?: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
236
236
  };
237
237
  paneName: TabPaneName | undefined;
238
238
  active: boolean;
@@ -247,9 +247,9 @@ declare const TabNav: import("vue").DefineComponent<{
247
247
  props: {
248
248
  readonly label: string;
249
249
  readonly disabled: boolean;
250
- readonly closable: boolean;
251
250
  readonly lazy: boolean;
252
251
  readonly name?: import("@element-plus/nightly/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown> | undefined;
252
+ readonly closable?: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
253
253
  };
254
254
  paneName: TabPaneName | undefined;
255
255
  active: boolean;
@@ -268,9 +268,9 @@ declare const TabNav: import("vue").DefineComponent<{
268
268
  props: {
269
269
  readonly label: string;
270
270
  readonly disabled: boolean;
271
- readonly closable: boolean;
272
271
  readonly lazy: boolean;
273
272
  readonly name?: import("@element-plus/nightly/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown> | undefined;
273
+ readonly closable?: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
274
274
  };
275
275
  paneName: TabPaneName | undefined;
276
276
  active: boolean;
@@ -251,7 +251,7 @@ const TabNav = defineComponent({
251
251
  const uid = pane.uid;
252
252
  const disabled = pane.props.disabled;
253
253
  const tabName = (_b = (_a = pane.props.name) != null ? _a : pane.index) != null ? _b : `${index}`;
254
- const closable = !disabled && (pane.isClosable || props.editable);
254
+ const closable = !disabled && (pane.isClosable || pane.props.closable !== false && props.editable);
255
255
  pane.index = `${index}`;
256
256
  const btnClose = closable ? createVNode(ElIcon, {
257
257
  "class": "is-icon-close",
@@ -1 +1 @@
1
- {"version":3,"file":"tab-nav.mjs","sources":["../../../../../../packages/components/tabs/src/tab-nav.tsx"],"sourcesContent":["import {\n computed,\n defineComponent,\n inject,\n nextTick,\n onMounted,\n onUpdated,\n ref,\n shallowRef,\n triggerRef,\n watch,\n} from 'vue'\nimport {\n useDocumentVisibility,\n useElementSize,\n useResizeObserver,\n useWindowFocus,\n} from '@vueuse/core'\nimport {\n buildProps,\n capitalize,\n definePropType,\n mutable,\n throwError,\n} from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { ArrowLeft, ArrowRight, Close } from '@element-plus/icons-vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport useWheel from '@element-plus/components/virtual-list/src/hooks/use-wheel'\nimport { clamp } from 'lodash-unified'\nimport TabBar from './tab-bar.vue'\nimport { tabsRootContextKey } from './constants'\n\nimport type {\n CSSProperties,\n ComponentPublicInstance,\n ExtractPropTypes,\n __ExtractPublicPropTypes,\n} from 'vue'\nimport type { TabBarInstance } from './tab-bar'\nimport type { TabPaneName, TabsPaneContext } from './constants'\n\ninterface Scrollable {\n next?: boolean\n prev?: number\n}\n\nexport const tabNavProps = buildProps({\n panes: {\n type: definePropType<TabsPaneContext[]>(Array),\n default: () => mutable([] as const),\n },\n currentName: {\n type: [String, Number],\n default: '',\n },\n editable: Boolean,\n type: {\n type: String,\n values: ['card', 'border-card', ''],\n default: '',\n },\n stretch: Boolean,\n} as const)\n\nexport const tabNavEmits = {\n tabClick: (tab: TabsPaneContext, tabName: TabPaneName, ev: Event) =>\n ev instanceof Event,\n tabRemove: (tab: TabsPaneContext, ev: Event) => ev instanceof Event,\n}\n\nexport type TabNavProps = ExtractPropTypes<typeof tabNavProps>\nexport type TabNavPropsPublic = __ExtractPublicPropTypes<typeof tabNavProps>\nexport type TabNavEmits = typeof tabNavEmits\n\nconst COMPONENT_NAME = 'ElTabNav'\nconst TabNav = defineComponent({\n name: COMPONENT_NAME,\n props: tabNavProps,\n emits: tabNavEmits,\n setup(props, { expose, emit }) {\n const rootTabs = inject(tabsRootContextKey)\n if (!rootTabs) throwError(COMPONENT_NAME, `<el-tabs><tab-nav /></el-tabs>`)\n\n const ns = useNamespace('tabs')\n const visibility = useDocumentVisibility()\n const focused = useWindowFocus()\n\n const navScroll$ = ref<HTMLDivElement>()\n const nav$ = ref<HTMLDivElement>()\n const el$ = ref<HTMLDivElement>()\n const tabRefsMap = ref<{ [key: TabPaneName]: HTMLDivElement }>({})\n\n const tabBarRef = ref<TabBarInstance>()\n\n const scrollable = ref<false | Scrollable>(false)\n const navOffset = ref(0)\n const isFocus = ref(false)\n const focusable = ref(true)\n const tracker = shallowRef()\n\n const isHorizontal = computed(() =>\n ['top', 'bottom'].includes(rootTabs.props.tabPosition)\n )\n\n const sizeName = computed(() => (isHorizontal.value ? 'width' : 'height'))\n const navStyle = computed<CSSProperties>(() => {\n const dir = sizeName.value === 'width' ? 'X' : 'Y'\n return {\n transform: `translate${dir}(-${navOffset.value}px)`,\n }\n })\n\n const { width: navContainerWidth, height: navContainerHeight } =\n useElementSize(navScroll$)\n const { width: navWidth, height: navHeight } = useElementSize(\n nav$,\n { width: 0, height: 0 },\n { box: 'border-box' }\n )\n\n const navContainerSize = computed(() =>\n isHorizontal.value ? navContainerWidth.value : navContainerHeight.value\n )\n const navSize = computed(() =>\n isHorizontal.value ? navWidth.value : navHeight.value\n )\n\n const { onWheel } = useWheel(\n {\n atStartEdge: computed(() => navOffset.value <= 0),\n atEndEdge: computed(\n () => navSize.value - navOffset.value <= navContainerSize.value\n ),\n layout: computed(() =>\n isHorizontal.value ? 'horizontal' : 'vertical'\n ),\n },\n (offset) => {\n navOffset.value = clamp(\n navOffset.value + offset,\n 0,\n navSize.value - navContainerSize.value\n )\n }\n )\n\n const scrollPrev = () => {\n if (!navScroll$.value) return\n\n const containerSize =\n navScroll$.value[`offset${capitalize(sizeName.value)}`]\n const currentOffset = navOffset.value\n\n if (!currentOffset) return\n\n const newOffset =\n currentOffset > containerSize ? currentOffset - containerSize : 0\n\n navOffset.value = newOffset\n }\n\n const scrollNext = () => {\n if (!navScroll$.value || !nav$.value) return\n\n const navSize = nav$.value[`offset${capitalize(sizeName.value)}`]\n const containerSize =\n navScroll$.value[`offset${capitalize(sizeName.value)}`]\n const currentOffset = navOffset.value\n\n if (navSize - currentOffset <= containerSize) return\n\n const newOffset =\n navSize - currentOffset > containerSize * 2\n ? currentOffset + containerSize\n : navSize - containerSize\n\n navOffset.value = newOffset\n }\n\n const scrollToActiveTab = async () => {\n const nav = nav$.value\n if (!scrollable.value || !el$.value || !navScroll$.value || !nav) return\n\n await nextTick()\n\n const activeTab = tabRefsMap.value[props.currentName]\n if (!activeTab) return\n\n const navScroll = navScroll$.value\n\n const activeTabBounding = activeTab.getBoundingClientRect()\n const navScrollBounding = navScroll.getBoundingClientRect()\n const maxOffset = isHorizontal.value\n ? nav.offsetWidth - navScrollBounding.width\n : nav.offsetHeight - navScrollBounding.height\n const currentOffset = navOffset.value\n let newOffset = currentOffset\n\n if (isHorizontal.value) {\n if (activeTabBounding.left < navScrollBounding.left) {\n newOffset =\n currentOffset - (navScrollBounding.left - activeTabBounding.left)\n }\n if (activeTabBounding.right > navScrollBounding.right) {\n newOffset =\n currentOffset + activeTabBounding.right - navScrollBounding.right\n }\n } else {\n if (activeTabBounding.top < navScrollBounding.top) {\n newOffset =\n currentOffset - (navScrollBounding.top - activeTabBounding.top)\n }\n if (activeTabBounding.bottom > navScrollBounding.bottom) {\n newOffset =\n currentOffset +\n (activeTabBounding.bottom - navScrollBounding.bottom)\n }\n }\n newOffset = Math.max(newOffset, 0)\n navOffset.value = Math.min(newOffset, maxOffset)\n }\n\n const update = () => {\n if (!nav$.value || !navScroll$.value) return\n\n props.stretch && tabBarRef.value?.update()\n\n const navSize = nav$.value[`offset${capitalize(sizeName.value)}`]\n const containerSize =\n navScroll$.value[`offset${capitalize(sizeName.value)}`]\n const currentOffset = navOffset.value\n\n if (containerSize < navSize) {\n scrollable.value = scrollable.value || {}\n scrollable.value.prev = currentOffset\n scrollable.value.next = currentOffset + containerSize < navSize\n if (navSize - currentOffset < containerSize) {\n navOffset.value = navSize - containerSize\n }\n } else {\n scrollable.value = false\n if (currentOffset > 0) {\n navOffset.value = 0\n }\n }\n }\n\n const changeTab = (event: KeyboardEvent) => {\n let step = 0\n\n switch (event.code) {\n case EVENT_CODE.left:\n case EVENT_CODE.up:\n step = -1\n break\n case EVENT_CODE.right:\n case EVENT_CODE.down:\n step = 1\n break\n default:\n return\n }\n\n const tabList = Array.from(\n (\n event.currentTarget as HTMLDivElement\n ).querySelectorAll<HTMLDivElement>('[role=tab]:not(.is-disabled)')\n )\n const currentIndex = tabList.indexOf(event.target as HTMLDivElement)\n let nextIndex = currentIndex + step\n\n if (nextIndex < 0) {\n nextIndex = tabList.length - 1\n } else if (nextIndex >= tabList.length) {\n nextIndex = 0\n }\n\n tabList[nextIndex].focus({ preventScroll: true }) // 改变焦点元素\n tabList[nextIndex].click() // 选中下一个tab\n setFocus()\n }\n\n const setFocus = () => {\n if (focusable.value) isFocus.value = true\n }\n const removeFocus = () => (isFocus.value = false)\n\n const setRefs = (\n el: Element | ComponentPublicInstance | null,\n key: TabPaneName\n ) => {\n tabRefsMap.value[key] = el as HTMLDivElement\n }\n\n const focusActiveTab = async () => {\n await nextTick()\n\n const activeTab = tabRefsMap.value[props.currentName]\n activeTab?.focus({ preventScroll: true })\n }\n\n watch(visibility, (visibility) => {\n if (visibility === 'hidden') {\n focusable.value = false\n } else if (visibility === 'visible') {\n setTimeout(() => (focusable.value = true), 50)\n }\n })\n watch(focused, (focused) => {\n if (focused) {\n setTimeout(() => (focusable.value = true), 50)\n } else {\n focusable.value = false\n }\n })\n\n useResizeObserver(el$, update)\n\n onMounted(() => setTimeout(() => scrollToActiveTab(), 0))\n onUpdated(() => update())\n\n expose({\n scrollToActiveTab,\n removeFocus,\n focusActiveTab,\n tabListRef: nav$,\n tabBarRef,\n scheduleRender: () => triggerRef(tracker),\n })\n\n return () => {\n const scrollBtn = scrollable.value\n ? [\n <span\n class={[\n ns.e('nav-prev'),\n ns.is('disabled', !scrollable.value.prev),\n ]}\n onClick={scrollPrev}\n >\n <ElIcon>\n <ArrowLeft />\n </ElIcon>\n </span>,\n <span\n class={[\n ns.e('nav-next'),\n ns.is('disabled', !scrollable.value.next),\n ]}\n onClick={scrollNext}\n >\n <ElIcon>\n <ArrowRight />\n </ElIcon>\n </span>,\n ]\n : null\n\n const tabs = props.panes.map((pane, index) => {\n const uid = pane.uid\n const disabled = pane.props.disabled\n const tabName = pane.props.name ?? pane.index ?? `${index}`\n const closable = !disabled && (pane.isClosable || props.editable)\n pane.index = `${index}`\n\n const btnClose = closable ? (\n <ElIcon\n class=\"is-icon-close\"\n // `onClick` not exist when generate dts\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n onClick={(ev: MouseEvent) => emit('tabRemove', pane, ev)}\n >\n <Close />\n </ElIcon>\n ) : null\n\n const tabLabelContent = pane.slots.label?.() || pane.props.label\n const tabindex = !disabled && pane.active ? 0 : -1\n\n return (\n <div\n ref={(el) => setRefs(el, tabName)}\n class={[\n ns.e('item'),\n ns.is(rootTabs.props.tabPosition),\n ns.is('active', pane.active),\n ns.is('disabled', disabled),\n ns.is('closable', closable),\n ns.is('focus', isFocus.value),\n ]}\n id={`tab-${tabName}`}\n key={`tab-${uid}`}\n aria-controls={`pane-${tabName}`}\n role=\"tab\"\n aria-selected={pane.active}\n tabindex={tabindex}\n onFocus={() => setFocus()}\n onBlur={() => removeFocus()}\n onClick={(ev: MouseEvent) => {\n removeFocus()\n emit('tabClick', pane, tabName, ev)\n }}\n onKeydown={(ev: KeyboardEvent) => {\n if (\n closable &&\n (ev.code === EVENT_CODE.delete ||\n ev.code === EVENT_CODE.backspace)\n ) {\n emit('tabRemove', pane, ev)\n }\n }}\n >\n {...[tabLabelContent, btnClose]}\n </div>\n )\n })\n\n // By tracking the value property, we can schedule a job to re-render `TabNav` when needed.\n // Unlike `instance.update`, the scheduler ensures the job is queued only once even if we trigger it multiple times.\n tracker.value\n\n return (\n <div\n ref={el$}\n class={[\n ns.e('nav-wrap'),\n ns.is('scrollable', !!scrollable.value),\n ns.is(rootTabs.props.tabPosition),\n ]}\n >\n {scrollBtn}\n <div class={ns.e('nav-scroll')} ref={navScroll$}>\n {props.panes.length > 0 ? (\n <div\n class={[\n ns.e('nav'),\n ns.is(rootTabs.props.tabPosition),\n ns.is(\n 'stretch',\n props.stretch &&\n ['top', 'bottom'].includes(rootTabs.props.tabPosition)\n ),\n ]}\n ref={nav$}\n style={navStyle.value}\n role=\"tablist\"\n onKeydown={changeTab}\n onWheel={onWheel}\n >\n {...[\n !props.type ? (\n <TabBar\n ref={tabBarRef}\n tabs={[...props.panes]}\n tabRefs={tabRefsMap.value}\n />\n ) : null,\n tabs,\n ]}\n </div>\n ) : null}\n </div>\n </div>\n )\n }\n },\n})\n\nexport type TabNavInstance = InstanceType<typeof TabNav> & {\n scrollToActiveTab: () => Promise<void>\n removeFocus: () => void\n focusActiveTab: () => void\n scheduleRender: () => void\n tabListRef: HTMLDivElement | undefined\n tabBarRef: TabBarInstance | undefined\n}\n\nexport default TabNav\n"],"names":["tabNavProps","buildProps","panes","type","definePropType","Array","default","mutable","currentName","String","Number","editable","Boolean","values","stretch","tabNavEmits","tabClick","tab","tabName","ev","Event","tabRemove","COMPONENT_NAME","TabNav","defineComponent","name","props","emits","expose","emit","ns","useNamespace","visibility","useDocumentVisibility","focused","useWindowFocus","navScroll$","ref","nav$","el$","tabRefsMap","tabBarRef","scrollable","navOffset","isFocus","focusable","tracker","shallowRef","isHorizontal","computed","includes","rootTabs","tabPosition","sizeName","value","navStyle","dir","transform","width","navContainerWidth","height","navContainerHeight","useElementSize","navWidth","navHeight","box","navContainerSize","navSize","onWheel","useWheel","atStartEdge","atEndEdge","layout","offset","clamp","scrollPrev","containerSize","capitalize","currentOffset","newOffset","scrollNext","scrollToActiveTab","activeTab","navScroll","maxOffset","activeTabBounding","right","top","bottom","navScrollBounding","max","update","prev","changeTab","event","step","EVENT_CODE","left","currentIndex","tabList","nextIndex","preventScroll","click","setFocus","key","focusActiveTab","focus","watch","_createVNode","useResizeObserver","setTimeout","onUpdated","tabListRef","scheduleRender","triggerRef","e","is","pane","index","uid","disabled","isClosable","btnClose","closable","setRefs","el","tabLabelContent"],"mappings":"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"}
1
+ {"version":3,"file":"tab-nav.mjs","sources":["../../../../../../packages/components/tabs/src/tab-nav.tsx"],"sourcesContent":["import {\n computed,\n defineComponent,\n inject,\n nextTick,\n onMounted,\n onUpdated,\n ref,\n shallowRef,\n triggerRef,\n watch,\n} from 'vue'\nimport {\n useDocumentVisibility,\n useElementSize,\n useResizeObserver,\n useWindowFocus,\n} from '@vueuse/core'\nimport {\n buildProps,\n capitalize,\n definePropType,\n mutable,\n throwError,\n} from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { ArrowLeft, ArrowRight, Close } from '@element-plus/icons-vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport useWheel from '@element-plus/components/virtual-list/src/hooks/use-wheel'\nimport { clamp } from 'lodash-unified'\nimport TabBar from './tab-bar.vue'\nimport { tabsRootContextKey } from './constants'\n\nimport type {\n CSSProperties,\n ComponentPublicInstance,\n ExtractPropTypes,\n __ExtractPublicPropTypes,\n} from 'vue'\nimport type { TabBarInstance } from './tab-bar'\nimport type { TabPaneName, TabsPaneContext } from './constants'\n\ninterface Scrollable {\n next?: boolean\n prev?: number\n}\n\nexport const tabNavProps = buildProps({\n panes: {\n type: definePropType<TabsPaneContext[]>(Array),\n default: () => mutable([] as const),\n },\n currentName: {\n type: [String, Number],\n default: '',\n },\n editable: Boolean,\n type: {\n type: String,\n values: ['card', 'border-card', ''],\n default: '',\n },\n stretch: Boolean,\n} as const)\n\nexport const tabNavEmits = {\n tabClick: (tab: TabsPaneContext, tabName: TabPaneName, ev: Event) =>\n ev instanceof Event,\n tabRemove: (tab: TabsPaneContext, ev: Event) => ev instanceof Event,\n}\n\nexport type TabNavProps = ExtractPropTypes<typeof tabNavProps>\nexport type TabNavPropsPublic = __ExtractPublicPropTypes<typeof tabNavProps>\nexport type TabNavEmits = typeof tabNavEmits\n\nconst COMPONENT_NAME = 'ElTabNav'\nconst TabNav = defineComponent({\n name: COMPONENT_NAME,\n props: tabNavProps,\n emits: tabNavEmits,\n setup(props, { expose, emit }) {\n const rootTabs = inject(tabsRootContextKey)\n if (!rootTabs) throwError(COMPONENT_NAME, `<el-tabs><tab-nav /></el-tabs>`)\n\n const ns = useNamespace('tabs')\n const visibility = useDocumentVisibility()\n const focused = useWindowFocus()\n\n const navScroll$ = ref<HTMLDivElement>()\n const nav$ = ref<HTMLDivElement>()\n const el$ = ref<HTMLDivElement>()\n const tabRefsMap = ref<{ [key: TabPaneName]: HTMLDivElement }>({})\n\n const tabBarRef = ref<TabBarInstance>()\n\n const scrollable = ref<false | Scrollable>(false)\n const navOffset = ref(0)\n const isFocus = ref(false)\n const focusable = ref(true)\n const tracker = shallowRef()\n\n const isHorizontal = computed(() =>\n ['top', 'bottom'].includes(rootTabs.props.tabPosition)\n )\n\n const sizeName = computed(() => (isHorizontal.value ? 'width' : 'height'))\n const navStyle = computed<CSSProperties>(() => {\n const dir = sizeName.value === 'width' ? 'X' : 'Y'\n return {\n transform: `translate${dir}(-${navOffset.value}px)`,\n }\n })\n\n const { width: navContainerWidth, height: navContainerHeight } =\n useElementSize(navScroll$)\n const { width: navWidth, height: navHeight } = useElementSize(\n nav$,\n { width: 0, height: 0 },\n { box: 'border-box' }\n )\n\n const navContainerSize = computed(() =>\n isHorizontal.value ? navContainerWidth.value : navContainerHeight.value\n )\n const navSize = computed(() =>\n isHorizontal.value ? navWidth.value : navHeight.value\n )\n\n const { onWheel } = useWheel(\n {\n atStartEdge: computed(() => navOffset.value <= 0),\n atEndEdge: computed(\n () => navSize.value - navOffset.value <= navContainerSize.value\n ),\n layout: computed(() =>\n isHorizontal.value ? 'horizontal' : 'vertical'\n ),\n },\n (offset) => {\n navOffset.value = clamp(\n navOffset.value + offset,\n 0,\n navSize.value - navContainerSize.value\n )\n }\n )\n\n const scrollPrev = () => {\n if (!navScroll$.value) return\n\n const containerSize =\n navScroll$.value[`offset${capitalize(sizeName.value)}`]\n const currentOffset = navOffset.value\n\n if (!currentOffset) return\n\n const newOffset =\n currentOffset > containerSize ? currentOffset - containerSize : 0\n\n navOffset.value = newOffset\n }\n\n const scrollNext = () => {\n if (!navScroll$.value || !nav$.value) return\n\n const navSize = nav$.value[`offset${capitalize(sizeName.value)}`]\n const containerSize =\n navScroll$.value[`offset${capitalize(sizeName.value)}`]\n const currentOffset = navOffset.value\n\n if (navSize - currentOffset <= containerSize) return\n\n const newOffset =\n navSize - currentOffset > containerSize * 2\n ? currentOffset + containerSize\n : navSize - containerSize\n\n navOffset.value = newOffset\n }\n\n const scrollToActiveTab = async () => {\n const nav = nav$.value\n if (!scrollable.value || !el$.value || !navScroll$.value || !nav) return\n\n await nextTick()\n\n const activeTab = tabRefsMap.value[props.currentName]\n if (!activeTab) return\n\n const navScroll = navScroll$.value\n\n const activeTabBounding = activeTab.getBoundingClientRect()\n const navScrollBounding = navScroll.getBoundingClientRect()\n const maxOffset = isHorizontal.value\n ? nav.offsetWidth - navScrollBounding.width\n : nav.offsetHeight - navScrollBounding.height\n const currentOffset = navOffset.value\n let newOffset = currentOffset\n\n if (isHorizontal.value) {\n if (activeTabBounding.left < navScrollBounding.left) {\n newOffset =\n currentOffset - (navScrollBounding.left - activeTabBounding.left)\n }\n if (activeTabBounding.right > navScrollBounding.right) {\n newOffset =\n currentOffset + activeTabBounding.right - navScrollBounding.right\n }\n } else {\n if (activeTabBounding.top < navScrollBounding.top) {\n newOffset =\n currentOffset - (navScrollBounding.top - activeTabBounding.top)\n }\n if (activeTabBounding.bottom > navScrollBounding.bottom) {\n newOffset =\n currentOffset +\n (activeTabBounding.bottom - navScrollBounding.bottom)\n }\n }\n newOffset = Math.max(newOffset, 0)\n navOffset.value = Math.min(newOffset, maxOffset)\n }\n\n const update = () => {\n if (!nav$.value || !navScroll$.value) return\n\n props.stretch && tabBarRef.value?.update()\n\n const navSize = nav$.value[`offset${capitalize(sizeName.value)}`]\n const containerSize =\n navScroll$.value[`offset${capitalize(sizeName.value)}`]\n const currentOffset = navOffset.value\n\n if (containerSize < navSize) {\n scrollable.value = scrollable.value || {}\n scrollable.value.prev = currentOffset\n scrollable.value.next = currentOffset + containerSize < navSize\n if (navSize - currentOffset < containerSize) {\n navOffset.value = navSize - containerSize\n }\n } else {\n scrollable.value = false\n if (currentOffset > 0) {\n navOffset.value = 0\n }\n }\n }\n\n const changeTab = (event: KeyboardEvent) => {\n let step = 0\n\n switch (event.code) {\n case EVENT_CODE.left:\n case EVENT_CODE.up:\n step = -1\n break\n case EVENT_CODE.right:\n case EVENT_CODE.down:\n step = 1\n break\n default:\n return\n }\n\n const tabList = Array.from(\n (\n event.currentTarget as HTMLDivElement\n ).querySelectorAll<HTMLDivElement>('[role=tab]:not(.is-disabled)')\n )\n const currentIndex = tabList.indexOf(event.target as HTMLDivElement)\n let nextIndex = currentIndex + step\n\n if (nextIndex < 0) {\n nextIndex = tabList.length - 1\n } else if (nextIndex >= tabList.length) {\n nextIndex = 0\n }\n\n tabList[nextIndex].focus({ preventScroll: true }) // 改变焦点元素\n tabList[nextIndex].click() // 选中下一个tab\n setFocus()\n }\n\n const setFocus = () => {\n if (focusable.value) isFocus.value = true\n }\n const removeFocus = () => (isFocus.value = false)\n\n const setRefs = (\n el: Element | ComponentPublicInstance | null,\n key: TabPaneName\n ) => {\n tabRefsMap.value[key] = el as HTMLDivElement\n }\n\n const focusActiveTab = async () => {\n await nextTick()\n\n const activeTab = tabRefsMap.value[props.currentName]\n activeTab?.focus({ preventScroll: true })\n }\n\n watch(visibility, (visibility) => {\n if (visibility === 'hidden') {\n focusable.value = false\n } else if (visibility === 'visible') {\n setTimeout(() => (focusable.value = true), 50)\n }\n })\n watch(focused, (focused) => {\n if (focused) {\n setTimeout(() => (focusable.value = true), 50)\n } else {\n focusable.value = false\n }\n })\n\n useResizeObserver(el$, update)\n\n onMounted(() => setTimeout(() => scrollToActiveTab(), 0))\n onUpdated(() => update())\n\n expose({\n scrollToActiveTab,\n removeFocus,\n focusActiveTab,\n tabListRef: nav$,\n tabBarRef,\n scheduleRender: () => triggerRef(tracker),\n })\n\n return () => {\n const scrollBtn = scrollable.value\n ? [\n <span\n class={[\n ns.e('nav-prev'),\n ns.is('disabled', !scrollable.value.prev),\n ]}\n onClick={scrollPrev}\n >\n <ElIcon>\n <ArrowLeft />\n </ElIcon>\n </span>,\n <span\n class={[\n ns.e('nav-next'),\n ns.is('disabled', !scrollable.value.next),\n ]}\n onClick={scrollNext}\n >\n <ElIcon>\n <ArrowRight />\n </ElIcon>\n </span>,\n ]\n : null\n\n const tabs = props.panes.map((pane, index) => {\n const uid = pane.uid\n const disabled = pane.props.disabled\n const tabName = pane.props.name ?? pane.index ?? `${index}`\n const closable =\n !disabled &&\n (pane.isClosable || (pane.props.closable !== false && props.editable))\n pane.index = `${index}`\n\n const btnClose = closable ? (\n <ElIcon\n class=\"is-icon-close\"\n // `onClick` not exist when generate dts\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n onClick={(ev: MouseEvent) => emit('tabRemove', pane, ev)}\n >\n <Close />\n </ElIcon>\n ) : null\n\n const tabLabelContent = pane.slots.label?.() || pane.props.label\n const tabindex = !disabled && pane.active ? 0 : -1\n\n return (\n <div\n ref={(el) => setRefs(el, tabName)}\n class={[\n ns.e('item'),\n ns.is(rootTabs.props.tabPosition),\n ns.is('active', pane.active),\n ns.is('disabled', disabled),\n ns.is('closable', closable),\n ns.is('focus', isFocus.value),\n ]}\n id={`tab-${tabName}`}\n key={`tab-${uid}`}\n aria-controls={`pane-${tabName}`}\n role=\"tab\"\n aria-selected={pane.active}\n tabindex={tabindex}\n onFocus={() => setFocus()}\n onBlur={() => removeFocus()}\n onClick={(ev: MouseEvent) => {\n removeFocus()\n emit('tabClick', pane, tabName, ev)\n }}\n onKeydown={(ev: KeyboardEvent) => {\n if (\n closable &&\n (ev.code === EVENT_CODE.delete ||\n ev.code === EVENT_CODE.backspace)\n ) {\n emit('tabRemove', pane, ev)\n }\n }}\n >\n {...[tabLabelContent, btnClose]}\n </div>\n )\n })\n\n // By tracking the value property, we can schedule a job to re-render `TabNav` when needed.\n // Unlike `instance.update`, the scheduler ensures the job is queued only once even if we trigger it multiple times.\n tracker.value\n\n return (\n <div\n ref={el$}\n class={[\n ns.e('nav-wrap'),\n ns.is('scrollable', !!scrollable.value),\n ns.is(rootTabs.props.tabPosition),\n ]}\n >\n {scrollBtn}\n <div class={ns.e('nav-scroll')} ref={navScroll$}>\n {props.panes.length > 0 ? (\n <div\n class={[\n ns.e('nav'),\n ns.is(rootTabs.props.tabPosition),\n ns.is(\n 'stretch',\n props.stretch &&\n ['top', 'bottom'].includes(rootTabs.props.tabPosition)\n ),\n ]}\n ref={nav$}\n style={navStyle.value}\n role=\"tablist\"\n onKeydown={changeTab}\n onWheel={onWheel}\n >\n {...[\n !props.type ? (\n <TabBar\n ref={tabBarRef}\n tabs={[...props.panes]}\n tabRefs={tabRefsMap.value}\n />\n ) : null,\n tabs,\n ]}\n </div>\n ) : null}\n </div>\n </div>\n )\n }\n },\n})\n\nexport type TabNavInstance = InstanceType<typeof TabNav> & {\n scrollToActiveTab: () => Promise<void>\n removeFocus: () => void\n focusActiveTab: () => void\n scheduleRender: () => void\n tabListRef: HTMLDivElement | undefined\n tabBarRef: TabBarInstance | undefined\n}\n\nexport default TabNav\n"],"names":["tabNavProps","buildProps","panes","type","definePropType","Array","default","mutable","currentName","String","Number","editable","Boolean","values","stretch","tabNavEmits","tabClick","tab","tabName","ev","Event","tabRemove","COMPONENT_NAME","TabNav","defineComponent","name","props","emits","expose","emit","ns","useNamespace","visibility","useDocumentVisibility","focused","useWindowFocus","navScroll$","ref","nav$","el$","tabRefsMap","tabBarRef","scrollable","navOffset","isFocus","focusable","tracker","shallowRef","isHorizontal","computed","includes","rootTabs","tabPosition","sizeName","value","navStyle","dir","transform","width","navContainerWidth","height","navContainerHeight","useElementSize","navWidth","navHeight","box","navContainerSize","navSize","onWheel","useWheel","atStartEdge","atEndEdge","layout","offset","clamp","scrollPrev","containerSize","capitalize","currentOffset","newOffset","scrollNext","scrollToActiveTab","activeTab","navScroll","maxOffset","activeTabBounding","right","top","bottom","navScrollBounding","max","update","prev","changeTab","event","step","EVENT_CODE","left","currentIndex","tabList","nextIndex","preventScroll","click","setFocus","key","focusActiveTab","focus","watch","_createVNode","useResizeObserver","setTimeout","onUpdated","tabListRef","scheduleRender","triggerRef","e","is","pane","index","uid","disabled","closable","isClosable","btnClose","setRefs","el","tabLabelContent"],"mappings":"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"}
@@ -8,7 +8,7 @@ export declare const tabPaneProps: {
8
8
  readonly validator: ((val: unknown) => boolean) | undefined;
9
9
  __epPropKey: true;
10
10
  };
11
- readonly closable: BooleanConstructor;
11
+ readonly closable: import("@element-plus/nightly/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
12
12
  readonly disabled: BooleanConstructor;
13
13
  readonly lazy: BooleanConstructor;
14
14
  };
@@ -8,7 +8,10 @@ const tabPaneProps = buildProps({
8
8
  name: {
9
9
  type: [String, Number]
10
10
  },
11
- closable: Boolean,
11
+ closable: {
12
+ type: Boolean,
13
+ default: void 0
14
+ },
12
15
  disabled: Boolean,
13
16
  lazy: Boolean
14
17
  });
@@ -1 +1 @@
1
- {"version":3,"file":"tab-pane.mjs","sources":["../../../../../../packages/components/tabs/src/tab-pane.ts"],"sourcesContent":["import { buildProps } from '@element-plus/utils'\n\nimport type { ExtractPropTypes, __ExtractPublicPropTypes } from 'vue'\nimport type TabPane from './tab-pane.vue'\n\nexport const tabPaneProps = buildProps({\n /**\n * @description title of the tab\n */\n label: {\n type: String,\n default: '',\n },\n /**\n * @description identifier corresponding to the name of Tabs, representing the alias of the tab-pane, the default is ordinal number of the tab-pane in the sequence, e.g. the first tab-pane is '0'\n */\n name: {\n type: [String, Number],\n },\n /**\n * @description whether Tab is closable\n */\n closable: Boolean,\n /**\n * @description whether Tab is disabled\n */\n disabled: Boolean,\n /**\n * @description whether Tab is lazily rendered\n */\n lazy: Boolean,\n} as const)\n\nexport type TabPaneProps = ExtractPropTypes<typeof tabPaneProps>\nexport type TabPanePropsPublic = __ExtractPublicPropTypes<typeof tabPaneProps>\n\nexport type TabPaneInstance = InstanceType<typeof TabPane> & unknown\n"],"names":[],"mappings":";;AACY,MAAC,YAAY,GAAG,UAAU,CAAC;AACvC,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1B,GAAG;AACH,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,IAAI,EAAE,OAAO;AACf,CAAC;;;;"}
1
+ {"version":3,"file":"tab-pane.mjs","sources":["../../../../../../packages/components/tabs/src/tab-pane.ts"],"sourcesContent":["import { buildProps } from '@element-plus/utils'\n\nimport type { ExtractPropTypes, __ExtractPublicPropTypes } from 'vue'\nimport type TabPane from './tab-pane.vue'\n\nexport const tabPaneProps = buildProps({\n /**\n * @description title of the tab\n */\n label: {\n type: String,\n default: '',\n },\n /**\n * @description identifier corresponding to the name of Tabs, representing the alias of the tab-pane, the default is ordinal number of the tab-pane in the sequence, e.g. the first tab-pane is '0'\n */\n name: {\n type: [String, Number],\n },\n /**\n * @description whether Tab is closable\n */\n closable: {\n type: Boolean,\n default: undefined,\n },\n /**\n * @description whether Tab is disabled\n */\n disabled: Boolean,\n /**\n * @description whether Tab is lazily rendered\n */\n lazy: Boolean,\n} as const)\n\nexport type TabPaneProps = ExtractPropTypes<typeof tabPaneProps>\nexport type TabPanePropsPublic = __ExtractPublicPropTypes<typeof tabPaneProps>\n\nexport type TabPaneInstance = InstanceType<typeof TabPane> & unknown\n"],"names":[],"mappings":";;AACY,MAAC,YAAY,GAAG,UAAU,CAAC;AACvC,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1B,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK,CAAC;AACnB,GAAG;AACH,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,IAAI,EAAE,OAAO;AACf,CAAC;;;;"}
@@ -9,7 +9,7 @@ declare const __VLS_component: import("vue").DefineComponent<{
9
9
  readonly validator: ((val: unknown) => boolean) | undefined;
10
10
  __epPropKey: true;
11
11
  };
12
- readonly closable: BooleanConstructor;
12
+ readonly closable: import("@element-plus/nightly/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
13
13
  readonly disabled: BooleanConstructor;
14
14
  readonly lazy: BooleanConstructor;
15
15
  }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
@@ -20,13 +20,13 @@ declare const __VLS_component: import("vue").DefineComponent<{
20
20
  readonly validator: ((val: unknown) => boolean) | undefined;
21
21
  __epPropKey: true;
22
22
  };
23
- readonly closable: BooleanConstructor;
23
+ readonly closable: import("@element-plus/nightly/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
24
24
  readonly disabled: BooleanConstructor;
25
25
  readonly lazy: BooleanConstructor;
26
26
  }>>, {
27
27
  readonly label: string;
28
28
  readonly disabled: boolean;
29
- readonly closable: boolean;
29
+ readonly closable: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
30
30
  readonly lazy: boolean;
31
31
  }>;
32
32
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
@@ -23,7 +23,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
23
23
  const ns = useNamespace("tab-pane");
24
24
  const paneRef = ref();
25
25
  const index = ref();
26
- const isClosable = computed(() => props.closable || tabsRoot.props.closable);
26
+ const isClosable = computed(() => {
27
+ var _a;
28
+ return (_a = props.closable) != null ? _a : tabsRoot.props.closable;
29
+ });
27
30
  const active = eagerComputed(() => {
28
31
  var _a;
29
32
  return tabsRoot.currentName.value === ((_a = props.name) != null ? _a : index.value);
@@ -1 +1 @@
1
- {"version":3,"file":"tab-pane2.mjs","sources":["../../../../../../packages/components/tabs/src/tab-pane.vue"],"sourcesContent":["<template>\n <div\n v-if=\"shouldBeRender\"\n v-show=\"active\"\n :id=\"`pane-${paneName}`\"\n ref=\"paneRef\"\n :class=\"ns.b()\"\n role=\"tabpanel\"\n :aria-hidden=\"!active\"\n :aria-labelledby=\"`tab-${paneName}`\"\n >\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n getCurrentInstance,\n inject,\n onBeforeUnmount,\n onBeforeUpdate,\n reactive,\n ref,\n useSlots,\n watch,\n} from 'vue'\nimport { eagerComputed } from '@vueuse/core'\nimport { throwError } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { tabsRootContextKey } from './constants'\nimport { tabPaneProps } from './tab-pane'\n\nconst COMPONENT_NAME = 'ElTabPane'\ndefineOptions({\n name: COMPONENT_NAME,\n})\nconst props = defineProps(tabPaneProps)\n\nconst instance = getCurrentInstance()!\nconst slots = useSlots()\n\nconst tabsRoot = inject(tabsRootContextKey)\nif (!tabsRoot)\n throwError(COMPONENT_NAME, 'usage: <el-tabs><el-tab-pane /></el-tabs/>')\n\nconst ns = useNamespace('tab-pane')\n\nconst paneRef = ref<HTMLDivElement>()\nconst index = ref<string>()\nconst isClosable = computed(() => props.closable || tabsRoot.props.closable)\nconst active = eagerComputed(\n () => tabsRoot.currentName.value === (props.name ?? index.value)\n)\nconst loaded = ref(active.value)\nconst paneName = computed(() => props.name ?? index.value)\nconst shouldBeRender = eagerComputed(\n () => !props.lazy || loaded.value || active.value\n)\n\nconst isFocusInsidePane = () => {\n return paneRef.value?.contains(document.activeElement)\n}\n\nwatch(active, (val) => {\n if (val) loaded.value = true\n})\n\nconst pane = reactive({\n uid: instance.uid,\n getVnode: () => instance.vnode,\n slots,\n props,\n paneName,\n active,\n index,\n isClosable,\n isFocusInsidePane,\n})\n\ntabsRoot.registerPane(pane)\n\nonBeforeUnmount(() => {\n tabsRoot.unregisterPane(pane)\n})\n\nonBeforeUpdate(() => {\n if (slots.label) tabsRoot.nav$.value?.scheduleRender()\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;mCAkCc,CAAA;AAAA,EACZ,IAAM,EAAA,cAAA;AACR;;;;;;AAGA,IAAA,MAAM,WAAW,kBAAmB,EAAA,CAAA;AACpC,IAAA,MAAM,QAAQ,QAAS,EAAA,CAAA;AAEvB,IAAM,MAAA,QAAA,GAAW,OAAO,kBAAkB,CAAA,CAAA;AAC1C,IAAA,IAAI,CAAC,QAAA;AACH,MAAA,UAAA,CAAW,gBAAgB,4CAA4C,CAAA,CAAA;AAEzE,IAAM,MAAA,EAAA,GAAK,aAAa,UAAU,CAAA,CAAA;AAElC,IAAA,MAAM,UAAU,GAAoB,EAAA,CAAA;AACpC,IAAA,MAAM,QAAQ,GAAY,EAAA,CAAA;AAC1B,IAAA,MAAM,aAAa,QAAS,CAAA,MAAM,MAAM,QAAY,IAAA,QAAA,CAAS,MAAM,QAAQ,CAAA,CAAA;AAC3E,IAAA,MAAM,MAAS,GAAA,aAAA,CAAA,MAAA;AAAA,MACb,MAAM,CAAS;AAA2C,MAC5D,OAAA,QAAA,CAAA,WAAA,CAAA,KAAA,MAAA,CAAA,EAAA,GAAA,KAAA,CAAA,IAAA,KAAA,IAAA,GAAA,EAAA,GAAA,KAAA,CAAA,KAAA,CAAA,CAAA;AACA,KAAM,CAAA,CAAA;AACN,IAAA,MAAM,YAAoB,CAAA,MAAA,CAAA,KAAA,CAAM,CAAM;AACtC,IAAA,MAAM,QAAiB,GAAA,QAAA,CAAA,MAAA;AAAA,MACrB,MAAM,CAAC;AAAqC,MAC9C,OAAA,CAAA,EAAA,GAAA,KAAA,CAAA,IAAA,KAAA,IAAA,GAAA,EAAA,GAAA,KAAA,CAAA,KAAA,CAAA;AAEA,KAAA,CAAA,CAAA;AACE,IAAA,MAAA,cAAe,GAAA,aAAgB,CAAA,MAAsB,CAAA,KAAA,CAAA,IAAA,IAAA,MAAA,CAAA,KAAA,IAAA,MAAA,CAAA,KAAA,CAAA,CAAA;AAAA,IACvD,MAAA,iBAAA,GAAA,MAAA;AAEA,MAAM,IAAA,EAAA,CAAA;AACJ,MAAI,OAAA,CAAK,YAAe,CAAA,KAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAA,CAAA,QAAA,CAAA,aAAA,CAAA,CAAA;AAAA,KACzB,CAAA;AAED,IAAA,KAAA,CAAM,QAAgB,CAAA,GAAA,KAAA;AAAA,MACpB,OAAc;AAAA,QACd,MAAA,CAAA,QAAyB,IAAA,CAAA;AAAA,KACzB,CAAA,CAAA;AAAA,IACA,MAAA,IAAA,GAAA,QAAA,CAAA;AAAA,MACA,GAAA,EAAA,QAAA,CAAA,GAAA;AAAA,MACA,QAAA,EAAA,MAAA,QAAA,CAAA,KAAA;AAAA,MACA,KAAA;AAAA,MACA,KAAA;AAAA,MACA,QAAA;AAAA,MACD,MAAA;AAED,MAAA,KAAA;AAEA,MAAA,UAAA;AACE,MAAA;AAA4B,KAC7B,CAAA,CAAA;AAED,IAAA,QAAA,CAAA,YAAqB,CAAA,IAAA,CAAA,CAAA;AACnB,IAAA,eAAU,CAAA,MAAgB;AAA2B,MACtD,QAAA,CAAA,cAAA,CAAA,IAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"tab-pane2.mjs","sources":["../../../../../../packages/components/tabs/src/tab-pane.vue"],"sourcesContent":["<template>\n <div\n v-if=\"shouldBeRender\"\n v-show=\"active\"\n :id=\"`pane-${paneName}`\"\n ref=\"paneRef\"\n :class=\"ns.b()\"\n role=\"tabpanel\"\n :aria-hidden=\"!active\"\n :aria-labelledby=\"`tab-${paneName}`\"\n >\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n getCurrentInstance,\n inject,\n onBeforeUnmount,\n onBeforeUpdate,\n reactive,\n ref,\n useSlots,\n watch,\n} from 'vue'\nimport { eagerComputed } from '@vueuse/core'\nimport { throwError } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { tabsRootContextKey } from './constants'\nimport { tabPaneProps } from './tab-pane'\n\nconst COMPONENT_NAME = 'ElTabPane'\ndefineOptions({\n name: COMPONENT_NAME,\n})\nconst props = defineProps(tabPaneProps)\n\nconst instance = getCurrentInstance()!\nconst slots = useSlots()\n\nconst tabsRoot = inject(tabsRootContextKey)\nif (!tabsRoot)\n throwError(COMPONENT_NAME, 'usage: <el-tabs><el-tab-pane /></el-tabs/>')\n\nconst ns = useNamespace('tab-pane')\n\nconst paneRef = ref<HTMLDivElement>()\nconst index = ref<string>()\nconst isClosable = computed(() => props.closable ?? tabsRoot.props.closable)\nconst active = eagerComputed(\n () => tabsRoot.currentName.value === (props.name ?? index.value)\n)\nconst loaded = ref(active.value)\nconst paneName = computed(() => props.name ?? index.value)\nconst shouldBeRender = eagerComputed(\n () => !props.lazy || loaded.value || active.value\n)\n\nconst isFocusInsidePane = () => {\n return paneRef.value?.contains(document.activeElement)\n}\n\nwatch(active, (val) => {\n if (val) loaded.value = true\n})\n\nconst pane = reactive({\n uid: instance.uid,\n getVnode: () => instance.vnode,\n slots,\n props,\n paneName,\n active,\n index,\n isClosable,\n isFocusInsidePane,\n})\n\ntabsRoot.registerPane(pane)\n\nonBeforeUnmount(() => {\n tabsRoot.unregisterPane(pane)\n})\n\nonBeforeUpdate(() => {\n if (slots.label) tabsRoot.nav$.value?.scheduleRender()\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;mCAkCc,CAAA;AAAA,EACZ,IAAM,EAAA,cAAA;AACR;;;;;;AAGA,IAAA,MAAM,WAAW,kBAAmB,EAAA,CAAA;AACpC,IAAA,MAAM,QAAQ,QAAS,EAAA,CAAA;AAEvB,IAAM,MAAA,QAAA,GAAW,OAAO,kBAAkB,CAAA,CAAA;AAC1C,IAAA,IAAI,CAAC,QAAA;AACH,MAAA,UAAA,CAAW,gBAAgB,4CAA4C,CAAA,CAAA;AAEzE,IAAM,MAAA,EAAA,GAAK,aAAa,UAAU,CAAA,CAAA;AAElC,IAAA,MAAM,UAAU,GAAoB,EAAA,CAAA;AACpC,IAAA,MAAM,QAAQ,GAAY,EAAA,CAAA;AAC1B,IAAA,MAAM,aAAa,QAAS,CAAA,MAAM;AAClC,MAAA,IAAM,EAAS,CAAA;AAAA,MACb,OAAe,CAAA,EAAA,GAAA,KAAA,CAAA,QAAY,KAAW,IAAA,GAAA,EAAA,GAAM,QAAQ,CAAM,KAAA,CAAA,QAAA,CAAA;AAAA,KAC5D,CAAA,CAAA;AACA,IAAM,MAAA,MAAA,GAAS,aAAgB,CAAA,MAAA;AAC/B,MAAA,IAAM;AACN,MAAA,OAAuB,QAAA,CAAA,WAAA,CAAA,KAAA,MAAA,CAAA,EAAA,GAAA,KAAA,CAAA,IAAA,KAAA,IAAA,GAAA,EAAA,GAAA,KAAA,CAAA,KAAA,CAAA,CAAA;AAAA,KAAA,CACrB;AAA4C,IAC9C,MAAA,MAAA,GAAA,GAAA,CAAA,MAAA,CAAA,KAAA,CAAA,CAAA;AAEA,IAAA,MAAM,oBAAoB,MAAM;AAC9B,MAAA,IAAA,EAAA,CAAO;AAA8C,MACvD,OAAA,CAAA,EAAA,GAAA,KAAA,CAAA,IAAA,KAAA,IAAA,GAAA,EAAA,GAAA,KAAA,CAAA,KAAA,CAAA;AAEA,KAAM,CAAA,CAAA;AACJ,IAAI,MAAA,cAAoB,GAAA,aAAA,CAAA,MAAA,CAAA,KAAA,CAAA,IAAA,IAAA,MAAA,CAAA,KAAA,IAAA,MAAA,CAAA,KAAA,CAAA,CAAA;AAAA,IAC1B,MAAC,iBAAA,GAAA,MAAA;AAED,MAAA,IAAM;AAAgB,MACpB,OAAc,CAAA,EAAA,GAAA,OAAA,CAAA,KAAA,KAAA,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAA,CAAA,QAAA,CAAA,aAAA,CAAA,CAAA;AAAA,KACd,CAAA;AAAyB,IACzB,KAAA,CAAA,MAAA,EAAA,CAAA,GAAA,KAAA;AAAA,MACA,IAAA,GAAA;AAAA,QACA,MAAA,CAAA,KAAA,GAAA,IAAA,CAAA;AAAA,KACA,CAAA,CAAA;AAAA,IACA,MAAA,IAAA,GAAA,QAAA,CAAA;AAAA,MACA,GAAA,EAAA,QAAA,CAAA,GAAA;AAAA,MACA,QAAA,EAAA,MAAA,QAAA,CAAA,KAAA;AAAA,MACD,KAAA;AAED,MAAA,KAAA;AAEA,MAAA,QAAA;AACE,MAAA,MAAA;AAA4B,MAC7B,KAAA;AAED,MAAA,UAAA;AACE,MAAA,iBAA0B;AAA2B,KACtD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -97,9 +97,9 @@ declare const Tabs: import("vue").DefineComponent<{
97
97
  props: {
98
98
  readonly label: string;
99
99
  readonly disabled: boolean;
100
- readonly closable: boolean;
101
100
  readonly lazy: boolean;
102
101
  readonly name?: import("@element-plus/nightly/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown> | undefined;
102
+ readonly closable?: import("@element-plus/nightly/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
103
103
  };
104
104
  paneName: TabPaneName | undefined;
105
105
  active: boolean;
@@ -1,5 +1,5 @@
1
- import Tooltip from './src/tooltip2.mjs';
2
- export { tooltipEmits, useTooltipModelToggle, useTooltipModelToggleEmits, useTooltipModelToggleProps, useTooltipProps } from './src/tooltip.mjs';
1
+ import Tooltip from './src/tooltip.mjs';
2
+ export { tooltipEmits, useTooltipModelToggle, useTooltipModelToggleEmits, useTooltipModelToggleProps, useTooltipProps } from './src/tooltip2.mjs';
3
3
  export { useTooltipTriggerProps } from './src/trigger.mjs';
4
4
  export { useTooltipContentProps } from './src/content.mjs';
5
5
  export { TOOLTIP_INJECTION_KEY } from './src/constants.mjs';
@@ -1,35 +1,171 @@
1
- import { useTooltipContentProps } from './content.mjs';
2
- import { useTooltipTriggerProps } from './trigger.mjs';
3
- import { popperProps } from '../../popper/src/popper.mjs';
4
- import { popperArrowProps } from '../../popper/src/arrow.mjs';
5
- import { createModelToggleComposable } from '../../../hooks/use-model-toggle/index.mjs';
6
- import { buildProps } from '../../../utils/vue/props/runtime.mjs';
1
+ import { defineComponent, ref, toRef, computed, provide, readonly, unref, watch, onDeactivated, openBlock, createBlock, withCtx, createVNode, renderSlot, createCommentVNode, createElementBlock, toDisplayString } from 'vue';
2
+ import { ElPopper } from '../../popper/index.mjs';
3
+ import { TOOLTIP_INJECTION_KEY } from './constants.mjs';
4
+ import { useTooltipProps, tooltipEmits, useTooltipModelToggle } from './tooltip2.mjs';
5
+ import ElTooltipTrigger from './trigger2.mjs';
6
+ import ElTooltipContent from './content2.mjs';
7
+ import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
8
+ import { usePopperContainer } from '../../../hooks/use-popper-container/index.mjs';
9
+ import ElPopperArrow from '../../popper/src/arrow2.mjs';
10
+ import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
11
+ import { useId } from '../../../hooks/use-id/index.mjs';
12
+ import { useDelayedToggle } from '../../../hooks/use-delayed-toggle/index.mjs';
13
+ import { isBoolean } from '../../../utils/types.mjs';
7
14
 
8
- const {
9
- useModelToggleProps: useTooltipModelToggleProps,
10
- useModelToggleEmits: useTooltipModelToggleEmits,
11
- useModelToggle: useTooltipModelToggle
12
- } = createModelToggleComposable("visible");
13
- const useTooltipProps = buildProps({
14
- ...popperProps,
15
- ...useTooltipModelToggleProps,
16
- ...useTooltipContentProps,
17
- ...useTooltipTriggerProps,
18
- ...popperArrowProps,
19
- showArrow: {
20
- type: Boolean,
21
- default: true
15
+ const __default__ = defineComponent({
16
+ name: "ElTooltip"
17
+ });
18
+ const _sfc_main = /* @__PURE__ */ defineComponent({
19
+ ...__default__,
20
+ props: useTooltipProps,
21
+ emits: tooltipEmits,
22
+ setup(__props, { expose, emit }) {
23
+ const props = __props;
24
+ usePopperContainer();
25
+ const ns = useNamespace("tooltip");
26
+ const id = useId();
27
+ const popperRef = ref();
28
+ const contentRef = ref();
29
+ const updatePopper = () => {
30
+ var _a;
31
+ const popperComponent = unref(popperRef);
32
+ if (popperComponent) {
33
+ (_a = popperComponent.popperInstanceRef) == null ? void 0 : _a.update();
34
+ }
35
+ };
36
+ const open = ref(false);
37
+ const toggleReason = ref();
38
+ const { show, hide, hasUpdateHandler } = useTooltipModelToggle({
39
+ indicator: open,
40
+ toggleReason
41
+ });
42
+ const { onOpen, onClose } = useDelayedToggle({
43
+ showAfter: toRef(props, "showAfter"),
44
+ hideAfter: toRef(props, "hideAfter"),
45
+ autoClose: toRef(props, "autoClose"),
46
+ open: show,
47
+ close: hide
48
+ });
49
+ const controlled = computed(() => isBoolean(props.visible) && !hasUpdateHandler.value);
50
+ const kls = computed(() => {
51
+ return [ns.b(), props.popperClass];
52
+ });
53
+ provide(TOOLTIP_INJECTION_KEY, {
54
+ controlled,
55
+ id,
56
+ open: readonly(open),
57
+ trigger: toRef(props, "trigger"),
58
+ onOpen,
59
+ onClose,
60
+ onToggle: (event) => {
61
+ if (unref(open)) {
62
+ onClose(event);
63
+ } else {
64
+ onOpen(event);
65
+ }
66
+ },
67
+ onShow: () => {
68
+ emit("show", toggleReason.value);
69
+ },
70
+ onHide: () => {
71
+ emit("hide", toggleReason.value);
72
+ },
73
+ onBeforeShow: () => {
74
+ emit("before-show", toggleReason.value);
75
+ },
76
+ onBeforeHide: () => {
77
+ emit("before-hide", toggleReason.value);
78
+ },
79
+ updatePopper
80
+ });
81
+ watch(() => props.disabled, (disabled) => {
82
+ if (disabled && open.value) {
83
+ open.value = false;
84
+ }
85
+ });
86
+ const isFocusInsideContent = (event) => {
87
+ var _a;
88
+ return (_a = contentRef.value) == null ? void 0 : _a.isFocusInsideContent(event);
89
+ };
90
+ onDeactivated(() => open.value && hide());
91
+ expose({
92
+ popperRef,
93
+ contentRef,
94
+ isFocusInsideContent,
95
+ updatePopper,
96
+ onOpen,
97
+ onClose,
98
+ hide
99
+ });
100
+ return (_ctx, _cache) => {
101
+ return openBlock(), createBlock(unref(ElPopper), {
102
+ ref_key: "popperRef",
103
+ ref: popperRef,
104
+ role: _ctx.role
105
+ }, {
106
+ default: withCtx(() => [
107
+ createVNode(ElTooltipTrigger, {
108
+ disabled: _ctx.disabled,
109
+ trigger: _ctx.trigger,
110
+ "trigger-keys": _ctx.triggerKeys,
111
+ "virtual-ref": _ctx.virtualRef,
112
+ "virtual-triggering": _ctx.virtualTriggering,
113
+ "focus-on-target": _ctx.focusOnTarget
114
+ }, {
115
+ default: withCtx(() => [
116
+ _ctx.$slots.default ? renderSlot(_ctx.$slots, "default", { key: 0 }) : createCommentVNode("v-if", true)
117
+ ]),
118
+ _: 3
119
+ }, 8, ["disabled", "trigger", "trigger-keys", "virtual-ref", "virtual-triggering", "focus-on-target"]),
120
+ createVNode(ElTooltipContent, {
121
+ ref_key: "contentRef",
122
+ ref: contentRef,
123
+ "aria-label": _ctx.ariaLabel,
124
+ "boundaries-padding": _ctx.boundariesPadding,
125
+ content: _ctx.content,
126
+ disabled: _ctx.disabled,
127
+ effect: _ctx.effect,
128
+ enterable: _ctx.enterable,
129
+ "fallback-placements": _ctx.fallbackPlacements,
130
+ "hide-after": _ctx.hideAfter,
131
+ "gpu-acceleration": _ctx.gpuAcceleration,
132
+ offset: _ctx.offset,
133
+ persistent: _ctx.persistent,
134
+ "popper-class": unref(kls),
135
+ "popper-style": _ctx.popperStyle,
136
+ placement: _ctx.placement,
137
+ "popper-options": _ctx.popperOptions,
138
+ "arrow-offset": _ctx.arrowOffset,
139
+ pure: _ctx.pure,
140
+ "raw-content": _ctx.rawContent,
141
+ "reference-el": _ctx.referenceEl,
142
+ "trigger-target-el": _ctx.triggerTargetEl,
143
+ "show-after": _ctx.showAfter,
144
+ strategy: _ctx.strategy,
145
+ teleported: _ctx.teleported,
146
+ transition: _ctx.transition,
147
+ "virtual-triggering": _ctx.virtualTriggering,
148
+ "z-index": _ctx.zIndex,
149
+ "append-to": _ctx.appendTo
150
+ }, {
151
+ default: withCtx(() => [
152
+ renderSlot(_ctx.$slots, "content", {}, () => [
153
+ _ctx.rawContent ? (openBlock(), createElementBlock("span", {
154
+ key: 0,
155
+ innerHTML: _ctx.content
156
+ }, null, 8, ["innerHTML"])) : (openBlock(), createElementBlock("span", { key: 1 }, toDisplayString(_ctx.content), 1))
157
+ ]),
158
+ _ctx.showArrow ? (openBlock(), createBlock(unref(ElPopperArrow), { key: 0 })) : createCommentVNode("v-if", true)
159
+ ]),
160
+ _: 3
161
+ }, 8, ["aria-label", "boundaries-padding", "content", "disabled", "effect", "enterable", "fallback-placements", "hide-after", "gpu-acceleration", "offset", "persistent", "popper-class", "popper-style", "placement", "popper-options", "arrow-offset", "pure", "raw-content", "reference-el", "trigger-target-el", "show-after", "strategy", "teleported", "transition", "virtual-triggering", "z-index", "append-to"])
162
+ ]),
163
+ _: 3
164
+ }, 8, ["role"]);
165
+ };
22
166
  }
23
167
  });
24
- const tooltipEmits = [
25
- ...useTooltipModelToggleEmits,
26
- "before-show",
27
- "before-hide",
28
- "show",
29
- "hide",
30
- "open",
31
- "close"
32
- ];
168
+ var Tooltip = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "tooltip.vue"]]);
33
169
 
34
- export { tooltipEmits, useTooltipModelToggle, useTooltipModelToggleEmits, useTooltipModelToggleProps, useTooltipProps };
170
+ export { Tooltip as default };
35
171
  //# sourceMappingURL=tooltip.mjs.map