@qingmingmu/components 0.1.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (505) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +128 -0
  3. package/es/components/app-layout/index.cjs +14 -0
  4. package/es/components/app-layout/index.d.cts +10 -0
  5. package/es/components/app-layout/index.d.mts +8 -0
  6. package/es/components/app-layout/index.d.ts +10 -0
  7. package/es/components/app-layout/index.mjs +8 -0
  8. package/es/components/app-layout/style/index.js +4 -0
  9. package/es/components/app-layout/style.css +36 -0
  10. package/es/components/badge/index.cjs +13 -0
  11. package/es/components/badge/index.d.cts +10 -0
  12. package/es/components/badge/index.d.mts +8 -0
  13. package/es/components/badge/index.d.ts +10 -0
  14. package/es/components/badge/index.mjs +8 -0
  15. package/es/components/badge/style/index.js +2 -0
  16. package/es/components/badge/style.css +36 -0
  17. package/es/components/breadcrumb/index.cjs +16 -0
  18. package/es/components/breadcrumb/index.d.cts +10 -0
  19. package/es/components/breadcrumb/index.d.mts +8 -0
  20. package/es/components/breadcrumb/index.d.ts +10 -0
  21. package/es/components/breadcrumb/index.mjs +8 -0
  22. package/es/components/breadcrumb/style/index.js +4 -0
  23. package/es/components/breadcrumb/style.css +43 -0
  24. package/es/components/button/index.cjs +14 -0
  25. package/es/components/button/index.d.cts +10 -0
  26. package/es/components/button/index.d.mts +10 -0
  27. package/es/components/button/index.d.ts +10 -0
  28. package/es/components/button/index.mjs +10 -0
  29. package/es/components/button/style/index.js +4 -0
  30. package/es/components/button/style.css +185 -0
  31. package/es/components/checkbox/index.cjs +18 -0
  32. package/es/components/checkbox/index.d.cts +8 -0
  33. package/es/components/checkbox/index.d.mts +8 -0
  34. package/es/components/checkbox/index.d.ts +8 -0
  35. package/es/components/checkbox/index.mjs +8 -0
  36. package/es/components/checkbox/style/index.js +4 -0
  37. package/es/components/checkbox/style.css +538 -0
  38. package/es/components/date-picker/index.cjs +22 -0
  39. package/es/components/date-picker/index.d.cts +13 -0
  40. package/es/components/date-picker/index.d.mts +11 -0
  41. package/es/components/date-picker/index.d.ts +13 -0
  42. package/es/components/date-picker/index.mjs +11 -0
  43. package/es/components/date-picker/style/index.js +4 -0
  44. package/es/components/date-picker/style.css +221 -0
  45. package/es/components/dialog/index.cjs +278 -0
  46. package/es/components/dialog/index.d.cts +133 -0
  47. package/es/components/dialog/index.d.mts +131 -0
  48. package/es/components/dialog/index.d.ts +133 -0
  49. package/es/components/dialog/index.mjs +269 -0
  50. package/es/components/dialog/style/index.js +4 -0
  51. package/es/components/dialog/style.css +157 -0
  52. package/es/components/divider/index.cjs +13 -0
  53. package/es/components/divider/index.d.cts +10 -0
  54. package/es/components/divider/index.d.mts +8 -0
  55. package/es/components/divider/index.d.ts +10 -0
  56. package/es/components/divider/index.mjs +8 -0
  57. package/es/components/divider/style/index.js +2 -0
  58. package/es/components/divider/style.css +49 -0
  59. package/es/components/drawer/index.cjs +18 -0
  60. package/es/components/drawer/index.d.cts +13 -0
  61. package/es/components/drawer/index.d.mts +11 -0
  62. package/es/components/drawer/index.d.ts +13 -0
  63. package/es/components/drawer/index.mjs +11 -0
  64. package/es/components/drawer/style/index.js +4 -0
  65. package/es/components/drawer/style.css +126 -0
  66. package/es/components/dropdown/index.cjs +19 -0
  67. package/es/components/dropdown/index.d.cts +11 -0
  68. package/es/components/dropdown/index.d.mts +9 -0
  69. package/es/components/dropdown/index.d.ts +11 -0
  70. package/es/components/dropdown/index.mjs +9 -0
  71. package/es/components/dropdown/style/index.js +4 -0
  72. package/es/components/dropdown/style.css +50 -0
  73. package/es/components/empty/index.cjs +15 -0
  74. package/es/components/empty/index.d.cts +12 -0
  75. package/es/components/empty/index.d.mts +10 -0
  76. package/es/components/empty/index.d.ts +12 -0
  77. package/es/components/empty/index.mjs +10 -0
  78. package/es/components/empty/style/index.js +4 -0
  79. package/es/components/empty/style.css +30 -0
  80. package/es/components/form/index.cjs +22 -0
  81. package/es/components/form/index.d.cts +10 -0
  82. package/es/components/form/index.d.mts +8 -0
  83. package/es/components/form/index.d.ts +10 -0
  84. package/es/components/form/index.mjs +8 -0
  85. package/es/components/form/style/index.js +4 -0
  86. package/es/components/form/style.css +70 -0
  87. package/es/components/grid/index.cjs +20 -0
  88. package/es/components/grid/index.d.cts +10 -0
  89. package/es/components/grid/index.d.mts +8 -0
  90. package/es/components/grid/index.d.ts +10 -0
  91. package/es/components/grid/index.mjs +8 -0
  92. package/es/components/grid/style/index.js +2 -0
  93. package/es/components/grid/style.css +45 -0
  94. package/es/components/icon/index.cjs +14 -0
  95. package/es/components/icon/index.d.cts +11 -0
  96. package/es/components/icon/index.d.mts +9 -0
  97. package/es/components/icon/index.d.ts +11 -0
  98. package/es/components/icon/index.mjs +9 -0
  99. package/es/components/icon/style/index.js +2 -0
  100. package/es/components/icon/style.css +437 -0
  101. package/es/components/input/index.cjs +18 -0
  102. package/es/components/input/index.d.cts +12 -0
  103. package/es/components/input/index.d.mts +10 -0
  104. package/es/components/input/index.d.ts +12 -0
  105. package/es/components/input/index.mjs +10 -0
  106. package/es/components/input/style/index.js +4 -0
  107. package/es/components/input/style.css +108 -0
  108. package/es/components/layout/index.cjs +13 -0
  109. package/es/components/layout/index.d.cts +10 -0
  110. package/es/components/layout/index.d.mts +8 -0
  111. package/es/components/layout/index.d.ts +10 -0
  112. package/es/components/layout/index.mjs +8 -0
  113. package/es/components/layout/style/index.js +2 -0
  114. package/es/components/layout/style.css +54 -0
  115. package/es/components/link/index.cjs +13 -0
  116. package/es/components/link/index.d.cts +10 -0
  117. package/es/components/link/index.d.mts +8 -0
  118. package/es/components/link/index.d.ts +10 -0
  119. package/es/components/link/index.mjs +8 -0
  120. package/es/components/link/style/index.js +2 -0
  121. package/es/components/link/style.css +39 -0
  122. package/es/components/list/index.cjs +13 -0
  123. package/es/components/list/index.d.cts +10 -0
  124. package/es/components/list/index.d.mts +8 -0
  125. package/es/components/list/index.d.ts +10 -0
  126. package/es/components/list/index.mjs +8 -0
  127. package/es/components/list/style/index.js +4 -0
  128. package/es/components/list/style.css +33 -0
  129. package/es/components/menu/index.cjs +18 -0
  130. package/es/components/menu/index.d.cts +12 -0
  131. package/es/components/menu/index.d.mts +10 -0
  132. package/es/components/menu/index.d.ts +12 -0
  133. package/es/components/menu/index.mjs +10 -0
  134. package/es/components/menu/style/index.js +4 -0
  135. package/es/components/menu/style.css +148 -0
  136. package/es/components/message/index.cjs +236 -0
  137. package/es/components/message/index.d.cts +92 -0
  138. package/es/components/message/index.d.mts +92 -0
  139. package/es/components/message/index.d.ts +92 -0
  140. package/es/components/message/index.mjs +232 -0
  141. package/es/components/message/style/index.js +4 -0
  142. package/es/components/message/style.css +121 -0
  143. package/es/components/notification/index.cjs +288 -0
  144. package/es/components/notification/index.d.cts +90 -0
  145. package/es/components/notification/index.d.mts +90 -0
  146. package/es/components/notification/index.d.ts +90 -0
  147. package/es/components/notification/index.mjs +284 -0
  148. package/es/components/notification/style/index.js +4 -0
  149. package/es/components/notification/style.css +191 -0
  150. package/es/components/pagination/index.cjs +16 -0
  151. package/es/components/pagination/index.d.cts +12 -0
  152. package/es/components/pagination/index.d.mts +10 -0
  153. package/es/components/pagination/index.d.ts +12 -0
  154. package/es/components/pagination/index.mjs +10 -0
  155. package/es/components/pagination/style/index.js +4 -0
  156. package/es/components/pagination/style.css +112 -0
  157. package/es/components/popover/index.cjs +17 -0
  158. package/es/components/popover/index.d.cts +11 -0
  159. package/es/components/popover/index.d.mts +9 -0
  160. package/es/components/popover/index.d.ts +11 -0
  161. package/es/components/popover/index.mjs +9 -0
  162. package/es/components/popover/style/index.js +4 -0
  163. package/es/components/popover/style.css +111 -0
  164. package/es/components/progress/index.cjs +15 -0
  165. package/es/components/progress/index.d.cts +10 -0
  166. package/es/components/progress/index.d.mts +8 -0
  167. package/es/components/progress/index.d.ts +10 -0
  168. package/es/components/progress/index.mjs +8 -0
  169. package/es/components/progress/style/index.js +4 -0
  170. package/es/components/progress/style.css +72 -0
  171. package/es/components/radio/index.cjs +20 -0
  172. package/es/components/radio/index.d.cts +8 -0
  173. package/es/components/radio/index.d.mts +8 -0
  174. package/es/components/radio/index.d.ts +8 -0
  175. package/es/components/radio/index.mjs +8 -0
  176. package/es/components/radio/style/index.js +4 -0
  177. package/es/components/radio/style.css +109 -0
  178. package/es/components/row/index.cjs +21 -0
  179. package/es/components/row/index.d.cts +287 -0
  180. package/es/components/row/index.d.mts +285 -0
  181. package/es/components/row/index.d.ts +287 -0
  182. package/es/components/row/index.mjs +3 -0
  183. package/es/components/row/style/index.js +2 -0
  184. package/es/components/row/style.css +2 -0
  185. package/es/components/select/index.cjs +20 -0
  186. package/es/components/select/index.d.cts +13 -0
  187. package/es/components/select/index.d.mts +11 -0
  188. package/es/components/select/index.d.ts +13 -0
  189. package/es/components/select/index.mjs +11 -0
  190. package/es/components/select/style/index.js +4 -0
  191. package/es/components/select/style.css +210 -0
  192. package/es/components/skeleton/index.cjs +13 -0
  193. package/es/components/skeleton/index.d.cts +10 -0
  194. package/es/components/skeleton/index.d.mts +8 -0
  195. package/es/components/skeleton/index.d.ts +10 -0
  196. package/es/components/skeleton/index.mjs +8 -0
  197. package/es/components/skeleton/style/index.js +4 -0
  198. package/es/components/skeleton/style.css +41 -0
  199. package/es/components/slider/index.cjs +18 -0
  200. package/es/components/slider/index.d.cts +10 -0
  201. package/es/components/slider/index.d.mts +8 -0
  202. package/es/components/slider/index.d.ts +10 -0
  203. package/es/components/slider/index.mjs +8 -0
  204. package/es/components/slider/style/index.js +4 -0
  205. package/es/components/slider/style.css +131 -0
  206. package/es/components/space/index.cjs +13 -0
  207. package/es/components/space/index.d.cts +10 -0
  208. package/es/components/space/index.d.mts +8 -0
  209. package/es/components/space/index.d.ts +10 -0
  210. package/es/components/space/index.mjs +8 -0
  211. package/es/components/space/style/index.js +2 -0
  212. package/es/components/space/style.css +38 -0
  213. package/es/components/splitter/index.cjs +15 -0
  214. package/es/components/splitter/index.d.cts +10 -0
  215. package/es/components/splitter/index.d.mts +8 -0
  216. package/es/components/splitter/index.d.ts +10 -0
  217. package/es/components/splitter/index.mjs +8 -0
  218. package/es/components/splitter/style/index.js +2 -0
  219. package/es/components/splitter/style.css +53 -0
  220. package/es/components/statistic/index.cjs +14 -0
  221. package/es/components/statistic/index.d.cts +10 -0
  222. package/es/components/statistic/index.d.mts +8 -0
  223. package/es/components/statistic/index.d.ts +10 -0
  224. package/es/components/statistic/index.mjs +8 -0
  225. package/es/components/statistic/style/index.js +4 -0
  226. package/es/components/statistic/style.css +30 -0
  227. package/es/components/steps/index.cjs +18 -0
  228. package/es/components/steps/index.d.cts +12 -0
  229. package/es/components/steps/index.d.mts +10 -0
  230. package/es/components/steps/index.d.ts +12 -0
  231. package/es/components/steps/index.mjs +10 -0
  232. package/es/components/steps/style/index.js +4 -0
  233. package/es/components/steps/style.css +123 -0
  234. package/es/components/switch/index.cjs +16 -0
  235. package/es/components/switch/index.d.cts +12 -0
  236. package/es/components/switch/index.d.mts +10 -0
  237. package/es/components/switch/index.d.ts +12 -0
  238. package/es/components/switch/index.mjs +10 -0
  239. package/es/components/switch/style/index.js +4 -0
  240. package/es/components/switch/style.css +128 -0
  241. package/es/components/table/index.cjs +15 -0
  242. package/es/components/table/index.d.cts +10 -0
  243. package/es/components/table/index.d.mts +8 -0
  244. package/es/components/table/index.d.ts +10 -0
  245. package/es/components/table/index.mjs +8 -0
  246. package/es/components/table/style/index.js +4 -0
  247. package/es/components/table/style.css +52 -0
  248. package/es/components/tabs/index.cjs +17 -0
  249. package/es/components/tabs/index.d.cts +12 -0
  250. package/es/components/tabs/index.d.mts +10 -0
  251. package/es/components/tabs/index.d.ts +12 -0
  252. package/es/components/tabs/index.mjs +10 -0
  253. package/es/components/tabs/style/index.js +4 -0
  254. package/es/components/tabs/style.css +123 -0
  255. package/es/components/tag/index.cjs +15 -0
  256. package/es/components/tag/index.d.cts +12 -0
  257. package/es/components/tag/index.d.mts +10 -0
  258. package/es/components/tag/index.d.ts +12 -0
  259. package/es/components/tag/index.mjs +10 -0
  260. package/es/components/tag/style/index.js +2 -0
  261. package/es/components/tag/style.css +160 -0
  262. package/es/components/theme-toggle/index.cjs +16 -0
  263. package/es/components/theme-toggle/index.d.cts +13 -0
  264. package/es/components/theme-toggle/index.d.mts +11 -0
  265. package/es/components/theme-toggle/index.d.ts +13 -0
  266. package/es/components/theme-toggle/index.mjs +11 -0
  267. package/es/components/theme-toggle/style/index.js +4 -0
  268. package/es/components/theme-toggle/style.css +35 -0
  269. package/es/components/title-bar/index.cjs +16 -0
  270. package/es/components/title-bar/index.d.cts +13 -0
  271. package/es/components/title-bar/index.d.mts +11 -0
  272. package/es/components/title-bar/index.d.ts +13 -0
  273. package/es/components/title-bar/index.mjs +11 -0
  274. package/es/components/title-bar/style/index.js +4 -0
  275. package/es/components/title-bar/style.css +46 -0
  276. package/es/components/tooltip/index.cjs +15 -0
  277. package/es/components/tooltip/index.d.cts +11 -0
  278. package/es/components/tooltip/index.d.mts +9 -0
  279. package/es/components/tooltip/index.d.ts +11 -0
  280. package/es/components/tooltip/index.mjs +9 -0
  281. package/es/components/tooltip/style/index.js +4 -0
  282. package/es/components/tooltip/style.css +71 -0
  283. package/es/components/tree/index.cjs +16 -0
  284. package/es/components/tree/index.d.cts +12 -0
  285. package/es/components/tree/index.d.mts +10 -0
  286. package/es/components/tree/index.d.ts +12 -0
  287. package/es/components/tree/index.mjs +10 -0
  288. package/es/components/tree/style/index.js +4 -0
  289. package/es/components/tree/style.css +62 -0
  290. package/es/components/window-controls/index.cjs +15 -0
  291. package/es/components/window-controls/index.d.cts +12 -0
  292. package/es/components/window-controls/index.d.mts +10 -0
  293. package/es/components/window-controls/index.d.ts +12 -0
  294. package/es/components/window-controls/index.mjs +10 -0
  295. package/es/components/window-controls/style/index.js +4 -0
  296. package/es/components/window-controls/style.css +35 -0
  297. package/es/index.cjs +221 -0
  298. package/es/index.d.cts +47 -0
  299. package/es/index.d.mts +47 -0
  300. package/es/index.d.ts +47 -0
  301. package/es/index.mjs +49 -0
  302. package/es/package.json +3 -0
  303. package/es/shared/components.1AjWnZ2u.cjs +557 -0
  304. package/es/shared/components.1J_ThqaI.d.cts +95 -0
  305. package/es/shared/components.3dqa2hsp.d.mts +132 -0
  306. package/es/shared/components.4UjasbrA.d.cts +51 -0
  307. package/es/shared/components.4UjasbrA.d.mts +51 -0
  308. package/es/shared/components.4UjasbrA.d.ts +51 -0
  309. package/es/shared/components.4lt7h-GW.d.ts +86 -0
  310. package/es/shared/components.54wxKDZE.mjs +156 -0
  311. package/es/shared/components.6EXCNxk1.cjs +160 -0
  312. package/es/shared/components.7VJcWbB3.mjs +61 -0
  313. package/es/shared/components.7wOMpfjy.d.mts +166 -0
  314. package/es/shared/components.B-epy07L.d.mts +586 -0
  315. package/es/shared/components.B0eSL1OS.d.cts +73 -0
  316. package/es/shared/components.B1zwpYHQ.d.cts +439 -0
  317. package/es/shared/components.B2Ry54jj.d.ts +272 -0
  318. package/es/shared/components.B4MHkqZP.d.ts +329 -0
  319. package/es/shared/components.B4xRhtj-.mjs +60 -0
  320. package/es/shared/components.B5WOm7ey.mjs +126 -0
  321. package/es/shared/components.B7BmMQPX.d.mts +97 -0
  322. package/es/shared/components.B7T7B9Ys.d.mts +73 -0
  323. package/es/shared/components.B8lNpbQ9.cjs +134 -0
  324. package/es/shared/components.BChm7h4j.d.ts +75 -0
  325. package/es/shared/components.BDSFrwdm.d.cts +166 -0
  326. package/es/shared/components.BEYwGpEo.d.ts +586 -0
  327. package/es/shared/components.BF2nXG8Y.cjs +64 -0
  328. package/es/shared/components.BG88vlnG.d.ts +159 -0
  329. package/es/shared/components.BGcESMXM.d.cts +192 -0
  330. package/es/shared/components.BGw_jYqb.d.cts +67 -0
  331. package/es/shared/components.BHiG-Upg.d.mts +359 -0
  332. package/es/shared/components.BIm7FYRN.d.ts +99 -0
  333. package/es/shared/components.BJSrGDgZ.d.mts +328 -0
  334. package/es/shared/components.BJz4u6YX.d.ts +359 -0
  335. package/es/shared/components.BL34tX_n.mjs +338 -0
  336. package/es/shared/components.BMUce5Uz.cjs +226 -0
  337. package/es/shared/components.BNXBaiBD.d.mts +269 -0
  338. package/es/shared/components.BPdCwk8C.d.ts +272 -0
  339. package/es/shared/components.BPsETG85.mjs +287 -0
  340. package/es/shared/components.BQFq0PXl.d.ts +298 -0
  341. package/es/shared/components.BR0HfmAS.d.mts +97 -0
  342. package/es/shared/components.BRHYPvpL.mjs +76 -0
  343. package/es/shared/components.BRK5jSxk.d.mts +192 -0
  344. package/es/shared/components.BUx4k59U.cjs +332 -0
  345. package/es/shared/components.BW1vukk6.mjs +135 -0
  346. package/es/shared/components.BWaRX3BY.d.ts +70 -0
  347. package/es/shared/components.BWrJKYmt.d.ts +338 -0
  348. package/es/shared/components.BZZxSpn4.d.mts +338 -0
  349. package/es/shared/components.BZeq4M6i.cjs +83 -0
  350. package/es/shared/components.B_aXqCE8.d.cts +34 -0
  351. package/es/shared/components.B_aXqCE8.d.mts +34 -0
  352. package/es/shared/components.B_aXqCE8.d.ts +34 -0
  353. package/es/shared/components.BaUizHWz.mjs +270 -0
  354. package/es/shared/components.Bar0M_1T.d.ts +132 -0
  355. package/es/shared/components.BcnhVfkA.d.cts +208 -0
  356. package/es/shared/components.Be0We_QJ.mjs +79 -0
  357. package/es/shared/components.BhK__sZJ.d.ts +67 -0
  358. package/es/shared/components.Bjw8eqP-.d.mts +327 -0
  359. package/es/shared/components.BkakIO1C.cjs +70 -0
  360. package/es/shared/components.BldJxPSz.cjs +80 -0
  361. package/es/shared/components.Bm5Cu9W3.mjs +358 -0
  362. package/es/shared/components.BmII0Zi4.d.cts +109 -0
  363. package/es/shared/components.Bn206h5z.d.cts +329 -0
  364. package/es/shared/components.Bo3WVnTy.d.ts +223 -0
  365. package/es/shared/components.BrbmPZbT.mjs +297 -0
  366. package/es/shared/components.BwmjBLGS.d.mts +126 -0
  367. package/es/shared/components.BxBfOAnD.d.cts +359 -0
  368. package/es/shared/components.BxOtwzkp.cjs +349 -0
  369. package/es/shared/components.By4TdR07.d.ts +327 -0
  370. package/es/shared/components.BzO68qwA.d.mts +95 -0
  371. package/es/shared/components.BzcvYRS3.d.mts +109 -0
  372. package/es/shared/components.BzhHVs0e.d.cts +338 -0
  373. package/es/shared/components.C183F57T.mjs +128 -0
  374. package/es/shared/components.C1PQgace.mjs +96 -0
  375. package/es/shared/components.C2qFTFYw.cjs +322 -0
  376. package/es/shared/components.C6sLxXPo.d.ts +96 -0
  377. package/es/shared/components.C8Nxn3Ut.d.mts +272 -0
  378. package/es/shared/components.C9TEQ_29.cjs +385 -0
  379. package/es/shared/components.C9WJVmII.mjs +71 -0
  380. package/es/shared/components.CAVYcOKF.cjs +132 -0
  381. package/es/shared/components.CBELcqkf.cjs +182 -0
  382. package/es/shared/components.CDS8XKPo.d.ts +257 -0
  383. package/es/shared/components.CDifg15S.cjs +292 -0
  384. package/es/shared/components.CF8Mj5bD.cjs +370 -0
  385. package/es/shared/components.CF_GZPuV.cjs +64 -0
  386. package/es/shared/components.CFfTemQ4.cjs +74 -0
  387. package/es/shared/components.CIjY6ZtZ.d.ts +499 -0
  388. package/es/shared/components.CJqqdhuY.d.cts +86 -0
  389. package/es/shared/components.CKbZKaMO.mjs +221 -0
  390. package/es/shared/components.CLBPin--.cjs +306 -0
  391. package/es/shared/components.CMtYH41Z.mjs +326 -0
  392. package/es/shared/components.CPjbxzIv.mjs +381 -0
  393. package/es/shared/components.CRZMSxSQ.mjs +77 -0
  394. package/es/shared/components.CRtd1JMp.cjs +86 -0
  395. package/es/shared/components.CTP-w8Dp.d.mts +85 -0
  396. package/es/shared/components.CUxPJ0rN.cjs +177 -0
  397. package/es/shared/components.CYrhfnMH.d.mts +439 -0
  398. package/es/shared/components.CZspoBJZ.mjs +314 -0
  399. package/es/shared/components.CaILt5c4.d.mts +288 -0
  400. package/es/shared/components.CerI7DmE.d.ts +192 -0
  401. package/es/shared/components.Cg0qdMDr.d.mts +272 -0
  402. package/es/shared/components.CgZUcq5d.d.mts +70 -0
  403. package/es/shared/components.ChFQqcD8.d.cts +99 -0
  404. package/es/shared/components.ChHlRGOd.d.mts +257 -0
  405. package/es/shared/components.ChaKATXZ.d.cts +132 -0
  406. package/es/shared/components.CjJ96MaL.d.cts +586 -0
  407. package/es/shared/components.CkYdyZh6.d.ts +97 -0
  408. package/es/shared/components.Cl7hvWLa.d.ts +208 -0
  409. package/es/shared/components.ClxGCZuy.cjs +67 -0
  410. package/es/shared/components.CmUTe-Bu.d.cts +314 -0
  411. package/es/shared/components.Cp1Zsk-X.mjs +231 -0
  412. package/es/shared/components.CpHuJl8N.cjs +109 -0
  413. package/es/shared/components.CqRoc5Cb.d.mts +298 -0
  414. package/es/shared/components.Ct1bqR7L.d.cts +82 -0
  415. package/es/shared/components.CtUfYC-G.cjs +256 -0
  416. package/es/shared/components.CtZrM_rh.mjs +58 -0
  417. package/es/shared/components.CwRwwkrw.mjs +397 -0
  418. package/es/shared/components.CxFKLC0I.mjs +68 -0
  419. package/es/shared/components.CxIEbUM8.d.cts +319 -0
  420. package/es/shared/components.CxuO1-ev.d.cts +272 -0
  421. package/es/shared/components.CyCDH-Vb.mjs +281 -0
  422. package/es/shared/components.D02eI26A.d.cts +257 -0
  423. package/es/shared/components.D0MDcB1D.cjs +276 -0
  424. package/es/shared/components.D2M7cpo2.d.cts +126 -0
  425. package/es/shared/components.D3HPYZ31.d.mts +223 -0
  426. package/es/shared/components.D3on6_fI.mjs +83 -0
  427. package/es/shared/components.D48GdgdJ.d.mts +208 -0
  428. package/es/shared/components.D4C1x9UP.cjs +318 -0
  429. package/es/shared/components.D4HPwnpE.mjs +363 -0
  430. package/es/shared/components.D4Yu07Ov.mjs +251 -0
  431. package/es/shared/components.D5-DJd7f.d.cts +328 -0
  432. package/es/shared/components.D7KK6ZxT.d.mts +67 -0
  433. package/es/shared/components.D8Ht88FR.mjs +100 -0
  434. package/es/shared/components.DB4_ULYr.cjs +405 -0
  435. package/es/shared/components.DCH8muDL.d.cts +75 -0
  436. package/es/shared/components.DCuPins-.d.mts +96 -0
  437. package/es/shared/components.DD-6M8N-.d.ts +314 -0
  438. package/es/shared/components.DDslVxoU.d.mts +86 -0
  439. package/es/shared/components.DEs15eJe.cjs +687 -0
  440. package/es/shared/components.DEwy484E.mjs +67 -0
  441. package/es/shared/components.DFar9ZQj.cjs +285 -0
  442. package/es/shared/components.DG3K9DCE.d.ts +439 -0
  443. package/es/shared/components.DG96RpCG.d.cts +288 -0
  444. package/es/shared/components.DHIKrYhN.d.ts +95 -0
  445. package/es/shared/components.DHeLTopf.d.mts +143 -0
  446. package/es/shared/components.DJ0m5kYN.mjs +548 -0
  447. package/es/shared/components.DJlTQabT.cjs +103 -0
  448. package/es/shared/components.DKtogC94.mjs +212 -0
  449. package/es/shared/components.DLVoUYPv.d.ts +328 -0
  450. package/es/shared/components.DLjhu3mO.cjs +53 -0
  451. package/es/shared/components.DNZ8j6Sz.d.cts +269 -0
  452. package/es/shared/components.DOWndnHb.d.ts +82 -0
  453. package/es/shared/components.DPGfB1k8.d.cts +223 -0
  454. package/es/shared/components.DScCDEoT.d.cts +97 -0
  455. package/es/shared/components.DUidQ77e.cjs +11 -0
  456. package/es/shared/components.Danqf6j7.d.cts +272 -0
  457. package/es/shared/components.DclwYyRy.mjs +50 -0
  458. package/es/shared/components.DdczIXhc.d.mts +82 -0
  459. package/es/shared/components.De49eXQJ.d.cts +97 -0
  460. package/es/shared/components.Dfe4D-8g.d.mts +99 -0
  461. package/es/shared/components.DiS0nfa_.d.mts +314 -0
  462. package/es/shared/components.DlTJ-jbM.cjs +235 -0
  463. package/es/shared/components.DnCclrOD.d.cts +70 -0
  464. package/es/shared/components.DnW9eqJM.cjs +79 -0
  465. package/es/shared/components.DoInWOkI.d.cts +85 -0
  466. package/es/shared/components.DpN4r8M6.d.ts +85 -0
  467. package/es/shared/components.DqdBSuxX.mjs +175 -0
  468. package/es/shared/components.DtZ1M9RX.d.mts +159 -0
  469. package/es/shared/components.DuT8IQV_.cjs +71 -0
  470. package/es/shared/components.Dy6mSGFp.d.ts +97 -0
  471. package/es/shared/components.Dy9SYm12.d.ts +73 -0
  472. package/es/shared/components.Dz2FXew2.cjs +371 -0
  473. package/es/shared/components.FNPonG8w.d.ts +269 -0
  474. package/es/shared/components.FkGOusVh.d.cts +143 -0
  475. package/es/shared/components.Mnb2AHkq.d.cts +298 -0
  476. package/es/shared/components.NdJ3_JnU.d.cts +499 -0
  477. package/es/shared/components.OJRSZE6i.d.cts +9 -0
  478. package/es/shared/components.OJRSZE6i.d.mts +9 -0
  479. package/es/shared/components.OJRSZE6i.d.ts +9 -0
  480. package/es/shared/components.P8ob4csG.d.mts +499 -0
  481. package/es/shared/components.PG8w8Qmv.mjs +64 -0
  482. package/es/shared/components.SHnZTfnN.d.ts +143 -0
  483. package/es/shared/components.VbnCY-yZ.cjs +58 -0
  484. package/es/shared/components.Xb8fQVYs.d.ts +109 -0
  485. package/es/shared/components.aCfs5Zx4.mjs +106 -0
  486. package/es/shared/components.aEHtkYll.mjs +176 -0
  487. package/es/shared/components.b0j47s07.d.ts +288 -0
  488. package/es/shared/components.b5GjJzDh.d.cts +96 -0
  489. package/es/shared/components.dIJZSGar.d.mts +329 -0
  490. package/es/shared/components.dk3Zmpq5.cjs +61 -0
  491. package/es/shared/components.e6NGwmyk.mjs +680 -0
  492. package/es/shared/components.l2LF8U7V.mjs +55 -0
  493. package/es/shared/components.ls2ruUoQ.cjs +140 -0
  494. package/es/shared/components.pAb-8zT2.mjs +316 -0
  495. package/es/shared/components.pcqpp-6-.mjs +9 -0
  496. package/es/shared/components.qRljarsw.d.cts +159 -0
  497. package/es/shared/components.r5I_hKLX.cjs +222 -0
  498. package/es/shared/components.rFCN7LCl.d.mts +75 -0
  499. package/es/shared/components.tMYsd3jV.d.ts +126 -0
  500. package/es/shared/components.tM_tp13v.d.mts +319 -0
  501. package/es/shared/components.uyAvjCWL.d.cts +327 -0
  502. package/es/shared/components.v_RwCQEf.d.ts +166 -0
  503. package/es/shared/components.w4bSE8TV.cjs +99 -0
  504. package/es/shared/components.x9BKOa3W.d.ts +319 -0
  505. package/package.json +72 -0
