@maple-design/ui-vue 1.1.0 → 1.1.1

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 (345) hide show
  1. package/es/_components/field-presentation/EditorPanel.vue.mjs +3 -3
  2. package/es/_components/field-presentation/editor-pending.mjs +4 -0
  3. package/es/_components/field-presentation/form-bridge.mjs +1 -1
  4. package/es/_components/field-presentation/with-field-presentation.mjs +51 -8
  5. package/es/_components/picker-field/PickerField.vue.mjs +3 -13
  6. package/es/_components/picker-field/TemporalCurrent.vue.mjs +2 -3
  7. package/es/_components/picker-field/range-labels.mjs +18 -0
  8. package/es/_components/selected-options/style/index.css +33 -15
  9. package/es/_components/selection-field/use-selection-session.mjs +1 -0
  10. package/es/_components/virtual-list-v2/VirtualList2.vue.mjs +26 -4
  11. package/es/action-sheet/ActionSheet2.vue.mjs +2 -3
  12. package/es/auto-complete/auto-complete.mjs +2 -2
  13. package/es/auto-complete/presentation.mjs +1 -0
  14. package/es/auto-complete/props.mjs +2 -0
  15. package/es/auto-complete/style/index.css +7 -2
  16. package/es/back-top/style/index.css +1 -1
  17. package/es/breadcrumb/style/index.css +1 -1
  18. package/es/button/base.mjs +7 -0
  19. package/es/button/index.mjs +9 -9
  20. package/es/button/style/index.css +1 -1
  21. package/es/card/Card.vue.mjs +55 -13
  22. package/es/carousel/style/index.css +1 -1
  23. package/es/carousel/use-carousel-locale.mjs +10 -3
  24. package/es/cascader/CascaderMenu.vue.mjs +2 -2
  25. package/es/cascader/cascader-option.mjs +15 -6
  26. package/es/cascader/field-adapter.mjs +1 -0
  27. package/es/cascader/props.mjs +2 -0
  28. package/es/cascader/style/index.css +36 -9
  29. package/es/cascader/style/index.mjs +1 -0
  30. package/es/cascader/use-cascader-focus.mjs +9 -6
  31. package/es/checkbox/CheckboxGroup.vue.mjs +2 -2
  32. package/es/checkbox/base.mjs +7 -0
  33. package/es/checkbox/index.mjs +1 -1
  34. package/es/checkbox/presentation.mjs +2 -2
  35. package/es/checkbox/style/index.css +1 -1
  36. package/es/countdown/use-countdown.mjs +9 -2
  37. package/es/date/DatePanelActions.vue.mjs +4 -4
  38. package/es/date/DateRangeQuickPanel.vue.mjs +2 -2
  39. package/es/date/DateShortcuts.vue.mjs +2 -2
  40. package/es/date/field-adapter.mjs +2 -3
  41. package/es/date/picker-panels/DayPickerPanel2.vue.mjs +4 -5
  42. package/es/date/picker-panels/MonthPickerPanel2.vue.mjs +5 -6
  43. package/es/date/picker-panels/PanelHeader2.vue.mjs +6 -7
  44. package/es/date/picker-panels/YearPickerPanel2.vue.mjs +2 -2
  45. package/es/date/presentation/CalendarContent2.vue.mjs +13 -14
  46. package/es/date/presentation/CalendarViewport.vue.mjs +2 -3
  47. package/es/date/presentation/use-date-locale.mjs +2 -3
  48. package/es/date/presentation/use-field-locale.mjs +5 -6
  49. package/es/date/presentation/use-panel-actions-locale.mjs +4 -5
  50. package/es/date-range/presentation/RangeContent2.vue.mjs +4 -5
  51. package/es/dialog/Dialog.vue.mjs +3 -3
  52. package/es/ellipsis/style/index.css +1 -1
  53. package/es/fab/Fab.mjs +4 -5
  54. package/es/form/FormItemLabel.vue.mjs +4 -3
  55. package/es/form/focus-explicit-label.mjs +52 -0
  56. package/es/input/base.mjs +7 -0
  57. package/es/input/index.mjs +19 -19
  58. package/es/locale/date-text.mjs +38 -0
  59. package/es/locale/misc-text.mjs +23 -0
  60. package/es/locale/temporal-text.mjs +22 -0
  61. package/es/locale/zh-CN.mjs +235 -131
  62. package/es/maple-vue.mjs +1 -1
  63. package/es/maple.css +273 -207
  64. package/es/maple.esm.js +19385 -18978
  65. package/es/nav-menu/style/index.css +1 -1
  66. package/es/notice-bar/NoticeBar2.vue.mjs +2 -3
  67. package/es/number-keyboard/NumberKeyboard2.vue.mjs +5 -6
  68. package/es/pagination/PageInput.vue.mjs +2 -2
  69. package/es/pagination/style/index.css +2 -2
  70. package/es/people-select/PeopleSelect.mjs +35 -54
  71. package/es/people-select/Person.vue.mjs +3 -3
  72. package/es/people-select/emits.mjs +1 -1
  73. package/es/people-select/people-select.mjs +6 -8
  74. package/es/people-select/presentation.mjs +3 -1
  75. package/es/people-select/props.mjs +9 -3
  76. package/es/people-select/selection.mjs +64 -0
  77. package/es/people-select/style/index.css +6 -0
  78. package/es/picker/Picker.vue.mjs +2 -2
  79. package/es/picker/Picker2.vue.mjs +4 -5
  80. package/es/picker/base.mjs +7 -0
  81. package/es/picker/index.mjs +5 -5
  82. package/es/progress/style/index.css +2 -2
  83. package/es/radio/style/index.css +1 -1
  84. package/es/rate/style/index.css +2 -2
  85. package/es/ripple/index.mjs +78 -0
  86. package/es/search/HistoryContent.vue.mjs +4 -4
  87. package/es/search/Search.vue.mjs +4 -4
  88. package/es/search/props.mjs +1 -2
  89. package/es/select/props.mjs +2 -0
  90. package/es/select/select.mjs +14 -4
  91. package/es/select/style/index.css +22 -12
  92. package/es/select/use-select-controller.mjs +22 -2
  93. package/es/slider/Slider.vue.mjs +43 -21
  94. package/es/slider/SliderInput.vue.mjs +14 -2
  95. package/es/slider/style/index.css +2 -2
  96. package/es/steps/style/index.css +10 -10
  97. package/es/switch/Switch.vue.mjs +12 -1
  98. package/es/switch/style/index.css +1 -1
  99. package/es/tab-bar/TabBar.vue.mjs +2 -2
  100. package/es/tab-bar/style/index.css +2 -2
  101. package/es/tabs/style/index.css +1 -1
  102. package/es/tabs/use-tabs-configuration.mjs +2 -3
  103. package/es/themes/alps-light/index.mjs +10 -11
  104. package/es/themes/create-brand-dark.mjs +18 -0
  105. package/es/themes/dark/breadcrumb-item.mjs +1 -1
  106. package/es/themes/dark/cascader.mjs +1 -1
  107. package/es/themes/dark/index.mjs +2 -2
  108. package/es/themes/firefly-light/index.mjs +12 -13
  109. package/es/themes/index.mjs +2 -2
  110. package/es/themes/maple-light/index.mjs +2 -2
  111. package/es/time/presentation/TimeFieldPanel.vue.mjs +2 -2
  112. package/es/time/presentation/TimePanelContent2.vue.mjs +8 -9
  113. package/es/time/presentation/use-field-locale.mjs +5 -6
  114. package/es/time/props.mjs +1 -1
  115. package/es/time-range/presentation/TimePanelContent2.vue.mjs +6 -7
  116. package/es/time-range/props.mjs +1 -1
  117. package/es/trigger/popup-move-focus.mjs +6 -6
  118. package/es/trigger/position.mjs +49 -3
  119. package/es/trigger/positioner.mjs +34 -5
  120. package/es/trigger/trigger.mjs +1 -1
  121. package/es/upload/Upload.vue.mjs +18 -2
  122. package/es/upload/composables/use-upload-queue.mjs +10 -1
  123. package/es/upload/composables/use-uploader.mjs +45 -11
  124. package/es/upload/use-upload-locale.mjs +16 -12
  125. package/es/utils/modal-focus.mjs +9 -2
  126. package/es/utils/modal-surface.mjs +9 -3
  127. package/highlight/web-types.en-US.json +698 -176
  128. package/highlight/web-types.zh-CN.json +699 -177
  129. package/lib/_components/field-presentation/EditorPanel.vue.js +3 -3
  130. package/lib/_components/field-presentation/editor-pending.js +4 -0
  131. package/lib/_components/field-presentation/with-field-presentation.js +50 -7
  132. package/lib/_components/picker-field/PickerField.vue.js +3 -13
  133. package/lib/_components/picker-field/TemporalCurrent.vue.js +2 -3
  134. package/lib/_components/picker-field/range-labels.js +18 -0
  135. package/lib/_components/selected-options/style/index.css +33 -15
  136. package/lib/_components/selection-field/use-selection-session.js +1 -0
  137. package/lib/_components/virtual-list-v2/VirtualList2.vue.js +25 -3
  138. package/lib/action-sheet/ActionSheet2.vue.js +2 -3
  139. package/lib/auto-complete/auto-complete.js +2 -2
  140. package/lib/auto-complete/presentation.js +1 -0
  141. package/lib/auto-complete/props.js +2 -0
  142. package/lib/auto-complete/style/index.css +7 -2
  143. package/lib/back-top/style/index.css +1 -1
  144. package/lib/breadcrumb/style/index.css +1 -1
  145. package/lib/button/base.js +7 -0
  146. package/lib/button/index.js +4 -4
  147. package/lib/button/style/index.css +1 -1
  148. package/lib/card/Card.vue.js +55 -13
  149. package/lib/carousel/style/index.css +1 -1
  150. package/lib/carousel/use-carousel-locale.js +9 -2
  151. package/lib/cascader/CascaderMenu.vue.js +2 -2
  152. package/lib/cascader/cascader-option.js +15 -6
  153. package/lib/cascader/field-adapter.js +1 -0
  154. package/lib/cascader/props.js +2 -0
  155. package/lib/cascader/style/index.css +36 -9
  156. package/lib/cascader/style/index.js +1 -0
  157. package/lib/cascader/use-cascader-focus.js +9 -6
  158. package/lib/checkbox/base.js +7 -0
  159. package/lib/checkbox/index.js +4 -4
  160. package/lib/checkbox/presentation.js +2 -2
  161. package/lib/checkbox/style/index.css +1 -1
  162. package/lib/countdown/use-countdown.js +9 -2
  163. package/lib/date/DatePanelActions.vue.js +4 -4
  164. package/lib/date/DateRangeQuickPanel.vue.js +2 -2
  165. package/lib/date/DateShortcuts.vue.js +2 -2
  166. package/lib/date/field-adapter.js +2 -3
  167. package/lib/date/picker-panels/DayPickerPanel2.vue.js +6 -7
  168. package/lib/date/picker-panels/MonthPickerPanel2.vue.js +7 -8
  169. package/lib/date/picker-panels/PanelHeader2.vue.js +6 -7
  170. package/lib/date/picker-panels/YearPickerPanel2.vue.js +2 -2
  171. package/lib/date/presentation/CalendarContent2.vue.js +13 -14
  172. package/lib/date/presentation/CalendarViewport.vue.js +2 -3
  173. package/lib/date/presentation/use-date-locale.js +2 -3
  174. package/lib/date/presentation/use-field-locale.js +5 -6
  175. package/lib/date/presentation/use-panel-actions-locale.js +4 -5
  176. package/lib/date-range/presentation/RangeContent2.vue.js +4 -5
  177. package/lib/dialog/Dialog.vue.js +3 -3
  178. package/lib/ellipsis/style/index.css +1 -1
  179. package/lib/fab/Fab.js +4 -5
  180. package/lib/form/FormItemLabel.vue.js +3 -2
  181. package/lib/form/focus-explicit-label.js +52 -0
  182. package/lib/input/base.js +7 -0
  183. package/lib/input/index.js +5 -5
  184. package/lib/locale/date-text.js +38 -0
  185. package/lib/locale/misc-text.js +23 -0
  186. package/lib/locale/temporal-text.js +22 -0
  187. package/lib/locale/zh-CN.js +234 -130
  188. package/lib/maple-vue.js +1 -1
  189. package/lib/maple.cjs.js +3637 -2963
  190. package/lib/maple.css +273 -207
  191. package/lib/nav-menu/style/index.css +1 -1
  192. package/lib/notice-bar/NoticeBar2.vue.js +2 -3
  193. package/lib/number-keyboard/NumberKeyboard2.vue.js +5 -6
  194. package/lib/pagination/PageInput.vue.js +2 -2
  195. package/lib/pagination/style/index.css +2 -2
  196. package/lib/people-select/PeopleSelect.js +34 -53
  197. package/lib/people-select/Person.vue.js +3 -3
  198. package/lib/people-select/emits.js +1 -1
  199. package/lib/people-select/people-select.js +6 -8
  200. package/lib/people-select/presentation.js +3 -1
  201. package/lib/people-select/props.js +9 -3
  202. package/lib/people-select/selection.js +64 -0
  203. package/lib/people-select/style/index.css +6 -0
  204. package/lib/picker/Picker.vue.js +2 -2
  205. package/lib/picker/Picker2.vue.js +4 -5
  206. package/lib/picker/base.js +7 -0
  207. package/lib/picker/index.js +5 -5
  208. package/lib/progress/style/index.css +2 -2
  209. package/lib/radio/style/index.css +1 -1
  210. package/lib/rate/style/index.css +2 -2
  211. package/lib/ripple/index.js +78 -0
  212. package/lib/search/HistoryContent.vue.js +4 -4
  213. package/lib/search/Search.vue.js +4 -4
  214. package/lib/search/props.js +1 -2
  215. package/lib/select/props.js +2 -0
  216. package/lib/select/select.js +14 -4
  217. package/lib/select/style/index.css +22 -12
  218. package/lib/select/use-select-controller.js +22 -2
  219. package/lib/slider/Slider.vue.js +42 -20
  220. package/lib/slider/SliderInput.vue.js +14 -2
  221. package/lib/slider/style/index.css +2 -2
  222. package/lib/steps/style/index.css +10 -10
  223. package/lib/switch/Switch.vue.js +11 -0
  224. package/lib/switch/style/index.css +1 -1
  225. package/lib/tab-bar/TabBar.vue.js +2 -2
  226. package/lib/tab-bar/style/index.css +2 -2
  227. package/lib/tabs/style/index.css +1 -1
  228. package/lib/tabs/use-tabs-configuration.js +2 -3
  229. package/lib/themes/alps-light/index.js +10 -11
  230. package/lib/themes/create-brand-dark.js +18 -0
  231. package/lib/themes/dark/breadcrumb-item.js +1 -1
  232. package/lib/themes/dark/cascader.js +1 -1
  233. package/lib/themes/dark/index.js +2 -2
  234. package/lib/themes/firefly-light/index.js +12 -13
  235. package/lib/themes/index.js +2 -2
  236. package/lib/themes/maple-light/index.js +2 -2
  237. package/lib/time/presentation/TimeFieldPanel.vue.js +2 -2
  238. package/lib/time/presentation/TimePanelContent2.vue.js +8 -9
  239. package/lib/time/presentation/use-field-locale.js +5 -6
  240. package/lib/time/props.js +1 -1
  241. package/lib/time-range/presentation/TimePanelContent2.vue.js +6 -7
  242. package/lib/time-range/props.js +1 -1
  243. package/lib/trigger/popup-move-focus.js +6 -6
  244. package/lib/trigger/position.js +48 -2
  245. package/lib/trigger/positioner.js +33 -4
  246. package/lib/trigger/trigger.js +1 -1
  247. package/lib/upload/Upload.vue.js +17 -1
  248. package/lib/upload/composables/use-upload-queue.js +10 -1
  249. package/lib/upload/composables/use-uploader.js +45 -11
  250. package/lib/upload/use-upload-locale.js +15 -11
  251. package/lib/utils/modal-focus.js +9 -2
  252. package/lib/utils/modal-surface.js +9 -3
  253. package/package.json +6 -6
  254. package/types/styleVars.d.ts +3 -0
  255. package/types-generated/_components/field-presentation/editor-pending.d.ts +3 -0
  256. package/types-generated/_components/field-presentation/with-field-presentation.d.ts +2 -0
  257. package/types-generated/_components/picker-field/range-labels.d.ts +1 -0
  258. package/types-generated/action-sheet/ActionSheet.vue.d.ts +2 -1
  259. package/types-generated/action-sheet/index.d.ts +1 -1
  260. package/types-generated/auto-complete/auto-complete.d.ts +13 -4
  261. package/types-generated/auto-complete/index.d.ts +30 -0
  262. package/types-generated/auto-complete/presentation.d.ts +9 -0
  263. package/types-generated/auto-complete/props.d.ts +5 -1
  264. package/types-generated/breadcrumb/index.d.ts +72 -2
  265. package/types-generated/button/base.d.ts +266 -0
  266. package/types-generated/button/index.d.ts +3 -1
  267. package/types-generated/cascader/Cascader.vue.d.ts +10 -1
  268. package/types-generated/cascader/CascaderPanel.vue.d.ts +1 -1
  269. package/types-generated/cascader/index.d.ts +39 -9
  270. package/types-generated/cascader/presentation.d.ts +18 -3
  271. package/types-generated/cascader/props.d.ts +5 -0
  272. package/types-generated/cascader/style/index.d.ts +1 -0
  273. package/types-generated/cascader/use-cascader-controller.d.ts +4 -0
  274. package/types-generated/checkbox/base.d.ts +361 -0
  275. package/types-generated/checkbox/index.d.ts +362 -3
  276. package/types-generated/date/picker-panels/DayPickerPanel.vue.d.ts +6 -248
  277. package/types-generated/date/picker-panels/MonthPickerPanel.vue.d.ts +8 -249
  278. package/types-generated/date/picker-panels/PanelHeader.vue.d.ts +3 -124
  279. package/types-generated/date/picker-panels/YearPickerPanel.vue.d.ts +6 -248
  280. package/types-generated/date/presentation/CalendarContent.vue.d.ts +1169 -966
  281. package/types-generated/date-range/presentation/RangeContent.vue.d.ts +2561 -1430
  282. package/types-generated/form/focus-explicit-label.d.ts +2 -0
  283. package/types-generated/index.d.ts +1 -1
  284. package/types-generated/input/base.d.ts +481 -0
  285. package/types-generated/input/index.d.ts +2 -0
  286. package/types-generated/locale/date-text.d.ts +2 -0
  287. package/types-generated/locale/misc-text.d.ts +2 -0
  288. package/types-generated/locale/temporal-text.d.ts +2 -0
  289. package/types-generated/maple-vue.d.ts +1 -1
  290. package/types-generated/menu/index.d.ts +1022 -2
  291. package/types-generated/people-select/PeopleSelect.d.ts +38 -16
  292. package/types-generated/people-select/emits.d.ts +3 -2
  293. package/types-generated/people-select/index.d.ts +135 -63
  294. package/types-generated/people-select/people-select.d.ts +47 -16
  295. package/types-generated/people-select/presentation.d.ts +46 -16
  296. package/types-generated/people-select/props.d.ts +18 -7
  297. package/types-generated/people-select/selection.d.ts +11 -0
  298. package/types-generated/people-select/types.d.ts +5 -1
  299. package/types-generated/picker/Picker.vue.d.ts +5 -125
  300. package/types-generated/picker/base.d.ts +2043 -0
  301. package/types-generated/picker/index.d.ts +1134 -206
  302. package/types-generated/radio/index.d.ts +365 -2
  303. package/types-generated/search/Search.vue.d.ts +2 -2
  304. package/types-generated/search/props.d.ts +1 -1
  305. package/types-generated/select/index.d.ts +30 -0
  306. package/types-generated/select/native-editor-owner.d.ts +1 -0
  307. package/types-generated/select/props.d.ts +6 -1
  308. package/types-generated/select/select.d.ts +9 -0
  309. package/types-generated/select/use-select-controller.d.ts +5 -0
  310. package/types-generated/slider/SliderInput.vue.d.ts +4 -0
  311. package/types-generated/themes/dark/cascader.d.ts +1 -1
  312. package/types-generated/themes/index.d.ts +2 -2
  313. package/types-generated/time/presentation/TimePanelContent.vue.d.ts +1117 -309
  314. package/types-generated/time/props.d.ts +3 -2
  315. package/types-generated/time-range/picker-props.d.ts +1 -1
  316. package/types-generated/time-range/presentation/TimePanelContent.vue.d.ts +1125 -317
  317. package/types-generated/time-range/props.d.ts +6 -5
  318. package/types-generated/trigger/position.d.ts +1 -0
  319. package/types-generated/upload/Upload.vue.d.ts +11 -11
  320. package/types-generated/upload/composables/use-upload-queue.d.ts +1 -0
  321. package/types-generated/upload/composables/use-uploader.d.ts +2 -0
  322. package/types-generated/utils/modal-focus.d.ts +1 -0
  323. package/umd/_components/selected-options/style/index.css +33 -15
  324. package/umd/auto-complete/style/index.css +7 -2
  325. package/umd/back-top/style/index.css +1 -1
  326. package/umd/breadcrumb/style/index.css +1 -1
  327. package/umd/button/style/index.css +1 -1
  328. package/umd/carousel/style/index.css +1 -1
  329. package/umd/cascader/style/index.css +36 -9
  330. package/umd/checkbox/style/index.css +1 -1
  331. package/umd/ellipsis/style/index.css +1 -1
  332. package/umd/maple.css +273 -207
  333. package/umd/maple.js +3 -3
  334. package/umd/nav-menu/style/index.css +1 -1
  335. package/umd/pagination/style/index.css +2 -2
  336. package/umd/people-select/style/index.css +6 -0
  337. package/umd/progress/style/index.css +2 -2
  338. package/umd/radio/style/index.css +1 -1
  339. package/umd/rate/style/index.css +2 -2
  340. package/umd/select/style/index.css +22 -12
  341. package/umd/slider/style/index.css +2 -2
  342. package/umd/steps/style/index.css +10 -10
  343. package/umd/switch/style/index.css +1 -1
  344. package/umd/tab-bar/style/index.css +2 -2
  345. package/umd/tabs/style/index.css +1 -1
