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
@@ -6,8 +6,9 @@ import { useModelValue } from "../../composables/_internal/use-model-value.js";
6
6
  import { usePopoverResponsive } from "../../composables/_internal/use-popover-responsive.js";
7
7
  import { useToggleValue } from "../../composables/use-toggle-value.js";
8
8
  import { useConfigProvider } from "../../contexts/config-provider.js";
9
+ import { DEFAULT_TRIGGER } from "../../utils/_internal/mention-html.js";
10
+ import { isCompositionKeydown } from "../../utils/event.js";
9
11
  import { getUniqueId } from "../../utils/helper.js";
10
- import { DEFAULT_TRIGGER } from "../../utils/mention-html.js";
11
12
  import PMentionEditor from "../_internal/mention-editor.vue";
12
13
  import PList from "../list/index.vue";
13
14
  import PPopover from "../popover/index.vue";
@@ -73,18 +74,16 @@ const emits = defineEmits([
73
74
  "mention-click",
74
75
  "update:modelValue"
75
76
  ]);
76
- const modelValue = useModelValue(props, emits);
77
- const configProvider = useConfigProvider();
78
- const { isAdaptive, responsiveClasses } = usePopoverResponsive();
79
77
  const listId = getUniqueId("mention-list");
80
78
  const searchInputId = getUniqueId("mention-search");
81
- const { value: popoverVisible, toggle: togglePopoverVisible } = useToggleValue(false);
82
79
  const editorRef = shallowRef();
83
80
  const listRef = shallowRef();
84
81
  const searchInputRef = shallowRef();
