@xihan-ui/vue 1.0.0-alpha.3 → 1.0.0

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 (458) hide show
  1. package/CHANGELOG.md +2057 -0
  2. package/dist/backgrounds.d.ts.map +1 -1
  3. package/dist/backgrounds.js +1 -5
  4. package/dist/backgrounds.js.map +1 -1
  5. package/dist/behavior.d.ts +38 -0
  6. package/dist/behavior.d.ts.map +1 -0
  7. package/dist/behavior.js +74 -0
  8. package/dist/behavior.js.map +1 -0
  9. package/dist/components/accordion/accordion.d.ts +1 -1
  10. package/dist/components/accordion/context.js +2 -2
  11. package/dist/components/accordion/context.js.map +1 -1
  12. package/dist/components/affix/context.js +1 -1
  13. package/dist/components/affix/context.js.map +1 -1
  14. package/dist/components/alert/context.js +1 -1
  15. package/dist/components/alert/context.js.map +1 -1
  16. package/dist/components/anchor/anchor.d.ts +2 -2
  17. package/dist/components/anchor/context.js +1 -1
  18. package/dist/components/anchor/context.js.map +1 -1
  19. package/dist/components/avatar/context.js +1 -1
  20. package/dist/components/avatar/context.js.map +1 -1
  21. package/dist/components/avatar-group/context.js +1 -1
  22. package/dist/components/avatar-group/context.js.map +1 -1
  23. package/dist/components/back-top/back-top.d.ts +2 -2
  24. package/dist/components/back-top/context.js +1 -1
  25. package/dist/components/back-top/context.js.map +1 -1
  26. package/dist/components/badge/badge.d.ts +142 -50
  27. package/dist/components/badge/badge.d.ts.map +1 -1
  28. package/dist/components/badge/badge.js +67 -37
  29. package/dist/components/badge/badge.js.map +1 -1
  30. package/dist/components/badge/context.js +15 -0
  31. package/dist/components/badge/context.js.map +1 -0
  32. package/dist/components/breadcrumb/breadcrumb.d.ts +1 -1
  33. package/dist/components/breadcrumb/context.js +1 -1
  34. package/dist/components/breadcrumb/context.js.map +1 -1
  35. package/dist/components/button-group/button-group.d.ts +1 -1
  36. package/dist/components/calendar/context.js +2 -2
  37. package/dist/components/calendar/context.js.map +1 -1
  38. package/dist/components/card/card.d.ts +1 -1
  39. package/dist/components/card/context.js +1 -1
  40. package/dist/components/card/context.js.map +1 -1
  41. package/dist/components/carousel/context.js +1 -1
  42. package/dist/components/carousel/context.js.map +1 -1
  43. package/dist/components/cascader/cascader.d.ts +4 -4
  44. package/dist/components/cascader/cascader.d.ts.map +1 -1
  45. package/dist/components/cascader/cascader.js +14 -4
  46. package/dist/components/cascader/cascader.js.map +1 -1
  47. package/dist/components/cascader/context.js +2 -2
  48. package/dist/components/cascader/context.js.map +1 -1
  49. package/dist/components/cascader/use-cascader.js +1 -1
  50. package/dist/components/cascader/use-cascader.js.map +1 -1
  51. package/dist/components/checkbox-group/context.js +2 -2
  52. package/dist/components/checkbox-group/context.js.map +1 -1
  53. package/dist/components/clipboard/context.js +1 -1
  54. package/dist/components/clipboard/context.js.map +1 -1
  55. package/dist/components/collapsible/context.js +1 -1
  56. package/dist/components/collapsible/context.js.map +1 -1
  57. package/dist/components/color-picker/color-picker.d.ts +12 -3
  58. package/dist/components/color-picker/color-picker.d.ts.map +1 -1
  59. package/dist/components/color-picker/color-picker.js +7 -1
  60. package/dist/components/color-picker/color-picker.js.map +1 -1
  61. package/dist/components/color-picker/context.js +2 -2
  62. package/dist/components/color-picker/context.js.map +1 -1
  63. package/dist/components/color-picker/use-color-picker.js +1 -1
  64. package/dist/components/color-picker/use-color-picker.js.map +1 -1
  65. package/dist/components/combobox/combobox.d.ts +3 -3
  66. package/dist/components/combobox/combobox.d.ts.map +1 -1
  67. package/dist/components/combobox/combobox.js +10 -4
  68. package/dist/components/combobox/combobox.js.map +1 -1
  69. package/dist/components/combobox/context.js +3 -3
  70. package/dist/components/combobox/context.js.map +1 -1
  71. package/dist/components/combobox/use-combobox.js +1 -1
  72. package/dist/components/combobox/use-combobox.js.map +1 -1
  73. package/dist/components/composer/context.js +1 -1
  74. package/dist/components/composer/context.js.map +1 -1
  75. package/dist/components/context-menu/context-menu.d.ts +4 -4
  76. package/dist/components/context-menu/context-menu.d.ts.map +1 -1
  77. package/dist/components/context-menu/context-menu.js +3 -1
  78. package/dist/components/context-menu/context-menu.js.map +1 -1
  79. package/dist/components/context-menu/context.js +5 -5
  80. package/dist/components/context-menu/context.js.map +1 -1
  81. package/dist/components/context-menu/use-context-menu.js +1 -1
  82. package/dist/components/context-menu/use-context-menu.js.map +1 -1
  83. package/dist/components/date-field/context.js +1 -1
  84. package/dist/components/date-field/context.js.map +1 -1
  85. package/dist/components/date-field/date-field.d.ts +2 -2
  86. package/dist/components/date-picker/context.js +13 -4
  87. package/dist/components/date-picker/context.js.map +1 -1
  88. package/dist/components/date-picker/date-picker.d.ts +80 -44
  89. package/dist/components/date-picker/date-picker.d.ts.map +1 -1
  90. package/dist/components/date-picker/date-picker.js +68 -26
  91. package/dist/components/date-picker/date-picker.js.map +1 -1
  92. package/dist/components/date-picker/use-date-picker.js +1 -1
  93. package/dist/components/date-picker/use-date-picker.js.map +1 -1
  94. package/dist/components/descriptions/context.js +1 -1
  95. package/dist/components/descriptions/context.js.map +1 -1
  96. package/dist/components/dialog/context.js +1 -1
  97. package/dist/components/dialog/context.js.map +1 -1
  98. package/dist/components/dialog/dialog.d.ts +1 -1
  99. package/dist/components/drawer/context.js +1 -1
  100. package/dist/components/drawer/context.js.map +1 -1
  101. package/dist/components/drawer/drawer.d.ts +2 -2
  102. package/dist/components/dynamic-input/context.js +2 -2
  103. package/dist/components/dynamic-input/context.js.map +1 -1
  104. package/dist/components/editable/context.js +1 -1
  105. package/dist/components/editable/context.js.map +1 -1
  106. package/dist/components/empty-state/context.js +1 -1
  107. package/dist/components/empty-state/context.js.map +1 -1
  108. package/dist/components/field/context.d.ts +9 -0
  109. package/dist/components/field/context.d.ts.map +1 -0
  110. package/dist/components/field/context.js +6 -2
  111. package/dist/components/field/context.js.map +1 -1
  112. package/dist/components/field/field.d.ts +26 -2
  113. package/dist/components/field/field.d.ts.map +1 -1
  114. package/dist/components/field/field.js +15 -4
  115. package/dist/components/field/field.js.map +1 -1
  116. package/dist/components/field/use-field-control.d.ts +41 -0
  117. package/dist/components/field/use-field-control.d.ts.map +1 -0
  118. package/dist/components/field/use-field-control.js +77 -0
  119. package/dist/components/field/use-field-control.js.map +1 -0
  120. package/dist/components/fieldset/context.js +1 -1
  121. package/dist/components/fieldset/context.js.map +1 -1
  122. package/dist/components/file-upload/context.js +2 -2
  123. package/dist/components/file-upload/context.js.map +1 -1
  124. package/dist/components/flex/flex.d.ts +9 -0
  125. package/dist/components/flex/flex.d.ts.map +1 -1
  126. package/dist/components/flex/flex.js +4 -0
  127. package/dist/components/flex/flex.js.map +1 -1
  128. package/dist/components/float-button/context.js +1 -1
  129. package/dist/components/float-button/context.js.map +1 -1
  130. package/dist/components/float-button/float-button.d.ts +2 -2
  131. package/dist/components/floating-panel/context.js +1 -1
  132. package/dist/components/floating-panel/context.js.map +1 -1
  133. package/dist/components/floating-panel/floating-panel.d.ts +1 -1
  134. package/dist/components/form/context.js +2 -2
  135. package/dist/components/form/context.js.map +1 -1
  136. package/dist/components/grid/context.js +1 -1
  137. package/dist/components/grid/context.js.map +1 -1
  138. package/dist/components/heatmap/context.js +3 -3
  139. package/dist/components/heatmap/context.js.map +1 -1
  140. package/dist/components/heatmap/heatmap.d.ts +1 -1
  141. package/dist/components/hotkeys/hotkeys.d.ts +3 -1
  142. package/dist/components/hotkeys/hotkeys.d.ts.map +1 -1
  143. package/dist/components/hotkeys/hotkeys.js +7 -25
  144. package/dist/components/hotkeys/hotkeys.js.map +1 -1
  145. package/dist/components/hotkeys/use-hotkeys.d.ts +31 -0
  146. package/dist/components/hotkeys/use-hotkeys.d.ts.map +1 -0
  147. package/dist/components/hotkeys/use-hotkeys.js +60 -0
  148. package/dist/components/hotkeys/use-hotkeys.js.map +1 -0
  149. package/dist/components/hover-card/context.js +1 -1
  150. package/dist/components/hover-card/context.js.map +1 -1
  151. package/dist/components/hover-card/hover-card.d.ts +2 -2
  152. package/dist/components/hover-card/hover-card.d.ts.map +1 -1
  153. package/dist/components/hover-card/hover-card.js +3 -1
  154. package/dist/components/hover-card/hover-card.js.map +1 -1
  155. package/dist/components/hover-card/use-hover-card.js +1 -1
  156. package/dist/components/hover-card/use-hover-card.js.map +1 -1
  157. package/dist/components/icon/icon.d.ts +1 -1
  158. package/dist/components/icon-wrapper/icon-wrapper.d.ts +1 -1
  159. package/dist/components/image/context.js +1 -1
  160. package/dist/components/image/context.js.map +1 -1
  161. package/dist/components/image-cropper/context.js +1 -1
  162. package/dist/components/image-cropper/context.js.map +1 -1
  163. package/dist/components/image-cropper/image-cropper.d.ts +1 -1
  164. package/dist/components/image-viewer/context.js +1 -1
  165. package/dist/components/image-viewer/context.js.map +1 -1
  166. package/dist/components/image-viewer/image-viewer.d.ts +2 -2
  167. package/dist/components/infinite-scroll/context.js +1 -1
  168. package/dist/components/infinite-scroll/context.js.map +1 -1
  169. package/dist/components/infinite-scroll/infinite-scroll.d.ts +1 -1
  170. package/dist/components/json-viewer/json-viewer.d.ts +12 -3
  171. package/dist/components/json-viewer/json-viewer.d.ts.map +1 -1
  172. package/dist/components/json-viewer/json-viewer.js +23 -2
  173. package/dist/components/json-viewer/json-viewer.js.map +1 -1
  174. package/dist/components/layout/context.js +1 -1
  175. package/dist/components/layout/context.js.map +1 -1
  176. package/dist/components/list/context.js +1 -1
  177. package/dist/components/list/context.js.map +1 -1
  178. package/dist/components/list/list.d.ts +1 -1
  179. package/dist/components/listbox/context.js +3 -3
  180. package/dist/components/listbox/context.js.map +1 -1
  181. package/dist/components/loading-bar/context.js +1 -1
  182. package/dist/components/loading-bar/context.js.map +1 -1
  183. package/dist/components/log/context.js +1 -1
  184. package/dist/components/log/context.js.map +1 -1
  185. package/dist/components/marquee/context.js +1 -1
  186. package/dist/components/marquee/context.js.map +1 -1
  187. package/dist/components/mention/context.js +2 -2
  188. package/dist/components/mention/context.js.map +1 -1
  189. package/dist/components/mention/mention.d.ts +2 -2
  190. package/dist/components/mention/mention.d.ts.map +1 -1
  191. package/dist/components/mention/mention.js +10 -4
  192. package/dist/components/mention/mention.js.map +1 -1
  193. package/dist/components/mention/use-mention.js +1 -1
  194. package/dist/components/mention/use-mention.js.map +1 -1
  195. package/dist/components/menu/context.js +4 -4
  196. package/dist/components/menu/context.js.map +1 -1
  197. package/dist/components/menu/menu.d.ts +3 -3
  198. package/dist/components/menu/menu.d.ts.map +1 -1
  199. package/dist/components/menu/menu.js +3 -1
  200. package/dist/components/menu/menu.js.map +1 -1
  201. package/dist/components/menu/use-menu.js +1 -1
  202. package/dist/components/menu/use-menu.js.map +1 -1
  203. package/dist/components/menubar/context.js +6 -6
  204. package/dist/components/menubar/context.js.map +1 -1
  205. package/dist/components/menubar/menubar.d.ts +2 -2
  206. package/dist/components/menubar/menubar.js.map +1 -1
  207. package/dist/components/navigation-menu/context.js +1 -1
  208. package/dist/components/navigation-menu/context.js.map +1 -1
  209. package/dist/components/navigation-menu/navigation-menu.d.ts +1 -1
  210. package/dist/components/notification/context.d.ts +23 -0
  211. package/dist/components/notification/context.d.ts.map +1 -0
  212. package/dist/components/notification/context.js +28 -0
  213. package/dist/components/notification/context.js.map +1 -0
  214. package/dist/components/notification/notification.d.ts +249 -0
  215. package/dist/components/notification/notification.d.ts.map +1 -0
  216. package/dist/components/notification/notification.js +179 -0
  217. package/dist/components/notification/notification.js.map +1 -0
  218. package/dist/components/notification/use-notification.d.ts +14 -0
  219. package/dist/components/notification/use-notification.d.ts.map +1 -0
  220. package/dist/components/notification/use-notification.js +42 -0
  221. package/dist/components/notification/use-notification.js.map +1 -0
  222. package/dist/components/number-animation/number-animation.d.ts +1 -1
  223. package/dist/components/number-field/context.js +1 -1
  224. package/dist/components/number-field/context.js.map +1 -1
  225. package/dist/components/number-field/number-field.d.ts +3 -3
  226. package/dist/components/number-field/number-field.d.ts.map +1 -1
  227. package/dist/components/number-field/number-field.js +7 -1
  228. package/dist/components/number-field/number-field.js.map +1 -1
  229. package/dist/components/page-header/context.js +1 -1
  230. package/dist/components/page-header/context.js.map +1 -1
  231. package/dist/components/pagination/context.js +1 -1
  232. package/dist/components/pagination/context.js.map +1 -1
  233. package/dist/components/pagination/pagination.d.ts +60 -6
  234. package/dist/components/pagination/pagination.d.ts.map +1 -1
  235. package/dist/components/pagination/pagination.js +85 -5
  236. package/dist/components/pagination/pagination.js.map +1 -1
  237. package/dist/components/pagination/use-pagination.d.ts +12 -2
  238. package/dist/components/pagination/use-pagination.d.ts.map +1 -1
  239. package/dist/components/pagination/use-pagination.js +50 -5
  240. package/dist/components/pagination/use-pagination.js.map +1 -1
  241. package/dist/components/password-input/context.js +1 -1
  242. package/dist/components/password-input/context.js.map +1 -1
  243. package/dist/components/password-input/password-input.d.ts +2 -2
  244. package/dist/components/password-input/password-input.d.ts.map +1 -1
  245. package/dist/components/password-input/password-input.js +7 -1
  246. package/dist/components/password-input/password-input.js.map +1 -1
  247. package/dist/components/pin-input/context.js +1 -1
  248. package/dist/components/pin-input/context.js.map +1 -1
  249. package/dist/components/pin-input/pin-input.d.ts +1 -1
  250. package/dist/components/popconfirm/context.js +1 -1
  251. package/dist/components/popconfirm/context.js.map +1 -1
  252. package/dist/components/popconfirm/popconfirm.d.ts +1 -1
  253. package/dist/components/popover/context.js +1 -1
  254. package/dist/components/popover/context.js.map +1 -1
  255. package/dist/components/popover/popover.d.ts +2 -2
  256. package/dist/components/popover/popover.d.ts.map +1 -1
  257. package/dist/components/popover/popover.js +3 -1
  258. package/dist/components/popover/popover.js.map +1 -1
  259. package/dist/components/popover/use-popover.js +1 -1
  260. package/dist/components/popover/use-popover.js.map +1 -1
  261. package/dist/components/popselect/context.js +2 -2
  262. package/dist/components/popselect/context.js.map +1 -1
  263. package/dist/components/popselect/popselect.d.ts +3 -3
  264. package/dist/components/popselect/popselect.d.ts.map +1 -1
  265. package/dist/components/popselect/popselect.js +3 -1
  266. package/dist/components/popselect/popselect.js.map +1 -1
  267. package/dist/components/popselect/use-popselect.js +1 -1
  268. package/dist/components/popselect/use-popselect.js.map +1 -1
  269. package/dist/components/progress/progress.d.ts +1 -1
  270. package/dist/components/qr-code/context.js +1 -1
  271. package/dist/components/qr-code/context.js.map +1 -1
  272. package/dist/components/radio-group/context.js +2 -2
  273. package/dist/components/radio-group/context.js.map +1 -1
  274. package/dist/components/radio-group/radio-group.d.ts +1 -1
  275. package/dist/components/rating/context.js +1 -1
  276. package/dist/components/rating/context.js.map +1 -1
  277. package/dist/components/rating/rating.d.ts +2 -2
  278. package/dist/components/result/context.js +1 -1
  279. package/dist/components/result/context.js.map +1 -1
  280. package/dist/components/scroll-area/context.js +2 -2
  281. package/dist/components/scroll-area/context.js.map +1 -1
  282. package/dist/components/scroll-area/scroll-area.d.ts +1 -1
  283. package/dist/components/scrollbar/context.js +1 -1
  284. package/dist/components/scrollbar/context.js.map +1 -1
  285. package/dist/components/scrollbar/scrollbar.d.ts +1 -1
  286. package/dist/components/segmented/context.js +2 -2
  287. package/dist/components/segmented/context.js.map +1 -1
  288. package/dist/components/segmented/segmented.d.ts +1 -1
  289. package/dist/components/select/context.js +3 -3
  290. package/dist/components/select/context.js.map +1 -1
  291. package/dist/components/select/select.d.ts +3 -3
  292. package/dist/components/select/select.d.ts.map +1 -1
  293. package/dist/components/select/select.js +7 -3
  294. package/dist/components/select/select.js.map +1 -1
  295. package/dist/components/side-nav/context.js +2 -2
  296. package/dist/components/side-nav/context.js.map +1 -1
  297. package/dist/components/side-nav/side-nav.d.ts +1 -1
  298. package/dist/components/signature-pad/context.js +1 -1
  299. package/dist/components/signature-pad/context.js.map +1 -1
  300. package/dist/components/skeleton/context.js +1 -1
  301. package/dist/components/skeleton/context.js.map +1 -1
  302. package/dist/components/slider/context.js +2 -2
  303. package/dist/components/slider/context.js.map +1 -1
  304. package/dist/components/slider/slider.d.ts +1 -1
  305. package/dist/components/space/context.js +1 -1
  306. package/dist/components/space/context.js.map +1 -1
  307. package/dist/components/space/space.d.ts +9 -0
  308. package/dist/components/space/space.d.ts.map +1 -1
  309. package/dist/components/space/space.js +4 -0
  310. package/dist/components/space/space.js.map +1 -1
  311. package/dist/components/spinner/context.js +1 -1
  312. package/dist/components/spinner/context.js.map +1 -1
  313. package/dist/components/spinner/spinner.d.ts +1 -1
  314. package/dist/components/splitter/context.js +1 -1
  315. package/dist/components/splitter/context.js.map +1 -1
  316. package/dist/components/statistic/context.js +1 -1
  317. package/dist/components/statistic/context.js.map +1 -1
  318. package/dist/components/statistic/statistic.d.ts +1 -1
  319. package/dist/components/steps/context.js +2 -2
  320. package/dist/components/steps/context.js.map +1 -1
  321. package/dist/components/steps/steps.d.ts +2 -2
  322. package/dist/components/table/context.js +4 -4
  323. package/dist/components/table/context.js.map +1 -1
  324. package/dist/components/table/table.d.ts +62 -3
  325. package/dist/components/table/table.d.ts.map +1 -1
  326. package/dist/components/table/table.js +37 -1
  327. package/dist/components/table/table.js.map +1 -1
  328. package/dist/components/table/use-table.d.ts +1 -1
  329. package/dist/components/table/use-table.d.ts.map +1 -1
  330. package/dist/components/table/use-table.js +3 -2
  331. package/dist/components/table/use-table.js.map +1 -1
  332. package/dist/components/tabs/context.js +1 -1
  333. package/dist/components/tabs/context.js.map +1 -1
  334. package/dist/components/tabs/tabs.d.ts +1 -1
  335. package/dist/components/tag/context.js +1 -1
  336. package/dist/components/tag/context.js.map +1 -1
  337. package/dist/components/tag/use-tag.js +14 -2
  338. package/dist/components/tag/use-tag.js.map +1 -1
  339. package/dist/components/tags-input/context.js +2 -2
  340. package/dist/components/tags-input/context.js.map +1 -1
  341. package/dist/components/tags-input/tags-input.d.ts +3 -3
  342. package/dist/components/tags-input/tags-input.d.ts.map +1 -1
  343. package/dist/components/tags-input/tags-input.js +7 -1
  344. package/dist/components/tags-input/tags-input.js.map +1 -1
  345. package/dist/components/text-field/context.js +1 -1
  346. package/dist/components/text-field/context.js.map +1 -1
  347. package/dist/components/text-field/text-field.d.ts +1 -1
  348. package/dist/components/text-field/text-field.d.ts.map +1 -1
  349. package/dist/components/text-field/text-field.js +7 -3
  350. package/dist/components/text-field/text-field.js.map +1 -1
  351. package/dist/components/thread/context.d.ts +7 -0
  352. package/dist/components/thread/context.d.ts.map +1 -0
  353. package/dist/components/thread/context.js +1 -1
  354. package/dist/components/thread/context.js.map +1 -1
  355. package/dist/components/time-field/context.js +1 -1
  356. package/dist/components/time-field/context.js.map +1 -1
  357. package/dist/components/time-field/time-field.d.ts +2 -2
  358. package/dist/components/time-picker/context.js +2 -2
  359. package/dist/components/time-picker/context.js.map +1 -1
  360. package/dist/components/time-picker/time-picker.d.ts +5 -5
  361. package/dist/components/time-picker/time-picker.d.ts.map +1 -1
  362. package/dist/components/time-picker/time-picker.js +10 -1
  363. package/dist/components/time-picker/time-picker.js.map +1 -1
  364. package/dist/components/time-picker/use-time-picker.d.ts +1 -0
  365. package/dist/components/time-picker/use-time-picker.d.ts.map +1 -1
  366. package/dist/components/time-picker/use-time-picker.js +3 -0
  367. package/dist/components/time-picker/use-time-picker.js.map +1 -1
  368. package/dist/components/timeline/context.js +2 -2
  369. package/dist/components/timeline/context.js.map +1 -1
  370. package/dist/components/timeline/timeline.d.ts +1 -1
  371. package/dist/components/timer/context.js +1 -1
  372. package/dist/components/timer/context.js.map +1 -1
  373. package/dist/components/toast/context.js +1 -1
  374. package/dist/components/toast/context.js.map +1 -1
  375. package/dist/components/toast/toast.d.ts +3 -15
  376. package/dist/components/toast/toast.d.ts.map +1 -1
  377. package/dist/components/toast/toast.js +1 -12
  378. package/dist/components/toast/toast.js.map +1 -1
  379. package/dist/components/toast/use-toast.d.ts.map +1 -1
  380. package/dist/components/toast/use-toast.js +1 -7
  381. package/dist/components/toast/use-toast.js.map +1 -1
  382. package/dist/components/toggle-group/context.js +1 -1
  383. package/dist/components/toggle-group/context.js.map +1 -1
  384. package/dist/components/toggle-group/toggle-group.d.ts +10 -1
  385. package/dist/components/toggle-group/toggle-group.d.ts.map +1 -1
  386. package/dist/components/toggle-group/toggle-group.js +4 -0
  387. package/dist/components/toggle-group/toggle-group.js.map +1 -1
  388. package/dist/components/toolbar/context.js +1 -1
  389. package/dist/components/toolbar/context.js.map +1 -1
  390. package/dist/components/toolbar/toolbar.d.ts +1 -1
  391. package/dist/components/tooltip/context.js +1 -1
  392. package/dist/components/tooltip/context.js.map +1 -1
  393. package/dist/components/tooltip/tooltip.d.ts +2 -2
  394. package/dist/components/tour/context.js +1 -1
  395. package/dist/components/tour/context.js.map +1 -1
  396. package/dist/components/tour/tour.d.ts +2 -2
  397. package/dist/components/transfer/context.js +3 -3
  398. package/dist/components/transfer/context.js.map +1 -1
  399. package/dist/components/tree/context.js +2 -2
  400. package/dist/components/tree/context.js.map +1 -1
  401. package/dist/components/tree/tree.d.ts +20 -0
  402. package/dist/components/tree/tree.d.ts.map +1 -1
  403. package/dist/components/tree/tree.js +9 -0
  404. package/dist/components/tree/tree.js.map +1 -1
  405. package/dist/components/tree-select/context.js +2 -2
  406. package/dist/components/tree-select/context.js.map +1 -1
  407. package/dist/components/tree-select/tree-select.d.ts +3 -3
  408. package/dist/components/tree-select/tree-select.d.ts.map +1 -1
  409. package/dist/components/tree-select/tree-select.js +14 -4
  410. package/dist/components/tree-select/tree-select.js.map +1 -1
  411. package/dist/components/tree-select/use-tree-select.js +1 -1
  412. package/dist/components/tree-select/use-tree-select.js.map +1 -1
  413. package/dist/components/typography/context.js +1 -1
  414. package/dist/components/typography/context.js.map +1 -1
  415. package/dist/components/virtualizer/context.js +1 -1
  416. package/dist/components/virtualizer/context.js.map +1 -1
  417. package/dist/components/watermark/context.js +1 -1
  418. package/dist/components/watermark/context.js.map +1 -1
  419. package/dist/config/config.js +1 -1
  420. package/dist/config/config.js.map +1 -1
  421. package/dist/index.d.ts +16 -9
  422. package/dist/index.js +15 -8
  423. package/dist/package.js +1 -1
  424. package/dist/runtime/use-scrollbars.js +66 -0
  425. package/dist/runtime/use-scrollbars.js.map +1 -0
  426. package/dist/services/dialog-service.d.ts +33 -8
  427. package/dist/services/dialog-service.d.ts.map +1 -1
  428. package/dist/services/dialog-service.js +44 -20
  429. package/dist/services/dialog-service.js.map +1 -1
  430. package/dist/services/glyph.js +41 -1
  431. package/dist/services/glyph.js.map +1 -1
  432. package/dist/services/loading-bar-service.d.ts +46 -0
  433. package/dist/services/loading-bar-service.d.ts.map +1 -0
  434. package/dist/services/loading-bar-service.js +70 -0
  435. package/dist/services/loading-bar-service.js.map +1 -0
  436. package/dist/services/mount-host.js +35 -0
  437. package/dist/services/mount-host.js.map +1 -0
  438. package/dist/services/notification-service.d.ts +46 -0
  439. package/dist/services/notification-service.d.ts.map +1 -0
  440. package/dist/services/notification-service.js +91 -0
  441. package/dist/services/notification-service.js.map +1 -0
  442. package/dist/services/service-config.js +16 -0
  443. package/dist/services/service-config.js.map +1 -0
  444. package/dist/services/toast-service.d.ts +20 -12
  445. package/dist/services/toast-service.d.ts.map +1 -1
  446. package/dist/services/toast-service.js +103 -50
  447. package/dist/services/toast-service.js.map +1 -1
  448. package/package.json +18 -14
  449. package/dist/components/toaster/context.js +0 -19
  450. package/dist/components/toaster/context.js.map +0 -1
  451. package/dist/components/toaster/toaster.d.ts +0 -135
  452. package/dist/components/toaster/toaster.d.ts.map +0 -1
  453. package/dist/components/toaster/toaster.js +0 -91
  454. package/dist/components/toaster/toaster.js.map +0 -1
  455. package/dist/components/toaster/use-toaster.d.ts +0 -15
  456. package/dist/components/toaster/use-toaster.d.ts.map +0 -1
  457. package/dist/components/toaster/use-toaster.js +0 -23
  458. package/dist/components/toaster/use-toaster.js.map +0 -1
