@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
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useFilter = void 0;
4
+ var useFilter_1 = require("./useFilter");
5
+ Object.defineProperty(exports, "useFilter", { enumerable: true, get: function () { return useFilter_1.useFilter; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/filter/index.ts"],"names":[],"mappings":";;;AAAA,yCAIqB;AAHnB,sGAAA,SAAS,OAAA"}
@@ -0,0 +1,45 @@
1
+ export interface UseFilterParameters extends Intl.CollatorOptions {
2
+ /**
3
+ * The locale to compare in, as a BCP 47 language tag. Defaults to the
4
+ * runtime's.
5
+ */
6
+ locale?: string | undefined;
7
+ }
8
+ export interface UseFilterReturnValue {
9
+ /**
10
+ * Whether `string` starts with `substring`.
11
+ */
12
+ startsWith: (string: string, substring: string) => boolean;
13
+ /**
14
+ * Whether `string` ends with `substring`.
15
+ */
16
+ endsWith: (string: string, substring: string) => boolean;
17
+ /**
18
+ * Whether `string` contains `substring` anywhere.
19
+ */
20
+ contains: (string: string, substring: string) => boolean;
21
+ }
22
+ /**
23
+ * Locale-aware string matching for filtering a list.
24
+ *
25
+ * `Intl.Collator` is what makes this better than `toLowerCase().includes()`: at
26
+ * the default `'base'` sensitivity, "resume" matches "Résumé" and "PENO" matches
27
+ * "Jalapeño" — which a lowercase comparison never will. Pass
28
+ * `sensitivity: 'case'` (or any other `Intl.CollatorOptions`) to tighten it.
29
+ *
30
+ * All three compare a **fixed-width** window, so a query only matches a run of
31
+ * the same length. Characters that fold to a different number of characters are
32
+ * therefore not matched across that boundary: "straße" (6) does not find
33
+ * "STRASSE" (7), even though the collator considers the two equal. Scanning
34
+ * every width instead would make every keystroke quadratic.
35
+ *
36
+ * ```tsx
37
+ * const { contains } = useFilter({ sensitivity: 'base' });
38
+ * const matches = items.filter((item) => contains(item.label, query));
39
+ * ```
40
+ *
41
+ * This is the default filter behind `Combobox.Root` and `Autocomplete.Root`;
42
+ * use it directly when you filter the items yourself.
43
+ */
44
+ export declare function useFilter(options?: UseFilterParameters): UseFilterReturnValue;
45
+ //# sourceMappingURL=useFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFilter.d.ts","sourceRoot":"","sources":["../../src/filter/useFilter.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,eAAe;IAC/D;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3D;;OAEG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IACzD;;OAEG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;CAC1D;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,oBAAoB,CA8C7E"}
@@ -0,0 +1,96 @@
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.useFilter = useFilter;
38
+ const React = __importStar(require("react"));
39
+ /**
40
+ * Locale-aware string matching for filtering a list.
41
+ *
42
+ * `Intl.Collator` is what makes this better than `toLowerCase().includes()`: at
43
+ * the default `'base'` sensitivity, "resume" matches "Résumé" and "PENO" matches
44
+ * "Jalapeño" — which a lowercase comparison never will. Pass
45
+ * `sensitivity: 'case'` (or any other `Intl.CollatorOptions`) to tighten it.
46
+ *
47
+ * All three compare a **fixed-width** window, so a query only matches a run of
48
+ * the same length. Characters that fold to a different number of characters are
49
+ * therefore not matched across that boundary: "straße" (6) does not find
50
+ * "STRASSE" (7), even though the collator considers the two equal. Scanning
51
+ * every width instead would make every keystroke quadratic.
52
+ *
53
+ * ```tsx
54
+ * const { contains } = useFilter({ sensitivity: 'base' });
55
+ * const matches = items.filter((item) => contains(item.label, query));
56
+ * ```
57
+ *
58
+ * This is the default filter behind `Combobox.Root` and `Autocomplete.Root`;
59
+ * use it directly when you filter the items yourself.
60
+ */
61
+ function useFilter(options) {
62
+ const { locale, ...collatorOptions } = options !== null && options !== void 0 ? options : {};
63
+ // `usage: 'search'` is what makes a collator answer "are these equal for
64
+ // matching purposes" rather than "how do these sort".
65
+ const collator = React.useMemo(() => new Intl.Collator(locale, { usage: 'search', sensitivity: 'base', ...collatorOptions }),
66
+ // eslint-disable-next-line react-hooks/exhaustive-deps
67
+ [locale, JSON.stringify(collatorOptions)]);
68
+ return React.useMemo(() => ({
69
+ startsWith(string, substring) {
70
+ if (substring.length === 0) {
71
+ return true;
72
+ }
73
+ return collator.compare(string.slice(0, substring.length), substring) === 0;
74
+ },
75
+ endsWith(string, substring) {
76
+ if (substring.length === 0) {
77
+ return true;
78
+ }
79
+ return collator.compare(string.slice(-substring.length), substring) === 0;
80
+ },
81
+ contains(string, substring) {
82
+ if (substring.length === 0) {
83
+ return true;
84
+ }
85
+ // A collator compares whole strings, so a scan is the only way to ask
86
+ // about a substring.
87
+ for (let index = 0; index <= string.length - substring.length; index += 1) {
88
+ if (collator.compare(string.slice(index, index + substring.length), substring) === 0) {
89
+ return true;
90
+ }
91
+ }
92
+ return false;
93
+ },
94
+ }), [collator]);
95
+ }
96
+ //# sourceMappingURL=useFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFilter.js","sourceRoot":"","sources":["../../src/filter/useFilter.ts"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDb,8BA8CC;AA7FD,6CAA+B;AAyB/B;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,SAAgB,SAAS,CAAC,OAA6B;IACrD,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,CAAC;IAErD,yEAAyE;IACzE,sDAAsD;IACtD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAC5B,GAAG,EAAE,CACH,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;IACzF,uDAAuD;IACvD,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAC1C,CAAC;IAEF,OAAO,KAAK,CAAC,OAAO,CAClB,GAAG,EAAE,CAAC,CAAC;QACL,UAAU,CAAC,MAAc,EAAE,SAAiB;YAC1C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9E,CAAC;QACD,QAAQ,CAAC,MAAc,EAAE,SAAiB;YACxC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QAC5E,CAAC;QACD,QAAQ,CAAC,MAAc,EAAE,SAAiB;YACxC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO,IAAI,CAAC;YACd,CAAC;YAED,sEAAsE;YACtE,qBAAqB;YACrB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;gBAC1E,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;oBACrF,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC,EACF,CAAC,QAAQ,CAAC,CACX,CAAC;AACJ,CAAC"}
package/lib/index.d.ts CHANGED
@@ -30,6 +30,7 @@ export * from './toast';
30
30
  export * from './tooltip';
31
31
  export * from './toggle';
32
32
  export * from './toggle-group';
33
+ export * from './filter';
33
34
  export * from './store';
34
35
  export * from './hooks';
35
36
  export * from './types';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAE/B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EACL,wBAAwB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,GACrB,MAAM,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAE/B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EACL,wBAAwB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,GACrB,MAAM,kCAAkC,CAAC"}
package/lib/index.js CHANGED
@@ -47,6 +47,7 @@ __exportStar(require("./toast"), exports);
47
47
  __exportStar(require("./tooltip"), exports);
48
48
  __exportStar(require("./toggle"), exports);
49
49
  __exportStar(require("./toggle-group"), exports);
50
+ __exportStar(require("./filter"), exports);
50
51
  __exportStar(require("./store"), exports);
51
52
  __exportStar(require("./hooks"), exports);
52
53
  __exportStar(require("./types"), exports);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,iDAA+B;AAC/B,iDAA+B;AAC/B,2CAAyB;AACzB,2CAAyB;AACzB,6CAA2B;AAC3B,mDAAiC;AACjC,gDAA8B;AAC9B,6CAA2B;AAC3B,iDAA+B;AAC/B,2CAAyB;AACzB,2CAAyB;AACzB,0CAAwB;AACxB,6CAA2B;AAC3B,0CAAwB;AACxB,yCAAuB;AACvB,0CAAwB;AACxB,iDAA+B;AAC/B,8CAA4B;AAC5B,4CAA0B;AAC1B,6CAA2B;AAC3B,0CAAwB;AACxB,gDAA8B;AAC9B,2CAAyB;AACzB,8CAA4B;AAC5B,2CAAyB;AACzB,2CAAyB;AACzB,yCAAuB;AACvB,0CAAwB;AACxB,4CAA0B;AAC1B,2CAAyB;AACzB,iDAA+B;AAE/B,0CAAwB;AACxB,0CAAwB;AACxB,0CAAwB;AACxB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,6CAAwD;AAA/C,yGAAA,UAAU,OAAA;AAAE,0GAAA,WAAW,OAAA;AAChC,2CAA0C;AAAjC,kGAAA,OAAO,OAAA;AAEhB,6EAI0C;AAHxC,oIAAA,wBAAwB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,iDAA+B;AAC/B,iDAA+B;AAC/B,2CAAyB;AACzB,2CAAyB;AACzB,6CAA2B;AAC3B,mDAAiC;AACjC,gDAA8B;AAC9B,6CAA2B;AAC3B,iDAA+B;AAC/B,2CAAyB;AACzB,2CAAyB;AACzB,0CAAwB;AACxB,6CAA2B;AAC3B,0CAAwB;AACxB,yCAAuB;AACvB,0CAAwB;AACxB,iDAA+B;AAC/B,8CAA4B;AAC5B,4CAA0B;AAC1B,6CAA2B;AAC3B,0CAAwB;AACxB,gDAA8B;AAC9B,2CAAyB;AACzB,8CAA4B;AAC5B,2CAAyB;AACzB,2CAAyB;AACzB,yCAAuB;AACvB,0CAAwB;AACxB,4CAA0B;AAC1B,2CAAyB;AACzB,iDAA+B;AAE/B,2CAAyB;AACzB,0CAAwB;AACxB,0CAAwB;AACxB,0CAAwB;AACxB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,6CAAwD;AAA/C,yGAAA,UAAU,OAAA;AAAE,0GAAA,WAAW,OAAA;AAChC,2CAA0C;AAAjC,kGAAA,OAAO,OAAA;AAEhB,6EAI0C;AAHxC,oIAAA,wBAAwB,OAAA"}
@@ -1,35 +1,54 @@
1
+ export interface UseFieldControlRegistrationParameters {
2
+ /**
3
+ * The control's value at mount. `dirty` is whether the current value still
4
+ * equals this one.
5
+ */
6
+ initialValue?: unknown;
7
+ /**
8
+ * Whether a value counts as filled. Defaults to "not null, empty, or false".
9
+ */
10
+ isFilled?: ((value: unknown) => boolean) | undefined;
11
+ }
1
12
  /**
2
- * Wires a non-text form control (Checkbox, Switch, RadioGroup, NumberField) into
3
- * a surrounding `Field.Root`, when there is one.
13
+ * Wires a non-text form control (Checkbox, Switch, RadioGroup, NumberField,
14
+ * Slider, Select, OTPField) into a surrounding `Field.Root`, when there is one.
4
15
  *
5
16
  * A field-aware control:
6
17
  * - is labelled by `Field.Label` and described by `Field.Description`/`Error`
7
18
  * (through `accessibilityLabelledBy`/`accessibilityDescribedBy`);
8
19
  * - inherits the field's (and its fieldset's) `disabled`;
9
- * - runs the field's `validate` when its value changes.
20
+ * - runs the field's `validate` when its value changes;
21
+ * - reports `dirty`/`filled`/`touched`/`focused` back to the field, which is
22
+ * what `Field.Validity` and `Field.Error` branch on.
10
23
  *
11
24
  * Outside a `Field.Root` everything is `undefined`/no-op, so a standalone
12
25
  * control is unaffected.
13
26
  */
14
- export declare function useFieldControlRegistration(): {
27
+ export declare function useFieldControlRegistration(parameters?: UseFieldControlRegistrationParameters): {
15
28
  /**
16
29
  * `true` when a surrounding field (or fieldset) is disabled.
17
30
  */
18
31
  fieldDisabled: boolean;
19
32
  /**
20
33
  * Accessibility props associating the control with the field's label and
21
- * messages. Spread into the control's props before `elementProps`.
34
+ * messages, and reporting its validity. Spread into the control's props
35
+ * before `elementProps`.
22
36
  */
23
37
  fieldProps: {
24
38
  accessibilityLabelledBy: string | undefined;
25
39
  accessibilityDescribedBy: string | undefined;
26
40
  'aria-labelledby': string | undefined;
27
41
  'aria-describedby': string | undefined;
42
+ 'aria-invalid': true | undefined;
28
43
  };
29
44
  /**
30
- * Runs the field's validation for a new control value. No-op without a field.
45
+ * Runs the field's validation for a new control value, regardless of
46
+ * `validationMode`. No-op without a field.
31
47
  */
32
48
  validateField: (value: unknown) => void;
49
+ markChanged: (value: unknown) => void;
50
+ markTouched: (value: unknown) => void;
51
+ markFocused: (focused: boolean) => void;
33
52
  /**
34
53
  * Whether a surrounding field is present at all.
35
54
  */
@@ -1 +1 @@
1
- {"version":3,"file":"useFieldControlRegistration.d.ts","sourceRoot":"","sources":["../../../src/internals/field/useFieldControlRegistration.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B;IAevC;;OAEG;;IAEH;;;OAGG;;;;;;;IAOH;;OAEG;2BA5BsC,OAAO;IA8BhD;;OAEG;;EAGN"}
1
+ {"version":3,"file":"useFieldControlRegistration.d.ts","sourceRoot":"","sources":["../../../src/internals/field/useFieldControlRegistration.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,qCAAqC;IACpD;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,SAAS,CAAC;CACtD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,GAAE,qCAA0C;IA4DpD;;OAEG;;IAEH;;;;OAIG;;;;;;;;IAQH;;;OAGG;2BArEsC,OAAO;yBAaJ,OAAO;yBAiBP,OAAO;2BAYL,OAAO;IAgCrD;;OAEG;;EAGN"}
@@ -1,25 +1,75 @@
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.useFieldControlRegistration = useFieldControlRegistration;
38
+ const React = __importStar(require("react"));
5
39
  const FieldRootContext_1 = require("../../field/root/FieldRootContext");
6
40
  const useStableCallback_1 = require("../../hooks/useStableCallback");
41
+ /** Whether a value counts as "the user has put something in this control". */
42
+ function defaultIsFilled(value) {
43
+ if (value == null || value === false || value === '') {
44
+ return false;
45
+ }
46
+ if (Array.isArray(value)) {
47
+ return value.length > 0;
48
+ }
49
+ return true;
50
+ }
7
51
  /**
8
- * Wires a non-text form control (Checkbox, Switch, RadioGroup, NumberField) into
9
- * a surrounding `Field.Root`, when there is one.
52
+ * Wires a non-text form control (Checkbox, Switch, RadioGroup, NumberField,
53
+ * Slider, Select, OTPField) into a surrounding `Field.Root`, when there is one.
10
54
  *
11
55
  * A field-aware control:
12
56
  * - is labelled by `Field.Label` and described by `Field.Description`/`Error`
13
57
  * (through `accessibilityLabelledBy`/`accessibilityDescribedBy`);
14
58
  * - inherits the field's (and its fieldset's) `disabled`;
15
- * - runs the field's `validate` when its value changes.
59
+ * - runs the field's `validate` when its value changes;
60
+ * - reports `dirty`/`filled`/`touched`/`focused` back to the field, which is
61
+ * what `Field.Validity` and `Field.Error` branch on.
16
62
  *
17
63
  * Outside a `Field.Root` everything is `undefined`/no-op, so a standalone
18
64
  * control is unaffected.
19
65
  */
20
- function useFieldControlRegistration() {
66
+ function useFieldControlRegistration(parameters = {}) {
21
67
  var _a;
68
+ const { initialValue, isFilled = defaultIsFilled } = parameters;
22
69
  const field = (0, FieldRootContext_1.useFieldRootContext)(false);
70
+ // Only the value the control mounted with decides `dirty`; a later prop change
71
+ // from the consumer is a new baseline they set themselves, not user input.
72
+ const initialValueRef = React.useRef(initialValue);
23
73
  const validate = (0, useStableCallback_1.useStableCallback)((value) => {
24
74
  if (!field) {
25
75
  return;
@@ -27,6 +77,37 @@ function useFieldControlRegistration() {
27
77
  const errors = field.runValidation(value);
28
78
  field.setValidityData({ valid: errors.length === 0, errors });
29
79
  });
80
+ /**
81
+ * Records a user-driven value change: the field becomes dirty (unless the
82
+ * value is back to where it started), filled tracks the new value, and
83
+ * `onChange` validation runs.
84
+ */
85
+ const markChanged = (0, useStableCallback_1.useStableCallback)((value) => {
86
+ if (!field) {
87
+ return;
88
+ }
89
+ field.setDirty(!Object.is(value, initialValueRef.current));
90
+ field.setFilled(isFilled(value));
91
+ if (field.validationMode === 'onChange') {
92
+ validate(value);
93
+ }
94
+ });
95
+ /**
96
+ * Records that the user is done with the control — the counterpart of a blur
97
+ * on a text input, which is when `onBlur` validation runs.
98
+ */
99
+ const markTouched = (0, useStableCallback_1.useStableCallback)((value) => {
100
+ if (!field) {
101
+ return;
102
+ }
103
+ field.setTouched(true);
104
+ if (field.validationMode === 'onBlur') {
105
+ validate(value);
106
+ }
107
+ });
108
+ const markFocused = (0, useStableCallback_1.useStableCallback)((focused) => {
109
+ field === null || field === void 0 ? void 0 : field.setFocused(focused);
110
+ });
30
111
  const describedBy = field && field.messageIds.length > 0 ? field.messageIds.join(' ') : undefined;
31
112
  return {
32
113
  /**
@@ -35,18 +116,24 @@ function useFieldControlRegistration() {
35
116
  fieldDisabled: (_a = field === null || field === void 0 ? void 0 : field.disabled) !== null && _a !== void 0 ? _a : false,
36
117
  /**
37
118
  * Accessibility props associating the control with the field's label and
38
- * messages. Spread into the control's props before `elementProps`.
119
+ * messages, and reporting its validity. Spread into the control's props
120
+ * before `elementProps`.
39
121
  */
40
122
  fieldProps: {
41
123
  accessibilityLabelledBy: field === null || field === void 0 ? void 0 : field.labelId,
42
124
  accessibilityDescribedBy: describedBy,
43
125
  'aria-labelledby': field === null || field === void 0 ? void 0 : field.labelId,
44
126
  'aria-describedby': describedBy,
127
+ 'aria-invalid': (field === null || field === void 0 ? void 0 : field.validityData.valid) === false || undefined,
45
128
  },
46
129
  /**
47
- * Runs the field's validation for a new control value. No-op without a field.
130
+ * Runs the field's validation for a new control value, regardless of
131
+ * `validationMode`. No-op without a field.
48
132
  */
49
133
  validateField: validate,
134
+ markChanged,
135
+ markTouched,
136
+ markFocused,
50
137
  /**
51
138
  * Whether a surrounding field is present at all.
52
139
  */
@@ -1 +1 @@
1
- {"version":3,"file":"useFieldControlRegistration.js","sourceRoot":"","sources":["../../../src/internals/field/useFieldControlRegistration.ts"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAiBb,kEAsCC;AAtDD,wEAAwE;AACxE,qEAAkE;AAElE;;;;;;;;;;;;GAYG;AACH,SAAgB,2BAA2B;;IACzC,MAAM,KAAK,GAAG,IAAA,sCAAmB,EAAC,KAAK,CAAC,CAAC;IAEzC,MAAM,QAAQ,GAAG,IAAA,qCAAiB,EAAC,CAAC,KAAc,EAAE,EAAE;QACpD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,KAAK,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GACf,KAAK,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEhF,OAAO;QACL;;WAEG;QACH,aAAa,EAAE,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,mCAAI,KAAK;QACvC;;;WAGG;QACH,UAAU,EAAE;YACV,uBAAuB,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO;YACvC,wBAAwB,EAAE,WAAW;YACrC,iBAAiB,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO;YACjC,kBAAkB,EAAE,WAAW;SAChC;QACD;;WAEG;QACH,aAAa,EAAE,QAAQ;QACvB;;WAEG;QACH,QAAQ,EAAE,KAAK,IAAI,IAAI;KACxB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"useFieldControlRegistration.js","sourceRoot":"","sources":["../../../src/internals/field/useFieldControlRegistration.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,16 @@ export interface MenuPopupState {
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 MenuPopupProps extends ZestUIComponentProps<typeof View, MenuPopupState> {
30
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MenuPopup.d.ts","sourceRoot":"","sources":["../../../src/menu/popup/MenuPopup.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,SAAS,CAAC,cAAc,EAAE,SAAS,CAAC,KAAK,+BA2BxD;AAED,MAAM,WAAW,cAAc;IAC7B;;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,cAAe,SAAQ,oBAAoB,CAAC,OAAO,IAAI,EAAE,cAAc,CAAC;CAAG;AAE5F,yBAAiB,SAAS,CAAC;IACzB,KAAY,KAAK,GAAG,cAAc,CAAC;IACnC,KAAY,KAAK,GAAG,cAAc,CAAC;CACpC"}
1
+ {"version":3,"file":"MenuPopup.d.ts","sourceRoot":"","sources":["../../../src/menu/popup/MenuPopup.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,SAAS,CAAC,cAAc,EAAE,SAAS,CAAC,KAAK,+BAoCxD;AAED,MAAM,WAAW,cAAc;IAC7B;;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,cAAe,SAAQ,oBAAoB,CAAC,OAAO,IAAI,EAAE,cAAc,CAAC;CAAG;AAE5F,yBAAiB,SAAS,CAAC;IACzB,KAAY,KAAK,GAAG,cAAc,CAAC;IACnC,KAAY,KAAK,GAAG,cAAc,CAAC;CACpC"}
@@ -20,7 +20,16 @@ function MenuPopup(componentProps) {
20
20
  const { side, align } = (0, MenuPositionerContext_1.useMenuPositionerContext)();
21
21
  const { transitionStatus } = (_a = (0, MenuTransitionContext_1.useMenuTransitionContext)()) !== null && _a !== void 0 ? _a : { transitionStatus: undefined };
22
22
  const open = store.useState('open');
23
- const state = { open, transitionStatus, side, align };
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
+ };
24
33
  const element = (0, useRenderElement_1.useRenderElement)(react_native_1.View, componentProps, {
25
34
  state,
26
35
  ref,
@@ -1 +1 @@
1
- {"version":3,"file":"MenuPopup.js","sourceRoot":"","sources":["../../../src/menu/popup/MenuPopup.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAeb,8BA2BC;;AAzCD,+CAAoC;AACpC,6DAA6D;AAC7D,+EAA+E;AAC/E,yEAAyE;AACzE,wEAAqE;AACrE,gFAA6E;AAK7E;;;GAGG;AACH,SAAgB,SAAS,CAAC,cAA+B;;IACvD,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC;IAE1E,MAAM,KAAK,GAAG,IAAA,oCAAkB,GAAE,CAAC;IACnC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAA,gDAAwB,GAAE,CAAC;IACnD,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAA,IAAA,gDAAwB,GAAE,mCAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC;IAE3F,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEpC,MAAM,KAAK,GAAmB,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAEtE,MAAM,OAAO,GAAG,IAAA,mCAAgB,EAAC,mBAAI,EAAE,cAAc,EAAE;QACrD,KAAK;QACL,GAAG;QACH,KAAK,EAAE;YACL;gBACE,iBAAiB,EAAE,MAAe;gBAClC,wEAAwE;gBACxE,oCAAoC;gBACpC,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
+ {"version":3,"file":"MenuPopup.js","sourceRoot":"","sources":["../../../src/menu/popup/MenuPopup.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAeb,8BAoCC;;AAlDD,+CAAoC;AACpC,6DAA6D;AAC7D,+EAA+E;AAC/E,yEAAyE;AACzE,wEAAqE;AACrE,gFAA6E;AAK7E;;;GAGG;AACH,SAAgB,SAAS,CAAC,cAA+B;;IACvD,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC;IAE1E,MAAM,KAAK,GAAG,IAAA,oCAAkB,GAAE,CAAC;IACnC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAA,gDAAwB,GAAE,CAAC;IACnD,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAA,IAAA,gDAAwB,GAAE,mCAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC;IAE3F,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,GAAmB;QAC5B,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,wEAAwE;gBACxE,oCAAoC;gBACpC,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"}
@@ -11,6 +11,16 @@ export interface MenuPositionerState {
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 MenuPositionerProps extends UseAnchorPositioningSharedParameters, ZestUIComponentProps<typeof View, MenuPositionerState> {
16
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MenuPositioner.d.ts","sourceRoot":"","sources":["../../../src/menu/positioner/MenuPositioner.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,cAAc,CAAC,cAAc,EAAE,cAAc,CAAC,KAAK,qBAsElE;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,KAAK,CAAC;CACd;AAED,MAAM,WAAW,mBACf,SAAQ,oCAAoC,EAC1C,oBAAoB,CAAC,OAAO,IAAI,EAAE,mBAAmB,CAAC;CAAG;AAE7D,yBAAiB,cAAc,CAAC;IAC9B,KAAY,KAAK,GAAG,mBAAmB,CAAC;IACxC,KAAY,KAAK,GAAG,mBAAmB,CAAC;CACzC"}
1
+ {"version":3,"file":"MenuPositioner.d.ts","sourceRoot":"","sources":["../../../src/menu/positioner/MenuPositioner.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,cAAc,CAAC,cAAc,EAAE,cAAc,CAAC,KAAK,qBA8ElE;AAED,MAAM,WAAW,mBAAmB;IAClC,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,mBACf,SAAQ,oCAAoC,EAC1C,oBAAoB,CAAC,OAAO,IAAI,EAAE,mBAAmB,CAAC;CAAG;AAE7D,yBAAiB,cAAc,CAAC;IAC9B,KAAY,KAAK,GAAG,mBAAmB,CAAC;IACxC,KAAY,KAAK,GAAG,mBAAmB,CAAC;CACzC"}
@@ -54,6 +54,8 @@ function MenuPositioner(componentProps) {
54
54
  (0, MenuPortalContext_1.useMenuPortalContext)();
55
55
  const store = (0, MenuRootContext_1.useMenuRootContext)();
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,
@@ -75,7 +77,13 @@ function MenuPositioner(componentProps) {
75
77
  };
76
78
  }, [store, update]);
77
79
  const mergedRef = (0, useMergedRefs_1.useMergedRefs)(ref, refs.setFloating);
78
- const state = { open, side: positioning.side, align: positioning.align };
80
+ const state = {
81
+ open,
82
+ side: positioning.side,
83
+ align: positioning.align,
84
+ triggerWidth,
85
+ triggerHeight,
86
+ };
79
87
  const contextValue = React.useMemo(() => ({ side: positioning.side, align: positioning.align, arrowRef, arrowStyles }), [positioning.side, positioning.align, arrowRef, arrowStyles]);
80
88
  const element = (0, useRenderElement_1.useRenderElement)(react_native_1.View, componentProps, {
81
89
  state,
@@ -1 +1 @@
1
- {"version":3,"file":"MenuPositioner.js","sourceRoot":"","sources":["../../../src/menu/positioner/MenuPositioner.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBb,wCAsEC;;AA1FD,6CAA+B;AAC/B,+CAAoC;AACpC,6DAA6D;AAC7D,mEAAmE;AACnE,wEAAqE;AACrE,uEAAoE;AACpE,6DAA0D;AAC1D,2EAK0C;AAE1C,mEAAgE;AAEhE;;;GAGG;AACH,SAAgB,cAAc,CAAC,cAAoC;IACjE,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,IAAA,wCAAoB,GAAE,CAAC;IACvB,MAAM,KAAK,GAAG,IAAA,oCAAkB,GAAE,CAAC;IACnC,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,GAAwB,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC;IAE9F,MAAM,YAAY,GAA0B,KAAK,CAAC,OAAO,CACvD,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,6CAAqB,CAAC,QAAQ,IAAC,KAAK,EAAE,YAAY,YAAG,OAAO,GAAkC,CAChG,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"MenuPositioner.js","sourceRoot":"","sources":["../../../src/menu/positioner/MenuPositioner.tsx"],"names":[],"mappings":"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"}
@@ -9,6 +9,15 @@ export type State = {
9
9
  * The anchor's native node, carried across the portal boundary.
10
10
  */
11
11
  triggerNode: unknown;
12
+ /**
13
+ * The trigger's measured width, the React Native counterpart of the web's
14
+ * `--anchor-width` CSS variable.
15
+ */
16
+ triggerWidth: number | undefined;
17
+ /**
18
+ * The trigger's measured height.
19
+ */
20
+ triggerHeight: number | undefined;
12
21
  update: (() => void) | undefined;
13
22
  /**
14
23
  * The payload of the trigger the popup was opened by, handed to the root's
@@ -36,6 +45,8 @@ declare const selectors: {
36
45
  open: (state: State) => boolean;
37
46
  disablePointerDismissal: (state: State) => boolean;
38
47
  triggerNode: (state: State) => unknown;
48
+ triggerWidth: (state: State) => number | undefined;
49
+ triggerHeight: (state: State) => number | undefined;
39
50
  update: (state: State) => (() => void) | undefined;
40
51
  payload: (state: State) => unknown;
41
52
  triggerId: (state: State) => string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"MenuStore.d.ts","sourceRoot":"","sources":["../../../src/menu/store/MenuStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,uBAAuB,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACjC;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;OAEG;IACH,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC1C,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,YAAY,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,kBAAkB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC/F;;;OAGG;IACH,YAAY,EAAE,eAAe,CAAC;CAC/B,CAAC;AAEF,QAAA,MAAM,SAAS;;;;qCAzBE,IAAI;;;CAgCpB,CAAC;AAEF,qBAAa,SAAU,SAAQ,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,SAAS,CAAC;gBACvE,YAAY,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC;IAkBlC,OAAO,GAAI,UAAU,OAAO,EAAE,cAAc,QAAQ,CAAC,kBAAkB,UAY5E;CACH"}
1
+ {"version":3,"file":"MenuStore.d.ts","sourceRoot":"","sources":["../../../src/menu/store/MenuStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,uBAAuB,EAAE,OAAO,CAAC;IACjC;;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;IACjC;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;;OAEG;IACH,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC1C,CAAC;AAEF,KAAK,OAAO,GAAG;IACb,YAAY,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,CAAC,kBAAkB,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC/F;;;OAGG;IACH,YAAY,EAAE,eAAe,CAAC;CAC/B,CAAC;AAEF,QAAA,MAAM,SAAS;;;;;;qCAzBE,IAAI;;;CAkCpB,CAAC;AAEF,qBAAa,SAAU,SAAQ,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,SAAS,CAAC;gBACvE,YAAY,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC;IAoBlC,OAAO,GAAI,UAAU,OAAO,EAAE,cAAc,QAAQ,CAAC,kBAAkB,UAY5E;CACH"}
@@ -8,6 +8,8 @@ const selectors = {
8
8
  open: (0, createSelector_1.createSelector)((state) => { var _a; return (_a = state.openProp) !== null && _a !== void 0 ? _a : state.open; }),
9
9
  disablePointerDismissal: (0, createSelector_1.createSelector)((state) => state.disablePointerDismissal),
10
10
  triggerNode: (0, createSelector_1.createSelector)((state) => state.triggerNode),
11
+ triggerWidth: (0, createSelector_1.createSelector)((state) => state.triggerWidth),
12
+ triggerHeight: (0, createSelector_1.createSelector)((state) => state.triggerHeight),
11
13
  update: (0, createSelector_1.createSelector)((state) => state.update),
12
14
  payload: (0, createSelector_1.createSelector)((state) => state.payload),
13
15
  triggerId: (0, createSelector_1.createSelector)((state) => { var _a; return (_a = state.triggerIdProp) !== null && _a !== void 0 ? _a : state.triggerId; }),
@@ -19,6 +21,8 @@ class MenuStore extends ReactStore_1.ReactStore {
19
21
  openProp: undefined,
20
22
  disablePointerDismissal: false,
21
23
  triggerNode: null,
24
+ triggerWidth: undefined,
25
+ triggerHeight: undefined,
22
26
  update: undefined,
23
27
  payload: undefined,
24
28
  triggerId: null,
@@ -1 +1 @@
1
- {"version":3,"file":"MenuStore.js","sourceRoot":"","sources":["../../../src/menu/store/MenuStore.ts"],"names":[],"mappings":";;;AAAA,+DAA4D;AAC5D,uDAAoD;AACpD,wEAAqE;AAoCrE,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,uBAAuB,EAAE,IAAA,+BAAc,EAAC,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC;IACxF,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;IACtD,OAAO,EAAE,IAAA,+BAAc,EAAC,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;IACxD,SAAS,EAAE,IAAA,+BAAc,EAAC,CAAC,KAAY,EAAE,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,aAAa,mCAAI,KAAK,CAAC,SAAS,CAAA,EAAA,CAAC;CACpF,CAAC;AAEF,MAAa,SAAU,SAAQ,uBAAsD;IACnF,YAAY,YAA6B;QACvC,KAAK,CACH;YACE,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,SAAS;YACnB,uBAAuB,EAAE,KAAK;YAC9B,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,SAAS;YACxB,GAAG,YAAY;SAChB,EACD,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,iCAAe,EAAE,EAAE,EAChE,SAAS,CACV,CAAC;QAGG,YAAO,GAAG,CAAC,QAAiB,EAAE,YAAyC,EAAE,EAAE;;YAChF,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;AAhCD,8BAgCC"}
1
+ {"version":3,"file":"MenuStore.js","sourceRoot":"","sources":["../../../src/menu/store/MenuStore.ts"],"names":[],"mappings":";;;AAAA,+DAA4D;AAC5D,uDAAoD;AACpD,wEAAqE;AA6CrE,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,uBAAuB,EAAE,IAAA,+BAAc,EAAC,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,uBAAuB,CAAC;IACxF,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;IACtD,OAAO,EAAE,IAAA,+BAAc,EAAC,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;IACxD,SAAS,EAAE,IAAA,+BAAc,EAAC,CAAC,KAAY,EAAE,EAAE,WAAC,OAAA,MAAA,KAAK,CAAC,aAAa,mCAAI,KAAK,CAAC,SAAS,CAAA,EAAA,CAAC;CACpF,CAAC;AAEF,MAAa,SAAU,SAAQ,uBAAsD;IACnF,YAAY,YAA6B;QACvC,KAAK,CACH;YACE,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE,SAAS;YACnB,uBAAuB,EAAE,KAAK;YAC9B,WAAW,EAAE,IAAI;YACjB,YAAY,EAAE,SAAS;YACvB,aAAa,EAAE,SAAS;YACxB,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,SAAS;YAClB,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,SAAS;YACxB,GAAG,YAAY;SAChB,EACD,EAAE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,iCAAe,EAAE,EAAE,EAChE,SAAS,CACV,CAAC;QAGG,YAAO,GAAG,CAAC,QAAiB,EAAE,YAAyC,EAAE,EAAE;;YAChF,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;AAlCD,8BAkCC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MenuSubmenuTrigger.d.ts","sourceRoot":"","sources":["../../../src/menu/submenu-trigger/MenuSubmenuTrigger.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAsD,MAAM,cAAc,CAAC;AAO7F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAIxD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,kBAAkB,CAAC,KAAK,0EA8D1E;AAED,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBACf,SAAQ,oBAAoB,CAAC,OAAO,SAAS,EAAE,uBAAuB,CAAC;IACvE;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC;AAED,yBAAiB,kBAAkB,CAAC;IAClC,KAAY,KAAK,GAAG,uBAAuB,CAAC;IAC5C,KAAY,KAAK,GAAG,uBAAuB,CAAC;CAC7C"}
1
+ {"version":3,"file":"MenuSubmenuTrigger.d.ts","sourceRoot":"","sources":["../../../src/menu/submenu-trigger/MenuSubmenuTrigger.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAsD,MAAM,cAAc,CAAC;AAO7F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAIxD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,EAAE,kBAAkB,CAAC,KAAK,0EAiE1E;AAED,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,uBACf,SAAQ,oBAAoB,CAAC,OAAO,SAAS,EAAE,uBAAuB,CAAC;IACvE;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC;AAED,yBAAiB,kBAAkB,CAAC;IAClC,KAAY,KAAK,GAAG,uBAAuB,CAAC;IAC5C,KAAY,KAAK,GAAG,uBAAuB,CAAC;CAC7C"}
@@ -84,6 +84,9 @@ function MenuSubmenuTrigger(componentProps) {
84
84
  onLayout(event) {
85
85
  var _a, _b;
86
86
  onLayout(event);
87
+ const { width, height } = event.nativeEvent.layout;
88
+ store.set('triggerWidth', width);
89
+ store.set('triggerHeight', height);
87
90
  (_b = (_a = store.state).update) === null || _b === void 0 ? void 0 : _b.call(_a);
88
91
  },
89
92
  accessibilityRole: 'menuitem',
@@ -1 +1 @@
1
- {"version":3,"file":"MenuSubmenuTrigger.js","sourceRoot":"","sources":["../../../src/menu/submenu-trigger/MenuSubmenuTrigger.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBb,gDA8DC;AAtFD,6CAA+B;AAC/B,+CAA6F;AAC7F,6DAA6D;AAC7D,mFAAmF;AACnF,wEAAqE;AACrE,oEAAiE;AACjE,8FAA2F;AAC3F,6DAA0D;AAE1D,mFAAgF;AAChF,iDAA8C;AAE9C;;;;;;;;;;;GAWG;AACH,SAAgB,kBAAkB,CAAC,cAAwC;IACzE,MAAM,EAAE,SAAS,EAAE,QAAQ,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC;IAE5F,MAAM,kBAAkB,GAAG,IAAA,kDAAyB,GAAE,CAAC;IACvD,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,iHAAiH,CAClH,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,MAAM,KAAK,GAAG,IAAA,oCAAkB,GAAE,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEpC,8EAA8E;IAC9E,WAAW;IACX,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;IAEpD,MAAM,EAAE,cAAc,EAAE,GAAG,IAAA,qBAAS,EAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEnD,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,KAAK,GAA4B,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAE1E,OAAO,IAAA,mCAAgB,EAAC,wBAAS,EAAE,cAAc,EAAE;QACjD,KAAK;QACL,GAAG,EAAE,SAAS;QACd,KAAK,EAAE;YACL;gBACE,QAAQ,CAAC,KAAwB;;oBAC/B,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAChB,MAAA,MAAA,KAAK,CAAC,KAAK,EAAC,MAAM,kDAAI,CAAC;gBACzB,CAAC;gBACD,iBAAiB,EAAE,UAAmB;gBACtC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,IAAI,SAAS,EAAE;gBACvE,eAAe,EAAE,MAAe;gBAChC,OAAO,CAAC,KAA4B;oBAClC,IAAI,QAAQ,EAAE,CAAC;wBACb,OAAO;oBACT,CAAC;oBAED,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAA,mDAAwB,EAAC,iBAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC9E,CAAC;gBACD,SAAS;oBACP,UAAU,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;gBACD,UAAU;oBACR,UAAU,CAAC,KAAK,CAAC,CAAC;gBACpB,CAAC;aACF;YACD,YAAY;YACZ,cAAc;SACf;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"MenuSubmenuTrigger.js","sourceRoot":"","sources":["../../../src/menu/submenu-trigger/MenuSubmenuTrigger.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBb,gDAiEC;AAzFD,6CAA+B;AAC/B,+CAA6F;AAC7F,6DAA6D;AAC7D,mFAAmF;AACnF,wEAAqE;AACrE,oEAAiE;AACjE,8FAA2F;AAC3F,6DAA0D;AAE1D,mFAAgF;AAChF,iDAA8C;AAE9C;;;;;;;;;;;GAWG;AACH,SAAgB,kBAAkB,CAAC,cAAwC;IACzE,MAAM,EAAE,SAAS,EAAE,QAAQ,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,CAAC;IAE5F,MAAM,kBAAkB,GAAG,IAAA,kDAAyB,GAAE,CAAC;IACvD,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,iHAAiH,CAClH,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,MAAM,KAAK,GAAG,IAAA,oCAAkB,GAAE,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEpC,8EAA8E;IAC9E,WAAW;IACX,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;IAEpD,MAAM,EAAE,cAAc,EAAE,GAAG,IAAA,qBAAS,EAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEnD,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,KAAK,GAA4B,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAE1E,OAAO,IAAA,mCAAgB,EAAC,wBAAS,EAAE,cAAc,EAAE;QACjD,KAAK;QACL,GAAG,EAAE,SAAS;QACd,KAAK,EAAE;YACL;gBACE,QAAQ,CAAC,KAAwB;;oBAC/B,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAChB,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,iBAAiB,EAAE,UAAmB;gBACtC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,IAAI,SAAS,EAAE;gBACvE,eAAe,EAAE,MAAe;gBAChC,OAAO,CAAC,KAA4B;oBAClC,IAAI,QAAQ,EAAE,CAAC;wBACb,OAAO;oBACT,CAAC;oBAED,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAA,mDAAwB,EAAC,iBAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;gBAC9E,CAAC;gBACD,SAAS;oBACP,UAAU,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;gBACD,UAAU;oBACR,UAAU,CAAC,KAAK,CAAC,CAAC;gBACpB,CAAC;aACF;YACD,YAAY;YACZ,cAAc;SACf;KACF,CAAC,CAAC;AACL,CAAC"}