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
@@ -1,27 +1,78 @@
1
1
  <script setup>
2
2
  import ChevronRightIcon from "@gdsicon/vue/chevron-right";
3
- import { computed, nextTick, onBeforeUnmount, onMounted, ref, shallowRef } from "vue";
4
- import { useSwipeGesture } from "../../composables/use-swipe-gesture";
5
- import { provideCarouselContext } from "../../contexts/carousel";
6
- import { awaitAnimationEnd } from "../../utils/dom";
7
- import { getCssUnitValue } from "../../utils/format";
3
+ import { computed, nextTick, onBeforeUnmount, onMounted, shallowRef, useSlots } from "vue";
4
+ import { useSwipeGesture } from "../../composables/_internal/use-swipe-gesture.js";
5
+ import { awaitAnimationEnd } from "../../utils/dom.js";
6
+ import { getCssUnitValue } from "../../utils/format.js";
8
7
  defineOptions({
9
- name: "PCarousel",
10
- inheritAttrs: false
8
+ name: "PCarousel",
9
+ inheritAttrs: false
11
10
  });
12
11
  const props = defineProps({
13
- index: { type: Number, required: false, default: 0 },
14
- loop: { type: Boolean, required: false, default: true },
15
- arrow: { type: Boolean, required: false, default: true },
16
- height: { type: [Number, String], required: false, default: 180 },
17
- autoplay: { type: Boolean, required: false, default: true },
18
- interval: { type: Number, required: false, default: 3e3 },
19
- indicator: { type: Boolean, required: false, default: true },
20
- direction: { type: String, required: false, default: "horizontal" },
21
- indicatorType: { type: String, required: false, default: "dot" },
22
- indicatorPosition: { type: String, required: false, default: "center" },
23
- pauseOnHover: { type: Boolean, required: false, default: true },
24
- toggleOnWheel: { type: Boolean, required: false }
12
+ index: {
13
+ type: Number,
14
+ required: false,
15
+ default: 0
16
+ },
17
+ loop: {
18
+ type: Boolean,
19
+ required: false,
20
+ default: true
21
+ },
22
+ arrow: {
23
+ type: Boolean,
24
+ required: false,
25
+ default: true
26
+ },
27
+ height: {
28
+ type: [Number, String],
29
+ required: false,
30
+ default: 180
31
+ },
32
+ autoplay: {
33
+ type: Boolean,
34
+ required: false,
35
+ default: true
36
+ },
37
+ interval: {
38
+ type: Number,
39
+ required: false,
40
+ default: 3e3
41
+ },
42
+ indicator: {
43
+ type: Boolean,
44
+ required: false,
45
+ default: true
46
+ },
47
+ direction: {
48
+ type: String,
49
+ required: false,
50
+ default: "horizontal"
51
+ },
52
+ indicatorType: {
53
+ type: String,
54
+ required: false,
55
+ default: "dot"
56
+ },
57
+ indicatorPosition: {
58
+ type: String,
59
+ required: false,
60
+ default: "center"
61
+ },
62
+ pauseOnHover: {
63
+ type: Boolean,
64
+ required: false,
65
+ default: true
66
+ },
67
+ toggleOnWheel: {
68
+ type: Boolean,
69
+ required: false
70
+ },
71
+ options: {
72
+ type: Array,
73
+ required: false,
74
+ default: () => []
75
+ }
25
76
  });
26
77
  const emits = defineEmits(["change"]);
27
78
  let isToggling = false;
@@ -29,197 +80,198 @@ let pendingDelta = null;
29
80
  let autoPlayTimerId = null;
30
81
  let isPointerEntering = false;
31
82
  let maxDrag = 0;
32
- const carousels = ref([]);
33
83
  const sliderRef = shallowRef();
34
84
  const virtualIndex = shallowRef(props.index);
35
85
  const gestureMoveOffset = shallowRef(0);