package/dist/index.js CHANGED
@@ -18,7 +18,7 @@ import { XhAvatarFallback, XhAvatarImage, XhAvatarRoot } from "./components/avat
18
18
  import { provideBackTop, useBackTopContext } from "./components/back-top/context.js";
19
19
  import { useBackTop } from "./components/back-top/use-back-top.js";
20
20
  import { XhBackTopRoot, XhBackTopTrigger } from "./components/back-top/back-top.js";
21
- import { XhBadge } from "./components/badge/badge.js";
21
+ import { XhBadge, XhBadgeIndicator, XhBadgeRoot } from "./components/badge/badge.js";
22
22
  import { useBreadcrumb } from "./components/breadcrumb/use-breadcrumb.js";
23
23
  import { XhBreadcrumbEllipsis, XhBreadcrumbItem, XhBreadcrumbLink, XhBreadcrumbList, XhBreadcrumbRoot, XhBreadcrumbSeparator } from "./components/breadcrumb/breadcrumb.js";
24
24
  import { XhButton, XhButtonIndicator, XhButtonLabel, XhButtonPrefix, XhButtonSuffix } from "./components/button.js";
@@ -28,6 +28,10 @@ import { XhCalendarCell, XhCalendarCellTrigger, XhCalendarGrid, XhCalendarGridBo
28
28
  import { XhCardBody, XhCardCover, XhCardDescription, XhCardFooter, XhCardHeader, XhCardRoot, XhCardTitle } from "./components/card/card.js";
29
29
  import { useCarousel } from "./components/carousel/use-carousel.js";
30
30
  import { XhCarouselIndicator, XhCarouselIndicatorGroup, XhCarouselItem, XhCarouselItemGroup, XhCarouselNextTrigger, XhCarouselPrevTrigger, XhCarouselRoot, XhCarouselViewport } from "./components/carousel/carousel.js";
31
+ import { provideField, useFieldContext, useOptionalFieldContext } from "./components/field/context.js";
32
+ import { useField } from "./components/field/use-field.js";
33
+ import { XhFieldControl, XhFieldDescription, XhFieldErrorText, XhFieldLabel, XhFieldRoot } from "./components/field/field.js";
34
+ import { useFieldControl, useFieldLabelWiring, useFieldStateWiring } from "./components/field/use-field-control.js";
31
35
  import { useCascader } from "./components/cascader/use-cascader.js";
32
36
  import { XhCascaderClearTrigger, XhCascaderColumn, XhCascaderContent, XhCascaderControl, XhCascaderIndicator, XhCascaderInput, XhCascaderItem, XhCascaderItemIndicator, XhCascaderItemText, XhCascaderLabel, XhCascaderPositioner, XhCascaderRoot, XhCascaderSearchList, XhCascaderTrigger, XhCascaderValueText } from "./components/cascader/cascader.js";
33
37
  import { useCheckboxGroup } from "./components/checkbox-group/use-checkbox-group.js";
@@ -71,8 +75,6 @@ import { XhEditableArea, XhEditableCancelTrigger, XhEditableControl, XhEditableE
71
75
  import { useEllipsis } from "./components/ellipsis/use-ellipsis.js";
72
76
  import { XhEllipsis } from "./components/ellipsis/ellipsis.js";
73
77
  import { XhEmptyStateAction, XhEmptyStateDescription, XhEmptyStateIcon, XhEmptyStateRoot, XhEmptyStateTitle } from "./components/empty-state/empty-state.js";
74
- import { useField } from "./components/field/use-field.js";
75
- import { XhFieldControl, XhFieldDescription, XhFieldErrorText, XhFieldLabel, XhFieldRoot } from "./components/field/field.js";
76
78
  import { useFieldsetContext } from "./components/fieldset/context.js";
77
79
  import { useFieldset } from "./components/fieldset/use-fieldset.js";
78
80
  import { XhFieldsetErrorText, XhFieldsetHelperText, XhFieldsetLegend, XhFieldsetRoot } from "./components/fieldset/fieldset.js";
@@ -94,6 +96,7 @@ import { useHeatmapContext } from "./components/heatmap/context.js";
94
96
  import { useHeatmap } from "./components/heatmap/use-heatmap.js";
95
97
  import { XhHeatmapCell, XhHeatmapColumnLabel, XhHeatmapGrid, XhHeatmapLegend, XhHeatmapLegendItem, XhHeatmapLegendLabel, XhHeatmapMonthBlock, XhHeatmapMonthLabel, XhHeatmapRoot, XhHeatmapRow, XhHeatmapRowLabel, XhHeatmapTooltip, XhHeatmapWeekDayLabel } from "./components/heatmap/heatmap.js";
96
98
  import { XhHighlight } from "./components/highlight/highlight.js";
99
+ import { useHotkeys } from "./components/hotkeys/use-hotkeys.js";
97
100
  import { XhHotkeys } from "./components/hotkeys/hotkeys.js";
98
101
  import { useHoverCard } from "./components/hover-card/use-hover-card.js";
99
102
  import { XhHoverCardArrow, XhHoverCardContent, XhHoverCardPositioner, XhHoverCardRoot, XhHoverCardTrigger } from "./components/hover-card/hover-card.js";
@@ -137,13 +140,16 @@ import { useMenubar } from "./components/menubar/use-menubar.js";
137
140
  import { XhMenubarContent, XhMenubarGroup, XhMenubarGroupLabel, XhMenubarItem, XhMenubarItemIndicator, XhMenubarItemText, XhMenubarPositioner, XhMenubarRoot, XhMenubarSeparator, XhMenubarSub, XhMenubarSubTrigger, XhMenubarTrigger } from "./components/menubar/menubar.js";
138
141
  import { useNavigationMenu } from "./components/navigation-menu/use-navigation-menu.js";
139
142
  import { XhNavigationMenuContent, XhNavigationMenuIndicator, XhNavigationMenuItem, XhNavigationMenuLink, XhNavigationMenuList, XhNavigationMenuRoot, XhNavigationMenuTrigger, XhNavigationMenuViewport } from "./components/navigation-menu/navigation-menu.js";
143
+ import { provideNotification, provideNotificationItem, useNotificationContext, useNotificationContextOptional, useNotificationItemContext } from "./components/notification/context.js";
144
+ import { useNotification, useNotificationItem } from "./components/notification/use-notification.js";
145
+ import { XhNotificationGroup, XhNotificationItem, XhNotificationItemActionTrigger, XhNotificationItemCloseTrigger, XhNotificationItemDescription, XhNotificationItemIndicator, XhNotificationItemTitle, XhNotificationRoot } from "./components/notification/notification.js";
140
146
  import { XhNumberAnimation } from "./components/number-animation/number-animation.js";
141
147
  import { useNumberField } from "./components/number-field/use-number-field.js";
142
148
  import { XhNumberFieldControl, XhNumberFieldDecrementTrigger, XhNumberFieldIncrementTrigger, XhNumberFieldInput, XhNumberFieldLabel, XhNumberFieldRoot } from "./components/number-field/number-field.js";
143
149
  import { providePageHeader, usePageHeaderContext } from "./components/page-header/context.js";
144
150
  import { XhPageHeaderBackTrigger, XhPageHeaderExtra, XhPageHeaderFooter, XhPageHeaderRoot, XhPageHeaderSubtitle, XhPageHeaderTitle } from "./components/page-header/page-header.js";
145
151
  import { usePagination } from "./components/pagination/use-pagination.js";
146
- import { XhPaginationEllipsis, XhPaginationItem, XhPaginationNextTrigger, XhPaginationPrevTrigger, XhPaginationRoot } from "./components/pagination/pagination.js";
152
+ import { XhPaginationContent, XhPaginationEllipsis, XhPaginationItem, XhPaginationNextTrigger, XhPaginationPageSizeSelect, XhPaginationPositioner, XhPaginationPrevTrigger, XhPaginationRoot } from "./components/pagination/pagination.js";
147
153
  import { usePasswordInputContext } from "./components/password-input/context.js";
148
154
  import { usePasswordInput } from "./components/password-input/use-password-input.js";
149
155
  import { XhPasswordInputCapsLockIndicator, XhPasswordInputControl, XhPasswordInputInput, XhPasswordInputLabel, XhPasswordInputRoot, XhPasswordInputVisibilityTrigger } from "./components/password-input/password-input.js";
@@ -208,6 +214,7 @@ import { useTagsInput } from "./components/tags-input/use-tags-input.js";
208
214
  import { XhTagsInputClearTrigger, XhTagsInputControl, XhTagsInputHiddenInput, XhTagsInputInput, XhTagsInputItem, XhTagsInputItemDeleteTrigger, XhTagsInputItemInput, XhTagsInputItemPreview, XhTagsInputItemText, XhTagsInputLabel, XhTagsInputRoot } from "./components/tags-input/tags-input.js";
209
215
  import { useTextField } from "./components/text-field/use-text-field.js";
210
216
  import { XhTextFieldClearTrigger, XhTextFieldControl, XhTextFieldInput, XhTextFieldLabel, XhTextFieldRoot } from "./components/text-field/text-field.js";
217
+ import { provideThread, useThreadContext } from "./components/thread/context.js";
211
218
  import { useThread } from "./components/thread/use-thread.js";
212
219
  import { XhThreadContent, XhThreadLiveRegion, XhThreadRoot, XhThreadScrollButton, XhThreadViewport } from "./components/thread/thread.js";
213
220
  import { useTimeField } from "./components/time-field/use-time-field.js";
@@ -221,9 +228,7 @@ import { useTimerContext } from "./components/timer/context.js";
221
228
  import { useTimer } from "./components/timer/use-timer.js";
222
229
  import { XhTimerArea, XhTimerControl, XhTimerItem, XhTimerRoot, XhTimerSeparator } from "./components/timer/timer.js";
223
230
  import { useToast } from "./components/toast/use-toast.js";
224
- import { XhToastActionTrigger, XhToastCloseTrigger, XhToastDescription, XhToastRoot, XhToastTitle } from "./components/toast/toast.js";
225
- import { useToaster } from "./components/toaster/use-toaster.js";
226
- import { XhToasterGroup, XhToasterRoot } from "./components/toaster/toaster.js";
231
+ import { XhToastActionTrigger, XhToastCloseTrigger, XhToastRoot, XhToastTitle } from "./components/toast/toast.js";
227
232
  import { useToggleGroup } from "./components/toggle-group/use-toggle-group.js";
228
233
  import { XhToggleGroupItem, XhToggleGroupRoot } from "./components/toggle-group/toggle-group.js";
229
234
  import { useToggle } from "./components/toggle/use-toggle.js";
@@ -247,5 +252,7 @@ import { XhVirtualizerContent, XhVirtualizerItem, XhVirtualizerRoot, XhVirtualiz
247
252
  import { provideWatermark, useWatermarkContext } from "./components/watermark/context.js";
248
253
  import { XhWatermarkContent, XhWatermarkRoot } from "./components/watermark/watermark.js";
249
254
  import { createDialogService } from "./services/dialog-service.js";
255
+ import { createLoadingBarService } from "./services/loading-bar-service.js";
256
+ import { createNotificationService } from "./services/notification-service.js";
250
257
  import { createToastService } from "./services/toast-service.js";
251
- export { XhAccordionContent, XhAccordionHeader, XhAccordionIndicator, XhAccordionItem, XhAccordionRoot, XhAccordionTrigger, XhAffixContent, XhAffixRoot, XhAlertCloseTrigger, XhAlertDescription, XhAlertIcon, XhAlertRoot, XhAlertTitle, XhAnchorIndicator, XhAnchorItem, XhAnchorLink, XhAnchorList, XhAnchorRoot, XhAvatarFallback, XhAvatarGroupOverflow, XhAvatarGroupRoot, XhAvatarImage, XhAvatarRoot, XhBackTopRoot, XhBackTopTrigger, XhBadge, XhBreadcrumbEllipsis, XhBreadcrumbItem, XhBreadcrumbLink, XhBreadcrumbList, XhBreadcrumbRoot, XhBreadcrumbSeparator, XhButton, XhButtonGroup, XhButtonIndicator, XhButtonLabel, XhButtonPrefix, XhButtonSuffix, XhCalendarCell, XhCalendarCellTrigger, XhCalendarGrid, XhCalendarGridBody, XhCalendarGridHead, XhCalendarHeader, XhCalendarHeading, XhCalendarHeadingMonthTrigger, XhCalendarHeadingYearTrigger, XhCalendarNextTrigger, XhCalendarNextYearTrigger, XhCalendarPrevTrigger, XhCalendarPrevYearTrigger, XhCalendarRoot, XhCalendarWeekDay, XhCalendarWeekNumber, XhCalendarWeekRow, XhCardBody, XhCardCover, XhCardDescription, XhCardFooter, XhCardHeader, XhCardRoot, XhCardTitle, XhCarouselIndicator, XhCarouselIndicatorGroup, XhCarouselItem, XhCarouselItemGroup, XhCarouselNextTrigger, XhCarouselPrevTrigger, XhCarouselRoot, XhCarouselViewport, XhCascaderClearTrigger, XhCascaderColumn, XhCascaderContent, XhCascaderControl, XhCascaderIndicator, XhCascaderInput, XhCascaderItem, XhCascaderItemIndicator, XhCascaderItemText, XhCascaderLabel, XhCascaderPositioner, XhCascaderRoot, XhCascaderSearchList, XhCascaderTrigger, XhCascaderValueText, XhCheckbox, XhCheckboxGroupIndicator, XhCheckboxGroupItem, XhCheckboxGroupItemText, XhCheckboxGroupLabel, XhCheckboxGroupRoot, XhCheckboxGroupTrigger, XhClipboardControl, XhClipboardIndicator, XhClipboardInput, XhClipboardLabel, XhClipboardRoot, XhClipboardTrigger, XhCodeBlock, XhCollapsibleContent, XhCollapsibleRoot, XhCollapsibleTrigger, XhColorPickerArea, XhColorPickerAreaThumb, XhColorPickerChannelInput, XhColorPickerChannelSlider, XhColorPickerChannelSliderThumb, XhColorPickerChannelSliderTrack, XhColorPickerContent, XhColorPickerControl, XhColorPickerEyeDropperTrigger, XhColorPickerHiddenInput, XhColorPickerLabel, XhColorPickerPositioner, XhColorPickerRoot, XhColorPickerSwatch, XhColorPickerSwatchGroup, XhColorPickerSwatchItem, XhColorPickerTrigger, XhColorPickerValueText, XhComboboxClearTrigger, XhComboboxContent, XhComboboxControl, XhComboboxEmpty, XhComboboxHiddenInput, XhComboboxInput, XhComboboxItem, XhComboboxItemGroup, XhComboboxItemGroupLabel, XhComboboxItemIndicator, XhComboboxItemText, XhComboboxLabel, XhComboboxPositioner, XhComboboxRoot, XhComboboxTrigger, XhComposerInput, XhComposerRoot, XhComposerSubmitTrigger, XhContextMenuArrow, XhContextMenuContent, XhContextMenuGroup, XhContextMenuGroupLabel, XhContextMenuItem, XhContextMenuItemIndicator, XhContextMenuItemText, XhContextMenuPositioner, XhContextMenuRoot, XhContextMenuSeparator, XhContextMenuSub, XhContextMenuSubTrigger, XhContextMenuTrigger, XhCountdown, XhDateFieldClearTrigger, XhDateFieldControl, XhDateFieldHiddenInput, XhDateFieldLabel, XhDateFieldRoot, XhDateFieldSegment, XhDateFieldSegmentGroup, XhDatePickerCalendar, XhDatePickerCell, XhDatePickerCellTrigger, XhDatePickerClearTrigger, XhDatePickerConfirmTrigger, XhDatePickerContent, XhDatePickerControl, XhDatePickerGrid, XhDatePickerGridBody, XhDatePickerGridHead, XhDatePickerHeader, XhDatePickerHeading, XhDatePickerHeadingMonthTrigger, XhDatePickerHeadingYearTrigger, XhDatePickerHiddenInput, XhDatePickerLabel, XhDatePickerNextTrigger, XhDatePickerNextYearTrigger, XhDatePickerPositioner, XhDatePickerPreset, XhDatePickerPresets, XhDatePickerPrevTrigger, XhDatePickerPrevYearTrigger, XhDatePickerRoot, XhDatePickerSegment, XhDatePickerSegmentGroup, XhDatePickerTimePanel, XhDatePickerTrigger, XhDatePickerWeekDay, XhDatePickerWeekNumber, XhDatePickerWeekRow, XhDescriptionsItem, XhDescriptionsLabel, XhDescriptionsRoot, XhDescriptionsValue, XhDialogCloseTrigger, XhDialogContent, XhDialogDescription, XhDialogRoot, XhDialogTitle, XhDialogTrigger, XhDownloadTrigger, XhDrawerCloseTrigger, XhDrawerContent, XhDrawerDescription, XhDrawerRoot, XhDrawerTitle, XhDrawerTrigger, XhDynamicInputAddTrigger, XhDynamicInputItem, XhDynamicInputItemAction, XhDynamicInputItemContent, XhDynamicInputItemDeleteTrigger, XhDynamicInputMoveDownTrigger, XhDynamicInputMoveUpTrigger, XhDynamicInputRoot, XhEditableArea, XhEditableCancelTrigger, XhEditableControl, XhEditableEditTrigger, XhEditableInput, XhEditableLabel, XhEditablePreview, XhEditableRoot, XhEditableSubmitTrigger, XhEllipsis, XhEmptyStateAction, XhEmptyStateDescription, XhEmptyStateIcon, XhEmptyStateRoot, XhEmptyStateTitle, XhFieldControl, XhFieldDescription, XhFieldErrorText, XhFieldLabel, XhFieldRoot, XhFieldsetErrorText, XhFieldsetHelperText, XhFieldsetLegend, XhFieldsetRoot, XhFileUploadClearTrigger, XhFileUploadDropzone, XhFileUploadHiddenInput, XhFileUploadItem, XhFileUploadItemDeleteTrigger, XhFileUploadItemGroup, XhFileUploadItemName, XhFileUploadItemPreview, XhFileUploadItemSizeText, XhFileUploadLabel, XhFileUploadRoot, XhFileUploadTrigger, XhFlex, XhFloatButtonList, XhFloatButtonRoot, XhFloatButtonTrigger, XhFloatingPanelBody, XhFloatingPanelCloseTrigger, XhFloatingPanelContent, XhFloatingPanelDragTrigger, XhFloatingPanelHeader, XhFloatingPanelPositioner, XhFloatingPanelResizeTrigger, XhFloatingPanelRoot, XhFloatingPanelStageTrigger, XhFloatingPanelTitle, XhFloatingPanelTrigger, XhFormErrorSummary, XhFormErrorSummaryItem, XhFormFieldGroup, XhFormResetTrigger, XhFormRoot, XhFormSubmitTrigger, XhGradientText, XhGridItem, XhGridRoot, XhHeatmapCell, XhHeatmapColumnLabel, XhHeatmapGrid, XhHeatmapLegend, XhHeatmapLegendItem, XhHeatmapLegendLabel, XhHeatmapMonthBlock, XhHeatmapMonthLabel, XhHeatmapRoot, XhHeatmapRow, XhHeatmapRowLabel, XhHeatmapTooltip, XhHeatmapWeekDayLabel, XhHighlight, XhHotkeys, XhHoverCardArrow, XhHoverCardContent, XhHoverCardPositioner, XhHoverCardRoot, XhHoverCardTrigger, XhIcon, XhIconWrapper, XhImageCropperCropArea, XhImageCropperCropHandle, XhImageCropperGrid, XhImageCropperHiddenInput, XhImageCropperImage, XhImageCropperRoot, XhImageCropperViewport, XhImageFallback, XhImageImage, XhImageRoot, XhImageViewerCloseTrigger, XhImageViewerContent, XhImageViewerCounter, XhImageViewerFlipHorizontalTrigger, XhImageViewerFlipVerticalTrigger, XhImageViewerImage, XhImageViewerNextTrigger, XhImageViewerPrevTrigger, XhImageViewerResetTrigger, XhImageViewerRoot, XhImageViewerRotateLeftTrigger, XhImageViewerRotateRightTrigger, XhImageViewerToolbar, XhImageViewerTrigger, XhImageViewerViewport, XhImageViewerZoomInTrigger, XhImageViewerZoomOutTrigger, XhInfiniteScrollRoot, XhInfiniteScrollSentinel, XhJsonViewerRoot, XhLayoutContent, XhLayoutFooter, XhLayoutHeader, XhLayoutRoot, XhLayoutSider, XhLayoutSiderTrigger, XhListItem, XhListItemAction, XhListItemContent, XhListItemDescription, XhListItemMedia, XhListItemTitle, XhListRoot, XhListboxContent, XhListboxItem, XhListboxItemGroup, XhListboxItemGroupLabel, XhListboxItemIndicator, XhListboxItemText, XhListboxLabel, XhListboxRoot, XhLoadingBarRange, XhLoadingBarRoot, XhLoadingBarTrack, XhLogContent, XhLogLine, XhLogRoot, XhLogViewport, XhMarqueeContent, XhMarqueeRoot, XhMasonry, XhMentionContent, XhMentionInput, XhMentionItem, XhMentionItemText, XhMentionPositioner, XhMentionRoot, XhMenuArrow, XhMenuContent, XhMenuGroup, XhMenuGroupLabel, XhMenuItem, XhMenuPositioner, XhMenuRoot, XhMenuSeparator, XhMenuSub, XhMenuSubTrigger, XhMenuTrigger, XhMenubarContent, XhMenubarGroup, XhMenubarGroupLabel, XhMenubarItem, XhMenubarItemIndicator, XhMenubarItemText, XhMenubarPositioner, XhMenubarRoot, XhMenubarSeparator, XhMenubarSub, XhMenubarSubTrigger, XhMenubarTrigger, XhNavigationMenuContent, XhNavigationMenuIndicator, XhNavigationMenuItem, XhNavigationMenuLink, XhNavigationMenuList, XhNavigationMenuRoot, XhNavigationMenuTrigger, XhNavigationMenuViewport, XhNumberAnimation, XhNumberFieldControl, XhNumberFieldDecrementTrigger, XhNumberFieldIncrementTrigger, XhNumberFieldInput, XhNumberFieldLabel, XhNumberFieldRoot, XhPageHeaderBackTrigger, XhPageHeaderExtra, XhPageHeaderFooter, XhPageHeaderRoot, XhPageHeaderSubtitle, XhPageHeaderTitle, XhPaginationEllipsis, XhPaginationItem, XhPaginationNextTrigger, XhPaginationPrevTrigger, XhPaginationRoot, XhPasswordInputCapsLockIndicator, XhPasswordInputControl, XhPasswordInputInput, XhPasswordInputLabel, XhPasswordInputRoot, XhPasswordInputVisibilityTrigger, XhPinInputHiddenInput, XhPinInputInput, XhPinInputLabel, XhPinInputRoot, XhPopconfirmCancelTrigger, XhPopconfirmConfirmTrigger, XhPopconfirmContent, XhPopconfirmDescription, XhPopconfirmPositioner, XhPopconfirmRoot, XhPopconfirmTitle, XhPopconfirmTrigger, XhPopoverArrow, XhPopoverCloseTrigger, XhPopoverContent, XhPopoverDescription, XhPopoverPositioner, XhPopoverRoot, XhPopoverTitle, XhPopoverTrigger, XhPopselectClearTrigger, XhPopselectContent, XhPopselectControl, XhPopselectItem, XhPopselectItemIndicator, XhPopselectItemText, XhPopselectPositioner, XhPopselectRoot, XhPopselectTrigger, XhProgress, XhQrCode, XhQrCodeLogo, XhRadioGroupItem, XhRadioGroupItemText, XhRadioGroupLabel, XhRadioGroupRoot, XhRatingControl, XhRatingHiddenInput, XhRatingItem, XhRatingLabel, XhRatingRoot, XhResultAction, XhResultDescription, XhResultIcon, XhResultRoot, XhResultTitle, XhScrollAreaContent, XhScrollAreaCorner, XhScrollAreaRoot, XhScrollAreaScrollbar, XhScrollAreaThumb, XhScrollAreaTrack, XhScrollAreaViewport, XhScrollbarCorner, XhScrollbarRoot, XhScrollbarThumb, XhScrollbarTrack, XhSegmentedHiddenInput, XhSegmentedIndicator, XhSegmentedItem, XhSegmentedItemText, XhSegmentedRoot, XhSelectClearTrigger, XhSelectContent, XhSelectControl, XhSelectFooter, XhSelectIndicator, XhSelectItem, XhSelectItemDeleteTrigger, XhSelectItemIndicator, XhSelectItemText, XhSelectLabel, XhSelectList, XhSelectPositioner, XhSelectRoot, XhSelectTag, XhSelectTrigger, XhSelectValueText, XhSeparator, XhSideNavBranch, XhSideNavBranchContent, XhSideNavBranchIndicator, XhSideNavBranchText, XhSideNavBranchTrigger, XhSideNavGroup, XhSideNavGroupLabel, XhSideNavItem, XhSideNavLink, XhSideNavLinkText, XhSideNavList, XhSideNavRoot, XhSignaturePadClearTrigger, XhSignaturePadControl, XhSignaturePadGuide, XhSignaturePadHiddenInput, XhSignaturePadLabel, XhSignaturePadRoot, XhSignaturePadSegment, XhSignaturePadStatus, XhSkeletonBone, XhSkeletonRoot, XhSliderControl, XhSliderHiddenInput, XhSliderLabel, XhSliderMarks, XhSliderRange, XhSliderRoot, XhSliderThumb, XhSliderTrack, XhSpace, XhSpaceSplit, XhSpinner, XhSpinnerLabel, XhSplitterPanel, XhSplitterResizeTrigger, XhSplitterRoot, XhStatisticLabel, XhStatisticPrefix, XhStatisticRoot, XhStatisticSuffix, XhStatisticValue, XhStepsContent, XhStepsDescription, XhStepsIndicator, XhStepsItem, XhStepsList, XhStepsRoot, XhStepsSeparator, XhStepsTitle, XhStepsTrigger, XhSwitch, XhTableBody, XhTableCaption, XhTableCell, XhTableColumnHeader, XhTableEmpty, XhTableExpandTrigger, XhTableExpandedRow, XhTableFooter, XhTableHeader, XhTableLoadingState, XhTableRoot, XhTableRow, XhTableRowSelectTrigger, XhTableSelectAllTrigger, XhTableSortTrigger, XhTabsContent, XhTabsList, XhTabsRoot, XhTabsTrigger, XhTagCloseTrigger, XhTagLabel, XhTagRoot, XhTagsInputClearTrigger, XhTagsInputControl, XhTagsInputHiddenInput, XhTagsInputInput, XhTagsInputItem, XhTagsInputItemDeleteTrigger, XhTagsInputItemInput, XhTagsInputItemPreview, XhTagsInputItemText, XhTagsInputLabel, XhTagsInputRoot, XhTextFieldClearTrigger, XhTextFieldControl, XhTextFieldInput, XhTextFieldLabel, XhTextFieldRoot, XhThreadContent, XhThreadLiveRegion, XhThreadRoot, XhThreadScrollButton, XhThreadViewport, XhTime, XhTimeFieldClearTrigger, XhTimeFieldControl, XhTimeFieldHiddenInput, XhTimeFieldLabel, XhTimeFieldRoot, XhTimeFieldSegment, XhTimeFieldSegmentGroup, XhTimePickerClearTrigger, XhTimePickerColumn, XhTimePickerContent, XhTimePickerControl, XhTimePickerHiddenInput, XhTimePickerInput, XhTimePickerItem, XhTimePickerLabel, XhTimePickerPositioner, XhTimePickerPreset, XhTimePickerPresets, XhTimePickerRoot, XhTimePickerSegmentGroup, XhTimePickerTrigger, XhTimelineConnector, XhTimelineContent, XhTimelineDescription, XhTimelineIndicator, XhTimelineItem, XhTimelineRoot, XhTimelineTime, XhTimelineTitle, XhTimerArea, XhTimerControl, XhTimerItem, XhTimerRoot, XhTimerSeparator, XhToastActionTrigger, XhToastCloseTrigger, XhToastDescription, XhToastRoot, XhToastTitle, XhToasterGroup, XhToasterRoot, XhToggle, XhToggleGroupItem, XhToggleGroupRoot, XhToolbarGroup, XhToolbarItem, XhToolbarRoot, XhToolbarSeparator, XhTooltipArrow, XhTooltipContent, XhTooltipPositioner, XhTooltipRoot, XhTooltipTrigger, XhTourArrow, XhTourBackdrop, XhTourCloseTrigger, XhTourContent, XhTourDescription, XhTourNextTrigger, XhTourPositioner, XhTourPrevTrigger, XhTourProgressText, XhTourRoot, XhTourSkipTrigger, XhTourSpotlight, XhTourTitle, XhTransferItem, XhTransferItemCheckbox, XhTransferItemText, XhTransferList, XhTransferPanelCount, XhTransferPanelHeader, XhTransferPanelTitle, XhTransferRoot, XhTransferSearch, XhTransferSelectAllTrigger, XhTransferSourcePanel, XhTransferTargetPanel, XhTransferToSourceTrigger, XhTransferToTargetTrigger, XhTreeBranch, XhTreeBranchCheckbox, XhTreeBranchContent, XhTreeBranchControl, XhTreeBranchIndicator, XhTreeBranchText, XhTreeBranchTrigger, XhTreeItem, XhTreeItemCheckbox, XhTreeItemIndicator, XhTreeItemText, XhTreeLabel, XhTreeRoot, XhTreeSelectBranch, XhTreeSelectBranchContent, XhTreeSelectBranchControl, XhTreeSelectBranchIndicator, XhTreeSelectBranchText, XhTreeSelectBranchTrigger, XhTreeSelectClearTrigger, XhTreeSelectContent, XhTreeSelectControl, XhTreeSelectHiddenInput, XhTreeSelectIndicator, XhTreeSelectItem, XhTreeSelectItemIndicator, XhTreeSelectItemText, XhTreeSelectLabel, XhTreeSelectPositioner, XhTreeSelectRoot, XhTreeSelectTree, XhTreeSelectTrigger, XhTreeSelectValueText, XhTreeTree, XhTypographyHeading, XhTypographyLink, XhTypographyParagraph, XhTypographyRoot, XhTypographyText, XhVirtualizerContent, XhVirtualizerItem, XhVirtualizerRoot, XhVirtualizerViewport, XhWatermarkContent, XhWatermarkRoot, createDialogService, createToastService, createVueIdGenerator, createVueRuntime, mergeXhConfig, provideAffix, provideAvatarGroup, provideBackTop, provideContextMenuChain, provideContextMenuSub, provideDescriptions, provideDynamicInput, provideDynamicInputItem, provideFloatButton, provideGrid, provideImageViewer, provideInfiniteScroll, provideLayout, provideList, provideLog, provideMarquee, provideMention, provideMentionItem, provideMenu, provideMenuChain, provideMenuGroup, provideMenuSub, provideMenubarChain, provideMenubarSub, providePageHeader, providePopconfirm, providePopselect, providePopselectItem, provideQrCode, provideResult, provideScrollbar, provideSideNav, provideSideNavNode, provideStatistic, provideTimeline, provideTimelineItem, provideTypography, provideWatermark, provideXhConfig, useAccordion, useAffix, useAffixContext, useAnchor, useAvatar, useAvatarGroupContext, useBackTop, useBackTopContext, useBreadcrumb, useCalendar, useCarousel, useCascader, useCheckbox, useCheckboxGroup, useClipboard, useCollapsible, useColorPicker, useCombobox, useComposer, useContextMenu, useContextMenuChain, useContextMenuSubContext, useDateField, useDatePicker, useDescriptionsContext, useDialog, useDownloadTrigger, useDrawer, useDynamicInput, useDynamicInputContext, useDynamicInputItemContext, useEditable, useEllipsis, useField, useFieldset, useFieldsetContext, useFileUpload, useFloatButton, useFloatButtonContext, useFloatingPanel, useFloatingPanelContext, useForm, useGridContext, useHeatmap, useHeatmapContext, useHoverCard, useIcon, useImage, useImageCropper, useImageCropperContext, useImageViewer, useImageViewerContext, useInfiniteScroll, useInfiniteScrollContext, useJsonViewer, useLayout, useLayoutContext, useListContext, useListbox, useLoadingBar, useLog, useLogContext, useMachine, useMarqueeContext, useMention, useMentionContext, useMentionItemContext, useMenu, useMenuChain, useMenuContext, useMenuGroupContext, useMenuSubContext, useMenubar, useMenubarChain, useMenubarSubContext, useNavigationMenu, useNumberField, usePageHeaderContext, usePagination, usePasswordInput, usePasswordInputContext, usePinInput, usePopconfirm, usePopconfirmContext, usePopover, usePopselect, usePopselectContext, usePopselectItemContext, useQrCodeContext, useRadioGroup, useRating, useResultContext, useScrollArea, useScrollbar, useScrollbarContext, useSegmented, useSegmentedContext, useSegmentedItemContext, useSelect, useSideNav, useSideNavContext, useSideNavNodeContext, useSignaturePad, useSignaturePadContext, useSlider, useSpaceContext, useSplitter, useStatisticContext, useSteps, useSwitch, useTable, useTabs, useTag, useTagContext, useTagsInput, useTextField, useThread, useTimeField, useTimePicker, useTimelineContext, useTimelineItem, useTimer, useTimerContext, useToast, useToaster, useToggle, useToggleGroup, useToolbar, useTooltip, useTour, useTransfer, useTree, useTreeSelect, useTypographyContext, useVirtualizer, useWatermarkContext, useXhConfig, vueNormalize, withXhConfig };
258
+ export { XhAccordionContent, XhAccordionHeader, XhAccordionIndicator, XhAccordionItem, XhAccordionRoot, XhAccordionTrigger, XhAffixContent, XhAffixRoot, XhAlertCloseTrigger, XhAlertDescription, XhAlertIcon, XhAlertRoot, XhAlertTitle, XhAnchorIndicator, XhAnchorItem, XhAnchorLink, XhAnchorList, XhAnchorRoot, XhAvatarFallback, XhAvatarGroupOverflow, XhAvatarGroupRoot, XhAvatarImage, XhAvatarRoot, XhBackTopRoot, XhBackTopTrigger, XhBadge, XhBadgeIndicator, XhBadgeRoot, XhBreadcrumbEllipsis, XhBreadcrumbItem, XhBreadcrumbLink, XhBreadcrumbList, XhBreadcrumbRoot, XhBreadcrumbSeparator, XhButton, XhButtonGroup, XhButtonIndicator, XhButtonLabel, XhButtonPrefix, XhButtonSuffix, XhCalendarCell, XhCalendarCellTrigger, XhCalendarGrid, XhCalendarGridBody, XhCalendarGridHead, XhCalendarHeader, XhCalendarHeading, XhCalendarHeadingMonthTrigger, XhCalendarHeadingYearTrigger, XhCalendarNextTrigger, XhCalendarNextYearTrigger, XhCalendarPrevTrigger, XhCalendarPrevYearTrigger, XhCalendarRoot, XhCalendarWeekDay, XhCalendarWeekNumber, XhCalendarWeekRow, XhCardBody, XhCardCover, XhCardDescription, XhCardFooter, XhCardHeader, XhCardRoot, XhCardTitle, XhCarouselIndicator, XhCarouselIndicatorGroup, XhCarouselItem, XhCarouselItemGroup, XhCarouselNextTrigger, XhCarouselPrevTrigger, XhCarouselRoot, XhCarouselViewport, XhCascaderClearTrigger, XhCascaderColumn, XhCascaderContent, XhCascaderControl, XhCascaderIndicator, XhCascaderInput, XhCascaderItem, XhCascaderItemIndicator, XhCascaderItemText, XhCascaderLabel, XhCascaderPositioner, XhCascaderRoot, XhCascaderSearchList, XhCascaderTrigger, XhCascaderValueText, XhCheckbox, XhCheckboxGroupIndicator, XhCheckboxGroupItem, XhCheckboxGroupItemText, XhCheckboxGroupLabel, XhCheckboxGroupRoot, XhCheckboxGroupTrigger, XhClipboardControl, XhClipboardIndicator, XhClipboardInput, XhClipboardLabel, XhClipboardRoot, XhClipboardTrigger, XhCodeBlock, XhCollapsibleContent, XhCollapsibleRoot, XhCollapsibleTrigger, XhColorPickerArea, XhColorPickerAreaThumb, XhColorPickerChannelInput, XhColorPickerChannelSlider, XhColorPickerChannelSliderThumb, XhColorPickerChannelSliderTrack, XhColorPickerContent, XhColorPickerControl, XhColorPickerEyeDropperTrigger, XhColorPickerHiddenInput, XhColorPickerLabel, XhColorPickerPositioner, XhColorPickerRoot, XhColorPickerSwatch, XhColorPickerSwatchGroup, XhColorPickerSwatchItem, XhColorPickerTrigger, XhColorPickerValueText, XhComboboxClearTrigger, XhComboboxContent, XhComboboxControl, XhComboboxEmpty, XhComboboxHiddenInput, XhComboboxInput, XhComboboxItem, XhComboboxItemGroup, XhComboboxItemGroupLabel, XhComboboxItemIndicator, XhComboboxItemText, XhComboboxLabel, XhComboboxPositioner, XhComboboxRoot, XhComboboxTrigger, XhComposerInput, XhComposerRoot, XhComposerSubmitTrigger, XhContextMenuArrow, XhContextMenuContent, XhContextMenuGroup, XhContextMenuGroupLabel, XhContextMenuItem, XhContextMenuItemIndicator, XhContextMenuItemText, XhContextMenuPositioner, XhContextMenuRoot, XhContextMenuSeparator, XhContextMenuSub, XhContextMenuSubTrigger, XhContextMenuTrigger, XhCountdown, XhDateFieldClearTrigger, XhDateFieldControl, XhDateFieldHiddenInput, XhDateFieldLabel, XhDateFieldRoot, XhDateFieldSegment, XhDateFieldSegmentGroup, XhDatePickerCalendar, XhDatePickerCell, XhDatePickerCellTrigger, XhDatePickerClearTrigger, XhDatePickerConfirmTrigger, XhDatePickerContent, XhDatePickerControl, XhDatePickerGrid, XhDatePickerGridBody, XhDatePickerGridHead, XhDatePickerHeader, XhDatePickerHeading, XhDatePickerHeadingMonthTrigger, XhDatePickerHeadingYearTrigger, XhDatePickerHiddenInput, XhDatePickerLabel, XhDatePickerNextTrigger, XhDatePickerNextYearTrigger, XhDatePickerPositioner, XhDatePickerPreset, XhDatePickerPresets, XhDatePickerPrevTrigger, XhDatePickerPrevYearTrigger, XhDatePickerRoot, XhDatePickerSegment, XhDatePickerSegmentGroup, XhDatePickerTimePanel, XhDatePickerTrigger, XhDatePickerWeekDay, XhDatePickerWeekNumber, XhDatePickerWeekRow, XhDescriptionsItem, XhDescriptionsLabel, XhDescriptionsRoot, XhDescriptionsValue, XhDialogCloseTrigger, XhDialogContent, XhDialogDescription, XhDialogRoot, XhDialogTitle, XhDialogTrigger, XhDownloadTrigger, XhDrawerCloseTrigger, XhDrawerContent, XhDrawerDescription, XhDrawerRoot, XhDrawerTitle, XhDrawerTrigger, XhDynamicInputAddTrigger, XhDynamicInputItem, XhDynamicInputItemAction, XhDynamicInputItemContent, XhDynamicInputItemDeleteTrigger, XhDynamicInputMoveDownTrigger, XhDynamicInputMoveUpTrigger, XhDynamicInputRoot, XhEditableArea, XhEditableCancelTrigger, XhEditableControl, XhEditableEditTrigger, XhEditableInput, XhEditableLabel, XhEditablePreview, XhEditableRoot, XhEditableSubmitTrigger, XhEllipsis, XhEmptyStateAction, XhEmptyStateDescription, XhEmptyStateIcon, XhEmptyStateRoot, XhEmptyStateTitle, XhFieldControl, XhFieldDescription, XhFieldErrorText, XhFieldLabel, XhFieldRoot, XhFieldsetErrorText, XhFieldsetHelperText, XhFieldsetLegend, XhFieldsetRoot, XhFileUploadClearTrigger, XhFileUploadDropzone, XhFileUploadHiddenInput, XhFileUploadItem, XhFileUploadItemDeleteTrigger, XhFileUploadItemGroup, XhFileUploadItemName, XhFileUploadItemPreview, XhFileUploadItemSizeText, XhFileUploadLabel, XhFileUploadRoot, XhFileUploadTrigger, XhFlex, XhFloatButtonList, XhFloatButtonRoot, XhFloatButtonTrigger, XhFloatingPanelBody, XhFloatingPanelCloseTrigger, XhFloatingPanelContent, XhFloatingPanelDragTrigger, XhFloatingPanelHeader, XhFloatingPanelPositioner, XhFloatingPanelResizeTrigger, XhFloatingPanelRoot, XhFloatingPanelStageTrigger, XhFloatingPanelTitle, XhFloatingPanelTrigger, XhFormErrorSummary, XhFormErrorSummaryItem, XhFormFieldGroup, XhFormResetTrigger, XhFormRoot, XhFormSubmitTrigger, XhGradientText, XhGridItem, XhGridRoot, XhHeatmapCell, XhHeatmapColumnLabel, XhHeatmapGrid, XhHeatmapLegend, XhHeatmapLegendItem, XhHeatmapLegendLabel, XhHeatmapMonthBlock, XhHeatmapMonthLabel, XhHeatmapRoot, XhHeatmapRow, XhHeatmapRowLabel, XhHeatmapTooltip, XhHeatmapWeekDayLabel, XhHighlight, XhHotkeys, XhHoverCardArrow, XhHoverCardContent, XhHoverCardPositioner, XhHoverCardRoot, XhHoverCardTrigger, XhIcon, XhIconWrapper, XhImageCropperCropArea, XhImageCropperCropHandle, XhImageCropperGrid, XhImageCropperHiddenInput, XhImageCropperImage, XhImageCropperRoot, XhImageCropperViewport, XhImageFallback, XhImageImage, XhImageRoot, XhImageViewerCloseTrigger, XhImageViewerContent, XhImageViewerCounter, XhImageViewerFlipHorizontalTrigger, XhImageViewerFlipVerticalTrigger, XhImageViewerImage, XhImageViewerNextTrigger, XhImageViewerPrevTrigger, XhImageViewerResetTrigger, XhImageViewerRoot, XhImageViewerRotateLeftTrigger, XhImageViewerRotateRightTrigger, XhImageViewerToolbar, XhImageViewerTrigger, XhImageViewerViewport, XhImageViewerZoomInTrigger, XhImageViewerZoomOutTrigger, XhInfiniteScrollRoot, XhInfiniteScrollSentinel, XhJsonViewerRoot, XhLayoutContent, XhLayoutFooter, XhLayoutHeader, XhLayoutRoot, XhLayoutSider, XhLayoutSiderTrigger, XhListItem, XhListItemAction, XhListItemContent, XhListItemDescription, XhListItemMedia, XhListItemTitle, XhListRoot, XhListboxContent, XhListboxItem, XhListboxItemGroup, XhListboxItemGroupLabel, XhListboxItemIndicator, XhListboxItemText, XhListboxLabel, XhListboxRoot, XhLoadingBarRange, XhLoadingBarRoot, XhLoadingBarTrack, XhLogContent, XhLogLine, XhLogRoot, XhLogViewport, XhMarqueeContent, XhMarqueeRoot, XhMasonry, XhMentionContent, XhMentionInput, XhMentionItem, XhMentionItemText, XhMentionPositioner, XhMentionRoot, XhMenuArrow, XhMenuContent, XhMenuGroup, XhMenuGroupLabel, XhMenuItem, XhMenuPositioner, XhMenuRoot, XhMenuSeparator, XhMenuSub, XhMenuSubTrigger, XhMenuTrigger, XhMenubarContent, XhMenubarGroup, XhMenubarGroupLabel, XhMenubarItem, XhMenubarItemIndicator, XhMenubarItemText, XhMenubarPositioner, XhMenubarRoot, XhMenubarSeparator, XhMenubarSub, XhMenubarSubTrigger, XhMenubarTrigger, XhNavigationMenuContent, XhNavigationMenuIndicator, XhNavigationMenuItem, XhNavigationMenuLink, XhNavigationMenuList, XhNavigationMenuRoot, XhNavigationMenuTrigger, XhNavigationMenuViewport, XhNotificationGroup, XhNotificationItem, XhNotificationItemActionTrigger, XhNotificationItemCloseTrigger, XhNotificationItemDescription, XhNotificationItemIndicator, XhNotificationItemTitle, XhNotificationRoot, XhNumberAnimation, XhNumberFieldControl, XhNumberFieldDecrementTrigger, XhNumberFieldIncrementTrigger, XhNumberFieldInput, XhNumberFieldLabel, XhNumberFieldRoot, XhPageHeaderBackTrigger, XhPageHeaderExtra, XhPageHeaderFooter, XhPageHeaderRoot, XhPageHeaderSubtitle, XhPageHeaderTitle, XhPaginationContent, XhPaginationEllipsis, XhPaginationItem, XhPaginationNextTrigger, XhPaginationPageSizeSelect, XhPaginationPositioner, XhPaginationPrevTrigger, XhPaginationRoot, XhPasswordInputCapsLockIndicator, XhPasswordInputControl, XhPasswordInputInput, XhPasswordInputLabel, XhPasswordInputRoot, XhPasswordInputVisibilityTrigger, XhPinInputHiddenInput, XhPinInputInput, XhPinInputLabel, XhPinInputRoot, XhPopconfirmCancelTrigger, XhPopconfirmConfirmTrigger, XhPopconfirmContent, XhPopconfirmDescription, XhPopconfirmPositioner, XhPopconfirmRoot, XhPopconfirmTitle, XhPopconfirmTrigger, XhPopoverArrow, XhPopoverCloseTrigger, XhPopoverContent, XhPopoverDescription, XhPopoverPositioner, XhPopoverRoot, XhPopoverTitle, XhPopoverTrigger, XhPopselectClearTrigger, XhPopselectContent, XhPopselectControl, XhPopselectItem, XhPopselectItemIndicator, XhPopselectItemText, XhPopselectPositioner, XhPopselectRoot, XhPopselectTrigger, XhProgress, XhQrCode, XhQrCodeLogo, XhRadioGroupItem, XhRadioGroupItemText, XhRadioGroupLabel, XhRadioGroupRoot, XhRatingControl, XhRatingHiddenInput, XhRatingItem, XhRatingLabel, XhRatingRoot, XhResultAction, XhResultDescription, XhResultIcon, XhResultRoot, XhResultTitle, XhScrollAreaContent, XhScrollAreaCorner, XhScrollAreaRoot, XhScrollAreaScrollbar, XhScrollAreaThumb, XhScrollAreaTrack, XhScrollAreaViewport, XhScrollbarCorner, XhScrollbarRoot, XhScrollbarThumb, XhScrollbarTrack, XhSegmentedHiddenInput, XhSegmentedIndicator, XhSegmentedItem, XhSegmentedItemText, XhSegmentedRoot, XhSelectClearTrigger, XhSelectContent, XhSelectControl, XhSelectFooter, XhSelectIndicator, XhSelectItem, XhSelectItemDeleteTrigger, XhSelectItemIndicator, XhSelectItemText, XhSelectLabel, XhSelectList, XhSelectPositioner, XhSelectRoot, XhSelectTag, XhSelectTrigger, XhSelectValueText, XhSeparator, XhSideNavBranch, XhSideNavBranchContent, XhSideNavBranchIndicator, XhSideNavBranchText, XhSideNavBranchTrigger, XhSideNavGroup, XhSideNavGroupLabel, XhSideNavItem, XhSideNavLink, XhSideNavLinkText, XhSideNavList, XhSideNavRoot, XhSignaturePadClearTrigger, XhSignaturePadControl, XhSignaturePadGuide, XhSignaturePadHiddenInput, XhSignaturePadLabel, XhSignaturePadRoot, XhSignaturePadSegment, XhSignaturePadStatus, XhSkeletonBone, XhSkeletonRoot, XhSliderControl, XhSliderHiddenInput, XhSliderLabel, XhSliderMarks, XhSliderRange, XhSliderRoot, XhSliderThumb, XhSliderTrack, XhSpace, XhSpaceSplit, XhSpinner, XhSpinnerLabel, XhSplitterPanel, XhSplitterResizeTrigger, XhSplitterRoot, XhStatisticLabel, XhStatisticPrefix, XhStatisticRoot, XhStatisticSuffix, XhStatisticValue, XhStepsContent, XhStepsDescription, XhStepsIndicator, XhStepsItem, XhStepsList, XhStepsRoot, XhStepsSeparator, XhStepsTitle, XhStepsTrigger, XhSwitch, XhTableBody, XhTableCaption, XhTableCell, XhTableColumnHeader, XhTableEmpty, XhTableExpandTrigger, XhTableExpandedRow, XhTableFooter, XhTableHeader, XhTableLoadingState, XhTableRoot, XhTableRow, XhTableRowSelectTrigger, XhTableSelectAllTrigger, XhTableSortTrigger, XhTabsContent, XhTabsList, XhTabsRoot, XhTabsTrigger, XhTagCloseTrigger, XhTagLabel, XhTagRoot, XhTagsInputClearTrigger, XhTagsInputControl, XhTagsInputHiddenInput, XhTagsInputInput, XhTagsInputItem, XhTagsInputItemDeleteTrigger, XhTagsInputItemInput, XhTagsInputItemPreview, XhTagsInputItemText, XhTagsInputLabel, XhTagsInputRoot, XhTextFieldClearTrigger, XhTextFieldControl, XhTextFieldInput, XhTextFieldLabel, XhTextFieldRoot, XhThreadContent, XhThreadLiveRegion, XhThreadRoot, XhThreadScrollButton, XhThreadViewport, XhTime, XhTimeFieldClearTrigger, XhTimeFieldControl, XhTimeFieldHiddenInput, XhTimeFieldLabel, XhTimeFieldRoot, XhTimeFieldSegment, XhTimeFieldSegmentGroup, XhTimePickerClearTrigger, XhTimePickerColumn, XhTimePickerContent, XhTimePickerControl, XhTimePickerHiddenInput, XhTimePickerInput, XhTimePickerItem, XhTimePickerLabel, XhTimePickerPositioner, XhTimePickerPreset, XhTimePickerPresets, XhTimePickerRoot, XhTimePickerSegmentGroup, XhTimePickerTrigger, XhTimelineConnector, XhTimelineContent, XhTimelineDescription, XhTimelineIndicator, XhTimelineItem, XhTimelineRoot, XhTimelineTime, XhTimelineTitle, XhTimerArea, XhTimerControl, XhTimerItem, XhTimerRoot, XhTimerSeparator, XhToastActionTrigger, XhToastCloseTrigger, XhToastRoot, XhToastTitle, XhToggle, XhToggleGroupItem, XhToggleGroupRoot, XhToolbarGroup, XhToolbarItem, XhToolbarRoot, XhToolbarSeparator, XhTooltipArrow, XhTooltipContent, XhTooltipPositioner, XhTooltipRoot, XhTooltipTrigger, XhTourArrow, XhTourBackdrop, XhTourCloseTrigger, XhTourContent, XhTourDescription, XhTourNextTrigger, XhTourPositioner, XhTourPrevTrigger, XhTourProgressText, XhTourRoot, XhTourSkipTrigger, XhTourSpotlight, XhTourTitle, XhTransferItem, XhTransferItemCheckbox, XhTransferItemText, XhTransferList, XhTransferPanelCount, XhTransferPanelHeader, XhTransferPanelTitle, XhTransferRoot, XhTransferSearch, XhTransferSelectAllTrigger, XhTransferSourcePanel, XhTransferTargetPanel, XhTransferToSourceTrigger, XhTransferToTargetTrigger, XhTreeBranch, XhTreeBranchCheckbox, XhTreeBranchContent, XhTreeBranchControl, XhTreeBranchIndicator, XhTreeBranchText, XhTreeBranchTrigger, XhTreeItem, XhTreeItemCheckbox, XhTreeItemIndicator, XhTreeItemText, XhTreeLabel, XhTreeRoot, XhTreeSelectBranch, XhTreeSelectBranchContent, XhTreeSelectBranchControl, XhTreeSelectBranchIndicator, XhTreeSelectBranchText, XhTreeSelectBranchTrigger, XhTreeSelectClearTrigger, XhTreeSelectContent, XhTreeSelectControl, XhTreeSelectHiddenInput, XhTreeSelectIndicator, XhTreeSelectItem, XhTreeSelectItemIndicator, XhTreeSelectItemText, XhTreeSelectLabel, XhTreeSelectPositioner, XhTreeSelectRoot, XhTreeSelectTree, XhTreeSelectTrigger, XhTreeSelectValueText, XhTreeTree, XhTypographyHeading, XhTypographyLink, XhTypographyParagraph, XhTypographyRoot, XhTypographyText, XhVirtualizerContent, XhVirtualizerItem, XhVirtualizerRoot, XhVirtualizerViewport, XhWatermarkContent, XhWatermarkRoot, createDialogService, createLoadingBarService, createNotificationService, createToastService, createVueIdGenerator, createVueRuntime, mergeXhConfig, provideAffix, provideAvatarGroup, provideBackTop, provideContextMenuChain, provideContextMenuSub, provideDescriptions, provideDynamicInput, provideDynamicInputItem, provideField, provideFloatButton, provideGrid, provideImageViewer, provideInfiniteScroll, provideLayout, provideList, provideLog, provideMarquee, provideMention, provideMentionItem, provideMenu, provideMenuChain, provideMenuGroup, provideMenuSub, provideMenubarChain, provideMenubarSub, provideNotification, provideNotificationItem, providePageHeader, providePopconfirm, providePopselect, providePopselectItem, provideQrCode, provideResult, provideScrollbar, provideSideNav, provideSideNavNode, provideStatistic, provideThread, provideTimeline, provideTimelineItem, provideTypography, provideWatermark, provideXhConfig, useAccordion, useAffix, useAffixContext, useAnchor, useAvatar, useAvatarGroupContext, useBackTop, useBackTopContext, useBreadcrumb, useCalendar, useCarousel, useCascader, useCheckbox, useCheckboxGroup, useClipboard, useCollapsible, useColorPicker, useCombobox, useComposer, useContextMenu, useContextMenuChain, useContextMenuSubContext, useDateField, useDatePicker, useDescriptionsContext, useDialog, useDownloadTrigger, useDrawer, useDynamicInput, useDynamicInputContext, useDynamicInputItemContext, useEditable, useEllipsis, useField, useFieldContext, useFieldControl, useFieldLabelWiring, useFieldStateWiring, useFieldset, useFieldsetContext, useFileUpload, useFloatButton, useFloatButtonContext, useFloatingPanel, useFloatingPanelContext, useForm, useGridContext, useHeatmap, useHeatmapContext, useHotkeys, useHoverCard, useIcon, useImage, useImageCropper, useImageCropperContext, useImageViewer, useImageViewerContext, useInfiniteScroll, useInfiniteScrollContext, useJsonViewer, useLayout, useLayoutContext, useListContext, useListbox, useLoadingBar, useLog, useLogContext, useMachine, useMarqueeContext, useMention, useMentionContext, useMentionItemContext, useMenu, useMenuChain, useMenuContext, useMenuGroupContext, useMenuSubContext, useMenubar, useMenubarChain, useMenubarSubContext, useNavigationMenu, useNotification, useNotificationContext, useNotificationContextOptional, useNotificationItem, useNotificationItemContext, useNumberField, useOptionalFieldContext, usePageHeaderContext, usePagination, usePasswordInput, usePasswordInputContext, usePinInput, usePopconfirm, usePopconfirmContext, usePopover, usePopselect, usePopselectContext, usePopselectItemContext, useQrCodeContext, useRadioGroup, useRating, useResultContext, useScrollArea, useScrollbar, useScrollbarContext, useSegmented, useSegmentedContext, useSegmentedItemContext, useSelect, useSideNav, useSideNavContext, useSideNavNodeContext, useSignaturePad, useSignaturePadContext, useSlider, useSpaceContext, useSplitter, useStatisticContext, useSteps, useSwitch, useTable, useTabs, useTag, useTagContext, useTagsInput, useTextField, useThread, useThreadContext, useTimeField, useTimePicker, useTimelineContext, useTimelineItem, useTimer, useTimerContext, useToast, useToggle, useToggleGroup, useToolbar, useTooltip, useTour, useTransfer, useTree, useTreeSelect, useTypographyContext, useVirtualizer, useWatermarkContext, useXhConfig, vueNormalize, withXhConfig };
package/dist/package.js CHANGED
@@ -1,5 +1,5 @@
1
1
  //#region package.json
2
- var version = "1.0.0-alpha.3";
2
+ var version = "1.0.0";
3
3
  //#endregion
4
4
  export { version };
5
5
 
@@ -0,0 +1,66 @@
1
+ import { vueNormalize } from "./normalize-props.js";
2
+ import { useMachine } from "./use-machine.js";
3
+ import { createVueIdGenerator } from "./vue-id.js";
4
+ import { computed, h, ref, toValue } from "vue";
5
+ import { SCROLLBAR_DEFAULT_TYPE, connectScrollbar, isOverflowing, scrollbarMachine } from "@xihan-ui/headless";
6
+ import { createScope } from "@xihan-ui/kernel";
7
+ //#region src/runtime/use-scrollbars.ts
8
+ const DEFAULT_AXES = ["vertical"];
9
+ function useScrollbars(options) {
10
+ const axes = options.axes ?? DEFAULT_AXES;
11
+ const scope = createScope(null, createVueIdGenerator());
12
+ const bars = [];
13
+ /**
14
+ * 这条轴的条子此刻常驻在场。判据不走 api:api 里就要读 gutter,读回来会绕成环,
15
+ * 所以直接读作者给的那份 props 与机器量到的尺寸。
16
+ */
17
+ const standing = (bar) => {
18
+ const given = toValue(options.props);
19
+ const native = bar.service.context.get("coarse") && !given?.forceVisible;
20
+ const type = given?.type ?? SCROLLBAR_DEFAULT_TYPE;
21
+ return !native && (type === "always" || isOverflowing(bar.service.context.get("metrics")));
22
+ };
23
+ /** 两条轴都在场:各自在末端让出交叉口那一格,只有一条时不让,免得滑块行程平白短一截。 */
24
+ const both = () => axes.length > 1 && bars.length === axes.length && bars.every(standing);
25
+ for (const axis of axes) {
26
+ const rootRef = ref(null);
27
+ const trackRef = ref(null);
28
+ const service = useMachine(scrollbarMachine, () => ({
29
+ ...toValue(options.props),
30
+ orientation: axis,
31
+ gutter: both()
32
+ }), scope);
33
+ service.refs.set("getScrollableEl", options.scrollable);
34
+ service.refs.set("getTrackEl", () => trackRef.value);
35
+ service.refs.set("getRootEl", () => rootRef.value);
36
+ bars.push({
37
+ axis,
38
+ service,
39
+ api: computed(() => connectScrollbar(service, vueNormalize)),
40
+ rootRef,
41
+ trackRef
42
+ });
43
+ }
44
+ /** 交叉口补丁只写在竖条里;只有一条轴在场时右下角没有缺口要补,收起来免得平白盖住一块内容。 */
45
+ const corner = (bar) => axes.length > 1 && bar.axis === "vertical" ? [h("div", {
46
+ ...bar.api.value.getCornerProps(),
47
+ hidden: both() ? void 0 : true
48
+ })] : [];
49
+ return {
50
+ render: () => bars.map((bar) => h("div", {
51
+ ...bar.api.value.getRootProps(),
52
+ key: `xh-scrollbar-${bar.axis}`,
53
+ ref: bar.rootRef
54
+ }, [h("div", {
55
+ ...bar.api.value.getTrackProps(),
56
+ ref: bar.trackRef
57
+ }, [h("div", bar.api.value.getThumbProps())]), ...corner(bar)])),
58
+ measure: () => {
59
+ for (const bar of bars) bar.api.value.measure();
60
+ }
61
+ };
62
+ }
63
+ //#endregion
64
+ export { useScrollbars };
65
+
66
+ //# sourceMappingURL=use-scrollbars.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-scrollbars.js","names":[],"sources":["../../src/runtime/use-scrollbars.ts"],"sourcesContent":["import type { ScrollbarApi, ScrollbarSchema } from '@xihan-ui/headless'\nimport type { Orientation } from '@xihan-ui/kernel'\nimport type { Service } from '@xihan-ui/machine'\nimport type { ComputedRef, MaybeRefOrGetter, Ref, VNode } from 'vue'\nimport { connectScrollbar, isOverflowing, SCROLLBAR_DEFAULT_TYPE, scrollbarMachine } from '@xihan-ui/headless'\nimport { createScope } from '@xihan-ui/kernel'\nimport { computed, h, ref, toValue } from 'vue'\nimport { vueNormalize } from './normalize-props'\nimport { useMachine } from './use-machine'\nimport { createVueIdGenerator } from './vue-id'\n\n// 给已有滚动层配一套自绘滚动条。\n//\n// 条子是滚动层的兄弟,挂在组件既有的壳上(浮层族是 positioner,其余是 root):\n// 壳是定位盒,条子绝对定位贴它的内边距盒,不占布局、不进滚动层内部、不搬去别处。\n// 宿主只交「谁在滚」与「摆哪几条轴」,节点形状与机器接线都在这里,宿主那侧只有一行 render。\n\n/** 交给条子的 props。轴由 axes 决定、让位按实测溢出算,两者都不从外面收。 */\nexport type ScrollbarsProps = Omit<ScrollbarSchema['props'], 'orientation' | 'gutter'>\n\nexport interface ScrollbarsOptions {\n /**\n * 真正在滚的那层。收 getter 而不是节点:ref 挂载后才有值,\n * 多档互斥的宿主(同一个位置有两个可能的滚动层)在这里交此刻活着的那个。\n */\n scrollable: () => HTMLElement | null\n /** 摆哪几条轴,默认只摆竖的。 */\n axes?: readonly Orientation[]\n /** 露面时机、尺寸档、方向这些,逐帧现读。 */\n props?: MaybeRefOrGetter<ScrollbarsProps>\n}\n\nexport interface ScrollbarsHandle {\n /** 条子的节点,宿主把它拼进壳的子节点末尾。 */\n render: () => VNode[]\n /** 重量一遍两条轴的尺寸。 */\n measure: () => void\n}\n\ninterface Bar {\n axis: Orientation\n service: Service<ScrollbarSchema>\n api: ComputedRef<ScrollbarApi>\n rootRef: Ref<HTMLElement | null>\n trackRef: Ref<HTMLElement | null>\n}\n\nconst DEFAULT_AXES: readonly Orientation[] = ['vertical']\n\nexport function useScrollbars(options: ScrollbarsOptions): ScrollbarsHandle {\n const axes = options.axes ?? DEFAULT_AXES\n const scope = createScope(null, createVueIdGenerator())\n const bars: Bar[] = []\n\n /**\n * 这条轴的条子此刻常驻在场。判据不走 api:api 里就要读 gutter,读回来会绕成环,\n * 所以直接读作者给的那份 props 与机器量到的尺寸。\n */\n const standing = (bar: Bar): boolean => {\n const given = toValue(options.props)\n const native = bar.service.context.get('coarse') && !given?.forceVisible\n const type = given?.type ?? SCROLLBAR_DEFAULT_TYPE\n return !native && (type === 'always' || isOverflowing(bar.service.context.get('metrics')))\n }\n\n /** 两条轴都在场:各自在末端让出交叉口那一格,只有一条时不让,免得滑块行程平白短一截。 */\n const both = (): boolean => axes.length > 1 && bars.length === axes.length && bars.every(standing)\n\n for (const axis of axes) {\n const rootRef = ref<HTMLElement | null>(null)\n const trackRef = ref<HTMLElement | null>(null)\n // 每次取值现读 props:挂载后改 type / size 机器要跟着变\n const service = useMachine(scrollbarMachine, () => ({\n ...toValue(options.props),\n orientation: axis,\n gutter: both(),\n }), scope)\n // 传 getter 而非节点,ref 在挂载后才有值;量尺寸与挂监听都在机器的效应里进行\n service.refs.set('getScrollableEl', options.scrollable)\n service.refs.set('getTrackEl', () => trackRef.value)\n service.refs.set('getRootEl', () => rootRef.value)\n bars.push({\n axis,\n service,\n api: computed(() => connectScrollbar(service, vueNormalize)),\n rootRef,\n trackRef,\n })\n }\n\n /** 交叉口补丁只写在竖条里;只有一条轴在场时右下角没有缺口要补,收起来免得平白盖住一块内容。 */\n const corner = (bar: Bar): VNode[] =>\n axes.length > 1 && bar.axis === 'vertical'\n ? [h('div', {\n ...bar.api.value.getCornerProps() as Record<string, unknown>,\n hidden: both() ? undefined : true,\n })]\n : []\n\n return {\n render: () => bars.map(bar => h('div', {\n ...bar.api.value.getRootProps() as Record<string, unknown>,\n key: `xh-scrollbar-${bar.axis}`,\n ref: bar.rootRef,\n }, [\n h('div', {\n ...bar.api.value.getTrackProps() as Record<string, unknown>,\n ref: bar.trackRef,\n }, [h('div', bar.api.value.getThumbProps() as Record<string, unknown>)]),\n ...corner(bar),\n ])),\n measure: () => {\n for (const bar of bars) bar.api.value.measure()\n },\n }\n}\n"],"mappings":";;;;;;;AA+CA,MAAM,eAAuC,CAAC,UAAU;AAExD,SAAgB,cAAc,SAA8C;CAC1E,MAAM,OAAO,QAAQ,QAAQ;CAC7B,MAAM,QAAQ,YAAY,MAAM,qBAAqB,CAAC;CACtD,MAAM,OAAc,CAAC;;;;;CAMrB,MAAM,YAAY,QAAsB;EACtC,MAAM,QAAQ,QAAQ,QAAQ,KAAK;EACnC,MAAM,SAAS,IAAI,QAAQ,QAAQ,IAAI,QAAQ,KAAK,CAAC,OAAO;EAC5D,MAAM,OAAO,OAAO,QAAQ;EAC5B,OAAO,CAAC,WAAW,SAAS,YAAY,cAAc,IAAI,QAAQ,QAAQ,IAAI,SAAS,CAAC;CAC1F;;CAGA,MAAM,aAAsB,KAAK,SAAS,KAAK,KAAK,WAAW,KAAK,UAAU,KAAK,MAAM,QAAQ;CAEjG,KAAK,MAAM,QAAQ,MAAM;EACvB,MAAM,UAAU,IAAwB,IAAI;EAC5C,MAAM,WAAW,IAAwB,IAAI;EAE7C,MAAM,UAAU,WAAW,yBAAyB;GAClD,GAAG,QAAQ,QAAQ,KAAK;GACxB,aAAa;GACb,QAAQ,KAAK;EACf,IAAI,KAAK;EAET,QAAQ,KAAK,IAAI,mBAAmB,QAAQ,UAAU;EACtD,QAAQ,KAAK,IAAI,oBAAoB,SAAS,KAAK;EACnD,QAAQ,KAAK,IAAI,mBAAmB,QAAQ,KAAK;EACjD,KAAK,KAAK;GACR;GACA;GACA,KAAK,eAAe,iBAAiB,SAAS,YAAY,CAAC;GAC3D;GACA;EACF,CAAC;CACH;;CAGA,MAAM,UAAU,QACd,KAAK,SAAS,KAAK,IAAI,SAAS,aAC5B,CAAC,EAAE,OAAO;EACR,GAAG,IAAI,IAAI,MAAM,eAAe;EAChC,QAAQ,KAAK,IAAI,KAAA,IAAY;CAC/B,CAAC,CAAC,IACF,CAAC;CAEP,OAAO;EACL,cAAc,KAAK,KAAI,QAAO,EAAE,OAAO;GACrC,GAAG,IAAI,IAAI,MAAM,aAAa;GAC9B,KAAK,gBAAgB,IAAI;GACzB,KAAK,IAAI;EACX,GAAG,CACD,EAAE,OAAO;GACP,GAAG,IAAI,IAAI,MAAM,cAAc;GAC/B,KAAK,IAAI;EACX,GAAG,CAAC,EAAE,OAAO,IAAI,IAAI,MAAM,cAAc,CAA4B,CAAC,CAAC,GACvE,GAAG,OAAO,GAAG,CACf,CAAC,CAAC;EACF,eAAe;GACb,KAAK,MAAM,OAAO,MAAM,IAAI,IAAI,MAAM,QAAQ;EAChD;CACF;AACF"}
@@ -1,30 +1,51 @@
1
1
  import { XhConfig } from "../config/config.js";
2
+ import { MaybeRefOrGetter, VNodeChild } from "vue";
2
3
  import { Tone } from "@xihan-ui/kernel";
3
4
  //#region src/services/dialog-service.d.ts
5
+ /**
6
+ * 对话框正文。给串走 description 部件(读屏的 aria-describedby 由它接);
7
+ * 给渲染函数则整块摊在正文位,自己决定渲染什么。
8
+ *
9
+ * 不收裸 VNode:服务的宿主是常驻的,忙态一翻就整棵重渲,
10
+ * 同一个 VNode 实例被复用时的行为未定义。
11
+ */
12
+ type DialogBody = string | (() => VNodeChild);
4
13
  interface ConfirmOptions {
5
14
  title: string;
6
- content?: string;
15
+ content?: DialogBody;
7
16
  /** 确认钮语气,默认 brand;危险操作传 danger。 */
8
17
  tone?: Tone;
9
18
  /** 标题旁的类型徽记。不给则不出徽记。 */
10
19
  badge?: 'info' | 'success' | 'warning' | 'error';
11
- okText?: string;
12
- cancelText?: string;
20
+ okText?: MaybeRefOrGetter<string>;
21
+ cancelText?: MaybeRefOrGetter<string>;
13
22
  /** Promise 拒绝时对话框保持打开。 */
14
23
  onOk?: () => void | Promise<unknown>;
15
24
  }
16
25
  /** 单按钮告知框的入参:没有取消钮,徽记由预设档自己定,其余同 confirm。 */
17
26
  type AlertOptions = Omit<ConfirmOptions, 'tone' | 'badge'>;
27
+ /** 取值型弹窗的入参。正文自己拼表单,确认时把那份值带回来。 */
28
+ interface PromptOptions<T extends object> extends Omit<ConfirmOptions, 'onOk' | 'content'> {
29
+ /** 每次打开建一份初值;服务用 reactive 包起来交给 body 与 onOk,两边同一份。 */
30
+ initialValue: T;
31
+ /** 用那份可写代理渲染表单主体。 */
32
+ body: (value: T) => VNodeChild;
33
+ /** 落焦到哪个节点,CSS 选择器。 */
34
+ initialFocus?: string;
35
+ /** 返回 false(或拒绝)表示校验没过,弹窗保持打开。 */
36
+ onOk?: (value: T) => boolean | void | Promise<boolean | void>;
37
+ }
18
38
  interface DialogServiceOptions {
19
39
  /** 确认钮文案,缺省 OK。 */
20
- okText?: string;
40
+ okText?: MaybeRefOrGetter<string>;
21
41
  /** 取消钮文案,缺省 Cancel。 */
22
- cancelText?: string;
42
+ cancelText?: MaybeRefOrGetter<string>;
23
43
  /**
24
44
  * 喂给对话框子树的全局配置(locale / translations / size / portalContainer)。
25
- * 本服务自带宿主应用,接不到组件树里的 provideXhConfig,要让它跟应用同语言就从这里给。
45
+ * 本服务自带宿主应用,接不到组件树里的 provideXhConfig,要让它跟应用同语言就从这里给;
46
+ * 传 ref/getter 即可运行期跟着切语言,也可以之后用 setConfig 推。
26
47
  */
27
- config?: XhConfig;
48
+ config?: MaybeRefOrGetter<XhConfig>;
28
49
  /** 宿主容器;不给就在 body 下新建一个。 */
29
50
  target?: HTMLElement;
30
51
  }
@@ -35,10 +56,14 @@ interface DialogService {
35
56
  success: (options: AlertOptions) => Promise<void>;
36
57
  warning: (options: AlertOptions) => Promise<void>;
37
58
  error: (options: AlertOptions) => Promise<void>;
59
+ /** 确认后 resolve 一份值的普通对象快照;取消 / Esc / 卸载 resolve null。 */
60
+ prompt: <T extends object>(options: PromptOptions<T>) => Promise<T | null>;
61
+ /** 换一份全局配置源。 */
62
+ setConfig: (next: MaybeRefOrGetter<XhConfig> | undefined) => void;
38
63
  /** 卸载宿主应用并移除容器。 */
39
64
  dispose: () => void;
40
65
  }
41
66
  declare function createDialogService(options?: DialogServiceOptions): DialogService;
42
67
  //#endregion
43
- export { AlertOptions, ConfirmOptions, DialogService, DialogServiceOptions, createDialogService };
68
+ export { AlertOptions, ConfirmOptions, DialogBody, DialogService, DialogServiceOptions, PromptOptions, createDialogService };
44
69
  //# sourceMappingURL=dialog-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialog-service.d.ts","names":[],"sources":["../../src/services/dialog-service.ts"],"mappings":";;;UAaiB;EACf;EACA;;EAEA,OAAO;;EAEP;EACA;EACA;;EAEA,oBAAoB;;;KAIV,eAAe,KAAK;UAEf;;EAEf;;EAEA;;;;;EAKA,SAAS;;EAET,SAAS;;UAGM;;EAEf,UAAU,SAAS,mBAAmB;EACtC,OAAO,SAAS,iBAAiB;EACjC,UAAU,SAAS,iBAAiB;EACpC,UAAU,SAAS,iBAAiB;EACpC,QAAQ,SAAS,iBAAiB;;EAElC;;iBAoBc,oBAAoB,UAAS,uBAA4B"}
1
+ {"version":3,"file":"dialog-service.d.ts","names":[],"sources":["../../src/services/dialog-service.ts"],"mappings":";;;;;;;;;;;KAsBY,6BAA6B;UAExB;EACf;EACA,UAAU;;EAEV,OAAO;;EAEP;EACA,SAAS;EACT,aAAa;;EAEb,oBAAoB;;;KAIV,eAAe,KAAK;;UAGf,cAAc,0BAA0B,KAAK;;EAE5D,cAAc;;EAEd,OAAO,OAAO,MAAM;;EAEpB;;EAEA,QAAQ,OAAO,uBAAuB;;UAGvB;;EAEf,SAAS;;EAET,aAAa;;;;;;EAMb,SAAS,iBAAiB;;EAE1B,SAAS;;UAGM;;EAEf,UAAU,SAAS,mBAAmB;EACtC,OAAO,SAAS,iBAAiB;EACjC,UAAU,SAAS,iBAAiB;EACpC,UAAU,SAAS,iBAAiB;EACpC,QAAQ,SAAS,iBAAiB;;EAElC,SAAS,kBAAkB,SAAS,cAAc,OAAO,QAAQ;;EAEjE,YAAY,MAAM,iBAAiB;;EAEnC;;iBAyBc,oBAAoB,UAAS,uBAA4B"}
@@ -1,8 +1,10 @@
1
- import { provideXhConfig } from "../config/config.js";
2
1
  import { XhButton, XhButtonIndicator, XhButtonLabel } from "../components/button.js";
3
2
  import { XhDialogContent, XhDialogDescription, XhDialogRoot, XhDialogTitle } from "../components/dialog/dialog.js";
4
3
  import { spinArc, typeBadge } from "./glyph.js";
5
- import { createApp, defineComponent, h, reactive } from "vue";
4
+ import { mountServiceHost } from "./mount-host.js";
5
+ import { createServiceConfig } from "./service-config.js";
6
+ import { createApp, defineComponent, h, reactive, shallowRef, toRaw, toValue } from "vue";
7
+ import { ensurePortalRoot } from "@xihan-ui/kernel";
6
8
  //#region src/services/dialog-service.ts
7
9
  /** 关到再开之间留出退场窗口,动效走完再放下一个。 */
8
10
  const EXIT_WINDOW_MS = 250;
@@ -12,10 +14,11 @@ function createDialogService(options = {}) {
12
14
  okText: options.okText ?? "OK",
13
15
  cancelText: options.cancelText ?? "Cancel"
14
16
  };
17
+ const configSource = createServiceConfig(options.config);
15
18
  const holder = options.target ?? document.createElement("div");
16
- if (!options.target) document.body.appendChild(holder);
19
+ if (!options.target) ensurePortalRoot(document).appendChild(holder);
20
+ const current = shallowRef(null);
17
21
  const state = reactive({
18
- current: null,
19
22
  open: false,
20
23
  busy: false
21
24
  });
@@ -23,13 +26,13 @@ function createDialogService(options = {}) {
23
26
  let disposed = false;
24
27
  let advanceTimer = null;
25
28
  function next() {
26
- if (disposed || state.current || queue.length === 0) return;
27
- state.current = queue.shift();
29
+ if (disposed || current.value || queue.length === 0) return;
30
+ current.value = queue.shift();
28
31
  state.busy = false;
29
32
  state.open = true;
30
33
  }
31
34
  function settle(ok) {
32
- const spec = state.current;
35
+ const spec = current.value;
33
36
  if (!spec || spec.settled) return;
34
37
  spec.settled = true;
35
38
  spec.resolve(ok);
@@ -39,7 +42,7 @@ function createDialogService(options = {}) {
39
42
  if (advanceTimer) return;
40
43
  advanceTimer = setTimeout(() => {
41
44
  advanceTimer = null;
42
- state.current = null;
45
+ current.value = null;
43
46
  state.busy = false;
44
47
  next();
45
48
  }, EXIT_WINDOW_MS);
@@ -56,12 +59,15 @@ function createDialogService(options = {}) {
56
59
  scheduleAdvance();
57
60
  }
58
61
  async function ok() {
59
- const spec = state.current;
62
+ const spec = current.value;
60
63
  if (!spec || state.busy) return;
61
64
  if (spec.onOk) {
62
65
  state.busy = true;
63
66
  try {
64
- await spec.onOk();
67
+ if (await spec.onOk() === false) {
68
+ state.busy = false;
69
+ return;
70
+ }
65
71
  } catch (err) {
66
72
  state.busy = false;
67
73
  console.error("[xh] confirm onOk 失败,对话框保持打开", err);
@@ -85,40 +91,42 @@ function createDialogService(options = {}) {
85
91
  const Host = defineComponent({
86
92
  name: "XhDialogServiceHost",
87
93
  setup() {
88
- if (options.config) provideXhConfig(options.config);
94
+ configSource.provide();
89
95
  return () => {
90
- const spec = state.current;
96
+ const spec = current.value;
91
97
  return h(XhDialogRoot, {
92
98
  "open": state.open,
93
99
  "onUpdate:open": onOpenChange,
94
100
  "modal": true,
95
101
  "role": "alertdialog",
96
102
  "closeOnEscape": !state.busy,
97
- "closeOnInteractOutside": false
103
+ "closeOnInteractOutside": false,
104
+ "initialFocus": spec?.initialFocus
98
105
  }, () => spec ? h(XhDialogContent, null, () => [
99
106
  h("div", {
100
107
  "style": {
101
108
  display: "flex",
102
109
  alignItems: "center",
103
- gap: "var(--xh-space-2)"
110
+ gap: "var(--xh-control-gap-md)"
104
111
  },
105
112
  "data-tone": spec.badge ? toneOfBadge(spec.badge) : void 0
106
113
  }, [spec.badge ? typeBadge(spec.badge) : null, h(XhDialogTitle, () => spec.title)]),
107
- spec.content ? h(XhDialogDescription, () => spec.content) : null,
114
+ typeof spec.content === "string" ? h(XhDialogDescription, () => spec.content) : typeof spec.content === "function" ? spec.content() : null,
115
+ spec.body && spec.value ? spec.body(spec.value) : null,
108
116
  h("div", { style: {
109
117
  display: "flex",
110
118
  justifyContent: "flex-end",
111
- gap: "var(--xh-space-2)"
119
+ gap: "var(--xh-control-gap-md)"
112
120
  } }, [spec.showCancel ? h(XhButton, {
113
121
  variant: "ghost",
114
122
  disabled: state.busy,
115
123
  onClick: () => close(false)
116
- }, () => spec.cancelText) : null, h(XhButton, {
124
+ }, () => toValue(spec.cancelText)) : null, h(XhButton, {
117
125
  variant: "solid",
118
126
  tone: spec.tone,
119
127
  loading: state.busy,
120
128
  onClick: ok
121
- }, () => [state.busy ? h(XhButtonIndicator, () => spinArc()) : null, h(XhButtonLabel, () => state.busy ? `${spec.okText}…` : spec.okText)])])
129
+ }, () => [state.busy ? h(XhButtonIndicator, () => spinArc()) : null, h(XhButtonLabel, () => state.busy ? `${toValue(spec.okText)}…` : toValue(spec.okText))])])
122
130
  ]) : null);
123
131
  };
124
132
  }
@@ -127,7 +135,7 @@ function createDialogService(options = {}) {
127
135
  return badge === "error" ? "danger" : badge;
128
136
  }
129
137
  const app = createApp(Host);
130
- app.mount(holder);
138
+ const mounted = mountServiceHost(app, holder, "dialog");
131
139
  const alert = (badge, tone) => async (opts) => {
132
140
  await request({
133
141
  title: opts.title,
@@ -151,10 +159,26 @@ function createDialogService(options = {}) {
151
159
  badge: opts.badge,
152
160
  onOk: opts.onOk
153
161
  }),
162
+ prompt: (opts) => {
163
+ const value = reactive({ ...opts.initialValue });
164
+ return request({
165
+ title: opts.title,
166
+ tone: opts.tone ?? "brand",
167
+ okText: opts.okText ?? defaults.okText,
168
+ cancelText: opts.cancelText ?? defaults.cancelText,
169
+ showCancel: true,
170
+ badge: opts.badge,
171
+ initialFocus: opts.initialFocus,
172
+ body: (v) => opts.body(v),
173
+ value,
174
+ onOk: opts.onOk ? () => opts.onOk(value) : void 0
175
+ }).then((ok) => ok ? { ...toRaw(value) } : null);
176
+ },
154
177
  info: alert("info", "info"),
155
178
  success: alert("success", "success"),
156
179
  warning: alert("warning", "warning"),
157
180
  error: alert("error", "danger"),
181
+ setConfig: (next) => configSource.set(next),
158
182
  dispose: () => {
159
183
  disposed = true;
160
184
  if (advanceTimer) {
@@ -163,7 +187,7 @@ function createDialogService(options = {}) {
163
187
  }
164
188
  settle(false);
165
189
  for (const spec of queue.splice(0)) spec.resolve(false);
166
- app.unmount();
190
+ if (mounted) app.unmount();
167
191
  if (!options.target) holder.remove();
168
192
  }
169
193
  };
@@ -1 +1 @@
1
- {"version":3,"file":"dialog-service.js","names":[],"sources":["../../src/services/dialog-service.ts"],"sourcesContent":["// 全局命令式确认框服务:confirm/info/success/warning/error 一次调用弹出,\n// 自带标题徽记、正文与按钮行。同一时刻只挂一个对话框,后来的排队顺次弹出,\n// 避开多层模态叠加。onOk 返回 Promise 时确认钮自动进入 pending 并拦住关闭,\n// 失败保持打开以便重试或取消。\nimport type { Tone } from '@xihan-ui/kernel'\nimport type { App } from 'vue'\nimport type { XhConfig } from '../config/config'\nimport { createApp, defineComponent, h, reactive } from 'vue'\nimport { XhButton, XhButtonIndicator, XhButtonLabel } from '../components/button'\nimport { XhDialogContent, XhDialogDescription, XhDialogRoot, XhDialogTitle } from '../components/dialog/dialog'\nimport { provideXhConfig } from '../config/config'\nimport { spinArc, typeBadge } from './glyph'\n\nexport interface ConfirmOptions {\n title: string\n content?: string\n /** 确认钮语气,默认 brand;危险操作传 danger。 */\n tone?: Tone\n /** 标题旁的类型徽记。不给则不出徽记。 */\n badge?: 'info' | 'success' | 'warning' | 'error'\n okText?: string\n cancelText?: string\n /** Promise 拒绝时对话框保持打开。 */\n onOk?: () => void | Promise<unknown>\n}\n\n/** 单按钮告知框的入参:没有取消钮,徽记由预设档自己定,其余同 confirm。 */\nexport type AlertOptions = Omit<ConfirmOptions, 'tone' | 'badge'>\n\nexport interface DialogServiceOptions {\n /** 确认钮文案,缺省 OK。 */\n okText?: string\n /** 取消钮文案,缺省 Cancel。 */\n cancelText?: string\n /**\n * 喂给对话框子树的全局配置(locale / translations / size / portalContainer)。\n * 本服务自带宿主应用,接不到组件树里的 provideXhConfig,要让它跟应用同语言就从这里给。\n */\n config?: XhConfig\n /** 宿主容器;不给就在 body 下新建一个。 */\n target?: HTMLElement\n}\n\nexport interface DialogService {\n /** 确认走 onOk 后 resolve true;取消/Esc resolve false。 */\n confirm: (options: ConfirmOptions) => Promise<boolean>\n info: (options: AlertOptions) => Promise<void>\n success: (options: AlertOptions) => Promise<void>\n warning: (options: AlertOptions) => Promise<void>\n error: (options: AlertOptions) => Promise<void>\n /** 卸载宿主应用并移除容器。 */\n dispose: () => void\n}\n\ninterface Spec {\n title: string\n content?: string\n tone: Tone\n okText: string\n cancelText: string\n showCancel: boolean\n /** 标题旁的类型徽记(预设档用),confirm 不带。 */\n badge?: 'info' | 'success' | 'warning' | 'error'\n onOk?: () => void | Promise<unknown>\n resolve: (ok: boolean) => void\n settled: boolean\n}\n\n/** 关到再开之间留出退场窗口,动效走完再放下一个。 */\nconst EXIT_WINDOW_MS = 250\n\nexport function createDialogService(options: DialogServiceOptions = {}): DialogService {\n if (typeof document === 'undefined')\n throw new Error('createDialogService 需要 document;SSR 里请等到客户端再创建')\n\n const defaults = { okText: options.okText ?? 'OK', cancelText: options.cancelText ?? 'Cancel' }\n const holder = options.target ?? document.createElement('div')\n if (!options.target)\n document.body.appendChild(holder)\n\n const state = reactive({\n current: null as Spec | null,\n open: false,\n busy: false,\n })\n const queue: Spec[] = []\n let disposed = false\n let advanceTimer: ReturnType<typeof setTimeout> | null = null\n\n function next(): void {\n if (disposed || state.current || queue.length === 0)\n return\n state.current = queue.shift()!\n state.busy = false\n state.open = true\n }\n\n function settle(ok: boolean): void {\n const spec = state.current\n if (!spec || spec.settled)\n return\n spec.settled = true\n spec.resolve(ok)\n }\n\n /** 退场窗口走完再清当前项、放下一个;程序化关闭与机器侧关闭都汇到这里,只挂一只表。 */\n function scheduleAdvance(): void {\n if (advanceTimer)\n return\n advanceTimer = setTimeout(() => {\n advanceTimer = null\n state.current = null\n state.busy = false\n next()\n }, EXIT_WINDOW_MS)\n }\n\n function close(ok: boolean): void {\n settle(ok)\n state.open = false\n scheduleAdvance()\n }\n\n // 机器侧的关闭(Esc 等)从这里回来:未定的一律按取消结\n function onOpenChange(open: boolean): void {\n if (open)\n return\n settle(false)\n state.open = false\n scheduleAdvance()\n }\n\n async function ok(): Promise<void> {\n const spec = state.current\n if (!spec || state.busy)\n return\n if (spec.onOk) {\n state.busy = true\n try {\n await spec.onOk()\n }\n catch (err) {\n state.busy = false\n console.error('[xh] confirm onOk 失败,对话框保持打开', err)\n return\n }\n state.busy = false\n }\n close(true)\n }\n\n function request(spec: Omit<Spec, 'resolve' | 'settled'>): Promise<boolean> {\n if (disposed)\n return Promise.reject(new Error('dialog 服务已卸载'))\n return new Promise<boolean>((resolve) => {\n queue.push({ ...spec, resolve, settled: false })\n next()\n })\n }\n\n const Host = defineComponent({\n name: 'XhDialogServiceHost',\n setup() {\n if (options.config)\n provideXhConfig(options.config)\n return () => {\n const spec = state.current\n return h(XhDialogRoot, {\n 'open': state.open,\n 'onUpdate:open': onOpenChange,\n 'modal': true,\n 'role': 'alertdialog',\n 'closeOnEscape': !state.busy,\n 'closeOnInteractOutside': false,\n }, () => spec\n ? h(XhDialogContent, null, () => [\n h('div', { 'style': { display: 'flex', alignItems: 'center', gap: 'var(--xh-space-2)' }, 'data-tone': spec.badge ? toneOfBadge(spec.badge) : undefined }, [\n spec.badge ? typeBadge(spec.badge) : null,\n h(XhDialogTitle, () => spec.title),\n ]),\n spec.content ? h(XhDialogDescription, () => spec.content) : null,\n h('div', { style: { display: 'flex', justifyContent: 'flex-end', gap: 'var(--xh-space-2)' } }, [\n spec.showCancel\n ? h(XhButton, { variant: 'ghost', disabled: state.busy, onClick: () => close(false) }, () => spec.cancelText)\n : null,\n h(XhButton, { variant: 'solid', tone: spec.tone, loading: state.busy, onClick: ok }, () => [\n state.busy ? h(XhButtonIndicator, () => spinArc()) : null,\n h(XhButtonLabel, () => (state.busy ? `${spec.okText}…` : spec.okText)),\n ]),\n ]),\n ])\n : null)\n }\n },\n })\n\n function toneOfBadge(badge: NonNullable<Spec['badge']>): Tone {\n return badge === 'error' ? 'danger' : badge\n }\n\n const app: App = createApp(Host)\n app.mount(holder)\n\n const alert = (badge: NonNullable<Spec['badge']>, tone: Tone) => async (opts: AlertOptions): Promise<void> => {\n await request({\n title: opts.title,\n content: opts.content,\n tone,\n okText: opts.okText ?? defaults.okText,\n cancelText: defaults.cancelText,\n showCancel: false,\n badge,\n onOk: opts.onOk,\n })\n }\n\n return {\n confirm: opts => request({\n title: opts.title,\n content: opts.content,\n tone: opts.tone ?? 'brand',\n okText: opts.okText ?? defaults.okText,\n cancelText: opts.cancelText ?? defaults.cancelText,\n showCancel: true,\n badge: opts.badge,\n onOk: opts.onOk,\n }),\n info: alert('info', 'info'),\n success: alert('success', 'success'),\n warning: alert('warning', 'warning'),\n error: alert('error', 'danger'),\n dispose: () => {\n disposed = true\n if (advanceTimer) {\n clearTimeout(advanceTimer)\n advanceTimer = null\n }\n settle(false)\n for (const spec of queue.splice(0))\n spec.resolve(false)\n app.unmount()\n if (!options.target)\n holder.remove()\n },\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"dialog-service.js","names":[],"sources":["../../src/services/dialog-service.ts"],"sourcesContent":["// 全局命令式确认框服务:confirm/info/success/warning/error 一次调用弹出,\n// 自带标题徽记、正文与按钮行。同一时刻只挂一个对话框,后来的排队顺次弹出,\n// 避开多层模态叠加。onOk 返回 Promise 时确认钮自动进入 pending 并拦住关闭,\n// 失败保持打开以便重试或取消。\nimport type { Tone } from '@xihan-ui/kernel'\nimport type { App, MaybeRefOrGetter, VNodeChild } from 'vue'\nimport type { XhConfig } from '../config/config'\nimport { ensurePortalRoot } from '@xihan-ui/kernel'\nimport { createApp, defineComponent, h, reactive, shallowRef, toRaw, toValue } from 'vue'\nimport { XhButton, XhButtonIndicator, XhButtonLabel } from '../components/button'\nimport { XhDialogContent, XhDialogDescription, XhDialogRoot, XhDialogTitle } from '../components/dialog/dialog'\nimport { spinArc, typeBadge } from './glyph'\nimport { mountServiceHost } from './mount-host'\nimport { createServiceConfig } from './service-config'\n\n/**\n * 对话框正文。给串走 description 部件(读屏的 aria-describedby 由它接);\n * 给渲染函数则整块摊在正文位,自己决定渲染什么。\n *\n * 不收裸 VNode:服务的宿主是常驻的,忙态一翻就整棵重渲,\n * 同一个 VNode 实例被复用时的行为未定义。\n */\nexport type DialogBody = string | (() => VNodeChild)\n\nexport interface ConfirmOptions {\n title: string\n content?: DialogBody\n /** 确认钮语气,默认 brand;危险操作传 danger。 */\n tone?: Tone\n /** 标题旁的类型徽记。不给则不出徽记。 */\n badge?: 'info' | 'success' | 'warning' | 'error'\n okText?: MaybeRefOrGetter<string>\n cancelText?: MaybeRefOrGetter<string>\n /** Promise 拒绝时对话框保持打开。 */\n onOk?: () => void | Promise<unknown>\n}\n\n/** 单按钮告知框的入参:没有取消钮,徽记由预设档自己定,其余同 confirm。 */\nexport type AlertOptions = Omit<ConfirmOptions, 'tone' | 'badge'>\n\n/** 取值型弹窗的入参。正文自己拼表单,确认时把那份值带回来。 */\nexport interface PromptOptions<T extends object> extends Omit<ConfirmOptions, 'onOk' | 'content'> {\n /** 每次打开建一份初值;服务用 reactive 包起来交给 body 与 onOk,两边同一份。 */\n initialValue: T\n /** 用那份可写代理渲染表单主体。 */\n body: (value: T) => VNodeChild\n /** 落焦到哪个节点,CSS 选择器。 */\n initialFocus?: string\n /** 返回 false(或拒绝)表示校验没过,弹窗保持打开。 */\n onOk?: (value: T) => boolean | void | Promise<boolean | void>\n}\n\nexport interface DialogServiceOptions {\n /** 确认钮文案,缺省 OK。 */\n okText?: MaybeRefOrGetter<string>\n /** 取消钮文案,缺省 Cancel。 */\n cancelText?: MaybeRefOrGetter<string>\n /**\n * 喂给对话框子树的全局配置(locale / translations / size / portalContainer)。\n * 本服务自带宿主应用,接不到组件树里的 provideXhConfig,要让它跟应用同语言就从这里给;\n * 传 ref/getter 即可运行期跟着切语言,也可以之后用 setConfig 推。\n */\n config?: MaybeRefOrGetter<XhConfig>\n /** 宿主容器;不给就在 body 下新建一个。 */\n target?: HTMLElement\n}\n\nexport interface DialogService {\n /** 确认走 onOk 后 resolve true;取消/Esc resolve false。 */\n confirm: (options: ConfirmOptions) => Promise<boolean>\n info: (options: AlertOptions) => Promise<void>\n success: (options: AlertOptions) => Promise<void>\n warning: (options: AlertOptions) => Promise<void>\n error: (options: AlertOptions) => Promise<void>\n /** 确认后 resolve 一份值的普通对象快照;取消 / Esc / 卸载 resolve null。 */\n prompt: <T extends object>(options: PromptOptions<T>) => Promise<T | null>\n /** 换一份全局配置源。 */\n setConfig: (next: MaybeRefOrGetter<XhConfig> | undefined) => void\n /** 卸载宿主应用并移除容器。 */\n dispose: () => void\n}\n\ninterface Spec {\n title: string\n content?: DialogBody\n tone: Tone\n okText: MaybeRefOrGetter<string>\n cancelText: MaybeRefOrGetter<string>\n showCancel: boolean\n /** 标题旁的类型徽记(预设档用),confirm 不带。 */\n badge?: 'info' | 'success' | 'warning' | 'error'\n /** 返回 false 表示不放行;confirm 那一路的返回值不参与判定。 */\n onOk?: () => unknown\n /** 取值型弹窗的正文与那份可写的值,两边同一个对象。 */\n body?: (value: object) => VNodeChild\n value?: object\n initialFocus?: string\n resolve: (ok: boolean) => void\n settled: boolean\n}\n\n/** 关到再开之间留出退场窗口,动效走完再放下一个。 */\nconst EXIT_WINDOW_MS = 250\n\nexport function createDialogService(options: DialogServiceOptions = {}): DialogService {\n if (typeof document === 'undefined')\n throw new Error('createDialogService 需要 document;SSR 里请等到客户端再创建')\n\n // 文案不在创建时求值:队列里的对话框会跨过一次切语言\n const defaults = { okText: options.okText ?? 'OK', cancelText: options.cancelText ?? 'Cancel' }\n const configSource = createServiceConfig(options.config)\n const holder = options.target ?? document.createElement('div')\n if (!options.target)\n ensurePortalRoot(document).appendChild(holder)\n\n // 当前项单独放 shallowRef:进 reactive 会把 Spec 里那几个 MaybeRefOrGetter 的 Ref 分支解包掉\n const current = shallowRef<Spec | null>(null)\n const state = reactive({\n open: false,\n busy: false,\n })\n const queue: Spec[] = []\n let disposed = false\n let advanceTimer: ReturnType<typeof setTimeout> | null = null\n\n function next(): void {\n if (disposed || current.value || queue.length === 0)\n return\n current.value = queue.shift()!\n state.busy = false\n state.open = true\n }\n\n function settle(ok: boolean): void {\n const spec = current.value\n if (!spec || spec.settled)\n return\n spec.settled = true\n spec.resolve(ok)\n }\n\n /** 退场窗口走完再清当前项、放下一个;程序化关闭与机器侧关闭都汇到这里,只挂一只表。 */\n function scheduleAdvance(): void {\n if (advanceTimer)\n return\n advanceTimer = setTimeout(() => {\n advanceTimer = null\n current.value = null\n state.busy = false\n next()\n }, EXIT_WINDOW_MS)\n }\n\n function close(ok: boolean): void {\n settle(ok)\n state.open = false\n scheduleAdvance()\n }\n\n // 机器侧的关闭(Esc 等)从这里回来:未定的一律按取消结\n function onOpenChange(open: boolean): void {\n if (open)\n return\n settle(false)\n state.open = false\n scheduleAdvance()\n }\n\n async function ok(): Promise<void> {\n const spec = current.value\n if (!spec || state.busy)\n return\n if (spec.onOk) {\n state.busy = true\n try {\n // 取值型弹窗的 onOk 收 false 表示校验没过,对话框保持打开;\n // confirm 的 onOk 签名不吃 false,语义不受影响\n const verdict = await spec.onOk()\n if (verdict === false) {\n state.busy = false\n return\n }\n }\n catch (err) {\n state.busy = false\n console.error('[xh] confirm onOk 失败,对话框保持打开', err)\n return\n }\n state.busy = false\n }\n close(true)\n }\n\n function request(spec: Omit<Spec, 'resolve' | 'settled'>): Promise<boolean> {\n if (disposed)\n return Promise.reject(new Error('dialog 服务已卸载'))\n return new Promise<boolean>((resolve) => {\n queue.push({ ...spec, resolve, settled: false })\n next()\n })\n }\n\n const Host = defineComponent({\n name: 'XhDialogServiceHost',\n setup() {\n configSource.provide()\n return () => {\n const spec = current.value\n return h(XhDialogRoot, {\n 'open': state.open,\n 'onUpdate:open': onOpenChange,\n 'modal': true,\n 'role': 'alertdialog',\n 'closeOnEscape': !state.busy,\n 'closeOnInteractOutside': false,\n 'initialFocus': spec?.initialFocus,\n }, () => spec\n ? h(XhDialogContent, null, () => [\n h('div', { 'style': { display: 'flex', alignItems: 'center', gap: 'var(--xh-control-gap-md)' }, 'data-tone': spec.badge ? toneOfBadge(spec.badge) : undefined }, [\n spec.badge ? typeBadge(spec.badge) : null,\n h(XhDialogTitle, () => spec.title),\n ]),\n // 串走 description(读屏的 aria-describedby 接在它上面),渲染函数直接摊开\n typeof spec.content === 'string'\n ? h(XhDialogDescription, () => spec.content as string)\n : typeof spec.content === 'function' ? spec.content() : null,\n spec.body && spec.value ? spec.body(spec.value) : null,\n h('div', { style: { display: 'flex', justifyContent: 'flex-end', gap: 'var(--xh-control-gap-md)' } }, [\n spec.showCancel\n ? h(XhButton, { variant: 'ghost', disabled: state.busy, onClick: () => close(false) }, () => toValue(spec.cancelText))\n : null,\n h(XhButton, { variant: 'solid', tone: spec.tone, loading: state.busy, onClick: ok }, () => [\n state.busy ? h(XhButtonIndicator, () => spinArc()) : null,\n h(XhButtonLabel, () => (state.busy ? `${toValue(spec.okText)}…` : toValue(spec.okText))),\n ]),\n ]),\n ])\n : null)\n }\n },\n })\n\n function toneOfBadge(badge: NonNullable<Spec['badge']>): Tone {\n return badge === 'error' ? 'danger' : badge\n }\n\n const app: App = createApp(Host)\n const mounted = mountServiceHost(app, holder, 'dialog')\n\n const alert = (badge: NonNullable<Spec['badge']>, tone: Tone) => async (opts: AlertOptions): Promise<void> => {\n await request({\n title: opts.title,\n content: opts.content,\n tone,\n okText: opts.okText ?? defaults.okText,\n cancelText: defaults.cancelText,\n showCancel: false,\n badge,\n onOk: opts.onOk,\n })\n }\n\n return {\n confirm: opts => request({\n title: opts.title,\n content: opts.content,\n tone: opts.tone ?? 'brand',\n okText: opts.okText ?? defaults.okText,\n cancelText: opts.cancelText ?? defaults.cancelText,\n showCancel: true,\n badge: opts.badge,\n onOk: opts.onOk,\n }),\n prompt: <T extends object>(opts: PromptOptions<T>): Promise<T | null> => {\n // body 与 onOk 拿的是同一份可写代理:正文里改了什么,确认时就读到什么\n const value = reactive({ ...opts.initialValue }) as T\n return request({\n title: opts.title,\n tone: opts.tone ?? 'brand',\n okText: opts.okText ?? defaults.okText,\n cancelText: opts.cancelText ?? defaults.cancelText,\n showCancel: true,\n badge: opts.badge,\n initialFocus: opts.initialFocus,\n body: v => opts.body(v as T),\n value,\n onOk: opts.onOk ? () => opts.onOk!(value) : undefined,\n }).then(ok => (ok ? { ...toRaw(value) } as T : null))\n },\n info: alert('info', 'info'),\n success: alert('success', 'success'),\n warning: alert('warning', 'warning'),\n error: alert('error', 'danger'),\n setConfig: next => configSource.set(next),\n dispose: () => {\n disposed = true\n if (advanceTimer) {\n clearTimeout(advanceTimer)\n advanceTimer = null\n }\n settle(false)\n for (const spec of queue.splice(0))\n spec.resolve(false)\n if (mounted)\n app.unmount()\n if (!options.target)\n holder.remove()\n },\n }\n}\n"],"mappings":";;;;;;;;;AAsGA,MAAM,iBAAiB;AAEvB,SAAgB,oBAAoB,UAAgC,CAAC,GAAkB;CACrF,IAAI,OAAO,aAAa,aACtB,MAAM,IAAI,MAAM,gDAAgD;CAGlE,MAAM,WAAW;EAAE,QAAQ,QAAQ,UAAU;EAAM,YAAY,QAAQ,cAAc;CAAS;CAC9F,MAAM,eAAe,oBAAoB,QAAQ,MAAM;CACvD,MAAM,SAAS,QAAQ,UAAU,SAAS,cAAc,KAAK;CAC7D,IAAI,CAAC,QAAQ,QACX,iBAAiB,QAAQ,CAAC,CAAC,YAAY,MAAM;CAG/C,MAAM,UAAU,WAAwB,IAAI;CAC5C,MAAM,QAAQ,SAAS;EACrB,MAAM;EACN,MAAM;CACR,CAAC;CACD,MAAM,QAAgB,CAAC;CACvB,IAAI,WAAW;CACf,IAAI,eAAqD;CAEzD,SAAS,OAAa;EACpB,IAAI,YAAY,QAAQ,SAAS,MAAM,WAAW,GAChD;EACF,QAAQ,QAAQ,MAAM,MAAM;EAC5B,MAAM,OAAO;EACb,MAAM,OAAO;CACf;CAEA,SAAS,OAAO,IAAmB;EACjC,MAAM,OAAO,QAAQ;EACrB,IAAI,CAAC,QAAQ,KAAK,SAChB;EACF,KAAK,UAAU;EACf,KAAK,QAAQ,EAAE;CACjB;;CAGA,SAAS,kBAAwB;EAC/B,IAAI,cACF;EACF,eAAe,iBAAiB;GAC9B,eAAe;GACf,QAAQ,QAAQ;GAChB,MAAM,OAAO;GACb,KAAK;EACP,GAAG,cAAc;CACnB;CAEA,SAAS,MAAM,IAAmB;EAChC,OAAO,EAAE;EACT,MAAM,OAAO;EACb,gBAAgB;CAClB;CAGA,SAAS,aAAa,MAAqB;EACzC,IAAI,MACF;EACF,OAAO,KAAK;EACZ,MAAM,OAAO;EACb,gBAAgB;CAClB;CAEA,eAAe,KAAoB;EACjC,MAAM,OAAO,QAAQ;EACrB,IAAI,CAAC,QAAQ,MAAM,MACjB;EACF,IAAI,KAAK,MAAM;GACb,MAAM,OAAO;GACb,IAAI;IAIF,IAAI,MADkB,KAAK,KAAK,MAChB,OAAO;KACrB,MAAM,OAAO;KACb;IACF;GACF,SACO,KAAK;IACV,MAAM,OAAO;IACb,QAAQ,MAAM,gCAAgC,GAAG;IACjD;GACF;GACA,MAAM,OAAO;EACf;EACA,MAAM,IAAI;CACZ;CAEA,SAAS,QAAQ,MAA2D;EAC1E,IAAI,UACF,OAAO,QAAQ,uBAAO,IAAI,MAAM,cAAc,CAAC;EACjD,OAAO,IAAI,SAAkB,YAAY;GACvC,MAAM,KAAK;IAAE,GAAG;IAAM;IAAS,SAAS;GAAM,CAAC;GAC/C,KAAK;EACP,CAAC;CACH;CAEA,MAAM,OAAO,gBAAgB;EAC3B,MAAM;EACN,QAAQ;GACN,aAAa,QAAQ;GACrB,aAAa;IACX,MAAM,OAAO,QAAQ;IACrB,OAAO,EAAE,cAAc;KACrB,QAAQ,MAAM;KACd,iBAAiB;KACjB,SAAS;KACT,QAAQ;KACR,iBAAiB,CAAC,MAAM;KACxB,0BAA0B;KAC1B,gBAAgB,MAAM;IACxB,SAAS,OACL,EAAE,iBAAiB,YAAY;KAC7B,EAAE,OAAO;MAAE,SAAS;OAAE,SAAS;OAAQ,YAAY;OAAU,KAAK;MAA2B;MAAG,aAAa,KAAK,QAAQ,YAAY,KAAK,KAAK,IAAI,KAAA;KAAU,GAAG,CAC/J,KAAK,QAAQ,UAAU,KAAK,KAAK,IAAI,MACrC,EAAE,qBAAqB,KAAK,KAAK,CACnC,CAAC;KAED,OAAO,KAAK,YAAY,WACpB,EAAE,2BAA2B,KAAK,OAAiB,IACnD,OAAO,KAAK,YAAY,aAAa,KAAK,QAAQ,IAAI;KAC1D,KAAK,QAAQ,KAAK,QAAQ,KAAK,KAAK,KAAK,KAAK,IAAI;KAClD,EAAE,OAAO,EAAE,OAAO;MAAE,SAAS;MAAQ,gBAAgB;MAAY,KAAK;KAA2B,EAAE,GAAG,CACpG,KAAK,aACD,EAAE,UAAU;MAAE,SAAS;MAAS,UAAU,MAAM;MAAM,eAAe,MAAM,KAAK;KAAE,SAAS,QAAQ,KAAK,UAAU,CAAC,IACnH,MACJ,EAAE,UAAU;MAAE,SAAS;MAAS,MAAM,KAAK;MAAM,SAAS,MAAM;MAAM,SAAS;KAAG,SAAS,CACzF,MAAM,OAAO,EAAE,yBAAyB,QAAQ,CAAC,IAAI,MACrD,EAAE,qBAAsB,MAAM,OAAO,GAAG,QAAQ,KAAK,MAAM,EAAE,KAAK,QAAQ,KAAK,MAAM,CAAE,CACzF,CAAC,CACH,CAAC;IACH,CAAC,IACD,IAAI;GACV;EACF;CACF,CAAC;CAED,SAAS,YAAY,OAAyC;EAC5D,OAAO,UAAU,UAAU,WAAW;CACxC;CAEA,MAAM,MAAW,UAAU,IAAI;CAC/B,MAAM,UAAU,iBAAiB,KAAK,QAAQ,QAAQ;CAEtD,MAAM,SAAS,OAAmC,SAAe,OAAO,SAAsC;EAC5G,MAAM,QAAQ;GACZ,OAAO,KAAK;GACZ,SAAS,KAAK;GACd;GACA,QAAQ,KAAK,UAAU,SAAS;GAChC,YAAY,SAAS;GACrB,YAAY;GACZ;GACA,MAAM,KAAK;EACb,CAAC;CACH;CAEA,OAAO;EACL,UAAS,SAAQ,QAAQ;GACvB,OAAO,KAAK;GACZ,SAAS,KAAK;GACd,MAAM,KAAK,QAAQ;GACnB,QAAQ,KAAK,UAAU,SAAS;GAChC,YAAY,KAAK,cAAc,SAAS;GACxC,YAAY;GACZ,OAAO,KAAK;GACZ,MAAM,KAAK;EACb,CAAC;EACD,SAA2B,SAA8C;GAEvE,MAAM,QAAQ,SAAS,EAAE,GAAG,KAAK,aAAa,CAAC;GAC/C,OAAO,QAAQ;IACb,OAAO,KAAK;IACZ,MAAM,KAAK,QAAQ;IACnB,QAAQ,KAAK,UAAU,SAAS;IAChC,YAAY,KAAK,cAAc,SAAS;IACxC,YAAY;IACZ,OAAO,KAAK;IACZ,cAAc,KAAK;IACnB,OAAM,MAAK,KAAK,KAAK,CAAM;IAC3B;IACA,MAAM,KAAK,aAAa,KAAK,KAAM,KAAK,IAAI,KAAA;GAC9C,CAAC,CAAC,CAAC,MAAK,OAAO,KAAK,EAAE,GAAG,MAAM,KAAK,EAAE,IAAS,IAAK;EACtD;EACA,MAAM,MAAM,QAAQ,MAAM;EAC1B,SAAS,MAAM,WAAW,SAAS;EACnC,SAAS,MAAM,WAAW,SAAS;EACnC,OAAO,MAAM,SAAS,QAAQ;EAC9B,YAAW,SAAQ,aAAa,IAAI,IAAI;EACxC,eAAe;GACb,WAAW;GACX,IAAI,cAAc;IAChB,aAAa,YAAY;IACzB,eAAe;GACjB;GACA,OAAO,KAAK;GACZ,KAAK,MAAM,QAAQ,MAAM,OAAO,CAAC,GAC/B,KAAK,QAAQ,KAAK;GACpB,IAAI,SACF,IAAI,QAAQ;GACd,IAAI,CAAC,QAAQ,QACX,OAAO,OAAO;EAClB;CACF;AACF"}