@miaixz/ui 0.5.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 (690) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +7 -0
  3. package/README.md +190 -0
  4. package/dist/accessibility/focus-scope.d.ts +57 -0
  5. package/dist/accessibility/focus-scope.d.ts.map +1 -0
  6. package/dist/accessibility/focus-scope.js +272 -0
  7. package/dist/accessibility/focus-scope.js.map +1 -0
  8. package/dist/accessibility/index.d.ts +2 -0
  9. package/dist/accessibility/index.d.ts.map +1 -0
  10. package/dist/accessibility/index.js +2 -0
  11. package/dist/accessibility/index.js.map +1 -0
  12. package/dist/components/alert/alert.d.ts +8 -0
  13. package/dist/components/alert/alert.d.ts.map +1 -0
  14. package/dist/components/alert/alert.js +24 -0
  15. package/dist/components/alert/alert.js.map +1 -0
  16. package/dist/components/alert/alert.types.d.ts +43 -0
  17. package/dist/components/alert/alert.types.d.ts.map +1 -0
  18. package/dist/components/alert/alert.types.js +2 -0
  19. package/dist/components/alert/alert.types.js.map +1 -0
  20. package/dist/components/alert/index.d.ts +4 -0
  21. package/dist/components/alert/index.d.ts.map +1 -0
  22. package/dist/components/alert/index.js +2 -0
  23. package/dist/components/alert/index.js.map +1 -0
  24. package/dist/components/avatar/avatar.d.ts +8 -0
  25. package/dist/components/avatar/avatar.d.ts.map +1 -0
  26. package/dist/components/avatar/avatar.js +29 -0
  27. package/dist/components/avatar/avatar.js.map +1 -0
  28. package/dist/components/avatar/avatar.types.d.ts +35 -0
  29. package/dist/components/avatar/avatar.types.d.ts.map +1 -0
  30. package/dist/components/avatar/avatar.types.js +2 -0
  31. package/dist/components/avatar/avatar.types.js.map +1 -0
  32. package/dist/components/avatar/index.d.ts +4 -0
  33. package/dist/components/avatar/index.d.ts.map +1 -0
  34. package/dist/components/avatar/index.js +2 -0
  35. package/dist/components/avatar/index.js.map +1 -0
  36. package/dist/components/badge/badge.d.ts +8 -0
  37. package/dist/components/badge/badge.d.ts.map +1 -0
  38. package/dist/components/badge/badge.js +12 -0
  39. package/dist/components/badge/badge.js.map +1 -0
  40. package/dist/components/badge/badge.types.d.ts +37 -0
  41. package/dist/components/badge/badge.types.d.ts.map +1 -0
  42. package/dist/components/badge/badge.types.js +2 -0
  43. package/dist/components/badge/badge.types.js.map +1 -0
  44. package/dist/components/badge/index.d.ts +3 -0
  45. package/dist/components/badge/index.d.ts.map +1 -0
  46. package/dist/components/badge/index.js +2 -0
  47. package/dist/components/badge/index.js.map +1 -0
  48. package/dist/components/breadcrumb/breadcrumb.d.ts +14 -0
  49. package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -0
  50. package/dist/components/breadcrumb/breadcrumb.js +22 -0
  51. package/dist/components/breadcrumb/breadcrumb.js.map +1 -0
  52. package/dist/components/breadcrumb/breadcrumb.types.d.ts +30 -0
  53. package/dist/components/breadcrumb/breadcrumb.types.d.ts.map +1 -0
  54. package/dist/components/breadcrumb/breadcrumb.types.js +2 -0
  55. package/dist/components/breadcrumb/breadcrumb.types.js.map +1 -0
  56. package/dist/components/breadcrumb/index.d.ts +3 -0
  57. package/dist/components/breadcrumb/index.d.ts.map +1 -0
  58. package/dist/components/breadcrumb/index.js +2 -0
  59. package/dist/components/breadcrumb/index.js.map +1 -0
  60. package/dist/components/button/button.d.ts +8 -0
  61. package/dist/components/button/button.d.ts.map +1 -0
  62. package/dist/components/button/button.js +16 -0
  63. package/dist/components/button/button.js.map +1 -0
  64. package/dist/components/button/button.types.d.ts +99 -0
  65. package/dist/components/button/button.types.d.ts.map +1 -0
  66. package/dist/components/button/button.types.js +2 -0
  67. package/dist/components/button/button.types.js.map +1 -0
  68. package/dist/components/button/index.d.ts +3 -0
  69. package/dist/components/button/index.d.ts.map +1 -0
  70. package/dist/components/button/index.js +2 -0
  71. package/dist/components/button/index.js.map +1 -0
  72. package/dist/components/checkbox/checkbox.d.ts +8 -0
  73. package/dist/components/checkbox/checkbox.d.ts.map +1 -0
  74. package/dist/components/checkbox/checkbox.js +18 -0
  75. package/dist/components/checkbox/checkbox.js.map +1 -0
  76. package/dist/components/checkbox/checkbox.types.d.ts +23 -0
  77. package/dist/components/checkbox/checkbox.types.d.ts.map +1 -0
  78. package/dist/components/checkbox/checkbox.types.js +2 -0
  79. package/dist/components/checkbox/checkbox.types.js.map +1 -0
  80. package/dist/components/checkbox/index.d.ts +3 -0
  81. package/dist/components/checkbox/index.d.ts.map +1 -0
  82. package/dist/components/checkbox/index.js +2 -0
  83. package/dist/components/checkbox/index.js.map +1 -0
  84. package/dist/components/combobox/combobox.d.ts +123 -0
  85. package/dist/components/combobox/combobox.d.ts.map +1 -0
  86. package/dist/components/combobox/combobox.js +378 -0
  87. package/dist/components/combobox/combobox.js.map +1 -0
  88. package/dist/components/combobox/combobox.types.d.ts +108 -0
  89. package/dist/components/combobox/combobox.types.d.ts.map +1 -0
  90. package/dist/components/combobox/combobox.types.js +2 -0
  91. package/dist/components/combobox/combobox.types.js.map +1 -0
  92. package/dist/components/combobox/index.d.ts +3 -0
  93. package/dist/components/combobox/index.d.ts.map +1 -0
  94. package/dist/components/combobox/index.js +2 -0
  95. package/dist/components/combobox/index.js.map +1 -0
  96. package/dist/components/confirm-dialog/confirm-dialog.d.ts +10 -0
  97. package/dist/components/confirm-dialog/confirm-dialog.d.ts.map +1 -0
  98. package/dist/components/confirm-dialog/confirm-dialog.js +70 -0
  99. package/dist/components/confirm-dialog/confirm-dialog.js.map +1 -0
  100. package/dist/components/confirm-dialog/confirm-dialog.types.d.ts +63 -0
  101. package/dist/components/confirm-dialog/confirm-dialog.types.d.ts.map +1 -0
  102. package/dist/components/confirm-dialog/confirm-dialog.types.js +2 -0
  103. package/dist/components/confirm-dialog/confirm-dialog.types.js.map +1 -0
  104. package/dist/components/confirm-dialog/index.d.ts +3 -0
  105. package/dist/components/confirm-dialog/index.d.ts.map +1 -0
  106. package/dist/components/confirm-dialog/index.js +2 -0
  107. package/dist/components/confirm-dialog/index.js.map +1 -0
  108. package/dist/components/data-table/data-table.d.ts +9 -0
  109. package/dist/components/data-table/data-table.d.ts.map +1 -0
  110. package/dist/components/data-table/data-table.js +198 -0
  111. package/dist/components/data-table/data-table.js.map +1 -0
  112. package/dist/components/data-table/data-table.types.d.ts +127 -0
  113. package/dist/components/data-table/data-table.types.d.ts.map +1 -0
  114. package/dist/components/data-table/data-table.types.js +2 -0
  115. package/dist/components/data-table/data-table.types.js.map +1 -0
  116. package/dist/components/data-table/index.d.ts +3 -0
  117. package/dist/components/data-table/index.d.ts.map +1 -0
  118. package/dist/components/data-table/index.js +2 -0
  119. package/dist/components/data-table/index.js.map +1 -0
  120. package/dist/components/dialog/dialog.d.ts +8 -0
  121. package/dist/components/dialog/dialog.d.ts.map +1 -0
  122. package/dist/components/dialog/dialog.js +45 -0
  123. package/dist/components/dialog/dialog.js.map +1 -0
  124. package/dist/components/dialog/dialog.types.d.ts +57 -0
  125. package/dist/components/dialog/dialog.types.d.ts.map +1 -0
  126. package/dist/components/dialog/dialog.types.js +2 -0
  127. package/dist/components/dialog/dialog.types.js.map +1 -0
  128. package/dist/components/dialog/index.d.ts +3 -0
  129. package/dist/components/dialog/index.d.ts.map +1 -0
  130. package/dist/components/dialog/index.js +2 -0
  131. package/dist/components/dialog/index.js.map +1 -0
  132. package/dist/components/divider/divider.d.ts +8 -0
  133. package/dist/components/divider/divider.d.ts.map +1 -0
  134. package/dist/components/divider/divider.js +12 -0
  135. package/dist/components/divider/divider.js.map +1 -0
  136. package/dist/components/divider/divider.types.d.ts +22 -0
  137. package/dist/components/divider/divider.types.d.ts.map +1 -0
  138. package/dist/components/divider/divider.types.js +2 -0
  139. package/dist/components/divider/divider.types.js.map +1 -0
  140. package/dist/components/divider/index.d.ts +3 -0
  141. package/dist/components/divider/index.d.ts.map +1 -0
  142. package/dist/components/divider/index.js +2 -0
  143. package/dist/components/divider/index.js.map +1 -0
  144. package/dist/components/drawer/drawer.d.ts +8 -0
  145. package/dist/components/drawer/drawer.d.ts.map +1 -0
  146. package/dist/components/drawer/drawer.js +45 -0
  147. package/dist/components/drawer/drawer.js.map +1 -0
  148. package/dist/components/drawer/drawer.types.d.ts +69 -0
  149. package/dist/components/drawer/drawer.types.d.ts.map +1 -0
  150. package/dist/components/drawer/drawer.types.js +2 -0
  151. package/dist/components/drawer/drawer.types.js.map +1 -0
  152. package/dist/components/drawer/index.d.ts +3 -0
  153. package/dist/components/drawer/index.d.ts.map +1 -0
  154. package/dist/components/drawer/index.js +2 -0
  155. package/dist/components/drawer/index.js.map +1 -0
  156. package/dist/components/dropdown/dropdown.d.ts +26 -0
  157. package/dist/components/dropdown/dropdown.d.ts.map +1 -0
  158. package/dist/components/dropdown/dropdown.js +70 -0
  159. package/dist/components/dropdown/dropdown.js.map +1 -0
  160. package/dist/components/dropdown/dropdown.types.d.ts +83 -0
  161. package/dist/components/dropdown/dropdown.types.d.ts.map +1 -0
  162. package/dist/components/dropdown/dropdown.types.js +2 -0
  163. package/dist/components/dropdown/dropdown.types.js.map +1 -0
  164. package/dist/components/dropdown/index.d.ts +3 -0
  165. package/dist/components/dropdown/index.d.ts.map +1 -0
  166. package/dist/components/dropdown/index.js +2 -0
  167. package/dist/components/dropdown/index.js.map +1 -0
  168. package/dist/components/dropzone/dropzone.d.ts +8 -0
  169. package/dist/components/dropzone/dropzone.d.ts.map +1 -0
  170. package/dist/components/dropzone/dropzone.js +98 -0
  171. package/dist/components/dropzone/dropzone.js.map +1 -0
  172. package/dist/components/dropzone/dropzone.types.d.ts +40 -0
  173. package/dist/components/dropzone/dropzone.types.d.ts.map +1 -0
  174. package/dist/components/dropzone/dropzone.types.js +2 -0
  175. package/dist/components/dropzone/dropzone.types.js.map +1 -0
  176. package/dist/components/dropzone/index.d.ts +3 -0
  177. package/dist/components/dropzone/index.d.ts.map +1 -0
  178. package/dist/components/dropzone/index.js +2 -0
  179. package/dist/components/dropzone/index.js.map +1 -0
  180. package/dist/components/empty-state/empty-state.d.ts +8 -0
  181. package/dist/components/empty-state/empty-state.d.ts.map +1 -0
  182. package/dist/components/empty-state/empty-state.js +13 -0
  183. package/dist/components/empty-state/empty-state.js.map +1 -0
  184. package/dist/components/empty-state/empty-state.types.d.ts +37 -0
  185. package/dist/components/empty-state/empty-state.types.d.ts.map +1 -0
  186. package/dist/components/empty-state/empty-state.types.js +2 -0
  187. package/dist/components/empty-state/empty-state.types.js.map +1 -0
  188. package/dist/components/empty-state/index.d.ts +3 -0
  189. package/dist/components/empty-state/index.d.ts.map +1 -0
  190. package/dist/components/empty-state/index.js +2 -0
  191. package/dist/components/empty-state/index.js.map +1 -0
  192. package/dist/components/file-upload/file-upload.d.ts +8 -0
  193. package/dist/components/file-upload/file-upload.d.ts.map +1 -0
  194. package/dist/components/file-upload/file-upload.js +359 -0
  195. package/dist/components/file-upload/file-upload.js.map +1 -0
  196. package/dist/components/file-upload/file-upload.types.d.ts +91 -0
  197. package/dist/components/file-upload/file-upload.types.d.ts.map +1 -0
  198. package/dist/components/file-upload/file-upload.types.js +2 -0
  199. package/dist/components/file-upload/file-upload.types.js.map +1 -0
  200. package/dist/components/file-upload/index.d.ts +3 -0
  201. package/dist/components/file-upload/index.d.ts.map +1 -0
  202. package/dist/components/file-upload/index.js +2 -0
  203. package/dist/components/file-upload/index.js.map +1 -0
  204. package/dist/components/form-field/form-field.d.ts +11 -0
  205. package/dist/components/form-field/form-field.d.ts.map +1 -0
  206. package/dist/components/form-field/form-field.js +41 -0
  207. package/dist/components/form-field/form-field.js.map +1 -0
  208. package/dist/components/form-field/form-field.types.d.ts +66 -0
  209. package/dist/components/form-field/form-field.types.d.ts.map +1 -0
  210. package/dist/components/form-field/form-field.types.js +2 -0
  211. package/dist/components/form-field/form-field.types.js.map +1 -0
  212. package/dist/components/form-field/index.d.ts +3 -0
  213. package/dist/components/form-field/index.d.ts.map +1 -0
  214. package/dist/components/form-field/index.js +2 -0
  215. package/dist/components/form-field/index.js.map +1 -0
  216. package/dist/components/icon/icon.d.ts +14 -0
  217. package/dist/components/icon/icon.d.ts.map +1 -0
  218. package/dist/components/icon/icon.js +48 -0
  219. package/dist/components/icon/icon.js.map +1 -0
  220. package/dist/components/icon/icon.types.d.ts +69 -0
  221. package/dist/components/icon/icon.types.d.ts.map +1 -0
  222. package/dist/components/icon/icon.types.js +2 -0
  223. package/dist/components/icon/icon.types.js.map +1 -0
  224. package/dist/components/icon/index.d.ts +3 -0
  225. package/dist/components/icon/index.d.ts.map +1 -0
  226. package/dist/components/icon/index.js +2 -0
  227. package/dist/components/icon/index.js.map +1 -0
  228. package/dist/components/index.d.ts +46 -0
  229. package/dist/components/index.d.ts.map +1 -0
  230. package/dist/components/index.js +45 -0
  231. package/dist/components/index.js.map +1 -0
  232. package/dist/components/inline-message/index.d.ts +4 -0
  233. package/dist/components/inline-message/index.d.ts.map +1 -0
  234. package/dist/components/inline-message/index.js +2 -0
  235. package/dist/components/inline-message/index.js.map +1 -0
  236. package/dist/components/inline-message/inline-message.d.ts +8 -0
  237. package/dist/components/inline-message/inline-message.d.ts.map +1 -0
  238. package/dist/components/inline-message/inline-message.js +20 -0
  239. package/dist/components/inline-message/inline-message.js.map +1 -0
  240. package/dist/components/inline-message/inline-message.types.d.ts +27 -0
  241. package/dist/components/inline-message/inline-message.types.d.ts.map +1 -0
  242. package/dist/components/inline-message/inline-message.types.js +2 -0
  243. package/dist/components/inline-message/inline-message.types.js.map +1 -0
  244. package/dist/components/input/index.d.ts +3 -0
  245. package/dist/components/input/index.d.ts.map +1 -0
  246. package/dist/components/input/index.js +2 -0
  247. package/dist/components/input/index.js.map +1 -0
  248. package/dist/components/input/input.d.ts +8 -0
  249. package/dist/components/input/input.d.ts.map +1 -0
  250. package/dist/components/input/input.js +13 -0
  251. package/dist/components/input/input.js.map +1 -0
  252. package/dist/components/input/input.types.d.ts +35 -0
  253. package/dist/components/input/input.types.d.ts.map +1 -0
  254. package/dist/components/input/input.types.js +2 -0
  255. package/dist/components/input/input.types.js.map +1 -0
  256. package/dist/components/list/index.d.ts +3 -0
  257. package/dist/components/list/index.d.ts.map +1 -0
  258. package/dist/components/list/index.js +2 -0
  259. package/dist/components/list/index.js.map +1 -0
  260. package/dist/components/list/list.d.ts +14 -0
  261. package/dist/components/list/list.d.ts.map +1 -0
  262. package/dist/components/list/list.js +21 -0
  263. package/dist/components/list/list.js.map +1 -0
  264. package/dist/components/list/list.types.d.ts +72 -0
  265. package/dist/components/list/list.types.d.ts.map +1 -0
  266. package/dist/components/list/list.types.js +2 -0
  267. package/dist/components/list/list.types.js.map +1 -0
  268. package/dist/components/loading-overlay/index.d.ts +3 -0
  269. package/dist/components/loading-overlay/index.d.ts.map +1 -0
  270. package/dist/components/loading-overlay/index.js +2 -0
  271. package/dist/components/loading-overlay/index.js.map +1 -0
  272. package/dist/components/loading-overlay/loading-overlay.d.ts +8 -0
  273. package/dist/components/loading-overlay/loading-overlay.d.ts.map +1 -0
  274. package/dist/components/loading-overlay/loading-overlay.js +13 -0
  275. package/dist/components/loading-overlay/loading-overlay.js.map +1 -0
  276. package/dist/components/loading-overlay/loading-overlay.types.d.ts +28 -0
  277. package/dist/components/loading-overlay/loading-overlay.types.d.ts.map +1 -0
  278. package/dist/components/loading-overlay/loading-overlay.types.js +2 -0
  279. package/dist/components/loading-overlay/loading-overlay.types.js.map +1 -0
  280. package/dist/components/multi-select/index.d.ts +3 -0
  281. package/dist/components/multi-select/index.d.ts.map +1 -0
  282. package/dist/components/multi-select/index.js +2 -0
  283. package/dist/components/multi-select/index.js.map +1 -0
  284. package/dist/components/multi-select/multi-select.d.ts +9 -0
  285. package/dist/components/multi-select/multi-select.d.ts.map +1 -0
  286. package/dist/components/multi-select/multi-select.js +74 -0
  287. package/dist/components/multi-select/multi-select.js.map +1 -0
  288. package/dist/components/multi-select/multi-select.types.d.ts +35 -0
  289. package/dist/components/multi-select/multi-select.types.d.ts.map +1 -0
  290. package/dist/components/multi-select/multi-select.types.js +2 -0
  291. package/dist/components/multi-select/multi-select.types.js.map +1 -0
  292. package/dist/components/navigation/index.d.ts +3 -0
  293. package/dist/components/navigation/index.d.ts.map +1 -0
  294. package/dist/components/navigation/index.js +2 -0
  295. package/dist/components/navigation/index.js.map +1 -0
  296. package/dist/components/navigation/navigation.d.ts +14 -0
  297. package/dist/components/navigation/navigation.d.ts.map +1 -0
  298. package/dist/components/navigation/navigation.js +29 -0
  299. package/dist/components/navigation/navigation.js.map +1 -0
  300. package/dist/components/navigation/navigation.types.d.ts +84 -0
  301. package/dist/components/navigation/navigation.types.d.ts.map +1 -0
  302. package/dist/components/navigation/navigation.types.js +2 -0
  303. package/dist/components/navigation/navigation.types.js.map +1 -0
  304. package/dist/components/page-layout/index.d.ts +3 -0
  305. package/dist/components/page-layout/index.d.ts.map +1 -0
  306. package/dist/components/page-layout/index.js +2 -0
  307. package/dist/components/page-layout/index.js.map +1 -0
  308. package/dist/components/page-layout/page-layout.d.ts +74 -0
  309. package/dist/components/page-layout/page-layout.d.ts.map +1 -0
  310. package/dist/components/page-layout/page-layout.js +103 -0
  311. package/dist/components/page-layout/page-layout.js.map +1 -0
  312. package/dist/components/page-layout/page-layout.types.d.ts +188 -0
  313. package/dist/components/page-layout/page-layout.types.d.ts.map +1 -0
  314. package/dist/components/page-layout/page-layout.types.js +2 -0
  315. package/dist/components/page-layout/page-layout.types.js.map +1 -0
  316. package/dist/components/pagination/index.d.ts +4 -0
  317. package/dist/components/pagination/index.d.ts.map +1 -0
  318. package/dist/components/pagination/index.js +2 -0
  319. package/dist/components/pagination/index.js.map +1 -0
  320. package/dist/components/pagination/pagination.d.ts +24 -0
  321. package/dist/components/pagination/pagination.d.ts.map +1 -0
  322. package/dist/components/pagination/pagination.js +48 -0
  323. package/dist/components/pagination/pagination.js.map +1 -0
  324. package/dist/components/pagination/pagination.types.d.ts +43 -0
  325. package/dist/components/pagination/pagination.types.d.ts.map +1 -0
  326. package/dist/components/pagination/pagination.types.js +2 -0
  327. package/dist/components/pagination/pagination.types.js.map +1 -0
  328. package/dist/components/panel/index.d.ts +3 -0
  329. package/dist/components/panel/index.d.ts.map +1 -0
  330. package/dist/components/panel/index.js +2 -0
  331. package/dist/components/panel/index.js.map +1 -0
  332. package/dist/components/panel/panel.d.ts +14 -0
  333. package/dist/components/panel/panel.d.ts.map +1 -0
  334. package/dist/components/panel/panel.js +22 -0
  335. package/dist/components/panel/panel.js.map +1 -0
  336. package/dist/components/panel/panel.types.d.ts +62 -0
  337. package/dist/components/panel/panel.types.d.ts.map +1 -0
  338. package/dist/components/panel/panel.types.js +2 -0
  339. package/dist/components/panel/panel.types.js.map +1 -0
  340. package/dist/components/popover/index.d.ts +3 -0
  341. package/dist/components/popover/index.d.ts.map +1 -0
  342. package/dist/components/popover/index.js +2 -0
  343. package/dist/components/popover/index.js.map +1 -0
  344. package/dist/components/popover/popover-context.d.ts +29 -0
  345. package/dist/components/popover/popover-context.d.ts.map +1 -0
  346. package/dist/components/popover/popover-context.js +14 -0
  347. package/dist/components/popover/popover-context.js.map +1 -0
  348. package/dist/components/popover/popover.d.ts +8 -0
  349. package/dist/components/popover/popover.d.ts.map +1 -0
  350. package/dist/components/popover/popover.js +60 -0
  351. package/dist/components/popover/popover.js.map +1 -0
  352. package/dist/components/popover/popover.types.d.ts +47 -0
  353. package/dist/components/popover/popover.types.d.ts.map +1 -0
  354. package/dist/components/popover/popover.types.js +2 -0
  355. package/dist/components/popover/popover.types.js.map +1 -0
  356. package/dist/components/progress/index.d.ts +3 -0
  357. package/dist/components/progress/index.d.ts.map +1 -0
  358. package/dist/components/progress/index.js +2 -0
  359. package/dist/components/progress/index.js.map +1 -0
  360. package/dist/components/progress/progress.d.ts +8 -0
  361. package/dist/components/progress/progress.d.ts.map +1 -0
  362. package/dist/components/progress/progress.js +32 -0
  363. package/dist/components/progress/progress.js.map +1 -0
  364. package/dist/components/progress/progress.types.d.ts +36 -0
  365. package/dist/components/progress/progress.types.d.ts.map +1 -0
  366. package/dist/components/progress/progress.types.js +2 -0
  367. package/dist/components/progress/progress.types.js.map +1 -0
  368. package/dist/components/radio/index.d.ts +3 -0
  369. package/dist/components/radio/index.d.ts.map +1 -0
  370. package/dist/components/radio/index.js +2 -0
  371. package/dist/components/radio/index.js.map +1 -0
  372. package/dist/components/radio/radio.d.ts +8 -0
  373. package/dist/components/radio/radio.d.ts.map +1 -0
  374. package/dist/components/radio/radio.js +12 -0
  375. package/dist/components/radio/radio.js.map +1 -0
  376. package/dist/components/radio/radio.types.d.ts +17 -0
  377. package/dist/components/radio/radio.types.d.ts.map +1 -0
  378. package/dist/components/radio/radio.types.js +2 -0
  379. package/dist/components/radio/radio.types.js.map +1 -0
  380. package/dist/components/search-input/index.d.ts +3 -0
  381. package/dist/components/search-input/index.d.ts.map +1 -0
  382. package/dist/components/search-input/index.js +2 -0
  383. package/dist/components/search-input/index.js.map +1 -0
  384. package/dist/components/search-input/search-input.d.ts +8 -0
  385. package/dist/components/search-input/search-input.d.ts.map +1 -0
  386. package/dist/components/search-input/search-input.js +35 -0
  387. package/dist/components/search-input/search-input.js.map +1 -0
  388. package/dist/components/search-input/search-input.types.d.ts +38 -0
  389. package/dist/components/search-input/search-input.types.d.ts.map +1 -0
  390. package/dist/components/search-input/search-input.types.js +2 -0
  391. package/dist/components/search-input/search-input.types.js.map +1 -0
  392. package/dist/components/select/index.d.ts +3 -0
  393. package/dist/components/select/index.d.ts.map +1 -0
  394. package/dist/components/select/index.js +2 -0
  395. package/dist/components/select/index.js.map +1 -0
  396. package/dist/components/select/select.d.ts +8 -0
  397. package/dist/components/select/select.d.ts.map +1 -0
  398. package/dist/components/select/select.js +14 -0
  399. package/dist/components/select/select.js.map +1 -0
  400. package/dist/components/select/select.types.d.ts +27 -0
  401. package/dist/components/select/select.types.d.ts.map +1 -0
  402. package/dist/components/select/select.types.js +2 -0
  403. package/dist/components/select/select.types.js.map +1 -0
  404. package/dist/components/shared.types.d.ts +13 -0
  405. package/dist/components/shared.types.d.ts.map +1 -0
  406. package/dist/components/shared.types.js +2 -0
  407. package/dist/components/shared.types.js.map +1 -0
  408. package/dist/components/skeleton/index.d.ts +3 -0
  409. package/dist/components/skeleton/index.d.ts.map +1 -0
  410. package/dist/components/skeleton/index.js +2 -0
  411. package/dist/components/skeleton/index.js.map +1 -0
  412. package/dist/components/skeleton/skeleton.d.ts +8 -0
  413. package/dist/components/skeleton/skeleton.d.ts.map +1 -0
  414. package/dist/components/skeleton/skeleton.js +12 -0
  415. package/dist/components/skeleton/skeleton.js.map +1 -0
  416. package/dist/components/skeleton/skeleton.types.d.ts +29 -0
  417. package/dist/components/skeleton/skeleton.types.d.ts.map +1 -0
  418. package/dist/components/skeleton/skeleton.types.js +2 -0
  419. package/dist/components/skeleton/skeleton.types.js.map +1 -0
  420. package/dist/components/spinner/index.d.ts +4 -0
  421. package/dist/components/spinner/index.d.ts.map +1 -0
  422. package/dist/components/spinner/index.js +2 -0
  423. package/dist/components/spinner/index.js.map +1 -0
  424. package/dist/components/spinner/spinner.d.ts +8 -0
  425. package/dist/components/spinner/spinner.d.ts.map +1 -0
  426. package/dist/components/spinner/spinner.js +19 -0
  427. package/dist/components/spinner/spinner.js.map +1 -0
  428. package/dist/components/spinner/spinner.types.d.ts +27 -0
  429. package/dist/components/spinner/spinner.types.d.ts.map +1 -0
  430. package/dist/components/spinner/spinner.types.js +2 -0
  431. package/dist/components/spinner/spinner.types.js.map +1 -0
  432. package/dist/components/status-indicator/index.d.ts +4 -0
  433. package/dist/components/status-indicator/index.d.ts.map +1 -0
  434. package/dist/components/status-indicator/index.js +2 -0
  435. package/dist/components/status-indicator/index.js.map +1 -0
  436. package/dist/components/status-indicator/status-indicator.d.ts +8 -0
  437. package/dist/components/status-indicator/status-indicator.d.ts.map +1 -0
  438. package/dist/components/status-indicator/status-indicator.js +12 -0
  439. package/dist/components/status-indicator/status-indicator.js.map +1 -0
  440. package/dist/components/status-indicator/status-indicator.types.d.ts +25 -0
  441. package/dist/components/status-indicator/status-indicator.types.d.ts.map +1 -0
  442. package/dist/components/status-indicator/status-indicator.types.js +2 -0
  443. package/dist/components/status-indicator/status-indicator.types.js.map +1 -0
  444. package/dist/components/switch/index.d.ts +3 -0
  445. package/dist/components/switch/index.d.ts.map +1 -0
  446. package/dist/components/switch/index.js +2 -0
  447. package/dist/components/switch/index.js.map +1 -0
  448. package/dist/components/switch/switch.d.ts +8 -0
  449. package/dist/components/switch/switch.d.ts.map +1 -0
  450. package/dist/components/switch/switch.js +12 -0
  451. package/dist/components/switch/switch.js.map +1 -0
  452. package/dist/components/switch/switch.types.d.ts +17 -0
  453. package/dist/components/switch/switch.types.d.ts.map +1 -0
  454. package/dist/components/switch/switch.types.js +2 -0
  455. package/dist/components/switch/switch.types.js.map +1 -0
  456. package/dist/components/table/index.d.ts +3 -0
  457. package/dist/components/table/index.d.ts.map +1 -0
  458. package/dist/components/table/index.js +2 -0
  459. package/dist/components/table/index.js.map +1 -0
  460. package/dist/components/table/table.d.ts +56 -0
  461. package/dist/components/table/table.d.ts.map +1 -0
  462. package/dist/components/table/table.js +76 -0
  463. package/dist/components/table/table.js.map +1 -0
  464. package/dist/components/table/table.types.d.ts +101 -0
  465. package/dist/components/table/table.types.d.ts.map +1 -0
  466. package/dist/components/table/table.types.js +2 -0
  467. package/dist/components/table/table.types.js.map +1 -0
  468. package/dist/components/tabs/index.d.ts +3 -0
  469. package/dist/components/tabs/index.d.ts.map +1 -0
  470. package/dist/components/tabs/index.js +2 -0
  471. package/dist/components/tabs/index.js.map +1 -0
  472. package/dist/components/tabs/tabs.d.ts +26 -0
  473. package/dist/components/tabs/tabs.d.ts.map +1 -0
  474. package/dist/components/tabs/tabs.js +122 -0
  475. package/dist/components/tabs/tabs.js.map +1 -0
  476. package/dist/components/tabs/tabs.types.d.ts +70 -0
  477. package/dist/components/tabs/tabs.types.d.ts.map +1 -0
  478. package/dist/components/tabs/tabs.types.js +2 -0
  479. package/dist/components/tabs/tabs.types.js.map +1 -0
  480. package/dist/components/textarea/index.d.ts +3 -0
  481. package/dist/components/textarea/index.d.ts.map +1 -0
  482. package/dist/components/textarea/index.js +2 -0
  483. package/dist/components/textarea/index.js.map +1 -0
  484. package/dist/components/textarea/textarea.d.ts +8 -0
  485. package/dist/components/textarea/textarea.d.ts.map +1 -0
  486. package/dist/components/textarea/textarea.js +13 -0
  487. package/dist/components/textarea/textarea.js.map +1 -0
  488. package/dist/components/textarea/textarea.types.d.ts +39 -0
  489. package/dist/components/textarea/textarea.types.d.ts.map +1 -0
  490. package/dist/components/textarea/textarea.types.js +2 -0
  491. package/dist/components/textarea/textarea.types.js.map +1 -0
  492. package/dist/components/toast/index.d.ts +3 -0
  493. package/dist/components/toast/index.d.ts.map +1 -0
  494. package/dist/components/toast/index.js +2 -0
  495. package/dist/components/toast/index.js.map +1 -0
  496. package/dist/components/toast/toast.d.ts +24 -0
  497. package/dist/components/toast/toast.d.ts.map +1 -0
  498. package/dist/components/toast/toast.js +111 -0
  499. package/dist/components/toast/toast.js.map +1 -0
  500. package/dist/components/toast/toast.types.d.ts +103 -0
  501. package/dist/components/toast/toast.types.d.ts.map +1 -0
  502. package/dist/components/toast/toast.types.js +2 -0
  503. package/dist/components/toast/toast.types.js.map +1 -0
  504. package/dist/components/toolbar/index.d.ts +3 -0
  505. package/dist/components/toolbar/index.d.ts.map +1 -0
  506. package/dist/components/toolbar/index.js +2 -0
  507. package/dist/components/toolbar/index.js.map +1 -0
  508. package/dist/components/toolbar/toolbar.d.ts +20 -0
  509. package/dist/components/toolbar/toolbar.d.ts.map +1 -0
  510. package/dist/components/toolbar/toolbar.js +28 -0
  511. package/dist/components/toolbar/toolbar.js.map +1 -0
  512. package/dist/components/toolbar/toolbar.types.d.ts +37 -0
  513. package/dist/components/toolbar/toolbar.types.d.ts.map +1 -0
  514. package/dist/components/toolbar/toolbar.types.js +2 -0
  515. package/dist/components/toolbar/toolbar.types.js.map +1 -0
  516. package/dist/components/tooltip/index.d.ts +3 -0
  517. package/dist/components/tooltip/index.d.ts.map +1 -0
  518. package/dist/components/tooltip/index.js +2 -0
  519. package/dist/components/tooltip/index.js.map +1 -0
  520. package/dist/components/tooltip/tooltip.d.ts +8 -0
  521. package/dist/components/tooltip/tooltip.d.ts.map +1 -0
  522. package/dist/components/tooltip/tooltip.js +84 -0
  523. package/dist/components/tooltip/tooltip.js.map +1 -0
  524. package/dist/components/tooltip/tooltip.types.d.ts +34 -0
  525. package/dist/components/tooltip/tooltip.types.d.ts.map +1 -0
  526. package/dist/components/tooltip/tooltip.types.js +2 -0
  527. package/dist/components/tooltip/tooltip.types.js.map +1 -0
  528. package/dist/components/tree-view/index.d.ts +3 -0
  529. package/dist/components/tree-view/index.d.ts.map +1 -0
  530. package/dist/components/tree-view/index.js +2 -0
  531. package/dist/components/tree-view/index.js.map +1 -0
  532. package/dist/components/tree-view/tree-view.d.ts +9 -0
  533. package/dist/components/tree-view/tree-view.d.ts.map +1 -0
  534. package/dist/components/tree-view/tree-view.js +573 -0
  535. package/dist/components/tree-view/tree-view.js.map +1 -0
  536. package/dist/components/tree-view/tree-view.types.d.ts +92 -0
  537. package/dist/components/tree-view/tree-view.types.d.ts.map +1 -0
  538. package/dist/components/tree-view/tree-view.types.js +2 -0
  539. package/dist/components/tree-view/tree-view.types.js.map +1 -0
  540. package/dist/components/visually-hidden/index.d.ts +3 -0
  541. package/dist/components/visually-hidden/index.d.ts.map +1 -0
  542. package/dist/components/visually-hidden/index.js +2 -0
  543. package/dist/components/visually-hidden/index.js.map +1 -0
  544. package/dist/components/visually-hidden/visually-hidden.d.ts +8 -0
  545. package/dist/components/visually-hidden/visually-hidden.d.ts.map +1 -0
  546. package/dist/components/visually-hidden/visually-hidden.js +12 -0
  547. package/dist/components/visually-hidden/visually-hidden.js.map +1 -0
  548. package/dist/components/visually-hidden/visually-hidden.types.d.ts +9 -0
  549. package/dist/components/visually-hidden/visually-hidden.types.d.ts.map +1 -0
  550. package/dist/components/visually-hidden/visually-hidden.types.js +2 -0
  551. package/dist/components/visually-hidden/visually-hidden.types.js.map +1 -0
  552. package/dist/errors/index.d.ts +2 -0
  553. package/dist/errors/index.d.ts.map +1 -0
  554. package/dist/errors/index.js +2 -0
  555. package/dist/errors/index.js.map +1 -0
  556. package/dist/errors/ui-error.d.ts +60 -0
  557. package/dist/errors/ui-error.d.ts.map +1 -0
  558. package/dist/errors/ui-error.js +219 -0
  559. package/dist/errors/ui-error.js.map +1 -0
  560. package/dist/i18n/i18n.d.ts +52 -0
  561. package/dist/i18n/i18n.d.ts.map +1 -0
  562. package/dist/i18n/i18n.js +156 -0
  563. package/dist/i18n/i18n.js.map +1 -0
  564. package/dist/i18n/index.d.ts +3 -0
  565. package/dist/i18n/index.d.ts.map +1 -0
  566. package/dist/i18n/index.js +3 -0
  567. package/dist/i18n/index.js.map +1 -0
  568. package/dist/icons/icon-names.d.ts +7 -0
  569. package/dist/icons/icon-names.d.ts.map +1 -0
  570. package/dist/icons/icon-names.js +2 -0
  571. package/dist/icons/icon-names.js.map +1 -0
  572. package/dist/icons/icon-registry.d.ts +30 -0
  573. package/dist/icons/icon-registry.d.ts.map +1 -0
  574. package/dist/icons/icon-registry.js +31 -0
  575. package/dist/icons/icon-registry.js.map +1 -0
  576. package/dist/icons/index.d.ts +4 -0
  577. package/dist/icons/index.d.ts.map +1 -0
  578. package/dist/icons/index.js +2 -0
  579. package/dist/icons/index.js.map +1 -0
  580. package/dist/index.d.ts +6 -0
  581. package/dist/index.d.ts.map +1 -0
  582. package/dist/index.js +5 -0
  583. package/dist/index.js.map +1 -0
  584. package/dist/internal/class-names.d.ts +8 -0
  585. package/dist/internal/class-names.d.ts.map +1 -0
  586. package/dist/internal/class-names.js +10 -0
  587. package/dist/internal/class-names.js.map +1 -0
  588. package/dist/internal/menu/index.d.ts +3 -0
  589. package/dist/internal/menu/index.d.ts.map +1 -0
  590. package/dist/internal/menu/index.js +2 -0
  591. package/dist/internal/menu/index.js.map +1 -0
  592. package/dist/internal/menu/menu.d.ts +33 -0
  593. package/dist/internal/menu/menu.d.ts.map +1 -0
  594. package/dist/internal/menu/menu.js +150 -0
  595. package/dist/internal/menu/menu.js.map +1 -0
  596. package/dist/internal/overlay/dismissible-layer.d.ts +38 -0
  597. package/dist/internal/overlay/dismissible-layer.d.ts.map +1 -0
  598. package/dist/internal/overlay/dismissible-layer.js +99 -0
  599. package/dist/internal/overlay/dismissible-layer.js.map +1 -0
  600. package/dist/internal/overlay/document-scroll-lock.d.ts +8 -0
  601. package/dist/internal/overlay/document-scroll-lock.d.ts.map +1 -0
  602. package/dist/internal/overlay/document-scroll-lock.js +58 -0
  603. package/dist/internal/overlay/document-scroll-lock.js.map +1 -0
  604. package/dist/internal/overlay/floating-position.d.ts +46 -0
  605. package/dist/internal/overlay/floating-position.d.ts.map +1 -0
  606. package/dist/internal/overlay/floating-position.js +137 -0
  607. package/dist/internal/overlay/floating-position.js.map +1 -0
  608. package/dist/internal/overlay/index.d.ts +8 -0
  609. package/dist/internal/overlay/index.d.ts.map +1 -0
  610. package/dist/internal/overlay/index.js +6 -0
  611. package/dist/internal/overlay/index.js.map +1 -0
  612. package/dist/internal/overlay/native-modal.d.ts +11 -0
  613. package/dist/internal/overlay/native-modal.d.ts.map +1 -0
  614. package/dist/internal/overlay/native-modal.js +160 -0
  615. package/dist/internal/overlay/native-modal.js.map +1 -0
  616. package/dist/internal/overlay/portal-target.d.ts +19 -0
  617. package/dist/internal/overlay/portal-target.d.ts.map +1 -0
  618. package/dist/internal/overlay/portal-target.js +113 -0
  619. package/dist/internal/overlay/portal-target.js.map +1 -0
  620. package/dist/internal/overlay/top-layer.d.ts +21 -0
  621. package/dist/internal/overlay/top-layer.d.ts.map +1 -0
  622. package/dist/internal/overlay/top-layer.js +51 -0
  623. package/dist/internal/overlay/top-layer.js.map +1 -0
  624. package/dist/internal/use-merged-ref.d.ts +11 -0
  625. package/dist/internal/use-merged-ref.d.ts.map +1 -0
  626. package/dist/internal/use-merged-ref.js +31 -0
  627. package/dist/internal/use-merged-ref.js.map +1 -0
  628. package/dist/internal/use-native-dialog.d.ts +9 -0
  629. package/dist/internal/use-native-dialog.d.ts.map +1 -0
  630. package/dist/internal/use-native-dialog.js +19 -0
  631. package/dist/internal/use-native-dialog.js.map +1 -0
  632. package/dist/runtime/appearance.d.ts +32 -0
  633. package/dist/runtime/appearance.d.ts.map +1 -0
  634. package/dist/runtime/appearance.js +123 -0
  635. package/dist/runtime/appearance.js.map +1 -0
  636. package/dist/styles/components/alert.css +99 -0
  637. package/dist/styles/components/avatar.css +70 -0
  638. package/dist/styles/components/badge.css +101 -0
  639. package/dist/styles/components/breadcrumb.css +65 -0
  640. package/dist/styles/components/button.css +136 -0
  641. package/dist/styles/components/choice.css +120 -0
  642. package/dist/styles/components/combobox.css +200 -0
  643. package/dist/styles/components/confirm-dialog.css +50 -0
  644. package/dist/styles/components/data-table.css +120 -0
  645. package/dist/styles/components/dialog.css +135 -0
  646. package/dist/styles/components/divider.css +27 -0
  647. package/dist/styles/components/drawer.css +160 -0
  648. package/dist/styles/components/dropdown.css +75 -0
  649. package/dist/styles/components/dropzone.css +94 -0
  650. package/dist/styles/components/empty-state.css +85 -0
  651. package/dist/styles/components/file-upload.css +145 -0
  652. package/dist/styles/components/form-field.css +49 -0
  653. package/dist/styles/components/icon.css +53 -0
  654. package/dist/styles/components/inline-message.css +33 -0
  655. package/dist/styles/components/input.css +77 -0
  656. package/dist/styles/components/list.css +132 -0
  657. package/dist/styles/components/loading-overlay.css +24 -0
  658. package/dist/styles/components/menu.css +6 -0
  659. package/dist/styles/components/multi-select.css +68 -0
  660. package/dist/styles/components/navigation.css +116 -0
  661. package/dist/styles/components/page-layout.css +279 -0
  662. package/dist/styles/components/pagination.css +99 -0
  663. package/dist/styles/components/panel.css +123 -0
  664. package/dist/styles/components/popover.css +41 -0
  665. package/dist/styles/components/progress.css +65 -0
  666. package/dist/styles/components/search-input.css +12 -0
  667. package/dist/styles/components/select.css +56 -0
  668. package/dist/styles/components/skeleton.css +93 -0
  669. package/dist/styles/components/spinner.css +27 -0
  670. package/dist/styles/components/status-indicator.css +54 -0
  671. package/dist/styles/components/switch.css +111 -0
  672. package/dist/styles/components/table.css +127 -0
  673. package/dist/styles/components/tabs.css +144 -0
  674. package/dist/styles/components/textarea.css +79 -0
  675. package/dist/styles/components/toast.css +134 -0
  676. package/dist/styles/components/toolbar.css +27 -0
  677. package/dist/styles/components/tooltip.css +32 -0
  678. package/dist/styles/components/tree-view.css +146 -0
  679. package/dist/styles/components.css +45 -0
  680. package/dist/styles/foundation/controls.css +91 -0
  681. package/dist/styles/foundation/density.css +76 -0
  682. package/dist/styles/foundation/icons.css +29 -0
  683. package/dist/styles/foundation/layout.css +150 -0
  684. package/dist/styles/foundation/motion.css +58 -0
  685. package/dist/styles/foundation/surface.css +60 -0
  686. package/dist/styles/foundation/theme.css +166 -0
  687. package/dist/styles/foundation/typography.css +84 -0
  688. package/dist/styles/foundation.css +10 -0
  689. package/dist/styles/miaixz.css +4 -0
  690. package/package.json +304 -0