86
+ const slideCount = computed(() => props.options.length);
36
87
  const displayIndex = computed(() => {
37
- const length = carousels.value.length;
38
- if (length === 0) {
39
- return 0;
40
- }
41
- return (virtualIndex.value % length + length) % length;
88
+ const length = slideCount.value;
89
+ if (length === 0) {
90
+ return 0;
91
+ }
92
+ return (virtualIndex.value % length + length) % length;
42
93
  });
43
94
  const isAtFirst = computed(() => displayIndex.value === 0);
44
- const isAtLast = computed(() => displayIndex.value === carousels.value.length - 1);
95
+ const isAtLast = computed(() => displayIndex.value === slideCount.value - 1);
45
96
  const isHorizontal = computed(() => props.direction === "horizontal");
97
+ const isLooping = computed(() => props.loop && slideCount.value > 1);
46
98
  const computedStyle = computed(() => {
47
- const translateValue = `calc(${virtualIndex.value * -100}% + ${gestureMoveOffset.value}px)`;
48
- return {
49
- transform: `translate${isHorizontal.value ? "X" : "Y"}(${translateValue})`
50
- };
99
+ const translateValue = `calc(${virtualIndex.value * -100}% + ${gestureMoveOffset.value}px)`;
100
+ return { transform: `translate${isHorizontal.value ? "X" : "Y"}(${translateValue})` };
51
101
  });
102
+ const rootStyle = computed(() => {
103
+ return {
104
+ height: getCssUnitValue(props.height),
105
+ "--carousel-item-count": slideCount.value
106
+ };
107
+ });
108
+ const loopPlacement = computed(() => {
109
+ const length = slideCount.value;
110
+ const lastIndex = length - 1;
111
+ if (!isLooping.value) {
112
+ return "none";
113
+ }
114
+ if (virtualIndex.value <= 0) {
115
+ return "start";
116
+ }
117
+ if (virtualIndex.value >= lastIndex) {
118
+ return "end";
119
+ }
120
+ return "none";
121
+ });
122
+ const slots = useSlots();
52
123
  useSwipeGesture(sliderRef, {
53
- direction: () => props.direction,
54
- onPress: ({ size }) => {
55
- maxDrag = size;
56
- gestureMoveOffset.value = 0;
57
- onPointerEnter();
58
- },
59
- onFollow: (ev) => {
60
- if (!props.loop && (isAtFirst.value && ev.delta > 0 || isAtLast.value && ev.delta < 0)) {
61
- return;
62
- }
63
- gestureMoveOffset.value = Math.max(-maxDrag, Math.min(maxDrag, ev.displacement));
64
- },
65
- onRelease: ({ swiped, direction }) => {
66
- gestureMoveOffset.value = 0;
67
- onPointerLeave();
68
- if (!swiped || !direction) {
69
- return;
70
- }
71
- if (isHorizontal.value) {
72
- performToggle(direction === "left" ? 1 : -1);
73
- } else {
74
- performToggle(direction === "top" ? 1 : -1);
75
- }
76
- }
124
+ axis: () => props.direction,
125
+ onPress: ({ size }) => {
126
+ maxDrag = size;
127
+ gestureMoveOffset.value = 0;
128
+ onPointerEnter();
129
+ },
130
+ onFollow: (ev) => {
131
+ if (!props.loop && (isAtFirst.value && ev.delta > 0 || isAtLast.value && ev.delta < 0)) {
132
+ return;
133
+ }
134
+ gestureMoveOffset.value = Math.max(-maxDrag, Math.min(maxDrag, ev.displacement));
135
+ },
136
+ onRelease: ({ swiped, direction }) => {
137
+ gestureMoveOffset.value = 0;
138
+ onPointerLeave();
139
+ if (!swiped || !direction) {
140
+ return;
141
+ }
142
+ if (isHorizontal.value) {
143
+ performToggle(direction === "left" ? 1 : -1);
144
+ } else {
145
+ performToggle(direction === "top" ? 1 : -1);
146
+ }
147
+ }
77
148
  });
