@zerodep-dev/vue-tsx-pro-ui 0.0.0-stage → 0.2.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 (1129) 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/code-editor/CodeEditor.d.ts +18 -0
  153. package/dist/code-editor/CodeEditor.js +57 -0
  154. package/dist/code-editor/CodeEditor.js.map +1 -0
  155. package/dist/code-editor/editor.d.ts +52 -0
  156. package/dist/code-editor/editor.js +225 -0
  157. package/dist/code-editor/editor.js.map +1 -0
  158. package/dist/code-editor/index.d.ts +9 -0
  159. package/dist/code-editor/index.js +3 -0
  160. package/dist/config/Provider.d.ts +52 -0
  161. package/dist/config/Provider.js +111 -0
  162. package/dist/config/Provider.js.map +1 -0
  163. package/dist/config/context.d.ts +90 -0
  164. package/dist/config/context.js +58 -0
  165. package/dist/config/context.js.map +1 -0
  166. package/dist/config/createUi.d.ts +52 -0
  167. package/dist/config/createUi.js +96 -0
  168. package/dist/config/createUi.js.map +1 -0
  169. package/dist/config/defaults.d.ts +71 -0
  170. package/dist/config/defaults.js +45 -0
  171. package/dist/config/defaults.js.map +1 -0
  172. package/dist/config/lang/en-US.d.ts +3 -0
  173. package/dist/config/lang/en-US.js +404 -0
  174. package/dist/config/lang/en-US.js.map +1 -0
  175. package/dist/config/lang/format.d.ts +51 -0
  176. package/dist/config/lang/format.js +120 -0
  177. package/dist/config/lang/format.js.map +1 -0
  178. package/dist/config/lang/lang.d.ts +666 -0
  179. package/dist/config/lang/lang.js +31 -0
  180. package/dist/config/lang/lang.js.map +1 -0
  181. package/dist/config/lang/messages.d.ts +12 -0
  182. package/dist/config/lang/messages.js +36 -0
  183. package/dist/config/lang/messages.js.map +1 -0
  184. package/dist/config/lang/zh-CN.d.ts +3 -0
  185. package/dist/config/lang/zh-CN.js +404 -0
  186. package/dist/config/lang/zh-CN.js.map +1 -0
  187. package/dist/config/pinyin.d.ts +3 -0
  188. package/dist/config/pinyin.js +26 -0
  189. package/dist/config/pinyin.js.map +1 -0
  190. package/dist/config/query-state.d.ts +61 -0
  191. package/dist/config/query-state.js +113 -0
  192. package/dist/config/query-state.js.map +1 -0
  193. package/dist/config/shiki.d.ts +13 -0
  194. package/dist/config/shiki.js +97 -0
  195. package/dist/config/shiki.js.map +1 -0
  196. package/dist/config/styles.d.ts +108 -0
  197. package/dist/config/styles.js +59 -0
  198. package/dist/config/styles.js.map +1 -0
  199. package/dist/config/theme/boot.d.ts +97 -0
  200. package/dist/config/theme/boot.js +90 -0
  201. package/dist/config/theme/boot.js.map +1 -0
  202. package/dist/config/theme/builtin.d.ts +21 -0
  203. package/dist/config/theme/builtin.js +58 -0
  204. package/dist/config/theme/builtin.js.map +1 -0
  205. package/dist/config/theme/coffee.d.ts +84 -0
  206. package/dist/config/theme/coffee.js +102 -0
  207. package/dist/config/theme/coffee.js.map +1 -0
  208. package/dist/config/theme/cyberpunk.d.ts +110 -0
  209. package/dist/config/theme/cyberpunk.js +125 -0
  210. package/dist/config/theme/cyberpunk.js.map +1 -0
  211. package/dist/config/theme/dark.d.ts +90 -0
  212. package/dist/config/theme/dark.js +106 -0
  213. package/dist/config/theme/dark.js.map +1 -0
  214. package/dist/config/theme/festive.d.ts +93 -0
  215. package/dist/config/theme/festive.js +110 -0
  216. package/dist/config/theme/festive.js.map +1 -0
  217. package/dist/config/theme/forest.d.ts +93 -0
  218. package/dist/config/theme/forest.js +109 -0
  219. package/dist/config/theme/forest.js.map +1 -0
  220. package/dist/config/theme/high-contrast.d.ts +103 -0
  221. package/dist/config/theme/high-contrast.js +119 -0
  222. package/dist/config/theme/high-contrast.js.map +1 -0
  223. package/dist/config/theme/lemon.d.ts +103 -0
  224. package/dist/config/theme/lemon.js +119 -0
  225. package/dist/config/theme/lemon.js.map +1 -0
  226. package/dist/config/theme/light.d.ts +107 -0
  227. package/dist/config/theme/light.js +122 -0
  228. package/dist/config/theme/light.js.map +1 -0
  229. package/dist/config/theme/midnight.d.ts +86 -0
  230. package/dist/config/theme/midnight.js +103 -0
  231. package/dist/config/theme/midnight.js.map +1 -0
  232. package/dist/config/theme/ocean.d.ts +103 -0
  233. package/dist/config/theme/ocean.js +119 -0
  234. package/dist/config/theme/ocean.js.map +1 -0
  235. package/dist/config/theme/paper.d.ts +101 -0
  236. package/dist/config/theme/paper.js +117 -0
  237. package/dist/config/theme/paper.js.map +1 -0
  238. package/dist/config/theme/preference.d.ts +34 -0
  239. package/dist/config/theme/preference.js +67 -0
  240. package/dist/config/theme/preference.js.map +1 -0
  241. package/dist/config/theme/sakura.d.ts +103 -0
  242. package/dist/config/theme/sakura.js +119 -0
  243. package/dist/config/theme/sakura.js.map +1 -0
  244. package/dist/config/theme/theme.d.ts +59 -0
  245. package/dist/config/theme/theme.js +68 -0
  246. package/dist/config/theme/theme.js.map +1 -0
  247. package/dist/config/theme/token-names.d.ts +1897 -0
  248. package/dist/config/theme/tokens.d.ts +833 -0
  249. package/dist/config/theme/tokens.js +480 -0
  250. package/dist/config/theme/tokens.js.map +1 -0
  251. package/dist/config/vue-router.d.ts +67 -0
  252. package/dist/config/vue-router.js +143 -0
  253. package/dist/config/vue-router.js.map +1 -0
  254. package/dist/date/Calendar.d.ts +36 -0
  255. package/dist/date/Calendar.js +83 -0
  256. package/dist/date/Calendar.js.map +1 -0
  257. package/dist/date/CalendarBoard.d.ts +79 -0
  258. package/dist/date/CalendarBoard.js +403 -0
  259. package/dist/date/CalendarBoard.js.map +1 -0
  260. package/dist/date/CalendarView.d.ts +86 -0
  261. package/dist/date/CalendarView.js +427 -0
  262. package/dist/date/CalendarView.js.map +1 -0
  263. package/dist/date/Countdown.d.ts +45 -0
  264. package/dist/date/Countdown.js +75 -0
  265. package/dist/date/Countdown.js.map +1 -0
  266. package/dist/date/DateField.d.ts +34 -0
  267. package/dist/date/DateField.js +124 -0
  268. package/dist/date/DateField.js.map +1 -0
  269. package/dist/date/DatePicker.d.ts +41 -0
  270. package/dist/date/DatePicker.js +272 -0
  271. package/dist/date/DatePicker.js.map +1 -0
  272. package/dist/date/DateRangePicker.d.ts +71 -0
  273. package/dist/date/DateRangePicker.js +411 -0
  274. package/dist/date/DateRangePicker.js.map +1 -0
  275. package/dist/date/DateSegmentGroup.d.ts +38 -0
  276. package/dist/date/DateSegmentGroup.js +176 -0
  277. package/dist/date/DateSegmentGroup.js.map +1 -0
  278. package/dist/date/DateTime.d.ts +21 -0
  279. package/dist/date/DateTime.js +39 -0
  280. package/dist/date/DateTime.js.map +1 -0
  281. package/dist/date/QuarterCalendar.d.ts +22 -0
  282. package/dist/date/QuarterCalendar.js +231 -0
  283. package/dist/date/QuarterCalendar.js.map +1 -0
  284. package/dist/date/RangeCalendar.d.ts +24 -0
  285. package/dist/date/RangeCalendar.js +89 -0
  286. package/dist/date/RangeCalendar.js.map +1 -0
  287. package/dist/date/RelativeTime.d.ts +16 -0
  288. package/dist/date/RelativeTime.js +61 -0
  289. package/dist/date/RelativeTime.js.map +1 -0
  290. package/dist/date/SegmentedField.d.ts +60 -0
  291. package/dist/date/SegmentedField.js +175 -0
  292. package/dist/date/SegmentedField.js.map +1 -0
  293. package/dist/date/TimeField.d.ts +36 -0
  294. package/dist/date/TimeField.js +56 -0
  295. package/dist/date/TimeField.js.map +1 -0
  296. package/dist/date/TimePicker.d.ts +25 -0
  297. package/dist/date/TimePicker.js +206 -0
  298. package/dist/date/TimePicker.js.map +1 -0
  299. package/dist/date/calendar-state.d.ts +119 -0
  300. package/dist/date/calendar-state.js +267 -0
  301. package/dist/date/calendar-state.js.map +1 -0
  302. package/dist/date/clock.d.ts +11 -0
  303. package/dist/date/clock.js +37 -0
  304. package/dist/date/clock.js.map +1 -0
  305. package/dist/date/date-locale.d.ts +67 -0
  306. package/dist/date/date-locale.js +89 -0
  307. package/dist/date/date-locale.js.map +1 -0
  308. package/dist/date/date-segments.d.ts +132 -0
  309. package/dist/date/date-segments.js +410 -0
  310. package/dist/date/date-segments.js.map +1 -0
  311. package/dist/date/picker-popover.d.ts +88 -0
  312. package/dist/date/picker-popover.js +126 -0
  313. package/dist/date/picker-popover.js.map +1 -0
  314. package/dist/diagram/Diagram.d.ts +223 -0
  315. package/dist/diagram/Diagram.js +1121 -0
  316. package/dist/diagram/Diagram.js.map +1 -0
  317. package/dist/diagram/DiagramControls.d.ts +35 -0
  318. package/dist/diagram/DiagramControls.js +114 -0
  319. package/dist/diagram/DiagramControls.js.map +1 -0
  320. package/dist/diagram/DiagramLanes.d.ts +49 -0
  321. package/dist/diagram/DiagramLanes.js +92 -0
  322. package/dist/diagram/DiagramLanes.js.map +1 -0
  323. package/dist/diagram/DiagramMinimap.d.ts +39 -0
  324. package/dist/diagram/DiagramMinimap.js +133 -0
  325. package/dist/diagram/DiagramMinimap.js.map +1 -0
  326. package/dist/diagram/DiagramNode.d.ts +65 -0
  327. package/dist/diagram/DiagramNode.js +142 -0
  328. package/dist/diagram/DiagramNode.js.map +1 -0
  329. package/dist/diagram/controller.d.ts +68 -0
  330. package/dist/diagram/controller.js +117 -0
  331. package/dist/diagram/controller.js.map +1 -0
  332. package/dist/diagram/export.d.ts +14 -0
  333. package/dist/diagram/export.js +115 -0
  334. package/dist/diagram/export.js.map +1 -0
  335. package/dist/diagram/geometry.d.ts +65 -0
  336. package/dist/diagram/geometry.js +219 -0
  337. package/dist/diagram/geometry.js.map +1 -0
  338. package/dist/diagram/index.d.ts +20 -0
  339. package/dist/diagram/index.js +12 -0
  340. package/dist/diagram/layout.d.ts +57 -0
  341. package/dist/diagram/layout.js +50 -0
  342. package/dist/diagram/layout.js.map +1 -0
  343. package/dist/diagram/messages.d.ts +28 -0
  344. package/dist/diagram/messages.js +30 -0
  345. package/dist/diagram/messages.js.map +1 -0
  346. package/dist/diagram/route.d.ts +81 -0
  347. package/dist/diagram/route.js +327 -0
  348. package/dist/diagram/route.js.map +1 -0
  349. package/dist/display/Accordion.d.ts +71 -0
  350. package/dist/display/Accordion.js +219 -0
  351. package/dist/display/Accordion.js.map +1 -0
  352. package/dist/display/AnimatedNumber.d.ts +44 -0
  353. package/dist/display/AnimatedNumber.js +97 -0
  354. package/dist/display/AnimatedNumber.js.map +1 -0
  355. package/dist/display/Avatar.d.ts +74 -0
  356. package/dist/display/Avatar.js +158 -0
  357. package/dist/display/Avatar.js.map +1 -0
  358. package/dist/display/AvatarGroup.d.ts +29 -0
  359. package/dist/display/AvatarGroup.js +67 -0
  360. package/dist/display/AvatarGroup.js.map +1 -0
  361. package/dist/display/Card.d.ts +219 -0
  362. package/dist/display/Card.js +319 -0
  363. package/dist/display/Card.js.map +1 -0
  364. package/dist/display/Checklist.d.ts +93 -0
  365. package/dist/display/Checklist.js +260 -0
  366. package/dist/display/Checklist.js.map +1 -0
  367. package/dist/display/Collapse.d.ts +24 -0
  368. package/dist/display/Collapse.js +65 -0
  369. package/dist/display/Collapse.js.map +1 -0
  370. package/dist/display/Collapsible.d.ts +12 -0
  371. package/dist/display/Collapsible.js +41 -0
  372. package/dist/display/Collapsible.js.map +1 -0
  373. package/dist/display/Descriptions.d.ts +88 -0
  374. package/dist/display/Descriptions.js +185 -0
  375. package/dist/display/Descriptions.js.map +1 -0
  376. package/dist/display/Ellipsis.d.ts +29 -0
  377. package/dist/display/Ellipsis.js +111 -0
  378. package/dist/display/Ellipsis.js.map +1 -0
  379. package/dist/display/FieldCompare.d.ts +58 -0
  380. package/dist/display/FieldCompare.js +205 -0
  381. package/dist/display/FieldCompare.js.map +1 -0
  382. package/dist/display/Gauge.d.ts +60 -0
  383. package/dist/display/Gauge.js +215 -0
  384. package/dist/display/Gauge.js.map +1 -0
  385. package/dist/display/Image.d.ts +87 -0
  386. package/dist/display/Image.js +212 -0
  387. package/dist/display/Image.js.map +1 -0
  388. package/dist/display/ItemList.d.ts +69 -0
  389. package/dist/display/ItemList.js +147 -0
  390. package/dist/display/ItemList.js.map +1 -0
  391. package/dist/display/Marquee.d.ts +59 -0
  392. package/dist/display/Marquee.js +155 -0
  393. package/dist/display/Marquee.js.map +1 -0
  394. package/dist/display/ProportionBar.d.ts +55 -0
  395. package/dist/display/ProportionBar.js +99 -0
  396. package/dist/display/ProportionBar.js.map +1 -0
  397. package/dist/display/Sortable.d.ts +43 -0
  398. package/dist/display/Sortable.js +163 -0
  399. package/dist/display/Sortable.js.map +1 -0
  400. package/dist/display/Sparkline.d.ts +48 -0
  401. package/dist/display/Sparkline.js +130 -0
  402. package/dist/display/Sparkline.js.map +1 -0
  403. package/dist/display/Stat.d.ts +105 -0
  404. package/dist/display/Stat.js +268 -0
  405. package/dist/display/Stat.js.map +1 -0
  406. package/dist/display/Timeline.d.ts +106 -0
  407. package/dist/display/Timeline.js +257 -0
  408. package/dist/display/Timeline.js.map +1 -0
  409. package/dist/display/Tree.d.ts +132 -0
  410. package/dist/display/Tree.js +645 -0
  411. package/dist/display/Tree.js.map +1 -0
  412. package/dist/display/VirtualList.d.ts +80 -0
  413. package/dist/display/VirtualList.js +166 -0
  414. package/dist/display/VirtualList.js.map +1 -0
  415. package/dist/display/Watermark.d.ts +39 -0
  416. package/dist/display/Watermark.js +130 -0
  417. package/dist/display/Watermark.js.map +1 -0
  418. package/dist/docs-kit/CodeGroup.d.ts +29 -0
  419. package/dist/docs-kit/CodeGroup.js +81 -0
  420. package/dist/docs-kit/CodeGroup.js.map +1 -0
  421. package/dist/docs-kit/CodePreview.d.ts +60 -0
  422. package/dist/docs-kit/CodePreview.js +183 -0
  423. package/dist/docs-kit/CodePreview.js.map +1 -0
  424. package/dist/docs-kit/ColorSwatch.d.ts +28 -0
  425. package/dist/docs-kit/ColorSwatch.js +85 -0
  426. package/dist/docs-kit/ColorSwatch.js.map +1 -0
  427. package/dist/docs-kit/PropsTable.d.ts +73 -0
  428. package/dist/docs-kit/PropsTable.js +122 -0
  429. package/dist/docs-kit/PropsTable.js.map +1 -0
  430. package/dist/docs-kit/index.d.ts +13 -0
  431. package/dist/docs-kit/index.js +6 -0
  432. package/dist/docs-kit/messages.d.ts +25 -0
  433. package/dist/docs-kit/messages.js +30 -0
  434. package/dist/docs-kit/messages.js.map +1 -0
  435. package/dist/feedback/Alert.d.ts +83 -0
  436. package/dist/feedback/Alert.js +179 -0
  437. package/dist/feedback/Alert.js.map +1 -0
  438. package/dist/feedback/Banner.d.ts +60 -0
  439. package/dist/feedback/Banner.js +122 -0
  440. package/dist/feedback/Banner.js.map +1 -0
  441. package/dist/feedback/Empty.d.ts +38 -0
  442. package/dist/feedback/Empty.js +114 -0
  443. package/dist/feedback/Empty.js.map +1 -0
  444. package/dist/feedback/LoadingBar.d.ts +45 -0
  445. package/dist/feedback/LoadingBar.js +124 -0
  446. package/dist/feedback/LoadingBar.js.map +1 -0
  447. package/dist/feedback/LoadingOverlay.d.ts +29 -0
  448. package/dist/feedback/LoadingOverlay.js +70 -0
  449. package/dist/feedback/LoadingOverlay.js.map +1 -0
  450. package/dist/feedback/Progress.d.ts +215 -0
  451. package/dist/feedback/Progress.js +437 -0
  452. package/dist/feedback/Progress.js.map +1 -0
  453. package/dist/feedback/Result.d.ts +69 -0
  454. package/dist/feedback/Result.js +165 -0
  455. package/dist/feedback/Result.js.map +1 -0
  456. package/dist/feedback/Skeleton.d.ts +50 -0
  457. package/dist/feedback/Skeleton.js +100 -0
  458. package/dist/feedback/Skeleton.js.map +1 -0
  459. package/dist/feedback/SkeletonText.d.ts +25 -0
  460. package/dist/feedback/SkeletonText.js +40 -0
  461. package/dist/feedback/SkeletonText.js.map +1 -0
  462. package/dist/feedback/Toast.d.ts +204 -0
  463. package/dist/feedback/Toast.js +572 -0
  464. package/dist/feedback/Toast.js.map +1 -0
  465. package/dist/form/Field.d.ts +165 -0
  466. package/dist/form/Field.js +338 -0
  467. package/dist/form/Field.js.map +1 -0
  468. package/dist/form/Form.d.ts +14 -0
  469. package/dist/form/Form.js +66 -0
  470. package/dist/form/Form.js.map +1 -0
  471. package/dist/form/FormErrorSummary.d.ts +23 -0
  472. package/dist/form/FormErrorSummary.js +102 -0
  473. package/dist/form/FormErrorSummary.js.map +1 -0
  474. package/dist/form/FormSection.d.ts +66 -0
  475. package/dist/form/FormSection.js +227 -0
  476. package/dist/form/FormSection.js.map +1 -0
  477. package/dist/form/FormValue.d.ts +17 -0
  478. package/dist/form/FormValue.js +40 -0
  479. package/dist/form/FormValue.js.map +1 -0
  480. package/dist/form/field-layout.d.ts +34 -0
  481. package/dist/form/field-layout.js +39 -0
  482. package/dist/form/field-layout.js.map +1 -0
  483. package/dist/form/form-constraints.d.ts +38 -0
  484. package/dist/form/form-constraints.js +131 -0
  485. package/dist/form/form-constraints.js.map +1 -0
  486. package/dist/form/leave-confirmation.d.ts +9 -0
  487. package/dist/form/leave-confirmation.js +31 -0
  488. package/dist/form/leave-confirmation.js.map +1 -0
  489. package/dist/form/schemas.d.ts +52 -0
  490. package/dist/form/schemas.js +97 -0
  491. package/dist/form/schemas.js.map +1 -0
  492. package/dist/form/useForm.d.ts +195 -0
  493. package/dist/form/useForm.js +416 -0
  494. package/dist/form/useForm.js.map +1 -0
  495. package/dist/index.d.ts +285 -0
  496. package/dist/index.js +285 -0
  497. package/dist/input/Autocomplete.d.ts +14 -0
  498. package/dist/input/Autocomplete.js +35 -0
  499. package/dist/input/Autocomplete.js.map +1 -0
  500. package/dist/input/Cascader.d.ts +86 -0
  501. package/dist/input/Cascader.js +593 -0
  502. package/dist/input/Cascader.js.map +1 -0
  503. package/dist/input/CharacterCount.d.ts +21 -0
  504. package/dist/input/CharacterCount.js +47 -0
  505. package/dist/input/CharacterCount.js.map +1 -0
  506. package/dist/input/Checkbox.d.ts +93 -0
  507. package/dist/input/Checkbox.js +250 -0
  508. package/dist/input/Checkbox.js.map +1 -0
  509. package/dist/input/ColorField.d.ts +37 -0
  510. package/dist/input/ColorField.js +143 -0
  511. package/dist/input/ColorField.js.map +1 -0
  512. package/dist/input/Combobox.d.ts +75 -0
  513. package/dist/input/Combobox.js +321 -0
  514. package/dist/input/Combobox.js.map +1 -0
  515. package/dist/input/ConditionBuilder.d.ts +55 -0
  516. package/dist/input/ConditionBuilder.js +471 -0
  517. package/dist/input/ConditionBuilder.js.map +1 -0
  518. package/dist/input/ControlGroup.d.ts +26 -0
  519. package/dist/input/ControlGroup.js +50 -0
  520. package/dist/input/ControlGroup.js.map +1 -0
  521. package/dist/input/FileDrop.d.ts +49 -0
  522. package/dist/input/FileDrop.js +201 -0
  523. package/dist/input/FileDrop.js.map +1 -0
  524. package/dist/input/ListPopover.d.ts +39 -0
  525. package/dist/input/ListPopover.js +81 -0
  526. package/dist/input/ListPopover.js.map +1 -0
  527. package/dist/input/Listbox.d.ts +91 -0
  528. package/dist/input/Listbox.js +408 -0
  529. package/dist/input/Listbox.js.map +1 -0
  530. package/dist/input/Mentions.d.ts +74 -0
  531. package/dist/input/Mentions.js +287 -0
  532. package/dist/input/Mentions.js.map +1 -0
  533. package/dist/input/NumberField.d.ts +64 -0
  534. package/dist/input/NumberField.js +288 -0
  535. package/dist/input/NumberField.js.map +1 -0
  536. package/dist/input/NumberRangeField.d.ts +58 -0
  537. package/dist/input/NumberRangeField.js +157 -0
  538. package/dist/input/NumberRangeField.js.map +1 -0
  539. package/dist/input/OtpField.d.ts +58 -0
  540. package/dist/input/OtpField.js +200 -0
  541. package/dist/input/OtpField.js.map +1 -0
  542. package/dist/input/PeoplePicker.d.ts +42 -0
  543. package/dist/input/PeoplePicker.js +185 -0
  544. package/dist/input/PeoplePicker.js.map +1 -0
  545. package/dist/input/PeoplePickerPanel.d.ts +42 -0
  546. package/dist/input/PeoplePickerPanel.js +357 -0
  547. package/dist/input/PeoplePickerPanel.js.map +1 -0
  548. package/dist/input/Radio.d.ts +90 -0
  549. package/dist/input/Radio.js +211 -0
  550. package/dist/input/Radio.js.map +1 -0
  551. package/dist/input/Rating.d.ts +62 -0
  552. package/dist/input/Rating.js +225 -0
  553. package/dist/input/Rating.js.map +1 -0
  554. package/dist/input/Select.d.ts +97 -0
  555. package/dist/input/Select.js +455 -0
  556. package/dist/input/Select.js.map +1 -0
  557. package/dist/input/SelectedTags.d.ts +28 -0
  558. package/dist/input/SelectedTags.js +81 -0
  559. package/dist/input/SelectedTags.js.map +1 -0
  560. package/dist/input/Slider.d.ts +99 -0
  561. package/dist/input/Slider.js +343 -0
  562. package/dist/input/Slider.js.map +1 -0
  563. package/dist/input/Switch.d.ts +63 -0
  564. package/dist/input/Switch.js +198 -0
  565. package/dist/input/Switch.js.map +1 -0
  566. package/dist/input/TagsInput.d.ts +70 -0
  567. package/dist/input/TagsInput.js +314 -0
  568. package/dist/input/TagsInput.js.map +1 -0
  569. package/dist/input/TextField.d.ts +51 -0
  570. package/dist/input/TextField.js +185 -0
  571. package/dist/input/TextField.js.map +1 -0
  572. package/dist/input/Textarea.d.ts +50 -0
  573. package/dist/input/Textarea.js +146 -0
  574. package/dist/input/Textarea.js.map +1 -0
  575. package/dist/input/ToggleGroup.d.ts +82 -0
  576. package/dist/input/ToggleGroup.js +211 -0
  577. package/dist/input/ToggleGroup.js.map +1 -0
  578. package/dist/input/Transfer.d.ts +67 -0
  579. package/dist/input/Transfer.js +407 -0
  580. package/dist/input/Transfer.js.map +1 -0
  581. package/dist/input/TreeSelect.d.ts +94 -0
  582. package/dist/input/TreeSelect.js +412 -0
  583. package/dist/input/TreeSelect.js.map +1 -0
  584. package/dist/input/Upload.d.ts +143 -0
  585. package/dist/input/Upload.js +598 -0
  586. package/dist/input/Upload.js.map +1 -0
  587. package/dist/input/choice-styles.d.ts +117 -0
  588. package/dist/input/choice-styles.js +176 -0
  589. package/dist/input/choice-styles.js.map +1 -0
  590. package/dist/input/condition.d.ts +153 -0
  591. package/dist/input/condition.js +187 -0
  592. package/dist/input/condition.js.map +1 -0
  593. package/dist/input/control.d.ts +160 -0
  594. package/dist/input/control.js +236 -0
  595. package/dist/input/control.js.map +1 -0
  596. package/dist/input/list-state.d.ts +118 -0
  597. package/dist/input/list-state.js +186 -0
  598. package/dist/input/list-state.js.map +1 -0
  599. package/dist/input/people.d.ts +66 -0
  600. package/dist/input/people.js +47 -0
  601. package/dist/input/people.js.map +1 -0
  602. package/dist/input/remote-items.d.ts +22 -0
  603. package/dist/input/remote-items.js +41 -0
  604. package/dist/input/remote-items.js.map +1 -0
  605. package/dist/input/text-format.d.ts +46 -0
  606. package/dist/input/text-format.js +64 -0
  607. package/dist/input/text-format.js.map +1 -0
  608. package/dist/layout/Affix.d.ts +32 -0
  609. package/dist/layout/Affix.js +81 -0
  610. package/dist/layout/Affix.js.map +1 -0
  611. package/dist/layout/AsideLayout.d.ts +45 -0
  612. package/dist/layout/AsideLayout.js +69 -0
  613. package/dist/layout/AsideLayout.js.map +1 -0
  614. package/dist/layout/BackTop.d.ts +16 -0
  615. package/dist/layout/BackTop.js +83 -0
  616. package/dist/layout/BackTop.js.map +1 -0
  617. package/dist/layout/Container.d.ts +60 -0
  618. package/dist/layout/Container.js +62 -0
  619. package/dist/layout/Container.js.map +1 -0
  620. package/dist/layout/Flex.d.ts +116 -0
  621. package/dist/layout/Flex.js +109 -0
  622. package/dist/layout/Flex.js.map +1 -0
  623. package/dist/layout/Grid.d.ts +139 -0
  624. package/dist/layout/Grid.js +168 -0
  625. package/dist/layout/Grid.js.map +1 -0
  626. package/dist/layout/PageScrollbar.d.ts +20 -0
  627. package/dist/layout/PageScrollbar.js +49 -0
  628. package/dist/layout/PageScrollbar.js.map +1 -0
  629. package/dist/layout/Prose.d.ts +19 -0
  630. package/dist/layout/Prose.js +37 -0
  631. package/dist/layout/Prose.js.map +1 -0
  632. package/dist/layout/ResizeHandle.d.ts +28 -0
  633. package/dist/layout/ResizeHandle.js +94 -0
  634. package/dist/layout/ResizeHandle.js.map +1 -0
  635. package/dist/layout/ScrollArea.d.ts +99 -0
  636. package/dist/layout/ScrollArea.js +344 -0
  637. package/dist/layout/ScrollArea.js.map +1 -0
  638. package/dist/layout/Separator.d.ts +47 -0
  639. package/dist/layout/Separator.js +96 -0
  640. package/dist/layout/Separator.js.map +1 -0
  641. package/dist/layout/Splitter.d.ts +75 -0
  642. package/dist/layout/Splitter.js +236 -0
  643. package/dist/layout/Splitter.js.map +1 -0
  644. package/dist/layout/ViewportFill.d.ts +26 -0
  645. package/dist/layout/ViewportFill.js +59 -0
  646. package/dist/layout/ViewportFill.js.map +1 -0
  647. package/dist/navigation/Breadcrumbs.d.ts +59 -0
  648. package/dist/navigation/Breadcrumbs.js +150 -0
  649. package/dist/navigation/Breadcrumbs.js.map +1 -0
  650. package/dist/navigation/NavBar.d.ts +35 -0
  651. package/dist/navigation/NavBar.js +182 -0
  652. package/dist/navigation/NavBar.js.map +1 -0
  653. package/dist/navigation/NavList.d.ts +112 -0
  654. package/dist/navigation/NavList.js +375 -0
  655. package/dist/navigation/NavList.js.map +1 -0
  656. package/dist/navigation/PageJump.d.ts +27 -0
  657. package/dist/navigation/PageJump.js +77 -0
  658. package/dist/navigation/PageJump.js.map +1 -0
  659. package/dist/navigation/PageSizeSelect.d.ts +19 -0
  660. package/dist/navigation/PageSizeSelect.js +65 -0
  661. package/dist/navigation/PageSizeSelect.js.map +1 -0
  662. package/dist/navigation/Pager.d.ts +30 -0
  663. package/dist/navigation/Pager.js +111 -0
  664. package/dist/navigation/Pager.js.map +1 -0
  665. package/dist/navigation/Pagination.d.ts +51 -0
  666. package/dist/navigation/Pagination.js +157 -0
  667. package/dist/navigation/Pagination.js.map +1 -0
  668. package/dist/navigation/PaginationBar.d.ts +54 -0
  669. package/dist/navigation/PaginationBar.js +125 -0
  670. package/dist/navigation/PaginationBar.js.map +1 -0
  671. package/dist/navigation/SkipLink.d.ts +16 -0
  672. package/dist/navigation/SkipLink.js +58 -0
  673. package/dist/navigation/SkipLink.js.map +1 -0
  674. package/dist/navigation/Steps.d.ts +93 -0
  675. package/dist/navigation/Steps.js +198 -0
  676. package/dist/navigation/Steps.js.map +1 -0
  677. package/dist/navigation/TableOfContents.d.ts +32 -0
  678. package/dist/navigation/TableOfContents.js +119 -0
  679. package/dist/navigation/TableOfContents.js.map +1 -0
  680. package/dist/navigation/Tabs.d.ts +208 -0
  681. package/dist/navigation/Tabs.js +626 -0
  682. package/dist/navigation/Tabs.js.map +1 -0
  683. package/dist/navigation/Toolbar.d.ts +39 -0
  684. package/dist/navigation/Toolbar.js +67 -0
  685. package/dist/navigation/Toolbar.js.map +1 -0
  686. package/dist/overlay/AlertDialog.d.ts +43 -0
  687. package/dist/overlay/AlertDialog.js +106 -0
  688. package/dist/overlay/AlertDialog.js.map +1 -0
  689. package/dist/overlay/CommandPalette.d.ts +64 -0
  690. package/dist/overlay/CommandPalette.js +250 -0
  691. package/dist/overlay/CommandPalette.js.map +1 -0
  692. package/dist/overlay/ContextMenu.d.ts +21 -0
  693. package/dist/overlay/ContextMenu.js +76 -0
  694. package/dist/overlay/ContextMenu.js.map +1 -0
  695. package/dist/overlay/Dialog.d.ts +70 -0
  696. package/dist/overlay/Dialog.js +91 -0
  697. package/dist/overlay/Dialog.js.map +1 -0
  698. package/dist/overlay/Drawer.d.ts +186 -0
  699. package/dist/overlay/Drawer.js +214 -0
  700. package/dist/overlay/Drawer.js.map +1 -0
  701. package/dist/overlay/HoverCard.d.ts +48 -0
  702. package/dist/overlay/HoverCard.js +86 -0
  703. package/dist/overlay/HoverCard.js.map +1 -0
  704. package/dist/overlay/Lightbox.d.ts +57 -0
  705. package/dist/overlay/Lightbox.js +374 -0
  706. package/dist/overlay/Lightbox.js.map +1 -0
  707. package/dist/overlay/Menu.d.ts +218 -0
  708. package/dist/overlay/Menu.js +816 -0
  709. package/dist/overlay/Menu.js.map +1 -0
  710. package/dist/overlay/ModalCore.d.ts +132 -0
  711. package/dist/overlay/ModalCore.js +274 -0
  712. package/dist/overlay/ModalCore.js.map +1 -0
  713. package/dist/overlay/Popconfirm.d.ts +49 -0
  714. package/dist/overlay/Popconfirm.js +167 -0
  715. package/dist/overlay/Popconfirm.js.map +1 -0
  716. package/dist/overlay/Popover.d.ts +40 -0
  717. package/dist/overlay/Popover.js +96 -0
  718. package/dist/overlay/Popover.js.map +1 -0
  719. package/dist/overlay/Tooltip.d.ts +47 -0
  720. package/dist/overlay/Tooltip.js +86 -0
  721. package/dist/overlay/Tooltip.js.map +1 -0
  722. package/dist/overlay/Tour.d.ts +74 -0
  723. package/dist/overlay/Tour.js +309 -0
  724. package/dist/overlay/Tour.js.map +1 -0
  725. package/dist/overlay/detached.d.ts +40 -0
  726. package/dist/overlay/detached.js +109 -0
  727. package/dist/overlay/detached.js.map +1 -0
  728. package/dist/patterns/ActionBar.d.ts +29 -0
  729. package/dist/patterns/ActionBar.js +75 -0
  730. package/dist/patterns/ActionBar.js.map +1 -0
  731. package/dist/patterns/AppShell.d.ts +168 -0
  732. package/dist/patterns/AppShell.js +620 -0
  733. package/dist/patterns/AppShell.js.map +1 -0
  734. package/dist/patterns/CommentThread.d.ts +128 -0
  735. package/dist/patterns/CommentThread.js +386 -0
  736. package/dist/patterns/CommentThread.js.map +1 -0
  737. package/dist/patterns/DataImport.d.ts +72 -0
  738. package/dist/patterns/DataImport.js +486 -0
  739. package/dist/patterns/DataImport.js.map +1 -0
  740. package/dist/patterns/DeadlineBadge.d.ts +21 -0
  741. package/dist/patterns/DeadlineBadge.js +76 -0
  742. package/dist/patterns/DeadlineBadge.js.map +1 -0
  743. package/dist/patterns/FilterBar.d.ts +66 -0
  744. package/dist/patterns/FilterBar.js +254 -0
  745. package/dist/patterns/FilterBar.js.map +1 -0
  746. package/dist/patterns/KanbanBoard.d.ts +79 -0
  747. package/dist/patterns/KanbanBoard.js +294 -0
  748. package/dist/patterns/KanbanBoard.js.map +1 -0
  749. package/dist/patterns/NotificationCenter.d.ts +110 -0
  750. package/dist/patterns/NotificationCenter.js +342 -0
  751. package/dist/patterns/NotificationCenter.js.map +1 -0
  752. package/dist/patterns/PageTabs.d.ts +30 -0
  753. package/dist/patterns/PageTabs.js +97 -0
  754. package/dist/patterns/PageTabs.js.map +1 -0
  755. package/dist/patterns/QueryTable.d.ts +67 -0
  756. package/dist/patterns/QueryTable.js +301 -0
  757. package/dist/patterns/QueryTable.js.map +1 -0
  758. package/dist/patterns/StepsForm.d.ts +49 -0
  759. package/dist/patterns/StepsForm.js +130 -0
  760. package/dist/patterns/StepsForm.js.map +1 -0
  761. package/dist/patterns/ThemeSwitcher.d.ts +20 -0
  762. package/dist/patterns/ThemeSwitcher.js +102 -0
  763. package/dist/patterns/ThemeSwitcher.js.map +1 -0
  764. package/dist/patterns/form-dialog.d.ts +62 -0
  765. package/dist/patterns/form-dialog.js +143 -0
  766. package/dist/patterns/form-dialog.js.map +1 -0
  767. package/dist/patterns/index.d.ts +24 -0
  768. package/dist/patterns/index.js +15 -0
  769. package/dist/patterns/messages.d.ts +174 -0
  770. package/dist/patterns/messages.js +186 -0
  771. package/dist/patterns/messages.js.map +1 -0
  772. package/dist/table/ColumnHeaderActions.d.ts +71 -0
  773. package/dist/table/ColumnHeaderActions.js +247 -0
  774. package/dist/table/ColumnHeaderActions.js.map +1 -0
  775. package/dist/table/ColumnResizer.d.ts +12 -0
  776. package/dist/table/ColumnResizer.js +32 -0
  777. package/dist/table/ColumnResizer.js.map +1 -0
  778. package/dist/table/ColumnSettings.d.ts +34 -0
  779. package/dist/table/ColumnSettings.js +136 -0
  780. package/dist/table/ColumnSettings.js.map +1 -0
  781. package/dist/table/ColumnTable.d.ts +51 -0
  782. package/dist/table/ColumnTable.js +140 -0
  783. package/dist/table/ColumnTable.js.map +1 -0
  784. package/dist/table/DataTable.d.ts +44 -0
  785. package/dist/table/DataTable.js +453 -0
  786. package/dist/table/DataTable.js.map +1 -0
  787. package/dist/table/DataTableView.d.ts +328 -0
  788. package/dist/table/DataTableView.js +963 -0
  789. package/dist/table/DataTableView.js.map +1 -0
  790. package/dist/table/PivotTable.d.ts +66 -0
  791. package/dist/table/PivotTable.js +122 -0
  792. package/dist/table/PivotTable.js.map +1 -0
  793. package/dist/table/SelectionBar.d.ts +29 -0
  794. package/dist/table/SelectionBar.js +86 -0
  795. package/dist/table/SelectionBar.js.map +1 -0
  796. package/dist/table/Table.d.ts +169 -0
  797. package/dist/table/Table.js +304 -0
  798. package/dist/table/Table.js.map +1 -0
  799. package/dist/table/TreeDataTable.d.ts +36 -0
  800. package/dist/table/TreeDataTable.js +168 -0
  801. package/dist/table/TreeDataTable.js.map +1 -0
  802. package/dist/table/column-display.d.ts +20 -0
  803. package/dist/table/column-display.js +43 -0
  804. package/dist/table/column-display.js.map +1 -0
  805. package/dist/table/columns.d.ts +244 -0
  806. package/dist/table/columns.js +271 -0
  807. package/dist/table/columns.js.map +1 -0
  808. package/dist/table/csv.d.ts +24 -0
  809. package/dist/table/csv.js +35 -0
  810. package/dist/table/csv.js.map +1 -0
  811. package/dist/table/pivot.d.ts +66 -0
  812. package/dist/table/pivot.js +85 -0
  813. package/dist/table/pivot.js.map +1 -0
  814. package/dist/table/sheet.d.ts +44 -0
  815. package/dist/table/sheet.js +78 -0
  816. package/dist/table/sheet.js.map +1 -0
  817. package/dist/table/table-styles.d.ts +136 -0
  818. package/dist/table/table-styles.js +403 -0
  819. package/dist/table/table-styles.js.map +1 -0
  820. package/dist/table/use-table-query.d.ts +89 -0
  821. package/dist/table/use-table-query.js +194 -0
  822. package/dist/table/use-table-query.js.map +1 -0
  823. package/dist/theme-customize/ThemeCustomizer.d.ts +63 -0
  824. package/dist/theme-customize/ThemeCustomizer.js +361 -0
  825. package/dist/theme-customize/ThemeCustomizer.js.map +1 -0
  826. package/dist/theme-customize/ThemeThumbnail.d.ts +20 -0
  827. package/dist/theme-customize/ThemeThumbnail.js +82 -0
  828. package/dist/theme-customize/ThemeThumbnail.js.map +1 -0
  829. package/dist/theme-customize/contrast.d.ts +27 -0
  830. package/dist/theme-customize/contrast.js +251 -0
  831. package/dist/theme-customize/contrast.js.map +1 -0
  832. package/dist/theme-customize/customize.d.ts +65 -0
  833. package/dist/theme-customize/customize.js +105 -0
  834. package/dist/theme-customize/customize.js.map +1 -0
  835. package/dist/theme-customize/design-tokens.d.ts +31 -0
  836. package/dist/theme-customize/design-tokens.js +183 -0
  837. package/dist/theme-customize/design-tokens.js.map +1 -0
  838. package/dist/theme-customize/index.d.ts +20 -0
  839. package/dist/theme-customize/index.js +9 -0
  840. package/dist/theme-customize/messages.d.ts +74 -0
  841. package/dist/theme-customize/messages.js +142 -0
  842. package/dist/theme-customize/messages.js.map +1 -0
  843. package/dist/theme-customize/palette.d.ts +898 -0
  844. package/dist/theme-customize/palette.js +111 -0
  845. package/dist/theme-customize/palette.js.map +1 -0
  846. package/dist/theme-customize/token-catalog.d.ts +20 -0
  847. package/dist/theme-customize/token-catalog.js +836 -0
  848. package/dist/theme-customize/token-catalog.js.map +1 -0
  849. package/dist/three/background/AuroraBackground.d.ts +30 -0
  850. package/dist/three/background/AuroraBackground.js +80 -0
  851. package/dist/three/background/AuroraBackground.js.map +1 -0
  852. package/dist/three/background/MeshGradient.d.ts +28 -0
  853. package/dist/three/background/MeshGradient.js +76 -0
  854. package/dist/three/background/MeshGradient.js.map +1 -0
  855. package/dist/three/background/ShaderBackground.d.ts +25 -0
  856. package/dist/three/background/ShaderBackground.js +107 -0
  857. package/dist/three/background/ShaderBackground.js.map +1 -0
  858. package/dist/three/core/EffectSurface.d.ts +41 -0
  859. package/dist/three/core/EffectSurface.js +62 -0
  860. package/dist/three/core/EffectSurface.js.map +1 -0
  861. package/dist/three/core/ThreeCanvas.d.ts +39 -0
  862. package/dist/three/core/ThreeCanvas.js +77 -0
  863. package/dist/three/core/ThreeCanvas.js.map +1 -0
  864. package/dist/three/core/dispose.d.ts +9 -0
  865. package/dist/three/core/dispose.js +26 -0
  866. package/dist/three/core/dispose.js.map +1 -0
  867. package/dist/three/core/orbit.d.ts +31 -0
  868. package/dist/three/core/orbit.js +83 -0
  869. package/dist/three/core/orbit.js.map +1 -0
  870. package/dist/three/core/quality.d.ts +59 -0
  871. package/dist/three/core/quality.js +80 -0
  872. package/dist/three/core/quality.js.map +1 -0
  873. package/dist/three/core/renderer.d.ts +110 -0
  874. package/dist/three/core/renderer.js +303 -0
  875. package/dist/three/core/renderer.js.map +1 -0
  876. package/dist/three/core/shaders.d.ts +19 -0
  877. package/dist/three/core/shaders.js +100 -0
  878. package/dist/three/core/shaders.js.map +1 -0
  879. package/dist/three/core/theme-colors.d.ts +30 -0
  880. package/dist/three/core/theme-colors.js +113 -0
  881. package/dist/three/core/theme-colors.js.map +1 -0
  882. package/dist/three/effects/Confetti.d.ts +62 -0
  883. package/dist/three/effects/Confetti.js +242 -0
  884. package/dist/three/effects/Confetti.js.map +1 -0
  885. package/dist/three/effects/ParticleField.d.ts +39 -0
  886. package/dist/three/effects/ParticleField.js +266 -0
  887. package/dist/three/effects/ParticleField.js.map +1 -0
  888. package/dist/three/effects/WaveGrid.d.ts +37 -0
  889. package/dist/three/effects/WaveGrid.js +130 -0
  890. package/dist/three/effects/WaveGrid.js.map +1 -0
  891. package/dist/three/globe/Globe.d.ts +70 -0
  892. package/dist/three/globe/Globe.js +337 -0
  893. package/dist/three/globe/Globe.js.map +1 -0
  894. package/dist/three/globe/land.d.ts +9 -0
  895. package/dist/three/globe/land.js +14 -0
  896. package/dist/three/globe/land.js.map +1 -0
  897. package/dist/three/index.d.ts +24 -0
  898. package/dist/three/index.js +18 -0
  899. package/dist/three/model/ModelViewer.d.ts +63 -0
  900. package/dist/three/model/ModelViewer.js +193 -0
  901. package/dist/three/model/ModelViewer.js.map +1 -0
  902. package/dist/utils/data/clone.d.ts +8 -0
  903. package/dist/utils/data/clone.js +21 -0
  904. package/dist/utils/data/clone.js.map +1 -0
  905. package/dist/utils/data/collation.d.ts +36 -0
  906. package/dist/utils/data/collation.js +69 -0
  907. package/dist/utils/data/collation.js.map +1 -0
  908. package/dist/utils/data/color.d.ts +32 -0
  909. package/dist/utils/data/color.js +90 -0
  910. package/dist/utils/data/color.js.map +1 -0
  911. package/dist/utils/data/date.d.ts +196 -0
  912. package/dist/utils/data/date.js +421 -0
  913. package/dist/utils/data/date.js.map +1 -0
  914. package/dist/utils/data/diff.d.ts +21 -0
  915. package/dist/utils/data/diff.js +43 -0
  916. package/dist/utils/data/diff.js.map +1 -0
  917. package/dist/utils/data/equality.d.ts +5 -0
  918. package/dist/utils/data/equality.js +24 -0
  919. package/dist/utils/data/equality.js.map +1 -0
  920. package/dist/utils/data/history.d.ts +59 -0
  921. package/dist/utils/data/history.js +132 -0
  922. package/dist/utils/data/history.js.map +1 -0
  923. package/dist/utils/data/intl-cache.d.ts +8 -0
  924. package/dist/utils/data/intl-cache.js +19 -0
  925. package/dist/utils/data/intl-cache.js.map +1 -0
  926. package/dist/utils/data/number-parse.d.ts +7 -0
  927. package/dist/utils/data/number-parse.js +45 -0
  928. package/dist/utils/data/number-parse.js.map +1 -0
  929. package/dist/utils/data/number.d.ts +10 -0
  930. package/dist/utils/data/number.js +28 -0
  931. package/dist/utils/data/number.js.map +1 -0
  932. package/dist/utils/data/numeric.d.ts +62 -0
  933. package/dist/utils/data/numeric.js +178 -0
  934. package/dist/utils/data/numeric.js.map +1 -0
  935. package/dist/utils/data/pagination.d.ts +21 -0
  936. package/dist/utils/data/pagination.js +22 -0
  937. package/dist/utils/data/pagination.js.map +1 -0
  938. package/dist/utils/data/selection.d.ts +41 -0
  939. package/dist/utils/data/selection.js +21 -0
  940. package/dist/utils/data/selection.js.map +1 -0
  941. package/dist/utils/data/status.d.ts +43 -0
  942. package/dist/utils/data/status.js +27 -0
  943. package/dist/utils/data/status.js.map +1 -0
  944. package/dist/utils/data/text.d.ts +12 -0
  945. package/dist/utils/data/text.js +30 -0
  946. package/dist/utils/data/text.js.map +1 -0
  947. package/dist/utils/data/tree.d.ts +140 -0
  948. package/dist/utils/data/tree.js +273 -0
  949. package/dist/utils/data/tree.js.map +1 -0
  950. package/dist/utils/data/workdays.d.ts +67 -0
  951. package/dist/utils/data/workdays.js +67 -0
  952. package/dist/utils/data/workdays.js.map +1 -0
  953. package/dist/utils/dom/announcer.d.ts +11 -0
  954. package/dist/utils/dom/announcer.js +53 -0
  955. package/dist/utils/dom/announcer.js.map +1 -0
  956. package/dist/utils/dom/caret.d.ts +14 -0
  957. package/dist/utils/dom/caret.js +72 -0
  958. package/dist/utils/dom/caret.js.map +1 -0
  959. package/dist/utils/dom/clipboard.d.ts +16 -0
  960. package/dist/utils/dom/clipboard.js +66 -0
  961. package/dist/utils/dom/clipboard.js.map +1 -0
  962. package/dist/utils/dom/direction.d.ts +12 -0
  963. package/dist/utils/dom/direction.js +20 -0
  964. package/dist/utils/dom/direction.js.map +1 -0
  965. package/dist/utils/dom/download.d.ts +14 -0
  966. package/dist/utils/dom/download.js +36 -0
  967. package/dist/utils/dom/download.js.map +1 -0
  968. package/dist/utils/dom/element.d.ts +3 -0
  969. package/dist/utils/dom/element.js +12 -0
  970. package/dist/utils/dom/element.js.map +1 -0
  971. package/dist/utils/dom/event-listener.d.ts +8 -0
  972. package/dist/utils/dom/event-listener.js +35 -0
  973. package/dist/utils/dom/event-listener.js.map +1 -0
  974. package/dist/utils/dom/floating.d.ts +149 -0
  975. package/dist/utils/dom/floating.js +262 -0
  976. package/dist/utils/dom/floating.js.map +1 -0
  977. package/dist/utils/dom/focus.d.ts +28 -0
  978. package/dist/utils/dom/focus.js +105 -0
  979. package/dist/utils/dom/focus.js.map +1 -0
  980. package/dist/utils/dom/fullscreen.d.ts +11 -0
  981. package/dist/utils/dom/fullscreen.js +43 -0
  982. package/dist/utils/dom/fullscreen.js.map +1 -0
  983. package/dist/utils/dom/hotkeys.d.ts +43 -0
  984. package/dist/utils/dom/hotkeys.js +174 -0
  985. package/dist/utils/dom/hotkeys.js.map +1 -0
  986. package/dist/utils/dom/hover-intent.d.ts +47 -0
  987. package/dist/utils/dom/hover-intent.js +72 -0
  988. package/dist/utils/dom/hover-intent.js.map +1 -0
  989. package/dist/utils/dom/hover-layer.d.ts +36 -0
  990. package/dist/utils/dom/hover-layer.js +74 -0
  991. package/dist/utils/dom/hover-layer.js.map +1 -0
  992. package/dist/utils/dom/intersection.d.ts +13 -0
  993. package/dist/utils/dom/intersection.js +36 -0
  994. package/dist/utils/dom/intersection.js.map +1 -0
  995. package/dist/utils/dom/layout-batch.d.ts +14 -0
  996. package/dist/utils/dom/layout-batch.js +26 -0
  997. package/dist/utils/dom/layout-batch.js.map +1 -0
  998. package/dist/utils/dom/link.d.ts +18 -0
  999. package/dist/utils/dom/link.js +44 -0
  1000. package/dist/utils/dom/link.js.map +1 -0
  1001. package/dist/utils/dom/media-query.d.ts +18 -0
  1002. package/dist/utils/dom/media-query.js +36 -0
  1003. package/dist/utils/dom/media-query.js.map +1 -0
  1004. package/dist/utils/dom/move.d.ts +47 -0
  1005. package/dist/utils/dom/move.js +69 -0
  1006. package/dist/utils/dom/move.js.map +1 -0
  1007. package/dist/utils/dom/open-change.d.ts +51 -0
  1008. package/dist/utils/dom/open-change.js +21 -0
  1009. package/dist/utils/dom/open-change.js.map +1 -0
  1010. package/dist/utils/dom/overflow.d.ts +29 -0
  1011. package/dist/utils/dom/overflow.js +108 -0
  1012. package/dist/utils/dom/overflow.js.map +1 -0
  1013. package/dist/utils/dom/overlay.d.ts +35 -0
  1014. package/dist/utils/dom/overlay.js +104 -0
  1015. package/dist/utils/dom/overlay.js.map +1 -0
  1016. package/dist/utils/dom/page-visibility.d.ts +10 -0
  1017. package/dist/utils/dom/page-visibility.js +22 -0
  1018. package/dist/utils/dom/page-visibility.js.map +1 -0
  1019. package/dist/utils/dom/pan-zoom.d.ts +109 -0
  1020. package/dist/utils/dom/pan-zoom.js +257 -0
  1021. package/dist/utils/dom/pan-zoom.js.map +1 -0
  1022. package/dist/utils/dom/rasterize.d.ts +18 -0
  1023. package/dist/utils/dom/rasterize.js +41 -0
  1024. package/dist/utils/dom/rasterize.js.map +1 -0
  1025. package/dist/utils/dom/resize.d.ts +4 -0
  1026. package/dist/utils/dom/resize.js +65 -0
  1027. package/dist/utils/dom/resize.js.map +1 -0
  1028. package/dist/utils/dom/ripple.d.ts +40 -0
  1029. package/dist/utils/dom/ripple.js +96 -0
  1030. package/dist/utils/dom/ripple.js.map +1 -0
  1031. package/dist/utils/dom/roving-focus.d.ts +44 -0
  1032. package/dist/utils/dom/roving-focus.js +184 -0
  1033. package/dist/utils/dom/roving-focus.js.map +1 -0
  1034. package/dist/utils/dom/scroll-spy.d.ts +30 -0
  1035. package/dist/utils/dom/scroll-spy.js +55 -0
  1036. package/dist/utils/dom/scroll-spy.js.map +1 -0
  1037. package/dist/utils/dom/sortable.d.ts +82 -0
  1038. package/dist/utils/dom/sortable.js +437 -0
  1039. package/dist/utils/dom/sortable.js.map +1 -0
  1040. package/dist/utils/dom/storage.d.ts +21 -0
  1041. package/dist/utils/dom/storage.js +66 -0
  1042. package/dist/utils/dom/storage.js.map +1 -0
  1043. package/dist/utils/dom/typeahead.d.ts +15 -0
  1044. package/dist/utils/dom/typeahead.js +26 -0
  1045. package/dist/utils/dom/typeahead.js.map +1 -0
  1046. package/dist/utils/motion/active-indicator.d.ts +24 -0
  1047. package/dist/utils/motion/active-indicator.js +58 -0
  1048. package/dist/utils/motion/active-indicator.js.map +1 -0
  1049. package/dist/utils/motion/animation.d.ts +58 -0
  1050. package/dist/utils/motion/animation.js +83 -0
  1051. package/dist/utils/motion/animation.js.map +1 -0
  1052. package/dist/utils/motion/delayed-loading.d.ts +18 -0
  1053. package/dist/utils/motion/delayed-loading.js +38 -0
  1054. package/dist/utils/motion/delayed-loading.js.map +1 -0
  1055. package/dist/utils/motion/layout.d.ts +17 -0
  1056. package/dist/utils/motion/layout.js +43 -0
  1057. package/dist/utils/motion/layout.js.map +1 -0
  1058. package/dist/utils/motion/pointer.d.ts +14 -0
  1059. package/dist/utils/motion/pointer.js +72 -0
  1060. package/dist/utils/motion/pointer.js.map +1 -0
  1061. package/dist/utils/motion/presence.d.ts +57 -0
  1062. package/dist/utils/motion/presence.js +100 -0
  1063. package/dist/utils/motion/presence.js.map +1 -0
  1064. package/dist/utils/motion/reveal.d.ts +9 -0
  1065. package/dist/utils/motion/reveal.js +68 -0
  1066. package/dist/utils/motion/reveal.js.map +1 -0
  1067. package/dist/utils/motion/tween.d.ts +34 -0
  1068. package/dist/utils/motion/tween.js +50 -0
  1069. package/dist/utils/motion/tween.js.map +1 -0
  1070. package/dist/utils/props.d.ts +84 -0
  1071. package/dist/utils/props.js +189 -0
  1072. package/dist/utils/props.js.map +1 -0
  1073. package/dist/utils/request/error-message.d.ts +17 -0
  1074. package/dist/utils/request/error-message.js +50 -0
  1075. package/dist/utils/request/error-message.js.map +1 -0
  1076. package/dist/utils/request/http.d.ts +165 -0
  1077. package/dist/utils/request/http.js +247 -0
  1078. package/dist/utils/request/http.js.map +1 -0
  1079. package/dist/utils/request/use-autosave.d.ts +35 -0
  1080. package/dist/utils/request/use-autosave.js +69 -0
  1081. package/dist/utils/request/use-autosave.js.map +1 -0
  1082. package/dist/utils/request/use-request.d.ts +37 -0
  1083. package/dist/utils/request/use-request.js +90 -0
  1084. package/dist/utils/request/use-request.js.map +1 -0
  1085. package/dist/utils/request/wire.d.ts +48 -0
  1086. package/dist/utils/request/wire.js +208 -0
  1087. package/dist/utils/request/wire.js.map +1 -0
  1088. package/dist/utils/style/attached.d.ts +25 -0
  1089. package/dist/utils/style/attached.js +82 -0
  1090. package/dist/utils/style/attached.js.map +1 -0
  1091. package/dist/utils/style/item-styles.d.ts +18 -0
  1092. package/dist/utils/style/item-styles.js +79 -0
  1093. package/dist/utils/style/item-styles.js.map +1 -0
  1094. package/dist/utils/style/markers.d.ts +6 -0
  1095. package/dist/utils/style/markers.js +11 -0
  1096. package/dist/utils/style/markers.js.map +1 -0
  1097. package/dist/utils/style/shimmer.d.ts +20 -0
  1098. package/dist/utils/style/shimmer.js +58 -0
  1099. package/dist/utils/style/shimmer.js.map +1 -0
  1100. package/dist/utils/style/styles.d.ts +118 -0
  1101. package/dist/utils/style/styles.js +114 -0
  1102. package/dist/utils/style/styles.js.map +1 -0
  1103. package/dist/utils/style/swatch-styles.d.ts +10 -0
  1104. package/dist/utils/style/swatch-styles.js +19 -0
  1105. package/dist/utils/style/swatch-styles.js.map +1 -0
  1106. package/dist/utils/style/tone-styles.d.ts +58 -0
  1107. package/dist/utils/style/tone-styles.js +180 -0
  1108. package/dist/utils/style/tone-styles.js.map +1 -0
  1109. package/dist/utils/style/transitions.d.ts +43 -0
  1110. package/dist/utils/style/transitions.js +118 -0
  1111. package/dist/utils/style/transitions.js.map +1 -0
  1112. package/dist/utils/style/typography.d.ts +155 -0
  1113. package/dist/utils/style/typography.js +80 -0
  1114. package/dist/utils/style/typography.js.map +1 -0
  1115. package/dist/utils/style/vars.d.ts +18 -0
  1116. package/dist/utils/style/vars.js +21 -0
  1117. package/dist/utils/style/vars.js.map +1 -0
  1118. package/dist/utils/virtual/use-virtualizer.d.ts +43 -0
  1119. package/dist/utils/virtual/use-virtualizer.js +94 -0
  1120. package/dist/utils/virtual/use-virtualizer.js.map +1 -0
  1121. package/dist/utils/virtual/virtualizer.d.ts +145 -0
  1122. package/dist/utils/virtual/virtualizer.js +316 -0
  1123. package/dist/utils/virtual/virtualizer.js.map +1 -0
  1124. package/dist/xlsx/index.d.ts +7 -0
  1125. package/dist/xlsx/index.js +1 -0
  1126. package/dist/xlsx/workbook.d.ts +33 -0
  1127. package/dist/xlsx/workbook.js +195 -0
  1128. package/dist/xlsx/workbook.js.map +1 -0
  1129. package/package.json +258 -3
