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,676 @@
1
+ import { computed, onScopeDispose, shallowRef, watch } from "vue";
2
+ import { getElement } from "../../utils/dom.js";
3
+ import { isCompositionKeydown } from "../../utils/event.js";
4
+ import { isFuzzyMatch } from "../../utils/fuzzy-match.js";
5
+ import { toValue } from "../../utils/helper.js";
6
+ import { debounce } from "../../utils/timing.js";
7
+ export function createTreeIndex(data, childrenField) {
8
+ const list = [];
9
+ const byValue = /* @__PURE__ */ new Map();
10
+ function visit(node, parentValue, depth) {
11
+ const meta = { node, children: [], parentValue, depth, end: 0 };
12
+ list.push(meta);
13
+ byValue.set(node.value, meta);
14
+ const children = node[childrenField];
15
+ if (Array.isArray(children)) {
16
+ for (const child of children) {
17
+ meta.children.push(visit(child, node.value, depth + 1));
18
+ }
19
+ }
20
+ meta.end = list.length;
21
+ return meta;
22
+ }
23
+ for (const node of data) {
24
+ visit(node, void 0, 0);
25
+ }
26
+ return { list, byValue };
27
+ }
28
+ export function useTreeIndex(data, childrenField) {
29
+ return computed(() => createTreeIndex(toValue(data) ?? [], toValue(childrenField) ?? "children"));
30
+ }
31
+ function graftNode(node, loaded, childrenField) {
32
+ const own = node[childrenField];
33
+ const fromData = Array.isArray(own) && own.length > 0;
34
+ const source = fromData ? own : loaded.get(node.value) ?? [];
35
+ const children = [];
36
+ let changed = !fromData && loaded.has(node.value);
37
+ for (const child of source) {
38
+ const grafted = graftNode(child, loaded, childrenField);
39
+ if (grafted !== child) {
40
+ changed = true;
41
+ }
42
+ children.push(grafted);
43
+ }
44
+ return changed ? { ...node, [childrenField]: children } : node;
45
+ }
46
+ export function graftLoadedChildren(data, loaded, childrenField) {
47
+ if (loaded.size === 0) {
48
+ return data;
49
+ }
50
+ let changed = false;
51
+ const next = data.map((node) => {
52
+ const grafted = graftNode(node, loaded, childrenField);
53
+ if (grafted !== node) {
54
+ changed = true;
55
+ }
56
+ return grafted;
57
+ });
58
+ return changed ? next : data;
59
+ }
60
+ function defaultFilter(node, query) {
61
+ return isFuzzyMatch(String(node.label ?? ""), query, node.keywords);
62
+ }
63
+ export function useTreeMatched(index, query, filter) {
64
+ return computed(() => {
65
+ const visible = /* @__PURE__ */ new Set();
66
+ const exact = /* @__PURE__ */ new Set();
67
+ const needle = (toValue(query) ?? "").trim();
68
+ if (!needle) {
69
+ return { visible, exact };
70
+ }
71
+ const match = toValue(filter) ?? defaultFilter;
72
+ const { list, byValue } = toValue(index);
73
+ for (const meta of list) {
74
+ if (!match(meta.node, needle)) {
75
+ continue;
76
+ }
77
+ exact.add(meta.node.value);
78
+ visible.add(meta.node.value);
79
+ let parentValue = meta.parentValue;
80
+ while (parentValue !== void 0 && !visible.has(parentValue)) {
81
+ visible.add(parentValue);
82
+ parentValue = byValue.get(parentValue)?.parentValue;
83
+ }
84
+ }
85
+ return { visible, exact };
86
+ });
87
+ }
88
+ const REMOTE_SEARCH_DEBOUNCE = 200;
89
+ export function useTreeSearch(options) {
90
+ const matches = shallowRef();
91
+ const pending = shallowRef(false);
92
+ const remote = computed(() => typeof toValue(options.remoteFilter) === "function");
93
+ const needle = computed(() => (toValue(options.query) ?? "").trim());
94
+ const active = computed(() => remote.value && needle.value !== "" && matches.value !== void 0);
95
+ let requestId = 0;
96
+ function invalidate() {
97
+ requestId += 1;
98
+ runSearch.cancel();
99
+ }
100
+ async function run(query) {
101
+ const at = ++requestId;
102
+ const remoteFilter = toValue(options.remoteFilter);
103
+ if (!remoteFilter) {
104
+ return;
105
+ }
106
+ try {
107
+ const result = await remoteFilter(query);
108
+ if (at === requestId) {
109
+ matches.value = Array.isArray(result) ? result : [];
110
+ }
111
+ } catch {
112
+ if (at === requestId) {
113
+ matches.value = [];
114
+ }
115
+ } finally {
116
+ if (at === requestId) {
117
+ pending.value = false;
118
+ }
119
+ }
120
+ }
121
+ const runSearch = debounce((query) => {
122
+ void run(query);
123
+ }, REMOTE_SEARCH_DEBOUNCE);
124
+ watch(
125
+ [remote, needle],
126
+ ([isRemote, query]) => {
127
+ invalidate();
128
+ if (!isRemote || !query) {
129
+ matches.value = void 0;
130
+ pending.value = false;
131
+ return;
132
+ }
133
+ pending.value = true;
134
+ runSearch(query);
135
+ },
136
+ { immediate: true }
137
+ );
138
+ onScopeDispose(invalidate);
139
+ return { matches, remote, pending, active };
140
+ }
141
+ export function useTreeRows(index, options) {
142
+ return computed(() => {
143
+ const { list } = toValue(index);
144
+ const expanded = toValue(options.expanded);
145
+ const matched = toValue(options.matched);
146
+ const searching = (toValue(options.query) ?? "").trim().length > 0;
147
+ const matchesOnly = searching && toValue(options.matchesOnly) === true;
148
+ const exact = toValue(options.exactMatched) ?? matched;
149
+ const canLoad = toValue(options.canLoad);
150
+ const rows = [];
151
+ let cursor = 0;
152
+ while (cursor < list.length) {
153
+ const meta = list[cursor];
154
+ if (searching && !matched.has(meta.node.value)) {
155
+ cursor = meta.end;
156
+ continue;
157
+ }
158
+ const value = meta.node.value;
159
+ if (matchesOnly && !exact.has(value)) {
160
+ cursor++;
161
+ continue;
162
+ }
163
+ rows.push({
164
+ key: value,
165
+ node: meta.node,
166
+ depth: matchesOnly ? 0 : meta.depth,
167
+ index: rows.length,
168
+ parentValue: matchesOnly ? void 0 : meta.parentValue,
169
+ hasChildren: meta.children.length > 0 || canLoad?.(value) === true,
170
+ expanded: expanded.has(value)
171
+ });
172
+ cursor++;
173
+ if (meta.children.length > 0 && !searching && !expanded.has(value)) {
174
+ cursor = meta.end;
175
+ }
176
+ }
177
+ if (searching) {
178
+ for (let i = 0; i < rows.length - 1; i++) {
179
+ if (rows[i].hasChildren) {
180
+ rows[i].expanded = rows[i + 1].depth > rows[i].depth;
181
+ }
182
+ }
183
+ }
184
+ return rows;
185
+ });
186
+ }
187
+ function collect(modelValue) {
188
+ if (Array.isArray(modelValue)) {
189
+ return new Set(modelValue);
190
+ }
191
+ return modelValue == null ? /* @__PURE__ */ new Set() : /* @__PURE__ */ new Set([modelValue]);
192
+ }
193
+ function derive(list, selected, selectable) {
194
+ const checked = /* @__PURE__ */ new Set();
195
+ const indeterminate = /* @__PURE__ */ new Set();
196
+ const stats = /* @__PURE__ */ new Map();
197
+ for (let i = list.length - 1; i >= 0; i--) {
198
+ const meta = list[i];
199
+ let total = 0;
200
+ let hit = 0;
201
+ for (const child of meta.children) {
202
+ const childStat = stats.get(child);
203
+ total += childStat?.total ?? 0;
204
+ hit += childStat?.hit ?? 0;
205
+ }
206
+ const takes = selectable(meta);
207
+ const isChecked = total > 0 ? hit === total : selected.has(meta.node.value);
208
+ if (isChecked && (takes || selected.has(meta.node.value))) {
209
+ checked.add(meta.node.value);
210
+ } else if (hit > 0) {
211
+ indeterminate.add(meta.node.value);
212
+ }
213
+ stats.set(meta, {
214
+ total: total + (takes ? 1 : 0),
215
+ hit: hit + (isChecked && takes ? 1 : 0)
216
+ });
217
+ }
218
+ return { checked, indeterminate };
219
+ }
220
+ export function useTreeSelection(options) {
221
+ const selected = computed(() => collect(toValue(options.modelValue)));
222
+ let anchor;
223
+ let current;
224
+ function selectable(meta) {
225
+ return meta.node.disabled !== true && toValue(options.selectable)?.(meta.node) !== false;
226
+ }
227
+ function isSelectable(value) {
228
+ const meta = toValue(options.index).byValue.get(value);
229
+ return meta !== void 0 && selectable(meta);
230
+ }
231
+ const state = computed(() => {
232
+ if (!toValue(options.multiple) || toValue(options.checkStrictly)) {
233
+ return { checked: selected.value, indeterminate: /* @__PURE__ */ new Set() };
234
+ }
235
+ return derive(toValue(options.index).list, selected.value, selectable);
236
+ });
237
+ function toToggleResult(list, result) {
238
+ return {
239
+ value: list.filter((item) => result.checked.has(item.node.value)).map((item) => item.node.value),
240
+ halfCheckedValues: list.filter((item) => result.indeterminate.has(item.node.value)).map((item) => item.node.value)
241
+ };
242
+ }
243
+ function toggle(value) {
244
+ if (!toValue(options.multiple)) {
245
+ return { value: selected.value.has(value) ? null : value, halfCheckedValues: [] };
246
+ }
247
+ const { list, byValue } = toValue(options.index);
248
+ const meta = byValue.get(value);
249
+ if (!meta || !selectable(meta)) {
250
+ return toToggleResult(list, state.value);
251
+ }
252
+ const next = new Set(selected.value);
253
+ const willCheck = !state.value.checked.has(value);
254
+ if (willCheck) {
255
+ anchor = value;
256
+ current = value;
257
+ }
258
+ if (toValue(options.checkStrictly)) {
259
+ if (willCheck) {
260
+ next.add(value);
261
+ } else {
262
+ next.delete(value);
263
+ }
264
+ return toToggleResult(list, { checked: next, indeterminate: /* @__PURE__ */ new Set() });
265
+ }
266
+ for (let i = list.indexOf(meta); i < meta.end; i++) {
267
+ const item = list[i];
268
+ if (!selectable(item)) {
269
+ continue;
270
+ }
271
+ if (willCheck) {
272
+ next.add(item.node.value);
273
+ } else {
274
+ next.delete(item.node.value);
275
+ }
276
+ }
277
+ return toToggleResult(list, derive(list, next, selectable));
278
+ }
279
+ function span(from, to) {
280
+ const { list } = toValue(options.index);
281
+ const start = list.indexOf(from);
282
+ const end = list.indexOf(to);
283
+ return list.slice(Math.min(start, end), Math.max(start, end) + 1);
284
+ }
285
+ function extend(value) {
286
+ const { list, byValue } = toValue(options.index);
287
+ const to = byValue.get(value);
288
+ const from = anchor === void 0 ? void 0 : byValue.get(anchor);
289
+ const reached = current === void 0 ? void 0 : byValue.get(current);
290
+ if (!to || !from || !toValue(options.multiple)) {
291
+ return toggle(value);
292
+ }
293
+ const next = new Set(selected.value);
294
+ for (const item of span(from, reached ?? to)) {
295
+ next.delete(item.node.value);
296
+ }
297
+ for (const item of span(from, to)) {
298
+ if (selectable(item)) {
299
+ next.add(item.node.value);
300
+ }
301
+ }
302
+ current = value;
303
+ return toValue(options.checkStrictly) ? toToggleResult(list, { checked: next, indeterminate: /* @__PURE__ */ new Set() }) : toToggleResult(list, derive(list, next, selectable));
304
+ }
305
+ return {
306
+ checked: computed(() => state.value.checked),
307
+ indeterminate: computed(() => state.value.indeterminate),
308
+ toggle,
309
+ extend,
310
+ isSelectable
311
+ };
312
+ }
313
+ export function isTreeDescendant(index, ancestorValue, value) {
314
+ const ancestor = index.byValue.get(ancestorValue);
315
+ let current = index.byValue.get(value);
316
+ while (current && current.parentValue !== void 0) {
317
+ const parent = index.byValue.get(current.parentValue);
318
+ if (!parent) {
319
+ return false;
320
+ }
321
+ if (parent === ancestor) {
322
+ return true;
323
+ }
324
+ current = parent;
325
+ }
326
+ return false;
327
+ }
328
+ function removeNode(list, childrenField, value, parentValue) {
329
+ const at = list.findIndex((node) => node.value === value);
330
+ if (at !== -1) {
331
+ return {
332
+ list: [...list.slice(0, at), ...list.slice(at + 1)],
333
+ node: list[at],
334
+ parentValue,
335
+ index: at
336
+ };
337
+ }
338
+ for (let i = 0; i < list.length; i++) {
339
+ const children = list[i][childrenField];
340
+ if (!Array.isArray(children)) {
341
+ continue;
342
+ }
343
+ const result = removeNode(children, childrenField, value, list[i].value);
344
+ if (!result) {
345
+ continue;
346
+ }
347
+ const next = [...list];
348
+ next[i] = { ...list[i], [childrenField]: result.list };
349
+ return { ...result, list: next };
350
+ }
351
+ return void 0;
352
+ }
353
+ function insertNode(list, childrenField, target, node, parentValue) {
354
+ const at = list.findIndex((item) => item.value === target.targetValue);
355
+ if (at !== -1) {
356
+ const next = [...list];
357
+ if (target.position === "inside") {
358
+ const raw = next[at][childrenField];
359
+ const children = Array.isArray(raw) ? raw : [];
360
+ next[at] = { ...next[at], [childrenField]: [...children, node] };
361
+ return { list: next, parentValue: next[at].value, index: children.length };
362
+ }
363
+ const index = target.position === "after" ? at + 1 : at;
364
+ next.splice(index, 0, node);
365
+ return { list: next, parentValue, index };
366
+ }
367
+ for (let i = 0; i < list.length; i++) {
368
+ const children = list[i][childrenField];
369
+ if (!Array.isArray(children)) {
370
+ continue;
371
+ }
372
+ const result = insertNode(children, childrenField, target, node, list[i].value);
373
+ if (!result) {
374
+ continue;
375
+ }
376
+ const next = [...list];
377
+ next[i] = { ...list[i], [childrenField]: result.list };
378
+ return { ...result, list: next };
379
+ }
380
+ return void 0;
381
+ }
382
+ export function moveTreeNode(data, childrenField, value, target) {
383
+ const removal = removeNode(data, childrenField, value);
384
+ if (!removal) {
385
+ return void 0;
386
+ }
387
+ const insertion = insertNode(removal.list, childrenField, target, removal.node);
388
+ if (!insertion) {
389
+ return void 0;
390
+ }
391
+ if (removal.parentValue === insertion.parentValue && removal.index === insertion.index) {
392
+ return void 0;
393
+ }
394
+ return {
395
+ data: insertion.list,
396
+ detail: {
397
+ value,
398
+ node: removal.node,
399
+ from: { parentValue: removal.parentValue, index: removal.index },
400
+ to: {
401
+ parentValue: insertion.parentValue,
402
+ index: insertion.index,
403
+ targetValue: target.targetValue,
404
+ position: target.position
405
+ }
406
+ }
407
+ };
408
+ }
409
+ const DRAG_THRESHOLD = 5;
410
+ const HOLD_DELAY = 300;
411
+ const EXPAND_DELAY = 500;
412
+ export function useTreeDrag(options) {
413
+ const value = shallowRef();
414
+ const target = shallowRef();
415
+ const x = shallowRef(0);
416
+ const y = shallowRef(0);
417
+ let armed;
418
+ let expandTimer;
419
+ let expandValue;
420
+ let cachedRects = [];
421
+ let contentOrigin = 0;
422
+ let captured;
423
+ let justDragged = false;
424
+ function measureRows(container, items) {
425
+ const rows = toValue(options.rows);
426
+ const origin = container.getBoundingClientRect().top - container.scrollTop;
427
+ const list = [];
428
+ for (const item of Array.from(items)) {
429
+ const row = rows[Number(item.dataset.index)];
430
+ if (!row) {
431
+ continue;
432
+ }
433
+ const rect = item.getBoundingClientRect();
434
+ list.push({ row, top: rect.top - origin, height: rect.height });
435
+ }
436
+ cachedRects = list;
437
+ contentOrigin = origin;
438
+ }
439
+ function isCacheStale(items) {
440
+ if (items.length !== cachedRects.length) {
441
+ return true;
442
+ }
443
+ return Number(items[0]?.dataset.index) !== cachedRects[0]?.row.index;
444
+ }
445
+ function refreshOrigin() {
446
+ const container = getElement(options.container);
447
+ if (container) {
448
+ contentOrigin = container.getBoundingClientRect().top - container.scrollTop;
449
+ }
450
+ }
451
+ function resolveTarget(clientY) {
452
+ const container = getElement(options.container);
453
+ if (!container) {
454
+ return void 0;
455
+ }
456
+ const items = container.querySelectorAll("[data-tree-item]");
457
+ if (isCacheStale(items)) {
458
+ measureRows(container, items);
459
+ }
460
+ if (cachedRects.length === 0) {
461
+ return void 0;
462
+ }
463
+ const y2 = clientY - contentOrigin;
464
+ for (let index = 0; index < cachedRects.length; index++) {
465
+ const entry = cachedRects[index];
466
+ if (y2 >= entry.top && y2 <= entry.top + entry.height) {
467
+ return toTarget(index, y2);
468
+ }
469
+ }
470
+ const last = cachedRects.length - 1;
471
+ return y2 < cachedRects[0].top ? toTarget(0, y2) : toTarget(last, y2);
472
+ }
473
+ function afterRow(index, row) {
474
+ for (let at = index + 1; at < cachedRects.length; at++) {
475
+ const depth = cachedRects[at].row.depth;
476
+ if (depth < row.depth) {
477
+ break;
478
+ }
479
+ if (depth === row.depth) {
480
+ return { targetValue: cachedRects[at].row.key, position: "before" };
481
+ }
482
+ }
483
+ return { targetValue: row.key, position: "after" };
484
+ }
485
+ function toTarget(index, y2) {
486
+ const dragged = value.value;
487
+ const entry = cachedRects[index];
488
+ if (dragged === void 0 || !entry) {
489
+ return void 0;
490
+ }
491
+ const row = entry.row;
492
+ const ratio = (y2 - entry.top) / (entry.height || 1);
493
+ let target2;
494
+ if ((row.hasChildren || toValue(options.dropInsideLeaf)) && ratio > 0.25 && ratio < 0.75) {
495
+ target2 = { targetValue: row.key, position: "inside" };
496
+ } else if (ratio < 0.5) {
497
+ target2 = { targetValue: row.key, position: "before" };
498
+ } else {
499
+ target2 = afterRow(index, row);
500
+ }
501
+ return options.canDrop(dragged, target2.targetValue, target2.position) ? target2 : void 0;
502
+ }
503
+ function scheduleExpand(next) {
504
+ if (!next || next.position !== "inside") {
505
+ clearExpand();
506
+ return;
507
+ }
508
+ if (expandValue === next.targetValue) {
509
+ return;
510
+ }
511
+ clearExpand();
512
+ expandValue = next.targetValue;
513
+ expandTimer = setTimeout(() => {
514
+ expandTimer = void 0;
515
+ if (expandValue !== void 0) {
516
+ options.onExpand(expandValue);
517
+ }
518
+ }, EXPAND_DELAY);
519
+ }
520
+ function clearExpand() {
521
+ if (expandTimer !== void 0) {
522
+ clearTimeout(expandTimer);
523
+ expandTimer = void 0;
524
+ }
525
+ expandValue = void 0;
526
+ }
527
+ function followScroll() {
528
+ if (value.value === void 0) {
529
+ return;
530
+ }
531
+ refreshOrigin();
532
+ target.value = resolveTarget(y.value);
533
+ }
534
+ function capturePointer(pointerId) {
535
+ const container = getElement(options.container);
536
+ if (!container) {
537
+ return;
538
+ }
539
+ container.addEventListener("lostpointercapture", onLostCapture);
540
+ container.setPointerCapture?.(pointerId);
541
+ captured = { el: container, pointerId };
542
+ }
543
+ function releasePointer() {
544
+ const held = captured;
545
+ captured = void 0;
546
+ if (!held) {
547
+ return;
548
+ }
549
+ held.el.removeEventListener("lostpointercapture", onLostCapture);
550
+ if (held.el.hasPointerCapture?.(held.pointerId)) {
551
+ held.el.releasePointerCapture(held.pointerId);
552
+ }
553
+ }
554
+ function onLostCapture() {
555
+ if (armed || value.value !== void 0) {
556
+ reset();
557
+ }
558
+ }
559
+ function onTouchMove(event) {
560
+ event.preventDefault();
561
+ }
562
+ function beginDrag(session) {
563
+ armed = void 0;
564
+ value.value = session.value;
565
+ x.value = session.x;
566
+ y.value = session.y;
567
+ const container = getElement(options.container);
568
+ if (container) {
569
+ container.addEventListener("scroll", followScroll, { passive: true });
570
+ }
571
+ window.addEventListener("scroll", followScroll, { passive: true });
572
+ if (session.hold) {
573
+ window.addEventListener("touchmove", onTouchMove, { passive: false });
574
+ }
575
+ capturePointer(session.pointerId);
576
+ target.value = resolveTarget(session.y);
577
+ scheduleExpand(target.value);
578
+ }
579
+ function detach() {
580
+ window.removeEventListener("pointermove", onPointerMove);
581
+ window.removeEventListener("pointerup", onPointerUp);
582
+ window.removeEventListener("pointercancel", onPointerCancel);
583
+ window.removeEventListener("keydown", onKeydown, true);
584
+ window.removeEventListener("touchmove", onTouchMove);
585
+ window.removeEventListener("scroll", followScroll);
586
+ getElement(options.container)?.removeEventListener("scroll", followScroll);
587
+ if (armed?.timer !== void 0) {
588
+ clearTimeout(armed.timer);
589
+ }
590
+ releasePointer();
591
+ armed = void 0;
592
+ cachedRects = [];
593
+ clearExpand();
594
+ }
595
+ function reset() {
596
+ value.value = void 0;
597
+ target.value = void 0;
598
+ detach();
599
+ }
600
+ function onHoldEnd(session) {
601
+ session.timer = void 0;
602
+ if (armed === session) {
603
+ beginDrag(session);
604
+ }
605
+ }
606
+ function onPointerMove(event) {
607
+ if (armed) {
608
+ const session = armed;
609
+ const moved = Math.abs(event.clientY - session.y) >= DRAG_THRESHOLD || Math.abs(event.clientX - session.x) >= DRAG_THRESHOLD;
610
+ if (!moved) {
611
+ return;
612
+ }
613
+ if (session.hold) {
614
+ if (session.timer !== void 0) {
615
+ clearTimeout(session.timer);
616
+ }
617
+ armed = void 0;
618
+ return;
619
+ }
620
+ beginDrag(session);
621
+ }
622
+ if (value.value === void 0) {
623
+ return;
624
+ }
625
+ x.value = event.clientX;
626
+ y.value = event.clientY;
627
+ target.value = resolveTarget(event.clientY);
628
+ scheduleExpand(target.value);
629
+ }
630
+ function onPointerUp() {
631
+ const source = value.value;
632
+ const dropped = target.value;
633
+ justDragged = source !== void 0;
634
+ reset();
635
+ if (source !== void 0 && dropped) {
636
+ options.onCommit(source, dropped);
637
+ }
638
+ }
639
+ function onPointerCancel() {
640
+ reset();
641
+ }
642
+ function onKeydown(event) {
643
+ if (event.key !== "Escape" || isCompositionKeydown(event)) {
644
+ return;
645
+ }
646
+ event.preventDefault();
647
+ reset();
648
+ }
649
+ function onPointerDown(nodeValue, event) {
650
+ if (armed || toValue(options.enabled) === false || event.button !== 0) {
651
+ return;
652
+ }
653
+ const session = {
654
+ value: nodeValue,
655
+ x: event.clientX,
656
+ y: event.clientY,
657
+ pointerId: event.pointerId,
658
+ // A finger or a stylus has to declare intent: a move that follows at once is a scroll.
659
+ hold: event.pointerType !== "mouse"
660
+ };
661
+ armed = session;
662
+ justDragged = false;
663
+ window.addEventListener("pointermove", onPointerMove);
664
+ window.addEventListener("pointerup", onPointerUp);
665
+ window.addEventListener("pointercancel", onPointerCancel);
666
+ window.addEventListener("keydown", onKeydown, true);
667
+ if (session.hold) {
668
+ session.timer = setTimeout(() => onHoldEnd(session), HOLD_DELAY);
669
+ }
670
+ }
671
+ function didDrag() {
672
+ return justDragged;
673
+ }
674
+ onScopeDispose(reset);
675
+ return { value, target, x, y, onPointerDown, didDrag };
676
+ }
@@ -0,0 +1,24 @@
1
+ import type { ComponentLabel } from '../../types/shared/props';
2
+ import type { ComputedRef, MaybeRefOrGetter } from 'vue';
3
+ interface WordLimitOptions {
4
+ modelValue: MaybeRefOrGetter<ComponentLabel>;
5
+ showWordLimit: MaybeRefOrGetter<unknown>;
6
+ maxLength: MaybeRefOrGetter<string | number | null | undefined>;
7
+ wordLimitPosition: MaybeRefOrGetter<'inside' | 'outside' | undefined>;
8
+ isComposing: MaybeRefOrGetter<boolean>;
9
+ }
10
+ export interface WordLimit {
11
+ wordCount: ComputedRef<number>;
12
+ isWordLimitShown: ComputedRef<boolean>;
13
+ hasMaxLength: ComputedRef<boolean>;
14
+ isWordLimitOutside: ComputedRef<boolean>;
15
+ nativeMaxLength: ComputedRef<string | number | undefined>;
16
+ wordLimitText: ComputedRef<string>;
17
+ isWordLimitExceeded: ComputedRef<boolean>;
18
+ }
19
+ /**
20
+ * Shared word-limit state used by PInput and PTextarea.
21
+ * Keeps the two components' word-count/computed logic in sync.
22
+ */
23
+ export declare function useWordLimit(options: WordLimitOptions): WordLimit;
24
+ export {};