@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
package/dist/index.js CHANGED
@@ -1,15 +1,155 @@
1
- import { connect, createDialogProps, dialogMachine } from "./dialog/index.js";
1
+ import { a as createFloatingPanelProps, c as snapFloatingPanelHeight, i as connectFloatingPanel, n as FLOATING_PANEL_DEFAULT_ANCHORS, o as floatingPanelMachine, r as FLOATING_PANEL_PARTS, s as resolveFloatingPanelAnchors, t as FLOATING_PANEL_BOUNDARIES } from "./floating-panel-Cbm5njBJ.js";
2
+ import { a as resolveIconName, i as getIconVector, n as ICON_PARTS, o as resolveIconState, r as getIconRootProps, t as ICON_FALLBACK_NAME } from "./icon-Cgdbnk1u.js";
3
+ import { a as SWIPER_MAX_SLIDES, c as clampSwiperIndex, d as getSwiperSlides, f as resolveSwiperDragOffset, h as swiperMachine, i as SWIPER_EDGE_RESISTANCE, l as connectSwiper, m as stepSwiperIndex, n as SWIPER_DIRECTIONS, o as SWIPER_MIN_AUTOPLAY_INTERVAL, p as resolveSwiperState, r as SWIPER_DISTANCE_RATIO, s as SWIPER_PARTS, t as SWIPER_DEFAULT_AUTOPLAY_INTERVAL, u as createSwiperProps } from "./swiper-BKivDkHp.js";
4
+ import { clampImagePreviewTransform, connectImagePreview, createImagePreviewProps, imagePreviewMachine, resolveImagePreviewImages, resolveImagePreviewMaxZoom } from "./image-preview/index.js";
5
+ import { connectShareSheet, createShareSheetProps, resolveShareSheetGroups, shareSheetMachine } from "./share-sheet/index.js";
6
+ 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";
7
+ import { AREA_PICKER_PARTS, areaPickerMachine, connectAreaPicker, createAreaPickerProps, resolveAreaPickerValue, toAreaPickerOptions } from "./area-picker/index.js";
8
+ import { TIME_PICKER_COLUMN_TYPES, connectTimePicker, createTimePickerProps, formatTimePickerValue, getTimePickerCandidates, parseTimePickerValue, resolveTimePickerPrecision, timePickerMachine } from "./time-picker/index.js";
9
+ import { a as compareCalendarDates, c as daysInMonth, d as isValidCalendarDate, f as normalizeCalendarValue, i as calendarMachine, l as getCalendarMonthDays, m as toDateKey, n as addCalendarDays, o as connectCalendar, p as selectCalendarDate, r as addCalendarMonths, s as createCalendarProps, t as CALENDAR_PARTS, u as isCalendarDateDisabled } from "./calendar-CmpK3stz.js";
10
+ import "./calendar/index.js";
11
+ import "./cascader/index.js";
12
+ import { DATE_PICKER_COLUMN_TYPES, clampDatePickerDate, connectDatePicker, createDatePickerProps, createDatePickerUtcDate, datePickerMachine, defaultDatePickerFormatter, formatDatePickerValue, fromDatePickerParts, getDatePickerColumnTypes, getDatePickerColumns, getDatePickerPickerId, getDatePickerToday, normalizeDatePickerValue, parseDatePickerInput, resolveDatePickerBounds, resolveDatePickerParts, resolveDatePickerPrecision, toDatePickerIso, toDatePickerParts, toDatePickerPickerValue, truncateDatePickerDate } from "./date-picker/index.js";
13
+ import { l as disposeModalSession, m as syncModalRegistration, r as modalDialogMachine, u as hasOtherModal } from "./modal-dialog-machine-CF9_z3Dm.js";
14
+ import { c as disposeModalRender, d as createModalRenderScope, f as createModalTicketCursor, l as syncModalRender, p as wantsModalOpen, u as updateModalRenderIdentity } from "./popup-z5d8IYCt.js";
15
+ import { _ as isPickerOptionSelectable, a as getPickerAccessibleName, c as isPickerValue, d as pickerMachine, f as PickerSelectionModel, g as getPickerOptionIndex, h as getPickerKeyboardTarget, i as createPickerProps, l as resolvePickerColumns, m as getPickerFirstValue, n as connectPickerColumn, o as getPickerDataAttrs, p as getPickerDiagnostics, r as connectPicker, s as isPickerColumns, t as attachPickerColumn, u as resolvePickerMode } from "./picker-BykFntQN.js";
16
+ import { a as FLOATING_DEFAULT_OFFSET, c as computeFloatingPosition, d as resolveFloatingPlacement, i as FLOATING_ALIGNS, o as FLOATING_PLACEMENTS, p as splitFloatingPlacement, s as FLOATING_SIDES, u as joinFloatingPlacement } from "./layer-IpFrl5--.js";
17
+ import { DROPDOWN_DEFAULT_OFFSET, DROPDOWN_DEFAULT_PLACEMENT, DROPDOWN_MOVES, DROPDOWN_PARTS, DROPDOWN_TYPEAHEAD_TIMEOUT, connectDropdown, createDropdownProps, dropdownMachine, getDropdownMoveTarget, getDropdownTypeaheadTarget, resolveDropdownItems, resolveDropdownState } from "./dropdown/index.js";
18
+ import { POPOVER_DEFAULT_PLACEMENT, POPOVER_PARTS, connectPopover, createPopoverProps, popoverMachine, resolvePopoverState } from "./popover/index.js";
19
+ import { TREE_SELECT_DEFAULT_TEXTS, TREE_SELECT_PARTS, TREE_SELECT_SELECTABLE, connectTreeSelect, createTreeSelectIndex, createTreeSelectProps, getTreeSelectAncestors, getTreeSelectCheckedState, getTreeSelectKeyAction, getTreeSelectLabels, getTreeSelectStaleValue, getTreeSelectSummary, getTreeSelectVisible, resolveTreeSelectExpanded, resolveTreeSelectMode, resolveTreeSelectValue, toggleTreeSelectExpanded, toggleTreeSelectValue, treeSelectMachine } from "./tree-select/index.js";
20
+ import { REORDER_AUTO_SCROLL_EDGE, REORDER_AUTO_SCROLL_SPEED, REORDER_DEFAULT_TEXTS, REORDER_DEFAULT_THRESHOLD, REORDER_PARTS, REORDER_SOURCES, clampReorderOffset, connectReorder, createReorderProps, formatReorderText, getReorderAutoScroll, getReorderEntries, getReorderKeyTarget, getReorderPitch, getReorderShift, getReorderSlotOffset, getReorderTargetIndex, moveReorderKeys, reorderMachine, resolveReorderDisabled, resolveReorderKey, resolveReorderOrder, resolveReorderState, resolveReorderText } from "./reorder/index.js";
21
+ import { PASSWORD_INPUT_CHARSETS, PASSWORD_INPUT_DEFAULT_LENGTH, PASSWORD_INPUT_MASK_GLYPH, PASSWORD_INPUT_MAX_LENGTH, PASSWORD_INPUT_MIN_LENGTH, PASSWORD_INPUT_MODES, PASSWORD_INPUT_PARTS, connectPasswordInput, createPasswordInputProps, mergePasswordInputPaste, normalizePasswordInputLength, normalizePasswordInputValue, passwordInputMachine } from "./password-input/index.js";
22
+ import { VIRTUAL_LIST_ALIGNS, VIRTUAL_LIST_DEFAULT_INITIAL_COUNT, VIRTUAL_LIST_DEFAULT_ITEM_HEIGHT, VIRTUAL_LIST_DEFAULT_OVERSCAN, VIRTUAL_LIST_PARTS, connectVirtualList, createVirtualListProps, findVirtualListFocus, getVirtualListRange, getVirtualListRenderLimit, getVirtualListScrollTop, resolveVirtualListKey, resolveVirtualListState, resolveVirtualListText, virtualListMachine } from "./virtual-list/index.js";
23
+ import { NUMBER_KEYBOARD_DELETE_GLYPH, NUMBER_KEYBOARD_DIGITS, NUMBER_KEYBOARD_LONG_PRESS_DELAY, NUMBER_KEYBOARD_MAX_EXTRA_KEYS, NUMBER_KEYBOARD_PARTS, NUMBER_KEYBOARD_REPEAT_INTERVAL, connectNumberKeyboard, createNumberKeyboardProps, getNumberKeyboardKeys, normalizeNumberKeyboardExtraKeys, numberKeyboardMachine, resolveNumberKeyboardKey } from "./number-keyboard/index.js";
24
+ import { a as getActionSheetDataAttrs, i as getActionSheetAccessibleName, n as connectActionSheet, o as resolveActionSheetActions, r as createActionSheetProps, s as resolveActionSheetActivation, t as actionSheetMachine } from "./action-sheet-Cvcr1S_m.js";
25
+ import { PULL_REFRESH_DEFAULT_DAMPING, PULL_REFRESH_DEFAULT_HEAD_HEIGHT, PULL_REFRESH_DEFAULT_SUCCESS_DURATION, PULL_REFRESH_PARTS, PULL_REFRESH_STATUSES, connectPullRefresh, createPullRefreshProps, pullRefreshMachine, resolvePullDistance, resolvePullRefreshState, resolvePullRefreshStatus } from "./pull-refresh/index.js";
26
+ import { INDEX_BAR_PARTS, connectIndexBar, createIndexBarProps, indexBarMachine, resolveIndexBarActive, resolveIndexBarKeyAt, resolveIndexBarState } from "./index-bar/index.js";
27
+ import { NAV_BAR_HEADING_LEVELS, NAV_BAR_PARTS, connectNavBar, createNavBarProps, navBarMachine, resolveNavBarState } from "./nav-bar/index.js";
28
+ import { UPLOAD_PARTS, UPLOAD_STATUSES, connectUpload, createUploadProps, matchesUploadAccept, normalizeUploadItems, resolveUploadState, uploadMachine } from "./upload/index.js";
29
+ import { NOTIFY_DEFAULT_DURATION, NOTIFY_PARTS, NOTIFY_TYPES, connectNotify, createNotifyProps, notifyMachine, resolveNotifyState } from "./notify/index.js";
30
+ import { FLOATING_BUBBLE_AXES, FLOATING_BUBBLE_BOUNDARIES, FLOATING_BUBBLE_DEFAULT_STEP, FLOATING_BUBBLE_MAGNETS, FLOATING_BUBBLE_PARTS, clampFloatingBubbleOffset, connectFloatingBubble, createFloatingBubbleProps, floatingBubbleMachine, resolveFloatingBubbleState, snapFloatingBubbleOffset } from "./floating-bubble/index.js";
31
+ import { WATERMARK_DEFAULTS, WATERMARK_LAYER_STATES, WATERMARK_PARTS, buildWatermarkTextTile, connectWatermark, createWatermarkProps, escapeWatermarkXml, normalizeWatermarkRotate, resolveWatermarkLayer, resolveWatermarkState, watermarkImageKey, watermarkMachine, watermarkTextTileUrl } from "./watermark/index.js";
32
+ import { SLIDER_ORIENTATIONS, SLIDER_PARTS, connectSlider, createSliderProps, getSliderClosestThumb, getSliderKeyValue, getSliderPercent, getSliderPointValue, getSliderThumbBounds, normalizeSliderValues, resolveSliderState, sliderMachine, snapSliderValue, toSliderValue } from "./slider/index.js";
33
+ import "./swiper/index.js";
34
+ import { SWIPE_ACTION_COLORS, SWIPE_ACTION_DISTANCE_RATIO, SWIPE_ACTION_PARTS, SWIPE_ACTION_SIDES, clampSwipeActionOffset, connectSwipeAction, createSwipeActionProps, getSwipeActionRestOffset, resolveSwipeActionOpen, resolveSwipeActionRelease, resolveSwipeActionState, swipeActionMachine } from "./swipe-action/index.js";
35
+ import { INFINITE_SCROLL_DEFAULT_THRESHOLD, INFINITE_SCROLL_PARTS, INFINITE_SCROLL_STATUSES, connectInfiniteScroll, createInfiniteScrollProps, infiniteScrollMachine, resolveInfiniteScrollState, resolveInfiniteScrollStatus } from "./infinite-scroll/index.js";
36
+ import { BACK_TOP_PARTS, backTopMachine, connectBackTop, createBackTopProps, isBackTopShown, resolveBackTopState } from "./back-top/index.js";
37
+ import { STICKY_PARTS, STICKY_POSITIONS, computeStickyStuck, connectSticky, createStickyProps, resolveStickyState, stickyMachine } from "./sticky/index.js";
38
+ import { PAGE_INDICATOR_DIRECTIONS, PAGE_INDICATOR_PARTS, PAGE_INDICATOR_TONES, connectPageIndicator, createPageIndicatorProps, getPageIndicatorDots, pageIndicatorMachine, resolvePageIndicatorState } from "./page-indicator/index.js";
39
+ import { a as connectNoticeBar, c as resolveNoticeBarDelay, i as NOTICE_BAR_TONES, l as resolveNoticeBarMarquee, n as NOTICE_BAR_DEFAULT_SPEED, o as createNoticeBarProps, r as NOTICE_BAR_PARTS, s as noticeBarMachine, t as NOTICE_BAR_DEFAULT_DELAY, u as resolveNoticeBarSpeed } from "./notice-bar-DMpwLvRb.js";
40
+ import { a as createCollapseProps, c as resolveCollapseHeadingLevel, i as connectCollapse, l as toggleCollapseValue, n as COLLAPSE_PARTS, o as normalizeCollapseItems, r as collapseMachine, s as normalizeCollapseValue, t as COLLAPSE_HEADING_LEVELS } from "./collapse-B969h7-H.js";
41
+ import { a as normalizeCheckListItems, i as createCheckListProps, n as checkListMachine, o as normalizeCheckListValue, r as connectCheckList, t as CHECK_LIST_PARTS } from "./check-list-BvZHQt5w.js";
42
+ import { a as normalizeSelectorOptions, c as selectorMachine, i as createSelectorProps, n as SELECTOR_PARTS, o as normalizeSelectorValue, r as connectSelector, s as resolveSelectorColumns, t as SELECTOR_COLUMNS } from "./selector-BU2MMJ4N.js";
43
+ import { n as getProgressRootProps, r as resolveProgressState, t as PROGRESS_TONES } from "./progress-f3iYEfdA.js";
44
+ import { CIRCLE_DEFAULT_STROKE_WIDTH, CIRCLE_INDETERMINATE_ARC, CIRCLE_LINE_CAPS, CIRCLE_PARTS, CIRCLE_START_POSITIONS, CIRCLE_VIEWBOX, getCircleContentProps, getCircleIndicatorProps, getCircleRootProps, getCircleSvgProps, getCircleTrackProps, resolveCircleState } from "./circle/index.js";
45
+ import { COUNTDOWN_DEFAULT_FORMAT, COUNTDOWN_FAST_INTERVAL, COUNTDOWN_PARTS, COUNTDOWN_STATES, COUNTDOWN_VARIANTS, connectCountdown, countdownMachine, createCountdownProps, formatCountdown, getCountdownSegments, getCountdownTimeParts, resolveCountdownRemaining } from "./countdown/index.js";
46
+ import { STATISTIC_DEFAULT_PLACEHOLDER, STATISTIC_LIVE_MODES, STATISTIC_PARTS, STATISTIC_SIZES, STATISTIC_TRENDS, STATISTIC_TREND_LABELS, getStatisticContentProps, getStatisticPartProps, getStatisticRootProps, getStatisticSegments, resolveStatisticState } from "./statistic/index.js";
47
+ import { PRICE_DEFAULT_ORIGINAL_LABEL, PRICE_DEFAULT_PLACEHOLDER, PRICE_DEFAULT_PRECISION, PRICE_DEFAULT_SYMBOL, PRICE_FRACTION_SIZES, PRICE_PARTS, PRICE_SIZES, PRICE_SYMBOL_POSITIONS, PRICE_TONES, getPricePartProps, getPriceRootProps, getPriceSegments, resolvePriceState } from "./price/index.js";
48
+ import { TIMELINE_DEFAULT_STATUS_LABELS, TIMELINE_MARKER_GLYPHS, TIMELINE_PARTS, TIMELINE_STATUSES, getTimelineDescriptionProps, getTimelineItemProps, getTimelineMarkerProps, getTimelinePartProps, getTimelineRootProps, getTimelineStatusProps, getTimelineStatusText, getTimelineTimeProps, resolveTimelineState } from "./timeline/index.js";
49
+ import { DESCRIPTIONS_LAYOUTS, DESCRIPTIONS_MAX_COLUMN, DESCRIPTIONS_PARTS, getDescriptionsItemProps, getDescriptionsLabelProps, getDescriptionsListProps, getDescriptionsRootProps, getDescriptionsTitleProps, getDescriptionsValueProps, normalizeDescriptionsColumn, resolveDescriptionsState } from "./descriptions/index.js";
50
+ import { FOOTER_CHIP_VARIANTS, FOOTER_PARTS, connectFooter, footerMachine, resolveFooterChips, resolveFooterLinks, sanitizeFooterHref } from "./footer/index.js";
51
+ import { ELLIPSIS_DIRECTIONS, ELLIPSIS_PARTS, ELLIPSIS_PROBE_ATTRIBUTE, buildEllipsisCandidate, connectEllipsis, createEllipsisProps, ellipsisMachine, findEllipsisText, measureEllipsisLayout, normalizeEllipsisRows, observeEllipsisLayout } from "./ellipsis/index.js";
52
+ import { a as getRatePointValue, c as rateMachine, i as createRateProps, l as rateTouchCoverageForGlyphFill, n as RATE_SIZES, o as normalizeRateCount, r as connect$4, s as normalizeRateValue, t as RATE_PARTS } from "./rate-5XsU2QkY.js";
53
+ import { C as setFormValue, S as normalizeFormNamePath, _ as formValuesEqual, a as getFieldDescriptionProps, b as hasFormValue, c as getFieldRequiredProps, d as resolveFieldState, f as cloneFormValue, g as formValueFingerprint, h as formFieldNativeName, i as getFieldControlProps, l as getFieldRootProps, m as formFieldKey, n as FIELD_LAYOUTS, o as getFieldErrorProps, p as cloneFormValues, r as FIELD_PARTS, s as getFieldLabelProps, t as FIELD_LABEL_MODES, u as getFieldStatusProps, v as freezeFormValues, x as mergeFormValues, y as getFormValue } from "./field-DMHGIMZF.js";
54
+ import { a as createSegmentedProps, c as segmentedMachine, i as connect$5, n as SEGMENTED_PARTS, o as normalizeSegmentedItems, r as SEGMENTED_SIZES, s as normalizeSegmentedValue, t as SEGMENTED_MODES } from "./segmented-BaU38_L4.js";
55
+ import { C as formLabelId, S as formFieldStem, _ as validateFormRule, a as connectForm, b as formDomId, c as formMachine, d as submittedFieldValue, f as FORM_DEFAULT_MESSAGES, g as normalizeFormRule, h as isFormEmpty, i as FORM_PARTS, l as normalizeFormFields, m as formErrorMessage, n as assertFormMethodReady, o as connectFormBehavior, p as FORM_MESSAGES_EN, r as invokeFormApi, s as createFormProps, t as assertFormSsrProps, u as normalizeFormInteraction, v as trackFormNative, x as formFieldRootId, y as formControlStem } from "./form-BAGkIEMY.js";
56
+ import "./field/index.js";
57
+ import { RESULT_ANNOUNCEMENTS, RESULT_HEADING_LEVELS, RESULT_PARTS, RESULT_STATUSES, getResultIcon, getResultPartProps, getResultRootProps, resolveResultState } from "./result/index.js";
58
+ import { TYPOGRAPHY_ALIGNS, TYPOGRAPHY_FONT_FAMILIES, TYPOGRAPHY_PARTS, TYPOGRAPHY_TAGS, TYPOGRAPHY_TONES, TYPOGRAPHY_VARIANTS, getTypographyRootProps, resolveTypographyState } from "./typography/index.js";
59
+ import { PAGINATION_MODES, PAGINATION_PARTS, connect as connect$3, createPaginationProps, getPaginationItems, paginationMachine, resolvePaginationState } from "./pagination/index.js";
60
+ import { connect as connect$2, createDialogProps } from "./dialog/index.js";
61
+ import { n as connect$1, r as createCheckboxGroupProps, t as checkboxGroupMachine } from "./checkbox-group-gGfsTv-e.js";
62
+ import { n as createRadioGroupProps, r as radioGroupMachine, t as connect$6 } from "./radio-group-BOIMuqnS.js";
63
+ import { n as OVERLAY_PANEL_PARTS, r as resolveOverlayPanelHeight, t as DEFAULT_OVERLAY_PANEL_HEADER_HEIGHT } from "./overlay-panel-Z_qdKeBj.js";
2
64
  import { createTabsProps, tabsMachine } from "./tabs/index.js";