@@ -99,14 +99,29 @@ function getScrollElements(element) {
99
99
  const visited = /* @__PURE__ */ new Set();
100
100
  while (root && !visited.has(root.ownerDocument)) {
101
101
  visited.add(root.ownerDocument);
102
- let current = root.parentElement;
102
+ const parent = (node) => {
103
+ if (node.assignedSlot) {
104
+ return node.assignedSlot;
105
+ }
106
+ if (node.parentElement) {
107
+ return node.parentElement;
108
+ }
109
+ const tree = node.getRootNode();
110
+ return tree.nodeType === 11 && "host" in tree ? tree.host : null;
111
+ };
112
+ let current = parent(root);
113
+ const ancestors = /* @__PURE__ */ new Set();
103
114
  while (current && current !== current.ownerDocument.documentElement) {
115
+ if (ancestors.has(current)) {
116
+ break;
117
+ }
118
+ ancestors.add(current);
104
119
  const style = current.ownerDocument.defaultView?.getComputedStyle(current);
105
120
  const overflow = `${style?.overflow ?? ""}${style?.overflowX ?? ""}${style?.overflowY ?? ""}`;
106
121
  if (/(auto|scroll|overlay)/.test(overflow)) {
107
122
  result.push(current);
108
123
  }
109
- current = current.parentElement;
124
+ current = parent(current);
110
125
  }
111
126
  try {
112
127
  root = root.ownerDocument.defaultView?.frameElement ?? void 0;
@@ -116,6 +131,36 @@ function getScrollElements(element) {
116
131
  }
117
132
  return result;
118
133
  }
134
+ function getSlotChangeRoots(element) {
135
+ const roots = [];
136
+ const visited = /* @__PURE__ */ new Set();
137
+ let current = element;
138
+ while (current && !visited.has(current)) {
139
+ visited.add(current);
140
+ const parentShadow = current.parentElement?.shadowRoot;
141
+ if (parentShadow) {
142
+ roots.push(parentShadow);
143
+ }
144
+ if (current.assignedSlot) {
145
+ current = current.assignedSlot;
146
+ } else if (current.parentElement) {
147
+ current = current.parentElement;
148
+ } else {
149
+ const tree = current.getRootNode();
150
+ if (tree.nodeType === 11 && "host" in tree) {
151
+ roots.push(tree);
152
+ current = tree.host;
153
+ } else {
154
+ try {
155
+ current = current.ownerDocument.defaultView?.frameElement;
156
+ } catch {
157
+ current = void 0;
158
+ }
159
+ }
160
+ }
161
+ }
162
+ return roots;
163
+ }
119
164
  function getScrollViews(element) {
120
165
  const result = [];
121
166
  let document = element?.ownerDocument;
@@ -137,3 +182,4 @@ function getScrollViews(element) {
137
182
  exports.calculatePopupPosition = calculatePopupPosition;
138
183
  exports.getScrollElements = getScrollElements;
139
184
  exports.getScrollViews = getScrollViews;
185
+ exports.getSlotChangeRoots = getSlotChangeRoots;
@@ -9,9 +9,11 @@ function rafThrottle(callback, ownerView) {
9
9
  let frame;
10
10
  let frameView;
11
11
  let latest;
12
+ let latestTarget;
12
13
  let generation = 0;
13
14
  const run = (event) => {
14
15
  latest = event;
16
+ latestTarget = event?.currentTarget ?? event?.target;
15
17
  if (frame !== void 0) {
16
18
  return;
17
19
  }
@@ -29,8 +31,10 @@ function rafThrottle(callback, ownerView) {
29
31
  frame = void 0;
30
32
  frameView = void 0;
31
33
  const currentEvent = latest;
34
+ const currentTarget = latestTarget;
32
35
  latest = void 0;
33
- callback(currentEvent);
36
+ latestTarget = void 0;
37
+ callback(currentEvent, currentTarget);
34
38
  });
35
39
  };
36
40
  run.cancel = () => {
@@ -41,6 +45,7 @@ function rafThrottle(callback, ownerView) {
41
45
  frame = void 0;
42
46
  frameView = void 0;
43
47
  latest = void 0;
48
+ latestTarget = void 0;
44
49
  };
45
50
  return run;
46
51
  }
@@ -56,6 +61,7 @@ function useTriggerPositioner(options, context) {
56
61
  let scrollPositions = /* @__PURE__ */ new WeakMap();
57
62
  let windowPositions = /* @__PURE__ */ new WeakMap();
58
63
  let scrollViews = [];
64
+ let slotRoots = [];
59
65
  function update() {
60
66
  const reference = context.reference.value;
61
67
  const popup = context.popup.value;
@@ -141,10 +147,10 @@ function useTriggerPositioner(options, context) {
141
147
  }
142
148
  }
143
149
  const scrolling = rafThrottle(
144
- (event) => {
150
+ (_event, eventTarget) => {
145
151
  const shouldClose = options.scrollToClose || context.globalScrollToClose.value;
146
- if (shouldClose && event?.target) {
147
- const target = event.target;
152
+ if (shouldClose && eventTarget) {
153
+ const target = eventTarget;
148
154
  const previous = scrollPositions.get(target) ?? [target.scrollTop, target.scrollLeft];
149
155
  scrollPositions.set(target, previous);
150
156
  if (Math.abs(target.scrollTop - previous[0]) >= options.scrollToCloseDistance || Math.abs(target.scrollLeft - previous[1]) >= options.scrollToCloseDistance) {
@@ -191,11 +197,30 @@ function useTriggerPositioner(options, context) {
191
197
  for (const view of scrollViews) {
192
198
  view.removeEventListener("scroll", onWindowScroll);
193
199
  }
200
+ for (const slot of slotRoots) {
201
+ slot.removeEventListener("slotchange", onSlotChange);
202
+ }
203
+ slotRoots = [];
194
204
  scrollViews = [];
195
205
  scrollElements = [];
196
206
  scrollPositions = /* @__PURE__ */ new WeakMap();
197
207
  windowPositions = /* @__PURE__ */ new WeakMap();
198
208
  }
209
+ function onSlotChange() {
210
+ positionGeneration++;
211
+ const reference = context.reference.value;
212
+ const popup = context.popup.value;
213
+ const nextElements = [.../* @__PURE__ */ new Set([...position.getScrollElements(reference), ...position.getScrollElements(popup)])];
214
+ const nextViews = [.../* @__PURE__ */ new Set([...position.getScrollViews(reference), ...position.getScrollViews(popup)])];
215
+ const nextRoots = [.../* @__PURE__ */ new Set([...position.getSlotChangeRoots(reference), ...position.getSlotChangeRoots(popup)])];
216
+ function changed(before, after) {
217
+ return before.length !== after.length || before.some((item, index) => item !== after[index]);
218
+ }
219
+ if (changed(scrollElements, nextElements) || changed(scrollViews, nextViews) || changed(slotRoots, nextRoots)) {
220
+ bindScroll();
221
+ }
222
+ vue.nextTick(update);
223
+ }
199
224
  function bindScroll() {
200
225
  unbindScroll();
201
226
  const reference = context.reference.value;
@@ -204,6 +229,10 @@ function useTriggerPositioner(options, context) {
204
229
  if (!active || !reference || !popup || !context.visible.value || suspended) {
205
230
  return;
206
231
  }
232
+ slotRoots = [.../* @__PURE__ */ new Set([...position.getSlotChangeRoots(reference), ...position.getSlotChangeRoots(popup)])];
233
+ for (const slot of slotRoots) {
234
+ slot.addEventListener("slotchange", onSlotChange);
235
+ }
207
236
  scrollElements = [.../* @__PURE__ */ new Set([...position.getScrollElements(reference), ...position.getScrollElements(popup)])];
208
237
  for (const element of scrollElements) {
209
238
  scrollPositions.set(element, [element.scrollTop, element.scrollLeft]);
@@ -164,7 +164,7 @@ const Trigger = /* @__PURE__ */ vue.defineComponent({
164
164
  });
165
165
  return () => {
166
166
  const referenceNodes = mergeFirstReferenceClass(slots.default?.() ?? [], visible.value ? props2.openedClass : void 0);
167
- const contentNodes = slots.content?.() ?? [];
167
+ const contentNodes = renderState.rendered.value ? slots.content?.() ?? [] : [];
168
168
  const hiddenByEmpty = props2.hideEmpty && isEmptyContent(contentNodes);
169
169
  nodes.value = referenceNodes;
170
170
  return vue.createVNode(vue.Fragment, null, [referenceNodes, vue.createVNode(vue.Teleport, {
@@ -2,6 +2,7 @@
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
3
  const vue = require("vue");
4
4
  const iconsVue = require("@maple-design/icons-vue");
5
+ const editorPending = require("../_components/field-presentation/editor-pending.js");
5
6
  const PendingFeedback_vue_vue_type_script_setup_true_lang = require("../_components/pending-feedback/PendingFeedback.vue.js");
6
7
  const errorDescription = require("../form/error-description.js");
7
8
  const preview = require("../image/preview.js");
@@ -135,6 +136,21 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
135
136
  }
136
137
  }
137
138
  });
139
+ const editorPending$1 = vue.inject(editorPending.fieldEditorControlPending, void 0);
140
+ vue.watch(
141
+ uploader.editorPending,
142
+ (value) => {
143
+ if (editorPending$1) {
144
+ editorPending$1.value = value;
145
+ }
146
+ },
147
+ { flush: "sync" }
148
+ );
149
+ vue.onBeforeUnmount(() => {
150
+ if (editorPending$1) {
151
+ editorPending$1.value = false;
152
+ }
153
+ });
138
154
  const {
139
155
  fileList,
140
156
  maxReached,
@@ -255,7 +271,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
255
271
  class: vue.normalizeClass(vue.unref(n)("input")),
256
272
  type: "file",
257
273
  accept: _ctx.accept,
258
- capture: _ctx.capture,
274
+ capture: _ctx.capture === false ? void 0 : _ctx.capture === true ? "" : _ctx.capture,
259
275
  multiple: !vue.unref(replacementTarget) && (_ctx.multiple || _ctx.directory),
260
276
  disabled: vue.unref(disabledState),
261
277
  webkitdirectory: !vue.unref(replacementTarget) && _ctx.directory || void 0,
@@ -4,10 +4,13 @@ const vue = require("vue");
4
4
  function useUploadQueue(options) {
5
5
  const inner = vue.ref((options.defaultValue?.() ?? []).map((file) => ({ ...file })));
6
6
  const fileList = vue.computed(() => options.modelValue?.() ?? inner.value);
7
+ let revision = 0;
7
8
  let pending;
8
9
  let pendingBase;
9
10
  const mutationList = () => pending && fileList.value === pendingBase ? pending : fileList.value;
10
11
  function commit(next, changed) {
12
+ const currentRevision = ++revision;
13
+ const startedActive = options.isActive?.() ?? true;
11
14
  pendingBase = fileList.value;
12
15
  pending = next;
13
16
  if (options.modelValue?.() === void 0) {
@@ -20,7 +23,9 @@ function useUploadQueue(options) {
20
23
  }
21
24
  });
22
25
  options.onUpdateModelValue?.(next);
23
- options.onChange?.(next, changed);
26
+ if (revision === currentRevision && (!startedActive || (options.isActive?.() ?? true))) {
27
+ options.onChange?.(next, changed);
28
+ }
24
29
  }
25
30
  function append(files) {
26
31
  if (files.length) {
@@ -66,6 +71,10 @@ function useUploadQueue(options) {
66
71
  function reset() {
67
72
  if (fileList.value.length) {
68
73
  commit([]);
74
+ } else {
75
+ revision++;
76
+ pending = void 0;
77
+ pendingBase = void 0;
69
78
  }
70
79
  }
71
80
  return {
@@ -11,6 +11,7 @@ const useFilePicker = require("./use-file-picker.js");
11
11
  const useUploadQueue = require("./use-upload-queue.js");
12
12
  function useUploader(options) {
13
13
  const feedback = usePendingFeedback.usePendingFeedback();
14
+ const preparation = usePendingFeedback.usePendingFeedback();
14
15
  let active = true;
15
16
  let inactive = false;
16
17
  let generation = 0;
@@ -28,7 +29,8 @@ function useUploader(options) {
28
29
  modelValue: options.modelValue,
29
30
  defaultValue: options.defaultValue,
30
31
  onChange: options.onChange,
31
- onUpdateModelValue: options.onUpdateModelValue
32
+ onUpdateModelValue: options.onUpdateModelValue,
33
+ isActive: () => active && !inactive
32
34
  });
33
35
  const replacementTarget = vue.ref();
34
36
  const metadataVersion = vue.ref(0);
@@ -204,8 +206,8 @@ function useUploader(options) {
204
206
  }
205
207
  function enqueue(files, rejected, previous) {
206
208
  const epoch = generation;
207
- adding = adding.then(() => prepareFiles(files, rejected, epoch, previous)).catch(() => {
208
- });
209
+ adding = preparation.track(() => adding.then(() => prepareFiles(files, rejected, epoch, previous)).catch(() => {
210
+ }));
209
211
  return adding;
210
212
  }
211
213
  async function prepareFiles(files, initialRejected, epoch, previous) {
@@ -223,7 +225,9 @@ function useUploader(options) {
223
225
  }
224
226
  }
225
227
  } catch {
226
- reject([...rejected, ...files.map((file) => ({ file, reason: "before-add" }))]);
228
+ if (valid(epoch)) {
229
+ reject([...rejected, ...files.map((file) => ({ file, reason: "before-add" }))]);
230
+ }
227
231
  return;
228
232
  }
229
233
  }
@@ -310,9 +314,17 @@ function useUploader(options) {
310
314
  return;
311
315
  }
312
316
  reject(rejected);
317
+ if (!valid(epoch)) {
318
+ items.forEach((item) => release(item.uid));
319
+ return;
320
+ }
313
321
  if (rejected.some((file) => file.reason === "max-files")) {
314
322
  options.onExceed?.(candidates, queue.fileList.value);
315
323
  }
324
+ if (!valid(epoch)) {
325
+ items.forEach((item) => release(item.uid));
326
+ return;
327
+ }
316
328
  if (!items.length) {
317
329
  return;
318
330
  }
@@ -334,11 +346,19 @@ function useUploader(options) {
334
346
  items.forEach((file) => pendingAuto.add(file.uid));
335
347
  if (previous) {
336
348
  queue.replace(previous, items[0]);
349
+ if (!valid(epoch)) {
350
+ return;
351
+ }
337
352
  options.onReplace?.(items[0], previous);
338
353
  } else {
339
354
  queue.append(items);
340
355
  }
341
- items.forEach((file) => options.onRead?.(vue.reactive(file)));
356
+ for (const file of items) {
357
+ if (!valid(epoch)) {
358
+ return;
359
+ }
360
+ options.onRead?.(vue.reactive(file));
361
+ }
342
362
  await vue.nextTick();
343
363
  }
344
364
  async function submit(file) {
@@ -352,6 +372,7 @@ function useUploader(options) {
352
372
  if (attempts.has(file.uid)) {
353
373
  return;
354
374
  }
375
+ const epoch = generation;
355
376
  const attempt = {};
356
377
  attempts.set(file.uid, attempt);
357
378
  const current = () => active && !inactive && attempts.get(file.uid) === attempt && queue.fileList.value.some(
@@ -396,7 +417,9 @@ function useUploader(options) {
396
417
  }
397
418
  const changed = { ...item, status: "uploading", percent: event.percent };
398
419
  queue.patch(file.uid, { status: changed.status, percent: changed.percent });
399
- options.onProgress?.(changed, event);
420
+ if (valid(epoch) && current()) {
421
+ options.onProgress?.(changed, event);
422
+ }
400
423
  };
401
424
  const handleSuccess = (response) => {
402
425
  if (!current()) {
@@ -405,7 +428,9 @@ function useUploader(options) {
405
428
  attempts.delete(file.uid);
406
429
  const changed = { ...item, status: "success", percent: 100, response };
407
430
  queue.patch(file.uid, { status: changed.status, percent: changed.percent, response });
408
- options.onSuccess?.(changed);
431
+ if (valid(epoch)) {
432
+ options.onSuccess?.(changed);
433
+ }
409
434
  };
410
435
  const handleError = (error) => {
411
436
  if (!current()) {
@@ -414,7 +439,9 @@ function useUploader(options) {
414
439
  attempts.delete(file.uid);
415
440
  const changed = { ...item, status: "error", percent: 0, error };
416
441
  queue.patch(file.uid, { status: changed.status, percent: changed.percent, error });
417
- options.onError?.(changed);
442
+ if (valid(epoch)) {
443
+ options.onError?.(changed);
444
+ }
418
445
  };
419
446
  const requestOptions = {
420
447
  action: options.action?.(),
@@ -447,7 +474,9 @@ function useUploader(options) {
447
474
  attempts.delete(file.uid);
448
475
  const changed = { ...item, status: "error", percent: 0, error };
449
476
  queue.patch(file.uid, changed);
450
- options.onError?.(changed);
477
+ if (valid(epoch)) {
478
+ options.onError?.(changed);
479
+ }
451
480
  }
452
481
  }
453
482
  function abort(file) {
@@ -483,7 +512,9 @@ function useUploader(options) {
483
512
  cancelAttempt(file.uid);
484
513
  pendingAuto.delete(file.uid);
485
514
  queue.remove(file);
486
- options.onRemove?.(file);
515
+ if (valid(epoch)) {
516
+ options.onRemove?.(file);
517
+ }
487
518
  } catch {
488
519
  } finally {
489
520
  if (removals.get(file.uid) === token) {
@@ -510,10 +541,11 @@ function useUploader(options) {
510
541
  });
511
542
  }
512
543
  function reset() {
513
- feedback.cancel();
514
544
  if (disabled.value) {
515
545
  return;
516
546
  }
547
+ feedback.cancel();
548
+ preparation.cancel();
517
549
  generation++;
518
550
  replacementTarget.value = void 0;
519
551
  adding = Promise.resolve();
@@ -564,6 +596,8 @@ function useUploader(options) {
564
596
  });
565
597
  return {
566
598
  guardPending: feedback.pending,
599
+ /** @internal Coordinates deferred field confirmation with file preparation. */
600
+ editorPending: vue.computed(() => feedback.pending.value || preparation.pending.value),
567
601
  fileList: queue.fileList,
568
602
  maxReached,
569
603
  disabled,
@@ -1,20 +1,24 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const vue = require("vue");
4
- require("../locale/index.js");
5
4
  const state = require("../locale/state.js");
5
+ const zhCN = require("../locale/zh-CN.js");
6
+ function text(key, fallback) {
7
+ const value = state.t(key);
8
+ return String(state.defaultLocaleReady.value ? value : value ?? fallback);
9
+ }
6
10
  function useUploadLocale() {
7
11
  return vue.computed(() => ({
8
- replace: String(state.t("upload.replace")),
9
- duration: String(state.t("upload.duration")),
10
- upload: String(state.t("upload.buttonText")),
11
- dropFiles: String(state.t("upload.drag")),
12
- preview: String(state.t("upload.preview")),
13
- download: String(state.t("upload.download")),
14
- cancel: String(state.t("upload.cancel")),
15
- retry: String(state.t("upload.retry")),
16
- remove: String(state.t("upload.delete")),
17
- close: String(state.t("upload.close"))
12
+ replace: text("upload.replace", zhCN.defaultUploadReplace),
13
+ duration: text("upload.duration", zhCN.defaultUploadDuration),
14
+ upload: text("upload.buttonText", zhCN.defaultUploadButtonText),
15
+ dropFiles: text("upload.drag", zhCN.defaultUploadDrag),
16
+ preview: text("upload.preview", zhCN.defaultUploadPreview),
17
+ download: text("upload.download", zhCN.defaultUploadDownload),
18
+ cancel: text("upload.cancel", zhCN.defaultUploadCancel),
19
+ retry: text("upload.retry", zhCN.defaultUploadRetry),
20
+ remove: text("upload.delete", zhCN.defaultUploadDelete),
21
+ close: text("upload.close", zhCN.defaultUploadClose)
18
22
  }));
19
23
  }
20
24
  exports.useUploadLocale = useUploadLocale;
@@ -72,6 +72,13 @@ function useModalFocus(root, active, isTop, lockScroll = () => true, ownerDocume
72
72
  target.focus({ preventScroll: true });
73
73
  }
74
74
  }
75
+ function focusAfterEnter() {
76
+ const doc = root()?.ownerDocument;
77
+ const current = doc?.activeElement;
78
+ if (!current || current === doc?.body || current === doc?.documentElement || previous.includes(current)) {
79
+ focus();
80
+ }
81
+ }
75
82
  function restore() {
76
83
  const focused = owner?.activeElement;
77
84
  const target = previous.find(restorable);
@@ -176,7 +183,7 @@ function useModalFocus(root, active, isTop, lockScroll = () => true, ownerDocume
176
183
  unbind();
177
184
  bind();
178
185
  }
179
- if (value) {
186
+ if (value && (!captured || root() !== element)) {
180
187
  capture();
181
188
  }
182
189
  },
@@ -207,6 +214,6 @@ function useModalFocus(root, active, isTop, lockScroll = () => true, ownerDocume
207
214
  unbind();
208
215
  restore();
209
216
  });
210
- return { focus, restore, trap };
217
+ return { focus, focusAfterEnter, restore, trap };
211
218
  }
212
219
  exports.useModalFocus = useModalFocus;
@@ -42,7 +42,7 @@ function useModalSurface(options) {
42
42
  const { zIndex: zIndex$1 } = zIndex.useZIndex(layerActive, 3);
43
43
  const mergedZIndex = vue.computed(() => options.zIndex() ?? zIndex$1.value);
44
44
  const { onStackTop } = popupLayer.usePopupLayer(layerActive, mergedZIndex, modalDocument);
45
- const { focus, restore } = modalFocus.useModalFocus(
45
+ const { focus, focusAfterEnter, restore } = modalFocus.useModalFocus(
46
46
  () => options.root.value?.querySelector("[data-modal-focus-root]") ?? options.root.value,
47
47
  () => mergedOpen.value,
48
48
  onStackTop,
@@ -52,7 +52,13 @@ function useModalSurface(options) {
52
52
  vue.watch(
53
53
  [popupContainerTarget, () => options.popupContainer() === false],
54
54
  () => {
55
- vue.nextTick(focus);
55
+ vue.nextTick(() => {
56
+ const doc = modalDocument();
57
+ const current = doc?.activeElement;
58
+ if (!current || current === doc?.body || current === doc?.documentElement) {
59
+ focus();
60
+ }
61
+ });
56
62
  },
57
63
  { flush: "post" }
58
64
  );
@@ -128,7 +134,7 @@ function useModalSurface(options) {
128
134
  vue.onBeforeUnmount(unbind);
129
135
  function opened() {
130
136
  if (mergedOpen.value) {
131
- focus();
137
+ focusAfterEnter();
132
138
  transition.opened();
133
139
  }
134
140
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maple-design/ui-vue",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "A Vue3 component library based on semantic tokens and brand themes, supporting mobile and desktop.",
5
5
  "keywords": [
6
6
  "Vue3",
@@ -67,9 +67,9 @@
67
67
  "dependencies": {
68
68
  "dayjs": "^1.11.13",
69
69
  "decimal.js": "^10.6.0",
70
- "@maple-design/shared-vue": "1.1.0",
71
- "@maple-design/use-vue": "1.1.0",
72
- "@maple-design/icons-vue": "1.1.1"
70
+ "@maple-design/shared-vue": "1.1.1",
71
+ "@maple-design/icons-vue": "1.1.2",
72
+ "@maple-design/use-vue": "1.1.1"
73
73
  },
74
74
  "devDependencies": {
75
75
  "@types/node": "^18.7.20",
@@ -85,8 +85,8 @@
85
85
  "vue": "3.5.13",
86
86
  "vue-router": "4.5.0",
87
87
  "zod": "^3.25.76",
88
- "@maple-design/cli-vue": "1.1.0",
89
- "@maple-design/touch-emulator-vue": "1.1.0"
88
+ "@maple-design/cli-vue": "1.1.1",
89
+ "@maple-design/touch-emulator-vue": "1.1.1"
90
90
  },
91
91
  "peerDependencies": {
92
92
  "vue": "^3.2.0"
@@ -1369,6 +1369,8 @@ interface BaseStyleVars {
1369
1369
  '--mp-select-popup-option-bg-disabled'?: string
1370
1370
  '--mp-select-popup-option-bg-hover'?: string
1371
1371
  '--mp-select-popup-option-bg-selected'?: string
1372
+ '--mp-select-popup-option-bg-selected-hover'?: string
1373
+ '--mp-select-popup-option-border-radius'?: string
1372
1374
  '--mp-select-popup-option-check-color'?: string
1373
1375
  '--mp-select-popup-option-check-gap'?: string
1374
1376
  '--mp-select-popup-option-check-size'?: string
@@ -1381,6 +1383,7 @@ interface BaseStyleVars {
1381
1383
  '--mp-select-popup-option-text-color-disabled'?: string
1382
1384
  '--mp-select-popup-option-text-color-hover'?: string
1383
1385
  '--mp-select-popup-option-text-color-selected'?: string
1386
+ '--mp-select-popup-padding-horizontal'?: string
1384
1387
  '--mp-select-popup-padding-vertical'?: string
1385
1388
  '--mp-signature-background-color'?: string
1386
1389
  '--mp-signature-border-radius'?: string
@@ -0,0 +1,3 @@
1
+ import type { InjectionKey, Ref } from 'vue';
2
+ /** Internal pending work of the control currently rendered by a field editor. */
3
+ export declare const fieldEditorControlPending: InjectionKey<Ref<boolean>>;
@@ -11,6 +11,8 @@ export interface FieldEditorContext {
11
11
  readonly: boolean;
12
12
  }
13
13
  export interface FieldPresentationAdapter {
14
+ /** Selection editors commit on a completed choice when confirmation is disabled. */
15
+ selectionConfirmation?: 'update' | 'select';
14
16
  /** Pause selection mutations during loading while leaving search text editable. */
15
17
  pauseSelectionWhileLoading?: boolean;
16
18
  /** Explicit completion notifications owned by final deferred acceptance. */
@@ -0,0 +1 @@
1
+ export declare function usePickerRangeLabels(kind: () => 'date' | 'time'): import("vue").ComputedRef<any[]>;
@@ -1,3 +1,4 @@
1
+ import { miscText as t } from '../locale/misc-text';
1
2
  import { type ActionItem } from './index';
2
3
  declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
3
4
  safeArea: BooleanConstructor;
@@ -53,7 +54,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
53
54
  [k: string]: unknown;
54
55
  }>;
55
56
  pt: ((id: string) => string | undefined) | null;
56
- t: (id: string) => any;
57
+ t: typeof t;
57
58
  n: (suffix?: string | undefined) => string;
58
59
  classes: (...names: (import("../utils/components").NamespaceClass | [unknown, import("../utils/components").NamespaceClass, import("../utils/components").NamespaceClass?])[]) => import("../utils/components").NamespaceClass[];
59
60
  handleSelect: (action: ActionItem) => void;
@@ -93,7 +93,7 @@ declare namespace ActionSheet {
93
93
  [k: string]: unknown;
94
94
  }>;
95
95
  pt: ((id: string) => string | undefined) | null;
96
- t: (id: string) => any;
96
+ t: typeof import("../locale/misc-text").miscText;
97
97
  n: (suffix?: string | undefined) => string;
98
98
  classes: (...names: (import("../utils/components").NamespaceClass | [unknown, import("../utils/components").NamespaceClass, import("../utils/components").NamespaceClass?])[]) => import("../utils/components").NamespaceClass[];
99
99
  handleSelect: (action: ActionItem) => void;
@@ -85,8 +85,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
85
85
  type: BooleanConstructor;
86
86
  default: boolean;
87
87
  };
88
- wordLength: import("vue").PropType<import("../input").WordLength>;
89
- wordSlice: import("vue").PropType<import("../input").WordSlice>;
88
+ wordLength: import("vue").PropType<import("..").WordLength>;
89
+ wordSlice: import("vue").PropType<import("..").WordSlice>;
90
90
  inputAttrs: import("vue").PropType<Record<string, unknown>>;
91
91
  editMode: {
92
92
  type: import("vue").PropType<import("../_components/field-presentation/context").FieldEditMode>;
@@ -111,6 +111,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
111
111
  default: undefined;
112
112
  };
113
113
  defaultOpen: BooleanConstructor;
114
+ needConfirm: {
115
+ type: BooleanConstructor;
116
+ default: undefined;
117
+ };
114
118
  searchDelay: {
115
119
  type: NumberConstructor;
116
120
  default: number;
@@ -219,8 +223,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
219
223
  type: BooleanConstructor;
220
224
  default: boolean;
221
225
  };
222
- wordLength: import("vue").PropType<import("../input").WordLength>;
223
- wordSlice: import("vue").PropType<import("../input").WordSlice>;
226
+ wordLength: import("vue").PropType<import("..").WordLength>;
227
+ wordSlice: import("vue").PropType<import("..").WordSlice>;
224
228
  inputAttrs: import("vue").PropType<Record<string, unknown>>;
225
229
  editMode: {
226
230
  type: import("vue").PropType<import("../_components/field-presentation/context").FieldEditMode>;
@@ -245,6 +249,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
245
249
  default: undefined;
246
250
  };
247
251
  defaultOpen: BooleanConstructor;
252
+ needConfirm: {
253
+ type: BooleanConstructor;
254
+ default: undefined;
255
+ };
248
256
  searchDelay: {
249
257
  type: NumberConstructor;
250
258
  default: number;
@@ -289,6 +297,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
289
297
  emptyText: string;
290
298
  maxLength: import("../utils/text-input-value").TextInputMaxLength;
291
299
  showWordLimit: boolean;
300
+ needConfirm: boolean;
292
301
  searchDelay: number;
293
302
  filterOption: import("./props").AutoCompleteFilterOption;
294
303
  caseSensitive: boolean;