@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
@@ -5,6 +5,7 @@ exports.SliderThumb = SliderThumb;
5
5
  const react_native_1 = require("react-native");
6
6
  const SliderRootContext_1 = require("../root/SliderRootContext");
7
7
  const useRenderElement_1 = require("../../use-render/useRenderElement");
8
+ const useFieldControlRegistration_1 = require("../../internals/field/useFieldControlRegistration");
8
9
  const formatNumber_1 = require("../../utils/formatNumber");
9
10
  /**
10
11
  * The draggable handle.
@@ -15,9 +16,12 @@ const formatNumber_1 = require("../../utils/formatNumber");
15
16
  * lets assistive technology change the value.
16
17
  */
17
18
  function SliderThumb(componentProps) {
18
- var _a;
19
+ var _a, _b, _c;
19
20
  const { render, className, style, index = 0, ref, ...elementProps } = componentProps;
20
21
  const { disabled, format, labelId, locale, max, min, orientation, state, values } = (0, SliderRootContext_1.useSliderRootContext)();
22
+ // The thumb is what assistive tech announces and adjusts, so a surrounding
23
+ // field's label and messages attach here rather than to the root.
24
+ const { fieldProps } = (0, useFieldControlRegistration_1.useFieldControlRegistration)();
21
25
  const value = (_a = values[index]) !== null && _a !== void 0 ? _a : min;
22
26
  const percent = max === min ? 0 : ((value - min) / (max - min)) * 100;
23
27
  const positionStyle = orientation === 'vertical'
@@ -31,7 +35,6 @@ function SliderThumb(componentProps) {
31
35
  {
32
36
  style: positionStyle,
33
37
  accessibilityRole: 'adjustable',
34
- accessibilityLabelledBy: labelId,
35
38
  accessibilityState: { disabled: disabled || undefined },
36
39
  accessibilityValue: {
37
40
  min,
@@ -40,6 +43,11 @@ function SliderThumb(componentProps) {
40
43
  text: formatValue(value, format, locale),
41
44
  },
42
45
  'aria-orientation': orientation,
46
+ ...fieldProps,
47
+ // A surrounding `Field.Label` names the control; `Slider.Label` is the
48
+ // fallback for a slider that stands on its own.
49
+ accessibilityLabelledBy: (_b = fieldProps.accessibilityLabelledBy) !== null && _b !== void 0 ? _b : labelId,
50
+ 'aria-labelledby': (_c = fieldProps['aria-labelledby']) !== null && _c !== void 0 ? _c : labelId,
43
51
  },
44
52
  elementProps,
45
53
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"SliderThumb.js","sourceRoot":"","sources":["../../../src/slider/thumb/SliderThumb.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAgBb,kCAoCC;AAnDD,+CAAoC;AACpC,iEAAiE;AACjE,wEAAqE;AACrE,2DAAwD;AAIxD;;;;;;;GAOG;AACH,SAAgB,WAAW,CAAC,cAAiC;;IAC3D,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC;IAErF,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,GAC/E,IAAA,wCAAoB,GAAE,CAAC;IAEzB,MAAM,KAAK,GAAG,MAAA,MAAM,CAAC,KAAK,CAAC,mCAAI,GAAG,CAAC;IACnC,MAAM,OAAO,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAEtE,MAAM,aAAa,GACjB,WAAW,KAAK,UAAU;QACxB,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAmB,EAAE,MAAM,EAAE,GAAG,OAAO,GAAY,EAAE;QACnE,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAmB,EAAE,IAAI,EAAE,GAAG,OAAO,GAAY,EAAE,CAAC;IAEtE,MAAM,UAAU,GAAqB,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAEzE,OAAO,IAAA,mCAAgB,EAAC,mBAAI,EAAE,cAAc,EAAE;QAC5C,KAAK,EAAE,UAAU;QACjB,GAAG;QACH,KAAK,EAAE;YACL;gBACE,KAAK,EAAE,aAAa;gBACpB,iBAAiB,EAAE,YAAqB;gBACxC,uBAAuB,EAAE,OAAO;gBAChC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,QAAQ,IAAI,SAAS,EAAE;gBACvD,kBAAkB,EAAE;oBAClB,GAAG;oBACH,GAAG;oBACH,GAAG,EAAE,KAAK;oBACV,IAAI,EAAE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;iBACzC;gBACD,kBAAkB,EAAE,WAAW;aAChC;YACD,YAAY;SACb;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAClB,KAAa,EACb,MAA4C,EAC5C,MAAwC;IAExC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,IAAA,2BAAY,EAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"SliderThumb.js","sourceRoot":"","sources":["../../../src/slider/thumb/SliderThumb.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAiBb,kCA4CC;AA5DD,+CAAoC;AACpC,iEAAiE;AACjE,wEAAqE;AACrE,mGAAgG;AAChG,2DAAwD;AAIxD;;;;;;;GAOG;AACH,SAAgB,WAAW,CAAC,cAAiC;;IAC3D,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC;IAErF,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,GAC/E,IAAA,wCAAoB,GAAE,CAAC;IAEzB,2EAA2E;IAC3E,kEAAkE;IAClE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,yDAA2B,GAAE,CAAC;IAErD,MAAM,KAAK,GAAG,MAAA,MAAM,CAAC,KAAK,CAAC,mCAAI,GAAG,CAAC;IACnC,MAAM,OAAO,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAEtE,MAAM,aAAa,GACjB,WAAW,KAAK,UAAU;QACxB,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAmB,EAAE,MAAM,EAAE,GAAG,OAAO,GAAY,EAAE;QACnE,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAmB,EAAE,IAAI,EAAE,GAAG,OAAO,GAAY,EAAE,CAAC;IAEtE,MAAM,UAAU,GAAqB,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAEzE,OAAO,IAAA,mCAAgB,EAAC,mBAAI,EAAE,cAAc,EAAE;QAC5C,KAAK,EAAE,UAAU;QACjB,GAAG;QACH,KAAK,EAAE;YACL;gBACE,KAAK,EAAE,aAAa;gBACpB,iBAAiB,EAAE,YAAqB;gBACxC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,QAAQ,IAAI,SAAS,EAAE;gBACvD,kBAAkB,EAAE;oBAClB,GAAG;oBACH,GAAG;oBACH,GAAG,EAAE,KAAK;oBACV,IAAI,EAAE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC;iBACzC;gBACD,kBAAkB,EAAE,WAAW;gBAC/B,GAAG,UAAU;gBACb,uEAAuE;gBACvE,gDAAgD;gBAChD,uBAAuB,EAAE,MAAA,UAAU,CAAC,uBAAuB,mCAAI,OAAO;gBACtE,iBAAiB,EAAE,MAAA,UAAU,CAAC,iBAAiB,CAAC,mCAAI,OAAO;aAC5D;YACD,YAAY;SACb;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW,CAClB,KAAa,EACb,MAA4C,EAC5C,MAAwC;IAExC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,IAAA,2BAAY,EAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SwitchRoot.d.ts","sourceRoot":"","sources":["../../../src/switch/root/SwitchRoot.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAA8B,MAAM,cAAc,CAAC;AAKrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG9C;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,KAAK,qBA2E1D;AAED,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,oBAAoB,CAAC,OAAO,SAAS,EAAE,eAAe,CAAC,EAAE,SAAS,CAAC;IAChF;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B;;OAEG;IACH,eAAe,CAAC,EACZ,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,kBAAkB,KAAK,IAAI,CAAC,GACzE,SAAS,CAAC;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC;AAED,MAAM,MAAM,2BAA2B,GAAG,OAAO,OAAO,CAAC,IAAI,CAAC;AAE9D,yBAAiB,UAAU,CAAC;IAC1B,KAAY,KAAK,GAAG,eAAe,CAAC;IACpC,KAAY,KAAK,GAAG,eAAe,CAAC;IACpC,KAAY,iBAAiB,GAAG,2BAA2B,CAAC;IAC5D,KAAY,kBAAkB,GAAG,sBAAsB,CAAC,2BAA2B,CAAC,CAAC;CACtF"}
1
+ {"version":3,"file":"SwitchRoot.d.ts","sourceRoot":"","sources":["../../../src/switch/root/SwitchRoot.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAA8B,MAAM,cAAc,CAAC;AAKrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG9C;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,cAAc,EAAE,UAAU,CAAC,KAAK,qBA8E1D;AAED,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,oBAAoB,CAAC,OAAO,SAAS,EAAE,eAAe,CAAC,EAAE,SAAS,CAAC;IAChF;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B;;OAEG;IACH,eAAe,CAAC,EACZ,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC,kBAAkB,KAAK,IAAI,CAAC,GACzE,SAAS,CAAC;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC;AAED,MAAM,MAAM,2BAA2B,GAAG,OAAO,OAAO,CAAC,IAAI,CAAC;AAE9D,yBAAiB,UAAU,CAAC;IAC1B,KAAY,KAAK,GAAG,eAAe,CAAC;IACpC,KAAY,KAAK,GAAG,eAAe,CAAC;IACpC,KAAY,iBAAiB,GAAG,2BAA2B,CAAC;IAC5D,KAAY,kBAAkB,GAAG,sBAAsB,CAAC,2BAA2B,CAAC,CAAC;CACtF"}
@@ -53,8 +53,11 @@ const SwitchRootContext_1 = require("./SwitchRootContext");
53
53
  * native form submission, so `name`/`value`/`form` props are omitted.
54
54
  */
55
55
  function SwitchRoot(componentProps) {
56
+ var _a;
56
57
  const { checked: checkedProp, className, defaultChecked = false, disabled: disabledProp = false, onCheckedChange, readOnly = false, render, required = false, style, ref, ...elementProps } = componentProps;
57
- const { fieldDisabled, fieldProps, validateField } = (0, useFieldControlRegistration_1.useFieldControlRegistration)();
58
+ const { fieldDisabled, fieldProps, markChanged, markTouched } = (0, useFieldControlRegistration_1.useFieldControlRegistration)({
59
+ initialValue: (_a = defaultChecked !== null && defaultChecked !== void 0 ? defaultChecked : checkedProp) !== null && _a !== void 0 ? _a : false,
60
+ });
58
61
  const disabled = disabledProp || fieldDisabled;
59
62
  const { getButtonProps } = (0, useButton_1.useButton)({ disabled });
60
63
  const [checked, setCheckedState] = (0, useControlled_1.useControlled)({
@@ -85,7 +88,8 @@ function SwitchRoot(componentProps) {
85
88
  return;
86
89
  }
87
90
  setCheckedState(nextChecked);
88
- validateField(nextChecked);
91
+ markChanged(nextChecked);
92
+ markTouched(nextChecked);
89
93
  },
90
94
  accessibilityRole: 'switch',
91
95
  accessibilityState: {
@@ -1 +1 @@
1
- {"version":3,"file":"SwitchRoot.js","sourceRoot":"","sources":["../../../src/switch/root/SwitchRoot.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBb,gCA2EC;;AAhGD,6CAA+B;AAC/B,+CAAqE;AACrE,6DAA0D;AAC1D,wEAAqE;AACrE,oEAAiE;AACjE,mGAAgG;AAEhG,mFAG8C;AAC9C,iDAA8C;AAC9C,2DAAwD;AAExD;;;;;;GAMG;AACH,SAAgB,UAAU,CAAC,cAAgC;IACzD,MAAM,EACJ,OAAO,EAAE,WAAW,EACpB,SAAS,EACT,cAAc,GAAG,KAAK,EACtB,QAAQ,EAAE,YAAY,GAAG,KAAK,EAC9B,eAAe,EACf,QAAQ,GAAG,KAAK,EAChB,MAAM,EACN,QAAQ,GAAG,KAAK,EAChB,KAAK,EACL,GAAG,EACH,GAAG,YAAY,EAChB,GAAG,cAAc,CAAC;IAEnB,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,IAAA,yDAA2B,GAAE,CAAC;IAEnF,MAAM,QAAQ,GAAG,YAAY,IAAI,aAAa,CAAC;IAE/C,MAAM,EAAE,cAAc,EAAE,GAAG,IAAA,qBAAS,EAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEnD,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,GAAG,IAAA,6BAAa,EAAC;QAC/C,UAAU,EAAE,WAAW;QACvB,OAAO,EAAE,cAAc;QACvB,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IAEH,MAAM,KAAK,GAAoB,KAAK,CAAC,OAAO,CAC1C,GAAG,EAAE,CAAC,CAAC;QACL,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;KACT,CAAC,EACF,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CACxC,CAAC;IAEF,MAAM,OAAO,GAAG,IAAA,mCAAgB,EAAC,wBAAS,EAAE,cAAc,EAAE;QAC1D,KAAK;QACL,GAAG;QACH,KAAK,EAAE;YACL;gBACE,OAAO,CAAC,KAA4B;oBAClC,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;wBACzB,OAAO;oBACT,CAAC;oBAED,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC;oBAC7B,MAAM,YAAY,GAAG,IAAA,mDAAwB,EAAC,iBAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oBAEnE,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAG,WAAW,EAAE,YAAY,CAAC,CAAC;oBAE7C,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;wBAC5B,OAAO;oBACT,CAAC;oBAED,eAAe,CAAC,WAAW,CAAC,CAAC;oBAC7B,aAAa,CAAC,WAAW,CAAC,CAAC;gBAC7B,CAAC;gBACD,iBAAiB,EAAE,QAAiB;gBACpC,kBAAkB,EAAE;oBAClB,OAAO;oBACP,QAAQ,EAAE,QAAQ,IAAI,SAAS;iBAChC;gBACD,eAAe,EAAE,QAAQ,IAAI,SAAS;gBACtC,eAAe,EAAE,QAAQ,IAAI,SAAS;gBACtC,GAAG,UAAU;aACd;YACD,YAAY;YACZ,cAAc;SACf;KACF,CAAC,CAAC;IAEH,OAAO,uBAAC,qCAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,OAAO,GAA8B,CAAC;AAC1F,CAAC"}
1
+ {"version":3,"file":"SwitchRoot.js","sourceRoot":"","sources":["../../../src/switch/root/SwitchRoot.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBb,gCA8EC;;AAnGD,6CAA+B;AAC/B,+CAAqE;AACrE,6DAA0D;AAC1D,wEAAqE;AACrE,oEAAiE;AACjE,mGAAgG;AAEhG,mFAG8C;AAC9C,iDAA8C;AAC9C,2DAAwD;AAExD;;;;;;GAMG;AACH,SAAgB,UAAU,CAAC,cAAgC;;IACzD,MAAM,EACJ,OAAO,EAAE,WAAW,EACpB,SAAS,EACT,cAAc,GAAG,KAAK,EACtB,QAAQ,EAAE,YAAY,GAAG,KAAK,EAC9B,eAAe,EACf,QAAQ,GAAG,KAAK,EAChB,MAAM,EACN,QAAQ,GAAG,KAAK,EAChB,KAAK,EACL,GAAG,EACH,GAAG,YAAY,EAChB,GAAG,cAAc,CAAC;IAEnB,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,IAAA,yDAA2B,EAAC;QAC1F,YAAY,EAAE,MAAA,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,WAAW,mCAAI,KAAK;KACrD,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,YAAY,IAAI,aAAa,CAAC;IAE/C,MAAM,EAAE,cAAc,EAAE,GAAG,IAAA,qBAAS,EAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEnD,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,GAAG,IAAA,6BAAa,EAAC;QAC/C,UAAU,EAAE,WAAW;QACvB,OAAO,EAAE,cAAc;QACvB,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IAEH,MAAM,KAAK,GAAoB,KAAK,CAAC,OAAO,CAC1C,GAAG,EAAE,CAAC,CAAC;QACL,OAAO;QACP,QAAQ;QACR,QAAQ;QACR,QAAQ;KACT,CAAC,EACF,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CACxC,CAAC;IAEF,MAAM,OAAO,GAAG,IAAA,mCAAgB,EAAC,wBAAS,EAAE,cAAc,EAAE;QAC1D,KAAK;QACL,GAAG;QACH,KAAK,EAAE;YACL;gBACE,OAAO,CAAC,KAA4B;oBAClC,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;wBACzB,OAAO;oBACT,CAAC;oBAED,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC;oBAC7B,MAAM,YAAY,GAAG,IAAA,mDAAwB,EAAC,iBAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oBAEnE,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAG,WAAW,EAAE,YAAY,CAAC,CAAC;oBAE7C,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;wBAC5B,OAAO;oBACT,CAAC;oBAED,eAAe,CAAC,WAAW,CAAC,CAAC;oBAC7B,WAAW,CAAC,WAAW,CAAC,CAAC;oBACzB,WAAW,CAAC,WAAW,CAAC,CAAC;gBAC3B,CAAC;gBACD,iBAAiB,EAAE,QAAiB;gBACpC,kBAAkB,EAAE;oBAClB,OAAO;oBACP,QAAQ,EAAE,QAAQ,IAAI,SAAS;iBAChC;gBACD,eAAe,EAAE,QAAQ,IAAI,SAAS;gBACtC,eAAe,EAAE,QAAQ,IAAI,SAAS;gBACtC,GAAG,UAAU;aACd;YACD,YAAY;YACZ,cAAc;SACf;KACF,CAAC,CAAC;IAEH,OAAO,uBAAC,qCAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,OAAO,GAA8B,CAAC;AAC1F,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { Pressable } from 'react-native';
3
3
  import type { CompositeItemLayout } from '../../internals/composite/list/CompositeListContext';
4
- import type { TabsRoot } from '../root/TabsRoot';
4
+ import type { TabsRootState } from '../root/TabsRoot';
5
5
  import type { ZestUIComponentProps } from '../../types';
6
6
  /**
7
7
  * An individual interactive tab button that toggles the corresponding panel.
@@ -27,7 +27,7 @@ export interface TabsTabMetadata {
27
27
  /** Filled in by `CompositeList` from the tab's `onLayout`. */
28
28
  layout?: CompositeItemLayout | undefined;
29
29
  }
30
- export interface TabsTabState {
30
+ export interface TabsTabState extends TabsRootState {
31
31
  /**
32
32
  * Whether the component should ignore user interaction.
33
33
  */
@@ -36,14 +36,6 @@ export interface TabsTabState {
36
36
  * Whether the component is active.
37
37
  */
38
38
  active: boolean;
39
- /**
40
- * The component orientation.
41
- */
42
- orientation: TabsRoot.Orientation;
43
- /**
44
- * The direction used for tab activation.
45
- */
46
- tabActivationDirection: TabsTab.ActivationDirection;
47
39
  /**
48
40
  * Whether the tab is currently pressed.
49
41
  */
@@ -1 +1 @@
1
- {"version":3,"file":"TabsTab.d.ts","sourceRoot":"","sources":["../../../src/tabs/tab/TabsTab.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAA8B,MAAM,cAAc,CAAC;AAKrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qDAAqD,CAAC;AAE/F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAIxD;;;GAGG;AACH,wBAAgB,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,KAAK,0EAgEpD;AAED,MAAM,MAAM,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC;AAEtC,MAAM,MAAM,0BAA0B,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;IACjC,8DAA8D;IAC9D,MAAM,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;CAC1C;AAED,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC;IAClC;;OAEG;IACH,sBAAsB,EAAE,OAAO,CAAC,mBAAmB,CAAC;IACpD;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YACf,SAAQ,IAAI,CAAC,oBAAoB,CAAC,OAAO,SAAS,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACvF;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;IACrB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC;AAED,yBAAiB,OAAO,CAAC;IACvB,KAAY,KAAK,GAAG,YAAY,CAAC;IACjC,KAAY,mBAAmB,GAAG,0BAA0B,CAAC;IAC7D,KAAY,QAAQ,GAAG,eAAe,CAAC;IACvC,KAAY,IAAI,GAAG,WAAW,CAAC;IAC/B,KAAY,QAAQ,GAAG,eAAe,CAAC;IACvC,KAAY,KAAK,GAAG,YAAY,CAAC;IACjC,KAAY,KAAK,GAAG,YAAY,CAAC;CAClC"}
1
+ {"version":3,"file":"TabsTab.d.ts","sourceRoot":"","sources":["../../../src/tabs/tab/TabsTab.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAA8B,MAAM,cAAc,CAAC;AAKrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qDAAqD,CAAC;AAE/F,OAAO,KAAK,EAAY,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAIxD;;;GAGG;AACH,wBAAgB,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,KAAK,0EAgEpD;AAED,MAAM,MAAM,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC;AAEtC,MAAM,MAAM,0BAA0B,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnF,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC;IACjC,8DAA8D;IAC9D,MAAM,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;CAC1C;AAED,MAAM,WAAW,YAAa,SAAQ,aAAa;IACjD;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YACf,SAAQ,IAAI,CAAC,oBAAoB,CAAC,OAAO,SAAS,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACvF;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC;IACrB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC;AAED,yBAAiB,OAAO,CAAC;IACvB,KAAY,KAAK,GAAG,YAAY,CAAC;IACjC,KAAY,mBAAmB,GAAG,0BAA0B,CAAC;IAC7D,KAAY,QAAQ,GAAG,eAAe,CAAC;IACvC,KAAY,IAAI,GAAG,WAAW,CAAC;IAC/B,KAAY,QAAQ,GAAG,eAAe,CAAC;IACvC,KAAY,KAAK,GAAG,YAAY,CAAC;IACjC,KAAY,KAAK,GAAG,YAAY,CAAC;CAClC"}
@@ -25,6 +25,16 @@ export interface TooltipPopupState {
25
25
  * The alignment the popup was actually placed with.
26
26
  */
27
27
  align: Align;
28
+ /**
29
+ * The trigger's measured width, available for consumers to size the popup
30
+ * against its anchor. This is the React Native equivalent of the web's
31
+ * `--anchor-width` CSS variable.
32
+ */
33
+ triggerWidth: number | undefined;
34
+ /**
35
+ * The trigger's measured height.
36
+ */
37
+ triggerHeight: number | undefined;
28
38
  }
29
39
  export interface TooltipPopupProps extends ZestUIComponentProps<typeof View, TooltipPopupState> {
30
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipPopup.d.ts","sourceRoot":"","sources":["../../../src/tooltip/popup/TooltipPopup.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAKpC,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,YAAY,CAAC,cAAc,EAAE,YAAY,CAAC,KAAK,8FAyB9D;AAED,MAAM,WAAW,iBAAiB;IAChC;;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;CACd;AAED,MAAM,WAAW,iBAAkB,SAAQ,oBAAoB,CAAC,OAAO,IAAI,EAAE,iBAAiB,CAAC;CAAG;AAElG,yBAAiB,YAAY,CAAC;IAC5B,KAAY,KAAK,GAAG,iBAAiB,CAAC;IACtC,KAAY,KAAK,GAAG,iBAAiB,CAAC;CACvC"}
1
+ {"version":3,"file":"TooltipPopup.d.ts","sourceRoot":"","sources":["../../../src/tooltip/popup/TooltipPopup.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAKpC,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,YAAY,CAAC,cAAc,EAAE,YAAY,CAAC,KAAK,8FAkC9D;AAED,MAAM,WAAW,iBAAiB;IAChC;;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;;;;OAIG;IACH,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC;;OAEG;IACH,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,iBAAkB,SAAQ,oBAAoB,CAAC,OAAO,IAAI,EAAE,iBAAiB,CAAC;CAAG;AAElG,yBAAiB,YAAY,CAAC;IAC5B,KAAY,KAAK,GAAG,iBAAiB,CAAC;IACtC,KAAY,KAAK,GAAG,iBAAiB,CAAC;CACvC"}
@@ -18,7 +18,16 @@ function TooltipPopup(componentProps) {
18
18
  const { side, align } = (0, TooltipPositionerContext_1.useTooltipPositionerContext)();
19
19
  const { transitionStatus } = (_a = (0, TooltipTransitionContext_1.useTooltipTransitionContext)()) !== null && _a !== void 0 ? _a : { transitionStatus: undefined };
20
20
  const open = store.useState('open');
21
- const state = { open, transitionStatus, side, align };
21
+ const triggerWidth = store.useState('triggerWidth');
22
+ const triggerHeight = store.useState('triggerHeight');
23
+ const state = {
24
+ open,
25
+ transitionStatus,
26
+ side,
27
+ align,
28
+ triggerWidth,
29
+ triggerHeight,
30
+ };
22
31
  return (0, useRenderElement_1.useRenderElement)(react_native_1.View, componentProps, {
23
32
  state,
24
33
  ref,
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipPopup.js","sourceRoot":"","sources":["../../../src/tooltip/popup/TooltipPopup.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAcb,oCAyBC;AAtCD,+CAAoC;AACpC,mEAAmE;AACnE,qFAAqF;AACrF,+EAA+E;AAC/E,wEAAqE;AAKrE;;;GAGG;AACH,SAAgB,YAAY,CAAC,cAAkC;;IAC7D,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC;IAE1E,MAAM,KAAK,GAAG,IAAA,0CAAqB,GAAE,CAAC;IACtC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAA,sDAA2B,GAAE,CAAC;IACtD,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAA,IAAA,sDAA2B,GAAE,mCAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC;IAE9F,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEpC,MAAM,KAAK,GAAsB,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAEzE,OAAO,IAAA,mCAAgB,EAAC,mBAAI,EAAE,cAAc,EAAE;QAC5C,KAAK;QACL,GAAG;QACH,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,SAAkB;gBACxB,iBAAiB,EAAE,SAAkB;gBACrC,wEAAwE;gBACxE,8BAA8B;gBAC9B,yBAAyB,EAAE,GAAG,EAAE,CAAC,IAAI;aACtC;YACD,YAAY;SACb;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"TooltipPopup.js","sourceRoot":"","sources":["../../../src/tooltip/popup/TooltipPopup.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAcb,oCAkCC;AA/CD,+CAAoC;AACpC,mEAAmE;AACnE,qFAAqF;AACrF,+EAA+E;AAC/E,wEAAqE;AAKrE;;;GAGG;AACH,SAAgB,YAAY,CAAC,cAAkC;;IAC7D,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC;IAE1E,MAAM,KAAK,GAAG,IAAA,0CAAqB,GAAE,CAAC;IACtC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAA,sDAA2B,GAAE,CAAC;IACtD,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAA,IAAA,sDAA2B,GAAE,mCAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC;IAE9F,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,GAAsB;QAC/B,IAAI;QACJ,gBAAgB;QAChB,IAAI;QACJ,KAAK;QACL,YAAY;QACZ,aAAa;KACd,CAAC;IAEF,OAAO,IAAA,mCAAgB,EAAC,mBAAI,EAAE,cAAc,EAAE;QAC5C,KAAK;QACL,GAAG;QACH,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,SAAkB;gBACxB,iBAAiB,EAAE,SAAkB;gBACrC,wEAAwE;gBACxE,8BAA8B;gBAC9B,yBAAyB,EAAE,GAAG,EAAE,CAAC,IAAI;aACtC;YACD,YAAY;SACb;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -11,6 +11,16 @@ export interface TooltipPositionerState {
11
11
  open: boolean;
12
12
  side: Side;
13
13
  align: Align;
14
+ /**
15
+ * The trigger's measured width, available for consumers to size the popup
16
+ * against its anchor. This is the React Native equivalent of the web's
17
+ * `--anchor-width` CSS variable.
18
+ */
19
+ triggerWidth: number | undefined;
20
+ /**
21
+ * The trigger's measured height.
22
+ */
23
+ triggerHeight: number | undefined;
14
24
  }
15
25
  export interface TooltipPositionerProps extends UseAnchorPositioningSharedParameters, ZestUIComponentProps<typeof View, TooltipPositionerState> {
16
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipPositioner.d.ts","sourceRoot":"","sources":["../../../src/tooltip/positioner/TooltipPositioner.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAMpC,OAAO,EAEL,KAAK,KAAK,EACV,KAAK,IAAI,EACT,KAAK,oCAAoC,EAC1C,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGxD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,KAAK,qBA4ExE;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,KAAK,CAAC;CACd;AAED,MAAM,WAAW,sBACf,SAAQ,oCAAoC,EAC1C,oBAAoB,CAAC,OAAO,IAAI,EAAE,sBAAsB,CAAC;CAAG;AAEhE,yBAAiB,iBAAiB,CAAC;IACjC,KAAY,KAAK,GAAG,sBAAsB,CAAC;IAC3C,KAAY,KAAK,GAAG,sBAAsB,CAAC;CAC5C"}
1
+ {"version":3,"file":"TooltipPositioner.d.ts","sourceRoot":"","sources":["../../../src/tooltip/positioner/TooltipPositioner.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAMpC,OAAO,EAEL,KAAK,KAAK,EACV,KAAK,IAAI,EACT,KAAK,oCAAoC,EAC1C,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGxD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,iBAAiB,CAAC,KAAK,qBAgFxE;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,KAAK,CAAC;IACb;;;;OAIG;IACH,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC;;OAEG;IACH,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,sBACf,SAAQ,oCAAoC,EAC1C,oBAAoB,CAAC,OAAO,IAAI,EAAE,sBAAsB,CAAC;CAAG;AAEhE,yBAAiB,iBAAiB,CAAC;IACjC,KAAY,KAAK,GAAG,sBAAsB,CAAC;IAC3C,KAAY,KAAK,GAAG,sBAAsB,CAAC;CAC5C"}
@@ -54,6 +54,8 @@ function TooltipPositioner(componentProps) {
54
54
  (0, TooltipPortalContext_1.useTooltipPortalContext)();
55
55
  const store = (0, TooltipRootContext_1.useTooltipRootContext)();
56
56
  const open = store.useState('open');
57
+ const triggerWidth = store.useState('triggerWidth');
58
+ const triggerHeight = store.useState('triggerHeight');
57
59
  const triggerNode = store.useState('triggerNode');
58
60
  const positioning = (0, useAnchorPositioning_1.useAnchorPositioning)({
59
61
  align,
@@ -79,6 +81,8 @@ function TooltipPositioner(componentProps) {
79
81
  open,
80
82
  side: positioning.side,
81
83
  align: positioning.align,
84
+ triggerWidth,
85
+ triggerHeight,
82
86
  };
83
87
  const contextValue = React.useMemo(() => ({ side: positioning.side, align: positioning.align, arrowRef, arrowStyles }), [positioning.side, positioning.align, arrowRef, arrowStyles]);
84
88
  const element = (0, useRenderElement_1.useRenderElement)(react_native_1.View, componentProps, {
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipPositioner.js","sourceRoot":"","sources":["../../../src/tooltip/positioner/TooltipPositioner.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBb,8CA4EC;;AAhGD,6CAA+B;AAC/B,+CAAoC;AACpC,mEAAmE;AACnE,yEAAyE;AACzE,wEAAqE;AACrE,uEAAoE;AACpE,6DAA0D;AAC1D,2EAK0C;AAE1C,yEAAsE;AAEtE;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,cAAuC;IACvE,MAAM,EACJ,KAAK,GAAG,QAAQ,EAChB,WAAW,GAAG,CAAC,EACf,YAAY,GAAG,CAAC,EAChB,SAAS,EACT,gBAAgB,GAAG,CAAC,EACpB,MAAM,EACN,IAAI,GAAG,KAAK,EACZ,UAAU,GAAG,CAAC,EACd,MAAM,GAAG,KAAK,EACd,KAAK,EACL,GAAG,EACH,GAAG,YAAY,EAChB,GAAG,cAAc,CAAC;IAEnB,IAAA,8CAAuB,GAAE,CAAC;IAC1B,MAAM,KAAK,GAAG,IAAA,0CAAqB,GAAE,CAAC;IACtC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAElD,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,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC;IAE9E,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,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC5B,OAAO,GAAG,EAAE;YACV,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAEpB,MAAM,SAAS,GAAG,IAAA,6BAAa,EAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAEvD,MAAM,KAAK,GAA2B;QACpC,IAAI;QACJ,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,KAAK,EAAE,WAAW,CAAC,KAAK;KACzB,CAAC;IAEF,MAAM,YAAY,GAA6B,KAAK,CAAC,OAAO,CAC1D,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,EACnF,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAC7D,CAAC;IAEF,MAAM,OAAO,GAAG,IAAA,mCAAgB,EAAC,mBAAI,EAAE,cAAc,EAAE;QACrD,KAAK;QACL,GAAG,EAAE,SAAS;QACd,KAAK,EAAE;YACL;gBACE,KAAK,EAAE,gBAAgB;gBACvB,QAAQ;oBACN,MAAM,EAAE,CAAC;gBACX,CAAC;aACF;YACD,YAAY;SACb;KACF,CAAC,CAAC;IAEH,OAAO,CACL,uBAAC,mDAAwB,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,YACnD,OAAO,GAC0B,CACrC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"TooltipPositioner.js","sourceRoot":"","sources":["../../../src/tooltip/positioner/TooltipPositioner.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBb,8CAgFC;;AApGD,6CAA+B;AAC/B,+CAAoC;AACpC,mEAAmE;AACnE,yEAAyE;AACzE,wEAAqE;AACrE,uEAAoE;AACpE,6DAA0D;AAC1D,2EAK0C;AAE1C,yEAAsE;AAEtE;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,cAAuC;IACvE,MAAM,EACJ,KAAK,GAAG,QAAQ,EAChB,WAAW,GAAG,CAAC,EACf,YAAY,GAAG,CAAC,EAChB,SAAS,EACT,gBAAgB,GAAG,CAAC,EACpB,MAAM,EACN,IAAI,GAAG,KAAK,EACZ,UAAU,GAAG,CAAC,EACd,MAAM,GAAG,KAAK,EACd,KAAK,EACL,GAAG,EACH,GAAG,YAAY,EAChB,GAAG,cAAc,CAAC;IAEnB,IAAA,8CAAuB,GAAE,CAAC;IAC1B,MAAM,KAAK,GAAG,IAAA,0CAAqB,GAAE,CAAC;IACtC,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;IACtD,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAElD,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,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC;IAE9E,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,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC5B,OAAO,GAAG,EAAE;YACV,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACjC,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAEpB,MAAM,SAAS,GAAG,IAAA,6BAAa,EAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAEvD,MAAM,KAAK,GAA2B;QACpC,IAAI;QACJ,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,KAAK,EAAE,WAAW,CAAC,KAAK;QACxB,YAAY;QACZ,aAAa;KACd,CAAC;IAEF,MAAM,YAAY,GAA6B,KAAK,CAAC,OAAO,CAC1D,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,EACnF,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAC7D,CAAC;IAEF,MAAM,OAAO,GAAG,IAAA,mCAAgB,EAAC,mBAAI,EAAE,cAAc,EAAE;QACrD,KAAK;QACL,GAAG,EAAE,SAAS;QACd,KAAK,EAAE;YACL;gBACE,KAAK,EAAE,gBAAgB;gBACvB,QAAQ;oBACN,MAAM,EAAE,CAAC;gBACX,CAAC;aACF;YACD,YAAY;SACb;KACF,CAAC,CAAC;IAEH,OAAO,CACL,uBAAC,mDAAwB,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,YACnD,OAAO,GAC0B,CACrC,CAAC;AACJ,CAAC"}
@@ -7,6 +7,15 @@ export type State = {
7
7
  * The anchor's native node, carried across the portal boundary.
8
8
  */
9
9
  triggerNode: unknown;
10
+ /**
11
+ * The trigger's measured width, the React Native counterpart of the web's
12
+ * `--anchor-width` CSS variable.
13
+ */
14
+ triggerWidth: number | undefined;
15
+ /**
16
+ * The trigger's measured height.
17
+ */
18
+ triggerHeight: number | undefined;
10
19
  update: (() => void) | undefined;
11
20
  };
12
21
  type Context = {
@@ -15,6 +24,8 @@ type Context = {
15
24
  declare const selectors: {
16
25
  open: (state: State) => boolean;
17
26
  triggerNode: (state: State) => unknown;
27
+ triggerWidth: (state: State) => number | undefined;
28
+ triggerHeight: (state: State) => number | undefined;
18
29
  update: (state: State) => (() => void) | undefined;
19
30
  };
20
31
  export declare class TooltipStore extends ReactStore<Readonly<State>, Context, typeof selectors> {
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipStore.d.ts","sourceRoot":"","sources":["../../../src/tooltip/store/TooltipStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CAClC,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,YAAY,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC,kBAAkB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACnG,CAAC;AAEF,QAAA,MAAM,SAAS;;;qCAPE,IAAI;CAWpB,CAAC;AAEF,qBAAa,YAAa,SAAQ,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,SAAS,CAAC;gBAC1E,YAAY,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC;IAQlC,OAAO,GAAI,UAAU,OAAO,EAAE,cAAc,WAAW,CAAC,kBAAkB,UAY/E;CACH"}
1
+ {"version":3,"file":"TooltipStore.d.ts","sourceRoot":"","sources":["../../../src/tooltip/store/TooltipStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC;;OAEG;IACH,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CAClC,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,YAAY,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC,kBAAkB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACnG,CAAC;AAEF,QAAA,MAAM,SAAS;;;;;qCAPE,IAAI;CAapB,CAAC;AAEF,qBAAa,YAAa,SAAQ,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,SAAS,CAAC;gBAC1E,YAAY,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC;IAgBlC,OAAO,GAAI,UAAU,OAAO,EAAE,cAAc,WAAW,CAAC,kBAAkB,UAY/E;CACH"}
@@ -6,11 +6,21 @@ const ReactStore_1 = require("../../store/ReactStore");
6
6
  const selectors = {
7
7
  open: (0, createSelector_1.createSelector)((state) => { var _a; return (_a = state.openProp) !== null && _a !== void 0 ? _a : state.open; }),
8
8
  triggerNode: (0, createSelector_1.createSelector)((state) => state.triggerNode),
9
+ triggerWidth: (0, createSelector_1.createSelector)((state) => state.triggerWidth),
10
+ triggerHeight: (0, createSelector_1.createSelector)((state) => state.triggerHeight),
9
11
  update: (0, createSelector_1.createSelector)((state) => state.update),
10
12
  };
11
13
  class TooltipStore extends ReactStore_1.ReactStore {
12
14
  constructor(initialState) {
13
- super({ open: false, openProp: undefined, triggerNode: null, update: undefined, ...initialState }, { onOpenChange: undefined }, selectors);
15
+ super({
16
+ open: false,
17
+ openProp: undefined,
18
+ triggerNode: null,
19
+ triggerWidth: undefined,
20
+ triggerHeight: undefined,
21
+ update: undefined,
22
+ ...initialState,
23
+ }, { onOpenChange: undefined }, selectors);
14
24
  this.setOpen = (nextOpen, eventDetails) => {
15
25
  var _a, _b;
16
26
  if (nextOpen === this.select('open')) {
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipStore.js","sourceRoot":"","sources":["../../../src/tooltip/store/TooltipStore.ts"],"names":[],"mappings":";;;AAAA,+DAA4D;AAC5D,uDAAoD;AAiBpD,MAAM,SAAS,GAAG;IAChB,IAAI,EAAE,IAAA,+BAAc,EAAC,CAAC,KAAY,EAAE,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,QAAQ,mCAAI,KAAK,CAAC,IAAI,CAAA,EAAA,CAAC;IACpE,WAAW,EAAE,IAAA,+BAAc,EAAC,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC;IAChE,MAAM,EAAE,IAAA,+BAAc,EAAC,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;CACvD,CAAC;AAEF,MAAa,YAAa,SAAQ,uBAAsD;IACtF,YAAY,YAA6B;QACvC,KAAK,CACH,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,YAAY,EAAE,EAC3F,EAAE,YAAY,EAAE,SAAS,EAAE,EAC3B,SAAS,CACV,CAAC;QAGG,YAAO,GAAG,CAAC,QAAiB,EAAE,YAA4C,EAAE,EAAE;;YACnF,IAAI,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrC,OAAO;YACT,CAAC;YAED,MAAA,MAAA,IAAI,CAAC,OAAO,EAAC,YAAY,mDAAG,QAAQ,EAAE,YAAY,CAAC,CAAC;YAEpD,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;gBAC5B,OAAO;YACT,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7B,CAAC,CAAC;IAdF,CAAC;CAeF;AAtBD,oCAsBC"}
1
+ {"version":3,"file":"TooltipStore.js","sourceRoot":"","sources":["../../../src/tooltip/store/TooltipStore.ts"],"names":[],"mappings":";;;AAAA,+DAA4D;AAC5D,uDAAoD;AA0BpD,MAAM,SAAS,GAAG;IAChB,IAAI,EAAE,IAAA,+BAAc,EAAC,CAAC,KAAY,EAAE,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,QAAQ,mCAAI,KAAK,CAAC,IAAI,CAAA,EAAA,CAAC;IACpE,WAAW,EAAE,IAAA,+BAAc,EAAC,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC;IAChE,YAAY,EAAE,IAAA,+BAAc,EAAC,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC;IAClE,aAAa,EAAE,IAAA,+BAAc,EAAC,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC;IACpE,MAAM,EAAE,IAAA,+BAAc,EAAC,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;CACvD,CAAC;AAEF,MAAa,YAAa,SAAQ,uBAAsD;IACtF,YAAY,YAA6B;QACvC,KAAK,CACH;YACE,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,SAAS;YACnB,WAAW,EAAE,IAAI;YACjB,YAAY,EAAE,SAAS;YACvB,aAAa,EAAE,SAAS;YACxB,MAAM,EAAE,SAAS;YACjB,GAAG,YAAY;SAChB,EACD,EAAE,YAAY,EAAE,SAAS,EAAE,EAC3B,SAAS,CACV,CAAC;QAGG,YAAO,GAAG,CAAC,QAAiB,EAAE,YAA4C,EAAE,EAAE;;YACnF,IAAI,QAAQ,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrC,OAAO;YACT,CAAC;YAED,MAAA,MAAA,IAAI,CAAC,OAAO,EAAC,YAAY,mDAAG,QAAQ,EAAE,YAAY,CAAC,CAAC;YAEpD,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;gBAC5B,OAAO;YACT,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC7B,CAAC,CAAC;IAdF,CAAC;CAeF;AA9BD,oCA8BC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipTrigger.d.ts","sourceRoot":"","sources":["../../../src/tooltip/trigger/TooltipTrigger.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAA8B,MAAM,cAAc,CAAC;AAIrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAIxD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,cAAc,EAAE,cAAc,CAAC,KAAK,0EAyDlE;AAED,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBACf,SAAQ,oBAAoB,CAAC,OAAO,SAAS,EAAE,mBAAmB,CAAC;IACnE;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACjC;AAED,yBAAiB,cAAc,CAAC;IAC9B,KAAY,KAAK,GAAG,mBAAmB,CAAC;IACxC,KAAY,KAAK,GAAG,mBAAmB,CAAC;CACzC"}
1
+ {"version":3,"file":"TooltipTrigger.d.ts","sourceRoot":"","sources":["../../../src/tooltip/trigger/TooltipTrigger.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAsD,MAAM,cAAc,CAAC;AAI7F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAIxD;;;GAGG;AACH,wBAAgB,cAAc,CAAC,cAAc,EAAE,cAAc,CAAC,KAAK,0EA4DlE;AAED,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBACf,SAAQ,oBAAoB,CAAC,OAAO,SAAS,EAAE,mBAAmB,CAAC;IACnE;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACjC;AAED,yBAAiB,cAAc,CAAC;IAC9B,KAAY,KAAK,GAAG,mBAAmB,CAAC;IACxC,KAAY,KAAK,GAAG,mBAAmB,CAAC;CACzC"}
@@ -77,8 +77,11 @@ function TooltipTrigger(componentProps) {
77
77
  onPressOut() {
78
78
  setPressed(false);
79
79
  },
80
- onLayout() {
80
+ onLayout(event) {
81
81
  var _a, _b;
82
+ const { width, height } = event.nativeEvent.layout;
83
+ store.set('triggerWidth', width);
84
+ store.set('triggerHeight', height);
82
85
  (_b = (_a = store.state).update) === null || _b === void 0 ? void 0 : _b.call(_a);
83
86
  },
84
87
  accessibilityState: { expanded: open, disabled: disabled || undefined },
@@ -1 +1 @@
1
- {"version":3,"file":"TooltipTrigger.js","sourceRoot":"","sources":["../../../src/tooltip/trigger/TooltipTrigger.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcb,wCAyDC;AAtED,6CAA+B;AAC/B,+CAAqE;AACrE,mEAAmE;AACnE,wEAAqE;AACrE,6DAA0D;AAE1D,mFAAgF;AAChF,iDAA8C;AAE9C;;;GAGG;AACH,SAAgB,cAAc,CAAC,cAAoC;IACjE,MAAM,EACJ,MAAM,EACN,SAAS,EACT,KAAK,EACL,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,KAAK,EACjB,GAAG,EACH,GAAG,YAAY,EAChB,GAAG,cAAc,CAAC;IAEnB,MAAM,KAAK,GAAG,IAAA,0CAAqB,GAAE,CAAC;IACtC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEpC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CACjC,CAAC,IAAa,EAAE,EAAE;QAChB,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC,EACD,CAAC,KAAK,CAAC,CACR,CAAC;IACF,MAAM,SAAS,GAAG,IAAA,6BAAa,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAEhD,MAAM,MAAM,GAAG,CAAC,KAA4B,EAAE,EAAE;QAC9C,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAA,mDAAwB,EAAC,iBAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC;IAEF,MAAM,KAAK,GAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAE/D,OAAO,IAAA,mCAAgB,EAAC,wBAAS,EAAE,cAAc,EAAE;QACjD,KAAK;QACL,GAAG,EAAE,SAAS;QACd,KAAK,EAAE;YACL;gBACE,yEAAyE;gBACzE,wBAAwB;gBACxB,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;gBACvC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBAC3C,SAAS;oBACP,UAAU,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;gBACD,UAAU;oBACR,UAAU,CAAC,KAAK,CAAC,CAAC;gBACpB,CAAC;gBACD,QAAQ;;oBACN,MAAA,MAAA,KAAK,CAAC,KAAK,EAAC,MAAM,kDAAI,CAAC;gBACzB,CAAC;gBACD,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,IAAI,SAAS,EAAE;aACxE;YACD,YAAY;SACb;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"TooltipTrigger.js","sourceRoot":"","sources":["../../../src/tooltip/trigger/TooltipTrigger.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcb,wCA4DC;AAzED,6CAA+B;AAC/B,+CAA6F;AAC7F,mEAAmE;AACnE,wEAAqE;AACrE,6DAA0D;AAE1D,mFAAgF;AAChF,iDAA8C;AAE9C;;;GAGG;AACH,SAAgB,cAAc,CAAC,cAAoC;IACjE,MAAM,EACJ,MAAM,EACN,SAAS,EACT,KAAK,EACL,QAAQ,GAAG,KAAK,EAChB,SAAS,GAAG,KAAK,EACjB,GAAG,EACH,GAAG,YAAY,EAChB,GAAG,cAAc,CAAC;IAEnB,MAAM,KAAK,GAAG,IAAA,0CAAqB,GAAE,CAAC;IACtC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEpC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CACjC,CAAC,IAAa,EAAE,EAAE;QAChB,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC,EACD,CAAC,KAAK,CAAC,CACR,CAAC;IACF,MAAM,SAAS,GAAG,IAAA,6BAAa,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAEhD,MAAM,MAAM,GAAG,CAAC,KAA4B,EAAE,EAAE;QAC9C,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAA,mDAAwB,EAAC,iBAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC;IAEF,MAAM,KAAK,GAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAE/D,OAAO,IAAA,mCAAgB,EAAC,wBAAS,EAAE,cAAc,EAAE;QACjD,KAAK;QACL,GAAG,EAAE,SAAS;QACd,KAAK,EAAE;YACL;gBACE,yEAAyE;gBACzE,wBAAwB;gBACxB,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;gBACvC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;gBAC3C,SAAS;oBACP,UAAU,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;gBACD,UAAU;oBACR,UAAU,CAAC,KAAK,CAAC,CAAC;gBACpB,CAAC;gBACD,QAAQ,CAAC,KAAwB;;oBAC/B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;oBACnD,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;oBACjC,KAAK,CAAC,GAAG,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;oBACnC,MAAA,MAAA,KAAK,CAAC,KAAK,EAAC,MAAM,kDAAI,CAAC;gBACzB,CAAC;gBACD,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,IAAI,SAAS,EAAE;aACxE;YACD,YAAY;SACb;KACF,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@limonify/zest-ui",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
4
  "description": "Base UI for React Native — headless, unstyled, accessible primitive components.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1,5 +1,5 @@
1
1
  export { AlertDialogRoot as Root } from './root/AlertDialogRoot';
2
- export { createAlertDialogHandle as createHandle } from './handle';
2
+ export { createAlertDialogHandle as createHandle, type AlertDialogHandle as Handle } from './handle';
3
3
  export { AlertDialogTrigger as Trigger } from './trigger/AlertDialogTrigger';
4
4
  export { DialogPortal as Portal } from '../dialog/portal/DialogPortal';
5
5
  export { DialogBackdrop as Backdrop } from '../dialog/backdrop/DialogBackdrop';
@@ -0,0 +1,18 @@
1
+ import { ComboboxHandle } from '../combobox/store/ComboboxHandle';
2
+
3
+ /**
4
+ * Controls an autocomplete imperatively, and associates an
5
+ * `Autocomplete.Input` rendered outside the root with it.
6
+ *
7
+ * An autocomplete reuses the combobox store, so it reuses its handle too — only
8
+ * the name in warnings differs.
9
+ */
10
+ export type AutocompleteHandle = ComboboxHandle;
11
+
12
+ /**
13
+ * Creates a handle that connects an `Autocomplete.Root` to an input rendered
14
+ * outside it, and controls it imperatively.
15
+ */
16
+ export function createAutocompleteHandle(): AutocompleteHandle {
17
+ return new ComboboxHandle('Autocomplete');
18
+ }
@@ -1,4 +1,5 @@
1
1
  export { AutocompleteRoot as Root } from './root/AutocompleteRoot';
2
+ export { createAutocompleteHandle as createHandle } from './handle';
2
3
 
3
4
  // An autocomplete reuses every combobox part but its Root.
4
5
  export { ComboboxInput as Input } from '../combobox/input/ComboboxInput';
@@ -1,3 +1,4 @@
1
1
  export * as Autocomplete from './index.parts';
2
2
 
3
3
  export type * from './root/AutocompleteRoot';
4
+ export type { AutocompleteHandle } from './handle';
@@ -1,11 +1,13 @@
1
1
  'use client';
2
- import * as React from 'react';
3
- import type { ZestNativeEvent } from '../../utils/createChangeEventDetails';
4
- import {
5
- ComboboxRootContext,
6
- type ComboboxItem,
7
- } from '../../combobox/root/ComboboxRootContext';
8
- import { useComboboxRoot, type ComboboxItems } from '../../combobox/root/useComboboxRoot';
2
+ import type * as React from 'react';
3
+ import { useRenderComboboxRoot } from '../../combobox/root/useRenderComboboxRoot';
4
+ import type { ComboboxHandle } from '../../combobox/store/ComboboxHandle';
5
+ import type { ComboboxItem, ComboboxItems } from '../../combobox/store/ComboboxStore';
6
+ import type {
7
+ ComboboxRootActions,
8
+ ComboboxRootChangeEventDetails,
9
+ ComboboxRootChangeEventReason,
10
+ } from '../../combobox/root/ComboboxRoot';
9
11
 
10
12
  /**
11
13
  * Groups all parts of the autocomplete: a free-text input with a list of
@@ -16,43 +18,13 @@ import { useComboboxRoot, type ComboboxItems } from '../../combobox/root/useComb
16
18
  * suggestion fills the input rather than selecting a separate value. It reuses
17
19
  * every combobox part.
18
20
  */
19
- export function AutocompleteRoot(props: AutocompleteRoot.Props) {
20
- const {
21
- items,
22
- inputValue,
23
- defaultInputValue,
24
- onInputValueChange,
25
- open,
26
- defaultOpen,
27
- onOpenChange,
28
- openOnFocus,
29
- filter,
30
- disabled = false,
31
- children,
32
- } = props;
33
-
34
- const contextValue = useComboboxRoot({
35
- mode: 'autocomplete',
36
- items,
37
- inputValue,
38
- defaultInputValue,
39
- onInputValueChange,
40
- open,
41
- defaultOpen,
42
- onOpenChange,
43
- openOnFocus,
44
- filter,
45
- disabled,
46
- });
47
-
48
- return (
49
- <ComboboxRootContext.Provider value={contextValue}>{children}</ComboboxRootContext.Provider>
50
- );
21
+ export function AutocompleteRoot<Payload = unknown>(props: AutocompleteRoot.Props<Payload>) {
22
+ return useRenderComboboxRoot(props, 'autocomplete');
51
23
  }
52
24
 
53
25
  export interface AutocompleteRootState {}
54
26
 
55
- export interface AutocompleteRootProps {
27
+ export interface AutocompleteRootProps<Payload = unknown> {
56
28
  /**
57
29
  * The suggestions. Strings, or `{ value, label }` records.
58
30
  */
@@ -66,39 +38,82 @@ export interface AutocompleteRootProps {
66
38
  */
67
39
  defaultInputValue?: string | undefined;
68
40
  /**
69
- * Called as the input text changes.
41
+ * Event handler called as the input text changes.
70
42
  */
71
- onInputValueChange?: ((value: string) => void) | undefined;
43
+ onInputValueChange?:
44
+ | ((value: string, eventDetails: AutocompleteRoot.ChangeEventDetails) => void)
45
+ | undefined;
72
46
  /**
73
- * Whether the suggestion list is open.
47
+ * Whether the suggestion list is currently open.
74
48
  */
75
49
  open?: boolean | undefined;
76
50
  /**
77
- * Whether the list is initially open when uncontrolled.
51
+ * Whether the list is initially open.
52
+ *
53
+ * To render a controlled autocomplete, use the `open` prop instead.
54
+ * @default false
78
55
  */
79
56
  defaultOpen?: boolean | undefined;
80
57
  /**
81
- * Called when the list opens or closes.
58
+ * Event handler called when the list is opened or closed.
82
59
  */
83
- onOpenChange?: ((open: boolean, event?: ZestNativeEvent) => void) | undefined;
60
+ onOpenChange?:
61
+ | ((open: boolean, eventDetails: AutocompleteRoot.ChangeEventDetails) => void)
62
+ | undefined;
84
63
  /**
85
64
  * Whether focusing the input opens the list.
86
65
  * @default true
87
66
  */
88
67
  openOnFocus?: boolean | undefined;
89
68
  /**
90
- * A custom filter predicate. Defaults to a case-insensitive label match.
69
+ * A custom filter predicate. Defaults to a locale-aware label match, so
70
+ * "resume" finds "Résumé" — see `useFilter` to build your own.
91
71
  */
92
72
  filter?: ((item: ComboboxItem, query: string) => boolean) | undefined;
93
73
  /**
94
- * Whether the autocomplete is disabled.
74
+ * Whether the component should ignore user interaction.
95
75
  * @default false
96
76
  */
97
77
  disabled?: boolean | undefined;
98
- children?: React.ReactNode;
78
+ /**
79
+ * Whether to prevent the list from closing on presses outside the popup.
80
+ * @default false
81
+ */
82
+ disablePointerDismissal?: boolean | undefined;
83
+ /**
84
+ * A ref to imperative actions.
85
+ */
86
+ actionsRef?: React.RefObject<AutocompleteRoot.Actions | null> | undefined;
87
+ /**
88
+ * A handle associating this autocomplete with an input rendered outside it,
89
+ * and letting it be opened and closed imperatively. Create one with
90
+ * `Autocomplete.createHandle()`.
91
+ */
92
+ handle?: ComboboxHandle | undefined;
93
+ /**
94
+ * The id of the input the list is anchored to.
95
+ */
96
+ triggerId?: string | null | undefined;
97
+ /**
98
+ * The id of the input the list is initially anchored to.
99
+ */
100
+ defaultTriggerId?: string | null | undefined;
101
+ /**
102
+ * The content of the autocomplete.
103
+ *
104
+ * Pass a function to receive the payload the list was opened with.
105
+ */
106
+ children?: React.ReactNode | ((payload: Payload) => React.ReactNode);
99
107
  }
100
108
 
101
109
  export namespace AutocompleteRoot {
102
110
  export type State = AutocompleteRootState;
103
- export type Props = AutocompleteRootProps;
111
+ export type Props<Payload = unknown> = AutocompleteRootProps<Payload>;
112
+ /**
113
+ * An autocomplete reuses the combobox store, so it reuses its event and
114
+ * action contracts too.
115
+ */
116
+ export type Actions = ComboboxRootActions;
117
+ export type ChangeEventReason = ComboboxRootChangeEventReason;
118
+ export type ChangeEventDetails = ComboboxRootChangeEventDetails;
104
119
  }
@@ -36,7 +36,9 @@ export function AvatarFallback(componentProps: AvatarFallback.Props) {
36
36
  return useRenderElement(View, componentProps, {
37
37
  state,
38
38
  ref,
39
- props: elementProps,
39
+ // A fallback stands in for the image, so it announces as one too — the
40
+ // initials or icon inside it are what a screen reader reads out.
41
+ props: [{ accessibilityRole: 'image' as const }, elementProps],
40
42
  enabled: imageLoadingStatus !== 'loaded' && (delay === 0 || delayPassed),
41
43
  });
42
44
  }
@@ -52,6 +52,11 @@ export function AvatarImage(componentProps: AvatarImage.Props) {
52
52
  ref,
53
53
  props: [
54
54
  {
55
+ // An avatar image is content, not decoration: without a role assistive
56
+ // tech has nothing to announce it as. Pass `accessibilityLabel` (or
57
+ // `alt`) for the person it depicts; leave it off and RN treats the
58
+ // image as unlabelled, which is the right default for a decorative one.
59
+ accessibilityRole: 'image' as const,
55
60
  onLoadStart() {
56
61
  publishStatus('loading');
57
62
  },
@@ -44,7 +44,9 @@ export function CheckboxRoot(componentProps: CheckboxRoot.Props) {
44
44
  const parentContext = groupContext?.parent;
45
45
  const isGroupedWithParent = parentContext != null && groupContext?.allValues != null;
46
46
 
47
- const { fieldDisabled, fieldProps, validateField } = useFieldControlRegistration();
47
+ const { fieldDisabled, fieldProps, markChanged, markTouched } = useFieldControlRegistration({
48
+ initialValue: defaultChecked ?? checkedProp ?? false,
49
+ });
48
50
 
49
51
  const disabled = (groupContext?.disabled || disabledProp || fieldDisabled) ?? false;
50
52
 
@@ -133,7 +135,10 @@ export function CheckboxRoot(componentProps: CheckboxRoot.Props) {
133
135
  }
134
136
 
135
137
  setCheckedState(nextChecked);
136
- validateField(nextChecked);
138
+ // A press is both the change and the end of the interaction: there is
139
+ // no blur on a checkbox to mark it touched later.
140
+ markChanged(nextChecked);
141
+ markTouched(nextChecked);
137
142
 
138
143
  if (value && groupValue && setGroupValue && !parent && !isGroupedWithParent) {
139
144
  const nextGroupValue = nextChecked