3
65
  import { DEFAULT_TOAST_DURATION, DEFAULT_TOAST_POSITION, TOAST_ICON_TYPES, TOAST_PARTS, TOAST_POSITIONS, isToastIconType, resolveToastDuration } from "./toast/index.js";
4
66
  import { BUTTON_ICON_POSITIONS, BUTTON_PARTS, BUTTON_SHAPES, BUTTON_SIZES, BUTTON_TONES, BUTTON_VARIANTS, getButtonRootProps, resolveButtonState } from "./button/index.js";
5
- import { LOADING_SIZES } from "./loading/index.js";
6
- import { SKELETON_ANIMATIONS, SKELETON_PARTS, SKELETON_RADII, SKELETON_VARIANTS } from "./skeleton/index.js";
7
- import { DIVIDER_ORIENTATIONS, DIVIDER_PARTS, DIVIDER_WEIGHTS } from "./divider/index.js";
8
- import { EMPTY_PARTS } from "./empty/index.js";
67
+ import { LOADING_PARTS, LOADING_SIZES, getLoadingPartProps, getLoadingRootProps, resolveLoadingState } from "./loading/index.js";
68
+ import { SKELETON_ANIMATIONS, SKELETON_PARTS, SKELETON_RADII, SKELETON_VARIANTS, getSkeletonLineProps, getSkeletonRootProps, getSkeletonStyle, resolveSkeletonState } from "./skeleton/index.js";
69
+ import { DIVIDER_ORIENTATIONS, DIVIDER_PARTS, DIVIDER_WEIGHTS, getDividerRootProps, resolveDividerState } from "./divider/index.js";
70
+ import { a as resolveEmptyState, i as getEmptyRootProps, n as getEmptyIllustration, r as getEmptyPartProps, t as EMPTY_PARTS } from "./empty-CAgyvhUI.js";
9
71
  import { TOPBAR_VARIANTS, createTopBarProps } from "./top-bar/index.js";
