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,143 @@
1
+ import { shallowRef, watchEffect } from "vue";
2
+ import { toValue } from "../../utils/helper.js";
3
+ import { isNil } from "../../utils/is.js";
4
+ const TRANSITION_LOCK_MS = 250;
5
+ const LEAVE_DEBOUNCE_MS = 200;
6
+ const NEARLY_EXPIRED_MS = 100;
7
+ export function useMessageGroup({ messages, expand, onTimeout }) {
8
+ const groupExpand = shallowRef(toValue(expand));
9
+ let leaveTimeoutId;
10
+ let isTransitioning = false;
11
+ function lockTransition() {
12
+ isTransitioning = true;
13
+ setTimeout(() => {
14
+ isTransitioning = false;
15
+ }, TRANSITION_LOCK_MS);
16
+ }
17
+ function onPointerEnter() {
18
+ clearTimeout(leaveTimeoutId);
19
+ if (groupExpand.value || isTransitioning) {
20
+ return;
21
+ }
22
+ lockTransition();
23
+ groupExpand.value = true;
24
+ pauseAll();
25
+ }
26
+ function onPointerLeave() {
27
+ clearTimeout(leaveTimeoutId);
28
+ if (isTransitioning) {
29
+ return;
30
+ }
31
+ leaveTimeoutId = setTimeout(() => {
32
+ resumeAll();
33
+ if (toValue(expand)) {
34
+ return;
35
+ }
36
+ groupExpand.value = false;
37
+ lockTransition();
38
+ }, LEAVE_DEBOUNCE_MS);
39
+ }
40
+ function collapse() {
41
+ groupExpand.value = false;
42
+ }
43
+ function clearTimer(message) {
44
+ if (message._timerId) {
45
+ clearTimeout(message._timerId);
46
+ message._timerId = void 0;
47
+ }
48
+ }
49
+ function startTimer(message) {
50
+ message._startedAtMs = Date.now();
51
+ if (isNil(message._remainingMs)) {
52
+ message._remainingMs = message.durations;
53
+ }
54
+ clearTimer(message);
55
+ message._timerId = setTimeout(() => {
56
+ onTimeout(message.id);
57
+ }, message._remainingMs);
58
+ }
59
+ function pauseMessage(message) {
60
+ if (!message.durations || message.durations <= 0) {
61
+ return;
62
+ }
63
+ if (!message._timerId) {
64
+ return;
65
+ }
66
+ clearTimer(message);
67
+ const elapsed = Date.now() - message._startedAtMs;
68
+ const remaining = message._remainingMs ?? message.durations;
69
+ message._remainingMs = Math.max(0, remaining - elapsed);
70
+ }
71
+ function resumeMessage(message) {
72
+ if (!message.durations || message.durations <= 0) {
73
+ return;
74
+ }
75
+ if (message._startedAtMs == null) {
76
+ return;
77
+ }
78
+ if ((message._remainingMs ?? 0) <= NEARLY_EXPIRED_MS) {
79
+ onTimeout(message.id);
80
+ return;
81
+ }
82
+ startTimer(message);
83
+ }
84
+ function applyHandlerMessage(message, handler, data) {
85
+ const content = typeof handler === "function" ? handler(data) : handler;
86
+ if (!isNil(content)) {
87
+ message.message = content;
88
+ }
89
+ }
90
+ async function handlePromiseMessage(message) {
91
+ if (!message.promise) {
92
+ return;
93
+ }
94
+ let result;
95
+ try {
96
+ result = await message.promise;
97
+ message.type = "success";
98
+ applyHandlerMessage(message, message.success, result);
99
+ } catch (err) {
100
+ result = err;
101
+ message.type = "error";
102
+ applyHandlerMessage(message, message.error, err);
103
+ } finally {
104
+ applyHandlerMessage(message, message.finally, result);
105
+ message.promise = void 0;
106
+ message.success = void 0;
107
+ message.error = void 0;
108
+ message.finally = void 0;
109
+ const isAlive = toValue(messages).includes(message);
110
+ if (isAlive && message.durations && message.durations > 0) {
111
+ message._remainingMs = message.durations;
112
+ startTimer(message);
113
+ }
114
+ }
115
+ }
116
+ function clearTimers() {
117
+ toValue(messages).forEach(clearTimer);
118
+ }
119
+ function pauseAll() {
120
+ toValue(messages).forEach(pauseMessage);
121
+ }
122
+ function resumeAll() {
123
+ const snapshot = [...toValue(messages)];
124
+ snapshot.forEach(resumeMessage);
125
+ }
126
+ watchEffect(() => {
127
+ groupExpand.value = toValue(expand);
128
+ });
129
+ return {
130
+ groupExpand,
131
+ collapse,
132
+ onPointerEnter,
133
+ onPointerLeave,
134
+ startTimer,
135
+ clearTimer,
136
+ clearTimers,
137
+ pauseMessage,
138
+ resumeMessage,
139
+ pauseAll,
140
+ resumeAll,
141
+ handlePromiseMessage
142
+ };
143
+ }
@@ -11,5 +11,5 @@ interface ModelValueOptions {
11
11
  set?: (value: any) => void;
12
12
  withChange?: boolean;
13
13
  }
