@limonify/zest-ui 0.3.1 → 0.4.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 (381) hide show
  1. package/README.md +3 -0
  2. package/lib/alert-dialog/index.parts.d.ts +1 -1
  3. package/lib/alert-dialog/index.parts.d.ts.map +1 -1
  4. package/lib/alert-dialog/index.parts.js.map +1 -1
  5. package/lib/autocomplete/handle.d.ts +15 -0
  6. package/lib/autocomplete/handle.d.ts.map +1 -0
  7. package/lib/autocomplete/handle.js +12 -0
  8. package/lib/autocomplete/handle.js.map +1 -0
  9. package/lib/autocomplete/index.d.ts +1 -0
  10. package/lib/autocomplete/index.d.ts.map +1 -1
  11. package/lib/autocomplete/index.parts.d.ts +1 -0
  12. package/lib/autocomplete/index.parts.d.ts.map +1 -1
  13. package/lib/autocomplete/index.parts.js +3 -1
  14. package/lib/autocomplete/index.parts.js.map +1 -1
  15. package/lib/autocomplete/root/AutocompleteRoot.d.ts +55 -16
  16. package/lib/autocomplete/root/AutocompleteRoot.d.ts.map +1 -1
  17. package/lib/autocomplete/root/AutocompleteRoot.js +2 -18
  18. package/lib/autocomplete/root/AutocompleteRoot.js.map +1 -1
  19. package/lib/avatar/fallback/AvatarFallback.d.ts.map +1 -1
  20. package/lib/avatar/fallback/AvatarFallback.js +3 -1
  21. package/lib/avatar/fallback/AvatarFallback.js.map +1 -1
  22. package/lib/avatar/image/AvatarImage.d.ts.map +1 -1
  23. package/lib/avatar/image/AvatarImage.js +5 -0
  24. package/lib/avatar/image/AvatarImage.js.map +1 -1
  25. package/lib/checkbox/root/CheckboxRoot.d.ts.map +1 -1
  26. package/lib/checkbox/root/CheckboxRoot.js +9 -4
  27. package/lib/checkbox/root/CheckboxRoot.js.map +1 -1
  28. package/lib/combobox/backdrop/ComboboxBackdrop.d.ts.map +1 -1
  29. package/lib/combobox/backdrop/ComboboxBackdrop.js +10 -2
  30. package/lib/combobox/backdrop/ComboboxBackdrop.js.map +1 -1
  31. package/lib/combobox/empty/ComboboxEmpty.d.ts.map +1 -1
  32. package/lib/combobox/empty/ComboboxEmpty.js +4 -1
  33. package/lib/combobox/empty/ComboboxEmpty.js.map +1 -1
  34. package/lib/combobox/index.d.ts +2 -0
  35. package/lib/combobox/index.d.ts.map +1 -1
  36. package/lib/combobox/index.js +3 -1
  37. package/lib/combobox/index.js.map +1 -1
  38. package/lib/combobox/index.parts.d.ts +1 -0
  39. package/lib/combobox/index.parts.d.ts.map +1 -1
  40. package/lib/combobox/index.parts.js +4 -1
  41. package/lib/combobox/index.parts.js.map +1 -1
  42. package/lib/combobox/input/ComboboxInput.d.ts +24 -3
  43. package/lib/combobox/input/ComboboxInput.d.ts.map +1 -1
  44. package/lib/combobox/input/ComboboxInput.js +68 -8
  45. package/lib/combobox/input/ComboboxInput.js.map +1 -1
  46. package/lib/combobox/item/ComboboxItem.d.ts +11 -1
  47. package/lib/combobox/item/ComboboxItem.d.ts.map +1 -1
  48. package/lib/combobox/item/ComboboxItem.js +9 -4
  49. package/lib/combobox/item/ComboboxItem.js.map +1 -1
  50. package/lib/combobox/list/ComboboxList.d.ts +1 -1
  51. package/lib/combobox/list/ComboboxList.d.ts.map +1 -1
  52. package/lib/combobox/list/ComboboxList.js +4 -1
  53. package/lib/combobox/list/ComboboxList.js.map +1 -1
  54. package/lib/combobox/popup/ComboboxPopup.d.ts +26 -0
  55. package/lib/combobox/popup/ComboboxPopup.d.ts.map +1 -1
  56. package/lib/combobox/popup/ComboboxPopup.js +18 -2
  57. package/lib/combobox/popup/ComboboxPopup.js.map +1 -1
  58. package/lib/combobox/portal/ComboboxPortal.d.ts.map +1 -1
  59. package/lib/combobox/portal/ComboboxPortal.js +8 -4
  60. package/lib/combobox/portal/ComboboxPortal.js.map +1 -1
  61. package/lib/combobox/portal/ComboboxPortalContext.d.ts +4 -0
  62. package/lib/combobox/portal/ComboboxPortalContext.d.ts.map +1 -0
  63. package/lib/combobox/portal/ComboboxPortalContext.js +48 -0
  64. package/lib/combobox/portal/ComboboxPortalContext.js.map +1 -0
  65. package/lib/combobox/positioner/ComboboxPositioner.d.ts +11 -1
  66. package/lib/combobox/positioner/ComboboxPositioner.d.ts.map +1 -1
  67. package/lib/combobox/positioner/ComboboxPositioner.js +67 -7
  68. package/lib/combobox/positioner/ComboboxPositioner.js.map +1 -1
  69. package/lib/combobox/positioner/ComboboxPositionerContext.d.ts +9 -0
  70. package/lib/combobox/positioner/ComboboxPositionerContext.d.ts.map +1 -0
  71. package/lib/combobox/positioner/ComboboxPositionerContext.js +48 -0
  72. package/lib/combobox/positioner/ComboboxPositionerContext.js.map +1 -0
  73. package/lib/combobox/root/ComboboxItemsContext.d.ts +18 -0
  74. package/lib/combobox/root/ComboboxItemsContext.d.ts.map +1 -0
  75. package/lib/combobox/root/ComboboxItemsContext.js +55 -0
  76. package/lib/combobox/root/ComboboxItemsContext.js.map +1 -0
  77. package/lib/combobox/root/ComboboxRoot.d.ts +77 -21
  78. package/lib/combobox/root/ComboboxRoot.d.ts.map +1 -1
  79. package/lib/combobox/root/ComboboxRoot.js +4 -23
  80. package/lib/combobox/root/ComboboxRoot.js.map +1 -1
  81. package/lib/combobox/root/ComboboxRootContext.d.ts +4 -43
  82. package/lib/combobox/root/ComboboxRootContext.d.ts.map +1 -1
  83. package/lib/combobox/root/ComboboxRootContext.js.map +1 -1
  84. package/lib/combobox/root/ComboboxTransitionContext.d.ts +8 -0
  85. package/lib/combobox/root/ComboboxTransitionContext.d.ts.map +1 -0
  86. package/lib/combobox/root/ComboboxTransitionContext.js +44 -0
  87. package/lib/combobox/root/ComboboxTransitionContext.js.map +1 -0
  88. package/lib/combobox/root/useRenderComboboxRoot.d.ts +39 -0
  89. package/lib/combobox/root/useRenderComboboxRoot.d.ts.map +1 -0
  90. package/lib/combobox/root/useRenderComboboxRoot.js +136 -0
  91. package/lib/combobox/root/useRenderComboboxRoot.js.map +1 -0
  92. package/lib/combobox/store/ComboboxHandle.d.ts +42 -0
  93. package/lib/combobox/store/ComboboxHandle.d.ts.map +1 -0
  94. package/lib/combobox/store/ComboboxHandle.js +65 -0
  95. package/lib/combobox/store/ComboboxHandle.js.map +1 -0
  96. package/lib/combobox/store/ComboboxStore.d.ts +147 -0
  97. package/lib/combobox/store/ComboboxStore.d.ts.map +1 -0
  98. package/lib/combobox/store/ComboboxStore.js +127 -0
  99. package/lib/combobox/store/ComboboxStore.js.map +1 -0
  100. package/lib/combobox/value/ComboboxValue.d.ts.map +1 -1
  101. package/lib/combobox/value/ComboboxValue.js +2 -1
  102. package/lib/combobox/value/ComboboxValue.js.map +1 -1
  103. package/lib/context-menu/positioner/ContextMenuPositioner.d.ts +19 -3
  104. package/lib/context-menu/positioner/ContextMenuPositioner.d.ts.map +1 -1
  105. package/lib/context-menu/positioner/ContextMenuPositioner.js +56 -7
  106. package/lib/context-menu/positioner/ContextMenuPositioner.js.map +1 -1
  107. package/lib/context-menu/root/ContextMenuRoot.d.ts +8 -0
  108. package/lib/context-menu/root/ContextMenuRoot.d.ts.map +1 -1
  109. package/lib/dialog/backdrop/DialogBackdrop.d.ts +9 -0
  110. package/lib/dialog/backdrop/DialogBackdrop.d.ts.map +1 -1
  111. package/lib/dialog/backdrop/DialogBackdrop.js +3 -1
  112. package/lib/dialog/backdrop/DialogBackdrop.js.map +1 -1
  113. package/lib/dialog/popup/DialogPopup.d.ts +9 -0
  114. package/lib/dialog/popup/DialogPopup.d.ts.map +1 -1
  115. package/lib/dialog/popup/DialogPopup.js +2 -2
  116. package/lib/dialog/popup/DialogPopup.js.map +1 -1
  117. package/lib/dialog/popup/useDialogPopupProps.d.ts +2 -0
  118. package/lib/dialog/popup/useDialogPopupProps.d.ts.map +1 -1
  119. package/lib/dialog/popup/useDialogPopupProps.js +4 -0
  120. package/lib/dialog/popup/useDialogPopupProps.js.map +1 -1
  121. package/lib/dialog/root/DialogNestingContext.d.ts +20 -0
  122. package/lib/dialog/root/DialogNestingContext.d.ts.map +1 -0
  123. package/lib/dialog/root/DialogNestingContext.js +53 -0
  124. package/lib/dialog/root/DialogNestingContext.js.map +1 -0
  125. package/lib/dialog/root/useRenderDialogRoot.d.ts.map +1 -1
  126. package/lib/dialog/root/useRenderDialogRoot.js +26 -2
  127. package/lib/dialog/root/useRenderDialogRoot.js.map +1 -1
  128. package/lib/dialog/store/DialogStore.d.ts +19 -2
  129. package/lib/dialog/store/DialogStore.d.ts.map +1 -1
  130. package/lib/dialog/store/DialogStore.js +14 -2
  131. package/lib/dialog/store/DialogStore.js.map +1 -1
  132. package/lib/drawer/index.parts.d.ts +1 -1
  133. package/lib/drawer/index.parts.d.ts.map +1 -1
  134. package/lib/drawer/index.parts.js.map +1 -1
  135. package/lib/drawer/popup/DrawerPopup.d.ts +9 -0
  136. package/lib/drawer/popup/DrawerPopup.d.ts.map +1 -1
  137. package/lib/drawer/popup/DrawerPopup.js +3 -1
  138. package/lib/drawer/popup/DrawerPopup.js.map +1 -1
  139. package/lib/filter/index.d.ts +2 -0
  140. package/lib/filter/index.d.ts.map +1 -0
  141. package/lib/filter/index.js +6 -0
  142. package/lib/filter/index.js.map +1 -0
  143. package/lib/filter/useFilter.d.ts +45 -0
  144. package/lib/filter/useFilter.d.ts.map +1 -0
  145. package/lib/filter/useFilter.js +96 -0
  146. package/lib/filter/useFilter.js.map +1 -0
  147. package/lib/index.d.ts +1 -0
  148. package/lib/index.d.ts.map +1 -1
  149. package/lib/index.js +1 -0
  150. package/lib/index.js.map +1 -1
  151. package/lib/internals/field/useFieldControlRegistration.d.ts +25 -6
  152. package/lib/internals/field/useFieldControlRegistration.d.ts.map +1 -1
  153. package/lib/internals/field/useFieldControlRegistration.js +93 -6
  154. package/lib/internals/field/useFieldControlRegistration.js.map +1 -1
  155. package/lib/menu/popup/MenuPopup.d.ts +10 -0
  156. package/lib/menu/popup/MenuPopup.d.ts.map +1 -1
  157. package/lib/menu/popup/MenuPopup.js +10 -1
  158. package/lib/menu/popup/MenuPopup.js.map +1 -1
  159. package/lib/menu/positioner/MenuPositioner.d.ts +10 -0
  160. package/lib/menu/positioner/MenuPositioner.d.ts.map +1 -1
  161. package/lib/menu/positioner/MenuPositioner.js +9 -1
  162. package/lib/menu/positioner/MenuPositioner.js.map +1 -1
  163. package/lib/menu/store/MenuStore.d.ts +11 -0
  164. package/lib/menu/store/MenuStore.d.ts.map +1 -1
  165. package/lib/menu/store/MenuStore.js +4 -0
  166. package/lib/menu/store/MenuStore.js.map +1 -1
  167. package/lib/menu/submenu-trigger/MenuSubmenuTrigger.d.ts.map +1 -1
  168. package/lib/menu/submenu-trigger/MenuSubmenuTrigger.js +3 -0
  169. package/lib/menu/submenu-trigger/MenuSubmenuTrigger.js.map +1 -1
  170. package/lib/menu/trigger/MenuTrigger.d.ts.map +1 -1
  171. package/lib/menu/trigger/MenuTrigger.js +4 -1
  172. package/lib/menu/trigger/MenuTrigger.js.map +1 -1
  173. package/lib/meter/indicator/MeterIndicator.d.ts +2 -1
  174. package/lib/meter/indicator/MeterIndicator.d.ts.map +1 -1
  175. package/lib/meter/indicator/MeterIndicator.js +1 -2
  176. package/lib/meter/indicator/MeterIndicator.js.map +1 -1
  177. package/lib/meter/label/MeterLabel.d.ts +2 -1
  178. package/lib/meter/label/MeterLabel.d.ts.map +1 -1
  179. package/lib/meter/label/MeterLabel.js +1 -2
  180. package/lib/meter/label/MeterLabel.js.map +1 -1
  181. package/lib/meter/root/MeterRoot.d.ts +21 -0
  182. package/lib/meter/root/MeterRoot.d.ts.map +1 -1
  183. package/lib/meter/root/MeterRoot.js +2 -2
  184. package/lib/meter/root/MeterRoot.js.map +1 -1
  185. package/lib/meter/root/MeterRootContext.d.ts +5 -0
  186. package/lib/meter/root/MeterRootContext.d.ts.map +1 -1
  187. package/lib/meter/root/MeterRootContext.js.map +1 -1
  188. package/lib/meter/track/MeterTrack.d.ts +2 -1
  189. package/lib/meter/track/MeterTrack.d.ts.map +1 -1
  190. package/lib/meter/track/MeterTrack.js +1 -2
  191. package/lib/meter/track/MeterTrack.js.map +1 -1
  192. package/lib/meter/value/MeterValue.d.ts +2 -1
  193. package/lib/meter/value/MeterValue.d.ts.map +1 -1
  194. package/lib/meter/value/MeterValue.js +1 -2
  195. package/lib/meter/value/MeterValue.js.map +1 -1
  196. package/lib/number-field/input/NumberFieldInput.d.ts.map +1 -1
  197. package/lib/number-field/input/NumberFieldInput.js +11 -2
  198. package/lib/number-field/input/NumberFieldInput.js.map +1 -1
  199. package/lib/number-field/root/NumberFieldRoot.d.ts.map +1 -1
  200. package/lib/number-field/root/NumberFieldRoot.js +5 -2
  201. package/lib/number-field/root/NumberFieldRoot.js.map +1 -1
  202. package/lib/otp-field/input/OTPFieldInput.d.ts.map +1 -1
  203. package/lib/otp-field/input/OTPFieldInput.js +4 -0
  204. package/lib/otp-field/input/OTPFieldInput.js.map +1 -1
  205. package/lib/otp-field/root/OTPFieldRoot.d.ts.map +1 -1
  206. package/lib/otp-field/root/OTPFieldRoot.js +20 -2
  207. package/lib/otp-field/root/OTPFieldRoot.js.map +1 -1
  208. package/lib/popover/popup/PopoverPopup.d.ts +10 -0
  209. package/lib/popover/popup/PopoverPopup.d.ts.map +1 -1
  210. package/lib/popover/popup/PopoverPopup.js +10 -1
  211. package/lib/popover/popup/PopoverPopup.js.map +1 -1
  212. package/lib/popover/positioner/PopoverPositioner.d.ts +10 -0
  213. package/lib/popover/positioner/PopoverPositioner.d.ts.map +1 -1
  214. package/lib/popover/positioner/PopoverPositioner.js +4 -0
  215. package/lib/popover/positioner/PopoverPositioner.js.map +1 -1
  216. package/lib/popover/store/PopoverStore.d.ts +11 -0
  217. package/lib/popover/store/PopoverStore.d.ts.map +1 -1
  218. package/lib/popover/store/PopoverStore.js +4 -0
  219. package/lib/popover/store/PopoverStore.js.map +1 -1
  220. package/lib/popover/trigger/PopoverTrigger.d.ts.map +1 -1
  221. package/lib/popover/trigger/PopoverTrigger.js +4 -1
  222. package/lib/popover/trigger/PopoverTrigger.js.map +1 -1
  223. package/lib/progress/root/ProgressRoot.d.ts +21 -0
  224. package/lib/progress/root/ProgressRoot.d.ts.map +1 -1
  225. package/lib/progress/root/ProgressRoot.js +1 -1
  226. package/lib/progress/root/ProgressRoot.js.map +1 -1
  227. package/lib/radio-group/RadioGroup.d.ts.map +1 -1
  228. package/lib/radio-group/RadioGroup.js +5 -2
  229. package/lib/radio-group/RadioGroup.js.map +1 -1
  230. package/lib/select/backdrop/SelectBackdrop.d.ts.map +1 -1
  231. package/lib/select/backdrop/SelectBackdrop.js +3 -0
  232. package/lib/select/backdrop/SelectBackdrop.js.map +1 -1
  233. package/lib/select/index.parts.d.ts +1 -0
  234. package/lib/select/index.parts.d.ts.map +1 -1
  235. package/lib/select/index.parts.js +4 -1
  236. package/lib/select/index.parts.js.map +1 -1
  237. package/lib/select/popup/SelectPopup.d.ts +8 -0
  238. package/lib/select/popup/SelectPopup.d.ts.map +1 -1
  239. package/lib/select/popup/SelectPopup.js +10 -1
  240. package/lib/select/popup/SelectPopup.js.map +1 -1
  241. package/lib/select/positioner/SelectPositioner.d.ts +9 -0
  242. package/lib/select/positioner/SelectPositioner.d.ts.map +1 -1
  243. package/lib/select/positioner/SelectPositioner.js +9 -1
  244. package/lib/select/positioner/SelectPositioner.js.map +1 -1
  245. package/lib/select/root/SelectRoot.d.ts +45 -4
  246. package/lib/select/root/SelectRoot.d.ts.map +1 -1
  247. package/lib/select/root/SelectRoot.js +43 -5
  248. package/lib/select/root/SelectRoot.js.map +1 -1
  249. package/lib/select/store/SelectHandle.d.ts +42 -0
  250. package/lib/select/store/SelectHandle.d.ts.map +1 -0
  251. package/lib/select/store/SelectHandle.js +69 -0
  252. package/lib/select/store/SelectHandle.js.map +1 -0
  253. package/lib/select/store/SelectStore.d.ts +33 -0
  254. package/lib/select/store/SelectStore.d.ts.map +1 -1
  255. package/lib/select/store/SelectStore.js +17 -1
  256. package/lib/select/store/SelectStore.js.map +1 -1
  257. package/lib/select/trigger/SelectTrigger.d.ts +18 -3
  258. package/lib/select/trigger/SelectTrigger.d.ts.map +1 -1
  259. package/lib/select/trigger/SelectTrigger.js +51 -4
  260. package/lib/select/trigger/SelectTrigger.js.map +1 -1
  261. package/lib/slider/root/SliderRoot.d.ts.map +1 -1
  262. package/lib/slider/root/SliderRoot.js +9 -1
  263. package/lib/slider/root/SliderRoot.js.map +1 -1
  264. package/lib/slider/thumb/SliderThumb.d.ts.map +1 -1
  265. package/lib/slider/thumb/SliderThumb.js +10 -2
  266. package/lib/slider/thumb/SliderThumb.js.map +1 -1
  267. package/lib/switch/root/SwitchRoot.d.ts.map +1 -1
  268. package/lib/switch/root/SwitchRoot.js +6 -2
  269. package/lib/switch/root/SwitchRoot.js.map +1 -1
  270. package/lib/tabs/tab/TabsTab.d.ts +2 -10
  271. package/lib/tabs/tab/TabsTab.d.ts.map +1 -1
  272. package/lib/tooltip/popup/TooltipPopup.d.ts +10 -0
  273. package/lib/tooltip/popup/TooltipPopup.d.ts.map +1 -1
  274. package/lib/tooltip/popup/TooltipPopup.js +10 -1
  275. package/lib/tooltip/popup/TooltipPopup.js.map +1 -1
  276. package/lib/tooltip/positioner/TooltipPositioner.d.ts +10 -0
  277. package/lib/tooltip/positioner/TooltipPositioner.d.ts.map +1 -1
  278. package/lib/tooltip/positioner/TooltipPositioner.js +4 -0
  279. package/lib/tooltip/positioner/TooltipPositioner.js.map +1 -1
  280. package/lib/tooltip/store/TooltipStore.d.ts +11 -0
  281. package/lib/tooltip/store/TooltipStore.d.ts.map +1 -1
  282. package/lib/tooltip/store/TooltipStore.js +11 -1
  283. package/lib/tooltip/store/TooltipStore.js.map +1 -1
  284. package/lib/tooltip/trigger/TooltipTrigger.d.ts.map +1 -1
  285. package/lib/tooltip/trigger/TooltipTrigger.js +4 -1
  286. package/lib/tooltip/trigger/TooltipTrigger.js.map +1 -1
  287. package/package.json +1 -1
  288. package/src/alert-dialog/index.parts.ts +1 -1
  289. package/src/autocomplete/handle.ts +18 -0
  290. package/src/autocomplete/index.parts.ts +1 -0
  291. package/src/autocomplete/index.ts +1 -0
  292. package/src/autocomplete/root/AutocompleteRoot.tsx +65 -50
  293. package/src/avatar/fallback/AvatarFallback.tsx +3 -1
  294. package/src/avatar/image/AvatarImage.tsx +5 -0
  295. package/src/checkbox/root/CheckboxRoot.tsx +7 -2
  296. package/src/combobox/backdrop/ComboboxBackdrop.tsx +10 -2
  297. package/src/combobox/empty/ComboboxEmpty.tsx +5 -1
  298. package/src/combobox/index.parts.ts +1 -0
  299. package/src/combobox/index.ts +2 -0
  300. package/src/combobox/input/ComboboxInput.tsx +118 -23
  301. package/src/combobox/item/ComboboxItem.tsx +24 -5
  302. package/src/combobox/list/ComboboxList.tsx +7 -2
  303. package/src/combobox/popup/ComboboxPopup.tsx +44 -2
  304. package/src/combobox/portal/ComboboxPortal.tsx +19 -13
  305. package/src/combobox/portal/ComboboxPortalContext.ts +15 -0
  306. package/src/combobox/positioner/ComboboxPositioner.tsx +52 -7
  307. package/src/combobox/positioner/ComboboxPositionerContext.ts +23 -0
  308. package/src/combobox/root/ComboboxItemsContext.ts +32 -0
  309. package/src/combobox/root/ComboboxRoot.tsx +94 -56
  310. package/src/combobox/root/ComboboxRootContext.ts +3 -43
  311. package/src/combobox/root/ComboboxTransitionContext.ts +15 -0
  312. package/src/combobox/root/useRenderComboboxRoot.tsx +189 -0
  313. package/src/combobox/store/ComboboxHandle.ts +64 -0
  314. package/src/combobox/store/ComboboxStore.ts +249 -0
  315. package/src/combobox/value/ComboboxValue.tsx +2 -1
  316. package/src/context-menu/positioner/ContextMenuPositioner.tsx +90 -10
  317. package/src/context-menu/root/ContextMenuRoot.tsx +8 -0
  318. package/src/dialog/backdrop/DialogBackdrop.tsx +12 -1
  319. package/src/dialog/popup/DialogPopup.tsx +11 -2
  320. package/src/dialog/popup/useDialogPopupProps.ts +4 -0
  321. package/src/dialog/root/DialogNestingContext.ts +27 -0
  322. package/src/dialog/root/useRenderDialogRoot.tsx +37 -2
  323. package/src/dialog/store/DialogStore.ts +24 -2
  324. package/src/drawer/index.parts.ts +1 -1
  325. package/src/drawer/popup/DrawerPopup.tsx +12 -1
  326. package/src/filter/index.ts +5 -0
  327. package/src/filter/useFilter.ts +95 -0
  328. package/src/index.ts +1 -0
  329. package/src/internals/field/useFieldControlRegistration.ts +86 -6
  330. package/src/menu/popup/MenuPopup.tsx +20 -1
  331. package/src/menu/positioner/MenuPositioner.tsx +19 -1
  332. package/src/menu/store/MenuStore.ts +13 -0
  333. package/src/menu/submenu-trigger/MenuSubmenuTrigger.tsx +3 -0
  334. package/src/menu/trigger/MenuTrigger.tsx +5 -2
  335. package/src/meter/indicator/MeterIndicator.tsx +3 -4
  336. package/src/meter/label/MeterLabel.tsx +3 -4
  337. package/src/meter/root/MeterRoot.tsx +29 -4
  338. package/src/meter/root/MeterRootContext.ts +5 -0
  339. package/src/meter/track/MeterTrack.tsx +3 -4
  340. package/src/meter/value/MeterValue.tsx +3 -4
  341. package/src/number-field/input/NumberFieldInput.tsx +11 -2
  342. package/src/number-field/root/NumberFieldRoot.tsx +4 -2
  343. package/src/otp-field/input/OTPFieldInput.tsx +4 -0
  344. package/src/otp-field/root/OTPFieldRoot.tsx +22 -2
  345. package/src/popover/popup/PopoverPopup.tsx +20 -1
  346. package/src/popover/positioner/PopoverPositioner.tsx +14 -0
  347. package/src/popover/store/PopoverStore.ts +13 -0
  348. package/src/popover/trigger/PopoverTrigger.tsx +5 -2
  349. package/src/progress/root/ProgressRoot.tsx +25 -1
  350. package/src/radio-group/RadioGroup.tsx +5 -2
  351. package/src/select/backdrop/SelectBackdrop.tsx +4 -0
  352. package/src/select/index.parts.ts +1 -0
  353. package/src/select/popup/SelectPopup.tsx +18 -1
  354. package/src/select/positioner/SelectPositioner.tsx +18 -1
  355. package/src/select/root/SelectRoot.tsx +109 -9
  356. package/src/select/store/SelectHandle.ts +68 -0
  357. package/src/select/store/SelectStore.ts +44 -1
  358. package/src/select/trigger/SelectTrigger.tsx +81 -8
  359. package/src/slider/root/SliderRoot.tsx +11 -1
  360. package/src/slider/thumb/SliderThumb.tsx +10 -1
  361. package/src/switch/root/SwitchRoot.tsx +5 -2
  362. package/src/tabs/tab/TabsTab.tsx +2 -10
  363. package/src/tooltip/popup/TooltipPopup.tsx +20 -1
  364. package/src/tooltip/positioner/TooltipPositioner.tsx +14 -0
  365. package/src/tooltip/store/TooltipStore.ts +20 -1
  366. package/src/tooltip/trigger/TooltipTrigger.tsx +5 -2
  367. package/lib/combobox/root/useComboboxRoot.d.ts +0 -29
  368. package/lib/combobox/root/useComboboxRoot.d.ts.map +0 -1
  369. package/lib/combobox/root/useComboboxRoot.js +0 -168
  370. package/lib/combobox/root/useComboboxRoot.js.map +0 -1
  371. package/lib/utils/fastObjectShallowCompare.d.ts +0 -2
  372. package/lib/utils/fastObjectShallowCompare.d.ts.map +0 -1
  373. package/lib/utils/fastObjectShallowCompare.js +0 -29
  374. package/lib/utils/fastObjectShallowCompare.js.map +0 -1
  375. package/lib/utils/mergeObjects.d.ts +0 -2
  376. package/lib/utils/mergeObjects.d.ts.map +0 -1
  377. package/lib/utils/mergeObjects.js +0 -16
  378. package/lib/utils/mergeObjects.js.map +0 -1
  379. package/src/combobox/root/useComboboxRoot.ts +0 -190
  380. package/src/utils/fastObjectShallowCompare.ts +0 -30
  381. package/src/utils/mergeObjects.ts +0 -15
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxInput.d.ts","sourceRoot":"","sources":["../../../src/combobox/input/ComboboxInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,KAAK,0EAiDhE;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,kBACf,SAAQ,IAAI,CAAC,oBAAoB,CAAC,OAAO,SAAS,EAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAAG;AAEtF,yBAAiB,aAAa,CAAC;IAC7B,KAAY,KAAK,GAAG,kBAAkB,CAAC;IACvC,KAAY,KAAK,GAAG,kBAAkB,CAAC;CACxC"}
1
+ {"version":3,"file":"ComboboxInput.d.ts","sourceRoot":"","sources":["../../../src/combobox/input/ComboboxInput.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAA0B,MAAM,cAAc,CAAC;AASjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAG,OAAO,EAAE,cAAc,EAAE,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,0EAoH5F;AAED,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB,CAAC,OAAO,GAAG,OAAO,CACnD,SAAQ,IAAI,CAAC,oBAAoB,CAAC,OAAO,SAAS,EAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACjF;;;;;OAKG;IACH,MAAM,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACpC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED,yBAAiB,aAAa,CAAC;IAC7B,KAAY,KAAK,GAAG,kBAAkB,CAAC;IACvC,KAAY,KAAK,CAAC,OAAO,GAAG,OAAO,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;CACpE"}
@@ -39,38 +39,98 @@ const React = __importStar(require("react"));
39
39
  const react_native_1 = require("react-native");
40
40
  const ComboboxRootContext_1 = require("../root/ComboboxRootContext");
41
41
  const useRenderElement_1 = require("../../use-render/useRenderElement");
42
+ const useId_1 = require("../../hooks/useId");
43
+ const useIsoLayoutEffect_1 = require("../../hooks/useIsoLayoutEffect");
42
44
  const useMergedRefs_1 = require("../../hooks/useMergedRefs");
45
+ const usePopupHandleStore_1 = require("../../utils/popups/usePopupHandleStore");
46
+ const createChangeEventDetails_1 = require("../../utils/createChangeEventDetails");
47
+ const reasons_1 = require("../../utils/reasons");
43
48
  /**
44
49
  * The text input that filters the list, and the element the popup is anchored to.
45
50
  * Renders a `<TextInput>`.
51
+ *
52
+ * Pass a `handle` to render the input outside of its `Combobox.Root`: there is
53
+ * no context reaching across, so the handle is what connects the two.
46
54
  */
47
55
  function ComboboxInput(componentProps) {
48
- const { render, className, style, ref, ...elementProps } = componentProps;
49
- const { open, setOpen, inputValue, setInputValue, disabled, openOnFocus, setTriggerNode, update, } = (0, ComboboxRootContext_1.useComboboxRootContext)();
56
+ const { render, className, style, handle, nativeID: idProp, payload, ref, ...elementProps } = componentProps;
57
+ const rootStore = React.useContext(ComboboxRootContext_1.ComboboxRootContext);
58
+ const handleStore = (0, usePopupHandleStore_1.usePopupHandleStore)(handle);
59
+ // An input inside a root uses that root; a detached one follows its handle,
60
+ // which resolves to the attached root's store or to an inert fallback.
61
+ const store = (handleStore !== null && handleStore !== void 0 ? handleStore : rootStore);
62
+ if (store === undefined) {
63
+ throw new Error('Zest: Combobox.Input must be placed within <Combobox.Root> or <Autocomplete.Root>, or given a `handle` it shares with one.');
64
+ }
65
+ const id = (0, useId_1.useId)(idProp !== null && idProp !== void 0 ? idProp : undefined);
66
+ const open = store.useState('open');
67
+ const disabled = store.useState('disabled');
68
+ const inputValue = store.useState('inputValue');
69
+ const openOnFocus = store.useState('openOnFocus');
70
+ const update = store.useState('update');
71
+ const internalRef = React.useRef(null);
72
+ (0, useIsoLayoutEffect_1.useIsoLayoutEffect)(() => {
73
+ store.set('inputRef', internalRef);
74
+ }, [store]);
75
+ const triggerRef = React.useRef(null);
50
76
  const anchorRef = React.useCallback((node) => {
51
- setTriggerNode(node);
52
- }, [setTriggerNode]);
53
- const mergedRef = (0, useMergedRefs_1.useMergedRefs)(ref, anchorRef);
77
+ triggerRef.current = node;
78
+ store.set('triggerNode', node);
79
+ }, [store]);
80
+ const mergedRef = (0, useMergedRefs_1.useMergedRefs)(ref, anchorRef, internalRef);
81
+ // Registering into whichever store is current is what lets a handle resolve
82
+ // `open(id)`. The effect re-runs when the handle swaps stores, migrating the
83
+ // registration to the root that just attached.
84
+ (0, useIsoLayoutEffect_1.useIsoLayoutEffect)(() => {
85
+ if (id === undefined) {
86
+ return undefined;
87
+ }
88
+ store.context.triggerNodes.add(id, triggerRef.current);
89
+ return () => {
90
+ store.context.triggerNodes.delete(id);
91
+ };
92
+ }, [store, id]);
54
93
  const state = { open, disabled };
