@blimu/react 1.1.0 → 1.1.1

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 (451) hide show
  1. package/dist/_virtual/index.cjs +5 -1
  2. package/dist/_virtual/index.cjs.map +1 -1
  3. package/dist/_virtual/index.js +3 -3
  4. package/dist/_virtual/index2.cjs +4 -1
  5. package/dist/_virtual/index2.cjs.map +1 -1
  6. package/dist/_virtual/index2.js +2 -2
  7. package/dist/_virtual/use-sync-external-store-shim.development.cjs +4 -1
  8. package/dist/_virtual/use-sync-external-store-shim.development.cjs.map +1 -1
  9. package/dist/_virtual/use-sync-external-store-shim.development.js +2 -2
  10. package/dist/_virtual/use-sync-external-store-shim.production.cjs +4 -1
  11. package/dist/_virtual/use-sync-external-store-shim.production.cjs.map +1 -1
  12. package/dist/_virtual/use-sync-external-store-shim.production.js +2 -2
  13. package/dist/client/auth.service.cjs +249 -1
  14. package/dist/client/auth.service.cjs.map +1 -1
  15. package/dist/client/auth.service.js +194 -96
  16. package/dist/client/auth.service.js.map +1 -1
  17. package/dist/client/external-store.cjs +26 -1
  18. package/dist/client/external-store.cjs.map +1 -1
  19. package/dist/client/external-store.js +22 -8
  20. package/dist/client/external-store.js.map +1 -1
  21. package/dist/client/runtime-client.cjs +136 -1
  22. package/dist/client/runtime-client.cjs.map +1 -1
  23. package/dist/client/runtime-client.js +85 -51
  24. package/dist/client/runtime-client.js.map +1 -1
  25. package/dist/components/index.cjs +13 -0
  26. package/dist/components/index.cjs.map +1 -0
  27. package/dist/components/index.js +13 -0
  28. package/dist/components/index.js.map +1 -0
  29. package/dist/components/members-list.cjs +132 -1
  30. package/dist/components/members-list.cjs.map +1 -1
  31. package/dist/components/members-list.js +69 -64
  32. package/dist/components/members-list.js.map +1 -1
  33. package/dist/components/redirect-to-sign-in.cjs +34 -1
  34. package/dist/components/redirect-to-sign-in.cjs.map +1 -1
  35. package/dist/components/redirect-to-sign-in.js +28 -20
  36. package/dist/components/redirect-to-sign-in.js.map +1 -1
  37. package/dist/components/sign-in-button.cjs +36 -1
  38. package/dist/components/sign-in-button.cjs.map +1 -1
  39. package/dist/components/sign-in-button.js +25 -21
  40. package/dist/components/sign-in-button.js.map +1 -1
  41. package/dist/components/ui/avatar.cjs +42 -1
  42. package/dist/components/ui/avatar.cjs.map +1 -1
  43. package/dist/components/ui/avatar.js +23 -23
  44. package/dist/components/ui/avatar.js.map +1 -1
  45. package/dist/components/ui/dropdown-menu.cjs +148 -1
  46. package/dist/components/ui/dropdown-menu.cjs.map +1 -1
  47. package/dist/components/ui/dropdown-menu.js +83 -81
  48. package/dist/components/ui/dropdown-menu.js.map +1 -1
  49. package/dist/components/user-avatar.cjs +22 -1
  50. package/dist/components/user-avatar.cjs.map +1 -1
  51. package/dist/components/user-avatar.js +16 -16
  52. package/dist/components/user-avatar.js.map +1 -1
  53. package/dist/components/user-button/styles.cjs +39 -1
  54. package/dist/components/user-button/styles.cjs.map +1 -1
  55. package/dist/components/user-button/styles.js +6 -5
  56. package/dist/components/user-button/styles.js.map +1 -1
  57. package/dist/components/user-button/user-button.cjs +98 -1
  58. package/dist/components/user-button/user-button.cjs.map +1 -1
  59. package/dist/components/user-button/user-button.js +64 -58
  60. package/dist/components/user-button/user-button.js.map +1 -1
  61. package/dist/hooks/index.cjs +14 -0
  62. package/dist/hooks/index.cjs.map +1 -0
  63. package/dist/hooks/index.d.ts +1 -0
  64. package/dist/hooks/index.d.ts.map +1 -1
  65. package/dist/hooks/index.js +14 -0
  66. package/dist/hooks/index.js.map +1 -0
  67. package/dist/hooks/use-auth.cjs +44 -1
  68. package/dist/hooks/use-auth.cjs.map +1 -1
  69. package/dist/hooks/use-auth.d.ts +13 -15
  70. package/dist/hooks/use-auth.d.ts.map +1 -1
  71. package/dist/hooks/use-auth.js +30 -26
  72. package/dist/hooks/use-auth.js.map +1 -1
  73. package/dist/hooks/use-client.cjs +9 -1
  74. package/dist/hooks/use-client.cjs.map +1 -1
  75. package/dist/hooks/use-client.d.ts +1 -1
  76. package/dist/hooks/use-client.d.ts.map +1 -1
  77. package/dist/hooks/use-client.js +6 -5
  78. package/dist/hooks/use-client.js.map +1 -1
  79. package/dist/hooks/use-members.cjs +60 -1
  80. package/dist/hooks/use-members.cjs.map +1 -1
  81. package/dist/hooks/use-members.js +53 -41
  82. package/dist/hooks/use-members.js.map +1 -1
  83. package/dist/hooks/use-store.cjs +17 -1
  84. package/dist/hooks/use-store.cjs.map +1 -1
  85. package/dist/hooks/use-store.js +7 -7
  86. package/dist/hooks/use-store.js.map +1 -1
  87. package/dist/index.cjs +37 -1
  88. package/dist/index.cjs.map +1 -1
  89. package/dist/index.d.ts +1 -1
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +35 -35
  92. package/dist/lib/utils.cjs +8 -1
  93. package/dist/lib/utils.cjs.map +1 -1
  94. package/dist/lib/utils.js +5 -5
  95. package/dist/lib/utils.js.map +1 -1
  96. package/dist/lib/variants.cjs +46 -1
  97. package/dist/lib/variants.cjs.map +1 -1
  98. package/dist/lib/variants.js +6 -5
  99. package/dist/lib/variants.js.map +1 -1
  100. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.cjs +721 -1
  101. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.cjs.map +1 -1
  102. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js +571 -377
  103. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js.map +1 -1
  104. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.cjs +625 -1
  105. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.cjs.map +1 -1
  106. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +539 -316
  107. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +1 -1
  108. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.cjs +313 -1
  109. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.cjs.map +1 -1
  110. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +261 -172
  111. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js.map +1 -1
  112. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.cjs +154 -1
  113. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.cjs.map +1 -1
  114. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.cjs +173 -1
  115. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.cjs.map +1 -1
  116. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +144 -107
  117. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js.map +1 -1
  118. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +111 -87
  119. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.js.map +1 -1
  120. package/dist/node_modules/@radix-ui/primitive/dist/index.cjs +11 -1
  121. package/dist/node_modules/@radix-ui/primitive/dist/index.cjs.map +1 -1
  122. package/dist/node_modules/@radix-ui/primitive/dist/index.js +7 -5
  123. package/dist/node_modules/@radix-ui/primitive/dist/index.js.map +1 -1
  124. package/dist/node_modules/@radix-ui/react-arrow/dist/index.cjs +42 -1
  125. package/dist/node_modules/@radix-ui/react-arrow/dist/index.cjs.map +1 -1
  126. package/dist/node_modules/@radix-ui/react-arrow/dist/index.js +17 -16
  127. package/dist/node_modules/@radix-ui/react-arrow/dist/index.js.map +1 -1
  128. package/dist/node_modules/@radix-ui/react-avatar/dist/index.cjs +140 -1
  129. package/dist/node_modules/@radix-ui/react-avatar/dist/index.cjs.map +1 -1
  130. package/dist/node_modules/@radix-ui/react-avatar/dist/index.js +105 -57
  131. package/dist/node_modules/@radix-ui/react-avatar/dist/index.js.map +1 -1
  132. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-context/dist/index.cjs +80 -1
  133. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-context/dist/index.cjs.map +1 -1
  134. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-context/dist/index.js +49 -41
  135. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-context/dist/index.js.map +1 -1
  136. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-primitive/dist/index.cjs +56 -1
  137. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-primitive/dist/index.cjs.map +1 -1
  138. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-primitive/dist/index.js +17 -10
  139. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-primitive/dist/index.js.map +1 -1
  140. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-slot/dist/index.cjs +119 -1
  141. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-slot/dist/index.cjs.map +1 -1
  142. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-slot/dist/index.js +86 -42
  143. package/dist/node_modules/@radix-ui/react-avatar/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -1
  144. package/dist/node_modules/@radix-ui/react-collection/dist/index.cjs +70 -1
  145. package/dist/node_modules/@radix-ui/react-collection/dist/index.cjs.map +1 -1
  146. package/dist/node_modules/@radix-ui/react-collection/dist/index.js +57 -37
  147. package/dist/node_modules/@radix-ui/react-collection/dist/index.js.map +1 -1
  148. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.cjs +56 -1
  149. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.cjs.map +1 -1
  150. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js +29 -19
  151. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +1 -1
  152. package/dist/node_modules/@radix-ui/react-context/dist/index.cjs +79 -1
  153. package/dist/node_modules/@radix-ui/react-context/dist/index.cjs.map +1 -1
  154. package/dist/node_modules/@radix-ui/react-context/dist/index.js +48 -39
  155. package/dist/node_modules/@radix-ui/react-context/dist/index.js.map +1 -1
  156. package/dist/node_modules/@radix-ui/react-direction/dist/index.cjs +27 -1
  157. package/dist/node_modules/@radix-ui/react-direction/dist/index.cjs.map +1 -1
  158. package/dist/node_modules/@radix-ui/react-direction/dist/index.js +6 -6
  159. package/dist/node_modules/@radix-ui/react-direction/dist/index.js.map +1 -1
  160. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.cjs +229 -1
  161. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.cjs.map +1 -1
  162. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +182 -97
  163. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js.map +1 -1
  164. package/dist/node_modules/@radix-ui/react-dropdown-menu/dist/index.cjs +296 -1
  165. package/dist/node_modules/@radix-ui/react-dropdown-menu/dist/index.cjs.map +1 -1
  166. package/dist/node_modules/@radix-ui/react-dropdown-menu/dist/index.js +232 -167
  167. package/dist/node_modules/@radix-ui/react-dropdown-menu/dist/index.js.map +1 -1
  168. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.cjs +46 -1
  169. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.cjs.map +1 -1
  170. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js +23 -11
  171. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js.map +1 -1
  172. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.cjs +224 -1
  173. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.cjs.map +1 -1
  174. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js +169 -98
  175. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js.map +1 -1
  176. package/dist/node_modules/@radix-ui/react-id/dist/index.cjs +31 -1
  177. package/dist/node_modules/@radix-ui/react-id/dist/index.cjs.map +1 -1
  178. package/dist/node_modules/@radix-ui/react-id/dist/index.js +11 -10
  179. package/dist/node_modules/@radix-ui/react-id/dist/index.js.map +1 -1
  180. package/dist/node_modules/@radix-ui/react-menu/dist/index.cjs +845 -1
  181. package/dist/node_modules/@radix-ui/react-menu/dist/index.cjs.map +1 -1
  182. package/dist/node_modules/@radix-ui/react-menu/dist/index.js +662 -442
  183. package/dist/node_modules/@radix-ui/react-menu/dist/index.js.map +1 -1
  184. package/dist/node_modules/@radix-ui/react-popper/dist/index.cjs +308 -1
  185. package/dist/node_modules/@radix-ui/react-popper/dist/index.cjs.map +1 -1
  186. package/dist/node_modules/@radix-ui/react-popper/dist/index.js +209 -137
  187. package/dist/node_modules/@radix-ui/react-popper/dist/index.js.map +1 -1
  188. package/dist/node_modules/@radix-ui/react-portal/dist/index.cjs +34 -1
  189. package/dist/node_modules/@radix-ui/react-portal/dist/index.cjs.map +1 -1
  190. package/dist/node_modules/@radix-ui/react-portal/dist/index.js +14 -12
  191. package/dist/node_modules/@radix-ui/react-portal/dist/index.js.map +1 -1
  192. package/dist/node_modules/@radix-ui/react-presence/dist/index.cjs +145 -1
  193. package/dist/node_modules/@radix-ui/react-presence/dist/index.cjs.map +1 -1
  194. package/dist/node_modules/@radix-ui/react-presence/dist/index.js +103 -45
  195. package/dist/node_modules/@radix-ui/react-presence/dist/index.js.map +1 -1
  196. package/dist/node_modules/@radix-ui/react-primitive/dist/index.cjs +61 -1
  197. package/dist/node_modules/@radix-ui/react-primitive/dist/index.cjs.map +1 -1
  198. package/dist/node_modules/@radix-ui/react-primitive/dist/index.js +21 -14
  199. package/dist/node_modules/@radix-ui/react-primitive/dist/index.js.map +1 -1
  200. package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.cjs +244 -1
  201. package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.cjs.map +1 -1
  202. package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.js +179 -135
  203. package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.js.map +1 -1
  204. package/dist/node_modules/@radix-ui/react-slot/dist/index.cjs +105 -1
  205. package/dist/node_modules/@radix-ui/react-slot/dist/index.cjs.map +1 -1
  206. package/dist/node_modules/@radix-ui/react-slot/dist/index.js +74 -35
  207. package/dist/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -1
  208. package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.cjs +28 -1
  209. package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.cjs.map +1 -1
  210. package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js +8 -7
  211. package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js.map +1 -1
  212. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.cjs +86 -1
  213. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.cjs.map +1 -1
  214. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +57 -40
  215. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js.map +1 -1
  216. package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.cjs +34 -1
  217. package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.cjs.map +1 -1
  218. package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js +13 -10
  219. package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js.map +1 -1
  220. package/dist/node_modules/@radix-ui/react-use-is-hydrated/dist/index.cjs +15 -1
  221. package/dist/node_modules/@radix-ui/react-use-is-hydrated/dist/index.cjs.map +1 -1
  222. package/dist/node_modules/@radix-ui/react-use-is-hydrated/dist/index.js +8 -8
  223. package/dist/node_modules/@radix-ui/react-use-is-hydrated/dist/index.js.map +1 -1
  224. package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.cjs +23 -1
  225. package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.cjs.map +1 -1
  226. package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +3 -3
  227. package/dist/node_modules/@radix-ui/react-use-layout-effect/dist/index.js.map +1 -1
  228. package/dist/node_modules/@radix-ui/react-use-size/dist/index.cjs +56 -1
  229. package/dist/node_modules/@radix-ui/react-use-size/dist/index.cjs.map +1 -1
  230. package/dist/node_modules/@radix-ui/react-use-size/dist/index.js +34 -22
  231. package/dist/node_modules/@radix-ui/react-use-size/dist/index.js.map +1 -1
  232. package/dist/node_modules/aria-hidden/dist/es2015/index.cjs +122 -1
  233. package/dist/node_modules/aria-hidden/dist/es2015/index.cjs.map +1 -1
  234. package/dist/node_modules/aria-hidden/dist/es2015/index.js +111 -41
  235. package/dist/node_modules/aria-hidden/dist/es2015/index.js.map +1 -1
  236. package/dist/node_modules/class-variance-authority/dist/index.cjs +45 -1
  237. package/dist/node_modules/class-variance-authority/dist/index.cjs.map +1 -1
  238. package/dist/node_modules/class-variance-authority/dist/index.js +40 -30
  239. package/dist/node_modules/class-variance-authority/dist/index.js.map +1 -1
  240. package/dist/node_modules/clsx/dist/clsx.cjs +17 -1
  241. package/dist/node_modules/clsx/dist/clsx.cjs.map +1 -1
  242. package/dist/node_modules/clsx/dist/clsx.js +13 -13
  243. package/dist/node_modules/clsx/dist/clsx.js.map +1 -1
  244. package/dist/node_modules/get-nonce/dist/es2015/index.cjs +9 -1
  245. package/dist/node_modules/get-nonce/dist/es2015/index.cjs.map +1 -1
  246. package/dist/node_modules/get-nonce/dist/es2015/index.js +5 -3
  247. package/dist/node_modules/get-nonce/dist/es2015/index.js.map +1 -1
  248. package/dist/node_modules/js-cookie/dist/js.cookie.cjs +98 -1
  249. package/dist/node_modules/js-cookie/dist/js.cookie.cjs.map +1 -1
  250. package/dist/node_modules/js-cookie/dist/js.cookie.js +69 -43
  251. package/dist/node_modules/js-cookie/dist/js.cookie.js.map +1 -1
  252. package/dist/node_modules/jwt-decode/build/esm/index.cjs +58 -1
  253. package/dist/node_modules/jwt-decode/build/esm/index.cjs.map +1 -1
  254. package/dist/node_modules/jwt-decode/build/esm/index.js +36 -30
  255. package/dist/node_modules/jwt-decode/build/esm/index.js.map +1 -1
  256. package/dist/node_modules/lucide-react/dist/esm/Icon.cjs +34 -1
  257. package/dist/node_modules/lucide-react/dist/esm/Icon.cjs.map +1 -1
  258. package/dist/node_modules/lucide-react/dist/esm/Icon.js +25 -25
  259. package/dist/node_modules/lucide-react/dist/esm/Icon.js.map +1 -1
  260. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.cjs +21 -1
  261. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.cjs.map +1 -1
  262. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.js +16 -15
  263. package/dist/node_modules/lucide-react/dist/esm/createLucideIcon.js.map +1 -1
  264. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.cjs +13 -1
  265. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.cjs.map +1 -1
  266. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.js +2 -2
  267. package/dist/node_modules/lucide-react/dist/esm/defaultAttributes.js.map +1 -1
  268. package/dist/node_modules/lucide-react/dist/esm/icons/check.cjs +7 -1
  269. package/dist/node_modules/lucide-react/dist/esm/icons/check.cjs.map +1 -1
  270. package/dist/node_modules/lucide-react/dist/esm/icons/check.js +5 -4
  271. package/dist/node_modules/lucide-react/dist/esm/icons/check.js.map +1 -1
  272. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.cjs +7 -1
  273. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.cjs.map +1 -1
  274. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.js +5 -4
  275. package/dist/node_modules/lucide-react/dist/esm/icons/chevron-right.js.map +1 -1
  276. package/dist/node_modules/lucide-react/dist/esm/icons/circle.cjs +7 -1
  277. package/dist/node_modules/lucide-react/dist/esm/icons/circle.cjs.map +1 -1
  278. package/dist/node_modules/lucide-react/dist/esm/icons/circle.js +5 -4
  279. package/dist/node_modules/lucide-react/dist/esm/icons/circle.js.map +1 -1
  280. package/dist/node_modules/lucide-react/dist/esm/icons/log-out.cjs +11 -1
  281. package/dist/node_modules/lucide-react/dist/esm/icons/log-out.cjs.map +1 -1
  282. package/dist/node_modules/lucide-react/dist/esm/icons/log-out.js +6 -5
  283. package/dist/node_modules/lucide-react/dist/esm/icons/log-out.js.map +1 -1
  284. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils.cjs +26 -1
  285. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils.cjs.map +1 -1
  286. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils.js +22 -14
  287. package/dist/node_modules/lucide-react/dist/esm/shared/src/utils.js.map +1 -1
  288. package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.cjs +27 -1
  289. package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.cjs.map +1 -1
  290. package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js +8 -8
  291. package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js.map +1 -1
  292. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.cjs +197 -4
  293. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.cjs.map +1 -1
  294. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js +163 -98
  295. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js.map +1 -1
  296. package/dist/node_modules/react-remove-scroll/dist/es2015/UI.cjs +55 -1
  297. package/dist/node_modules/react-remove-scroll/dist/es2015/UI.cjs.map +1 -1
  298. package/dist/node_modules/react-remove-scroll/dist/es2015/UI.js +31 -24
  299. package/dist/node_modules/react-remove-scroll/dist/es2015/UI.js.map +1 -1
  300. package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.cjs +19 -1
  301. package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.cjs.map +1 -1
  302. package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js +12 -9
  303. package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js.map +1 -1
  304. package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.cjs +102 -1
  305. package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.cjs.map +1 -1
  306. package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js +85 -51
  307. package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js.map +1 -1
  308. package/dist/node_modules/react-remove-scroll/dist/es2015/medium.cjs +5 -1
  309. package/dist/node_modules/react-remove-scroll/dist/es2015/medium.cjs.map +1 -1
  310. package/dist/node_modules/react-remove-scroll/dist/es2015/medium.js +3 -3
  311. package/dist/node_modules/react-remove-scroll/dist/es2015/medium.js.map +1 -1
  312. package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.cjs +6 -1
  313. package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.cjs.map +1 -1
  314. package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.js +5 -5
  315. package/dist/node_modules/react-remove-scroll/dist/es2015/sidecar.js.map +1 -1
  316. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.cjs +62 -36
  317. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.cjs.map +1 -1
  318. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js +41 -65
  319. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js.map +1 -1
  320. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.cjs +10 -1
  321. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.cjs.map +1 -1
  322. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.js +8 -5
  323. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/constants.js.map +1 -1
  324. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.cjs +37 -1
  325. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.cjs.map +1 -1
  326. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js +28 -16
  327. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js.map +1 -1
  328. package/dist/node_modules/react-style-singleton/dist/es2015/component.cjs +13 -1
  329. package/dist/node_modules/react-style-singleton/dist/es2015/component.cjs.map +1 -1
  330. package/dist/node_modules/react-style-singleton/dist/es2015/component.js +9 -7
  331. package/dist/node_modules/react-style-singleton/dist/es2015/component.js.map +1 -1
  332. package/dist/node_modules/react-style-singleton/dist/es2015/hook.cjs +33 -1
  333. package/dist/node_modules/react-style-singleton/dist/es2015/hook.cjs.map +1 -1
  334. package/dist/node_modules/react-style-singleton/dist/es2015/hook.js +11 -10
  335. package/dist/node_modules/react-style-singleton/dist/es2015/hook.js.map +1 -1
  336. package/dist/node_modules/react-style-singleton/dist/es2015/singleton.cjs +48 -1
  337. package/dist/node_modules/react-style-singleton/dist/es2015/singleton.cjs.map +1 -1
  338. package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js +35 -17
  339. package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js.map +1 -1
  340. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.cjs +3014 -1
  341. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.cjs.map +1 -1
  342. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +804 -555
  343. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -1
  344. package/dist/node_modules/tailwindcss/dist/plugin.cjs +12 -1
  345. package/dist/node_modules/tailwindcss/dist/plugin.cjs.map +1 -1
  346. package/dist/node_modules/tailwindcss/dist/plugin.js +8 -8
  347. package/dist/node_modules/tailwindcss/dist/plugin.js.map +1 -1
  348. package/dist/node_modules/tslib/tslib.es6.cjs +38 -1
  349. package/dist/node_modules/tslib/tslib.es6.cjs.map +1 -1
  350. package/dist/node_modules/tslib/tslib.es6.js +33 -21
  351. package/dist/node_modules/tslib/tslib.es6.js.map +1 -1
  352. package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.cjs +11 -1
  353. package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.cjs.map +1 -1
  354. package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.js +8 -3
  355. package/dist/node_modules/use-callback-ref/dist/es2015/assignRef.js.map +1 -1
  356. package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.cjs +52 -1
  357. package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.cjs.map +1 -1
  358. package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js +28 -19
  359. package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js.map +1 -1
  360. package/dist/node_modules/use-callback-ref/dist/es2015/useRef.cjs +29 -1
  361. package/dist/node_modules/use-callback-ref/dist/es2015/useRef.cjs.map +1 -1
  362. package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js +15 -11
  363. package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js.map +1 -1
  364. package/dist/node_modules/use-sidecar/dist/es2015/exports.cjs +38 -1
  365. package/dist/node_modules/use-sidecar/dist/es2015/exports.cjs.map +1 -1
  366. package/dist/node_modules/use-sidecar/dist/es2015/exports.js +15 -12
  367. package/dist/node_modules/use-sidecar/dist/es2015/exports.js.map +1 -1
  368. package/dist/node_modules/use-sidecar/dist/es2015/medium.cjs +88 -1
  369. package/dist/node_modules/use-sidecar/dist/es2015/medium.cjs.map +1 -1
  370. package/dist/node_modules/use-sidecar/dist/es2015/medium.js +64 -43
  371. package/dist/node_modules/use-sidecar/dist/es2015/medium.js.map +1 -1
  372. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.cjs +68 -1
  373. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.cjs.map +1 -1
  374. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +49 -39
  375. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
  376. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.cjs +53 -1
  377. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.cjs.map +1 -1
  378. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js +39 -32
  379. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js.map +1 -1
  380. package/dist/node_modules/use-sync-external-store/shim/index.cjs +17 -1
  381. package/dist/node_modules/use-sync-external-store/shim/index.cjs.map +1 -1
  382. package/dist/node_modules/use-sync-external-store/shim/index.js +14 -7
  383. package/dist/node_modules/use-sync-external-store/shim/index.js.map +1 -1
  384. package/dist/providers/auth/auth.context.cjs +5 -1
  385. package/dist/providers/auth/auth.context.cjs.map +1 -1
  386. package/dist/providers/auth/auth.context.js +3 -3
  387. package/dist/providers/auth/auth.context.js.map +1 -1
  388. package/dist/providers/auth/auth.hook.cjs +12 -1
  389. package/dist/providers/auth/auth.hook.cjs.map +1 -1
  390. package/dist/providers/auth/auth.hook.js +8 -7
  391. package/dist/providers/auth/auth.hook.js.map +1 -1
  392. package/dist/providers/auth/auth.provider.cjs +37 -1
  393. package/dist/providers/auth/auth.provider.cjs.map +1 -1
  394. package/dist/providers/auth/auth.provider.js +31 -22
  395. package/dist/providers/auth/auth.provider.js.map +1 -1
  396. package/dist/providers/blimu/blimu.context.cjs +5 -1
  397. package/dist/providers/blimu/blimu.context.cjs.map +1 -1
  398. package/dist/providers/blimu/blimu.context.js +3 -3
  399. package/dist/providers/blimu/blimu.context.js.map +1 -1
  400. package/dist/providers/blimu/blimu.hook.cjs +12 -1
  401. package/dist/providers/blimu/blimu.hook.cjs.map +1 -1
  402. package/dist/providers/blimu/blimu.hook.js +8 -7
  403. package/dist/providers/blimu/blimu.hook.js.map +1 -1
  404. package/dist/providers/blimu/blimu.provider.cjs +71 -1
  405. package/dist/providers/blimu/blimu.provider.cjs.map +1 -1
  406. package/dist/providers/blimu/blimu.provider.js +32 -27
  407. package/dist/providers/blimu/blimu.provider.js.map +1 -1
  408. package/dist/providers/index.cjs +13 -0
  409. package/dist/providers/index.cjs.map +1 -0
  410. package/dist/providers/index.js +13 -0
  411. package/dist/providers/index.js.map +1 -0
  412. package/dist/providers/theme/theme.context.cjs +5 -1
  413. package/dist/providers/theme/theme.context.cjs.map +1 -1
  414. package/dist/providers/theme/theme.context.js +3 -3
  415. package/dist/providers/theme/theme.context.js.map +1 -1
  416. package/dist/providers/theme/theme.hook.cjs +12 -1
  417. package/dist/providers/theme/theme.hook.cjs.map +1 -1
  418. package/dist/providers/theme/theme.hook.js +8 -7
  419. package/dist/providers/theme/theme.hook.js.map +1 -1
  420. package/dist/providers/theme/theme.provider.cjs +104 -1
  421. package/dist/providers/theme/theme.provider.cjs.map +1 -1
  422. package/dist/providers/theme/theme.provider.js +85 -48
  423. package/dist/providers/theme/theme.provider.js.map +1 -1
  424. package/dist/tailwind.cjs +200 -0
  425. package/dist/tailwind.cjs.map +1 -0
  426. package/dist/{tailwind.plugin.js → tailwind.js} +6 -6
  427. package/dist/tailwind.js.map +1 -0
  428. package/dist/types/index.cjs +11 -1
  429. package/dist/types/index.cjs.map +1 -1
  430. package/dist/types/index.js +8 -8
  431. package/dist/types/index.js.map +1 -1
  432. package/dist/utils/publishable-key.cjs +62 -1
  433. package/dist/utils/publishable-key.cjs.map +1 -1
  434. package/dist/utils/publishable-key.js +52 -27
  435. package/dist/utils/publishable-key.js.map +1 -1
  436. package/package.json +41 -42
  437. package/dist/components.cjs +0 -2
  438. package/dist/components.cjs.map +0 -1
  439. package/dist/components.js +0 -13
  440. package/dist/components.js.map +0 -1
  441. package/dist/hooks.cjs +0 -2
  442. package/dist/hooks.cjs.map +0 -1
  443. package/dist/hooks.js +0 -14
  444. package/dist/hooks.js.map +0 -1
  445. package/dist/providers.cjs +0 -2
  446. package/dist/providers.cjs.map +0 -1
  447. package/dist/providers.js +0 -13
  448. package/dist/providers.js.map +0 -1
  449. package/dist/tailwind.plugin.cjs +0 -2
  450. package/dist/tailwind.plugin.cjs.map +0 -1
  451. package/dist/tailwind.plugin.js.map +0 -1