78
149
  async function performToggle(delta) {
79
- const length = carousels.value.length;
80
- if (length === 0) {
81
- return;
82
- }
83
- await awaitAnimationEnd(sliderRef.value);
84
- if (props.loop) {
85
- virtualIndex.value += delta;
86
- await nextTick();
87
- await awaitAnimationEnd(sliderRef.value);
88
- if (virtualIndex.value >= length) {
89
- await resetSliderPosition(0);
90
- } else if (virtualIndex.value <= -1) {
91
- await resetSliderPosition(length - 1);
92
- }
93
- } else {
94
- virtualIndex.value = Math.max(0, Math.min(virtualIndex.value + delta, length - 1));
95
- }
96
- emits("change", virtualIndex.value);
97
- restartAutoPlay();
150
+ const length = slideCount.value;
151
+ if (length === 0) {
152
+ return;
153
+ }
154
+ await awaitAnimationEnd(sliderRef.value);
155
+ if (isLooping.value) {
156
+ virtualIndex.value += delta;
157
+ await nextTick();
158
+ await awaitAnimationEnd(sliderRef.value);
159
+ if (virtualIndex.value >= length) {
160
+ await resetSliderPosition(0);
161
+ } else if (virtualIndex.value <= -1) {
162
+ await resetSliderPosition(length - 1);
163
+ }
164
+ } else {
165
+ virtualIndex.value = Math.max(0, Math.min(virtualIndex.value + delta, length - 1));
166
+ }
167
+ emits("change", virtualIndex.value);
168
+ restartAutoPlay();
98
169
  }
99
170
  async function onToggleClick(delta) {
100
- if (isToggling) {
101
- pendingDelta = delta;
102
- return;
103
- }
104
- isToggling = true;
105
- try {
106
- await performToggle(delta);
107
- while (pendingDelta != null) {
108
- const next = pendingDelta;
109
- pendingDelta = null;
110
- await performToggle(next);
111
- }
112
- } finally {
113
- isToggling = false;
114
- }
171
+ if (isToggling) {
172
+ pendingDelta = delta;
173
+ return;
174
+ }
175
+ isToggling = true;
176
+ try {
177
+ await performToggle(delta);
178
+ while (pendingDelta != null) {
179
+ const next = pendingDelta;
180
+ pendingDelta = null;
181
+ await performToggle(next);
182
+ }
183
+ } finally {
184
+ isToggling = false;
185
+ }
115
186
  }
116
187
  function onWheelToggle(ev) {
117
- if (!props.toggleOnWheel) {
118
- return;
119
- }
120
- const length = carousels.value.length;
121
- if (length <= 1) {
122
- return;
123
- }
124
- const delta = ev.deltaY > 0 ? 1 : -1;
125
- if (!props.loop) {
126
- const isAtFirstAndGoPrev = isAtFirst.value && delta < 0;
127
- const isAtLastAndGoNext = isAtLast.value && delta > 0;
128
- if (isAtFirstAndGoPrev || isAtLastAndGoNext) {
129
- return;
130
- }
131
- }
132
- if (ev.cancelable) {
133
- ev.preventDefault();
134
- }
135
- onToggleClick(delta);
188
+ if (!props.toggleOnWheel) {
189
+ return;
190
+ }
191
+ const length = slideCount.value;
192
+ if (length <= 1) {
193
+ return;
194
+ }
195
+ const delta = ev.deltaY > 0 ? 1 : -1;
196
+ if (!props.loop) {
197
+ const isAtFirstAndGoPrev = isAtFirst.value && delta < 0;
198
+ const isAtLastAndGoNext = isAtLast.value && delta > 0;
199
+ if (isAtFirstAndGoPrev || isAtLastAndGoNext) {
200
+ return;
201
+ }
202
+ }
203
+ if (ev.cancelable) {
204
+ ev.preventDefault();
205
+ }
206
+ onToggleClick(delta);
136
207
  }
