@qw-ui/core 0.3.0-next.8 → 0.3.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 (415) hide show
  1. package/README.md +21 -37
  2. package/dist/action-sheet/action-sheet.d.ts +110 -0
  3. package/dist/action-sheet/index.d.ts +2 -0
  4. package/dist/action-sheet/index.js +2 -0
  5. package/dist/action-sheet-Cvcr1S_m.js +183 -0
  6. package/dist/action-sheet-Cvcr1S_m.js.map +1 -0
  7. package/dist/area-picker/area-picker.d.ts +113 -0
  8. package/dist/area-picker/index.d.ts +1 -0
  9. package/dist/area-picker/index.js +348 -0
  10. package/dist/area-picker/index.js.map +1 -0
  11. package/dist/aria-description-CimD2M_C.js +13 -0
  12. package/dist/aria-description-CimD2M_C.js.map +1 -0
  13. package/dist/aria-description.d.ts +2 -0
  14. package/dist/avatar/avatar-load.d.ts +76 -0
  15. package/dist/avatar/avatar.d.ts +22 -5
  16. package/dist/avatar/index.d.ts +1 -0
  17. package/dist/avatar/index.js +57 -18
  18. package/dist/avatar/index.js.map +1 -1
  19. package/dist/avatar-load-w9dq05oV.js +139 -0
  20. package/dist/avatar-load-w9dq05oV.js.map +1 -0
  21. package/dist/back-top/back-top.d.ts +77 -0
  22. package/dist/back-top/index.d.ts +1 -0
  23. package/dist/back-top/index.js +189 -0
  24. package/dist/back-top/index.js.map +1 -0
  25. package/dist/badge/badge.d.ts +85 -0
  26. package/dist/badge/index.d.ts +1 -0
  27. package/dist/badge/index.js +88 -0
  28. package/dist/badge/index.js.map +1 -0
  29. package/dist/button/button.d.ts +13 -0
  30. package/dist/button/index.js +3 -5
  31. package/dist/button/index.js.map +1 -1
  32. package/dist/calendar/calendar.d.ts +100 -0
  33. package/dist/calendar/index.d.ts +1 -0
  34. package/dist/calendar/index.js +2 -0
  35. package/dist/calendar-CmpK3stz.js +363 -0
  36. package/dist/calendar-CmpK3stz.js.map +1 -0
  37. package/dist/card/card.d.ts +68 -0
  38. package/dist/card/index.d.ts +2 -0
  39. package/dist/card/index.js +2 -0
  40. package/dist/card-DRtWa6Cr.js +107 -0
  41. package/dist/card-DRtWa6Cr.js.map +1 -0
  42. package/dist/cascader/cascader.d.ts +115 -0
  43. package/dist/cascader/index.d.ts +1 -0
  44. package/dist/cascader/index.js +2 -0
  45. package/dist/cascader-D-xMjs7P.js +333 -0
  46. package/dist/cascader-D-xMjs7P.js.map +1 -0
  47. package/dist/cell/cell.d.ts +41 -0
  48. package/dist/cell/index.d.ts +1 -0
  49. package/dist/cell/index.js +43 -0
  50. package/dist/cell/index.js.map +1 -0
  51. package/dist/check-list/check-list.d.ts +78 -0
  52. package/dist/check-list/index.d.ts +2 -0
  53. package/dist/check-list/index.js +2 -0
  54. package/dist/check-list-BvZHQt5w.js +60 -0
  55. package/dist/check-list-BvZHQt5w.js.map +1 -0
  56. package/dist/checkbox/checkbox.d.ts +59 -0
  57. package/dist/checkbox/index.d.ts +2 -0
  58. package/dist/checkbox/index.js +2 -0
  59. package/dist/checkbox-BlndJrz5.js +127 -0
  60. package/dist/checkbox-BlndJrz5.js.map +1 -0
  61. package/dist/checkbox-group/checkbox-group.d.ts +86 -0
  62. package/dist/checkbox-group/index.d.ts +3 -0
  63. package/dist/checkbox-group/index.js +2 -0
  64. package/dist/checkbox-group-gGfsTv-e.js +223 -0
  65. package/dist/checkbox-group-gGfsTv-e.js.map +1 -0
  66. package/dist/choice-group-C4c9m0qe.js +373 -0
  67. package/dist/choice-group-C4c9m0qe.js.map +1 -0
  68. package/dist/circle/circle.d.ts +97 -0
  69. package/dist/circle/index.d.ts +1 -0
  70. package/dist/circle/index.js +119 -0
  71. package/dist/circle/index.js.map +1 -0
  72. package/dist/collapse/collapse.d.ts +98 -0
  73. package/dist/collapse/index.d.ts +2 -0
  74. package/dist/collapse/index.js +2 -0
  75. package/dist/collapse-B969h7-H.js +226 -0
  76. package/dist/collapse-B969h7-H.js.map +1 -0
  77. package/dist/countdown/countdown.d.ts +114 -0
  78. package/dist/countdown/index.d.ts +1 -0
  79. package/dist/countdown/index.js +309 -0
  80. package/dist/countdown/index.js.map +1 -0
  81. package/dist/date-picker/date-picker.d.ts +168 -0
  82. package/dist/date-picker/index.d.ts +1 -0
  83. package/dist/date-picker/index.js +401 -0
  84. package/dist/date-picker/index.js.map +1 -0
  85. package/dist/descriptions/descriptions.d.ts +69 -0
  86. package/dist/descriptions/index.d.ts +1 -0
  87. package/dist/descriptions/index.js +86 -0
  88. package/dist/descriptions/index.js.map +1 -0
  89. package/dist/dialog/dialog.d.ts +61 -43
  90. package/dist/dialog/index.js +73 -19
  91. package/dist/dialog/index.js.map +1 -1
  92. package/dist/divider/divider.d.ts +18 -2
  93. package/dist/divider/index.js +20 -2
  94. package/dist/divider/index.js.map +1 -1
  95. package/dist/dropdown/dropdown.d.ts +172 -0
  96. package/dist/dropdown/index.d.ts +2 -0
  97. package/dist/dropdown/index.js +467 -0
  98. package/dist/dropdown/index.js.map +1 -0
  99. package/dist/ellipsis/ellipsis-layout.d.ts +34 -0
  100. package/dist/ellipsis/ellipsis.d.ts +88 -0
  101. package/dist/ellipsis/index.d.ts +2 -0
  102. package/dist/ellipsis/index.js +320 -0
  103. package/dist/ellipsis/index.js.map +1 -0
  104. package/dist/empty/empty-illustration.d.ts +3 -0
  105. package/dist/empty/empty.d.ts +43 -1
  106. package/dist/empty/index.js +2 -21
  107. package/dist/empty-CAgyvhUI.js +166 -0
  108. package/dist/empty-CAgyvhUI.js.map +1 -0
  109. package/dist/field/field.d.ts +95 -0
  110. package/dist/field/index.d.ts +2 -0
  111. package/dist/field/index.js +2 -0
  112. package/dist/field-DMHGIMZF.js +241 -0
  113. package/dist/field-DMHGIMZF.js.map +1 -0
  114. package/dist/floating-bubble/floating-bubble.d.ts +116 -0
  115. package/dist/floating-bubble/index.d.ts +1 -0
  116. package/dist/floating-bubble/index.js +333 -0
  117. package/dist/floating-bubble/index.js.map +1 -0
  118. package/dist/floating-panel/floating-panel.d.ts +80 -0
  119. package/dist/floating-panel/index.d.ts +2 -0
  120. package/dist/floating-panel/index.js +2 -0
  121. package/dist/floating-panel-Cbm5njBJ.js +363 -0
  122. package/dist/floating-panel-Cbm5njBJ.js.map +1 -0
  123. package/dist/footer/footer.d.ts +94 -0
  124. package/dist/footer/index.d.ts +1 -0
  125. package/dist/footer/index.js +154 -0
  126. package/dist/footer/index.js.map +1 -0
  127. package/dist/form/connect.d.ts +6 -0
  128. package/dist/form/form.d.ts +100 -0
  129. package/dist/form/ids.d.ts +14 -0
  130. package/dist/form/index.d.ts +13 -0
  131. package/dist/form/index.js +3 -0
  132. package/dist/form/methods.d.ts +5 -0
  133. package/dist/form/model.d.ts +24 -0
  134. package/dist/form/native.d.ts +25 -0
  135. package/dist/form/rules.d.ts +40 -0
  136. package/dist/form/ssr.d.ts +7 -0
  137. package/dist/form/types.d.ts +150 -0
  138. package/dist/form-BAGkIEMY.js +1354 -0
  139. package/dist/form-BAGkIEMY.js.map +1 -0
  140. package/dist/format-BDUY0C_c.js +89 -0
  141. package/dist/format-BDUY0C_c.js.map +1 -0
  142. package/dist/gesture-_SRHIvBm.js +30 -0
  143. package/dist/gesture-_SRHIvBm.js.map +1 -0
  144. package/dist/grid/grid-item.d.ts +22 -0
  145. package/dist/grid/grid.d.ts +42 -0
  146. package/dist/grid/index.d.ts +2 -0
  147. package/dist/grid/index.js +73 -0
  148. package/dist/grid/index.js.map +1 -0
  149. package/dist/icon/icon.d.ts +37 -1
  150. package/dist/icon/identity.d.ts +3 -0
  151. package/dist/icon/index.js +2 -20
  152. package/dist/icon-Cgdbnk1u.js +77 -0
  153. package/dist/icon-Cgdbnk1u.js.map +1 -0
  154. package/dist/image/image-load.d.ts +24 -0
  155. package/dist/image/image.d.ts +45 -8
  156. package/dist/image/index.d.ts +1 -0
  157. package/dist/image/index.js +116 -14
  158. package/dist/image/index.js.map +1 -1
  159. package/dist/image-preview/image-preview.d.ts +124 -0
  160. package/dist/image-preview/index.d.ts +1 -0
  161. package/dist/image-preview/index.js +450 -0
  162. package/dist/image-preview/index.js.map +1 -0
  163. package/dist/index-bar/index-bar.d.ts +121 -0
  164. package/dist/index-bar/index.d.ts +1 -0
  165. package/dist/index-bar/index.js +386 -0
  166. package/dist/index-bar/index.js.map +1 -0
  167. package/dist/index.d.ts +115 -10
  168. package/dist/index.js +151 -11
  169. package/dist/index.js.map +1 -0
  170. package/dist/infinite-scroll/index.d.ts +1 -0
  171. package/dist/infinite-scroll/index.js +248 -0
  172. package/dist/infinite-scroll/index.js.map +1 -0
  173. package/dist/infinite-scroll/infinite-scroll.d.ts +95 -0
  174. package/dist/input/index.js +181 -22
  175. package/dist/input/index.js.map +1 -1
  176. package/dist/input/input.d.ts +44 -1
  177. package/dist/layer-IpFrl5--.js +414 -0
  178. package/dist/layer-IpFrl5--.js.map +1 -0
  179. package/dist/layout-BRSqi4AQ.js +43 -0
  180. package/dist/layout-BRSqi4AQ.js.map +1 -0
  181. package/dist/layout.d.ts +13 -0
  182. package/dist/list/index.d.ts +2 -0
  183. package/dist/list/index.js +2 -0
  184. package/dist/list/list.d.ts +30 -0
  185. package/dist/list-6-iz-Irh.js +28 -0
  186. package/dist/list-6-iz-Irh.js.map +1 -0
  187. package/dist/loading/index.js +45 -2
  188. package/dist/loading/index.js.map +1 -1
  189. package/dist/loading/loading.d.ts +45 -2
  190. package/dist/modal-dialog-machine-CF9_z3Dm.js +487 -0
  191. package/dist/modal-dialog-machine-CF9_z3Dm.js.map +1 -0
  192. package/dist/modal-dialog-machine.d.ts +21 -0
  193. package/dist/modal-dismissable-lifetime.d.ts +21 -0
  194. package/dist/modal-registry.d.ts +24 -0
  195. package/dist/modal-render-hydration.d.ts +35 -0
  196. package/dist/modal-render-runtime.d.ts +19 -0
  197. package/dist/modal-render-scope.d.ts +63 -0
  198. package/dist/nav-bar/index.d.ts +1 -0
  199. package/dist/nav-bar/index.js +115 -0
  200. package/dist/nav-bar/index.js.map +1 -0
  201. package/dist/nav-bar/nav-bar.d.ts +76 -0
  202. package/dist/notice-bar/index.d.ts +2 -0
  203. package/dist/notice-bar/index.js +2 -0
  204. package/dist/notice-bar/notice-bar.d.ts +103 -0
  205. package/dist/notice-bar-DMpwLvRb.js +231 -0
  206. package/dist/notice-bar-DMpwLvRb.js.map +1 -0
  207. package/dist/notify/index.d.ts +1 -0
  208. package/dist/notify/index.js +251 -0
  209. package/dist/notify/index.js.map +1 -0
  210. package/dist/notify/notify.d.ts +123 -0
  211. package/dist/number-keyboard/index.d.ts +1 -0
  212. package/dist/number-keyboard/index.js +333 -0
  213. package/dist/number-keyboard/index.js.map +1 -0
  214. package/dist/number-keyboard/number-keyboard.d.ts +141 -0
  215. package/dist/overlay-panel/index.d.ts +2 -0
  216. package/dist/overlay-panel/index.js +2 -0
  217. package/dist/overlay-panel/overlay-panel.d.ts +20 -0
  218. package/dist/overlay-panel-Z_qdKeBj.js +26 -0
  219. package/dist/overlay-panel-Z_qdKeBj.js.map +1 -0
  220. package/dist/page-indicator/index.d.ts +1 -0
  221. package/dist/page-indicator/index.js +138 -0
  222. package/dist/page-indicator/index.js.map +1 -0
  223. package/dist/page-indicator/page-indicator.d.ts +93 -0
  224. package/dist/pagination/index.d.ts +1 -0
  225. package/dist/pagination/index.js +198 -0
  226. package/dist/pagination/index.js.map +1 -0
  227. package/dist/pagination/pagination.d.ts +125 -0
  228. package/dist/password-input/index.d.ts +1 -0
  229. package/dist/password-input/index.js +317 -0
  230. package/dist/password-input/index.js.map +1 -0
  231. package/dist/password-input/password-input.d.ts +144 -0
  232. package/dist/picker/index.d.ts +8 -0
  233. package/dist/picker/index.js +2 -0
  234. package/dist/picker/picker-machine.d.ts +80 -0
  235. package/dist/picker/picker.d.ts +121 -0
  236. package/dist/picker/platform.d.ts +84 -0
  237. package/dist/picker/selection-connect.d.ts +90 -0
  238. package/dist/picker/selection-model.d.ts +211 -0
  239. package/dist/picker-BykFntQN.js +1675 -0
  240. package/dist/picker-BykFntQN.js.map +1 -0
  241. package/dist/popover/index.d.ts +3 -0
  242. package/dist/popover/index.js +253 -0
  243. package/dist/popover/index.js.map +1 -0
  244. package/dist/popover/layer.d.ts +44 -0
  245. package/dist/popover/popover.d.ts +104 -0
  246. package/dist/popover/positioning.d.ts +132 -0
  247. package/dist/popup/index.d.ts +2 -0
  248. package/dist/popup/index.js +2 -0
  249. package/dist/popup/popup.d.ts +60 -0
  250. package/dist/popup-z5d8IYCt.js +576 -0
  251. package/dist/popup-z5d8IYCt.js.map +1 -0
  252. package/dist/portal-BHCNTWhg.js +78 -0
  253. package/dist/portal-BHCNTWhg.js.map +1 -0
  254. package/dist/portal.d.ts +61 -0
  255. package/dist/price/format.d.ts +19 -0
  256. package/dist/price/index.d.ts +1 -0
  257. package/dist/price/index.js +154 -0
  258. package/dist/price/index.js.map +1 -0
  259. package/dist/price/price.d.ts +88 -0
  260. package/dist/progress/index.d.ts +1 -0
  261. package/dist/progress/index.js +2 -0
  262. package/dist/progress/progress.d.ts +32 -0
  263. package/dist/progress-f3iYEfdA.js +37 -0
  264. package/dist/progress-f3iYEfdA.js.map +1 -0
  265. package/dist/pull-refresh/index.d.ts +1 -0
  266. package/dist/pull-refresh/index.js +414 -0
  267. package/dist/pull-refresh/index.js.map +1 -0
  268. package/dist/pull-refresh/pull-refresh.d.ts +118 -0
  269. package/dist/radio-group/index.d.ts +3 -0
  270. package/dist/radio-group/index.js +2 -0
  271. package/dist/radio-group/radio-group.d.ts +78 -0
  272. package/dist/radio-group-BOIMuqnS.js +230 -0
  273. package/dist/radio-group-BOIMuqnS.js.map +1 -0
  274. package/dist/rate/index.d.ts +1 -0
  275. package/dist/rate/index.js +2 -0
  276. package/dist/rate/rate-form.d.ts +28 -0
  277. package/dist/rate/rate.d.ts +144 -0
  278. package/dist/rate-5XsU2QkY.js +631 -0
  279. package/dist/rate-5XsU2QkY.js.map +1 -0
  280. package/dist/reorder/index.d.ts +1 -0
  281. package/dist/reorder/index.js +720 -0
  282. package/dist/reorder/index.js.map +1 -0
  283. package/dist/reorder/reorder.d.ts +190 -0
  284. package/dist/result/index.d.ts +1 -0
  285. package/dist/result/index.js +123 -0
  286. package/dist/result/index.js.map +1 -0
  287. package/dist/result/result.d.ts +88 -0
  288. package/dist/safe-area/index.d.ts +1 -0
  289. package/dist/safe-area/index.js +42 -0
  290. package/dist/safe-area/index.js.map +1 -0
  291. package/dist/safe-area/safe-area.d.ts +28 -0
  292. package/dist/search-bar/index.js +4 -2
  293. package/dist/search-bar/index.js.map +1 -1
  294. package/dist/search-bar/search-bar.d.ts +6 -0
  295. package/dist/segmented/index.d.ts +2 -0
  296. package/dist/segmented/index.js +2 -0
  297. package/dist/segmented/segmented.d.ts +127 -0
  298. package/dist/segmented-BaU38_L4.js +367 -0
  299. package/dist/segmented-BaU38_L4.js.map +1 -0
  300. package/dist/selection-form-BOM_odUk.js +88 -0
  301. package/dist/selection-form-BOM_odUk.js.map +1 -0
  302. package/dist/selection-form.d.ts +27 -0
  303. package/dist/selection-ivXqO1eu.js +55 -0
  304. package/dist/selection-ivXqO1eu.js.map +1 -0
  305. package/dist/selection.d.ts +29 -0
  306. package/dist/selector/choice-group.d.ts +114 -0
  307. package/dist/selector/index.d.ts +2 -0
  308. package/dist/selector/index.js +2 -0
  309. package/dist/selector/selector.d.ts +90 -0
  310. package/dist/selector-BU2MMJ4N.js +93 -0
  311. package/dist/selector-BU2MMJ4N.js.map +1 -0
  312. package/dist/share-sheet/index.d.ts +1 -0
  313. package/dist/share-sheet/index.js +138 -0
  314. package/dist/share-sheet/index.js.map +1 -0
  315. package/dist/share-sheet/share-sheet.d.ts +139 -0
  316. package/dist/side-nav/index.d.ts +1 -0
  317. package/dist/side-nav/index.js +99 -0
  318. package/dist/side-nav/index.js.map +1 -0
  319. package/dist/side-nav/side-nav.d.ts +94 -0
  320. package/dist/skeleton/index.js +51 -2
  321. package/dist/skeleton/index.js.map +1 -1
  322. package/dist/skeleton/skeleton.d.ts +34 -3
  323. package/dist/slider/index.d.ts +1 -0
  324. package/dist/slider/index.js +482 -0
  325. package/dist/slider/index.js.map +1 -0
  326. package/dist/slider/slider.d.ts +174 -0
  327. package/dist/space/index.d.ts +1 -0
  328. package/dist/space/index.js +52 -0
  329. package/dist/space/index.js.map +1 -0
  330. package/dist/space/space.d.ts +46 -0
  331. package/dist/statistic/index.d.ts +1 -0
  332. package/dist/statistic/index.js +152 -0
  333. package/dist/statistic/index.js.map +1 -0
  334. package/dist/statistic/statistic.d.ts +101 -0
  335. package/dist/stepper/index.d.ts +1 -0
  336. package/dist/stepper/index.js +172 -0
  337. package/dist/stepper/index.js.map +1 -0
  338. package/dist/stepper/stepper.d.ts +161 -0
  339. package/dist/steps/index.d.ts +1 -0
  340. package/dist/steps/index.js +72 -0
  341. package/dist/steps/index.js.map +1 -0
  342. package/dist/steps/steps.d.ts +67 -0
  343. package/dist/sticky/index.d.ts +1 -0
  344. package/dist/sticky/index.js +145 -0
  345. package/dist/sticky/index.js.map +1 -0
  346. package/dist/sticky/sticky.d.ts +70 -0
  347. package/dist/swipe-action/index.d.ts +1 -0
  348. package/dist/swipe-action/index.js +417 -0
  349. package/dist/swipe-action/index.js.map +1 -0
  350. package/dist/swipe-action/swipe-action.d.ts +148 -0
  351. package/dist/swiper/gesture.d.ts +32 -0
  352. package/dist/swiper/index.d.ts +1 -0
  353. package/dist/swiper/index.js +2 -0
  354. package/dist/swiper/swiper.d.ts +177 -0
  355. package/dist/swiper-BKivDkHp.js +550 -0
  356. package/dist/swiper-BKivDkHp.js.map +1 -0
  357. package/dist/switch/index.d.ts +1 -0
  358. package/dist/switch/index.js +168 -0
  359. package/dist/switch/index.js.map +1 -0
  360. package/dist/switch/switch.d.ts +142 -0
  361. package/dist/tabbar/index.d.ts +1 -0
  362. package/dist/tabbar/index.js +95 -0
  363. package/dist/tabbar/index.js.map +1 -0
  364. package/dist/tabbar/tabbar.d.ts +119 -0
  365. package/dist/tabs/index.js +22 -1
  366. package/dist/tabs/index.js.map +1 -1
  367. package/dist/tabs/tabs.d.ts +12 -8
  368. package/dist/tag/index.js +123 -2
  369. package/dist/tag/index.js.map +1 -1
  370. package/dist/tag/tag.d.ts +67 -1
  371. package/dist/textarea/index.d.ts +2 -0
  372. package/dist/textarea/index.js +2 -242
  373. package/dist/textarea/platform.d.ts +22 -0
  374. package/dist/textarea/textarea.d.ts +169 -46
  375. package/dist/textarea-qbnruDUG.js +775 -0
  376. package/dist/textarea-qbnruDUG.js.map +1 -0
  377. package/dist/time-picker/index.d.ts +1 -0
  378. package/dist/time-picker/index.js +228 -0
  379. package/dist/time-picker/index.js.map +1 -0
  380. package/dist/time-picker/time-picker.d.ts +83 -0
  381. package/dist/timeline/index.d.ts +1 -0
  382. package/dist/timeline/index.js +131 -0
  383. package/dist/timeline/index.js.map +1 -0
  384. package/dist/timeline/timeline.d.ts +79 -0
  385. package/dist/toast/index.js +47 -4
  386. package/dist/toast/index.js.map +1 -1
  387. package/dist/toast/toast.d.ts +26 -3
  388. package/dist/top-bar/index.js +16 -2
  389. package/dist/top-bar/index.js.map +1 -1
  390. package/dist/top-bar/top-bar.d.ts +13 -2
  391. package/dist/tree-select/index.d.ts +1 -0
  392. package/dist/tree-select/index.js +512 -0
  393. package/dist/tree-select/index.js.map +1 -0
  394. package/dist/tree-select/tree-select.d.ts +215 -0
  395. package/dist/typography/index.d.ts +1 -0
  396. package/dist/typography/index.js +82 -0
  397. package/dist/typography/index.js.map +1 -0
  398. package/dist/typography/typography.d.ts +54 -0
  399. package/dist/upload/index.d.ts +1 -0
  400. package/dist/upload/index.js +458 -0
  401. package/dist/upload/index.js.map +1 -0
  402. package/dist/upload/upload.d.ts +172 -0
  403. package/dist/virtual-list/index.d.ts +1 -0
  404. package/dist/virtual-list/index.js +445 -0
  405. package/dist/virtual-list/index.js.map +1 -0
  406. package/dist/virtual-list/virtual-list.d.ts +160 -0
  407. package/dist/visual-manifest.d.ts +27 -0
  408. package/dist/watermark/index.d.ts +1 -0
  409. package/dist/watermark/index.js +260 -0
  410. package/dist/watermark/index.js.map +1 -0
  411. package/dist/watermark/watermark.d.ts +106 -0
  412. package/package.json +417 -44
  413. package/dist/empty/index.js.map +0 -1
  414. package/dist/icon/index.js.map +0 -1
  415. package/dist/textarea/index.js.map +0 -1