@@ -1,235 +1,328 @@
1
- import * as o from "react";
2
- import { composeEventHandlers as M } from "../../primitive/dist/index.js";
3
- import { createCollection as Ye } from "../../react-collection/dist/index.js";
4
- import { useComposedRefs as D, composeRefs as Xe } from "../../react-compose-refs/dist/index.js";
5
- import { createContextScope as je } from "../../react-context/dist/index.js";
6
- import { useDirection as He } from "../../react-direction/dist/index.js";
7
- import { DismissableLayer as We } from "../../react-dismissable-layer/dist/index.js";
8
- import { useFocusGuards as ze } from "../../react-focus-guards/dist/index.js";
9
- import { FocusScope as Ze } from "../../react-focus-scope/dist/index.js";
10
- import { createPopperScope as le, Root as $e, Anchor as qe, Content as Je, Arrow as Qe } from "../../react-popper/dist/index.js";
11
- import { Portal as et } from "../../react-portal/dist/index.js";
12
- import { Presence as Y } from "../../react-presence/dist/index.js";
13
- import { Primitive as N, dispatchDiscreteCustomEvent as tt } from "../../react-primitive/dist/index.js";
14
- import { createRovingFocusGroupScope as de, Item as nt, Root as ot } from "../../react-roving-focus/dist/index.js";
15
- import { createSlot as rt } from "../../react-slot/dist/index.js";
16
- import { useCallbackRef as fe } from "../../react-use-callback-ref/dist/index.js";
17
- import { hideOthers as ct } from "../../../aria-hidden/dist/es2015/index.js";
18
- import at from "../../../react-remove-scroll/dist/es2015/Combination.js";
19
- import { jsx as s } from "react/jsx-runtime";
20
- var $ = ["Enter", " "], st = ["ArrowDown", "PageUp", "Home"], me = ["ArrowUp", "PageDown", "End"], ut = [...st, ...me], it = {
21
- ltr: [...$, "ArrowRight"],
22
- rtl: [...$, "ArrowLeft"]
23
- }, lt = {
1
+ import * as React from "react";
2
+ import { composeEventHandlers } from "../../primitive/dist/index.js";
3
+ import { createCollection } from "../../react-collection/dist/index.js";
4
+ import { useComposedRefs, composeRefs } from "../../react-compose-refs/dist/index.js";
5
+ import { createContextScope } from "../../react-context/dist/index.js";
6
+ import { useDirection } from "../../react-direction/dist/index.js";
7
+ import { DismissableLayer } from "../../react-dismissable-layer/dist/index.js";
8
+ import { useFocusGuards } from "../../react-focus-guards/dist/index.js";
9
+ import { FocusScope } from "../../react-focus-scope/dist/index.js";
10
+ import { createPopperScope, Root as Root2, Anchor, Content, Arrow } from "../../react-popper/dist/index.js";
11
+ import { Portal as Portal$1 } from "../../react-portal/dist/index.js";
12
+ import { Presence } from "../../react-presence/dist/index.js";
13
+ import { Primitive, dispatchDiscreteCustomEvent } from "../../react-primitive/dist/index.js";
14
+ import { createRovingFocusGroupScope, Item, Root } from "../../react-roving-focus/dist/index.js";
15
+ import { createSlot } from "../../react-slot/dist/index.js";
16
+ import { useCallbackRef } from "../../react-use-callback-ref/dist/index.js";
17
+ import { hideOthers } from "../../../aria-hidden/dist/es2015/index.js";
18
+ import ReactRemoveScroll from "../../../react-remove-scroll/dist/es2015/Combination.js";
19
+ import { jsx } from "react/jsx-runtime";
20
+ var SELECTION_KEYS = ["Enter", " "];
21
+ var FIRST_KEYS = ["ArrowDown", "PageUp", "Home"];
22
+ var LAST_KEYS = ["ArrowUp", "PageDown", "End"];
23
+ var FIRST_LAST_KEYS = [...FIRST_KEYS, ...LAST_KEYS];
24
+ var SUB_OPEN_KEYS = {
25
+ ltr: [...SELECTION_KEYS, "ArrowRight"],
26
+ rtl: [...SELECTION_KEYS, "ArrowLeft"]
27
+ };
28
+ var SUB_CLOSE_KEYS = {
24
29
  ltr: ["ArrowLeft"],
25
30
  rtl: ["ArrowRight"]
26
- }, F = "Menu", [O, dt, ft] = Ye(F), [P, Qt] = je(F, [
27
- ft,
28
- le,
29
- de
30
- ]), X = le(), pe = de(), [mt, S] = P(F), [pt, L] = P(F), ve = (e) => {
31
- const { __scopeMenu: n, open: t = !1, children: r, dir: u, onOpenChange: c, modal: d = !0 } = e, p = X(n), [h, m] = o.useState(null), l = o.useRef(!1), a = fe(c), f = He(u);
32
- return o.useEffect(() => {
33
- const g = () => {
34
- l.current = !0, document.addEventListener("pointerdown", v, { capture: !0, once: !0 }), document.addEventListener("pointermove", v, { capture: !0, once: !0 });
35
- }, v = () => l.current = !1;
36
- return document.addEventListener("keydown", g, { capture: !0 }), () => {
37
- document.removeEventListener("keydown", g, { capture: !0 }), document.removeEventListener("pointerdown", v, { capture: !0 }), document.removeEventListener("pointermove", v, { capture: !0 });
31
+ };
32
+ var MENU_NAME = "Menu";
33
+ var [Collection, useCollection, createCollectionScope] = createCollection(MENU_NAME);
34
+ var [createMenuContext, createMenuScope] = createContextScope(MENU_NAME, [
35
+ createCollectionScope,
36
+ createPopperScope,
37
+ createRovingFocusGroupScope
38
+ ]);
39
+ var usePopperScope = createPopperScope();
40
+ var useRovingFocusGroupScope = createRovingFocusGroupScope();
41
+ var [MenuProvider, useMenuContext] = createMenuContext(MENU_NAME);
42
+ var [MenuRootProvider, useMenuRootContext] = createMenuContext(MENU_NAME);
43
+ var Menu = (props) => {
44
+ const { __scopeMenu, open = false, children, dir, onOpenChange, modal = true } = props;
45
+ const popperScope = usePopperScope(__scopeMenu);
46
+ const [content, setContent] = React.useState(null);
47
+ const isUsingKeyboardRef = React.useRef(false);
48
+ const handleOpenChange = useCallbackRef(onOpenChange);
49
+ const direction = useDirection(dir);
50
+ React.useEffect(() => {
51
+ const handleKeyDown = () => {
52
+ isUsingKeyboardRef.current = true;
53
+ document.addEventListener("pointerdown", handlePointer, { capture: true, once: true });
54
+ document.addEventListener("pointermove", handlePointer, { capture: true, once: true });
55
+ };
56
+ const handlePointer = () => isUsingKeyboardRef.current = false;
57
+ document.addEventListener("keydown", handleKeyDown, { capture: true });
58
+ return () => {
59
+ document.removeEventListener("keydown", handleKeyDown, { capture: true });
60
+ document.removeEventListener("pointerdown", handlePointer, { capture: true });
61
+ document.removeEventListener("pointermove", handlePointer, { capture: true });
38
62
  };
39
- }, []), /* @__PURE__ */ s($e, { ...p, children: /* @__PURE__ */ s(
40
- mt,
63
+ }, []);
64
+ return /* @__PURE__ */ jsx(Root2, { ...popperScope, children: /* @__PURE__ */ jsx(
65
+ MenuProvider,
41
66
  {
42
- scope: n,
43
- open: t,
44
- onOpenChange: a,
45
- content: h,
46
- onContentChange: m,
47
- children: /* @__PURE__ */ s(
48
- pt,
67
+ scope: __scopeMenu,
68
+ open,
69
+ onOpenChange: handleOpenChange,
70
+ content,
71
+ onContentChange: setContent,
72
+ children: /* @__PURE__ */ jsx(
73
+ MenuRootProvider,
49
74
  {
50
- scope: n,
51
- onClose: o.useCallback(() => a(!1), [a]),
52
- isUsingKeyboardRef: l,
53
- dir: f,
54
- modal: d,
55
- children: r
75
+ scope: __scopeMenu,
76
+ onClose: React.useCallback(() => handleOpenChange(false), [handleOpenChange]),
77
+ isUsingKeyboardRef,
78
+ dir: direction,
79
+ modal,
80
+ children
56
81
  }
57
82
  )
58
83
  }
59
84
  ) });
60
85
  };
61
- ve.displayName = F;
62
- var vt = "MenuAnchor", q = o.forwardRef(
63
- (e, n) => {
64
- const { __scopeMenu: t, ...r } = e, u = X(t);
65
- return /* @__PURE__ */ s(qe, { ...u, ...r, ref: n });
86
+ Menu.displayName = MENU_NAME;
87
+ var ANCHOR_NAME = "MenuAnchor";
88
+ var MenuAnchor = React.forwardRef(
89
+ (props, forwardedRef) => {
90
+ const { __scopeMenu, ...anchorProps } = props;
91
+ const popperScope = usePopperScope(__scopeMenu);
92
+ return /* @__PURE__ */ jsx(Anchor, { ...popperScope, ...anchorProps, ref: forwardedRef });
66
93
  }
67
94
  );
68
- q.displayName = vt;
69
- var J = "MenuPortal", [Mt, Me] = P(J, {
95
+ MenuAnchor.displayName = ANCHOR_NAME;
96
+ var PORTAL_NAME = "MenuPortal";
97
+ var [PortalProvider, usePortalContext] = createMenuContext(PORTAL_NAME, {
70
98
  forceMount: void 0
71
- }), he = (e) => {
72
- const { __scopeMenu: n, forceMount: t, children: r, container: u } = e, c = S(J, n);
73
- return /* @__PURE__ */ s(Mt, { scope: n, forceMount: t, children: /* @__PURE__ */ s(Y, { present: t || c.open, children: /* @__PURE__ */ s(et, { asChild: !0, container: u, children: r }) }) });
99
+ });
100
+ var MenuPortal = (props) => {
101
+ const { __scopeMenu, forceMount, children, container } = props;
102
+ const context = useMenuContext(PORTAL_NAME, __scopeMenu);
103
+ return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeMenu, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Portal$1, { asChild: true, container, children }) }) });
74
104
  };
75
- he.displayName = J;
76
- var _ = "MenuContent", [ht, Q] = P(_), Ce = o.forwardRef(
77
- (e, n) => {
78
- const t = Me(_, e.__scopeMenu), { forceMount: r = t.forceMount, ...u } = e, c = S(_, e.__scopeMenu), d = L(_, e.__scopeMenu);
79
- return /* @__PURE__ */ s(O.Provider, { scope: e.__scopeMenu, children: /* @__PURE__ */ s(Y, { present: r || c.open, children: /* @__PURE__ */ s(O.Slot, { scope: e.__scopeMenu, children: d.modal ? /* @__PURE__ */ s(Ct, { ...u, ref: n }) : /* @__PURE__ */ s(gt, { ...u, ref: n }) }) }) });
105
+ MenuPortal.displayName = PORTAL_NAME;
106
+ var CONTENT_NAME = "MenuContent";
107
+ var [MenuContentProvider, useMenuContentContext] = createMenuContext(CONTENT_NAME);
108
+ var MenuContent = React.forwardRef(
109
+ (props, forwardedRef) => {
110
+ const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);
111
+ const { forceMount = portalContext.forceMount, ...contentProps } = props;
112
+ const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);
113
+ const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);
114
+ return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: rootContext.modal ? /* @__PURE__ */ jsx(MenuRootContentModal, { ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(MenuRootContentNonModal, { ...contentProps, ref: forwardedRef }) }) }) });
80
115
  }