14
- export declare function useModelValue<P extends BaseProps, E extends BaseEmits>(props: P, emits: E, options?: ModelValueOptions): WritableComputedRef<NonNullable<P['modelValue']>>;
14
+ export declare function useModelValue<P extends BaseProps, E extends BaseEmits>(props: P, emits: E, { withChange, get, set }?: ModelValueOptions): WritableComputedRef<P['modelValue']>;
15
15
  export {};
@@ -0,0 +1,13 @@
1
+ import { computed } from "vue";
2
+ export function useModelValue(props, emits, { withChange = true, get, set } = {}) {
3
+ const modelValue = computed({
4
+ get: get || (() => props.modelValue),
5
+ set: set || ((value) => {
6
+ if (withChange) {
7
+ emits("change", value);
8
+ }
9
+ emits("update:modelValue", value);
10
+ })
11
+ });
12
+ return modelValue;
13
+ }
@@ -0,0 +1,25 @@
1
+ import type { Ref } from 'vue';
2
+ interface OverlayDialogProps {
3
+ autoFocusElement?: string | boolean;
4
+ closeOnPressEscape?: boolean;
5
+ closeOnClickOverlay?: boolean;
6
+ loading?: boolean;
7
+ }
8
+ interface OverlayDialogEmits {
9
+ (event: 'outside-click', ev: PointerEvent): void;
10
+ }
11
+ interface OverlayDialogOptions {
12
+ props: OverlayDialogProps;
13
+ emits: OverlayDialogEmits;
14
+ elementRef: Ref<HTMLElement | undefined>;
15
+ onClose: () => void;
16
+ }
17
+ /**
18
+ * Shared dialog (Modal/Drawer) behaviors: focus trap wiring and overlay
19
+ * click/escape close handlers.
20
+ */
21
+ export declare function useOverlayDialog({ props, emits, elementRef, onClose }: OverlayDialogOptions): {
22
+ closeOverlayIfNeed: () => void;
23
+ onOverlayClick: (ev: PointerEvent) => void;
24
+ };
25
+ export {};
@@ -0,0 +1,23 @@
1
+ import { computed } from "vue";
2
+ import { isTruthyProp } from "../../utils/format.js";
3
+ import { useFocusTrap } from "./use-focus-trap.js";
4
+ export function useOverlayDialog({ props, emits, elementRef, onClose }) {
5
+ const focusTrapOptions = computed(() => ({
6
+ autoFocusElement: props.autoFocusElement
7
+ }));
8
+ useFocusTrap(elementRef, focusTrapOptions);
9
+ function closeOverlayIfNeed() {
10
+ if (isTruthyProp(props.loading)) {
11
+ return;
12
+ }
13
+ onClose();
14
+ }
15
+ function onOverlayClick(ev) {
16
+ emits("outside-click", ev);
17
+ if (!isTruthyProp(props.closeOnClickOverlay)) {
18
+ return;
19
+ }
20
+ closeOverlayIfNeed();
21
+ }
22
+ return { closeOverlayIfNeed, onOverlayClick };
23
+ }
@@ -4,11 +4,14 @@ interface OverlayManagerOptions {
4
4
  lockScrollOnVisible?: MaybeRefOrGetter<boolean>;
5
5
  lockScroll: () => void;
6
6
  unlockScroll: () => void;
7
- onPressEscape?: (ev: KeyboardEvent) => void;
7
+ /** Return `false` to let the next overlay below handle the event. */
8
+ onPressEscape?: (ev: KeyboardEvent) => boolean | void;
9
+ zIndex?: MaybeRefOrGetter<number | undefined>;
8
10
  }
