@zerodep-dev/vue-tsx-pro-ui 0.0.0-stage → 0.1.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 (1109) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +32 -2
  3. package/dist/base/Badge.d.ts +28 -0
  4. package/dist/base/Badge.js +72 -0
  5. package/dist/base/Badge.js.map +1 -0
  6. package/dist/base/Blockquote.d.ts +13 -0
  7. package/dist/base/Blockquote.js +26 -0
  8. package/dist/base/Blockquote.js.map +1 -0
  9. package/dist/base/Button.d.ts +18 -0
  10. package/dist/base/Button.js +86 -0
  11. package/dist/base/Button.js.map +1 -0
  12. package/dist/base/ButtonBase.d.ts +21 -0
  13. package/dist/base/ButtonBase.js +51 -0
  14. package/dist/base/ButtonBase.js.map +1 -0
  15. package/dist/base/ButtonGroup.d.ts +24 -0
  16. package/dist/base/ButtonGroup.js +52 -0
  17. package/dist/base/ButtonGroup.js.map +1 -0
  18. package/dist/base/CloseButton.d.ts +15 -0
  19. package/dist/base/CloseButton.js +38 -0
  20. package/dist/base/CloseButton.js.map +1 -0
  21. package/dist/base/Code.d.ts +13 -0
  22. package/dist/base/Code.js +27 -0
  23. package/dist/base/Code.js.map +1 -0
  24. package/dist/base/CodeBlock.d.ts +89 -0
  25. package/dist/base/CodeBlock.js +265 -0
  26. package/dist/base/CodeBlock.js.map +1 -0
  27. package/dist/base/CopyButton.d.ts +40 -0
  28. package/dist/base/CopyButton.js +113 -0
  29. package/dist/base/CopyButton.js.map +1 -0
  30. package/dist/base/Heading.d.ts +49 -0
  31. package/dist/base/Heading.js +122 -0
  32. package/dist/base/Heading.js.map +1 -0
  33. package/dist/base/Icon.d.ts +48 -0
  34. package/dist/base/Icon.js +110 -0
  35. package/dist/base/Icon.js.map +1 -0
  36. package/dist/base/IconButton.d.ts +34 -0
  37. package/dist/base/IconButton.js +81 -0
  38. package/dist/base/IconButton.js.map +1 -0
  39. package/dist/base/IconLinkButton.d.ts +34 -0
  40. package/dist/base/IconLinkButton.js +81 -0
  41. package/dist/base/IconLinkButton.js.map +1 -0
  42. package/dist/base/Indicator.d.ts +126 -0
  43. package/dist/base/Indicator.js +158 -0
  44. package/dist/base/Indicator.js.map +1 -0
  45. package/dist/base/Kbd.d.ts +13 -0
  46. package/dist/base/Kbd.js +34 -0
  47. package/dist/base/Kbd.js.map +1 -0
  48. package/dist/base/Link.d.ts +61 -0
  49. package/dist/base/Link.js +114 -0
  50. package/dist/base/Link.js.map +1 -0
  51. package/dist/base/LinkButton.d.ts +18 -0
  52. package/dist/base/LinkButton.js +109 -0
  53. package/dist/base/LinkButton.js.map +1 -0
  54. package/dist/base/List.d.ts +61 -0
  55. package/dist/base/List.js +116 -0
  56. package/dist/base/List.js.map +1 -0
  57. package/dist/base/Mark.d.ts +13 -0
  58. package/dist/base/Mark.js +23 -0
  59. package/dist/base/Mark.js.map +1 -0
  60. package/dist/base/Spinner.d.ts +20 -0
  61. package/dist/base/Spinner.js +59 -0
  62. package/dist/base/Spinner.js.map +1 -0
  63. package/dist/base/StatusDot.d.ts +48 -0
  64. package/dist/base/StatusDot.js +62 -0
  65. package/dist/base/StatusDot.js.map +1 -0
  66. package/dist/base/Tag.d.ts +29 -0
  67. package/dist/base/Tag.js +92 -0
  68. package/dist/base/Tag.js.map +1 -0
  69. package/dist/base/Text.d.ts +57 -0
  70. package/dist/base/Text.js +74 -0
  71. package/dist/base/Text.js.map +1 -0
  72. package/dist/base/VisuallyHidden.d.ts +13 -0
  73. package/dist/base/VisuallyHidden.js +28 -0
  74. package/dist/base/VisuallyHidden.js.map +1 -0
  75. package/dist/base/badge-styles.d.ts +57 -0
  76. package/dist/base/badge-styles.js +329 -0
  77. package/dist/base/badge-styles.js.map +1 -0
  78. package/dist/base/button-core.d.ts +191 -0
  79. package/dist/base/button-core.js +660 -0
  80. package/dist/base/button-core.js.map +1 -0
  81. package/dist/charts/AreaChart.d.ts +18 -0
  82. package/dist/charts/AreaChart.js +90 -0
  83. package/dist/charts/AreaChart.js.map +1 -0
  84. package/dist/charts/BarChart.d.ts +19 -0
  85. package/dist/charts/BarChart.js +88 -0
  86. package/dist/charts/BarChart.js.map +1 -0
  87. package/dist/charts/ChordChart.d.ts +48 -0
  88. package/dist/charts/ChordChart.js +149 -0
  89. package/dist/charts/ChordChart.js.map +1 -0
  90. package/dist/charts/ComboChart.d.ts +30 -0
  91. package/dist/charts/ComboChart.js +157 -0
  92. package/dist/charts/ComboChart.js.map +1 -0
  93. package/dist/charts/DonutChart.d.ts +65 -0
  94. package/dist/charts/DonutChart.js +162 -0
  95. package/dist/charts/DonutChart.js.map +1 -0
  96. package/dist/charts/FunnelChart.d.ts +69 -0
  97. package/dist/charts/FunnelChart.js +181 -0
  98. package/dist/charts/FunnelChart.js.map +1 -0
  99. package/dist/charts/GraphChart.d.ts +135 -0
  100. package/dist/charts/GraphChart.js +274 -0
  101. package/dist/charts/GraphChart.js.map +1 -0
  102. package/dist/charts/LineChart.d.ts +50 -0
  103. package/dist/charts/LineChart.js +94 -0
  104. package/dist/charts/LineChart.js.map +1 -0
  105. package/dist/charts/MapChart.d.ts +167 -0
  106. package/dist/charts/MapChart.js +627 -0
  107. package/dist/charts/MapChart.js.map +1 -0
  108. package/dist/charts/RadarChart.d.ts +60 -0
  109. package/dist/charts/RadarChart.js +224 -0
  110. package/dist/charts/RadarChart.js.map +1 -0
  111. package/dist/charts/SankeyChart.d.ts +57 -0
  112. package/dist/charts/SankeyChart.js +150 -0
  113. package/dist/charts/SankeyChart.js.map +1 -0
  114. package/dist/charts/ScatterChart.d.ts +18 -0
  115. package/dist/charts/ScatterChart.js +82 -0
  116. package/dist/charts/ScatterChart.js.map +1 -0
  117. package/dist/charts/TimelineChart.d.ts +71 -0
  118. package/dist/charts/TimelineChart.js +267 -0
  119. package/dist/charts/TimelineChart.js.map +1 -0
  120. package/dist/charts/TreemapChart.d.ts +40 -0
  121. package/dist/charts/TreemapChart.js +155 -0
  122. package/dist/charts/TreemapChart.js.map +1 -0
  123. package/dist/charts/WaterfallChart.d.ts +61 -0
  124. package/dist/charts/WaterfallChart.js +167 -0
  125. package/dist/charts/WaterfallChart.js.map +1 -0
  126. package/dist/charts/XYChart.d.ts +206 -0
  127. package/dist/charts/XYChart.js +520 -0
  128. package/dist/charts/XYChart.js.map +1 -0
  129. package/dist/charts/axis-ticks.d.ts +23 -0
  130. package/dist/charts/axis-ticks.js +59 -0
  131. package/dist/charts/axis-ticks.js.map +1 -0
  132. package/dist/charts/export.d.ts +17 -0
  133. package/dist/charts/export.js +65 -0
  134. package/dist/charts/export.js.map +1 -0
  135. package/dist/charts/flow.d.ts +53 -0
  136. package/dist/charts/flow.js +29 -0
  137. package/dist/charts/flow.js.map +1 -0
  138. package/dist/charts/frame.d.ts +147 -0
  139. package/dist/charts/frame.js +358 -0
  140. package/dist/charts/frame.js.map +1 -0
  141. package/dist/charts/index.d.ts +30 -0
  142. package/dist/charts/index.js +24 -0
  143. package/dist/charts/label-layout.d.ts +59 -0
  144. package/dist/charts/label-layout.js +64 -0
  145. package/dist/charts/label-layout.js.map +1 -0
  146. package/dist/charts/series.d.ts +36 -0
  147. package/dist/charts/series.js +60 -0
  148. package/dist/charts/series.js.map +1 -0
  149. package/dist/charts/single.d.ts +41 -0
  150. package/dist/charts/single.js +65 -0
  151. package/dist/charts/single.js.map +1 -0
  152. package/dist/config/Provider.d.ts +52 -0
  153. package/dist/config/Provider.js +111 -0
  154. package/dist/config/Provider.js.map +1 -0
  155. package/dist/config/context.d.ts +90 -0
  156. package/dist/config/context.js +58 -0
  157. package/dist/config/context.js.map +1 -0
  158. package/dist/config/createUi.d.ts +52 -0
  159. package/dist/config/createUi.js +96 -0
  160. package/dist/config/createUi.js.map +1 -0
  161. package/dist/config/defaults.d.ts +71 -0
  162. package/dist/config/defaults.js +45 -0
  163. package/dist/config/defaults.js.map +1 -0
  164. package/dist/config/lang/en-US.d.ts +3 -0
  165. package/dist/config/lang/en-US.js +386 -0
  166. package/dist/config/lang/en-US.js.map +1 -0
  167. package/dist/config/lang/format.d.ts +50 -0
  168. package/dist/config/lang/format.js +113 -0
  169. package/dist/config/lang/format.js.map +1 -0
  170. package/dist/config/lang/lang.d.ts +653 -0
  171. package/dist/config/lang/lang.js +22 -0
  172. package/dist/config/lang/lang.js.map +1 -0
  173. package/dist/config/lang/messages.d.ts +12 -0
  174. package/dist/config/lang/messages.js +36 -0
  175. package/dist/config/lang/messages.js.map +1 -0
  176. package/dist/config/lang/zh-CN.d.ts +3 -0
  177. package/dist/config/lang/zh-CN.js +386 -0
  178. package/dist/config/lang/zh-CN.js.map +1 -0
  179. package/dist/config/pinyin.d.ts +3 -0
  180. package/dist/config/pinyin.js +26 -0
  181. package/dist/config/pinyin.js.map +1 -0
  182. package/dist/config/query-state.d.ts +61 -0
  183. package/dist/config/query-state.js +113 -0
  184. package/dist/config/query-state.js.map +1 -0
  185. package/dist/config/shiki.d.ts +13 -0
  186. package/dist/config/shiki.js +97 -0
  187. package/dist/config/shiki.js.map +1 -0
  188. package/dist/config/styles.d.ts +108 -0
  189. package/dist/config/styles.js +59 -0
  190. package/dist/config/styles.js.map +1 -0
  191. package/dist/config/theme/boot.d.ts +97 -0
  192. package/dist/config/theme/boot.js +90 -0
  193. package/dist/config/theme/boot.js.map +1 -0
  194. package/dist/config/theme/builtin.d.ts +21 -0
  195. package/dist/config/theme/builtin.js +58 -0
  196. package/dist/config/theme/builtin.js.map +1 -0
  197. package/dist/config/theme/coffee.d.ts +84 -0
  198. package/dist/config/theme/coffee.js +102 -0
  199. package/dist/config/theme/coffee.js.map +1 -0
  200. package/dist/config/theme/cyberpunk.d.ts +110 -0
  201. package/dist/config/theme/cyberpunk.js +125 -0
  202. package/dist/config/theme/cyberpunk.js.map +1 -0
  203. package/dist/config/theme/dark.d.ts +90 -0
  204. package/dist/config/theme/dark.js +106 -0
  205. package/dist/config/theme/dark.js.map +1 -0
  206. package/dist/config/theme/festive.d.ts +93 -0
  207. package/dist/config/theme/festive.js +110 -0
  208. package/dist/config/theme/festive.js.map +1 -0
  209. package/dist/config/theme/forest.d.ts +93 -0
  210. package/dist/config/theme/forest.js +109 -0
  211. package/dist/config/theme/forest.js.map +1 -0
  212. package/dist/config/theme/high-contrast.d.ts +103 -0
  213. package/dist/config/theme/high-contrast.js +119 -0
  214. package/dist/config/theme/high-contrast.js.map +1 -0
  215. package/dist/config/theme/lemon.d.ts +103 -0
  216. package/dist/config/theme/lemon.js +119 -0
  217. package/dist/config/theme/lemon.js.map +1 -0
  218. package/dist/config/theme/light.d.ts +107 -0
  219. package/dist/config/theme/light.js +122 -0
  220. package/dist/config/theme/light.js.map +1 -0
  221. package/dist/config/theme/midnight.d.ts +86 -0
  222. package/dist/config/theme/midnight.js +103 -0
  223. package/dist/config/theme/midnight.js.map +1 -0
  224. package/dist/config/theme/ocean.d.ts +103 -0
  225. package/dist/config/theme/ocean.js +119 -0
  226. package/dist/config/theme/ocean.js.map +1 -0
  227. package/dist/config/theme/paper.d.ts +101 -0
  228. package/dist/config/theme/paper.js +117 -0
  229. package/dist/config/theme/paper.js.map +1 -0
  230. package/dist/config/theme/preference.d.ts +34 -0
  231. package/dist/config/theme/preference.js +67 -0
  232. package/dist/config/theme/preference.js.map +1 -0
  233. package/dist/config/theme/sakura.d.ts +103 -0
  234. package/dist/config/theme/sakura.js +119 -0
  235. package/dist/config/theme/sakura.js.map +1 -0
  236. package/dist/config/theme/theme.d.ts +59 -0
  237. package/dist/config/theme/theme.js +68 -0
  238. package/dist/config/theme/theme.js.map +1 -0
  239. package/dist/config/theme/token-names.d.ts +1897 -0
  240. package/dist/config/theme/tokens.d.ts +833 -0
  241. package/dist/config/theme/tokens.js +480 -0
  242. package/dist/config/theme/tokens.js.map +1 -0
  243. package/dist/config/vue-router.d.ts +67 -0
  244. package/dist/config/vue-router.js +143 -0
  245. package/dist/config/vue-router.js.map +1 -0
  246. package/dist/date/Calendar.d.ts +36 -0
  247. package/dist/date/Calendar.js +83 -0
  248. package/dist/date/Calendar.js.map +1 -0
  249. package/dist/date/CalendarBoard.d.ts +79 -0
  250. package/dist/date/CalendarBoard.js +403 -0
  251. package/dist/date/CalendarBoard.js.map +1 -0
  252. package/dist/date/CalendarView.d.ts +86 -0
  253. package/dist/date/CalendarView.js +427 -0
  254. package/dist/date/CalendarView.js.map +1 -0
  255. package/dist/date/Countdown.d.ts +45 -0
  256. package/dist/date/Countdown.js +75 -0
  257. package/dist/date/Countdown.js.map +1 -0
  258. package/dist/date/DateField.d.ts +34 -0
  259. package/dist/date/DateField.js +124 -0
  260. package/dist/date/DateField.js.map +1 -0
  261. package/dist/date/DatePicker.d.ts +41 -0
  262. package/dist/date/DatePicker.js +272 -0
  263. package/dist/date/DatePicker.js.map +1 -0
  264. package/dist/date/DateRangePicker.d.ts +71 -0
  265. package/dist/date/DateRangePicker.js +411 -0
  266. package/dist/date/DateRangePicker.js.map +1 -0
  267. package/dist/date/DateSegmentGroup.d.ts +38 -0
  268. package/dist/date/DateSegmentGroup.js +176 -0
  269. package/dist/date/DateSegmentGroup.js.map +1 -0
  270. package/dist/date/DateTime.d.ts +21 -0
  271. package/dist/date/DateTime.js +39 -0
  272. package/dist/date/DateTime.js.map +1 -0
  273. package/dist/date/QuarterCalendar.d.ts +22 -0
  274. package/dist/date/QuarterCalendar.js +231 -0
  275. package/dist/date/QuarterCalendar.js.map +1 -0
  276. package/dist/date/RangeCalendar.d.ts +24 -0
  277. package/dist/date/RangeCalendar.js +89 -0
  278. package/dist/date/RangeCalendar.js.map +1 -0
  279. package/dist/date/RelativeTime.d.ts +16 -0
  280. package/dist/date/RelativeTime.js +61 -0
  281. package/dist/date/RelativeTime.js.map +1 -0
  282. package/dist/date/SegmentedField.d.ts +60 -0
  283. package/dist/date/SegmentedField.js +175 -0
  284. package/dist/date/SegmentedField.js.map +1 -0
  285. package/dist/date/TimeField.d.ts +36 -0
  286. package/dist/date/TimeField.js +56 -0
  287. package/dist/date/TimeField.js.map +1 -0
  288. package/dist/date/TimePicker.d.ts +25 -0
  289. package/dist/date/TimePicker.js +206 -0
  290. package/dist/date/TimePicker.js.map +1 -0
  291. package/dist/date/calendar-state.d.ts +119 -0
  292. package/dist/date/calendar-state.js +267 -0
  293. package/dist/date/calendar-state.js.map +1 -0
  294. package/dist/date/clock.d.ts +11 -0
  295. package/dist/date/clock.js +37 -0
  296. package/dist/date/clock.js.map +1 -0
  297. package/dist/date/date-locale.d.ts +67 -0
  298. package/dist/date/date-locale.js +89 -0
  299. package/dist/date/date-locale.js.map +1 -0
  300. package/dist/date/date-segments.d.ts +132 -0
  301. package/dist/date/date-segments.js +410 -0
  302. package/dist/date/date-segments.js.map +1 -0
  303. package/dist/date/picker-popover.d.ts +88 -0
  304. package/dist/date/picker-popover.js +126 -0
  305. package/dist/date/picker-popover.js.map +1 -0
  306. package/dist/diagram/Diagram.d.ts +223 -0
  307. package/dist/diagram/Diagram.js +1121 -0
  308. package/dist/diagram/Diagram.js.map +1 -0
  309. package/dist/diagram/DiagramControls.d.ts +35 -0
  310. package/dist/diagram/DiagramControls.js +114 -0
  311. package/dist/diagram/DiagramControls.js.map +1 -0
  312. package/dist/diagram/DiagramLanes.d.ts +49 -0
  313. package/dist/diagram/DiagramLanes.js +92 -0
  314. package/dist/diagram/DiagramLanes.js.map +1 -0
  315. package/dist/diagram/DiagramMinimap.d.ts +39 -0
  316. package/dist/diagram/DiagramMinimap.js +133 -0
  317. package/dist/diagram/DiagramMinimap.js.map +1 -0
  318. package/dist/diagram/DiagramNode.d.ts +65 -0
  319. package/dist/diagram/DiagramNode.js +142 -0
  320. package/dist/diagram/DiagramNode.js.map +1 -0
  321. package/dist/diagram/controller.d.ts +68 -0
  322. package/dist/diagram/controller.js +117 -0
  323. package/dist/diagram/controller.js.map +1 -0
  324. package/dist/diagram/export.d.ts +14 -0
  325. package/dist/diagram/export.js +115 -0
  326. package/dist/diagram/export.js.map +1 -0
  327. package/dist/diagram/geometry.d.ts +65 -0
  328. package/dist/diagram/geometry.js +219 -0
  329. package/dist/diagram/geometry.js.map +1 -0
  330. package/dist/diagram/index.d.ts +19 -0
  331. package/dist/diagram/index.js +11 -0
  332. package/dist/diagram/messages.d.ts +28 -0
  333. package/dist/diagram/messages.js +30 -0
  334. package/dist/diagram/messages.js.map +1 -0
  335. package/dist/diagram/route.d.ts +81 -0
  336. package/dist/diagram/route.js +327 -0
  337. package/dist/diagram/route.js.map +1 -0
  338. package/dist/display/Accordion.d.ts +71 -0
  339. package/dist/display/Accordion.js +219 -0
  340. package/dist/display/Accordion.js.map +1 -0
  341. package/dist/display/AnimatedNumber.d.ts +44 -0
  342. package/dist/display/AnimatedNumber.js +97 -0
  343. package/dist/display/AnimatedNumber.js.map +1 -0
  344. package/dist/display/Avatar.d.ts +74 -0
  345. package/dist/display/Avatar.js +158 -0
  346. package/dist/display/Avatar.js.map +1 -0
  347. package/dist/display/AvatarGroup.d.ts +29 -0
  348. package/dist/display/AvatarGroup.js +67 -0
  349. package/dist/display/AvatarGroup.js.map +1 -0
  350. package/dist/display/Card.d.ts +219 -0
  351. package/dist/display/Card.js +319 -0
  352. package/dist/display/Card.js.map +1 -0
  353. package/dist/display/Checklist.d.ts +93 -0
  354. package/dist/display/Checklist.js +260 -0
  355. package/dist/display/Checklist.js.map +1 -0
  356. package/dist/display/Collapse.d.ts +24 -0
  357. package/dist/display/Collapse.js +65 -0
  358. package/dist/display/Collapse.js.map +1 -0
  359. package/dist/display/Collapsible.d.ts +12 -0
  360. package/dist/display/Collapsible.js +41 -0
  361. package/dist/display/Collapsible.js.map +1 -0
  362. package/dist/display/Descriptions.d.ts +88 -0
  363. package/dist/display/Descriptions.js +185 -0
  364. package/dist/display/Descriptions.js.map +1 -0
  365. package/dist/display/Ellipsis.d.ts +29 -0
  366. package/dist/display/Ellipsis.js +111 -0
  367. package/dist/display/Ellipsis.js.map +1 -0
  368. package/dist/display/FieldCompare.d.ts +58 -0
  369. package/dist/display/FieldCompare.js +205 -0
  370. package/dist/display/FieldCompare.js.map +1 -0
  371. package/dist/display/Gauge.d.ts +60 -0
  372. package/dist/display/Gauge.js +215 -0
  373. package/dist/display/Gauge.js.map +1 -0
  374. package/dist/display/Image.d.ts +87 -0
  375. package/dist/display/Image.js +212 -0
  376. package/dist/display/Image.js.map +1 -0
  377. package/dist/display/ItemList.d.ts +69 -0
  378. package/dist/display/ItemList.js +147 -0
  379. package/dist/display/ItemList.js.map +1 -0
  380. package/dist/display/Marquee.d.ts +59 -0
  381. package/dist/display/Marquee.js +155 -0
  382. package/dist/display/Marquee.js.map +1 -0
  383. package/dist/display/ProportionBar.d.ts +55 -0
  384. package/dist/display/ProportionBar.js +99 -0
  385. package/dist/display/ProportionBar.js.map +1 -0
  386. package/dist/display/Sortable.d.ts +43 -0
  387. package/dist/display/Sortable.js +163 -0
  388. package/dist/display/Sortable.js.map +1 -0
  389. package/dist/display/Sparkline.d.ts +48 -0
  390. package/dist/display/Sparkline.js +130 -0
  391. package/dist/display/Sparkline.js.map +1 -0
  392. package/dist/display/Stat.d.ts +105 -0
  393. package/dist/display/Stat.js +268 -0
  394. package/dist/display/Stat.js.map +1 -0
  395. package/dist/display/Timeline.d.ts +106 -0
  396. package/dist/display/Timeline.js +257 -0
  397. package/dist/display/Timeline.js.map +1 -0
  398. package/dist/display/Tree.d.ts +132 -0
  399. package/dist/display/Tree.js +645 -0
  400. package/dist/display/Tree.js.map +1 -0
  401. package/dist/display/VirtualList.d.ts +80 -0
  402. package/dist/display/VirtualList.js +166 -0
  403. package/dist/display/VirtualList.js.map +1 -0
  404. package/dist/display/Watermark.d.ts +39 -0
  405. package/dist/display/Watermark.js +130 -0
  406. package/dist/display/Watermark.js.map +1 -0
  407. package/dist/docs-kit/CodeGroup.d.ts +29 -0
  408. package/dist/docs-kit/CodeGroup.js +81 -0
  409. package/dist/docs-kit/CodeGroup.js.map +1 -0
  410. package/dist/docs-kit/CodePreview.d.ts +60 -0
  411. package/dist/docs-kit/CodePreview.js +183 -0
  412. package/dist/docs-kit/CodePreview.js.map +1 -0
  413. package/dist/docs-kit/ColorSwatch.d.ts +28 -0
  414. package/dist/docs-kit/ColorSwatch.js +85 -0
  415. package/dist/docs-kit/ColorSwatch.js.map +1 -0
  416. package/dist/docs-kit/PropsTable.d.ts +73 -0
  417. package/dist/docs-kit/PropsTable.js +122 -0
  418. package/dist/docs-kit/PropsTable.js.map +1 -0
  419. package/dist/docs-kit/index.d.ts +13 -0
  420. package/dist/docs-kit/index.js +6 -0
  421. package/dist/docs-kit/messages.d.ts +25 -0
  422. package/dist/docs-kit/messages.js +30 -0
  423. package/dist/docs-kit/messages.js.map +1 -0
  424. package/dist/feedback/Alert.d.ts +83 -0
  425. package/dist/feedback/Alert.js +179 -0
  426. package/dist/feedback/Alert.js.map +1 -0
  427. package/dist/feedback/Banner.d.ts +60 -0
  428. package/dist/feedback/Banner.js +122 -0
  429. package/dist/feedback/Banner.js.map +1 -0
  430. package/dist/feedback/Empty.d.ts +38 -0
  431. package/dist/feedback/Empty.js +114 -0
  432. package/dist/feedback/Empty.js.map +1 -0
  433. package/dist/feedback/LoadingBar.d.ts +45 -0
  434. package/dist/feedback/LoadingBar.js +124 -0
  435. package/dist/feedback/LoadingBar.js.map +1 -0
  436. package/dist/feedback/LoadingOverlay.d.ts +29 -0
  437. package/dist/feedback/LoadingOverlay.js +70 -0
  438. package/dist/feedback/LoadingOverlay.js.map +1 -0
  439. package/dist/feedback/Progress.d.ts +215 -0
  440. package/dist/feedback/Progress.js +437 -0
  441. package/dist/feedback/Progress.js.map +1 -0
  442. package/dist/feedback/Result.d.ts +69 -0
  443. package/dist/feedback/Result.js +165 -0
  444. package/dist/feedback/Result.js.map +1 -0
  445. package/dist/feedback/Skeleton.d.ts +50 -0
  446. package/dist/feedback/Skeleton.js +100 -0
  447. package/dist/feedback/Skeleton.js.map +1 -0
  448. package/dist/feedback/SkeletonText.d.ts +25 -0
  449. package/dist/feedback/SkeletonText.js +40 -0
  450. package/dist/feedback/SkeletonText.js.map +1 -0
  451. package/dist/feedback/Toast.d.ts +204 -0
  452. package/dist/feedback/Toast.js +572 -0
  453. package/dist/feedback/Toast.js.map +1 -0
  454. package/dist/form/Field.d.ts +158 -0
  455. package/dist/form/Field.js +327 -0
  456. package/dist/form/Field.js.map +1 -0
  457. package/dist/form/Form.d.ts +14 -0
  458. package/dist/form/Form.js +66 -0
  459. package/dist/form/Form.js.map +1 -0
  460. package/dist/form/FormErrorSummary.d.ts +23 -0
  461. package/dist/form/FormErrorSummary.js +102 -0
  462. package/dist/form/FormErrorSummary.js.map +1 -0
  463. package/dist/form/FormSection.d.ts +66 -0
  464. package/dist/form/FormSection.js +227 -0
  465. package/dist/form/FormSection.js.map +1 -0
  466. package/dist/form/FormValue.d.ts +17 -0
  467. package/dist/form/FormValue.js +40 -0
  468. package/dist/form/FormValue.js.map +1 -0
  469. package/dist/form/field-layout.d.ts +34 -0
  470. package/dist/form/field-layout.js +39 -0
  471. package/dist/form/field-layout.js.map +1 -0
  472. package/dist/form/form-constraints.d.ts +38 -0
  473. package/dist/form/form-constraints.js +131 -0
  474. package/dist/form/form-constraints.js.map +1 -0
  475. package/dist/form/leave-confirmation.d.ts +9 -0
  476. package/dist/form/leave-confirmation.js +31 -0
  477. package/dist/form/leave-confirmation.js.map +1 -0
  478. package/dist/form/schemas.d.ts +52 -0
  479. package/dist/form/schemas.js +97 -0
  480. package/dist/form/schemas.js.map +1 -0
  481. package/dist/form/useForm.d.ts +192 -0
  482. package/dist/form/useForm.js +394 -0
  483. package/dist/form/useForm.js.map +1 -0
  484. package/dist/index.d.ts +282 -0
  485. package/dist/index.js +282 -0
  486. package/dist/input/Autocomplete.d.ts +14 -0
  487. package/dist/input/Autocomplete.js +35 -0
  488. package/dist/input/Autocomplete.js.map +1 -0
  489. package/dist/input/Cascader.d.ts +86 -0
  490. package/dist/input/Cascader.js +593 -0
  491. package/dist/input/Cascader.js.map +1 -0
  492. package/dist/input/CharacterCount.d.ts +21 -0
  493. package/dist/input/CharacterCount.js +47 -0
  494. package/dist/input/CharacterCount.js.map +1 -0
  495. package/dist/input/Checkbox.d.ts +93 -0
  496. package/dist/input/Checkbox.js +250 -0
  497. package/dist/input/Checkbox.js.map +1 -0
  498. package/dist/input/ColorField.d.ts +37 -0
  499. package/dist/input/ColorField.js +143 -0
  500. package/dist/input/ColorField.js.map +1 -0
  501. package/dist/input/Combobox.d.ts +75 -0
  502. package/dist/input/Combobox.js +321 -0
  503. package/dist/input/Combobox.js.map +1 -0
  504. package/dist/input/ConditionBuilder.d.ts +55 -0
  505. package/dist/input/ConditionBuilder.js +471 -0
  506. package/dist/input/ConditionBuilder.js.map +1 -0
  507. package/dist/input/ControlGroup.d.ts +26 -0
  508. package/dist/input/ControlGroup.js +50 -0
  509. package/dist/input/ControlGroup.js.map +1 -0
  510. package/dist/input/FileDrop.d.ts +49 -0
  511. package/dist/input/FileDrop.js +201 -0
  512. package/dist/input/FileDrop.js.map +1 -0
  513. package/dist/input/ListPopover.d.ts +39 -0
  514. package/dist/input/ListPopover.js +81 -0
  515. package/dist/input/ListPopover.js.map +1 -0
  516. package/dist/input/Listbox.d.ts +91 -0
  517. package/dist/input/Listbox.js +408 -0
  518. package/dist/input/Listbox.js.map +1 -0
  519. package/dist/input/Mentions.d.ts +74 -0
  520. package/dist/input/Mentions.js +287 -0
  521. package/dist/input/Mentions.js.map +1 -0
  522. package/dist/input/NumberField.d.ts +64 -0
  523. package/dist/input/NumberField.js +288 -0
  524. package/dist/input/NumberField.js.map +1 -0
  525. package/dist/input/NumberRangeField.d.ts +58 -0
  526. package/dist/input/NumberRangeField.js +157 -0
  527. package/dist/input/NumberRangeField.js.map +1 -0
  528. package/dist/input/OtpField.d.ts +58 -0
  529. package/dist/input/OtpField.js +200 -0
  530. package/dist/input/OtpField.js.map +1 -0
  531. package/dist/input/PeoplePicker.d.ts +42 -0
  532. package/dist/input/PeoplePicker.js +185 -0
  533. package/dist/input/PeoplePicker.js.map +1 -0
  534. package/dist/input/PeoplePickerPanel.d.ts +42 -0
  535. package/dist/input/PeoplePickerPanel.js +357 -0
  536. package/dist/input/PeoplePickerPanel.js.map +1 -0
  537. package/dist/input/Radio.d.ts +90 -0
  538. package/dist/input/Radio.js +211 -0
  539. package/dist/input/Radio.js.map +1 -0
  540. package/dist/input/Rating.d.ts +62 -0
  541. package/dist/input/Rating.js +225 -0
  542. package/dist/input/Rating.js.map +1 -0
  543. package/dist/input/Select.d.ts +97 -0
  544. package/dist/input/Select.js +455 -0
  545. package/dist/input/Select.js.map +1 -0
  546. package/dist/input/SelectedTags.d.ts +28 -0
  547. package/dist/input/SelectedTags.js +81 -0
  548. package/dist/input/SelectedTags.js.map +1 -0
  549. package/dist/input/Slider.d.ts +99 -0
  550. package/dist/input/Slider.js +343 -0
  551. package/dist/input/Slider.js.map +1 -0
  552. package/dist/input/Switch.d.ts +63 -0
  553. package/dist/input/Switch.js +198 -0
  554. package/dist/input/Switch.js.map +1 -0
  555. package/dist/input/TagsInput.d.ts +70 -0
  556. package/dist/input/TagsInput.js +314 -0
  557. package/dist/input/TagsInput.js.map +1 -0
  558. package/dist/input/TextField.d.ts +51 -0
  559. package/dist/input/TextField.js +185 -0
  560. package/dist/input/TextField.js.map +1 -0
  561. package/dist/input/Textarea.d.ts +50 -0
  562. package/dist/input/Textarea.js +146 -0
  563. package/dist/input/Textarea.js.map +1 -0
  564. package/dist/input/ToggleGroup.d.ts +82 -0
  565. package/dist/input/ToggleGroup.js +211 -0
  566. package/dist/input/ToggleGroup.js.map +1 -0
  567. package/dist/input/Transfer.d.ts +67 -0
  568. package/dist/input/Transfer.js +407 -0
  569. package/dist/input/Transfer.js.map +1 -0
  570. package/dist/input/TreeSelect.d.ts +94 -0
  571. package/dist/input/TreeSelect.js +412 -0
  572. package/dist/input/TreeSelect.js.map +1 -0
  573. package/dist/input/Upload.d.ts +143 -0
  574. package/dist/input/Upload.js +597 -0
  575. package/dist/input/Upload.js.map +1 -0
  576. package/dist/input/choice-styles.d.ts +117 -0
  577. package/dist/input/choice-styles.js +176 -0
  578. package/dist/input/choice-styles.js.map +1 -0
  579. package/dist/input/condition.d.ts +153 -0
  580. package/dist/input/condition.js +169 -0
  581. package/dist/input/condition.js.map +1 -0
  582. package/dist/input/control.d.ts +160 -0
  583. package/dist/input/control.js +236 -0
  584. package/dist/input/control.js.map +1 -0
  585. package/dist/input/list-state.d.ts +118 -0
  586. package/dist/input/list-state.js +186 -0
  587. package/dist/input/list-state.js.map +1 -0
  588. package/dist/input/people.d.ts +65 -0
  589. package/dist/input/people.js +47 -0
  590. package/dist/input/people.js.map +1 -0
  591. package/dist/input/remote-items.d.ts +20 -0
  592. package/dist/input/remote-items.js +36 -0
  593. package/dist/input/remote-items.js.map +1 -0
  594. package/dist/input/text-format.d.ts +46 -0
  595. package/dist/input/text-format.js +64 -0
  596. package/dist/input/text-format.js.map +1 -0
  597. package/dist/layout/Affix.d.ts +32 -0
  598. package/dist/layout/Affix.js +81 -0
  599. package/dist/layout/Affix.js.map +1 -0
  600. package/dist/layout/AsideLayout.d.ts +45 -0
  601. package/dist/layout/AsideLayout.js +69 -0
  602. package/dist/layout/AsideLayout.js.map +1 -0
  603. package/dist/layout/BackTop.d.ts +16 -0
  604. package/dist/layout/BackTop.js +83 -0
  605. package/dist/layout/BackTop.js.map +1 -0
  606. package/dist/layout/Container.d.ts +60 -0
  607. package/dist/layout/Container.js +62 -0
  608. package/dist/layout/Container.js.map +1 -0
  609. package/dist/layout/Flex.d.ts +116 -0
  610. package/dist/layout/Flex.js +109 -0
  611. package/dist/layout/Flex.js.map +1 -0
  612. package/dist/layout/Grid.d.ts +139 -0
  613. package/dist/layout/Grid.js +168 -0
  614. package/dist/layout/Grid.js.map +1 -0
  615. package/dist/layout/PageScrollbar.d.ts +20 -0
  616. package/dist/layout/PageScrollbar.js +49 -0
  617. package/dist/layout/PageScrollbar.js.map +1 -0
  618. package/dist/layout/Prose.d.ts +19 -0
  619. package/dist/layout/Prose.js +37 -0
  620. package/dist/layout/Prose.js.map +1 -0
  621. package/dist/layout/ResizeHandle.d.ts +28 -0
  622. package/dist/layout/ResizeHandle.js +94 -0
  623. package/dist/layout/ResizeHandle.js.map +1 -0
  624. package/dist/layout/ScrollArea.d.ts +99 -0
  625. package/dist/layout/ScrollArea.js +344 -0
  626. package/dist/layout/ScrollArea.js.map +1 -0
  627. package/dist/layout/Separator.d.ts +47 -0
  628. package/dist/layout/Separator.js +96 -0
  629. package/dist/layout/Separator.js.map +1 -0
  630. package/dist/layout/Splitter.d.ts +75 -0
  631. package/dist/layout/Splitter.js +236 -0
  632. package/dist/layout/Splitter.js.map +1 -0
  633. package/dist/layout/ViewportFill.d.ts +26 -0
  634. package/dist/layout/ViewportFill.js +59 -0
  635. package/dist/layout/ViewportFill.js.map +1 -0
  636. package/dist/navigation/Breadcrumbs.d.ts +59 -0
  637. package/dist/navigation/Breadcrumbs.js +150 -0
  638. package/dist/navigation/Breadcrumbs.js.map +1 -0
  639. package/dist/navigation/NavBar.d.ts +35 -0
  640. package/dist/navigation/NavBar.js +182 -0
  641. package/dist/navigation/NavBar.js.map +1 -0
  642. package/dist/navigation/NavList.d.ts +112 -0
  643. package/dist/navigation/NavList.js +375 -0
  644. package/dist/navigation/NavList.js.map +1 -0
  645. package/dist/navigation/PageJump.d.ts +27 -0
  646. package/dist/navigation/PageJump.js +77 -0
  647. package/dist/navigation/PageJump.js.map +1 -0
  648. package/dist/navigation/PageSizeSelect.d.ts +19 -0
  649. package/dist/navigation/PageSizeSelect.js +65 -0
  650. package/dist/navigation/PageSizeSelect.js.map +1 -0
  651. package/dist/navigation/Pager.d.ts +30 -0
  652. package/dist/navigation/Pager.js +111 -0
  653. package/dist/navigation/Pager.js.map +1 -0
  654. package/dist/navigation/Pagination.d.ts +51 -0
  655. package/dist/navigation/Pagination.js +157 -0
  656. package/dist/navigation/Pagination.js.map +1 -0
  657. package/dist/navigation/PaginationBar.d.ts +54 -0
  658. package/dist/navigation/PaginationBar.js +125 -0
  659. package/dist/navigation/PaginationBar.js.map +1 -0
  660. package/dist/navigation/SkipLink.d.ts +16 -0
  661. package/dist/navigation/SkipLink.js +58 -0
  662. package/dist/navigation/SkipLink.js.map +1 -0
  663. package/dist/navigation/Steps.d.ts +93 -0
  664. package/dist/navigation/Steps.js +198 -0
  665. package/dist/navigation/Steps.js.map +1 -0
  666. package/dist/navigation/TableOfContents.d.ts +32 -0
  667. package/dist/navigation/TableOfContents.js +119 -0
  668. package/dist/navigation/TableOfContents.js.map +1 -0
  669. package/dist/navigation/Tabs.d.ts +208 -0
  670. package/dist/navigation/Tabs.js +626 -0
  671. package/dist/navigation/Tabs.js.map +1 -0
  672. package/dist/navigation/Toolbar.d.ts +39 -0
  673. package/dist/navigation/Toolbar.js +67 -0
  674. package/dist/navigation/Toolbar.js.map +1 -0
  675. package/dist/overlay/AlertDialog.d.ts +43 -0
  676. package/dist/overlay/AlertDialog.js +106 -0
  677. package/dist/overlay/AlertDialog.js.map +1 -0
  678. package/dist/overlay/CommandPalette.d.ts +64 -0
  679. package/dist/overlay/CommandPalette.js +250 -0
  680. package/dist/overlay/CommandPalette.js.map +1 -0
  681. package/dist/overlay/ContextMenu.d.ts +21 -0
  682. package/dist/overlay/ContextMenu.js +76 -0
  683. package/dist/overlay/ContextMenu.js.map +1 -0
  684. package/dist/overlay/Dialog.d.ts +70 -0
  685. package/dist/overlay/Dialog.js +91 -0
  686. package/dist/overlay/Dialog.js.map +1 -0
  687. package/dist/overlay/Drawer.d.ts +186 -0
  688. package/dist/overlay/Drawer.js +214 -0
  689. package/dist/overlay/Drawer.js.map +1 -0
  690. package/dist/overlay/HoverCard.d.ts +48 -0
  691. package/dist/overlay/HoverCard.js +86 -0
  692. package/dist/overlay/HoverCard.js.map +1 -0
  693. package/dist/overlay/Lightbox.d.ts +57 -0
  694. package/dist/overlay/Lightbox.js +374 -0
  695. package/dist/overlay/Lightbox.js.map +1 -0
  696. package/dist/overlay/Menu.d.ts +218 -0
  697. package/dist/overlay/Menu.js +816 -0
  698. package/dist/overlay/Menu.js.map +1 -0
  699. package/dist/overlay/ModalCore.d.ts +132 -0
  700. package/dist/overlay/ModalCore.js +274 -0
  701. package/dist/overlay/ModalCore.js.map +1 -0
  702. package/dist/overlay/Popconfirm.d.ts +49 -0
  703. package/dist/overlay/Popconfirm.js +167 -0
  704. package/dist/overlay/Popconfirm.js.map +1 -0
  705. package/dist/overlay/Popover.d.ts +40 -0
  706. package/dist/overlay/Popover.js +96 -0
  707. package/dist/overlay/Popover.js.map +1 -0
  708. package/dist/overlay/Tooltip.d.ts +47 -0
  709. package/dist/overlay/Tooltip.js +86 -0
  710. package/dist/overlay/Tooltip.js.map +1 -0
  711. package/dist/overlay/Tour.d.ts +74 -0
  712. package/dist/overlay/Tour.js +309 -0
  713. package/dist/overlay/Tour.js.map +1 -0
  714. package/dist/overlay/detached.d.ts +40 -0
  715. package/dist/overlay/detached.js +109 -0
  716. package/dist/overlay/detached.js.map +1 -0
  717. package/dist/patterns/ActionBar.d.ts +29 -0
  718. package/dist/patterns/ActionBar.js +75 -0
  719. package/dist/patterns/ActionBar.js.map +1 -0
  720. package/dist/patterns/AppShell.d.ts +168 -0
  721. package/dist/patterns/AppShell.js +620 -0
  722. package/dist/patterns/AppShell.js.map +1 -0
  723. package/dist/patterns/CommentThread.d.ts +128 -0
  724. package/dist/patterns/CommentThread.js +386 -0
  725. package/dist/patterns/CommentThread.js.map +1 -0
  726. package/dist/patterns/DataImport.d.ts +72 -0
  727. package/dist/patterns/DataImport.js +486 -0
  728. package/dist/patterns/DataImport.js.map +1 -0
  729. package/dist/patterns/DeadlineBadge.d.ts +21 -0
  730. package/dist/patterns/DeadlineBadge.js +76 -0
  731. package/dist/patterns/DeadlineBadge.js.map +1 -0
  732. package/dist/patterns/FilterBar.d.ts +66 -0
  733. package/dist/patterns/FilterBar.js +254 -0
  734. package/dist/patterns/FilterBar.js.map +1 -0
  735. package/dist/patterns/KanbanBoard.d.ts +79 -0
  736. package/dist/patterns/KanbanBoard.js +294 -0
  737. package/dist/patterns/KanbanBoard.js.map +1 -0
  738. package/dist/patterns/NotificationCenter.d.ts +110 -0
  739. package/dist/patterns/NotificationCenter.js +342 -0
  740. package/dist/patterns/NotificationCenter.js.map +1 -0
  741. package/dist/patterns/PageTabs.d.ts +30 -0
  742. package/dist/patterns/PageTabs.js +97 -0
  743. package/dist/patterns/PageTabs.js.map +1 -0
  744. package/dist/patterns/QueryTable.d.ts +64 -0
  745. package/dist/patterns/QueryTable.js +276 -0
  746. package/dist/patterns/QueryTable.js.map +1 -0
  747. package/dist/patterns/StepsForm.d.ts +49 -0
  748. package/dist/patterns/StepsForm.js +130 -0
  749. package/dist/patterns/StepsForm.js.map +1 -0
  750. package/dist/patterns/ThemeSwitcher.d.ts +20 -0
  751. package/dist/patterns/ThemeSwitcher.js +102 -0
  752. package/dist/patterns/ThemeSwitcher.js.map +1 -0
  753. package/dist/patterns/form-dialog.d.ts +62 -0
  754. package/dist/patterns/form-dialog.js +143 -0
  755. package/dist/patterns/form-dialog.js.map +1 -0
  756. package/dist/patterns/index.d.ts +24 -0
  757. package/dist/patterns/index.js +15 -0
  758. package/dist/patterns/messages.d.ts +172 -0
  759. package/dist/patterns/messages.js +184 -0
  760. package/dist/patterns/messages.js.map +1 -0
  761. package/dist/table/ColumnHeaderActions.d.ts +71 -0
  762. package/dist/table/ColumnHeaderActions.js +247 -0
  763. package/dist/table/ColumnHeaderActions.js.map +1 -0
  764. package/dist/table/ColumnResizer.d.ts +12 -0
  765. package/dist/table/ColumnResizer.js +32 -0
  766. package/dist/table/ColumnResizer.js.map +1 -0
  767. package/dist/table/ColumnSettings.d.ts +34 -0
  768. package/dist/table/ColumnSettings.js +136 -0
  769. package/dist/table/ColumnSettings.js.map +1 -0
  770. package/dist/table/ColumnTable.d.ts +51 -0
  771. package/dist/table/ColumnTable.js +140 -0
  772. package/dist/table/ColumnTable.js.map +1 -0
  773. package/dist/table/DataTable.d.ts +44 -0
  774. package/dist/table/DataTable.js +453 -0
  775. package/dist/table/DataTable.js.map +1 -0
  776. package/dist/table/DataTableView.d.ts +328 -0
  777. package/dist/table/DataTableView.js +963 -0
  778. package/dist/table/DataTableView.js.map +1 -0
  779. package/dist/table/PivotTable.d.ts +66 -0
  780. package/dist/table/PivotTable.js +122 -0
  781. package/dist/table/PivotTable.js.map +1 -0
  782. package/dist/table/SelectionBar.d.ts +29 -0
  783. package/dist/table/SelectionBar.js +86 -0
  784. package/dist/table/SelectionBar.js.map +1 -0
  785. package/dist/table/Table.d.ts +169 -0
  786. package/dist/table/Table.js +304 -0
  787. package/dist/table/Table.js.map +1 -0
  788. package/dist/table/TreeDataTable.d.ts +36 -0
  789. package/dist/table/TreeDataTable.js +168 -0
  790. package/dist/table/TreeDataTable.js.map +1 -0
  791. package/dist/table/column-display.d.ts +20 -0
  792. package/dist/table/column-display.js +43 -0
  793. package/dist/table/column-display.js.map +1 -0
  794. package/dist/table/columns.d.ts +244 -0
  795. package/dist/table/columns.js +271 -0
  796. package/dist/table/columns.js.map +1 -0
  797. package/dist/table/csv.d.ts +24 -0
  798. package/dist/table/csv.js +35 -0
  799. package/dist/table/csv.js.map +1 -0
  800. package/dist/table/pivot.d.ts +66 -0
  801. package/dist/table/pivot.js +85 -0
  802. package/dist/table/pivot.js.map +1 -0
  803. package/dist/table/sheet.d.ts +44 -0
  804. package/dist/table/sheet.js +78 -0
  805. package/dist/table/sheet.js.map +1 -0
  806. package/dist/table/table-styles.d.ts +136 -0
  807. package/dist/table/table-styles.js +403 -0
  808. package/dist/table/table-styles.js.map +1 -0
  809. package/dist/table/use-table-query.d.ts +89 -0
  810. package/dist/table/use-table-query.js +194 -0
  811. package/dist/table/use-table-query.js.map +1 -0
  812. package/dist/theme-customize/ThemeCustomizer.d.ts +63 -0
  813. package/dist/theme-customize/ThemeCustomizer.js +361 -0
  814. package/dist/theme-customize/ThemeCustomizer.js.map +1 -0
  815. package/dist/theme-customize/ThemeThumbnail.d.ts +20 -0
  816. package/dist/theme-customize/ThemeThumbnail.js +82 -0
  817. package/dist/theme-customize/ThemeThumbnail.js.map +1 -0
  818. package/dist/theme-customize/contrast.d.ts +27 -0
  819. package/dist/theme-customize/contrast.js +251 -0
  820. package/dist/theme-customize/contrast.js.map +1 -0
  821. package/dist/theme-customize/customize.d.ts +65 -0
  822. package/dist/theme-customize/customize.js +105 -0
  823. package/dist/theme-customize/customize.js.map +1 -0
  824. package/dist/theme-customize/design-tokens.d.ts +31 -0
  825. package/dist/theme-customize/design-tokens.js +183 -0
  826. package/dist/theme-customize/design-tokens.js.map +1 -0
  827. package/dist/theme-customize/index.d.ts +20 -0
  828. package/dist/theme-customize/index.js +9 -0
  829. package/dist/theme-customize/messages.d.ts +74 -0
  830. package/dist/theme-customize/messages.js +142 -0
  831. package/dist/theme-customize/messages.js.map +1 -0
  832. package/dist/theme-customize/palette.d.ts +898 -0
  833. package/dist/theme-customize/palette.js +111 -0
  834. package/dist/theme-customize/palette.js.map +1 -0
  835. package/dist/theme-customize/token-catalog.d.ts +20 -0
  836. package/dist/theme-customize/token-catalog.js +836 -0
  837. package/dist/theme-customize/token-catalog.js.map +1 -0
  838. package/dist/three/background/AuroraBackground.d.ts +30 -0
  839. package/dist/three/background/AuroraBackground.js +80 -0
  840. package/dist/three/background/AuroraBackground.js.map +1 -0
  841. package/dist/three/background/MeshGradient.d.ts +28 -0
  842. package/dist/three/background/MeshGradient.js +76 -0
  843. package/dist/three/background/MeshGradient.js.map +1 -0
  844. package/dist/three/background/ShaderBackground.d.ts +25 -0
  845. package/dist/three/background/ShaderBackground.js +107 -0
  846. package/dist/three/background/ShaderBackground.js.map +1 -0
  847. package/dist/three/core/EffectSurface.d.ts +41 -0
  848. package/dist/three/core/EffectSurface.js +62 -0
  849. package/dist/three/core/EffectSurface.js.map +1 -0
  850. package/dist/three/core/ThreeCanvas.d.ts +39 -0
  851. package/dist/three/core/ThreeCanvas.js +77 -0
  852. package/dist/three/core/ThreeCanvas.js.map +1 -0
  853. package/dist/three/core/dispose.d.ts +9 -0
  854. package/dist/three/core/dispose.js +26 -0
  855. package/dist/three/core/dispose.js.map +1 -0
  856. package/dist/three/core/orbit.d.ts +31 -0
  857. package/dist/three/core/orbit.js +83 -0
  858. package/dist/three/core/orbit.js.map +1 -0
  859. package/dist/three/core/quality.d.ts +59 -0
  860. package/dist/three/core/quality.js +80 -0
  861. package/dist/three/core/quality.js.map +1 -0
  862. package/dist/three/core/renderer.d.ts +110 -0
  863. package/dist/three/core/renderer.js +303 -0
  864. package/dist/three/core/renderer.js.map +1 -0
  865. package/dist/three/core/shaders.d.ts +19 -0
  866. package/dist/three/core/shaders.js +100 -0
  867. package/dist/three/core/shaders.js.map +1 -0
  868. package/dist/three/core/theme-colors.d.ts +30 -0
  869. package/dist/three/core/theme-colors.js +113 -0
  870. package/dist/three/core/theme-colors.js.map +1 -0
  871. package/dist/three/effects/Confetti.d.ts +62 -0
  872. package/dist/three/effects/Confetti.js +242 -0
  873. package/dist/three/effects/Confetti.js.map +1 -0
  874. package/dist/three/effects/ParticleField.d.ts +39 -0
  875. package/dist/three/effects/ParticleField.js +266 -0
  876. package/dist/three/effects/ParticleField.js.map +1 -0
  877. package/dist/three/effects/WaveGrid.d.ts +37 -0
  878. package/dist/three/effects/WaveGrid.js +130 -0
  879. package/dist/three/effects/WaveGrid.js.map +1 -0
  880. package/dist/three/globe/Globe.d.ts +70 -0
  881. package/dist/three/globe/Globe.js +337 -0
  882. package/dist/three/globe/Globe.js.map +1 -0
  883. package/dist/three/globe/land.d.ts +9 -0
  884. package/dist/three/globe/land.js +14 -0
  885. package/dist/three/globe/land.js.map +1 -0
  886. package/dist/three/index.d.ts +24 -0
  887. package/dist/three/index.js +18 -0
  888. package/dist/three/model/ModelViewer.d.ts +63 -0
  889. package/dist/three/model/ModelViewer.js +193 -0
  890. package/dist/three/model/ModelViewer.js.map +1 -0
  891. package/dist/utils/data/collation.d.ts +36 -0
  892. package/dist/utils/data/collation.js +69 -0
  893. package/dist/utils/data/collation.js.map +1 -0
  894. package/dist/utils/data/color.d.ts +32 -0
  895. package/dist/utils/data/color.js +90 -0
  896. package/dist/utils/data/color.js.map +1 -0
  897. package/dist/utils/data/date.d.ts +186 -0
  898. package/dist/utils/data/date.js +409 -0
  899. package/dist/utils/data/date.js.map +1 -0
  900. package/dist/utils/data/diff.d.ts +21 -0
  901. package/dist/utils/data/diff.js +43 -0
  902. package/dist/utils/data/diff.js.map +1 -0
  903. package/dist/utils/data/equality.d.ts +5 -0
  904. package/dist/utils/data/equality.js +24 -0
  905. package/dist/utils/data/equality.js.map +1 -0
  906. package/dist/utils/data/history.d.ts +59 -0
  907. package/dist/utils/data/history.js +132 -0
  908. package/dist/utils/data/history.js.map +1 -0
  909. package/dist/utils/data/intl-cache.d.ts +8 -0
  910. package/dist/utils/data/intl-cache.js +19 -0
  911. package/dist/utils/data/intl-cache.js.map +1 -0
  912. package/dist/utils/data/number-parse.d.ts +7 -0
  913. package/dist/utils/data/number-parse.js +45 -0
  914. package/dist/utils/data/number-parse.js.map +1 -0
  915. package/dist/utils/data/number.d.ts +10 -0
  916. package/dist/utils/data/number.js +28 -0
  917. package/dist/utils/data/number.js.map +1 -0
  918. package/dist/utils/data/numeric.d.ts +55 -0
  919. package/dist/utils/data/numeric.js +133 -0
  920. package/dist/utils/data/numeric.js.map +1 -0
  921. package/dist/utils/data/pagination.d.ts +21 -0
  922. package/dist/utils/data/pagination.js +22 -0
  923. package/dist/utils/data/pagination.js.map +1 -0
  924. package/dist/utils/data/selection.d.ts +41 -0
  925. package/dist/utils/data/selection.js +21 -0
  926. package/dist/utils/data/selection.js.map +1 -0
  927. package/dist/utils/data/status.d.ts +43 -0
  928. package/dist/utils/data/status.js +27 -0
  929. package/dist/utils/data/status.js.map +1 -0
  930. package/dist/utils/data/text.d.ts +12 -0
  931. package/dist/utils/data/text.js +30 -0
  932. package/dist/utils/data/text.js.map +1 -0
  933. package/dist/utils/data/tree.d.ts +140 -0
  934. package/dist/utils/data/tree.js +273 -0
  935. package/dist/utils/data/tree.js.map +1 -0
  936. package/dist/utils/data/workdays.d.ts +67 -0
  937. package/dist/utils/data/workdays.js +67 -0
  938. package/dist/utils/data/workdays.js.map +1 -0
  939. package/dist/utils/dom/announcer.d.ts +11 -0
  940. package/dist/utils/dom/announcer.js +53 -0
  941. package/dist/utils/dom/announcer.js.map +1 -0
  942. package/dist/utils/dom/caret.d.ts +14 -0
  943. package/dist/utils/dom/caret.js +72 -0
  944. package/dist/utils/dom/caret.js.map +1 -0
  945. package/dist/utils/dom/clipboard.d.ts +16 -0
  946. package/dist/utils/dom/clipboard.js +66 -0
  947. package/dist/utils/dom/clipboard.js.map +1 -0
  948. package/dist/utils/dom/direction.d.ts +12 -0
  949. package/dist/utils/dom/direction.js +20 -0
  950. package/dist/utils/dom/direction.js.map +1 -0
  951. package/dist/utils/dom/download.d.ts +7 -0
  952. package/dist/utils/dom/download.js +19 -0
  953. package/dist/utils/dom/download.js.map +1 -0
  954. package/dist/utils/dom/element.d.ts +3 -0
  955. package/dist/utils/dom/element.js +12 -0
  956. package/dist/utils/dom/element.js.map +1 -0
  957. package/dist/utils/dom/event-listener.d.ts +8 -0
  958. package/dist/utils/dom/event-listener.js +35 -0
  959. package/dist/utils/dom/event-listener.js.map +1 -0
  960. package/dist/utils/dom/floating.d.ts +149 -0
  961. package/dist/utils/dom/floating.js +262 -0
  962. package/dist/utils/dom/floating.js.map +1 -0
  963. package/dist/utils/dom/focus.d.ts +28 -0
  964. package/dist/utils/dom/focus.js +105 -0
  965. package/dist/utils/dom/focus.js.map +1 -0
  966. package/dist/utils/dom/fullscreen.d.ts +11 -0
  967. package/dist/utils/dom/fullscreen.js +43 -0
  968. package/dist/utils/dom/fullscreen.js.map +1 -0
  969. package/dist/utils/dom/hotkeys.d.ts +43 -0
  970. package/dist/utils/dom/hotkeys.js +174 -0
  971. package/dist/utils/dom/hotkeys.js.map +1 -0
  972. package/dist/utils/dom/hover-intent.d.ts +47 -0
  973. package/dist/utils/dom/hover-intent.js +72 -0
  974. package/dist/utils/dom/hover-intent.js.map +1 -0
  975. package/dist/utils/dom/hover-layer.d.ts +36 -0
  976. package/dist/utils/dom/hover-layer.js +74 -0
  977. package/dist/utils/dom/hover-layer.js.map +1 -0
  978. package/dist/utils/dom/intersection.d.ts +13 -0
  979. package/dist/utils/dom/intersection.js +36 -0
  980. package/dist/utils/dom/intersection.js.map +1 -0
  981. package/dist/utils/dom/layout-batch.d.ts +14 -0
  982. package/dist/utils/dom/layout-batch.js +26 -0
  983. package/dist/utils/dom/layout-batch.js.map +1 -0
  984. package/dist/utils/dom/link.d.ts +18 -0
  985. package/dist/utils/dom/link.js +44 -0
  986. package/dist/utils/dom/link.js.map +1 -0
  987. package/dist/utils/dom/media-query.d.ts +18 -0
  988. package/dist/utils/dom/media-query.js +36 -0
  989. package/dist/utils/dom/media-query.js.map +1 -0
  990. package/dist/utils/dom/move.d.ts +47 -0
  991. package/dist/utils/dom/move.js +69 -0
  992. package/dist/utils/dom/move.js.map +1 -0
  993. package/dist/utils/dom/open-change.d.ts +51 -0
  994. package/dist/utils/dom/open-change.js +21 -0
  995. package/dist/utils/dom/open-change.js.map +1 -0
  996. package/dist/utils/dom/overflow.d.ts +29 -0
  997. package/dist/utils/dom/overflow.js +108 -0
  998. package/dist/utils/dom/overflow.js.map +1 -0
  999. package/dist/utils/dom/overlay.d.ts +35 -0
  1000. package/dist/utils/dom/overlay.js +104 -0
  1001. package/dist/utils/dom/overlay.js.map +1 -0
  1002. package/dist/utils/dom/page-visibility.d.ts +10 -0
  1003. package/dist/utils/dom/page-visibility.js +22 -0
  1004. package/dist/utils/dom/page-visibility.js.map +1 -0
  1005. package/dist/utils/dom/pan-zoom.d.ts +109 -0
  1006. package/dist/utils/dom/pan-zoom.js +257 -0
  1007. package/dist/utils/dom/pan-zoom.js.map +1 -0
  1008. package/dist/utils/dom/rasterize.d.ts +18 -0
  1009. package/dist/utils/dom/rasterize.js +41 -0
  1010. package/dist/utils/dom/rasterize.js.map +1 -0
  1011. package/dist/utils/dom/resize.d.ts +4 -0
  1012. package/dist/utils/dom/resize.js +65 -0
  1013. package/dist/utils/dom/resize.js.map +1 -0
  1014. package/dist/utils/dom/ripple.d.ts +40 -0
  1015. package/dist/utils/dom/ripple.js +96 -0
  1016. package/dist/utils/dom/ripple.js.map +1 -0
  1017. package/dist/utils/dom/roving-focus.d.ts +44 -0
  1018. package/dist/utils/dom/roving-focus.js +184 -0
  1019. package/dist/utils/dom/roving-focus.js.map +1 -0
  1020. package/dist/utils/dom/scroll-spy.d.ts +30 -0
  1021. package/dist/utils/dom/scroll-spy.js +55 -0
  1022. package/dist/utils/dom/scroll-spy.js.map +1 -0
  1023. package/dist/utils/dom/sortable.d.ts +82 -0
  1024. package/dist/utils/dom/sortable.js +437 -0
  1025. package/dist/utils/dom/sortable.js.map +1 -0
  1026. package/dist/utils/dom/storage.d.ts +21 -0
  1027. package/dist/utils/dom/storage.js +66 -0
  1028. package/dist/utils/dom/storage.js.map +1 -0
  1029. package/dist/utils/dom/typeahead.d.ts +15 -0
  1030. package/dist/utils/dom/typeahead.js +26 -0
  1031. package/dist/utils/dom/typeahead.js.map +1 -0
  1032. package/dist/utils/motion/active-indicator.d.ts +24 -0
  1033. package/dist/utils/motion/active-indicator.js +58 -0
  1034. package/dist/utils/motion/active-indicator.js.map +1 -0
  1035. package/dist/utils/motion/animation.d.ts +58 -0
  1036. package/dist/utils/motion/animation.js +83 -0
  1037. package/dist/utils/motion/animation.js.map +1 -0
  1038. package/dist/utils/motion/delayed-loading.d.ts +18 -0
  1039. package/dist/utils/motion/delayed-loading.js +38 -0
  1040. package/dist/utils/motion/delayed-loading.js.map +1 -0
  1041. package/dist/utils/motion/layout.d.ts +17 -0
  1042. package/dist/utils/motion/layout.js +43 -0
  1043. package/dist/utils/motion/layout.js.map +1 -0
  1044. package/dist/utils/motion/pointer.d.ts +14 -0
  1045. package/dist/utils/motion/pointer.js +72 -0
  1046. package/dist/utils/motion/pointer.js.map +1 -0
  1047. package/dist/utils/motion/presence.d.ts +57 -0
  1048. package/dist/utils/motion/presence.js +100 -0
  1049. package/dist/utils/motion/presence.js.map +1 -0
  1050. package/dist/utils/motion/reveal.d.ts +9 -0
  1051. package/dist/utils/motion/reveal.js +68 -0
  1052. package/dist/utils/motion/reveal.js.map +1 -0
  1053. package/dist/utils/motion/tween.d.ts +34 -0
  1054. package/dist/utils/motion/tween.js +50 -0
  1055. package/dist/utils/motion/tween.js.map +1 -0
  1056. package/dist/utils/props.d.ts +84 -0
  1057. package/dist/utils/props.js +189 -0
  1058. package/dist/utils/props.js.map +1 -0
  1059. package/dist/utils/request/http.d.ts +101 -0
  1060. package/dist/utils/request/http.js +154 -0
  1061. package/dist/utils/request/http.js.map +1 -0
  1062. package/dist/utils/request/use-request.d.ts +37 -0
  1063. package/dist/utils/request/use-request.js +90 -0
  1064. package/dist/utils/request/use-request.js.map +1 -0
  1065. package/dist/utils/request/wire.d.ts +48 -0
  1066. package/dist/utils/request/wire.js +208 -0
  1067. package/dist/utils/request/wire.js.map +1 -0
  1068. package/dist/utils/style/attached.d.ts +25 -0
  1069. package/dist/utils/style/attached.js +82 -0
  1070. package/dist/utils/style/attached.js.map +1 -0
  1071. package/dist/utils/style/item-styles.d.ts +18 -0
  1072. package/dist/utils/style/item-styles.js +79 -0
  1073. package/dist/utils/style/item-styles.js.map +1 -0
  1074. package/dist/utils/style/markers.d.ts +6 -0
  1075. package/dist/utils/style/markers.js +11 -0
  1076. package/dist/utils/style/markers.js.map +1 -0
  1077. package/dist/utils/style/shimmer.d.ts +20 -0
  1078. package/dist/utils/style/shimmer.js +58 -0
  1079. package/dist/utils/style/shimmer.js.map +1 -0
  1080. package/dist/utils/style/styles.d.ts +118 -0
  1081. package/dist/utils/style/styles.js +114 -0
  1082. package/dist/utils/style/styles.js.map +1 -0
  1083. package/dist/utils/style/swatch-styles.d.ts +10 -0
  1084. package/dist/utils/style/swatch-styles.js +19 -0
  1085. package/dist/utils/style/swatch-styles.js.map +1 -0
  1086. package/dist/utils/style/tone-styles.d.ts +58 -0
  1087. package/dist/utils/style/tone-styles.js +180 -0
  1088. package/dist/utils/style/tone-styles.js.map +1 -0
  1089. package/dist/utils/style/transitions.d.ts +43 -0
  1090. package/dist/utils/style/transitions.js +118 -0
  1091. package/dist/utils/style/transitions.js.map +1 -0
  1092. package/dist/utils/style/typography.d.ts +155 -0
  1093. package/dist/utils/style/typography.js +80 -0
  1094. package/dist/utils/style/typography.js.map +1 -0
  1095. package/dist/utils/style/vars.d.ts +18 -0
  1096. package/dist/utils/style/vars.js +21 -0
  1097. package/dist/utils/style/vars.js.map +1 -0
  1098. package/dist/utils/virtual/use-virtualizer.d.ts +43 -0
  1099. package/dist/utils/virtual/use-virtualizer.js +94 -0
  1100. package/dist/utils/virtual/use-virtualizer.js.map +1 -0
  1101. package/dist/utils/virtual/virtualizer.d.ts +145 -0
  1102. package/dist/utils/virtual/virtualizer.js +316 -0
  1103. package/dist/utils/virtual/virtualizer.js.map +1 -0
  1104. package/dist/xlsx/index.d.ts +7 -0
  1105. package/dist/xlsx/index.js +1 -0
  1106. package/dist/xlsx/workbook.d.ts +33 -0
  1107. package/dist/xlsx/workbook.js +195 -0
  1108. package/dist/xlsx/workbook.js.map +1 -0
  1109. package/package.json +205 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tabs.js","names":["_isVNode","_vtp_bindable","_vtp_readonlyProp","_vtp_childrenProp","_vtp_restProps","_vue_shallowRef","_vue_ref","_vue_computed","_createVNode","_mergeProps","Menu","_vtp_untrack","_vtp_forwardChildren"],"sources":["../../src/navigation/Tabs.tsx"],"sourcesContent":["/**\n * 标签页(WAI-ARIA 的 Tabs 模式),复合组件:Tabs(状态)> TabList(role=\"tablist\")> Tab(role=\"tab\"),\n * 加上与每个 Tab 对应的 TabPanel(role=\"tabpanel\")。各层都是独立的组件,可以自由排版、各自加属性。\n *\n * <Tabs _value={tab}>\n * <TabList aria-label=\"订单\">\n * <Tab value=\"all\">全部</Tab>\n * <Tab value=\"paid\">已付款</Tab>\n * </TabList>\n * <TabPanel value=\"all\">…</TabPanel>\n * <TabPanel value=\"paid\">…</TabPanel>\n * </Tabs>\n *\n * 键盘:标签之间用方向键移动(漫游焦点,整组一个 Tab 位置),Home / End 到两端;\n * activation=\"automatic\"(默认)时焦点移到哪个标签就切换到哪个,\"manual\" 时按 Enter / 空格才切换。\n *\n * line 样式的下划线是 TabList 里的一个指示条(Indicator):跟着当前标签走(useActiveIndicator:\n * 切换时用 Anime.js 滑过去,时长取主题,减少动态效果时直接到位;尺寸变化时直接对齐)。\n */\nimport { ChevronDown, ChevronLeft, ChevronRight, Plus, X } from '@lucide/icons';\nimport { createContext, _component } from '@zerodep-dev/vue-tsx-pro-tsx';\nimport * as css from '@zerodep-dev/vue-tsx-pro-tsx/styles';\nimport { nextTick, onBeforeUnmount, useId, watch, type VNodeChild } from 'vue';\nimport { ButtonBase, type ButtonBaseProps } from '../base/ButtonBase';\nimport { IconButton, type IconButtonProps } from '../base/IconButton';\nimport { useLang } from '../config/context';\nimport { useDefaults } from '../config/defaults';\nimport { useRecipe } from '../config/styles';\nimport { useActiveIndicator } from '../utils/motion/active-indicator';\nimport { useLazyContent } from '../utils/motion/presence';\nimport { mergeAttrs, mergePartProps, type PartProps } from '../utils/props';\nimport { Menu, MenuRadioGroup, MenuRadioItem } from '../overlay/Menu';\nimport { plainText } from '../utils/data/text';\nimport { announce } from '../utils/dom/announcer';\nimport { inlineArrows, isRtl } from '../utils/dom/direction';\nimport { batchLayout } from '../utils/dom/layout-batch';\nimport { startMove } from '../utils/dom/move';\nimport { useResizeObserver } from '../utils/dom/resize';\nimport { rovingFocus } from '../utils/dom/roving-focus';\nimport { focusRingStyles } from '../utils/style/styles';\nimport { fontSizeStyles, type TextSize } from '../utils/style/typography';\nimport { t } from '../config/theme/tokens';\n\n/** 标签的排列方向 */\nexport interface TabsOrientations {\n /** 横排(默认),左右键切换 */\n horizontal: unknown;\n /** 竖排(标签在左侧),上下键切换 */\n vertical: unknown;\n}\n\n/** 焦点移动时是否同时切换 */\nexport interface TabsActivations {\n /** 焦点移到哪个标签就显示哪个面板(默认):面板内容轻量时用 */\n automatic: unknown;\n /** 方向键只移动焦点,按 Enter / 空格才切换:切换面板代价大(要请求数据)时用 */\n manual: unknown;\n}\n\n/** 标签的样式 */\nexport interface TabsVariants {\n /** 下划线(默认):当前标签下方一条品牌色的线 */\n line: unknown;\n /** 浅色底:当前标签有浅色底,像分段控件 */\n soft: unknown;\n}\n\n/** Tabs 的外观选项;可以用 createUi / Provider 的 defaults.Tabs 统一改默认值 */\nexport interface TabsOptions {\n /** 样式,默认 line */\n variant?: keyof TabsVariants;\n /** 字号档位,不写时继承 */\n size?: TextSize;\n}\n\n/** Tabs 交给 TabList、Tab、TabPanel 的状态 */\nexport interface TabsState {\n /** 当前标签的值 */\n readonly value: string | undefined;\n /** 横排或竖排 */\n readonly orientation: keyof TabsOrientations;\n /** 方向键移动焦点时是否同时切换 */\n readonly activation: keyof TabsActivations;\n /** 样式 */\n readonly variant: keyof TabsVariants;\n /** 面板第一次显示时才渲染 */\n readonly lazy: boolean;\n /** 波纹;不写时沿用配置 */\n readonly ripple: boolean | undefined;\n /** 切换到某个标签 */\n select(value: string): void;\n /** 标签与面板的 id,互相引用 */\n id(part: 'tab' | 'panel', value: string): string;\n /**\n * 登记标签(按渲染顺序)与它的文字,没有选中值时选第一个;返回注销函数\n * (参数是注销时各标签显示的顺序,关掉当前标签时按它选旁边的)\n */\n register(value: string, label: () => string): (order?: readonly string[]) => void;\n /** 标签的文字(“全部标签页”菜单用) */\n label(value: string): string;\n /** 登记面板;返回注销函数 */\n registerPanel(value: string): () => void;\n /** 这个标签有没有对应的面板:只当导航用的标签(没有 TabPanel)不写 aria-controls */\n hasPanel(value: string): boolean;\n /** 登记了的标签,按渲染顺序 */\n readonly values: readonly string[];\n /** 正在拖动的标签 */\n readonly dragging: string | undefined;\n /** 开始、结束拖动 */\n setDragging(value: string | undefined): void;\n /** 关闭了有焦点的标签:等选中的标签换好之后,把焦点交给它 */\n refocus(): void;\n}\n\n/** Tabs 的上下文:自定义的标签或面板可以 inject 它 */\nexport const TabsContext = createContext<TabsState>('Tabs');\n\n/** 值里的空格等字符不能出现在 id 里 */\nconst idSafe = (value: string) => value.replace(/[^\\w-]/g, '_');\n\n// ─────────────── Tabs ───────────────\n\n/** 未声明的属性落到外层 div 上 */\nexport interface TabsProps extends PartProps<'div'>, TabsOptions {\n /** 当前标签的 value:父级写 _value={x};不写时默认第一个标签 */\n _value?: string;\n /** 方向,默认 horizontal */\n orientation?: keyof TabsOrientations;\n /** 焦点移动时是否同时切换,默认 automatic */\n activation?: keyof TabsActivations;\n /** 面板第一次显示时才渲染,之后切走也保留(面板内容重时用) */\n lazy?: boolean;\n /** 标签按下时的波纹;不写时沿用全局配置 */\n ripple?: boolean;\n children?: VNodeChild;\n}\n\n/** Tabs 的样式:root、vertical */\nexport const tabsStyles = css.create({\n // 能收缩:放在顶栏这类一行里时,列表放不下就在列表里滚动\n root: { display: 'flex', flexDirection: 'column', gap: '_md', minWidth: 0 },\n vertical: { flexDirection: 'row', alignItems: 'flex-start' },\n});\n\n/** 标签页的状态容器:管理当前值,并把它交给 TabList、Tab、TabPanel */\nexport const Tabs = _component(\n ({\n _value: value = _bindable<string | undefined>(undefined),\n orientation = 'horizontal',\n activation = 'automatic',\n variant,\n size,\n lazy = false,\n ripple,\n children,\n ...rest\n }: TabsProps) => {\n const appearance = useDefaults('Tabs', () => ({ variant, size }), { variant: 'line' });\n const baseId = useId();\n let registered = _state.raw<string[]>([]);\n let panels = _state.raw<string[]>([]);\n let dragging = _state<string | undefined>(undefined);\n // 各标签的文字:读的是 Tab 的子内容,跟着它变\n const labels = new Map<string, () => string>();\n const current = _derived(value ?? registered[0]);\n const tabId = (tab: string) => `${baseId}-tab-${idSafe(tab)}`;\n\n TabsContext.provide({\n get value() {\n return current;\n },\n get orientation() {\n return orientation;\n },\n get activation() {\n return activation;\n },\n get variant() {\n return appearance().variant;\n },\n get lazy() {\n return lazy;\n },\n get ripple() {\n return ripple;\n },\n select: (next) => (value = next),\n id: (part, tab) => (part === 'tab' ? tabId(tab) : `${baseId}-${part}-${idSafe(tab)}`),\n register(tab, label) {\n registered = [...registered, tab];\n labels.set(tab, label);\n return (order = registered) => {\n registered = registered.filter((item) => item !== tab);\n labels.delete(tab);\n if (current !== tab) return;\n // 关掉的是当前标签(使用方没有另选):按显示的顺序选它后面的一个,没有时选前面的一个\n const index = order.indexOf(tab);\n const rest = order.filter((item) => item !== tab && registered.includes(item));\n value = rest[Math.min(Math.max(index, 0), rest.length - 1)];\n };\n },\n registerPanel(tab) {\n panels = [...panels, tab];\n return () => (panels = panels.filter((item) => item !== tab));\n },\n hasPanel: (tab) => panels.includes(tab),\n label: (tab) => labels.get(tab)?.() ?? tab,\n get values() {\n return registered;\n },\n get dragging() {\n return dragging;\n },\n setDragging: (next) => (dragging = next),\n refocus: () =>\n void nextTick(() => {\n if (current !== undefined) document.getElementById(tabId(current))?.focus();\n }),\n });\n\n return () => (\n <div\n {...mergeAttrs<'div'>(\n {\n sx: [\n tabsStyles.root,\n orientation === 'vertical' && tabsStyles.vertical,\n appearance().size && fontSizeStyles[appearance().size!],\n ],\n },\n rest,\n )}\n data-orientation={orientation}\n >\n {children}\n </div>\n );\n },\n);\n\n// ─────────────── TabList ───────────────\n\n/** 角色、方向由组件管理 */\nexport type TabListManaged = 'role' | 'aria-orientation';\n\n/** 未声明的属性落到 role=\"tablist\" 的 div 上;aria-label 是这组标签的名称 */\nexport interface TabListProps extends PartProps<'div', TabListManaged> {\n /** 到两端后是否从另一端继续,默认 true */\n loop?: boolean;\n /** 列表末尾的“新建标签页”按钮:点了调用 */\n onAdd?: () => void;\n /**\n * 拖动标签(或在标签上按 Alt + ←→)改变顺序:参数是新的顺序(各标签的 value),使用方按它重排;\n * 不写时不能拖\n */\n onReorder?: (values: string[]) => void;\n /** 标签栏右边“全部标签页”的菜单(标签多、放不下时一眼找到并切过去) */\n showAllMenu?: boolean;\n /** line 样式的下划线指示条的部件属性 */\n propsIndicator?: PartProps<'span'>;\n /** 横排时包着标签列表与右边按钮的那一层的部件属性 */\n propsBar?: PartProps<'div'>;\n /** “新建标签页”按钮的部件属性 */\n propsAdd?: Partial<IconButtonProps>;\n children?: VNodeChild;\n}\n\n/** TabList 的样式:bar、barLine、root、scrollable、line、lineVertical、soft、softVertical、indicator、indicatorVertical */\nexport const tabListStyles = css.create({\n // 横排时包着标签列表与右边的按钮(滚动、全部标签页、新建):列表按内容宽,放不下时收缩并滚动\n bar: { display: 'flex', alignItems: 'center', gap: '_xs', minWidth: 0 },\n // 横排 line 的分隔线画在整行上:标签少时也铺满(页签区、页面顶部的标签)\n barLine: {\n borderBottomWidth: '_xs',\n borderBottomStyle: 'solid',\n borderBottomColor: '_borderMuted',\n },\n root: { display: 'flex', flexShrink: 0 },\n // 横排放不下时(顶栏、窄屏)在列表里横向滚动,不盖到旁边的内容上;滚动条藏起来,触控板、拖动照样能滚\n scrollable: {\n flexShrink: 1,\n minWidth: 0,\n overflowX: 'auto',\n overflowY: 'hidden',\n scrollbarWidth: 'none',\n },\n // 指示条按标签的 offsetLeft / offsetTop 定位,列表要是它的定位容器\n line: { position: 'relative', gap: '_md' },\n lineVertical: {\n flexDirection: 'column',\n gap: '_xs',\n borderInlineEndWidth: '_xs',\n borderInlineEndStyle: 'solid',\n borderInlineEndColor: '_borderMuted',\n },\n soft: { gap: '_xs', padding: '_xs', borderRadius: '_md', backgroundColor: '_fill' },\n softVertical: { flexDirection: 'column' },\n // 一条 2px 的品牌色线,压在列表的分隔线上;位置与长度由脚本写(transform 与 width/height)\n indicator: {\n position: 'absolute',\n left: 0,\n // 压在列表底边的分隔线上(滚动的列表会裁掉伸出去的部分,所以放在边框内侧)\n bottom: 0,\n width: 0,\n height: '_borderWidths.sm',\n borderRadius: '_sm',\n backgroundColor: '_accent',\n pointerEvents: 'none',\n },\n indicatorVertical: {\n left: 'auto',\n bottom: 'auto',\n top: 0,\n insetInlineEnd: `calc(-1 * ${t.borderWidths.xs})`,\n width: '_borderWidths.sm',\n height: 0,\n },\n});\n\n/** 列表里各标签的 value,按显示的顺序(拖动排序后组件的登记顺序不再是显示顺序) */\nconst tabOrder = (list: Element | null | undefined) =>\n [...(list?.querySelectorAll<HTMLElement>('[role=\"tab\"]') ?? [])].map((tab) => tab.dataset.value!);\n\n/** 标签列表(role=\"tablist\"):方向键在标签之间移动;横排放不下时有滚动按钮,可以拖动排序、新建 */\nexport const TabList = _component(\n ({\n loop = true,\n onAdd,\n onReorder,\n showAllMenu = false,\n propsIndicator,\n propsBar,\n propsAdd,\n children,\n ...rest\n }: TabListProps) => {\n const lang = useLang();\n const tabs = TabsContext.inject();\n let list = _state.raw<HTMLElement | null>(null);\n let indicator = _state.raw<HTMLElement | null>(null);\n // 横排放不下时:能不能往前、往后滚(滚动按钮)\n let overflow = _state.raw({ overflowing: false, start: false, end: false });\n _effect(() =>\n list\n ? rovingFocus(list, { items: '[role=\"tab\"]', orientation: tabs.orientation, loop })\n : undefined,\n );\n\n useActiveIndicator(() => ({\n container: list,\n indicator,\n active: '[role=\"tab\"][aria-selected=\"true\"]',\n axis: tabs.orientation,\n value: tabs.value,\n }));\n\n function measure() {\n batchLayout(() => {\n if (!list || tabs.orientation === 'vertical') return;\n // 从右到左排版时 scrollLeft 是负的:取绝对值就是离起始端多远\n const scrolled = Math.abs(list.scrollLeft);\n const max = list.scrollWidth - list.clientWidth;\n const next = { overflowing: max > 1, start: scrolled > 1, end: scrolled < max - 1 };\n return () => {\n if (Object.entries(next).some(([key, value]) => overflow[key as 'start'] !== value))\n overflow = next;\n };\n });\n }\n useResizeObserver(\n () => (list ? [list, ...list.querySelectorAll<HTMLElement>('[role=\"tab\"]')] : []),\n measure,\n );\n watch(() => tabs.values.length, measure, { flush: 'post' });\n\n // 切到一个滚到外面的标签(方向键、菜单、程序):把它滚进来\n watch(\n () => tabs.value,\n (value) => {\n const tab = value === undefined ? null : document.getElementById(tabs.id('tab', value));\n if (!list || !tab || list.scrollWidth <= list.clientWidth) return;\n const outer = list.getBoundingClientRect();\n const inner = tab.getBoundingClientRect();\n if (inner.left < outer.left) list.scrollBy({ left: inner.left - outer.left - 16 });\n else if (inner.right > outer.right) list.scrollBy({ left: inner.right - outer.right + 16 });\n },\n { flush: 'post' },\n );\n\n /** 滚动按钮:往前(-1)或往后(1)滚大半屏 */\n function scrollBy(direction: 1 | -1) {\n if (!list) return;\n const sign = isRtl(list) ? -direction : direction;\n list.scrollBy({ left: sign * list.clientWidth * 0.8, behavior: 'smooth' });\n }\n\n /** 把 value 移到 to(按显示的顺序),交给使用方重排;键盘移动时告诉读屏 */\n function moveTab(value: string, to: number, announceMove: boolean) {\n const order = tabOrder(list);\n const from = order.indexOf(value);\n if (!onReorder || from < 0 || to < 0 || to >= order.length || to === from) return;\n const next = order.filter((item) => item !== value);\n next.splice(to, 0, value);\n onReorder(next);\n if (!announceMove) return;\n const label = document.getElementById(tabs.id('tab', value))?.textContent ?? value;\n announce(lang.tabMoved(label, to + 1, order.length));\n // 标签的元素被移动过:焦点放回它上面\n void nextTick(() => document.getElementById(tabs.id('tab', value))?.focus());\n }\n\n // 拖动排序:越过别的标签的中线就换位(同 Sortable);触摸时照常横向滚动\n function onPointerdown(event: PointerEvent) {\n const target = event.target as Element;\n const tab = target.closest<HTMLElement>('[role=\"tab\"]');\n if (!onReorder || !tab || !list || event.pointerType === 'touch') return;\n const value = tab.dataset.value!;\n startMove(event, {\n threshold: 4,\n // 标签的元素会被重排:捕获在不动的列表上\n captureTarget: list,\n onMove: ({ clientX }) => {\n tabs.setDragging(value);\n const order = tabOrder(list);\n const from = order.indexOf(value);\n const over = [...list!.querySelectorAll<HTMLElement>('[role=\"tab\"]')].find((item) => {\n const rect = item.getBoundingClientRect();\n return clientX >= rect.left && clientX <= rect.right;\n });\n const to = over ? order.indexOf(over.dataset.value!) : -1;\n if (!over || to === from) return;\n const rect = over.getBoundingClientRect();\n const center = rect.left + rect.width / 2;\n // 按书写方向“越过中线”:往后挪时要过了它的中线,往前挪时要回到中线之前\n const past = isRtl(list!) ? clientX < center : clientX > center;\n if (to > from === past) moveTab(value, to, false);\n },\n onEnd: () => tabs.setDragging(undefined),\n });\n }\n\n // 键盘替代拖动:在标签上按 Alt + ←→ 往前、往后挪一位(从右到左排版时反过来)\n function onKeydown(event: KeyboardEvent) {\n if (!onReorder || !event.altKey || event.ctrlKey || event.metaKey || !list) return;\n const tab = (event.target as Element).closest<HTMLElement>('[role=\"tab\"]');\n const { forward, backward } = inlineArrows(isRtl(list));\n if (!tab || (event.key !== forward && event.key !== backward)) return;\n event.preventDefault();\n const value = tab.dataset.value!;\n const from = tabOrder(list).indexOf(value);\n moveTab(value, from + (event.key === forward ? 1 : -1), true);\n }\n\n /** “全部标签页”菜单:按显示的顺序(刚加上、还没渲染出来的排在最后)列出标签的文字 */\n function renderAllMenu() {\n const shown = tabOrder(list).filter((value) => tabs.values.includes(value));\n const order = [...shown, ...tabs.values.filter((value) => !shown.includes(value))];\n const items = order.map((value) => ({ value, label: tabs.label(value) }));\n return (\n <Menu\n trigger={(props) => (\n <IconButton\n {...props}\n icon={ChevronDown}\n size=\"sm\"\n variant=\"ghost\"\n aria-label={lang.tabList}\n />\n )}\n placement=\"bottom-end\"\n >\n <MenuRadioGroup\n label={lang.tabList}\n _value={tabs.value ?? ''}\n onUpdate:_value={(next: string) => tabs.select(next)}\n >\n {items.map((item) => (\n <MenuRadioItem key={item.value} value={item.value}>\n {item.label}\n </MenuRadioItem>\n ))}\n </MenuRadioGroup>\n </Menu>\n );\n }\n\n return () => {\n const vertical = tabs.orientation === 'vertical';\n const tablist = (\n <div\n {...mergeAttrs<'div'>(\n {\n sx: [\n tabListStyles.root,\n !vertical && tabListStyles.scrollable,\n tabs.variant === 'line'\n ? [tabListStyles.line, vertical && tabListStyles.lineVertical]\n : [tabListStyles.soft, vertical && tabListStyles.softVertical],\n ],\n },\n rest,\n {\n ref: _toRef(list),\n role: 'tablist',\n 'aria-orientation': tabs.orientation,\n onScroll: measure,\n onPointerdown,\n onKeydown,\n },\n )}\n >\n {children}\n {tabs.variant === 'line' && (\n <span\n {...mergeAttrs<'span'>(\n { sx: [tabListStyles.indicator, vertical && tabListStyles.indicatorVertical] },\n propsIndicator,\n { ref: _toRef(indicator), 'aria-hidden': true },\n )}\n />\n )}\n </div>\n );\n if (vertical) return tablist;\n // 滚动按钮只给指针用:键盘在标签之间移动时,当前标签会自己滚进来\n const scrollButton = (direction: 1 | -1) =>\n overflow.overflowing && (\n <IconButton\n icon={direction === 1 ? ChevronRight : ChevronLeft}\n propsIcon={{ flipInRtl: true }}\n size=\"sm\"\n variant=\"ghost\"\n tabindex={-1}\n aria-label={direction === 1 ? lang.tabScrollNext : lang.tabScrollPrevious}\n disabled={direction === 1 ? !overflow.end : !overflow.start}\n onClick={() => scrollBy(direction)}\n />\n );\n return (\n <div\n {...mergeAttrs<'div'>(\n { sx: [tabListStyles.bar, tabs.variant === 'line' && tabListStyles.barLine] },\n propsBar,\n )}\n >\n {scrollButton(-1)}\n {tablist}\n {scrollButton(1)}\n {showAllMenu && renderAllMenu()}\n {onAdd && (\n <IconButton\n {...mergePartProps<IconButtonProps>(\n { icon: Plus, size: 'sm', variant: 'ghost', 'aria-label': lang.tabAdd },\n propsAdd,\n { onClick: onAdd },\n )}\n />\n )}\n </div>\n );\n };\n },\n);\n\n// ─────────────── Tab ───────────────\n\n/** 角色、选中、关联与可聚焦由组件管理 */\nexport type TabManaged =\n 'role' | 'aria-selected' | 'aria-controls' | 'id' | 'tabindex' | 'disabled';\n\n/** 未声明的属性落到 role=\"tab\" 的 button 上 */\nexport interface TabProps extends PartProps<'button', TabManaged> {\n /** 这个标签的值,与对应 TabPanel 的 value 相同 */\n value: string;\n /** 不可用:方向键跳过它 */\n disabled?: boolean;\n /**\n * 可以关闭:标签末尾有关闭按钮,标签上按 Delete、鼠标中键点也关闭。使用方移除这个标签;\n * 关掉的是当前标签时 Tabs 选它后面(没有时前面)的一个,焦点也跟过去\n */\n onClose?: () => void;\n /** 关闭按钮的部件属性 */\n propsClose?: Partial<IconButtonProps>;\n children?: VNodeChild;\n}\n\n/** Tabs 的样式:root、hover、line、lineVertical、lineActive、soft 等 */\n/**\n * 标签的配方:状态(选中、禁用、拖动中)由 DOM 上的 aria-selected、disabled、data-dragging 决定,\n * 样式、方向、可关闭是档位\n */\nexport const tabRecipe = css.recipe({\n name: 'Tab',\n parts: ['root', 'closeWrapper', 'close'],\n base: {\n // 去掉按钮默认外观、焦点环、波纹、颜色过渡由 ButtonBase 给出\n root: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '_sm',\n minHeight: `max(${t.sizes.control}, ${t.sizes.minTarget})`,\n paddingInline: '_md',\n color: { default: '_textMuted', _hover: '_text', _selected: '_text' },\n fontWeight: '_medium',\n whiteSpace: 'nowrap',\n borderRadius: '_sm',\n opacity: { default: null, _dragging: 0.6, _disabled: '_disabled' },\n },\n closeWrapper: { display: 'inline-grid', flexShrink: 0 },\n close: { gridArea: '1 / 1', justifySelf: 'end', alignSelf: 'center', marginInlineEnd: '_xs' },\n },\n variants: {\n variant: {\n // 下划线:当前标签的底边(竖排时是结束边)一条 2px 的品牌色线,压在列表的分隔线上;\n // 线由 TabList 的指示条画(切换时滑过去),标签自己只变文字颜色\n line: {\n root: {\n marginBottom: `calc(-1 * ${t.borderWidths.xs})`,\n borderBottomWidth: '_sm',\n borderBottomStyle: 'solid',\n borderBottomColor: 'transparent',\n },\n },\n soft: {\n root: {\n // 未选中时同 ButtonBase 的透明底:条件对象按属性整体覆盖前面的值,default 写 null 会露出原生按钮底色\n backgroundColor: { default: 'transparent', _selected: '_surface' },\n boxShadow: { default: null, _selected: '_xs' },\n },\n },\n },\n orientation: { horizontal: {}, vertical: {} },\n // 可关闭:标签与关闭按钮叠在同一个网格格子里,关闭按钮靠结束端,标签给它留出位置。\n // 不用定位:标签的 offsetParent 还得是列表,下划线指示条按它的 offsetLeft 对齐\n closable: {\n true: { root: { gridArea: '1 / 1', paddingInlineEnd: `calc(${t.space.md} + 1.25em)` } },\n },\n },\n compound: [\n {\n when: { variant: 'line', orientation: 'vertical' },\n root: {\n justifyContent: 'flex-start',\n marginBottom: 0,\n marginInlineEnd: `calc(-1 * ${t.borderWidths.xs})`,\n borderBottomWidth: 0,\n borderInlineEndWidth: '_sm',\n borderInlineEndStyle: 'solid',\n borderInlineEndColor: 'transparent',\n },\n },\n ],\n});\n\n/** 标签的部件(createUi / Provider 的 styles.Tab 按它定制) */\nexport type TabPart = (typeof tabRecipe.parts)[number];\n\n/** 标签(role=\"tab\" 的 button) */\nexport const Tab = _component(\n ({ value, disabled = false, onClose, propsClose, children, ...rest }: TabProps) => {\n const lang = useLang();\n const tabs = TabsContext.inject();\n const recipe = useRecipe(tabRecipe);\n const unregister = tabs.register(_untrack(value), () => plainText(children) || value);\n onBeforeUnmount(() => {\n const element = document.getElementById(tabs.id('tab', value));\n // 关掉的标签有焦点:等 Tabs 选好旁边的标签再把焦点交过去(元素一移除焦点就丢到 body 上了)\n if (element && element === document.activeElement) tabs.refocus();\n unregister(tabOrder(element?.closest('[role=\"tablist\"]')));\n });\n\n function onKeydown(event: KeyboardEvent) {\n if (event.key === 'Delete' && onClose && !disabled) {\n event.preventDefault();\n onClose();\n }\n }\n\n return () => {\n const selected = tabs.value === value;\n const styles = recipe({\n variant: tabs.variant,\n orientation: tabs.orientation,\n closable: !!onClose,\n });\n const tab = (\n <ButtonBase\n {...mergePartProps<ButtonBaseProps>(\n {\n ...styles.root,\n ripple: tabs.ripple,\n },\n rest as Partial<ButtonBaseProps>,\n {\n role: 'tab',\n id: tabs.id('tab', value),\n 'aria-selected': selected,\n 'aria-controls': tabs.hasPanel(value) ? tabs.id('panel', value) : undefined,\n disabled,\n // 使用方的 onClick / onFocus 先执行(mergeProps 的规则),onClick 里 preventDefault 可以拦下切换\n onClick: () => tabs.select(value),\n onFocus: () => {\n if (tabs.activation === 'automatic') tabs.select(value);\n },\n onKeydown,\n 'aria-keyshortcuts': onClose ? 'Delete' : undefined,\n // 鼠标中键关闭(同浏览器的标签页)\n onAuxclick: (event: MouseEvent) => {\n if (event.button === 1 && onClose && !disabled) onClose();\n },\n },\n )}\n data-state={selected ? 'active' : 'inactive'}\n data-value={value}\n data-dragging={tabs.dragging === value || undefined}\n >\n {children}\n </ButtonBase>\n );\n if (!onClose) return tab;\n // 关闭按钮不能放进标签按钮里(按钮里不能有按钮):一起包在 role=\"presentation\" 里,按钮本身只给指针用(对读屏隐藏)\n return (\n <span role=\"presentation\" {...mergeAttrs<'span'>(styles.closeWrapper)}>\n {tab}\n <IconButton\n {...mergePartProps<IconButtonProps>(\n {\n icon: X,\n size: 'xs',\n variant: 'ghost',\n radius: 'full',\n ...styles.close,\n 'aria-label': lang.tabClose(plainText(children) || value),\n },\n propsClose,\n {\n tabindex: -1,\n // 只给指针用:tablist 里只能有标签;键盘、读屏用标签上的 Delete(aria-keyshortcuts)\n 'aria-hidden': true,\n disabled,\n // 按下时不把焦点挪到关闭按钮上\n onPointerdown: (event: PointerEvent) => event.preventDefault(),\n onClick: (event: MouseEvent) => {\n event.stopPropagation();\n onClose();\n },\n },\n )}\n />\n </span>\n );\n };\n },\n);\n\n// ─────────────── TabPanel ───────────────\n\n/** 角色、关联与显示由组件管理 */\nexport type TabPanelManaged = 'role' | 'id' | 'aria-labelledby' | 'hidden';\n\n/** 未声明的属性落到 role=\"tabpanel\" 的 div 上 */\nexport interface TabPanelProps extends PartProps<'div', TabPanelManaged> {\n /** 对应标签的 value */\n value: string;\n children?: VNodeChild;\n}\n\n/** Tabs 的样式:root */\nexport const tabPanelStyles = css.create({\n root: { flexGrow: 1, minWidth: 0, borderRadius: '_sm' },\n});\n\n/** 标签面板(role=\"tabpanel\"):只显示当前标签的那一个 */\nexport const TabPanel = _component(({ value, children, ...rest }: TabPanelProps) => {\n const tabs = TabsContext.inject();\n onBeforeUnmount(tabs.registerPanel(_untrack(value)));\n // 显示过:lazy 时从这以后一直渲染内容\n const showContent = useLazyContent(\n () => tabs.value === value,\n () => tabs.lazy,\n );\n\n return () => {\n const selected = tabs.value === value;\n return (\n <div\n {...mergeAttrs<'div'>(\n { sx: [tabPanelStyles.root, focusRingStyles.visible], tabindex: 0 },\n rest,\n {\n role: 'tabpanel',\n id: tabs.id('panel', value),\n 'aria-labelledby': tabs.id('tab', value),\n hidden: !selected,\n },\n )}\n data-state={selected ? 'active' : 'inactive'}\n >\n {showContent() && children}\n </div>\n );\n };\n});\n"],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import * as css from '@zerodep-dev/vue-tsx-pro-tsx/styles';
