pxd 0.1.2 → 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 (322) hide show
  1. package/dist/components/_internal/calendar-day.vue +19 -19
  2. package/dist/components/_internal/dismiss-container.d.vue.ts +1 -1
  3. package/dist/components/_internal/dismiss-container.vue +19 -19
  4. package/dist/components/_internal/loading-mask.vue +9 -1
  5. package/dist/components/_internal/mention-editor.d.vue.ts +1 -1
  6. package/dist/components/_internal/mention-editor.vue +1 -1
  7. package/dist/components/_internal/popover-arrow.d.vue.ts +1 -1
  8. package/dist/components/_internal/popover-arrow.vue +1 -1
  9. package/dist/components/{steps → _internal}/step-item.d.vue.ts +1 -1
  10. package/dist/components/{steps → _internal}/step-item.vue +1 -1
  11. package/dist/components/_internal/tree-node.d.vue.ts +20 -20
  12. package/dist/components/_internal/tree-node.vue +53 -45
  13. package/dist/components/active-graph/index.d.vue.ts +2 -2
  14. package/dist/components/approval-card/index.d.vue.ts +1 -1
  15. package/dist/components/approval-card/index.vue +34 -17
  16. package/dist/components/approval-card/types.d.ts +1 -1
  17. package/dist/components/avatar/index.d.vue.ts +2 -2
  18. package/dist/components/avatar/index.vue +1 -1
  19. package/dist/components/backtop/index.d.vue.ts +3 -3
  20. package/dist/components/backtop/index.vue +17 -17
  21. package/dist/components/backtop/types.d.ts +1 -1
  22. package/dist/components/badge/index.d.vue.ts +3 -3
  23. package/dist/components/badge/index.vue +43 -43
  24. package/dist/components/badge/types.d.ts +1 -1
  25. package/dist/components/book/types.d.ts +1 -1
  26. package/dist/components/border-beam/index.vue +1 -1
  27. package/dist/components/border-beam/types.d.ts +1 -1
  28. package/dist/components/bubble/index.vue +1 -1
  29. package/dist/components/bubble-group/index.d.vue.ts +4 -4
  30. package/dist/components/button/index.d.vue.ts +5 -5
  31. package/dist/components/button/index.vue +13 -13
  32. package/dist/components/button/types.d.ts +1 -1
  33. package/dist/components/button-group/types.d.ts +1 -1
  34. package/dist/components/calendar/index.d.vue.ts +2 -2
  35. package/dist/components/calendar/index.vue +5 -5
  36. package/dist/components/calendar/types.d.ts +1 -1
  37. package/dist/components/card/types.d.ts +1 -1
  38. package/dist/components/carousel/index.d.vue.ts +7 -7
  39. package/dist/components/carousel/index.vue +1 -1
  40. package/dist/components/carousel/types.d.ts +1 -1
  41. package/dist/components/checkbox/index.vue +1 -1
  42. package/dist/components/checkbox/types.d.ts +1 -1
  43. package/dist/components/checkbox-group/index.d.vue.ts +2 -2
  44. package/dist/components/checkbox-group/types.d.ts +1 -1
  45. package/dist/components/chip/index.d.vue.ts +1 -1
  46. package/dist/components/chip/types.d.ts +1 -1
  47. package/dist/components/choicebox/index.d.vue.ts +3 -3
  48. package/dist/components/choicebox/types.d.ts +1 -1
  49. package/dist/components/choicebox-item/index.vue +8 -8
  50. package/dist/components/choicebox-item/types.d.ts +1 -1
  51. package/dist/components/collapse/index.vue +2 -2
  52. package/dist/components/collapse-group/index.vue +1 -1
  53. package/dist/components/collapse-group/types.d.ts +1 -1
  54. package/dist/components/command-menu/index.d.vue.ts +5 -5
  55. package/dist/components/command-menu/index.vue +10 -3
  56. package/dist/components/config-provider/index.d.vue.ts +40 -5
  57. package/dist/components/config-provider/types.d.ts +2 -1
  58. package/dist/components/confirm-popover/index.d.vue.ts +39 -0
  59. package/dist/components/confirm-popover/index.vue +177 -0
  60. package/dist/components/confirm-popover/types.d.ts +23 -0
  61. package/dist/components/copy-button/index.d.vue.ts +2 -6
  62. package/dist/components/copy-button/index.vue +4 -6
  63. package/dist/components/dash-line/index.d.vue.ts +1 -1
  64. package/dist/components/dash-line/index.vue +8 -8
  65. package/dist/components/dash-line/types.d.ts +1 -1
  66. package/dist/components/date-picker/index.d.vue.ts +1 -1
  67. package/dist/components/date-picker/index.vue +3 -3
  68. package/dist/components/date-picker/types.d.ts +1 -1
  69. package/dist/components/drawer/index.d.vue.ts +7 -7
  70. package/dist/components/drawer/index.vue +30 -15
  71. package/dist/components/drawer/types.d.ts +2 -2
  72. package/dist/components/effort-slider/index.vue +12 -18
  73. package/dist/components/effort-slider/types.d.ts +1 -1
  74. package/dist/components/ellipsis-text/index.d.vue.ts +2 -2
  75. package/dist/components/ellipsis-text/index.vue +75 -75
  76. package/dist/components/error/types.d.ts +1 -1
  77. package/dist/components/fader/index.vue +2 -2
  78. package/dist/components/fader/types.d.ts +1 -1
  79. package/dist/components/gauge/index.vue +2 -2
  80. package/dist/components/gauge/types.d.ts +1 -1
  81. package/dist/components/grid/types.d.ts +1 -1
  82. package/dist/components/grid-item/types.d.ts +1 -1
  83. package/dist/components/hint/index.d.vue.ts +32 -0
  84. package/dist/components/hint/index.vue +239 -0
  85. package/dist/components/hint/types.d.ts +17 -0
  86. package/dist/components/hold-button/index.d.vue.ts +4 -4
  87. package/dist/components/hold-button/index.vue +10 -10
  88. package/dist/components/index.d.ts +4 -0
  89. package/dist/components/index.js +4 -0
  90. package/dist/components/input/index.d.vue.ts +1 -1
  91. package/dist/components/input/index.vue +14 -7
  92. package/dist/components/input/types.d.ts +1 -1
  93. package/dist/components/intersection-observer/index.vue +3 -3
  94. package/dist/components/kbd/index.vue +2 -2
  95. package/dist/components/kbd/types.d.ts +1 -1
  96. package/dist/components/link-button/index.d.vue.ts +5 -5
  97. package/dist/components/list/index.d.vue.ts +4 -4
  98. package/dist/components/list/index.vue +126 -47
  99. package/dist/components/list/types.d.ts +1 -1
  100. package/dist/components/list-group/types.d.ts +1 -1
  101. package/dist/components/list-item/index.d.vue.ts +2 -2
  102. package/dist/components/list-item/index.vue +26 -8
  103. package/dist/components/loading-bar/index.vue +5 -5
  104. package/dist/components/marching-ants/index.d.vue.ts +2 -2
  105. package/dist/components/marching-ants/index.vue +56 -56
  106. package/dist/components/marching-ants/types.d.ts +1 -1
  107. package/dist/components/marquee/index.d.vue.ts +6 -6
  108. package/dist/components/marquee/index.vue +16 -16
  109. package/dist/components/marquee/types.d.ts +1 -1
  110. package/dist/components/material/index.d.vue.ts +3 -3
  111. package/dist/components/mention/index.d.vue.ts +5 -5
  112. package/dist/components/mention/index.vue +68 -68
  113. package/dist/components/menu/index.d.vue.ts +4 -4
  114. package/dist/components/menu/index.vue +10 -10
  115. package/dist/components/menu/types.d.ts +1 -1
  116. package/dist/components/message/index.d.vue.ts +1 -1
  117. package/dist/components/message/index.vue +19 -25
  118. package/dist/components/message/types.d.ts +1 -1
  119. package/dist/components/message-item/index.vue +2 -6
  120. package/dist/components/modal/index.d.vue.ts +7 -7
  121. package/dist/components/modal/index.vue +26 -11
  122. package/dist/components/modal/types.d.ts +2 -2
  123. package/dist/components/noise-background/types.d.ts +1 -1
  124. package/dist/components/note/index.vue +6 -2
  125. package/dist/components/note/types.d.ts +2 -1
  126. package/dist/components/number-input/index.d.vue.ts +11 -6
  127. package/dist/components/number-input/index.vue +57 -16
  128. package/dist/components/number-input/types.d.ts +2 -1
  129. package/dist/components/overlay/index.d.vue.ts +2 -3
  130. package/dist/components/overlay/index.vue +10 -62
  131. package/dist/components/overlay/types.d.ts +0 -2
  132. package/dist/components/page-number/index.vue +30 -29
  133. package/dist/components/page-number/types.d.ts +1 -1
  134. package/dist/components/pin-input/index.d.vue.ts +1 -1
  135. package/dist/components/pin-input/index.vue +6 -6
  136. package/dist/components/pin-input/types.d.ts +1 -1
  137. package/dist/components/popover/index.vue +49 -21
  138. package/dist/components/popover/types.d.ts +3 -1
  139. package/dist/components/progress/index.d.vue.ts +2 -2
  140. package/dist/components/progress/index.vue +12 -12
  141. package/dist/components/progress/types.d.ts +1 -1
  142. package/dist/components/project-banner/types.d.ts +1 -1
  143. package/dist/components/questionnaire/index.vue +14 -14
  144. package/dist/components/radio/index.vue +1 -1
  145. package/dist/components/radio/types.d.ts +1 -1
  146. package/dist/components/radio-group/index.d.vue.ts +2 -2
  147. package/dist/components/radio-group/types.d.ts +1 -1
  148. package/dist/components/rating/index.vue +28 -28
  149. package/dist/components/rating/types.d.ts +1 -1
  150. package/dist/components/resizable/index.d.vue.ts +1 -0
  151. package/dist/components/resizable/index.vue +130 -195
  152. package/dist/components/resizable/types.d.ts +2 -10
  153. package/dist/components/reveal/index.d.vue.ts +3 -3
  154. package/dist/components/reveal/index.vue +4 -4
  155. package/dist/components/reveal/types.d.ts +1 -1
  156. package/dist/components/rolling-number/index.d.vue.ts +2 -2
  157. package/dist/components/rolling-number/index.vue +15 -15
  158. package/dist/components/scalable-text/index.vue +9 -9
  159. package/dist/components/scroll-text/index.d.vue.ts +3 -3
  160. package/dist/components/scroll-text/index.vue +6 -6
  161. package/dist/components/scroll-text/types.d.ts +1 -1
  162. package/dist/components/scrollable/types.d.ts +2 -1
  163. package/dist/components/search-input/index.d.vue.ts +5 -5
  164. package/dist/components/search-input/index.vue +2 -1
  165. package/dist/components/select/index.d.vue.ts +12 -9
  166. package/dist/components/select/index.vue +165 -42
  167. package/dist/components/select/types.d.ts +3 -1
  168. package/dist/components/separator/index.d.vue.ts +1 -1
  169. package/dist/components/separator/types.d.ts +1 -1
  170. package/dist/components/skeleton/index.d.vue.ts +1 -1
  171. package/dist/components/skeleton/index.vue +11 -11
  172. package/dist/components/skeleton/types.d.ts +1 -1
  173. package/dist/components/slider/index.d.vue.ts +1 -1
  174. package/dist/components/slider/index.vue +1 -1
  175. package/dist/components/slider/types.d.ts +1 -1
  176. package/dist/components/snippet/index.d.vue.ts +3 -3
  177. package/dist/components/snippet/index.vue +7 -5
  178. package/dist/components/snippet/types.d.ts +1 -1
  179. package/dist/components/spinner/index.vue +5 -1
  180. package/dist/components/spinner-dots/index.d.vue.ts +1 -1
  181. package/dist/components/split-button/index.d.vue.ts +5 -5
  182. package/dist/components/split-button/types.d.ts +1 -1
  183. package/dist/components/stack/index.d.vue.ts +3 -3
  184. package/dist/components/stack/index.vue +28 -29
  185. package/dist/components/stack/types.d.ts +1 -1
  186. package/dist/components/status-dot/types.d.ts +1 -1
  187. package/dist/components/steps/index.d.vue.ts +2 -2
  188. package/dist/components/steps/index.vue +6 -6
  189. package/dist/components/steps/types.d.ts +1 -1
  190. package/dist/components/stick-to-bottom/types.d.ts +1 -1
  191. package/dist/components/swipe-cell/index.d.vue.ts +6 -6
  192. package/dist/components/swipe-cell/index.vue +64 -64
  193. package/dist/components/swipe-cell/types.d.ts +2 -1
  194. package/dist/components/switch/index.vue +1 -1
  195. package/dist/components/switch/types.d.ts +1 -1
  196. package/dist/components/switch-item/index.vue +1 -1
  197. package/dist/components/switch-item/types.d.ts +1 -1
  198. package/dist/components/tabs/index.d.vue.ts +1 -1
  199. package/dist/components/tabs/index.vue +48 -51
  200. package/dist/components/tabs/types.d.ts +1 -1
  201. package/dist/components/teleport/index.vue +2 -2
  202. package/dist/components/text/index.d.vue.ts +3 -3
  203. package/dist/components/text/index.vue +11 -11
  204. package/dist/components/text/types.d.ts +1 -1
  205. package/dist/components/textarea/index.vue +1 -1
  206. package/dist/components/textarea/types.d.ts +1 -1
  207. package/dist/components/theme-switcher/index.d.vue.ts +3 -2
  208. package/dist/components/theme-switcher/index.vue +15 -7
  209. package/dist/components/theme-switcher/types.d.ts +2 -2
  210. package/dist/components/time-ago/index.d.vue.ts +6 -0
  211. package/dist/components/time-ago/index.vue +143 -0
  212. package/dist/components/time-ago/types.d.ts +4 -0
  213. package/dist/components/time-picker/index.d.vue.ts +1 -1
  214. package/dist/components/time-picker/index.vue +7 -7
  215. package/dist/components/time-picker/types.d.ts +1 -1
  216. package/dist/components/toc/index.d.vue.ts +2 -2
  217. package/dist/components/toc/index.vue +1 -1
  218. package/dist/components/todo-list/index.d.vue.ts +4 -4
  219. package/dist/components/todo-list/index.vue +15 -15
  220. package/dist/components/todo-list/types.d.ts +1 -1
  221. package/dist/components/toggle/index.vue +3 -3
  222. package/dist/components/toggle/types.d.ts +1 -1
  223. package/dist/components/toggle-button/index.vue +14 -11
  224. package/dist/components/toggle-button/types.d.ts +2 -2
  225. package/dist/components/toggle-button-group/index.d.vue.ts +3 -3
  226. package/dist/components/toggle-button-group/index.vue +2 -2
  227. package/dist/components/toggle-button-group/types.d.ts +2 -2
  228. package/dist/components/tool-call/index.vue +5 -5
  229. package/dist/components/tooltip/index.d.vue.ts +4 -5
  230. package/dist/components/tooltip/index.vue +4 -49
  231. package/dist/components/tooltip/types.d.ts +3 -7
  232. package/dist/components/tour/index.d.vue.ts +33 -0
  233. package/dist/components/tour/index.vue +302 -0
  234. package/dist/components/tour/types.d.ts +29 -0
  235. package/dist/components/tree/index.d.vue.ts +24 -28
  236. package/dist/components/tree/index.vue +290 -223
  237. package/dist/components/tree/types.d.ts +38 -13
  238. package/dist/components/virtual-list/index.d.vue.ts +4 -4
  239. package/dist/composables/_internal/use-list-keyboard-controller.js +9 -10
  240. package/dist/composables/_internal/use-list-rows.d.ts +4 -0
  241. package/dist/composables/_internal/use-list-rows.js +12 -4
  242. package/dist/composables/_internal/use-list-selection.d.ts +1 -1
  243. package/dist/composables/_internal/use-lock-scroll.d.ts +8 -1
  244. package/dist/composables/_internal/use-lock-scroll.js +57 -36
  245. package/dist/composables/_internal/use-mention-editor.js +1 -1
  246. package/dist/composables/_internal/use-message-group.d.ts +22 -0
  247. package/dist/composables/_internal/use-message-group.js +143 -0
  248. package/dist/composables/_internal/use-overlay-dialog.js +1 -3
  249. package/dist/composables/_internal/use-overlay-manager.d.ts +4 -1
  250. package/dist/composables/_internal/use-overlay-manager.js +67 -8
  251. package/dist/composables/_internal/use-swipe-gesture.d.ts +1 -1
  252. package/dist/composables/_internal/use-tour-target.d.ts +29 -0
  253. package/dist/composables/_internal/use-tour-target.js +201 -0
  254. package/dist/composables/_internal/use-tree.d.ts +103 -0
  255. package/dist/composables/_internal/use-tree.js +676 -0
  256. package/dist/composables/_internal/use-word-limit.d.ts +1 -1
  257. package/dist/composables/index.d.ts +1 -0
  258. package/dist/composables/index.js +1 -0
  259. package/dist/composables/use-color-scheme.d.ts +1 -1
  260. package/dist/composables/use-color-scheme.js +7 -6
  261. package/dist/composables/use-delay-destroy.d.ts +1 -1
  262. package/dist/composables/use-document-hidden.d.ts +1 -1
  263. package/dist/composables/use-intersection-observer.d.ts +1 -1
  264. package/dist/composables/use-intersection-observer.js +1 -1
  265. package/dist/composables/{_internal/use-motion-reduce.js → use-motion-reduce.js} +2 -2
  266. package/dist/composables/use-mutation-observer.d.ts +1 -1
  267. package/dist/composables/use-mutation-observer.js +1 -1
  268. package/dist/composables/use-resize-observer.d.ts +1 -1
  269. package/dist/composables/use-resize-observer.js +1 -1
  270. package/dist/composables/use-view-transition.js +1 -0
  271. package/dist/composables/use-virtual-list.d.ts +1 -1
  272. package/dist/constants/tooltip-variants.d.ts +28 -0
  273. package/dist/constants/tooltip-variants.js +27 -0
  274. package/dist/contexts/avatar.js +1 -1
  275. package/dist/contexts/breadcrumb.js +1 -1
  276. package/dist/contexts/button.js +1 -1
  277. package/dist/contexts/checkbox.js +1 -1
  278. package/dist/contexts/choicebox.js +1 -1
  279. package/dist/contexts/collapse.js +1 -1
  280. package/dist/contexts/config-provider.js +1 -1
  281. package/dist/contexts/list.js +1 -1
  282. package/dist/contexts/radio.js +1 -1
  283. package/dist/contexts/switch.js +1 -1
  284. package/dist/contexts/toggle-button.js +1 -1
  285. package/dist/index.d.ts +2 -1
  286. package/dist/locales/en-us.d.ts +35 -0
  287. package/dist/locales/en-us.js +20 -0
  288. package/dist/locales/zh-cn.d.ts +35 -0
  289. package/dist/locales/zh-cn.js +20 -0
  290. package/dist/styles/styles.css +1 -1
  291. package/dist/styles/tw.css +43 -30
  292. package/dist/utils/{context.js → _internal/context.js} +1 -1
  293. package/dist/utils/{observer.d.ts → _internal/observer.d.ts} +1 -1
  294. package/dist/utils/{observer.js → _internal/observer.js} +4 -4
  295. package/dist/{components/swipe-cell/instances.d.ts → utils/_internal/swipe-cell-instances.d.ts} +1 -1
  296. package/dist/utils/event.d.ts +2 -1
  297. package/dist/utils/event.js +3 -0
  298. package/package.json +26 -50
  299. package/volar.d.ts +4 -0
  300. package/dist/components/message/composables/use-group-expand.d.ts +0 -13
  301. package/dist/components/message/composables/use-group-expand.js +0 -50
  302. package/dist/components/message/composables/use-message-timer.d.ts +0 -9
  303. package/dist/components/message/composables/use-message-timer.js +0 -62
  304. package/dist/components/message/composables/use-promise-message.d.ts +0 -4
  305. package/dist/components/message/composables/use-promise-message.js +0 -49
  306. package/dist/components/resizable/utils.d.ts +0 -4
  307. package/dist/components/resizable/utils.js +0 -10
  308. package/dist/composables/_internal/use-tree-drag.d.ts +0 -23
  309. package/dist/composables/_internal/use-tree-drag.js +0 -196
  310. package/dist/composables/_internal/use-tree-move.d.ts +0 -20
  311. package/dist/composables/_internal/use-tree-move.js +0 -96
  312. package/dist/composables/_internal/use-tree-rows.d.ts +0 -46
  313. package/dist/composables/_internal/use-tree-rows.js +0 -101
  314. package/dist/composables/_internal/use-tree-selection.d.ts +0 -22
  315. package/dist/composables/_internal/use-tree-selection.js +0 -87
  316. package/dist/styles/source.css +0 -675
  317. package/dist/types/shared/index.d.ts +0 -2
  318. /package/dist/composables/{_internal/use-motion-reduce.d.ts → use-motion-reduce.d.ts} +0 -0
  319. /package/dist/utils/{context.d.ts → _internal/context.d.ts} +0 -0
  320. /package/dist/utils/{mention-html.d.ts → _internal/mention-html.d.ts} +0 -0
  321. /package/dist/utils/{mention-html.js → _internal/mention-html.js} +0 -0
  322. /package/dist/{components/swipe-cell/instances.js → utils/_internal/swipe-cell-instances.js} +0 -0