@@ -0,0 +1,322 @@
1
+ 'use strict';
2
+
3
+ const vue = require('vue');
4
+ const exportHelper = require('./components.DUidQ77e.cjs');
5
+ const icon = require('./components.CRtd1JMp.cjs');
6
+
7
+ const menuProps = {
8
+ /** 受控选中项 key(v-model) */
9
+ modelValue: {
10
+ type: [String, Number],
11
+ default: void 0
12
+ },
13
+ /** 非受控模式的初始选中项 key(未绑定 v-model 时作为默认选中) */
14
+ defaultSelectedKey: {
15
+ type: [String, Number],
16
+ default: void 0
17
+ },
18
+ /** 排列方向 */
19
+ mode: { type: String, default: "vertical" },
20
+ /** 初始展开的子菜单 key 列表 */
21
+ defaultOpenedKeys: { type: Array, default: () => [] },
22
+ /** 垂直模式折叠(只显示图标) */
23
+ collapse: { type: Boolean, default: false }
24
+ };
25
+ const MENU_CONTEXT_KEY = Symbol("qm-menu-context");
26
+
27
+ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
28
+ ...{ name: "QmMenu" },
29
+ __name: "menu",
30
+ props: menuProps,
31
+ emits: ["update:modelValue", "select", "openChange"],
32
+ setup(__props, { expose: __expose, emit: __emit }) {
33
+ __expose();
34
+ const props = __props;
35
+ const emit = __emit;
36
+ const openedKeys = vue.ref([...props.defaultOpenedKeys]);
37
+ const innerSelectedKey = vue.ref(props.defaultSelectedKey);
38
+ const effectiveSelectedKey = vue.computed(
39
+ () => props.modelValue ?? innerSelectedKey.value
40
+ );
41
+ vue.watch(
42
+ () => props.modelValue,
43
+ (v) => {
44
+ if (v !== void 0)
45
+ innerSelectedKey.value = v;
46
+ }
47
+ );
48
+ const menuRef = vue.ref(null);
49
+ function focusableItems() {
50
+ const root = menuRef.value;
51
+ if (!root)
52
+ return [];
53
+ return [
54
+ ...root.querySelectorAll(
55
+ '.qm-menu-item:not([aria-disabled="true"]), .qm-sub-menu__trigger:not([aria-disabled="true"])'
56
+ )
57
+ ];
58
+ }
59
+ function normalizeRoving(target) {
60
+ const items = focusableItems();
61
+ for (const el of items) el.setAttribute("tabindex", el === target ? "0" : "-1");
62
+ }
63
+ function onMenuFocusin(event) {
64
+ const target = event.target;
65
+ if (target && menuRef.value?.contains(target))
66
+ normalizeRoving(target);
67
+ }
68
+ function onMenuKeydown(event) {
69
+ const items = focusableItems();
70
+ if (!items.length)
71
+ return;
72
+ const current = document.activeElement;
73
+ let index = current ? items.indexOf(current) : -1;
74
+ if (event.key === "Home") {
75
+ event.preventDefault();
76
+ index = 0;
77
+ } else if (event.key === "End") {
78
+ event.preventDefault();
79
+ index = items.length - 1;
80
+ } else if (event.key === "ArrowDown" || event.key === "ArrowRight") {
81
+ event.preventDefault();
82
+ index = index < 0 ? 0 : (index + 1) % items.length;
83
+ } else if (event.key === "ArrowUp" || event.key === "ArrowLeft") {
84
+ event.preventDefault();
85
+ index = index < 0 ? items.length - 1 : (index - 1 + items.length) % items.length;
86
+ } else {
87
+ return;
88
+ }
89
+ const target = items[index];
90
+ if (target) {
91
+ target.focus();
92
+ normalizeRoving(target);
93
+ }
94
+ }
95
+ vue.onMounted(() => {
96
+ void vue.nextTick(() => {
97
+ const items = focusableItems();
98
+ if (!items.length)
99
+ return;
100
+ const selected = items.find((el) => el.getAttribute("aria-selected") === "true");
101
+ const initial = selected ?? items[0];
102
+ normalizeRoving(initial);
103
+ });
104
+ });
105
+ const context = {
106
+ mode: vue.computed(() => props.mode),
107
+ collapse: vue.computed(() => props.collapse),
108
+ selectedKey: effectiveSelectedKey,
109
+ selectKey: (key) => {
110
+ innerSelectedKey.value = key;
111
+ if (props.modelValue !== key)
112
+ emit("update:modelValue", key);
113
+ emit("select", key);
114
+ },
115
+ isOpen: (key) => openedKeys.value.includes(key),
116
+ toggleSubMenu: (key) => {
117
+ const index = openedKeys.value.indexOf(key);
118
+ if (index >= 0)
119
+ openedKeys.value.splice(index, 1);
120
+ else openedKeys.value.push(key);
121
+ emit("openChange", [...openedKeys.value]);
122
+ }
123
+ };
124
+ vue.provide(MENU_CONTEXT_KEY, context);
125
+ const __returned__ = { props, emit, openedKeys, innerSelectedKey, effectiveSelectedKey, menuRef, focusableItems, normalizeRoving, onMenuFocusin, onMenuKeydown, context };
126
+ Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
127
+ return __returned__;
128
+ }
129
+ });
130
+
131
+ function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
132
+ return vue.openBlock(), vue.createElementBlock(
133
+ "ul",
134
+ {
135
+ ref: "menuRef",
136
+ class: vue.normalizeClass(["qm-menu", [`qm-menu--${_ctx.mode}`, { "qm-menu--collapsed": _ctx.collapse }]]),
137
+ "data-qm": "menu",
138
+ role: "menu",
139
+ onFocusin: $setup.onMenuFocusin,
140
+ onKeydown: $setup.onMenuKeydown
141
+ },
142
+ [vue.renderSlot(_ctx.$slots, "default")],
143
+ 34
144
+ /* CLASS, NEED_HYDRATION */
145
+ );
146
+ }
147
+ const Menu = /*#__PURE__*/ exportHelper._export_sfc(_sfc_main$2, [["render", _sfc_render$2], ["__file", "F:\\软件开发\\青冥组件系统\\packages\\components\\src\\components\\menu\\menu.vue"]]);
148
+
149
+ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
150
+ ...{ name: "QmMenuItem" },
151
+ __name: "menu-item",
152
+ props: {
153
+ /** 菜单项唯一 key(选中值,即菜单 modelValue) */
154
+ index: { type: [String, Number], required: true },
155
+ /** 禁用(不可选中) */
156
+ disabled: { type: Boolean, default: false }
157
+ },
158
+ emits: ["select"],
159
+ setup(__props, { expose: __expose, emit: __emit }) {
160
+ __expose();
161
+ const props = __props;
162
+ const emit = __emit;
163
+ const context = vue.inject(MENU_CONTEXT_KEY, void 0);
164
+ const isSelected = vue.computed(() => context?.selectedKey.value === props.index);
165
+ function onClick() {
166
+ if (props.disabled)
167
+ return;
168
+ emit("select", props.index);
169
+ context?.selectKey?.(props.index);
170
+ }
171
+ const __returned__ = { props, emit, context, isSelected, onClick };
172
+ Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
173
+ return __returned__;
174
+ }
175
+ });
176
+
177
+ const _hoisted_1$1 = [
178
+ "aria-selected",
179
+ "aria-disabled",
180
+ "tabindex",
181
+ "onKeydown"
182
+ ];
183
+ const _hoisted_2$1 = {
184
+ class: "qm-menu-item__icon",
185
+ "aria-hidden": "true"
186
+ };
187
+ const _hoisted_3$1 = { class: "qm-menu-item__label" };
188
+ function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
189
+ return vue.openBlock(), vue.createElementBlock("li", {
190
+ class: vue.normalizeClass(["qm-menu-item", {
191
+ "qm-menu-item--selected": $setup.isSelected,
192
+ "qm-menu-item--disabled": $props.disabled
193
+ }]),
194
+ "data-qm": "menu-item",
195
+ role: "menuitem",
196
+ "aria-selected": $setup.isSelected,
197
+ "aria-disabled": $props.disabled || undefined,
198
+ tabindex: $props.disabled ? -1 : 0,
199
+ onClick: $setup.onClick,
200
+ onKeydown: [vue.withKeys(vue.withModifiers($setup.onClick, ["prevent"]), ["enter"]), vue.withKeys(vue.withModifiers($setup.onClick, ["prevent"]), ["space"])]
201
+ }, [vue.createElementVNode("span", _hoisted_2$1, [vue.renderSlot(_ctx.$slots, "icon")]), vue.createElementVNode("span", _hoisted_3$1, [vue.renderSlot(_ctx.$slots, "default")])], 42, _hoisted_1$1);
202
+ }
203
+ const menuItem = /*#__PURE__*/ exportHelper._export_sfc(_sfc_main$1, [["render", _sfc_render$1], ["__file", "F:\\软件开发\\青冥组件系统\\packages\\components\\src\\components\\menu\\menu-item.vue"]]);
204
+
205
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
206
+ ...{ name: "QmSubMenu" },
207
+ __name: "sub-menu",
208
+ props: {
209
+ /** 子菜单唯一 key(展开状态标识) */
210
+ index: { type: [String, Number], required: true },
211
+ /** 子菜单标题 */
212
+ title: { type: String, default: "" },
213
+ /** 禁用(不可展开) */
214
+ disabled: { type: Boolean, default: false }
215
+ },
216
+ setup(__props, { expose: __expose }) {
217
+ __expose();
218
+ const props = __props;
219
+ const context = vue.inject(MENU_CONTEXT_KEY, void 0);
220
+ const open = vue.computed(() => context?.isOpen(props.index) ?? false);
221
+ const popupRef = vue.ref(null);
222
+ const flip = vue.ref(false);
223
+ vue.watch(open, async (val) => {
224
+ if (!val) {
225
+ flip.value = false;
226
+ return;
227
+ }
228
+ await vue.nextTick();
229
+ const popup = popupRef.value;
230
+ if (!popup || context?.mode.value !== "horizontal")
231
+ return;
232
+ const rect = popup.getBoundingClientRect();
233
+ flip.value = rect.bottom > window.innerHeight;
234
+ });
235
+ function toggle() {
236
+ if (props.disabled)
237
+ return;
238
+ context?.toggleSubMenu?.(props.index);
239
+ }
240
+ const __returned__ = { props, context, open, popupRef, flip, toggle, get QmIcon() {
241
+ return icon.Icon;
242
+ } };
243
+ Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
244
+ return __returned__;
245
+ }
246
+ });
247
+
248
+ const _hoisted_1 = [
249
+ "aria-expanded",
250
+ "aria-disabled",
251
+ "tabindex",
252
+ "onKeydown"
253
+ ];
254
+ const _hoisted_2 = {
255
+ class: "qm-sub-menu__icon",
256
+ "aria-hidden": "true"
257
+ };
258
+ const _hoisted_3 = {
259
+ key: 0,
260
+ class: "qm-sub-menu__title"
261
+ };
262
+ const _hoisted_4 = {
263
+ key: 1,
264
+ class: "qm-sub-menu__arrow",
265
+ "aria-hidden": "true"
266
+ };
267
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
268
+ return vue.openBlock(), vue.createElementBlock(
269
+ "li",
270
+ {
271
+ class: vue.normalizeClass(["qm-sub-menu", {
272
+ "qm-sub-menu--open": $setup.open,
273
+ "qm-sub-menu--disabled": $props.disabled,
274
+ "qm-sub-menu--collapsed": $setup.context?.collapse.value
275
+ }]),
276
+ "data-qm": "sub-menu",
277
+ role: "none"
278
+ },
279
+ [vue.createElementVNode("div", {
280
+ class: "qm-sub-menu__trigger",
281
+ role: "menuitem",
282
+ "aria-haspopup": true,
283
+ "aria-expanded": $setup.open,
284
+ "aria-disabled": $props.disabled || undefined,
285
+ tabindex: $props.disabled ? -1 : 0,
286
+ onClick: $setup.toggle,
287
+ onKeydown: [vue.withKeys(vue.withModifiers($setup.toggle, ["prevent"]), ["enter"]), vue.withKeys(vue.withModifiers($setup.toggle, ["prevent"]), ["space"])]
288
+ }, [
289
+ vue.createElementVNode("span", _hoisted_2, [vue.renderSlot(_ctx.$slots, "icon")]),
290
+ !$setup.context?.collapse.value ? (vue.openBlock(), vue.createElementBlock(
291
+ "span",
292
+ _hoisted_3,
293
+ vue.toDisplayString($props.title),
294
+ 1
295
+ /* TEXT */
296
+ )) : vue.createCommentVNode("v-if", true),
297
+ !$setup.context?.collapse.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4, [vue.createVNode($setup["QmIcon"], {
298
+ name: "chevron-down",
299
+ class: "qm-sub-menu__arrow-icon"
300
+ })])) : vue.createCommentVNode("v-if", true)
301
+ ], 40, _hoisted_1), vue.withDirectives(vue.createElementVNode(
302
+ "ul",
303
+ {
304
+ ref: "popupRef",
305
+ class: vue.normalizeClass(["qm-sub-menu__popup", { "qm-sub-menu__popup--flip": $setup.flip }]),
306
+ role: "menu"
307
+ },
308
+ [vue.renderSlot(_ctx.$slots, "default")],
309
+ 2
310
+ /* CLASS */
311
+ ), [[vue.vShow, $setup.open]])],
312
+ 2
313
+ /* CLASS */
314
+ );
315
+ }
316
+ const subMenu = /*#__PURE__*/ exportHelper._export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "F:\\软件开发\\青冥组件系统\\packages\\components\\src\\components\\menu\\sub-menu.vue"]]);
317
+
318
+ exports.MENU_CONTEXT_KEY = MENU_CONTEXT_KEY;
319
+ exports.Menu = Menu;
320
+ exports.menuItem = menuItem;
321
+ exports.menuProps = menuProps;
322
+ exports.subMenu = subMenu;
@@ -0,0 +1,96 @@
1
+ import { PropType, defineComponent, computed, openBlock, createElementBlock, normalizeStyle, normalizeClass, renderSlot, createBlock, resolveDynamicComponent, createCommentVNode } from 'vue';
2
+ import { IconName, iconMap, multicolorIconNames } from '@qingmingmu/icons';
3
+ import { _ as _export_sfc } from './components.OJRSZE6i.js';
4
+
5
+ /** 图标尺寸枚举(§6.3:尺寸枚举统一 small | medium | large) */
6
+ type IconSize = 'small' | 'medium' | 'large';
7
+ /** props 声明(纯类型 + 默认值,供 SFC 与文档复用) */
8
+ declare const iconProps: {
9
+ /** 图标名(来自 @qingmingmu/icons 的 iconNames);为空时渲染插槽或空 */
10
+ readonly name: {
11
+ readonly type: PropType<IconName>;
12
+ readonly default: "";
13
+ };
14
+ /** 尺寸:small | medium | large 走分档 Token;string/number 自定义(number 按 px) */
15
+ readonly size: {
16
+ readonly type: PropType<IconSize | string | number>;
17
+ readonly default: "medium";
18
+ };
19
+ /** 颜色(默认继承 --qm-icon-color) */
20
+ readonly color: {
21
+ readonly type: StringConstructor;
22
+ readonly default: "";
23
+ };
24
+ /** 单色模式:多色图标强制降级为单色(通道色覆盖为 currentColor,随 --qm-icon-color) */
25
+ readonly mono: {
26
+ readonly type: BooleanConstructor;
27
+ readonly default: false;
28
+ };
29
+ };
30
+
31
+ var _sfc_main = /* @__PURE__ */ defineComponent({
32
+ ...{ name: "QmIcon" },
33
+ __name: "icon",
34
+ props: iconProps,
35
+ setup(__props, { expose: __expose }) {
36
+ __expose();
37
+ const props = __props;
38
+ const enumSize = computed(
39
+ () => props.size === "small" || props.size === "medium" || props.size === "large" ? props.size : null
40
+ );
41
+ const customFontSize = computed(() => {
42
+ if (enumSize.value)
43
+ return void 0;
44
+ if (typeof props.size === "number")
45
+ return `${props.size}px`;
46
+ return props.size || void 0;
47
+ });
48
+ const iconComp = computed(() => {
49
+ if (!props.name)
50
+ return null;
51
+ return iconMap[props.name] ?? null;
52
+ });
53
+ const isMulticolor = computed(
54
+ () => !!props.name && multicolorIconNames.includes(props.name)
55
+ );
56
+ const rootStyle = computed(() => ({
57
+ fontSize: customFontSize.value,
58
+ color: props.color || void 0
59
+ }));
60
+ const modifierClass = computed(() => {
61
+ const classes = [];
62
+ if (enumSize.value)
63
+ classes.push(`qm-icon--${enumSize.value}`);
64
+ if (props.mono)
65
+ classes.push("qm-icon--mono");
66
+ else if (isMulticolor.value)
67
+ classes.push("qm-icon--multicolor");
68
+ return classes;
69
+ });
70
+ const __returned__ = { props, enumSize, customFontSize, iconComp, isMulticolor, rootStyle, modifierClass };
71
+ Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
72
+ return __returned__;
73
+ }
74
+ });
75
+
76
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
77
+ return openBlock(), createElementBlock(
78
+ "span",
79
+ {
80
+ class: normalizeClass(["qm-icon", $setup.modifierClass]),
81
+ style: normalizeStyle($setup.rootStyle),
82
+ "data-qm": "icon",
83
+ "aria-hidden": "true"
84
+ },
85
+ [_ctx.$slots.default ? renderSlot(_ctx.$slots, "default", {}, undefined, undefined, 0) : $setup.iconComp ? (openBlock(), createBlock(resolveDynamicComponent($setup.iconComp), {
86
+ key: 1,
87
+ size: "1em"
88
+ })) : createCommentVNode("v-if", true)],
89
+ 6
90
+ /* CLASS, STYLE */
91
+ );
92
+ }
93
+ var Icon = /*#__PURE__*/ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "F:\\软件开发\\青冥组件系统\\packages\\components\\src\\components\\icon\\icon.vue"]]);
94
+
95
+ export { Icon as a, iconProps as i };
96
+ export type { IconSize as I };
@@ -0,0 +1,272 @@
1
+ import { PropType, Ref, ComputedRef, defineComponent, useId, ref, computed, watch, onBeforeUnmount, openBlock, createElementBlock, Fragment, createCommentVNode, createElementVNode, renderSlot, createBlock, Teleport, createVNode, Transition, withCtx, normalizeStyle, normalizeClass, createTextVNode, toDisplayString } from 'vue';
2
+ import { u as usePositioning } from './components.4UjasbrA.mjs';
3
+ import { _ as _export_sfc } from './components.OJRSZE6i.mjs';
4
+
5
+ /**
6
+ * QmTooltip 组件类型定义(组件体系设计 §6.4:类型先行)
7
+ * 03-T9:文字提示,基于 use-positioning 共享定位模块
8
+ * - 触发:hover(延迟防闪烁)/ focus / click(外部点击关闭)
9
+ * - 位置:top/bottom/left/right 四向 + 视口自动翻转(use-positioning)
10
+ * - ARIA:触发器 aria-describedby 关联浮层 role=tooltip
11
+ * - 受控:v-model:visible;未传即非受控
12
+ */
13
+
14
+ /** 弹出位置(四向;空间不足时由 use-positioning 自动翻转到对侧) */
15
+ type TooltipPlacement = 'top' | 'bottom' | 'left' | 'right';
16
+ /** 触发方式 */
17
+ type TooltipTrigger = 'hover' | 'focus' | 'click';
18
+ /** props 声明 */
19
+ declare const tooltipProps: {
20
+ /** 提示文案(也可用 content 插槽 / 触发器默认插槽旁的 #content) */
21
+ readonly content: {
22
+ readonly type: StringConstructor;
23
+ readonly default: "";
24
+ };
25
+ /** 弹出位置(空间不足自动翻转) */
26
+ readonly placement: {
27
+ readonly type: PropType<TooltipPlacement>;
28
+ readonly default: "top";
29
+ };
30
+ /** 触发方式 */
31
+ readonly trigger: {
32
+ readonly type: PropType<TooltipTrigger>;
33
+ readonly default: "hover";
34
+ };
35
+ /** 受控显隐(v-model:visible);未传即非受控(组件内自维护) */
36
+ readonly visible: {
37
+ readonly type: BooleanConstructor;
38
+ readonly default: undefined;
39
+ };
40
+ /** 禁用(不显示浮层,触发器不可聚焦) */
41
+ readonly disabled: {
42
+ readonly type: BooleanConstructor;
43
+ readonly default: false;
44
+ };
45
+ /** 是否显示箭头 */
46
+ readonly showArrow: {
47
+ readonly type: BooleanConstructor;
48
+ readonly default: true;
49
+ };
50
+ /** hover 进入延迟(ms,防闪烁) */
51
+ readonly enterDelay: {
52
+ readonly type: NumberConstructor;
53
+ readonly default: 100;
54
+ };
55
+ /** hover 离开延迟(ms,防闪烁) */
56
+ readonly leaveDelay: {
57
+ readonly type: NumberConstructor;
58
+ readonly default: 100;
59
+ };
60
+ /** Teleport 挂载目标(CSS 选择器,默认 body) */
61
+ readonly appendTo: {
62
+ readonly type: StringConstructor;
63
+ readonly default: "body";
64
+ };
65
+ };
66
+ /** emits 声明 */
67
+ interface TooltipEmits {
68
+ /** 显隐同步(v-model:visible) */
69
+ 'update:visible': [value: boolean];
70
+ /** 显示时触发 */
71
+ 'show': [];
72
+ /** 隐藏时触发 */
73
+ 'hide': [];
74
+ }
75
+
76
+ /**
77
+ * useTooltip 行为层(03-T9 §4)
78
+ *
79
+ * 职责(与视图解耦,可独立单测):
80
+ * - 受控/非受控显隐状态统一管理(props.visible 传入即受控,否则内部自维护);
81
+ * - 触发契约:
82
+ * hover —— mouseenter 经 enterDelay 显示,mouseleave 经 leaveDelay 隐藏(互清定时器防闪烁);
83
+ * focus —— focus 显示,blur 隐藏(Tab 离开关闭);
84
+ * click —— 点击切换,外部点击关闭;
85
+ * - 键盘:Esc 关闭(document keydown,仅显示期监听);
86
+ * - show/hide 事件契约 + update:visible 同步;
87
+ * - 延迟定时器清理(无泄漏契约)。
88
+ *
89
+ * 定位(fixed/翻转/滚动重定位)复用 composables/use-positioning,不在此内联。
90
+ */
91
+
92
+ interface UseTooltipOptions {
93
+ /** 受控显隐(props.visible,undefined 即非受控) */
94
+ visible: Ref<boolean | undefined>;
95
+ /** 触发方式 */
96
+ trigger: Ref<TooltipTrigger>;
97
+ /** 禁用 */
98
+ disabled: Ref<boolean>;
99
+ /** hover 进入延迟(ms) */
100
+ enterDelay: Ref<number>;
101
+ /** hover 离开延迟(ms) */
102
+ leaveDelay: Ref<number>;
103
+ emitUpdate: (value: boolean) => void;
104
+ emitShow: () => void;
105
+ emitHide: () => void;
106
+ }
107
+ interface UseTooltipReturn {
108
+ /** 当前解析后的显隐(受控时跟随 props,非受控时为内部状态) */
109
+ isVisible: ComputedRef<boolean>;
110
+ /** 编程式显示(禁用时忽略) */
111
+ show: () => void;
112
+ /** 编程式隐藏 */
113
+ hide: () => void;
114
+ /** 切换(click 触发用) */
115
+ toggle: () => void;
116
+ onMouseenter: () => void;
117
+ onMouseleave: () => void;
118
+ onFocus: () => void;
119
+ onBlur: () => void;
120
+ onClick: () => void;
121
+ /** 文档 keydown:Esc 关闭(组件层在显示期绑定/解绑) */
122
+ onDocumentKeydown: (event: KeyboardEvent) => void;
123
+ /** 卸载清理:清除延迟定时器(无泄漏契约) */
124
+ dispose: () => void;
125
+ }
126
+ declare function useTooltip(options: UseTooltipOptions): UseTooltipReturn;
127
+
128
+ var _sfc_main = /* @__PURE__ */ defineComponent({
129
+ ...{ name: "QmTooltip" },
130
+ __name: "tooltip",
131
+ props: tooltipProps,
132
+ emits: ["update:visible", "show", "hide"],
133
+ setup(__props, { expose: __expose, emit: __emit }) {
134
+ __expose();
135
+ const props = __props;
136
+ const emit = __emit;
137
+ const uid = useId();
138
+ const tooltipId = `qm-tooltip-${uid}`;
139
+ const triggerRef = ref(null);
140
+ const panelRef = ref(null);
141
+ const visibleProp = computed(() => props.visible);
142
+ const triggerProp = computed(() => props.trigger);
143
+ const disabledProp = computed(() => props.disabled);
144
+ const enterDelayProp = computed(() => props.enterDelay);
145
+ const leaveDelayProp = computed(() => props.leaveDelay);
146
+ const {
147
+ isVisible,
148
+ hide,
149
+ onMouseenter,
150
+ onMouseleave,
151
+ onFocus,
152
+ onBlur,
153
+ onClick,
154
+ onDocumentKeydown,
155
+ dispose: disposeBehavior
156
+ } = useTooltip({
157
+ visible: visibleProp,
158
+ trigger: triggerProp,
159
+ disabled: disabledProp,
160
+ enterDelay: enterDelayProp,
161
+ leaveDelay: leaveDelayProp,
162
+ emitUpdate: (value) => emit("update:visible", value),
163
+ emitShow: () => emit("show"),
164
+ emitHide: () => emit("hide")
165
+ });
166
+ const placementProp = computed(() => props.placement);
167
+ const {
168
+ positionStyle,
169
+ actualPlacement,
170
+ updatePosition,
171
+ startAutoReposition,
172
+ stopAutoReposition,
173
+ dispose: disposePositioning
174
+ } = usePositioning({
175
+ triggerRef,
176
+ panelRef,
177
+ placement: placementProp,
178
+ offset: 8,
179
+ flip: true
180
+ });
181
+ function onDocumentMousedown(event) {
182
+ if (props.trigger !== "click")
183
+ return;
184
+ const target = event.target;
185
+ if (triggerRef.value?.contains(target) || panelRef.value?.contains(target))
186
+ return;
187
+ hide();
188
+ }
189
+ watch(
190
+ isVisible,
191
+ (val) => {
192
+ if (val) {
193
+ void updatePosition();
194
+ startAutoReposition();
195
+ document.addEventListener("mousedown", onDocumentMousedown, true);
196
+ document.addEventListener("keydown", onDocumentKeydown, true);
197
+ } else {
198
+ stopAutoReposition();
199
+ document.removeEventListener("mousedown", onDocumentMousedown, true);
200
+ document.removeEventListener("keydown", onDocumentKeydown, true);
201
+ }
202
+ },
203
+ { flush: "post" }
204
+ );
205
+ onBeforeUnmount(() => {
206
+ document.removeEventListener("mousedown", onDocumentMousedown, true);
207
+ document.removeEventListener("keydown", onDocumentKeydown, true);
208
+ stopAutoReposition();
209
+ disposePositioning();
210
+ disposeBehavior();
211
+ });
212
+ const ariaDescribedby = computed(() => isVisible.value ? tooltipId : void 0);
213
+ const __returned__ = { props, emit, uid, tooltipId, triggerRef, panelRef, visibleProp, triggerProp, disabledProp, enterDelayProp, leaveDelayProp, isVisible, hide, onMouseenter, onMouseleave, onFocus, onBlur, onClick, onDocumentKeydown, disposeBehavior, placementProp, positionStyle, actualPlacement, updatePosition, startAutoReposition, stopAutoReposition, disposePositioning, onDocumentMousedown, ariaDescribedby };
214
+ Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true });
215
+ return __returned__;
216
+ }
217
+ });
218
+
219
+ const _hoisted_1 = ["tabindex", "aria-describedby"];
220
+ const _hoisted_2 = {
221
+ key: 0,
222
+ class: "qm-tooltip__arrow",
223
+ "aria-hidden": "true"
224
+ };
225
+ function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
226
+ return openBlock(), createElementBlock(
227
+ Fragment,
228
+ null,
229
+ [
230
+ createCommentVNode(" 触发器(default 插槽;可聚焦以支持 focus 触发与键盘操作) "),
231
+ createElementVNode("span", {
232
+ ref: "triggerRef",
233
+ class: "qm-tooltip__trigger",
234
+ tabindex: _ctx.disabled ? -1 : 0,
235
+ "aria-describedby": $setup.ariaDescribedby,
236
+ onMouseenter: _cache[0] || (_cache[0] = (...args) => $setup.onMouseenter && $setup.onMouseenter(...args)),
237
+ onMouseleave: _cache[1] || (_cache[1] = (...args) => $setup.onMouseleave && $setup.onMouseleave(...args)),
238
+ onFocusin: _cache[2] || (_cache[2] = (...args) => $setup.onFocus && $setup.onFocus(...args)),
239
+ onFocusout: _cache[3] || (_cache[3] = (...args) => $setup.onBlur && $setup.onBlur(...args)),
240
+ onClick: _cache[4] || (_cache[4] = (...args) => $setup.onClick && $setup.onClick(...args))
241
+ }, [renderSlot(_ctx.$slots, "default")], 40, _hoisted_1),
242
+ createCommentVNode(" 浮层(Teleport + Transition;fixed 定位由 use-positioning 计算) "),
243
+ (openBlock(), createBlock(Teleport, { to: _ctx.appendTo }, [createVNode(Transition, { name: "qm-tooltip" }, {
244
+ default: withCtx(() => [$setup.isVisible ? (openBlock(), createElementBlock(
245
+ "div",
246
+ {
247
+ key: 0,
248
+ id: $setup.tooltipId,
249
+ ref: "panelRef",
250
+ class: normalizeClass(["qm-tooltip", `qm-tooltip--${$setup.actualPlacement}`]),
251
+ style: normalizeStyle($setup.positionStyle),
252
+ role: "tooltip"
253
+ },
254
+ [renderSlot(_ctx.$slots, "content", {}, () => [createTextVNode(
255
+ toDisplayString(_ctx.content),
256
+ 1
257
+ /* TEXT */
258
+ )]), _ctx.showArrow ? (openBlock(), createElementBlock("span", _hoisted_2)) : createCommentVNode("v-if", true)],
259
+ 6
260
+ /* CLASS, STYLE */
261
+ )) : createCommentVNode("v-if", true)]),
262
+ _: 3
263
+ })], 8, ["to"]))
264
+ ],
265
+ 64
266
+ /* STABLE_FRAGMENT */
267
+ );
268
+ }
269
+ var Tooltip = /*#__PURE__*/ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "F:\\软件开发\\青冥组件系统\\packages\\components\\src\\components\\tooltip\\tooltip.vue"]]);
270
+
271
+ export { Tooltip as T, tooltipProps as t, useTooltip as u };
272
+ export type { UseTooltipOptions as U, TooltipEmits as a, TooltipPlacement as b, TooltipTrigger as c, UseTooltipReturn as d };