9
11
  interface OverlayManagerEntry {
10
12
  id: symbol;
11
13
  onPressEscape: OverlayManagerOptions['onPressEscape'];
14
+ zIndex: OverlayManagerOptions['zIndex'];
12
15
  }
13
16
  export declare function useOverlayManager(options: OverlayManagerOptions): {
14
17
  isTopOverlay: (entry?: OverlayManagerEntry) => boolean;
@@ -0,0 +1,139 @@
1
+ import { onScopeDispose, watch } from "vue";
2
+ import {
3
+ cachedOff,
4
+ cachedOn,
5
+ isCompositionKeydown,
6
+ preventDefaultScroll
7
+ } from "../../utils/event.js";
8
+ import { toValue } from "../../utils/helper.js";
9
+ const touchMoveOptions = { passive: false };
10
+ let isKeydownListening = false;
11
+ let rootInteractionLocks = 0;
12
+ let addedPointerEventsNone = false;
13
+ const overlayStack = [];
14
+ function getEntryZIndex(entry) {
15
+ const value = Number(toValue(entry.zIndex));
16
+ return Number.isFinite(value) ? value : 0;
17
+ }
18
+ function getTopOverlay() {
19
+ let top;
20
+ for (const entry of overlayStack) {
21
+ if (!top || getEntryZIndex(entry) >= getEntryZIndex(top)) {
22
+ top = entry;
23
+ }
24
+ }
25
+ return top;
26
+ }
27
+ function getOverlaysFromTop() {
28
+ return overlayStack.map((entry, index) => ({ entry, index })).sort((a, b) => getEntryZIndex(b.entry) - getEntryZIndex(a.entry) || b.index - a.index).map(({ entry }) => entry);
29
+ }
30
+ function lockRootInteraction() {
31
+ if (rootInteractionLocks++) {
32
+ return;
33
+ }
34
+ const rootEl = document.documentElement;
35
+ addedPointerEventsNone = !rootEl.classList.contains("pointer-events-none");
36
+ rootEl.classList.add("pointer-events-none");
37
+ cachedOn(document, "touchmove", preventDefaultScroll, touchMoveOptions);
38
+ }
39
+ function unlockRootInteraction() {
40
+ if (--rootInteractionLocks > 0) {
41
+ return;
42
+ }
43
+ cachedOff(document, "touchmove", preventDefaultScroll, touchMoveOptions);
44
+ if (addedPointerEventsNone) {
45
+ document.documentElement.classList.remove("pointer-events-none");
46
+ addedPointerEventsNone = false;
47
+ }
48
+ }
49
+ function onEscapeKeydown(ev) {
50
+ if (!overlayStack.length || ev.defaultPrevented || ev.repeat || isCompositionKeydown(ev)) {
51
+ return;
52
+ }
53
+ const { ctrlKey, metaKey, altKey, shiftKey, key } = ev;
54
+ if (ctrlKey || metaKey || altKey || shiftKey || key !== "Escape") {
55
+ return;
56
+ }
57
+ for (const entry of getOverlaysFromTop()) {
58
+ if (entry.onPressEscape?.(ev) !== false) {
59
+ return;
60
+ }
61
+ }
62
+ }
63
+ function ensureKeydownListener() {
64
+ if (isKeydownListening) {
65
+ return;
66
+ }
67
+ cachedOn(document, "keydown", onEscapeKeydown);
68
+ isKeydownListening = true;
69
+ }
70
+ function removeKeydownListener() {
71
+ if (!isKeydownListening || overlayStack.length > 0) {
72
+ return;
73
+ }
74
+ cachedOff(document, "keydown", onEscapeKeydown);
75
+ isKeydownListening = false;
76
+ }
77
+ export function useOverlayManager(options) {
78
+ const { enabled, lockScrollOnVisible, lockScroll, unlockScroll, onPressEscape, zIndex } = options;
79
+ let isLockedScroll = false;
80
+ const overlayId = Symbol("pxd-overlay-id");
81
+ function isTopOverlay(entry) {
82
+ entry ??= getTopOverlay();
83
+ return entry?.id === overlayId;
84
+ }
85
+ function registerOverlay() {
86
+ if (!toValue(enabled)) {
87
+ return;
88
+ }
89
+ const shouldLockScroll = toValue(lockScrollOnVisible);
90
+ if (shouldLockScroll && !isLockedScroll) {
91
+ lockScroll();
92
+ lockRootInteraction();
93
+ isLockedScroll = true;
94
+ }
95
+ const idx = overlayStack.findIndex((item) => item.id === overlayId);
96
+ if (idx !== -1) {
97
+ overlayStack.splice(idx, 1);
98
+ }
99
+ overlayStack.push({
100
+ id: overlayId,
101
+ onPressEscape,
102
+ zIndex
103
+ });
104
+ ensureKeydownListener();
105
+ }
106
+ function unregisterOverlay() {
107
+ const idx = overlayStack.findIndex((item) => item.id === overlayId);
108
+ if (idx !== -1) {
109
+ overlayStack.splice(idx, 1);
110
+ }
111
+ if (isLockedScroll) {
112
+ unlockScroll();
113
+ unlockRootInteraction();
114
+ isLockedScroll = false;
115
+ }
116
+ removeKeydownListener();
117
+ }
118
+ watch(
119
+ () => toValue(enabled),
120
+ (isEnabled, wasEnabled) => {
121
+ if (isEnabled === wasEnabled) {
122
+ return;
123
+ }
124
+ if (isEnabled) {
125
+ registerOverlay();
126
+ return;
127
+ }
128
+ unregisterOverlay();
129
+ }
130
+ );
131
+ onScopeDispose(() => {
132
+ unregisterOverlay();
133
+ });
134
+ return {
135
+ isTopOverlay,
136
+ registerOverlay,
137
+ unregisterOverlay
138
+ };
139
+ }
@@ -1,5 +1,5 @@
1
1
  import { computed } from "vue";
2
- import { PRESET_MEDIA_QUERIES, useMediaQuery } from "./use-media-query.js";
2
+ import { PRESET_MEDIA_QUERIES, useMediaQuery } from "../use-media-query.js";
3
3
  export function usePopoverResponsive() {
4
4
  const isAdaptive = useMediaQuery(PRESET_MEDIA_QUERIES.IS_XS);
5
5
  const responsiveClasses = computed(() => {
@@ -0,0 +1,6 @@
1
+ import type { ListOption, ListOptionEntry, ListOptionGroup, ListOptions, ListOptionSelected } from '../../components/list/types';
2
+ import type { MaybeRefOrGetter } from 'vue';
3
+ export declare function isListOptionGroup(option: ListOptionEntry): option is ListOptionGroup;
4
+ export declare function resolveOptionByValue(options: ListOptionEntry[], value: ListOptionSelected['value']): ListOption | null;
5
+ export declare function useSelectedListItems(options: MaybeRefOrGetter<ListOptions>, modelValue: MaybeRefOrGetter<unknown>): import("vue").ComputedRef<ListOption[]>;
6
+ export declare function useSelectedListItem(options: MaybeRefOrGetter<ListOptions>, modelValue: MaybeRefOrGetter<unknown>): import("vue").ComputedRef<ListOption>;
@@ -0,0 +1,36 @@
1
+ import { computed } from "vue";
2
+ import { toArray } from "../../utils/format.js";
3
+ import { toValue } from "../../utils/helper.js";
4
+ export function isListOptionGroup(option) {
5
+ return option.type === "group";
6
+ }
7
+ export function resolveOptionByValue(options, value) {
8
+ for (const entry of options) {
9
+ if (isListOptionGroup(entry)) {
10
+ const matchedOption = resolveOptionByValue(entry.options, value);
11
+ if (matchedOption) {
12
+ return matchedOption;
13
+ }
14
+ } else if (entry.value === value) {
15
+ return entry;
16
+ }
17
+ }
18
+ return null;
19
+ }
20
+ function resolveSelectedListItems(options, modelValue) {
21
+ const selectedOptions = [];
22
+ for (const value of toArray(modelValue)) {
23
+ const matchedOption = resolveOptionByValue(options, value);
24
+ if (matchedOption) {
25
+ selectedOptions.push(matchedOption);
26
+ }
27
+ }
28
+ return selectedOptions;
29
+ }
30
+ export function useSelectedListItems(options, modelValue) {
31
+ return computed(() => resolveSelectedListItems(toValue(options) ?? [], toValue(modelValue)));
32
+ }
33
+ export function useSelectedListItem(options, modelValue) {
34
+ const selectedItems = useSelectedListItems(options, modelValue);
35
+ return computed(() => selectedItems.value[0] ?? null);
36
+ }
@@ -0,0 +1,88 @@
1
+ import type { MaybeElementRef } from '../../types/shared/utils';
2
+ import type { MaybeRefOrGetter } from 'vue';
3
+ export type SwipeDirection = 'left' | 'right' | 'top' | 'bottom';
4
+ export interface SwipePressState {
5
+ size: number;
6
+ /** The pointerdown event that opened the gesture. */
7
+ event: PointerEvent;
8
+ }
9
+ export interface SwipeFollowState {
10
+ /** Movement since the previous event along the active axis (px). */
11
+ delta: number;
12
+ /** Signed velocity (px / ms) since the previous event along the active axis. */
13
+ velocity: number;
14
+ /** `displacement / containerSize` signed ratio, typically in the range of -1 to 1. */
15
+ offset: number;
16
+ /** Signed displacement from the start point along the active axis (px). */
17
+ displacement: number;
18
+ /** The pointermove event that produced this sample. */
19
+ event: PointerEvent;
20
+ }
21
+ export interface SwipeReleaseState {
22
+ /** Whether the gesture qualified as a successful swipe (by velocity or distance). */
23
+ swiped: boolean;
24
+ /** Physical swipe direction. `undefined` when `swiped` is `false`. */
25
+ direction?: SwipeDirection;
26
+ /** Signed displacement at release along the active axis (px). */
27
+ displacement: number;
28
+ /** Signed velocity at release (px / ms). */
29
+ velocity: number;
30
+ /** Whether the gesture stayed on the target axis from the moment it was locked. */
31
+ axisLocked: boolean;
32
+ /** The pointerup or pointercancel event that ended the gesture. */
33
+ event: PointerEvent;
34
+ }
35
+ export interface SwipeTapState {
36
+ /** The pointerup event that ended the interaction. */
37
+ event: PointerEvent;
38
+ /**
39
+ * The pointerdown event that started it. A release that never became a pan can
40
+ * land on a different element, so hit-testing should use what the user pressed.
41
+ */
42
+ startEvent: PointerEvent | null;
43
+ /**
44
+ * `true` when `beforeStart` discarded the gesture, `false` when the pointer
45
+ * simply never travelled far enough to be recognized.
46
+ */
47
+ vetoed: boolean;
48
+ }
49
+ export interface SwipeGestureOptions {
50
+ disabled?: MaybeRefOrGetter<boolean>;
51
+ /** CSS selector for the drag handle element within the container. */
52
+ handleSelector?: string;
53
+ /** Swipe axis. Reactive; accepts a ref or getter. */
54
+ axis?: MaybeRefOrGetter<'horizontal' | 'vertical'>;
55
+ /** Minimum movement (px) before locking the gesture axis. */
56
+ axisLockThreshold?: number;
57
+ /** Main-axis movement must be at least this multiple of cross-axis movement. */
58
+ axisLockRatio?: number;
59
+ /** Minimum swipe distance (px) before movement events start. */
60
+ swipeThreshold?: number;
61
+ /** Fraction of the container size the finger must travel for a slow-drag swipe. */
62
+ distanceThreshold?: number;
63
+ /** Minimum absolute velocity (px / ms) for a quick-flick swipe. */
64
+ velocityThreshold?: number;
65
+ /**
66
+ * Gate evaluated once the gesture is recognized. Resolving `false` discards the
67
+ * gesture: `onFollow` never fires and the release is reported through `onTap`
68
+ * with `vetoed: true`. Movement arriving while a promise is pending is dropped,
69
+ * and a release inside that window waits for the verdict.
70
+ */
71
+ beforeStart?: (state: SwipePressState) => boolean | Promise<boolean>;
72
+ onPress?: (state: SwipePressState) => void;
73
+ onFollow?: (state: SwipeFollowState) => void;
74
+ /**
75
+ * Receives the raw release metrics. `swiped` and `direction` follow
76
+ * `distanceThreshold` / `velocityThreshold` against the container size; consumers
77
+ * that measure against something else decide from `displacement` themselves.
78
+ */
79
+ onRelease?: (state: SwipeReleaseState) => void;
80
+ /**
81
+ * Called on release when no swipe was ever recognized: the pointer travelled less
82
+ * than `swipeThreshold`, or `beforeStart` discarded it.
83
+ */
84
+ onTap?: (state: SwipeTapState) => void;
85
+ }
86
+ export declare function useSwipeGesture(containerRef: MaybeElementRef<HTMLElement>, options?: SwipeGestureOptions): {
87
+ stop: () => void;
88
+ };