@@ -1,5 +1,6 @@
1
1
  <script setup>
2
2
  import { computed } from "vue";
3
+ import { TOOLTIP_CONTENT_CLASS, TOOLTIP_VARIANTS } from "../../constants/tooltip-variants.js";
3
4
  import { getFallbackValue } from "../../utils/helper.js";
4
5
  import { isTouchDevice } from "../../utils/is.js";
5
6
  import PPopover from "../popover/index.vue";
@@ -8,16 +9,12 @@ defineOptions({
8
9
  inheritAttrs: false
9
10
  });
10
11
  const props = defineProps({
11
- offset: {
12
- type: Number,
13
- required: false
14
- },
15
12
  content: {
16
13
  type: String,
17
14
  required: false
18
15
  },
19
16
  variant: {
20
- type: String,
17
+ type: null,
21
18
  required: false,
22
19
  default: "default"
23
20
  },
@@ -40,15 +37,6 @@ const props = defineProps({
40
37
  required: false,
41
38
  default: 300
42
39
  },
43
- triggerSelector: {
44
- type: String,
45
- required: false
46
- },
47
- showArrow: {
48
- type: Boolean,
49
- required: false,
50
- default: true
51
- },
52
40
  desktopOnly: {
53
41
  type: Boolean,
54
42
  required: false
@@ -60,45 +48,15 @@ const props = defineProps({
60
48
  Object
61
49
  ],
62
50
  required: false
63
- },
64
- contentStyle: {
65
- type: [Object, String],
66
- required: false
67
51
  }
68
52
  });
69
- const VARIANTS = {
70
- invert: {
71
- bg: "var(--color-background-100)",
72
- base: "text-foreground border variant-invert"
73
- },
74
- default: {
75
- bg: "var(--color-gray-1000)",
76
- base: "text-gray-100"
77
- },
78
- error: {
79
- bg: "var(--color-red-700)",
80
- base: "text-gray-100 dark:text-gray-1000"
81
- },
82
- warning: {
83
- bg: "var(--color-amber-700)",
84
- base: "text-gray-1000 dark:text-gray-100"
85
- },
86
- success: {
87
- bg: "var(--color-green-700)",
88
- base: "text-gray-100 dark:text-gray-1000"
89
- },
90
- violet: {
91
- bg: "var(--color-purple-700)",
92
- base: "text-gray-100 dark:text-gray-1000"
93
- }
94
- };
95
- const computedVariant = computed(() => getFallbackValue(props.variant, VARIANTS, "default"));
53
+ const computedVariant = computed(() => getFallbackValue(props.variant, TOOLTIP_VARIANTS, "default"));
96
54
  const isDisabled = computed(() => {
97
55
  return props.disabled || props.desktopOnly && isTouchDevice();
98
56
  });
99
57
  const contentClassComputed = computed(() => {
100
58
  const classes = [
101
- "px-3 py-2 rounded-md text-13 break-words whitespace-pre-line bg-(--popover-arrow-color)",
59
+ TOOLTIP_CONTENT_CLASS,
102
60
  computedVariant.value.base,
103
61
  props.contentClass
104
62
  ];
@@ -114,15 +72,12 @@ const contentClassComputed = computed(() => {
114
72
  :data-variant="variant"
115
73
  :position="position"
116
74
  :disabled="isDisabled"
117
- :show-arrow="showArrow"
118
75
  :show-delay="showDelay"
119
76
  :hide-delay="hideDelay"
120
77
  :fill-trigger-width="false"
121
- :trigger-selector="triggerSelector"
122
78
  wrapper-class="max-sm:data-[position^=top]:px-1 max-sm:data-[position^=bottom]:px-1 max-sm:data-[position^=left]:ps-1 max-sm:data-[position^=right]:pe-1"
123
79
  :arrow-color="computedVariant.bg"
124
80
  :content-class="contentClassComputed"
125
- :content-style="contentStyle"
126
81
  v-bind="$attrs"
127
82
  >
128
83
  <slot />
@@ -1,17 +1,13 @@
1
- import type { ComponentClass, ComponentPosition } from '../../types/shared'
2
- import type { CSSProperties } from 'vue'
1
+ import type { TooltipVariant } from '../../constants/tooltip-variants'
2
+ import type { ComponentClass, ComponentPosition } from '../../types/shared/props'
3
3
 
4
4
  export interface TooltipProps {
5
- offset?: number
6
5
  content?: string
7
- variant?: 'default' | 'error' | 'warning' | 'success' | 'invert' | 'violet'
6
+ variant?: TooltipVariant
8
7
  position?: ComponentPosition
9
8
  disabled?: boolean
10
9
  showDelay?: number
11
10
  hideDelay?: number
12
- triggerSelector?: string
13
- showArrow?: boolean
14
11
  desktopOnly?: boolean
15
12
  contentClass?: ComponentClass
16
- contentStyle?: CSSProperties | string
17
13
  }
@@ -0,0 +1,33 @@
1
+ import type { TourProps } from './types';
2
+ declare function goToStep(index: number): void;
3
+ declare function next(): void;
4
+ declare function prev(): void;
5
+ declare function close(): void;
6
+ declare const __VLS_export: import("vue").DefineComponent<TourProps, {
7
+ next: typeof next;
8
+ prev: typeof prev;
9
+ goTo: typeof goToStep;
10
+ close: typeof close;
11
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
12
+ change: (index: number, step: import("./types").TourStep) => any;
13
+ error: (error: unknown, index: number) => any;
14
+ "update:modelValue": (args_0: boolean) => any;
15
+ skip: () => any;
16
+ finish: () => any;
17
+ "update:current": (args_0: number) => any;
18
+ }, string, import("vue").PublicProps, Readonly<TourProps> & Readonly<{
19
+ onChange?: ((index: number, step: import("./types").TourStep) => any) | undefined;
20
+ onError?: ((error: unknown, index: number) => any) | undefined;
21
+ "onUpdate:modelValue"?: ((args_0: boolean) => any) | undefined;
22
+ onSkip?: (() => any) | undefined;
23
+ onFinish?: (() => any) | undefined;
24
+ "onUpdate:current"?: ((args_0: number) => any) | undefined;
25
+ }>, {
26
+ modelValue: boolean;
27
+ zIndex: number;
28
+ current: number;
29
+ showSkip: boolean;
30
+ showProgress: boolean;
31
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
32
+ declare const _default: typeof __VLS_export;
33
+ export default _default;
@@ -0,0 +1,302 @@
1
+ <script setup>
2
+ import { computed, onBeforeUnmount, shallowRef, watch } from "vue";
3
+ import { useMotionReduced } from "../../composables/use-motion-reduce.js";
4
+ import { useTourTarget } from "../../composables/_internal/use-tour-target.js";
5
+ import { useConfigProvider } from "../../contexts/config-provider.js";
6
+ import { cachedOff, cachedOn, isCompositionKeydown } from "../../utils/event.js";
7
+ import { getUniqueId } from "../../utils/helper.js";
8
+ import { isServer } from "../../utils/is.js";
9
+ import PButton from "../button/index.vue";
10
+ import POverlay from "../overlay/index.vue";
11
+ import PPopover from "../popover/index.vue";
12
+ defineOptions({
13
+ name: "PTour",
14
+ inheritAttrs: false,
15
+ model: {
16
+ prop: "modelValue",
17
+ event: "update:modelValue"
18
+ }
19
+ });
20
+ const props = defineProps({
21
+ modelValue: {
22
+ type: Boolean,
23
+ required: false,
24
+ default: false
25
+ },
26
+ current: {
27
+ type: Number,
28
+ required: false,
29
+ default: 0
30
+ },
31
+ steps: {
32
+ type: Array,
33
+ required: true
34
+ },
35
+ zIndex: {
36
+ type: Number,
37
+ required: false,
38
+ default: 10
39
+ },
40
+ showSkip: {
41
+ type: Boolean,
42
+ required: false,
43
+ default: true
44
+ },
45
+ showProgress: {
46
+ type: Boolean,
47
+ required: false,
48
+ default: true
49
+ }
50
+ });
51
+ const emits = defineEmits([
52
+ "update:modelValue",
53
+ "update:current",
54
+ "change",
55
+ "finish",
56
+ "skip",
57
+ "error"
58
+ ]);
59
+ const titleId = getUniqueId("pxd-tour-title");
60
+ const popoverVisible = shallowRef(false);
61
+ const localCurrent = shallowRef(normalizeCurrent(props.current));
62
+ const activeStep = computed(() => props.steps[localCurrent.value]);
63
+ const isLastStep = computed(() => localCurrent.value >= props.steps.length - 1);
64
+ const currentPosition = computed(() => activeStep.value?.position ?? "bottom");
65
+ const tourStyle = computed(() => ({ "--tour-index": props.zIndex }));
66
+ const configProvider = useConfigProvider();
67
+ const nextText = computed(() => {
68
+ const { nextText: customNextText } = activeStep.value ?? {};
69
+ if (customNextText) {
70
+ return customNextText;
71
+ }
72
+ return isLastStep.value ? configProvider.locale.tour.done : configProvider.locale.tour.next;
73
+ });
74
+ const prevText = computed(() => activeStep.value?.prevText || configProvider.locale.tour.prev);
75
+ const motionReduced = useMotionReduced();
76
+ const { rect, targetRadius, isCentered, isLoading, goTo, cancel } = useTourTarget({
77
+ step: activeStep,
78
+ motionReduced,
79
+ onMissingTarget,
80
+ onError: onStepError,
81
+ onResolved: () => {
82
+ popoverVisible.value = true;
83
+ }
84
+ });
85
+ const maskStyle = computed(() => {
86
+ return {
87
+ top: `${rect.value.top}px`,
88
+ left: `${rect.value.left}px`,
89
+ width: `${rect.value.width}px`,
90
+ height: `${rect.value.height}px`,
91
+ borderRadius: targetRadius.value || "0px"
92
+ };
93
+ });
94
+ function normalizeCurrent(index) {
95
+ if (props.steps.length === 0) {
96
+ return 0;
97
+ }
98
+ return Math.min(Math.max(index, 0), props.steps.length - 1);
99
+ }
100
+ function onStepError(error, index) {
101
+ emits("error", error, index);
102
+ popoverVisible.value = false;
103
+ if (index >= props.steps.length - 1) {
104
+ close();
105
+ emits("finish");
106
+ return;
107
+ }
108
+ goToStep(index + 1);
109
+ }
110
+ function onMissingTarget(index) {
111
+ onStepError(new Error(`[PTour] target not found for step ${index}`), index);
112
+ }
113
+ function goToStep(index) {
114
+ if (props.steps.length === 0 || index < 0 || index >= props.steps.length) {
115
+ return;
116
+ }
117
+ const nextIndex = normalizeCurrent(index);
118
+ if (nextIndex === localCurrent.value) {
119
+ goTo(nextIndex);
120
+ return;
121
+ }
122
+ localCurrent.value = nextIndex;
123
+ emits("update:current", nextIndex);
124
+ emits("change", nextIndex, props.steps[nextIndex]);
125
+ goTo(nextIndex);
126
+ }
127
+ function next() {
128
+ if (isLastStep.value) {
129
+ close();
130
+ emits("finish");
131
+ return;
132
+ }
133
+ goToStep(localCurrent.value + 1);
134
+ }
135
+ function prev() {
136
+ goToStep(localCurrent.value - 1);
137
+ }
138
+ function skip() {
139
+ emits("skip");
140
+ close();
141
+ }
142
+ function close() {
143
+ emits("update:modelValue", false);
144
+ }
145
+ function onKeydown(ev) {
146
+ if (ev.defaultPrevented || ev.ctrlKey || ev.metaKey || ev.altKey || ev.shiftKey || isCompositionKeydown(ev)) {
147
+ return;
148
+ }
149
+ if (ev.key === "ArrowRight") {
150
+ ev.preventDefault();
151
+ next();
152
+ return;
153
+ }
154
+ if (ev.key === "ArrowLeft") {
155
+ ev.preventDefault();
156
+ prev();
157
+ }
158
+ }
159
+ watch(() => props.modelValue, (visible) => {
160
+ if (isServer()) {
161
+ return;
162
+ }
163
+ popoverVisible.value = visible;
164
+ if (!visible) {
165
+ cachedOff(window, "keydown", onKeydown);
166
+ cancel();
167
+ return;
168
+ }
169
+ localCurrent.value = normalizeCurrent(props.current);
170
+ if (props.steps.length === 0) {
171
+ popoverVisible.value = false;
172
+ close();
173
+ return;
174
+ }
175
+ cachedOn(window, "keydown", onKeydown);
176
+ goTo(localCurrent.value);
177
+ }, { immediate: true });
178
+ watch(() => props.current, (index) => {
179
+ const nextIndex = normalizeCurrent(index);
180
+ if (nextIndex === localCurrent.value) {
181
+ return;
182
+ }
183
+ localCurrent.value = nextIndex;
184
+ if (!props.modelValue) {
185
+ return;
186
+ }
187
+ if (props.steps.length === 0) {
188
+ popoverVisible.value = false;
189
+ close();
190
+ return;
191
+ }
192
+ goTo(nextIndex);
193
+ });
194
+ watch(() => props.steps, () => {
195
+ if (props.steps.length === 0) {
196
+ localCurrent.value = 0;
197
+ popoverVisible.value = false;
198
+ if (props.modelValue) {
199
+ close();
200
+ }
201
+ return;
202
+ }
203
+ const nextIndex = normalizeCurrent(localCurrent.value);
204
+ if (nextIndex !== localCurrent.value) {
205
+ localCurrent.value = nextIndex;
206
+ emits("update:current", nextIndex);
207
+ }
208
+ if (props.modelValue) {
209
+ goTo(nextIndex);
210
+ }
211
+ });
212
+ onBeforeUnmount(() => {
213
+ cachedOff(window, "keydown", onKeydown);
214
+ });
215
+ defineExpose({
216
+ next,
217
+ prev,
218
+ goTo: goToStep,
219
+ close
220
+ });
221
+ </script>
222
+
223
+ <template>
224
+ <POverlay
225
+ :z-index="zIndex"
226
+ :show-overlay="false"
227
+ :model-value="modelValue"
228
+ :close-on-press-escape="false"
229
+ :close-on-click-overlay="false"
230
+ >
231
+ <div
232
+ v-if="modelValue"
233
+ data-tour
234
+ :data-centered="isCentered"
235
+ :data-loading="isLoading"
236
+ class="pxd-tour inset-0 pointer-events-auto fixed z-(--tour-index) select-none"
237
+ :style="tourStyle"
238
+ v-bind="$attrs"
239
+ >
240
+ <div class="pxd-tour--mask pointer-events-none fixed" :style="maskStyle" />
241
+
242
+ <PPopover
243
+ :model-value="popoverVisible && !isLoading"
244
+ trigger="manual"
245
+ trigger-selector="[data-tour-anchor]"
246
+ :position="currentPosition"
247
+ :interactive="false"
248
+ :fill-trigger-width="false"
249
+ :close-on-outside-click="false"
250
+ :close-on-invisible="false"
251
+ :close-on-press-escape="false"
252
+ :aria-labelledby="activeStep?.title ? titleId : void 0"
253
+ :auto-focus-element="true"
254
+ :wrapper-class="isCentered ? 'pxd-tour--popover-centered' : void 0"
255
+ :z-index="zIndex + 1"
256
+ class="pxd-tour--popover pointer-events-auto"
257
+ content-class="pxd-tour--content bg-background-100 p-3 shadow-border-menu rounded-xl"
258
+ >
259
+ <span
260
+ data-tour-anchor
261
+ class="pxd-tour--anchor pointer-events-none absolute"
262
+ :style="maskStyle"
263
+ />
264
+
265
+ <template #content>
266
+ <h4 v-if="activeStep?.title" :id="titleId" class="font-medium m-0 text-15">
267
+ {{ activeStep.title }}
268
+ </h4>
269
+
270
+ <p v-if="activeStep?.description" class="text-sm m-0 text-foreground-secondary">
271
+ {{ activeStep.description }}
272
+ </p>
273
+
274
+ <div class="gap-2 mbs-2.5 flex items-center justify-between">
275
+ <span
276
+ v-if="showProgress"
277
+ class="text-xs mr-4 flex-1 text-foreground-secondary tabular-nums"
278
+ >
279
+ {{ localCurrent + 1 }}/{{ steps.length }}
280
+ </span>
281
+
282
+ <PButton v-if="showSkip && !isLastStep" variant="ghost" size="sm" @click="skip">
283
+ {{ configProvider.locale.tour.skip }}
284
+ </PButton>
285
+
286
+ <PButton v-if="localCurrent > 0" variant="ghost" size="sm" @click="prev">
287
+ {{ prevText }}
288
+ </PButton>
289
+
290
+ <PButton variant="primary" size="sm" @click="next">
291
+ {{ nextText }}
292
+ </PButton>
293
+ </div>
294
+ </template>
295
+ </PPopover>
296
+ </div>
297
+ </POverlay>
298
+ </template>
299
+
300
+ <style>
301
+ .pxd-tour--mask{box-shadow:0 0 0 9999px rgba(0,0,0,.6)}.pxd-tour--popover-centered{left:50%!important;position:fixed!important;top:50%!important;transform:translate(-50%,-50%)!important}
302
+ </style>
@@ -0,0 +1,29 @@
1
+ import type { ComponentPosition } from '../../types/shared/props'
2
+
3
+ export interface TourStep {
4
+ target?: string | HTMLElement | (() => HTMLElement | null)
5
+ title?: string
6
+ description?: string
7
+ position?: ComponentPosition
8
+ nextText?: string
9
+ prevText?: string
10
+ beforeEnter?: (ctx: { index: number; step: TourStep }) => void | Promise<void>
11
+ }
12
+
13
+ export interface TourProps {
14
+ modelValue?: boolean
15
+ current?: number
16
+ steps: TourStep[]
17
+ zIndex?: number
18
+ showSkip?: boolean
19
+ showProgress?: boolean
20
+ }
21
+
22
+ export interface TourEmits {
23
+ 'update:modelValue': [boolean]
24
+ 'update:current': [number]
25
+ change: [index: number, step: TourStep]
26
+ finish: []
27
+ skip: []
28
+ error: [error: unknown, index: number]
29
+ }
@@ -1,50 +1,44 @@
1
- import type { ComponentValue } from '../../types/shared';
2
- import type { TreeModelValue, TreeOption, TreeProps } from './types';
1
+ import type { ComponentValue } from '../../types/shared/props';
2
+ import type { TreeModelValue, TreeOption, TreeOptions, TreeProps } from './types';
3
3
  declare function expandAll(): void;
4
4
  declare function collapseAll(): void;
5
5
  declare function scrollToKey(value: ComponentValue): void;
6
6
  declare function setActiveKey(value: ComponentValue): void;
7
- /**
8
- * Reads the whole index rather than the rendered rows: a collapsed subtree still holds checked
9
- * nodes, and this is the same set, in the same document order, that `change` reports.
10
- */
7
+ /** The whole index, not the rendered rows: a collapsed subtree still holds checked nodes. */
11
8
  declare function getCheckedKeys(includeIndeterminate?: boolean): ComponentValue[];
12
9
  declare function getVisibleKeys(): ComponentValue[];
13
- /** The source node behind a key, collapsed subtree included, so callers never lose data the tree hides. */
14
10
  declare function getData(value: ComponentValue): TreeOption | undefined;
15
- declare var __VLS_1: {}, __VLS_22: any, __VLS_25: {
11
+ declare var __VLS_1: {}, __VLS_23: {
16
12
  node: TreeOption;
17
13
  depth: number;
14
+ loading: boolean;
18
15
  expanded: boolean;
19
- }, __VLS_28: {
16
+ }, __VLS_26: {
20
17
  node: TreeOption;
21
18
  depth: number;
22
19
  expanded: boolean;
23
- }, __VLS_31: {
20
+ hasChildren: boolean;
21
+ }, __VLS_29: {
24
22
  node: TreeOption;
25
23
  depth: number;
26
- }, __VLS_34: {
24
+ parts: import("./types").TreeHighlightPart[] | undefined;
25
+ hasChildren: boolean;
26
+ }, __VLS_32: {
27
27
  node: TreeOption;
28
- }, __VLS_37: {
29
- node: TreeOption;
30
- depth: number;
28
+ hasChildren: boolean;
31
29
  }, __VLS_49: {}, __VLS_57: {
32
30
  node: TreeOption | undefined;
33
31
  };
34
32
  type __VLS_Slots = {} & {
35
33
  search?: (props: typeof __VLS_1) => any;
36
34
  } & {
37
- node?: (props: typeof __VLS_22) => any;
38
- } & {
39
- 'node-switcher'?: (props: typeof __VLS_25) => any;
35
+ 'node-switcher'?: (props: typeof __VLS_23) => any;
40
36
  } & {
41
- 'node-icon'?: (props: typeof __VLS_28) => any;
37
+ 'node-icon'?: (props: typeof __VLS_26) => any;
42
38
  } & {
43
- 'node-content'?: (props: typeof __VLS_31) => any;
39
+ 'node-content'?: (props: typeof __VLS_29) => any;
44
40
  } & {
45
- 'node-suffix'?: (props: typeof __VLS_34) => any;
46
- } & {
47
- 'node-drag-handle'?: (props: typeof __VLS_37) => any;
41
+ 'node-suffix'?: (props: typeof __VLS_32) => any;
48
42
  } & {
49
43
  empty?: (props: typeof __VLS_49) => any;
50
44
  } & {
@@ -68,7 +62,7 @@ declare const __VLS_base: import("vue").DefineComponent<TreeProps, {
68
62
  expand: (args_0: import("./types").TreeNodeDetail) => any;
69
63
  collapse: (args_0: import("./types").TreeNodeDetail) => any;
70
64
  move: (args_0: import("./types").TreeMoveDetail) => any;
71
- "update:data": (args_0: import("./types").TreeOptions) => any;
65
+ "update:data": (args_0: TreeOptions) => any;
72
66
  "update:expandedKeys": (args_0: ComponentValue[]) => any;
73
67
  "update:searchValue": (args_0: string) => any;
74
68
  }, string, import("vue").PublicProps, Readonly<TreeProps> & Readonly<{
@@ -77,24 +71,26 @@ declare const __VLS_base: import("vue").DefineComponent<TreeProps, {
77
71
  onExpand?: ((args_0: import("./types").TreeNodeDetail) => any) | undefined;
78
72
  onCollapse?: ((args_0: import("./types").TreeNodeDetail) => any) | undefined;
79
73
  onMove?: ((args_0: import("./types").TreeMoveDetail) => any) | undefined;
80
- "onUpdate:data"?: ((args_0: import("./types").TreeOptions) => any) | undefined;
74
+ "onUpdate:data"?: ((args_0: TreeOptions) => any) | undefined;
81
75
  "onUpdate:expandedKeys"?: ((args_0: ComponentValue[]) => any) | undefined;
82
76
  "onUpdate:searchValue"?: ((args_0: string) => any) | undefined;
83
77
  }>, {
84
- data: import("./types").TreeOptions;
78
+ data: TreeOptions;
79
+ loading: boolean;
85
80
  disabled: boolean;
81
+ lazy: boolean;
86
82
  itemSize: number;
87
83
  overScan: number;
88
84
  multiple: boolean;
89
85
  virtual: boolean;
90
86
  searchPlaceholder: string;
87
+ filterable: boolean;
91
88
  indent: number;
92
- showIcon: boolean;
93
89
  draggable: boolean;
94
90
  checkStrictly: boolean;
95
- expandOnClick: boolean;
91
+ expandOnly: boolean;
92
+ dropInsideLeaf: boolean;
96
93
  childrenField: string;
97
- filterable: boolean;
98
94
  highlightMatch: boolean;
99
95
  defaultSearchValue: string;
100
96
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;