2
+ import type { VNodeChild } from 'vue';
3
+ import { type PartProps } from '../utils/props';
4
+ import { type Space } from '../utils/style/styles';
5
+ /** 工具栏方向 */
6
+ export interface ToolbarOrientations {
7
+ /** 横排(默认),左右键移动 */
8
+ horizontal: unknown;
9
+ /** 竖排,上下键移动 */
10
+ vertical: unknown;
11
+ }
12
+ /** 角色与方向由组件管理 */
13
+ export type ToolbarManaged = 'role' | 'aria-orientation';
14
+ /** 未声明的属性落到 div 上;aria-label 是工具栏的名称 */
15
+ export interface ToolbarProps extends PartProps<'div', ToolbarManaged> {
16
+ /** 方向,默认 horizontal */
17
+ orientation?: keyof ToolbarOrientations;
18
+ /** 到两端后是否从另一端继续,默认 true */
19
+ loop?: boolean;
20
+ /** 项之间的间距档位,默认 xs */
21
+ gap?: Space;
22
+ /** 参与方向键移动的项的选择器,默认按钮与链接 */
23
+ items?: string;
24
+ children?: VNodeChild;
25
+ }
26
+ /** Toolbar 的样式:root、vertical */
27
+ export declare const toolbarStyles: Readonly<{
28
+ root: css.CompiledStyles;
29
+ vertical: css.CompiledStyles;
30
+ }>;
31
+ /** 工具栏交给里面的组件的状态 */
32
+ export interface ToolbarState {
33
+ /** 方向 */
34
+ readonly orientation: keyof ToolbarOrientations;
35
+ }
36
+ /** 工具栏的上下文:里面自带漫游焦点的组件(ToggleGroup)据此把焦点交给工具栏统一管理 */
37
+ export declare const ToolbarContext: import("@zerodep-dev/vue-tsx-pro-tsx").Context<ToolbarState>;
38
+ /** 工具栏:一个 Tab 位置,组内方向键移动 */
39
+ export declare const Toolbar: import("@zerodep-dev/vue-tsx-pro-tsx").TsxComponent<ToolbarProps>;
@@ -0,0 +1,67 @@
1
+ import { mergeAttrs } from "../utils/props.js";
2
+ import { gapStyles } from "../utils/style/styles.js";
3
+ import { rovingFocus } from "../utils/dom/roving-focus.js";
4
+ import { createVNode, mergeProps, shallowRef } from "vue";
5
+ import { _component, childrenProp, createContext, effect, readonlyProp, restProps } from "@zerodep-dev/vue-tsx-pro-tsx";
6
+ import * as css from "@zerodep-dev/vue-tsx-pro-tsx/styles";
7
+ //#region src/navigation/Toolbar.tsx
8
+ /** 工具栏方向 */
9
+ /** 角色与方向由组件管理 */
10
+ /** 未声明的属性落到 div 上;aria-label 是工具栏的名称 */
11
+ /** Toolbar 的样式:root、vertical */
12
+ var toolbarStyles = css.create({
13
+ root: {
14
+ display: "flex",
15
+ alignItems: "center",
16
+ flexWrap: "wrap"
17
+ },
18
+ vertical: {
19
+ flexDirection: "column",
20
+ alignItems: "stretch"
21
+ }
22
+ });
23
+ /** 默认参与方向键移动的项:按钮、链接、自定义的 role="button" */
24
+ var DEFAULT_ITEMS = "button, a[href], [role=\"button\"]";
25
+ /** 工具栏交给里面的组件的状态 */
26
+ /** 工具栏的上下文:里面自带漫游焦点的组件(ToggleGroup)据此把焦点交给工具栏统一管理 */
27
+ var ToolbarContext = createContext("Toolbar");
28
+ /** 工具栏:一个 Tab 位置,组内方向键移动 */
29
+ var Toolbar = /*#__PURE__*/ _component((_props, _ctx) => {
30
+ const orientation = readonlyProp(_props, "orientation", "horizontal");
31
+ const loop = readonlyProp(_props, "loop", true);
32
+ const gap = readonlyProp(_props, "gap", "xs");
33
+ const items = readonlyProp(_props, "items", () => DEFAULT_ITEMS);
34
+ const children = childrenProp(_props);
35
+ const rest = restProps(_props, _ctx, false);
36
+ let root = shallowRef(null);
37
+ effect(() => root.value ? rovingFocus(root.value, {
38
+ items: items.value,
39
+ orientation: orientation.value,
40
+ loop: loop.value,
41
+ initial: (enabled) => enabled[0]
42
+ }) : void 0);
43
+ ToolbarContext.provide({ get orientation() {
44
+ return orientation.value;
45
+ } });
46
+ return () => createVNode("div", mergeProps(mergeAttrs({ sx: [
47
+ toolbarStyles.root,
48
+ orientation.value === "vertical" && toolbarStyles.vertical,
49
+ gapStyles[gap.value]
50
+ ] }, rest, {
51
+ ref: root,
52
+ role: "toolbar",
53
+ "aria-orientation": orientation.value
54
+ }), { "data-orientation": orientation.value }), [children.value]);
55
+ }, {
56
+ name: "Toolbar",
57
+ props: [
58
+ "orientation",
59
+ "loop",
60
+ "gap",
61
+ "items"
62
+ ]
63
+ });
64
+ //#endregion
65
+ export { Toolbar, ToolbarContext, toolbarStyles };
66
+
67
+ //# sourceMappingURL=Toolbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toolbar.js","names":["_vtp_readonlyProp","_vtp_childrenProp","_vtp_restProps","_vue_shallowRef","_createVNode","_mergeProps"],"sources":["../../src/navigation/Toolbar.tsx"],"sourcesContent":["/**\n * 工具栏(role=\"toolbar\"):一组相关的按钮、链接。整组只占一个 Tab 位置,组内用方向键移动(漫游焦点),\n * 键盘用户不必一个个 Tab 过去(WAI-ARIA 的 Toolbar 模式)。名称写 aria-label。\n *\n * <Toolbar aria-label=\"文字格式\">\n * <IconButton icon={Bold} aria-label=\"加粗\" />\n * <IconButton icon={Italic} aria-label=\"斜体\" />\n * </Toolbar>\n *\n * 里面的输入框不参与方向键移动(左右键要用来移动光标),用 Tab 进出。\n * 里面的 ToggleGroup 不再自己管焦点,它的按钮和其他按钮一起用方向键移动(同 WAI-ARIA 的文字格式工具栏示例)。\n */\nimport { createContext, _component } from '@zerodep-dev/vue-tsx-pro-tsx';\nimport * as css from '@zerodep-dev/vue-tsx-pro-tsx/styles';\nimport type { VNodeChild } from 'vue';\nimport { mergeAttrs, type PartProps } from '../utils/props';\nimport { rovingFocus } from '../utils/dom/roving-focus';\nimport { gapStyles, type Space } from '../utils/style/styles';\n\n/** 工具栏方向 */\nexport interface ToolbarOrientations {\n /** 横排(默认),左右键移动 */\n horizontal: unknown;\n /** 竖排,上下键移动 */\n vertical: unknown;\n}\n\n/** 角色与方向由组件管理 */\nexport type ToolbarManaged = 'role' | 'aria-orientation';\n\n/** 未声明的属性落到 div 上;aria-label 是工具栏的名称 */\nexport interface ToolbarProps extends PartProps<'div', ToolbarManaged> {\n /** 方向,默认 horizontal */\n orientation?: keyof ToolbarOrientations;\n /** 到两端后是否从另一端继续,默认 true */\n loop?: boolean;\n /** 项之间的间距档位,默认 xs */\n gap?: Space;\n /** 参与方向键移动的项的选择器,默认按钮与链接 */\n items?: string;\n children?: VNodeChild;\n}\n\n/** Toolbar 的样式:root、vertical */\nexport const toolbarStyles = css.create({\n root: { display: 'flex', alignItems: 'center', flexWrap: 'wrap' },\n vertical: { flexDirection: 'column', alignItems: 'stretch' },\n});\n\n/** 默认参与方向键移动的项:按钮、链接、自定义的 role=\"button\" */\nconst DEFAULT_ITEMS = 'button, a[href], [role=\"button\"]';\n\n/** 工具栏交给里面的组件的状态 */\nexport interface ToolbarState {\n /** 方向 */\n readonly orientation: keyof ToolbarOrientations;\n}\n\n/** 工具栏的上下文:里面自带漫游焦点的组件(ToggleGroup)据此把焦点交给工具栏统一管理 */\nexport const ToolbarContext = createContext<ToolbarState>('Toolbar');\n\n/** 工具栏:一个 Tab 位置,组内方向键移动 */\nexport const Toolbar = _component(\n ({\n orientation = 'horizontal',\n loop = true,\n gap = 'xs',\n items = DEFAULT_ITEMS,\n children,\n ...rest\n }: ToolbarProps) => {\n let root = _state.raw<HTMLElement | null>(null);\n // Tab 进入时落在上次聚焦的项,没有就是第一项:不跳到按下的切换按钮上(那是标签页的习惯)\n _effect(() =>\n root\n ? rovingFocus(root, { items, orientation, loop, initial: (enabled) => enabled[0] })\n : undefined,\n );\n ToolbarContext.provide({\n get orientation() {\n return orientation;\n },\n });\n\n return () => (\n <div\n {...mergeAttrs<'div'>(\n {\n sx: [\n toolbarStyles.root,\n orientation === 'vertical' && toolbarStyles.vertical,\n gapStyles[gap],\n ],\n },\n rest,\n { ref: _toRef(root), role: 'toolbar', 'aria-orientation': orientation },\n )}\n data-orientation={orientation}\n >\n {children}\n </div>\n );\n },\n);\n"],"mappings":";;;;;;;;;;;AA4CA,IAAa,gBAAgB,IAAI,OAAO;CACtC,MAAM;EAAE,SAAS;EAAQ,YAAY;EAAU,UAAU;CAAO;CAChE,UAAU;EAAE,eAAe;EAAU,YAAY;CAAU;AAC7D,CAAC;;AAGD,IAAM,gBAAgB;;;AAStB,IAAa,iBAAiB,cAA4B,SAAS;;AAGnE,IAAa,UAAU,0BACrB,QAAA,SAOoB;CAAA,MAAA,cAAAA,aAAA,QAAA,eANJ,YAAY;CAAA,MAAA,OAAAA,aAAA,QAAA,QACnB,IAAI;CAAA,MAAA,MAAAA,aAAA,QAAA,OACL,IAAI;CAAA,MAAA,QAAAA,aAAA,QAAA,eACF,aAAa;CAAA,MAAA,WAAAC,aAAA,MAAA;CAAA,MAElB,OAAIC,UAAA,QAAA,MAAA,KAAA;CAEP,IAAI,OAAIC,WAAkC,IAAI;CAE9C,aACE,KAAA,QACI,YAAW,KAAA,OAAO;EAAE,OAAK,MAAA;EAAE,aAAW,YAAA;EAAE,MAAI,KAAA;EAAE,UAAU,YAAY,QAAQ;CAAG,CAAC,IAChF,KAAA,CAAS;CAEf,eAAe,QAAQ,EACrB,IAAI,cAAc;EAChB,OAAA,YAAA;CACF,EACF,CAAC;CAED,aAAOC,YAAA,OAAAC,WAEC,WACF,EACE,IAAI;EACF,cAAc;EACd,YAAA,UAAgB,cAAc,cAAc;EAC5C,UAAS,IAAA;CAAK,EAElB,GACA,MACA;EAAE,KAAG;EAAgB,MAAM;EAAW,oBAAkB,YAAA;CAAc,CACxE,GAAC,EAAA,oBAAA,YAAA,MAAA,CAAA,GAAA,CAAA,SAAA,KAAA,CAAA;AAMP,GAAC;CAAA,MAAA;CAAA,OAAA;EAAA;EAAA;EAAA;EAAA;CAAA;AAAA,CACH"}
@@ -0,0 +1,43 @@
1
+ import { type VNodeChild } from 'vue';
2
+ import { type DialogProps } from './Dialog';
3
+ /** 未声明的属性落到 dialog 上;确认、取消按钮的属性(onConfirm、confirmText、tone、propsConfirm…)同 Dialog */
4
+ export interface AlertDialogProps extends Omit<DialogProps, 'footer' | 'closable' | 'dismissible'> {
5
+ }
6
+ /** 确认对话框:确认 / 取消两个按钮,焦点先落在取消上 */
7
+ export declare const AlertDialog: import("@zerodep-dev/vue-tsx-pro-tsx").TsxComponent<AlertDialogProps>;
8
+ /** 确认时要填的理由 */
9
+ export interface ConfirmReason {
10
+ /** 输入框的标签(“驳回理由”) */
11
+ label: VNodeChild;
12
+ /** 必填:空着点确认时提示“必填”、不关闭 */
13
+ required?: boolean;
14
+ /** 输入框的占位文字 */
15
+ placeholder?: string;
16
+ /** 输入框下的说明(“申请人会收到这段理由”) */
17
+ description?: VNodeChild;
18
+ /** 最多几个字,显示字数 */
19
+ maxlength?: number;
20
+ }
21
+ /** confirm() 的选项:AlertDialog 的属性(open 由 confirm 管理) */
22
+ export interface ConfirmOptions extends Omit<AlertDialogProps, '_open' | 'onConfirm'> {
23
+ /** 确认:拿到填的理由(没给 reason 时是空字符串);返回 false 或失败时保持打开 */
24
+ onConfirm?: (reason: string) => unknown;
25
+ /** 要填理由:对话框里多一个多行输入框,confirm 得到填的理由 */
26
+ reason?: ConfirmReason;
27
+ }
28
+ /** useConfirm 返回的函数:给了 reason 时得到理由(取消时 null),否则得到是否确认 */
29
+ export interface Confirm {
30
+ /** 要填理由:确认时得到理由,取消、Esc 时得到 null */
31
+ (options: ConfirmOptions & {
32
+ reason: ConfirmReason;
33
+ }): Promise<string | null>;
34
+ /** 确认得到 true,取消、Esc 得到 false */
35
+ (options: ConfirmOptions): Promise<boolean>;
36
+ }
37
+ /**
38
+ * 命令式确认:在组件 setup 里调用,返回 confirm(options)。对话框渲染到 body 末尾,
39
+ * 沿用调用处的主题、语言等配置(ConfigScope);关闭后自动卸载。
40
+ * 确认(onConfirm 完成)时得到 true(有 reason 时得到理由),取消、Esc 时得到 false(有 reason 时 null);
41
+ * onConfirm 返回 false 或失败时对话框保持打开,可以再试或取消。
42
+ */
43
+ export declare function useConfirm(): Confirm;
@@ -0,0 +1,106 @@
1
+ import { useLang } from "../config/context.js";
2
+ import { useDefaults } from "../config/defaults.js";
3
+ import { mergePartProps } from "../utils/props.js";
4
+ import { useRecipe } from "../config/styles.js";
5
+ import { transitions } from "../utils/style/transitions.js";
6
+ import { Field } from "../form/Field.js";
7
+ import { Textarea } from "../input/Textarea.js";
8
+ import { useDetachedDialog } from "./detached.js";
9
+ import { ModalCore } from "./ModalCore.js";
10
+ import { dialogRecipe } from "./Dialog.js";
11
+ import { createVNode, mergeProps, shallowRef } from "vue";
12
+ import { _component, bindable, readonlyProp, restProps } from "@zerodep-dev/vue-tsx-pro-tsx";
13
+ //#region src/overlay/AlertDialog.tsx
14
+ /** 未声明的属性落到 dialog 上;确认、取消按钮的属性(onConfirm、confirmText、tone、propsConfirm…)同 Dialog */
15
+ /** 确认对话框:确认 / 取消两个按钮,焦点先落在取消上 */
16
+ var AlertDialog = /*#__PURE__*/ _component((_props, _ctx) => {
17
+ const _cache = [];
18
+ const open = bindable(_props, "_open", () => false, _ctx.emit);
19
+ const size = readonlyProp(_props, "size");
20
+ const onConfirm = readonlyProp(_props, "onConfirm");
21
+ const propsCancel = readonlyProp(_props, "propsCancel");
22
+ const rest = restProps(_props, _ctx, true);
23
+ const appearance = useDefaults("Dialog", () => ({ size: size.value }), { size: "xs" });
24
+ const recipe = useRecipe(dialogRecipe);
25
+ return () => createVNode(ModalCore, mergeProps(mergePartProps({
26
+ title: rest.title,
27
+ parts: recipe({ size: appearance().size }),
28
+ panelSx: transitions.scale
29
+ }, rest, {
30
+ role: "alertdialog",
31
+ closable: false,
32
+ dismissible: false,
33
+ onConfirm: onConfirm.value ?? (() => {}),
34
+ propsCancel: {
35
+ autofocus: true,
36
+ ...propsCancel.value
37
+ }
38
+ }), {
39
+ "_open": open.value,
40
+ "onUpdate:_open": _cache[0] || (_cache[0] = ($event) => open.value = $event)
41
+ }), null);
42
+ }, {
43
+ name: "AlertDialog",
44
+ props: [
45
+ "_open",
46
+ "onUpdate:_open",
47
+ "size",
48
+ "onConfirm",
49
+ "propsCancel"
50
+ ]
51
+ });
52
+ /** 确认时要填的理由 */
53
+ /** confirm() 的选项:AlertDialog 的属性(open 由 confirm 管理) */
54
+ /** useConfirm 返回的函数:给了 reason 时得到理由(取消时 null),否则得到是否确认 */
55
+ /**
56
+ * 命令式确认:在组件 setup 里调用,返回 confirm(options)。对话框渲染到 body 末尾,
57
+ * 沿用调用处的主题、语言等配置(ConfigScope);关闭后自动卸载。
58
+ * 确认(onConfirm 完成)时得到 true(有 reason 时得到理由),取消、Esc 时得到 false(有 reason 时 null);
59
+ * onConfirm 返回 false 或失败时对话框保持打开,可以再试或取消。
60
+ */
61
+ function useConfirm() {
62
+ const mount = useDetachedDialog();
63
+ const lang = useLang();
64
+ const confirm = ({ reason, onConfirm, ...options }) => new Promise((resolve) => {
65
+ let confirmed = false;
66
+ const text = shallowRef("");
67
+ const tried = shallowRef(false);
68
+ const missing = () => !!reason?.required && !text.value.trim();
69
+ mount((host) => createVNode(AlertDialog, mergeProps(options, {
70
+ "propsCancel": reason ? {
71
+ autofocus: false,
72
+ ...options.propsCancel
73
+ } : options.propsCancel,
74
+ "_open": host.open,
75
+ "onUpdate:_open": ($event) => host.open = $event,
76
+ "onConfirm": async () => {
77
+ tried.value = true;
78
+ if (missing()) return false;
79
+ if (await onConfirm?.(text.value.trim()) === false) return false;
80
+ confirmed = true;
81
+ },
82
+ "onClose": (event) => {
83
+ options.onClose?.(event);
84
+ resolve(reason ? confirmed ? text.value.trim() : null : confirmed);
85
+ host.closed();
86
+ }
87
+ }), { default: () => [options.children, reason && createVNode(Field, {
88
+ "label": reason.label,
89
+ "description": reason.description,
90
+ "required": reason.required,
91
+ "error": tried.value && missing() ? lang.formRequired : void 0
92
+ }, { default: () => [createVNode(Textarea, {
93
+ "_value": text.value,
94
+ "onUpdate:_value": (next) => text.value = next,
95
+ "placeholder": reason.placeholder,
96
+ "maxlength": reason.maxlength,
97
+ "showCount": reason.maxlength !== void 0,
98
+ "autofocus": true
99
+ }, null)] })] }));
100
+ });
101
+ return confirm;
102
+ }
103
+ //#endregion
104
+ export { AlertDialog, useConfirm };
105
+
106
+ //# sourceMappingURL=AlertDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AlertDialog.js","names":["_vtp_bindable","_vtp_readonlyProp","_vtp_restProps","_createVNode","_mergeProps"],"sources":["../../src/overlay/AlertDialog.tsx"],"sourcesContent":["/**\n * 确认对话框(role=\"alertdialog\"):打断当前操作、要用户明确选择“确认”或“取消”,如删除前的确认。\n * 建在 Dialog 的内核上;没有右上角的关闭按钮,点击遮罩不关闭(Esc 仍然等于取消)。\n * 打开时焦点落在“取消”上,误按 Enter 不会执行破坏性操作(同 Radix AlertDialog)。\n *\n * <AlertDialog\n * _open={confirming}\n * tone=\"danger\"\n * title=\"删除这个项目?\"\n * description=\"删除后无法恢复。\"\n * confirmText=\"删除\"\n * onConfirm={() => api.remove(id)}\n * />\n *\n * onConfirm 返回 Promise 时:确认按钮显示加载中、取消与 Esc 暂不可用,完成后关闭;失败时保持打开,由调用方提示错误。\n *\n * 只想在一个操作前问一句时,用命令式的 useConfirm,不必自己管 open:\n *\n * const confirm = useConfirm(); // setup 里\n * if (await confirm({ title: '删除这个项目?', tone: 'danger', confirmText: '删除' })) remove();\n *\n * 要填理由的(驳回、作废、退回)给 reason:对话框里多一个多行输入框,得到填的理由,取消时是 null:\n *\n * const reason = await confirm({ title: '驳回这个申请?', tone: 'danger', reason: { label: '驳回理由', required: true } });\n * if (reason !== null) await api.reject(id, reason);\n */\nimport { _component } from '@zerodep-dev/vue-tsx-pro-tsx';\nimport { shallowRef, type VNodeChild } from 'vue';\nimport { useLang } from '../config/context';\nimport { useDefaults } from '../config/defaults';\nimport { useRecipe } from '../config/styles';\nimport { transitions } from '../utils/style/transitions';\nimport { Field } from '../form/Field';\nimport { Textarea } from '../input/Textarea';\nimport { mergePartProps } from '../utils/props';\nimport { useDetachedDialog } from './detached';\nimport { dialogRecipe, type DialogProps } from './Dialog';\nimport { ModalCore, type ModalCoreProps } from './ModalCore';\n\n/** 未声明的属性落到 dialog 上;确认、取消按钮的属性(onConfirm、confirmText、tone、propsConfirm…)同 Dialog */\nexport interface AlertDialogProps extends Omit<\n DialogProps,\n 'footer' | 'closable' | 'dismissible'\n> {}\n\n/** 确认对话框:确认 / 取消两个按钮,焦点先落在取消上 */\nexport const AlertDialog = _component(\n ({ _open: open = _bindable(false), size, onConfirm, propsCancel, ...rest }: AlertDialogProps) => {\n const appearance = useDefaults('Dialog', () => ({ size }), { size: 'xs' });\n const recipe = useRecipe(dialogRecipe);\n return () => (\n <ModalCore\n {...mergePartProps<ModalCoreProps>(\n {\n title: rest.title,\n parts: recipe({ size: appearance().size }),\n panelSx: transitions.scale,\n },\n rest,\n {\n role: 'alertdialog',\n closable: false,\n dismissible: false,\n // 没写 onConfirm 也有确认按钮:点了就关\n onConfirm: onConfirm ?? (() => {}),\n propsCancel: { autofocus: true, ...propsCancel },\n },\n )}\n _open={open}\n />\n );\n },\n);\n\n/** 确认时要填的理由 */\nexport interface ConfirmReason {\n /** 输入框的标签(“驳回理由”) */\n label: VNodeChild;\n /** 必填:空着点确认时提示“必填”、不关闭 */\n required?: boolean;\n /** 输入框的占位文字 */\n placeholder?: string;\n /** 输入框下的说明(“申请人会收到这段理由”) */\n description?: VNodeChild;\n /** 最多几个字,显示字数 */\n maxlength?: number;\n}\n\n/** confirm() 的选项:AlertDialog 的属性(open 由 confirm 管理) */\nexport interface ConfirmOptions extends Omit<AlertDialogProps, '_open' | 'onConfirm'> {\n /** 确认:拿到填的理由(没给 reason 时是空字符串);返回 false 或失败时保持打开 */\n onConfirm?: (reason: string) => unknown;\n /** 要填理由:对话框里多一个多行输入框,confirm 得到填的理由 */\n reason?: ConfirmReason;\n}\n\n/** useConfirm 返回的函数:给了 reason 时得到理由(取消时 null),否则得到是否确认 */\nexport interface Confirm {\n /** 要填理由:确认时得到理由,取消、Esc 时得到 null */\n (options: ConfirmOptions & { reason: ConfirmReason }): Promise<string | null>;\n /** 确认得到 true,取消、Esc 得到 false */\n (options: ConfirmOptions): Promise<boolean>;\n}\n\n/**\n * 命令式确认:在组件 setup 里调用,返回 confirm(options)。对话框渲染到 body 末尾,\n * 沿用调用处的主题、语言等配置(ConfigScope);关闭后自动卸载。\n * 确认(onConfirm 完成)时得到 true(有 reason 时得到理由),取消、Esc 时得到 false(有 reason 时 null);\n * onConfirm 返回 false 或失败时对话框保持打开,可以再试或取消。\n */\nexport function useConfirm(): Confirm {\n const mount = useDetachedDialog();\n const lang = useLang();\n const confirm = ({ reason, onConfirm, ...options }: ConfirmOptions) =>\n new Promise<string | boolean | null>((resolve) => {\n let confirmed = false;\n const text = shallowRef('');\n // 必填没填:点确认后才提示,之后随输入更新\n const tried = shallowRef(false);\n const missing = () => !!reason?.required && !text.value.trim();\n mount((host) => (\n <AlertDialog\n {...options}\n // 要填理由时焦点先进输入框;没有理由时落在取消上(误按 Enter 不会执行)\n propsCancel={reason ? { autofocus: false, ...options.propsCancel } : options.propsCancel}\n _open={host.open}\n onConfirm={async () => {\n tried.value = true;\n if (missing()) return false;\n if ((await onConfirm?.(text.value.trim())) === false) return false;\n confirmed = true;\n }}\n onClose={(event: Event & { currentTarget: HTMLDialogElement }) => {\n options.onClose?.(event);\n resolve(reason ? (confirmed ? text.value.trim() : null) : confirmed);\n host.closed();\n }}\n >\n {options.children}\n {reason && (\n <Field\n label={reason.label}\n description={reason.description}\n required={reason.required}\n error={tried.value && missing() ? lang.formRequired : undefined}\n >\n <Textarea\n _value={text.value}\n onUpdate:_value={(next: string) => (text.value = next)}\n placeholder={reason.placeholder}\n maxlength={reason.maxlength}\n showCount={reason.maxlength !== undefined}\n autofocus\n />\n </Field>\n )}\n </AlertDialog>\n ));\n });\n return confirm as Confirm;\n}\n"],"mappings":";;;;;;;;;;;;;;;AA8CA,IAAa,cAAc,0BACzB,QAAA,SAAiG;CAAA,MAAA,SAAA,CAAA;CAAA,MAAA,OAAAA,SAAA,QAAA,eAAtE,OAAK,KAAA,IAAA;CAAA,MAAA,OAAAC,aAAA,QAAA,MAAA;CAAA,MAAA,YAAAA,aAAA,QAAA,WAAA;CAAA,MAAA,cAAAA,aAAA,QAAA,aAAA;CAAA,MAAoC,OAAIC,UAAA,QAAA,MAAA,IAAA;CACtE,MAAM,aAAa,YAAY,iBAAiB,EAAE,MAAI,KAAA,MAAC,IAAI,EAAE,MAAM,KAAK,CAAC;CACzE,MAAM,SAAS,UAAU,YAAY;CACrC,aAAOC,YAAA,WAAAC,WAEC,eACF;EACE,OAAO,KAAK;EACZ,OAAO,OAAO,EAAE,MAAM,WAAW,CAAC,CAAC,KAAK,CAAC;EACzC,SAAS,YAAY;CACvB,GACA,MACA;EACE,MAAM;EACN,UAAU;EACV,aAAa;EAEb,WAAW,UAAA,gBAAoB,CAAC;EAChC,aAAa;GAAE,WAAW;GAAM,GAAA,YAAA;EAAe;CACjD,CACF,GAAC;EAAA,SAAA,KAAA;EAAA,kBAAA,OAAA,OAAA,OAAA,MAAA,WAAA,KAAA,QAAA;CAAA,CAAA,GAAA,IAAA;AAIP,GAAC;CAAA,MAAA;CAAA,OAAA;EAAA;EAAA;EAAA;EAAA;EAAA;CAAA;AAAA,CACH;;;;;;;;;;AAsCA,SAAgB,aAAsB;CACpC,MAAM,QAAQ,kBAAkB;CAChC,MAAM,OAAO,QAAQ;CACrB,MAAM,WAAW,EAAE,QAAQ,WAAW,GAAG,cACvC,IAAI,SAAkC,YAAY;EAChD,IAAI,YAAY;EAChB,MAAM,OAAO,WAAW,EAAE;EAE1B,MAAM,QAAQ,WAAW,KAAK;EAC9B,MAAM,gBAAgB,CAAC,CAAC,QAAQ,YAAY,CAAC,KAAK,MAAM,KAAK;EAC7D,OAAO,SAAID,YAAA,aAAAC,WAEH,SAAO;GAAA,eAEE,SAAS;IAAE,WAAW;IAAO,GAAG,QAAQ;GAAY,IAAI,QAAQ;GAAW,SACjF,KAAK;GAAI,mBAAA,WAAT,KAAK,OAAI;GAAA,aACL,YAAY;IACrB,MAAM,QAAQ;IACd,IAAI,QAAQ,GAAG,OAAO;IACtB,IAAK,MAAM,YAAY,KAAK,MAAM,KAAK,CAAC,MAAO,OAAO,OAAO;IAC7D,YAAY;GACd;GAAC,YACS,UAAwD;IAChE,QAAQ,UAAU,KAAK;IACvB,QAAQ,SAAU,YAAY,KAAK,MAAM,KAAK,IAAI,OAAQ,SAAS;IACnE,KAAK,OAAO;GACd;EAAC,CAAA,GAAA,EAAA,eAAA,CAEA,QAAQ,UACR,UAAMD,YAAA,OAAA;GAAA,SAEI,OAAO;GAAK,eACN,OAAO;GAAW,YACrB,OAAO;GAAQ,SAClB,MAAM,SAAS,QAAQ,IAAI,KAAK,eAAe,KAAA;EAAS,GAAA,EAAA,eAAA,CAAAA,YAAA,UAAA;GAAA,UAGrD,KAAK;GAAK,oBACA,SAAkB,KAAK,QAAQ;GAAK,eACzC,OAAO;GAAW,aACpB,OAAO;GAAS,aAChB,OAAO,cAAc,KAAA;GAAS,aAAA;EAAA,GAAA,IAAA,CAAA,EAAA,CAAA,CAI9C,EAAA,CAAA,CAEJ;CACH,CAAC;CACH,OAAO;AACT"}
@@ -0,0 +1,64 @@
1
+ import * as css from '@zerodep-dev/vue-tsx-pro-tsx/styles';
2
+ import { type VNodeChild } from 'vue';
3
+ import { type ButtonBaseProps } from '../base/ButtonBase';
4
+ import { type ListboxViewProps, type OptionRenderState } from '../input/Listbox';
5
+ import { type ListboxOption, type OptionMapping } from '../input/list-state';
6
+ import { type PartProps } from '../utils/props';
7
+ import { type DialogProps } from './Dialog';
8
+ /** 交给触发器的属性:展开到按钮上 */
9
+ export interface CommandPaletteTriggerProps {
10
+ /** 打开面板 */
11
+ onClick: (event: MouseEvent) => void;
12
+ /** 告诉读屏这个按钮会打开对话框 */
13
+ 'aria-haspopup': 'dialog';
14
+ /** 面板是否打开 */
15
+ 'aria-expanded': boolean;
16
+ }
17
+ /** 与数据类型无关的属性;未声明的属性落到对话框(dialog)上 */
18
+ export interface CommandPaletteBaseProps<T> extends Omit<DialogProps, 'open' | 'title' | 'description' | 'footer' | 'children' | 'onSelect'> {
19
+ /** 是否打开:父级可以写 _open={x};快捷键、触发按钮、选中、Esc 都会改它 */
20
+ _open?: boolean;
21
+ /** 数据:ListboxOption、字符串,或任意数据加 toOption */
22
+ items: readonly T[];
23
+ /** 执行了一项(回车或点击):面板随即关闭 */
24
+ onAction: (item: T) => void;
25
+ /** 输入框里的文字:父级可以写 _inputValue={x}(远程搜索时据此取数据);每次打开清空 */
26
+ _inputValue?: string;
27
+ /** 过滤:默认按选项文字与说明匹配(忽略大小写与重音);函数自定义;false 不过滤(远程搜索,items 就是结果) */
28
+ filter?: false | ((item: T, query: string) => boolean);
29
+ /** 正在取结果(远程搜索):没有结果时列表里是骨架行,已有结果时顶部显示进度条 */
30
+ loading?: boolean;
31
+ /** 打开面板的快捷键,默认 'Mod+K';false 不注册 */
32
+ hotkey?: string | false;
33
+ /** 输入框的占位文字,默认取语言包(搜索文档) */
34
+ placeholder?: string;
35
+ /** 面板的名称(读屏念的),默认取语言包(搜索) */
36
+ label?: string;
37
+ /** 触发器:`(props) => <IconButton {...props} icon={Search} aria-label="搜索" />`;默认是一个像搜索框的按钮,false 不渲染 */
38
+ trigger?: ((props: CommandPaletteTriggerProps) => VNodeChild) | false;
39
+ /** 自定义选项内容 */
40
+ renderOption?: (item: T, state: OptionRenderState) => VNodeChild;
41
+ /** 没有匹配时显示的内容;默认是 Empty(文案取语言包) */
42
+ empty?: VNodeChild;
43
+ /** 默认触发器的部件属性 */
44
+ propsTrigger?: Partial<ButtonBaseProps>;
45
+ /** 输入框的部件属性 */
46
+ propsInput?: PartProps<'input'>;
47
+ /** 列表的部件属性 */
48
+ propsListbox?: Partial<ListboxViewProps<T>>;
49
+ }
50
+ /** 命令面板的属性;items 不是 ListboxOption 或字符串时要给 toOption */
51
+ export type CommandPaletteProps<T = ListboxOption> = CommandPaletteBaseProps<T> & OptionMapping<T>;
52
+ /** CommandPalette 的样式:dialog、search、input、listbox、trigger、triggerText、triggerLabel */
53
+ export declare const commandPaletteStyles: Readonly<{
54
+ body: css.CompiledStyles;
55
+ dialog: css.CompiledStyles;
56
+ input: css.CompiledStyles;
57
+ listbox: css.CompiledStyles;
58
+ search: css.CompiledStyles;
59
+ trigger: css.CompiledStyles;
60
+ triggerLabel: css.CompiledStyles;
61
+ triggerText: css.CompiledStyles;
62
+ }>;
63
+ /** 命令面板:快捷键打开的搜索对话框 */
64
+ export declare const CommandPalette: <T>(props: CommandPaletteProps<T>) => import("@zerodep-dev/vue-tsx-pro-tsx").TsxNode;