81
- ), Ct = o.forwardRef(
82
- (e, n) => {
83
- const t = S(_, e.__scopeMenu), r = o.useRef(null), u = D(n, r);
84
- return o.useEffect(() => {
85
- const c = r.current;
86
- if (c) return ct(c);
87
- }, []), /* @__PURE__ */ s(
88
- ee,
116
+ );
117
+ var MenuRootContentModal = React.forwardRef(
118
+ (props, forwardedRef) => {
119
+ const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);
120
+ const ref = React.useRef(null);
121
+ const composedRefs = useComposedRefs(forwardedRef, ref);
122
+ React.useEffect(() => {
123
+ const content = ref.current;
124
+ if (content) return hideOthers(content);
125
+ }, []);
126
+ return /* @__PURE__ */ jsx(
127
+ MenuContentImpl,
89
128
  {
90
- ...e,
91
- ref: u,
92
- trapFocus: t.open,
93
- disableOutsidePointerEvents: t.open,
94
- disableOutsideScroll: !0,
95
- onFocusOutside: M(
96
- e.onFocusOutside,
97
- (c) => c.preventDefault(),
98
- { checkForDefaultPrevented: !1 }
129
+ ...props,
130
+ ref: composedRefs,
131
+ trapFocus: context.open,
132
+ disableOutsidePointerEvents: context.open,
133
+ disableOutsideScroll: true,
134
+ onFocusOutside: composeEventHandlers(
135
+ props.onFocusOutside,
136
+ (event) => event.preventDefault(),
137
+ { checkForDefaultPrevented: false }
99
138
  ),
100
- onDismiss: () => t.onOpenChange(!1)
139
+ onDismiss: () => context.onOpenChange(false)
101
140
  }
102
141
  );
103
142
  }
104
- ), gt = o.forwardRef((e, n) => {
105
- const t = S(_, e.__scopeMenu);
106
- return /* @__PURE__ */ s(
107
- ee,
143
+ );
144
+ var MenuRootContentNonModal = React.forwardRef((props, forwardedRef) => {
145
+ const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);
146
+ return /* @__PURE__ */ jsx(
147
+ MenuContentImpl,
108
148
  {
109
- ...e,
110
- ref: n,
111
- trapFocus: !1,
112
- disableOutsidePointerEvents: !1,
113
- disableOutsideScroll: !1,
114
- onDismiss: () => t.onOpenChange(!1)
149
+ ...props,
150
+ ref: forwardedRef,
151
+ trapFocus: false,
152
+ disableOutsidePointerEvents: false,
153
+ disableOutsideScroll: false,
154
+ onDismiss: () => context.onOpenChange(false)
115
155
  }
116
156
  );
117
- }), _t = rt("MenuContent.ScrollLock"), ee = o.forwardRef(
118
- (e, n) => {
157
+ });
158
+ var Slot = createSlot("MenuContent.ScrollLock");
159
+ var MenuContentImpl = React.forwardRef(
160
+ (props, forwardedRef) => {
119
161
  const {
120
- __scopeMenu: t,
121
- loop: r = !1,
122
- trapFocus: u,
123
- onOpenAutoFocus: c,
124
- onCloseAutoFocus: d,
125
- disableOutsidePointerEvents: p,
126
- onEntryFocus: h,
127
- onEscapeKeyDown: m,
128
- onPointerDownOutside: l,
129
- onFocusOutside: a,
130
- onInteractOutside: f,
131
- onDismiss: g,
132
- disableOutsideScroll: v,
133
- ...E
134
- } = e, x = S(_, t), w = L(_, t), Ne = X(t), Fe = pe(t), re = dt(t), [Le, ce] = o.useState(null), K = o.useRef(null), Ke = D(n, K, x.onContentChange), G = o.useRef(0), U = o.useRef(""), Ge = o.useRef(0), H = o.useRef(null), ae = o.useRef("right"), W = o.useRef(0), Ue = v ? at : o.Fragment, Be = v ? { as: _t, allowPinchZoom: !0 } : void 0, Ve = (i) => {
135
- const y = U.current + i, R = re().filter((C) => !C.disabled), b = document.activeElement, z = R.find((C) => C.ref.current === b)?.textValue, Z = R.map((C) => C.textValue), se = Ot(Z, y, z), T = R.find((C) => C.textValue === se)?.ref.current;
136
- (function C(ue) {
137
- U.current = ue, window.clearTimeout(G.current), ue !== "" && (G.current = window.setTimeout(() => C(""), 1e3));
138
- })(y), T && setTimeout(() => T.focus());
162
+ __scopeMenu,
163
+ loop = false,
164
+ trapFocus,
165
+ onOpenAutoFocus,
166
+ onCloseAutoFocus,
167
+ disableOutsidePointerEvents,
168
+ onEntryFocus,
169
+ onEscapeKeyDown,
170
+ onPointerDownOutside,
171
+ onFocusOutside,
172
+ onInteractOutside,
173
+ onDismiss,
174
+ disableOutsideScroll,
175
+ ...contentProps
176
+ } = props;
177
+ const context = useMenuContext(CONTENT_NAME, __scopeMenu);
178
+ const rootContext = useMenuRootContext(CONTENT_NAME, __scopeMenu);
179
+ const popperScope = usePopperScope(__scopeMenu);
180
+ const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);
181
+ const getItems = useCollection(__scopeMenu);
182
+ const [currentItemId, setCurrentItemId] = React.useState(null);
183
+ const contentRef = React.useRef(null);
184
+ const composedRefs = useComposedRefs(forwardedRef, contentRef, context.onContentChange);
185
+ const timerRef = React.useRef(0);
186
+ const searchRef = React.useRef("");
187
+ const pointerGraceTimerRef = React.useRef(0);
188
+ const pointerGraceIntentRef = React.useRef(null);
189
+ const pointerDirRef = React.useRef("right");
190
+ const lastPointerXRef = React.useRef(0);
191
+ const ScrollLockWrapper = disableOutsideScroll ? ReactRemoveScroll : React.Fragment;
192
+ const scrollLockWrapperProps = disableOutsideScroll ? { as: Slot, allowPinchZoom: true } : void 0;
193
+ const handleTypeaheadSearch = (key) => {
194
+ const search = searchRef.current + key;
195
+ const items = getItems().filter((item) => !item.disabled);
196
+ const currentItem = document.activeElement;
197
+ const currentMatch = items.find((item) => item.ref.current === currentItem)?.textValue;
198
+ const values = items.map((item) => item.textValue);
199
+ const nextMatch = getNextMatch(values, search, currentMatch);
200
+ const newItem = items.find((item) => item.textValue === nextMatch)?.ref.current;
201
+ (function updateSearch(value) {
202
+ searchRef.current = value;
203
+ window.clearTimeout(timerRef.current);
204
+ if (value !== "") timerRef.current = window.setTimeout(() => updateSearch(""), 1e3);
205
+ })(search);
206
+ if (newItem) {
207
+ setTimeout(() => newItem.focus());
208
+ }
139
209
  };
140
- o.useEffect(() => () => window.clearTimeout(G.current), []), ze();
141
- const I = o.useCallback((i) => ae.current === H.current?.side && Dt(i, H.current?.area), []);
142
- return /* @__PURE__ */ s(
143
- ht,
210
+ React.useEffect(() => {
211
+ return () => window.clearTimeout(timerRef.current);
212
+ }, []);
213
+ useFocusGuards();
214
+ const isPointerMovingToSubmenu = React.useCallback((event) => {
215
+ const isMovingTowards = pointerDirRef.current === pointerGraceIntentRef.current?.side;
216
+ return isMovingTowards && isPointerInGraceArea(event, pointerGraceIntentRef.current?.area);
217
+ }, []);
218
+ return /* @__PURE__ */ jsx(
219
+ MenuContentProvider,
144
220
  {
145
- scope: t,
146
- searchRef: U,
147
- onItemEnter: o.useCallback(
148
- (i) => {
149
- I(i) && i.preventDefault();
221
+ scope: __scopeMenu,
222
+ searchRef,
223
+ onItemEnter: React.useCallback(
224
+ (event) => {
225
+ if (isPointerMovingToSubmenu(event)) event.preventDefault();
150
226
  },
151
- [I]
227
+ [isPointerMovingToSubmenu]
152
228
  ),
153
- onItemLeave: o.useCallback(
154
- (i) => {
155
- I(i) || (K.current?.focus(), ce(null));
229
+ onItemLeave: React.useCallback(
230
+ (event) => {
231
+ if (isPointerMovingToSubmenu(event)) return;
232
+ contentRef.current?.focus();
233
+ setCurrentItemId(null);
156
234
  },
157
- [I]
235
+ [isPointerMovingToSubmenu]
158
236
  ),
159
- onTriggerLeave: o.useCallback(
160
- (i) => {
161
- I(i) && i.preventDefault();
237
+ onTriggerLeave: React.useCallback(
238
+ (event) => {
239
+ if (isPointerMovingToSubmenu(event)) event.preventDefault();
162
240
  },
163
- [I]
241
+ [isPointerMovingToSubmenu]
164
242
  ),
165
- pointerGraceTimerRef: Ge,
166
- onPointerGraceIntentChange: o.useCallback((i) => {
167
- H.current = i;
243
+ pointerGraceTimerRef,
244
+ onPointerGraceIntentChange: React.useCallback((intent) => {
245
+ pointerGraceIntentRef.current = intent;
168
246
  }, []),
169
- children: /* @__PURE__ */ s(Ue, { ...Be, children: /* @__PURE__ */ s(
170
- Ze,
247
+ children: /* @__PURE__ */ jsx(ScrollLockWrapper, { ...scrollLockWrapperProps, children: /* @__PURE__ */ jsx(
248
+ FocusScope,
171
249
  {
172
- asChild: !0,
173
- trapped: u,
174
- onMountAutoFocus: M(c, (i) => {
175
- i.preventDefault(), K.current?.focus({ preventScroll: !0 });
250
+ asChild: true,
251
+ trapped: trapFocus,
252
+ onMountAutoFocus: composeEventHandlers(onOpenAutoFocus, (event) => {
253
+ event.preventDefault();
254
+ contentRef.current?.focus({ preventScroll: true });
176
255
  }),
177
- onUnmountAutoFocus: d,
178
- children: /* @__PURE__ */ s(
179
- We,
256
+ onUnmountAutoFocus: onCloseAutoFocus,
257
+ children: /* @__PURE__ */ jsx(
258
+ DismissableLayer,
180
259
  {
181
- asChild: !0,
182
- disableOutsidePointerEvents: p,
183
- onEscapeKeyDown: m,
184
- onPointerDownOutside: l,
185
- onFocusOutside: a,
186
- onInteractOutside: f,
187
- onDismiss: g,
188
- children: /* @__PURE__ */ s(
189
- ot,
260
+ asChild: true,
261
+ disableOutsidePointerEvents,
262
+ onEscapeKeyDown,
263
+ onPointerDownOutside,
264
+ onFocusOutside,
265
+ onInteractOutside,
266
+ onDismiss,
267
+ children: /* @__PURE__ */ jsx(
268
+ Root,
190
269
  {
191
- asChild: !0,
192
- ...Fe,
193
- dir: w.dir,
270
+ asChild: true,
271
+ ...rovingFocusGroupScope,
272
+ dir: rootContext.dir,
194
273
  orientation: "vertical",
195
- loop: r,
196
- currentTabStopId: Le,
197
- onCurrentTabStopIdChange: ce,
198
- onEntryFocus: M(h, (i) => {
199
- w.isUsingKeyboardRef.current || i.preventDefault();
274
+ loop,
275
+ currentTabStopId: currentItemId,
276
+ onCurrentTabStopIdChange: setCurrentItemId,
277
+ onEntryFocus: composeEventHandlers(onEntryFocus, (event) => {
278
+ if (!rootContext.isUsingKeyboardRef.current) event.preventDefault();
200
279
  }),
201
- preventScrollOnEntryFocus: !0,
202
- children: /* @__PURE__ */ s(
203
- Je,
280
+ preventScrollOnEntryFocus: true,
281
+ children: /* @__PURE__ */ jsx(
282
+ Content,
204
283
  {
205
284
  role: "menu",
206
285
  "aria-orientation": "vertical",
207
- "data-state": De(x.open),
286
+ "data-state": getOpenState(context.open),
208
287
  "data-radix-menu-content": "",
209
- dir: w.dir,
210
- ...Ne,
211
- ...E,
212
- ref: Ke,
213
- style: { outline: "none", ...E.style },
214
- onKeyDown: M(E.onKeyDown, (i) => {
215
- const R = i.target.closest("[data-radix-menu-content]") === i.currentTarget, b = i.ctrlKey || i.altKey || i.metaKey, z = i.key.length === 1;
216
- R && (i.key === "Tab" && i.preventDefault(), !b && z && Ve(i.key));
217
- const Z = K.current;
218
- if (i.target !== Z || !ut.includes(i.key)) return;
219
- i.preventDefault();
220
- const T = re().filter((C) => !C.disabled).map((C) => C.ref.current);
221
- me.includes(i.key) && T.reverse(), Tt(T);
288
+ dir: rootContext.dir,
289
+ ...popperScope,
290
+ ...contentProps,
291
+ ref: composedRefs,
292
+ style: { outline: "none", ...contentProps.style },
293
+ onKeyDown: composeEventHandlers(contentProps.onKeyDown, (event) => {
294
+ const target = event.target;
295
+ const isKeyDownInside = target.closest("[data-radix-menu-content]") === event.currentTarget;
296
+ const isModifierKey = event.ctrlKey || event.altKey || event.metaKey;
297
+ const isCharacterKey = event.key.length === 1;
298
+ if (isKeyDownInside) {
299
+ if (event.key === "Tab") event.preventDefault();
300
+ if (!isModifierKey && isCharacterKey) handleTypeaheadSearch(event.key);
301
+ }
302
+ const content = contentRef.current;
303
+ if (event.target !== content) return;
304
+ if (!FIRST_LAST_KEYS.includes(event.key)) return;
305
+ event.preventDefault();
306
+ const items = getItems().filter((item) => !item.disabled);
307
+ const candidateNodes = items.map((item) => item.ref.current);
308
+ if (LAST_KEYS.includes(event.key)) candidateNodes.reverse();
309
+ focusFirst(candidateNodes);
222
310
  }),
223
- onBlur: M(e.onBlur, (i) => {
224
- i.currentTarget.contains(i.target) || (window.clearTimeout(G.current), U.current = "");
311
+ onBlur: composeEventHandlers(props.onBlur, (event) => {
312
+ if (!event.currentTarget.contains(event.target)) {
313
+ window.clearTimeout(timerRef.current);
314
+ searchRef.current = "";
315
+ }
225
316
  }),
226
- onPointerMove: M(
227
- e.onPointerMove,
228
- k((i) => {
229
- const y = i.target, R = W.current !== i.clientX;
230
- if (i.currentTarget.contains(y) && R) {
231
- const b = i.clientX > W.current ? "right" : "left";
232
- ae.current = b, W.current = i.clientX;
317
+ onPointerMove: composeEventHandlers(
318
+ props.onPointerMove,
319
+ whenMouse((event) => {
320
+ const target = event.target;
321
+ const pointerXHasChanged = lastPointerXRef.current !== event.clientX;
322
+ if (event.currentTarget.contains(target) && pointerXHasChanged) {
323
+ const newDir = event.clientX > lastPointerXRef.current ? "right" : "left";
324
+ pointerDirRef.current = newDir;
325
+ lastPointerXRef.current = event.clientX;
233
326
  }
234
327
  })
235
328
  )
@@ -245,365 +338,492 @@ var _ = "MenuContent", [ht, Q] = P(_), Ce = o.forwardRef(
245
338
  );
246
339
  }
247
340
  );
248
- Ce.displayName = _;
249
- var Rt = "MenuGroup", te = o.forwardRef(
250
- (e, n) => {
251
- const { __scopeMenu: t, ...r } = e;
252
- return /* @__PURE__ */ s(N.div, { role: "group", ...r, ref: n });
341
+ MenuContent.displayName = CONTENT_NAME;
342
+ var GROUP_NAME = "MenuGroup";
343
+ var MenuGroup = React.forwardRef(
344
+ (props, forwardedRef) => {
345
+ const { __scopeMenu, ...groupProps } = props;
346
+ return /* @__PURE__ */ jsx(Primitive.div, { role: "group", ...groupProps, ref: forwardedRef });
253
347
  }
254
348
  );
255
- te.displayName = Rt;
256
- var Pt = "MenuLabel", ge = o.forwardRef(
257
- (e, n) => {
258
- const { __scopeMenu: t, ...r } = e;
259
- return /* @__PURE__ */ s(N.div, { ...r, ref: n });
349
+ MenuGroup.displayName = GROUP_NAME;
350
+ var LABEL_NAME = "MenuLabel";
351
+ var MenuLabel = React.forwardRef(
352
+ (props, forwardedRef) => {
353
+ const { __scopeMenu, ...labelProps } = props;
354
+ return /* @__PURE__ */ jsx(Primitive.div, { ...labelProps, ref: forwardedRef });
260
355
  }
261
356
  );
262
- ge.displayName = Pt;
263
- var B = "MenuItem", ie = "menu.itemSelect", j = o.forwardRef(
264
- (e, n) => {
265
- const { disabled: t = !1, onSelect: r, ...u } = e, c = o.useRef(null), d = L(B, e.__scopeMenu), p = Q(B, e.__scopeMenu), h = D(n, c), m = o.useRef(!1), l = () => {
266
- const a = c.current;
267
- if (!t && a) {
268
- const f = new CustomEvent(ie, { bubbles: !0, cancelable: !0 });
269
- a.addEventListener(ie, (g) => r?.(g), { once: !0 }), tt(a, f), f.defaultPrevented ? m.current = !1 : d.onClose();
357
+ MenuLabel.displayName = LABEL_NAME;
358
+ var ITEM_NAME = "MenuItem";
359
+ var ITEM_SELECT = "menu.itemSelect";
360
+ var MenuItem = React.forwardRef(
361
+ (props, forwardedRef) => {
362
+ const { disabled = false, onSelect, ...itemProps } = props;
363
+ const ref = React.useRef(null);
364
+ const rootContext = useMenuRootContext(ITEM_NAME, props.__scopeMenu);
365
+ const contentContext = useMenuContentContext(ITEM_NAME, props.__scopeMenu);
366
+ const composedRefs = useComposedRefs(forwardedRef, ref);
367
+ const isPointerDownRef = React.useRef(false);
368
+ const handleSelect = () => {
369
+ const menuItem = ref.current;
370
+ if (!disabled && menuItem) {
371
+ const itemSelectEvent = new CustomEvent(ITEM_SELECT, { bubbles: true, cancelable: true });
372
+ menuItem.addEventListener(ITEM_SELECT, (event) => onSelect?.(event), { once: true });
373
+ dispatchDiscreteCustomEvent(menuItem, itemSelectEvent);
374
+ if (itemSelectEvent.defaultPrevented) {
375
+ isPointerDownRef.current = false;
376
+ } else {
377
+ rootContext.onClose();
378
+ }
270
379
  }
271
380
  };
272
- return /* @__PURE__ */ s(
273
- _e,
381
+ return /* @__PURE__ */ jsx(
382
+ MenuItemImpl,
274
383
  {
275
- ...u,
276
- ref: h,
277
- disabled: t,
278
- onClick: M(e.onClick, l),
279
- onPointerDown: (a) => {
280
- e.onPointerDown?.(a), m.current = !0;
384
+ ...itemProps,
385
+ ref: composedRefs,
386
+ disabled,
387
+ onClick: composeEventHandlers(props.onClick, handleSelect),
388
+ onPointerDown: (event) => {
389
+ props.onPointerDown?.(event);
390
+ isPointerDownRef.current = true;
281
391
  },
282
- onPointerUp: M(e.onPointerUp, (a) => {
283
- m.current || a.currentTarget?.click();
392
+ onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {
393
+ if (!isPointerDownRef.current) event.currentTarget?.click();
284
394
  }),
285
- onKeyDown: M(e.onKeyDown, (a) => {
286
- const f = p.searchRef.current !== "";
287
- t || f && a.key === " " || $.includes(a.key) && (a.currentTarget.click(), a.preventDefault());
395
+ onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {
396
+ const isTypingAhead = contentContext.searchRef.current !== "";
397
+ if (disabled || isTypingAhead && event.key === " ") return;
398
+ if (SELECTION_KEYS.includes(event.key)) {
399
+ event.currentTarget.click();
400
+ event.preventDefault();
401
+ }
288
402
  })
289
403
  }
290
404
  );
291
405
  }
292
406
  );
293
- j.displayName = B;
294
- var _e = o.forwardRef(
295
- (e, n) => {
296
- const { __scopeMenu: t, disabled: r = !1, textValue: u, ...c } = e, d = Q(B, t), p = pe(t), h = o.useRef(null), m = D(n, h), [l, a] = o.useState(!1), [f, g] = o.useState("");
297
- return o.useEffect(() => {
298
- const v = h.current;
299
- v && g((v.textContent ?? "").trim());
300
- }, [c.children]), /* @__PURE__ */ s(
301
- O.ItemSlot,
407
+ MenuItem.displayName = ITEM_NAME;
408
+ var MenuItemImpl = React.forwardRef(
409
+ (props, forwardedRef) => {
410
+ const { __scopeMenu, disabled = false, textValue, ...itemProps } = props;
411
+ const contentContext = useMenuContentContext(ITEM_NAME, __scopeMenu);
412
+ const rovingFocusGroupScope = useRovingFocusGroupScope(__scopeMenu);
413
+ const ref = React.useRef(null);
414
+ const composedRefs = useComposedRefs(forwardedRef, ref);
415
+ const [isFocused, setIsFocused] = React.useState(false);
416
+ const [textContent, setTextContent] = React.useState("");
417
+ React.useEffect(() => {
418
+ const menuItem = ref.current;
419
+ if (menuItem) {
420
+ setTextContent((menuItem.textContent ?? "").trim());
421
+ }
422
+ }, [itemProps.children]);
423
+ return /* @__PURE__ */ jsx(
424
+ Collection.ItemSlot,
302
425
  {
303
- scope: t,
304
- disabled: r,
305
- textValue: u ?? f,
306
- children: /* @__PURE__ */ s(nt, { asChild: !0, ...p, focusable: !r, children: /* @__PURE__ */ s(
307
- N.div,
426
+ scope: __scopeMenu,
427
+ disabled,
428
+ textValue: textValue ?? textContent,
429
+ children: /* @__PURE__ */ jsx(Item, { asChild: true, ...rovingFocusGroupScope, focusable: !disabled, children: /* @__PURE__ */ jsx(
430
+ Primitive.div,
308
431
  {
309
432
  role: "menuitem",
310
- "data-highlighted": l ? "" : void 0,
311
- "aria-disabled": r || void 0,
312
- "data-disabled": r ? "" : void 0,
313
- ...c,
314
- ref: m,
315
- onPointerMove: M(
316
- e.onPointerMove,
317
- k((v) => {
318
- r ? d.onItemLeave(v) : (d.onItemEnter(v), v.defaultPrevented || v.currentTarget.focus({ preventScroll: !0 }));
433
+ "data-highlighted": isFocused ? "" : void 0,
434
+ "aria-disabled": disabled || void 0,
435
+ "data-disabled": disabled ? "" : void 0,
436
+ ...itemProps,
437
+ ref: composedRefs,
438
+ onPointerMove: composeEventHandlers(
439
+ props.onPointerMove,
440
+ whenMouse((event) => {
441
+ if (disabled) {
442
+ contentContext.onItemLeave(event);
443
+ } else {
444
+ contentContext.onItemEnter(event);
445
+ if (!event.defaultPrevented) {
446
+ const item = event.currentTarget;
447
+ item.focus({ preventScroll: true });
448
+ }
449
+ }
319
450
  })
320
451
  ),
321
- onPointerLeave: M(
322
- e.onPointerLeave,
323
- k((v) => d.onItemLeave(v))
452
+ onPointerLeave: composeEventHandlers(
453
+ props.onPointerLeave,
454
+ whenMouse((event) => contentContext.onItemLeave(event))
324
455
  ),
325
- onFocus: M(e.onFocus, () => a(!0)),
326
- onBlur: M(e.onBlur, () => a(!1))
456
+ onFocus: composeEventHandlers(props.onFocus, () => setIsFocused(true)),
457
+ onBlur: composeEventHandlers(props.onBlur, () => setIsFocused(false))
327
458
  }
328
459
  ) })
329
460
  }
330
461
  );
331
462
  }
332
- ), St = "MenuCheckboxItem", Re = o.forwardRef(
333
- (e, n) => {
334
- const { checked: t = !1, onCheckedChange: r, ...u } = e;
335
- return /* @__PURE__ */ s(Ie, { scope: e.__scopeMenu, checked: t, children: /* @__PURE__ */ s(
336
- j,
463
+ );
464
+ var CHECKBOX_ITEM_NAME = "MenuCheckboxItem";
465
+ var MenuCheckboxItem = React.forwardRef(
466
+ (props, forwardedRef) => {
467
+ const { checked = false, onCheckedChange, ...checkboxItemProps } = props;
468
+ return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(
469
+ MenuItem,
337
470
  {
338
471
  role: "menuitemcheckbox",
339
- "aria-checked": V(t) ? "mixed" : t,
340
- ...u,
341
- ref: n,
342
- "data-state": oe(t),
343
- onSelect: M(
344
- u.onSelect,
345
- () => r?.(V(t) ? !0 : !t),
346
- { checkForDefaultPrevented: !1 }
472
+ "aria-checked": isIndeterminate(checked) ? "mixed" : checked,
473
+ ...checkboxItemProps,
474
+ ref: forwardedRef,
475
+ "data-state": getCheckedState(checked),
476
+ onSelect: composeEventHandlers(
477
+ checkboxItemProps.onSelect,
478
+ () => onCheckedChange?.(isIndeterminate(checked) ? true : !checked),
479
+ { checkForDefaultPrevented: false }
347
480
  )
348
481
  }
349
482
  ) });
350
483
  }
351
484
  );
352
- Re.displayName = St;
353
- var Pe = "MenuRadioGroup", [Et, wt] = P(
354
- Pe,
485
+ MenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;
486
+ var RADIO_GROUP_NAME = "MenuRadioGroup";
487
+ var [RadioGroupProvider, useRadioGroupContext] = createMenuContext(
488
+ RADIO_GROUP_NAME,
355
489
  { value: void 0, onValueChange: () => {
356
490
  } }
357
- ), Se = o.forwardRef(
358
- (e, n) => {
359
- const { value: t, onValueChange: r, ...u } = e, c = fe(r);
360
- return /* @__PURE__ */ s(Et, { scope: e.__scopeMenu, value: t, onValueChange: c, children: /* @__PURE__ */ s(te, { ...u, ref: n }) });
491
+ );
492
+ var MenuRadioGroup = React.forwardRef(
493
+ (props, forwardedRef) => {
494
+ const { value, onValueChange, ...groupProps } = props;
495
+ const handleValueChange = useCallbackRef(onValueChange);
496
+ return /* @__PURE__ */ jsx(RadioGroupProvider, { scope: props.__scopeMenu, value, onValueChange: handleValueChange, children: /* @__PURE__ */ jsx(MenuGroup, { ...groupProps, ref: forwardedRef }) });
361
497
  }
362
498
  );
363
- Se.displayName = Pe;
364
- var Ee = "MenuRadioItem", we = o.forwardRef(
365
- (e, n) => {
366
- const { value: t, ...r } = e, u = wt(Ee, e.__scopeMenu), c = t === u.value;
367
- return /* @__PURE__ */ s(Ie, { scope: e.__scopeMenu, checked: c, children: /* @__PURE__ */ s(
368
- j,
499
+ MenuRadioGroup.displayName = RADIO_GROUP_NAME;
500
+ var RADIO_ITEM_NAME = "MenuRadioItem";
501
+ var MenuRadioItem = React.forwardRef(
502
+ (props, forwardedRef) => {
503
+ const { value, ...radioItemProps } = props;
504
+ const context = useRadioGroupContext(RADIO_ITEM_NAME, props.__scopeMenu);
505
+ const checked = value === context.value;
506
+ return /* @__PURE__ */ jsx(ItemIndicatorProvider, { scope: props.__scopeMenu, checked, children: /* @__PURE__ */ jsx(
507
+ MenuItem,
369
508
  {
370
509
  role: "menuitemradio",
371
- "aria-checked": c,
372
- ...r,
373
- ref: n,
374
- "data-state": oe(c),
375
- onSelect: M(
376
- r.onSelect,
377
- () => u.onValueChange?.(t),
378
- { checkForDefaultPrevented: !1 }
510
+ "aria-checked": checked,
511
+ ...radioItemProps,
512
+ ref: forwardedRef,
513
+ "data-state": getCheckedState(checked),
514
+ onSelect: composeEventHandlers(
515
+ radioItemProps.onSelect,
516
+ () => context.onValueChange?.(value),
517
+ { checkForDefaultPrevented: false }
379
518
  )
380
519
  }
381
520
  ) });
382
521
  }
383
522
  );
384
- we.displayName = Ee;
385
- var ne = "MenuItemIndicator", [Ie, It] = P(
386
- ne,
387
- { checked: !1 }
388
- ), ye = o.forwardRef(
389
- (e, n) => {
390
- const { __scopeMenu: t, forceMount: r, ...u } = e, c = It(ne, t);
391
- return /* @__PURE__ */ s(
392
- Y,
523
+ MenuRadioItem.displayName = RADIO_ITEM_NAME;
524
+ var ITEM_INDICATOR_NAME = "MenuItemIndicator";
525
+ var [ItemIndicatorProvider, useItemIndicatorContext] = createMenuContext(
526
+ ITEM_INDICATOR_NAME,
527
+ { checked: false }
528
+ );
529
+ var MenuItemIndicator = React.forwardRef(
530
+ (props, forwardedRef) => {
531
+ const { __scopeMenu, forceMount, ...itemIndicatorProps } = props;
532
+ const indicatorContext = useItemIndicatorContext(ITEM_INDICATOR_NAME, __scopeMenu);
533
+ return /* @__PURE__ */ jsx(
534
+ Presence,
393
535
  {
394
- present: r || V(c.checked) || c.checked === !0,
395
- children: /* @__PURE__ */ s(
396
- N.span,
536
+ present: forceMount || isIndeterminate(indicatorContext.checked) || indicatorContext.checked === true,
537
+ children: /* @__PURE__ */ jsx(
538
+ Primitive.span,
397
539
  {
398
- ...u,
399
- ref: n,
400
- "data-state": oe(c.checked)
540
+ ...itemIndicatorProps,
541
+ ref: forwardedRef,
542
+ "data-state": getCheckedState(indicatorContext.checked)
401
543
  }
402
544
  )
403
545
  }
404
546
  );
405
547
  }
406
548
  );
407
- ye.displayName = ne;
408
- var yt = "MenuSeparator", xe = o.forwardRef(
409
- (e, n) => {
410
- const { __scopeMenu: t, ...r } = e;
411
- return /* @__PURE__ */ s(
412
- N.div,
549
+ MenuItemIndicator.displayName = ITEM_INDICATOR_NAME;
550
+ var SEPARATOR_NAME = "MenuSeparator";
551
+ var MenuSeparator = React.forwardRef(
552
+ (props, forwardedRef) => {
553
+ const { __scopeMenu, ...separatorProps } = props;
554
+ return /* @__PURE__ */ jsx(
555
+ Primitive.div,
413
556
  {
414
557
  role: "separator",
415
558
  "aria-orientation": "horizontal",
416
- ...r,
417
- ref: n
559
+ ...separatorProps,
560
+ ref: forwardedRef
418
561
  }
419
562
  );
420
563
  }
421
564
  );
422
- xe.displayName = yt;
423
- var xt = "MenuArrow", be = o.forwardRef(
424
- (e, n) => {
425
- const { __scopeMenu: t, ...r } = e, u = X(t);
426
- return /* @__PURE__ */ s(Qe, { ...u, ...r, ref: n });
565
+ MenuSeparator.displayName = SEPARATOR_NAME;
566
+ var ARROW_NAME = "MenuArrow";
567
+ var MenuArrow = React.forwardRef(
568
+ (props, forwardedRef) => {
569
+ const { __scopeMenu, ...arrowProps } = props;
570
+ const popperScope = usePopperScope(__scopeMenu);
571
+ return /* @__PURE__ */ jsx(Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });
427
572
  }
428
573
  );
429
- be.displayName = xt;
430
- var bt = "MenuSub", [en, Te] = P(bt), A = "MenuSubTrigger", Ae = o.forwardRef(
431
- (e, n) => {
432
- const t = S(A, e.__scopeMenu), r = L(A, e.__scopeMenu), u = Te(A, e.__scopeMenu), c = Q(A, e.__scopeMenu), d = o.useRef(null), { pointerGraceTimerRef: p, onPointerGraceIntentChange: h } = c, m = { __scopeMenu: e.__scopeMenu }, l = o.useCallback(() => {
433
- d.current && window.clearTimeout(d.current), d.current = null;
574
+ MenuArrow.displayName = ARROW_NAME;
575
+ var SUB_NAME = "MenuSub";
576
+ var [MenuSubProvider, useMenuSubContext] = createMenuContext(SUB_NAME);
577
+ var SUB_TRIGGER_NAME = "MenuSubTrigger";
578
+ var MenuSubTrigger = React.forwardRef(
579
+ (props, forwardedRef) => {
580
+ const context = useMenuContext(SUB_TRIGGER_NAME, props.__scopeMenu);
581
+ const rootContext = useMenuRootContext(SUB_TRIGGER_NAME, props.__scopeMenu);
582
+ const subContext = useMenuSubContext(SUB_TRIGGER_NAME, props.__scopeMenu);
583
+ const contentContext = useMenuContentContext(SUB_TRIGGER_NAME, props.__scopeMenu);
584
+ const openTimerRef = React.useRef(null);
585
+ const { pointerGraceTimerRef, onPointerGraceIntentChange } = contentContext;
586
+ const scope = { __scopeMenu: props.__scopeMenu };
587
+ const clearOpenTimer = React.useCallback(() => {
588
+ if (openTimerRef.current) window.clearTimeout(openTimerRef.current);
589
+ openTimerRef.current = null;
434
590
  }, []);
435
- return o.useEffect(() => l, [l]), o.useEffect(() => {
436
- const a = p.current;
591
+ React.useEffect(() => clearOpenTimer, [clearOpenTimer]);
592
+ React.useEffect(() => {
593
+ const pointerGraceTimer = pointerGraceTimerRef.current;
437
594
  return () => {
438
- window.clearTimeout(a), h(null);
595
+ window.clearTimeout(pointerGraceTimer);
596
+ onPointerGraceIntentChange(null);
439
597
  };
440
- }, [p, h]), /* @__PURE__ */ s(q, { asChild: !0, ...m, children: /* @__PURE__ */ s(
441
- _e,
598
+ }, [pointerGraceTimerRef, onPointerGraceIntentChange]);
599
+ return /* @__PURE__ */ jsx(MenuAnchor, { asChild: true, ...scope, children: /* @__PURE__ */ jsx(
600
+ MenuItemImpl,
442
601
  {
443
- id: u.triggerId,
602
+ id: subContext.triggerId,
444
603
  "aria-haspopup": "menu",
445
- "aria-expanded": t.open,
446
- "aria-controls": u.contentId,
447
- "data-state": De(t.open),
448
- ...e,
449
- ref: Xe(n, u.onTriggerChange),
450
- onClick: (a) => {
451
- e.onClick?.(a), !(e.disabled || a.defaultPrevented) && (a.currentTarget.focus(), t.open || t.onOpenChange(!0));
604
+ "aria-expanded": context.open,
605
+ "aria-controls": subContext.contentId,
606
+ "data-state": getOpenState(context.open),
607
+ ...props,
608
+ ref: composeRefs(forwardedRef, subContext.onTriggerChange),
609
+ onClick: (event) => {
610
+ props.onClick?.(event);
611
+ if (props.disabled || event.defaultPrevented) return;
612
+ event.currentTarget.focus();
613
+ if (!context.open) context.onOpenChange(true);
452
614
  },
453
- onPointerMove: M(
454
- e.onPointerMove,
455
- k((a) => {
456
- c.onItemEnter(a), !a.defaultPrevented && !e.disabled && !t.open && !d.current && (c.onPointerGraceIntentChange(null), d.current = window.setTimeout(() => {
457
- t.onOpenChange(!0), l();
458
- }, 100));
615
+ onPointerMove: composeEventHandlers(
616
+ props.onPointerMove,
617
+ whenMouse((event) => {
618
+ contentContext.onItemEnter(event);
619
+ if (event.defaultPrevented) return;
620
+ if (!props.disabled && !context.open && !openTimerRef.current) {
621
+ contentContext.onPointerGraceIntentChange(null);
622
+ openTimerRef.current = window.setTimeout(() => {
623
+ context.onOpenChange(true);
624
+ clearOpenTimer();
625
+ }, 100);
626
+ }
459
627
  })
460
628
  ),
461
- onPointerLeave: M(
462
- e.onPointerLeave,
463
- k((a) => {
464
- l();
465
- const f = t.content?.getBoundingClientRect();
466
- if (f) {
467
- const g = t.content?.dataset.side, v = g === "right", E = v ? -5 : 5, x = f[v ? "left" : "right"], w = f[v ? "right" : "left"];
468
- c.onPointerGraceIntentChange({
629
+ onPointerLeave: composeEventHandlers(
630
+ props.onPointerLeave,
631
+ whenMouse((event) => {
632
+ clearOpenTimer();
633
+ const contentRect = context.content?.getBoundingClientRect();
634
+ if (contentRect) {
635
+ const side = context.content?.dataset.side;
636
+ const rightSide = side === "right";
637
+ const bleed = rightSide ? -5 : 5;
638
+ const contentNearEdge = contentRect[rightSide ? "left" : "right"];
639
+ const contentFarEdge = contentRect[rightSide ? "right" : "left"];
640
+ contentContext.onPointerGraceIntentChange({
469
641
  area: [
470
642
  // Apply a bleed on clientX to ensure that our exit point is
471
643
  // consistently within polygon bounds
472
- { x: a.clientX + E, y: a.clientY },
473
- { x, y: f.top },
474
- { x: w, y: f.top },
475
- { x: w, y: f.bottom },
476
- { x, y: f.bottom }
644
+ { x: event.clientX + bleed, y: event.clientY },
645
+ { x: contentNearEdge, y: contentRect.top },
646
+ { x: contentFarEdge, y: contentRect.top },
647
+ { x: contentFarEdge, y: contentRect.bottom },
648
+ { x: contentNearEdge, y: contentRect.bottom }
477
649
  ],
478
- side: g
479
- }), window.clearTimeout(p.current), p.current = window.setTimeout(
480
- () => c.onPointerGraceIntentChange(null),
650
+ side
651
+ });
652
+ window.clearTimeout(pointerGraceTimerRef.current);
653
+ pointerGraceTimerRef.current = window.setTimeout(
654
+ () => contentContext.onPointerGraceIntentChange(null),
481
655
  300
482
656
  );
483
657
  } else {
484
- if (c.onTriggerLeave(a), a.defaultPrevented) return;
485
- c.onPointerGraceIntentChange(null);
658
+ contentContext.onTriggerLeave(event);
659
+ if (event.defaultPrevented) return;
660
+ contentContext.onPointerGraceIntentChange(null);
486
661
  }
487
662
  })
488
663
  ),
489
- onKeyDown: M(e.onKeyDown, (a) => {
490
- const f = c.searchRef.current !== "";
491
- e.disabled || f && a.key === " " || it[r.dir].includes(a.key) && (t.onOpenChange(!0), t.content?.focus(), a.preventDefault());
664
+ onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {
665
+ const isTypingAhead = contentContext.searchRef.current !== "";
666
+ if (props.disabled || isTypingAhead && event.key === " ") return;
667
+ if (SUB_OPEN_KEYS[rootContext.dir].includes(event.key)) {
668
+ context.onOpenChange(true);
669
+ context.content?.focus();
670
+ event.preventDefault();
671
+ }
492
672
  })
493
673
  }
494
674
  ) });
495
675
  }
496
676
  );
497
- Ae.displayName = A;
498
- var Oe = "MenuSubContent", ke = o.forwardRef(
499
- (e, n) => {
500
- const t = Me(_, e.__scopeMenu), { forceMount: r = t.forceMount, ...u } = e, c = S(_, e.__scopeMenu), d = L(_, e.__scopeMenu), p = Te(Oe, e.__scopeMenu), h = o.useRef(null), m = D(n, h);
501
- return /* @__PURE__ */ s(O.Provider, { scope: e.__scopeMenu, children: /* @__PURE__ */ s(Y, { present: r || c.open, children: /* @__PURE__ */ s(O.Slot, { scope: e.__scopeMenu, children: /* @__PURE__ */ s(
502
- ee,
677
+ MenuSubTrigger.displayName = SUB_TRIGGER_NAME;
678
+ var SUB_CONTENT_NAME = "MenuSubContent";
679
+ var MenuSubContent = React.forwardRef(
680
+ (props, forwardedRef) => {
681
+ const portalContext = usePortalContext(CONTENT_NAME, props.__scopeMenu);
682
+ const { forceMount = portalContext.forceMount, ...subContentProps } = props;
683
+ const context = useMenuContext(CONTENT_NAME, props.__scopeMenu);
684
+ const rootContext = useMenuRootContext(CONTENT_NAME, props.__scopeMenu);
685
+ const subContext = useMenuSubContext(SUB_CONTENT_NAME, props.__scopeMenu);
686
+ const ref = React.useRef(null);
687
+ const composedRefs = useComposedRefs(forwardedRef, ref);
688
+ return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(Collection.Slot, { scope: props.__scopeMenu, children: /* @__PURE__ */ jsx(
689
+ MenuContentImpl,
503
690
  {
504
- id: p.contentId,
505
- "aria-labelledby": p.triggerId,
506
- ...u,
507
- ref: m,
691
+ id: subContext.contentId,
692
+ "aria-labelledby": subContext.triggerId,
693
+ ...subContentProps,
694
+ ref: composedRefs,
508
695
  align: "start",
509
- side: d.dir === "rtl" ? "left" : "right",
510
- disableOutsidePointerEvents: !1,
511
- disableOutsideScroll: !1,
512
- trapFocus: !1,
513
- onOpenAutoFocus: (l) => {
514
- d.isUsingKeyboardRef.current && h.current?.focus(), l.preventDefault();
696
+ side: rootContext.dir === "rtl" ? "left" : "right",
697
+ disableOutsidePointerEvents: false,
698
+ disableOutsideScroll: false,
699
+ trapFocus: false,
700
+ onOpenAutoFocus: (event) => {
701
+ if (rootContext.isUsingKeyboardRef.current) ref.current?.focus();
702
+ event.preventDefault();
515
703
  },
516
- onCloseAutoFocus: (l) => l.preventDefault(),
517
- onFocusOutside: M(e.onFocusOutside, (l) => {
518
- l.target !== p.trigger && c.onOpenChange(!1);
704
+ onCloseAutoFocus: (event) => event.preventDefault(),
705
+ onFocusOutside: composeEventHandlers(props.onFocusOutside, (event) => {
706
+ if (event.target !== subContext.trigger) context.onOpenChange(false);
519
707
  }),
520
- onEscapeKeyDown: M(e.onEscapeKeyDown, (l) => {
521
- d.onClose(), l.preventDefault();
708
+ onEscapeKeyDown: composeEventHandlers(props.onEscapeKeyDown, (event) => {
709
+ rootContext.onClose();
710
+ event.preventDefault();
522
711
  }),
523
- onKeyDown: M(e.onKeyDown, (l) => {
524
- const a = l.currentTarget.contains(l.target), f = lt[d.dir].includes(l.key);
525
- a && f && (c.onOpenChange(!1), p.trigger?.focus(), l.preventDefault());
712
+ onKeyDown: composeEventHandlers(props.onKeyDown, (event) => {
713
+ const isKeyDownInside = event.currentTarget.contains(event.target);
714
+ const isCloseKey = SUB_CLOSE_KEYS[rootContext.dir].includes(event.key);
715
+ if (isKeyDownInside && isCloseKey) {
716
+ context.onOpenChange(false);
717
+ subContext.trigger?.focus();
718
+ event.preventDefault();
719
+ }
526
720
  })
527
721
  }
528
722
  ) }) }) });
529
723
  }
530
724
  );
531
- ke.displayName = Oe;
532
- function De(e) {
533
- return e ? "open" : "closed";
725
+ MenuSubContent.displayName = SUB_CONTENT_NAME;
726
+ function getOpenState(open) {
727
+ return open ? "open" : "closed";
534
728
  }
535
- function V(e) {
536
- return e === "indeterminate";
729
+ function isIndeterminate(checked) {
730
+ return checked === "indeterminate";
537
731
  }
538
- function oe(e) {
539
- return V(e) ? "indeterminate" : e ? "checked" : "unchecked";
732
+ function getCheckedState(checked) {
733
+ return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
540
734
  }
541
- function Tt(e) {
542
- const n = document.activeElement;
543
- for (const t of e)
544
- if (t === n || (t.focus(), document.activeElement !== n)) return;
735
+ function focusFirst(candidates) {
736
+ const PREVIOUSLY_FOCUSED_ELEMENT = document.activeElement;
737
+ for (const candidate of candidates) {
738
+ if (candidate === PREVIOUSLY_FOCUSED_ELEMENT) return;
739
+ candidate.focus();
740
+ if (document.activeElement !== PREVIOUSLY_FOCUSED_ELEMENT) return;
741
+ }
545
742
  }
546
- function At(e, n) {
547
- return e.map((t, r) => e[(n + r) % e.length]);
743
+ function wrapArray(array, startIndex) {
744
+ return array.map((_, index) => array[(startIndex + index) % array.length]);
548
745
  }
549
- function Ot(e, n, t) {
550
- const u = n.length > 1 && Array.from(n).every((m) => m === n[0]) ? n[0] : n, c = t ? e.indexOf(t) : -1;
551
- let d = At(e, Math.max(c, 0));
552
- u.length === 1 && (d = d.filter((m) => m !== t));
553
- const h = d.find(
554
- (m) => m.toLowerCase().startsWith(u.toLowerCase())
746
+ function getNextMatch(values, search, currentMatch) {
747
+ const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);
748
+ const normalizedSearch = isRepeated ? search[0] : search;
749
+ const currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;
750
+ let wrappedValues = wrapArray(values, Math.max(currentMatchIndex, 0));
751
+ const excludeCurrentMatch = normalizedSearch.length === 1;
752
+ if (excludeCurrentMatch) wrappedValues = wrappedValues.filter((v) => v !== currentMatch);
753
+ const nextMatch = wrappedValues.find(
754
+ (value) => value.toLowerCase().startsWith(normalizedSearch.toLowerCase())
555
755
  );
556
- return h !== t ? h : void 0;
756
+ return nextMatch !== currentMatch ? nextMatch : void 0;
557
757
  }
558
- function kt(e, n) {
559
- const { x: t, y: r } = e;
560
- let u = !1;
561
- for (let c = 0, d = n.length - 1; c < n.length; d = c++) {
562
- const p = n[c], h = n[d], m = p.x, l = p.y, a = h.x, f = h.y;
563
- l > r != f > r && t < (a - m) * (r - l) / (f - l) + m && (u = !u);
758
+ function isPointInPolygon(point, polygon) {
759
+ const { x, y } = point;
760
+ let inside = false;
761
+ for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {
762
+ const ii = polygon[i];
763
+ const jj = polygon[j];
764
+ const xi = ii.x;
765
+ const yi = ii.y;
766
+ const xj = jj.x;
767
+ const yj = jj.y;
768
+ const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;
769
+ if (intersect) inside = !inside;
564
770
  }
565
- return u;
771
+ return inside;
566
772
  }
567
- function Dt(e, n) {
568
- if (!n) return !1;
569
- const t = { x: e.clientX, y: e.clientY };
570
- return kt(t, n);
773
+ function isPointerInGraceArea(event, area) {
774
+ if (!area) return false;
775
+ const cursorPos = { x: event.clientX, y: event.clientY };
776
+ return isPointInPolygon(cursorPos, area);
571
777
  }
572
- function k(e) {
573
- return (n) => n.pointerType === "mouse" ? e(n) : void 0;
778
+ function whenMouse(handler) {
779
+ return (event) => event.pointerType === "mouse" ? handler(event) : void 0;
574
780
  }
575
- var tn = ve, nn = q, on = he, rn = Ce, cn = te, an = ge, sn = j, un = Re, ln = Se, dn = we, fn = ye, mn = xe, pn = be, vn = Ae, Mn = ke;
781
+ var Root3 = Menu;
782
+ var Anchor2 = MenuAnchor;
783
+ var Portal = MenuPortal;
784
+ var Content2 = MenuContent;
785
+ var Group = MenuGroup;
786
+ var Label = MenuLabel;
787
+ var Item2 = MenuItem;
788
+ var CheckboxItem = MenuCheckboxItem;
789
+ var RadioGroup = MenuRadioGroup;
790
+ var RadioItem = MenuRadioItem;
791
+ var ItemIndicator = MenuItemIndicator;
792
+ var Separator = MenuSeparator;
793
+ var Arrow2 = MenuArrow;
794
+ var SubTrigger = MenuSubTrigger;
795
+ var SubContent = MenuSubContent;
576
796
  export {
577
- nn as Anchor,
578
- pn as Arrow,
579
- un as CheckboxItem,
580
- rn as Content,
581
- cn as Group,
582
- sn as Item,
583
- fn as ItemIndicator,
584
- an as Label,
585
- ve as Menu,
586
- q as MenuAnchor,
587
- be as MenuArrow,
588
- Re as MenuCheckboxItem,
589
- Ce as MenuContent,
590
- te as MenuGroup,
591
- j as MenuItem,
592
- ye as MenuItemIndicator,
593
- ge as MenuLabel,
594
- he as MenuPortal,
595
- Se as MenuRadioGroup,
596
- we as MenuRadioItem,
597
- xe as MenuSeparator,
598
- ke as MenuSubContent,
599
- Ae as MenuSubTrigger,
600
- on as Portal,
601
- ln as RadioGroup,
602
- dn as RadioItem,
603
- tn as Root,
604
- mn as Separator,
605
- Mn as SubContent,
606
- vn as SubTrigger,
607
- Qt as createMenuScope
797
+ Anchor2 as Anchor,
798
+ Arrow2 as Arrow,
799
+ CheckboxItem,
800
+ Content2 as Content,
801
+ Group,
802
+ Item2 as Item,
803
+ ItemIndicator,
804
+ Label,
805
+ Menu,
806
+ MenuAnchor,
807
+ MenuArrow,
808
+ MenuCheckboxItem,
809
+ MenuContent,
810
+ MenuGroup,
811
+ MenuItem,
812
+ MenuItemIndicator,
813
+ MenuLabel,
814
+ MenuPortal,
815
+ MenuRadioGroup,
816
+ MenuRadioItem,
817
+ MenuSeparator,
818
+ MenuSubContent,
819
+ MenuSubTrigger,
820
+ Portal,
821
+ RadioGroup,
822
+ RadioItem,
823
+ Root3 as Root,
824
+ Separator,
825
+ SubContent,
826
+ SubTrigger,
827
+ createMenuScope
608
828
  };
609
829
  //# sourceMappingURL=index.js.map