pxd 0.0.64 → 0.1.3

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 (545) hide show
  1. package/README.md +21 -10
  2. package/dist/components/_internal/calendar-day.d.vue.ts +33 -0
  3. package/dist/components/_internal/calendar-day.vue +85 -0
  4. package/dist/components/_internal/dismiss-container.d.vue.ts +1 -1
  5. package/dist/components/_internal/dismiss-container.vue +74 -127
  6. package/dist/components/_internal/fragment-container.vue +3 -3
  7. package/dist/components/_internal/loading-mask.d.vue.ts +8 -0
  8. package/dist/components/_internal/loading-mask.vue +33 -0
  9. package/dist/components/_internal/mention-editor.d.vue.ts +42 -0
  10. package/dist/components/_internal/mention-editor.vue +114 -0
  11. package/dist/components/_internal/popover-arrow.d.vue.ts +1 -1
  12. package/dist/components/_internal/popover-arrow.vue +9 -6
  13. package/dist/components/_internal/step-item.d.vue.ts +24 -0
  14. package/dist/components/_internal/step-item.vue +86 -0
  15. package/dist/components/_internal/tree-node.d.vue.ts +72 -0
  16. package/dist/components/_internal/tree-node.vue +268 -0
  17. package/dist/components/active-graph/index.d.vue.ts +4 -4
  18. package/dist/components/active-graph/index.vue +381 -239
  19. package/dist/components/active-graph/types.d.ts +2 -1
  20. package/dist/components/approval-card/index.d.vue.ts +28 -0
  21. package/dist/components/approval-card/index.vue +252 -0
  22. package/dist/components/approval-card/types.d.ts +37 -0
  23. package/dist/components/avatar/index.vue +43 -72
  24. package/dist/components/avatar-group/index.d.vue.ts +1 -1
  25. package/dist/components/avatar-group/index.vue +38 -25
  26. package/dist/components/backtop/index.d.vue.ts +10 -3
  27. package/dist/components/backtop/index.vue +97 -54
  28. package/dist/components/backtop/types.d.ts +10 -3
  29. package/dist/components/badge/index.d.vue.ts +6 -3
  30. package/dist/components/badge/index.vue +126 -79
  31. package/dist/components/badge/types.d.ts +3 -2
  32. package/dist/components/book/index.vue +57 -162
  33. package/dist/components/book/types.d.ts +1 -1
  34. package/dist/components/border-beam/index.d.vue.ts +18 -0
  35. package/dist/components/border-beam/index.vue +64 -0
  36. package/dist/components/border-beam/types.d.ts +8 -0
  37. package/dist/components/{resizable-panel → breadcrumb}/index.d.vue.ts +3 -4
  38. package/dist/components/breadcrumb/index.vue +32 -0
  39. package/dist/components/breadcrumb/types.d.ts +6 -0
  40. package/dist/components/breadcrumb-item/index.d.vue.ts +16 -0
  41. package/dist/components/breadcrumb-item/index.vue +50 -0
  42. package/dist/components/breadcrumb-item/types.d.ts +4 -0
  43. package/dist/components/browser/index.d.vue.ts +2 -2
  44. package/dist/components/browser/index.vue +13 -28
  45. package/dist/components/bubble/index.d.vue.ts +6 -3
  46. package/dist/components/bubble/index.vue +85 -18
  47. package/dist/components/bubble/types.d.ts +3 -1
  48. package/dist/components/bubble-group/index.d.vue.ts +19 -0
  49. package/dist/components/bubble-group/index.vue +86 -0
  50. package/dist/components/bubble-group/types.d.ts +6 -0
  51. package/dist/components/bubble-group/types.js +0 -0
  52. package/dist/components/button/index.d.vue.ts +6 -5
  53. package/dist/components/button/index.vue +121 -86
  54. package/dist/components/button/types.d.ts +1 -1
  55. package/dist/components/button-group/index.vue +20 -7
  56. package/dist/components/button-group/types.d.ts +1 -1
  57. package/dist/components/calendar/index.d.vue.ts +41 -0
  58. package/dist/components/calendar/index.vue +247 -0
  59. package/dist/components/calendar/types.d.ts +37 -0
  60. package/dist/components/card/index.d.vue.ts +21 -0
  61. package/dist/components/card/index.vue +47 -0
  62. package/dist/components/card/types.d.ts +6 -0
  63. package/dist/components/carousel/index.d.vue.ts +11 -7
  64. package/dist/components/carousel/index.vue +232 -283
  65. package/dist/components/carousel/types.d.ts +15 -1
  66. package/dist/components/checkbox/index.d.vue.ts +6 -5
  67. package/dist/components/checkbox/index.vue +107 -90
  68. package/dist/components/checkbox/types.d.ts +7 -5
  69. package/dist/components/checkbox-group/index.d.vue.ts +8 -8
  70. package/dist/components/checkbox-group/index.vue +26 -11
  71. package/dist/components/checkbox-group/types.d.ts +4 -2
  72. package/dist/components/checkerboard/index.d.vue.ts +14 -0
  73. package/dist/components/checkerboard/index.vue +37 -0
  74. package/dist/components/checkerboard/types.d.ts +5 -0
  75. package/dist/components/chip/index.d.vue.ts +3 -1
  76. package/dist/components/chip/index.vue +49 -46
  77. package/dist/components/chip/types.d.ts +1 -1
  78. package/dist/components/choicebox/index.d.vue.ts +7 -7
  79. package/dist/components/choicebox/index.vue +52 -30
  80. package/dist/components/choicebox/types.d.ts +1 -1
  81. package/dist/components/choicebox-item/index.d.vue.ts +7 -5
  82. package/dist/components/choicebox-item/index.vue +172 -53
  83. package/dist/components/choicebox-item/types.d.ts +3 -7
  84. package/dist/components/collapse/index.d.vue.ts +2 -2
  85. package/dist/components/collapse/index.vue +73 -99
  86. package/dist/components/collapse-group/index.vue +43 -32
  87. package/dist/components/collapse-group/types.d.ts +1 -1
  88. package/dist/components/color-selector/index.vue +45 -41
  89. package/dist/components/command-menu/index.d.vue.ts +10 -7
  90. package/dist/components/command-menu/index.vue +111 -46
  91. package/dist/components/command-menu/types.d.ts +3 -2
  92. package/dist/components/config-provider/index.d.vue.ts +116 -7
  93. package/dist/components/config-provider/index.vue +54 -11
  94. package/dist/components/config-provider/types.d.ts +6 -3
  95. package/dist/components/confirm-popover/index.d.vue.ts +39 -0
  96. package/dist/components/confirm-popover/index.vue +177 -0
  97. package/dist/components/confirm-popover/types.d.ts +23 -0
  98. package/dist/components/copy-button/index.d.vue.ts +20 -0
  99. package/dist/components/copy-button/index.vue +38 -0
  100. package/dist/components/copy-button/types.d.ts +7 -0
  101. package/dist/components/countdown/index.d.vue.ts +1 -1
  102. package/dist/components/countdown/index.vue +77 -29
  103. package/dist/components/dash-line/index.d.vue.ts +2 -1
  104. package/dist/components/dash-line/index.vue +78 -76
  105. package/dist/components/dash-line/types.d.ts +1 -1
  106. package/dist/components/date-picker/index.d.vue.ts +16 -0
  107. package/dist/components/date-picker/index.vue +295 -0
  108. package/dist/components/date-picker/types.d.ts +20 -0
  109. package/dist/components/description/index.vue +16 -7
  110. package/dist/components/drawer/index.d.vue.ts +11 -11
  111. package/dist/components/drawer/index.vue +156 -70
  112. package/dist/components/drawer/types.d.ts +3 -2
  113. package/dist/components/effort-slider/index.d.vue.ts +10 -0
  114. package/dist/components/effort-slider/index.vue +341 -0
  115. package/dist/components/effort-slider/types.d.ts +14 -0
  116. package/dist/components/ellipsis-text/index.d.vue.ts +1 -1
  117. package/dist/components/ellipsis-text/index.vue +209 -166
  118. package/dist/components/empty-state/index.vue +11 -4
  119. package/dist/components/error/index.d.vue.ts +3 -1
  120. package/dist/components/error/index.vue +42 -28
  121. package/dist/components/error/types.d.ts +2 -1
  122. package/dist/components/fader/index.d.vue.ts +1 -1
  123. package/dist/components/fader/index.vue +58 -114
  124. package/dist/components/fader/types.d.ts +3 -2
  125. package/dist/components/feedback-bar/index.d.vue.ts +12 -0
  126. package/dist/components/feedback-bar/index.vue +81 -0
  127. package/dist/components/feedback-bar/types.d.ts +9 -0
  128. package/dist/components/gauge/index.vue +91 -71
  129. package/dist/components/gauge/types.d.ts +1 -1
  130. package/dist/components/grid/index.vue +58 -52
  131. package/dist/components/grid/types.d.ts +1 -1
  132. package/dist/components/grid-item/index.vue +44 -39
  133. package/dist/components/grid-item/types.d.ts +1 -1
  134. package/dist/components/hint/index.d.vue.ts +32 -0
  135. package/dist/components/hint/index.vue +239 -0
  136. package/dist/components/hint/types.d.ts +17 -0
  137. package/dist/components/hold-button/index.d.vue.ts +4 -4
  138. package/dist/components/hold-button/index.vue +114 -118
  139. package/dist/components/hue-text/index.d.vue.ts +16 -0
  140. package/dist/components/hue-text/index.vue +48 -0
  141. package/dist/components/hue-text/types.d.ts +4 -0
  142. package/dist/components/index.d.ts +44 -5
  143. package/dist/components/index.js +44 -5
  144. package/dist/components/input/index.d.vue.ts +6 -5
  145. package/dist/components/input/index.vue +259 -136
  146. package/dist/components/input/types.d.ts +10 -7
  147. package/dist/components/intersection-observer/index.vue +65 -42
  148. package/dist/components/kbd/index.vue +47 -25
  149. package/dist/components/kbd/types.d.ts +1 -1
  150. package/dist/components/label/index.vue +7 -3
  151. package/dist/components/link-button/index.d.vue.ts +5 -5
  152. package/dist/components/link-button/index.vue +49 -32
  153. package/dist/components/list/index.d.vue.ts +22 -14
  154. package/dist/components/list/index.vue +318 -78
  155. package/dist/components/list/types.d.ts +39 -11
  156. package/dist/components/list-group/index.d.vue.ts +4 -0
  157. package/dist/components/list-group/index.vue +22 -0
  158. package/dist/components/list-group/types.d.ts +5 -0
  159. package/dist/components/list-item/index.d.vue.ts +7 -7
  160. package/dist/components/list-item/index.vue +95 -75
  161. package/dist/components/list-item/types.d.ts +7 -4
  162. package/dist/components/loading-bar/index.vue +148 -141
  163. package/dist/components/loading-dots/index.d.vue.ts +1 -13
  164. package/dist/components/loading-dots/index.vue +13 -15
  165. package/dist/components/marching-ants/index.d.vue.ts +25 -0
  166. package/dist/components/marching-ants/index.vue +486 -0
  167. package/dist/components/marching-ants/types.d.ts +9 -0
  168. package/dist/components/marquee/index.d.vue.ts +37 -0
  169. package/dist/components/marquee/index.vue +242 -0
  170. package/dist/components/marquee/types.d.ts +18 -0
  171. package/dist/components/material/index.d.vue.ts +3 -3
  172. package/dist/components/material/index.vue +22 -28
  173. package/dist/components/mention/index.d.vue.ts +38 -0
  174. package/dist/components/mention/index.vue +251 -0
  175. package/dist/components/mention/types.d.ts +35 -0
  176. package/dist/components/menu/index.d.vue.ts +17 -10
  177. package/dist/components/menu/index.vue +99 -28
  178. package/dist/components/menu/types.d.ts +8 -6
  179. package/dist/components/message/index.d.vue.ts +7 -7
  180. package/dist/components/message/index.vue +140 -239
  181. package/dist/components/message/types.d.ts +1 -1
  182. package/dist/components/message-item/index.vue +46 -62
  183. package/dist/components/modal/index.d.vue.ts +10 -10
  184. package/dist/components/modal/index.vue +143 -66
  185. package/dist/components/modal/types.d.ts +3 -5
  186. package/dist/components/more-button/index.vue +25 -13
  187. package/dist/components/noise-background/index.d.vue.ts +0 -16
  188. package/dist/components/noise-background/index.vue +70 -9
  189. package/dist/components/noise-background/types.d.ts +5 -1
  190. package/dist/components/note/index.d.vue.ts +1 -1
  191. package/dist/components/note/index.vue +114 -100
  192. package/dist/components/note/types.d.ts +3 -1
  193. package/dist/components/number-input/index.d.vue.ts +12 -9
  194. package/dist/components/number-input/index.vue +241 -165
  195. package/dist/components/number-input/types.d.ts +3 -3
  196. package/dist/components/overlay/index.d.vue.ts +3 -4
  197. package/dist/components/overlay/index.vue +85 -95
  198. package/dist/components/overlay/types.d.ts +0 -2
  199. package/dist/components/page-number/index.d.vue.ts +18 -0
  200. package/dist/components/page-number/index.vue +233 -0
  201. package/dist/components/page-number/types.d.ts +18 -0
  202. package/dist/components/pagination/index.vue +14 -7
  203. package/dist/components/pin-input/index.d.vue.ts +2 -2
  204. package/dist/components/pin-input/index.vue +197 -179
  205. package/dist/components/pin-input/types.d.ts +1 -1
  206. package/dist/components/placeholder/index.vue +22 -32
  207. package/dist/components/popover/index.d.vue.ts +0 -47
  208. package/dist/components/popover/index.vue +558 -347
  209. package/dist/components/popover/types.d.ts +10 -1
  210. package/dist/components/progress/index.d.vue.ts +3 -9
  211. package/dist/components/progress/index.vue +85 -63
  212. package/dist/components/progress/types.d.ts +1 -6
  213. package/dist/components/project-banner/index.d.vue.ts +3 -1
  214. package/dist/components/project-banner/index.vue +36 -34
  215. package/dist/components/project-banner/types.d.ts +2 -2
  216. package/dist/components/questionnaire/index.d.vue.ts +10 -0
  217. package/dist/components/questionnaire/index.vue +353 -0
  218. package/dist/components/questionnaire/types.d.ts +30 -0
  219. package/dist/components/radial-burst/index.d.vue.ts +14 -0
  220. package/dist/components/radial-burst/index.vue +53 -0
  221. package/dist/components/radial-burst/types.d.ts +5 -0
  222. package/dist/components/radio/index.d.vue.ts +4 -4
  223. package/dist/components/radio/index.vue +56 -74
  224. package/dist/components/radio/types.d.ts +1 -1
  225. package/dist/components/radio-group/index.d.vue.ts +6 -6
  226. package/dist/components/radio-group/index.vue +26 -12
  227. package/dist/components/radio-group/types.d.ts +1 -1
  228. package/dist/components/rating/index.d.vue.ts +17 -0
  229. package/dist/components/rating/index.vue +253 -0
  230. package/dist/components/rating/types.d.ts +18 -0
  231. package/dist/components/reasoning/index.d.vue.ts +16 -0
  232. package/dist/components/reasoning/index.vue +68 -0
  233. package/dist/components/reasoning/types.d.ts +3 -0
  234. package/dist/components/resizable/index.d.vue.ts +28 -4
  235. package/dist/components/resizable/index.vue +339 -158
  236. package/dist/components/resizable/types.d.ts +13 -14
  237. package/dist/components/reveal/index.d.vue.ts +22 -0
  238. package/dist/components/reveal/index.vue +100 -0
  239. package/dist/components/reveal/types.d.ts +15 -0
  240. package/dist/components/rolling-number/index.d.vue.ts +17 -0
  241. package/dist/components/rolling-number/index.vue +252 -0
  242. package/dist/components/rolling-number/types.d.ts +11 -0
  243. package/dist/components/scalable-text/index.vue +116 -113
  244. package/dist/components/scroll-progress/index.d.vue.ts +22 -0
  245. package/dist/components/scroll-progress/index.vue +75 -0
  246. package/dist/components/scroll-progress/types.d.ts +9 -0
  247. package/dist/components/scroll-text/index.d.vue.ts +18 -0
  248. package/dist/components/scroll-text/index.vue +123 -0
  249. package/dist/components/scroll-text/types.d.ts +7 -0
  250. package/dist/components/scrollable/index.d.vue.ts +3 -3
  251. package/dist/components/scrollable/index.vue +281 -222
  252. package/dist/components/scrollable/types.d.ts +2 -1
  253. package/dist/components/search-input/index.d.vue.ts +152 -0
  254. package/dist/components/search-input/index.vue +56 -0
  255. package/dist/components/search-input/types.d.ts +7 -0
  256. package/dist/components/select/index.d.vue.ts +36 -0
  257. package/dist/components/select/index.vue +257 -0
  258. package/dist/components/select/types.d.ts +25 -0
  259. package/dist/components/separator/index.d.vue.ts +1 -1
  260. package/dist/components/separator/index.vue +9 -6
  261. package/dist/components/separator/types.d.ts +1 -1
  262. package/dist/components/shimmer-text/index.d.vue.ts +18 -0
  263. package/dist/components/shimmer-text/index.vue +216 -0
  264. package/dist/components/shimmer-text/types.d.ts +14 -0
  265. package/dist/components/skeleton/index.d.vue.ts +1 -1
  266. package/dist/components/skeleton/index.vue +59 -51
  267. package/dist/components/skeleton/types.d.ts +1 -1
  268. package/dist/components/slider/index.d.vue.ts +2 -2
  269. package/dist/components/slider/index.vue +391 -261
  270. package/dist/components/slider/types.d.ts +4 -2
  271. package/dist/components/snippet/index.d.vue.ts +3 -2
  272. package/dist/components/snippet/index.vue +83 -70
  273. package/dist/components/snippet/types.d.ts +4 -4
  274. package/dist/components/spinner/index.vue +13 -8
  275. package/dist/components/spinner-dots/index.d.vue.ts +7 -0
  276. package/dist/components/spinner-dots/index.vue +232 -0
  277. package/dist/components/spinner-dots/types.d.ts +9 -0
  278. package/dist/components/split-button/index.d.vue.ts +31 -0
  279. package/dist/components/split-button/index.vue +93 -0
  280. package/dist/components/split-button/types.d.ts +18 -0
  281. package/dist/components/stack/index.d.vue.ts +4 -4
  282. package/dist/components/stack/index.vue +98 -85
  283. package/dist/components/stack/types.d.ts +1 -1
  284. package/dist/components/status-dot/index.d.vue.ts +1 -1
  285. package/dist/components/status-dot/index.vue +34 -20
  286. package/dist/components/status-dot/types.d.ts +1 -1
  287. package/dist/components/steps/index.d.vue.ts +28 -0
  288. package/dist/components/steps/index.vue +143 -0
  289. package/dist/components/steps/types.d.ts +25 -0
  290. package/dist/components/stick-to-bottom/index.d.vue.ts +35 -0
  291. package/dist/components/stick-to-bottom/index.vue +78 -0
  292. package/dist/components/stick-to-bottom/types.d.ts +13 -0
  293. package/dist/components/swipe-cell/index.d.vue.ts +53 -0
  294. package/dist/components/swipe-cell/index.vue +412 -0
  295. package/dist/components/swipe-cell/types.d.ts +53 -0
  296. package/dist/components/switch/index.d.vue.ts +1 -1
  297. package/dist/components/switch/index.vue +43 -22
  298. package/dist/components/switch/types.d.ts +1 -1
  299. package/dist/components/switch-item/index.vue +36 -37
  300. package/dist/components/switch-item/types.d.ts +1 -1
  301. package/dist/components/tabs/index.d.vue.ts +8 -6
  302. package/dist/components/tabs/index.vue +241 -198
  303. package/dist/components/tabs/tab-slot.d.ts +24 -0
  304. package/dist/components/tabs/tab-slot.js +13 -0
  305. package/dist/components/tabs/types.d.ts +11 -5
  306. package/dist/components/teleport/index.vue +69 -60
  307. package/dist/components/text/index.d.vue.ts +4 -4
  308. package/dist/components/text/index.vue +68 -57
  309. package/dist/components/text/types.d.ts +1 -1
  310. package/dist/components/textarea/index.d.vue.ts +7 -5
  311. package/dist/components/textarea/index.vue +148 -71
  312. package/dist/components/textarea/types.d.ts +6 -3
  313. package/dist/components/theme-switcher/index.d.vue.ts +3 -2
  314. package/dist/components/theme-switcher/index.vue +19 -15
  315. package/dist/components/theme-switcher/types.d.ts +2 -2
  316. package/dist/components/time-ago/index.d.vue.ts +6 -0
  317. package/dist/components/time-ago/index.vue +143 -0
  318. package/dist/components/time-ago/types.d.ts +4 -0
  319. package/dist/components/time-picker/index.d.vue.ts +8 -9
  320. package/dist/components/time-picker/index.vue +249 -186
  321. package/dist/components/time-picker/types.d.ts +7 -7
  322. package/dist/components/timeline/index.d.vue.ts +6 -0
  323. package/dist/components/timeline/index.vue +52 -0
  324. package/dist/components/timeline/types.d.ts +6 -0
  325. package/dist/components/timeline-item/index.d.vue.ts +22 -0
  326. package/dist/components/timeline-item/index.vue +110 -0
  327. package/dist/components/timeline-item/types.d.ts +16 -0
  328. package/dist/components/toc/index.d.vue.ts +37 -0
  329. package/dist/components/toc/index.vue +199 -0
  330. package/dist/components/toc/types.d.ts +28 -0
  331. package/dist/components/todo-list/index.d.vue.ts +64 -0
  332. package/dist/components/todo-list/index.vue +357 -0
  333. package/dist/components/todo-list/types.d.ts +53 -0
  334. package/dist/components/toggle/index.d.vue.ts +6 -6
  335. package/dist/components/toggle/index.vue +95 -44
  336. package/dist/components/toggle/types.d.ts +2 -2
  337. package/dist/components/toggle-button/index.d.vue.ts +5 -5
  338. package/dist/components/toggle-button/index.vue +125 -86
  339. package/dist/components/toggle-button/types.d.ts +8 -6
  340. package/dist/components/toggle-button-group/index.d.vue.ts +9 -8
  341. package/dist/components/toggle-button-group/index.vue +63 -43
  342. package/dist/components/toggle-button-group/types.d.ts +2 -2
  343. package/dist/components/tool-call/index.d.vue.ts +6 -0
  344. package/dist/components/tool-call/index.vue +209 -0
  345. package/dist/components/tool-call/types.d.ts +8 -0
  346. package/dist/components/tooltip/index.d.vue.ts +8 -6
  347. package/dist/components/tooltip/index.vue +65 -55
  348. package/dist/components/tooltip/types.d.ts +3 -6
  349. package/dist/components/tour/index.d.vue.ts +33 -0
  350. package/dist/components/tour/index.vue +302 -0
  351. package/dist/components/tour/types.d.ts +29 -0
  352. package/dist/components/tree/index.d.vue.ts +104 -0
  353. package/dist/components/tree/index.vue +751 -0
  354. package/dist/components/tree/types.d.ts +151 -0
  355. package/dist/components/virtual-list/index.d.vue.ts +11 -13
  356. package/dist/components/virtual-list/index.vue +120 -54
  357. package/dist/components/virtual-list/types.d.ts +0 -1
  358. package/dist/composables/_internal/use-collapse-motion.d.ts +6 -0
  359. package/dist/composables/_internal/use-collapse-motion.js +85 -0
  360. package/dist/composables/{use-focus-trap.d.ts → _internal/use-focus-trap.d.ts} +2 -2
  361. package/dist/composables/_internal/use-focus-trap.js +64 -0
  362. package/dist/composables/{use-forward-ref-expose.js → _internal/use-forward-ref-expose.js} +1 -1
  363. package/dist/composables/_internal/use-list-filter.d.ts +15 -0
  364. package/dist/composables/_internal/use-list-filter.js +48 -0
  365. package/dist/composables/_internal/use-list-keyboard-controller.d.ts +21 -0
  366. package/dist/composables/_internal/use-list-keyboard-controller.js +26 -0
  367. package/dist/composables/_internal/use-list-navigation.d.ts +25 -0
  368. package/dist/composables/_internal/use-list-navigation.js +141 -0
  369. package/dist/composables/_internal/use-list-rows.d.ts +33 -0
  370. package/dist/composables/_internal/use-list-rows.js +66 -0
  371. package/dist/composables/_internal/use-list-selection.d.ts +23 -0
  372. package/dist/composables/_internal/use-list-selection.js +41 -0
  373. package/dist/composables/_internal/use-lock-scroll.d.ts +12 -0
  374. package/dist/composables/_internal/use-lock-scroll.js +78 -0
  375. package/dist/composables/_internal/use-mention-editor.d.ts +35 -0
  376. package/dist/composables/_internal/use-mention-editor.js +508 -0
  377. package/dist/composables/_internal/use-mention-suggest.d.ts +23 -0
  378. package/dist/composables/_internal/use-mention-suggest.js +113 -0
  379. package/dist/composables/_internal/use-message-group.d.ts +22 -0
  380. package/dist/composables/_internal/use-message-group.js +143 -0
  381. package/dist/composables/{use-model-value.d.ts → _internal/use-model-value.d.ts} +1 -1
  382. package/dist/composables/_internal/use-model-value.js +13 -0
  383. package/dist/composables/_internal/use-overlay-dialog.d.ts +25 -0
  384. package/dist/composables/_internal/use-overlay-dialog.js +23 -0
  385. package/dist/composables/{use-overlay-manager.d.ts → _internal/use-overlay-manager.d.ts} +4 -1
  386. package/dist/composables/_internal/use-overlay-manager.js +139 -0
  387. package/dist/composables/{use-popover-responsive.js → _internal/use-popover-responsive.js} +1 -1
  388. package/dist/composables/_internal/use-selected-list-item.d.ts +6 -0
  389. package/dist/composables/_internal/use-selected-list-item.js +36 -0
  390. package/dist/composables/_internal/use-swipe-gesture.d.ts +88 -0
  391. package/dist/composables/_internal/use-swipe-gesture.js +345 -0
  392. package/dist/composables/_internal/use-tailwind-variant.d.ts +31 -0
  393. package/dist/composables/_internal/use-tailwind-variant.js +62 -0
  394. package/dist/composables/_internal/use-tour-target.d.ts +29 -0
  395. package/dist/composables/_internal/use-tour-target.js +201 -0
  396. package/dist/composables/_internal/use-tree.d.ts +103 -0
  397. package/dist/composables/_internal/use-tree.js +676 -0
  398. package/dist/composables/_internal/use-word-limit.d.ts +24 -0
  399. package/dist/composables/_internal/use-word-limit.js +36 -0
  400. package/dist/composables/index.d.ts +8 -10
  401. package/dist/composables/index.js +8 -10
  402. package/dist/composables/use-backoff-retry.d.ts +51 -0
  403. package/dist/composables/use-backoff-retry.js +116 -0
  404. package/dist/composables/use-color-scheme.d.ts +1 -1
  405. package/dist/composables/use-color-scheme.js +35 -31
  406. package/dist/composables/use-copy-click.d.ts +2 -1
  407. package/dist/composables/use-copy-click.js +21 -18
  408. package/dist/composables/use-countdown.d.ts +0 -9
  409. package/dist/composables/use-countdown.js +12 -4
  410. package/dist/composables/use-deferred-value.js +1 -1
  411. package/dist/composables/use-delay-change.js +6 -2
  412. package/dist/composables/use-delay-destroy.d.ts +2 -2
  413. package/dist/composables/use-delay-destroy.js +16 -9
  414. package/dist/composables/use-document-hidden.d.ts +1 -1
  415. package/dist/composables/use-intersection-observer.d.ts +6 -0
  416. package/dist/composables/use-intersection-observer.js +38 -0
  417. package/dist/composables/use-media-query.d.ts +0 -3
  418. package/dist/composables/use-media-query.js +19 -19
  419. package/dist/composables/use-motion-reduce.d.ts +6 -0
  420. package/dist/composables/use-motion-reduce.js +40 -0
  421. package/dist/composables/use-mutation-observer.d.ts +6 -0
  422. package/dist/composables/use-mutation-observer.js +42 -0
  423. package/dist/composables/use-outside-click.d.ts +6 -4
  424. package/dist/composables/use-outside-click.js +18 -10
  425. package/dist/composables/use-repeat-action.js +31 -20
  426. package/dist/composables/use-resize-observer.d.ts +6 -0
  427. package/dist/composables/use-resize-observer.js +22 -0
  428. package/dist/composables/use-scrollspy.d.ts +15 -0
  429. package/dist/composables/use-scrollspy.js +98 -0
  430. package/dist/composables/use-stick-to-bottom.d.ts +32 -0
  431. package/dist/composables/use-stick-to-bottom.js +106 -0
  432. package/dist/composables/use-view-transition.d.ts +20 -0
  433. package/dist/composables/use-view-transition.js +80 -0
  434. package/dist/composables/use-virtual-list.d.ts +9 -6
  435. package/dist/composables/use-virtual-list.js +86 -19
  436. package/dist/constants/tooltip-variants.d.ts +28 -0
  437. package/dist/constants/tooltip-variants.js +27 -0
  438. package/dist/contexts/avatar.js +1 -1
  439. package/dist/contexts/breadcrumb.d.ts +2 -0
  440. package/dist/contexts/breadcrumb.js +2 -0
  441. package/dist/contexts/button.js +1 -1
  442. package/dist/contexts/checkbox.js +1 -1
  443. package/dist/contexts/choicebox.d.ts +1 -0
  444. package/dist/contexts/choicebox.js +1 -1
  445. package/dist/contexts/collapse.js +1 -1
  446. package/dist/contexts/config-provider.d.ts +3 -2
  447. package/dist/contexts/config-provider.js +5 -4
  448. package/dist/contexts/list.d.ts +4 -25
  449. package/dist/contexts/list.js +1 -9
  450. package/dist/contexts/radio.js +1 -1
  451. package/dist/contexts/switch.js +1 -1
  452. package/dist/contexts/toggle-button.js +1 -1
  453. package/dist/index.d.ts +2 -1
  454. package/dist/locales/en-us.d.ts +90 -27
  455. package/dist/locales/en-us.js +75 -27
  456. package/dist/locales/index.d.ts +1 -0
  457. package/dist/locales/zh-cn.d.ts +89 -27
  458. package/dist/locales/zh-cn.js +88 -27
  459. package/dist/plugins/dayjs-millisecond-token.d.ts +2 -4
  460. package/dist/plugins/dayjs-millisecond-token.js +1 -2
  461. package/dist/styles/styles.css +2 -2
  462. package/dist/styles/tw.css +97 -50
  463. package/dist/types/shared/props.d.ts +5 -3
  464. package/dist/types/shared/utils.d.ts +7 -0
  465. package/dist/utils/{context.js → _internal/context.js} +2 -1
  466. package/dist/utils/_internal/mention-html.d.ts +33 -0
  467. package/dist/utils/_internal/mention-html.js +146 -0
  468. package/dist/utils/_internal/observer.d.ts +42 -0
  469. package/dist/utils/_internal/observer.js +173 -0
  470. package/dist/utils/_internal/swipe-cell-instances.d.ts +7 -0
  471. package/dist/utils/_internal/swipe-cell-instances.js +17 -0
  472. package/dist/utils/date.d.ts +1 -15
  473. package/dist/utils/date.js +2 -11
  474. package/dist/utils/dom.d.ts +19 -21
  475. package/dist/utils/dom.js +57 -28
  476. package/dist/utils/event.d.ts +15 -2
  477. package/dist/utils/event.js +68 -27
  478. package/dist/utils/format.d.ts +5 -4
  479. package/dist/utils/format.js +33 -13
  480. package/dist/utils/fuzzy-match.d.ts +2 -0
  481. package/dist/utils/fuzzy-match.js +182 -0
  482. package/dist/utils/helper.d.ts +17 -0
  483. package/dist/utils/helper.js +57 -0
  484. package/dist/utils/is.d.ts +5 -1
  485. package/dist/utils/is.js +10 -2
  486. package/dist/utils/merge.d.ts +1 -0
  487. package/dist/utils/merge.js +19 -0
  488. package/dist/utils/timing.d.ts +19 -6
  489. package/dist/utils/timing.js +74 -16
  490. package/package.json +49 -62
  491. package/volar.d.ts +44 -5
  492. package/dist/components/carousel-item/index.d.vue.ts +0 -13
  493. package/dist/components/carousel-item/index.vue +0 -54
  494. package/dist/components/command-menu-group/index.d.vue.ts +0 -14
  495. package/dist/components/command-menu-group/index.vue +0 -31
  496. package/dist/components/command-menu-group/types.d.ts +0 -5
  497. package/dist/components/message/composables/use-group-expand.d.ts +0 -13
  498. package/dist/components/message/composables/use-group-expand.js +0 -50
  499. package/dist/components/message/composables/use-message-timer.d.ts +0 -9
  500. package/dist/components/message/composables/use-message-timer.js +0 -61
  501. package/dist/components/message/composables/use-promise-message.d.ts +0 -4
  502. package/dist/components/message/composables/use-promise-message.js +0 -49
  503. package/dist/components/resizable-handle/index.d.vue.ts +0 -6
  504. package/dist/components/resizable-handle/index.vue +0 -116
  505. package/dist/components/resizable-panel/index.vue +0 -57
  506. package/dist/components/resizable-panel/types.d.ts +0 -4
  507. package/dist/components/tabs-item/index.d.vue.ts +0 -4
  508. package/dist/components/tabs-item/index.vue +0 -16
  509. package/dist/components/tabs-item/types.d.ts +0 -10
  510. package/dist/composables/use-browser-observer.d.ts +0 -12
  511. package/dist/composables/use-browser-observer.js +0 -74
  512. package/dist/composables/use-focus-trap.js +0 -54
  513. package/dist/composables/use-list-filter.d.ts +0 -11
  514. package/dist/composables/use-list-filter.js +0 -56
  515. package/dist/composables/use-list-navigation.d.ts +0 -27
  516. package/dist/composables/use-list-navigation.js +0 -159
  517. package/dist/composables/use-lock-scroll.d.ts +0 -5
  518. package/dist/composables/use-lock-scroll.js +0 -37
  519. package/dist/composables/use-model-value.js +0 -13
  520. package/dist/composables/use-overlay-manager.js +0 -80
  521. package/dist/composables/use-swipe-gesture.d.ts +0 -65
  522. package/dist/composables/use-swipe-gesture.js +0 -98
  523. package/dist/contexts/carousel.d.ts +0 -14
  524. package/dist/contexts/carousel.js +0 -2
  525. package/dist/contexts/resizable.d.ts +0 -27
  526. package/dist/contexts/resizable.js +0 -2
  527. package/dist/contexts/tabs.d.ts +0 -15
  528. package/dist/contexts/tabs.js +0 -2
  529. package/dist/plugins/any-touch.d.ts +0 -213
  530. package/dist/plugins/any-touch.js +0 -592
  531. package/dist/styles/source.css +0 -640
  532. package/dist/types/shared/index.d.ts +0 -2
  533. package/dist/utils/fuzzy-search.d.ts +0 -7
  534. package/dist/utils/fuzzy-search.js +0 -61
  535. package/dist/utils/get.d.ts +0 -9
  536. package/dist/utils/get.js +0 -55
  537. package/dist/utils/index.d.ts +0 -10
  538. package/dist/utils/index.js +0 -10
  539. package/dist/utils/ref.d.ts +0 -5
  540. package/dist/utils/ref.js +0 -8
  541. package/dist/utils/uid.d.ts +0 -1
  542. package/dist/utils/uid.js +0 -4
  543. /package/dist/composables/{use-forward-ref-expose.d.ts → _internal/use-forward-ref-expose.d.ts} +0 -0
  544. /package/dist/composables/{use-popover-responsive.d.ts → _internal/use-popover-responsive.d.ts} +0 -0
  545. /package/dist/utils/{context.d.ts → _internal/context.d.ts} +0 -0