@@ -0,0 +1,187 @@
1
+ import { compareDecimalText, decimalTextOf, isDecimal } from "../utils/data/numeric.js";
2
+ //#region src/input/condition.ts
3
+ /** 各类型默认能用的比较方式,第一个是新条件默认的 */
4
+ var conditionOperators = {
5
+ text: [
6
+ "contains",
7
+ "notContains",
8
+ "eq",
9
+ "ne",
10
+ "startsWith",
11
+ "empty",
12
+ "exists"
13
+ ],
14
+ number: [
15
+ "eq",
16
+ "ne",
17
+ "gt",
18
+ "gte",
19
+ "lt",
20
+ "lte",
21
+ "between",
22
+ "empty",
23
+ "exists"
24
+ ],
25
+ date: [
26
+ "eq",
27
+ "lt",
28
+ "gt",
29
+ "lte",
30
+ "gte",
31
+ "between",
32
+ "empty",
33
+ "exists"
34
+ ],
35
+ select: [
36
+ "eq",
37
+ "ne",
38
+ "in",
39
+ "notIn",
40
+ "empty",
41
+ "exists"
42
+ ],
43
+ boolean: ["eq"]
44
+ };
45
+ /** 字段能用的比较方式 */
46
+ var operatorsOf = (field) => field.operators ?? conditionOperators[field.type];
47
+ /** 这种比较要不要值 */
48
+ var needsValue = (op) => op !== "exists" && op !== "empty";
49
+ /** 比较方式要的值的形状 */
50
+ function valueShape(op) {
51
+ if (!needsValue(op)) return "none";
52
+ if (op === "between") return "range";
53
+ if (op === "in" || op === "notIn") return "list";
54
+ return "single";
55
+ }
56
+ /** 是组合(all / any / not),不是比较 */
57
+ var isConditionGroup = (condition) => "all" in condition || "any" in condition || "not" in condition;
58
+ /** 值写成文字:null、undefined 是空字符串,对象(不该出现在比较里)写成 JSON */
59
+ var toText = (value) => value == null ? "" : typeof value === "object" ? JSON.stringify(value) : String(value);
60
+ var isBlank = (value) => value == null || value === "" || Array.isArray(value) && value.length === 0;
61
+ /** 比较已经填完整:要值的有值,between 至少一端有值 */
62
+ function isRuleComplete(rule) {
63
+ switch (valueShape(rule.op)) {
64
+ case "none": return true;
65
+ case "range": return Array.isArray(rule.value) && rule.value.some((end) => !isBlank(end));
66
+ default: return !isBlank(rule.value);
67
+ }
68
+ }
69
+ /**
70
+ * 两个值按大小比:数字、大整数、Decimal、十进制写法的文字按精确的数值(不经过浮点数,长小数、大整数不丢精度),
71
+ * 其余写成文字后按编码顺序(不按语言环境;ISO 日期按文字比就是先后)。与流程引擎模型包(flow 的 values.ts)同一套规则
72
+ */
73
+ function compare(a, b) {
74
+ const x = decimalTextOf(a);
75
+ const y = decimalTextOf(b);
76
+ if (x !== void 0 && y !== void 0) return compareDecimalText(x, y);
77
+ const left = toText(a);
78
+ const right = toText(b);
79
+ return left === right ? 0 : left < right ? -1 : 1;
80
+ }
81
+ /** 等于:数字与数字文字视为相等(表单里的 '5' 与数据里的 5);对象只有 Decimal 参与比较 */
82
+ var same = (a, b) => a === b || a != null && b != null && (typeof a !== "object" || isDecimal(a)) && (typeof b !== "object" || isDecimal(b)) && compare(a, b) === 0;
83
+ var text = (value) => toText(value).toLowerCase();
84
+ /** 对一个(不是数组的)值,这条比较成不成立 */
85
+ function matchesOne(op, actual, value) {
86
+ switch (op) {
87
+ case "eq": return same(actual, value);
88
+ case "ne": return !same(actual, value);
89
+ case "gt": return actual != null && compare(actual, value) > 0;
90
+ case "gte": return actual != null && compare(actual, value) >= 0;
91
+ case "lt": return actual != null && compare(actual, value) < 0;
92
+ case "lte": return actual != null && compare(actual, value) <= 0;
93
+ case "between": {
94
+ const [low, high] = Array.isArray(value) ? value : [];
95
+ if (actual == null) return false;
96
+ return (isBlank(low) || compare(actual, low) >= 0) && (isBlank(high) || compare(actual, high) <= 0);
97
+ }
98
+ case "in": return Array.isArray(value) && value.some((item) => same(actual, item));
99
+ case "notIn": return !Array.isArray(value) || !value.some((item) => same(actual, item));
100
+ case "contains": return text(actual).includes(text(value));
101
+ case "notContains": return !text(actual).includes(text(value));
102
+ case "startsWith": return text(actual).startsWith(text(value));
103
+ case "exists": return !isBlank(actual);
104
+ case "empty": return isBlank(actual);
105
+ }
106
+ }
107
+ /** "没有一项满足"的比较 */
108
+ var NEGATIVE = /* @__PURE__ */ new Set([
109
+ "ne",
110
+ "notIn",
111
+ "notContains"
112
+ ]);
113
+ /**
114
+ * 一条比较成不成立。字段的值是数组时(多选、人员的编号列表)对每一项比:等于、是其中之一、包含、大小这些是"有一项满足",
115
+ * 不等于、不在其中、不包含是"没有一项满足";有值、没有值看数组是不是空的
116
+ */
117
+ function matchesRule(rule, actual) {
118
+ if (rule.op === "exists" || rule.op === "empty" || !Array.isArray(actual)) return matchesOne(rule.op, actual, rule.value);
119
+ return NEGATIVE.has(rule.op) ? actual.every((item) => matchesOne(rule.op, item, rule.value)) : actual.some((item) => matchesOne(rule.op, item, rule.value));
120
+ }
121
+ /**
122
+ * 记录满不满足条件。字段的值默认按名字取属性,read 可以改(嵌套字段、计算字段)。
123
+ * 规则与 query 库的 conditionBy(后端写成 SQL,query 仓库的 0017)、流程引擎的模型包(flow 仓库)一致,同一份条件在各处筛出同样的行:
124
+ * 没填完整的比较(isRuleComplete)与空的组不加条件,组里只看加了条件的那几项;不等于、不在其中、不包含把空值算作满足
125
+ */
126
+ function matchesCondition(condition, record, read = (item, field) => item?.[field]) {
127
+ return evaluate(condition, record, read) ?? true;
128
+ }
129
+ /** 求值;不加条件(没填完整的比较、空的组)时是 undefined,同 SQL 端丢掉空条件 */
130
+ function evaluate(condition, record, read) {
131
+ if ("not" in condition) {
132
+ const inner = evaluate(condition.not, record, read);
133
+ return inner === void 0 ? void 0 : !inner;
134
+ }
135
+ if ("all" in condition || "any" in condition) {
136
+ const results = ("all" in condition ? condition.all : condition.any).map((item) => evaluate(item, record, read)).filter((result) => result !== void 0);
137
+ if (results.length === 0) return void 0;
138
+ return "all" in condition ? results.every(Boolean) : results.some(Boolean);
139
+ }
140
+ if (!isRuleComplete(condition)) return void 0;
141
+ return matchesRule(condition, read(record, condition.field));
142
+ }
143
+ /** 比较方式的文字:日期、选项、是否这几种类型有自己的说法(早于、是其中之一) */
144
+ function operatorLabel(lang, type, op) {
145
+ return lang.conditionTypeOperators[type]?.[op] ?? lang.conditionOperators[op];
146
+ }
147
+ /** 值在摘要里的写法 */
148
+ function formatConditionValue(lang, field, value) {
149
+ const one = (item) => {
150
+ if (field?.format) return field.format(item);
151
+ if (field?.type === "boolean") return item ? lang.conditionTrue : lang.conditionFalse;
152
+ const option = field?.options?.find((candidate) => candidate.value === item);
153
+ if (option) return option.label;
154
+ if (typeof item === "number") return item.toLocaleString(lang.code);
155
+ return toText(item);
156
+ };
157
+ if (Array.isArray(value)) return value.map(one).join(lang.conditionValueSeparator);
158
+ return one(value);
159
+ }
160
+ /**
161
+ * 条件写成一句话:收起的高级筛选、流程连线上的条件摘要用。不认识的字段原样写字段名;
162
+ * 嵌套的组加括号,not 写成“不满足:…”
163
+ */
164
+ function describeCondition(condition, fields, lang) {
165
+ const describe = (item, nested) => {
166
+ if ("not" in item) return `${lang.conditionNotPrefix}${describe(item.not, true)}`;
167
+ if ("all" in item || "any" in item) {
168
+ const list = "all" in item ? item.all : item.any;
169
+ const joiner = "all" in item ? lang.conditionAndJoiner : lang.conditionOrJoiner;
170
+ const text = list.map((child) => describe(child, true)).join(joiner);
171
+ return nested && list.length > 1 ? `(${text})` : text;
172
+ }
173
+ const field = fields.find((candidate) => candidate.name === item.field);
174
+ const parts = [field?.label ?? item.field, operatorLabel(lang, field?.type ?? "text", item.op)];
175
+ const shape = valueShape(item.op);
176
+ if (shape === "range") {
177
+ const [low, high] = Array.isArray(item.value) ? item.value : [];
178
+ parts.push(lang.conditionRange(formatConditionValue(lang, field, low), formatConditionValue(lang, field, high)));
179
+ } else if (shape !== "none") parts.push(formatConditionValue(lang, field, item.value));
180
+ return parts.join(" ");
181
+ };
182
+ return describe(condition, false);
183
+ }
184
+ //#endregion
185
+ export { conditionOperators, describeCondition, formatConditionValue, isConditionGroup, isRuleComplete, matchesCondition, needsValue, operatorLabel, operatorsOf, toText, valueShape };
186
+
187
+ //# sourceMappingURL=condition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"condition.js","names":[],"sources":["../../src/input/condition.ts"],"sourcesContent":["/**\n * 条件:比较一个字段,或用 all / any / not 组合的表达式树。纯 JSON,可以存库、传给后端,前后端各自求值、结果一致。\n * ConditionBuilder 编辑它;FilterBar 的高级筛选、流程连线的条件都用这一种写法。\n *\n * const condition: Condition = {\n * all: [\n * { field: 'amount', op: 'gte', value: 10000 },\n * { any: [{ field: 'category', op: 'in', value: ['钢材', '铝材'] }, { not: { field: 'urgent', op: 'eq', value: false } }] },\n * ],\n * };\n * rows.filter((row) => matchesCondition(condition, row));\n * describeCondition(condition, fields, lang); // “金额 大于等于 10000,且(品类 是其中之一 钢材、铝材,或 不满足:加急 是 否)”\n *\n * 字段(ConditionField)给出名字、显示名与类型;类型决定能用哪些比较方式(conditionOperators)与值用什么控件填。\n * 值的形式:between 是 [下限, 上限](含两端,任一端为空时不限),in / notIn 是数组,exists / empty 没有值;日期是 ISO 文字,按文字比就是先后。\n */\nimport type { VNodeChild } from 'vue';\nimport type { Lang } from '../config/lang/lang';\nimport { compareDecimalText, decimalTextOf, isDecimal } from '../utils/data/numeric';\n\n/** 比较的方式 */\nexport interface ConditionOps {\n /** 等于 */\n eq: unknown;\n /** 不等于 */\n ne: unknown;\n /** 大于(日期:晚于) */\n gt: unknown;\n /** 大于等于 */\n gte: unknown;\n /** 小于(日期:早于) */\n lt: unknown;\n /** 小于等于 */\n lte: unknown;\n /** 在两个值之间(含两端):value 是 [下限, 上限] */\n between: unknown;\n /** 是其中之一:value 是数组 */\n in: unknown;\n /** 不是其中任何一个:value 是数组 */\n notIn: unknown;\n /** 文字包含 */\n contains: unknown;\n /** 文字不包含 */\n notContains: unknown;\n /** 文字以它开头 */\n startsWith: unknown;\n /** 有值(不是 null、undefined、空字符串、空数组) */\n exists: unknown;\n /** 没有值 */\n empty: unknown;\n}\n\n/** 比较的方式 */\nexport type ConditionOp = keyof ConditionOps;\n\n/** 比较一个字段 */\nexport interface ConditionRule {\n /** 字段名 */\n field: string;\n /** 比较的方式 */\n op: ConditionOp;\n /** 比较的值;exists、empty 没有 */\n value?: unknown;\n}\n\n/** 条件:比较一个字段,或用 all(全部满足)/ any(任一满足)/ not(不满足)组合 */\nexport type Condition =\n | ConditionRule\n | { all: readonly Condition[] }\n | { any: readonly Condition[] }\n | { not: Condition };\n\n/** 字段的类型:决定能用哪些比较方式、值用什么控件填 */\nexport interface ConditionFieldTypes {\n /** 文字:包含、等于、开头是 */\n text: unknown;\n /** 数字:大小、介于 */\n number: unknown;\n /** 日期(ISO 文字):早于、晚于、介于 */\n date: unknown;\n /** 从选项里选:是、不是、是其中之一 */\n select: unknown;\n /** 是或否 */\n boolean: unknown;\n}\n\n/** 字段的类型 */\nexport type ConditionFieldType = keyof ConditionFieldTypes;\n\n/** 选项型字段的一个选项 */\nexport interface ConditionOption {\n /** 值 */\n value: string | number;\n /** 显示的文字 */\n label: string;\n}\n\n/** 自己画值的输入时拿到的参数 */\nexport interface ConditionInputContext {\n /** 字段 */\n field: ConditionField;\n /** 比较的方式 */\n op: ConditionOp;\n /** 现在的值 */\n value: unknown;\n /** 改值 */\n onChange: (value: unknown) => void;\n /** 无障碍名称(“金额的值”) */\n label: string;\n}\n\n/** 能参与比较的字段 */\nexport interface ConditionField {\n /** 字段名:写进条件的 field */\n name: string;\n /** 显示名 */\n label: string;\n /** 类型 */\n type: ConditionFieldType;\n /** 分组名:字段多时字段列表按它分组(如“申请单”“流程变量”) */\n group?: string;\n /** 选项(select 类型) */\n options?: readonly ConditionOption[];\n /** 能用的比较方式,默认按类型(conditionOperators) */\n operators?: readonly ConditionOp[];\n /** 自己画值的输入(人员选择器、带单位的数字……);类型仍决定比较方式与摘要里值的写法 */\n input?: (context: ConditionInputContext) => VNodeChild;\n /** 摘要里值的写法,默认选项的文字、日期原样、是否写成“是 / 否” */\n format?: (value: unknown) => string;\n}\n\n/** 各类型默认能用的比较方式,第一个是新条件默认的 */\nexport const conditionOperators: Readonly<Record<ConditionFieldType, readonly ConditionOp[]>> = {\n text: ['contains', 'notContains', 'eq', 'ne', 'startsWith', 'empty', 'exists'],\n number: ['eq', 'ne', 'gt', 'gte', 'lt', 'lte', 'between', 'empty', 'exists'],\n date: ['eq', 'lt', 'gt', 'lte', 'gte', 'between', 'empty', 'exists'],\n select: ['eq', 'ne', 'in', 'notIn', 'empty', 'exists'],\n boolean: ['eq'],\n};\n\n/** 字段能用的比较方式 */\nexport const operatorsOf = (field: ConditionField): readonly ConditionOp[] =>\n field.operators ?? conditionOperators[field.type];\n\n/** 这种比较要不要值 */\nexport const needsValue = (op: ConditionOp) => op !== 'exists' && op !== 'empty';\n\n/** 值的形状:between 两个值,in / notIn 一组值,exists / empty 没有,其余一个 */\nexport type ConditionValueShape = 'none' | 'single' | 'range' | 'list';\n\n/** 比较方式要的值的形状 */\nexport function valueShape(op: ConditionOp): ConditionValueShape {\n if (!needsValue(op)) return 'none';\n if (op === 'between') return 'range';\n if (op === 'in' || op === 'notIn') return 'list';\n return 'single';\n}\n\n/** 是组合(all / any / not),不是比较 */\nexport const isConditionGroup = (\n condition: Condition,\n): condition is Exclude<Condition, ConditionRule> =>\n 'all' in condition || 'any' in condition || 'not' in condition;\n\n/** 值写成文字:null、undefined 是空字符串,对象(不该出现在比较里)写成 JSON */\nexport const toText = (value: unknown): string =>\n value == null\n ? ''\n : typeof value === 'object'\n ? JSON.stringify(value)\n : String(value as string | number | boolean | bigint);\n\nconst isBlank = (value: unknown) =>\n value == null || value === '' || (Array.isArray(value) && value.length === 0);\n\n/** 比较已经填完整:要值的有值,between 至少一端有值 */\nexport function isRuleComplete(rule: ConditionRule): boolean {\n switch (valueShape(rule.op)) {\n case 'none':\n return true;\n case 'range':\n return Array.isArray(rule.value) && rule.value.some((end) => !isBlank(end));\n default:\n return !isBlank(rule.value);\n }\n}\n\n/**\n * 两个值按大小比:数字、大整数、Decimal、十进制写法的文字按精确的数值(不经过浮点数,长小数、大整数不丢精度),\n * 其余写成文字后按编码顺序(不按语言环境;ISO 日期按文字比就是先后)。与流程引擎模型包(flow 的 values.ts)同一套规则\n */\nfunction compare(a: unknown, b: unknown): number {\n const x = decimalTextOf(a);\n const y = decimalTextOf(b);\n if (x !== undefined && y !== undefined) return compareDecimalText(x, y);\n const left = toText(a);\n const right = toText(b);\n return left === right ? 0 : left < right ? -1 : 1;\n}\n\n/** 等于:数字与数字文字视为相等(表单里的 '5' 与数据里的 5);对象只有 Decimal 参与比较 */\nconst same = (a: unknown, b: unknown) =>\n a === b ||\n (a != null &&\n b != null &&\n (typeof a !== 'object' || isDecimal(a)) &&\n (typeof b !== 'object' || isDecimal(b)) &&\n compare(a, b) === 0);\n\nconst text = (value: unknown) => toText(value).toLowerCase();\n\n/** 对一个(不是数组的)值,这条比较成不成立 */\nfunction matchesOne(op: ConditionOp, actual: unknown, value: unknown): boolean {\n switch (op) {\n case 'eq':\n return same(actual, value);\n case 'ne':\n return !same(actual, value);\n case 'gt':\n return actual != null && compare(actual, value) > 0;\n case 'gte':\n return actual != null && compare(actual, value) >= 0;\n case 'lt':\n return actual != null && compare(actual, value) < 0;\n case 'lte':\n return actual != null && compare(actual, value) <= 0;\n case 'between': {\n const [low, high] = Array.isArray(value) ? value : [];\n if (actual == null) return false;\n return (\n (isBlank(low) || compare(actual, low) >= 0) && (isBlank(high) || compare(actual, high) <= 0)\n );\n }\n case 'in':\n return Array.isArray(value) && value.some((item) => same(actual, item));\n case 'notIn':\n return !Array.isArray(value) || !value.some((item) => same(actual, item));\n case 'contains':\n return text(actual).includes(text(value));\n case 'notContains':\n return !text(actual).includes(text(value));\n case 'startsWith':\n return text(actual).startsWith(text(value));\n case 'exists':\n return !isBlank(actual);\n case 'empty':\n return isBlank(actual);\n }\n}\n\n/** \"没有一项满足\"的比较 */\nconst NEGATIVE: ReadonlySet<ConditionOp> = new Set(['ne', 'notIn', 'notContains']);\n\n/**\n * 一条比较成不成立。字段的值是数组时(多选、人员的编号列表)对每一项比:等于、是其中之一、包含、大小这些是\"有一项满足\",\n * 不等于、不在其中、不包含是\"没有一项满足\";有值、没有值看数组是不是空的\n */\nfunction matchesRule(rule: ConditionRule, actual: unknown): boolean {\n if (rule.op === 'exists' || rule.op === 'empty' || !Array.isArray(actual))\n return matchesOne(rule.op, actual, rule.value);\n return NEGATIVE.has(rule.op)\n ? actual.every((item) => matchesOne(rule.op, item, rule.value))\n : actual.some((item) => matchesOne(rule.op, item, rule.value));\n}\n\n/**\n * 记录满不满足条件。字段的值默认按名字取属性,read 可以改(嵌套字段、计算字段)。\n * 规则与 query 库的 conditionBy(后端写成 SQL,query 仓库的 0017)、流程引擎的模型包(flow 仓库)一致,同一份条件在各处筛出同样的行:\n * 没填完整的比较(isRuleComplete)与空的组不加条件,组里只看加了条件的那几项;不等于、不在其中、不包含把空值算作满足\n */\nexport function matchesCondition<T>(\n condition: Condition,\n record: T,\n read: (record: T, field: string) => unknown = (item, field) =>\n (item as Record<string, unknown> | null)?.[field],\n): boolean {\n return evaluate(condition, record, read) ?? true;\n}\n\n/** 求值;不加条件(没填完整的比较、空的组)时是 undefined,同 SQL 端丢掉空条件 */\nfunction evaluate<T>(\n condition: Condition,\n record: T,\n read: (record: T, field: string) => unknown,\n): boolean | undefined {\n if ('not' in condition) {\n const inner = evaluate(condition.not, record, read);\n return inner === undefined ? undefined : !inner;\n }\n if ('all' in condition || 'any' in condition) {\n const results = ('all' in condition ? condition.all : condition.any)\n .map((item) => evaluate(item, record, read))\n .filter((result) => result !== undefined);\n if (results.length === 0) return undefined;\n return 'all' in condition ? results.every(Boolean) : results.some(Boolean);\n }\n if (!isRuleComplete(condition)) return undefined;\n return matchesRule(condition, read(record, condition.field));\n}\n\n/** 比较方式的文字:日期、选项、是否这几种类型有自己的说法(早于、是其中之一) */\nexport function operatorLabel(lang: Lang, type: ConditionFieldType, op: ConditionOp): string {\n return lang.conditionTypeOperators[type]?.[op] ?? lang.conditionOperators[op];\n}\n\n/** 值在摘要里的写法 */\nexport function formatConditionValue(\n lang: Lang,\n field: ConditionField | undefined,\n value: unknown,\n) {\n const one = (item: unknown): string => {\n if (field?.format) return field.format(item);\n if (field?.type === 'boolean') return item ? lang.conditionTrue : lang.conditionFalse;\n const option = field?.options?.find((candidate) => candidate.value === item);\n if (option) return option.label;\n if (typeof item === 'number') return item.toLocaleString(lang.code);\n return toText(item);\n };\n if (Array.isArray(value)) return value.map(one).join(lang.conditionValueSeparator);\n return one(value);\n}\n\n/**\n * 条件写成一句话:收起的高级筛选、流程连线上的条件摘要用。不认识的字段原样写字段名;\n * 嵌套的组加括号,not 写成“不满足:…”\n */\nexport function describeCondition(\n condition: Condition,\n fields: readonly ConditionField[],\n lang: Lang,\n): string {\n const describe = (item: Condition, nested: boolean): string => {\n if ('not' in item) return `${lang.conditionNotPrefix}${describe(item.not, true)}`;\n if ('all' in item || 'any' in item) {\n const list = 'all' in item ? item.all : item.any;\n const joiner = 'all' in item ? lang.conditionAndJoiner : lang.conditionOrJoiner;\n const text = list.map((child) => describe(child, true)).join(joiner);\n return nested && list.length > 1 ? `(${text})` : text;\n }\n const field = fields.find((candidate) => candidate.name === item.field);\n const parts = [field?.label ?? item.field, operatorLabel(lang, field?.type ?? 'text', item.op)];\n const shape = valueShape(item.op);\n if (shape === 'range') {\n const [low, high] = Array.isArray(item.value) ? item.value : [];\n parts.push(\n lang.conditionRange(\n formatConditionValue(lang, field, low),\n formatConditionValue(lang, field, high),\n ),\n );\n } else if (shape !== 'none') {\n parts.push(formatConditionValue(lang, field, item.value));\n }\n return parts.join(' ');\n };\n return describe(condition, false);\n}\n"],"mappings":"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"}
@@ -0,0 +1,160 @@
1
+ /**
2
+ * 输入框外壳:配方、外观选项、前置图标与交互小工具。TextField、Textarea、NumberField、Select、Combobox、
3
+ * TagsInput 与日期输入框共用。
4
+ * 外壳是包着原生 input 的 div:边框、悬停、焦点环(:focus-within)、出错、不可用、只读都画在外壳上,
5
+ * input 本身透明无边框,所以图标、清除按钮、步进按钮可以放进框里。尺寸用 em,随 size 缩放(COMPONENTS.md §3)。
6
+ */
7
+ import * as css from '@zerodep-dev/vue-tsx-pro-tsx/styles';
8
+ import type { SxStyles } from '@zerodep-dev/vue-tsx-pro-tsx/styles';
9
+ import type { VNodeChild } from 'vue';
10
+ import { type PresetIconButtonProps } from '../base/CloseButton';
11
+ import { type IconData, type IconProps } from '../base/Icon';
12
+ import { useRecipe, type PartLayer } from '../config/styles';
13
+ import { type PartProps } from '../utils/props';
14
+ import { type AttachedOrientations } from '../utils/style/attached';
15
+ import { type Radius } from '../utils/style/styles';
16
+ import { type TextSize } from '../utils/style/typography';
17
+ /** 输入框的样式 */
18
+ export interface ControlVariants {
19
+ /** 表面色加描边(默认) */
20
+ surface: unknown;
21
+ /** 浅色底,没有描边:表单很密、或放在有底色的区域里 */
22
+ soft: unknown;
23
+ }
24
+ /** 输入框的外观选项;可以用 createUi / Provider 的 defaults.Input 统一改默认值 */
25
+ export interface ControlOptions {
26
+ /** 样式,默认 surface */
27
+ variant?: keyof ControlVariants;
28
+ /** 字号档位,内部尺寸随之缩放;不写时继承上下文字号 */
29
+ size?: TextSize;
30
+ /** 圆角,与按钮同一套档位,默认 md;搜索框常用 full(胶囊形) */
31
+ radius?: Radius;
32
+ }
33
+ /** 框里最前面的图标(搜索、日历、地球……):各种输入框共有 */
34
+ export interface ControlIconOptions {
35
+ /** 前置图标 */
36
+ icon?: IconData;
37
+ /** 前置图标的部件属性 */
38
+ propsIcon?: Partial<IconProps>;
39
+ }
40
+ /** 外壳的状态:出错、不可用、只读 */
41
+ export interface ControlState {
42
+ /** 校验未通过:红色描边与焦点环 */
43
+ invalid?: boolean;
44
+ /** 不可用:变淡 */
45
+ disabled?: boolean;
46
+ /** 只读:底色变浅,不显示悬停 */
47
+ readonly?: boolean;
48
+ }
49
+ /**
50
+ * 输入框外壳的配方:部件 root(外壳 div)、input(原生 input / textarea)、icon(前后的图标)、
51
+ * affix(前后缀文字)、button(框里的小按钮:清除、显示密码、步进)。
52
+ * 档位是样式(variant)、在 ControlGroup 里的方向(attached)与外壳的状态;圆角、相连、字号用共用的样式表,
53
+ * 由 controlParts 叠在配方之后
54
+ */
55
+ export declare const inputRecipe: css.Recipe<"affix" | "button" | "icon" | "input" | "root", {
56
+ readonly variant: {
57
+ readonly surface: {};
58
+ readonly soft: {
59
+ readonly root: {
60
+ readonly borderColor: {
61
+ readonly default: "transparent";
62
+ readonly ':hover': "transparent";
63
+ };
64
+ readonly backgroundColor: "_fill";
65
+ };
66
+ };
67
+ };
68
+ readonly attached: {
69
+ readonly horizontal: {
70
+ readonly root: {
71
+ readonly flexGrow: 1;
72
+ };
73
+ };
74
+ readonly vertical: {};
75
+ };
76
+ readonly readonly: {
77
+ readonly true: {
78
+ readonly root: {
79
+ readonly borderColor: {
80
+ readonly default: "_borderMuted";
81
+ readonly ':hover': "_borderMuted";
82
+ };
83
+ readonly backgroundColor: "_fill";
84
+ };
85
+ };
86
+ };
87
+ readonly invalid: {
88
+ readonly true: {
89
+ readonly root: {
90
+ readonly borderColor: {
91
+ readonly default: "_danger";
92
+ readonly ':hover': "_danger";
93
+ };
94
+ readonly outlineColor: "_danger";
95
+ };
96
+ };
97
+ };
98
+ readonly disabled: {
99
+ readonly true: {
100
+ readonly root: {
101
+ readonly opacity: "_disabled";
102
+ readonly cursor: "not-allowed";
103
+ };
104
+ };
105
+ };
106
+ readonly multiline: {
107
+ readonly true: {
108
+ readonly root: {
109
+ readonly alignItems: "stretch";
110
+ readonly paddingBlock: "_xs";
111
+ };
112
+ };
113
+ };
114
+ }>;
115
+ /** 输入框外壳的部件(createUi / Provider 的 styles.Input 按它定制) */
116
+ export type InputPart = (typeof inputRecipe.parts)[number];
117
+ /**
118
+ * 外壳各部件交给 mergeAttrs / mergeProps 的默认层:样式与部件标记(data-scope="input")。
119
+ * 要加样式时写 `{ ...s.root, sx: [s.root.sx, 别的] }`
120
+ */
121
+ export type ControlParts = {
122
+ readonly [Part in InputPart]: Omit<PartLayer, 'sx'> & {
123
+ readonly sx: SxStyles;
124
+ };
125
+ };
126
+ /** 外壳里的图标(前置、后置):次要颜色、不被挤压;没有图标时不渲染 */
127
+ export declare function controlIcon(parts: ControlParts, icon: IconData | undefined, props?: Partial<IconProps>): VNodeChild;
128
+ /** 外壳里的清空按钮:圆形、名称取语言包(清空);有值、可编辑时才渲染由调用方决定 */
129
+ export declare function controlClear(parts: ControlParts, props: Partial<PresetIconButtonProps> | undefined, onClick: () => void): VNodeChild;
130
+ /**
131
+ * 外壳里的前缀、后缀文字(币种、单位):用指向输入框的 label,读屏把单位念进名称(“年度预算 万元”),
132
+ * 不可用时也算作不可用控件的文字(不要求对比度);没有内容时不渲染
133
+ */
134
+ export declare function controlAffix(parts: ControlParts, content: VNodeChild, inputId: string, props?: PartProps<'label'>): VNodeChild;
135
+ /** 合并后的外观(默认值已填上);在 ControlGroup 里时带上相连的方向 */
136
+ export type ControlAppearance = Required<Pick<ControlOptions, 'variant' | 'radius'>> & Pick<ControlOptions, 'size'> & {
137
+ attached?: keyof AttachedOrientations;
138
+ /** 外壳的配方,带上 createUi / Provider 里 styles.Input 的定制 */
139
+ recipe: ReturnType<typeof useRecipe<InputPart, unknown>>;
140
+ };
141
+ /**
142
+ * 输入框的外观:显式写的 prop > createUi / Provider 的 defaults.Input > 默认(surface)。
143
+ * 在 setup 里调用,返回的函数在渲染时调用
144
+ */
145
+ export declare function useControlAppearance(read: () => ControlOptions): () => ControlAppearance;
146
+ /**
147
+ * 外观与状态 → 外壳各部件的默认层;multiline 给 Textarea。
148
+ * 外壳在配方之后叠上圆角、相连、字号;焦点环排在配方之前,出错档位的红色焦点环才盖得过它
149
+ */
150
+ export declare function controlParts({ variant, size, radius, attached, recipe }: ControlAppearance, { invalid, disabled, readonly }: ControlState, multiline?: boolean): ControlParts;
151
+ /**
152
+ * 外壳的 onPointerdown:点在外壳的空白处时把焦点交给主元素(input、触发按钮),不让浏览器把焦点放到别处;
153
+ * 点在主元素或框里的按钮上时照常
154
+ */
155
+ export declare function focusOnShell(main: () => HTMLElement | null): (event: PointerEvent) => void;
156
+ /**
157
+ * 外壳的 onClick:点在外壳的空白处时调用 action(Select、TreeSelect 据此切换打开,与点触发按钮一样)。
158
+ * 不在 pointerdown 里打开:原生 popover="auto" 在 pointerup 时把“按下时还没打开”的浮层当作点在外面关掉
159
+ */
160
+ export declare function clickOnShell(main: () => HTMLElement | null, action: (event: MouseEvent) => void): (event: MouseEvent) => void;
@@ -0,0 +1,236 @@
1
+ import { t } from "../config/theme/tokens.js";
2
+ import { useDefaults } from "../config/defaults.js";
3
+ import { mergeAttrs, mergePartProps } from "../utils/props.js";
4
+ import { fontSizeStyles } from "../utils/style/typography.js";
5
+ import { focusRingStyles, radiusStyles } from "../utils/style/styles.js";
6
+ import { useRecipe } from "../config/styles.js";
7
+ import { Icon } from "../base/Icon.js";
8
+ import { AttachedContext, attachedStyles } from "../utils/style/attached.js";
9
+ import { ClearButton } from "../base/CloseButton.js";
10
+ import { createVNode } from "vue";
11
+ import * as css from "@zerodep-dev/vue-tsx-pro-tsx/styles";
12
+ //#region src/input/control.tsx
13
+ /**
14
+ * 输入框外壳:配方、外观选项、前置图标与交互小工具。TextField、Textarea、NumberField、Select、Combobox、
15
+ * TagsInput 与日期输入框共用。
16
+ * 外壳是包着原生 input 的 div:边框、悬停、焦点环(:focus-within)、出错、不可用、只读都画在外壳上,
17
+ * input 本身透明无边框,所以图标、清除按钮、步进按钮可以放进框里。尺寸用 em,随 size 缩放(COMPONENTS.md §3)。
18
+ */
19
+ /** 输入框的样式 */
20
+ /** 输入框的外观选项;可以用 createUi / Provider 的 defaults.Input 统一改默认值 */
21
+ /** 框里最前面的图标(搜索、日历、地球……):各种输入框共有 */
22
+ /** 外壳的状态:出错、不可用、只读 */
23
+ /**
24
+ * 输入框外壳的配方:部件 root(外壳 div)、input(原生 input / textarea)、icon(前后的图标)、
25
+ * affix(前后缀文字)、button(框里的小按钮:清除、显示密码、步进)。
26
+ * 档位是样式(variant)、在 ControlGroup 里的方向(attached)与外壳的状态;圆角、相连、字号用共用的样式表,
27
+ * 由 controlParts 叠在配方之后
28
+ */
29
+ var inputRecipe = css.recipe({
30
+ name: "Input",
31
+ parts: [
32
+ "root",
33
+ "input",
34
+ "icon",
35
+ "affix",
36
+ "button"
37
+ ],
38
+ base: {
39
+ root: {
40
+ boxSizing: "border-box",
41
+ display: "inline-flex",
42
+ alignItems: "center",
43
+ gap: "_sm",
44
+ minWidth: 0,
45
+ minHeight: `max(${t.sizes.control}, ${t.sizes.minTarget})`,
46
+ paddingInline: "_md",
47
+ borderWidth: "_xs",
48
+ borderStyle: "solid",
49
+ borderColor: {
50
+ default: "_border",
51
+ ":hover": "_borderStrong"
52
+ },
53
+ borderRadius: "_md",
54
+ backgroundColor: "_surface",
55
+ color: "_text",
56
+ lineHeight: "_normal",
57
+ cursor: "text",
58
+ transition: `border-color ${t.durations.sm} ${t.easings.standard}`
59
+ },
60
+ input: {
61
+ alignSelf: "baseline",
62
+ boxSizing: "border-box",
63
+ flexGrow: 1,
64
+ minWidth: 0,
65
+ minHeight: `calc(max(${t.sizes.control}, ${t.sizes.minTarget}) - 2 * ${t.borderWidths.xs})`,
66
+ margin: 0,
67
+ paddingBlock: "_xs",
68
+ paddingInline: 0,
69
+ borderWidth: 0,
70
+ outlineStyle: "none",
71
+ backgroundColor: "transparent",
72
+ color: "inherit",
73
+ font: "inherit",
74
+ cursor: "inherit",
75
+ "::placeholder": {
76
+ color: "_textPlaceholder",
77
+ opacity: 1
78
+ }
79
+ },
80
+ icon: {
81
+ flexShrink: 0,
82
+ color: "_textMuted"
83
+ },
84
+ affix: {
85
+ flexShrink: 0,
86
+ color: "_textMuted",
87
+ whiteSpace: "nowrap"
88
+ },
89
+ button: {
90
+ flexShrink: 0,
91
+ width: `max(1.5em, ${t.sizes.minTarget})`,
92
+ minHeight: `max(1.5em, ${t.sizes.minTarget})`,
93
+ marginInline: `calc(-1 * ${t.space.xs})`,
94
+ color: "_textMuted"
95
+ }
96
+ },
97
+ variants: {
98
+ variant: {
99
+ surface: {},
100
+ soft: { root: {
101
+ borderColor: {
102
+ default: "transparent",
103
+ ":hover": "transparent"
104
+ },
105
+ backgroundColor: "_fill"
106
+ } }
107
+ },
108
+ attached: {
109
+ horizontal: { root: { flexGrow: 1 } },
110
+ vertical: {}
111
+ },
112
+ readonly: { true: { root: {
113
+ borderColor: {
114
+ default: "_borderMuted",
115
+ ":hover": "_borderMuted"
116
+ },
117
+ backgroundColor: "_fill"
118
+ } } },
119
+ invalid: { true: { root: {
120
+ borderColor: {
121
+ default: "_danger",
122
+ ":hover": "_danger"
123
+ },
124
+ outlineColor: "_danger"
125
+ } } },
126
+ disabled: { true: { root: {
127
+ opacity: "_disabled",
128
+ cursor: "not-allowed"
129
+ } } },
130
+ multiline: { true: { root: {
131
+ alignItems: "stretch",
132
+ paddingBlock: "_xs"
133
+ } } }
134
+ }
135
+ });
136
+ /** 输入框外壳的部件(createUi / Provider 的 styles.Input 按它定制) */
137
+ /**
138
+ * 外壳各部件交给 mergeAttrs / mergeProps 的默认层:样式与部件标记(data-scope="input")。
139
+ * 要加样式时写 `{ ...s.root, sx: [s.root.sx, 别的] }`
140
+ */
141
+ /** 外壳里的图标(前置、后置):次要颜色、不被挤压;没有图标时不渲染 */
142
+ function controlIcon(parts, icon, props) {
143
+ return icon ? createVNode(Icon, mergePartProps({
144
+ ...parts.icon,
145
+ icon
146
+ }, props), null) : null;
147
+ }
148
+ /** 外壳里的清空按钮:圆形、名称取语言包(清空);有值、可编辑时才渲染由调用方决定 */
149
+ function controlClear(parts, props, onClick) {
150
+ return createVNode(ClearButton, mergePartProps({
151
+ ...parts.button,
152
+ radius: "full"
153
+ }, props, { onClick }), null);
154
+ }
155
+ /**
156
+ * 外壳里的前缀、后缀文字(币种、单位):用指向输入框的 label,读屏把单位念进名称(“年度预算 万元”),
157
+ * 不可用时也算作不可用控件的文字(不要求对比度);没有内容时不渲染
158
+ */
159
+ function controlAffix(parts, content, inputId, props) {
160
+ return content == null ? null : createVNode("label", mergeAttrs(parts.affix, props, { for: inputId }), [content]);
161
+ }
162
+ /** 合并后的外观(默认值已填上);在 ControlGroup 里时带上相连的方向 */
163
+ /**
164
+ * 输入框的外观:显式写的 prop > createUi / Provider 的 defaults.Input > 默认(surface)。
165
+ * 在 setup 里调用,返回的函数在渲染时调用
166
+ */
167
+ function useControlAppearance(read) {
168
+ const group = AttachedContext.inject(null);
169
+ const recipe = useRecipe(inputRecipe);
170
+ const appearance = useDefaults("Input", read, {
171
+ variant: "surface",
172
+ radius: "md"
173
+ });
174
+ return () => ({
175
+ ...appearance(),
176
+ attached: group?.orientation,
177
+ recipe
178
+ });
179
+ }
180
+ /**
181
+ * 外观与状态 → 外壳各部件的默认层;multiline 给 Textarea。
182
+ * 外壳在配方之后叠上圆角、相连、字号;焦点环排在配方之前,出错档位的红色焦点环才盖得过它
183
+ */
184
+ function controlParts({ variant, size, radius, attached, recipe }, { invalid, disabled, readonly }, multiline = false) {
185
+ const parts = recipe({
186
+ variant,
187
+ attached,
188
+ readonly,
189
+ invalid,
190
+ disabled,
191
+ multiline
192
+ });
193
+ return {
194
+ ...parts,
195
+ root: {
196
+ ...parts.root,
197
+ sx: [
198
+ focusRingStyles.within,
199
+ parts.root.sx,
200
+ radiusStyles[radius],
201
+ attached && attachedStyles[attached],
202
+ size && fontSizeStyles[size]
203
+ ]
204
+ }
205
+ };
206
+ }
207
+ /** 点在外壳的空白处(内边距、图标、标签上):不是主元素本身,也不是框里的按钮 */
208
+ function isShellBlank(target, element) {
209
+ return target !== element && !element.contains(target) && !target.closest("button");
210
+ }
211
+ /**
212
+ * 外壳的 onPointerdown:点在外壳的空白处时把焦点交给主元素(input、触发按钮),不让浏览器把焦点放到别处;
213
+ * 点在主元素或框里的按钮上时照常
214
+ */
215
+ function focusOnShell(main) {
216
+ return (event) => {
217
+ const element = main();
218
+ if (!element || !isShellBlank(event.target, element)) return;
219
+ event.preventDefault();
220
+ element.focus();
221
+ };
222
+ }
223
+ /**
224
+ * 外壳的 onClick:点在外壳的空白处时调用 action(Select、TreeSelect 据此切换打开,与点触发按钮一样)。
225
+ * 不在 pointerdown 里打开:原生 popover="auto" 在 pointerup 时把“按下时还没打开”的浮层当作点在外面关掉
226
+ */
227
+ function clickOnShell(main, action) {
228
+ return (event) => {
229
+ const element = main();
230
+ if (element && isShellBlank(event.target, element)) action(event);
231
+ };
232
+ }
233
+ //#endregion
234
+ export { clickOnShell, controlAffix, controlClear, controlIcon, controlParts, focusOnShell, inputRecipe, useControlAppearance };
235
+
236
+ //# sourceMappingURL=control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"control.js","names":["_createVNode"],"sources":["../../src/input/control.tsx"],"sourcesContent":["/**\n * 输入框外壳:配方、外观选项、前置图标与交互小工具。TextField、Textarea、NumberField、Select、Combobox、\n * TagsInput 与日期输入框共用。\n * 外壳是包着原生 input 的 div:边框、悬停、焦点环(:focus-within)、出错、不可用、只读都画在外壳上,\n * input 本身透明无边框,所以图标、清除按钮、步进按钮可以放进框里。尺寸用 em,随 size 缩放(COMPONENTS.md §3)。\n */\nimport * as css from '@zerodep-dev/vue-tsx-pro-tsx/styles';\nimport type { SxStyles } from '@zerodep-dev/vue-tsx-pro-tsx/styles';\nimport type { VNodeChild } from 'vue';\nimport { ClearButton, type PresetIconButtonProps } from '../base/CloseButton';\nimport { Icon, type IconData, type IconProps } from '../base/Icon';\nimport { useDefaults } from '../config/defaults';\nimport { useRecipe, type PartLayer } from '../config/styles';\nimport { mergeAttrs, mergePartProps, type PartProps } from '../utils/props';\nimport {\n AttachedContext,\n attachedStyles,\n type AttachedOrientations,\n} from '../utils/style/attached';\nimport { focusRingStyles, radiusStyles, type Radius } from '../utils/style/styles';\nimport { fontSizeStyles, type TextSize } from '../utils/style/typography';\nimport { t } from '../config/theme/tokens';\n\n/** 输入框的样式 */\nexport interface ControlVariants {\n /** 表面色加描边(默认) */\n surface: unknown;\n /** 浅色底,没有描边:表单很密、或放在有底色的区域里 */\n soft: unknown;\n}\n\n/** 输入框的外观选项;可以用 createUi / Provider 的 defaults.Input 统一改默认值 */\nexport interface ControlOptions {\n /** 样式,默认 surface */\n variant?: keyof ControlVariants;\n /** 字号档位,内部尺寸随之缩放;不写时继承上下文字号 */\n size?: TextSize;\n /** 圆角,与按钮同一套档位,默认 md;搜索框常用 full(胶囊形) */\n radius?: Radius;\n}\n\n/** 框里最前面的图标(搜索、日历、地球……):各种输入框共有 */\nexport interface ControlIconOptions {\n /** 前置图标 */\n icon?: IconData;\n /** 前置图标的部件属性 */\n propsIcon?: Partial<IconProps>;\n}\n\n/** 外壳的状态:出错、不可用、只读 */\nexport interface ControlState {\n /** 校验未通过:红色描边与焦点环 */\n invalid?: boolean;\n /** 不可用:变淡 */\n disabled?: boolean;\n /** 只读:底色变浅,不显示悬停 */\n readonly?: boolean;\n}\n\n/**\n * 输入框外壳的配方:部件 root(外壳 div)、input(原生 input / textarea)、icon(前后的图标)、\n * affix(前后缀文字)、button(框里的小按钮:清除、显示密码、步进)。\n * 档位是样式(variant)、在 ControlGroup 里的方向(attached)与外壳的状态;圆角、相连、字号用共用的样式表,\n * 由 controlParts 叠在配方之后\n */\nexport const inputRecipe = css.recipe({\n name: 'Input',\n parts: ['root', 'input', 'icon', 'affix', 'button'],\n base: {\n root: {\n boxSizing: 'border-box',\n display: 'inline-flex',\n alignItems: 'center',\n gap: '_sm',\n minWidth: 0,\n minHeight: `max(${t.sizes.control}, ${t.sizes.minTarget})`,\n paddingInline: '_md',\n borderWidth: '_xs',\n borderStyle: 'solid',\n borderColor: { default: '_border', ':hover': '_borderStrong' },\n borderRadius: '_md',\n backgroundColor: '_surface',\n color: '_text',\n lineHeight: '_normal',\n cursor: 'text',\n transition: `border-color ${t.durations.sm} ${t.easings.standard}`,\n },\n // 原生 input / textarea:透明、无边框,占满剩余宽度,字体继承外壳。\n // 参与基线对齐、高度撑满外壳:外壳(flex)的基线取输入框文字的基线,而不是排在前面的图标的底边,\n // 左标签(按基线对齐)才与输入的文字在同一条线上;原生输入框自己把文字竖直居中\n input: {\n alignSelf: 'baseline',\n boxSizing: 'border-box',\n flexGrow: 1,\n minWidth: 0,\n minHeight: `calc(max(${t.sizes.control}, ${t.sizes.minTarget}) - 2 * ${t.borderWidths.xs})`,\n margin: 0,\n paddingBlock: '_xs',\n paddingInline: 0,\n borderWidth: 0,\n outlineStyle: 'none',\n backgroundColor: 'transparent',\n color: 'inherit',\n font: 'inherit',\n cursor: 'inherit',\n '::placeholder': { color: '_textPlaceholder', opacity: 1 },\n },\n // 前后的图标:次要颜色\n icon: { flexShrink: 0, color: '_textMuted' },\n // 前后缀文字(如 https://、元):次要颜色,不换行\n affix: { flexShrink: 0, color: '_textMuted', whiteSpace: 'nowrap' },\n // 框里的小按钮:比独立的图标按钮紧凑,仍不小于 24px 的点击区域\n button: {\n flexShrink: 0,\n width: `max(1.5em, ${t.sizes.minTarget})`,\n minHeight: `max(1.5em, ${t.sizes.minTarget})`,\n marginInline: `calc(-1 * ${t.space.xs})`,\n color: '_textMuted',\n },\n },\n // 档位的先后就是覆盖的先后:只读、出错依次盖过样式的描边与底色\n variants: {\n variant: {\n surface: {},\n soft: {\n root: {\n borderColor: { default: 'transparent', ':hover': 'transparent' },\n backgroundColor: '_fill',\n },\n },\n },\n // 在横排的 ControlGroup 里:输入框分掉剩余宽度(选择框按内容宽,见 selectStyles.root)\n attached: { horizontal: { root: { flexGrow: 1 } }, vertical: {} },\n readonly: {\n true: {\n root: {\n borderColor: { default: '_borderMuted', ':hover': '_borderMuted' },\n backgroundColor: '_fill',\n },\n },\n },\n invalid: {\n true: {\n root: {\n borderColor: { default: '_danger', ':hover': '_danger' },\n outlineColor: '_danger',\n },\n },\n },\n disabled: { true: { root: { opacity: '_disabled', cursor: 'not-allowed' } } },\n // 多行(Textarea):内容从顶部开始,上下也留内边距\n multiline: { true: { root: { alignItems: 'stretch', paddingBlock: '_xs' } } },\n },\n});\n\n/** 输入框外壳的部件(createUi / Provider 的 styles.Input 按它定制) */\nexport type InputPart = (typeof inputRecipe.parts)[number];\n\n/**\n * 外壳各部件交给 mergeAttrs / mergeProps 的默认层:样式与部件标记(data-scope=\"input\")。\n * 要加样式时写 `{ ...s.root, sx: [s.root.sx, 别的] }`\n */\nexport type ControlParts = {\n readonly [Part in InputPart]: Omit<PartLayer, 'sx'> & { readonly sx: SxStyles };\n};\n\n/** 外壳里的图标(前置、后置):次要颜色、不被挤压;没有图标时不渲染 */\nexport function controlIcon(\n parts: ControlParts,\n icon: IconData | undefined,\n props?: Partial<IconProps>,\n): VNodeChild {\n return icon ? <Icon {...mergePartProps<IconProps>({ ...parts.icon, icon }, props)} /> : null;\n}\n\n/** 外壳里的清空按钮:圆形、名称取语言包(清空);有值、可编辑时才渲染由调用方决定 */\nexport function controlClear(\n parts: ControlParts,\n props: Partial<PresetIconButtonProps> | undefined,\n onClick: () => void,\n): VNodeChild {\n return (\n <ClearButton\n {...mergePartProps<PresetIconButtonProps>({ ...parts.button, radius: 'full' }, props, {\n onClick,\n })}\n />\n );\n}\n\n/**\n * 外壳里的前缀、后缀文字(币种、单位):用指向输入框的 label,读屏把单位念进名称(“年度预算 万元”),\n * 不可用时也算作不可用控件的文字(不要求对比度);没有内容时不渲染\n */\nexport function controlAffix(\n parts: ControlParts,\n content: VNodeChild,\n inputId: string,\n props?: PartProps<'label'>,\n): VNodeChild {\n return content == null ? null : (\n <label {...mergeAttrs<'label'>(parts.affix, props, { for: inputId })}>{content}</label>\n );\n}\n\n/** 合并后的外观(默认值已填上);在 ControlGroup 里时带上相连的方向 */\nexport type ControlAppearance = Required<Pick<ControlOptions, 'variant' | 'radius'>> &\n Pick<ControlOptions, 'size'> & {\n attached?: keyof AttachedOrientations;\n /** 外壳的配方,带上 createUi / Provider 里 styles.Input 的定制 */\n recipe: ReturnType<typeof useRecipe<InputPart, unknown>>;\n };\n\n/**\n * 输入框的外观:显式写的 prop > createUi / Provider 的 defaults.Input > 默认(surface)。\n * 在 setup 里调用,返回的函数在渲染时调用\n */\nexport function useControlAppearance(read: () => ControlOptions): () => ControlAppearance {\n const group = AttachedContext.inject(null);\n const recipe = useRecipe(inputRecipe);\n const appearance = useDefaults('Input', read, { variant: 'surface', radius: 'md' });\n return () => ({ ...appearance(), attached: group?.orientation, recipe });\n}\n\n/**\n * 外观与状态 → 外壳各部件的默认层;multiline 给 Textarea。\n * 外壳在配方之后叠上圆角、相连、字号;焦点环排在配方之前,出错档位的红色焦点环才盖得过它\n */\nexport function controlParts(\n { variant, size, radius, attached, recipe }: ControlAppearance,\n { invalid, disabled, readonly }: ControlState,\n multiline = false,\n): ControlParts {\n const parts = recipe({ variant, attached, readonly, invalid, disabled, multiline });\n return {\n ...parts,\n root: {\n ...parts.root,\n sx: [\n focusRingStyles.within,\n parts.root.sx,\n radiusStyles[radius],\n attached && attachedStyles[attached],\n size && fontSizeStyles[size],\n ],\n },\n };\n}\n\n/** 点在外壳的空白处(内边距、图标、标签上):不是主元素本身,也不是框里的按钮 */\nfunction isShellBlank(target: Element, element: HTMLElement): boolean {\n return target !== element && !element.contains(target) && !target.closest('button');\n}\n\n/**\n * 外壳的 onPointerdown:点在外壳的空白处时把焦点交给主元素(input、触发按钮),不让浏览器把焦点放到别处;\n * 点在主元素或框里的按钮上时照常\n */\nexport function focusOnShell(main: () => HTMLElement | null): (event: PointerEvent) => void {\n return (event) => {\n const element = main();\n if (!element || !isShellBlank(event.target as Element, element)) return;\n event.preventDefault();\n element.focus();\n };\n}\n\n/**\n * 外壳的 onClick:点在外壳的空白处时调用 action(Select、TreeSelect 据此切换打开,与点触发按钮一样)。\n * 不在 pointerdown 里打开:原生 popover=\"auto\" 在 pointerup 时把“按下时还没打开”的浮层当作点在外面关掉\n */\nexport function clickOnShell(\n main: () => HTMLElement | null,\n action: (event: MouseEvent) => void,\n): (event: MouseEvent) => void {\n return (event) => {\n const element = main();\n if (element && isShellBlank(event.target as Element, element)) action(event);\n };\n}\n"],"mappings":"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"}