137
208
  async function resetSliderPosition(resetIndex) {
138
- const el = sliderRef.value;
139
- if (!el) {
140
- return;
141
- }
142
- el.style.transition = "none";
143
- virtualIndex.value = resetIndex;
144
- await nextTick();
145
- void el.offsetHeight;
146
- el.style.transition = "";
209
+ const el = sliderRef.value;
210
+ if (!el) {
211
+ return;
212
+ }
213
+ el.style.transition = "none";
214
+ virtualIndex.value = resetIndex;
215
+ await nextTick();
216
+ void el.offsetHeight;
217
+ el.style.transition = "";
147
218
  }
148
219
  function clearAutoPlayTimer() {
149
- if (autoPlayTimerId != null) {
150
- clearTimeout(autoPlayTimerId);
151
- autoPlayTimerId = null;
152
- }
220
+ if (autoPlayTimerId != null) {
221
+ clearTimeout(autoPlayTimerId);
222
+ autoPlayTimerId = null;
223
+ }
153
224
  }
154
225
  function restartAutoPlay() {
155
- clearAutoPlayTimer();
156
- if (!props.autoplay || isPointerEntering) {
157
- return;
158
- }
159
- autoPlayTimerId = setTimeout(() => {
160
- onToggleClick(1);
161
- }, props.interval);
226
+ clearAutoPlayTimer();
227
+ if (!props.autoplay || isPointerEntering) {
228
+ return;
229
+ }
230
+ autoPlayTimerId = setTimeout(() => {
231
+ onToggleClick(1);
232
+ }, props.interval);
162
233
  }
163
234
  function onPointerEnter() {
164
- if (props.pauseOnHover) {
165
- isPointerEntering = true;
166
- clearAutoPlayTimer();
167
- }
235
+ if (props.pauseOnHover) {
236
+ isPointerEntering = true;
237
+ clearAutoPlayTimer();
238
+ }
168
239
  }
169
240
  function onPointerLeave() {
170
- isPointerEntering = false;
171
- restartAutoPlay();
241
+ isPointerEntering = false;
242
+ restartAutoPlay();
172
243
  }
173
244
  function onIndicatorClick(ev) {
174
- const targetEl = ev.target.closest("[data-index]");
175
- const targetIndex = Number(targetEl?.dataset.index);
176
- if (Number.isNaN(targetIndex)) {
177
- return;
178
- }
179
- const deltaIndex = targetIndex - displayIndex.value;
180
- if (deltaIndex !== 0) {
181
- clearAutoPlayTimer();
182
- onToggleClick(deltaIndex);
183
- }
184
- }
185
- function updateItemIndex() {
186
- carousels.value.forEach((carousel, i) => {
187
- carousel.updateItemIndex(i);
188
- });
245
+ const targetEl = ev.target.closest("[data-index]");
246
+ const targetIndex = Number(targetEl?.dataset.index);
247
+ if (Number.isNaN(targetIndex)) {
248
+ return;
249
+ }
250
+ const deltaIndex = targetIndex - displayIndex.value;
251
+ if (deltaIndex !== 0) {
252
+ clearAutoPlayTimer();
253
+ onToggleClick(deltaIndex);
254
+ }
189
255
  }
190
- function registerCarousel(state) {
191
- carousels.value.push(state);
192
- updateItemIndex();
193
- }
194
- function unregisterCarousel(id) {
195
- carousels.value = carousels.value.filter(({ uid }) => uid !== id);
196
- updateItemIndex();
197
- }
198
- provideCarouselContext({
199
- props,
200
- carousels,
201
- virtualIndex,
202
- registerCarousel,
203
- unregisterCarousel
204
- });
205
256
  onMounted(async () => {
206
- await nextTick();
207
- restartAutoPlay();
257
+ await nextTick();
258
+ restartAutoPlay();
208
259
  });
209
260
  onBeforeUnmount(() => {
210
- clearAutoPlayTimer();
211
- carousels.value = [];
261
+ clearAutoPlayTimer();
212
262
  });
213
263
  </script>