@@ -0,0 +1,151 @@
1
+ import type { ComponentClass, ComponentLabel, ComponentValue } from '../../types/shared/props'
2
+
3
+ export interface TreeOption {
4
+ value: ComponentValue
5
+ label?: ComponentLabel
6
+ disabled?: boolean
7
+ children?: TreeOption[]
8
+ /** Marks a leaf under `lazy`: no arrow, and never handed to `load`. */
9
+ isLeaf?: boolean
10
+ keywords?: string[]
11
+ [key: string]: any
12
+ }
13
+
14
+ export type TreeOptions = TreeOption[]
15
+
16
+ export type TreeModelValue = ComponentValue | ComponentValue[] | null
17
+
18
+ export type TreeFilterFn = (node: TreeOption, query: string) => boolean
19
+
20
+ /** Hands the tree the nodes a query matched, their ancestors included. */
21
+ export type TreeRemoteFilterFn = (query: string) => TreeOptions | Promise<TreeOptions>
22
+
23
+ /** Hands the children of a node to the tree. An empty array marks it a leaf. */
24
+ export type TreeLoadResolve = (children: TreeOptions) => void
25
+
26
+ /** Gives up on a node without children: the arrow stays, and the next expand asks again. */
27
+ export type TreeLoadReject = () => void
28
+
29
+ export interface TreeLoadDetail {
30
+ node: TreeOption
31
+ depth: number
32
+ parent?: TreeOption
33
+ }
34
+
35
+ export type TreeLoadFn = (
36
+ detail: TreeLoadDetail,
37
+ resolve: TreeLoadResolve,
38
+ reject: TreeLoadReject,
39
+ ) => void
40
+
41
+ /** Keeps a node out of the model without the rest of `disabled`: it still expands and takes drops. */
42
+ export type TreeSelectableFn = (node: TreeOption) => boolean
43
+
44
+ export interface TreeNodeDetail {
45
+ value: ComponentValue
46
+ node: TreeOption
47
+ }
48
+
49
+ export interface TreeChangeDetail extends TreeNodeDetail {
50
+ checked: boolean
51
+ checkedValues: ComponentValue[]
52
+ halfCheckedValues: ComponentValue[]
53
+ }
54
+
55
+ export interface TreeHighlightPart {
56
+ text: string
57
+ matched: boolean
58
+ }
59
+
60
+ export type TreeDropPosition = 'before' | 'inside' | 'after'
61
+
62
+ export interface TreeDropTarget {
63
+ targetValue: ComponentValue
64
+ position: TreeDropPosition
65
+ }
66
+
67
+ export interface TreeMoveLocation {
68
+ parentValue?: ComponentValue
69
+ index: number
70
+ }
71
+
72
+ export interface TreeDropInfo {
73
+ dragValue: ComponentValue
74
+ dragNode: TreeOption
75
+ targetValue: ComponentValue
76
+ targetNode: TreeOption
77
+ position: TreeDropPosition
78
+ }
79
+
80
+ /** Decides whether a drop may land; the structural rules hold either way. */
81
+ export type TreeAllowDropFn = (info: TreeDropInfo) => boolean
82
+
83
+ export interface TreeMoveDetail {
84
+ value: ComponentValue
85
+ node: TreeOption
86
+ from: TreeMoveLocation
87
+ to: TreeMoveLocation & {
88
+ targetValue: ComponentValue
89
+ position: TreeDropPosition
90
+ }
91
+ }
92
+
93
+ export interface TreeFlatNode {
94
+ key: ComponentValue
95
+ node: TreeOption
96
+ depth: number
97
+ index: number
98
+ parentValue?: ComponentValue
99
+ hasChildren: boolean
100
+ expanded: boolean
101
+ }
102
+
103
+ export interface TreeProps {
104
+ data?: TreeOptions
105
+ modelValue?: TreeModelValue
106
+ multiple?: boolean
107
+ checkStrictly?: boolean
108
+ disabled?: boolean
109
+ selectable?: TreeSelectableFn
110
+ expandOnly?: boolean
111
+ draggable?: boolean
112
+ allowDrop?: TreeAllowDropFn
113
+ dropInsideLeaf?: boolean
114
+ virtual?: boolean
115
+ itemSize?: number
116
+ overScan?: number
117
+ height?: number | string
118
+ indent?: number
119
+ expandedKeys?: ComponentValue[]
120
+ defaultExpandedKeys?: ComponentValue[]
121
+ childrenField?: string
122
+ /** Fetch the children of a node when it first opens, instead of reading them from `data`. */
123
+ lazy?: boolean
124
+ /** Fetches the children of a node neither `data` nor an earlier request provided. */
125
+ load?: TreeLoadFn
126
+ loading?: boolean
127
+ filterable?: boolean
128
+ filter?: TreeFilterFn
129
+ /** Fetches the nodes a query matched, their ancestors included: giving it searches remotely. */
130
+ remoteFilter?: TreeRemoteFilterFn
131
+ /** Render only the nodes the filter matched, instead of the hits plus their ancestors. */
132
+ searchMatchesOnly?: boolean
133
+ /** Highlights the query inside a label. Only a contiguous run of characters is marked: a
134
+ * fuzzy hit that is not one still shows its row, just without the highlight. */
135
+ highlightMatch?: boolean
136
+ searchPlaceholder?: string
137
+ searchValue?: string
138
+ defaultSearchValue?: string
139
+ itemClass?: ComponentClass
140
+ }
141
+
142
+ export interface TreeEmits {
143
+ 'update:modelValue': [TreeModelValue]
144
+ 'update:data': [TreeOptions]
145
+ move: [TreeMoveDetail]
146
+ change: [TreeChangeDetail]
147
+ 'update:expandedKeys': [ComponentValue[]]
148
+ expand: [TreeNodeDetail]
149
+ collapse: [TreeNodeDetail]
150
+ 'update:searchValue': [string]
151
+ }
@@ -1,33 +1,31 @@
1
1
  import type { VirtualListProps } from './types';