85
- function resolveOptions(trigger) {
86
- return typeof props.options === "function" ? props.options(trigger) : props.options;
87
- }
82
+ const modelValue = useModelValue(props, emits);
83
+ const configProvider = useConfigProvider();
84
+ const computedSize = computed(() => props.size || configProvider.size);
85
+ const { isAdaptive, responsiveClasses } = usePopoverResponsive();
86
+ const { value: popoverVisible, toggle: togglePopoverVisible } = useToggleValue(false);
88
87
  const { filterKeyword, listOptions, isEmptyResult, isPending, open: openSuggest, close: closeSuggest, setKeyword } = useMentionSuggest({
89
88
  getOptions: resolveOptions,
90
89
  getFilterMethod: () => props.filterMethod,
@@ -96,11 +95,6 @@ const { filterKeyword, listOptions, isEmptyResult, isPending, open: openSuggest,
96
95
  // list only has to stay out of the way before anything has been asked: an unfiltered
97
96
  // empty list reads as "no results for ''" the moment the popover opens.
98
97
  const shouldRenderList = computed(() => listOptions.value.length > 0 || isPending.value || isEmptyResult.value);
99
- const computedSize = computed(() => props.size || configProvider.size);
100
- watch(listOptions, async () => {
101
- await nextTick();
102
- listRef.value?.setFirstAsActive();
103
- });
104
98
  const { onKeydown: onSearchKeydown } = useListKeyboardController({
105
99
  enabled: () => popoverVisible.value && !isPending.value,
106
100
  onCommand: (command) => listRef.value?.dispatch(command) ?? false,
@@ -112,6 +106,9 @@ const { onKeydown: onSearchKeydown } = useListKeyboardController({
112
106
  End: "last"
113
107
  }
114
108
  });
109
+ function resolveOptions(trigger) {
110
+ return typeof props.options === "function" ? props.options(trigger) : props.options;
111
+ }
115
112
  async function focusSearchInput() {
116
113
  await nextTick();
117
114
  searchInputRef.value?.focus({ preventScroll: true });
@@ -127,7 +124,7 @@ function onSearchInput(ev) {
127
124
  setKeyword(ev.target.value);
128
125
  }
129
126
  function onSearchKeydownWithEscape(ev) {
130
- if (ev.key === "Escape" && props.closeOnPressEscape) {
127
+ if (ev.key === "Escape" && props.closeOnPressEscape && !isCompositionKeydown(ev)) {
131
128
  ev.preventDefault();
132
129
  ev.stopPropagation();
133
130
  closeSuggest();
@@ -152,6 +149,10 @@ function onOptionSelect(item) {
152
149
  function onMentionClick(payload) {
153
150
  emits("mention-click", payload);
154
151
  }
152
+ watch(listOptions, async () => {
153
+ await nextTick();
154
+ listRef.value?.setFirstAsActive();
155
+ });
155
156
  </script>
156
157
 
157
158
  <template>
@@ -188,64 +189,63 @@ function onMentionClick(payload) {
188
189
  />
189
190
 
190
191
  <template #content>
191
- <div
192
- class="pxd-mention--suggest max-h-80 min-w-56 flex flex-col overflow-hidden rounded-inherit"
192
+ <label
193
+ :for="searchInputId"
194
+ class="px-3 py-2 gap-2 flex items-center border-b bg-background-100"
193
195
  >
194
- <label :for="searchInputId" class="px-3 py-2 gap-2 flex items-center bg-background-100">
195
- <input
196
- :id="searchInputId"
197
- ref="searchInputRef"
198
- :value="filterKeyword"
199
- type="text"
200
- autocomplete="off"
201
- autocorrect="off"
202
- spellcheck="false"
203
- role="combobox"
204
- inputmode="search"
205
- aria-autocomplete="list"
206
- :aria-controls="listId"
207
- :aria-expanded="popoverVisible"
208
- :aria-busy="isPending"
209
- :aria-disabled="disabled"
210
- :placeholder="searchPlaceholder"
211
- class="pxd-mention--search h-7 min-w-0 text-sm flex-1 appearance-none border-none bg-transparent font-inherit text-foreground outline-none"
212
- @input="onSearchInput"
213
- @keydown="onSearchKeydownWithEscape"
214
- />
196
+ <input
197
+ :id="searchInputId"
198
+ ref="searchInputRef"
199
+ :value="filterKeyword"
200
+ type="text"
201
+ autocomplete="off"
202
+ autocorrect="off"
203
+ spellcheck="false"
204
+ role="combobox"
205
+ inputmode="search"
206
+ aria-autocomplete="list"
207
+ :aria-controls="listId"
208
+ :aria-expanded="popoverVisible"
209
+ :aria-busy="isPending"
210
+ :aria-disabled="disabled"
211
+ :placeholder="searchPlaceholder"
212
+ class="pxd-mention--search h-7 min-w-0 text-sm flex-1 appearance-none border-none bg-transparent font-inherit text-foreground outline-none"
213
+ @input="onSearchInput"
214
+ @keydown="onSearchKeydownWithEscape"
215
+ />
215
216
 
216
- <button
217
- type="button"
218
- class="px-1.5 h-5 text-xs shrink-0 cursor-pointer appearance-none rounded-sm border bg-background-100 self-focus-ring hover:bg-background-hover active:bg-background-active motion-safe:transition-colors"
219
- @click="closeSuggest"
220
- >
221
- <kbd class="appearance-none font-sans">Esc</kbd>
222
- </button>
223
- </label>
224
-
225
- <PList
226
- v-show="shouldRenderList"
227
- :id="listId"
228
- ref="listRef"
229
- :loop="false"
230
- :virtual="virtual"
231
- :loading="isPending"
232
- :options="listOptions"
233
- :default-active-index="0"
234
- class="max-h-68 min-h-0 flex-1 rounded-none border-t"
235
- @change="onOptionSelect"
217
+ <button
218
+ type="button"
219
+ class="px-1.5 h-5 text-xs shrink-0 cursor-pointer appearance-none rounded-sm border bg-background-100 self-focus-ring hover:bg-background-hover active:bg-background-active motion-safe:transition-colors"
220
+ @click="closeSuggest"
236
221
  >
237
- <template v-if="$slots.item" #item="itemSlotProps">
238
- <slot name="item" v-bind="itemSlotProps" />
239
- </template>
222
+ <kbd class="appearance-none font-sans">Esc</kbd>
223
+ </button>
224
+ </label>
225
+
226
+ <PList
227
+ v-show="shouldRenderList"
228
+ :id="listId"
229
+ ref="listRef"
230
+ :loop="false"
231
+ :virtual="virtual"
232
+ :loading="isPending"
233
+ :options="listOptions"
234
+ :default-active-index="0"
235
+ class="max-h-68 min-h-0 flex-1"
236
+ @change="onOptionSelect"
237
+ >
238
+ <template v-if="$slots.item" #item="itemSlotProps">
239
+ <slot name="item" v-bind="itemSlotProps" />
240
+ </template>
240
241
 
241
- <template #empty>
242
- <slot name="empty">
243
- {{ configProvider.locale.results.searchText }}
244
- <span class="whitespace-pre text-foreground">"{{ filterKeyword }}"</span>
245
- </slot>
246
- </template>
247
- </PList>
248
- </div>
242
+ <template #empty>
243
+ <slot name="empty">
244
+ {{ configProvider.locale.results.searchText }}
245
+ <span class="whitespace-pre text-foreground">"{{ filterKeyword }}"</span>
246
+ </slot>
247
+ </template>
248
+ </PList>
249
249
  </template>
250
250
  </PPopover>
251
251
  </template>
@@ -1,17 +1,17 @@
1
1
  import type { ListModelValue } from '../list/types';
2
2
  import type { MenuProps } from './types';
3
- declare var __VLS_10: {
3
+ declare var __VLS_9: {
4
4
  popoverVisible: boolean;
5
- }, __VLS_24: {
5
+ }, __VLS_21: {
6
6
  item: import("../list/types").ListOption;
7
7
  index: number;
8
8
  group: import("../list/types").ListOptionGroup | undefined;
9
9
  groupIndex: number | undefined;
10
10
  };
11
11
  type __VLS_Slots = {} & {
12
- default?: (props: typeof __VLS_10) => any;
12
+ default?: (props: typeof __VLS_9) => any;
13
13
  } & {
14
- item?: (props: typeof __VLS_24) => any;
14
+ item?: (props: typeof __VLS_21) => any;
15
15
  };
16
16
  declare const __VLS_base: import("vue").DefineComponent<MenuProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
17
17
  change: (args_0: ListModelValue) => any;
@@ -54,9 +54,8 @@ const props = defineProps({
54
54
  });
55
55
  const emits = defineEmits(["change", "update:modelValue"]);
56
56
  const listRef = shallowRef();
57
- const { selected, apply, reset, commit } = useListSelection(props, emits);
58
- const { isAdaptive, responsiveClasses } = usePopoverResponsive();
59
57
  const popoverVisible = shallowRef(false);
58
+ const { selected, apply, reset, commit } = useListSelection(props, emits);
60
59
  // Action menus (no v-model) keep List uncontrolled so checkmarks never appear.
61
60
  // Selection menus forward the session `selected` that List already toggled.
62
61
  const listModelValue = computed(() => {
@@ -65,6 +64,7 @@ const listModelValue = computed(() => {
65
64
  }
66
65
  return selected.value;
67
66
  });
67
+ const { isAdaptive, responsiveClasses } = usePopoverResponsive();
68
68
  const { onKeydown } = useListKeyboardController({
69
69
  enabled: () => popoverVisible.value,
70
70
  onCommand: (command) => listRef.value?.dispatch(command) ?? false,
@@ -77,6 +77,14 @@ const { onKeydown } = useListKeyboardController({
77
77
  " ": "activate"
78
78
  }
79
79
  });
80
+ function onListModelUpdate(value) {
81
+ if (isNil(value)) {
82
+ return;
83
+ }
84
+ if (apply(value)) {
85
+ popoverVisible.value = false;
86
+ }
87
+ }
80
88
  watch(popoverVisible, async (visible) => {
81
89
  if (visible) {
82
90
  reset();
@@ -86,14 +94,6 @@ watch(popoverVisible, async (visible) => {
86
94
  }
87
95
  commit();
88
96
  });
89
- function onListModelUpdate(value) {
90
- if (isNil(value)) {
91
- return;
92
- }
93
- if (apply(value)) {
94
- popoverVisible.value = false;
95
- }
96
- }
97
97
  </script>
98
98
 
99
99
  <template>
@@ -1,4 +1,4 @@
1
- import type { ComponentPosition } from '../../types/shared'
1
+ import type { ComponentPosition } from '../../types/shared/props'
2
2
  import type { ListModelValue, ListOptions } from '../list/types'
3
3
 
4
4
  export interface MenuProps {
@@ -139,7 +139,7 @@ declare const __VLS_export: import("vue").DefineComponent<MessageProps, {
139
139
  }>, {
140
140
  max: number;
141
141
  group: string;
142
- position: import("../../types/shared/props.js").ComponentPosition<"top" | "bottom">;
142
+ position: import("../../types/shared/props.js").ComponentPosition<"bottom" | "top">;
143
143
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
144
144
  declare const _default: typeof __VLS_export;
145
145
  export default _default;
@@ -1,5 +1,6 @@
1
1
  <script setup>
2
2
  import { computed, onBeforeUnmount, onMounted, ref } from "vue";
3
+ import { useMessageGroup } from "../../composables/_internal/use-message-group.js";
3
4
  import { useDocumentHidden } from "../../composables/use-document-hidden.js";
4
5
  import { UPDATE_MESSAGE_EVENT_NAME } from "../../composables/use-message.js";
5
6
  import { cachedOff, cachedOn } from "../../utils/event.js";
@@ -7,9 +8,6 @@ import { getCssUnitValue } from "../../utils/format.js";
7
8
  import { isServer } from "../../utils/is.js";
8
9
  import PMessageItem from "../message-item/index.vue";
9
10
  import PTeleport from "../teleport/index.vue";
10
- import { useGroupExpand } from "./composables/use-group-expand.js";
11
- import { useMessageTimer } from "./composables/use-message-timer.js";
12
- import { usePromiseMessage } from "./composables/use-promise-message.js";
13
11
  defineOptions({
14
12
  name: "PMessage",
15
13
  inheritAttrs: false
@@ -41,29 +39,25 @@ const props = defineProps({
41
39
  });
42
40
  const emits = defineEmits(["close"]);
43
41
  const groupMessages = ref([]);
44
- const { setAutoCloseTimer, pauseMessage, resumeMessage, clearTimers, pauseAll, resumeAll } = useMessageTimer(closeMessageById);
45
- const { handlePromiseMessage } = usePromiseMessage(setAutoCloseTimer);
46
- const { groupExpand, collapse, onPointerEnter, onPointerLeave } = useGroupExpand({
47
- expand: () => props.expand,
48
- onPauseAll: () => pauseAll(groupMessages.value),
49
- onResumeAll: () => resumeAll(groupMessages.value)
50
- });
51
- useDocumentHidden((isHidden) => {
52
- if (isHidden) {
53
- pauseAll(groupMessages.value);
54
- } else {
55
- resumeAll(groupMessages.value);
56
- }
57
- });
58
42
  const messageGroupStyle = computed(() => {
59
43
  const frontHeight = groupMessages.value[0]?.height || 0;
60
- const visibleItemCounts = Math.min(props.max, groupMessages.value.length);
61
44
  return {
62
45
  "--message-width": getCssUnitValue(props.width),
63
- "--message-items": visibleItemCounts,
64
46
  "--message-front-height": getCssUnitValue(frontHeight)
65
47
  };
66
48
  });
49
+ const { groupExpand, collapse, onPointerEnter, onPointerLeave, startTimer, clearTimer, clearTimers, pauseMessage, resumeMessage, pauseAll, resumeAll, handlePromiseMessage } = useMessageGroup({
50
+ messages: groupMessages,
51
+ expand: () => props.expand,
52
+ onTimeout: closeMessageById
53
+ });
54
+ useDocumentHidden((isHidden) => {
55
+ if (isHidden) {
56
+ pauseAll();
57
+ } else {
58
+ resumeAll();
59
+ }
60
+ });
67
61
  function getMessageById(id) {
68
62
  const index = groupMessages.value.findIndex((m) => m.id === id);
69
63
  const message = groupMessages.value[index];
@@ -101,10 +95,7 @@ function closeMessageById(id) {
101
95
  if (!message) {
102
96
  return;
103
97
  }
104
- if (message._timerId) {
105
- clearTimeout(message._timerId);
106
- message._timerId = undefined;
107
- }
98
+ clearTimer(message);
108
99
  groupMessages.value.splice(index, 1);
109
100
  // Avoid manually closing all data and maintaining the expanded state when creating again
110
101
  if (!props.expand && groupMessages.value.length === 0) {
@@ -113,8 +104,11 @@ function closeMessageById(id) {
113
104
  emits("close", id);
114
105
  }
115
106
  function clearMessage() {
116
- clearTimers(groupMessages.value);
107
+ clearTimers();
117
108
  groupMessages.value = [];
109
+ if (!props.expand) {
110
+ collapse();
111
+ }
118
112
  }
119
113
  function handleCreateMessage(data) {
120
114
  if (!data || data.group !== props.group) {
@@ -130,7 +124,7 @@ function handleCreateMessage(data) {
130
124
  if (isPromiseLoading) {
131
125
  handlePromiseMessage(message);
132
126
  } else if (message.durations) {
133
- setAutoCloseTimer(message);
127
+ startTimer(message);
134
128
  }
135
129
  }
136
130
  function onUpdateMessage({ detail }) {
@@ -1,5 +1,5 @@
1
1
  import type { MessageItemConfig } from '../../composables/use-message'
2
- import type { ComponentPosition } from '../../types/shared'
2
+ import type { ComponentPosition } from '../../types/shared/props'
3
3
 
4
4
  export interface MessageProps {
5
5
  max?: number
@@ -41,6 +41,7 @@ const computedStyle = computed(() => {
41
41
  "--message-item-index": index,
42
42
  "z-index": max - index,
43
43
  opacity: isVisible ? 1 : 0,
44
+ position: isVisible ? undefined : "absolute",
44
45
  "pointer-events": isVisible ? "auto" : "none"
45
46
  };
46
47
  });
@@ -58,12 +59,7 @@ function setItemHeightInfo() {
58
59
  // otherwise, the type of the promise data cannot be updated.
59
60
  props.itemData.height = itemRef.value.offsetHeight;
60
61
  }
61
- watch(() => props.itemData.message, () => {
62
- if (!itemRef.value) {
63
- return;
64
- }
65
- setItemHeightInfo();
66
- });
62
+ watch(() => props.itemData.message, setItemHeightInfo, { flush: "post" });
67
63
  onMounted(() => {
68
64
  setItemHeightInfo();
69
65
  });
@@ -1,15 +1,15 @@
1
1
  import type { ModalProps } from './types';
2
- declare var __VLS_17: {}, __VLS_19: {}, __VLS_21: {}, __VLS_23: {}, __VLS_25: {};
2
+ declare var __VLS_16: {}, __VLS_18: {}, __VLS_20: {}, __VLS_35: {}, __VLS_37: {};
3
3
  type __VLS_Slots = {} & {
4
- header?: (props: typeof __VLS_17) => any;
4
+ header?: (props: typeof __VLS_16) => any;
5
5
  } & {
6
- title?: (props: typeof __VLS_19) => any;
6
+ title?: (props: typeof __VLS_18) => any;
7
7
  } & {
8
- subtitle?: (props: typeof __VLS_21) => any;
8
+ subtitle?: (props: typeof __VLS_20) => any;
9
9
  } & {
10
- default?: (props: typeof __VLS_23) => any;
10
+ default?: (props: typeof __VLS_35) => any;
11
11
  } & {
12
- footer?: (props: typeof __VLS_25) => any;
12
+ footer?: (props: typeof __VLS_37) => any;
13
13
  };
14
14
  declare const __VLS_base: import("vue").DefineComponent<ModalProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
15
15
  change: (args_0: boolean) => any;
@@ -26,9 +26,9 @@ declare const __VLS_base: import("vue").DefineComponent<ModalProps, {}, {}, {},
26
26
  onHide?: (() => any) | undefined;
27
27
  "onVisible-change"?: ((visible: boolean) => any) | undefined;
28
28
  }>, {
29
+ closeable: boolean;
29
30
  modelValue: boolean;
30
31
  closeOnPressEscape: boolean;
31
- appendToBody: boolean;
32
32
  autoFocusElement: string | boolean;
33
33
  closeOnClickOverlay: boolean;
34
34
  defaultHeaderStyle: boolean;
@@ -1,10 +1,12 @@
1
1
  <script setup>
2
+ import CrossIcon from "@gdsicon/vue/cross";
2
3
  import { computed, shallowRef, watch } from "vue";
3
4
  import { useModelValue } from "../../composables/_internal/use-model-value.js";
4
5
  import { useOverlayDialog } from "../../composables/_internal/use-overlay-dialog.js";
5
6
  import { useConfigProvider } from "../../contexts/config-provider.js";
6
7
  import { getCssUnitValue } from "../../utils/format.js";
7
8
  import PLoadingMask from "../_internal/loading-mask.vue";
9
+ import PButton from "../button/index.vue";
8
10
  import POverlay from "../overlay/index.vue";
9
11
  defineOptions({
10
12
  name: "PModal",
@@ -44,11 +46,6 @@ const props = defineProps({
44
46
  type: String,
45
47
  required: false
46
48
  },
47
- appendToBody: {
48
- type: Boolean,
49
- required: false,
50
- default: true
51
- },
52
49
  wrapperClass: {
53
50
  type: [
54
51
  String,
@@ -83,9 +80,14 @@ const props = defineProps({
83
80
  closeOnPressEscape: {
84
81
  type: Boolean,
85
82
  required: false,
86
- default: false
83
+ default: true
87
84
  },
88
85
  closeOnClickOverlay: {
86
+ type: Boolean,
87
+ required: false,
88
+ default: true
89
+ },
90
+ closeable: {
89
91
  type: Boolean,
90
92
  required: false,
91
93
  default: false
@@ -100,8 +102,6 @@ const emits = defineEmits([
100
102
  "update:modelValue"
101
103
  ]);
102
104
  const modalRef = shallowRef();
103
- const isVisible = useModelValue(props, emits);
104
- const configProvider = useConfigProvider();
105
105
  const computedStyle = computed(() => {
106
106
  return {
107
107
  "--modal-index": props.zIndex,
@@ -112,6 +112,8 @@ const defaultStyles = computed(() => ({
112
112
  headerClass: props.defaultHeaderStyle ? "pbe-4 sm:pbe-6 border-b bg-background-200 dark:bg-background-100" : "",
113
113
  footerClass: props.defaultFooterStyle ? "border-t pbs-4 bg-background-200 dark:bg-background-100" : ""
114
114
  }));
115
+ const isVisible = useModelValue(props, emits);
116
+ const configProvider = useConfigProvider();
115
117
  const { closeOverlayIfNeed, onOverlayClick } = useOverlayDialog({
116
118
  props,
117
119
  emits,
@@ -133,7 +135,7 @@ watch(() => isVisible.value, (visible) => {
133
135
  <template>
134
136
  <POverlay
135
137
  :model-value="isVisible"
136
- :append-to-body="appendToBody"
138
+ :z-index="zIndex"
137
139
  :close-on-press-escape="closeOnPressEscape"
138
140
  @escape="closeOverlayIfNeed"
139
141
  @click="onOverlayClick"
@@ -155,8 +157,8 @@ watch(() => isVisible.value, (visible) => {
155
157
  v-bind="$attrs"
156
158
  >
157
159
  <header
158
- class="pxd-modal--header px-6 pbs-4 sm:pbs-6 empty:py-3 relative shrink-0"
159
- :class="defaultStyles.headerClass"
160
+ class="pxd-modal--header px-6 pbs-4 sm:pbs-6 relative shrink-0 empty:hidden"
161
+ :class="[defaultStyles.headerClass, { 'pe-15': closeable }]"
160
162
  >
161
163
  <slot name="header">
162
164
  <h3
@@ -174,6 +176,19 @@ watch(() => isVisible.value, (visible) => {
174
176
  </slot>
175
177
  </div>
176
178
  </slot>
179
+
180
+ <PButton
181
+ v-if="closeable"
182
+ variant="ghost"
183
+ size="sm"
184
+ icon
185
+ class="top-4 right-6 sm:top-6 size-7 absolute"
186
+ :aria-label="configProvider.locale.interaction.close"
187
+ :title="configProvider.locale.interaction.close"
188
+ @click="closeOverlayIfNeed"
189
+ >
190
+ <CrossIcon class="size-3" aria-hidden="true" />
191
+ </PButton>
177
192
  </header>
178
193
 
179
194
  <div
@@ -1,4 +1,4 @@
1
- import type { ComponentClass, ComponentLabel } from '../../types/shared'
1
+ import type { ComponentClass, ComponentLabel } from '../../types/shared/props'
2
2
 
3
3
  export interface ModalProps {
4
4
  zIndex?: number
@@ -8,7 +8,6 @@ export interface ModalProps {
8
8
  loading?: boolean
9
9
  modelValue?: boolean
10
10
  loadingText?: string
11
- appendToBody?: boolean
12
11
  wrapperClass?: ComponentClass
13
12
  contentClass?: ComponentClass
14
13
  autoFocusElement?: string | boolean
@@ -16,6 +15,7 @@ export interface ModalProps {
16
15
  defaultFooterStyle?: boolean
17
16
  closeOnPressEscape?: boolean
18
17
  closeOnClickOverlay?: boolean
18
+ closeable?: boolean
19
19
  }
20
20
 
21
21
  export interface ModalEmits {
@@ -1,4 +1,4 @@
1
- import type { ComponentAs } from '../../types/shared'
1
+ import type { ComponentAs } from '../../types/shared/props'
2
2
  import type { CSSProperties } from 'vue'
3
3
 
4
4
  export interface NoiseBackgroundProps {
@@ -25,6 +25,10 @@ const props = defineProps({
25
25
  type: Boolean,
26
26
  required: false
27
27
  },
28
+ text: {
29
+ type: String,
30
+ required: false
31
+ },
28
32
  label: {
29
33
  type: [
30
34
  Boolean,
@@ -37,7 +41,6 @@ const props = defineProps({
37
41
  default: true
38
42
  }
39
43
  });
40
- const configProvider = useConfigProvider();
41
44
  const VARIANTS_ICON = {
42
45
  success: CheckCircleIcon,
43
46
  error: StopIcon,
@@ -57,6 +60,7 @@ const computedLabel = computed(() => {
57
60
  }
58
61
  return false;
59
62
  });
63
+ const configProvider = useConfigProvider();
60
64
  const { attrs, classes } = useTailwindVariant({
61
65
  base: "pxd-note gap-2 sm:items-center max-sm:flex-col flex max-w-full rounded-md border",
62
66
  variants: {
@@ -129,7 +133,7 @@ const { attrs, classes } = useTailwindVariant({
129
133
  </slot>
130
134
 
131
135
  <span class="flex-1 shrink-0">
132
- <slot />
136
+ <slot>{{ text }}</slot>
133
137
  </span>
134
138
  </div>
135
139
 
@@ -1,4 +1,4 @@
1
- import type { ComponentLabel, ComponentSize } from '../../types/shared'
1
+ import type { ComponentLabel, ComponentSize } from '../../types/shared/props'
2
2
 
3
3
  export type NoteVariant =
4
4
  | 'success'
@@ -14,5 +14,6 @@ export interface NoteProps {
14
14
  variant?: NoteVariant
15
15
  size?: ComponentSize
16
16
  fill?: boolean
17
+ text?: string
17
18
  label?: boolean | ComponentLabel
18
19
  }
@@ -1,13 +1,17 @@
1
1
  import type { NumberInputProps } from './types';
2
- declare var __VLS_15: {}, __VLS_22: {}, __VLS_25: {}, __VLS_27: {};
2
+ declare var __VLS_14: {}, __VLS_21: {}, __VLS_24: {}, __VLS_26: {}, __VLS_33: {}, __VLS_40: {};
3
3
  type __VLS_Slots = {} & {
4
- minusIcon?: (props: typeof __VLS_15) => any;
4
+ minusIcon?: (props: typeof __VLS_14) => any;
5
5
  } & {
6
- prefix?: (props: typeof __VLS_22) => any;
6
+ prefix?: (props: typeof __VLS_21) => any;
7
7
  } & {
8
- suffix?: (props: typeof __VLS_25) => any;
8
+ suffix?: (props: typeof __VLS_24) => any;
9
9
  } & {
10
- plusIcon?: (props: typeof __VLS_27) => any;
10
+ plusIcon?: (props: typeof __VLS_26) => any;
11
+ } & {
12
+ minusIcon?: (props: typeof __VLS_33) => any;
13
+ } & {
14
+ plusIcon?: (props: typeof __VLS_40) => any;
11
15
  };
12
16
  declare const __VLS_base: import("vue").DefineComponent<NumberInputProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
13
17
  change: (args_0: number | null | undefined, args_1: Event) => any;
@@ -25,8 +29,9 @@ declare const __VLS_base: import("vue").DefineComponent<NumberInputProps, {}, {}
25
29
  min: number;
26
30
  clearValue: number | null;
27
31
  controls: boolean;
28
- thousandsSeparator: string;
29
32
  scientific: boolean;
33
+ controlsPosition: "right" | "sides";
34
+ thousandsSeparator: string;
30
35
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
31
36
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
32
37
  declare const _default: typeof __VLS_export;