@@ -0,0 +1,39 @@
1
+ import type { TextareaHTMLAttributes } from "react";
2
+ /**
3
+ * Defines the supported multiline control sizes.
4
+ *
5
+ * @public
6
+ */
7
+ export type TextareaSize = "small" | "medium" | "large";
8
+ /**
9
+ * Defines the browser resize directions enabled for a textarea.
10
+ *
11
+ * @public
12
+ */
13
+ export type TextareaResize = "none" | "vertical" | "horizontal" | "both";
14
+ /**
15
+ * Configures a multiline native text control.
16
+ *
17
+ * @public
18
+ */
19
+ export interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {
20
+ /**
21
+ * Selects the control size.
22
+ *
23
+ * @defaultValue `"medium"`
24
+ */
25
+ size?: TextareaSize;
26
+ /**
27
+ * Applies the invalid state independently of `aria-invalid`.
28
+ *
29
+ * @defaultValue `false`
30
+ */
31
+ invalid?: boolean;
32
+ /**
33
+ * Selects the browser resize directions.
34
+ *
35
+ * @defaultValue `"vertical"`
36
+ */
37
+ resize?: TextareaResize;
38
+ }
39
+ //# sourceMappingURL=textarea.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea.types.d.ts","sourceRoot":"","sources":["../../../src/components/textarea/textarea.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,OAAO,CAAC;AAEpD;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAExD;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,GAAG,YAAY,GAAG,MAAM,CAAC;AAEzE;;;;GAIG;AACH,MAAM,WAAW,aAAc,SAAQ,sBAAsB,CAAC,mBAAmB,CAAC;IAChF;;;;OAIG;IACH,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=textarea.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textarea.types.js","sourceRoot":"","sources":["../../../src/components/textarea/textarea.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { TextareaHTMLAttributes } from \"react\";\n\n/**\n * Defines the supported multiline control sizes.\n *\n * @public\n */\nexport type TextareaSize = \"small\" | \"medium\" | \"large\";\n\n/**\n * Defines the browser resize directions enabled for a textarea.\n *\n * @public\n */\nexport type TextareaResize = \"none\" | \"vertical\" | \"horizontal\" | \"both\";\n\n/**\n * Configures a multiline native text control.\n *\n * @public\n */\nexport interface TextareaProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {\n /**\n * Selects the control size.\n *\n * @defaultValue `\"medium\"`\n */\n size?: TextareaSize;\n /**\n * Applies the invalid state independently of `aria-invalid`.\n *\n * @defaultValue `false`\n */\n invalid?: boolean;\n /**\n * Selects the browser resize directions.\n *\n * @defaultValue `\"vertical\"`\n */\n resize?: TextareaResize;\n}\n"]}
@@ -0,0 +1,3 @@
1
+ export { Toast, ToastProvider, useToast } from "./toast.js";
2
+ export type { ToastContextValue, ToastOptions, ToastProps, ToastProviderProps, ToastRecord, ToastTone, } from "./toast.types.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/toast/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC5D,YAAY,EACV,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,kBAAkB,EAClB,WAAW,EACX,SAAS,GACV,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Toast, ToastProvider, useToast } from "./toast.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/toast/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC","sourcesContent":["export { Toast, ToastProvider, useToast } from \"./toast.js\";\nexport type {\n ToastContextValue,\n ToastOptions,\n ToastProps,\n ToastProviderProps,\n ToastRecord,\n ToastTone,\n} from \"./toast.types.js\";\n"]}
@@ -0,0 +1,24 @@
1
+ import type { ToastContextValue, ToastProps, ToastProviderProps } from "./toast.types.js";
2
+ /**
3
+ * Renders one localized live-region notification with optional action and dismissal.
4
+ *
5
+ * @public
6
+ */
7
+ export declare const Toast: import("react").ForwardRefExoticComponent<ToastProps & import("react").RefAttributes<HTMLDivElement>>;
8
+ /**
9
+ * Owns the application toast queue and renders it into the document portal.
10
+ *
11
+ * @param props - Toast provider configuration.
12
+ * @returns The provider subtree and client-side toast portal.
13
+ * @public
14
+ */
15
+ export declare function ToastProvider({ children, defaultDuration }: ToastProviderProps): import("react").JSX.Element;
16
+ /**
17
+ * Returns the nearest toast controller.
18
+ *
19
+ * @returns The nearest toast queue controller.
20
+ * @throws A localized error when called outside {@link ToastProvider}.
21
+ * @public
22
+ */
23
+ export declare function useToast(): ToastContextValue;
24
+ //# sourceMappingURL=toast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../../src/components/toast/toast.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,iBAAiB,EAEjB,UAAU,EACV,kBAAkB,EAGnB,MAAM,kBAAkB,CAAC;AAuC1B;;;;GAIG;AACH,eAAO,MAAM,KAAK,uGAqChB,CAAC;AAmBH;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,eAAsB,EAAE,EAAE,kBAAkB,+BAiDrF;AAGD;;;;;;GAMG;AACH,wBAAgB,QAAQ,IAAI,iBAAiB,CAU5C"}
@@ -0,0 +1,111 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { createContext, forwardRef, useContext, useEffect, useMemo, useRef, useState } from "react";
3
+ import { createPortal } from "react-dom";
4
+ import { createMiaixzUiError } from "../../errors/index.js";
5
+ import { classNames } from "../../internal/class-names.js";
6
+ import { useMiaixzManualPopover, useMiaixzPortalTarget } from "../../internal/overlay/index.js";
7
+ import { useMiaixzLocale } from "../../i18n/index.js";
8
+ import { Button } from "../button/index.js";
9
+ import { Icon } from "../icon/index.js";
10
+ const ToastContext = createContext(undefined);
11
+ let toastSequence = 0;
12
+ /**
13
+ * Freezes the maximum number of simultaneously visible notifications.
14
+ */
15
+ const miaixzMaximumVisibleToasts = 5;
16
+ /**
17
+ * Creates a collision-resistant identifier for an in-memory notification.
18
+ *
19
+ * @returns A process-local toast identifier.
20
+ */
21
+ function createToastId() {
22
+ toastSequence += 1;
23
+ return `miaixz-toast-${Date.now()}-${toastSequence}`;
24
+ }
25
+ const toneIcons = {
26
+ neutral: "Info",
27
+ success: "CircleCheck",
28
+ warning: "TriangleAlert",
29
+ danger: "CircleAlert",
30
+ info: "Info",
31
+ };
32
+ /**
33
+ * Renders one localized live-region notification with optional action and dismissal.
34
+ *
35
+ * @public
36
+ */
37
+ export const Toast = forwardRef(function Toast({ id, title, message, action, tone = "neutral", dismissLabel, onDismiss, className, ...props }, ref) {
38
+ const { t } = useMiaixzLocale();
39
+ const resolvedDismissLabel = dismissLabel ?? t("ui.notification.dismiss");
40
+ return (_jsxs("div", { ...props, ref: ref, role: tone === "danger" ? "alert" : "status", className: classNames("miaixz-toast", tone !== "neutral" && `miaixz-toast-${tone}`, className), children: [_jsx(Icon, { name: toneIcons[tone], size: "control", className: "miaixz-toast-icon" }), _jsxs("div", { className: "miaixz-toast-content", children: [_jsx("p", { className: "miaixz-toast-title", children: title }), message !== undefined && _jsx("p", { className: "miaixz-toast-message", children: message }), action !== undefined && _jsx("div", { className: "miaixz-toast-actions", children: action })] }), onDismiss && (_jsx(Button, { iconOnly: true, variant: "ghost", size: "small", "aria-label": resolvedDismissLabel, className: "miaixz-toast-dismiss", onClick: () => onDismiss(id), children: _jsx(Icon, { name: "X", size: "control" }) }))] }));
41
+ });
42
+ /* eslint-disable jsdoc/check-param-names, jsdoc/require-param -- TSDoc documents the typed properties instead of dotted parameter names. */
43
+ /**
44
+ * Applies auto-dismiss lifecycle behavior to one toast record.
45
+ *
46
+ * @param props - Managed toast configuration.
47
+ * @returns The managed toast element.
48
+ */
49
+ function ManagedToast({ toast, dismiss }) {
50
+ useEffect(() => {
51
+ if (!toast.duration || toast.duration <= 0)
52
+ return;
53
+ const timer = window.setTimeout(() => dismiss(toast.id), toast.duration);
54
+ return () => window.clearTimeout(timer);
55
+ }, [dismiss, toast.duration, toast.id]);
56
+ return _jsx(Toast, { ...toast, onDismiss: dismiss });
57
+ }
58
+ /**
59
+ * Owns the application toast queue and renders it into the document portal.
60
+ *
61
+ * @param props - Toast provider configuration.
62
+ * @returns The provider subtree and client-side toast portal.
63
+ * @public
64
+ */
65
+ export function ToastProvider({ children, defaultDuration = 5000 }) {
66
+ const [toasts, setToasts] = useState([]);
67
+ const regionRef = useRef(null);
68
+ const portalTarget = useMiaixzPortalTarget(null, true);
69
+ const hasVisibleToasts = toasts.length > 0;
70
+ const visibleToasts = toasts.slice(0, miaixzMaximumVisibleToasts);
71
+ useMiaixzManualPopover(regionRef, hasVisibleToasts, portalTarget);
72
+ const context = useMemo(() => ({
73
+ notify(options) {
74
+ const id = options.id ?? createToastId();
75
+ setToasts((current) => [
76
+ ...current.filter((toast) => toast.id !== id),
77
+ { ...options, id, duration: options.duration ?? defaultDuration },
78
+ ]);
79
+ return id;
80
+ },
81
+ dismiss(id) {
82
+ setToasts((current) => current.filter((toast) => toast.id !== id));
83
+ },
84
+ dismissAll() {
85
+ setToasts([]);
86
+ },
87
+ }), [defaultDuration]);
88
+ return (_jsxs(ToastContext.Provider, { value: context, children: [children, hasVisibleToasts &&
89
+ portalTarget !== null &&
90
+ createPortal(_jsx("div", { ref: regionRef, popover: "manual", className: "miaixz-toast-region", "aria-live": "polite", "aria-relevant": "additions removals", children: visibleToasts.map((toast) => (_jsx(ManagedToast, { toast: toast, dismiss: context.dismiss }, toast.id))) }), portalTarget)] }));
91
+ }
92
+ /* eslint-enable jsdoc/check-param-names, jsdoc/require-param */
93
+ /**
94
+ * Returns the nearest toast controller.
95
+ *
96
+ * @returns The nearest toast queue controller.
97
+ * @throws A localized error when called outside {@link ToastProvider}.
98
+ * @public
99
+ */
100
+ export function useToast() {
101
+ const { t } = useMiaixzLocale();
102
+ const context = useContext(ToastContext);
103
+ if (!context) {
104
+ throw createMiaixzUiError(t, {
105
+ code: "UI_TOAST_PROVIDER_MISSING",
106
+ messageKey: "ui.error.toast.providerMissing",
107
+ });
108
+ }
109
+ return context;
110
+ }
111
+ //# sourceMappingURL=toast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toast.js","sourceRoot":"","sources":["../../../src/components/toast/toast.tsx"],"names":[],"mappings":"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","sourcesContent":["import { createContext, forwardRef, useContext, useEffect, useMemo, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { createMiaixzUiError } from \"../../errors/index.js\";\nimport { classNames } from \"../../internal/class-names.js\";\nimport { useMiaixzManualPopover, useMiaixzPortalTarget } from \"../../internal/overlay/index.js\";\nimport { useMiaixzLocale } from \"../../i18n/index.js\";\nimport { Button } from \"../button/index.js\";\nimport { Icon } from \"../icon/index.js\";\nimport type {\n ToastContextValue,\n ToastOptions,\n ToastProps,\n ToastProviderProps,\n ToastRecord,\n ToastTone,\n} from \"./toast.types.js\";\n\nconst ToastContext = createContext<ToastContextValue | undefined>(undefined);\nlet toastSequence = 0;\n\n/**\n * Freezes the maximum number of simultaneously visible notifications.\n */\nconst miaixzMaximumVisibleToasts = 5;\n\n/**\n * Creates a collision-resistant identifier for an in-memory notification.\n *\n * @returns A process-local toast identifier.\n */\nfunction createToastId(): string {\n toastSequence += 1;\n return `miaixz-toast-${Date.now()}-${toastSequence}`;\n}\n\nconst toneIcons: Record<ToastTone, \"Info\" | \"CircleCheck\" | \"TriangleAlert\" | \"CircleAlert\"> = {\n neutral: \"Info\",\n success: \"CircleCheck\",\n warning: \"TriangleAlert\",\n danger: \"CircleAlert\",\n info: \"Info\",\n};\n\ninterface ManagedToastProps {\n /**\n * Supplies the toast record to render and schedule.\n */\n toast: ToastRecord;\n /**\n * Supplies the queue operation used to dismiss the toast.\n */\n dismiss: (id: string) => void;\n}\n\n/**\n * Renders one localized live-region notification with optional action and dismissal.\n *\n * @public\n */\nexport const Toast = forwardRef<HTMLDivElement, ToastProps>(function Toast(\n { id, title, message, action, tone = \"neutral\", dismissLabel, onDismiss, className, ...props },\n ref,\n) {\n const { t } = useMiaixzLocale();\n const resolvedDismissLabel = dismissLabel ?? t(\"ui.notification.dismiss\");\n return (\n <div\n {...props}\n ref={ref}\n role={tone === \"danger\" ? \"alert\" : \"status\"}\n className={classNames(\n \"miaixz-toast\",\n tone !== \"neutral\" && `miaixz-toast-${tone}`,\n className,\n )}\n >\n <Icon name={toneIcons[tone]} size=\"control\" className=\"miaixz-toast-icon\" />\n <div className=\"miaixz-toast-content\">\n <p className=\"miaixz-toast-title\">{title}</p>\n {message !== undefined && <p className=\"miaixz-toast-message\">{message}</p>}\n {action !== undefined && <div className=\"miaixz-toast-actions\">{action}</div>}\n </div>\n {onDismiss && (\n <Button\n iconOnly\n variant=\"ghost\"\n size=\"small\"\n aria-label={resolvedDismissLabel}\n className=\"miaixz-toast-dismiss\"\n onClick={() => onDismiss(id)}\n >\n <Icon name=\"X\" size=\"control\" />\n </Button>\n )}\n </div>\n );\n});\n\n/* eslint-disable jsdoc/check-param-names, jsdoc/require-param -- TSDoc documents the typed properties instead of dotted parameter names. */\n/**\n * Applies auto-dismiss lifecycle behavior to one toast record.\n *\n * @param props - Managed toast configuration.\n * @returns The managed toast element.\n */\nfunction ManagedToast({ toast, dismiss }: ManagedToastProps) {\n useEffect(() => {\n if (!toast.duration || toast.duration <= 0) return;\n const timer = window.setTimeout(() => dismiss(toast.id), toast.duration);\n return () => window.clearTimeout(timer);\n }, [dismiss, toast.duration, toast.id]);\n\n return <Toast {...toast} onDismiss={dismiss} />;\n}\n\n/**\n * Owns the application toast queue and renders it into the document portal.\n *\n * @param props - Toast provider configuration.\n * @returns The provider subtree and client-side toast portal.\n * @public\n */\nexport function ToastProvider({ children, defaultDuration = 5000 }: ToastProviderProps) {\n const [toasts, setToasts] = useState<ToastRecord[]>([]);\n const regionRef = useRef<HTMLDivElement>(null);\n const portalTarget = useMiaixzPortalTarget(null, true);\n const hasVisibleToasts = toasts.length > 0;\n const visibleToasts = toasts.slice(0, miaixzMaximumVisibleToasts);\n useMiaixzManualPopover(regionRef, hasVisibleToasts, portalTarget);\n\n const context = useMemo<ToastContextValue>(\n () => ({\n notify(options: ToastOptions) {\n const id = options.id ?? createToastId();\n setToasts((current) => [\n ...current.filter((toast) => toast.id !== id),\n { ...options, id, duration: options.duration ?? defaultDuration },\n ]);\n return id;\n },\n dismiss(id: string) {\n setToasts((current) => current.filter((toast) => toast.id !== id));\n },\n dismissAll() {\n setToasts([]);\n },\n }),\n [defaultDuration],\n );\n\n return (\n <ToastContext.Provider value={context}>\n {children}\n {hasVisibleToasts &&\n portalTarget !== null &&\n createPortal(\n <div\n ref={regionRef}\n popover=\"manual\"\n className=\"miaixz-toast-region\"\n aria-live=\"polite\"\n aria-relevant=\"additions removals\"\n >\n {visibleToasts.map((toast) => (\n <ManagedToast key={toast.id} toast={toast} dismiss={context.dismiss} />\n ))}\n </div>,\n portalTarget,\n )}\n </ToastContext.Provider>\n );\n}\n/* eslint-enable jsdoc/check-param-names, jsdoc/require-param */\n\n/**\n * Returns the nearest toast controller.\n *\n * @returns The nearest toast queue controller.\n * @throws A localized error when called outside {@link ToastProvider}.\n * @public\n */\nexport function useToast(): ToastContextValue {\n const { t } = useMiaixzLocale();\n const context = useContext(ToastContext);\n if (!context) {\n throw createMiaixzUiError(t, {\n code: \"UI_TOAST_PROVIDER_MISSING\",\n messageKey: \"ui.error.toast.providerMissing\",\n });\n }\n return context;\n}\n"]}
@@ -0,0 +1,103 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ /**
3
+ * Defines the semantic treatment and live-region priority of a toast.
4
+ *
5
+ * @public
6
+ */
7
+ export type ToastTone = "neutral" | "success" | "warning" | "danger" | "info";
8
+ /**
9
+ * Configures a notification submitted to the toast provider.
10
+ *
11
+ * @public
12
+ */
13
+ export interface ToastOptions {
14
+ /**
15
+ * Supplies a stable identifier for replacing or dismissing the toast.
16
+ */
17
+ id?: string;
18
+ /**
19
+ * Supplies the required notification title.
20
+ */
21
+ title: ReactNode;
22
+ /**
23
+ * Supplies optional notification detail content.
24
+ */
25
+ message?: ReactNode;
26
+ /**
27
+ * Displays an optional notification action.
28
+ */
29
+ action?: ReactNode;
30
+ /**
31
+ * Selects the semantic notification treatment.
32
+ *
33
+ * @defaultValue `"neutral"`
34
+ */
35
+ tone?: ToastTone;
36
+ /**
37
+ * Sets the auto-dismiss delay in milliseconds, or disables it with zero.
38
+ */
39
+ duration?: number;
40
+ /**
41
+ * Overrides the localized dismissal label.
42
+ */
43
+ dismissLabel?: string;
44
+ }
45
+ /**
46
+ * Represents a toast with its required provider-assigned identifier.
47
+ *
48
+ * @public
49
+ */
50
+ export interface ToastRecord extends ToastOptions {
51
+ /**
52
+ * Identifies the toast within the provider queue.
53
+ */
54
+ id: string;
55
+ }
56
+ /**
57
+ * Configures a rendered toast notification.
58
+ *
59
+ * @public
60
+ */
61
+ export interface ToastProps extends Omit<HTMLAttributes<HTMLDivElement>, "id" | "title">, ToastRecord {
62
+ /**
63
+ * Receives a request to dismiss the identified toast.
64
+ */
65
+ onDismiss?: (id: string) => void;
66
+ }
67
+ /**
68
+ * Configures the application toast queue provider.
69
+ *
70
+ * @public
71
+ */
72
+ export interface ToastProviderProps {
73
+ /**
74
+ * Supplies the application subtree that can submit notifications.
75
+ */
76
+ children: ReactNode;
77
+ /**
78
+ * Sets the fallback auto-dismiss delay in milliseconds.
79
+ *
80
+ * @defaultValue `5000`
81
+ */
82
+ defaultDuration?: number;
83
+ }
84
+ /**
85
+ * Exposes imperative operations for the nearest toast queue.
86
+ *
87
+ * @public
88
+ */
89
+ export interface ToastContextValue {
90
+ /**
91
+ * Adds or replaces a toast and returns its identifier.
92
+ */
93
+ notify: (options: ToastOptions) => string;
94
+ /**
95
+ * Dismisses one toast by identifier.
96
+ */
97
+ dismiss: (id: string) => void;
98
+ /**
99
+ * Dismisses every toast in the queue.
100
+ */
101
+ dismissAll: () => void;
102
+ }
103
+ //# sourceMappingURL=toast.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toast.types.d.ts","sourceRoot":"","sources":["../../../src/components/toast/toast.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvD;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE9E;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,KAAK,EAAE,SAAS,CAAC;IACjB;;OAEG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;OAIG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAY,SAAQ,YAAY;IAC/C;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;;;GAIG;AACH,MAAM,WAAW,UACf,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,EAAE,WAAW;IACzE;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;IACpB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,MAAM,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,MAAM,CAAC;IAC1C;;OAEG;IACH,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9B;;OAEG;IACH,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=toast.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toast.types.js","sourceRoot":"","sources":["../../../src/components/toast/toast.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { HTMLAttributes, ReactNode } from \"react\";\n\n/**\n * Defines the semantic treatment and live-region priority of a toast.\n *\n * @public\n */\nexport type ToastTone = \"neutral\" | \"success\" | \"warning\" | \"danger\" | \"info\";\n\n/**\n * Configures a notification submitted to the toast provider.\n *\n * @public\n */\nexport interface ToastOptions {\n /**\n * Supplies a stable identifier for replacing or dismissing the toast.\n */\n id?: string;\n /**\n * Supplies the required notification title.\n */\n title: ReactNode;\n /**\n * Supplies optional notification detail content.\n */\n message?: ReactNode;\n /**\n * Displays an optional notification action.\n */\n action?: ReactNode;\n /**\n * Selects the semantic notification treatment.\n *\n * @defaultValue `\"neutral\"`\n */\n tone?: ToastTone;\n /**\n * Sets the auto-dismiss delay in milliseconds, or disables it with zero.\n */\n duration?: number;\n /**\n * Overrides the localized dismissal label.\n */\n dismissLabel?: string;\n}\n\n/**\n * Represents a toast with its required provider-assigned identifier.\n *\n * @public\n */\nexport interface ToastRecord extends ToastOptions {\n /**\n * Identifies the toast within the provider queue.\n */\n id: string;\n}\n\n/**\n * Configures a rendered toast notification.\n *\n * @public\n */\nexport interface ToastProps\n extends Omit<HTMLAttributes<HTMLDivElement>, \"id\" | \"title\">, ToastRecord {\n /**\n * Receives a request to dismiss the identified toast.\n */\n onDismiss?: (id: string) => void;\n}\n\n/**\n * Configures the application toast queue provider.\n *\n * @public\n */\nexport interface ToastProviderProps {\n /**\n * Supplies the application subtree that can submit notifications.\n */\n children: ReactNode;\n /**\n * Sets the fallback auto-dismiss delay in milliseconds.\n *\n * @defaultValue `5000`\n */\n defaultDuration?: number;\n}\n\n/**\n * Exposes imperative operations for the nearest toast queue.\n *\n * @public\n */\nexport interface ToastContextValue {\n /**\n * Adds or replaces a toast and returns its identifier.\n */\n notify: (options: ToastOptions) => string;\n /**\n * Dismisses one toast by identifier.\n */\n dismiss: (id: string) => void;\n /**\n * Dismisses every toast in the queue.\n */\n dismissAll: () => void;\n}\n"]}
@@ -0,0 +1,3 @@
1
+ export * from "./toolbar.js";
2
+ export type * from "./toolbar.types.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/toolbar/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,mBAAmB,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./toolbar.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/toolbar/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC","sourcesContent":["export * from \"./toolbar.js\";\nexport type * from \"./toolbar.types.js\";\n"]}
@@ -0,0 +1,20 @@
1
+ import type { ToolbarGroupProps, ToolbarProps, ToolbarSpacerProps } from "./toolbar.types.js";
2
+ /**
3
+ * Renders a labeled toolbar for a related set of controls.
4
+ *
5
+ * @public
6
+ */
7
+ export declare const Toolbar: import("react").ForwardRefExoticComponent<ToolbarProps & import("react").RefAttributes<HTMLDivElement>>;
8
+ /**
9
+ * Groups related toolbar controls with consistent spacing.
10
+ *
11
+ * @public
12
+ */
13
+ export declare const ToolbarGroup: import("react").ForwardRefExoticComponent<ToolbarGroupProps & import("react").RefAttributes<HTMLDivElement>>;
14
+ /**
15
+ * Consumes available toolbar space to separate control groups.
16
+ *
17
+ * @public
18
+ */
19
+ export declare const ToolbarSpacer: import("react").ForwardRefExoticComponent<ToolbarSpacerProps & import("react").RefAttributes<HTMLSpanElement>>;
20
+ //# sourceMappingURL=toolbar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolbar.d.ts","sourceRoot":"","sources":["../../../src/components/toolbar/toolbar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE9F;;;;GAIG;AACH,eAAO,MAAM,OAAO,yGAelB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,YAAY,8GAavB,CAAC;AAEH;;;;GAIG;AACH,eAAO,MAAM,aAAa,gHAYxB,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { forwardRef } from "react";
3
+ import { classNames } from "../../internal/class-names.js";
4
+ /**
5
+ * Renders a labeled toolbar for a related set of controls.
6
+ *
7
+ * @public
8
+ */
9
+ export const Toolbar = forwardRef(function Toolbar({ label, orientation = "horizontal", className, ...props }, ref) {
10
+ return (_jsx("div", { ...props, ref: ref, role: "toolbar", "aria-label": label, "aria-orientation": orientation, "data-orientation": orientation, className: classNames("miaixz-toolbar", className) }));
11
+ });
12
+ /**
13
+ * Groups related toolbar controls with consistent spacing.
14
+ *
15
+ * @public
16
+ */
17
+ export const ToolbarGroup = forwardRef(function ToolbarGroup({ label, className, ...props }, ref) {
18
+ return (_jsx("div", { ...props, ref: ref, role: "group", "aria-label": label, className: classNames("miaixz-toolbar-group", className) }));
19
+ });
20
+ /**
21
+ * Consumes available toolbar space to separate control groups.
22
+ *
23
+ * @public
24
+ */
25
+ export const ToolbarSpacer = forwardRef(function ToolbarSpacer({ className, "aria-hidden": ariaHidden = true, ...props }, ref) {
26
+ return (_jsx("span", { ...props, ref: ref, "aria-hidden": ariaHidden, className: classNames("miaixz-toolbar-spacer", className) }));
27
+ });
28
+ //# sourceMappingURL=toolbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolbar.js","sourceRoot":"","sources":["../../../src/components/toolbar/toolbar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,UAAU,CAA+B,SAAS,OAAO,CAC9E,EAAE,KAAK,EAAE,WAAW,GAAG,YAAY,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAC1D,GAAG;IAEH,OAAO,CACL,iBACM,KAAK,EACT,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,SAAS,gBACF,KAAK,sBACC,WAAW,sBACX,WAAW,EAC7B,SAAS,EAAE,UAAU,CAAC,gBAAgB,EAAE,SAAS,CAAC,GAClD,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,UAAU,CAAoC,SAAS,YAAY,CAC7F,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAC9B,GAAG;IAEH,OAAO,CACL,iBACM,KAAK,EACT,GAAG,EAAE,GAAG,EACR,IAAI,EAAC,OAAO,gBACA,KAAK,EACjB,SAAS,EAAE,UAAU,CAAC,sBAAsB,EAAE,SAAS,CAAC,GACxD,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,UAAU,CAAsC,SAAS,aAAa,CACjG,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,KAAK,EAAE,EACzD,GAAG;IAEH,OAAO,CACL,kBACM,KAAK,EACT,GAAG,EAAE,GAAG,iBACK,UAAU,EACvB,SAAS,EAAE,UAAU,CAAC,uBAAuB,EAAE,SAAS,CAAC,GACzD,CACH,CAAC;AACJ,CAAC,CAAC,CAAC","sourcesContent":["import { forwardRef } from \"react\";\n\nimport { classNames } from \"../../internal/class-names.js\";\nimport type { ToolbarGroupProps, ToolbarProps, ToolbarSpacerProps } from \"./toolbar.types.js\";\n\n/**\n * Renders a labeled toolbar for a related set of controls.\n *\n * @public\n */\nexport const Toolbar = forwardRef<HTMLDivElement, ToolbarProps>(function Toolbar(\n { label, orientation = \"horizontal\", className, ...props },\n ref,\n) {\n return (\n <div\n {...props}\n ref={ref}\n role=\"toolbar\"\n aria-label={label}\n aria-orientation={orientation}\n data-orientation={orientation}\n className={classNames(\"miaixz-toolbar\", className)}\n />\n );\n});\n\n/**\n * Groups related toolbar controls with consistent spacing.\n *\n * @public\n */\nexport const ToolbarGroup = forwardRef<HTMLDivElement, ToolbarGroupProps>(function ToolbarGroup(\n { label, className, ...props },\n ref,\n) {\n return (\n <div\n {...props}\n ref={ref}\n role=\"group\"\n aria-label={label}\n className={classNames(\"miaixz-toolbar-group\", className)}\n />\n );\n});\n\n/**\n * Consumes available toolbar space to separate control groups.\n *\n * @public\n */\nexport const ToolbarSpacer = forwardRef<HTMLSpanElement, ToolbarSpacerProps>(function ToolbarSpacer(\n { className, \"aria-hidden\": ariaHidden = true, ...props },\n ref,\n) {\n return (\n <span\n {...props}\n ref={ref}\n aria-hidden={ariaHidden}\n className={classNames(\"miaixz-toolbar-spacer\", className)}\n />\n );\n});\n"]}
@@ -0,0 +1,37 @@
1
+ import type { HTMLAttributes } from "react";
2
+ /**
3
+ * Configures an accessible group of related controls.
4
+ *
5
+ * @public
6
+ */
7
+ export interface ToolbarProps extends HTMLAttributes<HTMLDivElement> {
8
+ /**
9
+ * Provides the required accessible toolbar label.
10
+ */
11
+ label: string;
12
+ /**
13
+ * Selects the control flow direction and keyboard metadata.
14
+ *
15
+ * @defaultValue `"horizontal"`
16
+ */
17
+ orientation?: "horizontal" | "vertical";
18
+ }
19
+ /**
20
+ * Configures a labeled subgroup within a toolbar.
21
+ *
22
+ * @public
23
+ */
24
+ export interface ToolbarGroupProps extends HTMLAttributes<HTMLDivElement> {
25
+ /**
26
+ * Provides an accessible group label when needed.
27
+ */
28
+ label?: string;
29
+ }
30
+ /**
31
+ * Configures a flexible spacer between toolbar groups.
32
+ *
33
+ * @public
34
+ */
35
+ export interface ToolbarSpacerProps extends HTMLAttributes<HTMLSpanElement> {
36
+ }
37
+ //# sourceMappingURL=toolbar.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolbar.types.d.ts","sourceRoot":"","sources":["../../../src/components/toolbar/toolbar.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAE5C;;;;GAIG;AACH,MAAM,WAAW,YAAa,SAAQ,cAAc,CAAC,cAAc,CAAC;IAClE;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;CACzC;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACvE;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAmB,SAAQ,cAAc,CAAC,eAAe,CAAC;CAAG"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=toolbar.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolbar.types.js","sourceRoot":"","sources":["../../../src/components/toolbar/toolbar.types.ts"],"names":[],"mappings":"","sourcesContent":["import type { HTMLAttributes } from \"react\";\n\n/**\n * Configures an accessible group of related controls.\n *\n * @public\n */\nexport interface ToolbarProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Provides the required accessible toolbar label.\n */\n label: string;\n /**\n * Selects the control flow direction and keyboard metadata.\n *\n * @defaultValue `\"horizontal\"`\n */\n orientation?: \"horizontal\" | \"vertical\";\n}\n\n/**\n * Configures a labeled subgroup within a toolbar.\n *\n * @public\n */\nexport interface ToolbarGroupProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Provides an accessible group label when needed.\n */\n label?: string;\n}\n\n/**\n * Configures a flexible spacer between toolbar groups.\n *\n * @public\n */\nexport interface ToolbarSpacerProps extends HTMLAttributes<HTMLSpanElement> {}\n"]}
@@ -0,0 +1,3 @@
1
+ export * from "./tooltip.js";
2
+ export type * from "./tooltip.types.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/tooltip/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,mBAAmB,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./tooltip.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/tooltip/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC","sourcesContent":["export * from \"./tooltip.js\";\nexport type * from \"./tooltip.types.js\";\n"]}
@@ -0,0 +1,8 @@
1
+ import type { TooltipProps } from "./tooltip.types.js";
2
+ /**
3
+ * Associates concise contextual help with an interactive or informational child.
4
+ *
5
+ * @public
6
+ */
7
+ export declare const Tooltip: import("react").ForwardRefExoticComponent<TooltipProps & import("react").RefAttributes<HTMLSpanElement>>;
8
+ //# sourceMappingURL=tooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../src/components/tooltip/tooltip.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOvD;;;;GAIG;AACH,eAAO,MAAM,OAAO,0GA0GlB,CAAC"}
@@ -0,0 +1,84 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cloneElement, forwardRef, useCallback, useEffect, useId, useRef, useState } from "react";
3
+ import { createPortal } from "react-dom";
4
+ import { classNames } from "../../internal/class-names.js";
5
+ import { useMiaixzDismissibleLayer, useMiaixzFloatingPosition, useMiaixzManualPopover, useMiaixzPortalTarget, } from "../../internal/overlay/index.js";
6
+ import { useMergedRef } from "../../internal/use-merged-ref.js";
7
+ /**
8
+ * Freezes the WAI-ARIA Tooltip show delay in milliseconds.
9
+ */
10
+ const miaixzTooltipShowDelay = 300;
11
+ /**
12
+ * Associates concise contextual help with an interactive or informational child.
13
+ *
14
+ * @public
15
+ */
16
+ export const Tooltip = forwardRef(function Tooltip({ content, children, placement = "top", className, onPointerEnter, onPointerLeave, onFocus, onBlur, ...props }, forwardedRef) {
17
+ const tooltipId = useId();
18
+ const describedBy = [children.props["aria-describedby"], tooltipId].filter(Boolean).join(" ");
19
+ const wrapperRef = useRef(null);
20
+ const [wrapperElement, setWrapperElement] = useState(null);
21
+ const contentRef = useRef(null);
22
+ const captureWrapper = useCallback((element) => {
23
+ wrapperRef.current = element;
24
+ setWrapperElement(element);
25
+ }, []);
26
+ const ref = useMergedRef(forwardedRef, captureWrapper);
27
+ const timerRef = useRef(undefined);
28
+ const hoveredRef = useRef(false);
29
+ const focusedRef = useRef(false);
30
+ const [visible, setVisible] = useState(false);
31
+ const portalTarget = useMiaixzPortalTarget(wrapperElement);
32
+ const clearTimer = () => {
33
+ if (timerRef.current === undefined)
34
+ return;
35
+ window.clearTimeout(timerRef.current);
36
+ timerRef.current = undefined;
37
+ };
38
+ const scheduleShow = () => {
39
+ clearTimer();
40
+ timerRef.current = window.setTimeout(() => {
41
+ timerRef.current = undefined;
42
+ if (hoveredRef.current || focusedRef.current)
43
+ setVisible(true);
44
+ }, miaixzTooltipShowDelay);
45
+ };
46
+ const hideImmediately = () => {
47
+ clearTimer();
48
+ if (!hoveredRef.current && !focusedRef.current)
49
+ setVisible(false);
50
+ };
51
+ useMiaixzManualPopover(contentRef, visible, portalTarget);
52
+ useMiaixzFloatingPosition(wrapperRef, contentRef, visible, placement, portalTarget);
53
+ useMiaixzDismissibleLayer({
54
+ active: visible,
55
+ triggerRef: wrapperRef,
56
+ contentRef,
57
+ portalTarget,
58
+ onDismiss: () => {
59
+ clearTimer();
60
+ setVisible(false);
61
+ },
62
+ });
63
+ useEffect(() => clearTimer, []);
64
+ return (_jsxs("span", { ...props, ref: ref, "data-placement": placement, className: classNames("miaixz-tooltip", className), onPointerEnter: (event) => {
65
+ onPointerEnter?.(event);
66
+ hoveredRef.current = true;
67
+ scheduleShow();
68
+ }, onPointerLeave: (event) => {
69
+ onPointerLeave?.(event);
70
+ hoveredRef.current = false;
71
+ hideImmediately();
72
+ }, onFocus: (event) => {
73
+ onFocus?.(event);
74
+ focusedRef.current = true;
75
+ scheduleShow();
76
+ }, onBlur: (event) => {
77
+ onBlur?.(event);
78
+ if (!event.currentTarget.contains(event.relatedTarget))
79
+ focusedRef.current = false;
80
+ hideImmediately();
81
+ }, children: [cloneElement(children, { "aria-describedby": describedBy }), portalTarget !== null &&
82
+ createPortal(_jsx("span", { ref: contentRef, id: tooltipId, role: "tooltip", popover: "manual", hidden: !visible, className: "miaixz-tooltip-content", children: content }), portalTarget)] }));
83
+ });
84
+ //# sourceMappingURL=tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../../src/components/tooltip/tooltip.tsx"],"names":[],"mappings":"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","sourcesContent":["import { cloneElement, forwardRef, useCallback, useEffect, useId, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport { classNames } from \"../../internal/class-names.js\";\nimport {\n useMiaixzDismissibleLayer,\n useMiaixzFloatingPosition,\n useMiaixzManualPopover,\n useMiaixzPortalTarget,\n} from \"../../internal/overlay/index.js\";\nimport { useMergedRef } from \"../../internal/use-merged-ref.js\";\nimport type { TooltipProps } from \"./tooltip.types.js\";\n\n/**\n * Freezes the WAI-ARIA Tooltip show delay in milliseconds.\n */\nconst miaixzTooltipShowDelay = 300;\n\n/**\n * Associates concise contextual help with an interactive or informational child.\n *\n * @public\n */\nexport const Tooltip = forwardRef<HTMLSpanElement, TooltipProps>(function Tooltip(\n {\n content,\n children,\n placement = \"top\",\n className,\n onPointerEnter,\n onPointerLeave,\n onFocus,\n onBlur,\n ...props\n },\n forwardedRef,\n) {\n const tooltipId = useId();\n const describedBy = [children.props[\"aria-describedby\"], tooltipId].filter(Boolean).join(\" \");\n const wrapperRef = useRef<HTMLSpanElement>(null);\n const [wrapperElement, setWrapperElement] = useState<HTMLSpanElement | null>(null);\n const contentRef = useRef<HTMLSpanElement>(null);\n const captureWrapper = useCallback((element: HTMLSpanElement | null) => {\n wrapperRef.current = element;\n setWrapperElement(element);\n }, []);\n const ref = useMergedRef(forwardedRef, captureWrapper);\n const timerRef = useRef<number | undefined>(undefined);\n const hoveredRef = useRef(false);\n const focusedRef = useRef(false);\n const [visible, setVisible] = useState(false);\n const portalTarget = useMiaixzPortalTarget(wrapperElement);\n\n const clearTimer = () => {\n if (timerRef.current === undefined) return;\n window.clearTimeout(timerRef.current);\n timerRef.current = undefined;\n };\n const scheduleShow = () => {\n clearTimer();\n timerRef.current = window.setTimeout(() => {\n timerRef.current = undefined;\n if (hoveredRef.current || focusedRef.current) setVisible(true);\n }, miaixzTooltipShowDelay);\n };\n const hideImmediately = () => {\n clearTimer();\n if (!hoveredRef.current && !focusedRef.current) setVisible(false);\n };\n\n useMiaixzManualPopover(contentRef, visible, portalTarget);\n useMiaixzFloatingPosition(wrapperRef, contentRef, visible, placement, portalTarget);\n useMiaixzDismissibleLayer({\n active: visible,\n triggerRef: wrapperRef,\n contentRef,\n portalTarget,\n onDismiss: () => {\n clearTimer();\n setVisible(false);\n },\n });\n\n useEffect(() => clearTimer, []);\n\n return (\n <span\n {...props}\n ref={ref}\n data-placement={placement}\n className={classNames(\"miaixz-tooltip\", className)}\n onPointerEnter={(event) => {\n onPointerEnter?.(event);\n hoveredRef.current = true;\n scheduleShow();\n }}\n onPointerLeave={(event) => {\n onPointerLeave?.(event);\n hoveredRef.current = false;\n hideImmediately();\n }}\n onFocus={(event) => {\n onFocus?.(event);\n focusedRef.current = true;\n scheduleShow();\n }}\n onBlur={(event) => {\n onBlur?.(event);\n if (!event.currentTarget.contains(event.relatedTarget)) focusedRef.current = false;\n hideImmediately();\n }}\n >\n {cloneElement(children, { \"aria-describedby\": describedBy })}\n {portalTarget !== null &&\n createPortal(\n <span\n ref={contentRef}\n id={tooltipId}\n role=\"tooltip\"\n popover=\"manual\"\n hidden={!visible}\n className=\"miaixz-tooltip-content\"\n >\n {content}\n </span>,\n portalTarget,\n )}\n </span>\n );\n});\n"]}