55
94
  return (0, useRenderElement_1.useRenderElement)(react_native_1.TextInput, componentProps, {
56
95
  state,
57
96
  ref: mergedRef,
58
97
  props: [
59
98
  {
99
+ nativeID: id,
60
100
  value: inputValue,
61
101
  editable: !disabled,
62
102
  onChangeText(text) {
63
- setInputValue(text);
103
+ // One event details object is shared, so canceling the text change
104
+ // also stops the list from opening.
105
+ const eventDetails = (0, createChangeEventDetails_1.createChangeEventDetails)(reasons_1.REASONS.inputChange);
106
+ store.setInputValue(text, eventDetails);
107
+ if (eventDetails.isCanceled) {
108
+ return;
109
+ }
110
+ // Typing reopens the list so suggestions follow the query.
111
+ if (!store.select('open') && text.length > 0) {
112
+ store.setOpen(true, eventDetails);
113
+ }
64
114
  },
65
115
  onFocus() {
116
+ if (payload !== undefined) {
117
+ store.set('payload', payload);
118
+ }
119
+ if (id !== undefined) {
120
+ store.set('triggerId', id);
121
+ }
66
122
  if (openOnFocus) {
67
- setOpen(true);
123
+ store.setOpen(true, (0, createChangeEventDetails_1.createChangeEventDetails)(reasons_1.REASONS.triggerFocus));
68
124
  }
69
125
  },
70
- onLayout() {
126
+ onLayout(event) {
127
+ const { width, height } = event.nativeEvent.layout;
128
+ store.set('triggerWidth', width);
129
+ store.set('triggerHeight', height);
71
130
  update === null || update === void 0 ? void 0 : update();
72
131
  },
73
132
  accessibilityRole: 'search',
133
+ accessibilityState: { expanded: open, disabled: disabled || undefined },
74
134
  'aria-expanded': open,
75
135
  'aria-autocomplete': 'list',
76
136
  },
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxInput.js","sourceRoot":"","sources":["../../../src/combobox/input/ComboboxInput.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYb,sCAiDC;AA5DD,6CAA+B;AAC/B,+CAAyC;AACzC,qEAAqE;AACrE,wEAAqE;AACrE,6DAA0D;AAG1D;;;GAGG;AACH,SAAgB,aAAa,CAAC,cAAmC;IAC/D,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC;IAE1E,MAAM,EACJ,IAAI,EACJ,OAAO,EACP,UAAU,EACV,aAAa,EACb,QAAQ,EACR,WAAW,EACX,cAAc,EACd,MAAM,GACP,GAAG,IAAA,4CAAsB,GAAE,CAAC;IAE7B,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CACjC,CAAC,IAAa,EAAE,EAAE;QAChB,cAAc,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,EACD,CAAC,cAAc,CAAC,CACjB,CAAC;IACF,MAAM,SAAS,GAAG,IAAA,6BAAa,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAEhD,MAAM,KAAK,GAAuB,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IAErD,OAAO,IAAA,mCAAgB,EAAC,wBAAS,EAAE,cAAc,EAAE;QACjD,KAAK;QACL,GAAG,EAAE,SAAS;QACd,KAAK,EAAE;YACL;gBACE,KAAK,EAAE,UAAU;gBACjB,QAAQ,EAAE,CAAC,QAAQ;gBACnB,YAAY,CAAC,IAAY;oBACvB,aAAa,CAAC,IAAI,CAAC,CAAC;gBACtB,CAAC;gBACD,OAAO;oBACL,IAAI,WAAW,EAAE,CAAC;wBAChB,OAAO,CAAC,IAAI,CAAC,CAAC;oBAChB,CAAC;gBACH,CAAC;gBACD,QAAQ;oBACN,MAAM,aAAN,MAAM,uBAAN,MAAM,EAAI,CAAC;gBACb,CAAC;gBACD,iBAAiB,EAAE,QAAiB;gBACpC,eAAe,EAAE,IAAI;gBACrB,mBAAmB,EAAE,MAAe;aACrC;YACD,YAAY;SACb;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"ComboboxInput.js","sourceRoot":"","sources":["../../../src/combobox/input/ComboboxInput.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { Pressable } from 'react-native';
3
- import { type ComboboxItem as ComboboxItemData } from '../root/ComboboxRootContext';
3
+ import type { ComboboxItem as ComboboxItemData } from '../store/ComboboxStore';
4
4
  import type { ZestUIComponentProps } from '../../types';
5
5
  /**
6
6
  * A selectable item in the list.
@@ -8,8 +8,18 @@ import type { ZestUIComponentProps } from '../../types';
8
8
  */
9
9
  export declare function ComboboxItem(componentProps: ComboboxItem.Props): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
10
10
  export interface ComboboxItemState {
11
+ /**
12
+ * Whether this item is the selected one.
13
+ */
11
14
  selected: boolean;
15
+ /**
16
+ * Whether the item is currently pressed.
17
+ */
12
18
  pressed: boolean;
19
+ /**
20
+ * The item's index in the list, in visual order.
21
+ */
22
+ index: number;
13
23
  }
14
24
  export interface ComboboxItemProps extends ZestUIComponentProps<typeof Pressable, ComboboxItemState> {
15
25
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxItem.d.ts","sourceRoot":"","sources":["../../../src/combobox/item/ComboboxItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAA8B,MAAM,cAAc,CAAC;AACrE,OAAO,EAA0B,KAAK,YAAY,IAAI,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG5G,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,cAAc,EAAE,YAAY,CAAC,KAAK,0EA8B9D;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,iBAAkB,SAAQ,oBAAoB,CAAC,OAAO,SAAS,EAAE,iBAAiB,CAAC;IAClG;;OAEG;IACH,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED,yBAAiB,YAAY,CAAC;IAC5B,KAAY,KAAK,GAAG,iBAAiB,CAAC;IACtC,KAAY,KAAK,GAAG,iBAAiB,CAAC;CACvC"}
1
+ {"version":3,"file":"ComboboxItem.d.ts","sourceRoot":"","sources":["../../../src/combobox/item/ComboboxItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAA8B,MAAM,cAAc,CAAC;AAMrE,OAAO,KAAK,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,cAAc,EAAE,YAAY,CAAC,KAAK,0EAoC9D;AAED,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAkB,SAAQ,oBAAoB,CAAC,OAAO,SAAS,EAAE,iBAAiB,CAAC;IAClG;;OAEG;IACH,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED,yBAAiB,YAAY,CAAC;IAC5B,KAAY,KAAK,GAAG,iBAAiB,CAAC;IACtC,KAAY,KAAK,GAAG,iBAAiB,CAAC;CACvC"}
@@ -40,17 +40,20 @@ const react_native_1 = require("react-native");
40
40
  const ComboboxRootContext_1 = require("../root/ComboboxRootContext");
41
41
  const useRenderElement_1 = require("../../use-render/useRenderElement");
42
42
  const useCompositeListItem_1 = require("../../internals/composite/list/useCompositeListItem");
43
+ const createChangeEventDetails_1 = require("../../utils/createChangeEventDetails");
44
+ const reasons_1 = require("../../utils/reasons");
43
45
  /**
44
46
  * A selectable item in the list.
45
47
  * Renders a `<Pressable>`.
46
48
  */
47
49
  function ComboboxItem(componentProps) {
48
50
  const { render, className, style, item, ref, ...elementProps } = componentProps;
49
- const { selectedValue, selectItem } = (0, ComboboxRootContext_1.useComboboxRootContext)();
50
- const { onLayout } = (0, useCompositeListItem_1.useCompositeListItem)();
51
+ const store = (0, ComboboxRootContext_1.useComboboxRootContext)();
52
+ const selectedValue = store.useState('value');
53
+ const { index, onLayout } = (0, useCompositeListItem_1.useCompositeListItem)();
51
54
  const [pressed, setPressed] = React.useState(false);
52
55
  const selected = selectedValue === item.value;
53
- const state = { selected, pressed };
56
+ const state = React.useMemo(() => ({ selected, pressed, index }), [selected, pressed, index]);
54
57
  return (0, useRenderElement_1.useRenderElement)(react_native_1.Pressable, componentProps, {
55
58
  state,
56
59
  ref,
@@ -58,7 +61,9 @@ function ComboboxItem(componentProps) {
58
61
  {
59
62
  onLayout,
60
63
  onPress(event) {
61
- selectItem(item, event);
64
+ var _a, _b;
65
+ store.selectItem(item, (0, createChangeEventDetails_1.createChangeEventDetails)(reasons_1.REASONS.itemPress, event));
66
+ (_b = (_a = store.select('inputRef')) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.blur();
62
67
  },
63
68
  onPressIn: () => setPressed(true),
64
69
  onPressOut: () => setPressed(false),
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxItem.js","sourceRoot":"","sources":["../../../src/combobox/item/ComboboxItem.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYb,oCA8BC;AAzCD,6CAA+B;AAC/B,+CAAqE;AACrE,qEAA4G;AAC5G,wEAAqE;AACrE,8FAA2F;AAG3F;;;GAGG;AACH,SAAgB,YAAY,CAAC,cAAkC;IAC7D,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC;IAEhF,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,IAAA,4CAAsB,GAAE,CAAC;IAC/D,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAA,2CAAoB,GAAE,CAAC;IAE5C,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,aAAa,KAAK,IAAI,CAAC,KAAK,CAAC;IAE9C,MAAM,KAAK,GAAsB,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAEvD,OAAO,IAAA,mCAAgB,EAAC,wBAAS,EAAE,cAAc,EAAE;QACjD,KAAK;QACL,GAAG;QACH,KAAK,EAAE;YACL;gBACE,QAAQ;gBACR,OAAO,CAAC,KAA4B;oBAClC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC1B,CAAC;gBACD,SAAS,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;gBACjC,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;gBACnC,iBAAiB,EAAE,UAAmB;gBACtC,IAAI,EAAE,QAAiB;gBACvB,kBAAkB,EAAE,EAAE,QAAQ,EAAE;gBAChC,eAAe,EAAE,QAAQ;aAC1B;YACD,YAAY;SACb;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"ComboboxItem.js","sourceRoot":"","sources":["../../../src/combobox/item/ComboboxItem.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeb,oCAoCC;AAlDD,6CAA+B;AAC/B,+CAAqE;AACrE,qEAAqE;AACrE,wEAAqE;AACrE,8FAA2F;AAC3F,mFAAgF;AAChF,iDAA8C;AAI9C;;;GAGG;AACH,SAAgB,YAAY,CAAC,cAAkC;IAC7D,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC;IAEhF,MAAM,KAAK,GAAG,IAAA,4CAAsB,GAAE,CAAC;IACvC,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAE9C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAA,2CAAoB,GAAE,CAAC;IAEnD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,aAAa,KAAK,IAAI,CAAC,KAAK,CAAC;IAE9C,MAAM,KAAK,GAAsB,KAAK,CAAC,OAAO,CAC5C,GAAG,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EACpC,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,CAC3B,CAAC;IAEF,OAAO,IAAA,mCAAgB,EAAC,wBAAS,EAAE,cAAc,EAAE;QACjD,KAAK;QACL,GAAG;QACH,KAAK,EAAE;YACL;gBACE,QAAQ;gBACR,OAAO,CAAC,KAA4B;;oBAClC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,IAAA,mDAAwB,EAAC,iBAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;oBAC3E,MAAA,MAAA,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,0CAAE,OAAO,0CAAE,IAAI,EAAE,CAAC;gBAC5C,CAAC;gBACD,SAAS,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;gBACjC,UAAU,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC;gBACnC,iBAAiB,EAAE,UAAmB;gBACtC,IAAI,EAAE,QAAiB;gBACvB,kBAAkB,EAAE,EAAE,QAAQ,EAAE;gBAChC,eAAe,EAAE,QAAQ;aAC1B;YACD,YAAY;SACb;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { View } from 'react-native';
3
- import { type ComboboxItem } from '../root/ComboboxRootContext';
3
+ import type { ComboboxItem } from '../store/ComboboxStore';
4
4
  import type { ZestUIComponentProps } from '../../types';
5
5
  /**
6
6
  * Renders the filtered items through a render function.
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxList.d.ts","sourceRoot":"","sources":["../../../src/combobox/list/ComboboxList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAA0B,KAAK,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAExF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,cAAc,EAAE,YAAY,CAAC,KAAK,0EAY9D;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,iBACf,SAAQ,IAAI,CAAC,oBAAoB,CAAC,OAAO,IAAI,EAAE,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC9E,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,KAAK,CAAC,SAAS,CAAC;CACnD;AAED,yBAAiB,YAAY,CAAC;IAC5B,KAAY,KAAK,GAAG,iBAAiB,CAAC;IACtC,KAAY,KAAK,GAAG,iBAAiB,CAAC;CACvC"}
1
+ {"version":3,"file":"ComboboxList.d.ts","sourceRoot":"","sources":["../../../src/combobox/list/ComboboxList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAIpC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,cAAc,EAAE,YAAY,CAAC,KAAK,0EAe9D;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,iBACf,SAAQ,IAAI,CAAC,oBAAoB,CAAC,OAAO,IAAI,EAAE,iBAAiB,CAAC,EAAE,UAAU,CAAC;IAC9E,QAAQ,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,KAAK,CAAC,SAAS,CAAC;CACnD;AAED,yBAAiB,YAAY,CAAC;IAC5B,KAAY,KAAK,GAAG,iBAAiB,CAAC;IACtC,KAAY,KAAK,GAAG,iBAAiB,CAAC;CACvC"}
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.ComboboxList = ComboboxList;
5
5
  const react_native_1 = require("react-native");
6
6
  const ComboboxRootContext_1 = require("../root/ComboboxRootContext");
7
+ const ComboboxItemsContext_1 = require("../root/ComboboxItemsContext");
7
8
  const useRenderElement_1 = require("../../use-render/useRenderElement");
8
9
  /**
9
10
  * Renders the filtered items through a render function.
@@ -15,7 +16,9 @@ const useRenderElement_1 = require("../../use-render/useRenderElement");
15
16
  */
16
17
  function ComboboxList(componentProps) {
17
18
  const { render, className, style, children, ref, ...elementProps } = componentProps;
18
- const { filteredItems, open } = (0, ComboboxRootContext_1.useComboboxRootContext)();
19
+ const store = (0, ComboboxRootContext_1.useComboboxRootContext)();
20
+ const { filteredItems } = (0, ComboboxItemsContext_1.useComboboxItemsContext)();
21
+ const open = store.useState('open');
19
22
  const state = { open, empty: filteredItems.length === 0 };
20
23
  return (0, useRenderElement_1.useRenderElement)(react_native_1.View, componentProps, {
21
24
  state,
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxList.js","sourceRoot":"","sources":["../../../src/combobox/list/ComboboxList.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAeb,oCAYC;AAzBD,+CAAoC;AACpC,qEAAwF;AACxF,wEAAqE;AAGrE;;;;;;;GAOG;AACH,SAAgB,YAAY,CAAC,cAAkC;IAC7D,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC;IAEpF,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,IAAA,4CAAsB,GAAE,CAAC;IAEzD,MAAM,KAAK,GAAsB,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IAE7E,OAAO,IAAA,mCAAgB,EAAC,mBAAI,EAAE,cAAc,EAAE;QAC5C,KAAK;QACL,GAAG;QACH,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,YAAY,CAAC;KACjF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"ComboboxList.js","sourceRoot":"","sources":["../../../src/combobox/list/ComboboxList.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAiBb,oCAeC;AA9BD,+CAAoC;AACpC,qEAAqE;AACrE,uEAAuE;AACvE,wEAAqE;AAIrE;;;;;;;GAOG;AACH,SAAgB,YAAY,CAAC,cAAkC;IAC7D,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC;IAEpF,MAAM,KAAK,GAAG,IAAA,4CAAsB,GAAE,CAAC;IACvC,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,8CAAuB,GAAE,CAAC;IAEpD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEpC,MAAM,KAAK,GAAsB,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IAE7E,OAAO,IAAA,mCAAgB,EAAC,mBAAI,EAAE,cAAc,EAAE;QAC5C,KAAK;QACL,GAAG;QACH,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,YAAY,CAAC;KACjF,CAAC,CAAC;AACL,CAAC"}
@@ -1,4 +1,6 @@
1
1
  import { View } from 'react-native';
2
+ import type { Align, Side } from '../../utils/useAnchorPositioning';
3
+ import type { TransitionStatus } from '../../internals/useTransitionStatus';
2
4
  import type { ZestUIComponentProps } from '../../types';
3
5
  /**
4
6
  * A container for the filtered list.
@@ -6,7 +8,31 @@ import type { ZestUIComponentProps } from '../../types';
6
8
  */
7
9
  export declare function ComboboxPopup(componentProps: ComboboxPopup.Props): import("react").JSX.Element;
8
10
  export interface ComboboxPopupState {
11
+ /**
12
+ * Whether the list is currently open.
13
+ */
9
14
  open: boolean;
15
+ /**
16
+ * The transition status of the list: `'starting'` as it opens (auto-clears to
17
+ * `undefined` after one frame), `'ending'` once it is closing.
18
+ */
19
+ transitionStatus: TransitionStatus;
20
+ /**
21
+ * The side the popup was actually placed on, after collision handling.
22
+ */
23
+ side: Side;
24
+ /**
25
+ * The alignment the popup was actually placed with.
26
+ */
27
+ align: Align;
28
+ /**
29
+ * The input's measured width, available for consumers to apply to the popup.
30
+ */
31
+ triggerWidth: number | undefined;
32
+ /**
33
+ * The input's measured height.
34
+ */
35
+ triggerHeight: number | undefined;
10
36
  }
11
37
  export interface ComboboxPopupProps extends ZestUIComponentProps<typeof View, ComboboxPopupState> {
12
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxPopup.d.ts","sourceRoot":"","sources":["../../../src/combobox/popup/ComboboxPopup.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAIpC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,KAAK,+BAqBhE;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,kBAAmB,SAAQ,oBAAoB,CAAC,OAAO,IAAI,EAAE,kBAAkB,CAAC;CAAG;AAEpG,yBAAiB,aAAa,CAAC;IAC7B,KAAY,KAAK,GAAG,kBAAkB,CAAC;IACvC,KAAY,KAAK,GAAG,kBAAkB,CAAC;CACxC"}
1
+ {"version":3,"file":"ComboboxPopup.d.ts","sourceRoot":"","sources":["../../../src/combobox/popup/ComboboxPopup.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAMpC,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,cAAc,EAAE,aAAa,CAAC,KAAK,+BAmChE;AAED,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;;OAGG;IACH,gBAAgB,EAAE,gBAAgB,CAAC;IACnC;;OAEG;IACH,IAAI,EAAE,IAAI,CAAC;IACX;;OAEG;IACH,KAAK,EAAE,KAAK,CAAC;IACb;;OAEG;IACH,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC;;OAEG;IACH,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,kBAAmB,SAAQ,oBAAoB,CAAC,OAAO,IAAI,EAAE,kBAAkB,CAAC;CAAG;AAEpG,yBAAiB,aAAa,CAAC;IAC7B,KAAY,KAAK,GAAG,kBAAkB,CAAC;IACvC,KAAY,KAAK,GAAG,kBAAkB,CAAC;CACxC"}
@@ -5,6 +5,8 @@ exports.ComboboxPopup = ComboboxPopup;
5
5
  const jsx_runtime_1 = require("react/jsx-runtime");
6
6
  const react_native_1 = require("react-native");
7
7
  const ComboboxRootContext_1 = require("../root/ComboboxRootContext");
8
+ const ComboboxPositionerContext_1 = require("../positioner/ComboboxPositionerContext");
9
+ const ComboboxTransitionContext_1 = require("../root/ComboboxTransitionContext");
8
10
  const useRenderElement_1 = require("../../use-render/useRenderElement");
9
11
  const CompositeList_1 = require("../../internals/composite/list/CompositeList");
10
12
  /**
@@ -12,9 +14,22 @@ const CompositeList_1 = require("../../internals/composite/list/CompositeList");
12
14
  * Renders a `<View>`.
13
15
  */
14
16
  function ComboboxPopup(componentProps) {
17
+ var _a;
15
18
  const { render, className, style, ref, ...elementProps } = componentProps;
16
- const { open } = (0, ComboboxRootContext_1.useComboboxRootContext)();
17
- const state = { open };
19
+ const store = (0, ComboboxRootContext_1.useComboboxRootContext)();
20
+ const { side, align } = (0, ComboboxPositionerContext_1.useComboboxPositionerContext)();
21
+ const { transitionStatus } = (_a = (0, ComboboxTransitionContext_1.useComboboxTransitionContext)()) !== null && _a !== void 0 ? _a : { transitionStatus: undefined };
22
+ const open = store.useState('open');
23
+ const triggerWidth = store.useState('triggerWidth');
24
+ const triggerHeight = store.useState('triggerHeight');
25
+ const state = {
26
+ open,
27
+ transitionStatus,
28
+ side,
29
+ align,
30
+ triggerWidth,
31
+ triggerHeight,
32
+ };
18
33
  const element = (0, useRenderElement_1.useRenderElement)(react_native_1.View, componentProps, {
19
34
  state,
20
35
  ref,
@@ -27,6 +42,7 @@ function ComboboxPopup(componentProps) {
27
42
  elementProps,
28
43
  ],
29
44
  });
45
+ // Items register here so they can be indexed in visual order.
30
46
  return (0, jsx_runtime_1.jsx)(CompositeList_1.CompositeList, { children: element });
31
47
  }
32
48
  //# sourceMappingURL=ComboboxPopup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxPopup.js","sourceRoot":"","sources":["../../../src/combobox/popup/ComboboxPopup.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAWb,sCAqBC;;AA/BD,+CAAoC;AACpC,qEAAqE;AACrE,wEAAqE;AACrE,gFAA6E;AAG7E;;;GAGG;AACH,SAAgB,aAAa,CAAC,cAAmC;IAC/D,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC;IAE1E,MAAM,EAAE,IAAI,EAAE,GAAG,IAAA,4CAAsB,GAAE,CAAC;IAE1C,MAAM,KAAK,GAAuB,EAAE,IAAI,EAAE,CAAC;IAE3C,MAAM,OAAO,GAAG,IAAA,mCAAgB,EAAC,mBAAI,EAAE,cAAc,EAAE;QACrD,KAAK;QACL,GAAG;QACH,KAAK,EAAE;YACL;gBACE,iBAAiB,EAAE,MAAe;gBAClC,kEAAkE;gBAClE,yBAAyB,EAAE,GAAG,EAAE,CAAC,IAAI;aACtC;YACD,YAAY;SACb;KACF,CAAC,CAAC;IAEH,OAAO,uBAAC,6BAAa,cAAE,OAAO,GAAiB,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"ComboboxPopup.js","sourceRoot":"","sources":["../../../src/combobox/popup/ComboboxPopup.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAeb,sCAmCC;;AAjDD,+CAAoC;AACpC,qEAAqE;AACrE,uFAAuF;AACvF,iFAAiF;AACjF,wEAAqE;AACrE,gFAA6E;AAK7E;;;GAGG;AACH,SAAgB,aAAa,CAAC,cAAmC;;IAC/D,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC;IAE1E,MAAM,KAAK,GAAG,IAAA,4CAAsB,GAAE,CAAC;IACvC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAA,wDAA4B,GAAE,CAAC;IACvD,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAA,IAAA,wDAA4B,GAAE,mCAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC;IAE/F,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IAEtD,MAAM,KAAK,GAAuB;QAChC,IAAI;QACJ,gBAAgB;QAChB,IAAI;QACJ,KAAK;QACL,YAAY;QACZ,aAAa;KACd,CAAC;IAEF,MAAM,OAAO,GAAG,IAAA,mCAAgB,EAAC,mBAAI,EAAE,cAAc,EAAE;QACrD,KAAK;QACL,GAAG;QACH,KAAK,EAAE;YACL;gBACE,iBAAiB,EAAE,MAAe;gBAClC,kEAAkE;gBAClE,yBAAyB,EAAE,GAAG,EAAE,CAAC,IAAI;aACtC;YACD,YAAY;SACb;KACF,CAAC,CAAC;IAEH,8DAA8D;IAC9D,OAAO,uBAAC,6BAAa,cAAE,OAAO,GAAiB,CAAC;AAClD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxPortal.d.ts","sourceRoot":"","sources":["../../../src/combobox/portal/ComboboxPortal.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,4BAwBzD;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACnC;AAED,yBAAiB,cAAc,CAAC;IAC9B,KAAY,KAAK,GAAG,mBAAmB,CAAC;CACzC"}
1
+ {"version":3,"file":"ComboboxPortal.d.ts","sourceRoot":"","sources":["../../../src/combobox/portal/ComboboxPortal.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,CAAC,KAAK,4BA2BzD;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACnC;AAED,yBAAiB,cAAc,CAAC;IAC9B,KAAY,KAAK,GAAG,mBAAmB,CAAC;CACzC"}
@@ -5,19 +5,23 @@ exports.ComboboxPortal = ComboboxPortal;
5
5
  const jsx_runtime_1 = require("react/jsx-runtime");
6
6
  const react_native_1 = require("react-native");
7
7
  const ComboboxRootContext_1 = require("../root/ComboboxRootContext");
8
+ const ComboboxPortalContext_1 = require("./ComboboxPortalContext");
9
+ const createChangeEventDetails_1 = require("../../utils/createChangeEventDetails");
10
+ const reasons_1 = require("../../utils/reasons");
8
11
  /**
9
12
  * Moves the popup to the top of the app, as an RN `Modal` like the rest of the
10
13
  * popup family.
11
14
  */
12
15
  function ComboboxPortal(props) {
13
16
  const { children, keepMounted = false } = props;
14
- const { open, setOpen } = (0, ComboboxRootContext_1.useComboboxRootContext)();
17
+ const store = (0, ComboboxRootContext_1.useComboboxRootContext)();
18
+ const open = store.useState('open');
15
19
  const shouldRender = open || keepMounted;
16
20
  if (!shouldRender) {
17
21
  return null;
18
22
  }
19
- return ((0, jsx_runtime_1.jsx)(react_native_1.Modal, { transparent: true, visible: open, animationType: "fade", statusBarTranslucent: true, navigationBarTranslucent: true, onRequestClose: (event) => {
20
- setOpen(false, event);
21
- }, children: children }));
23
+ return ((0, jsx_runtime_1.jsx)(ComboboxPortalContext_1.ComboboxPortalContext.Provider, { value: keepMounted, children: (0, jsx_runtime_1.jsx)(react_native_1.Modal, { transparent: true, visible: open, animationType: "fade", statusBarTranslucent: true, navigationBarTranslucent: true, onRequestClose: (event) => {
24
+ store.setOpen(false, (0, createChangeEventDetails_1.createChangeEventDetails)(reasons_1.REASONS.escapeKey, event));
25
+ }, children: children }) }));
22
26
  }
23
27
  //# sourceMappingURL=ComboboxPortal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxPortal.js","sourceRoot":"","sources":["../../../src/combobox/portal/ComboboxPortal.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AASb,wCAwBC;;AA/BD,+CAAgE;AAChE,qEAAqE;AAErE;;;GAGG;AACH,SAAgB,cAAc,CAAC,KAA2B;IACxD,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC;IAEhD,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAA,4CAAsB,GAAE,CAAC;IAEnD,MAAM,YAAY,GAAG,IAAI,IAAI,WAAW,CAAC;IACzC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,uBAAC,oBAAK,IACJ,WAAW,QACX,OAAO,EAAE,IAAI,EACb,aAAa,EAAC,MAAM,EACpB,oBAAoB,QACpB,wBAAwB,QACxB,cAAc,EAAE,CAAC,KAAoC,EAAE,EAAE;YACvD,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC,YAEA,QAAQ,GACH,CACT,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ComboboxPortal.js","sourceRoot":"","sources":["../../../src/combobox/portal/ComboboxPortal.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAYb,wCA2BC;;AArCD,+CAAgE;AAChE,qEAAqE;AACrE,mEAAgE;AAChE,mFAAgF;AAChF,iDAA8C;AAE9C;;;GAGG;AACH,SAAgB,cAAc,CAAC,KAA2B;IACxD,MAAM,EAAE,QAAQ,EAAE,WAAW,GAAG,KAAK,EAAE,GAAG,KAAK,CAAC;IAEhD,MAAM,KAAK,GAAG,IAAA,4CAAsB,GAAE,CAAC;IACvC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEpC,MAAM,YAAY,GAAG,IAAI,IAAI,WAAW,CAAC;IACzC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,uBAAC,6CAAqB,CAAC,QAAQ,IAAC,KAAK,EAAE,WAAW,YAChD,uBAAC,oBAAK,IACJ,WAAW,QACX,OAAO,EAAE,IAAI,EACb,aAAa,EAAC,MAAM,EACpB,oBAAoB,QACpB,wBAAwB,QACxB,cAAc,EAAE,CAAC,KAAoC,EAAE,EAAE;gBACvD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,IAAA,mDAAwB,EAAC,iBAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;YAC3E,CAAC,YAEA,QAAQ,GACH,GACuB,CAClC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ export declare const ComboboxPortalContext: React.Context<boolean | undefined>;
3
+ export declare function useComboboxPortalContext(): boolean;
4
+ //# sourceMappingURL=ComboboxPortalContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComboboxPortalContext.d.ts","sourceRoot":"","sources":["../../../src/combobox/portal/ComboboxPortalContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,eAAO,MAAM,qBAAqB,oCAAsD,CAAC;AAEzF,wBAAgB,wBAAwB,YASvC"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ 'use client';
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.ComboboxPortalContext = void 0;
38
+ exports.useComboboxPortalContext = useComboboxPortalContext;
39
+ const React = __importStar(require("react"));
40
+ exports.ComboboxPortalContext = React.createContext(undefined);
41
+ function useComboboxPortalContext() {
42
+ const context = React.useContext(exports.ComboboxPortalContext);
43
+ if (context === undefined) {
44
+ throw new Error('Zest: ComboboxPortalContext is missing. <Combobox.Positioner> must be placed within <Combobox.Portal>.');
45
+ }
46
+ return context;
47
+ }
48
+ //# sourceMappingURL=ComboboxPortalContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComboboxPortalContext.js","sourceRoot":"","sources":["../../../src/combobox/portal/ComboboxPortalContext.ts"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKb,4DASC;AAbD,6CAA+B;AAElB,QAAA,qBAAqB,GAAG,KAAK,CAAC,aAAa,CAAsB,SAAS,CAAC,CAAC;AAEzF,SAAgB,wBAAwB;IACtC,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,6BAAqB,CAAC,CAAC;IACxD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,wGAAwG,CACzG,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import * as React from 'react';
1
2
  import { View } from 'react-native';
2
3
  import { type Align, type Side, type UseAnchorPositioningSharedParameters } from '../../utils/useAnchorPositioning';
3
4
  import type { ZestUIComponentProps } from '../../types';
@@ -5,11 +6,20 @@ import type { ZestUIComponentProps } from '../../types';
5
6
  * Positions the list against the input.
6
7
  * Renders a `<View>`.
7
8
  */
8
- export declare function ComboboxPositioner(componentProps: ComboboxPositioner.Props): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
9
+ export declare function ComboboxPositioner(componentProps: ComboboxPositioner.Props): React.JSX.Element;
9
10
  export interface ComboboxPositionerState {
10
11
  open: boolean;
11
12
  side: Side;
12
13
  align: Align;
14
+ /**
15
+ * The input's measured width, available for consumers to apply to the popup.
16
+ * This is the React Native equivalent of the web's `--anchor-width` CSS variable.
17
+ */
18
+ triggerWidth: number | undefined;
19
+ /**
20
+ * The input's measured height.
21
+ */
22
+ triggerHeight: number | undefined;
13
23
  }
14
24
  export interface ComboboxPositionerProps extends UseAnchorPositioningSharedParameters, ZestUIComponentProps<typeof View, ComboboxPositionerState> {
15
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxPositioner.d.ts","sourceRoot":"","sources":["../../../src/combobox/positioner/ComboboxPositioner.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAKpC,OAAO,EAEL,KAAK,KAAK,EACV,KAAK,IAAI,EACT,KAAK,oCAAoC,EAC1C,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,kBAAkB,CAAC,KAAK,8FAgD1E;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,KAAK,CAAC;CACd;AAED,MAAM,WAAW,uBACf,SAAQ,oCAAoC,EAC1C,oBAAoB,CAAC,OAAO,IAAI,EAAE,uBAAuB,CAAC;CAAG;AAEjE,yBAAiB,kBAAkB,CAAC;IAClC,KAAY,KAAK,GAAG,uBAAuB,CAAC;IAC5C,KAAY,KAAK,GAAG,uBAAuB,CAAC;CAC7C"}
1
+ {"version":3,"file":"ComboboxPositioner.d.ts","sourceRoot":"","sources":["../../../src/combobox/positioner/ComboboxPositioner.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAOpC,OAAO,EAEL,KAAK,KAAK,EACV,KAAK,IAAI,EACT,KAAK,oCAAoC,EAC1C,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAExD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,kBAAkB,CAAC,KAAK,qBAiF1E;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,KAAK,CAAC;IACb;;;OAGG;IACH,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC;;OAEG;IACH,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,uBACf,SAAQ,oCAAoC,EAC1C,oBAAoB,CAAC,OAAO,IAAI,EAAE,uBAAuB,CAAC;CAAG;AAEjE,yBAAiB,kBAAkB,CAAC;IAClC,KAAY,KAAK,GAAG,uBAAuB,CAAC;IAC5C,KAAY,KAAK,GAAG,uBAAuB,CAAC;CAC7C"}
@@ -1,9 +1,46 @@
1
1
  "use strict";
2
2
  'use client';
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
3
36
  Object.defineProperty(exports, "__esModule", { value: true });
4
37
  exports.ComboboxPositioner = ComboboxPositioner;
38
+ const jsx_runtime_1 = require("react/jsx-runtime");
39
+ const React = __importStar(require("react"));
5
40
  const react_native_1 = require("react-native");
6
41
  const ComboboxRootContext_1 = require("../root/ComboboxRootContext");
42
+ const ComboboxPortalContext_1 = require("../portal/ComboboxPortalContext");
43
+ const ComboboxPositionerContext_1 = require("./ComboboxPositionerContext");
7
44
  const useRenderElement_1 = require("../../use-render/useRenderElement");
8
45
  const useIsoLayoutEffect_1 = require("../../hooks/useIsoLayoutEffect");
9
46
  const useMergedRefs_1 = require("../../hooks/useMergedRefs");
@@ -14,7 +51,12 @@ const useAnchorPositioning_1 = require("../../utils/useAnchorPositioning");
14
51
  */
15
52
  function ComboboxPositioner(componentProps) {
16
53
  const { align = 'start', alignOffset = 0, arrowPadding = 5, className, collisionPadding = 5, render, side = 'bottom', sideOffset = 4, sticky = false, style, ref, ...elementProps } = componentProps;
17
- const { open, triggerNode, setUpdate } = (0, ComboboxRootContext_1.useComboboxRootContext)();
54
+ (0, ComboboxPortalContext_1.useComboboxPortalContext)();
55
+ const store = (0, ComboboxRootContext_1.useComboboxRootContext)();
56
+ const open = store.useState('open');
57
+ const triggerNode = store.useState('triggerNode');
58
+ const triggerWidth = store.useState('triggerWidth');
59
+ const triggerHeight = store.useState('triggerHeight');
18
60
  const positioning = (0, useAnchorPositioning_1.useAnchorPositioning)({
19
61
  align,
20
62
  alignOffset,
@@ -29,15 +71,33 @@ function ComboboxPositioner(componentProps) {
29
71
  refs.setReference(triggerNode !== null && triggerNode !== void 0 ? triggerNode : null);
30
72
  }, [refs, triggerNode]);
31
73
  (0, useIsoLayoutEffect_1.useIsoLayoutEffect)(() => {
32
- setUpdate(update);
33
- return () => setUpdate(undefined);
34
- }, [setUpdate, update]);
74
+ store.set('update', update);
75
+ return () => {
76
+ store.set('update', undefined);
77
+ };
78
+ }, [store, update]);
35
79
  const mergedRef = (0, useMergedRefs_1.useMergedRefs)(ref, refs.setFloating);
36
- const state = { open, side: positioning.side, align: positioning.align };
37
- return (0, useRenderElement_1.useRenderElement)(react_native_1.View, componentProps, {
80
+ const state = {
81
+ open,
82
+ side: positioning.side,
83
+ align: positioning.align,
84
+ triggerWidth,
85
+ triggerHeight,
86
+ };
87
+ const contextValue = React.useMemo(() => ({ side: positioning.side, align: positioning.align }), [positioning.side, positioning.align]);
88
+ const element = (0, useRenderElement_1.useRenderElement)(react_native_1.View, componentProps, {
38
89
  state,
39
90
  ref: mergedRef,
40
- props: [{ style: positionerStyles, onLayout: () => update() }, elementProps],
91
+ props: [
92
+ {
93
+ style: positionerStyles,
94
+ onLayout() {
95
+ update();
96
+ },
97
+ },
98
+ elementProps,
99
+ ],
41
100
  });
101
+ return ((0, jsx_runtime_1.jsx)(ComboboxPositionerContext_1.ComboboxPositionerContext.Provider, { value: contextValue, children: element }));
42
102
  }
43
103
  //# sourceMappingURL=ComboboxPositioner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxPositioner.js","sourceRoot":"","sources":["../../../src/combobox/positioner/ComboboxPositioner.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAkBb,gDAgDC;AAjED,+CAAoC;AACpC,qEAAqE;AACrE,wEAAqE;AACrE,uEAAoE;AACpE,6DAA0D;AAC1D,2EAK0C;AAG1C;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,cAAwC;IACzE,MAAM,EACJ,KAAK,GAAG,OAAO,EACf,WAAW,GAAG,CAAC,EACf,YAAY,GAAG,CAAC,EAChB,SAAS,EACT,gBAAgB,GAAG,CAAC,EACpB,MAAM,EACN,IAAI,GAAG,QAAQ,EACf,UAAU,GAAG,CAAC,EACd,MAAM,GAAG,KAAK,EACd,KAAK,EACL,GAAG,EACH,GAAG,YAAY,EAChB,GAAG,cAAc,CAAC;IAEnB,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,IAAA,4CAAsB,GAAE,CAAC;IAElE,MAAM,WAAW,GAAG,IAAA,2CAAoB,EAAC;QACvC,KAAK;QACL,WAAW;QACX,YAAY;QACZ,gBAAgB;QAChB,IAAI;QACJ,UAAU;QACV,MAAM;KACP,CAAC,CAAC;IAEH,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC;IAEvD,IAAA,uCAAkB,EAAC,GAAG,EAAE;QACtB,IAAI,CAAC,YAAY,CAAC,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAI,CAAC,CAAC;IACzC,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;IAExB,IAAA,uCAAkB,EAAC,GAAG,EAAE;QACtB,SAAS,CAAC,MAAM,CAAC,CAAC;QAClB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAExB,MAAM,SAAS,GAAG,IAAA,6BAAa,EAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAEvD,MAAM,KAAK,GAA4B,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC;IAElG,OAAO,IAAA,mCAAgB,EAAC,mBAAI,EAAE,cAAc,EAAE;QAC5C,KAAK;QACL,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE,EAAE,YAAY,CAAC;KAC7E,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"ComboboxPositioner.js","sourceRoot":"","sources":["../../../src/combobox/positioner/ComboboxPositioner.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ import type { Align, Side } from '../../utils/useAnchorPositioning';
3
+ export interface ComboboxPositionerContext {
4
+ side: Side;
5
+ align: Align;
6
+ }
7
+ export declare const ComboboxPositionerContext: React.Context<ComboboxPositionerContext | undefined>;
8
+ export declare function useComboboxPositionerContext(): ComboboxPositionerContext;
9
+ //# sourceMappingURL=ComboboxPositionerContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComboboxPositionerContext.d.ts","sourceRoot":"","sources":["../../../src/combobox/positioner/ComboboxPositionerContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kCAAkC,CAAC;AAEpE,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,KAAK,CAAC;CACd;AAED,eAAO,MAAM,yBAAyB,sDAE1B,CAAC;AAEb,wBAAgB,4BAA4B,8BAS3C"}