2
- import { type VirtualListItem } from '../../composables/use-virtual-list';
3
- declare var __VLS_1: {
2
+ import { type VirtualListItem } from '../../composables/use-virtual-list.js';
3
+ declare var __VLS_2: {
4
4
  item: any;
5
5
  virtualItem: VirtualListItem;
6
- }, __VLS_3: {};
6
+ }, __VLS_4: {};
7
7
  type __VLS_Slots = {} & {
8
- item?: (props: typeof __VLS_1) => any;
8
+ item?: (props: typeof __VLS_2) => any;
9
9
  } & {
10
- message?: (props: typeof __VLS_3) => any;
10
+ message?: (props: typeof __VLS_4) => any;
11
11
  };
12
12
  declare const __VLS_base: import("vue").DefineComponent<VirtualListProps, {
13
13
  totalSize: import("vue").ComputedRef<number>;
14
14
  virtualItems: import("vue").ComputedRef<VirtualListItem[]>;
15
15
  getVirtualizer: () => import("@tanstack/virtual-core").Virtualizer<HTMLElement, HTMLElement>;
16
- scrollToIndex: (index: number, { align: initialAlign, behavior, }?: import("@tanstack/virtual-core").ScrollToOptions) => void;
17
- scrollToOffset: (toOffset: number, { align, behavior }?: import("@tanstack/virtual-core").ScrollToOptions) => void;
18
- scrollBy: (delta: number, { behavior }?: import("@tanstack/virtual-core").ScrollToOptions) => void;
16
+ scrollToIndex: (index: number, args_1?: import("@tanstack/virtual-core").ScrollToOptions | undefined) => void;
17
+ scrollToOffset: (toOffset: number, args_1?: import("@tanstack/virtual-core").ScrollToOptions | undefined) => void;
18
+ scrollBy: (delta: number, args_1?: import("@tanstack/virtual-core").ScrollToOptions | undefined) => void;
19
19
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
20
- bottom: () => any;
21
20
  retry: () => any;
22
21
  }, string, import("vue").PublicProps, Readonly<VirtualListProps> & Readonly<{
23
- onBottom?: (() => any) | undefined;
24
22
  onRetry?: (() => any) | undefined;
25
23
  }>, {
26
- listData: any[];
27
- errorText: string;
24
+ items: any[];
25
+ dataKey: string;
28
26
  loadingText: string;
27
+ errorText: string;
29
28
  finishedText: string;
30
- dataKey: string;
31
29
  columnGap: number;
32
30
  columnCount: number;
33
31
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -1,72 +1,138 @@
1
1
  <script setup>
2
2
  import LoaderCircleIcon from "@gdsicon/vue/loader-circle";
3
3
  import { shallowRef } from "vue";
4
- import { useVirtualList } from "../../composables/use-virtual-list";
4
+ import { useVirtualList } from "../../composables/use-virtual-list.js";
5
5
  defineOptions({
6
- name: "PVirtualList",
7
- inheritAttrs: false
6
+ name: "PVirtualList",
7
+ inheritAttrs: false
8
8
  });
9
9
  const props = defineProps({
10
- listClass: { type: [String, Array, Object], required: false },
11
- itemClass: { type: [String, Array, Object], required: false },
12
- errorText: { type: String, required: false, default: "Request failed. Click to reload" },
13
- loadingText: { type: String, required: false, default: "Loading..." },
14
- finishedText: { type: String, required: false, default: "Finished" },
15
- status: { type: String, required: false },
16
- dataKey: { type: String, required: false, default: "id" },
17
- listData: { type: Array, required: false, default: () => [] },
18
- itemSize: { type: Number, required: false },
19
- overScan: { type: Number, required: false },
20
- columnGap: { type: Number, required: false, default: 0 },
21
- columnCount: { type: Number, required: false, default: 1 },
22
- onBottom: { type: Function, required: false },
23
- bottomThreshold: { type: Number, required: false }
10
+ listClass: {
11
+ type: [
12
+ String,
13
+ Array,
14
+ Object
15
+ ],
16
+ required: false
17
+ },
18
+ itemClass: {
19
+ type: [
20
+ String,
21
+ Array,
22
+ Object
23
+ ],
24
+ required: false
25
+ },
26
+ errorText: {
27
+ type: String,
28
+ required: false,
29
+ default: "Request failed. Click to reload"
30
+ },
31
+ loadingText: {
32
+ type: String,
33
+ required: false,
34
+ default: "Loading..."
35
+ },
36
+ finishedText: {
37
+ type: String,
38
+ required: false,
39
+ default: "Finished"
40
+ },
41
+ enabled: {
42
+ type: null,
43
+ required: false
44
+ },
45
+ status: {
46
+ type: String,
47
+ required: false
48
+ },
49
+ dataKey: {
50
+ type: String,
51
+ required: false,
52
+ default: "id"
53
+ },
54
+ items: {
55
+ type: Array,
56
+ required: false,
57
+ default: () => []
58
+ },
59
+ itemSize: {
60
+ type: Number,
61
+ required: false
62
+ },
63
+ overScan: {
64
+ type: Number,
65
+ required: false
66
+ },
67
+ columnGap: {
68
+ type: Number,
69
+ required: false,
70
+ default: 0
71
+ },
72
+ columnCount: {
73
+ type: Number,
74
+ required: false,
75
+ default: 1
76
+ },
77
+ scrollPaddingStart: {
78
+ type: Number,
79
+ required: false
80
+ },
81
+ scrollPaddingEnd: {
82
+ type: Number,
83
+ required: false
84
+ },
85
+ onBottom: {
86
+ type: Function,
87
+ required: false
88
+ },
89
+ bottomThreshold: {
90
+ type: Number,
91
+ required: false
92
+ }
24
93
  });
25
- const emits = defineEmits(["retry", "bottom"]);
94
+ const emits = defineEmits(["retry"]);
26
95
  const containerRef = shallowRef();
27
- const {
28
- totalSize,
29
- virtualItems,
30
- measureElement,
31
- getVirtualizer,
32
- scrollToIndex,
33
- scrollToOffset,
34
- scrollBy
35
- } = useVirtualList(containerRef, props);
96
+ const { totalSize, virtualItems, measureElement, getVirtualizer, scrollToIndex, scrollToOffset, scrollBy } = useVirtualList(containerRef, props);
36
97
  function getItemStyle(virtualItem) {
37
- const lanes = Math.max(1, Math.floor(props.columnCount));
38
- const gap = props.columnGap;
39
- const y = `translateY(${virtualItem.start}px)`;
40
- if (lanes <= 1) {
41
- return { transform: y };
42
- }
43
- const lane = virtualItem.lane;
44
- const width = `calc((100% - ${(lanes - 1) * gap}px) / ${lanes})`;
45
- const left = `calc(${lane} * ((100% - ${(lanes - 1) * gap}px) / ${lanes} + ${gap}px))`;
46
- return {
47
- width,
48
- left,
49
- transform: y
50
- };
98
+ const lanes = Math.max(1, Math.floor(props.columnCount));
99
+ const gap = props.columnGap;
100
+ const y = `translateY(${virtualItem.start}px)`;
101
+ if (lanes <= 1) {
102
+ return { transform: y };
103
+ }
104
+ const lane = virtualItem.lane;
105
+ const width = `calc((100% - ${(lanes - 1) * gap}px) / ${lanes})`;
106
+ const left = `calc(${lane} * ((100% - ${(lanes - 1) * gap}px) / ${lanes} + ${gap}px))`;
107
+ return {
108
+ width,
109
+ left,
110
+ transform: y
111
+ };
51
112
  }
52
113
  function onRetryClick() {
53
- if (props.status !== "error") {
54
- return;
55
- }
56
- emits("retry");
114
+ if (props.status !== "error") {
115
+ return;
116
+ }
117
+ emits("retry");
57
118
  }
58
119
  defineExpose({
59
- totalSize,
60
- virtualItems,
61
- getVirtualizer,
62
- scrollToIndex,
63
- scrollToOffset,
64
- scrollBy
120
+ totalSize,
121
+ virtualItems,
122
+ getVirtualizer,
123
+ scrollToIndex,
124
+ scrollToOffset,
125
+ scrollBy
65
126
  });
66
127
  </script>
67
128
 
68
129
  <template>
69
- <div ref="containerRef" class="pxd-virtual-list relative overflow-auto" v-bind="$attrs">
130
+ <div
131
+ data-virtual-list
132
+ ref="containerRef"
133
+ class="pxd-virtual-list relative overflow-auto"
134
+ v-bind="$attrs"
135
+ >
70
136
  <div
71
137
  class="pxd-virtual-list--content relative w-full content-visibility-auto"
72
138
  :class="listClass"
@@ -81,7 +147,7 @@ defineExpose({
81
147
  :class="itemClass"
82
148
  :style="getItemStyle(virtualItem)"
83
149
  >
84
- <slot name="item" :item="listData[virtualItem.index]" :virtual-item="virtualItem" />
150
+ <slot name="item" :item="items[virtualItem.index]" :virtual-item="virtualItem" />
85
151
  </div>
86
152
  </div>
87
153
 
@@ -95,7 +161,7 @@ defineExpose({
95
161
  <span v-if="status === 'error'">{{ errorText }}</span>
96
162
  <span v-else-if="status === 'finished'">{{ finishedText }}</span>
97
163
  <template v-else-if="status === 'loading'">
98
- <LoaderCircleIcon class="mr-1.5 motion-safe:animate-spin" />
164
+ <LoaderCircleIcon class="me-1.5 motion-safe:animate-spin" />
99
165
  <span>{{ loadingText }}</span>
100
166
  </template>
101
167
  </slot>
@@ -9,5 +9,4 @@ export interface VirtualListProps extends VirtualListOptions {
9
9
  }
10
10
  export interface VirtualListEmits {
11
11
  retry: [];
12
- bottom: [];
13
12
  }
@@ -0,0 +1,6 @@
1
+ import type { MaybeRefOrGetter, Ref } from 'vue';
2
+ export declare function useCollapseMotion(contentRef: Ref<HTMLElement | undefined>, expanded: MaybeRefOrGetter<boolean>): {
3
+ detailsOpen: import("vue").ShallowRef<boolean, boolean>;
4
+ isLeaving: import("vue").ComputedRef<boolean>;
5
+ skipEnterMotion: () => void;
6
+ };
@@ -0,0 +1,85 @@
1
+ import { computed, onMounted, onScopeDispose, shallowRef, watch } from "vue";
2
+ import { getStyle } from "../../utils/dom.js";
3
+ import { toValue } from "../../utils/helper.js";
4
+ export function useCollapseMotion(contentRef, expanded) {
5
+ const detailsOpen = shallowRef(false);
6
+ let ready = false;
7
+ let skipEnter = false;
8
+ let stopWait;
9
+ const isLeaving = computed(() => detailsOpen.value && !toValue(expanded));
10
+ function skipEnterMotion() {
11
+ skipEnter = true;
12
+ }
13
+ function clearWait() {
14
+ stopWait?.();
15
+ stopWait = void 0;
16
+ }
17
+ function finish() {
18
+ clearWait();
19
+ const el = contentRef.value;
20
+ if (el) {
21
+ el.style.height = "";
22
+ el.style.overflow = "";
23
+ }
24
+ if (!toValue(expanded)) {
25
+ detailsOpen.value = false;
26
+ }
27
+ }
28
+ function animate(isExpanded) {
29
+ const el = contentRef.value;
30
+ if (!el) {
31
+ return;
32
+ }
33
+ clearWait();
34
+ el.style.overflow = "hidden";
35
+ el.style.height = isExpanded ? "0" : `${el.scrollHeight}px`;
36
+ void el.offsetHeight;
37
+ el.style.height = isExpanded ? `${el.scrollHeight}px` : "0";
38
+ const done = (event) => {
39
+ if (event && (event.propertyName !== "height" || event.target !== el)) {
40
+ return;
41
+ }
42
+ finish();
43
+ };
44
+ const ms = (Number.parseFloat(getStyle(el).transitionDuration) || 0) * 1e3;
45
+ if (!ms) {
46
+ done();
47
+ return;
48
+ }
49
+ el.addEventListener("transitionend", done);
50
+ const timer = window.setTimeout(done, ms + 50);
51
+ stopWait = () => {
52
+ el.removeEventListener("transitionend", done);
53
+ window.clearTimeout(timer);
54
+ };
55
+ }
56
+ watch(
57
+ () => toValue(expanded),
58
+ (isExpanded) => {
59
+ if (isExpanded) {
60
+ detailsOpen.value = true;
61
+ }
62
+ if (!ready) {
63
+ detailsOpen.value = isExpanded;
64
+ return;
65
+ }
66
+ if (isExpanded && skipEnter) {
67
+ skipEnter = false;
68
+ return;
69
+ }
70
+ animate(isExpanded);
71
+ },
72
+ { immediate: true, flush: "post" }
73
+ );
74
+ onMounted(() => {
75
+ ready = true;
76
+ });
77
+ onScopeDispose(() => {
78
+ clearWait();
79
+ });
80
+ return {
81
+ detailsOpen,
82
+ isLeaving,
83
+ skipEnterMotion
84
+ };
85
+ }
@@ -1,4 +1,4 @@
1
- import type { MaybeElementRef } from '../types/shared/utils';
1
+ import type { MaybeElementRef } from '../../types/shared/utils';
2
2
  import type { Options as FocusTrapOptions } from 'focus-trap';
3
3
  import { type MaybeRefOrGetter } from 'vue';
4
4
  export interface UseFocusTrapOptions extends FocusTrapOptions {
@@ -12,5 +12,5 @@ export interface UseFocusTrapOptions extends FocusTrapOptions {
12
12
  * - Share a trap stack among PXD traps so nested dialogs coordinate pause/unpause.
13
13
  */
14
14
  export declare function useFocusTrap(container: MaybeElementRef<HTMLElement>, userOptions?: MaybeRefOrGetter<UseFocusTrapOptions>): {
15
- stop: import("vue").WatchHandle;
15
+ stop: () => void;
16
16
  };
@@ -0,0 +1,64 @@
1
+ import { createFocusTrap } from "focus-trap";
2
+ import { onScopeDispose, watch } from "vue";
3
+ import { isTruthyProp } from "../../utils/format.js";
4
+ import { toValue } from "../../utils/helper.js";
5
+ const focusTrapStack = [];
6
+ const AUTO_FOCUS_FIRST_SELECTOR = [
7
+ 'input:not([type="hidden"]):not(:disabled)',
8
+ "button:not(:disabled)",
9
+ "select:not(:disabled)",
10
+ "textarea:not(:disabled)",
11
+ '[tabindex]:not([tabindex="-1"])'
12
+ ].join(",");
13
+ export function useFocusTrap(container, userOptions = {}) {
14
+ let trapper = null;
15
+ function deactivate() {
16
+ trapper?.deactivate();
17
+ trapper = null;
18
+ }
19
+ function activate(target) {
20
+ const { autoFocusElement, ...restOptions } = toValue(userOptions);
21
+ const defaultOptions = {
22
+ allowOutsideClick: true,
23
+ escapeDeactivates: false,
24
+ clickOutsideDeactivates: false,
25
+ // A11y + robustness
26
+ // If set and is or returns true, a click outside the focus trap will not be prevented
27
+ returnFocusOnDeactivate: true,
28
+ preventScroll: true,
29
+ fallbackFocus: () => target,
30
+ initialFocus: () => {
31
+ if (isTruthyProp(autoFocusElement)) {
32
+ const elSelector = typeof autoFocusElement === "string" && autoFocusElement ? autoFocusElement : AUTO_FOCUS_FIRST_SELECTOR;
33
+ return target.querySelector(elSelector) ?? target;
34
+ }
35
+ return target;
36
+ },
37
+ // Coordinate nested PXD dialogs
38
+ trapStack: focusTrapStack
39
+ };
40
+ trapper = createFocusTrap(target, { ...defaultOptions, ...restOptions });
41
+ trapper.activate();
42
+ }
43
+ const unwatch = watch(
44
+ () => toValue(container),
45
+ (target) => {
46
+ deactivate();
47
+ if (!target) {
48
+ return;
49
+ }
50
+ activate(target);
51
+ },
52
+ { flush: "post" }
53
+ );
54
+ function stop() {
55
+ unwatch();
56
+ deactivate();
57
+ }
58
+ onScopeDispose(() => {
59
+ stop();
60
+ });
61
+ return {
62
+ stop
63
+ };
64
+ }
@@ -1,4 +1,4 @@
1
- import { toValue } from "../utils/ref.js";
1
+ import { toValue } from "../../utils/helper.js";
2
2
  export function useForwardRefExpose(refEl) {
3
3
  return new Proxy({}, {
4
4
  get(_, prop) {
@@ -0,0 +1,15 @@
1
+ import type { ListOptions } from '../../components/list/types';
2
+ import type { MaybeRefOrGetter, ComputedRef } from 'vue';
3
+ export type ListFilterFn = (text: string, search: string, keywords: string[]) => boolean;
4
+ export interface UseListFilterOptions {
5
+ filter?: ListFilterFn;
6
+ }
7
+ export interface UseListFilterReturn {
8
+ filteredOptions: ComputedRef<ListOptions>;
9
+ visibleCount: ComputedRef<number>;
10
+ }
11
+ /**
12
+ * Pure filter over list options. Groups with no matching children are dropped.
13
+ */
14
+ export declare function filterListOptions(options: ListOptions, query: string, filter?: ListFilterFn): ListOptions;
15
+ export declare function useListFilter(options: MaybeRefOrGetter<ListOptions>, keyword: MaybeRefOrGetter<string>, { filter }?: UseListFilterOptions): UseListFilterReturn;
@@ -0,0 +1,48 @@
1
+ import { computed } from "vue";
2
+ import { isFuzzyMatch } from "../../utils/fuzzy-match.js";
3
+ import { toValue } from "../../utils/helper.js";
4
+ import { isListOptionGroup } from "./use-selected-list-item.js";
5
+ function getOptionText(option) {
6
+ return `${String(option.label ?? "")}${String(option.description ?? "")}`.trim();
7
+ }
8
+ function countListOptions(options) {
9
+ let count = 0;
10
+ for (const entry of options) {
11
+ if (isListOptionGroup(entry)) {
12
+ count += entry.options.length;
13
+ } else {
14
+ count += 1;
15
+ }
16
+ }
17
+ return count;
18
+ }
19
+ export function filterListOptions(options, query, filter = isFuzzyMatch) {
20
+ const needle = query.trim();
21
+ if (!needle) {
22
+ return options;
23
+ }
24
+ const result = [];
25
+ for (const entry of options) {
26
+ if (isListOptionGroup(entry)) {
27
+ const matched = entry.options.filter(
28
+ (item) => filter(getOptionText(item), needle, item.keywords ?? [])
29
+ );
30
+ if (matched.length) {
31
+ result.push({ ...entry, options: matched });
32
+ }
33
+ } else if (filter(getOptionText(entry), needle, entry.keywords ?? [])) {
34
+ result.push(entry);
35
+ }
36
+ }
37
+ return result;
38
+ }
39
+ export function useListFilter(options, keyword, { filter = isFuzzyMatch } = {}) {
40
+ const filteredOptions = computed(
41
+ () => filterListOptions(toValue(options) ?? [], toValue(keyword) ?? "", filter)
42
+ );
43
+ const visibleCount = computed(() => countListOptions(filteredOptions.value));
44
+ return {
45
+ filteredOptions,
46
+ visibleCount
47
+ };
48
+ }
@@ -0,0 +1,21 @@
1
+ import type { ListNavigationCommand } from './use-list-navigation';
2
+ import type { MaybeRefOrGetter } from 'vue';
3
+ export type ListKeyboardMap = Readonly<Record<string, ListNavigationCommand>>;
4
+ export interface UseListKeyboardControllerOptions {
5
+ keymap: MaybeRefOrGetter<ListKeyboardMap>;
6
+ enabled?: MaybeRefOrGetter<boolean>;
7
+ preventDefaultKeys?: MaybeRefOrGetter<readonly string[]>;
8
+ onCommand: (command: ListNavigationCommand, ev: KeyboardEvent) => boolean;
9
+ }
10
+ /**
11
+ * Creates a keyboard event handler for list navigation.
12
+ *
13
+ * The handler maps enabled keyboard events to semantic navigation commands
14
+ * while ignoring IME composition events.
15
+ *
16
+ * @param options - Configuration for the list target, enabled state, and keys.
17
+ * @returns A keyboard event handler for list navigation.
18
+ */
19
+ export declare function useListKeyboardController(options: UseListKeyboardControllerOptions): {
20
+ onKeydown: (ev: KeyboardEvent) => void;
21
+ };