10
- import { ICON_FALLBACK_NAME, ICON_PARTS, resolveIconName } from "./icon/index.js";
11
- import { AVATAR_BADGE_TYPES, AVATAR_LOAD_STATUS, AVATAR_PARTS, AVATAR_SHAPES, AVATAR_SIZES, BADGE_COUNT_MAX, extractInitials, getAvatarBadgeProps, getAvatarFallbackProps, getAvatarImageElementProps, getAvatarImageProps, getAvatarRootProps, resolveAvatarState } from "./avatar/index.js";
12
- import { connect as connect$1, createTextAreaProps, machine } from "./textarea/index.js";
13
- import { TAG_PARTS, TAG_SIZES, TAG_VARIANTS } from "./tag/index.js";
14
- import { createInputProps } from "./input/index.js";
15
- export { AVATAR_BADGE_TYPES, AVATAR_LOAD_STATUS, AVATAR_PARTS, AVATAR_SHAPES, AVATAR_SIZES, BADGE_COUNT_MAX, BUTTON_ICON_POSITIONS, BUTTON_PARTS, BUTTON_SHAPES, BUTTON_SIZES, BUTTON_TONES, BUTTON_VARIANTS, DEFAULT_TOAST_DURATION, DEFAULT_TOAST_POSITION, DIVIDER_ORIENTATIONS, DIVIDER_PARTS, DIVIDER_WEIGHTS, EMPTY_PARTS, ICON_FALLBACK_NAME, ICON_PARTS, LOADING_SIZES, SKELETON_ANIMATIONS, SKELETON_PARTS, SKELETON_RADII, SKELETON_VARIANTS, TAG_PARTS, TAG_SIZES, TAG_VARIANTS, TOAST_ICON_TYPES, TOAST_PARTS, TOAST_POSITIONS, TOPBAR_VARIANTS, connect, createDialogProps, createInputProps, createTabsProps, createTextAreaProps, createTopBarProps, dialogMachine, extractInitials, getAvatarBadgeProps, getAvatarFallbackProps, getAvatarImageElementProps, getAvatarImageProps, getAvatarRootProps, getButtonRootProps, isToastIconType, resolveAvatarState, resolveButtonState, resolveIconName, resolveToastDuration, tabsMachine, connect$1 as textAreaConnect, machine as textAreaMachine };
72
+ import { a as getImageRequestStatus, i as createImageRequestFrames, n as connectAvatarLoad, r as createAvatarResourceBinding, t as avatarLoadMachine } from "./avatar-load-w9dq05oV.js";
73
+ import { AVATAR_BADGE_TYPES, AVATAR_LOAD_STATUS, AVATAR_PARTS, AVATAR_SHAPES, AVATAR_SIZES, BADGE_COUNT_MAX, extractInitials, getAvatarBadgeContent, getAvatarBadgeProps, getAvatarContentPresence, getAvatarFallbackProps, getAvatarImageDescriptor, getAvatarImageElementProps, getAvatarImageProps, getAvatarRootProps, getAvatarRootStyle, resolveAvatarState } from "./avatar/index.js";
74
+ import { a as connect$7, i as computeTextAreaHeight, o as createTextAreaProps, r as clampUtf16, s as machine } from "./textarea-qbnruDUG.js";
75
+ import { TAG_PARTS, TAG_SIZES, TAG_VARIANTS, connectTag, createTagProps, getTagRootProps, getTagStyle, resolveTagState, tagMachine } from "./tag/index.js";
76
+ import { INPUT_TYPES, createInputProps } from "./input/index.js";
77
+ import { SWITCH_PARTS, SWITCH_TYPES, connectSwitch, createSwitchProps, getSwitchRootProps, getSwitchThumbProps, resolveSwitchState, switchMachine } from "./switch/index.js";
78
+ import { STEPPER_PARTS, STEPPER_SIZES, clampStepperValue, getStepperDecrementProps, getStepperDecrementValue, getStepperIncrementProps, getStepperIncrementValue, getStepperRootProps, getStepperValueProps, resolveStepperState } from "./stepper/index.js";
79
+ import { BADGE_KINDS, BADGE_PARTS, BADGE_VARIANTS, DEFAULT_BADGE_MAX_COUNT, getBadgeRetainedRootProps, getBadgeRootProps, resolveBadgeState } from "./badge/index.js";
80
+ import { TABBAR_ITEM_TONES, TABBAR_ITEM_VARIANTS, TABBAR_PARTS, getTabBarItemButtonProps, getTabBarNavigationItemProps, getTabBarNavigationItemTag, getTabBarNavigationRootProps, getTabBarRootProps, resolveTabBarNavigation, resolveTabBarState } from "./tabbar/index.js";
81
+ import { SIDENAV_PARTS, getSideNavGroupLabelProps, getSideNavItemProps, getSideNavRootProps, resolveSideNavState } from "./side-nav/index.js";
82
+ import { CELL_KINDS, getCellRootProps, resolveCellState } from "./cell/index.js";
83
+ import { n as getListRootProps, r as resolveListState, t as LIST_ITEM_TAG } from "./list-6-iz-Irh.js";
84
+ import { a as getCardPartProps, i as CARD_PARTS, n as CARD_MEDIA_POSITIONS, o as getCardRootProps, r as CARD_PADDINGS, s as resolveCardState, t as CARD_HEADING_LEVELS } from "./card-DRtWa6Cr.js";
85
+ import "./progress/index.js";
86
+ import { STEPS_ORIENTATIONS, STEP_STATUSES, getStepControlProps, getStepControlTag, getStepProps, getStepsItemProps, resolveStepsState } from "./steps/index.js";
87
+ import { n as connect, r as createCheckboxProps, t as checkboxMachine } from "./checkbox-BlndJrz5.js";
88
+ import { t as LAYOUT_GAP_PRESETS } from "./layout-BRSqi4AQ.js";
89
+ import { SPACE_ALIGNS, SPACE_DIRECTIONS, SPACE_JUSTIFIES, getSpaceRootProps, getSpaceStyle, resolveSpaceState } from "./space/index.js";
90
+ import { GRID_ALIGNS, GRID_JUSTIFIES, getGridItemProps, getGridItemStyle, getGridRootProps, getGridStyle, resolveGridItemState, resolveGridState } from "./grid/index.js";
91
+ import { SAFE_AREA_EDGES, SAFE_AREA_MINIMUM_PRESETS, SAFE_AREA_MODES, getSafeAreaRootProps, getSafeAreaStyle, resolveSafeAreaState } from "./safe-area/index.js";
92
+ import { IMAGE_FITS, IMAGE_LOAD_STATUS, IMAGE_PARTS, connectImageLoad, createImageResourceBinding, getImageContentPresence, getImageDescriptor, getImageElementProps, getImageFallbackLabel, getImageFallbackLabelProps, getImageFallbackProps, getImageImageProps, getImagePlaceholderProps, getImageRootProps, getImageRootStyle, imageLoadMachine, resolveImageState } from "./image/index.js";
93
+ //#region src/modal-render-hydration.ts
94
+ /**
95
+ * The fixed cross-stack hydration marker contract. Every adapter serializes one
96
+ * ticket per declaration onto a hidden element carrying both attributes, and
97
+ * every adapter must adopt the *whole page's* markers — including foreign
98
+ * stacks' — before hydrating any one root, so ordinals stay page-global.
99
+ *
100
+ * This module is pure transport: it reads attributes and defers every validity
101
+ * and admission decision to the scope. Adapters keep only their own framework
102
+ * glue (where the root comes from, what to do with the returned tickets).
103
+ */
104
+ const MODAL_TICKET_ATTRIBUTE = "data-qw-modal-ticket";
105
+ const MODAL_STACK_ATTRIBUTE = "data-qw-modal-stack";
106
+ const STACKS = [
107
+ "react",
108
+ "vue",
109
+ "wc"
110
+ ];
111
+ function isStack(value) {
112
+ return value !== null && STACKS.includes(value);
113
+ }
114
+ /**
115
+ * Collect a root's markers in render order, recursing into `<template>` content
116
+ * so parked caller content is not skipped. A WC owner may only be declared by
117
+ * the WC stack; that is a transport rule, so it is rejected here, before any
118
+ * adoption happens.
119
+ */
120
+ function scanModalHydrationMarkers(root) {
121
+ const markers = [];
122
+ const visit = (parent) => {
123
+ if (parent.nodeType === 1) {
124
+ const element = parent;
125
+ const stack = element.getAttribute(MODAL_STACK_ATTRIBUTE);
126
+ const serialized = element.getAttribute(MODAL_TICKET_ATTRIBUTE);
127
+ if (serialized !== null && isStack(stack)) markers.push({
128
+ element,
129
+ stack,
130
+ input: JSON.parse(serialized)
131
+ });
132
+ if (element.localName === "template" && "content" in element) visit(element.content);
133
+ }
134
+ for (const child of parent.children) visit(child);
135
+ };
136
+ visit(root);
137
+ for (const marker of markers) if (marker.input.owner !== void 0 && marker.stack !== "wc") throw new TypeError("WC modal owner on foreign stack");
138
+ return markers;
139
+ }
140
+ /** Adopt every scanned marker in render order; the canonical tickets stay index-aligned. */
141
+ function adoptModalHydrationMarkers(markers, scope) {
142
+ return markers.map((marker) => scope.adopt(marker.input));
143
+ }
144
+ /**
145
+ * Bootstrap one page root: adopt the complete marker set, then return only the
146
+ * tickets this stack owns. Adapters pass their own stack tag.
147
+ */
148
+ function adoptModalHydration(root, scope, stack) {
149
+ const markers = scanModalHydrationMarkers(root);
150
+ return adoptModalHydrationMarkers(markers, scope).filter((_, index) => markers[index].stack === stack);
151
+ }
152
+ //#endregion
153
+ export { AREA_PICKER_PARTS, AVATAR_BADGE_TYPES, AVATAR_LOAD_STATUS, AVATAR_PARTS, AVATAR_SHAPES, AVATAR_SIZES, BACK_TOP_PARTS, BADGE_COUNT_MAX, BADGE_KINDS, BADGE_PARTS, BADGE_VARIANTS, BUTTON_ICON_POSITIONS, BUTTON_PARTS, BUTTON_SHAPES, BUTTON_SIZES, BUTTON_TONES, BUTTON_VARIANTS, CALENDAR_PARTS, CARD_HEADING_LEVELS, CARD_MEDIA_POSITIONS, CARD_PADDINGS, CARD_PARTS, CASCADER_PARTS, CELL_KINDS, CHECK_LIST_PARTS, CIRCLE_DEFAULT_STROKE_WIDTH, CIRCLE_INDETERMINATE_ARC, CIRCLE_LINE_CAPS, CIRCLE_PARTS, CIRCLE_START_POSITIONS, CIRCLE_VIEWBOX, COLLAPSE_HEADING_LEVELS, COLLAPSE_PARTS, COUNTDOWN_DEFAULT_FORMAT, COUNTDOWN_FAST_INTERVAL, COUNTDOWN_PARTS, COUNTDOWN_STATES, COUNTDOWN_VARIANTS, DATE_PICKER_COLUMN_TYPES, DEFAULT_BADGE_MAX_COUNT, DEFAULT_OVERLAY_PANEL_HEADER_HEIGHT, DEFAULT_TOAST_DURATION, DEFAULT_TOAST_POSITION, DESCRIPTIONS_LAYOUTS, DESCRIPTIONS_MAX_COLUMN, DESCRIPTIONS_PARTS, DIVIDER_ORIENTATIONS, DIVIDER_PARTS, DIVIDER_WEIGHTS, DROPDOWN_DEFAULT_OFFSET, DROPDOWN_DEFAULT_PLACEMENT, DROPDOWN_MOVES, DROPDOWN_PARTS, DROPDOWN_TYPEAHEAD_TIMEOUT, ELLIPSIS_DIRECTIONS, ELLIPSIS_PARTS, ELLIPSIS_PROBE_ATTRIBUTE, EMPTY_PARTS, FIELD_LABEL_MODES, FIELD_LAYOUTS, FIELD_PARTS, FLOATING_ALIGNS, FLOATING_BUBBLE_AXES, FLOATING_BUBBLE_BOUNDARIES, FLOATING_BUBBLE_DEFAULT_STEP, FLOATING_BUBBLE_MAGNETS, FLOATING_BUBBLE_PARTS, FLOATING_DEFAULT_OFFSET, FLOATING_PANEL_BOUNDARIES, FLOATING_PANEL_DEFAULT_ANCHORS, FLOATING_PANEL_PARTS, FLOATING_PLACEMENTS, FLOATING_SIDES, FOOTER_CHIP_VARIANTS, FOOTER_PARTS, FORM_DEFAULT_MESSAGES, FORM_MESSAGES_EN, FORM_PARTS, GRID_ALIGNS, GRID_JUSTIFIES, ICON_FALLBACK_NAME, ICON_PARTS, IMAGE_FITS, IMAGE_LOAD_STATUS, IMAGE_PARTS, INDEX_BAR_PARTS, INFINITE_SCROLL_DEFAULT_THRESHOLD, INFINITE_SCROLL_PARTS, INFINITE_SCROLL_STATUSES, INPUT_TYPES, LAYOUT_GAP_PRESETS, LIST_ITEM_TAG, LOADING_PARTS, LOADING_SIZES, MODAL_STACK_ATTRIBUTE, MODAL_TICKET_ATTRIBUTE, NAV_BAR_HEADING_LEVELS, NAV_BAR_PARTS, NOTICE_BAR_DEFAULT_DELAY, NOTICE_BAR_DEFAULT_SPEED, NOTICE_BAR_PARTS, NOTICE_BAR_TONES, NOTIFY_DEFAULT_DURATION, NOTIFY_PARTS, NOTIFY_TYPES, NUMBER_KEYBOARD_DELETE_GLYPH, NUMBER_KEYBOARD_DIGITS, NUMBER_KEYBOARD_LONG_PRESS_DELAY, NUMBER_KEYBOARD_MAX_EXTRA_KEYS, NUMBER_KEYBOARD_PARTS, NUMBER_KEYBOARD_REPEAT_INTERVAL, OVERLAY_PANEL_PARTS, PAGE_INDICATOR_DIRECTIONS, PAGE_INDICATOR_PARTS, PAGE_INDICATOR_TONES, PAGINATION_MODES, PAGINATION_PARTS, PASSWORD_INPUT_CHARSETS, PASSWORD_INPUT_DEFAULT_LENGTH, PASSWORD_INPUT_MASK_GLYPH, PASSWORD_INPUT_MAX_LENGTH, PASSWORD_INPUT_MIN_LENGTH, PASSWORD_INPUT_MODES, PASSWORD_INPUT_PARTS, POPOVER_DEFAULT_PLACEMENT, POPOVER_PARTS, PRICE_DEFAULT_ORIGINAL_LABEL, PRICE_DEFAULT_PLACEHOLDER, PRICE_DEFAULT_PRECISION, PRICE_DEFAULT_SYMBOL, PRICE_FRACTION_SIZES, PRICE_PARTS, PRICE_SIZES, PRICE_SYMBOL_POSITIONS, PRICE_TONES, PROGRESS_TONES, PULL_REFRESH_DEFAULT_DAMPING, PULL_REFRESH_DEFAULT_HEAD_HEIGHT, PULL_REFRESH_DEFAULT_SUCCESS_DURATION, PULL_REFRESH_PARTS, PULL_REFRESH_STATUSES, PickerSelectionModel, RATE_PARTS, RATE_SIZES, REORDER_AUTO_SCROLL_EDGE, REORDER_AUTO_SCROLL_SPEED, REORDER_DEFAULT_TEXTS, REORDER_DEFAULT_THRESHOLD, REORDER_PARTS, REORDER_SOURCES, RESULT_ANNOUNCEMENTS, RESULT_HEADING_LEVELS, RESULT_PARTS, RESULT_STATUSES, SAFE_AREA_EDGES, SAFE_AREA_MINIMUM_PRESETS, SAFE_AREA_MODES, SEGMENTED_MODES, SEGMENTED_PARTS, SEGMENTED_SIZES, SELECTOR_COLUMNS, SELECTOR_PARTS, SIDENAV_PARTS, SKELETON_ANIMATIONS, SKELETON_PARTS, SKELETON_RADII, SKELETON_VARIANTS, SLIDER_ORIENTATIONS, SLIDER_PARTS, SPACE_ALIGNS, SPACE_DIRECTIONS, SPACE_JUSTIFIES, STATISTIC_DEFAULT_PLACEHOLDER, STATISTIC_LIVE_MODES, STATISTIC_PARTS, STATISTIC_SIZES, STATISTIC_TRENDS, STATISTIC_TREND_LABELS, STEPPER_PARTS, STEPPER_SIZES, STEPS_ORIENTATIONS, STEP_STATUSES, STICKY_PARTS, STICKY_POSITIONS, SWIPER_DEFAULT_AUTOPLAY_INTERVAL, SWIPER_DIRECTIONS, SWIPER_DISTANCE_RATIO, SWIPER_EDGE_RESISTANCE, SWIPER_MAX_SLIDES, SWIPER_MIN_AUTOPLAY_INTERVAL, SWIPER_PARTS, SWIPE_ACTION_COLORS, SWIPE_ACTION_DISTANCE_RATIO, SWIPE_ACTION_PARTS, SWIPE_ACTION_SIDES, SWITCH_PARTS, SWITCH_TYPES, TABBAR_ITEM_TONES, TABBAR_ITEM_VARIANTS, TABBAR_PARTS, TAG_PARTS, TAG_SIZES, TAG_VARIANTS, TIMELINE_DEFAULT_STATUS_LABELS, TIMELINE_MARKER_GLYPHS, TIMELINE_PARTS, TIMELINE_STATUSES, TIME_PICKER_COLUMN_TYPES, TOAST_ICON_TYPES, TOAST_PARTS, TOAST_POSITIONS, TOPBAR_VARIANTS, TREE_SELECT_DEFAULT_TEXTS, TREE_SELECT_PARTS, TREE_SELECT_SELECTABLE, TYPOGRAPHY_ALIGNS, TYPOGRAPHY_FONT_FAMILIES, TYPOGRAPHY_PARTS, TYPOGRAPHY_TAGS, TYPOGRAPHY_TONES, TYPOGRAPHY_VARIANTS, UPLOAD_PARTS, UPLOAD_STATUSES, VIRTUAL_LIST_ALIGNS, VIRTUAL_LIST_DEFAULT_INITIAL_COUNT, VIRTUAL_LIST_DEFAULT_ITEM_HEIGHT, VIRTUAL_LIST_DEFAULT_OVERSCAN, VIRTUAL_LIST_PARTS, WATERMARK_DEFAULTS, WATERMARK_LAYER_STATES, WATERMARK_PARTS, actionSheetMachine, addCalendarDays, addCalendarMonths, adoptModalHydration, adoptModalHydrationMarkers, areaPickerMachine, assertFormMethodReady, assertFormSsrProps, attachPickerColumn, avatarLoadMachine, backTopMachine, buildEllipsisCandidate, buildWatermarkTextTile, calendarMachine, cascaderMachine, checkListMachine, connect as checkboxConnect, connect$1 as checkboxGroupConnect, checkboxGroupMachine, checkboxMachine, clampDatePickerDate, clampFloatingBubbleOffset, clampImagePreviewTransform, clampReorderOffset, clampStepperValue, clampSwipeActionOffset, clampSwiperIndex, clampUtf16, cloneFormValue, cloneFormValues, collapseMachine, compareCalendarDates, computeFloatingPosition, computeStickyStuck, computeTextAreaHeight, connect$2 as connect, connectActionSheet, connectAreaPicker, connectAvatarLoad, connectBackTop, connectCalendar, connectCascader, connectCheckList, connectCollapse, connectCountdown, connectDatePicker, connectDropdown, connectEllipsis, connectFloatingBubble, connectFloatingPanel, connectFooter, connectForm, connectFormBehavior, connectImageLoad, connectImagePreview, connectIndexBar, connectInfiniteScroll, connectNavBar, connectNoticeBar, connectNotify, connectNumberKeyboard, connectPageIndicator, connect$3 as connectPagination, connectPasswordInput, connectPicker, connectPickerColumn, connectPopover, connectPullRefresh, connect$4 as connectRate, connectReorder, connect$5 as connectSegmented, connectSelector, connectShareSheet, connectSlider, connectSticky, connectSwipeAction, connectSwiper, connectSwitch, connectTag, connectTimePicker, connectTreeSelect, connectUpload, connectVirtualList, connectWatermark, countdownMachine, createActionSheetProps, createAreaPickerProps, createAvatarResourceBinding, createBackTopProps, createCalendarProps, createCascaderProps, createCheckListProps, createCheckboxGroupProps, createCheckboxProps, createCollapseProps, createCountdownProps, createDatePickerProps, createDatePickerUtcDate, createDialogProps, createDropdownProps, createEllipsisProps, createFloatingBubbleProps, createFloatingPanelProps, createFormProps, createImagePreviewProps, createImageRequestFrames, createImageResourceBinding, createIndexBarProps, createInfiniteScrollProps, createInputProps, createModalRenderScope, createModalTicketCursor, createNavBarProps, createNoticeBarProps, createNotifyProps, createNumberKeyboardProps, createPageIndicatorProps, createPaginationProps, createPasswordInputProps, createPickerProps, createPopoverProps, createPullRefreshProps, createRadioGroupProps, createRateProps, createReorderProps, createSegmentedProps, createSelectorProps, createShareSheetProps, createSliderProps, createStickyProps, createSwipeActionProps, createSwiperProps, createSwitchProps, createTabsProps, createTagProps, createTextAreaProps, createTimePickerProps, createTopBarProps, createTreeSelectIndex, createTreeSelectProps, createUploadProps, createVirtualListProps, createWatermarkProps, datePickerMachine, daysInMonth, defaultDatePickerFormatter, modalDialogMachine as dialogMachine, disposeModalRender, disposeModalSession, dropdownMachine, ellipsisMachine, escapeWatermarkXml, extractInitials, findEllipsisText, findVirtualListFocus, floatingBubbleMachine, floatingPanelMachine, footerMachine, formControlStem, formDomId, formErrorMessage, formFieldKey, formFieldNativeName, formFieldRootId, formFieldStem, formLabelId, formMachine, formValueFingerprint, formValuesEqual, formatCountdown, formatDatePickerValue, formatReorderText, formatTimePickerValue, freezeFormValues, fromDatePickerParts, getActionSheetAccessibleName, getActionSheetDataAttrs, getAvatarBadgeContent, getAvatarBadgeProps, getAvatarContentPresence, getAvatarFallbackProps, getAvatarImageDescriptor, getAvatarImageElementProps, getAvatarImageProps, getAvatarRootProps, getAvatarRootStyle, getBadgeRetainedRootProps, getBadgeRootProps, getButtonRootProps, getCalendarMonthDays, getCardPartProps, getCardRootProps, getCascaderColumns, getCascaderLabels, getCellRootProps, getCircleContentProps, getCircleIndicatorProps, getCircleRootProps, getCircleSvgProps, getCircleTrackProps, getCountdownSegments, getCountdownTimeParts, getDatePickerColumnTypes, getDatePickerColumns, getDatePickerPickerId, getDatePickerToday, getDescriptionsItemProps, getDescriptionsLabelProps, getDescriptionsListProps, getDescriptionsRootProps, getDescriptionsTitleProps, getDescriptionsValueProps, getDividerRootProps, getDropdownMoveTarget, getDropdownTypeaheadTarget, getEmptyIllustration, getEmptyPartProps, getEmptyRootProps, getFieldControlProps, getFieldDescriptionProps, getFieldErrorProps, getFieldLabelProps, getFieldRequiredProps, getFieldRootProps, getFieldStatusProps, getFormValue, getGridItemProps, getGridItemStyle, getGridRootProps, getGridStyle, getIconRootProps, getIconVector, getImageContentPresence, getImageDescriptor, getImageElementProps, getImageFallbackLabel, getImageFallbackLabelProps, getImageFallbackProps, getImageImageProps, getImagePlaceholderProps, getImageRequestStatus, getImageRootProps, getImageRootStyle, getListRootProps, getLoadingPartProps, getLoadingRootProps, getNumberKeyboardKeys, getPageIndicatorDots, getPaginationItems, getPickerAccessibleName, getPickerDataAttrs, getPickerDiagnostics, getPickerFirstValue, getPickerKeyboardTarget, getPickerOptionIndex, getPricePartProps, getPriceRootProps, getPriceSegments, getProgressRootProps, getRatePointValue, getReorderAutoScroll, getReorderEntries, getReorderKeyTarget, getReorderPitch, getReorderShift, getReorderSlotOffset, getReorderTargetIndex, getResultIcon, getResultPartProps, getResultRootProps, getSafeAreaRootProps, getSafeAreaStyle, getSideNavGroupLabelProps, getSideNavItemProps, getSideNavRootProps, getSkeletonLineProps, getSkeletonRootProps, getSkeletonStyle, getSliderClosestThumb, getSliderKeyValue, getSliderPercent, getSliderPointValue, getSliderThumbBounds, getSpaceRootProps, getSpaceStyle, getStatisticContentProps, getStatisticPartProps, getStatisticRootProps, getStatisticSegments, getStepControlProps, getStepControlTag, getStepProps, getStepperDecrementProps, getStepperDecrementValue, getStepperIncrementProps, getStepperIncrementValue, getStepperRootProps, getStepperValueProps, getStepsItemProps, getSwipeActionRestOffset, getSwiperSlides, getSwitchRootProps, getSwitchThumbProps, getTabBarItemButtonProps, getTabBarNavigationItemProps, getTabBarNavigationItemTag, getTabBarNavigationRootProps, getTabBarRootProps, getTagRootProps, getTagStyle, getTimePickerCandidates, getTimelineDescriptionProps, getTimelineItemProps, getTimelineMarkerProps, getTimelinePartProps, getTimelineRootProps, getTimelineStatusProps, getTimelineStatusText, getTimelineTimeProps, getTreeSelectAncestors, getTreeSelectCheckedState, getTreeSelectKeyAction, getTreeSelectLabels, getTreeSelectStaleValue, getTreeSelectSummary, getTreeSelectVisible, getTypographyRootProps, getVirtualListRange, getVirtualListRenderLimit, getVirtualListScrollTop, hasFormValue, hasOtherModal, imageLoadMachine, imagePreviewMachine, indexBarMachine, infiniteScrollMachine, invokeFormApi, isBackTopShown, isCalendarDateDisabled, isFormEmpty, isPickerColumns, isPickerOptionSelectable, isPickerValue, isToastIconType, isValidCalendarDate, joinFloatingPlacement, matchesUploadAccept, measureEllipsisLayout, mergeFormValues, mergePasswordInputPaste, moveReorderKeys, navBarMachine, normalizeCalendarValue, normalizeCascaderOptions, normalizeCascaderValue, normalizeCheckListItems, normalizeCheckListValue, normalizeCollapseItems, normalizeCollapseValue, normalizeDatePickerValue, normalizeDescriptionsColumn, normalizeEllipsisRows, normalizeFormFields, normalizeFormInteraction, normalizeFormNamePath, normalizeFormRule, normalizeNumberKeyboardExtraKeys, normalizePasswordInputLength, normalizePasswordInputValue, normalizeRateCount, normalizeRateValue, normalizeSegmentedItems, normalizeSegmentedValue, normalizeSelectorOptions, normalizeSelectorValue, normalizeSliderValues, normalizeUploadItems, normalizeWatermarkRotate, noticeBarMachine, notifyMachine, numberKeyboardMachine, observeEllipsisLayout, pageIndicatorMachine, paginationMachine, parseDatePickerInput, parseTimePickerValue, passwordInputMachine, pickerMachine, popoverMachine, pullRefreshMachine, connect$6 as radioGroupConnect, radioGroupMachine, rateMachine, rateTouchCoverageForGlyphFill, reorderMachine, resolveActionSheetActions, resolveActionSheetActivation, resolveAreaPickerValue, resolveAvatarState, resolveBackTopState, resolveBadgeState, resolveButtonState, resolveCardState, resolveCascaderPath, resolveCellState, resolveCircleState, resolveCollapseHeadingLevel, resolveCountdownRemaining, resolveDatePickerBounds, resolveDatePickerParts, resolveDatePickerPrecision, resolveDescriptionsState, resolveDividerState, resolveDropdownItems, resolveDropdownState, resolveEmptyState, resolveFieldState, resolveFloatingBubbleState, resolveFloatingPanelAnchors, resolveFloatingPlacement, resolveFooterChips, resolveFooterLinks, resolveGridItemState, resolveGridState, resolveIconName, resolveIconState, resolveImagePreviewImages, resolveImagePreviewMaxZoom, resolveImageState, resolveIndexBarActive, resolveIndexBarKeyAt, resolveIndexBarState, resolveInfiniteScrollState, resolveInfiniteScrollStatus, resolveListState, resolveLoadingState, resolveNavBarState, resolveNoticeBarDelay, resolveNoticeBarMarquee, resolveNoticeBarSpeed, resolveNotifyState, resolveNumberKeyboardKey, resolveOverlayPanelHeight, resolvePageIndicatorState, resolvePaginationState, resolvePickerColumns, resolvePickerMode, resolvePopoverState, resolvePriceState, resolveProgressState, resolvePullDistance, resolvePullRefreshState, resolvePullRefreshStatus, resolveReorderDisabled, resolveReorderKey, resolveReorderOrder, resolveReorderState, resolveReorderText, resolveResultState, resolveSafeAreaState, resolveSelectorColumns, resolveShareSheetGroups, resolveSideNavState, resolveSkeletonState, resolveSliderState, resolveSpaceState, resolveStatisticState, resolveStepperState, resolveStepsState, resolveStickyState, resolveSwipeActionOpen, resolveSwipeActionRelease, resolveSwipeActionState, resolveSwiperDragOffset, resolveSwiperState, resolveSwitchState, resolveTabBarNavigation, resolveTabBarState, resolveTagState, resolveTimePickerPrecision, resolveTimelineState, resolveToastDuration, resolveTreeSelectExpanded, resolveTreeSelectMode, resolveTreeSelectValue, resolveTypographyState, resolveUploadState, resolveVirtualListKey, resolveVirtualListState, resolveVirtualListText, resolveWatermarkLayer, resolveWatermarkState, sanitizeFooterHref, scanModalHydrationMarkers, segmentedMachine, selectCalendarDate, selectorMachine, setFormValue, shareSheetMachine, sliderMachine, snapFloatingBubbleOffset, snapFloatingPanelHeight, snapSliderValue, splitFloatingPlacement, stepSwiperIndex, stickyMachine, submittedFieldValue, swipeActionMachine, swiperMachine, switchMachine, syncModalRegistration, syncModalRender, tabsMachine, tagMachine, connect$7 as textAreaConnect, machine as textAreaMachine, timePickerMachine, toAreaPickerOptions, toDateKey, toDatePickerIso, toDatePickerParts, toDatePickerPickerValue, toSliderValue, toggleCollapseValue, toggleTreeSelectExpanded, toggleTreeSelectValue, trackFormNative, treeSelectMachine, truncateDatePickerDate, updateCascaderChildren, updateModalRenderIdentity, uploadMachine, validateFormRule, virtualListMachine, wantsModalOpen, watermarkImageKey, watermarkMachine, watermarkTextTileUrl };
154
+
155
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/modal-render-hydration.ts"],"sourcesContent":["import type { ModalRenderScope, ModalRenderTicket } from \"./modal-render-scope.js\";\n\n/**\n * The fixed cross-stack hydration marker contract. Every adapter serializes one\n * ticket per declaration onto a hidden element carrying both attributes, and\n * every adapter must adopt the *whole page's* markers — including foreign\n * stacks' — before hydrating any one root, so ordinals stay page-global.\n *\n * This module is pure transport: it reads attributes and defers every validity\n * and admission decision to the scope. Adapters keep only their own framework\n * glue (where the root comes from, what to do with the returned tickets).\n */\n\nexport const MODAL_TICKET_ATTRIBUTE = \"data-qw-modal-ticket\";\nexport const MODAL_STACK_ATTRIBUTE = \"data-qw-modal-stack\";\n\n/** The finite set of stacks that may declare a modal root. */\nexport type ModalRenderStack = \"react\" | \"vue\" | \"wc\";\n\nconst STACKS: readonly ModalRenderStack[] = [\"react\", \"vue\", \"wc\"];\n\n/** One scanned marker: its element, its declaring stack and its raw ticket data. */\nexport interface ModalHydrationMarker {\n readonly element: Element;\n readonly stack: ModalRenderStack;\n readonly input: ModalRenderTicket;\n}\n\nfunction isStack(value: string | null): value is ModalRenderStack {\n return value !== null && (STACKS as readonly string[]).includes(value);\n}\n\n/**\n * Collect a root's markers in render order, recursing into `<template>` content\n * so parked caller content is not skipped. A WC owner may only be declared by\n * the WC stack; that is a transport rule, so it is rejected here, before any\n * adoption happens.\n */\nexport function scanModalHydrationMarkers(root: ParentNode): readonly ModalHydrationMarker[] {\n const markers: ModalHydrationMarker[] = [];\n const visit = (parent: ParentNode): void => {\n if ((parent as Node).nodeType === 1) {\n const element = parent as Element;\n const stack = element.getAttribute(MODAL_STACK_ATTRIBUTE);\n const serialized = element.getAttribute(MODAL_TICKET_ATTRIBUTE);\n if (serialized !== null && isStack(stack)) markers.push({ element, stack, input: JSON.parse(serialized) });\n if (element.localName === \"template\" && \"content\" in element) visit((element as HTMLTemplateElement).content);\n }\n for (const child of parent.children) visit(child);\n };\n visit(root);\n for (const marker of markers) {\n if (marker.input.owner !== undefined && marker.stack !== \"wc\") throw new TypeError(\"WC modal owner on foreign stack\");\n }\n return markers;\n}\n\n/** Adopt every scanned marker in render order; the canonical tickets stay index-aligned. */\nexport function adoptModalHydrationMarkers(markers: readonly ModalHydrationMarker[], scope: ModalRenderScope): readonly ModalRenderTicket[] {\n return markers.map(marker => scope.adopt(marker.input));\n}\n\n/**\n * Bootstrap one page root: adopt the complete marker set, then return only the\n * tickets this stack owns. Adapters pass their own stack tag.\n */\nexport function adoptModalHydration(root: ParentNode, scope: ModalRenderScope, stack: ModalRenderStack): readonly ModalRenderTicket[] {\n const markers = scanModalHydrationMarkers(root);\n const tickets = adoptModalHydrationMarkers(markers, scope);\n return tickets.filter((_, index) => markers[index]!.stack === stack);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,MAAa,yBAAyB;AACtC,MAAa,wBAAwB;AAKrC,MAAM,SAAsC;CAAC;CAAS;CAAO;AAAI;AASjE,SAAS,QAAQ,OAAiD;CAChE,OAAO,UAAU,QAAS,OAA6B,SAAS,KAAK;AACvE;;;;;;;AAQA,SAAgB,0BAA0B,MAAmD;CAC3F,MAAM,UAAkC,CAAC;CACzC,MAAM,SAAS,WAA6B;EAC1C,IAAK,OAAgB,aAAa,GAAG;GACnC,MAAM,UAAU;GAChB,MAAM,QAAQ,QAAQ,aAAa,qBAAqB;GACxD,MAAM,aAAa,QAAQ,aAAa,sBAAsB;GAC9D,IAAI,eAAe,QAAQ,QAAQ,KAAK,GAAG,QAAQ,KAAK;IAAE;IAAS;IAAO,OAAO,KAAK,MAAM,UAAU;GAAE,CAAC;GACzG,IAAI,QAAQ,cAAc,cAAc,aAAa,SAAS,MAAO,QAAgC,OAAO;EAC9G;EACA,KAAK,MAAM,SAAS,OAAO,UAAU,MAAM,KAAK;CAClD;CACA,MAAM,IAAI;CACV,KAAK,MAAM,UAAU,SACnB,IAAI,OAAO,MAAM,UAAU,KAAA,KAAa,OAAO,UAAU,MAAM,MAAM,IAAI,UAAU,iCAAiC;CAEtH,OAAO;AACT;;AAGA,SAAgB,2BAA2B,SAA0C,OAAuD;CAC1I,OAAO,QAAQ,KAAI,WAAU,MAAM,MAAM,OAAO,KAAK,CAAC;AACxD;;;;;AAMA,SAAgB,oBAAoB,MAAkB,OAAyB,OAAuD;CACpI,MAAM,UAAU,0BAA0B,IAAI;CAE9C,OADgB,2BAA2B,SAAS,KACvC,CAAC,CAAC,QAAQ,GAAG,UAAU,QAAQ,MAAM,CAAE,UAAU,KAAK;AACrE"}
@@ -0,0 +1 @@
1
+ export * from "./infinite-scroll.js";
@@ -0,0 +1,248 @@
1
+ import { createMachine } from "@zag-js/core";
2
+ //#region src/infinite-scroll/infinite-scroll.ts
3
+ /** Stable DOM parts shared by every adapter. */
4
+ const INFINITE_SCROLL_PARTS = [
5
+ "root",
6
+ "status",
7
+ "retry"
8
+ ];
9
+ /** Rendered status: idle waits for the sentinel, finished means hasMore=false. */
10
+ const INFINITE_SCROLL_STATUSES = [
11
+ "idle",
12
+ "loading",
13
+ "error",
14
+ "finished",
15
+ "disabled"
16
+ ];
17
+ const INFINITE_SCROLL_DEFAULT_THRESHOLD = 250;
18
+ const text = (value, fallback) => typeof value === "string" && value.trim() ? value : fallback;
19
+ function resolveInfiniteScrollState(props = {}) {
20
+ const threshold = props.threshold;
21
+ return {
22
+ hasMore: props.hasMore !== false,
23
+ threshold: typeof threshold === "number" && Number.isFinite(threshold) && threshold >= 0 ? threshold : 250,
24
+ target: typeof props.target === "string" && props.target.trim() ? props.target : void 0,
25
+ disabled: !!props.disabled,
26
+ loadingText: text(props.loadingText, "加载中…"),
27
+ finishedText: text(props.finishedText, "没有更多了"),
28
+ errorText: text(props.errorText, "加载失败"),
29
+ retryText: text(props.retryText, "重新加载")
30
+ };
31
+ }
32
+ /** One status vocabulary for every adapter. Finished wins over idle; disabled only shows while idle. */
33
+ function resolveInfiniteScrollStatus(state, machineState) {
34
+ if (machineState === "loading") return "loading";
35
+ if (machineState === "failed") return "error";
36
+ if (!state.hasMore) return "finished";
37
+ return state.disabled ? "disabled" : "idle";
38
+ }
39
+ function createInfiniteScrollProps(props = {}) {
40
+ if (props.id !== void 0 && (typeof props.id !== "string" || !props.id.trim())) throw new TypeError("InfiniteScroll requires a nonempty instance id when provided");
41
+ if (props.loadMore !== void 0 && typeof props.loadMore !== "function") throw new TypeError("InfiniteScroll loadMore must be a function returning a Promise");
42
+ return { ...props };
43
+ }
44
+ const rootId = (scope) => `infinite-scroll:${scope.id}`;
45
+ const live = (service) => resolveInfiniteScrollState({
46
+ hasMore: service.prop("hasMore"),
47
+ threshold: service.prop("threshold"),
48
+ target: service.prop("target"),
49
+ disabled: service.prop("disabled"),
50
+ loadingText: service.prop("loadingText"),
51
+ finishedText: service.prop("finishedText"),
52
+ errorText: service.prop("errorText"),
53
+ retryText: service.prop("retryText")
54
+ });
55
+ /** Core owns observation, de-duplication, the generation ticket for late results, retry and cleanup. */
56
+ const infiniteScrollMachine = createMachine({
57
+ props: ({ props }) => createInfiniteScrollProps(props),
58
+ initialState: () => "idle",
59
+ context: ({ bindable }) => ({ generation: bindable(() => ({ defaultValue: 0 })) }),
60
+ refs: () => ({ reobserve: null }),
61
+ watch({ track, prop, send }) {
62
+ track([
63
+ () => prop("hasMore"),
64
+ () => prop("disabled"),
65
+ () => prop("target"),
66
+ () => prop("threshold")
67
+ ], () => send({ type: "SETTINGS.CHANGE" }));
68
+ },
69
+ effects: ["observe"],
70
+ states: {
71
+ idle: { on: {
72
+ INTERSECT: {
73
+ guard: "shouldAutoLoad",
74
+ target: "loading"
75
+ },
76
+ LOAD: {
77
+ guard: "canLoad",
78
+ target: "loading"
79
+ },
80
+ RESET: { actions: ["bumpGeneration", "reobserve"] },
81
+ "SETTINGS.CHANGE": { actions: ["reobserve"] }
82
+ } },
83
+ loading: {
84
+ effects: ["runLoad"],
85
+ on: {
86
+ "LOAD.DONE": {
87
+ guard: "isCurrent",
88
+ target: "idle",
89
+ actions: ["reobserve"]
90
+ },
91
+ "LOAD.FAIL": {
92
+ guard: "isCurrent",
93
+ target: "failed",
94
+ actions: ["notifyError"]
95
+ },
96
+ RESET: {
97
+ target: "idle",
98
+ actions: ["bumpGeneration", "reobserve"]
99
+ }
100
+ }
101
+ },
102
+ failed: { on: {
103
+ RETRY: {
104
+ guard: "canLoad",
105
+ target: "loading"
106
+ },
107
+ LOAD: {
108
+ guard: "canLoad",
109
+ target: "loading"
110
+ },
111
+ RESET: {
112
+ target: "idle",
113
+ actions: ["bumpGeneration", "reobserve"]
114
+ },
115
+ "SETTINGS.CHANGE": { actions: ["reobserve"] }
116
+ } }
117
+ },
118
+ implementations: {
119
+ guards: {
120
+ canLoad: ({ prop }) => {
121
+ const state = live({ prop });
122
+ return state.hasMore && !state.disabled && typeof prop("loadMore") === "function";
123
+ },
124
+ shouldAutoLoad: ({ prop, event }) => {
125
+ const state = live({ prop });
126
+ return event.type === "INTERSECT" && event.value && state.hasMore && !state.disabled && typeof prop("loadMore") === "function";
127
+ },
128
+ isCurrent: ({ context, event }) => (event.type === "LOAD.DONE" || event.type === "LOAD.FAIL") && event.generation === context.get("generation")
129
+ },
130
+ actions: {
131
+ reobserve({ refs }) {
132
+ refs.get("reobserve")?.();
133
+ },
134
+ bumpGeneration({ context }) {
135
+ context.set("generation", context.get("generation") + 1);
136
+ },
137
+ notifyError({ event, prop }) {
138
+ if (event.type === "LOAD.FAIL") prop("onError")?.({ error: event.error });
139
+ }
140
+ },
141
+ effects: {
142
+ runLoad({ prop, context, send }) {
143
+ const generation = context.get("generation");
144
+ let cancelled = false;
145
+ const done = () => {
146
+ if (!cancelled) send({
147
+ type: "LOAD.DONE",
148
+ generation
149
+ });
150
+ };
151
+ const fail = (error) => {
152
+ if (!cancelled) send({
153
+ type: "LOAD.FAIL",
154
+ generation,
155
+ error
156
+ });
157
+ };
158
+ let result;
159
+ try {
160
+ result = prop("loadMore")?.();
161
+ } catch (error) {
162
+ result = Promise.reject(error);
163
+ }
164
+ Promise.resolve(result).then(done, fail);
165
+ return () => {
166
+ cancelled = true;
167
+ };
168
+ },
169
+ observe({ scope, prop, send, refs }) {
170
+ const root = scope.getById(rootId(scope)), win = root?.ownerDocument.defaultView;
171
+ const Observer = win?.IntersectionObserver;
172
+ if (!root || !win || !Observer) return;
173
+ let observer = null, frame = 0, disposed = false;
174
+ const connect = () => {
175
+ frame = 0;
176
+ observer?.disconnect();
177
+ observer = null;
178
+ const state = live({ prop });
179
+ if (disposed || !state.hasMore || state.disabled) return;
180
+ const owner = root.getRootNode();
181
+ const container = state.target ? owner.getElementById?.(state.target) ?? root.ownerDocument.getElementById(state.target) : null;
182
+ observer = new Observer((entries) => {
183
+ const entry = entries[entries.length - 1];
184
+ if (entry && !disposed) send({
185
+ type: "INTERSECT",
186
+ value: entry.isIntersecting
187
+ });
188
+ }, {
189
+ root: container,
190
+ rootMargin: `0px 0px ${state.threshold}px 0px`
191
+ });
192
+ observer.observe(root);
193
+ };
194
+ const schedule = () => {
195
+ if (!disposed && !frame) frame = win.requestAnimationFrame(connect);
196
+ };
197
+ refs.set("reobserve", schedule);
198
+ connect();
199
+ return () => {
200
+ disposed = true;
201
+ refs.set("reobserve", null);
202
+ if (frame) win.cancelAnimationFrame(frame);
203
+ observer?.disconnect();
204
+ };
205
+ }
206
+ }
207
+ }
208
+ });
209
+ function connectInfiniteScroll(service, normalize) {
210
+ const state = live(service), status = resolveInfiniteScrollStatus(state, service.state.get());
211
+ const statusText = status === "loading" ? state.loadingText : status === "error" ? state.errorText : status === "finished" ? state.finishedText : "";
212
+ const part = (name) => ({
213
+ "data-scope": "infinite-scroll",
214
+ "data-part": name
215
+ });
216
+ const retry = () => service.send({ type: "RETRY" }), reset = () => service.send({ type: "RESET" });
217
+ return {
218
+ status,
219
+ statusText,
220
+ retryText: state.retryText,
221
+ retry,
222
+ reset,
223
+ getRootProps: () => normalize.element({
224
+ ...part("root"),
225
+ id: rootId(service.scope),
226
+ "data-status": status,
227
+ "aria-busy": status === "loading" || void 0
228
+ }),
229
+ getStatusProps: () => normalize.element({
230
+ ...part("status"),
231
+ role: "status",
232
+ "aria-live": "polite",
233
+ "data-status": status
234
+ }),
235
+ getRetryProps: () => normalize.button({
236
+ ...part("retry"),
237
+ type: "button",
238
+ hidden: status !== "error" || void 0,
239
+ onClick(event) {
240
+ if (!event.defaultPrevented) retry();
241
+ }
242
+ })
243
+ };
244
+ }
245
+ //#endregion
246
+ export { INFINITE_SCROLL_DEFAULT_THRESHOLD, INFINITE_SCROLL_PARTS, INFINITE_SCROLL_STATUSES, connectInfiniteScroll, createInfiniteScrollProps, infiniteScrollMachine, resolveInfiniteScrollState, resolveInfiniteScrollStatus };
247
+
248
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/infinite-scroll/infinite-scroll.ts"],"sourcesContent":["import { createMachine, type Machine, type Service } from \"@zag-js/core\";\nimport type { NormalizeProps, PropTypes } from \"@zag-js/types\";\n\n/** Stable DOM parts shared by every adapter. */\nexport const INFINITE_SCROLL_PARTS = [\"root\", \"status\", \"retry\"] as const;\n/** Rendered status: idle waits for the sentinel, finished means hasMore=false. */\nexport const INFINITE_SCROLL_STATUSES = [\"idle\", \"loading\", \"error\", \"finished\", \"disabled\"] as const;\nexport type InfiniteScrollStatus = (typeof INFINITE_SCROLL_STATUSES)[number];\nexport const INFINITE_SCROLL_DEFAULT_THRESHOLD = 250;\n/** Any request library: resolve when the next page is appended, reject on failure. */\nexport type InfiniteScrollLoader = () => Promise<void> | void;\nexport interface InfiniteScrollErrorDetails { error: unknown }\n\nexport interface QwInfiniteScrollProps {\n /** Page-unique instance identity; adapters generate one when omitted. */\n id?: string;\n /** Called at most once at a time. Results arriving after unmount, reset or disable are ignored. */\n loadMore?: InfiniteScrollLoader;\n /** False shows the finished state and stops observing; defaults to true. */\n hasMore?: boolean;\n /** Distance in CSS pixels before the sentinel reaches the scrollport end; defaults to 250. */\n threshold?: number;\n /** Element id of the scrolling container; omitted or missing means the viewport. */\n target?: string;\n /** Pause automatic loading; a request already in flight still completes normally. */\n disabled?: boolean;\n loadingText?: string;\n finishedText?: string;\n errorText?: string;\n retryText?: string;\n onError?: (details: InfiniteScrollErrorDetails) => void;\n}\nexport interface ResolvedInfiniteScrollState {\n hasMore: boolean; threshold: number; target: string | undefined; disabled: boolean;\n loadingText: string; finishedText: string; errorText: string; retryText: string;\n}\nconst text = (value: string | undefined, fallback: string): string => typeof value === \"string\" && value.trim() ? value : fallback;\n\nexport function resolveInfiniteScrollState(props: QwInfiniteScrollProps = {}): ResolvedInfiniteScrollState {\n const threshold = props.threshold;\n return {\n hasMore: props.hasMore !== false,\n threshold: typeof threshold === \"number\" && Number.isFinite(threshold) && threshold >= 0 ? threshold : INFINITE_SCROLL_DEFAULT_THRESHOLD,\n target: typeof props.target === \"string\" && props.target.trim() ? props.target : undefined, disabled: !!props.disabled,\n loadingText: text(props.loadingText, \"加载中…\"), finishedText: text(props.finishedText, \"没有更多了\"),\n errorText: text(props.errorText, \"加载失败\"), retryText: text(props.retryText, \"重新加载\"),\n };\n}\n/** One status vocabulary for every adapter. Finished wins over idle; disabled only shows while idle. */\nexport function resolveInfiniteScrollStatus(state: ResolvedInfiniteScrollState, machineState: \"idle\" | \"loading\" | \"failed\"): InfiniteScrollStatus {\n if (machineState === \"loading\") return \"loading\";\n if (machineState === \"failed\") return \"error\";\n if (!state.hasMore) return \"finished\";\n return state.disabled ? \"disabled\" : \"idle\";\n}\nexport function createInfiniteScrollProps(props: QwInfiniteScrollProps = {}): QwInfiniteScrollProps {\n if (props.id !== undefined && (typeof props.id !== \"string\" || !props.id.trim())) throw new TypeError(\"InfiniteScroll requires a nonempty instance id when provided\");\n if (props.loadMore !== undefined && typeof props.loadMore !== \"function\") throw new TypeError(\"InfiniteScroll loadMore must be a function returning a Promise\");\n return { ...props };\n}\n\nexport interface QwInfiniteScrollSchema {\n props: QwInfiniteScrollProps;\n context: { generation: number };\n refs: { reobserve: (() => void) | null };\n state: \"idle\" | \"loading\" | \"failed\";\n action: \"reobserve\" | \"notifyError\" | \"bumpGeneration\";\n guard: \"canLoad\" | \"shouldAutoLoad\" | \"isCurrent\";\n effect: \"observe\" | \"runLoad\";\n event:\n | { type: \"INTERSECT\"; value: boolean }\n | { type: \"LOAD\" }\n | { type: \"RETRY\" }\n | { type: \"RESET\" }\n | { type: \"SETTINGS.CHANGE\" }\n | { type: \"LOAD.DONE\"; generation: number }\n | { type: \"LOAD.FAIL\"; generation: number; error: unknown };\n}\nexport type QwInfiniteScrollMachine = Machine<QwInfiniteScrollSchema>;\nexport type QwInfiniteScrollService = Service<QwInfiniteScrollSchema>;\nconst rootId = (scope: QwInfiniteScrollService[\"scope\"]) => `infinite-scroll:${scope.id}`;\nconst live = (service: Pick<QwInfiniteScrollService, \"prop\">) => resolveInfiniteScrollState({\n hasMore: service.prop(\"hasMore\"), threshold: service.prop(\"threshold\"), target: service.prop(\"target\"), disabled: service.prop(\"disabled\"),\n loadingText: service.prop(\"loadingText\"), finishedText: service.prop(\"finishedText\"), errorText: service.prop(\"errorText\"), retryText: service.prop(\"retryText\"),\n});\n\n/** Core owns observation, de-duplication, the generation ticket for late results, retry and cleanup. */\nexport const infiniteScrollMachine: QwInfiniteScrollMachine = createMachine<QwInfiniteScrollSchema>({\n props: ({ props }) => createInfiniteScrollProps(props), initialState: () => \"idle\",\n context: ({ bindable }) => ({ generation: bindable(() => ({ defaultValue: 0 })) }),\n refs: () => ({ reobserve: null }),\n watch({ track, prop, send }) {\n track([() => prop(\"hasMore\"), () => prop(\"disabled\"), () => prop(\"target\"), () => prop(\"threshold\")], () => send({ type: \"SETTINGS.CHANGE\" }));\n },\n effects: [\"observe\"],\n states: {\n idle: {\n on: {\n INTERSECT: { guard: \"shouldAutoLoad\", target: \"loading\" },\n LOAD: { guard: \"canLoad\", target: \"loading\" },\n RESET: { actions: [\"bumpGeneration\", \"reobserve\"] },\n \"SETTINGS.CHANGE\": { actions: [\"reobserve\"] },\n },\n },\n loading: {\n effects: [\"runLoad\"],\n on: {\n \"LOAD.DONE\": { guard: \"isCurrent\", target: \"idle\", actions: [\"reobserve\"] },\n \"LOAD.FAIL\": { guard: \"isCurrent\", target: \"failed\", actions: [\"notifyError\"] },\n // Only reset (or unmount) abandons the in-flight result; intersections and settings changes wait for it.\n RESET: { target: \"idle\", actions: [\"bumpGeneration\", \"reobserve\"] },\n },\n },\n failed: {\n on: {\n RETRY: { guard: \"canLoad\", target: \"loading\" },\n LOAD: { guard: \"canLoad\", target: \"loading\" },\n RESET: { target: \"idle\", actions: [\"bumpGeneration\", \"reobserve\"] },\n \"SETTINGS.CHANGE\": { actions: [\"reobserve\"] },\n },\n },\n },\n implementations: {\n guards: {\n canLoad: ({ prop }) => { const state = live({ prop }); return state.hasMore && !state.disabled && typeof prop(\"loadMore\") === \"function\"; },\n shouldAutoLoad: ({ prop, event }) => { const state = live({ prop }); return event.type === \"INTERSECT\" && event.value && state.hasMore && !state.disabled && typeof prop(\"loadMore\") === \"function\"; },\n isCurrent: ({ context, event }) => (event.type === \"LOAD.DONE\" || event.type === \"LOAD.FAIL\") && event.generation === context.get(\"generation\"),\n },\n actions: {\n // A fresh observation yields an initial record, so a sentinel still in range loads the next page.\n reobserve({ refs }) { refs.get(\"reobserve\")?.(); },\n bumpGeneration({ context }) { context.set(\"generation\", context.get(\"generation\") + 1); },\n notifyError({ event, prop }) { if (event.type === \"LOAD.FAIL\") prop(\"onError\")?.({ error: event.error }); },\n },\n effects: {\n runLoad({ prop, context, send }) {\n const generation = context.get(\"generation\");\n let cancelled = false;\n const done = () => { if (!cancelled) send({ type: \"LOAD.DONE\", generation }); };\n const fail = (error: unknown) => { if (!cancelled) send({ type: \"LOAD.FAIL\", generation, error }); };\n let result: unknown;\n try { result = prop(\"loadMore\")?.(); } catch (error) { result = Promise.reject(error); }\n Promise.resolve(result).then(done, fail);\n return () => { cancelled = true; };\n },\n observe({ scope, prop, send, refs }) {\n const root = scope.getById<HTMLElement>(rootId(scope)), win = root?.ownerDocument.defaultView;\n const Observer = win?.IntersectionObserver;\n if (!root || !win || !Observer) return;\n let observer: IntersectionObserver | null = null, frame = 0, disposed = false;\n const connect = () => {\n frame = 0; observer?.disconnect(); observer = null;\n const state = live({ prop });\n if (disposed || !state.hasMore || state.disabled) return;\n const owner = root.getRootNode() as Document | ShadowRoot;\n const container = state.target ? owner.getElementById?.(state.target) ?? root.ownerDocument.getElementById(state.target) : null;\n observer = new Observer((entries) => {\n const entry = entries[entries.length - 1];\n if (entry && !disposed) send({ type: \"INTERSECT\", value: entry.isIntersecting });\n }, { root: container, rootMargin: `0px 0px ${state.threshold}px 0px` });\n observer.observe(root);\n };\n // Coalesce: wait one frame so appended content is laid out before the next measurement.\n const schedule = () => { if (!disposed && !frame) frame = win.requestAnimationFrame(connect); };\n refs.set(\"reobserve\", schedule); connect();\n return () => { disposed = true; refs.set(\"reobserve\", null); if (frame) win.cancelAnimationFrame(frame); observer?.disconnect(); };\n },\n },\n },\n});\n\nexport interface QwInfiniteScrollApi<T extends PropTypes = PropTypes> {\n status: InfiniteScrollStatus; statusText: string; retryText: string;\n /** Retry after a failure (also usable as a manual \"load more\"). */\n retry(): void;\n /** Ignore any in-flight result and observe again (for example after the list was replaced). */\n reset(): void;\n getRootProps(): T[\"element\"];\n getStatusProps(): T[\"element\"];\n getRetryProps(): T[\"button\"];\n}\nexport function connectInfiniteScroll<T extends PropTypes>(service: QwInfiniteScrollService, normalize: NormalizeProps<T>): QwInfiniteScrollApi<T> {\n const state = live(service), status = resolveInfiniteScrollStatus(state, service.state.get());\n const statusText = status === \"loading\" ? state.loadingText : status === \"error\" ? state.errorText : status === \"finished\" ? state.finishedText : \"\";\n const part = (name: string) => ({ \"data-scope\": \"infinite-scroll\", \"data-part\": name });\n const retry = () => service.send({ type: \"RETRY\" }), reset = () => service.send({ type: \"RESET\" });\n return {\n status, statusText, retryText: state.retryText, retry, reset,\n getRootProps: () => normalize.element({ ...part(\"root\"), id: rootId(service.scope), \"data-status\": status, \"aria-busy\": status === \"loading\" || undefined }),\n getStatusProps: () => normalize.element({ ...part(\"status\"), role: \"status\", \"aria-live\": \"polite\", \"data-status\": status }),\n getRetryProps: () => normalize.button({ ...part(\"retry\"), type: \"button\", hidden: status !== \"error\" || undefined,\n onClick(event: { defaultPrevented: boolean }) { if (!event.defaultPrevented) retry(); } }),\n };\n}\n"],"mappings":";;;AAIA,MAAa,wBAAwB;CAAC;CAAQ;CAAU;AAAO;;AAE/D,MAAa,2BAA2B;CAAC;CAAQ;CAAW;CAAS;CAAY;AAAU;AAE3F,MAAa,oCAAoC;AA4BjD,MAAM,QAAQ,OAA2B,aAA6B,OAAO,UAAU,YAAY,MAAM,KAAK,IAAI,QAAQ;AAE1H,SAAgB,2BAA2B,QAA+B,CAAC,GAAgC;CACzG,MAAM,YAAY,MAAM;CACxB,OAAO;EACL,SAAS,MAAM,YAAY;EAC3B,WAAW,OAAO,cAAc,YAAY,OAAO,SAAS,SAAS,KAAK,aAAa,IAAI,YAAA;EAC3F,QAAQ,OAAO,MAAM,WAAW,YAAY,MAAM,OAAO,KAAK,IAAI,MAAM,SAAS,KAAA;EAAW,UAAU,CAAC,CAAC,MAAM;EAC9G,aAAa,KAAK,MAAM,aAAa,MAAM;EAAG,cAAc,KAAK,MAAM,cAAc,OAAO;EAC5F,WAAW,KAAK,MAAM,WAAW,MAAM;EAAG,WAAW,KAAK,MAAM,WAAW,MAAM;CACnF;AACF;;AAEA,SAAgB,4BAA4B,OAAoC,cAAmE;CACjJ,IAAI,iBAAiB,WAAW,OAAO;CACvC,IAAI,iBAAiB,UAAU,OAAO;CACtC,IAAI,CAAC,MAAM,SAAS,OAAO;CAC3B,OAAO,MAAM,WAAW,aAAa;AACvC;AACA,SAAgB,0BAA0B,QAA+B,CAAC,GAA0B;CAClG,IAAI,MAAM,OAAO,KAAA,MAAc,OAAO,MAAM,OAAO,YAAY,CAAC,MAAM,GAAG,KAAK,IAAI,MAAM,IAAI,UAAU,8DAA8D;CACpK,IAAI,MAAM,aAAa,KAAA,KAAa,OAAO,MAAM,aAAa,YAAY,MAAM,IAAI,UAAU,gEAAgE;CAC9J,OAAO,EAAE,GAAG,MAAM;AACpB;AAqBA,MAAM,UAAU,UAA4C,mBAAmB,MAAM;AACrF,MAAM,QAAQ,YAAmD,2BAA2B;CAC1F,SAAS,QAAQ,KAAK,SAAS;CAAG,WAAW,QAAQ,KAAK,WAAW;CAAG,QAAQ,QAAQ,KAAK,QAAQ;CAAG,UAAU,QAAQ,KAAK,UAAU;CACzI,aAAa,QAAQ,KAAK,aAAa;CAAG,cAAc,QAAQ,KAAK,cAAc;CAAG,WAAW,QAAQ,KAAK,WAAW;CAAG,WAAW,QAAQ,KAAK,WAAW;AACjK,CAAC;;AAGD,MAAa,wBAAiD,cAAsC;CAClG,QAAQ,EAAE,YAAY,0BAA0B,KAAK;CAAG,oBAAoB;CAC5E,UAAU,EAAE,gBAAgB,EAAE,YAAY,gBAAgB,EAAE,cAAc,EAAE,EAAE,EAAE;CAChF,aAAa,EAAE,WAAW,KAAK;CAC/B,MAAM,EAAE,OAAO,MAAM,QAAQ;EAC3B,MAAM;SAAO,KAAK,SAAS;SAAS,KAAK,UAAU;SAAS,KAAK,QAAQ;SAAS,KAAK,WAAW;EAAC,SAAS,KAAK,EAAE,MAAM,kBAAkB,CAAC,CAAC;CAC/I;CACA,SAAS,CAAC,SAAS;CACnB,QAAQ;EACN,MAAM,EACJ,IAAI;GACF,WAAW;IAAE,OAAO;IAAkB,QAAQ;GAAU;GACxD,MAAM;IAAE,OAAO;IAAW,QAAQ;GAAU;GAC5C,OAAO,EAAE,SAAS,CAAC,kBAAkB,WAAW,EAAE;GAClD,mBAAmB,EAAE,SAAS,CAAC,WAAW,EAAE;EAC9C,EACF;EACA,SAAS;GACP,SAAS,CAAC,SAAS;GACnB,IAAI;IACF,aAAa;KAAE,OAAO;KAAa,QAAQ;KAAQ,SAAS,CAAC,WAAW;IAAE;IAC1E,aAAa;KAAE,OAAO;KAAa,QAAQ;KAAU,SAAS,CAAC,aAAa;IAAE;IAE9E,OAAO;KAAE,QAAQ;KAAQ,SAAS,CAAC,kBAAkB,WAAW;IAAE;GACpE;EACF;EACA,QAAQ,EACN,IAAI;GACF,OAAO;IAAE,OAAO;IAAW,QAAQ;GAAU;GAC7C,MAAM;IAAE,OAAO;IAAW,QAAQ;GAAU;GAC5C,OAAO;IAAE,QAAQ;IAAQ,SAAS,CAAC,kBAAkB,WAAW;GAAE;GAClE,mBAAmB,EAAE,SAAS,CAAC,WAAW,EAAE;EAC9C,EACF;CACF;CACA,iBAAiB;EACf,QAAQ;GACN,UAAU,EAAE,WAAW;IAAE,MAAM,QAAQ,KAAK,EAAE,KAAK,CAAC;IAAG,OAAO,MAAM,WAAW,CAAC,MAAM,YAAY,OAAO,KAAK,UAAU,MAAM;GAAY;GAC1I,iBAAiB,EAAE,MAAM,YAAY;IAAE,MAAM,QAAQ,KAAK,EAAE,KAAK,CAAC;IAAG,OAAO,MAAM,SAAS,eAAe,MAAM,SAAS,MAAM,WAAW,CAAC,MAAM,YAAY,OAAO,KAAK,UAAU,MAAM;GAAY;GACrM,YAAY,EAAE,SAAS,aAAa,MAAM,SAAS,eAAe,MAAM,SAAS,gBAAgB,MAAM,eAAe,QAAQ,IAAI,YAAY;EAChJ;EACA,SAAS;GAEP,UAAU,EAAE,QAAQ;IAAE,KAAK,IAAI,WAAW,CAAC,GAAG;GAAG;GACjD,eAAe,EAAE,WAAW;IAAE,QAAQ,IAAI,cAAc,QAAQ,IAAI,YAAY,IAAI,CAAC;GAAG;GACxF,YAAY,EAAE,OAAO,QAAQ;IAAE,IAAI,MAAM,SAAS,aAAa,KAAK,SAAS,CAAC,GAAG,EAAE,OAAO,MAAM,MAAM,CAAC;GAAG;EAC5G;EACA,SAAS;GACP,QAAQ,EAAE,MAAM,SAAS,QAAQ;IAC/B,MAAM,aAAa,QAAQ,IAAI,YAAY;IAC3C,IAAI,YAAY;IAChB,MAAM,aAAa;KAAE,IAAI,CAAC,WAAW,KAAK;MAAE,MAAM;MAAa;KAAW,CAAC;IAAG;IAC9E,MAAM,QAAQ,UAAmB;KAAE,IAAI,CAAC,WAAW,KAAK;MAAE,MAAM;MAAa;MAAY;KAAM,CAAC;IAAG;IACnG,IAAI;IACJ,IAAI;KAAE,SAAS,KAAK,UAAU,CAAC,GAAG;IAAG,SAAS,OAAO;KAAE,SAAS,QAAQ,OAAO,KAAK;IAAG;IACvF,QAAQ,QAAQ,MAAM,CAAC,CAAC,KAAK,MAAM,IAAI;IACvC,aAAa;KAAE,YAAY;IAAM;GACnC;GACA,QAAQ,EAAE,OAAO,MAAM,MAAM,QAAQ;IACnC,MAAM,OAAO,MAAM,QAAqB,OAAO,KAAK,CAAC,GAAG,MAAM,MAAM,cAAc;IAClF,MAAM,WAAW,KAAK;IACtB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU;IAChC,IAAI,WAAwC,MAAM,QAAQ,GAAG,WAAW;IACxE,MAAM,gBAAgB;KACpB,QAAQ;KAAG,UAAU,WAAW;KAAG,WAAW;KAC9C,MAAM,QAAQ,KAAK,EAAE,KAAK,CAAC;KAC3B,IAAI,YAAY,CAAC,MAAM,WAAW,MAAM,UAAU;KAClD,MAAM,QAAQ,KAAK,YAAY;KAC/B,MAAM,YAAY,MAAM,SAAS,MAAM,iBAAiB,MAAM,MAAM,KAAK,KAAK,cAAc,eAAe,MAAM,MAAM,IAAI;KAC3H,WAAW,IAAI,UAAU,YAAY;MACnC,MAAM,QAAQ,QAAQ,QAAQ,SAAS;MACvC,IAAI,SAAS,CAAC,UAAU,KAAK;OAAE,MAAM;OAAa,OAAO,MAAM;MAAe,CAAC;KACjF,GAAG;MAAE,MAAM;MAAW,YAAY,WAAW,MAAM,UAAU;KAAQ,CAAC;KACtE,SAAS,QAAQ,IAAI;IACvB;IAEA,MAAM,iBAAiB;KAAE,IAAI,CAAC,YAAY,CAAC,OAAO,QAAQ,IAAI,sBAAsB,OAAO;IAAG;IAC9F,KAAK,IAAI,aAAa,QAAQ;IAAG,QAAQ;IACzC,aAAa;KAAE,WAAW;KAAM,KAAK,IAAI,aAAa,IAAI;KAAG,IAAI,OAAO,IAAI,qBAAqB,KAAK;KAAG,UAAU,WAAW;IAAG;GACnI;EACF;CACF;AACF,CAAC;AAYD,SAAgB,sBAA2C,SAAkC,WAAsD;CACjJ,MAAM,QAAQ,KAAK,OAAO,GAAG,SAAS,4BAA4B,OAAO,QAAQ,MAAM,IAAI,CAAC;CAC5F,MAAM,aAAa,WAAW,YAAY,MAAM,cAAc,WAAW,UAAU,MAAM,YAAY,WAAW,aAAa,MAAM,eAAe;CAClJ,MAAM,QAAQ,UAAkB;EAAE,cAAc;EAAmB,aAAa;CAAK;CACrF,MAAM,cAAc,QAAQ,KAAK,EAAE,MAAM,QAAQ,CAAC,GAAG,cAAc,QAAQ,KAAK,EAAE,MAAM,QAAQ,CAAC;CACjG,OAAO;EACL;EAAQ;EAAY,WAAW,MAAM;EAAW;EAAO;EACvD,oBAAoB,UAAU,QAAQ;GAAE,GAAG,KAAK,MAAM;GAAG,IAAI,OAAO,QAAQ,KAAK;GAAG,eAAe;GAAQ,aAAa,WAAW,aAAa,KAAA;EAAU,CAAC;EAC3J,sBAAsB,UAAU,QAAQ;GAAE,GAAG,KAAK,QAAQ;GAAG,MAAM;GAAU,aAAa;GAAU,eAAe;EAAO,CAAC;EAC3H,qBAAqB,UAAU,OAAO;GAAE,GAAG,KAAK,OAAO;GAAG,MAAM;GAAU,QAAQ,WAAW,WAAW,KAAA;GACtG,QAAQ,OAAsC;IAAE,IAAI,CAAC,MAAM,kBAAkB,MAAM;GAAG;EAAE,CAAC;CAC7F;AACF"}
@@ -0,0 +1,95 @@
1
+ import { type Machine, type Service } from "@zag-js/core";
2
+ import type { NormalizeProps, PropTypes } from "@zag-js/types";
3
+ /** Stable DOM parts shared by every adapter. */
4
+ export declare const INFINITE_SCROLL_PARTS: readonly ["root", "status", "retry"];
5
+ /** Rendered status: idle waits for the sentinel, finished means hasMore=false. */
6
+ export declare const INFINITE_SCROLL_STATUSES: readonly ["idle", "loading", "error", "finished", "disabled"];
7
+ export type InfiniteScrollStatus = (typeof INFINITE_SCROLL_STATUSES)[number];
8
+ export declare const INFINITE_SCROLL_DEFAULT_THRESHOLD = 250;
9
+ /** Any request library: resolve when the next page is appended, reject on failure. */
10
+ export type InfiniteScrollLoader = () => Promise<void> | void;
11
+ export interface InfiniteScrollErrorDetails {
12
+ error: unknown;
13
+ }
14
+ export interface QwInfiniteScrollProps {
15
+ /** Page-unique instance identity; adapters generate one when omitted. */
16
+ id?: string;
17
+ /** Called at most once at a time. Results arriving after unmount, reset or disable are ignored. */
18
+ loadMore?: InfiniteScrollLoader;
19
+ /** False shows the finished state and stops observing; defaults to true. */
20
+ hasMore?: boolean;
21
+ /** Distance in CSS pixels before the sentinel reaches the scrollport end; defaults to 250. */
22
+ threshold?: number;
23
+ /** Element id of the scrolling container; omitted or missing means the viewport. */
24
+ target?: string;
25
+ /** Pause automatic loading; a request already in flight still completes normally. */
26
+ disabled?: boolean;
27
+ loadingText?: string;
28
+ finishedText?: string;
29
+ errorText?: string;
30
+ retryText?: string;
31
+ onError?: (details: InfiniteScrollErrorDetails) => void;
32
+ }
33
+ export interface ResolvedInfiniteScrollState {
34
+ hasMore: boolean;
35
+ threshold: number;
36
+ target: string | undefined;
37
+ disabled: boolean;
38
+ loadingText: string;
39
+ finishedText: string;
40
+ errorText: string;
41
+ retryText: string;
42
+ }
43
+ export declare function resolveInfiniteScrollState(props?: QwInfiniteScrollProps): ResolvedInfiniteScrollState;
44
+ /** One status vocabulary for every adapter. Finished wins over idle; disabled only shows while idle. */
45
+ export declare function resolveInfiniteScrollStatus(state: ResolvedInfiniteScrollState, machineState: "idle" | "loading" | "failed"): InfiniteScrollStatus;
46
+ export declare function createInfiniteScrollProps(props?: QwInfiniteScrollProps): QwInfiniteScrollProps;
47
+ export interface QwInfiniteScrollSchema {
48
+ props: QwInfiniteScrollProps;
49
+ context: {
50
+ generation: number;
51
+ };
52
+ refs: {
53
+ reobserve: (() => void) | null;
54
+ };
55
+ state: "idle" | "loading" | "failed";
56
+ action: "reobserve" | "notifyError" | "bumpGeneration";
57
+ guard: "canLoad" | "shouldAutoLoad" | "isCurrent";
58
+ effect: "observe" | "runLoad";
59
+ event: {
60
+ type: "INTERSECT";
61
+ value: boolean;
62
+ } | {
63
+ type: "LOAD";
64
+ } | {
65
+ type: "RETRY";
66
+ } | {
67
+ type: "RESET";
68
+ } | {
69
+ type: "SETTINGS.CHANGE";
70
+ } | {
71
+ type: "LOAD.DONE";
72
+ generation: number;
73
+ } | {
74
+ type: "LOAD.FAIL";
75
+ generation: number;
76
+ error: unknown;
77
+ };
78
+ }
79
+ export type QwInfiniteScrollMachine = Machine<QwInfiniteScrollSchema>;
80
+ export type QwInfiniteScrollService = Service<QwInfiniteScrollSchema>;
81
+ /** Core owns observation, de-duplication, the generation ticket for late results, retry and cleanup. */
82
+ export declare const infiniteScrollMachine: QwInfiniteScrollMachine;
83
+ export interface QwInfiniteScrollApi<T extends PropTypes = PropTypes> {
84
+ status: InfiniteScrollStatus;
85
+ statusText: string;
86
+ retryText: string;
87
+ /** Retry after a failure (also usable as a manual "load more"). */
88
+ retry(): void;
89
+ /** Ignore any in-flight result and observe again (for example after the list was replaced). */
90
+ reset(): void;
91
+ getRootProps(): T["element"];
92
+ getStatusProps(): T["element"];
93
+ getRetryProps(): T["button"];
94
+ }
95
+ export declare function connectInfiniteScroll<T extends PropTypes>(service: QwInfiniteScrollService, normalize: NormalizeProps<T>): QwInfiniteScrollApi<T>;