214
264
 
215
265
  <template>
216
266
  <div
267
+ data-carousel
217
268
  v-bind="$attrs"
218
269
  :data-orientation="direction"
219
270
  :data-indicator-type="indicatorType"
220
271
  :data-indicator-position="indicatorPosition"
272
+ :data-loop-placement="loopPlacement"
221
273
  class="pxd-carousel group relative w-full touch-none overflow-hidden"
222
- :style="{ height: getCssUnitValue(height) }"
274
+ :style="rootStyle"
223
275
  @pointerenter="onPointerEnter"
224
276
  @pointerleave="onPointerLeave"
225
277
  @wheel="onWheelToggle"
@@ -230,7 +282,14 @@ onBeforeUnmount(() => {
230
282
  class="pxd-carousel--slider translate-z-0 size-full active:transition-none motion-safe:transition-transform"
231
283
  :style="computedStyle"
232
284
  >
233
- <slot />
285
+ <template v-for="(option, index) in options" :key="option.value || index">
286
+ <div
287
+ class="pxd-carousel-item size-full shrink-0 content-visibility-auto intrinsic-size-auto"
288
+ >
289
+ <slot v-if="slots.item" name="item" :item="option" :index="index" />
290
+ <template v-else>{{ option.label }}</template>
291
+ </div>
292
+ </template>
234
293
  </div>
235
294
  </div>
236
295
 
@@ -239,9 +298,9 @@ onBeforeUnmount(() => {
239
298
  class="pxd-carousel--indicator gap-2 absolute z-1 flex w-max items-center"
240
299
  @click="onIndicatorClick"
241
300
  >
242
- <slot name="indicator" :current="displayIndex" :total="carousels.length">
301
+ <slot name="indicator" :current="displayIndex" :total="slideCount">
243
302
  <button
244
- v-for="(_, i) in carousels.length"
303
+ v-for="(_, i) in slideCount"
245
304
  :key="i"
246
305
  :data-index="i"
247
306
  class="pxd-carousel--indicator-item relative h-(--carousel-dot-height) w-(--carousel-dot-width) cursor-pointer appearance-none rounded-full bg-gray-alpha-200 font-inherit self-focus-ring outline-none hover:bg-gray-alpha-400 motion-safe:transition-colors"
@@ -274,116 +333,6 @@ onBeforeUnmount(() => {
274
333
  </div>
275
334
  </template>
276
335
 
277
- <style lang="postcss">
278
- .pxd-carousel {
279
- &[data-indicator-type='dot'] {
280
- --carousel-dot-width: 0.5rem;
281
- --carousel-dot-height: 0.5rem;
282
- }
283
-
284
- &[data-indicator-type='line'] {
285
- &[data-indicator-position='top'],
286
- &[data-indicator-position='bottom'],
287
- &[data-indicator-position='center'] {
288
- --carousel-dot-width: 1rem;
289
- --carousel-dot-height: 0.25rem;
290
- }
291
-
292
- &[data-indicator-position='left'],
293
- &[data-indicator-position='right'] {
294
- --carousel-dot-width: 0.25rem;
295
- --carousel-dot-height: 1rem;
296
- }
297
- }
298
-
299
- &[data-indicator-position='top'] {
300
- .pxd-carousel--indicator {
301
- left: 0.75rem;
302
- top: 0.5rem;
303
- }
304
-
305
- .pxd-carousel--toggler {
306
- right: 0.5rem;
307
- top: 0.5rem;
308
- }
309
- }
310
-
311
- &[data-indicator-position='bottom'] {
312
- .pxd-carousel--indicator {
313
- left: 0.75rem;
314
- bottom: 0.5rem;
315
- }
316
-
317
- .pxd-carousel--toggler {
318
- right: 0.5rem;
319
- bottom: 0.5rem;
320
- }
321
- }
322
-
323
- &[data-indicator-position='left'] {
324
- .pxd-carousel--indicator {
325
- left: 0.5rem;
326
- top: 0.75rem;
327
- }
328
-
329
- .pxd-carousel--toggler {
330
- left: 0.5rem;
331
- bottom: 0.5rem;
332
- }
333
- }
334
-
335
- &[data-indicator-position='right'] {
336
- .pxd-carousel--indicator {
337
- right: 0.5rem;
338
- top: 0.75rem;
339
- }
340
-
341
- .pxd-carousel--toggler {
342
- right: 0.5rem;
343
- bottom: 0.5rem;
344
- }
345
- }
346
-
347
- &[data-indicator-position='center'] {
348
- .pxd-carousel--indicator {
349
- left: 50%;
350
- bottom: 0.5rem;
351
- transform: translateX(-50%);
352
- }
353
-
354
- .pxd-carousel--toggler {
355
- left: 0;
356
- top: 50%;
357
- width: 100%;
358
- padding-inline: 1rem;
359
- justify-content: space-between;
360
- transform: translateY(-50%);
361
- }
362
- }
363
-
364
- &[data-indicator-position='left'],
365
- &[data-indicator-position='right'] {
366
- .pxd-carousel--indicator,
367
- .pxd-carousel--toggler {
368
- flex-direction: column;
369
- }
370
- }
371
-
372
- &[data-orientation='horizontal'] .pxd-carousel--slider {
373
- display: flex;
374
- }
375
-
376
- &[data-orientation='vertical'] {
377
- .pxd-carousel--prev-btn,
378
- .pxd-carousel--next-btn {
379
- transform: rotate(90deg);
380
- }
381
- }
382
- }
383
-
384
- .pxd-carousel--indicator-item::before {
385
- content: '';
386
- position: absolute;
387
- inset: -0.25rem;
388
- }
336
+ <style>
337
+ .pxd-carousel[data-indicator-type=dot]{--carousel-dot-width:0.5rem;--carousel-dot-height:0.5rem}.pxd-carousel[data-indicator-type=line][data-indicator-position=bottom],.pxd-carousel[data-indicator-type=line][data-indicator-position=center],.pxd-carousel[data-indicator-type=line][data-indicator-position=top]{--carousel-dot-width:1rem;--carousel-dot-height:0.25rem}.pxd-carousel[data-indicator-type=line][data-indicator-position=left],.pxd-carousel[data-indicator-type=line][data-indicator-position=right]{--carousel-dot-width:0.25rem;--carousel-dot-height:1rem}.pxd-carousel[data-indicator-position=top] .pxd-carousel--indicator{left:.75rem;top:.5rem}.pxd-carousel[data-indicator-position=top] .pxd-carousel--toggler{right:.5rem;top:.5rem}.pxd-carousel[data-indicator-position=bottom] .pxd-carousel--indicator{bottom:.5rem;left:.75rem}.pxd-carousel[data-indicator-position=bottom] .pxd-carousel--toggler{bottom:.5rem;right:.5rem}.pxd-carousel[data-indicator-position=left] .pxd-carousel--indicator{left:.5rem;top:.75rem}.pxd-carousel[data-indicator-position=left] .pxd-carousel--toggler{bottom:.5rem;left:.5rem}.pxd-carousel[data-indicator-position=right] .pxd-carousel--indicator{right:.5rem;top:.75rem}.pxd-carousel[data-indicator-position=right] .pxd-carousel--toggler{bottom:.5rem;right:.5rem}.pxd-carousel[data-indicator-position=center] .pxd-carousel--indicator{bottom:.5rem;left:50%;transform:translateX(-50%)}.pxd-carousel[data-indicator-position=center] .pxd-carousel--toggler{justify-content:space-between;left:0;padding-inline:1rem;top:50%;transform:translateY(-50%);width:100%}.pxd-carousel[data-indicator-position=left] .pxd-carousel--indicator,.pxd-carousel[data-indicator-position=left] .pxd-carousel--toggler,.pxd-carousel[data-indicator-position=right] .pxd-carousel--indicator,.pxd-carousel[data-indicator-position=right] .pxd-carousel--toggler{flex-direction:column}.pxd-carousel[data-orientation=horizontal] .pxd-carousel--slider{display:flex}.pxd-carousel[data-loop-placement=end] .pxd-carousel-item:first-child{transform:translateX(calc(var(--carousel-item-count)*100%))}.pxd-carousel[data-loop-placement=start] .pxd-carousel-item:last-child{transform:translateX(calc(var(--carousel-item-count)*-100%))}.pxd-carousel[data-orientation=vertical][data-loop-placement=end] .pxd-carousel-item:first-child{transform:translateY(calc(var(--carousel-item-count)*100%))}.pxd-carousel[data-orientation=vertical][data-loop-placement=start] .pxd-carousel-item:last-child{transform:translateY(calc(var(--carousel-item-count)*-100%))}.pxd-carousel[data-orientation=vertical] .pxd-carousel--next-btn,.pxd-carousel[data-orientation=vertical] .pxd-carousel--prev-btn{transform:rotate(90deg)}.pxd-carousel--indicator-item:before{content:"";inset:-.25rem;position:absolute}
389
338
  </style>
@@ -1,4 +1,17 @@
1
- import type { BasePosition, ComponentDirection } from '../../types/shared'
1
+ import type {
2
+ BasePosition,
3
+ ComponentDirection,
4
+ ComponentLabel,
5
+ ComponentValue,
6
+ } from '../../types/shared/props'
7
+
8
+ export interface CarouselOption {
9
+ /** Rendered as the slide content when no `item` slot is provided. */
10
+ label?: ComponentLabel
11
+ /** Used as the vnode key; falls back to the slide index. */
12
+ value?: ComponentValue
13
+ [key: string]: any
14
+ }
2
15
 
3
16
  export interface CarouselProps {
4
17
  index?: number
@@ -13,6 +26,7 @@ export interface CarouselProps {
13
26
  indicatorPosition?: BasePosition | 'center'
14
27
  pauseOnHover?: boolean
15
28
  toggleOnWheel?: boolean
29
+ options?: CarouselOption[]
16
30
  }
17
31
 
18
32
  export interface CarouselEmits {
@@ -4,13 +4,14 @@ type __VLS_Slots = {} & {
4
4
  default?: (props: typeof __VLS_11) => any;
5
5
  };
6
6
  declare const __VLS_base: import("vue").DefineComponent<CheckboxProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
- change: (args_0: NonNullable<import("../../types/shared").ComponentValue | import("../../types/shared").ComponentValue[] | undefined>) => any;
8
- "update:modelValue": (args_0: NonNullable<import("../../types/shared").ComponentValue | import("../../types/shared").ComponentValue[] | undefined>) => any;
7
+ change: (args_0: NonNullable<import("./types").CheckboxModelValue>) => any;
8
+ "update:modelValue": (args_0: NonNullable<import("./types").CheckboxModelValue>) => any;
9
9
  }, string, import("vue").PublicProps, Readonly<CheckboxProps> & Readonly<{
10
- onChange?: ((args_0: NonNullable<import("../../types/shared").ComponentValue | import("../../types/shared").ComponentValue[] | undefined>) => any) | undefined;
11
- "onUpdate:modelValue"?: ((args_0: NonNullable<import("../../types/shared").ComponentValue | import("../../types/shared").ComponentValue[] | undefined>) => any) | undefined;
10
+ onChange?: ((args_0: NonNullable<import("./types").CheckboxModelValue>) => any) | undefined;
11
+ "onUpdate:modelValue"?: ((args_0: NonNullable<import("./types").CheckboxModelValue>) => any) | undefined;
12
12
  }>, {
13
- value: import("../../types/shared").ComponentValue;
13
+ value: import("./types").CheckboxModelValue;
14
+ shape: import("../../types/shared/props.js").ComponentShape;
14
15
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
16
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
16
17
  declare const _default: typeof __VLS_export;