@@ -0,0 +1,115 @@
1
+ import { type Machine, type Service } from "@zag-js/core";
2
+ import type { NormalizeProps, PropTypes } from "@zag-js/types";
3
+ export declare const CASCADER_PARTS: readonly ["root", "label", "columns", "column", "option", "status", "retry-trigger", "actions", "cancel-trigger", "confirm-trigger", "output"];
4
+ export interface CascaderOption {
5
+ value: string;
6
+ label: string;
7
+ disabled?: boolean;
8
+ leaf?: boolean;
9
+ children?: CascaderOption[];
10
+ }
11
+ export interface CascaderValueChangeDetails {
12
+ value: string[];
13
+ labels: string[];
14
+ }
15
+ export interface CascaderLoadDetails {
16
+ option: CascaderOption;
17
+ path: string[];
18
+ signal: AbortSignal;
19
+ }
20
+ export interface QwCascaderProps {
21
+ id?: string;
22
+ label?: string;
23
+ options: CascaderOption[];
24
+ value?: string[];
25
+ defaultValue?: string[];
26
+ dir?: "ltr" | "rtl";
27
+ loadChildren?: (details: CascaderLoadDetails) => Promise<CascaderOption[]>;
28
+ loadingText?: string;
29
+ errorText?: string;
30
+ retryText?: string;
31
+ cancelText?: string;
32
+ confirmText?: string;
33
+ onValueChange?: (details: CascaderValueChangeDetails) => void;
34
+ onCancel?: () => void;
35
+ onConfirm?: (details: CascaderValueChangeDetails) => void;
36
+ }
37
+ export declare function normalizeCascaderOptions(options?: readonly CascaderOption[], owner?: string): CascaderOption[];
38
+ export declare function resolveCascaderPath(options: readonly CascaderOption[], path: readonly string[]): CascaderOption[];
39
+ export declare function normalizeCascaderValue(options: readonly CascaderOption[], path?: readonly string[]): string[];
40
+ export declare function getCascaderLabels(options: readonly CascaderOption[], path: readonly string[]): string[];
41
+ export declare function updateCascaderChildren(options: readonly CascaderOption[], path: readonly string[], children: CascaderOption[]): CascaderOption[];
42
+ export interface CascaderColumn {
43
+ depth: number;
44
+ options: readonly CascaderOption[];
45
+ selected?: string;
46
+ }
47
+ export declare function getCascaderColumns(options: readonly CascaderOption[], path: readonly string[]): CascaderColumn[];
48
+ export declare function createCascaderProps(props: QwCascaderProps): QwCascaderProps;
49
+ export interface QwCascaderSchema {
50
+ props: QwCascaderProps;
51
+ context: {
52
+ value: string[];
53
+ draft: string[];
54
+ options: CascaderOption[];
55
+ loadingPath: string[];
56
+ errorPath: string[];
57
+ request: number;
58
+ };
59
+ refs: {
60
+ controller: AbortController | null;
61
+ active: boolean;
62
+ };
63
+ state: "idle";
64
+ action: "select" | "cancel" | "confirm" | "loadSuccess" | "loadError" | "retry" | "sync";
65
+ effect: "lifecycle";
66
+ event: {
67
+ type: "SELECT";
68
+ depth: number;
69
+ value: string;
70
+ } | {
71
+ type: "CANCEL";
72
+ } | {
73
+ type: "CONFIRM";
74
+ } | {
75
+ type: "LOAD.SUCCESS";
76
+ ticket: number;
77
+ path: string[];
78
+ children: CascaderOption[];
79
+ } | {
80
+ type: "LOAD.ERROR";
81
+ ticket: number;
82
+ path: string[];
83
+ } | {
84
+ type: "RETRY";
85
+ } | {
86
+ type: "PROPS.SYNC";
87
+ };
88
+ }
89
+ export type QwCascaderMachine = Machine<QwCascaderSchema>;
90
+ export type QwCascaderService = Service<QwCascaderSchema>;
91
+ export declare const cascaderMachine: QwCascaderMachine;
92
+ export interface QwCascaderApi<T extends PropTypes = PropTypes> {
93
+ value: string[];
94
+ draft: string[];
95
+ labels: string[];
96
+ columns: CascaderColumn[];
97
+ loading: boolean;
98
+ error: boolean;
99
+ select(depth: number, value: string): void;
100
+ retry(): void;
101
+ cancel(): void;
102
+ confirm(): void;
103
+ getRootProps(): T["element"];
104
+ getLabelProps(): T["element"];
105
+ getColumnsProps(): T["element"];
106
+ getColumnProps(column: CascaderColumn): T["element"];
107
+ getOptionProps(column: CascaderColumn, option: CascaderOption): T["button"];
108
+ getStatusProps(): T["element"];
109
+ getRetryTriggerProps(): T["button"];
110
+ getActionsProps(): T["element"];
111
+ getCancelTriggerProps(): T["button"];
112
+ getConfirmTriggerProps(): T["button"];
113
+ getOutputProps(): T["element"];
114
+ }
115
+ export declare function connectCascader<T extends PropTypes>(service: QwCascaderService, normalize: NormalizeProps<T>): QwCascaderApi<T>;
@@ -0,0 +1 @@
1
+ export * from "./cascader.js";
@@ -0,0 +1,2 @@
1
+ import { a as getCascaderColumns, c as normalizeCascaderValue, i as createCascaderProps, l as resolveCascaderPath, n as cascaderMachine, o as getCascaderLabels, r as connectCascader, s as normalizeCascaderOptions, t as CASCADER_PARTS, u as updateCascaderChildren } from "../cascader-D-xMjs7P.js";
2
+ export { CASCADER_PARTS, cascaderMachine, connectCascader, createCascaderProps, getCascaderColumns, getCascaderLabels, normalizeCascaderOptions, normalizeCascaderValue, resolveCascaderPath, updateCascaderChildren };
@@ -0,0 +1,333 @@
1
+ import { createMachine } from "@zag-js/core";
2
+ import { dataAttr } from "@zag-js/dom-query";
3
+ //#region src/cascader/cascader.ts
4
+ const CASCADER_PARTS = [
5
+ "root",
6
+ "label",
7
+ "columns",
8
+ "column",
9
+ "option",
10
+ "status",
11
+ "retry-trigger",
12
+ "actions",
13
+ "cancel-trigger",
14
+ "confirm-trigger",
15
+ "output"
16
+ ];
17
+ const clean = (value) => typeof value === "string" ? value.trim() : "";
18
+ function normalizeCascaderOptions(options = [], owner = "Cascader") {
19
+ const seen = /* @__PURE__ */ new Set();
20
+ return options.map((item) => {
21
+ const value = clean(item.value), label = clean(item.label);
22
+ if (!value || !label) throw new TypeError(`${owner} options require nonempty value and label`);
23
+ if (seen.has(value)) throw new TypeError(`${owner} sibling values must be unique: ${value}`);
24
+ seen.add(value);
25
+ return {
26
+ value,
27
+ label,
28
+ disabled: !!item.disabled || void 0,
29
+ leaf: !!item.leaf || void 0,
30
+ children: item.children ? [...normalizeCascaderOptions(item.children, owner)] : void 0
31
+ };
32
+ });
33
+ }
34
+ function resolveCascaderPath(options, path) {
35
+ const result = [];
36
+ let level = options;
37
+ for (const value of path) {
38
+ const found = level.find((item) => item.value === value);
39
+ if (!found) break;
40
+ result.push(found);
41
+ level = found.children ?? [];
42
+ }
43
+ return result;
44
+ }
45
+ function normalizeCascaderValue(options, path = []) {
46
+ return resolveCascaderPath(options, path.map(clean).filter(Boolean)).map((item) => item.value);
47
+ }
48
+ function getCascaderLabels(options, path) {
49
+ return resolveCascaderPath(options, path).map((item) => item.label);
50
+ }
51
+ function updateCascaderChildren(options, path, children) {
52
+ if (!path.length) return [...options];
53
+ const [value, ...rest] = path;
54
+ return options.map((item) => item.value !== value ? item : rest.length ? {
55
+ ...item,
56
+ children: updateCascaderChildren(item.children ?? [], rest, children)
57
+ } : {
58
+ ...item,
59
+ children
60
+ });
61
+ }
62
+ function getCascaderColumns(options, path) {
63
+ const columns = [];
64
+ let level = options;
65
+ for (let depth = 0; level.length; depth++) {
66
+ columns.push({
67
+ depth,
68
+ options: level,
69
+ selected: path[depth]
70
+ });
71
+ const selected = level.find((item) => item.value === path[depth]);
72
+ if (!selected?.children?.length) break;
73
+ level = selected.children;
74
+ }
75
+ return columns;
76
+ }
77
+ function createCascaderProps(props) {
78
+ return {
79
+ ...props,
80
+ label: clean(props.label) || "级联选择",
81
+ options: normalizeCascaderOptions(props.options ?? []),
82
+ loadingText: clean(props.loadingText) || "加载中",
83
+ errorText: clean(props.errorText) || "加载失败",
84
+ retryText: clean(props.retryText) || "重试",
85
+ cancelText: clean(props.cancelText) || "取消",
86
+ confirmText: clean(props.confirmText) || "确认"
87
+ };
88
+ }
89
+ function details(options, value) {
90
+ return {
91
+ value: [...value],
92
+ labels: getCascaderLabels(options, value)
93
+ };
94
+ }
95
+ function invalidateLoad(params) {
96
+ params.refs.get("controller")?.abort();
97
+ params.refs.set("controller", null);
98
+ params.context.set("request", params.context.get("request") + 1);
99
+ params.context.set("loadingPath", []);
100
+ }
101
+ function requestLoad(params, path) {
102
+ const loader = params.prop("loadChildren");
103
+ if (!loader) return;
104
+ const option = resolveCascaderPath(params.context.get("options"), path).at(-1);
105
+ if (!option || option.leaf || option.disabled) return;
106
+ invalidateLoad(params);
107
+ const ticket = params.context.get("request"), controller = new AbortController();
108
+ params.refs.set("controller", controller);
109
+ params.context.set("loadingPath", path);
110
+ params.context.set("errorPath", []);
111
+ Promise.resolve(loader({
112
+ option,
113
+ path: [...path],
114
+ signal: controller.signal
115
+ })).then((children) => {
116
+ if (params.refs.get("active") && !controller.signal.aborted) params.send({
117
+ type: "LOAD.SUCCESS",
118
+ ticket,
119
+ path,
120
+ children
121
+ });
122
+ }, () => {
123
+ if (params.refs.get("active") && !controller.signal.aborted) params.send({
124
+ type: "LOAD.ERROR",
125
+ ticket,
126
+ path
127
+ });
128
+ });
129
+ }
130
+ function scheduleLoad(params, path) {
131
+ const ticket = params.context.get("request");
132
+ queueMicrotask(() => {
133
+ if (params.refs.get("active") && params.context.get("request") === ticket) requestLoad(params, path);
134
+ });
135
+ }
136
+ const cascaderMachine = createMachine({
137
+ props: ({ props }) => createCascaderProps({
138
+ ...props,
139
+ options: props.options ?? []
140
+ }),
141
+ initialState: () => "idle",
142
+ states: { idle: {} },
143
+ context: ({ bindable, prop }) => {
144
+ const contextOptions = () => normalizeCascaderOptions(prop("options") ?? []), options = contextOptions(), initial = normalizeCascaderValue(options, prop("defaultValue") ?? []);
145
+ return {
146
+ value: bindable(() => ({
147
+ defaultValue: initial,
148
+ value: prop("value") === void 0 ? void 0 : normalizeCascaderValue(contextOptions(), prop("value")),
149
+ hash: (value) => value.join("\0")
150
+ })),
151
+ draft: bindable(() => ({
152
+ defaultValue: initial,
153
+ hash: (value) => value.join("\0")
154
+ })),
155
+ options: bindable(() => ({
156
+ defaultValue: options,
157
+ hash: JSON.stringify
158
+ })),
159
+ loadingPath: bindable(() => ({
160
+ defaultValue: [],
161
+ hash: (value) => value.join("/")
162
+ })),
163
+ errorPath: bindable(() => ({
164
+ defaultValue: [],
165
+ hash: (value) => value.join("/")
166
+ })),
167
+ request: bindable(() => ({ defaultValue: 0 }))
168
+ };
169
+ },
170
+ refs: () => ({
171
+ controller: null,
172
+ active: false
173
+ }),
174
+ effects: ["lifecycle"],
175
+ watch({ track, prop, send }) {
176
+ track([() => JSON.stringify(prop("options") ?? []), () => JSON.stringify(prop("value"))], () => send({ type: "PROPS.SYNC" }));
177
+ },
178
+ on: {
179
+ SELECT: { actions: ["select"] },
180
+ CANCEL: { actions: ["cancel"] },
181
+ CONFIRM: { actions: ["confirm"] },
182
+ "LOAD.SUCCESS": { actions: ["loadSuccess"] },
183
+ "LOAD.ERROR": { actions: ["loadError"] },
184
+ RETRY: { actions: ["retry"] },
185
+ "PROPS.SYNC": { actions: ["sync"] }
186
+ },
187
+ implementations: {
188
+ actions: {
189
+ select(params) {
190
+ const { event, context } = params;
191
+ if (event.type !== "SELECT") return;
192
+ const option = getCascaderColumns(context.get("options"), context.get("draft"))[event.depth]?.options.find((item) => item.value === event.value);
193
+ if (!option || option.disabled) return;
194
+ const path = [...context.get("draft").slice(0, event.depth), option.value];
195
+ invalidateLoad(params);
196
+ context.set("draft", path);
197
+ context.set("errorPath", []);
198
+ if (!option.leaf && !option.children?.length) scheduleLoad(params, path);
199
+ },
200
+ cancel(params) {
201
+ invalidateLoad(params);
202
+ params.context.set("draft", [...params.context.get("value")]);
203
+ params.context.set("errorPath", []);
204
+ params.prop("onCancel")?.();
205
+ },
206
+ confirm({ context, prop }) {
207
+ const value = [...context.get("draft")], change = details(context.get("options"), value);
208
+ context.set("value", value);
209
+ prop("onValueChange")?.(change);
210
+ prop("onConfirm")?.(change);
211
+ },
212
+ loadSuccess({ context, event, refs }) {
213
+ if (event.type !== "LOAD.SUCCESS" || event.ticket !== context.get("request")) return;
214
+ refs.set("controller", null);
215
+ context.set("options", updateCascaderChildren(context.get("options"), event.path, normalizeCascaderOptions(event.children)));
216
+ context.set("loadingPath", []);
217
+ },
218
+ loadError({ context, event, refs }) {
219
+ if (event.type !== "LOAD.ERROR" || event.ticket !== context.get("request")) return;
220
+ refs.set("controller", null);
221
+ context.set("loadingPath", []);
222
+ context.set("errorPath", event.path);
223
+ },
224
+ retry(params) {
225
+ const path = params.context.get("errorPath");
226
+ if (path.length) scheduleLoad(params, path);
227
+ },
228
+ sync(params) {
229
+ invalidateLoad(params);
230
+ const options = normalizeCascaderOptions(params.prop("options") ?? []);
231
+ params.context.set("options", options);
232
+ const ownerValue = params.prop("value");
233
+ params.context.set("draft", normalizeCascaderValue(options, ownerValue === void 0 ? params.context.get("draft") : ownerValue));
234
+ params.context.set("errorPath", []);
235
+ }
236
+ },
237
+ effects: { lifecycle({ refs }) {
238
+ refs.set("active", true);
239
+ return () => {
240
+ refs.set("active", false);
241
+ refs.get("controller")?.abort();
242
+ refs.set("controller", null);
243
+ };
244
+ } }
245
+ }
246
+ });
247
+ function connectCascader(service, normalize) {
248
+ const options = service.context.get("options"), value = service.context.get("value"), draft = service.context.get("draft"), columns = getCascaderColumns(options, draft), loading = service.context.get("loadingPath").length > 0, error = service.context.get("errorPath").length > 0, part = (name) => ({
249
+ "data-scope": "cascader",
250
+ "data-part": name
251
+ });
252
+ return {
253
+ value,
254
+ draft,
255
+ columns,
256
+ labels: getCascaderLabels(options, draft),
257
+ loading,
258
+ error,
259
+ select: (depth, option) => service.send({
260
+ type: "SELECT",
261
+ depth,
262
+ value: option
263
+ }),
264
+ retry: () => service.send({ type: "RETRY" }),
265
+ cancel: () => service.send({ type: "CANCEL" }),
266
+ confirm: () => service.send({ type: "CONFIRM" }),
267
+ getRootProps: () => normalize.element({
268
+ ...part("root"),
269
+ dir: service.prop("dir")
270
+ }),
271
+ getLabelProps: () => normalize.element(part("label")),
272
+ getColumnsProps: () => normalize.element(part("columns")),
273
+ getColumnProps: (column) => normalize.element({
274
+ ...part("column"),
275
+ role: "listbox",
276
+ "aria-label": `第 ${column.depth + 1} 级`,
277
+ "aria-orientation": "vertical"
278
+ }),
279
+ getOptionProps: (column, option) => normalize.button({
280
+ ...part("option"),
281
+ type: "button",
282
+ role: "option",
283
+ disabled: option.disabled,
284
+ "aria-selected": column.selected === option.value,
285
+ "data-selected": dataAttr(column.selected === option.value),
286
+ onClick: () => service.send({
287
+ type: "SELECT",
288
+ depth: column.depth,
289
+ value: option.value
290
+ }),
291
+ onKeyDown(event) {
292
+ if ((service.prop("dir") === "rtl" ? event.key === "ArrowLeft" : event.key === "ArrowRight") && option.children?.length) {
293
+ event.preventDefault();
294
+ service.send({
295
+ type: "SELECT",
296
+ depth: column.depth,
297
+ value: option.value
298
+ });
299
+ }
300
+ }
301
+ }),
302
+ getStatusProps: () => normalize.element({
303
+ ...part("status"),
304
+ role: error ? "alert" : "status",
305
+ hidden: !loading && !error
306
+ }),
307
+ getRetryTriggerProps: () => normalize.button({
308
+ ...part("retry-trigger"),
309
+ type: "button",
310
+ hidden: !error,
311
+ onClick: () => service.send({ type: "RETRY" })
312
+ }),
313
+ getActionsProps: () => normalize.element(part("actions")),
314
+ getCancelTriggerProps: () => normalize.button({
315
+ ...part("cancel-trigger"),
316
+ type: "button",
317
+ onClick: () => service.send({ type: "CANCEL" })
318
+ }),
319
+ getConfirmTriggerProps: () => normalize.button({
320
+ ...part("confirm-trigger"),
321
+ type: "button",
322
+ onClick: () => service.send({ type: "CONFIRM" })
323
+ }),
324
+ getOutputProps: () => normalize.element({
325
+ ...part("output"),
326
+ "aria-live": "polite"
327
+ })
328
+ };
329
+ }
330
+ //#endregion
331
+ export { getCascaderColumns as a, normalizeCascaderValue as c, createCascaderProps as i, resolveCascaderPath as l, cascaderMachine as n, getCascaderLabels as o, connectCascader as r, normalizeCascaderOptions as s, CASCADER_PARTS as t, updateCascaderChildren as u };
332
+
333
+ //# sourceMappingURL=cascader-D-xMjs7P.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cascader-D-xMjs7P.js","names":[],"sources":["../src/cascader/cascader.ts"],"sourcesContent":["import { createMachine, type Machine, type Params as ZagParams, type Service } from \"@zag-js/core\";\nimport { dataAttr } from \"@zag-js/dom-query\";\nimport type { NormalizeProps, PropTypes } from \"@zag-js/types\";\n\nexport const CASCADER_PARTS = [\"root\", \"label\", \"columns\", \"column\", \"option\", \"status\", \"retry-trigger\", \"actions\", \"cancel-trigger\", \"confirm-trigger\", \"output\"] as const;\nexport interface CascaderOption { value: string; label: string; disabled?: boolean; leaf?: boolean; children?: CascaderOption[] }\nexport interface CascaderValueChangeDetails { value: string[]; labels: string[] }\nexport interface CascaderLoadDetails { option: CascaderOption; path: string[]; signal: AbortSignal }\nexport interface QwCascaderProps { id?: string; label?: string; options: CascaderOption[]; value?: string[]; defaultValue?: string[]; dir?: \"ltr\" | \"rtl\"; loadChildren?: (details: CascaderLoadDetails) => Promise<CascaderOption[]>; loadingText?: string; errorText?: string; retryText?: string; cancelText?: string; confirmText?: string; onValueChange?: (details: CascaderValueChangeDetails) => void; onCancel?: () => void; onConfirm?: (details: CascaderValueChangeDetails) => void }\nconst clean = (value: unknown): string => typeof value === \"string\" ? value.trim() : \"\";\nexport function normalizeCascaderOptions(options: readonly CascaderOption[] = [], owner = \"Cascader\"): CascaderOption[] { const seen = new Set<string>(); return options.map((item) => { const value = clean(item.value), label = clean(item.label); if (!value || !label) throw new TypeError(`${owner} options require nonempty value and label`); if (seen.has(value)) throw new TypeError(`${owner} sibling values must be unique: ${value}`); seen.add(value); return { value, label, disabled: !!item.disabled || undefined, leaf: !!item.leaf || undefined, children: item.children ? [...normalizeCascaderOptions(item.children, owner)] : undefined }; }); }\nexport function resolveCascaderPath(options: readonly CascaderOption[], path: readonly string[]): CascaderOption[] { const result: CascaderOption[] = []; let level = options; for (const value of path) { const found = level.find((item) => item.value === value); if (!found) break; result.push(found); level = found.children ?? []; } return result; }\nexport function normalizeCascaderValue(options: readonly CascaderOption[], path: readonly string[] = []): string[] { return resolveCascaderPath(options, path.map(clean).filter(Boolean)).map((item) => item.value); }\nexport function getCascaderLabels(options: readonly CascaderOption[], path: readonly string[]): string[] { return resolveCascaderPath(options, path).map((item) => item.label); }\nexport function updateCascaderChildren(options: readonly CascaderOption[], path: readonly string[], children: CascaderOption[]): CascaderOption[] { if (!path.length) return [...options]; const [value, ...rest] = path; return options.map((item) => item.value !== value ? item : rest.length ? { ...item, children: updateCascaderChildren(item.children ?? [], rest, children) } : { ...item, children }); }\nexport interface CascaderColumn { depth: number; options: readonly CascaderOption[]; selected?: string }\nexport function getCascaderColumns(options: readonly CascaderOption[], path: readonly string[]): CascaderColumn[] { const columns: CascaderColumn[] = []; let level = options; for (let depth = 0; level.length; depth++) { columns.push({ depth, options: level, selected: path[depth] }); const selected = level.find((item) => item.value === path[depth]); if (!selected?.children?.length) break; level = selected.children; } return columns; }\nexport function createCascaderProps(props: QwCascaderProps): QwCascaderProps { return { ...props, label: clean(props.label) || \"级联选择\", options: normalizeCascaderOptions(props.options ?? []), loadingText: clean(props.loadingText) || \"加载中\", errorText: clean(props.errorText) || \"加载失败\", retryText: clean(props.retryText) || \"重试\", cancelText: clean(props.cancelText) || \"取消\", confirmText: clean(props.confirmText) || \"确认\" }; }\nexport interface QwCascaderSchema { props: QwCascaderProps; context: { value: string[]; draft: string[]; options: CascaderOption[]; loadingPath: string[]; errorPath: string[]; request: number }; refs: { controller: AbortController | null; active: boolean }; state: \"idle\"; action: \"select\" | \"cancel\" | \"confirm\" | \"loadSuccess\" | \"loadError\" | \"retry\" | \"sync\"; effect: \"lifecycle\"; event: { type: \"SELECT\"; depth: number; value: string } | { type: \"CANCEL\" } | { type: \"CONFIRM\" } | { type: \"LOAD.SUCCESS\"; ticket: number; path: string[]; children: CascaderOption[] } | { type: \"LOAD.ERROR\"; ticket: number; path: string[] } | { type: \"RETRY\" } | { type: \"PROPS.SYNC\" } }\nexport type QwCascaderMachine = Machine<QwCascaderSchema>; export type QwCascaderService = Service<QwCascaderSchema>;\nfunction details(options: CascaderOption[], value: string[]): CascaderValueChangeDetails { return { value: [...value], labels: getCascaderLabels(options, value) }; }\ntype LoadParams = Pick<ZagParams<QwCascaderSchema>, \"context\" | \"prop\" | \"refs\" | \"send\">;\nfunction invalidateLoad(params: Pick<LoadParams, \"context\" | \"refs\">): void {\n params.refs.get(\"controller\")?.abort(); params.refs.set(\"controller\", null); params.context.set(\"request\", params.context.get(\"request\") + 1); params.context.set(\"loadingPath\", []);\n}\nfunction requestLoad(params: LoadParams, path: string[]): void {\n const loader = params.prop(\"loadChildren\"); if (!loader) return;\n const option = resolveCascaderPath(params.context.get(\"options\"), path).at(-1); if (!option || option.leaf || option.disabled) return;\n invalidateLoad(params); const ticket = params.context.get(\"request\"), controller = new AbortController(); params.refs.set(\"controller\", controller); params.context.set(\"loadingPath\", path); params.context.set(\"errorPath\", []);\n Promise.resolve(loader({ option, path: [...path], signal: controller.signal })).then(\n children => { if (params.refs.get(\"active\") && !controller.signal.aborted) params.send({ type: \"LOAD.SUCCESS\", ticket, path, children }); },\n () => { if (params.refs.get(\"active\") && !controller.signal.aborted) params.send({ type: \"LOAD.ERROR\", ticket, path }); },\n );\n}\nfunction scheduleLoad(params: LoadParams, path: string[]): void {\n const ticket = params.context.get(\"request\");\n queueMicrotask(() => { if (params.refs.get(\"active\") && params.context.get(\"request\") === ticket) requestLoad(params, path); });\n}\nexport const cascaderMachine: QwCascaderMachine = createMachine<QwCascaderSchema>({\n props: ({ props }) => createCascaderProps({ ...props, options: props.options ?? [] }), initialState: () => \"idle\", states: { idle: {} },\n context: ({ bindable, prop }) => { const contextOptions = () => normalizeCascaderOptions(prop(\"options\") ?? []), options = contextOptions(), initial = normalizeCascaderValue(options, prop(\"defaultValue\") ?? []); return { value: bindable(() => ({ defaultValue: initial, value: prop(\"value\") === undefined ? undefined : normalizeCascaderValue(contextOptions(), prop(\"value\")), hash: (value) => value.join(\"\\u0000\") })), draft: bindable(() => ({ defaultValue: initial, hash: (value) => value.join(\"\\u0000\") })), options: bindable(() => ({ defaultValue: options, hash: JSON.stringify })), loadingPath: bindable<string[]>(() => ({ defaultValue: [], hash: (value) => value.join(\"/\") })), errorPath: bindable<string[]>(() => ({ defaultValue: [], hash: (value) => value.join(\"/\") })), request: bindable(() => ({ defaultValue: 0 })) }; },\n refs: () => ({ controller: null, active: false }), effects: [\"lifecycle\"],\n watch({ track, prop, send }) { track([() => JSON.stringify(prop(\"options\") ?? []), () => JSON.stringify(prop(\"value\"))], () => send({ type: \"PROPS.SYNC\" })); },\n on: { SELECT: { actions: [\"select\"] }, CANCEL: { actions: [\"cancel\"] }, CONFIRM: { actions: [\"confirm\"] }, \"LOAD.SUCCESS\": { actions: [\"loadSuccess\"] }, \"LOAD.ERROR\": { actions: [\"loadError\"] }, RETRY: { actions: [\"retry\"] }, \"PROPS.SYNC\": { actions: [\"sync\"] } },\n implementations: { actions: {\n select(params) { const { event, context } = params; if (event.type !== \"SELECT\") return; const columns = getCascaderColumns(context.get(\"options\"), context.get(\"draft\")), option = columns[event.depth]?.options.find((item) => item.value === event.value); if (!option || option.disabled) return; const path = [...context.get(\"draft\").slice(0, event.depth), option.value]; invalidateLoad(params); context.set(\"draft\", path); context.set(\"errorPath\", []); if (!option.leaf && !option.children?.length) scheduleLoad(params, path); },\n cancel(params) { invalidateLoad(params); params.context.set(\"draft\", [...params.context.get(\"value\")]); params.context.set(\"errorPath\", []); params.prop(\"onCancel\")?.(); },\n confirm({ context, prop }) { const value = [...context.get(\"draft\")], change = details(context.get(\"options\"), value); context.set(\"value\", value); prop(\"onValueChange\")?.(change); prop(\"onConfirm\")?.(change); },\n loadSuccess({ context, event, refs }) { if (event.type !== \"LOAD.SUCCESS\" || event.ticket !== context.get(\"request\")) return; refs.set(\"controller\", null); context.set(\"options\", updateCascaderChildren(context.get(\"options\"), event.path, normalizeCascaderOptions(event.children))); context.set(\"loadingPath\", []); },\n loadError({ context, event, refs }) { if (event.type !== \"LOAD.ERROR\" || event.ticket !== context.get(\"request\")) return; refs.set(\"controller\", null); context.set(\"loadingPath\", []); context.set(\"errorPath\", event.path); },\n retry(params) { const path = params.context.get(\"errorPath\"); if (path.length) scheduleLoad(params, path); },\n sync(params) { invalidateLoad(params); const options = normalizeCascaderOptions(params.prop(\"options\") ?? []); params.context.set(\"options\", options); const ownerValue = params.prop(\"value\"); params.context.set(\"draft\", normalizeCascaderValue(options, ownerValue === undefined ? params.context.get(\"draft\") : ownerValue)); params.context.set(\"errorPath\", []); },\n }, effects: { lifecycle({ refs }) { refs.set(\"active\", true); return () => { refs.set(\"active\", false); refs.get(\"controller\")?.abort(); refs.set(\"controller\", null); }; } } },\n});\nexport interface QwCascaderApi<T extends PropTypes = PropTypes> { value: string[]; draft: string[]; labels: string[]; columns: CascaderColumn[]; loading: boolean; error: boolean; select(depth: number, value: string): void; retry(): void; cancel(): void; confirm(): void; getRootProps(): T[\"element\"]; getLabelProps(): T[\"element\"]; getColumnsProps(): T[\"element\"]; getColumnProps(column: CascaderColumn): T[\"element\"]; getOptionProps(column: CascaderColumn, option: CascaderOption): T[\"button\"]; getStatusProps(): T[\"element\"]; getRetryTriggerProps(): T[\"button\"]; getActionsProps(): T[\"element\"]; getCancelTriggerProps(): T[\"button\"]; getConfirmTriggerProps(): T[\"button\"]; getOutputProps(): T[\"element\"] }\nexport function connectCascader<T extends PropTypes>(service: QwCascaderService, normalize: NormalizeProps<T>): QwCascaderApi<T> { const options = service.context.get(\"options\"), value = service.context.get(\"value\"), draft = service.context.get(\"draft\"), columns = getCascaderColumns(options, draft), loading = service.context.get(\"loadingPath\").length > 0, error = service.context.get(\"errorPath\").length > 0, part = (name: string) => ({ \"data-scope\": \"cascader\", \"data-part\": name }); return { value, draft, columns, labels: getCascaderLabels(options, draft), loading, error, select: (depth, option) => service.send({ type: \"SELECT\", depth, value: option }), retry: () => service.send({ type: \"RETRY\" }), cancel: () => service.send({ type: \"CANCEL\" }), confirm: () => service.send({ type: \"CONFIRM\" }), getRootProps: () => normalize.element({ ...part(\"root\"), dir: service.prop(\"dir\") }), getLabelProps: () => normalize.element(part(\"label\")), getColumnsProps: () => normalize.element(part(\"columns\")), getColumnProps: (column) => normalize.element({ ...part(\"column\"), role: \"listbox\", \"aria-label\": `第 ${column.depth + 1} 级`, \"aria-orientation\": \"vertical\" }), getOptionProps: (column, option) => normalize.button({ ...part(\"option\"), type: \"button\", role: \"option\", disabled: option.disabled, \"aria-selected\": column.selected === option.value, \"data-selected\": dataAttr(column.selected === option.value), onClick: () => service.send({ type: \"SELECT\", depth: column.depth, value: option.value }), onKeyDown(event) { if ((service.prop(\"dir\") === \"rtl\" ? event.key === \"ArrowLeft\" : event.key === \"ArrowRight\") && option.children?.length) { event.preventDefault(); service.send({ type: \"SELECT\", depth: column.depth, value: option.value }); } } }), getStatusProps: () => normalize.element({ ...part(\"status\"), role: error ? \"alert\" : \"status\", hidden: !loading && !error }), getRetryTriggerProps: () => normalize.button({ ...part(\"retry-trigger\"), type: \"button\", hidden: !error, onClick: () => service.send({ type: \"RETRY\" }) }), getActionsProps: () => normalize.element(part(\"actions\")), getCancelTriggerProps: () => normalize.button({ ...part(\"cancel-trigger\"), type: \"button\", onClick: () => service.send({ type: \"CANCEL\" }) }), getConfirmTriggerProps: () => normalize.button({ ...part(\"confirm-trigger\"), type: \"button\", onClick: () => service.send({ type: \"CONFIRM\" }) }), getOutputProps: () => normalize.element({ ...part(\"output\"), \"aria-live\": \"polite\" }) }; }\n"],"mappings":";;;AAIA,MAAa,iBAAiB;CAAC;CAAQ;CAAS;CAAW;CAAU;CAAU;CAAU;CAAiB;CAAW;CAAkB;CAAmB;AAAQ;AAKlK,MAAM,SAAS,UAA2B,OAAO,UAAU,WAAW,MAAM,KAAK,IAAI;AACrF,SAAgB,yBAAyB,UAAqC,CAAC,GAAG,QAAQ,YAA8B;CAAE,MAAM,uBAAO,IAAI,IAAY;CAAG,OAAO,QAAQ,KAAK,SAAS;EAAE,MAAM,QAAQ,MAAM,KAAK,KAAK,GAAG,QAAQ,MAAM,KAAK,KAAK;EAAG,IAAI,CAAC,SAAS,CAAC,OAAO,MAAM,IAAI,UAAU,GAAG,MAAM,0CAA0C;EAAG,IAAI,KAAK,IAAI,KAAK,GAAG,MAAM,IAAI,UAAU,GAAG,MAAM,kCAAkC,OAAO;EAAG,KAAK,IAAI,KAAK;EAAG,OAAO;GAAE;GAAO;GAAO,UAAU,CAAC,CAAC,KAAK,YAAY,KAAA;GAAW,MAAM,CAAC,CAAC,KAAK,QAAQ,KAAA;GAAW,UAAU,KAAK,WAAW,CAAC,GAAG,yBAAyB,KAAK,UAAU,KAAK,CAAC,IAAI,KAAA;EAAU;CAAG,CAAC;AAAG;AACpoB,SAAgB,oBAAoB,SAAoC,MAA2C;CAAE,MAAM,SAA2B,CAAC;CAAG,IAAI,QAAQ;CAAS,KAAK,MAAM,SAAS,MAAM;EAAE,MAAM,QAAQ,MAAM,MAAM,SAAS,KAAK,UAAU,KAAK;EAAG,IAAI,CAAC,OAAO;EAAO,OAAO,KAAK,KAAK;EAAG,QAAQ,MAAM,YAAY,CAAC;CAAG;CAAE,OAAO;AAAQ;AAC3V,SAAgB,uBAAuB,SAAoC,OAA0B,CAAC,GAAa;CAAE,OAAO,oBAAoB,SAAS,KAAK,IAAI,KAAK,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,KAAK,SAAS,KAAK,KAAK;AAAG;AACrN,SAAgB,kBAAkB,SAAoC,MAAmC;CAAE,OAAO,oBAAoB,SAAS,IAAI,CAAC,CAAC,KAAK,SAAS,KAAK,KAAK;AAAG;AAChL,SAAgB,uBAAuB,SAAoC,MAAyB,UAA8C;CAAE,IAAI,CAAC,KAAK,QAAQ,OAAO,CAAC,GAAG,OAAO;CAAG,MAAM,CAAC,OAAO,GAAG,QAAQ;CAAM,OAAO,QAAQ,KAAK,SAAS,KAAK,UAAU,QAAQ,OAAO,KAAK,SAAS;EAAE,GAAG;EAAM,UAAU,uBAAuB,KAAK,YAAY,CAAC,GAAG,MAAM,QAAQ;CAAE,IAAI;EAAE,GAAG;EAAM;CAAS,CAAC;AAAG;AAEhZ,SAAgB,mBAAmB,SAAoC,MAA2C;CAAE,MAAM,UAA4B,CAAC;CAAG,IAAI,QAAQ;CAAS,KAAK,IAAI,QAAQ,GAAG,MAAM,QAAQ,SAAS;EAAE,QAAQ,KAAK;GAAE;GAAO,SAAS;GAAO,UAAU,KAAK;EAAO,CAAC;EAAG,MAAM,WAAW,MAAM,MAAM,SAAS,KAAK,UAAU,KAAK,MAAM;EAAG,IAAI,CAAC,UAAU,UAAU,QAAQ;EAAO,QAAQ,SAAS;CAAU;CAAE,OAAO;AAAS;AACpb,SAAgB,oBAAoB,OAAyC;CAAE,OAAO;EAAE,GAAG;EAAO,OAAO,MAAM,MAAM,KAAK,KAAK;EAAQ,SAAS,yBAAyB,MAAM,WAAW,CAAC,CAAC;EAAG,aAAa,MAAM,MAAM,WAAW,KAAK;EAAO,WAAW,MAAM,MAAM,SAAS,KAAK;EAAQ,WAAW,MAAM,MAAM,SAAS,KAAK;EAAM,YAAY,MAAM,MAAM,UAAU,KAAK;EAAM,aAAa,MAAM,MAAM,WAAW,KAAK;CAAK;AAAG;AAGra,SAAS,QAAQ,SAA2B,OAA6C;CAAE,OAAO;EAAE,OAAO,CAAC,GAAG,KAAK;EAAG,QAAQ,kBAAkB,SAAS,KAAK;CAAE;AAAG;AAEpK,SAAS,eAAe,QAAoD;CAC1E,OAAO,KAAK,IAAI,YAAY,CAAC,EAAE,MAAM;CAAG,OAAO,KAAK,IAAI,cAAc,IAAI;CAAG,OAAO,QAAQ,IAAI,WAAW,OAAO,QAAQ,IAAI,SAAS,IAAI,CAAC;CAAG,OAAO,QAAQ,IAAI,eAAe,CAAC,CAAC;AACrL;AACA,SAAS,YAAY,QAAoB,MAAsB;CAC7D,MAAM,SAAS,OAAO,KAAK,cAAc;CAAG,IAAI,CAAC,QAAQ;CACzD,MAAM,SAAS,oBAAoB,OAAO,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE;CAAG,IAAI,CAAC,UAAU,OAAO,QAAQ,OAAO,UAAU;CAC/H,eAAe,MAAM;CAAG,MAAM,SAAS,OAAO,QAAQ,IAAI,SAAS,GAAG,aAAa,IAAI,gBAAgB;CAAG,OAAO,KAAK,IAAI,cAAc,UAAU;CAAG,OAAO,QAAQ,IAAI,eAAe,IAAI;CAAG,OAAO,QAAQ,IAAI,aAAa,CAAC,CAAC;CAChO,QAAQ,QAAQ,OAAO;EAAE;EAAQ,MAAM,CAAC,GAAG,IAAI;EAAG,QAAQ,WAAW;CAAO,CAAC,CAAC,CAAC,CAAC,MAC9E,aAAY;EAAE,IAAI,OAAO,KAAK,IAAI,QAAQ,KAAK,CAAC,WAAW,OAAO,SAAS,OAAO,KAAK;GAAE,MAAM;GAAgB;GAAQ;GAAM;EAAS,CAAC;CAAG,SACpI;EAAE,IAAI,OAAO,KAAK,IAAI,QAAQ,KAAK,CAAC,WAAW,OAAO,SAAS,OAAO,KAAK;GAAE,MAAM;GAAc;GAAQ;EAAK,CAAC;CAAG,CAC1H;AACF;AACA,SAAS,aAAa,QAAoB,MAAsB;CAC9D,MAAM,SAAS,OAAO,QAAQ,IAAI,SAAS;CAC3C,qBAAqB;EAAE,IAAI,OAAO,KAAK,IAAI,QAAQ,KAAK,OAAO,QAAQ,IAAI,SAAS,MAAM,QAAQ,YAAY,QAAQ,IAAI;CAAG,CAAC;AAChI;AACA,MAAa,kBAAqC,cAAgC;CAChF,QAAQ,EAAE,YAAY,oBAAoB;EAAE,GAAG;EAAO,SAAS,MAAM,WAAW,CAAC;CAAE,CAAC;CAAG,oBAAoB;CAAQ,QAAQ,EAAE,MAAM,CAAC,EAAE;CACtI,UAAU,EAAE,UAAU,WAAW;EAAE,MAAM,uBAAuB,yBAAyB,KAAK,SAAS,KAAK,CAAC,CAAC,GAAG,UAAU,eAAe,GAAG,UAAU,uBAAuB,SAAS,KAAK,cAAc,KAAK,CAAC,CAAC;EAAG,OAAO;GAAE,OAAO,gBAAgB;IAAE,cAAc;IAAS,OAAO,KAAK,OAAO,MAAM,KAAA,IAAY,KAAA,IAAY,uBAAuB,eAAe,GAAG,KAAK,OAAO,CAAC;IAAG,OAAO,UAAU,MAAM,KAAK,IAAQ;GAAE,EAAE;GAAG,OAAO,gBAAgB;IAAE,cAAc;IAAS,OAAO,UAAU,MAAM,KAAK,IAAQ;GAAE,EAAE;GAAG,SAAS,gBAAgB;IAAE,cAAc;IAAS,MAAM,KAAK;GAAU,EAAE;GAAG,aAAa,gBAA0B;IAAE,cAAc,CAAC;IAAG,OAAO,UAAU,MAAM,KAAK,GAAG;GAAE,EAAE;GAAG,WAAW,gBAA0B;IAAE,cAAc,CAAC;IAAG,OAAO,UAAU,MAAM,KAAK,GAAG;GAAE,EAAE;GAAG,SAAS,gBAAgB,EAAE,cAAc,EAAE,EAAE;EAAE;CAAG;CAC3zB,aAAa;EAAE,YAAY;EAAM,QAAQ;CAAM;CAAI,SAAS,CAAC,WAAW;CACxE,MAAM,EAAE,OAAO,MAAM,QAAQ;EAAE,MAAM,OAAO,KAAK,UAAU,KAAK,SAAS,KAAK,CAAC,CAAC,SAAS,KAAK,UAAU,KAAK,OAAO,CAAC,CAAC,SAAS,KAAK,EAAE,MAAM,aAAa,CAAC,CAAC;CAAG;CAC9J,IAAI;EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE;EAAG,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE;EAAG,SAAS,EAAE,SAAS,CAAC,SAAS,EAAE;EAAG,gBAAgB,EAAE,SAAS,CAAC,aAAa,EAAE;EAAG,cAAc,EAAE,SAAS,CAAC,WAAW,EAAE;EAAG,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE;EAAG,cAAc,EAAE,SAAS,CAAC,MAAM,EAAE;CAAE;CACtQ,iBAAiB;EAAE,SAAS;GAC1B,OAAO,QAAQ;IAAE,MAAM,EAAE,OAAO,YAAY;IAAQ,IAAI,MAAM,SAAS,UAAU;IAAQ,MAAkF,SAAlE,mBAAmB,QAAQ,IAAI,SAAS,GAAG,QAAQ,IAAI,OAAO,CAAmB,CAAC,CAAC,MAAM,MAAM,EAAE,QAAQ,MAAM,SAAS,KAAK,UAAU,MAAM,KAAK;IAAG,IAAI,CAAC,UAAU,OAAO,UAAU;IAAQ,MAAM,OAAO,CAAC,GAAG,QAAQ,IAAI,OAAO,CAAC,CAAC,MAAM,GAAG,MAAM,KAAK,GAAG,OAAO,KAAK;IAAG,eAAe,MAAM;IAAG,QAAQ,IAAI,SAAS,IAAI;IAAG,QAAQ,IAAI,aAAa,CAAC,CAAC;IAAG,IAAI,CAAC,OAAO,QAAQ,CAAC,OAAO,UAAU,QAAQ,aAAa,QAAQ,IAAI;GAAG;GAC9gB,OAAO,QAAQ;IAAE,eAAe,MAAM;IAAG,OAAO,QAAQ,IAAI,SAAS,CAAC,GAAG,OAAO,QAAQ,IAAI,OAAO,CAAC,CAAC;IAAG,OAAO,QAAQ,IAAI,aAAa,CAAC,CAAC;IAAG,OAAO,KAAK,UAAU,CAAC,GAAG;GAAG;GAC1K,QAAQ,EAAE,SAAS,QAAQ;IAAE,MAAM,QAAQ,CAAC,GAAG,QAAQ,IAAI,OAAO,CAAC,GAAG,SAAS,QAAQ,QAAQ,IAAI,SAAS,GAAG,KAAK;IAAG,QAAQ,IAAI,SAAS,KAAK;IAAG,KAAK,eAAe,CAAC,GAAG,MAAM;IAAG,KAAK,WAAW,CAAC,GAAG,MAAM;GAAG;GAClN,YAAY,EAAE,SAAS,OAAO,QAAQ;IAAE,IAAI,MAAM,SAAS,kBAAkB,MAAM,WAAW,QAAQ,IAAI,SAAS,GAAG;IAAQ,KAAK,IAAI,cAAc,IAAI;IAAG,QAAQ,IAAI,WAAW,uBAAuB,QAAQ,IAAI,SAAS,GAAG,MAAM,MAAM,yBAAyB,MAAM,QAAQ,CAAC,CAAC;IAAG,QAAQ,IAAI,eAAe,CAAC,CAAC;GAAG;GAC1T,UAAU,EAAE,SAAS,OAAO,QAAQ;IAAE,IAAI,MAAM,SAAS,gBAAgB,MAAM,WAAW,QAAQ,IAAI,SAAS,GAAG;IAAQ,KAAK,IAAI,cAAc,IAAI;IAAG,QAAQ,IAAI,eAAe,CAAC,CAAC;IAAG,QAAQ,IAAI,aAAa,MAAM,IAAI;GAAG;GAC9N,MAAM,QAAQ;IAAE,MAAM,OAAO,OAAO,QAAQ,IAAI,WAAW;IAAG,IAAI,KAAK,QAAQ,aAAa,QAAQ,IAAI;GAAG;GAC3G,KAAK,QAAQ;IAAE,eAAe,MAAM;IAAG,MAAM,UAAU,yBAAyB,OAAO,KAAK,SAAS,KAAK,CAAC,CAAC;IAAG,OAAO,QAAQ,IAAI,WAAW,OAAO;IAAG,MAAM,aAAa,OAAO,KAAK,OAAO;IAAG,OAAO,QAAQ,IAAI,SAAS,uBAAuB,SAAS,eAAe,KAAA,IAAY,OAAO,QAAQ,IAAI,OAAO,IAAI,UAAU,CAAC;IAAG,OAAO,QAAQ,IAAI,aAAa,CAAC,CAAC;GAAG;EAC1W;EAAG,SAAS,EAAE,UAAU,EAAE,QAAQ;GAAE,KAAK,IAAI,UAAU,IAAI;GAAG,aAAa;IAAE,KAAK,IAAI,UAAU,KAAK;IAAG,KAAK,IAAI,YAAY,CAAC,EAAE,MAAM;IAAG,KAAK,IAAI,cAAc,IAAI;GAAG;EAAG,EAAE;CAAE;AAChL,CAAC;AAED,SAAgB,gBAAqC,SAA4B,WAAgD;CAAE,MAAM,UAAU,QAAQ,QAAQ,IAAI,SAAS,GAAG,QAAQ,QAAQ,QAAQ,IAAI,OAAO,GAAG,QAAQ,QAAQ,QAAQ,IAAI,OAAO,GAAG,UAAU,mBAAmB,SAAS,KAAK,GAAG,UAAU,QAAQ,QAAQ,IAAI,aAAa,CAAC,CAAC,SAAS,GAAG,QAAQ,QAAQ,QAAQ,IAAI,WAAW,CAAC,CAAC,SAAS,GAAG,QAAQ,UAAkB;EAAE,cAAc;EAAY,aAAa;CAAK;CAAI,OAAO;EAAE;EAAO;EAAO;EAAS,QAAQ,kBAAkB,SAAS,KAAK;EAAG;EAAS;EAAO,SAAS,OAAO,WAAW,QAAQ,KAAK;GAAE,MAAM;GAAU;GAAO,OAAO;EAAO,CAAC;EAAG,aAAa,QAAQ,KAAK,EAAE,MAAM,QAAQ,CAAC;EAAG,cAAc,QAAQ,KAAK,EAAE,MAAM,SAAS,CAAC;EAAG,eAAe,QAAQ,KAAK,EAAE,MAAM,UAAU,CAAC;EAAG,oBAAoB,UAAU,QAAQ;GAAE,GAAG,KAAK,MAAM;GAAG,KAAK,QAAQ,KAAK,KAAK;EAAE,CAAC;EAAG,qBAAqB,UAAU,QAAQ,KAAK,OAAO,CAAC;EAAG,uBAAuB,UAAU,QAAQ,KAAK,SAAS,CAAC;EAAG,iBAAiB,WAAW,UAAU,QAAQ;GAAE,GAAG,KAAK,QAAQ;GAAG,MAAM;GAAW,cAAc,KAAK,OAAO,QAAQ,EAAE;GAAK,oBAAoB;EAAW,CAAC;EAAG,iBAAiB,QAAQ,WAAW,UAAU,OAAO;GAAE,GAAG,KAAK,QAAQ;GAAG,MAAM;GAAU,MAAM;GAAU,UAAU,OAAO;GAAU,iBAAiB,OAAO,aAAa,OAAO;GAAO,iBAAiB,SAAS,OAAO,aAAa,OAAO,KAAK;GAAG,eAAe,QAAQ,KAAK;IAAE,MAAM;IAAU,OAAO,OAAO;IAAO,OAAO,OAAO;GAAM,CAAC;GAAG,UAAU,OAAO;IAAE,KAAK,QAAQ,KAAK,KAAK,MAAM,QAAQ,MAAM,QAAQ,cAAc,MAAM,QAAQ,iBAAiB,OAAO,UAAU,QAAQ;KAAE,MAAM,eAAe;KAAG,QAAQ,KAAK;MAAE,MAAM;MAAU,OAAO,OAAO;MAAO,OAAO,OAAO;KAAM,CAAC;IAAG;GAAE;EAAE,CAAC;EAAG,sBAAsB,UAAU,QAAQ;GAAE,GAAG,KAAK,QAAQ;GAAG,MAAM,QAAQ,UAAU;GAAU,QAAQ,CAAC,WAAW,CAAC;EAAM,CAAC;EAAG,4BAA4B,UAAU,OAAO;GAAE,GAAG,KAAK,eAAe;GAAG,MAAM;GAAU,QAAQ,CAAC;GAAO,eAAe,QAAQ,KAAK,EAAE,MAAM,QAAQ,CAAC;EAAE,CAAC;EAAG,uBAAuB,UAAU,QAAQ,KAAK,SAAS,CAAC;EAAG,6BAA6B,UAAU,OAAO;GAAE,GAAG,KAAK,gBAAgB;GAAG,MAAM;GAAU,eAAe,QAAQ,KAAK,EAAE,MAAM,SAAS,CAAC;EAAE,CAAC;EAAG,8BAA8B,UAAU,OAAO;GAAE,GAAG,KAAK,iBAAiB;GAAG,MAAM;GAAU,eAAe,QAAQ,KAAK,EAAE,MAAM,UAAU,CAAC;EAAE,CAAC;EAAG,sBAAsB,UAAU,QAAQ;GAAE,GAAG,KAAK,QAAQ;GAAG,aAAa;EAAS,CAAC;CAAE;AAAG"}
@@ -0,0 +1,41 @@
1
+ /** Native information row contract, shared by all adapters. */
2
+ export declare const CELL_KINDS: readonly ["display", "action", "link"];
3
+ export type CellKind = (typeof CELL_KINDS)[number];
4
+ export interface QwCellProps {
5
+ /** Main text and accessible content. */
6
+ title: string;
7
+ description?: string;
8
+ value?: string;
9
+ /** Native div, button or anchor semantics. Default: display. */
10
+ kind?: CellKind;
11
+ href?: string;
12
+ disabled?: boolean;
13
+ /** Defaults to true for action/link rows. */
14
+ arrow?: boolean;
15
+ }
16
+ export interface ResolvedCellState {
17
+ tag: "div" | "button" | "a";
18
+ kind: CellKind;
19
+ disabled: boolean;
20
+ arrow: boolean;
21
+ href?: string;
22
+ }
23
+ export interface CellRootProps {
24
+ "data-scope": "cell";
25
+ "data-part": "root";
26
+ "data-kind": CellKind;
27
+ "data-disabled"?: "true";
28
+ type?: "button";
29
+ disabled?: boolean;
30
+ href?: string;
31
+ "aria-disabled"?: true;
32
+ tabIndex?: -1;
33
+ onClick?: (event: CellActivationEvent) => void;
34
+ }
35
+ /** Minimal event surface keeps Core independent of DOM and framework event types. */
36
+ export interface CellActivationEvent {
37
+ preventDefault(): void;
38
+ stopPropagation(): void;
39
+ }
40
+ export declare function resolveCellState(props: QwCellProps): ResolvedCellState;
41
+ export declare function getCellRootProps(state: ResolvedCellState): CellRootProps;
@@ -0,0 +1 @@
1
+ export * from "./cell.js";
@@ -0,0 +1,43 @@
1
+ //#region src/cell/cell.ts
2
+ /** Native information row contract, shared by all adapters. */
3
+ const CELL_KINDS = [
4
+ "display",
5
+ "action",
6
+ "link"
7
+ ];
8
+ function preventDisabledLink(event) {
9
+ event.preventDefault();
10
+ event.stopPropagation();
11
+ }
12
+ function resolveCellState(props) {
13
+ const kind = props.kind ?? "display";
14
+ return {
15
+ tag: kind === "action" ? "button" : kind === "link" ? "a" : "div",
16
+ kind,
17
+ disabled: props.disabled ?? false,
18
+ arrow: props.arrow ?? kind !== "display",
19
+ href: props.href
20
+ };
21
+ }
22
+ function getCellRootProps(state) {
23
+ return {
24
+ "data-scope": "cell",
25
+ "data-part": "root",
26
+ "data-kind": state.kind,
27
+ ...state.disabled ? { "data-disabled": "true" } : {},
28
+ ...state.kind === "action" ? {
29
+ type: "button",
30
+ disabled: state.disabled
31
+ } : {},
32
+ ...state.kind === "link" && !state.disabled && state.href ? { href: state.href } : {},
33
+ ...state.kind === "link" && state.disabled ? {
34
+ "aria-disabled": true,
35
+ tabIndex: -1,
36
+ onClick: preventDisabledLink
37
+ } : {}
38
+ };
39
+ }
40
+ //#endregion
41
+ export { CELL_KINDS, getCellRootProps, resolveCellState };
42
+
43
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/cell/cell.ts"],"sourcesContent":["/** Native information row contract, shared by all adapters. */\nexport const CELL_KINDS = [\"display\", \"action\", \"link\"] as const;\nexport type CellKind = (typeof CELL_KINDS)[number];\nexport interface QwCellProps {\n /** Main text and accessible content. */\n title: string;\n description?: string;\n value?: string;\n /** Native div, button or anchor semantics. Default: display. */\n kind?: CellKind;\n href?: string;\n disabled?: boolean;\n /** Defaults to true for action/link rows. */\n arrow?: boolean;\n}\nexport interface ResolvedCellState {\n tag: \"div\" | \"button\" | \"a\";\n kind: CellKind;\n disabled: boolean;\n arrow: boolean;\n href?: string;\n}\nexport interface CellRootProps {\n \"data-scope\": \"cell\";\n \"data-part\": \"root\";\n \"data-kind\": CellKind;\n \"data-disabled\"?: \"true\";\n type?: \"button\";\n disabled?: boolean;\n href?: string;\n \"aria-disabled\"?: true;\n tabIndex?: -1;\n onClick?: (event: CellActivationEvent) => void;\n}\n/** Minimal event surface keeps Core independent of DOM and framework event types. */\nexport interface CellActivationEvent {\n preventDefault(): void;\n stopPropagation(): void;\n}\nfunction preventDisabledLink(event: CellActivationEvent): void {\n event.preventDefault();\n event.stopPropagation();\n}\nexport function resolveCellState(props: QwCellProps): ResolvedCellState {\n const kind = props.kind ?? \"display\";\n return {\n tag: kind === \"action\" ? \"button\" : kind === \"link\" ? \"a\" : \"div\",\n kind,\n disabled: props.disabled ?? false,\n arrow: props.arrow ?? kind !== \"display\",\n href: props.href,\n };\n}\nexport function getCellRootProps(state: ResolvedCellState): CellRootProps {\n return {\n \"data-scope\": \"cell\", \"data-part\": \"root\", \"data-kind\": state.kind,\n ...(state.disabled ? { \"data-disabled\": \"true\" as const } : {}),\n ...(state.kind === \"action\" ? { type: \"button\" as const, disabled: state.disabled } : {}),\n ...(state.kind === \"link\" && !state.disabled && state.href ? { href: state.href } : {}),\n ...(state.kind === \"link\" && state.disabled ? { \"aria-disabled\": true as const, tabIndex: -1 as const, onClick: preventDisabledLink } : {}),\n };\n}\n"],"mappings":";;AACA,MAAa,aAAa;CAAC;CAAW;CAAU;AAAM;AAsCtD,SAAS,oBAAoB,OAAkC;CAC7D,MAAM,eAAe;CACrB,MAAM,gBAAgB;AACxB;AACA,SAAgB,iBAAiB,OAAuC;CACtE,MAAM,OAAO,MAAM,QAAQ;CAC3B,OAAO;EACL,KAAK,SAAS,WAAW,WAAW,SAAS,SAAS,MAAM;EAC5D;EACA,UAAU,MAAM,YAAY;EAC5B,OAAO,MAAM,SAAS,SAAS;EAC/B,MAAM,MAAM;CACd;AACF;AACA,SAAgB,iBAAiB,OAAyC;CACxE,OAAO;EACL,cAAc;EAAQ,aAAa;EAAQ,aAAa,MAAM;EAC9D,GAAI,MAAM,WAAW,EAAE,iBAAiB,OAAgB,IAAI,CAAC;EAC7D,GAAI,MAAM,SAAS,WAAW;GAAE,MAAM;GAAmB,UAAU,MAAM;EAAS,IAAI,CAAC;EACvF,GAAI,MAAM,SAAS,UAAU,CAAC,MAAM,YAAY,MAAM,OAAO,EAAE,MAAM,MAAM,KAAK,IAAI,CAAC;EACrF,GAAI,MAAM,SAAS,UAAU,MAAM,WAAW;GAAE,iBAAiB;GAAe,UAAU;GAAa,SAAS;EAAoB,IAAI,CAAC;CAC3I;AACF"}