@aeolus-fleet/gateway 0.36.1 → 0.36.3

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 (997) hide show
  1. package/README.md +4 -0
  2. package/dist/adapters/fleet/active-ships.d.ts +8 -0
  3. package/dist/adapters/fleet/active-ships.js +22 -0
  4. package/dist/adapters/fleet/active-ships.js.map +1 -0
  5. package/dist/adapters/fleet/actor-door.d.ts +8 -1
  6. package/dist/adapters/fleet/actor-door.js +12 -5
  7. package/dist/adapters/fleet/actor-door.js.map +1 -1
  8. package/dist/adapters/fleet/argo-inbox-door.d.ts +4 -0
  9. package/dist/adapters/fleet/argo-inbox-door.js +81 -0
  10. package/dist/adapters/fleet/argo-inbox-door.js.map +1 -0
  11. package/dist/adapters/fleet/every-listed-ship.d.ts +21 -0
  12. package/dist/adapters/fleet/every-listed-ship.js +28 -0
  13. package/dist/adapters/fleet/every-listed-ship.js.map +1 -0
  14. package/dist/adapters/fleet/fleet-ships.d.ts +1 -3
  15. package/dist/adapters/fleet/fleet-ships.js +5 -22
  16. package/dist/adapters/fleet/fleet-ships.js.map +1 -1
  17. package/dist/adapters/fleet/rest-fleet-door.d.ts +14 -0
  18. package/dist/adapters/fleet/rest-fleet-door.js +50 -6
  19. package/dist/adapters/fleet/rest-fleet-door.js.map +1 -1
  20. package/dist/adapters/http/front-door.js +3 -1
  21. package/dist/adapters/http/front-door.js.map +1 -1
  22. package/dist/adapters/http/live.d.ts +10 -1
  23. package/dist/adapters/http/live.js +10 -1
  24. package/dist/adapters/http/live.js.map +1 -1
  25. package/dist/adapters/http/party-sign-in-routes.d.ts +7 -0
  26. package/dist/adapters/http/party-sign-in-routes.js +18 -0
  27. package/dist/adapters/http/party-sign-in-routes.js.map +1 -1
  28. package/dist/adapters/http/person-tools.js +3 -2
  29. package/dist/adapters/http/person-tools.js.map +1 -1
  30. package/dist/adapters/http/slack-routes.d.ts +2 -0
  31. package/dist/adapters/http/slack-routes.js +12 -4
  32. package/dist/adapters/http/slack-routes.js.map +1 -1
  33. package/dist/adapters/mcp/mcp-servers.d.ts +8 -2
  34. package/dist/adapters/mcp/mcp-servers.js +8 -4
  35. package/dist/adapters/mcp/mcp-servers.js.map +1 -1
  36. package/dist/adapters/pagasae/email-channel.js +5 -3
  37. package/dist/adapters/pagasae/email-channel.js.map +1 -1
  38. package/dist/adapters/pagasae/pagasae-client.js +1 -0
  39. package/dist/adapters/pagasae/pagasae-client.js.map +1 -1
  40. package/dist/adapters/pagasae/shared-sign-in.js +2 -2
  41. package/dist/adapters/pagasae/shared-sign-in.js.map +1 -1
  42. package/dist/adapters/prisma/argo-accounts.d.ts +4 -0
  43. package/dist/adapters/prisma/argo-accounts.js +17 -0
  44. package/dist/adapters/prisma/argo-accounts.js.map +1 -0
  45. package/dist/adapters/prisma/argo-slack-posts.d.ts +4 -0
  46. package/dist/adapters/prisma/argo-slack-posts.js +30 -0
  47. package/dist/adapters/prisma/argo-slack-posts.js.map +1 -0
  48. package/dist/adapters/prisma/argo-wakes.d.ts +4 -0
  49. package/dist/adapters/prisma/argo-wakes.js +54 -0
  50. package/dist/adapters/prisma/argo-wakes.js.map +1 -0
  51. package/dist/adapters/prisma/basket-entries.js +4 -2
  52. package/dist/adapters/prisma/basket-entries.js.map +1 -1
  53. package/dist/adapters/prisma/connected-chats.d.ts +4 -0
  54. package/dist/adapters/prisma/connected-chats.js +21 -0
  55. package/dist/adapters/prisma/connected-chats.js.map +1 -0
  56. package/dist/adapters/prisma/fleet-forgetter.d.ts +1 -1
  57. package/dist/adapters/prisma/fleet-forgetter.js +2 -2
  58. package/dist/adapters/prisma/fleet-forgetter.js.map +1 -1
  59. package/dist/adapters/prisma/generated/browser.d.ts +26 -1
  60. package/dist/adapters/prisma/generated/client.d.ts +26 -1
  61. package/dist/adapters/prisma/generated/internal/class.d.ts +55 -0
  62. package/dist/adapters/prisma/generated/internal/class.js +4 -4
  63. package/dist/adapters/prisma/generated/internal/class.js.map +1 -1
  64. package/dist/adapters/prisma/generated/internal/prismaNamespace.d.ts +428 -1
  65. package/dist/adapters/prisma/generated/internal/prismaNamespace.js +49 -2
  66. package/dist/adapters/prisma/generated/internal/prismaNamespace.js.map +1 -1
  67. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.d.ts +52 -0
  68. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js +49 -2
  69. package/dist/adapters/prisma/generated/internal/prismaNamespaceBrowser.js.map +1 -1
  70. package/dist/adapters/prisma/generated/models/ArgoAccount.d.ts +946 -0
  71. package/dist/adapters/prisma/generated/models/ArgoAccount.js +2 -0
  72. package/dist/adapters/prisma/generated/models/ArgoAccount.js.map +1 -0
  73. package/dist/adapters/prisma/generated/models/ArgoMessageCovered.d.ts +947 -0
  74. package/dist/adapters/prisma/generated/models/ArgoMessageCovered.js +2 -0
  75. package/dist/adapters/prisma/generated/models/ArgoMessageCovered.js.map +1 -0
  76. package/dist/adapters/prisma/generated/models/ArgoSlackPost.d.ts +1065 -0
  77. package/dist/adapters/prisma/generated/models/ArgoSlackPost.js +2 -0
  78. package/dist/adapters/prisma/generated/models/ArgoSlackPost.js.map +1 -0
  79. package/dist/adapters/prisma/generated/models/ArgoWakeSent.d.ts +975 -0
  80. package/dist/adapters/prisma/generated/models/ArgoWakeSent.js +2 -0
  81. package/dist/adapters/prisma/generated/models/ArgoWakeSent.js.map +1 -0
  82. package/dist/adapters/prisma/generated/models/BasketEntry.d.ts +114 -18
  83. package/dist/adapters/prisma/generated/models/ItemOutcome.d.ts +91 -1
  84. package/dist/adapters/prisma/generated/models/OpenedDelivery.d.ts +95 -2
  85. package/dist/adapters/prisma/generated/models/Party.d.ts +32 -1
  86. package/dist/adapters/prisma/generated/models/SlackLinkStep.d.ts +1005 -0
  87. package/dist/adapters/prisma/generated/models/SlackLinkStep.js +2 -0
  88. package/dist/adapters/prisma/generated/models/SlackLinkStep.js.map +1 -0
  89. package/dist/adapters/prisma/generated/models.d.ts +5 -0
  90. package/dist/adapters/prisma/item-outcomes.d.ts +6 -1
  91. package/dist/adapters/prisma/item-outcomes.js +19 -3
  92. package/dist/adapters/prisma/item-outcomes.js.map +1 -1
  93. package/dist/adapters/prisma/opened-deliveries.js +5 -0
  94. package/dist/adapters/prisma/opened-deliveries.js.map +1 -1
  95. package/dist/adapters/prisma/party-store.js +4 -1
  96. package/dist/adapters/prisma/party-store.js.map +1 -1
  97. package/dist/adapters/prisma/slack-link-steps.d.ts +8 -0
  98. package/dist/adapters/prisma/slack-link-steps.js +28 -0
  99. package/dist/adapters/prisma/slack-link-steps.js.map +1 -0
  100. package/dist/adapters/prisma/slack-posts.js +4 -3
  101. package/dist/adapters/prisma/slack-posts.js.map +1 -1
  102. package/dist/adapters/slack/slack-messages.d.ts +2 -0
  103. package/dist/adapters/slack/slack-messages.js +125 -18
  104. package/dist/adapters/slack/slack-messages.js.map +1 -1
  105. package/dist/adapters/trpc/router.d.ts +78 -2
  106. package/dist/adapters/trpc/router.js +36 -1
  107. package/dist/adapters/trpc/router.js.map +1 -1
  108. package/dist/adapters/web-push/web-push.js +1 -1
  109. package/dist/adapters/web-push/web-push.js.map +1 -1
  110. package/dist/app.js +128 -15
  111. package/dist/app.js.map +1 -1
  112. package/dist/core/account-sign-in/account-of-sign-in.d.ts +7 -2
  113. package/dist/core/account-sign-in/account-of-sign-in.js +9 -3
  114. package/dist/core/account-sign-in/account-of-sign-in.js.map +1 -1
  115. package/dist/core/account-sign-in/ports.d.ts +2 -0
  116. package/dist/core/argo-inbox/argo-inbox.d.ts +31 -0
  117. package/dist/core/argo-inbox/argo-inbox.js +23 -0
  118. package/dist/core/argo-inbox/argo-inbox.js.map +1 -0
  119. package/dist/core/argo-inbox/argo-slack-message.d.ts +17 -0
  120. package/dist/core/argo-inbox/argo-slack-message.js +40 -0
  121. package/dist/core/argo-inbox/argo-slack-message.js.map +1 -0
  122. package/dist/core/argo-inbox/argo-slack-post.d.ts +21 -0
  123. package/dist/core/argo-inbox/argo-slack-post.js +2 -0
  124. package/dist/core/argo-inbox/argo-slack-post.js.map +1 -0
  125. package/dist/core/argo-inbox/follow-argo-inbox.d.ts +33 -0
  126. package/dist/core/argo-inbox/follow-argo-inbox.js +133 -0
  127. package/dist/core/argo-inbox/follow-argo-inbox.js.map +1 -0
  128. package/dist/core/argo-inbox/note-argo-account.d.ts +19 -0
  129. package/dist/core/argo-inbox/note-argo-account.js +18 -0
  130. package/dist/core/argo-inbox/note-argo-account.js.map +1 -0
  131. package/dist/core/argo-inbox/ports.d.ts +123 -0
  132. package/dist/core/argo-inbox/ports.js +2 -0
  133. package/dist/core/argo-inbox/ports.js.map +1 -0
  134. package/dist/core/argo-inbox/read-argo-inbox-notice.d.ts +34 -0
  135. package/dist/core/argo-inbox/read-argo-inbox-notice.js +20 -0
  136. package/dist/core/argo-inbox/read-argo-inbox-notice.js.map +1 -0
  137. package/dist/core/argo-inbox/read-argo-section.d.ts +54 -0
  138. package/dist/core/argo-inbox/read-argo-section.js +67 -0
  139. package/dist/core/argo-inbox/read-argo-section.js.map +1 -0
  140. package/dist/core/argo-inbox/show-argo-inbox-in-slack.d.ts +36 -0
  141. package/dist/core/argo-inbox/show-argo-inbox-in-slack.js +125 -0
  142. package/dist/core/argo-inbox/show-argo-inbox-in-slack.js.map +1 -0
  143. package/dist/core/argo-inbox/wake-for-argo.d.ts +37 -0
  144. package/dist/core/argo-inbox/wake-for-argo.js +139 -0
  145. package/dist/core/argo-inbox/wake-for-argo.js.map +1 -0
  146. package/dist/core/mcp-out/grant-calls.js +1 -1
  147. package/dist/core/mcp-out/grant-calls.js.map +1 -1
  148. package/dist/core/mcp-out/hand-call.js +1 -1
  149. package/dist/core/mcp-out/hand-call.js.map +1 -1
  150. package/dist/core/mcp-out/keep-server-title.d.ts +13 -0
  151. package/dist/core/mcp-out/keep-server-title.js +14 -0
  152. package/dist/core/mcp-out/keep-server-title.js.map +1 -0
  153. package/dist/core/mcp-out/ports.d.ts +10 -0
  154. package/dist/core/oauth/exchange-id-jag.d.ts +4 -1
  155. package/dist/core/oauth/exchange-id-jag.js +5 -2
  156. package/dist/core/oauth/exchange-id-jag.js.map +1 -1
  157. package/dist/core/parties/approve-party.js +1 -1
  158. package/dist/core/parties/approve-party.js.map +1 -1
  159. package/dist/core/parties/party.d.ts +2 -0
  160. package/dist/core/parties/party.js.map +1 -1
  161. package/dist/core/parties/ports.d.ts +5 -0
  162. package/dist/core/party-grants/listing-connection.js +2 -2
  163. package/dist/core/party-grants/listing-connection.js.map +1 -1
  164. package/dist/core/party-grants/tell-sign-in-needed.d.ts +2 -0
  165. package/dist/core/party-grants/tell-sign-in-needed.js +16 -4
  166. package/dist/core/party-grants/tell-sign-in-needed.js.map +1 -1
  167. package/dist/core/people/act-in-place.d.ts +42 -0
  168. package/dist/core/people/act-in-place.js +26 -0
  169. package/dist/core/people/act-in-place.js.map +1 -0
  170. package/dist/core/people/answer-delivery.js +13 -1
  171. package/dist/core/people/answer-delivery.js.map +1 -1
  172. package/dist/core/people/basket.d.ts +32 -10
  173. package/dist/core/people/basket.js +24 -6
  174. package/dist/core/people/basket.js.map +1 -1
  175. package/dist/core/people/count-basket.d.ts +4 -3
  176. package/dist/core/people/count-basket.js +9 -3
  177. package/dist/core/people/count-basket.js.map +1 -1
  178. package/dist/core/people/done-delivery.js +1 -1
  179. package/dist/core/people/done-delivery.js.map +1 -1
  180. package/dist/core/people/finish-own-step.js +2 -2
  181. package/dist/core/people/finish-own-step.js.map +1 -1
  182. package/dist/core/people/inbox-entry.d.ts +17 -1
  183. package/dist/core/people/inbox-entry.js +28 -1
  184. package/dist/core/people/inbox-entry.js.map +1 -1
  185. package/dist/core/people/item-job.d.ts +3 -1
  186. package/dist/core/people/item-job.js +5 -1
  187. package/dist/core/people/item-job.js.map +1 -1
  188. package/dist/core/people/item-outcome.d.ts +21 -2
  189. package/dist/core/people/item-outcome.js.map +1 -1
  190. package/dist/core/people/item-places.d.ts +26 -0
  191. package/dist/core/people/item-places.js +12 -0
  192. package/dist/core/people/item-places.js.map +1 -0
  193. package/dist/core/people/open-delivery.d.ts +6 -6
  194. package/dist/core/people/open-delivery.js +13 -10
  195. package/dist/core/people/open-delivery.js.map +1 -1
  196. package/dist/core/people/opened-of.d.ts +5 -1
  197. package/dist/core/people/opened-of.js +5 -1
  198. package/dist/core/people/opened-of.js.map +1 -1
  199. package/dist/core/people/person-wakes.d.ts +49 -0
  200. package/dist/core/people/person-wakes.js +27 -0
  201. package/dist/core/people/person-wakes.js.map +1 -0
  202. package/dist/core/people/ports.d.ts +46 -5
  203. package/dist/core/people/put-in-basket.d.ts +8 -6
  204. package/dist/core/people/put-in-basket.js +16 -5
  205. package/dist/core/people/put-in-basket.js.map +1 -1
  206. package/dist/core/people/read-basket.d.ts +8 -3
  207. package/dist/core/people/read-basket.js +8 -10
  208. package/dist/core/people/read-basket.js.map +1 -1
  209. package/dist/core/people/read-bridge-home.d.ts +39 -11
  210. package/dist/core/people/read-bridge-home.js +74 -12
  211. package/dist/core/people/read-bridge-home.js.map +1 -1
  212. package/dist/core/people/read-chats.d.ts +21 -0
  213. package/dist/core/people/read-chats.js +20 -0
  214. package/dist/core/people/read-chats.js.map +1 -0
  215. package/dist/core/people/read-inbox.d.ts +19 -9
  216. package/dist/core/people/read-inbox.js +57 -15
  217. package/dist/core/people/read-inbox.js.map +1 -1
  218. package/dist/core/people/read-record.d.ts +37 -11
  219. package/dist/core/people/read-record.js +44 -12
  220. package/dist/core/people/read-record.js.map +1 -1
  221. package/dist/core/people/read-send-to.d.ts +23 -0
  222. package/dist/core/people/read-send-to.js +37 -0
  223. package/dist/core/people/read-send-to.js.map +1 -0
  224. package/dist/core/people/read-your-fleet.d.ts +19 -0
  225. package/dist/core/people/read-your-fleet.js +22 -0
  226. package/dist/core/people/read-your-fleet.js.map +1 -0
  227. package/dist/core/people/remove-from-basket.d.ts +2 -1
  228. package/dist/core/people/remove-from-basket.js +4 -1
  229. package/dist/core/people/remove-from-basket.js.map +1 -1
  230. package/dist/core/people/routing.d.ts +13 -4
  231. package/dist/core/people/routing.js +14 -0
  232. package/dist/core/people/routing.js.map +1 -1
  233. package/dist/core/people/send-basket.d.ts +11 -7
  234. package/dist/core/people/send-basket.js +68 -11
  235. package/dist/core/people/send-basket.js.map +1 -1
  236. package/dist/core/people/send-message.d.ts +3 -1
  237. package/dist/core/people/send-message.js +9 -2
  238. package/dist/core/people/send-message.js.map +1 -1
  239. package/dist/core/people/send-stored-answers.d.ts +4 -3
  240. package/dist/core/people/send-stored-answers.js +62 -12
  241. package/dist/core/people/send-stored-answers.js.map +1 -1
  242. package/dist/core/people/stale-item.d.ts +40 -0
  243. package/dist/core/people/stale-item.js +36 -0
  244. package/dist/core/people/stale-item.js.map +1 -0
  245. package/dist/core/people/wake-person.d.ts +3 -1
  246. package/dist/core/people/wake-person.js +5 -3
  247. package/dist/core/people/wake-person.js.map +1 -1
  248. package/dist/core/people/web-push-channel.js +2 -2
  249. package/dist/core/people/web-push-channel.js.map +1 -1
  250. package/dist/core/people/your-fleet.d.ts +44 -0
  251. package/dist/core/people/your-fleet.js +64 -0
  252. package/dist/core/people/your-fleet.js.map +1 -0
  253. package/dist/core/sign-in/account-token.d.ts +5 -1
  254. package/dist/core/sign-in/account-token.js +8 -2
  255. package/dist/core/sign-in/account-token.js.map +1 -1
  256. package/dist/core/sign-in/complete-sign-in.d.ts +4 -1
  257. package/dist/core/sign-in/complete-sign-in.js +5 -2
  258. package/dist/core/sign-in/complete-sign-in.js.map +1 -1
  259. package/dist/core/sign-in/ports.d.ts +2 -0
  260. package/dist/core/slack/answer-in-slack.d.ts +15 -9
  261. package/dist/core/slack/answer-in-slack.js +43 -18
  262. package/dist/core/slack/answer-in-slack.js.map +1 -1
  263. package/dist/core/slack/ask-to-link-slack.d.ts +28 -0
  264. package/dist/core/slack/ask-to-link-slack.js +31 -0
  265. package/dist/core/slack/ask-to-link-slack.js.map +1 -0
  266. package/dist/core/slack/complete-link.d.ts +6 -1
  267. package/dist/core/slack/complete-link.js +6 -0
  268. package/dist/core/slack/complete-link.js.map +1 -1
  269. package/dist/core/slack/done-in-slack.d.ts +36 -0
  270. package/dist/core/slack/done-in-slack.js +63 -0
  271. package/dist/core/slack/done-in-slack.js.map +1 -0
  272. package/dist/core/slack/edit-slack-posts.d.ts +7 -5
  273. package/dist/core/slack/edit-slack-posts.js +13 -10
  274. package/dist/core/slack/edit-slack-posts.js.map +1 -1
  275. package/dist/core/slack/edited-post-of.d.ts +21 -0
  276. package/dist/core/slack/edited-post-of.js +77 -0
  277. package/dist/core/slack/edited-post-of.js.map +1 -0
  278. package/dist/core/slack/ports.d.ts +70 -10
  279. package/dist/core/slack/pressed-post-of.d.ts +9 -0
  280. package/dist/core/slack/pressed-post-of.js +18 -0
  281. package/dist/core/slack/pressed-post-of.js.map +1 -0
  282. package/dist/core/slack/read-slack-dropped-out.d.ts +23 -0
  283. package/dist/core/slack/read-slack-dropped-out.js +24 -0
  284. package/dist/core/slack/read-slack-dropped-out.js.map +1 -0
  285. package/dist/core/slack/read-slack-link.d.ts +4 -0
  286. package/dist/core/slack/read-slack-link.js +5 -0
  287. package/dist/core/slack/read-slack-link.js.map +1 -1
  288. package/dist/core/slack/show-in-slack.js +8 -7
  289. package/dist/core/slack/show-in-slack.js.map +1 -1
  290. package/dist/core/slack/slack-post-of.d.ts +24 -12
  291. package/dist/core/slack/slack-post-of.js +118 -37
  292. package/dist/core/slack/slack-post-of.js.map +1 -1
  293. package/dist/core/slack/slack-post.d.ts +13 -1
  294. package/dist/core/slack/slack-post.js +16 -1
  295. package/dist/core/slack/slack-post.js.map +1 -1
  296. package/dist/core/slack/slack-press.d.ts +1 -1
  297. package/dist/core/slack/slack-press.js +2 -1
  298. package/dist/core/slack/slack-press.js.map +1 -1
  299. package/package.json +4 -2
  300. package/src/adapters/prisma/migrations/20261104090000_basket_entries_note_alone/migration.sql +2 -0
  301. package/src/adapters/prisma/migrations/20261105090000_slack_link_steps/migration.sql +10 -0
  302. package/src/adapters/prisma/migrations/20261106090000_opened_deliveries_withdrawn_steps/migration.sql +2 -0
  303. package/src/adapters/prisma/migrations/20261107090000_opened_deliveries_step_link/migration.sql +2 -0
  304. package/src/adapters/prisma/migrations/20261107100000_opened_deliveries_opened_in/migration.sql +2 -0
  305. package/src/adapters/prisma/migrations/20261108090000_item_outcomes_note_and_seen/migration.sql +4 -0
  306. package/src/adapters/prisma/migrations/20261108090000_parties_display_name/migration.sql +2 -0
  307. package/src/adapters/prisma/migrations/20261109090000_argo_accounts/migration.sql +8 -0
  308. package/src/adapters/prisma/migrations/20261109090000_basket_entries_option_label/migration.sql +2 -0
  309. package/src/adapters/prisma/migrations/20261109100000_basket_entries_sent/migration.sql +3 -0
  310. package/src/adapters/prisma/migrations/20261110090000_argo_slack_posts/migration.sql +12 -0
  311. package/src/adapters/prisma/migrations/20261110090000_connected_chats_indexes/migration.sql +5 -0
  312. package/src/adapters/prisma/migrations/20261110100000_argo_wakes/migration.sql +18 -0
  313. package/src/adapters/prisma/schema.prisma +88 -6
  314. package/web/.next/BUILD_ID +1 -1
  315. package/web/.next/app-path-routes-manifest.json +10 -8
  316. package/web/.next/build-manifest.json +114 -90
  317. package/web/.next/diagnostics/route-bundle-stats.json +268 -208
  318. package/web/.next/fallback-build-manifest.json +3 -3
  319. package/web/.next/prerender-manifest.json +3 -3
  320. package/web/.next/routes-manifest.json +12 -0
  321. package/web/.next/server/app/(bridge)/bridge/basket/page/app-paths-manifest.json +3 -0
  322. package/web/.next/server/app/{(console) → (bridge)}/bridge/basket/page/build-manifest.json +4 -4
  323. package/web/.next/server/app/{(console) → (bridge)}/bridge/basket/page/next-font-manifest.json +1 -1
  324. package/web/.next/server/app/(bridge)/bridge/basket/page/server-reference-manifest.json +105 -0
  325. package/web/.next/server/app/{(console)/bridge/settings/requests/[requestId] → (bridge)/bridge/basket}/page.js +15 -14
  326. package/web/.next/server/app/(bridge)/bridge/basket/page.js.nft.json +1 -0
  327. package/web/.next/server/app/(bridge)/bridge/basket/page_client-reference-manifest.js +3 -0
  328. package/web/.next/server/app/(bridge)/bridge/changes/route/app-paths-manifest.json +3 -0
  329. package/web/.next/server/app/(bridge)/bridge/changes/route.js +8 -0
  330. package/web/.next/server/app/{(console) → (bridge)}/bridge/changes/route.js.nft.json +1 -1
  331. package/web/.next/server/app/(bridge)/bridge/changes/route_client-reference-manifest.js +3 -0
  332. package/web/.next/server/app/(bridge)/bridge/done/page/app-paths-manifest.json +3 -0
  333. package/web/.next/server/app/{(console) → (bridge)}/bridge/done/page/build-manifest.json +4 -4
  334. package/web/.next/server/app/{(console) → (bridge)}/bridge/done/page/next-font-manifest.json +1 -1
  335. package/web/.next/server/app/(bridge)/bridge/done/page/server-reference-manifest.json +25 -0
  336. package/web/.next/server/app/{(console) → (bridge)}/bridge/done/page.js +16 -15
  337. package/web/.next/server/app/{(console)/bridge/settings → (bridge)/bridge/done}/page.js.nft.json +1 -1
  338. package/web/.next/server/app/(bridge)/bridge/done/page_client-reference-manifest.js +3 -0
  339. package/web/.next/server/app/(bridge)/bridge/fleet/page/app-paths-manifest.json +3 -0
  340. package/web/.next/server/app/{(console)/bridge/settings → (bridge)/bridge/fleet}/page/build-manifest.json +4 -4
  341. package/web/.next/server/app/{(console)/bridge/settings → (bridge)/bridge/fleet}/page/next-font-manifest.json +1 -1
  342. package/web/.next/server/app/{(console)/bridge/settings → (bridge)/bridge/fleet}/page/server-reference-manifest.json +3 -3
  343. package/web/.next/server/app/(bridge)/bridge/fleet/page.js +24 -0
  344. package/web/.next/server/app/{(console)/bridge/done → (bridge)/bridge/fleet}/page.js.nft.json +1 -1
  345. package/web/.next/server/app/(bridge)/bridge/fleet/page_client-reference-manifest.js +3 -0
  346. package/web/.next/server/app/(bridge)/bridge/focus/route/app-paths-manifest.json +3 -0
  347. package/web/.next/server/app/(bridge)/bridge/focus/route.js +8 -0
  348. package/web/.next/server/app/{(console) → (bridge)}/bridge/focus/route.js.nft.json +1 -1
  349. package/web/.next/server/app/(bridge)/bridge/focus/route_client-reference-manifest.js +3 -0
  350. package/web/.next/server/app/(bridge)/bridge/page/app-paths-manifest.json +3 -0
  351. package/web/.next/server/app/{(console) → (bridge)}/bridge/page/build-manifest.json +4 -4
  352. package/web/.next/server/app/{(console) → (bridge)}/bridge/page/next-font-manifest.json +1 -1
  353. package/web/.next/server/app/(bridge)/bridge/page/server-reference-manifest.json +95 -0
  354. package/web/.next/server/app/{(console) → (bridge)}/bridge/page.js +16 -14
  355. package/web/.next/server/app/{(console) → (bridge)}/bridge/page.js.nft.json +1 -1
  356. package/web/.next/server/app/(bridge)/bridge/page_client-reference-manifest.js +3 -0
  357. package/web/.next/server/app/(bridge)/bridge/settings/page/app-paths-manifest.json +3 -0
  358. package/web/.next/server/app/(bridge)/bridge/settings/page/build-manifest.json +23 -0
  359. package/web/.next/server/app/(bridge)/bridge/settings/page/next-font-manifest.json +11 -0
  360. package/web/.next/server/app/(bridge)/bridge/settings/page/server-reference-manifest.json +15 -0
  361. package/web/.next/server/app/{(console) → (bridge)}/bridge/settings/page.js +15 -14
  362. package/web/.next/server/app/{(console)/bridge/basket → (bridge)/bridge/settings}/page.js.nft.json +1 -1
  363. package/web/.next/server/app/(bridge)/bridge/settings/page_client-reference-manifest.js +3 -0
  364. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page/app-paths-manifest.json +3 -0
  365. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page/build-manifest.json +23 -0
  366. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page/next-font-manifest.json +11 -0
  367. package/web/.next/server/app/{(console) → (bridge)}/bridge/settings/requests/[requestId]/page/server-reference-manifest.json +6 -6
  368. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page.js +26 -0
  369. package/web/.next/server/app/{(console) → (bridge)}/bridge/settings/requests/[requestId]/page.js.nft.json +1 -1
  370. package/web/.next/server/app/(bridge)/bridge/settings/requests/[requestId]/page_client-reference-manifest.js +3 -0
  371. package/web/.next/server/app/(bridge)/bridge/settings/routing/page/app-paths-manifest.json +3 -0
  372. package/web/.next/server/app/(bridge)/bridge/settings/routing/page/build-manifest.json +23 -0
  373. package/web/.next/server/app/(bridge)/bridge/settings/routing/page/next-font-manifest.json +11 -0
  374. package/web/.next/server/app/(bridge)/bridge/settings/routing/page/react-loadable-manifest.json +1 -0
  375. package/web/.next/server/app/{(console) → (bridge)}/bridge/settings/routing/page/server-reference-manifest.json +15 -15
  376. package/web/.next/server/app/{(console) → (bridge)}/bridge/settings/routing/page.js +15 -14
  377. package/web/.next/server/app/(bridge)/bridge/settings/routing/page.js.map +5 -0
  378. package/web/.next/server/app/{(console) → (bridge)}/bridge/settings/routing/page.js.nft.json +1 -1
  379. package/web/.next/server/app/(bridge)/bridge/settings/routing/page_client-reference-manifest.js +3 -0
  380. package/web/.next/server/app/(bridge)/bridge/stay-aware/page/app-paths-manifest.json +3 -0
  381. package/web/.next/server/app/(bridge)/bridge/stay-aware/page/build-manifest.json +23 -0
  382. package/web/.next/server/app/(bridge)/bridge/stay-aware/page/next-font-manifest.json +11 -0
  383. package/web/.next/server/app/(bridge)/bridge/stay-aware/page/react-loadable-manifest.json +1 -0
  384. package/web/.next/server/app/(bridge)/bridge/stay-aware/page/server-reference-manifest.json +95 -0
  385. package/web/.next/server/app/{(console)/bridge/basket → (bridge)/bridge/stay-aware}/page.js +15 -14
  386. package/web/.next/server/app/(bridge)/bridge/stay-aware/page.js.map +5 -0
  387. package/web/.next/server/app/(bridge)/bridge/stay-aware/page.js.nft.json +1 -0
  388. package/web/.next/server/app/(bridge)/bridge/stay-aware/page_client-reference-manifest.js +3 -0
  389. package/web/.next/server/app/(console)/gateway-off/page/build-manifest.json +4 -4
  390. package/web/.next/server/app/(console)/gateway-off/page/server-reference-manifest.json +1 -1
  391. package/web/.next/server/app/(console)/gateway-off/page.js +2 -2
  392. package/web/.next/server/app/(console)/gateway-off/page.js.nft.json +1 -1
  393. package/web/.next/server/app/(console)/gateway-off/page_client-reference-manifest.js +1 -1
  394. package/web/.next/server/app/(console)/meetings/[meetingId]/page/build-manifest.json +4 -4
  395. package/web/.next/server/app/(console)/meetings/[meetingId]/page/server-reference-manifest.json +3 -3
  396. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js +2 -2
  397. package/web/.next/server/app/(console)/meetings/[meetingId]/page.js.nft.json +1 -1
  398. package/web/.next/server/app/(console)/meetings/[meetingId]/page_client-reference-manifest.js +1 -1
  399. package/web/.next/server/app/(console)/outside-parties/[name]/change/page/build-manifest.json +4 -4
  400. package/web/.next/server/app/(console)/outside-parties/[name]/change/page/server-reference-manifest.json +18 -18
  401. package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js +2 -2
  402. package/web/.next/server/app/(console)/outside-parties/[name]/change/page.js.nft.json +1 -1
  403. package/web/.next/server/app/(console)/outside-parties/[name]/change/page_client-reference-manifest.js +1 -1
  404. package/web/.next/server/app/(console)/outside-parties/[name]/page/build-manifest.json +4 -4
  405. package/web/.next/server/app/(console)/outside-parties/[name]/page/server-reference-manifest.json +8 -8
  406. package/web/.next/server/app/(console)/outside-parties/[name]/page.js +2 -2
  407. package/web/.next/server/app/(console)/outside-parties/[name]/page.js.nft.json +1 -1
  408. package/web/.next/server/app/(console)/outside-parties/[name]/page_client-reference-manifest.js +1 -1
  409. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/build-manifest.json +4 -4
  410. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page/server-reference-manifest.json +18 -18
  411. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js +2 -2
  412. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page.js.nft.json +1 -1
  413. package/web/.next/server/app/(console)/outside-parties/[name]/retire/page_client-reference-manifest.js +1 -1
  414. package/web/.next/server/app/(console)/outside-parties/add/page/build-manifest.json +4 -4
  415. package/web/.next/server/app/(console)/outside-parties/add/page/server-reference-manifest.json +10 -10
  416. package/web/.next/server/app/(console)/outside-parties/add/page.js +2 -2
  417. package/web/.next/server/app/(console)/outside-parties/add/page.js.nft.json +1 -1
  418. package/web/.next/server/app/(console)/outside-parties/add/page_client-reference-manifest.js +1 -1
  419. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/build-manifest.json +4 -4
  420. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page/server-reference-manifest.json +2 -2
  421. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page.js +2 -2
  422. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page.js.nft.json +1 -1
  423. package/web/.next/server/app/(console)/outside-parties/add-a2a-agent/page_client-reference-manifest.js +1 -1
  424. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/build-manifest.json +4 -4
  425. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page/server-reference-manifest.json +2 -2
  426. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js +2 -2
  427. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page.js.nft.json +1 -1
  428. package/web/.next/server/app/(console)/outside-parties/add-a2a-client/page_client-reference-manifest.js +1 -1
  429. package/web/.next/server/app/(console)/outside-parties/page/build-manifest.json +4 -4
  430. package/web/.next/server/app/(console)/outside-parties/page/server-reference-manifest.json +2 -2
  431. package/web/.next/server/app/(console)/outside-parties/page.js +2 -2
  432. package/web/.next/server/app/(console)/outside-parties/page.js.nft.json +1 -1
  433. package/web/.next/server/app/(console)/outside-parties/page_client-reference-manifest.js +1 -1
  434. package/web/.next/server/app/(console)/parties/page/build-manifest.json +4 -4
  435. package/web/.next/server/app/(console)/parties/page/server-reference-manifest.json +8 -8
  436. package/web/.next/server/app/(console)/parties/page.js +2 -2
  437. package/web/.next/server/app/(console)/parties/page.js.nft.json +1 -1
  438. package/web/.next/server/app/(console)/parties/page_client-reference-manifest.js +1 -1
  439. package/web/.next/server/app/(console)/sign-in/failed/page/build-manifest.json +4 -4
  440. package/web/.next/server/app/(console)/sign-in/failed/page/server-reference-manifest.json +1 -1
  441. package/web/.next/server/app/(console)/sign-in/failed/page.js +2 -2
  442. package/web/.next/server/app/(console)/sign-in/failed/page.js.nft.json +1 -1
  443. package/web/.next/server/app/(console)/sign-in/failed/page_client-reference-manifest.js +1 -1
  444. package/web/.next/server/app/(console)/slack/disconnect/page/build-manifest.json +4 -4
  445. package/web/.next/server/app/(console)/slack/disconnect/page/server-reference-manifest.json +11 -11
  446. package/web/.next/server/app/(console)/slack/disconnect/page.js +2 -2
  447. package/web/.next/server/app/(console)/slack/disconnect/page.js.nft.json +1 -1
  448. package/web/.next/server/app/(console)/slack/disconnect/page_client-reference-manifest.js +1 -1
  449. package/web/.next/server/app/(console)/slack/expose/page/build-manifest.json +4 -4
  450. package/web/.next/server/app/(console)/slack/expose/page/server-reference-manifest.json +11 -11
  451. package/web/.next/server/app/(console)/slack/expose/page.js +2 -2
  452. package/web/.next/server/app/(console)/slack/expose/page.js.nft.json +1 -1
  453. package/web/.next/server/app/(console)/slack/expose/page_client-reference-manifest.js +1 -1
  454. package/web/.next/server/app/(console)/slack/link/route.js.nft.json +1 -1
  455. package/web/.next/server/app/(console)/slack/page/build-manifest.json +4 -4
  456. package/web/.next/server/app/(console)/slack/page/server-reference-manifest.json +11 -11
  457. package/web/.next/server/app/(console)/slack/page.js +2 -2
  458. package/web/.next/server/app/(console)/slack/page.js.nft.json +1 -1
  459. package/web/.next/server/app/(console)/slack/page_client-reference-manifest.js +1 -1
  460. package/web/.next/server/app/(console)/slack/remove/page/build-manifest.json +4 -4
  461. package/web/.next/server/app/(console)/slack/remove/page/server-reference-manifest.json +11 -11
  462. package/web/.next/server/app/(console)/slack/remove/page.js +4 -4
  463. package/web/.next/server/app/(console)/slack/remove/page.js.nft.json +1 -1
  464. package/web/.next/server/app/(console)/slack/remove/page_client-reference-manifest.js +1 -1
  465. package/web/.next/server/app/_global-error/page/build-manifest.json +4 -4
  466. package/web/.next/server/app/_global-error/page.js.nft.json +1 -1
  467. package/web/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  468. package/web/.next/server/app/_global-error.html +1 -1
  469. package/web/.next/server/app/_global-error.rsc +1 -1
  470. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  471. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  472. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  473. package/web/.next/server/app/_not-found/page/build-manifest.json +4 -4
  474. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  475. package/web/.next/server/app/_not-found/page.js +2 -2
  476. package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  477. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  478. package/web/.next/server/app/apple-icon.png/route.js.nft.json +1 -1
  479. package/web/.next/server/app/authorize/failed/page/build-manifest.json +4 -4
  480. package/web/.next/server/app/authorize/failed/page/server-reference-manifest.json +1 -1
  481. package/web/.next/server/app/authorize/failed/page.js +3 -3
  482. package/web/.next/server/app/authorize/failed/page.js.nft.json +1 -1
  483. package/web/.next/server/app/authorize/failed/page_client-reference-manifest.js +1 -1
  484. package/web/.next/server/app/authorize/pick/page/build-manifest.json +4 -4
  485. package/web/.next/server/app/authorize/pick/page/server-reference-manifest.json +1 -1
  486. package/web/.next/server/app/authorize/pick/page.js +7 -6
  487. package/web/.next/server/app/authorize/pick/page.js.nft.json +1 -1
  488. package/web/.next/server/app/authorize/pick/page_client-reference-manifest.js +1 -1
  489. package/web/.next/server/app/authorize/waiting/approval/page/build-manifest.json +4 -4
  490. package/web/.next/server/app/authorize/waiting/approval/page/server-reference-manifest.json +1 -1
  491. package/web/.next/server/app/authorize/waiting/approval/page.js +3 -3
  492. package/web/.next/server/app/authorize/waiting/approval/page.js.nft.json +1 -1
  493. package/web/.next/server/app/authorize/waiting/approval/page_client-reference-manifest.js +1 -1
  494. package/web/.next/server/app/icon.svg/route.js.nft.json +1 -1
  495. package/web/.next/server/app-paths-manifest.json +10 -8
  496. package/web/.next/server/chunks/0b9d__next-internal_server_app_(bridge)_bridge_changes_route_actions_0wd1c_8tnx6-f.js +3 -0
  497. package/web/.next/server/chunks/[root-of-the-server]__1j0sdz18lzulo._.js +2 -2
  498. package/web/.next/server/chunks/[root-of-the-server]__1o2xxi_001xql._.js +2 -2
  499. package/web/.next/server/chunks/_0up_7s_05-7vm._.js +3 -0
  500. package/web/.next/server/chunks/_0up_7s_05-7vm._.js.map +1 -0
  501. package/web/.next/server/chunks/_0xw0b7avhvg75._.js +1 -1
  502. package/web/.next/server/chunks/_1w2t6c0hpdsrn._.js +1 -1
  503. package/web/.next/server/chunks/_1xaed_q500ez6._.js +3 -0
  504. package/web/.next/server/chunks/_1xaed_q500ez6._.js.map +1 -0
  505. package/web/.next/server/chunks/_20ne4s-e_jzxp._.js +1 -1
  506. package/web/.next/server/chunks/_20ne4s-e_jzxp._.js.map +1 -1
  507. package/web/.next/server/chunks/ssr/01fr_app_(bridge)_bridge_settings_requests_[requestId]_page_actions_0o8g7_xshtmem.js +3 -0
  508. package/web/.next/server/chunks/ssr/01fr_app_(bridge)_bridge_settings_requests_[requestId]_page_actions_0o8g7_xshtmem.js.map +1 -0
  509. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_stay-aware_page_actions_1u0xo0v3y9c34.js +3 -0
  510. package/web/.next/server/chunks/ssr/0b9d__next-internal_server_app_(bridge)_bridge_stay-aware_page_actions_1u0xo0v3y9c34.js.map +1 -0
  511. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_bridge_settings_routing_page_actions_06_j7s24dy5ee.js +3 -0
  512. package/web/.next/server/chunks/ssr/0vkm_server_app_(bridge)_bridge_settings_routing_page_actions_06_j7s24dy5ee.js.map +1 -0
  513. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js +1 -1
  514. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_change_page_actions_04td11fxohsfm.js.map +1 -1
  515. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js +1 -1
  516. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_page_actions_0u-45itza1ls7.js.map +1 -1
  517. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js +1 -1
  518. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_[name]_retire_page_actions_0s7ps6i0ts7v5.js.map +1 -1
  519. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js +1 -1
  520. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add-a2a-client_page_actions_0d_wgiu94c32e.js.map +1 -1
  521. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js +1 -1
  522. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_outside-parties_add_page_actions_0yfz_dfn-8uo7.js.map +1 -1
  523. package/web/.next/server/chunks/ssr/[root-of-the-server]__001xx3sm5ur-e._.js +1 -1
  524. package/web/.next/server/chunks/ssr/[root-of-the-server]__001xx3sm5ur-e._.js.map +1 -1
  525. package/web/.next/server/chunks/ssr/{[root-of-the-server]__1yyaeeylnezpi._.js → [root-of-the-server]__04_bc8g0oe4jt._.js} +1 -1
  526. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a6a1yc_ac-qt._.js +1 -1
  527. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a8db18tyk__5._.js +1 -1
  528. package/web/.next/server/chunks/ssr/[root-of-the-server]__0a8db18tyk__5._.js.map +1 -1
  529. package/web/.next/server/chunks/ssr/[root-of-the-server]__0e4l5gt01o04p._.js +3 -0
  530. package/web/.next/server/chunks/ssr/[root-of-the-server]__0e4l5gt01o04p._.js.map +1 -0
  531. package/web/.next/server/chunks/ssr/[root-of-the-server]__0fz0817_b9ljl._.js +1 -1
  532. package/web/.next/server/chunks/ssr/[root-of-the-server]__0gptrhg3mj4hs._.js +57 -0
  533. package/web/.next/server/chunks/ssr/[root-of-the-server]__0gptrhg3mj4hs._.js.map +1 -0
  534. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js +1 -1
  535. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k3g0p3t9t0c-._.js.map +1 -1
  536. package/web/.next/server/chunks/ssr/[root-of-the-server]__0kjcooo3pi4_k._.js +57 -0
  537. package/web/.next/server/chunks/ssr/[root-of-the-server]__0kjcooo3pi4_k._.js.map +1 -0
  538. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rmg7huc074bf._.js +3 -0
  539. package/web/.next/server/chunks/ssr/[root-of-the-server]__0rmg7huc074bf._.js.map +1 -0
  540. package/web/.next/server/chunks/ssr/[root-of-the-server]__10s9e8g5x-ws8._.js +1 -1
  541. package/web/.next/server/chunks/ssr/[root-of-the-server]__10s9e8g5x-ws8._.js.map +1 -1
  542. package/web/.next/server/chunks/ssr/[root-of-the-server]__13v3maun347sn._.js +3 -0
  543. package/web/.next/server/chunks/ssr/[root-of-the-server]__13v3maun347sn._.js.map +1 -0
  544. package/web/.next/server/chunks/ssr/[root-of-the-server]__13yoncr_nx3jc._.js +1 -1
  545. package/web/.next/server/chunks/ssr/[root-of-the-server]__13yoncr_nx3jc._.js.map +1 -1
  546. package/web/.next/server/chunks/ssr/{[root-of-the-server]__0gnfxe62edx95._.js → [root-of-the-server]__179upda-y7uap._.js} +1 -1
  547. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js +1 -1
  548. package/web/.next/server/chunks/ssr/[root-of-the-server]__18-8taiduk1jn._.js.map +1 -1
  549. package/web/.next/server/chunks/ssr/[root-of-the-server]__1ektgsnjg4btl._.js +3 -0
  550. package/web/.next/server/chunks/ssr/[root-of-the-server]__1ektgsnjg4btl._.js.map +1 -0
  551. package/web/.next/server/chunks/ssr/[root-of-the-server]__1hgu6f5hpnykv._.js +57 -0
  552. package/web/.next/server/chunks/ssr/[root-of-the-server]__1hgu6f5hpnykv._.js.map +1 -0
  553. package/web/.next/server/chunks/ssr/[root-of-the-server]__1nfpyr3ynmwks._.js +3 -0
  554. package/web/.next/server/chunks/ssr/[root-of-the-server]__1nfpyr3ynmwks._.js.map +1 -0
  555. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpow96uit9t8._.js +1 -1
  556. package/web/.next/server/chunks/ssr/[root-of-the-server]__1qpow96uit9t8._.js.map +1 -1
  557. package/web/.next/server/chunks/ssr/[root-of-the-server]__1ul9rrs2g66lm._.js +4 -0
  558. package/web/.next/server/chunks/ssr/[root-of-the-server]__1ul9rrs2g66lm._.js.map +1 -0
  559. package/web/.next/server/chunks/ssr/[root-of-the-server]__20gvfqy33wcds._.js +57 -0
  560. package/web/.next/server/chunks/ssr/[root-of-the-server]__20gvfqy33wcds._.js.map +1 -0
  561. package/web/.next/server/chunks/ssr/_00fvst5icgei4._.js +3 -0
  562. package/web/.next/server/chunks/ssr/_00fvst5icgei4._.js.map +1 -0
  563. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js +1 -1
  564. package/web/.next/server/chunks/ssr/_00hfzlqn1og18._.js.map +1 -1
  565. package/web/.next/server/chunks/ssr/_02mwdj1oj1zgm._.js +3 -0
  566. package/web/.next/server/chunks/ssr/_02mwdj1oj1zgm._.js.map +1 -0
  567. package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js +2 -2
  568. package/web/.next/server/chunks/ssr/_03lk54yp-yhw3._.js.map +1 -1
  569. package/web/.next/server/chunks/ssr/_0f7ucdt7bfmun._.js +3 -0
  570. package/web/.next/server/chunks/ssr/_0f7ucdt7bfmun._.js.map +1 -0
  571. package/web/.next/server/chunks/ssr/_0fqd23gyia_8g._.js +3 -0
  572. package/web/.next/server/chunks/ssr/_0fqd23gyia_8g._.js.map +1 -0
  573. package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js +1 -1
  574. package/web/.next/server/chunks/ssr/_0ka_9elusb800._.js.map +1 -1
  575. package/web/.next/server/chunks/ssr/_0kk7op86em7z2._.js +3 -0
  576. package/web/.next/server/chunks/ssr/_0kk7op86em7z2._.js.map +1 -0
  577. package/web/.next/server/chunks/ssr/_0pirspvjp3ggl._.js +3 -0
  578. package/web/.next/server/chunks/ssr/_0pirspvjp3ggl._.js.map +1 -0
  579. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js +1 -1
  580. package/web/.next/server/chunks/ssr/_0pyd1_y7w8ngp._.js.map +1 -1
  581. package/web/.next/server/chunks/ssr/_0u0u0owpxx_37._.js +3 -0
  582. package/web/.next/server/chunks/ssr/_0u0u0owpxx_37._.js.map +1 -0
  583. package/web/.next/server/chunks/ssr/_0v_x6k3ztfvx0._.js +3 -0
  584. package/web/.next/server/chunks/ssr/_0v_x6k3ztfvx0._.js.map +1 -0
  585. package/web/.next/server/chunks/ssr/_0x5-_917zcaj9._.js +3 -0
  586. package/web/.next/server/chunks/ssr/_0x5-_917zcaj9._.js.map +1 -0
  587. package/web/.next/server/chunks/ssr/_0xajzaside0sw._.js +3 -0
  588. package/web/.next/server/chunks/ssr/_0xajzaside0sw._.js.map +1 -0
  589. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js +1 -1
  590. package/web/.next/server/chunks/ssr/_0xickgbbju_9-._.js.map +1 -1
  591. package/web/.next/server/chunks/ssr/_0yhvyj-yts7qi._.js +3 -0
  592. package/web/.next/server/chunks/ssr/_0yhvyj-yts7qi._.js.map +1 -0
  593. package/web/.next/server/chunks/ssr/_104ilzyn58zw_._.js +3 -0
  594. package/web/.next/server/chunks/ssr/_104ilzyn58zw_._.js.map +1 -0
  595. package/web/.next/server/chunks/ssr/_13_ady-a4058y._.js +3 -0
  596. package/web/.next/server/chunks/ssr/_13_ady-a4058y._.js.map +1 -0
  597. package/web/.next/server/chunks/ssr/_14k1oldo5chf8._.js +3 -0
  598. package/web/.next/server/chunks/ssr/_14k1oldo5chf8._.js.map +1 -0
  599. package/web/.next/server/chunks/ssr/_15whg3fd67b9x._.js +3 -0
  600. package/web/.next/server/chunks/ssr/_15whg3fd67b9x._.js.map +1 -0
  601. package/web/.next/server/chunks/ssr/_17zzluh48wsdb._.js +3 -0
  602. package/web/.next/server/chunks/ssr/_17zzluh48wsdb._.js.map +1 -0
  603. package/web/.next/server/chunks/ssr/_18xv7kh7i655_._.js +3 -0
  604. package/web/.next/server/chunks/ssr/_18xv7kh7i655_._.js.map +1 -0
  605. package/web/.next/server/chunks/ssr/_1_wav28san6dm._.js +1 -1
  606. package/web/.next/server/chunks/ssr/_1_ym4hwge_4r0._.js +3 -0
  607. package/web/.next/server/chunks/ssr/_1_ym4hwge_4r0._.js.map +1 -0
  608. package/web/.next/server/chunks/ssr/_1cc4ie_s4tycq._.js +3 -0
  609. package/web/.next/server/chunks/ssr/_1cc4ie_s4tycq._.js.map +1 -0
  610. package/web/.next/server/chunks/ssr/_1e2o809f0ekry._.js +1 -1
  611. package/web/.next/server/chunks/ssr/{_0a_nsm-ye2r6v._.js → _1gbkqq8ra1nei._.js} +2 -2
  612. package/web/.next/server/chunks/ssr/_1gbkqq8ra1nei._.js.map +1 -0
  613. package/web/.next/server/chunks/ssr/_1gnk2vqna6c6u._.js +3 -0
  614. package/web/.next/server/chunks/ssr/_1gnk2vqna6c6u._.js.map +1 -0
  615. package/web/.next/server/chunks/ssr/_1i8ofnr1a5yle._.js +3 -0
  616. package/web/.next/server/chunks/ssr/_1i8ofnr1a5yle._.js.map +1 -0
  617. package/web/.next/server/chunks/ssr/_1k2b80m058vgx._.js +3 -0
  618. package/web/.next/server/chunks/ssr/_1k2b80m058vgx._.js.map +1 -0
  619. package/web/.next/server/chunks/ssr/_1mg5oon0wpocg._.js +3 -0
  620. package/web/.next/server/chunks/ssr/_1mg5oon0wpocg._.js.map +1 -0
  621. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js +1 -1
  622. package/web/.next/server/chunks/ssr/_1pjtire7rqla0._.js.map +1 -1
  623. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js +1 -1
  624. package/web/.next/server/chunks/ssr/_1qbsmlji34yph._.js.map +1 -1
  625. package/web/.next/server/chunks/ssr/_1rfpx4ze-3l8z._.js +3 -0
  626. package/web/.next/server/chunks/ssr/{web_features_0mi9a9pdzkdji._.js.map → _1rfpx4ze-3l8z._.js.map} +1 -1
  627. package/web/.next/server/chunks/ssr/_1t74yvog5g6g2._.js +3 -0
  628. package/web/.next/server/chunks/ssr/_1t74yvog5g6g2._.js.map +1 -0
  629. package/web/.next/server/chunks/ssr/_1ve-ao6odintc._.js +3 -0
  630. package/web/.next/server/chunks/ssr/_1ve-ao6odintc._.js.map +1 -0
  631. package/web/.next/server/chunks/ssr/_1xgivp19ts9hn._.js +3 -0
  632. package/web/.next/server/chunks/ssr/_1xgivp19ts9hn._.js.map +1 -0
  633. package/web/.next/server/chunks/ssr/_1zmd3armaxhyu._.js +4 -0
  634. package/web/.next/server/chunks/ssr/_1zmd3armaxhyu._.js.map +1 -0
  635. package/web/.next/server/chunks/ssr/node_modules_0489ke-80obwd._.js +3 -0
  636. package/web/.next/server/chunks/ssr/node_modules_0489ke-80obwd._.js.map +1 -0
  637. package/web/.next/server/chunks/ssr/node_modules_05ni_zu0e0w44._.js +3 -0
  638. package/web/.next/server/chunks/ssr/node_modules_05ni_zu0e0w44._.js.map +1 -0
  639. package/web/.next/server/chunks/ssr/node_modules_07vtvfyfo0a6i._.js +3 -0
  640. package/web/.next/server/chunks/ssr/node_modules_07vtvfyfo0a6i._.js.map +1 -0
  641. package/web/.next/server/chunks/ssr/node_modules_0ettht2so2tkh._.js +1 -1
  642. package/web/.next/server/chunks/ssr/node_modules_0keape0zsobyj._.js +1 -1
  643. package/web/.next/server/chunks/ssr/node_modules_0ue_35q2cegwf._.js +3 -0
  644. package/web/.next/server/chunks/ssr/node_modules_0ue_35q2cegwf._.js.map +1 -0
  645. package/web/.next/server/chunks/ssr/node_modules_12euo0ncdx1pn._.js +3 -0
  646. package/web/.next/server/chunks/ssr/node_modules_12euo0ncdx1pn._.js.map +1 -0
  647. package/web/.next/server/chunks/ssr/node_modules_1722-epjft-rn._.js +3 -0
  648. package/web/.next/server/chunks/ssr/node_modules_1722-epjft-rn._.js.map +1 -0
  649. package/web/.next/server/chunks/ssr/{node_modules_@aeolus-fleet_common_dist_header_1x3s5abk_uj9j._.js → node_modules_@aeolus-fleet_ui_dist_11tn8gozt2_c3._.js} +2 -2
  650. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_ui_dist_11tn8gozt2_c3._.js.map +1 -0
  651. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_ui_dist_16j49enf275ln._.js +3 -0
  652. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_ui_dist_16j49enf275ln._.js.map +1 -0
  653. package/web/.next/server/chunks/ssr/node_modules_@base-ui_0jlwmxa9rk8p_._.js +1 -1
  654. package/web/.next/server/chunks/ssr/node_modules_@base-ui_0jlwmxa9rk8p_._.js.map +1 -1
  655. package/web/.next/server/chunks/ssr/node_modules_@base-ui_19e_nxxf4a88q._.js +1 -1
  656. package/web/.next/server/chunks/ssr/node_modules_@base-ui_19e_nxxf4a88q._.js.map +1 -1
  657. package/web/.next/server/chunks/ssr/node_modules_@base-ui_react_1cvjxnw-b3pnv._.js +3 -0
  658. package/web/.next/server/chunks/ssr/{node_modules_@base-ui_react_1lbvjrzg8s2ox._.js.map → node_modules_@base-ui_react_1cvjxnw-b3pnv._.js.map} +1 -1
  659. package/web/.next/server/chunks/ssr/node_modules_@base-ui_react_toast_index_parts_mjs_20gwon7142aop._.js +3 -0
  660. package/web/.next/server/chunks/ssr/node_modules_@base-ui_react_toast_index_parts_mjs_20gwon7142aop._.js.map +1 -0
  661. package/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_bell_mjs_1sxms6d0wfxa2._.js +3 -0
  662. package/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_bell_mjs_1sxms6d0wfxa2._.js.map +1 -0
  663. package/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_search_mjs_047mxu6_po4kl._.js +3 -0
  664. package/web/.next/server/chunks/ssr/node_modules_lucide-react_dist_esm_icons_search_mjs_047mxu6_po4kl._.js.map +1 -0
  665. package/web/.next/server/chunks/ssr/node_modules_next_08hq6z46rczo0._.js +2 -2
  666. package/web/.next/server/chunks/ssr/node_modules_next_dist_0janj0i6dqko7._.js +2 -2
  667. package/web/.next/server/chunks/ssr/node_modules_next_dist_0janj0i6dqko7._.js.map +1 -1
  668. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0g15rgn4n-oiz.js +3 -0
  669. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0g15rgn4n-oiz.js.map +1 -0
  670. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0hzwtyh-646p2.js +3 -0
  671. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0hzwtyh-646p2.js.map +1 -0
  672. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0mm8dt8tws1fz.js +3 -0
  673. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0mm8dt8tws1fz.js.map +1 -0
  674. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0tcy7phl8a4gj.js +3 -0
  675. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0tcy7phl8a4gj.js.map +1 -0
  676. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ynno0usi0bwx.js +1 -1
  677. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_11x159_oszki3.js +3 -0
  678. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_11x159_oszki3.js.map +1 -0
  679. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_128zox167vtjm.js +1 -1
  680. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_128zox167vtjm.js.map +1 -1
  681. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dltrn6ii5dd6.js +3 -0
  682. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dltrn6ii5dd6.js.map +1 -0
  683. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1hm1iu016c1fy.js +3 -0
  684. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1hm1iu016c1fy.js.map +1 -0
  685. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1zaoeyy4_vir_.js +3 -0
  686. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1zaoeyy4_vir_.js.map +1 -0
  687. package/web/.next/server/chunks/ssr/web_0_peudz6-o69m._.js +3 -0
  688. package/web/.next/server/chunks/ssr/web_0_peudz6-o69m._.js.map +1 -0
  689. package/web/.next/server/chunks/ssr/web_0cxcy088wnfmw._.js +3 -0
  690. package/web/.next/server/chunks/ssr/web_0cxcy088wnfmw._.js.map +1 -0
  691. package/web/.next/server/chunks/ssr/web_0oz8bypfxh82g._.js +3 -0
  692. package/web/.next/server/chunks/ssr/web_0oz8bypfxh82g._.js.map +1 -0
  693. package/web/.next/server/chunks/ssr/web_0pk41f5m34jvi._.js +3 -0
  694. package/web/.next/server/chunks/ssr/web_0pk41f5m34jvi._.js.map +1 -0
  695. package/web/.next/server/chunks/ssr/web_0qgev3ti257yj._.js +1 -1
  696. package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js +1 -1
  697. package/web/.next/server/chunks/ssr/web_0wys4l6za8umr._.js.map +1 -1
  698. package/web/.next/server/chunks/ssr/web_1fi1x3y7rg7mf._.js +3 -0
  699. package/web/.next/server/chunks/ssr/web_1fi1x3y7rg7mf._.js.map +1 -0
  700. package/web/.next/server/chunks/ssr/web_1ga4pbv72m0ad._.js +1 -1
  701. package/web/.next/server/chunks/ssr/web_1irsulms62lzf._.js +3 -0
  702. package/web/.next/server/chunks/ssr/web_1irsulms62lzf._.js.map +1 -0
  703. package/web/.next/server/chunks/ssr/web_1k2rrq-kr6f9k._.js +3 -0
  704. package/web/.next/server/chunks/ssr/web_1k2rrq-kr6f9k._.js.map +1 -0
  705. package/web/.next/server/chunks/ssr/web_1qvxzqmq4aw94._.js +3 -0
  706. package/web/.next/server/chunks/ssr/web_1qvxzqmq4aw94._.js.map +1 -0
  707. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_basket_page_actions_0g7q_rc5nma1e.js +3 -0
  708. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_basket_page_actions_0g7q_rc5nma1e.js.map +1 -0
  709. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_done_page_actions_0kjm34arntdzv.js +3 -0
  710. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_done_page_actions_0kjm34arntdzv.js.map +1 -0
  711. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_page_actions_1ok64rg3edm_u.js +3 -0
  712. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(bridge)_bridge_page_actions_1ok64rg3edm_u.js.map +1 -0
  713. package/web/.next/server/chunks/ssr/{web_app_(console)_bridge_error_tsx_10gkrn3ey8162._.js → web_app_(bridge)_bridge_error_tsx_0-142o0iqsh3j._.js} +2 -2
  714. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_error_tsx_0-142o0iqsh3j._.js.map +1 -0
  715. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_error_tsx_1m86qyp1bl9pi._.js +3 -0
  716. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_error_tsx_1m86qyp1bl9pi._.js.map +1 -0
  717. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_fleet_page_tsx_0uvtx8hiy8g0n._.js +3 -0
  718. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_fleet_page_tsx_0uvtx8hiy8g0n._.js.map +1 -0
  719. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_settings_page_tsx_1z5yr8ss25q7n._.js +3 -0
  720. package/web/.next/server/chunks/ssr/web_app_(bridge)_bridge_settings_page_tsx_1z5yr8ss25q7n._.js.map +1 -0
  721. package/web/.next/server/chunks/ssr/web_app_(console)_parties_page_tsx_0pp63ghly3eyp._.js +1 -1
  722. package/web/.next/server/chunks/ssr/web_app_authorize_layout_tsx_0gs61_7wzx68y._.js +1 -1
  723. package/web/.next/server/chunks/ssr/web_app_authorize_layout_tsx_0gs61_7wzx68y._.js.map +1 -1
  724. package/web/.next/server/chunks/ssr/web_features_06f9kfi0c4nf8._.js +3 -0
  725. package/web/.next/server/chunks/ssr/web_features_06f9kfi0c4nf8._.js.map +1 -0
  726. package/web/.next/server/chunks/ssr/{web_features_0d48z2epb6oie._.js → web_features_0f2pobf_t4wjt._.js} +2 -2
  727. package/web/.next/server/chunks/ssr/{web_features_0d48z2epb6oie._.js.map → web_features_0f2pobf_t4wjt._.js.map} +1 -1
  728. package/web/.next/server/chunks/ssr/web_features_0rd6357w-eo50._.js +1 -1
  729. package/web/.next/server/chunks/ssr/web_features_12b-75qfhurxi._.js +3 -0
  730. package/web/.next/server/chunks/ssr/web_features_12b-75qfhurxi._.js.map +1 -0
  731. package/web/.next/server/chunks/ssr/web_features_19r68thirqv1n._.js +1 -1
  732. package/web/.next/server/chunks/ssr/web_features_1m5g9a6mwrsd-._.js +1 -1
  733. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js +1 -1
  734. package/web/.next/server/chunks/ssr/web_features_add-a2a-agent_ui_a2a-agent-form_tsx_0z8t1aalwzyl7._.js.map +1 -1
  735. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js +1 -1
  736. package/web/.next/server/chunks/ssr/web_features_add-a2a-client_ui_a2a-client-form_tsx_1anv88g385nwe._.js.map +1 -1
  737. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js +1 -1
  738. package/web/.next/server/chunks/ssr/web_features_add-server_ui_add-server_tsx_1jnmar5xju49k._.js.map +1 -1
  739. package/web/.next/server/chunks/ssr/web_features_authorize_137wk0n1nu3cn._.js +1 -1
  740. package/web/.next/server/chunks/ssr/web_features_authorize_137wk0n1nu3cn._.js.map +1 -1
  741. package/web/.next/server/chunks/ssr/web_features_bridge_0msm42qwm0-jq._.js +3 -0
  742. package/web/.next/server/chunks/ssr/web_features_bridge_0msm42qwm0-jq._.js.map +1 -0
  743. package/web/.next/server/chunks/ssr/web_features_bridge_1mi9qlb-z5iwt._.js +1 -1
  744. package/web/.next/server/chunks/ssr/web_features_bridge_1mi9qlb-z5iwt._.js.map +1 -1
  745. package/web/.next/server/chunks/ssr/web_features_bridge_fleet_ui_fleet-numbers_tsx_0_afv4j248_w-._.js +3 -0
  746. package/web/.next/server/chunks/ssr/web_features_bridge_fleet_ui_fleet-numbers_tsx_0_afv4j248_w-._.js.map +1 -0
  747. package/web/.next/server/chunks/ssr/web_features_bridge_hooks_bridge-actions_ts_0h-_xm2rcb-ij._.js +1 -1
  748. package/web/.next/server/chunks/ssr/web_features_bridge_hooks_bridge-actions_ts_0h-_xm2rcb-ij._.js.map +1 -1
  749. package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js +1 -1
  750. package/web/.next/server/chunks/ssr/web_features_bridge_state_basket-panel_tsx_1qi_kzld0rfgs._.js.map +1 -1
  751. package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js +1 -1
  752. package/web/.next/server/chunks/ssr/web_features_bridge_state_decision-panel_tsx_1mzsixgc8zuxc._.js.map +1 -1
  753. package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js +1 -1
  754. package/web/.next/server/chunks/ssr/web_features_bridge_state_done-panel_tsx_1m844-qb1z9p_._.js.map +1 -1
  755. package/web/.next/server/chunks/ssr/web_features_bridge_state_home-panel_tsx_1cc5zdhxogl_2._.js +1 -1
  756. package/web/.next/server/chunks/ssr/web_features_bridge_state_home-panel_tsx_1cc5zdhxogl_2._.js.map +1 -1
  757. package/web/.next/server/chunks/ssr/web_features_bridge_ui_1y4g3fe75nqn5._.js +1 -1
  758. package/web/.next/server/chunks/ssr/web_features_bridge_ui_1y4g3fe75nqn5._.js.map +1 -1
  759. package/web/.next/server/chunks/ssr/web_features_bridge_ui_item-row_tsx_0c_a8wjzwsr7j._.js +3 -0
  760. package/web/.next/server/chunks/ssr/web_features_bridge_ui_item-row_tsx_0c_a8wjzwsr7j._.js.map +1 -0
  761. package/web/.next/server/chunks/ssr/{web_features_0f6r-m-dq36vf._.js → web_features_forms_1u0akr22eh_x_._.js} +2 -2
  762. package/web/.next/server/chunks/ssr/web_features_forms_1u0akr22eh_x_._.js.map +1 -0
  763. package/web/.next/server/chunks/ssr/web_features_frame_01uyck6q56an2._.js +3 -0
  764. package/web/.next/server/chunks/ssr/web_features_frame_01uyck6q56an2._.js.map +1 -0
  765. package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js +1 -1
  766. package/web/.next/server/chunks/ssr/web_features_frame_ui_gateway-header_tsx_0e9tekx4jf7ng._.js.map +1 -1
  767. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js +1 -1
  768. package/web/.next/server/chunks/ssr/web_features_meeting_state_meeting-controls_tsx_12g4kzk2mbvvz._.js.map +1 -1
  769. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js +1 -1
  770. package/web/.next/server/chunks/ssr/web_features_outside-parties_ui_switch-card_tsx_1_xnu9bm4tc-_._.js.map +1 -1
  771. package/web/.next/server/chunks/ssr/web_features_outside-party_1-lre9nfakki7._.js +1 -1
  772. package/web/.next/server/chunks/ssr/web_features_outside-party_actions_ts_102ar5pdowf8s._.js +1 -1
  773. package/web/.next/server/chunks/ssr/web_features_parties_actions_ts_0r-tbfsig2ty-._.js +1 -1
  774. package/web/.next/server/chunks/ssr/web_features_slack_actions_ts_1l3yg9vl20_vu._.js +1 -1
  775. package/web/.next/server/chunks/web__next-internal_server_app_(bridge)_bridge_focus_route_actions_0fx2vmqfq23mq.js +3 -0
  776. package/web/.next/server/middleware-build-manifest.js +114 -90
  777. package/web/.next/server/next-font-manifest.js +1 -1
  778. package/web/.next/server/next-font-manifest.json +14 -6
  779. package/web/.next/server/pages/500.html +1 -1
  780. package/web/.next/server/preview-props.json +3 -3
  781. package/web/.next/server/server-reference-manifest.js +1 -1
  782. package/web/.next/server/server-reference-manifest.json +167 -105
  783. package/web/.next/static/chunks/030kay14jcn_y.js +1 -0
  784. package/web/.next/static/chunks/0ben53l12lrh1.js +1 -0
  785. package/web/.next/static/chunks/0d1u4n5okodee.css +3 -0
  786. package/web/.next/static/chunks/0dg4cy4rae-3o.js +1 -0
  787. package/web/.next/static/chunks/0jwils_670syn.js +1 -0
  788. package/web/.next/static/chunks/0lnew3mjkd54b.js +1 -0
  789. package/web/.next/static/chunks/0m95j-t2qmnd_.js +1 -0
  790. package/web/.next/static/chunks/0r5ujkp-5utsu.js +1 -0
  791. package/web/.next/static/chunks/{1166rxt6h6ilq.js → 1c8q9h-van9r6.js} +1 -1
  792. package/web/.next/static/chunks/{3db90zxmny2y-.js → 1jyiwl5szsvgn.js} +1 -1
  793. package/web/.next/static/chunks/{2z2auwx1s2mgl.js → 1lkcm-iwggfae.js} +1 -1
  794. package/web/.next/static/chunks/1ml6wx1ya9wwo.js +1 -0
  795. package/web/.next/static/chunks/1nzfw6ajt5nf9.js +55 -0
  796. package/web/.next/static/chunks/22wtc73dzqm8f.js +1 -0
  797. package/web/.next/static/chunks/2drwxc7-hry0u.js +1 -0
  798. package/web/.next/static/chunks/2ewacyhp73due.js +1 -0
  799. package/web/.next/static/chunks/2fimf0wcjnmpj.js +1 -0
  800. package/web/.next/static/chunks/2fk9ydkphmyna.js +1 -0
  801. package/web/.next/static/chunks/{07j7jnfe13wx6.js → 2ich96rzec753.js} +1 -1
  802. package/web/.next/static/chunks/2khjzepn4_2a-.js +1 -0
  803. package/web/.next/static/chunks/2mpwg-t6pat39.js +1 -0
  804. package/web/.next/static/chunks/2ui6n5-n032a3.js +1 -0
  805. package/web/.next/static/chunks/2wvdu6-tx1h0l.js +1 -0
  806. package/web/.next/static/chunks/33qpc2y76i927.js +1 -0
  807. package/web/.next/static/chunks/39tst46ewpx_k.js +1 -0
  808. package/web/.next/static/chunks/3h8spyc73a438.js +1 -0
  809. package/web/.next/static/chunks/3kenmp9pjwgf2.js +1 -0
  810. package/web/.next/static/chunks/3knqujtrdi225.js +1 -0
  811. package/web/.next/static/chunks/3v8s571padqcz.js +1 -0
  812. package/web/.next/static/chunks/3wg9zn3lyhf-b.js +1 -0
  813. package/web/.next/static/chunks/{0lzisjsmhlhjf.js → 3zhaqdsq15d1e.js} +1 -1
  814. package/web/.next/trace +1 -1
  815. package/web/.next/trace-build +1 -1
  816. package/web/.next/types/routes.d.ts +3 -1
  817. package/web/.next/types/validator.ts +50 -16
  818. package/web/public/argo-wake-icon.svg +1 -0
  819. package/web/public/wake-worker.js +8 -2
  820. package/web/public/wake-worker.test.ts +52 -0
  821. package/dist/core/people/stale-question.d.ts +0 -28
  822. package/dist/core/people/stale-question.js +0 -26
  823. package/dist/core/people/stale-question.js.map +0 -1
  824. package/web/.next/server/app/(console)/bridge/basket/page/app-paths-manifest.json +0 -3
  825. package/web/.next/server/app/(console)/bridge/basket/page/server-reference-manifest.json +0 -75
  826. package/web/.next/server/app/(console)/bridge/basket/page_client-reference-manifest.js +0 -3
  827. package/web/.next/server/app/(console)/bridge/changes/route/app-paths-manifest.json +0 -3
  828. package/web/.next/server/app/(console)/bridge/changes/route.js +0 -8
  829. package/web/.next/server/app/(console)/bridge/changes/route_client-reference-manifest.js +0 -3
  830. package/web/.next/server/app/(console)/bridge/done/page/app-paths-manifest.json +0 -3
  831. package/web/.next/server/app/(console)/bridge/done/page/server-reference-manifest.json +0 -75
  832. package/web/.next/server/app/(console)/bridge/done/page_client-reference-manifest.js +0 -3
  833. package/web/.next/server/app/(console)/bridge/focus/route/app-paths-manifest.json +0 -3
  834. package/web/.next/server/app/(console)/bridge/focus/route.js +0 -8
  835. package/web/.next/server/app/(console)/bridge/focus/route_client-reference-manifest.js +0 -3
  836. package/web/.next/server/app/(console)/bridge/page/app-paths-manifest.json +0 -3
  837. package/web/.next/server/app/(console)/bridge/page/server-reference-manifest.json +0 -65
  838. package/web/.next/server/app/(console)/bridge/page_client-reference-manifest.js +0 -3
  839. package/web/.next/server/app/(console)/bridge/settings/page/app-paths-manifest.json +0 -3
  840. package/web/.next/server/app/(console)/bridge/settings/page_client-reference-manifest.js +0 -3
  841. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page/app-paths-manifest.json +0 -3
  842. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page/build-manifest.json +0 -23
  843. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page/next-font-manifest.json +0 -11
  844. package/web/.next/server/app/(console)/bridge/settings/requests/[requestId]/page_client-reference-manifest.js +0 -3
  845. package/web/.next/server/app/(console)/bridge/settings/routing/page/app-paths-manifest.json +0 -3
  846. package/web/.next/server/app/(console)/bridge/settings/routing/page/build-manifest.json +0 -23
  847. package/web/.next/server/app/(console)/bridge/settings/routing/page/next-font-manifest.json +0 -11
  848. package/web/.next/server/app/(console)/bridge/settings/routing/page_client-reference-manifest.js +0 -3
  849. package/web/.next/server/chunks/0b9d__next-internal_server_app_(console)_bridge_changes_route_actions_0hj8aqohz6bu6.js +0 -3
  850. package/web/.next/server/chunks/_05qgg3__4kdbm._.js +0 -3
  851. package/web/.next/server/chunks/_05qgg3__4kdbm._.js.map +0 -1
  852. package/web/.next/server/chunks/_1uap5tql2vvsb._.js +0 -3
  853. package/web/.next/server/chunks/_1uap5tql2vvsb._.js.map +0 -1
  854. package/web/.next/server/chunks/ssr/01fr_app_(console)_bridge_settings_requests_[requestId]_page_actions_1au-p5lgnv5e-.js +0 -3
  855. package/web/.next/server/chunks/ssr/01fr_app_(console)_bridge_settings_requests_[requestId]_page_actions_1au-p5lgnv5e-.js.map +0 -1
  856. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_bridge_settings_routing_page_actions_136lm_jip4d_x.js +0 -3
  857. package/web/.next/server/chunks/ssr/0vkm_server_app_(console)_bridge_settings_routing_page_actions_136lm_jip4d_x.js.map +0 -1
  858. package/web/.next/server/chunks/ssr/[root-of-the-server]__00jy4lqrcvxvc._.js +0 -3
  859. package/web/.next/server/chunks/ssr/[root-of-the-server]__00jy4lqrcvxvc._.js.map +0 -1
  860. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k-5_al3xk509._.js +0 -3
  861. package/web/.next/server/chunks/ssr/[root-of-the-server]__0k-5_al3xk509._.js.map +0 -1
  862. package/web/.next/server/chunks/ssr/[root-of-the-server]__18v7b5ga58a9n._.js +0 -4
  863. package/web/.next/server/chunks/ssr/[root-of-the-server]__18v7b5ga58a9n._.js.map +0 -1
  864. package/web/.next/server/chunks/ssr/[root-of-the-server]__1nxy_j9eswr3i._.js +0 -3
  865. package/web/.next/server/chunks/ssr/[root-of-the-server]__1nxy_j9eswr3i._.js.map +0 -1
  866. package/web/.next/server/chunks/ssr/[root-of-the-server]__1rf344o33bmi4._.js +0 -3
  867. package/web/.next/server/chunks/ssr/[root-of-the-server]__1rf344o33bmi4._.js.map +0 -1
  868. package/web/.next/server/chunks/ssr/_0a_nsm-ye2r6v._.js.map +0 -1
  869. package/web/.next/server/chunks/ssr/_0h-ua-y4p4u1p._.js +0 -3
  870. package/web/.next/server/chunks/ssr/_0h-ua-y4p4u1p._.js.map +0 -1
  871. package/web/.next/server/chunks/ssr/_10-gn6g9yc63s._.js +0 -3
  872. package/web/.next/server/chunks/ssr/_10-gn6g9yc63s._.js.map +0 -1
  873. package/web/.next/server/chunks/ssr/_12fsn_33ga-n0._.js +0 -3
  874. package/web/.next/server/chunks/ssr/_12fsn_33ga-n0._.js.map +0 -1
  875. package/web/.next/server/chunks/ssr/_177fdczus39s7._.js +0 -3
  876. package/web/.next/server/chunks/ssr/_177fdczus39s7._.js.map +0 -1
  877. package/web/.next/server/chunks/ssr/_1hmjvjuxx92vo._.js +0 -3
  878. package/web/.next/server/chunks/ssr/_1hmjvjuxx92vo._.js.map +0 -1
  879. package/web/.next/server/chunks/ssr/_1jx41z6kmxtt0._.js +0 -3
  880. package/web/.next/server/chunks/ssr/_1jx41z6kmxtt0._.js.map +0 -1
  881. package/web/.next/server/chunks/ssr/_1q2s-hb67yjfb._.js +0 -3
  882. package/web/.next/server/chunks/ssr/_1q2s-hb67yjfb._.js.map +0 -1
  883. package/web/.next/server/chunks/ssr/_1yi3j4a16uet-._.js +0 -3
  884. package/web/.next/server/chunks/ssr/_1yi3j4a16uet-._.js.map +0 -1
  885. package/web/.next/server/chunks/ssr/node_modules_01oyodz1bs245._.js +0 -3
  886. package/web/.next/server/chunks/ssr/node_modules_01oyodz1bs245._.js.map +0 -1
  887. package/web/.next/server/chunks/ssr/node_modules_16d4um5s513wz._.js +0 -3
  888. package/web/.next/server/chunks/ssr/node_modules_16d4um5s513wz._.js.map +0 -1
  889. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_0t_cmi-llaq7g._.js +0 -3
  890. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_0t_cmi-llaq7g._.js.map +0 -1
  891. package/web/.next/server/chunks/ssr/node_modules_@aeolus-fleet_common_dist_header_1x3s5abk_uj9j._.js.map +0 -1
  892. package/web/.next/server/chunks/ssr/node_modules_@base-ui_react_1lbvjrzg8s2ox._.js +0 -3
  893. package/web/.next/server/chunks/ssr/node_modules_next_dist_0hkpfqt9ne626._.js +0 -3
  894. package/web/.next/server/chunks/ssr/node_modules_next_dist_0hkpfqt9ne626._.js.map +0 -1
  895. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_031g89sb4kgzn.js +0 -3
  896. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_031g89sb4kgzn.js.map +0 -1
  897. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_09rviehv6rh0n.js +0 -3
  898. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_09rviehv6rh0n.js.map +0 -1
  899. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ka8v6_fxug8r.js +0 -3
  900. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0ka8v6_fxug8r.js.map +0 -1
  901. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1c8zekuy1gkch.js +0 -3
  902. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1c8zekuy1gkch.js.map +0 -1
  903. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dhzng2nnu0m7.js +0 -3
  904. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1dhzng2nnu0m7.js.map +0 -1
  905. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1rya2ag3z4vug.js +0 -3
  906. package/web/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1rya2ag3z4vug.js.map +0 -1
  907. package/web/.next/server/chunks/ssr/web_0i_1uraygw2ld._.js +0 -3
  908. package/web/.next/server/chunks/ssr/web_0i_1uraygw2ld._.js.map +0 -1
  909. package/web/.next/server/chunks/ssr/web_0wz4onhfbq359._.js +0 -3
  910. package/web/.next/server/chunks/ssr/web_0wz4onhfbq359._.js.map +0 -1
  911. package/web/.next/server/chunks/ssr/web_1-hlf1xzemd3-._.js +0 -3
  912. package/web/.next/server/chunks/ssr/web_1-hlf1xzemd3-._.js.map +0 -1
  913. package/web/.next/server/chunks/ssr/web_107a79_nx4jdd._.js +0 -3
  914. package/web/.next/server/chunks/ssr/web_107a79_nx4jdd._.js.map +0 -1
  915. package/web/.next/server/chunks/ssr/web_127_b93avkwaq._.js +0 -3
  916. package/web/.next/server/chunks/ssr/web_127_b93avkwaq._.js.map +0 -1
  917. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_basket_page_actions_102xk3g8eko_q.js +0 -3
  918. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_basket_page_actions_102xk3g8eko_q.js.map +0 -1
  919. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_done_page_actions_0mm90xd2feta2.js +0 -3
  920. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_done_page_actions_0mm90xd2feta2.js.map +0 -1
  921. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_page_actions_082880qz6xa5k.js +0 -3
  922. package/web/.next/server/chunks/ssr/web__next-internal_server_app_(console)_bridge_page_actions_082880qz6xa5k.js.map +0 -1
  923. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_error_tsx_0ty_yk1robyaj._.js +0 -3
  924. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_error_tsx_0ty_yk1robyaj._.js.map +0 -1
  925. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_error_tsx_10gkrn3ey8162._.js.map +0 -1
  926. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_settings_page_tsx_0xzphp7k9ge1u._.js +0 -3
  927. package/web/.next/server/chunks/ssr/web_app_(console)_bridge_settings_page_tsx_0xzphp7k9ge1u._.js.map +0 -1
  928. package/web/.next/server/chunks/ssr/web_features_0f6r-m-dq36vf._.js.map +0 -1
  929. package/web/.next/server/chunks/ssr/web_features_0mi9a9pdzkdji._.js +0 -3
  930. package/web/.next/server/chunks/ssr/web_features_0s8erick0xk77._.js +0 -3
  931. package/web/.next/server/chunks/ssr/web_features_0s8erick0xk77._.js.map +0 -1
  932. package/web/.next/server/chunks/ssr/web_features_0wuo5bgp5tabn._.js +0 -3
  933. package/web/.next/server/chunks/ssr/web_features_0wuo5bgp5tabn._.js.map +0 -1
  934. package/web/.next/server/chunks/ssr/web_features_16cy3vmcijydk._.js +0 -3
  935. package/web/.next/server/chunks/ssr/web_features_16cy3vmcijydk._.js.map +0 -1
  936. package/web/.next/server/chunks/ssr/web_features_1iiqi6dhrst33._.js +0 -3
  937. package/web/.next/server/chunks/ssr/web_features_1iiqi6dhrst33._.js.map +0 -1
  938. package/web/.next/server/chunks/ssr/web_features_1n1hy3nwha2vi._.js +0 -3
  939. package/web/.next/server/chunks/ssr/web_features_1n1hy3nwha2vi._.js.map +0 -1
  940. package/web/.next/server/chunks/ssr/web_features_bridge_0-mhu0jaig2u3._.js +0 -3
  941. package/web/.next/server/chunks/ssr/web_features_bridge_0-mhu0jaig2u3._.js.map +0 -1
  942. package/web/.next/server/chunks/ssr/web_features_bridge_0219fbfmsi68-._.js +0 -3
  943. package/web/.next/server/chunks/ssr/web_features_bridge_0219fbfmsi68-._.js.map +0 -1
  944. package/web/.next/server/chunks/ssr/web_features_bridge_11jndonu4o8fq._.js +0 -3
  945. package/web/.next/server/chunks/ssr/web_features_bridge_11jndonu4o8fq._.js.map +0 -1
  946. package/web/.next/server/chunks/ssr/web_features_bridge_state_0354e3wb0dzx1._.js +0 -3
  947. package/web/.next/server/chunks/ssr/web_features_bridge_state_0354e3wb0dzx1._.js.map +0 -1
  948. package/web/.next/server/chunks/ssr/web_features_bridge_state_live-refresh_tsx_1c1xk-oe0kllv._.js +0 -3
  949. package/web/.next/server/chunks/ssr/web_features_bridge_state_live-refresh_tsx_1c1xk-oe0kllv._.js.map +0 -1
  950. package/web/.next/server/chunks/ssr/web_features_frame_0pe8cwpxe1egb._.js +0 -3
  951. package/web/.next/server/chunks/ssr/web_features_frame_0pe8cwpxe1egb._.js.map +0 -1
  952. package/web/.next/server/chunks/web__next-internal_server_app_(console)_bridge_focus_route_actions_0syd_u8mgzdmi.js +0 -3
  953. package/web/.next/static/chunks/0az9upwm-8_q9.js +0 -1
  954. package/web/.next/static/chunks/0c1tqlbsvq1dj.js +0 -1
  955. package/web/.next/static/chunks/0fh11dkddwf_2.js +0 -1
  956. package/web/.next/static/chunks/0gbozvd_yh421.js +0 -1
  957. package/web/.next/static/chunks/0l9_oie6xi0kd.js +0 -1
  958. package/web/.next/static/chunks/0m512dxdcrv-b.js +0 -1
  959. package/web/.next/static/chunks/0zbcy0_3jemrv.js +0 -1
  960. package/web/.next/static/chunks/1485slb5zus5p.js +0 -1
  961. package/web/.next/static/chunks/180aowme095ds.js +0 -1
  962. package/web/.next/static/chunks/24olc0btcvn7q.js +0 -1
  963. package/web/.next/static/chunks/296w-74ry5lzk.js +0 -1
  964. package/web/.next/static/chunks/2gghdkr64z9f9.js +0 -1
  965. package/web/.next/static/chunks/2hoi73vy1wqpo.js +0 -1
  966. package/web/.next/static/chunks/2mtfca4qk_s34.js +0 -1
  967. package/web/.next/static/chunks/397zvdr6xr5pq.js +0 -1
  968. package/web/.next/static/chunks/3ow9h8hreko-p.css +0 -3
  969. package/web/.next/static/chunks/3pd8pele5x1o9.js +0 -1
  970. package/web/.next/static/chunks/3srfjz42u14tx.js +0 -1
  971. package/web/.next/static/chunks/3x0p-z3zdrk_b.js +0 -1
  972. package/web/.next/static/chunks/3yq9jt4p_0uid.js +0 -1
  973. /package/web/.next/server/app/{(console) → (bridge)}/bridge/basket/page/react-loadable-manifest.json +0 -0
  974. /package/web/.next/server/app/{(console) → (bridge)}/bridge/basket/page.js.map +0 -0
  975. /package/web/.next/server/app/{(console) → (bridge)}/bridge/changes/route/build-manifest.json +0 -0
  976. /package/web/.next/server/app/{(console) → (bridge)}/bridge/changes/route/server-reference-manifest.json +0 -0
  977. /package/web/.next/server/app/{(console) → (bridge)}/bridge/changes/route.js.map +0 -0
  978. /package/web/.next/server/app/{(console) → (bridge)}/bridge/done/page/react-loadable-manifest.json +0 -0
  979. /package/web/.next/server/app/{(console) → (bridge)}/bridge/done/page.js.map +0 -0
  980. /package/web/.next/server/app/{(console)/bridge → (bridge)/bridge/fleet}/page/react-loadable-manifest.json +0 -0
  981. /package/web/.next/server/app/{(console)/bridge → (bridge)/bridge/fleet}/page.js.map +0 -0
  982. /package/web/.next/server/app/{(console) → (bridge)}/bridge/focus/route/build-manifest.json +0 -0
  983. /package/web/.next/server/app/{(console) → (bridge)}/bridge/focus/route/server-reference-manifest.json +0 -0
  984. /package/web/.next/server/app/{(console) → (bridge)}/bridge/focus/route.js.map +0 -0
  985. /package/web/.next/server/app/{(console)/bridge/settings → (bridge)/bridge}/page/react-loadable-manifest.json +0 -0
  986. /package/web/.next/server/app/{(console)/bridge/settings → (bridge)/bridge}/page.js.map +0 -0
  987. /package/web/.next/server/app/{(console)/bridge/settings/requests/[requestId] → (bridge)/bridge/settings}/page/react-loadable-manifest.json +0 -0
  988. /package/web/.next/server/app/{(console)/bridge/settings/requests/[requestId] → (bridge)/bridge/settings}/page.js.map +0 -0
  989. /package/web/.next/server/app/{(console)/bridge/settings/routing → (bridge)/bridge/settings/requests/[requestId]}/page/react-loadable-manifest.json +0 -0
  990. /package/web/.next/server/app/{(console)/bridge/settings/routing → (bridge)/bridge/settings/requests/[requestId]}/page.js.map +0 -0
  991. /package/web/.next/server/chunks/{0b9d__next-internal_server_app_(console)_bridge_changes_route_actions_0hj8aqohz6bu6.js.map → 0b9d__next-internal_server_app_(bridge)_bridge_changes_route_actions_0wd1c_8tnx6-f.js.map} +0 -0
  992. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__1yyaeeylnezpi._.js.map → [root-of-the-server]__04_bc8g0oe4jt._.js.map} +0 -0
  993. /package/web/.next/server/chunks/ssr/{[root-of-the-server]__0gnfxe62edx95._.js.map → [root-of-the-server]__179upda-y7uap._.js.map} +0 -0
  994. /package/web/.next/server/chunks/{web__next-internal_server_app_(console)_bridge_focus_route_actions_0syd_u8mgzdmi.js.map → web__next-internal_server_app_(bridge)_bridge_focus_route_actions_0fx2vmqfq23mq.js.map} +0 -0
  995. /package/web/.next/static/{CMppMkysNciqc8k4TWwia → 79SqN0pBIJ0D-DK1jZmK6}/_buildManifest.js +0 -0
  996. /package/web/.next/static/{CMppMkysNciqc8k4TWwia → 79SqN0pBIJ0D-DK1jZmK6}/_clientMiddlewareManifest.js +0 -0
  997. /package/web/.next/static/{CMppMkysNciqc8k4TWwia → 79SqN0pBIJ0D-DK1jZmK6}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../node_modules/%40base-ui/react/combobox/root/ComboboxRoot.mjs","../../../../../node_modules/%40base-ui/react/combobox/root/AriaCombobox.mjs","../../../../../node_modules/%40base-ui/react/combobox/root/utils/constants.mjs","../../../../../node_modules/%40base-ui/react/combobox/items/itemCollection.mjs","../../../../../node_modules/%40base-ui/react/combobox/label/ComboboxLabel.mjs","../../../../../node_modules/%40base-ui/react/internals/labelable-provider/useLabel.mjs","../../../../../node_modules/%40base-ui/react/utils/useRegisteredLabelId.mjs","../../../../../node_modules/%40base-ui/react/utils/resolveAriaLabelledBy.mjs","../../../../../node_modules/%40base-ui/react/combobox/input/ComboboxInput.mjs","../../../../../node_modules/%40base-ui/react/combobox/utils/stateAttributesMapping.mjs","../../../../../node_modules/%40base-ui/react/combobox/input/ComboboxInputDataAttributes.mjs","../../../../../node_modules/%40base-ui/react/internals/field-root-context/useSetFieldFocused.mjs","../../../../../node_modules/%40base-ui/react/combobox/chips/ComboboxChipsContext.mjs","../../../../../node_modules/%40base-ui/react/combobox/positioner/ComboboxPositionerContext.mjs","../../../../../node_modules/%40base-ui/react/combobox/utils/ComboboxInternalDismissButton.mjs","../../../../../node_modules/%40base-ui/react/combobox/utils/parts.mjs","../../../../../node_modules/%40base-ui/react/combobox/utils/handleInputPress.mjs","../../../../../node_modules/%40base-ui/react/combobox/input-group/ComboboxInputGroup.mjs","../../../../../node_modules/%40base-ui/react/combobox/collection/GroupCollectionContext.mjs","../../../../../node_modules/%40base-ui/react/combobox/collection/ComboboxCollection.mjs","../../../../../node_modules/%40base-ui/react/combobox/list/ComboboxList.mjs","../../../../../node_modules/%40base-ui/react/combobox/portal/ComboboxPortal.mjs","../../../../../node_modules/%40base-ui/react/combobox/portal/ComboboxPortalContext.mjs","../../../../../node_modules/%40base-ui/react/combobox/positioner/ComboboxPositioner.mjs","../../../../../node_modules/%40base-ui/react/combobox/popup/ComboboxPopup.mjs","../../../../../node_modules/%40base-ui/react/combobox/item/ComboboxItem.mjs","../../../../../node_modules/%40base-ui/react/combobox/item/ComboboxItemContext.mjs","../../../../../node_modules/%40base-ui/react/combobox/row/ComboboxRowContext.mjs","../../../../../node_modules/%40base-ui/react/utils/ItemIndicator.mjs","../../../../../node_modules/%40base-ui/react/combobox/item-indicator/ComboboxItemIndicator.mjs","../../../../../node_modules/%40base-ui/react/combobox/chips/ComboboxChips.mjs","../../../../../node_modules/%40base-ui/react/combobox/chip/ComboboxChipContext.mjs","../../../../../node_modules/%40base-ui/react/combobox/chip/ComboboxChip.mjs","../../../../../node_modules/%40base-ui/react/combobox/chip-remove/ComboboxChipRemove.mjs","../../../../../node_modules/%40base-ui/react/internals/useInitialLiveRegionTextMutation.mjs","../../../../../node_modules/%40base-ui/react/combobox/empty/ComboboxEmpty.mjs","../../../../../node_modules/%40base-ui/react/utils/scrollable.mjs","../../../../../node_modules/%40base-ui/utils/useOnFirstRender.mjs","../../../../../node_modules/%40base-ui/react/floating-ui-react/hooks/useFloatingRootContext.mjs","../../../../../node_modules/%40base-ui/react/floating-ui-react/hooks/gridNavigation.mjs","../../../../../node_modules/%40base-ui/react/combobox/root/ComboboxRootContext.mjs","../../../../../node_modules/%40base-ui/utils/areArraysEqual.mjs","../../../../../node_modules/%40base-ui/react/internals/itemEquality.mjs","../../../../../node_modules/%40base-ui/react/internals/serializeValue.mjs","../../../../../node_modules/%40base-ui/react/internals/resolveValueLabel.mjs","../../../../../node_modules/%40base-ui/react/combobox/store.mjs","../../../../../node_modules/%40base-ui/react/internals/field-root-context/FieldRootContext.mjs","../../../../../node_modules/%40base-ui/react/field/control/FieldControlDataAttributes.mjs","../../../../../node_modules/%40base-ui/react/internals/field-constants/constants.mjs","../../../../../node_modules/%40base-ui/react/internals/field-register-control/useRegisterFieldControl.mjs","../../../../../node_modules/%40base-ui/react/internals/form-context/FormContext.mjs","../../../../../node_modules/%40base-ui/react/internals/labelable-provider/useLabelableId.mjs","../../../../../node_modules/%40base-ui/react/internals/labelable-provider/LabelableContext.mjs","../../../../../node_modules/%40base-ui/react/combobox/root/utils/index.mjs","../../../../../node_modules/%40base-ui/utils/stringifyLocale.mjs","../../../../../node_modules/%40base-ui/react/internals/filter.mjs","../../../../../node_modules/%40base-ui/react/combobox/root/utils/useFilter.mjs"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { AriaCombobox } from \"./AriaCombobox.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Groups all parts of the combobox.\n * Doesn't render its own HTML element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nexport function ComboboxRoot(props) {\n const {\n multiple = false,\n defaultValue,\n value,\n onValueChange,\n autoComplete,\n ...other\n } = props;\n return /*#__PURE__*/_jsx(AriaCombobox, {\n ...other,\n selectionMode: multiple ? 'multiple' : 'single',\n selectedValue: value,\n defaultSelectedValue: defaultValue,\n onSelectedValueChange: onValueChange,\n formAutoComplete: autoComplete\n });\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nimport { useControlled } from '@base-ui/utils/useControlled';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useOnFirstRender } from '@base-ui/utils/useOnFirstRender';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useMergedRefs } from '@base-ui/utils/useMergedRefs';\nimport { useValueAsRef } from '@base-ui/utils/useValueAsRef';\nimport { visuallyHidden, visuallyHiddenInput } from '@base-ui/utils/visuallyHidden';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { ReactStore } from '@base-ui/utils/store';\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { isHTMLElement } from '@floating-ui/utils/dom';\nimport { getOverflowAncestors, useDismiss, useFloatingRootContext, useListNavigation, useClick } from \"../../floating-ui-react/index.mjs\";\nimport { gridNavigation } from \"../../floating-ui-react/hooks/gridNavigation.mjs\";\nimport { activeElement, closest, contains, getTarget } from \"../../floating-ui-react/utils.mjs\";\nimport { createChangeEventDetails, createGenericEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { getHighlightReason } from \"../../utils/getHighlightReason.mjs\";\nimport { ComboboxFloatingContext, ComboboxDerivedItemsContext, ComboboxHasItemsContext, ComboboxRootContext, ComboboxInputValueContext } from \"./ComboboxRootContext.mjs\";\nimport { selectors } from \"../store.mjs\";\nimport { attachPreventUnmountOnClose } from \"../../utils/popups/popupStoreUtils.mjs\";\nimport { useFieldRootContext } from \"../../internals/field-root-context/FieldRootContext.mjs\";\nimport { useRegisterFieldControl } from \"../../internals/field-register-control/useRegisterFieldControl.mjs\";\nimport { useFormContext } from \"../../internals/form-context/FormContext.mjs\";\nimport { useLabelableId } from \"../../internals/labelable-provider/useLabelableId.mjs\";\nimport { createCollatorItemFilter } from \"./utils/index.mjs\";\nimport { useCoreFilter } from \"./utils/useFilter.mjs\";\nimport { useUnmountAfterClose } from \"../../internals/useUnmountAfterClose.mjs\";\nimport { useOpenInteractionType } from \"../../utils/useOpenInteractionType.mjs\";\nimport { isScrollableY } from \"../../utils/scrollable.mjs\";\nimport { useValueChanged } from \"../../internals/useValueChanged.mjs\";\nimport { NOOP } from \"../../internals/noop.mjs\";\nimport { FOCUSABLE_POPUP_PROPS } from \"../../utils/popups/index.mjs\";\nimport { mergeProps } from \"../../merge-props/index.mjs\";\nimport { stringifyAsLabel, stringifyAsValue, flattenLeafItems, isGroupedItems } from \"../../internals/resolveValueLabel.mjs\";\nimport { compareItemEquality, defaultItemEquality, findItemIndex, findSelectionIndex, isSelectedValueDirty, removeItem, selectedValueIncludes } from \"../../internals/itemEquality.mjs\";\nimport { INITIAL_LAST_HIGHLIGHT, NO_ACTIVE_VALUE } from \"./utils/constants.mjs\";\nimport { useDirection } from \"../../internals/direction-context/DirectionContext.mjs\";\nimport { findCollectionItem } from \"../items/itemCollection.mjs\";\n\n/**\n * @internal\n */\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function AriaCombobox(props) {\n const {\n id: idProp,\n onOpenChangeComplete: onOpenChangeCompleteProp,\n defaultSelectedValue = null,\n selectedValue: selectedValueProp,\n onSelectedValueChange,\n defaultInputValue,\n inputValue: inputValueProp,\n open: openProp,\n defaultOpen = false,\n selectionMode,\n onItemHighlighted: onItemHighlightedProp,\n name: nameProp,\n form,\n disabled: disabledProp = false,\n readOnly = false,\n required = false,\n inputRef: inputRefProp,\n grid = false,\n items: itemsProp,\n filteredItems: filteredItemsProp,\n filter: filterProp,\n filterQuery: filterQueryProp,\n openOnInputClick = true,\n autoHighlight = false,\n keepHighlight = false,\n highlightItemOnHover = true,\n loopFocus = true,\n itemToStringLabel: itemToStringLabelProp,\n itemToStringValue,\n isItemEqualToValue = defaultItemEquality,\n virtualized = false,\n inline: inlineProp = false,\n fillInputOnItemPress = true,\n modal = false,\n limit = -1,\n autoComplete = 'list',\n formAutoComplete,\n locale,\n submitOnItemClick = false\n } = props;\n const {\n clearErrors\n } = useFormContext();\n const {\n setDirty,\n validityData,\n setFilled,\n name: fieldName,\n disabled: fieldDisabled,\n setTouched,\n setFocused,\n validationMode,\n validation\n } = useFieldRootContext();\n const direction = useDirection();\n const id = useLabelableId({\n id: idProp\n });\n const collatorFilter = useCoreFilter({\n locale\n });\n\n // Plain items are arrays; normalized `createItems()` collections are objects.\n const collection = Array.isArray(itemsProp) ? null : itemsProp;\n if (collection && typeof collection.label !== 'function') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: the `items` prop received an object that is not a collection, ' + 'so its items cannot be read. Pass an array of items, an array of groups with items, ' + 'or the result of `createItems()`. ' + 'See https://base-ui.com/react/components/combobox#createitems' : _formatErrorMessage(100));\n }\n const items = collection ? collection.data : itemsProp;\n const itemToValue = collection?.value;\n\n // A projected collection's items live in the source domain, not the selection-value domain the\n // store matches against, so they are withheld from the store.\n const storeItems = itemToValue ? undefined : items;\n\n // The externally filtered items projected to their selection values, with a lookup back to the\n // source items. Declared before `itemToStringLabel`, which resolves labels from it on the\n // first render (initial input value).\n const externalWindow = React.useMemo(() => {\n if (!filteredItemsProp || !itemToValue) {\n return undefined;\n }\n const flat = flattenLeafItems(filteredItemsProp);\n const values = flat.map(itemToValue);\n let valueToItem;\n return {\n values,\n findItem(itemValue, isEqual) {\n if (!valueToItem) {\n valueToItem = new Map();\n for (let i = 0; i < values.length; i += 1) {\n if (!valueToItem.has(values[i])) {\n valueToItem.set(values[i], flat[i]);\n }\n }\n }\n return findCollectionItem(valueToItem, itemValue, isEqual);\n }\n };\n }, [filteredItemsProp, itemToValue]);\n\n // Labels selection values from current props only: collection data first, then the current\n // external window, then the prop. Nothing from a past window is remembered — keeping a value\n // resolvable over time means keeping its item in the collection's data.\n const itemToStringLabel = React.useMemo(() => {\n if (!collection) {\n return itemToStringLabelProp;\n }\n return itemValue => {\n return collection.label(itemValue, isItemEqualToValue, unresolvedValue => {\n const externalItem = externalWindow?.findItem(unresolvedValue, isItemEqualToValue);\n if (externalItem != null) {\n return collection.itemLabel(externalItem);\n }\n return stringifyAsLabel(unresolvedValue, itemToStringLabelProp);\n });\n };\n }, [collection, itemToStringLabelProp, externalWindow, isItemEqualToValue]);\n const filterItemToString = React.useMemo(() => {\n if (!collection) {\n return itemToStringLabelProp;\n }\n return Object.assign(item => collection.itemLabel(item), {\n selected: value => stringifyAsLabel(value, itemToStringLabel)\n });\n }, [collection, itemToStringLabel, itemToStringLabelProp]);\n function stringifyValueLabel(item) {\n return stringifyAsLabel(item, itemToStringLabel);\n }\n const [queryChangedAfterOpen, setQueryChangedAfterOpen] = React.useState(false);\n const [closeQuery, setCloseQuery] = React.useState(null);\n const previousCloseQueryRef = React.useRef(closeQuery);\n const listRef = React.useRef([]);\n const labelsRef = React.useRef([]);\n const popupRef = React.useRef(null);\n const inputRef = React.useRef(null);\n const startDismissRef = React.useRef(null);\n const endDismissRef = React.useRef(null);\n const emptyRef = React.useRef(null);\n const hadInputClearRef = React.useRef(false);\n const chipsContainerRef = React.useRef(null);\n const clearRef = React.useRef(null);\n const selectionEventRef = React.useRef(null);\n const lastHighlightRef = React.useRef(INITIAL_LAST_HIGHLIGHT);\n const pendingQueryHighlightRef = React.useRef(null);\n\n /**\n * Contains the currently visible list of item values post-filtering.\n */\n const valuesRef = React.useRef([]);\n /**\n * The item element that received the last `pointerdown`, used to detect whether a\n * `mouseup` on an item belongs to a drag-select gesture that started elsewhere.\n */\n const pointerDownItemRef = React.useRef(null);\n const disabled = fieldDisabled || disabledProp;\n const name = fieldName ?? nameProp;\n const multiple = selectionMode === 'multiple';\n const single = selectionMode === 'single';\n const hasInputValue = inputValueProp !== undefined || defaultInputValue !== undefined;\n const hasItems = items !== undefined;\n const hasFilteredItemsProp = filteredItemsProp !== undefined;\n let autoHighlightMode;\n if (autoHighlight === 'always') {\n autoHighlightMode = 'always';\n } else {\n autoHighlightMode = autoHighlight ? 'input-change' : false;\n }\n const [selectedValue, setSelectedValueUnwrapped] = useControlled({\n controlled: selectedValueProp,\n default: multiple ? defaultSelectedValue ?? EMPTY_ARRAY : defaultSelectedValue,\n name: 'Combobox',\n state: 'selectedValue'\n });\n const filter = React.useMemo(() => {\n if (filterProp === null) {\n return () => true;\n }\n if (filterProp !== undefined) {\n return filterProp;\n }\n // `shouldBypassFiltering` already empties the query whenever a single selection's label\n // matches it exactly, so the filter never needs a selection-aware variant here.\n return createCollatorItemFilter(collatorFilter, filterItemToString);\n }, [filterProp, collatorFilter, filterItemToString]);\n\n // If neither inputValue nor defaultInputValue are provided, derive it from the\n // selected value for single mode so the input reflects the selection on mount.\n const initialDefaultInputValue = useRefWithInit(() => {\n if (hasInputValue) {\n return defaultInputValue ?? '';\n }\n if (single) {\n return stringifyValueLabel(selectedValue);\n }\n return '';\n }).current;\n const [inputValue, setInputValueUnwrapped] = useControlled({\n controlled: inputValueProp,\n default: initialDefaultInputValue,\n name: 'Combobox',\n state: 'inputValue'\n });\n const [open, setOpenUnwrapped] = useControlled({\n controlled: openProp,\n default: defaultOpen,\n name: 'Combobox',\n state: 'open'\n });\n const isGrouped = isGroupedItems(items);\n const query = !open && closeQuery !== null ? closeQuery : String(inputValue).trim();\n const selectedLabelString = single ? stringifyValueLabel(selectedValue) : '';\n const shouldBypassFiltering = single && !queryChangedAfterOpen && query !== '' && selectedLabelString.length === query.length && collatorFilter.contains(selectedLabelString, query);\n const filterQuery = shouldBypassFiltering ? '' : filterQueryProp ?? query;\n const shouldIgnoreExternalFiltering = hasItems && hasFilteredItemsProp && shouldBypassFiltering && (!collection || collection.hasValue(selectedValue, isItemEqualToValue));\n const flatItems = React.useMemo(() => items ? flattenLeafItems(items) : EMPTY_ARRAY, [items]);\n const filteredItems = React.useMemo(() => {\n if (filteredItemsProp && !shouldIgnoreExternalFiltering) {\n return filteredItemsProp;\n }\n if (!items) {\n return EMPTY_ARRAY;\n }\n if (isGrouped) {\n const groupedItems = items;\n const resultingGroups = [];\n let currentCount = 0;\n for (const group of groupedItems) {\n if (limit > -1 && currentCount >= limit) {\n break;\n }\n const remainingLimit = limit > -1 ? limit - currentCount : Infinity;\n const itemsToTake = filterQuery === '' ? group.items.slice(0, remainingLimit) : [];\n if (filterQuery !== '') {\n for (const item of group.items) {\n if (itemsToTake.length >= remainingLimit) {\n break;\n }\n if (filter(item, filterQuery, filterItemToString)) {\n itemsToTake.push(item);\n }\n }\n }\n if (itemsToTake.length > 0) {\n const newGroup = {\n ...group,\n items: itemsToTake\n };\n resultingGroups.push(newGroup);\n currentCount += itemsToTake.length;\n }\n }\n return resultingGroups;\n }\n if (filterQuery === '') {\n return limit > -1 ? flatItems.slice(0, limit) :\n // The cast here is done as `flatItems` is readonly.\n // valuesRef.current, a mutable ref, can be set to `flatFilteredValues`, which may\n // reference this exact readonly value, creating a mutation risk.\n // However, <Combobox.Item> can never mutate this value as the mutating effect\n // bails early when `items` is provided, and this is only ever returned\n // when `items` is provided due to the early return at the top of this hook.\n flatItems;\n }\n const limitedItems = [];\n for (const item of flatItems) {\n if (limit > -1 && limitedItems.length >= limit) {\n break;\n }\n if (filter(item, filterQuery, filterItemToString)) {\n limitedItems.push(item);\n }\n }\n return limitedItems;\n }, [filteredItemsProp, shouldIgnoreExternalFiltering, items, isGrouped, filterQuery, limit, filter, filterItemToString, flatItems]);\n\n /**\n * The filtered items flattened across groups and projected to their selection values.\n */\n const flatFilteredValues = React.useMemo(() => {\n if (externalWindow && filteredItems === filteredItemsProp) {\n return externalWindow.values;\n }\n // Explicit type argument: inferring it from a union of both shapes resolves `Item` to\n // `Group<Item>`, which tsc rejects and tsgo does not.\n const flat = flattenLeafItems(filteredItems);\n return itemToValue ? flat.map(item => itemToValue(item)) : flat;\n }, [filteredItems, filteredItemsProp, externalWindow, itemToValue]);\n const store = useRefWithInit(() => {\n // An inline list open on the first render never gets a closed pass of the closed-state\n // sync effect below, and `items`-prop lists don't self-register their index the way\n // individually rendered `<Combobox.Item>`s do, so the selected item was never highlighted.\n // Seeding the index here lets list navigation highlight and scroll to the selection on\n // mount. Computed once by construction, so a selection or list that resolves after mount\n // doesn't move an existing highlight or scroll the list away.\n let initialSelectedIndex = null;\n if (inlineProp && open && hasItems && selectionMode !== 'none') {\n initialSelectedIndex = findSelectionIndex(flatFilteredValues, selectedValue, isItemEqualToValue, multiple);\n }\n return new ReactStore({\n id,\n labelId: undefined,\n selectedValue,\n open,\n items: storeItems,\n selectionMode,\n name,\n form,\n disabled,\n readOnly,\n required,\n grid,\n virtualized,\n openOnInputClick,\n itemToStringLabel,\n isItemEqualToValue,\n modal,\n autoHighlight: autoHighlightMode,\n submitOnItemClick,\n hasInputValue,\n mounted: false,\n forceMounted: false,\n transitionStatus: 'idle',\n inline: inlineProp,\n activeIndex: null,\n selectedIndex: initialSelectedIndex,\n popupProps: {},\n listProps: {},\n inputProps: {},\n triggerProps: {},\n itemRoot: {\n props: EMPTY_OBJECT,\n id,\n selectionMode,\n disabled,\n readOnly,\n isItemEqualToValue\n },\n positionerElement: null,\n listElement: null,\n popupId: undefined,\n triggerElement: null,\n inputElement: null,\n inputGroupElement: null,\n popupSide: null,\n openMethod: null,\n inputInsidePopup: true,\n // Avoid duplicate names in the server HTML. Popup inputs aren't rendered\n // until after hydration, so the hidden input takes over then if needed.\n inputOwnsFormValue: selectionMode === 'none'\n }, {\n // Placeholder callbacks replaced on first render\n onOpenChangeComplete: NOOP,\n setOpen: NOOP,\n setInputValue: NOOP,\n setSelectedValue: NOOP,\n setIndices: NOOP,\n handleSelection: NOOP,\n forceMount: NOOP,\n requestSubmit: NOOP,\n listRef,\n labelsRef,\n popupRef,\n emptyRef,\n inputRef,\n startDismissRef,\n endDismissRef,\n chipsContainerRef,\n clearRef,\n valuesRef,\n pointerDownItemRef,\n selectionEventRef\n }, selectors);\n }).current;\n const fieldRawValue = selectionMode === 'none' ? inputValue : selectedValue;\n const fieldStringValue = React.useMemo(() => {\n if (selectionMode === 'none') {\n return fieldRawValue;\n }\n if (Array.isArray(selectedValue)) {\n return selectedValue.map(value => stringifyAsValue(value, itemToStringValue));\n }\n return stringifyAsValue(selectedValue, itemToStringValue);\n }, [fieldRawValue, itemToStringValue, selectionMode, selectedValue]);\n const onItemHighlighted = useStableCallback(onItemHighlightedProp);\n const onOpenChangeComplete = useStableCallback(onOpenChangeCompleteProp);\n const activeIndex = store.useState('activeIndex');\n const selectedIndex = store.useState('selectedIndex');\n const positionerElement = store.useState('positionerElement');\n const listElement = store.useState('listElement');\n const triggerElement = store.useState('triggerElement');\n const inputElement = store.useState('inputElement');\n const inputGroupElement = store.useState('inputGroupElement');\n const inline = store.useState('inline');\n const inputInsidePopup = store.useState('inputInsidePopup');\n const inputOwnsFormValue = store.useState('inputOwnsFormValue');\n const inputMatchesSelectedValue = single && !inputInsidePopup && inputValue === selectedLabelString;\n const triggerRef = useValueAsRef(triggerElement);\n const {\n openMethod,\n triggerProps\n } = useOpenInteractionType(open);\n const getStringifiedValueForForm = useStableCallback(() => fieldStringValue);\n useRegisterFieldControl(inputInsidePopup ? triggerRef : inputRef, id, fieldRawValue, getStringifiedValueForForm, !disabled, nameProp);\n const forceMount = useStableCallback(() => {\n if (items) {\n // Ensure typeahead works on a closed list.\n labelsRef.current = flatFilteredValues.map(stringifyValueLabel);\n } else {\n store.set('forceMounted', true);\n }\n });\n\n /**\n * Emits `onItemHighlighted` for the item at `index`, or clears the highlight when `index` is `-1`\n * (a no-op if nothing was highlighted). Keeps `lastHighlightRef` in sync with what was emitted.\n */\n const emitHighlight = useStableCallback((value, index, type, event) => {\n if (index === -1) {\n if (lastHighlightRef.current === INITIAL_LAST_HIGHLIGHT) {\n return;\n }\n lastHighlightRef.current = INITIAL_LAST_HIGHLIGHT;\n } else {\n lastHighlightRef.current = {\n value,\n index\n };\n }\n onItemHighlighted(value, createGenericEventDetails(type, event, {\n index\n }));\n });\n const setIndices = useStableCallback(options => {\n const update = {};\n if (options.activeIndex !== undefined) {\n update.activeIndex = options.activeIndex;\n }\n if (options.selectedIndex !== undefined) {\n update.selectedIndex = options.selectedIndex;\n }\n store.update(update);\n const activeIndexOption = options.activeIndex;\n if (activeIndexOption === undefined) {\n return;\n }\n const type = options.type || REASONS.none;\n if (activeIndexOption === null) {\n emitHighlight(undefined, -1, type, options.event);\n } else {\n emitHighlight(valuesRef.current[activeIndexOption], activeIndexOption, type, options.event);\n }\n });\n const setInputValue = useStableCallback((next, eventDetails) => {\n props.onInputValueChange?.(next, eventDetails);\n if (eventDetails.isCanceled) {\n return;\n }\n\n // A canceled selection clear must not suppress close-completion cleanup.\n hadInputClearRef.current = eventDetails.reason === REASONS.inputClear;\n\n // If user is typing, ensure we don't auto-highlight on open due to a race\n // with the post-open effect that sets this flag.\n if (eventDetails.reason === REASONS.inputChange) {\n // A controlled popup may ignore a close request. Resuming input proves the popup\n // is remaining open, so release the query captured for an exit animation.\n if (open && closeQuery !== null) {\n setCloseQuery(null);\n }\n const event = eventDetails.event;\n const inputType = event.inputType;\n // Treat composition commits as typed input; autofill may omit `inputType` or\n // report `insertReplacementText`.\n const isTypedInput = event.type === 'compositionend' || inputType != null && inputType !== '' && inputType !== 'insertReplacementText';\n if (isTypedInput) {\n const hasQuery = next.trim() !== '';\n if (hasQuery) {\n setQueryChangedAfterOpen(true);\n }\n // Defer index updates until after the filtered items have been derived to ensure\n // `onItemHighlighted` receives the latest item.\n pendingQueryHighlightRef.current = {\n hasQuery\n };\n\n // Virtualized lists own their scroller. Reset regular lists directly so a stale\n // composite registry cannot select a reordered item and scrolling cannot escape\n // the popup.\n const list = store.state.listElement;\n if (!store.state.virtualized && list) {\n const popup = popupRef.current;\n for (const ancestor of getOverflowAncestors(list.firstElementChild ?? list)) {\n if (!isHTMLElement(ancestor) || (popup ? !contains(popup, ancestor) : ancestor.getAttribute('role') === 'dialog')) {\n break;\n }\n if (isScrollableY(ancestor)) {\n ancestor.scrollTop = 0;\n break;\n }\n }\n }\n if (hasQuery && autoHighlightMode && store.state.activeIndex == null && (open || inline)) {\n store.set('activeIndex', 0);\n }\n }\n } else if (eventDetails.reason === REASONS.inputClear && next === '' && store.state.inputInsidePopup) {\n // A programmatic clear of an active query (e.g. after selecting an item with the\n // input inside the popup): restore the highlight to the selected item.\n pendingQueryHighlightRef.current = {\n hasQuery: false,\n selection: true\n };\n }\n setInputValueUnwrapped(next);\n });\n const handleInterruptedReopen = useStableCallback(isInputChange => {\n // Preserve values supplied with the reopen rather than owned by the interrupted close.\n const clearsPendingInput = !isInputChange && inputInsidePopup && !inline && inputValue !== '' && (String(inputValue).trim() === closeQuery || inputValue === selectedLabelString);\n\n // Keep the flag while a visible filter survives so the `items` sync cannot overwrite it.\n if (!isInputChange && (clearsPendingInput || inputValue === '' || inputMatchesSelectedValue)) {\n setQueryChangedAfterOpen(false);\n }\n setCloseQuery(null);\n if (clearsPendingInput) {\n // Cleanup clears omit the selection flag and reopening gesture.\n setInputValue('', createChangeEventDetails(REASONS.inputClear));\n }\n });\n const [preventUnmountOnClose, setPreventUnmountOnClose] = React.useState(false);\n const setOpen = useStableCallback((nextOpen, eventDetails) => {\n if (open === nextOpen) {\n return;\n }\n\n // If the `Empty` component is not used, the positioner or popup should be hidden\n // with CSS. In this case, allow the Escape key to bubble to close a parent popup\n // if there are no items to show.\n if (eventDetails.reason === REASONS.escapeKey && hasItems && flatFilteredValues.length === 0 && !emptyRef.current) {\n eventDetails.allowPropagation();\n }\n const openEventDetails = eventDetails;\n const shouldPreventUnmountOnClose = attachPreventUnmountOnClose(openEventDetails);\n props.onOpenChange?.(nextOpen, openEventDetails);\n\n // A typed request must not highlight a later open: discard it when its own open is\n // rejected, or when any other open change goes through.\n if (pendingQueryHighlightRef.current?.hasQuery && eventDetails.reason === REASONS.inputChange === eventDetails.isCanceled) {\n pendingQueryHighlightRef.current = null;\n }\n if (eventDetails.isCanceled) {\n return;\n }\n if (nextOpen && closeQuery !== null) {\n // `ComboboxInput` calls `setInputValue` before `setOpen`, so on an input-change reopen\n // `inputValue` is still the pre-keystroke value and the typed filter always survives.\n handleInterruptedReopen(eventDetails.reason === REASONS.inputChange);\n }\n if (!nextOpen && queryChangedAfterOpen) {\n if (single) {\n if (!inline) {\n setCloseQuery(query);\n }\n // Avoid a flicker when closing the popup with an empty query.\n if (query === '') {\n setQueryChangedAfterOpen(false);\n }\n } else if (multiple) {\n if (!inline) {\n // Freeze the current query so filtering remains stable while exiting.\n setCloseQuery(query);\n }\n if (inputInsidePopup) {\n setIndices({\n activeIndex: null\n });\n }\n\n // Clear the input immediately on close while retaining filtering via closeQuery for exit animations\n // if the input is outside the popup. When the input is inside the popup, defer the clear until\n // unmount so the filtered list doesn't flash to unfiltered during the exit animation.\n if (!inputInsidePopup || inline) {\n setInputValue('', createChangeEventDetails(REASONS.inputClear, eventDetails.event, undefined, {\n isItemPress: eventDetails.reason === REASONS.itemPress\n }));\n }\n }\n }\n if (!nextOpen) {\n setPreventUnmountOnClose(shouldPreventUnmountOnClose());\n }\n setOpenUnwrapped(nextOpen);\n if (!nextOpen && inputInsidePopup && (eventDetails.reason === REASONS.focusOut || eventDetails.reason === REASONS.outsidePress)) {\n setTouched(true);\n setFocused(false);\n if (validationMode === 'onBlur') {\n const valueToValidate = selectionMode === 'none' ? inputValue : selectedValue;\n validation.commit(valueToValidate);\n }\n }\n });\n const setSelectedValue = useStableCallback((nextValue, eventDetails) => {\n // Cast to `any` due to conditional value type (single vs. multiple).\n // The runtime implementation already ensures the correct value shape.\n onSelectedValueChange?.(nextValue, eventDetails);\n if (eventDetails.isCanceled) {\n return;\n }\n setSelectedValueUnwrapped(nextValue);\n const shouldFillInput = selectionMode === 'none' && popupRef.current && fillInputOnItemPress || single && !store.state.inputInsidePopup;\n if (shouldFillInput) {\n setInputValue(stringifyValueLabel(nextValue), createChangeEventDetails(eventDetails.reason, eventDetails.event));\n }\n });\n const handleSelection = useStableCallback((event, itemValue) => {\n const targetEl = getTarget(event);\n const overrideEvent = selectionEventRef.current ?? event;\n selectionEventRef.current = null;\n const eventDetails = createChangeEventDetails(REASONS.itemPress, overrideEvent);\n\n // Let the link handle the click.\n const href = closest(targetEl, 'a')?.getAttribute('href');\n if (href) {\n if (href.startsWith('#')) {\n setOpen(false, eventDetails);\n }\n return;\n }\n if (multiple) {\n const currentSelectedValue = Array.isArray(selectedValue) ? selectedValue : [];\n const isCurrentlySelected = selectedValueIncludes(currentSelectedValue, itemValue, isItemEqualToValue);\n const nextValue = isCurrentlySelected ? removeItem(currentSelectedValue, itemValue, isItemEqualToValue) : [...currentSelectedValue, itemValue];\n setSelectedValue(nextValue, eventDetails);\n if (eventDetails.isCanceled) {\n return;\n }\n const wasFiltering = inputRef.current ? inputRef.current.value.trim() !== '' : false;\n if (!wasFiltering) {\n return;\n }\n if (store.state.inputInsidePopup) {\n setInputValue('', createChangeEventDetails(REASONS.inputClear, eventDetails.event, undefined, {\n isItemPress: true\n }));\n // A newly selected item stays highlighted through the clear; a deselection\n // falls back to the standard selection anchor.\n const pendingHighlight = pendingQueryHighlightRef.current;\n if (pendingHighlight && !isCurrentlySelected) {\n pendingHighlight.toggledValue = itemValue;\n }\n } else {\n setOpen(false, eventDetails);\n }\n } else {\n setSelectedValue(itemValue, eventDetails);\n if (eventDetails.isCanceled) {\n return;\n }\n setOpen(false, eventDetails);\n }\n });\n const requestSubmit = useStableCallback(() => {\n const formElement = validation.inputRef.current?.form ?? store.state.inputElement?.form;\n if (formElement && typeof formElement.requestSubmit === 'function') {\n formElement.requestSubmit();\n }\n });\n const handleUnmountCleanup = useStableCallback(() => {\n onOpenChangeComplete?.(false);\n setQueryChangedAfterOpen(false);\n setCloseQuery(null);\n if (selectionMode === 'none') {\n setIndices({\n activeIndex: null,\n selectedIndex: null\n });\n } else {\n setIndices({\n activeIndex: null\n });\n }\n\n // Multiple selection mode:\n // If the user typed a filter and didn't select in multiple mode, clear the input\n // after close completes to avoid mid-exit flicker and start fresh on next open.\n if (multiple && inputRef.current && inputRef.current.value !== '' && !hadInputClearRef.current) {\n setInputValue('', createChangeEventDetails(REASONS.inputClear));\n }\n\n // Single selection mode:\n // - If input is rendered inside the popup, clear it so the next open is blank\n // - If input is outside the popup, sync it to the selected value\n if (single) {\n if (store.state.inputInsidePopup) {\n if (inputRef.current && inputRef.current.value !== '') {\n setInputValue('', createChangeEventDetails(REASONS.inputClear));\n }\n } else {\n const stringVal = stringifyValueLabel(selectedValue);\n if (inputRef.current && inputRef.current.value !== stringVal) {\n // If no selection was made, treat this as clearing the typed filter.\n const reason = stringVal === '' ? REASONS.inputClear : REASONS.none;\n setInputValue(stringVal, createChangeEventDetails(reason));\n }\n }\n }\n });\n\n // Support composing the Dialog component around an inline combobox.\n // `[role=\"dialog\"]` is more interoperable than using a context, e.g. it can work\n // with third-party modal libraries, though the limitation is that the closest\n // `role=dialog` part must be the animated element.\n const resolvedPopupRef = React.useMemo(() => {\n if (inline && positionerElement) {\n return {\n current: closest(positionerElement, '[role=\"dialog\"]')\n };\n }\n return popupRef;\n }, [inline, positionerElement]);\n const {\n mounted,\n transitionStatus,\n forceUnmount: handleUnmount\n } = useUnmountAfterClose({\n open,\n ref: resolvedPopupRef,\n preventUnmountOnClose,\n setPreventUnmountOnClose,\n onUnmount: handleUnmountCleanup\n });\n React.useImperativeHandle(props.actionsRef, () => ({\n unmount: handleUnmount,\n close: () => setOpen(false, createChangeEventDetails(REASONS.imperativeAction))\n }), [handleUnmount, setOpen]);\n useIsoLayoutEffect(function syncSelectedIndex() {\n const closeQueryReleased = previousCloseQueryRef.current !== null && closeQuery === null;\n previousCloseQueryRef.current = closeQuery;\n\n // Closing indexes against the frozen filtered list. Reopening releases that query, so its\n // rendered coordinates must be synchronized again even though the popup is already open.\n if (open && (!closeQueryReleased || !hasItems)) {\n return;\n }\n\n // State-driven (not tied to the internal event path) so controlled closes\n // also clear a pointerdown that never received a matching item mouseup.\n if (!open) {\n pointerDownItemRef.current = null;\n }\n if (selectionMode === 'none') {\n return;\n }\n\n // Without `items`, look the selection up in the live registry of mounted item\n // values (the list stays mounted while closed when closed-state features need\n // it — trigger interaction and rendered-label autofill force-mount it). Mounted\n // items re-assert the index themselves when their registration moves; when\n // nothing is mounted the lookup resolves to `null` and each item re-registers\n // the index on the next open.\n // Keep the selected index in the coordinates of the list that is actually rendered.\n const registry = hasItems ? flatFilteredValues : valuesRef.current;\n setIndices({\n selectedIndex: findSelectionIndex(registry, selectedValue, isItemEqualToValue, multiple)\n });\n }, [open, closeQuery, selectedValue, selectionMode, multiple, hasItems, flatFilteredValues, isItemEqualToValue, setIndices]);\n useIsoLayoutEffect(() => {\n if (items) {\n valuesRef.current = flatFilteredValues;\n listRef.current.length = flatFilteredValues.length;\n }\n }, [items, flatFilteredValues]);\n useIsoLayoutEffect(() => {\n // Controlled closes can bypass `setOpen`, and their exit animation may be interrupted.\n if (!open && pendingQueryHighlightRef.current?.hasQuery) {\n pendingQueryHighlightRef.current = null;\n }\n }, [open]);\n useIsoLayoutEffect(() => {\n // A kept-mounted dialog hides its inline list on close. Discard query-clear restoration\n // before it can overwrite the cleared highlight or report an item from the unfiltered list.\n if (!open && inline && resolvedPopupRef.current) {\n pendingQueryHighlightRef.current = null;\n return;\n }\n const candidateItems = hasItems || hasFilteredItemsProp ? flatFilteredValues : valuesRef.current;\n const pendingHighlight = pendingQueryHighlightRef.current;\n if (pendingHighlight) {\n // A directly rendered list remains visible when the popup state is closed, while a\n // kept-mounted Positioner is hidden and should stay inert.\n const listIsNavigable = open || inline || store.state.positionerElement?.hidden === false;\n if (pendingHighlight.hasQuery) {\n const input = inputRef.current;\n // Keep the request while results or a controlled popup opening are pending,\n // but do not restore an inline highlight after focus has left the input.\n if (!autoHighlightMode || String(inputValue).trim() === '' || inline && autoHighlightMode !== 'always' && (!input || activeElement(input.ownerDocument) !== input)) {\n pendingQueryHighlightRef.current = null;\n } else if (listIsNavigable && (\n // Individually rendered items register without re-running this effect, and their\n // registry has holes mid-reindex, so resolve their request immediately.\n candidateItems[0] !== undefined || !hasItems && !hasFilteredItemsProp)) {\n store.set('activeIndex', 0);\n pendingQueryHighlightRef.current = null;\n }\n } else if (String(inputValue).trim() === '') {\n // Only handle the clear once it has committed (a controlled input may reject it),\n // so a restore cannot fire while a query is still active.\n pendingQueryHighlightRef.current = null;\n if (listIsNavigable) {\n const clearedBySelection = pendingHighlight.selection;\n if (autoHighlightMode === 'always' && !clearedBySelection && store.state.selectionMode === 'none') {\n // There is no selection to restore in Autocomplete. Keep the first-item reset\n // synchronous so list navigation sees it before a directly rendered list closes.\n store.set('activeIndex', 0);\n }\n\n // Items re-mounted by the clear publish their composite indices in a follow-up\n // commit, so the item registries are mid-update here. Defer past React's cascade.\n queueMicrotask(() => {\n if (!store.state.open && (!store.state.inline || resolvedPopupRef.current) || inputRef.current && inputRef.current.value.trim() !== '') {\n return;\n }\n\n // Return the highlight to the selected item, the same anchor the popup uses\n // when it first opens. Read the selection through the store so consumers can\n // pass an inline `isItemEqualToValue` or a fresh `selectedValue` array without\n // re-running this effect on every render.\n const currentSelectedValue = store.state.selectedValue;\n const isMultiple = store.state.selectionMode === 'multiple';\n const hasSelection = isMultiple && Array.isArray(currentSelectedValue) ? currentSelectedValue.length > 0 : store.state.selectionMode !== 'none' && currentSelectedValue != null;\n if (hasSelection) {\n const registry = hasItems || hasFilteredItemsProp ? flatFilteredValues : valuesRef.current;\n // A selection-driven clear keeps the just-selected item highlighted;\n // otherwise return to the open anchor. A selection that is no longer in\n // the list drops the highlight rather than leaving it on whichever item\n // now occupies that index.\n // `findItemIndex` resolves to -1 when no value was toggled.\n const toggledIndex = findItemIndex(registry, pendingHighlight.toggledValue, store.state.isItemEqualToValue);\n store.set('activeIndex', toggledIndex !== -1 ? toggledIndex : findSelectionIndex(registry, currentSelectedValue, store.state.isItemEqualToValue, isMultiple));\n } else if (clearedBySelection) {\n store.set('activeIndex', null);\n } else if (autoHighlightMode === 'always') {\n store.set('activeIndex', 0);\n }\n });\n }\n }\n }\n if (!open && !inline) {\n return;\n }\n const storeActiveIndex = store.state.activeIndex;\n if (storeActiveIndex == null) {\n if (autoHighlightMode === 'always' && candidateItems.length > 0) {\n store.set('activeIndex', 0);\n return;\n }\n emitHighlight(undefined, -1, REASONS.none);\n return;\n }\n if (storeActiveIndex >= candidateItems.length) {\n emitHighlight(undefined, -1, REASONS.none);\n store.set('activeIndex', null);\n return;\n }\n const itemValue = candidateItems[storeActiveIndex];\n const previouslyHighlightedItemValue = lastHighlightRef.current.value;\n const isSameItem = previouslyHighlightedItemValue !== NO_ACTIVE_VALUE && compareItemEquality(itemValue, previouslyHighlightedItemValue, store.state.isItemEqualToValue);\n if (lastHighlightRef.current.index !== storeActiveIndex || !isSameItem) {\n emitHighlight(itemValue, storeActiveIndex, REASONS.none);\n }\n }, [activeIndex, autoHighlightMode, emitHighlight, hasFilteredItemsProp, hasItems, flatFilteredValues, inline, open, resolvedPopupRef, store,\n // Reruns the effect when the query changes without affecting the deps above, such as\n // clearing the input when no items are filtered out (individually rendered items).\n inputValue]);\n useIsoLayoutEffect(() => {\n if (selectionMode === 'none') {\n setFilled(String(inputValue) !== '');\n return;\n }\n setFilled(multiple ? Array.isArray(selectedValue) && selectedValue.length > 0 : selectedValue != null);\n }, [setFilled, selectionMode, inputValue, selectedValue, multiple]);\n\n // Ensures that the active index is not set to 0 when the list is empty.\n // This avoids needing to press ArrowDown twice under certain conditions.\n React.useEffect(() => {\n if (hasItems && autoHighlightMode && flatFilteredValues.length === 0) {\n setIndices({\n activeIndex: null\n });\n }\n }, [hasItems, autoHighlightMode, flatFilteredValues.length, setIndices]);\n function handleQueryChanged() {\n if (open && query !== '' && query !== String(initialDefaultInputValue) && !inputMatchesSelectedValue) {\n setQueryChangedAfterOpen(true);\n }\n }\n function handleOpenChanged() {\n // A controlled `open` prop can interrupt the close without calling `setOpen`.\n if (open && closeQuery !== null) {\n handleInterruptedReopen(false);\n }\n }\n\n // These sync triggers can run in the same commit while still seeing the pre-commit `inputValue`.\n // This render-scoped flag prevents duplicate callbacks and resets so canceled writes can retry.\n let syncedSelectedLabel = false;\n function syncInputToSelectedLabel() {\n if (!syncedSelectedLabel && inputValue !== selectedLabelString) {\n syncedSelectedLabel = true;\n setInputValue(selectedLabelString, createChangeEventDetails(REASONS.none));\n }\n }\n function handleSelectedValueChanged() {\n if (selectionMode === 'none') {\n return;\n }\n clearErrors(name);\n setDirty(isSelectedValueDirty(selectedValue, validityData.initialValue, isItemEqualToValue));\n validation.change(selectedValue);\n if (single && !hasInputValue && !inputInsidePopup) {\n syncInputToSelectedLabel();\n }\n }\n\n // The label catches accessor changes while the items identity restores the selected label after\n // a one-step input clear followed by a data reload. The shared sync prevents duplicate writes\n // when both change in the same commit.\n function syncInputAfterItemsOrLabelChange() {\n if (single && !hasInputValue && !inputInsidePopup && !queryChangedAfterOpen) {\n syncInputToSelectedLabel();\n }\n }\n function handleInputValueChanged() {\n if (selectionMode !== 'none') {\n return;\n }\n clearErrors(name);\n setDirty(inputValue !== validityData.initialValue);\n validation.change(inputValue);\n }\n useValueChanged(query, handleQueryChanged);\n useValueChanged(open, handleOpenChanged);\n useValueChanged(selectedValue, handleSelectedValueChanged);\n useValueChanged(selectedLabelString, syncInputAfterItemsOrLabelChange);\n useValueChanged(items, syncInputAfterItemsOrLabelChange);\n useValueChanged(inputValue, handleInputValueChanged);\n const floatingRootContext = useFloatingRootContext({\n open: inline ? true : open,\n onOpenChange: setOpen,\n elements: {\n reference: inputInsidePopup ? triggerElement : inputElement,\n floating: positionerElement\n }\n });\n const ariaHasPopup = grid ? 'grid' : 'listbox';\n // An inline list isn't gated on `open`: it renders for as long as it's in the tree, so the\n // combobox is permanently expanded even while the internal open state is `false`.\n const expanded = open || inline;\n const ariaExpanded = expanded ? 'true' : 'false';\n const role = React.useMemo(() => {\n const isPlainInput = inputElement?.tagName === 'INPUT';\n // During SSR and initial hydration, the input ref is not available yet.\n // Assume an input-like control so combobox ARIA attributes are present.\n const shouldTreatAsInput = inputElement == null || isPlainInput;\n // A non-input control only takes on combobox semantics while the list is exposed, which for\n // an inline list is the whole time.\n const shouldApplyAria = shouldTreatAsInput || expanded;\n const reference = shouldTreatAsInput ? {\n autoComplete: 'off',\n spellCheck: 'false',\n autoCorrect: 'off',\n autoCapitalize: 'none'\n } : {};\n if (shouldApplyAria) {\n reference.role = 'combobox';\n reference['aria-expanded'] = ariaExpanded;\n reference['aria-haspopup'] = ariaHasPopup;\n reference['aria-controls'] = expanded ? listElement?.id : undefined;\n // `readOnly` accepts no input, so no completion of any kind is offered.\n reference['aria-autocomplete'] = readOnly ? 'none' : autoComplete;\n }\n return {\n reference,\n floating: {\n role: 'presentation'\n }\n };\n }, [inputElement, expanded, ariaExpanded, ariaHasPopup, listElement?.id, autoComplete, readOnly]);\n\n // `readOnly` locks the value, not the interaction: the popup opens and can be browsed.\n // Value changes stay blocked in `ComboboxItem`, `ComboboxInput`'s keydown, `ComboboxTrigger`'s\n // typeahead, the clear/remove parts, and the hidden input's autofill handler.\n const click = useClick(floatingRootContext, {\n enabled: !disabled && openOnInputClick,\n event: 'mousedown-only',\n toggle: false,\n // Apply a small delay for touch to let mobile viewport/keyboard positioning settle.\n // This avoids top-bottom flip flickers if the preferred position is \"top\" when first tapping.\n touchOpenDelay: inputInsidePopup ? 0 : 100,\n reason: REASONS.inputPress\n });\n const dismiss = useDismiss(floatingRootContext, {\n enabled: !disabled && !inline,\n outsidePressEvent: {\n mouse: 'sloppy',\n // The visual viewport (affected by the mobile software keyboard) can be\n // somewhat small. The user may want to scroll the screen to see more of\n // the popup.\n touch: 'intentional'\n },\n // Without a popup, let the Escape key bubble the event up to other popups' handlers.\n bubbles: inline ? true : undefined,\n outsidePress(event) {\n const target = getTarget(event);\n return !contains(triggerElement, target) && !contains(clearRef.current, target) && !contains(chipsContainerRef.current, target) && !contains(inputGroupElement, target);\n }\n });\n const listNavigation = useListNavigation(floatingRootContext, {\n enabled: !disabled,\n id,\n listRef,\n activeIndex,\n selectedIndex,\n virtual: true,\n loopFocus,\n allowEscape: loopFocus && !autoHighlightMode,\n focusItemOnOpen: queryChangedAfterOpen || selectionMode === 'none' && !autoHighlightMode ? false : 'auto',\n focusItemOnHover: highlightItemOnHover,\n resetOnPointerLeave: !keepHighlight,\n orientation: grid ? 'horizontal' : undefined,\n rtl: direction === 'rtl',\n disabledIndices: EMPTY_ARRAY,\n grid: grid ? gridNavigation : undefined,\n onNavigate(nextActiveIndex, event) {\n // Ignore automatic navigation while closed, including selected-index sync for inline lists.\n // Inline lists remain navigable while `open` is false, so still allow resets (clearing the\n // highlight when an unbound inline list unmounts, e.g. in a closed dialog).\n if (!event && !open && !(inline && nextActiveIndex === null) || transitionStatus === 'ending') {\n return;\n }\n setIndices({\n activeIndex: nextActiveIndex,\n type: getHighlightReason(event),\n event: event?.nativeEvent\n });\n }\n });\n const inputProps = React.useMemo(() => mergeProps(listNavigation.reference, {\n onKeyDown(event) {\n // In grid mode the navigation hook treats ArrowLeft/ArrowRight as horizontal\n // grid movement. When the input has focus and no item is highlighted the user\n // is still editing the query, so let the input keep its native caret behavior.\n if (grid && store.state.activeIndex == null && (event.key === 'ArrowLeft' || event.key === 'ArrowRight')) {\n event.preventBaseUIHandler();\n }\n }\n }, dismiss.reference, click.reference, role.reference), [listNavigation.reference, dismiss.reference, click.reference, role.reference, grid, store]);\n const popupProps = React.useMemo(() => mergeProps(FOCUSABLE_POPUP_PROPS, dismiss.floating), [dismiss.floating]);\n const listProps = React.useMemo(() => mergeProps(listNavigation.floating, role.floating), [listNavigation.floating, role.floating]);\n const itemRoot = React.useMemo(() => {\n const listNavigationItemProps = listNavigation.item;\n return {\n // Combobox keeps focus on the input; item focus would incorrectly sync\n // list navigation state from DOM focus.\n props: listNavigationItemProps ? {\n ...listNavigationItemProps,\n onFocus: undefined\n } : EMPTY_OBJECT,\n id,\n selectionMode,\n disabled,\n readOnly,\n isItemEqualToValue\n };\n }, [listNavigation.item, id, selectionMode, disabled, readOnly, isItemEqualToValue]);\n store.useContextCallback('setOpen', setOpen);\n store.useContextCallback('setInputValue', setInputValue);\n store.useContextCallback('setSelectedValue', setSelectedValue);\n store.useContextCallback('setIndices', setIndices);\n store.useContextCallback('handleSelection', handleSelection);\n store.useContextCallback('forceMount', forceMount);\n store.useContextCallback('requestSubmit', requestSubmit);\n store.useContextCallback('onOpenChangeComplete', onOpenChangeCompleteProp);\n\n // The prop bags must be in the store before the parts render: they read them with `useStore`\n // during render, and a layout effect commits only after all children have rendered.\n useOnFirstRender(() => {\n store.update({\n inline: inlineProp,\n popupProps,\n listProps,\n inputProps,\n triggerProps,\n itemRoot\n });\n });\n const syncedValues = {\n id,\n selectedValue,\n open,\n mounted,\n transitionStatus,\n items: storeItems,\n inline: inlineProp,\n popupProps,\n listProps,\n inputProps,\n triggerProps,\n itemRoot,\n openMethod,\n selectionMode,\n name,\n form,\n disabled,\n readOnly,\n required,\n grid,\n virtualized,\n openOnInputClick,\n itemToStringLabel,\n modal,\n autoHighlight: autoHighlightMode,\n isItemEqualToValue,\n submitOnItemClick,\n hasInputValue\n };\n useIsoLayoutEffect(() => {\n // `inputOwnsFormValue` is derived here rather than during render because `ComboboxInput`\n // writes it from a ref callback earlier in the same commit, and it has to land in this same\n // `update` so subscribers never observe an intermediate snapshot. That is also why\n // `store.useSyncedValues` can't be used yet: it would need a second write. The dependencies\n // are derived from `syncedValues` so a newly synchronized field can't be forgotten here.\n store.update({\n ...syncedValues,\n inputOwnsFormValue: selectionMode === 'none' && (inlineProp || !store.state.inputInsidePopup)\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [store, ...Object.values(syncedValues)]);\n const hiddenInputRef = useMergedRefs(inputRefProp, validation.inputRef);\n const itemsContextValue = React.useMemo(() => ({\n query,\n hasItems,\n filteredItems,\n flatFilteredValues\n }), [query, hasItems, filteredItems, flatFilteredValues]);\n const serializedValue = React.useMemo(() => {\n if (Array.isArray(fieldRawValue)) {\n return '';\n }\n return stringifyAsValue(fieldRawValue, itemToStringValue);\n }, [fieldRawValue, itemToStringValue]);\n const hasMultipleSelection = multiple && Array.isArray(selectedValue) && selectedValue.length > 0;\n const hiddenInputName = multiple || selectionMode === 'none' && inputOwnsFormValue ? undefined : name;\n const hiddenInputs = React.useMemo(() => {\n if (!multiple || !Array.isArray(selectedValue) || !name) {\n return null;\n }\n return selectedValue.map(value => {\n const currentSerializedValue = stringifyAsValue(value, itemToStringValue);\n return /*#__PURE__*/_jsx(\"input\", {\n type: \"hidden\",\n form: form,\n name: name,\n value: currentSerializedValue,\n disabled: disabled\n }, currentSerializedValue);\n });\n }, [multiple, selectedValue, form, name, itemToStringValue, disabled]);\n const children = /*#__PURE__*/_jsxs(React.Fragment, {\n children: [props.children, /*#__PURE__*/_jsx(\"input\", {\n ...validation.getValidationProps(disabled, {\n // Move focus when the hidden input is focused.\n onFocus() {\n if (inputInsidePopup) {\n triggerElement?.focus();\n return;\n }\n (inputRef.current || triggerElement)?.focus();\n },\n // Handle browser autofill.\n onChange(event) {\n // Workaround for https://github.com/react/react/issues/9023\n if (event.nativeEvent.defaultPrevented || disabled || readOnly) {\n return;\n }\n const nextValue = event.currentTarget.value;\n const nextValueLower = nextValue.toLowerCase();\n const details = createChangeEventDetails(REASONS.none, event.nativeEvent);\n const findSerializedMatchIndex = () => valuesRef.current.findIndex(candidate => stringifyAsValue(candidate, itemToStringValue).toLowerCase() === nextValueLower || stringifyValueLabel(candidate).toLowerCase() === nextValueLower);\n function handleChange() {\n // Browser autofill only writes a single scalar value.\n if (multiple) {\n return;\n }\n if (selectionMode === 'none') {\n setInputValue(nextValue, details);\n return;\n }\n\n // Preserve the original serialized matching, then fall back to rendered text,\n // which browsers can autofill for primitive values like `value=\"US\">United States`.\n let matchingIndex = findSerializedMatchIndex();\n if (matchingIndex === -1) {\n matchingIndex = valuesRef.current.findIndex((_, index) => {\n const renderedLabel = labelsRef.current[index];\n return renderedLabel != null && renderedLabel.toLowerCase() === nextValueLower;\n });\n }\n const matchingValue = matchingIndex === -1 ? undefined : valuesRef.current[matchingIndex];\n if (matchingValue != null) {\n // `setSelectedValue` may be canceled by `onValueChange`; rely on\n // `useValueChanged` to mark the field dirty and run validation only\n // when the value actually changes.\n setSelectedValue?.(matchingValue, details);\n }\n }\n\n // Only single-selection autofill matches against the registered values/labels.\n // `multiple` ignores autofill and `none` just writes the input value, so avoid the\n // sticky `forceMounted` mount (which never resets) for those modes.\n if (single) {\n forceMount();\n if (items && findSerializedMatchIndex() === -1) {\n // `forceMount` only refreshes the derived labels for the `items` prop. When\n // serialized matching misses, also mount the list so rendered labels (which can\n // differ from the serialized values) are registered for autofill matching.\n store.set('forceMounted', true);\n }\n }\n queueMicrotask(handleChange);\n }\n }),\n id: id && hiddenInputName == null ? `${id}-hidden-input` : undefined,\n form: form,\n name: hiddenInputName,\n autoComplete: formAutoComplete,\n disabled: disabled,\n required: required && !hasMultipleSelection,\n readOnly: readOnly,\n value: serializedValue,\n ref: hiddenInputRef,\n style: hiddenInputName ? visuallyHiddenInput : visuallyHidden,\n tabIndex: -1,\n \"aria-hidden\": true,\n suppressHydrationWarning: true\n }), hiddenInputs]\n });\n return /*#__PURE__*/_jsx(ComboboxRootContext.Provider, {\n value: store,\n children: /*#__PURE__*/_jsx(ComboboxFloatingContext.Provider, {\n value: floatingRootContext,\n children: /*#__PURE__*/_jsx(ComboboxHasItemsContext.Provider, {\n value: hasItems,\n children: /*#__PURE__*/_jsx(ComboboxDerivedItemsContext.Provider, {\n value: itemsContextValue,\n children: /*#__PURE__*/_jsx(ComboboxInputValueContext.Provider, {\n value: inputValue,\n children: children\n })\n })\n })\n })\n });\n}","export const NO_ACTIVE_VALUE = Symbol('none');\nexport const INITIAL_LAST_HIGHLIGHT = {\n value: NO_ACTIVE_VALUE,\n index: -1\n};","import { compareItemEquality, defaultItemEquality } from \"../../internals/itemEquality.mjs\";\nexport function findCollectionItem(valueToItem, itemValue, isEqual) {\n const exactItem = valueToItem.get(itemValue);\n if (exactItem !== undefined || isEqual === defaultItemEquality) {\n return exactItem;\n }\n for (const [derivedValue, item] of valueToItem) {\n if (compareItemEquality(derivedValue, itemValue, isEqual)) {\n return item;\n }\n }\n return undefined;\n}\n\n/**\n * An opaque collection created by `createItems()`.\n *\n * It carries the source item and derived value types so the root can infer the list item and\n * selection value types.\n *\n * Pass it directly to the root's `items` prop; it has no public members.\n */\n\n/**\n * Internal shape of a collection. The extra members let the root project items to\n * their values and resolve a selected value back to its label while items are unmounted.\n */","'use client';\n\nimport * as React from 'react';\nimport { error } from '@base-ui/utils/error';\nimport { SafeReact } from '@base-ui/utils/safeReact';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useFieldRootContext } from \"../../internals/field-root-context/FieldRootContext.mjs\";\nimport { fieldValidityMapping } from \"../../internals/field-constants/constants.mjs\";\nimport { useLabel } from \"../../internals/labelable-provider/useLabel.mjs\";\nimport { getDefaultLabelId } from \"../../utils/resolveAriaLabelledBy.mjs\";\nimport { useComboboxRootContext } from \"../root/ComboboxRootContext.mjs\";\n\n/**\n * An accessible label that is automatically associated with the combobox trigger.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nexport const ComboboxLabel = /*#__PURE__*/React.forwardRef(function ComboboxLabel(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n ...elementProps\n } = componentProps;\n // Keep label id derived from the root and ignore runtime `id` overrides from untyped consumers.\n const elementPropsWithoutId = elementProps;\n delete elementPropsWithoutId.id;\n const fieldRootContext = useFieldRootContext();\n const store = useComboboxRootContext();\n const inputInsidePopup = store.useState('inputInsidePopup');\n const triggerElement = store.useState('triggerElement');\n const inputElement = store.useState('inputElement');\n const rootId = store.useState('id');\n const defaultLabelId = getDefaultLabelId(rootId);\n const localControlId = triggerElement?.id ?? (inputInsidePopup ? rootId : undefined);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n if (!inputElement || inputInsidePopup) {\n return;\n }\n const ownerStackMessage = SafeReact.captureOwnerStack?.() || '';\n const message = '<Combobox.Label> labels <Combobox.Trigger> only. ' + 'When <Combobox.Input> is the form control, use a native <label> or <Field.Label> instead.';\n error(`${message}${ownerStackMessage}`);\n }, [inputElement, inputInsidePopup]);\n }\n const labelProps = useLabel({\n id: defaultLabelId,\n fallbackControlId: localControlId,\n setLabelId(nextLabelId) {\n const resolvedLabelId = typeof nextLabelId === 'function' ? nextLabelId(store.state.labelId) : nextLabelId;\n store.set('labelId', resolvedLabelId);\n }\n });\n return useRenderElement('div', componentProps, {\n ref: forwardedRef,\n state: fieldRootContext.state,\n props: [labelProps, elementProps],\n stateAttributesMapping: fieldValidityMapping\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxLabel.displayName = \"ComboboxLabel\";","'use client';\n\nimport { isHTMLElement, isShadowRoot } from '@floating-ui/utils/dom';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { closest, getTarget } from \"../../floating-ui-react/utils.mjs\";\nimport { useRegisteredLabelId } from \"../../utils/useRegisteredLabelId.mjs\";\nimport { useLabelableContext } from \"./LabelableContext.mjs\";\nexport function useLabel(params = {}) {\n const {\n id: idProp,\n fallbackControlId,\n native = false,\n setLabelId: setLabelIdProp,\n focusControl: focusControlProp\n } = params;\n const {\n controlId: contextControlId,\n setLabelId: setContextLabelId\n } = useLabelableContext();\n const syncLabelId = useStableCallback(nextLabelId => {\n setContextLabelId(nextLabelId);\n setLabelIdProp?.(nextLabelId);\n });\n const id = useRegisteredLabelId(idProp, syncLabelId);\n const resolvedControlId = contextControlId ?? fallbackControlId;\n function focusControl(event) {\n if (focusControlProp) {\n focusControlProp(event, resolvedControlId);\n return;\n }\n if (!resolvedControlId) {\n return;\n }\n const controlElement = getControlById(event.currentTarget, resolvedControlId);\n if (isHTMLElement(controlElement)) {\n focusElementWithVisible(controlElement);\n }\n }\n function handleInteraction(event) {\n const target = getTarget(event.nativeEvent);\n if (closest(target, 'button,input,select,textarea')) {\n return;\n }\n\n // Prevent text selection when double clicking label.\n if (!event.defaultPrevented && event.detail > 1) {\n event.preventDefault();\n }\n if (native) {\n return;\n }\n focusControl(event);\n }\n return native ? {\n id,\n htmlFor: resolvedControlId,\n onMouseDown: handleInteraction\n } : {\n id,\n onClick: handleInteraction,\n onPointerDown(event) {\n event.preventDefault();\n }\n };\n}\nexport function getControlById(label, id) {\n let root = label.getRootNode();\n while (isShadowRoot(root)) {\n const element = root.getElementById(id);\n if (element) {\n return element;\n }\n root = root.host.getRootNode();\n }\n return ownerDocument(label).getElementById(id);\n}\nexport function focusElementWithVisible(element) {\n element.focus({\n // Available from Chrome 144+ (January 2026).\n // Safari and Firefox already support it.\n focusVisible: true\n });\n}","'use client';\n\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useBaseUiId } from \"../internals/useBaseUiId.mjs\";\nexport function useRegisteredLabelId(idProp, setLabelId) {\n const id = useBaseUiId(idProp);\n useIsoLayoutEffect(() => {\n setLabelId(id);\n return () => {\n setLabelId(currentId => currentId === id ? undefined : currentId);\n };\n }, [id, setLabelId]);\n return id;\n}","'use client';\n\nexport function getDefaultLabelId(id) {\n return id == null ? undefined : `${id}-label`;\n}\nexport function resolveAriaLabelledBy(fieldLabelId, localLabelId) {\n return fieldLabelId ?? localLabelId;\n}","'use client';\n\nimport * as React from 'react';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { platform } from '@base-ui/utils/platform';\nimport { useBaseUiId } from \"../../internals/useBaseUiId.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useComboboxInputValueContext, useComboboxRootContext } from \"../root/ComboboxRootContext.mjs\";\nimport { triggerStateAttributesMapping } from \"../utils/stateAttributesMapping.mjs\";\nimport { DEFAULT_FIELD_ROOT_CONTEXT, FieldRootContext, useFieldRootContext } from \"../../internals/field-root-context/FieldRootContext.mjs\";\nimport { useSetFieldFocused } from \"../../internals/field-root-context/useSetFieldFocused.mjs\";\nimport { DEFAULT_FIELD_STATE_ATTRIBUTES } from \"../../internals/field-constants/constants.mjs\";\nimport { useLabelableContext } from \"../../internals/labelable-provider/LabelableContext.mjs\";\nimport { useComboboxChipsContext } from \"../chips/ComboboxChipsContext.mjs\";\nimport { stopEvent } from \"../../floating-ui-react/utils.mjs\";\nimport { useComboboxPositionerContext } from \"../positioner/ComboboxPositionerContext.mjs\";\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { getHighlightReason } from \"../../utils/getHighlightReason.mjs\";\nimport { useDirection } from \"../../internals/direction-context/DirectionContext.mjs\";\nimport { ComboboxInternalDismissButton } from \"../utils/ComboboxInternalDismissButton.mjs\";\nimport { clickHighlightedItem, getChipNavigationKeys, useListEmpty, usePopupSide } from \"../utils/parts.mjs\";\n\n/**\n * A text input to search for items in the list.\n * Renders an `<input>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const ComboboxInput = /*#__PURE__*/React.forwardRef(function ComboboxInput(componentProps, forwardedRef) {\n const {\n render,\n className,\n disabled: disabledProp = false,\n id: idProp,\n style,\n ...elementProps\n } = componentProps;\n const {\n state: fieldState,\n disabled: fieldDisabled,\n setTouched,\n validationMode,\n validation\n } = useFieldRootContext();\n const {\n labelId: fieldLabelId\n } = useLabelableContext();\n const comboboxChipsContext = useComboboxChipsContext();\n const positioning = useComboboxPositionerContext(true);\n const hasPositionerParent = Boolean(positioning);\n const store = useComboboxRootContext();\n // `inputValue` can't be placed in the store.\n // https://github.com/mui/base-ui/issues/2703\n const inputValue = useComboboxInputValueContext();\n const direction = useDirection();\n const required = store.useState('required');\n const comboboxDisabled = store.useState('disabled');\n const readOnly = store.useState('readOnly');\n const name = store.useState('name');\n const form = store.useState('form');\n const selectionMode = store.useState('selectionMode');\n const autoHighlightMode = store.useState('autoHighlight');\n const inputProps = store.useState('inputProps');\n const triggerProps = store.useState('triggerProps');\n const open = store.useState('open');\n const mounted = store.useState('mounted');\n const selectedValue = store.useState('selectedValue');\n const rootId = store.useState('id');\n const inline = store.useState('inline');\n const modal = store.useState('modal');\n const autoHighlightEnabled = Boolean(autoHighlightMode);\n const popupSide = usePopupSide(store);\n const disabled = fieldDisabled || comboboxDisabled || disabledProp;\n const listEmpty = useListEmpty();\n const setFocused = useSetFieldFocused(disabled, store.context.inputRef);\n const isInsidePopup = hasPositionerParent || inline;\n const focusManagerModal = !isInsidePopup || modal;\n const id = useBaseUiId(idProp ?? (!isInsidePopup ? rootId : undefined));\n const fieldStateForInput = hasPositionerParent ? DEFAULT_FIELD_STATE_ATTRIBUTES : fieldState;\n const [composingValue, setComposingValue] = React.useState(null);\n const isComposingRef = React.useRef(false);\n const lastActiveIndexRef = React.useRef(null);\n\n // Restore the saved highlight on refocus only within the same open cycle.\n useIsoLayoutEffect(() => {\n if (!open) {\n lastActiveIndexRef.current = null;\n }\n }, [open]);\n const inputOwnsFormValue = selectionMode === 'none' && !hasPositionerParent;\n const setInputElement = useStableCallback(element => {\n const nextIsInsidePopup = hasPositionerParent || store.state.inline;\n if (nextIsInsidePopup && !store.state.hasInputValue) {\n store.context.setInputValue('', createChangeEventDetails(REASONS.none));\n }\n store.update({\n inputElement: element,\n inputInsidePopup: nextIsInsidePopup,\n inputOwnsFormValue\n });\n });\n const validationProps = hasPositionerParent ? elementProps : validation.getValidationProps(disabled, elementProps);\n function clearHighlight(event) {\n store.context.setIndices({\n activeIndex: null,\n selectedIndex: null,\n type: getHighlightReason(event),\n event\n });\n }\n const state = {\n ...fieldStateForInput,\n open,\n disabled,\n readOnly,\n popupSide,\n listEmpty\n };\n function handleKeyDown(event) {\n if (!comboboxChipsContext) {\n return undefined;\n }\n let nextIndex;\n const renderedChipsCount = comboboxChipsContext.chipsRef.current.length;\n const [previousChipKey] = getChipNavigationKeys(direction);\n if (event.key === previousChipKey && (event.currentTarget.selectionStart ?? 0) === 0 && selectedValue.length > 0) {\n event.preventDefault();\n nextIndex = renderedChipsCount > 0 ? renderedChipsCount - 1 : undefined;\n }\n return nextIndex;\n }\n const element = useRenderElement('input', componentProps, {\n state,\n ref: [forwardedRef, store.context.inputRef, setInputElement],\n props: [inputProps, triggerProps, {\n value: composingValue ?? inputValue,\n 'aria-readonly': readOnly || undefined,\n 'aria-required': required || undefined,\n 'aria-labelledby': fieldLabelId,\n disabled,\n readOnly,\n required: selectionMode === 'none' ? required : undefined,\n form,\n ...(inputOwnsFormValue && name && {\n name\n }),\n id,\n onFocus() {\n setFocused(true);\n if (!inline) {\n return;\n }\n const nextActiveIndex = lastActiveIndexRef.current;\n lastActiveIndexRef.current = null;\n if (nextActiveIndex == null ||\n // `valuesRef` can be sparse, so guard against restoring a removed slot.\n !Object.hasOwn(store.context.valuesRef.current, nextActiveIndex)) {\n return;\n }\n store.context.setIndices({\n activeIndex: nextActiveIndex\n });\n },\n onBlur() {\n setTouched(true);\n setFocused(false);\n const activeIndex = store.state.activeIndex;\n if (inline && activeIndex !== null && autoHighlightMode !== 'always') {\n lastActiveIndexRef.current = activeIndex;\n store.context.setIndices({\n activeIndex: null\n });\n }\n if (validationMode === 'onBlur') {\n const valueToValidate = selectionMode === 'none' ? inputValue : selectedValue;\n validation.commit(valueToValidate);\n }\n },\n onCompositionStart(event) {\n if (platform.os.android) {\n return;\n }\n isComposingRef.current = true;\n setComposingValue(event.currentTarget.value);\n },\n onCompositionEnd(event) {\n isComposingRef.current = false;\n const next = event.currentTarget.value;\n setComposingValue(null);\n store.context.setInputValue(next, createChangeEventDetails(REASONS.inputChange, event.nativeEvent));\n },\n onChange(event) {\n const nativeEvent = event.nativeEvent;\n // Autofill may not provide `inputType` (Chrome) or may report\n // `insertReplacementText` (Firefox).\n const inputType = nativeEvent.inputType;\n const autofillLikeInput = !inputType || inputType === 'insertReplacementText';\n // During composition the input is always considered typed into.\n const shouldOpenOnInput = isComposingRef.current || !autofillLikeInput;\n function maybeOpenOnInput(trimmed) {\n if (readOnly || disabled || !trimmed || !shouldOpenOnInput) {\n return;\n }\n store.context.setOpen(true, createChangeEventDetails(REASONS.inputChange, nativeEvent));\n // When autoHighlight is enabled, keep the highlight (will be set to 0 in root).\n if (!autoHighlightEnabled) {\n clearHighlight(nativeEvent);\n }\n }\n\n // During IME composition, avoid propagating controlled updates to prevent\n // filtering the options prematurely so `Empty` won't show incorrectly.\n // We can't rely on this check for Android due to how it handles composition\n // events with some keyboards (e.g. Samsung keyboard with predictive text on\n // treats all text as always-composing).\n // https://github.com/mui/base-ui/issues/2942\n if (isComposingRef.current) {\n const nextVal = event.currentTarget.value;\n setComposingValue(nextVal);\n if (nextVal === '' && !store.state.openOnInputClick && !store.state.inputInsidePopup) {\n store.context.setOpen(false, createChangeEventDetails(REASONS.inputClear, nativeEvent));\n }\n const trimmed = nextVal.trim();\n const shouldMaintainHighlight = autoHighlightEnabled && trimmed !== '';\n maybeOpenOnInput(trimmed);\n if (open && store.state.activeIndex !== null && !shouldMaintainHighlight) {\n clearHighlight(nativeEvent);\n }\n return;\n }\n const inputChangeDetails = createChangeEventDetails(REASONS.inputChange, nativeEvent);\n store.context.setInputValue(event.currentTarget.value, inputChangeDetails);\n if (inputChangeDetails.isCanceled) {\n return;\n }\n const empty = event.currentTarget.value === '';\n const clearDetails = createChangeEventDetails(REASONS.inputClear, nativeEvent);\n if (empty && !store.state.inputInsidePopup) {\n if (selectionMode === 'single') {\n store.context.setSelectedValue(null, clearDetails);\n }\n if (!store.state.openOnInputClick) {\n store.context.setOpen(false, clearDetails);\n }\n }\n maybeOpenOnInput(event.currentTarget.value.trim());\n\n // When the user types, ensure the list resets its highlight so that\n // virtual focus returns to the input (aria-activedescendant is\n // cleared).\n if (open && store.state.activeIndex !== null && !autoHighlightEnabled) {\n clearHighlight(nativeEvent);\n }\n },\n onKeyDown(event) {\n if (event.ctrlKey || event.shiftKey || event.altKey || event.metaKey) {\n return;\n }\n if (disabled || readOnly) {\n // Browsing can highlight an item, and Enter there must not submit the form.\n if (readOnly && event.key === 'Enter' && open && store.state.activeIndex !== null) {\n stopEvent(event);\n }\n return;\n }\n const input = event.currentTarget;\n const scrollAmount = input.scrollWidth - input.clientWidth;\n const isRTL = direction === 'rtl';\n if (event.key === 'Home') {\n stopEvent(event);\n const cursor = platform.engine.gecko && isRTL ? input.value.length : 0;\n input.setSelectionRange(cursor, cursor);\n input.scrollLeft = 0;\n return;\n }\n if (event.key === 'End') {\n stopEvent(event);\n const cursor = platform.engine.gecko && isRTL ? 0 : input.value.length;\n input.setSelectionRange(cursor, cursor);\n input.scrollLeft = isRTL ? -scrollAmount : scrollAmount;\n return;\n }\n if (!mounted && event.key === 'Escape') {\n const isClear = selectionMode === 'multiple' && Array.isArray(selectedValue) ? selectedValue.length === 0 : selectedValue === null;\n const details = createChangeEventDetails(REASONS.escapeKey, event.nativeEvent);\n const value = selectionMode === 'multiple' ? [] : null;\n store.context.setInputValue('', details);\n store.context.setSelectedValue(value, details);\n if (!isClear && !store.state.inline && !details.isPropagationAllowed) {\n event.stopPropagation();\n }\n return;\n }\n\n // Handle deletion when the input is empty.\n if (comboboxChipsContext && event.key === 'Backspace' && input.value === '' && Array.isArray(selectedValue) && selectedValue.length > 0) {\n const renderedChipsCount = comboboxChipsContext.chipsRef.current.length;\n const removalIndex = renderedChipsCount > 0 ? renderedChipsCount - 1 : selectedValue.length - 1;\n const newValue = selectedValue.filter((_, index) => index !== removalIndex);\n // If the removed item was also the active (highlighted) item, clear highlight\n clearHighlight(event.nativeEvent);\n store.context.setSelectedValue(newValue, createChangeEventDetails(REASONS.none, event.nativeEvent));\n return;\n }\n const nextIndex = handleKeyDown(event);\n if (nextIndex !== undefined) {\n comboboxChipsContext?.chipsRef.current[nextIndex]?.focus();\n }\n\n // event.isComposing\n if (event.which === 229) {\n return;\n }\n if (event.key === 'Enter' && open) {\n const activeIndex = store.state.activeIndex;\n const nativeEvent = event.nativeEvent;\n if (activeIndex === null) {\n if (inline) {\n return;\n }\n\n // Allow form submission when no item is highlighted.\n store.context.setOpen(false, createChangeEventDetails(REASONS.none, nativeEvent));\n return;\n }\n stopEvent(event);\n clickHighlightedItem(store, activeIndex, nativeEvent);\n }\n }\n }, validationProps],\n stateAttributesMapping: triggerStateAttributesMapping\n });\n const renderedInput = hasPositionerParent ? /*#__PURE__*/_jsx(FieldRootContext.Provider, {\n value: DEFAULT_FIELD_ROOT_CONTEXT,\n children: element\n }) : element;\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [open && focusManagerModal && /*#__PURE__*/_jsx(ComboboxInternalDismissButton, {\n ref: store.context.startDismissRef\n }), renderedInput]\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxInput.displayName = \"ComboboxInput\";","import { pressableTriggerOpenStateMapping } from \"../../utils/popupStateMapping.mjs\";\nimport { fieldValidityMapping } from \"../../internals/field-constants/constants.mjs\";\nimport * as ComboboxInputDataAttributes from \"../input/ComboboxInputDataAttributes.mjs\";\nexport const triggerStateAttributesMapping = {\n ...pressableTriggerOpenStateMapping,\n ...fieldValidityMapping,\n popupSide: side => side ? {\n [ComboboxInputDataAttributes.popupSide]: side\n } : null,\n listEmpty: empty => empty ? {\n [ComboboxInputDataAttributes.listEmpty]: ''\n } : null\n};","import { CommonTriggerDataAttributes } from \"../../utils/popupStateMapping.mjs\";\n\n/**\n * Present when the corresponding popup is open.\n */\nexport const popupOpen = CommonTriggerDataAttributes.popupOpen;\n/**\n * Present when the input is pressed.\n */\nexport const pressed = CommonTriggerDataAttributes.pressed;\n/**\n * Present when the component is disabled.\n */\nexport const disabled = 'data-disabled';\n/**\n * Present when the component is readonly.\n */\nexport const readonly = 'data-readonly';\n/**\n * Indicates which side the corresponding popup is positioned relative to its anchor.\n * @type {'top' | 'bottom' | 'left' | 'right' | 'inline-end' | 'inline-start' | null}\n */\nexport const popupSide = 'data-popup-side';\n/**\n * Present when the component is required.\n */\nexport const required = 'data-required';\n/**\n * Present when the component is in a valid state (when wrapped in Field.Root).\n */\nexport const valid = 'data-valid';\n/**\n * Present when the component is in an invalid state (when wrapped in Field.Root).\n */\nexport const invalid = 'data-invalid';\n/**\n * Present when the component has been touched (when wrapped in Field.Root).\n */\nexport const touched = 'data-touched';\n/**\n * Present when the component's value has changed (when wrapped in Field.Root).\n */\nexport const dirty = 'data-dirty';\n/**\n * Present when the component has a value (when wrapped in Field.Root).\n */\nexport const filled = 'data-filled';\n/**\n * Present when the input is focused (when wrapped in Field.Root).\n */\nexport const focused = 'data-focused';\n/**\n * Present when the corresponding items list is empty.\n */\nexport const listEmpty = 'data-list-empty';","'use client';\n\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useFieldRootContext } from \"./FieldRootContext.mjs\";\n\n/**\n * Returns the field's `setFocused`, recording which control the focused state belongs to.\n *\n * Disabling or unmounting a focused control moves focus away without firing `blur`, so the focused\n * state would otherwise stay latched. A field can have several focus targets, so a control only\n * clears the shared state when focus last landed on itself. The stable callback doubles as that\n * identity.\n */\nexport function useSetFieldFocused(disabled, focusTargetRef, onFocusedChange) {\n const {\n setFocused,\n focusOwnerRef\n } = useFieldRootContext();\n const setFieldFocused = useStableCallback(focused => {\n // A disabled target can still be focused (`aria-disabled` elements stay programmatically\n // focusable), but must not publish the field's focused styling.\n if (focused ? !disabled : focusOwnerRef.current === setFieldFocused) {\n focusOwnerRef.current = focused && setFieldFocused;\n onFocusedChange?.(focused);\n setFocused(focused);\n }\n });\n\n // Re-run when `disabled` changes so a focused control releases the field even when the browser\n // does not fire `blur`. The setup reclaims focus that no focus event reported: StrictMode\n // re-running effects after a mount-time focus, a control focused before hydration, or an\n // `aria-disabled` control re-enabled while it kept focus.\n useIsoLayoutEffect(() => {\n const el = focusTargetRef.current;\n const root = el?.getRootNode();\n if (root?.activeElement === el) {\n setFieldFocused(true);\n }\n return () => setFieldFocused(false);\n }, [disabled, focusTargetRef, setFieldFocused]);\n return setFieldFocused;\n}","'use client';\n\nimport * as React from 'react';\nexport const ComboboxChipsContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ComboboxChipsContext.displayName = \"ComboboxChipsContext\";\nexport function useComboboxChipsContext() {\n return React.useContext(ComboboxChipsContext);\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const ComboboxPositionerContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ComboboxPositionerContext.displayName = \"ComboboxPositionerContext\";\nexport function useComboboxPositionerContext(optional) {\n const context = React.useContext(ComboboxPositionerContext);\n if (context === undefined && !optional) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: <Combobox.Popup> and <Combobox.Arrow> must be used within the <Combobox.Positioner> component' : _formatErrorMessage(21));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nimport { useMergedRefs } from '@base-ui/utils/useMergedRefs';\nimport { visuallyHiddenInput } from '@base-ui/utils/visuallyHidden';\nimport { useButton } from \"../../internals/use-button/index.mjs\";\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { useComboboxRootContext } from \"../root/ComboboxRootContext.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * @internal\n */\nexport const ComboboxInternalDismissButton = /*#__PURE__*/React.forwardRef(function ComboboxInternalDismissButton(_, forwardedRef) {\n const store = useComboboxRootContext();\n const {\n buttonRef,\n getButtonProps\n } = useButton({\n native: false\n });\n const mergedRef = useMergedRefs(forwardedRef, buttonRef);\n function handleDismiss(event) {\n store.context.setOpen(false, createChangeEventDetails(REASONS.closePress, event.nativeEvent, event.currentTarget));\n }\n const dismissProps = getButtonProps({\n onClick: handleDismiss\n });\n return /*#__PURE__*/_jsx(\"span\", {\n ref: mergedRef,\n ...dismissProps,\n \"aria-label\": \"Dismiss\",\n tabIndex: undefined,\n style: visuallyHiddenInput\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxInternalDismissButton.displayName = \"ComboboxInternalDismissButton\";","'use client';\n\nimport { useComboboxDerivedItemsContext } from \"../root/ComboboxRootContext.mjs\";\n/**\n * The popup side is only meaningful while the positioner is mounted, as the store retains the\n * last resolved side after the popup unmounts.\n */\nexport function usePopupSide(store) {\n const mounted = store.useState('mounted');\n const popupSide = store.useState('popupSide');\n const positionerElement = store.useState('positionerElement');\n return mounted && positionerElement ? popupSide : null;\n}\n\n/**\n * Whether the filtered list has no items to show.\n */\nexport function useListEmpty() {\n return useComboboxDerivedItemsContext().filteredItems.length === 0;\n}\n\n/**\n * The arrow keys that move the chip highlight backwards and forwards, in that order.\n */\nexport function getChipNavigationKeys(direction) {\n return direction === 'rtl' ? ['ArrowRight', 'ArrowLeft'] : ['ArrowLeft', 'ArrowRight'];\n}\n\n/**\n * Where the highlight lands once the chip at `index` is removed, or `undefined` for no highlight.\n */\nexport function getIndexAfterChipRemoval(index, chipCount) {\n const nextIndex = index >= chipCount - 1 ? chipCount - 2 : index;\n return nextIndex >= 0 ? nextIndex : undefined;\n}\n\n/**\n * Commits the highlighted item by clicking it, tagging the originating event so the item's\n * handler can attribute the selection to it.\n */\nexport function clickHighlightedItem(store, activeIndex, nativeEvent) {\n const listItem = store.context.listRef.current[activeIndex];\n if (listItem) {\n store.context.selectionEventRef.current = nativeEvent;\n listItem.click();\n store.context.selectionEventRef.current = null;\n }\n}","import { isElement } from '@floating-ui/utils/dom';\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { getTarget, isInteractiveElement } from \"../../floating-ui-react/utils/element.mjs\";\nexport function handleInputPress(event, store, disabled, shouldIgnoreTarget) {\n if (event.baseUIHandlerPrevented) {\n return;\n }\n const target = getTarget(event.nativeEvent);\n const targetElement = isElement(target) ? target : null;\n if (targetElement !== event.currentTarget && (shouldIgnoreTarget?.(targetElement) || isInteractiveElement(targetElement))) {\n return;\n }\n event.preventDefault();\n if (disabled) {\n return;\n }\n store.context.inputRef.current?.focus();\n if (store.state.openOnInputClick) {\n store.context.setOpen(true, createChangeEventDetails(REASONS.inputPress, event.nativeEvent));\n }\n}","'use client';\n\nimport * as React from 'react';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useFieldRootContext } from \"../../internals/field-root-context/FieldRootContext.mjs\";\nimport { useComboboxRootContext } from \"../root/ComboboxRootContext.mjs\";\nimport { triggerStateAttributesMapping } from \"../utils/stateAttributesMapping.mjs\";\nimport { handleInputPress } from \"../utils/handleInputPress.mjs\";\nimport { useListEmpty, usePopupSide } from \"../utils/parts.mjs\";\nimport { contains } from \"../../floating-ui-react/utils/element.mjs\";\n\n/**\n * A wrapper for the input and its associated controls.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nexport const ComboboxInputGroup = /*#__PURE__*/React.forwardRef(function ComboboxInputGroup(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n ...elementProps\n } = componentProps;\n const {\n state: fieldState\n } = useFieldRootContext();\n const store = useComboboxRootContext();\n const open = store.useState('open');\n const comboboxDisabled = store.useState('disabled');\n const readOnly = store.useState('readOnly');\n const hasSelectedValue = store.useState('hasSelectedValue');\n const selectionMode = store.useState('selectionMode');\n const popupSide = usePopupSide(store);\n const disabled = comboboxDisabled;\n const listEmpty = useListEmpty();\n const placeholder = selectionMode === 'none' ? false : !hasSelectedValue;\n const state = {\n ...fieldState,\n open,\n disabled,\n readOnly,\n popupSide,\n listEmpty,\n placeholder\n };\n const setInputGroupElement = useStableCallback(element => {\n store.set('inputGroupElement', element);\n });\n return useRenderElement('div', componentProps, {\n ref: [forwardedRef, setInputGroupElement],\n props: [{\n role: 'group',\n onMouseDown(event) {\n handleInputPress(event, store, disabled, target => {\n return contains(store.context.chipsContainerRef.current, target);\n });\n }\n }, elementProps],\n state,\n stateAttributesMapping: triggerStateAttributesMapping\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxInputGroup.displayName = \"ComboboxInputGroup\";","'use client';\n\nimport * as React from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst GroupCollectionContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") GroupCollectionContext.displayName = \"GroupCollectionContext\";\nexport function useGroupCollectionContext() {\n return React.useContext(GroupCollectionContext);\n}\nexport function GroupCollectionProvider(props) {\n const {\n children,\n items\n } = props;\n const contextValue = React.useMemo(() => ({\n items\n }), [items]);\n return /*#__PURE__*/_jsx(GroupCollectionContext.Provider, {\n value: contextValue,\n children: children\n });\n}","'use client';\n\nimport * as React from 'react';\nimport { useComboboxDerivedItemsContext } from \"../root/ComboboxRootContext.mjs\";\nimport { useGroupCollectionContext } from \"./GroupCollectionContext.mjs\";\n\n/**\n * Renders filtered list items.\n * Doesn't render its own HTML element.\n *\n * If rendering a flat list, pass a function child to the `List` component instead, which implicitly wraps it.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function ComboboxCollection(props) {\n const {\n children\n } = props;\n const {\n filteredItems\n } = useComboboxDerivedItemsContext();\n const groupContext = useGroupCollectionContext();\n const itemsToRender = groupContext ? groupContext.items : filteredItems;\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: itemsToRender.map(children)\n });\n}","'use client';\n\nimport * as React from 'react';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useComboboxDerivedItemsContext, useComboboxFloatingContext, useComboboxRootContext } from \"../root/ComboboxRootContext.mjs\";\nimport { useComboboxPositionerContext } from \"../positioner/ComboboxPositionerContext.mjs\";\nimport { ComboboxCollection } from \"../collection/ComboboxCollection.mjs\";\nimport { CompositeList } from \"../../internals/composite/list/CompositeList.mjs\";\nimport { stopEvent } from \"../../floating-ui-react/utils.mjs\";\nimport { clickHighlightedItem } from \"../utils/parts.mjs\";\n\n/**\n * A list container for the items.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const ComboboxList = /*#__PURE__*/React.forwardRef(function ComboboxList(componentProps, forwardedRef) {\n var _ComboboxCollection;\n const {\n render,\n className,\n style,\n children,\n ...elementProps\n } = componentProps;\n const store = useComboboxRootContext();\n const floatingRootContext = useComboboxFloatingContext();\n const hasPositionerContext = Boolean(useComboboxPositionerContext(true));\n const {\n filteredItems,\n hasItems\n } = useComboboxDerivedItemsContext();\n const selectionMode = store.useState('selectionMode');\n const grid = store.useState('grid');\n const readOnly = store.useState('readOnly');\n const listProps = store.useState('listProps');\n const virtualized = store.useState('virtualized');\n const forceMounted = store.useState('forceMounted');\n const multiple = selectionMode === 'multiple';\n const empty = filteredItems.length === 0;\n const setPositionerElement = useStableCallback(element => {\n store.set('positionerElement', element);\n });\n const setListElement = useStableCallback(element => {\n store.set('listElement', element);\n });\n\n // Support \"closed template\" API: if children is a function, implicitly wrap it\n // with a Combobox.Collection that reads items from context/root.\n // Ensures this component's `listProps` subscription does not cause <Combobox.Item>\n // to re-render on every active index change.\n const resolvedChildren = React.useMemo(() => {\n if (typeof children === 'function') {\n return _ComboboxCollection || (_ComboboxCollection = /*#__PURE__*/_jsx(ComboboxCollection, {\n children: children\n }));\n }\n return children;\n }, [children]);\n const state = {\n empty\n };\n const floatingId = floatingRootContext.useState('floatingId');\n const element = useRenderElement('div', componentProps, {\n state,\n ref: [forwardedRef, setListElement, hasPositionerContext ? null : setPositionerElement],\n props: [listProps, {\n children: resolvedChildren,\n tabIndex: -1,\n id: floatingId,\n role: grid ? 'grid' : 'listbox',\n 'aria-multiselectable': multiple ? 'true' : undefined,\n // On a grid the attribute describes cell editability, not selection, so it's left to the\n // combobox element in that mode.\n 'aria-readonly': !grid && readOnly ? true : undefined,\n onKeyDown(event) {\n if (store.state.disabled || store.state.readOnly) {\n return;\n }\n if (event.key === 'Enter') {\n const activeIndex = store.state.activeIndex;\n if (activeIndex == null) {\n // Allow form submission when no item is highlighted.\n return;\n }\n stopEvent(event);\n clickHighlightedItem(store, activeIndex, event.nativeEvent);\n }\n }\n }, elementProps]\n });\n if (virtualized) {\n return element;\n }\n\n // With the `items` prop, typeahead labels are derived from the items so they survive the list\n // unmounting (unmounting clears the registered labels). Rendered labels only need to be\n // registered when the list is force-mounted to match browser autofill against rendered text.\n const labelsRef = hasItems && !forceMounted ? undefined : store.context.labelsRef;\n return /*#__PURE__*/_jsx(CompositeList, {\n elementsRef: store.context.listRef,\n labelsRef: labelsRef,\n children: element\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxList.displayName = \"ComboboxList\";","'use client';\n\nimport * as React from 'react';\nimport { FloatingPortal } from \"../../floating-ui-react/index.mjs\";\nimport { useComboboxRootContext } from \"../root/ComboboxRootContext.mjs\";\nimport { ComboboxPortalContext } from \"./ComboboxPortalContext.mjs\";\n\n/**\n * A portal element that moves the popup to a different part of the DOM.\n * By default, the portal element is appended to `<body>`.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const ComboboxPortal = /*#__PURE__*/React.forwardRef(function ComboboxPortal(props, forwardedRef) {\n const {\n keepMounted = false,\n ...portalProps\n } = props;\n const store = useComboboxRootContext();\n const mounted = store.useState('mounted');\n const forceMounted = store.useState('forceMounted');\n const shouldRender = mounted || keepMounted || forceMounted;\n if (!shouldRender) {\n return null;\n }\n return /*#__PURE__*/_jsx(ComboboxPortalContext.Provider, {\n value: keepMounted,\n children: /*#__PURE__*/_jsx(FloatingPortal, {\n ref: forwardedRef,\n ...portalProps\n })\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxPortal.displayName = \"ComboboxPortal\";","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const ComboboxPortalContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ComboboxPortalContext.displayName = \"ComboboxPortalContext\";\nexport function useComboboxPortalContext() {\n const context = React.useContext(ComboboxPortalContext);\n if (context === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: <Combobox.Portal> is missing.' : _formatErrorMessage(20));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { inertValue } from '@base-ui/utils/inertValue';\nimport { useComboboxFloatingContext, useComboboxRootContext } from \"../root/ComboboxRootContext.mjs\";\nimport { ComboboxPositionerContext } from \"./ComboboxPositionerContext.mjs\";\nimport { useListEmpty } from \"../utils/parts.mjs\";\nimport { useAnchorPositioning } from \"../../internals/useAnchorPositioning.mjs\";\nimport { useComboboxPortalContext } from \"../portal/ComboboxPortalContext.mjs\";\nimport { DROPDOWN_COLLISION_AVOIDANCE } from \"../../internals/constants.mjs\";\nimport { InternalBackdrop } from \"../../utils/InternalBackdrop.mjs\";\nimport { usePositioner } from \"../../utils/usePositioner.mjs\";\nimport { useAnchoredPopupScrollLock } from \"../../utils/useAnchoredPopupScrollLock.mjs\";\n\n/**\n * Positions the popup against the trigger.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const ComboboxPositioner = /*#__PURE__*/React.forwardRef(function ComboboxPositioner(componentProps, forwardedRef) {\n const {\n render,\n className,\n anchor,\n // `useAnchorPositioning` applies the same defaults to the undefined values; the names\n // remain destructured to exclude the props from `elementProps`.\n positionMethod,\n side,\n align,\n sideOffset,\n alignOffset,\n collisionBoundary = 'clipping-ancestors',\n collisionPadding,\n arrowPadding,\n sticky,\n disableAnchorTracking = false,\n collisionAvoidance = DROPDOWN_COLLISION_AVOIDANCE,\n style: styleProp,\n ...elementProps\n } = componentProps;\n const store = useComboboxRootContext();\n const floatingRootContext = useComboboxFloatingContext();\n const keepMounted = useComboboxPortalContext();\n const modal = store.useState('modal');\n const open = store.useState('open');\n const mounted = store.useState('mounted');\n const openMethod = store.useState('openMethod');\n const positionerElement = store.useState('positionerElement');\n const triggerElement = store.useState('triggerElement');\n const inputElement = store.useState('inputElement');\n const inputGroupElement = store.useState('inputGroupElement');\n const inputInsidePopup = store.useState('inputInsidePopup');\n const transitionStatus = store.useState('transitionStatus');\n const empty = useListEmpty();\n const resolvedAnchor = anchor ?? (inputInsidePopup ? triggerElement : inputGroupElement ?? inputElement);\n const positioning = useAnchorPositioning({\n anchor: resolvedAnchor,\n floatingRootContext,\n positionMethod,\n mounted,\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n disableAnchorTracking,\n keepMounted,\n collisionAvoidance,\n lazyFlip: true\n });\n useAnchoredPopupScrollLock(open && modal, openMethod === 'touch', positionerElement, triggerElement);\n const state = {\n open,\n side: positioning.side,\n align: positioning.align,\n anchorHidden: positioning.anchorHidden,\n empty\n };\n useIsoLayoutEffect(() => {\n store.set('popupSide', positioning.side);\n }, [store, positioning.side]);\n const setPositionerElement = useStableCallback(element => {\n store.set('positionerElement', element);\n });\n const element = usePositioner(componentProps, state, {\n styles: positioning.positionerStyles,\n transitionStatus,\n props: elementProps,\n refs: [forwardedRef, setPositionerElement],\n hidden: !mounted,\n inert: !open\n });\n return /*#__PURE__*/_jsxs(ComboboxPositionerContext.Provider, {\n value: positioning,\n children: [mounted && modal && /*#__PURE__*/_jsx(InternalBackdrop, {\n inert: inertValue(!open),\n cutout: inputGroupElement ?? inputElement ?? triggerElement\n }), element]\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxPositioner.displayName = \"ComboboxPositioner\";","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { FloatingFocusManager } from \"../../floating-ui-react/index.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useComboboxFloatingContext, useComboboxRootContext } from \"../root/ComboboxRootContext.mjs\";\nimport { popupStateMapping } from \"../../utils/popupStateMapping.mjs\";\nimport { useComboboxPositionerContext } from \"../positioner/ComboboxPositionerContext.mjs\";\nimport { useOpenChangeComplete } from \"../../internals/useOpenChangeComplete.mjs\";\nimport { transitionStatusMapping } from \"../../internals/stateAttributesMapping.mjs\";\nimport { contains, getTarget } from \"../../floating-ui-react/utils.mjs\";\nimport { getDisabledMountTransitionStyles } from \"../../internals/getDisabledMountTransitionStyles.mjs\";\nimport { ComboboxInternalDismissButton } from \"../utils/ComboboxInternalDismissButton.mjs\";\nimport { getComboboxPopupId } from \"../root/utils/index.mjs\";\nimport { useListEmpty } from \"../utils/parts.mjs\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst stateAttributesMapping = {\n ...popupStateMapping,\n ...transitionStatusMapping\n};\n\n/**\n * A container for the list.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nexport const ComboboxPopup = /*#__PURE__*/React.forwardRef(function ComboboxPopup(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n initialFocus,\n finalFocus,\n ...elementProps\n } = componentProps;\n const store = useComboboxRootContext();\n const positioning = useComboboxPositionerContext();\n const floatingRootContext = useComboboxFloatingContext();\n const mounted = store.useState('mounted');\n const open = store.useState('open');\n const openMethod = store.useState('openMethod');\n const popupProps = store.useState('popupProps');\n const transitionStatus = store.useState('transitionStatus');\n const inputInsidePopup = store.useState('inputInsidePopup');\n const inputElement = store.useState('inputElement');\n const modal = store.useState('modal');\n const rootId = store.useState('id');\n const empty = useListEmpty();\n const popupId = elementProps.id ?? (inputInsidePopup ? getComboboxPopupId(rootId) : undefined);\n useIsoLayoutEffect(() => {\n // Prefer the rendered DOM id, which a `render` prop element or function may override.\n store.set('popupId', store.context.popupRef.current?.id || popupId);\n return () => {\n store.set('popupId', undefined);\n };\n }, [store, popupId]);\n useOpenChangeComplete({\n open,\n ref: store.context.popupRef,\n onComplete() {\n if (open) {\n store.context.onOpenChangeComplete(true);\n }\n }\n });\n const state = {\n open,\n side: positioning.side,\n align: positioning.align,\n anchorHidden: positioning.anchorHidden,\n transitionStatus,\n empty\n };\n const element = useRenderElement('div', componentProps, {\n state,\n ref: [forwardedRef, store.context.popupRef],\n props: [popupProps, {\n id: popupId,\n role: inputInsidePopup ? 'dialog' : 'presentation',\n onFocus(event) {\n const target = getTarget(event.nativeEvent);\n if (openMethod !== 'touch' && (contains(store.state.listElement, target) || target === event.currentTarget)) {\n store.context.inputRef.current?.focus();\n }\n }\n }, getDisabledMountTransitionStyles(transitionStatus), elementProps],\n stateAttributesMapping\n });\n\n // Default initial focus logic:\n // If opened by touch, focus the popup element to prevent the virtual keyboard from opening\n // (this is required for Android specifically as iOS handles this automatically).\n const computedDefaultInitialFocus = inputInsidePopup ? interactionType => interactionType === 'touch' ? store.context.popupRef.current : inputElement : false;\n const resolvedInitialFocus = initialFocus === undefined ? computedDefaultInitialFocus : initialFocus;\n let resolvedFinalFocus;\n if (finalFocus != null) {\n resolvedFinalFocus = finalFocus;\n } else {\n resolvedFinalFocus = inputInsidePopup ? undefined : false;\n }\n const focusManagerModal = !inputInsidePopup || modal;\n return /*#__PURE__*/_jsx(FloatingFocusManager, {\n context: floatingRootContext,\n disabled: !mounted,\n modal: focusManagerModal,\n openInteractionType: openMethod,\n initialFocus: resolvedInitialFocus,\n returnFocus: resolvedFinalFocus,\n getInsideElements: () => [store.context.startDismissRef.current, store.context.endDismissRef.current],\n children: /*#__PURE__*/_jsxs(React.Fragment, {\n children: [element, focusManagerModal && /*#__PURE__*/_jsx(ComboboxInternalDismissButton, {\n ref: store.context.endDismissRef\n })]\n })\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxPopup.displayName = \"ComboboxPopup\";","'use client';\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useComboboxRootContext, useComboboxHasItemsContext, useComboboxDerivedItemsContext } from \"../root/ComboboxRootContext.mjs\";\nimport { useCompositeListItem } from \"../../internals/composite/list/useCompositeListItem.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { ComboboxItemContext } from \"./ComboboxItemContext.mjs\";\nimport { useButton } from \"../../internals/use-button/index.mjs\";\nimport { useComboboxRowContext } from \"../row/ComboboxRowContext.mjs\";\nimport { compareItemEquality, findItemIndex, resolveSelectedIndex } from \"../../internals/itemEquality.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction ComboboxItemInner(props) {\n const {\n componentProps,\n forwardedRef,\n virtualized,\n indexFromFilter\n } = props;\n const {\n render,\n className,\n style,\n value: itemValue = null,\n index: indexProp,\n disabled: disabledProp = false,\n nativeButton = false,\n ...elementProps\n } = componentProps;\n const textRef = React.useRef(null);\n const listItem = useCompositeListItem({\n guess: true,\n index: indexProp,\n textRef\n });\n const store = useComboboxRootContext();\n const isRow = useComboboxRowContext();\n const hasItems = useComboboxHasItemsContext();\n const {\n props: itemProps,\n id: rootId,\n selectionMode,\n disabled: rootDisabled,\n readOnly,\n isItemEqualToValue\n } = store.useState('itemRoot');\n const disabled = rootDisabled || disabledProp;\n const selectable = selectionMode !== 'none';\n const index = indexProp ?? indexFromFilter ?? listItem.index;\n const hasRegistered = index !== -1;\n const highlighted = store.useState('isActive', index);\n const matchesSelectedValue = store.useState('isSelected', itemValue);\n const itemRef = React.useRef(null);\n const id = rootId != null && hasRegistered ? `${rootId}-${index}` : undefined;\n const selected = matchesSelectedValue && selectable;\n useIsoLayoutEffect(() => {\n const shouldRun = hasRegistered && (virtualized || indexProp != null);\n if (!shouldRun) {\n return undefined;\n }\n const list = store.context.listRef.current;\n list[index] = itemRef.current;\n return () => {\n delete list[index];\n };\n }, [hasRegistered, virtualized, index, indexProp, store]);\n useIsoLayoutEffect(() => {\n if (!hasRegistered || hasItems) {\n return undefined;\n }\n const visibleValues = store.context.valuesRef.current;\n visibleValues[index] = itemValue;\n return () => {\n delete visibleValues[index];\n };\n }, [hasRegistered, hasItems, index, itemValue, store]);\n useIsoLayoutEffect(() => {\n if (!hasRegistered || hasItems) {\n return;\n }\n\n // Runs while closed as well (the list can stay mounted via `keepMounted` or a\n // force-mount) so the index tracks the item's composite position, keeping features\n // like closed-trigger typeahead in sync when the rendered order changes.\n const selectedValue = store.state.selectedValue;\n let nextIndex = store.state.selectedIndex;\n if (store.state.selectionMode === 'multiple' && Array.isArray(selectedValue)) {\n nextIndex = resolveSelectedIndex(index, itemValue, store.context.valuesRef.current, selectedValue, isItemEqualToValue, nextIndex);\n } else if (compareItemEquality(itemValue, selectedValue, isItemEqualToValue)) {\n nextIndex = index;\n }\n store.set('selectedIndex', nextIndex);\n }, [hasRegistered, hasItems, store, index, itemValue, isItemEqualToValue]);\n const {\n getButtonProps,\n buttonRef\n } = useButton({\n disabled,\n focusableWhenDisabled: true,\n native: nativeButton,\n composite: true\n });\n const state = {\n disabled,\n selected,\n highlighted\n };\n function commitSelection(nativeEvent) {\n function selectItem() {\n store.context.handleSelection(nativeEvent, itemValue);\n }\n if (store.state.submitOnItemClick) {\n ReactDOM.flushSync(selectItem);\n store.context.requestSubmit();\n } else {\n selectItem();\n }\n }\n const defaultProps = {\n id,\n role: isRow ? 'gridcell' : 'option',\n 'aria-selected': selectable ? selected : undefined,\n // Focusable items steal focus from the input upon mouseup.\n // Warn if the user renders a natively focusable element like `<button>`,\n // as it should be a `<div>` instead.\n tabIndex: undefined,\n onPointerDownCapture(event) {\n // The compat `mouseup` only fires for the primary pointer, so a non-primary\n // touch must not overwrite the shared ref — a mismatch would make the primary\n // pointer's release read as a drag-select and commit a second time after `click`.\n if (event.isPrimary) {\n store.context.pointerDownItemRef.current = event.currentTarget;\n }\n event.preventDefault();\n },\n onMouseDown(event) {\n // iOS Safari can emit a synthetic mousedown for touch taps without a preceding\n // pointerdown. Prevent default here too so tapping an item does not blur the input.\n event.preventDefault();\n },\n onClick(event) {\n if (disabled || readOnly) {\n return;\n }\n commitSelection(event.nativeEvent);\n },\n onMouseUp(event) {\n const pointerStartedOnItem = store.context.pointerDownItemRef.current === event.currentTarget;\n store.context.pointerDownItemRef.current = null;\n if (disabled || readOnly || event.button !== 0 || pointerStartedOnItem || !highlighted) {\n return;\n }\n commitSelection(event.nativeEvent);\n }\n };\n const element = useRenderElement('div', componentProps, {\n ref: [buttonRef, forwardedRef, listItem.ref, itemRef],\n state,\n props: [itemProps, defaultProps, elementProps, getButtonProps]\n });\n const contextValue = React.useMemo(() => ({\n selected,\n textRef\n }), [selected, textRef]);\n return /*#__PURE__*/_jsx(ComboboxItemContext.Provider, {\n value: contextValue,\n children: element\n });\n}\n\n/**\n * Resolves the index from the filtered items for the virtualized fallback (no `index` prop).\n * Isolated here so that this per-keystroke subscription to the derived-items context is only\n * paid by virtualized items. Those re-render on every input change anyway — the parent\n * virtualizer re-windows the list as the filtered set changes — so the extra subscription costs\n * them nothing, while it keeps every non-virtualized item off that context.\n */\nfunction ComboboxItemVirtualizedIndex(props) {\n const {\n componentProps,\n forwardedRef\n } = props;\n const store = useComboboxRootContext();\n const isItemEqualToValue = store.useState('isItemEqualToValue');\n const {\n flatFilteredValues\n } = useComboboxDerivedItemsContext();\n const lookupValue = componentProps.value ?? null;\n const indexFromFilter = findItemIndex(flatFilteredValues, lookupValue, isItemEqualToValue);\n\n // Only reached when `virtualized` is true (see the wrapper below).\n return /*#__PURE__*/_jsx(ComboboxItemInner, {\n componentProps: componentProps,\n forwardedRef: forwardedRef,\n virtualized: true,\n indexFromFilter: indexFromFilter\n });\n}\n\n/**\n * An individual item in the list.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nexport const ComboboxItem = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function ComboboxItem(componentProps, forwardedRef) {\n const store = useComboboxRootContext();\n const virtualized = store.useState('virtualized');\n\n // `virtualized` (and whether an item provides an explicit `index`) must be stable for an\n // item's lifetime: the two branches return different component types, so flipping it at\n // runtime remounts the item and resets its refs and effects.\n if (virtualized && componentProps.index == null) {\n return /*#__PURE__*/_jsx(ComboboxItemVirtualizedIndex, {\n componentProps: componentProps,\n forwardedRef: forwardedRef\n });\n }\n return /*#__PURE__*/_jsx(ComboboxItemInner, {\n componentProps: componentProps,\n forwardedRef: forwardedRef,\n virtualized: virtualized,\n indexFromFilter: undefined\n });\n}));\nif (process.env.NODE_ENV !== \"production\") ComboboxItem.displayName = \"ComboboxItem\";","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const ComboboxItemContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ComboboxItemContext.displayName = \"ComboboxItemContext\";\nexport function useComboboxItemContext() {\n const context = React.useContext(ComboboxItemContext);\n if (!context) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: ComboboxItemContext is missing. ComboboxItem parts must be placed within <Combobox.Item>.' : _formatErrorMessage(19));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nexport const ComboboxRowContext = /*#__PURE__*/React.createContext(false);\nif (process.env.NODE_ENV !== \"production\") ComboboxRowContext.displayName = \"ComboboxRowContext\";\nexport function useComboboxRowContext() {\n return React.useContext(ComboboxRowContext);\n}","'use client';\n\nimport * as React from 'react';\nimport { useTransitionStatus } from \"../internals/useTransitionStatus.mjs\";\nimport { useOpenChangeComplete } from \"../internals/useOpenChangeComplete.mjs\";\nimport { useRenderElement } from \"../internals/useRenderElement.mjs\";\nimport { transitionStatusMapping } from \"../internals/stateAttributesMapping.mjs\";\n\n// The public wrappers mount this component only when selected or kept mounted, avoiding the\n// hook costs for unselected items. Pass selection as a prop so memoization observes changes.\nexport const ItemIndicator = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function ItemIndicator(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n keepMounted,\n selected,\n ...elementProps\n } = componentProps;\n const indicatorRef = React.useRef(null);\n const {\n transitionStatus,\n setMounted\n } = useTransitionStatus(selected);\n const state = {\n selected,\n transitionStatus\n };\n const element = useRenderElement('span', componentProps, {\n ref: [forwardedRef, indicatorRef],\n state,\n props: [{\n 'aria-hidden': true,\n children: '✔️'\n }, elementProps],\n stateAttributesMapping: transitionStatusMapping\n });\n useOpenChangeComplete({\n batch: true,\n enabled: !selected,\n open: selected,\n ref: indicatorRef,\n onComplete() {\n if (!selected) {\n setMounted(false);\n }\n }\n });\n return element;\n}));\nif (process.env.NODE_ENV !== \"production\") ItemIndicator.displayName = \"ItemIndicator\";","'use client';\n\nimport * as React from 'react';\nimport { useComboboxItemContext } from \"../item/ComboboxItemContext.mjs\";\nimport { ItemIndicator } from \"../../utils/ItemIndicator.mjs\";\n\n/**\n * Indicates whether the item is selected.\n * Renders a `<span>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const ComboboxItemIndicator = /*#__PURE__*/React.forwardRef(function ComboboxItemIndicator(componentProps, forwardedRef) {\n const {\n selected\n } = useComboboxItemContext();\n const shouldRender = componentProps.keepMounted || selected;\n if (!shouldRender) {\n return null;\n }\n return /*#__PURE__*/_jsx(ItemIndicator, {\n ...componentProps,\n selected: selected,\n ref: forwardedRef\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxItemIndicator.displayName = \"ComboboxItemIndicator\";","'use client';\n\nimport * as React from 'react';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { ComboboxChipsContext } from \"./ComboboxChipsContext.mjs\";\nimport { CompositeList } from \"../../internals/composite/list/CompositeList.mjs\";\nimport { useComboboxRootContext } from \"../root/ComboboxRootContext.mjs\";\nimport { handleInputPress } from \"../utils/handleInputPress.mjs\";\n\n/**\n * A container for the chips in a multiselectable input.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const ComboboxChips = /*#__PURE__*/React.forwardRef(function ComboboxChips(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n ...elementProps\n } = componentProps;\n const store = useComboboxRootContext();\n const hasSelectionChips = store.useState('hasSelectionChips');\n const chipsRef = React.useRef([]);\n const element = useRenderElement('div', componentProps, {\n ref: [forwardedRef, store.context.chipsContainerRef],\n // NVDA enters browse mode instead of staying in focus mode when navigating with\n // arrow keys inside a container unless it has a toolbar role.\n props: [hasSelectionChips ? {\n role: 'toolbar'\n } : EMPTY_OBJECT, {\n onMouseDown(event) {\n handleInputPress(event, store, store.state.disabled);\n }\n }, elementProps]\n });\n const contextValue = React.useMemo(() => ({\n chipsRef\n }), []);\n return /*#__PURE__*/_jsx(ComboboxChipsContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(CompositeList, {\n elementsRef: chipsRef,\n children: element\n })\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxChips.displayName = \"ComboboxChips\";","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const ComboboxChipContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ComboboxChipContext.displayName = \"ComboboxChipContext\";\nexport function useComboboxChipContext() {\n const context = React.useContext(ComboboxChipContext);\n if (!context) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: ComboboxChipContext is missing. ComboboxChip parts must be placed within <Combobox.Chip>.' : _formatErrorMessage(17));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useComboboxChipsContext } from \"../chips/ComboboxChipsContext.mjs\";\nimport { useComboboxRootContext } from \"../root/ComboboxRootContext.mjs\";\nimport { useCompositeListItem } from \"../../internals/composite/list/useCompositeListItem.mjs\";\nimport { ComboboxChipContext } from \"./ComboboxChipContext.mjs\";\nimport { stopEvent } from \"../../floating-ui-react/utils.mjs\";\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { useDirection } from \"../../internals/direction-context/DirectionContext.mjs\";\nimport { getChipNavigationKeys, getIndexAfterChipRemoval } from \"../utils/parts.mjs\";\n\n/**\n * An individual chip that represents a value in a multiselectable input.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const ComboboxChip = /*#__PURE__*/React.forwardRef(function ComboboxChip(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n ...elementProps\n } = componentProps;\n const store = useComboboxRootContext();\n const {\n chipsRef\n } = useComboboxChipsContext();\n const direction = useDirection();\n const disabled = store.useState('disabled');\n const readOnly = store.useState('readOnly');\n const selectedValue = store.useState('selectedValue');\n const {\n ref,\n index\n } = useCompositeListItem();\n function handleKeyDown(event) {\n let nextIndex = index;\n const [previousChipKey, nextChipKey] = getChipNavigationKeys(direction);\n if (event.key === previousChipKey) {\n event.preventDefault();\n if (index > 0) {\n nextIndex = index - 1;\n } else {\n nextIndex = undefined;\n }\n } else if (event.key === nextChipKey) {\n event.preventDefault();\n if (index < chipsRef.current.length - 1) {\n nextIndex = index + 1;\n } else {\n nextIndex = undefined;\n }\n } else if (event.key === 'Backspace' || event.key === 'Delete') {\n nextIndex = getIndexAfterChipRemoval(index, selectedValue.length);\n stopEvent(event);\n\n // Commit the removal before focusing so `chipsRef` reflects the remaining chips.\n ReactDOM.flushSync(() => {\n store.context.setIndices({\n activeIndex: null,\n selectedIndex: null,\n type: REASONS.keyboard,\n event: event.nativeEvent\n });\n store.context.setSelectedValue(selectedValue.filter((_, i) => i !== index), createChangeEventDetails(REASONS.none, event.nativeEvent));\n });\n } else if (event.key === 'Enter' || event.key === ' ') {\n stopEvent(event);\n nextIndex = undefined;\n } else if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n stopEvent(event);\n // The input may mount when opening.\n ReactDOM.flushSync(() => {\n store.context.setOpen(true, createChangeEventDetails(REASONS.listNavigation, event.nativeEvent));\n });\n nextIndex = undefined;\n } else if (\n // Check for printable characters (letters, numbers, symbols)\n event.key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey) {\n nextIndex = undefined;\n }\n return nextIndex;\n }\n const state = {\n disabled\n };\n const element = useRenderElement('div', componentProps, {\n ref: [forwardedRef, ref],\n state,\n props: [{\n tabIndex: -1,\n 'aria-disabled': disabled || undefined,\n 'aria-readonly': readOnly || undefined,\n onKeyDown(event) {\n if (disabled || readOnly) {\n return;\n }\n const nextIndex = handleKeyDown(event);\n if (nextIndex === undefined) {\n store.context.inputRef.current?.focus();\n } else {\n chipsRef.current[nextIndex]?.focus();\n }\n }\n }, elementProps]\n });\n const contextValue = React.useMemo(() => ({\n index\n }), [index]);\n return /*#__PURE__*/_jsx(ComboboxChipContext.Provider, {\n value: contextValue,\n children: element\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxChip.displayName = \"ComboboxChip\";","'use client';\n\nimport * as React from 'react';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useComboboxRootContext } from \"../root/ComboboxRootContext.mjs\";\nimport { useComboboxChipContext } from \"../chip/ComboboxChipContext.mjs\";\nimport { useButton } from \"../../internals/use-button/index.mjs\";\nimport { stopEvent } from \"../../floating-ui-react/utils.mjs\";\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { getHighlightReason } from \"../../utils/getHighlightReason.mjs\";\nimport { findItemIndex } from \"../../internals/itemEquality.mjs\";\n\n/**\n * A button to remove a chip.\n * Renders a `<button>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nexport const ComboboxChipRemove = /*#__PURE__*/React.forwardRef(function ComboboxChipRemove(componentProps, forwardedRef) {\n const {\n render,\n className,\n disabled: disabledProp = false,\n nativeButton = true,\n style,\n ...elementProps\n } = componentProps;\n const store = useComboboxRootContext();\n const {\n index\n } = useComboboxChipContext();\n const comboboxDisabled = store.useState('disabled');\n const readOnly = store.useState('readOnly');\n const selectedValue = store.useState('selectedValue');\n const isItemEqualToValue = store.useState('isItemEqualToValue');\n const disabled = comboboxDisabled || disabledProp;\n const {\n buttonRef,\n getButtonProps\n } = useButton({\n native: nativeButton,\n disabled: disabled || readOnly,\n focusableWhenDisabled: true\n });\n const state = {\n disabled\n };\n function clearActiveIndexForRemovedItem(removedItem, event) {\n const activeIndex = store.state.activeIndex;\n if (activeIndex == null) {\n return;\n }\n\n // Try current visible list first; if not found, it's filtered out.\n // No need to clear highlight in that case since it can't equal activeIndex.\n const removedIndex = findItemIndex(store.context.valuesRef.current, removedItem, isItemEqualToValue);\n if (removedIndex !== -1 && activeIndex === removedIndex) {\n store.context.setIndices({\n activeIndex: null,\n type: getHighlightReason(event),\n event\n });\n }\n }\n function removeChip(event) {\n const eventDetails = createChangeEventDetails(REASONS.chipRemovePress, event.nativeEvent);\n const removedItem = selectedValue[index];\n clearActiveIndexForRemovedItem(removedItem, event.nativeEvent);\n store.context.setSelectedValue(selectedValue.filter((_, i) => i !== index), eventDetails);\n store.context.inputRef.current?.focus();\n return eventDetails;\n }\n const element = useRenderElement('button', componentProps, {\n ref: [forwardedRef, buttonRef],\n state,\n props: [{\n tabIndex: -1,\n onMouseDown(event) {\n event.preventDefault();\n },\n onClick(event) {\n const eventDetails = removeChip(event);\n if (!eventDetails.isPropagationAllowed) {\n event.stopPropagation();\n }\n },\n onKeyDown(event) {\n if (event.key === 'Enter' || event.key === ' ') {\n const eventDetails = removeChip(event);\n if (!eventDetails.isPropagationAllowed) {\n stopEvent(event);\n }\n }\n }\n }, elementProps, getButtonProps]\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxChipRemove.displayName = \"ComboboxChipRemove\";","'use client';\n\nimport * as React from 'react';\nimport { platform } from '@base-ui/utils/platform';\nimport { useTimeout } from '@base-ui/utils/useTimeout';\n\n// Word Joiner is invisible and zero-width, so it forces a text mutation without shifting layout.\nconst LIVE_REGION_MARKER = '\\u2060';\n// Safari VoiceOver needed roughly 200ms to reliably notice the initial polite live-region change.\nexport const INITIAL_LIVE_REGION_TEXT_MUTATION_RESET_DELAY = 200;\nfunction findLastTextNode(root) {\n const walker = root.ownerDocument.createTreeWalker(root, NodeFilter.SHOW_TEXT);\n let lastTextNode = null;\n while (walker.nextNode()) {\n const textNode = walker.currentNode;\n if (textNode.nodeValue !== '') {\n lastTextNode = textNode;\n }\n }\n return lastTextNode;\n}\n\n/**\n * @param present Whether the live region element is currently rendered. Lets a conditionally\n * rendered region re-run the marker each time its element (re)appears with text.\n */\nexport function useInitialLiveRegionTextMutation(present = true) {\n const timeout = useTimeout();\n const rootRef = React.useRef(null);\n\n // Only the initial mounted announcement needs the marker; later text updates announce naturally.\n React.useEffect(() => {\n if (!present || platform.os.ios) {\n return undefined;\n }\n const root = rootRef.current;\n if (root == null) {\n return undefined;\n }\n const textNode = findLastTextNode(root);\n if (textNode == null) {\n return undefined;\n }\n const originalValue = textNode.data;\n const markedValue = `${originalValue}${LIVE_REGION_MARKER}`;\n textNode.nodeValue = markedValue;\n timeout.start(INITIAL_LIVE_REGION_TEXT_MUTATION_RESET_DELAY, () => {\n if (textNode.nodeValue === markedValue) {\n textNode.nodeValue = originalValue;\n }\n });\n return () => {\n timeout.clear();\n if (textNode.nodeValue === markedValue) {\n textNode.nodeValue = originalValue;\n }\n };\n }, [present, rootRef, timeout]);\n return rootRef;\n}","'use client';\n\nimport * as React from 'react';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useComboboxDerivedItemsContext, useComboboxRootContext } from \"../root/ComboboxRootContext.mjs\";\nimport { useInitialLiveRegionTextMutation } from \"../../internals/useInitialLiveRegionTextMutation.mjs\";\n\n/**\n * Renders its children only when the list is empty.\n * Requires the `items` prop on the root component.\n * Announces changes politely to screen readers.\n * This component's root element must remain mounted in the DOM to announce\n * changes consistently across screen readers. Avoid hiding or removing the\n * component itself with `display: none`, `hidden`, `aria-hidden`, or conditional\n * rendering. Prefer updating or conditionally rendering its children instead.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nexport const ComboboxEmpty = /*#__PURE__*/React.forwardRef(function ComboboxEmpty(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n children: childrenProp,\n ...elementProps\n } = componentProps;\n const {\n filteredItems\n } = useComboboxDerivedItemsContext();\n const store = useComboboxRootContext();\n const emptyRef = useInitialLiveRegionTextMutation();\n const children = filteredItems.length === 0 ? childrenProp : null;\n return useRenderElement('div', componentProps, {\n ref: [forwardedRef, store.context.emptyRef, emptyRef],\n props: [{\n children,\n role: 'status',\n 'aria-live': 'polite',\n 'aria-atomic': true\n }, elementProps]\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxEmpty.displayName = \"ComboboxEmpty\";","import { getComputedStyle, getParentNode, isElement, isHTMLElement, isLastTraversableNode } from '@floating-ui/utils/dom';\nexport function isScrollableY(element, allowOverflowIntent = false) {\n const {\n overflowY\n } = getComputedStyle(element);\n if (overflowY !== 'auto' && overflowY !== 'scroll') {\n return false;\n }\n // When `allowOverflowIntent` is true, a container that overflows only once extra space is\n // added (e.g. drawer keyboard scroll slack) still counts, as long as it has layout size on\n // the axis.\n return allowOverflowIntent ? element.clientHeight > 0 : element.scrollHeight > element.clientHeight;\n}\nexport function isScrollableX(element, allowOverflowIntent = false) {\n const {\n overflowX\n } = getComputedStyle(element);\n if (overflowX !== 'auto' && overflowX !== 'scroll') {\n return false;\n }\n return allowOverflowIntent ? element.clientWidth > 0 : element.scrollWidth > element.clientWidth;\n}\nexport function isScrollable(element, axis, allowOverflowIntent = false) {\n return axis === 'vertical' ? isScrollableY(element, allowOverflowIntent) : isScrollableX(element, allowOverflowIntent);\n}\nexport function findScrollableAncestor(target, root, axis, allowOverflowIntent = false) {\n // `getParentNode` crosses shadow boundaries (and slots), so a target inside a shadow root\n // still walks up to scrollable ancestors in the light DOM. Non-HTML targets (SVG, MathML)\n // can't scroll, but their HTML ancestors can.\n let node = target;\n while (isElement(node) && node !== root && !isLastTraversableNode(node)) {\n if (isHTMLElement(node) && isScrollable(node, axis, allowOverflowIntent)) {\n return node;\n }\n node = getParentNode(node);\n }\n return null;\n}\nexport function findScrollableTouchTarget(target, root, axis = 'vertical', allowOverflowIntent = false) {\n return findScrollableAncestor(target, root, axis, allowOverflowIntent) ?? (isScrollable(root, axis, allowOverflowIntent) ? root : null);\n}","'use client';\n\nimport * as React from 'react';\nexport function useOnFirstRender(fn) {\n const ref = React.useRef(true);\n if (ref.current) {\n ref.current = false;\n fn();\n }\n}","'use client';\n\nimport { isElement } from '@floating-ui/utils/dom';\nimport { useId } from '@base-ui/utils/useId';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { PopupTriggerMap } from \"../../utils/popups/index.mjs\";\nimport { useFloatingParentNodeId } from \"../components/FloatingTree.mjs\";\nimport { FloatingRootStore } from \"../components/FloatingRootStore.mjs\";\nexport function useFloatingRootContext(options) {\n const {\n open = false,\n onOpenChange,\n elements = {}\n } = options;\n const floatingId = useId();\n const nested = useFloatingParentNodeId() != null;\n if (process.env.NODE_ENV !== 'production') {\n const optionDomReference = elements.reference;\n if (optionDomReference && !isElement(optionDomReference)) {\n console.error('Cannot pass a virtual element to the `elements.reference` option,', 'as it must be a real DOM element. Use `context.setPositionReference()`', 'instead.');\n }\n }\n const store = useRefWithInit(() => new FloatingRootStore({\n open,\n transitionStatus: undefined,\n onOpenChange,\n referenceElement: elements.reference ?? null,\n floatingElement: elements.floating ?? null,\n triggerElements: new PopupTriggerMap(),\n floatingId,\n syncOnly: false,\n nested\n })).current;\n useIsoLayoutEffect(() => {\n const valuesToSync = {\n open,\n floatingId\n };\n if (elements.reference !== undefined) {\n valuesToSync.referenceElement = elements.reference;\n valuesToSync.domReferenceElement = isElement(elements.reference) ? elements.reference : null;\n }\n if (elements.floating !== undefined) {\n valuesToSync.floatingElement = elements.floating;\n }\n store.update(valuesToSync);\n }, [open, floatingId, elements.reference, elements.floating, store]);\n store.context.onOpenChange = onOpenChange;\n store.context.nested = nested;\n return store;\n}","import { getGridNavigatedIndex, isIndexOutOfListBounds } from \"../utils/composite.mjs\";\n/**\n * Positional arguments are deliberate: property names of an options object\n * don't minify, and the signature is locked to the caller via `typeof` on the\n * `grid` option of `useListNavigation`.\n *\n * The injected grid navigator only ever operates on a uniform 1x1 grid (sizes are\n * always `1x1` and packing is never dense), so the cell-map machinery that supports\n * multi-cell items collapses to an identity transform over the item list. Calling\n * `getGridNavigatedIndex` directly keeps the cell-map helpers\n * (`createGridCellMap`/`getGridCellIndexOfCorner`/`getGridCellIndices`) out of\n * grid-combobox bundles.\n */\nexport function gridNavigation(event, prevIndex, listRef, orientation, loopFocus, rtl, disabledIndices, minIndex, maxIndex, cols = 2) {\n const nextIndex = getGridNavigatedIndex(listRef.current, {\n event,\n orientation,\n loopFocus,\n rtl,\n cols,\n disabledIndices,\n minIndex,\n maxIndex,\n // An out-of-range previous index falls back to the first enabled item.\n prevIndex: prevIndex > maxIndex ? minIndex : prevIndex,\n stopEvent: true\n });\n\n // `getGridNavigatedIndex` can return an out-of-bounds sentinel (e.g. `-1` when there is no\n // previous item to move from); surface that as `undefined` so the caller treats it as\n // \"no navigation\" rather than highlighting index `-1`.\n return isIndexOutOfListBounds(listRef.current, nextIndex) ? undefined : nextIndex;\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const ComboboxRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ComboboxRootContext.displayName = \"ComboboxRootContext\";\nexport const ComboboxFloatingContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ComboboxFloatingContext.displayName = \"ComboboxFloatingContext\";\nexport const ComboboxDerivedItemsContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ComboboxDerivedItemsContext.displayName = \"ComboboxDerivedItemsContext\";\nexport const ComboboxHasItemsContext = /*#__PURE__*/React.createContext(false);\n// `inputValue` can't be placed in the store.\n// https://github.com/mui/base-ui/issues/2703\nif (process.env.NODE_ENV !== \"production\") ComboboxHasItemsContext.displayName = \"ComboboxHasItemsContext\";\nexport const ComboboxInputValueContext = /*#__PURE__*/React.createContext('');\nif (process.env.NODE_ENV !== \"production\") ComboboxInputValueContext.displayName = \"ComboboxInputValueContext\";\nexport function useComboboxRootContext() {\n const context = React.useContext(ComboboxRootContext);\n if (!context) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: ComboboxRootContext is missing. Combobox parts must be placed within <Combobox.Root>.' : _formatErrorMessage(22));\n }\n return context;\n}\nexport function useComboboxFloatingContext() {\n const context = React.useContext(ComboboxFloatingContext);\n if (!context) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: ComboboxFloatingContext is missing. Combobox parts must be placed within <Combobox.Root>.' : _formatErrorMessage(23));\n }\n return context;\n}\nexport function useComboboxDerivedItemsContext() {\n const context = React.useContext(ComboboxDerivedItemsContext);\n if (!context) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: ComboboxItemsContext is missing. Combobox parts must be placed within <Combobox.Root>.' : _formatErrorMessage(24));\n }\n return context;\n}\nexport function useComboboxInputValueContext() {\n return React.useContext(ComboboxInputValueContext);\n}\nexport function useComboboxHasItemsContext() {\n return React.useContext(ComboboxHasItemsContext);\n}","// https://github.com/mui/mui-x/blob/master/packages/x-internals/src/fastArrayCompare/fastArrayCompare.ts\n\n/**\n * Compares two arrays element-wise.\n *\n * The default comparison is `Object.is`, so `NaN` equals `NaN` and `0` does not equal `-0`.\n */\nexport function areArraysEqual(array1, array2, itemComparer = Object.is) {\n const {\n length\n } = array1;\n if (length !== array2.length) {\n return false;\n }\n for (let i = 0; i < length; i += 1) {\n if (!itemComparer(array1[i], array2[i])) {\n return false;\n }\n }\n return true;\n}","import { areArraysEqual } from '@base-ui/utils/areArraysEqual';\n// Compared by identity in `findSelectionIndex`; don't wrap it.\nexport const defaultItemEquality = (itemValue, selectedValue) => Object.is(itemValue, selectedValue);\nexport function compareItemEquality(itemValue, selectedValue, comparer) {\n if (itemValue == null || selectedValue == null) {\n return Object.is(itemValue, selectedValue);\n }\n return comparer(itemValue, selectedValue);\n}\nexport function isSelectedValueDirty(currentValue, initialValue, comparer) {\n if (Array.isArray(currentValue) && Array.isArray(initialValue)) {\n return !areArraysEqual(currentValue, initialValue, (itemValue, initialItemValue) => compareItemEquality(itemValue, initialItemValue, comparer));\n }\n return currentValue !== initialValue;\n}\nexport function selectedValueIncludes(selectedValues, itemValue, comparer) {\n if (!selectedValues) {\n return false;\n }\n return selectedValues.some(selectedValue => {\n if (selectedValue === undefined) {\n return false;\n }\n return compareItemEquality(itemValue, selectedValue, comparer);\n });\n}\nexport function findItemIndex(itemValues, selectedValue, comparer) {\n if (!itemValues) {\n return -1;\n }\n return itemValues.findIndex(itemValue => {\n if (itemValue === undefined) {\n return false;\n }\n return compareItemEquality(itemValue, selectedValue, comparer);\n });\n}\n\n// The default comparer is `Object.is`, so the values can be indexed instead of rescanned\n// for every item. A custom comparer may match values that don't hash alike.\nfunction createSelectionMatcher(selectedValues, comparer) {\n if (comparer !== defaultItemEquality) {\n return itemValue => selectedValueIncludes(selectedValues, itemValue, comparer);\n }\n const index = new Set(selectedValues);\n index.delete(undefined);\n // `Set` treats +0 and -0 as equal; `Object.is` does not.\n return itemValue => index.has(itemValue) && (itemValue !== 0 || selectedValues.some(v => Object.is(itemValue, v)));\n}\nexport function findSelectionIndex(itemValues, selectedValue, comparer, multiple) {\n // Only treat the value as a list in multiple mode: an array can itself be a valid\n // single-select value.\n const index = multiple && Array.isArray(selectedValue) ?\n // Anchor to the first selected item in rendered order so the index does not depend\n // on the order in which the values were added to the array.\n itemValues.findIndex(createSelectionMatcher(selectedValue, comparer)) : findItemIndex(itemValues, selectedValue, comparer);\n return index === -1 ? null : index;\n}\n\n/** Resolves the first selected index as items register or change. */\nexport function resolveSelectedIndex(index, itemValue, registry, selectedValues, comparer, currentIndex) {\n if (selectedValueIncludes(selectedValues, itemValue, comparer)) {\n // A later item only takes over once the current anchor stops being selected.\n return currentIndex != null && index > currentIndex && selectedValueIncludes(selectedValues, registry[currentIndex], comparer) ? currentIndex : index;\n }\n // The holder re-elects the anchor once it stops being selected.\n return index === currentIndex ? findSelectionIndex(registry, selectedValues, comparer, true) : currentIndex;\n}\nexport function removeItem(selectedValues, itemValue, comparer) {\n return selectedValues.filter(selectedValue => !compareItemEquality(itemValue, selectedValue, comparer));\n}","export function serializeValue(value) {\n if (value == null) {\n return '';\n }\n if (typeof value === 'string') {\n return value;\n }\n try {\n return JSON.stringify(value);\n } catch {\n return String(value);\n }\n}","'use client';\n\nimport * as React from 'react';\nimport { serializeValue } from \"./serializeValue.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction isGroup(item) {\n return typeof item === 'object' && item != null && Array.isArray(item.items);\n}\nexport function isGroupedItems(items) {\n // A group must carry an actual `items` array: key presence alone would misclassify an item\n // with an unrelated or optional `items` field.\n return isGroup(items?.[0]);\n}\nexport function flattenLeafItems(items) {\n return isGroupedItems(items) ? items.flatMap(group => group.items) : items;\n}\n\n/**\n * Checks if the items array contains an item with a null value that has a non-null label.\n */\nexport function hasNullItemLabel(items) {\n if (!Array.isArray(items)) {\n return items != null && 'null' in items;\n }\n const arrayItems = items;\n if (isGroupedItems(arrayItems)) {\n for (const group of arrayItems) {\n for (const item of group.items) {\n if (item && item.value == null && item.label != null) {\n return true;\n }\n }\n }\n return false;\n }\n for (const item of arrayItems) {\n if (item && item.value == null && item.label != null) {\n return true;\n }\n }\n return false;\n}\nexport function stringifyAsLabel(item, itemToStringLabel) {\n if (itemToStringLabel && item != null) {\n return itemToStringLabel(item) ?? '';\n }\n if (item && typeof item === 'object') {\n if ('label' in item && item.label != null) {\n return String(item.label);\n }\n if ('value' in item) {\n return String(item.value);\n }\n }\n return serializeValue(item);\n}\nexport function stringifyAsValue(item, itemToStringValue) {\n if (itemToStringValue && item != null) {\n return itemToStringValue(item) ?? '';\n }\n if (item && typeof item === 'object' && 'value' in item && 'label' in item) {\n return serializeValue(item.value);\n }\n return serializeValue(item);\n}\nexport function resolveSelectedLabel(value, items, itemToStringLabel) {\n function fallback() {\n return stringifyAsLabel(value, itemToStringLabel);\n }\n if (itemToStringLabel && value != null) {\n return itemToStringLabel(value);\n }\n\n // Custom object with explicit label takes precedence\n if (value && typeof value === 'object' && 'label' in value && value.label != null) {\n return value.label;\n }\n\n // Items provided as plain record map\n if (items && !Array.isArray(items)) {\n const label = Object.hasOwn(items, value) ? items[value] : undefined;\n return label ?? fallback();\n }\n\n // Items provided as array (flat or grouped)\n if (Array.isArray(items)) {\n const arrayItems = items;\n const flatItems = flattenLeafItems(arrayItems);\n if (value == null || typeof value !== 'object') {\n const match = flatItems.find(item => item.value === value);\n if (match && match.label != null) {\n return match.label;\n }\n return fallback();\n }\n\n // Object without explicit label: try matching by its `value` property\n if ('value' in value) {\n const match = flatItems.find(item => item && item.value === value.value);\n if (match && match.label != null) {\n return match.label;\n }\n }\n }\n return fallback();\n}\nexport function resolveMultipleLabels(values, items, itemToStringLabel) {\n return values.reduce((acc, value, index) => {\n if (index > 0) {\n acc.push(', ');\n }\n acc.push(/*#__PURE__*/_jsx(React.Fragment, {\n children: resolveSelectedLabel(value, items, itemToStringLabel)\n }, index));\n return acc;\n }, []);\n}","import { compareItemEquality } from \"../internals/itemEquality.mjs\";\nimport { hasNullItemLabel } from \"../internals/resolveValueLabel.mjs\";\n\n/**\n * Non-reactive values shared with the combobox parts. Nothing here is observable through\n * `selectors`, so writing to a ref never notifies subscribers.\n */\n\nexport const selectors = {\n id: state => state.id,\n labelId: state => state.labelId,\n items: state => state.items,\n selectedValue: state => state.selectedValue,\n hasSelectionChips: state => {\n const selectedValue = state.selectedValue;\n return Array.isArray(selectedValue) && selectedValue.length > 0;\n },\n hasSelectedValue: state => {\n const {\n selectedValue,\n selectionMode\n } = state;\n if (selectedValue == null) {\n return false;\n }\n if (selectionMode === 'multiple' && Array.isArray(selectedValue)) {\n return selectedValue.length > 0;\n }\n return true;\n },\n hasNullItemLabel: (state, enabled) => {\n return enabled ? hasNullItemLabel(state.items) : false;\n },\n open: state => state.open,\n mounted: state => state.mounted,\n forceMounted: state => state.forceMounted,\n inline: state => state.inline,\n activeIndex: state => state.activeIndex,\n selectedIndex: state => state.selectedIndex,\n isActive: (state, index) => state.activeIndex === index,\n isSelected: (state, itemValue) => {\n const comparer = state.isItemEqualToValue;\n const selectedValue = state.selectedValue;\n if (Array.isArray(selectedValue)) {\n return selectedValue.some(selectedItem => compareItemEquality(itemValue, selectedItem, comparer));\n }\n return compareItemEquality(itemValue, selectedValue, comparer);\n },\n transitionStatus: state => state.transitionStatus,\n popupProps: state => state.popupProps,\n listProps: state => state.listProps,\n inputProps: state => state.inputProps,\n triggerProps: state => state.triggerProps,\n itemRoot: state => state.itemRoot,\n positionerElement: state => state.positionerElement,\n listElement: state => state.listElement,\n popupId: state => state.popupId,\n triggerElement: state => state.triggerElement,\n inputElement: state => state.inputElement,\n inputGroupElement: state => state.inputGroupElement,\n popupSide: state => state.popupSide,\n openMethod: state => state.openMethod,\n inputInsidePopup: state => state.inputInsidePopup,\n inputOwnsFormValue: state => state.inputOwnsFormValue,\n selectionMode: state => state.selectionMode,\n name: state => state.name,\n form: state => state.form,\n disabled: state => state.disabled,\n readOnly: state => state.readOnly,\n required: state => state.required,\n grid: state => state.grid,\n virtualized: state => state.virtualized,\n itemToStringLabel: state => state.itemToStringLabel,\n isItemEqualToValue: state => state.isItemEqualToValue,\n modal: state => state.modal,\n autoHighlight: state => state.autoHighlight\n};","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { NOOP } from \"../noop.mjs\";\nimport { DEFAULT_FIELD_ROOT_STATE, DEFAULT_VALIDITY_STATE } from \"../field-constants/constants.mjs\";\nexport const DEFAULT_FIELD_ROOT_CONTEXT = {\n invalid: undefined,\n name: undefined,\n validityData: {\n state: DEFAULT_VALIDITY_STATE,\n errors: [],\n error: '',\n value: '',\n initialValue: null\n },\n setValidityData: NOOP,\n disabled: undefined,\n setTouched: NOOP,\n setDirty: NOOP,\n setFilled: NOOP,\n setFocused: NOOP,\n focusOwnerRef: {\n current: undefined\n },\n validationMode: 'onSubmit',\n shouldValidateOnChange: () => false,\n state: DEFAULT_FIELD_ROOT_STATE,\n registerFieldControl: NOOP,\n validation: {\n getValidationProps: (_disabled, props = EMPTY_OBJECT) => props,\n inputRef: {\n current: null\n },\n registeredInputs: new Map(),\n registerInput: NOOP,\n getInputControl: () => null,\n commit: async () => {},\n change: NOOP\n }\n};\nexport const FieldRootContext = /*#__PURE__*/React.createContext(DEFAULT_FIELD_ROOT_CONTEXT);\nif (process.env.NODE_ENV !== \"production\") FieldRootContext.displayName = \"FieldRootContext\";\nexport function useFieldRootContext(optional = true) {\n const context = React.useContext(FieldRootContext);\n if (context.setValidityData === NOOP && !optional) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: FieldRootContext is missing. Field parts must be placed within <Field.Root>.' : _formatErrorMessage(28));\n }\n return context;\n}","/**\n * Present when the field is disabled.\n */\nexport const disabled = 'data-disabled';\n/**\n * Present when the field is in a valid state.\n */\nexport const valid = 'data-valid';\n/**\n * Present when the field is in an invalid state.\n */\nexport const invalid = 'data-invalid';\n/**\n * Present when the field has been touched.\n */\nexport const touched = 'data-touched';\n/**\n * Present when the field's value has changed.\n */\nexport const dirty = 'data-dirty';\n/**\n * Present when the field is filled.\n */\nexport const filled = 'data-filled';\n/**\n * Present when the field control is focused.\n */\nexport const focused = 'data-focused';","import * as FieldControlDataAttributes from \"../../field/control/FieldControlDataAttributes.mjs\";\nexport const DEFAULT_VALIDITY_STATE = {\n badInput: false,\n customError: false,\n patternMismatch: false,\n rangeOverflow: false,\n rangeUnderflow: false,\n stepMismatch: false,\n tooLong: false,\n tooShort: false,\n typeMismatch: false,\n valid: null,\n valueMissing: false\n};\nexport const DEFAULT_FIELD_STATE_ATTRIBUTES = {\n valid: null,\n touched: false,\n dirty: false,\n filled: false,\n focused: false\n};\nexport const DEFAULT_FIELD_ROOT_STATE = {\n disabled: false,\n ...DEFAULT_FIELD_STATE_ATTRIBUTES\n};\nexport const fieldValidityMapping = {\n valid(value) {\n if (value === null) {\n return null;\n }\n if (value) {\n return {\n [FieldControlDataAttributes.valid]: ''\n };\n }\n return {\n [FieldControlDataAttributes.invalid]: ''\n };\n }\n};","'use client';\n\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { useFieldRootContext } from \"../field-root-context/FieldRootContext.mjs\";\nexport function useRegisterFieldControl(controlRef, id, value, getFormValueOverride, enabled = true, name) {\n const {\n registerFieldControl\n } = useFieldRootContext();\n const sourceRef = useRefWithInit(() => Symbol());\n\n // Re-register without unregistering first: re-registration with the same id updates the\n // form's fields Map entry in place, while a delete + re-add would move the field to the\n // end of the Map every time its value changes.\n useIsoLayoutEffect(() => {\n const source = sourceRef.current;\n if (!enabled) {\n registerFieldControl(source, undefined);\n return;\n }\n const registration = {\n controlRef,\n getValue: getFormValueOverride,\n id,\n name,\n value\n };\n registerFieldControl(source, registration);\n }, [controlRef, enabled, getFormValueOverride, id, name, registerFieldControl, sourceRef, value]);\n useIsoLayoutEffect(() => {\n const source = sourceRef.current;\n return () => {\n registerFieldControl(source, undefined);\n };\n }, [registerFieldControl, sourceRef]);\n}","'use client';\n\nimport * as React from 'react';\nimport { NOOP } from \"../noop.mjs\";\nexport const FormContext = /*#__PURE__*/React.createContext({\n elementRef: {\n current: null\n },\n formRef: {\n current: {\n fields: new Map()\n }\n },\n errors: {},\n clearErrors: NOOP,\n validationMode: 'onSubmit',\n submitCountRef: {\n current: 0\n }\n});\nif (process.env.NODE_ENV !== \"production\") FormContext.displayName = \"FormContext\";\nexport function useFormContext() {\n return React.useContext(FormContext);\n}","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { NOOP } from \"../noop.mjs\";\nimport { useBaseUiId } from \"../useBaseUiId.mjs\";\nimport { useLabelableContext } from \"./LabelableContext.mjs\";\nexport function useLabelableId(params = {}) {\n const {\n id,\n enabled = true\n } = params;\n const {\n controlId,\n registerControlId,\n resetControlId\n } = useLabelableContext();\n\n // Deliberately not seeded with `id`: on React 17 the seed would stick around after the\n // `id` prop is removed, leaving the control on a stale id forever.\n const defaultId = useBaseUiId();\n const controlSourceRef = useRefWithInit(() => Symbol());\n const hasRegisteredRef = React.useRef(false);\n const hadExplicitIdRef = React.useRef(false);\n const unregisterControlId = useStableCallback(() => {\n if (!hasRegisteredRef.current || registerControlId === NOOP) {\n return;\n }\n hasRegisteredRef.current = false;\n registerControlId(controlSourceRef.current, undefined);\n });\n useIsoLayoutEffect(() => {\n if (!enabled || registerControlId === NOOP) {\n unregisterControlId();\n return undefined;\n }\n let nextId;\n if (id !== undefined) {\n hadExplicitIdRef.current = true;\n nextId = id;\n } else if (hadExplicitIdRef.current) {\n nextId = defaultId;\n } else {\n // An id-less replacement must claim the provider's fallback so a previously registered\n // explicit id is not retained after its control unmounts.\n resetControlId();\n return undefined;\n }\n\n // Either the control never had an explicit `id`, or React 17 has not assigned the\n // fallback id yet. Neither is worth registering.\n if (nextId === undefined) {\n unregisterControlId();\n return undefined;\n }\n hasRegisteredRef.current = true;\n registerControlId(controlSourceRef.current, nextId);\n return undefined;\n }, [id, enabled, registerControlId, resetControlId, defaultId, controlSourceRef, unregisterControlId]);\n\n // Unregistering in the layout phase, not a passive effect: a replacement control's layout\n // effect would otherwise run first and still see the outgoing control's registration.\n useIsoLayoutEffect(() => {\n return unregisterControlId;\n }, [unregisterControlId]);\n\n // The provider's id wins until registration runs: the label renders `htmlFor` from the\n // provider's pre-registration state, so preempting it with an explicit `id` here would\n // leave the pair unassociated in server-rendered markup.\n return (enabled ? controlId : undefined) ?? id ?? defaultId;\n}","'use client';\n\nimport * as React from 'react';\nimport { NOOP } from \"../noop.mjs\";\n/**\n * A context for providing [labelable elements](https://html.spec.whatwg.org/multipage/forms.html#category-label)\\\n * with an accessible name (label) and description.\n */\nexport const LabelableContext = /*#__PURE__*/React.createContext({\n controlId: undefined,\n registerControlId: NOOP,\n resetControlId: NOOP,\n labelId: undefined,\n setLabelId: NOOP,\n messageIds: [],\n setMessageIds: NOOP,\n getDescriptionProps: externalProps => externalProps\n});\nif (process.env.NODE_ENV !== \"production\") LabelableContext.displayName = \"LabelableContext\";\nexport function useLabelableContext() {\n return React.useContext(LabelableContext);\n}","import { stringifyAsLabel } from \"../../../internals/resolveValueLabel.mjs\";\n/**\n * Derives the default id assigned to `Combobox.Popup` when the input is rendered inside it.\n * Shared by the popup (which applies it) and the trigger (which references it via `aria-controls`)\n * so the convention only lives in one place.\n */\nexport function getComboboxPopupId(rootId) {\n return rootId == null ? undefined : `${rootId}-popup`;\n}\n\n/**\n * Enhanced filter using Intl.Collator for more robust string matching.\n * Uses the provided `itemToStringLabel` function if available, otherwise falls back to:\n * • When `item` is an object with a `value` property, that property is used.\n * • When `item` is a primitive (e.g. `string`), it is used directly.\n */\nexport function createCollatorItemFilter(collatorFilter, itemToStringLabel) {\n return (item, query) => {\n if (item == null) {\n return false;\n }\n return collatorFilter.contains(item, query, itemToStringLabel);\n };\n}\n\n/**\n * Enhanced filter for single selection mode using Intl.Collator that shows all items\n * when query is empty or matches the current selection, making it easier to browse options.\n */\nexport function createSingleSelectionCollatorFilter(collatorFilter, itemToStringLabel, selectedValue) {\n return (item, query) => {\n if (item == null) {\n return false;\n }\n if (!query) {\n return true;\n }\n const selectedValueToString = itemToStringLabel?.selected ?? itemToStringLabel;\n const selectedString = selectedValue != null ? stringifyAsLabel(selectedValue, selectedValueToString) : '';\n\n // Handle case-insensitive matching consistently\n if (selectedString && collatorFilter.contains(selectedString, query) && selectedString.length === query.length) {\n return true;\n }\n return collatorFilter.contains(item, query, itemToStringLabel);\n };\n}","export function stringifyLocale(locale) {\n if (Array.isArray(locale)) {\n return locale.map(value => stringifyLocale(value)).join(',');\n }\n if (locale == null) {\n return '';\n }\n return String(locale);\n}","import { stringifyLocale } from '@base-ui/utils/stringifyLocale';\nimport { stringifyAsLabel } from \"./resolveValueLabel.mjs\";\nconst filterCache = new Map();\nexport function getFilter(options = {}) {\n const {\n locale,\n ...restOptions\n } = options;\n const collatorOptions = {\n usage: 'search',\n sensitivity: 'base',\n ignorePunctuation: true,\n ...restOptions\n };\n const cacheKey = `${stringifyLocale(locale)}|${JSON.stringify(collatorOptions)}`;\n const cachedFilter = filterCache.get(cacheKey);\n if (cachedFilter) {\n return cachedFilter;\n }\n const collator = new Intl.Collator(locale, collatorOptions);\n const filter = {\n contains(item, query, itemToString) {\n if (!query) {\n return true;\n }\n const itemString = stringifyAsLabel(item, itemToString);\n for (let i = 0; i <= itemString.length - query.length; i += 1) {\n if (collator.compare(itemString.slice(i, i + query.length), query) === 0) {\n return true;\n }\n }\n return false;\n },\n startsWith(item, query, itemToString) {\n if (!query) {\n return true;\n }\n const itemString = stringifyAsLabel(item, itemToString);\n return collator.compare(itemString.slice(0, query.length), query) === 0;\n },\n endsWith(item, query, itemToString) {\n if (!query) {\n return true;\n }\n const itemString = stringifyAsLabel(item, itemToString);\n const queryLength = query.length;\n return itemString.length >= queryLength && collator.compare(itemString.slice(itemString.length - queryLength), query) === 0;\n }\n };\n filterCache.set(cacheKey, filter);\n return filter;\n}","'use client';\n\nimport * as React from 'react';\nimport { createCollatorItemFilter, createSingleSelectionCollatorFilter } from \"./index.mjs\";\nimport { getFilter } from \"../../../internals/filter.mjs\";\n/**\n * Matches items against a query using `Intl.Collator` for robust string matching.\n */\nexport const useCoreFilter = getFilter;\n/**\n * Matches items against a query using `Intl.Collator` for robust string matching.\n */\nexport function useComboboxFilter(options = {}) {\n const {\n multiple = false,\n value,\n ...collatorOptions\n } = options;\n const coreFilter = getFilter(collatorOptions);\n const contains = React.useCallback((item, query, itemToString) => {\n if (multiple) {\n return createCollatorItemFilter(coreFilter, itemToString)(item, query);\n }\n return createSingleSelectionCollatorFilter(coreFilter, itemToString, value)(item, query);\n }, [coreFilter, value, multiple]);\n return React.useMemo(() => ({\n ...coreFilter,\n contains\n }), [contains, coreFilter]);\n}"],"names":["NO_ACTIVE_VALUE","Symbol","INITIAL_LAST_HIGHLIGHT","value","index","isScrollableY","element","allowOverflowIntent","overflowY","clientHeight","scrollHeight","isScrollableX","overflowX","clientWidth","scrollWidth","isScrollable","axis","findScrollableAncestor","target","root","node","findScrollableTouchTarget","useOnFirstRender","fn","ref","current"],"mappings":"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","ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56]}
1
+ {"version":3,"sources":["../../../../../node_modules/%40base-ui/react/combobox/root/ComboboxRoot.mjs","../../../../../node_modules/%40base-ui/react/combobox/root/AriaCombobox.mjs","../../../../../node_modules/%40base-ui/react/combobox/root/utils/constants.mjs","../../../../../node_modules/%40base-ui/react/combobox/items/itemCollection.mjs","../../../../../node_modules/%40base-ui/react/combobox/label/ComboboxLabel.mjs","../../../../../node_modules/%40base-ui/react/internals/labelable-provider/useLabel.mjs","../../../../../node_modules/%40base-ui/react/utils/useRegisteredLabelId.mjs","../../../../../node_modules/%40base-ui/react/utils/resolveAriaLabelledBy.mjs","../../../../../node_modules/%40base-ui/react/combobox/input/ComboboxInput.mjs","../../../../../node_modules/%40base-ui/react/combobox/utils/stateAttributesMapping.mjs","../../../../../node_modules/%40base-ui/react/combobox/input/ComboboxInputDataAttributes.mjs","../../../../../node_modules/%40base-ui/react/internals/field-root-context/useSetFieldFocused.mjs","../../../../../node_modules/%40base-ui/react/combobox/chips/ComboboxChipsContext.mjs","../../../../../node_modules/%40base-ui/react/combobox/positioner/ComboboxPositionerContext.mjs","../../../../../node_modules/%40base-ui/react/combobox/utils/ComboboxInternalDismissButton.mjs","../../../../../node_modules/%40base-ui/react/combobox/utils/parts.mjs","../../../../../node_modules/%40base-ui/react/combobox/utils/handleInputPress.mjs","../../../../../node_modules/%40base-ui/react/combobox/input-group/ComboboxInputGroup.mjs","../../../../../node_modules/%40base-ui/react/combobox/collection/GroupCollectionContext.mjs","../../../../../node_modules/%40base-ui/react/combobox/collection/ComboboxCollection.mjs","../../../../../node_modules/%40base-ui/react/combobox/list/ComboboxList.mjs","../../../../../node_modules/%40base-ui/react/combobox/portal/ComboboxPortal.mjs","../../../../../node_modules/%40base-ui/react/combobox/portal/ComboboxPortalContext.mjs","../../../../../node_modules/%40base-ui/react/combobox/positioner/ComboboxPositioner.mjs","../../../../../node_modules/%40base-ui/react/combobox/popup/ComboboxPopup.mjs","../../../../../node_modules/%40base-ui/react/combobox/item/ComboboxItem.mjs","../../../../../node_modules/%40base-ui/react/combobox/item/ComboboxItemContext.mjs","../../../../../node_modules/%40base-ui/react/combobox/row/ComboboxRowContext.mjs","../../../../../node_modules/%40base-ui/react/utils/ItemIndicator.mjs","../../../../../node_modules/%40base-ui/react/combobox/item-indicator/ComboboxItemIndicator.mjs","../../../../../node_modules/%40base-ui/react/combobox/chips/ComboboxChips.mjs","../../../../../node_modules/%40base-ui/react/combobox/chip/ComboboxChipContext.mjs","../../../../../node_modules/%40base-ui/react/combobox/chip/ComboboxChip.mjs","../../../../../node_modules/%40base-ui/react/combobox/chip-remove/ComboboxChipRemove.mjs","../../../../../node_modules/%40base-ui/react/internals/useInitialLiveRegionTextMutation.mjs","../../../../../node_modules/%40base-ui/react/combobox/empty/ComboboxEmpty.mjs","../../../../../node_modules/%40base-ui/react/utils/scrollable.mjs","../../../../../node_modules/%40base-ui/utils/useOnFirstRender.mjs","../../../../../node_modules/%40base-ui/react/floating-ui-react/hooks/useFloatingRootContext.mjs","../../../../../node_modules/%40base-ui/react/floating-ui-react/hooks/gridNavigation.mjs","../../../../../node_modules/%40base-ui/react/combobox/root/ComboboxRootContext.mjs","../../../../../node_modules/%40base-ui/utils/areArraysEqual.mjs","../../../../../node_modules/%40base-ui/react/internals/itemEquality.mjs","../../../../../node_modules/%40base-ui/react/internals/serializeValue.mjs","../../../../../node_modules/%40base-ui/react/internals/resolveValueLabel.mjs","../../../../../node_modules/%40base-ui/react/combobox/store.mjs","../../../../../node_modules/%40base-ui/react/internals/field-root-context/FieldRootContext.mjs","../../../../../node_modules/%40base-ui/react/field/control/FieldControlDataAttributes.mjs","../../../../../node_modules/%40base-ui/react/internals/field-constants/constants.mjs","../../../../../node_modules/%40base-ui/react/internals/field-register-control/useRegisterFieldControl.mjs","../../../../../node_modules/%40base-ui/react/internals/form-context/FormContext.mjs","../../../../../node_modules/%40base-ui/react/internals/labelable-provider/useLabelableId.mjs","../../../../../node_modules/%40base-ui/react/internals/labelable-provider/LabelableContext.mjs","../../../../../node_modules/%40base-ui/react/combobox/root/utils/index.mjs","../../../../../node_modules/%40base-ui/utils/stringifyLocale.mjs","../../../../../node_modules/%40base-ui/react/internals/filter.mjs","../../../../../node_modules/%40base-ui/react/combobox/root/utils/useFilter.mjs"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { AriaCombobox } from \"./AriaCombobox.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Groups all parts of the combobox.\n * Doesn't render its own HTML element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nexport function ComboboxRoot(props) {\n const {\n multiple = false,\n defaultValue,\n value,\n onValueChange,\n autoComplete,\n ...other\n } = props;\n return /*#__PURE__*/_jsx(AriaCombobox, {\n ...other,\n selectionMode: multiple ? 'multiple' : 'single',\n selectedValue: value,\n defaultSelectedValue: defaultValue,\n onSelectedValueChange: onValueChange,\n formAutoComplete: autoComplete\n });\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nimport { useControlled } from '@base-ui/utils/useControlled';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useOnFirstRender } from '@base-ui/utils/useOnFirstRender';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useMergedRefs } from '@base-ui/utils/useMergedRefs';\nimport { useValueAsRef } from '@base-ui/utils/useValueAsRef';\nimport { visuallyHidden, visuallyHiddenInput } from '@base-ui/utils/visuallyHidden';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { ReactStore } from '@base-ui/utils/store';\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { isHTMLElement } from '@floating-ui/utils/dom';\nimport { getOverflowAncestors, useDismiss, useFloatingRootContext, useListNavigation, useClick } from \"../../floating-ui-react/index.mjs\";\nimport { gridNavigation } from \"../../floating-ui-react/hooks/gridNavigation.mjs\";\nimport { activeElement, closest, contains, getTarget } from \"../../floating-ui-react/utils.mjs\";\nimport { createChangeEventDetails, createGenericEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { getHighlightReason } from \"../../utils/getHighlightReason.mjs\";\nimport { ComboboxFloatingContext, ComboboxDerivedItemsContext, ComboboxHasItemsContext, ComboboxRootContext, ComboboxInputValueContext } from \"./ComboboxRootContext.mjs\";\nimport { selectors } from \"../store.mjs\";\nimport { attachPreventUnmountOnClose } from \"../../utils/popups/popupStoreUtils.mjs\";\nimport { useFieldRootContext } from \"../../internals/field-root-context/FieldRootContext.mjs\";\nimport { useRegisterFieldControl } from \"../../internals/field-register-control/useRegisterFieldControl.mjs\";\nimport { useFormContext } from \"../../internals/form-context/FormContext.mjs\";\nimport { useLabelableId } from \"../../internals/labelable-provider/useLabelableId.mjs\";\nimport { createCollatorItemFilter } from \"./utils/index.mjs\";\nimport { useCoreFilter } from \"./utils/useFilter.mjs\";\nimport { useUnmountAfterClose } from \"../../internals/useUnmountAfterClose.mjs\";\nimport { useOpenInteractionType } from \"../../utils/useOpenInteractionType.mjs\";\nimport { isScrollableY } from \"../../utils/scrollable.mjs\";\nimport { useValueChanged } from \"../../internals/useValueChanged.mjs\";\nimport { NOOP } from \"../../internals/noop.mjs\";\nimport { FOCUSABLE_POPUP_PROPS } from \"../../utils/popups/index.mjs\";\nimport { mergeProps } from \"../../merge-props/index.mjs\";\nimport { stringifyAsLabel, stringifyAsValue, flattenLeafItems, isGroupedItems } from \"../../internals/resolveValueLabel.mjs\";\nimport { compareItemEquality, defaultItemEquality, findItemIndex, findSelectionIndex, isSelectedValueDirty, removeItem, selectedValueIncludes } from \"../../internals/itemEquality.mjs\";\nimport { INITIAL_LAST_HIGHLIGHT, NO_ACTIVE_VALUE } from \"./utils/constants.mjs\";\nimport { useDirection } from \"../../internals/direction-context/DirectionContext.mjs\";\nimport { findCollectionItem } from \"../items/itemCollection.mjs\";\n\n/**\n * @internal\n */\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function AriaCombobox(props) {\n const {\n id: idProp,\n onOpenChangeComplete: onOpenChangeCompleteProp,\n defaultSelectedValue = null,\n selectedValue: selectedValueProp,\n onSelectedValueChange,\n defaultInputValue,\n inputValue: inputValueProp,\n open: openProp,\n defaultOpen = false,\n selectionMode,\n onItemHighlighted: onItemHighlightedProp,\n name: nameProp,\n form,\n disabled: disabledProp = false,\n readOnly = false,\n required = false,\n inputRef: inputRefProp,\n grid = false,\n items: itemsProp,\n filteredItems: filteredItemsProp,\n filter: filterProp,\n filterQuery: filterQueryProp,\n openOnInputClick = true,\n autoHighlight = false,\n keepHighlight = false,\n highlightItemOnHover = true,\n loopFocus = true,\n itemToStringLabel: itemToStringLabelProp,\n itemToStringValue,\n isItemEqualToValue = defaultItemEquality,\n virtualized = false,\n inline: inlineProp = false,\n fillInputOnItemPress = true,\n modal = false,\n limit = -1,\n autoComplete = 'list',\n formAutoComplete,\n locale,\n submitOnItemClick = false\n } = props;\n const {\n clearErrors\n } = useFormContext();\n const {\n setDirty,\n validityData,\n setFilled,\n name: fieldName,\n disabled: fieldDisabled,\n setTouched,\n setFocused,\n validationMode,\n validation\n } = useFieldRootContext();\n const direction = useDirection();\n const id = useLabelableId({\n id: idProp\n });\n const collatorFilter = useCoreFilter({\n locale\n });\n\n // Plain items are arrays; normalized `createItems()` collections are objects.\n const collection = Array.isArray(itemsProp) ? null : itemsProp;\n if (collection && typeof collection.label !== 'function') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: the `items` prop received an object that is not a collection, ' + 'so its items cannot be read. Pass an array of items, an array of groups with items, ' + 'or the result of `createItems()`. ' + 'See https://base-ui.com/react/components/combobox#createitems' : _formatErrorMessage(100));\n }\n const items = collection ? collection.data : itemsProp;\n const itemToValue = collection?.value;\n\n // A projected collection's items live in the source domain, not the selection-value domain the\n // store matches against, so they are withheld from the store.\n const storeItems = itemToValue ? undefined : items;\n\n // The externally filtered items projected to their selection values, with a lookup back to the\n // source items. Declared before `itemToStringLabel`, which resolves labels from it on the\n // first render (initial input value).\n const externalWindow = React.useMemo(() => {\n if (!filteredItemsProp || !itemToValue) {\n return undefined;\n }\n const flat = flattenLeafItems(filteredItemsProp);\n const values = flat.map(itemToValue);\n let valueToItem;\n return {\n values,\n findItem(itemValue, isEqual) {\n if (!valueToItem) {\n valueToItem = new Map();\n for (let i = 0; i < values.length; i += 1) {\n if (!valueToItem.has(values[i])) {\n valueToItem.set(values[i], flat[i]);\n }\n }\n }\n return findCollectionItem(valueToItem, itemValue, isEqual);\n }\n };\n }, [filteredItemsProp, itemToValue]);\n\n // Labels selection values from current props only: collection data first, then the current\n // external window, then the prop. Nothing from a past window is remembered — keeping a value\n // resolvable over time means keeping its item in the collection's data.\n const itemToStringLabel = React.useMemo(() => {\n if (!collection) {\n return itemToStringLabelProp;\n }\n return itemValue => {\n return collection.label(itemValue, isItemEqualToValue, unresolvedValue => {\n const externalItem = externalWindow?.findItem(unresolvedValue, isItemEqualToValue);\n if (externalItem != null) {\n return collection.itemLabel(externalItem);\n }\n return stringifyAsLabel(unresolvedValue, itemToStringLabelProp);\n });\n };\n }, [collection, itemToStringLabelProp, externalWindow, isItemEqualToValue]);\n const filterItemToString = React.useMemo(() => {\n if (!collection) {\n return itemToStringLabelProp;\n }\n return Object.assign(item => collection.itemLabel(item), {\n selected: value => stringifyAsLabel(value, itemToStringLabel)\n });\n }, [collection, itemToStringLabel, itemToStringLabelProp]);\n function stringifyValueLabel(item) {\n return stringifyAsLabel(item, itemToStringLabel);\n }\n const [queryChangedAfterOpen, setQueryChangedAfterOpen] = React.useState(false);\n const [closeQuery, setCloseQuery] = React.useState(null);\n const previousCloseQueryRef = React.useRef(closeQuery);\n const listRef = React.useRef([]);\n const labelsRef = React.useRef([]);\n const popupRef = React.useRef(null);\n const inputRef = React.useRef(null);\n const startDismissRef = React.useRef(null);\n const endDismissRef = React.useRef(null);\n const emptyRef = React.useRef(null);\n const hadInputClearRef = React.useRef(false);\n const chipsContainerRef = React.useRef(null);\n const clearRef = React.useRef(null);\n const selectionEventRef = React.useRef(null);\n const lastHighlightRef = React.useRef(INITIAL_LAST_HIGHLIGHT);\n const pendingQueryHighlightRef = React.useRef(null);\n\n /**\n * Contains the currently visible list of item values post-filtering.\n */\n const valuesRef = React.useRef([]);\n /**\n * The item element that received the last `pointerdown`, used to detect whether a\n * `mouseup` on an item belongs to a drag-select gesture that started elsewhere.\n */\n const pointerDownItemRef = React.useRef(null);\n const disabled = fieldDisabled || disabledProp;\n const name = fieldName ?? nameProp;\n const multiple = selectionMode === 'multiple';\n const single = selectionMode === 'single';\n const hasInputValue = inputValueProp !== undefined || defaultInputValue !== undefined;\n const hasItems = items !== undefined;\n const hasFilteredItemsProp = filteredItemsProp !== undefined;\n let autoHighlightMode;\n if (autoHighlight === 'always') {\n autoHighlightMode = 'always';\n } else {\n autoHighlightMode = autoHighlight ? 'input-change' : false;\n }\n const [selectedValue, setSelectedValueUnwrapped] = useControlled({\n controlled: selectedValueProp,\n default: multiple ? defaultSelectedValue ?? EMPTY_ARRAY : defaultSelectedValue,\n name: 'Combobox',\n state: 'selectedValue'\n });\n const filter = React.useMemo(() => {\n if (filterProp === null) {\n return () => true;\n }\n if (filterProp !== undefined) {\n return filterProp;\n }\n // `shouldBypassFiltering` already empties the query whenever a single selection's label\n // matches it exactly, so the filter never needs a selection-aware variant here.\n return createCollatorItemFilter(collatorFilter, filterItemToString);\n }, [filterProp, collatorFilter, filterItemToString]);\n\n // If neither inputValue nor defaultInputValue are provided, derive it from the\n // selected value for single mode so the input reflects the selection on mount.\n const initialDefaultInputValue = useRefWithInit(() => {\n if (hasInputValue) {\n return defaultInputValue ?? '';\n }\n if (single) {\n return stringifyValueLabel(selectedValue);\n }\n return '';\n }).current;\n const [inputValue, setInputValueUnwrapped] = useControlled({\n controlled: inputValueProp,\n default: initialDefaultInputValue,\n name: 'Combobox',\n state: 'inputValue'\n });\n const [open, setOpenUnwrapped] = useControlled({\n controlled: openProp,\n default: defaultOpen,\n name: 'Combobox',\n state: 'open'\n });\n const isGrouped = isGroupedItems(items);\n const query = !open && closeQuery !== null ? closeQuery : String(inputValue).trim();\n const selectedLabelString = single ? stringifyValueLabel(selectedValue) : '';\n const shouldBypassFiltering = single && !queryChangedAfterOpen && query !== '' && selectedLabelString.length === query.length && collatorFilter.contains(selectedLabelString, query);\n const filterQuery = shouldBypassFiltering ? '' : filterQueryProp ?? query;\n const shouldIgnoreExternalFiltering = hasItems && hasFilteredItemsProp && shouldBypassFiltering && (!collection || collection.hasValue(selectedValue, isItemEqualToValue));\n const flatItems = React.useMemo(() => items ? flattenLeafItems(items) : EMPTY_ARRAY, [items]);\n const filteredItems = React.useMemo(() => {\n if (filteredItemsProp && !shouldIgnoreExternalFiltering) {\n return filteredItemsProp;\n }\n if (!items) {\n return EMPTY_ARRAY;\n }\n if (isGrouped) {\n const groupedItems = items;\n const resultingGroups = [];\n let currentCount = 0;\n for (const group of groupedItems) {\n if (limit > -1 && currentCount >= limit) {\n break;\n }\n const remainingLimit = limit > -1 ? limit - currentCount : Infinity;\n const itemsToTake = filterQuery === '' ? group.items.slice(0, remainingLimit) : [];\n if (filterQuery !== '') {\n for (const item of group.items) {\n if (itemsToTake.length >= remainingLimit) {\n break;\n }\n if (filter(item, filterQuery, filterItemToString)) {\n itemsToTake.push(item);\n }\n }\n }\n if (itemsToTake.length > 0) {\n const newGroup = {\n ...group,\n items: itemsToTake\n };\n resultingGroups.push(newGroup);\n currentCount += itemsToTake.length;\n }\n }\n return resultingGroups;\n }\n if (filterQuery === '') {\n return limit > -1 ? flatItems.slice(0, limit) :\n // The cast here is done as `flatItems` is readonly.\n // valuesRef.current, a mutable ref, can be set to `flatFilteredValues`, which may\n // reference this exact readonly value, creating a mutation risk.\n // However, <Combobox.Item> can never mutate this value as the mutating effect\n // bails early when `items` is provided, and this is only ever returned\n // when `items` is provided due to the early return at the top of this hook.\n flatItems;\n }\n const limitedItems = [];\n for (const item of flatItems) {\n if (limit > -1 && limitedItems.length >= limit) {\n break;\n }\n if (filter(item, filterQuery, filterItemToString)) {\n limitedItems.push(item);\n }\n }\n return limitedItems;\n }, [filteredItemsProp, shouldIgnoreExternalFiltering, items, isGrouped, filterQuery, limit, filter, filterItemToString, flatItems]);\n\n /**\n * The filtered items flattened across groups and projected to their selection values.\n */\n const flatFilteredValues = React.useMemo(() => {\n if (externalWindow && filteredItems === filteredItemsProp) {\n return externalWindow.values;\n }\n // Explicit type argument: inferring it from a union of both shapes resolves `Item` to\n // `Group<Item>`, which tsc rejects and tsgo does not.\n const flat = flattenLeafItems(filteredItems);\n return itemToValue ? flat.map(item => itemToValue(item)) : flat;\n }, [filteredItems, filteredItemsProp, externalWindow, itemToValue]);\n const store = useRefWithInit(() => {\n // An inline list open on the first render never gets a closed pass of the closed-state\n // sync effect below, and `items`-prop lists don't self-register their index the way\n // individually rendered `<Combobox.Item>`s do, so the selected item was never highlighted.\n // Seeding the index here lets list navigation highlight and scroll to the selection on\n // mount. Computed once by construction, so a selection or list that resolves after mount\n // doesn't move an existing highlight or scroll the list away.\n let initialSelectedIndex = null;\n if (inlineProp && open && hasItems && selectionMode !== 'none') {\n initialSelectedIndex = findSelectionIndex(flatFilteredValues, selectedValue, isItemEqualToValue, multiple);\n }\n return new ReactStore({\n id,\n labelId: undefined,\n selectedValue,\n open,\n items: storeItems,\n selectionMode,\n name,\n form,\n disabled,\n readOnly,\n required,\n grid,\n virtualized,\n openOnInputClick,\n itemToStringLabel,\n isItemEqualToValue,\n modal,\n autoHighlight: autoHighlightMode,\n submitOnItemClick,\n hasInputValue,\n mounted: false,\n forceMounted: false,\n transitionStatus: 'idle',\n inline: inlineProp,\n activeIndex: null,\n selectedIndex: initialSelectedIndex,\n popupProps: {},\n listProps: {},\n inputProps: {},\n triggerProps: {},\n itemRoot: {\n props: EMPTY_OBJECT,\n id,\n selectionMode,\n disabled,\n readOnly,\n isItemEqualToValue\n },\n positionerElement: null,\n listElement: null,\n popupId: undefined,\n triggerElement: null,\n inputElement: null,\n inputGroupElement: null,\n popupSide: null,\n openMethod: null,\n inputInsidePopup: true,\n // Avoid duplicate names in the server HTML. Popup inputs aren't rendered\n // until after hydration, so the hidden input takes over then if needed.\n inputOwnsFormValue: selectionMode === 'none'\n }, {\n // Placeholder callbacks replaced on first render\n onOpenChangeComplete: NOOP,\n setOpen: NOOP,\n setInputValue: NOOP,\n setSelectedValue: NOOP,\n setIndices: NOOP,\n handleSelection: NOOP,\n forceMount: NOOP,\n requestSubmit: NOOP,\n listRef,\n labelsRef,\n popupRef,\n emptyRef,\n inputRef,\n startDismissRef,\n endDismissRef,\n chipsContainerRef,\n clearRef,\n valuesRef,\n pointerDownItemRef,\n selectionEventRef\n }, selectors);\n }).current;\n const fieldRawValue = selectionMode === 'none' ? inputValue : selectedValue;\n const fieldStringValue = React.useMemo(() => {\n if (selectionMode === 'none') {\n return fieldRawValue;\n }\n if (Array.isArray(selectedValue)) {\n return selectedValue.map(value => stringifyAsValue(value, itemToStringValue));\n }\n return stringifyAsValue(selectedValue, itemToStringValue);\n }, [fieldRawValue, itemToStringValue, selectionMode, selectedValue]);\n const onItemHighlighted = useStableCallback(onItemHighlightedProp);\n const onOpenChangeComplete = useStableCallback(onOpenChangeCompleteProp);\n const activeIndex = store.useState('activeIndex');\n const selectedIndex = store.useState('selectedIndex');\n const positionerElement = store.useState('positionerElement');\n const listElement = store.useState('listElement');\n const triggerElement = store.useState('triggerElement');\n const inputElement = store.useState('inputElement');\n const inputGroupElement = store.useState('inputGroupElement');\n const inline = store.useState('inline');\n const inputInsidePopup = store.useState('inputInsidePopup');\n const inputOwnsFormValue = store.useState('inputOwnsFormValue');\n const inputMatchesSelectedValue = single && !inputInsidePopup && inputValue === selectedLabelString;\n const triggerRef = useValueAsRef(triggerElement);\n const {\n openMethod,\n triggerProps\n } = useOpenInteractionType(open);\n const getStringifiedValueForForm = useStableCallback(() => fieldStringValue);\n useRegisterFieldControl(inputInsidePopup ? triggerRef : inputRef, id, fieldRawValue, getStringifiedValueForForm, !disabled, nameProp);\n const forceMount = useStableCallback(() => {\n if (items) {\n // Ensure typeahead works on a closed list.\n labelsRef.current = flatFilteredValues.map(stringifyValueLabel);\n } else {\n store.set('forceMounted', true);\n }\n });\n\n /**\n * Emits `onItemHighlighted` for the item at `index`, or clears the highlight when `index` is `-1`\n * (a no-op if nothing was highlighted). Keeps `lastHighlightRef` in sync with what was emitted.\n */\n const emitHighlight = useStableCallback((value, index, type, event) => {\n if (index === -1) {\n if (lastHighlightRef.current === INITIAL_LAST_HIGHLIGHT) {\n return;\n }\n lastHighlightRef.current = INITIAL_LAST_HIGHLIGHT;\n } else {\n lastHighlightRef.current = {\n value,\n index\n };\n }\n onItemHighlighted(value, createGenericEventDetails(type, event, {\n index\n }));\n });\n const setIndices = useStableCallback(options => {\n const update = {};\n if (options.activeIndex !== undefined) {\n update.activeIndex = options.activeIndex;\n }\n if (options.selectedIndex !== undefined) {\n update.selectedIndex = options.selectedIndex;\n }\n store.update(update);\n const activeIndexOption = options.activeIndex;\n if (activeIndexOption === undefined) {\n return;\n }\n const type = options.type || REASONS.none;\n if (activeIndexOption === null) {\n emitHighlight(undefined, -1, type, options.event);\n } else {\n emitHighlight(valuesRef.current[activeIndexOption], activeIndexOption, type, options.event);\n }\n });\n const setInputValue = useStableCallback((next, eventDetails) => {\n props.onInputValueChange?.(next, eventDetails);\n if (eventDetails.isCanceled) {\n return;\n }\n\n // A canceled selection clear must not suppress close-completion cleanup.\n hadInputClearRef.current = eventDetails.reason === REASONS.inputClear;\n\n // If user is typing, ensure we don't auto-highlight on open due to a race\n // with the post-open effect that sets this flag.\n if (eventDetails.reason === REASONS.inputChange) {\n // A controlled popup may ignore a close request. Resuming input proves the popup\n // is remaining open, so release the query captured for an exit animation.\n if (open && closeQuery !== null) {\n setCloseQuery(null);\n }\n const event = eventDetails.event;\n const inputType = event.inputType;\n // Treat composition commits as typed input; autofill may omit `inputType` or\n // report `insertReplacementText`.\n const isTypedInput = event.type === 'compositionend' || inputType != null && inputType !== '' && inputType !== 'insertReplacementText';\n if (isTypedInput) {\n const hasQuery = next.trim() !== '';\n if (hasQuery) {\n setQueryChangedAfterOpen(true);\n }\n // Defer index updates until after the filtered items have been derived to ensure\n // `onItemHighlighted` receives the latest item.\n pendingQueryHighlightRef.current = {\n hasQuery\n };\n\n // Virtualized lists own their scroller. Reset regular lists directly so a stale\n // composite registry cannot select a reordered item and scrolling cannot escape\n // the popup.\n const list = store.state.listElement;\n if (!store.state.virtualized && list) {\n const popup = popupRef.current;\n for (const ancestor of getOverflowAncestors(list.firstElementChild ?? list)) {\n if (!isHTMLElement(ancestor) || (popup ? !contains(popup, ancestor) : ancestor.getAttribute('role') === 'dialog')) {\n break;\n }\n if (isScrollableY(ancestor)) {\n ancestor.scrollTop = 0;\n break;\n }\n }\n }\n if (hasQuery && autoHighlightMode && store.state.activeIndex == null && (open || inline)) {\n store.set('activeIndex', 0);\n }\n }\n } else if (eventDetails.reason === REASONS.inputClear && next === '' && store.state.inputInsidePopup) {\n // A programmatic clear of an active query (e.g. after selecting an item with the\n // input inside the popup): restore the highlight to the selected item.\n pendingQueryHighlightRef.current = {\n hasQuery: false,\n selection: true\n };\n }\n setInputValueUnwrapped(next);\n });\n const handleInterruptedReopen = useStableCallback(isInputChange => {\n // Preserve values supplied with the reopen rather than owned by the interrupted close.\n const clearsPendingInput = !isInputChange && inputInsidePopup && !inline && inputValue !== '' && (String(inputValue).trim() === closeQuery || inputValue === selectedLabelString);\n\n // Keep the flag while a visible filter survives so the `items` sync cannot overwrite it.\n if (!isInputChange && (clearsPendingInput || inputValue === '' || inputMatchesSelectedValue)) {\n setQueryChangedAfterOpen(false);\n }\n setCloseQuery(null);\n if (clearsPendingInput) {\n // Cleanup clears omit the selection flag and reopening gesture.\n setInputValue('', createChangeEventDetails(REASONS.inputClear));\n }\n });\n const [preventUnmountOnClose, setPreventUnmountOnClose] = React.useState(false);\n const setOpen = useStableCallback((nextOpen, eventDetails) => {\n if (open === nextOpen) {\n return;\n }\n\n // If the `Empty` component is not used, the positioner or popup should be hidden\n // with CSS. In this case, allow the Escape key to bubble to close a parent popup\n // if there are no items to show.\n if (eventDetails.reason === REASONS.escapeKey && hasItems && flatFilteredValues.length === 0 && !emptyRef.current) {\n eventDetails.allowPropagation();\n }\n const openEventDetails = eventDetails;\n const shouldPreventUnmountOnClose = attachPreventUnmountOnClose(openEventDetails);\n props.onOpenChange?.(nextOpen, openEventDetails);\n\n // A typed request must not highlight a later open: discard it when its own open is\n // rejected, or when any other open change goes through.\n if (pendingQueryHighlightRef.current?.hasQuery && eventDetails.reason === REASONS.inputChange === eventDetails.isCanceled) {\n pendingQueryHighlightRef.current = null;\n }\n if (eventDetails.isCanceled) {\n return;\n }\n if (nextOpen && closeQuery !== null) {\n // `ComboboxInput` calls `setInputValue` before `setOpen`, so on an input-change reopen\n // `inputValue` is still the pre-keystroke value and the typed filter always survives.\n handleInterruptedReopen(eventDetails.reason === REASONS.inputChange);\n }\n if (!nextOpen && queryChangedAfterOpen) {\n if (single) {\n if (!inline) {\n setCloseQuery(query);\n }\n // Avoid a flicker when closing the popup with an empty query.\n if (query === '') {\n setQueryChangedAfterOpen(false);\n }\n } else if (multiple) {\n if (!inline) {\n // Freeze the current query so filtering remains stable while exiting.\n setCloseQuery(query);\n }\n if (inputInsidePopup) {\n setIndices({\n activeIndex: null\n });\n }\n\n // Clear the input immediately on close while retaining filtering via closeQuery for exit animations\n // if the input is outside the popup. When the input is inside the popup, defer the clear until\n // unmount so the filtered list doesn't flash to unfiltered during the exit animation.\n if (!inputInsidePopup || inline) {\n setInputValue('', createChangeEventDetails(REASONS.inputClear, eventDetails.event, undefined, {\n isItemPress: eventDetails.reason === REASONS.itemPress\n }));\n }\n }\n }\n if (!nextOpen) {\n setPreventUnmountOnClose(shouldPreventUnmountOnClose());\n }\n setOpenUnwrapped(nextOpen);\n if (!nextOpen && inputInsidePopup && (eventDetails.reason === REASONS.focusOut || eventDetails.reason === REASONS.outsidePress)) {\n setTouched(true);\n setFocused(false);\n if (validationMode === 'onBlur') {\n const valueToValidate = selectionMode === 'none' ? inputValue : selectedValue;\n validation.commit(valueToValidate);\n }\n }\n });\n const setSelectedValue = useStableCallback((nextValue, eventDetails) => {\n // Cast to `any` due to conditional value type (single vs. multiple).\n // The runtime implementation already ensures the correct value shape.\n onSelectedValueChange?.(nextValue, eventDetails);\n if (eventDetails.isCanceled) {\n return;\n }\n setSelectedValueUnwrapped(nextValue);\n const shouldFillInput = selectionMode === 'none' && popupRef.current && fillInputOnItemPress || single && !store.state.inputInsidePopup;\n if (shouldFillInput) {\n setInputValue(stringifyValueLabel(nextValue), createChangeEventDetails(eventDetails.reason, eventDetails.event));\n }\n });\n const handleSelection = useStableCallback((event, itemValue) => {\n const targetEl = getTarget(event);\n const overrideEvent = selectionEventRef.current ?? event;\n selectionEventRef.current = null;\n const eventDetails = createChangeEventDetails(REASONS.itemPress, overrideEvent);\n\n // Let the link handle the click.\n const href = closest(targetEl, 'a')?.getAttribute('href');\n if (href) {\n if (href.startsWith('#')) {\n setOpen(false, eventDetails);\n }\n return;\n }\n if (multiple) {\n const currentSelectedValue = Array.isArray(selectedValue) ? selectedValue : [];\n const isCurrentlySelected = selectedValueIncludes(currentSelectedValue, itemValue, isItemEqualToValue);\n const nextValue = isCurrentlySelected ? removeItem(currentSelectedValue, itemValue, isItemEqualToValue) : [...currentSelectedValue, itemValue];\n setSelectedValue(nextValue, eventDetails);\n if (eventDetails.isCanceled) {\n return;\n }\n const wasFiltering = inputRef.current ? inputRef.current.value.trim() !== '' : false;\n if (!wasFiltering) {\n return;\n }\n if (store.state.inputInsidePopup) {\n setInputValue('', createChangeEventDetails(REASONS.inputClear, eventDetails.event, undefined, {\n isItemPress: true\n }));\n // A newly selected item stays highlighted through the clear; a deselection\n // falls back to the standard selection anchor.\n const pendingHighlight = pendingQueryHighlightRef.current;\n if (pendingHighlight && !isCurrentlySelected) {\n pendingHighlight.toggledValue = itemValue;\n }\n } else {\n setOpen(false, eventDetails);\n }\n } else {\n setSelectedValue(itemValue, eventDetails);\n if (eventDetails.isCanceled) {\n return;\n }\n setOpen(false, eventDetails);\n }\n });\n const requestSubmit = useStableCallback(() => {\n const formElement = validation.inputRef.current?.form ?? store.state.inputElement?.form;\n if (formElement && typeof formElement.requestSubmit === 'function') {\n formElement.requestSubmit();\n }\n });\n const handleUnmountCleanup = useStableCallback(() => {\n onOpenChangeComplete?.(false);\n setQueryChangedAfterOpen(false);\n setCloseQuery(null);\n if (selectionMode === 'none') {\n setIndices({\n activeIndex: null,\n selectedIndex: null\n });\n } else {\n setIndices({\n activeIndex: null\n });\n }\n\n // Multiple selection mode:\n // If the user typed a filter and didn't select in multiple mode, clear the input\n // after close completes to avoid mid-exit flicker and start fresh on next open.\n if (multiple && inputRef.current && inputRef.current.value !== '' && !hadInputClearRef.current) {\n setInputValue('', createChangeEventDetails(REASONS.inputClear));\n }\n\n // Single selection mode:\n // - If input is rendered inside the popup, clear it so the next open is blank\n // - If input is outside the popup, sync it to the selected value\n if (single) {\n if (store.state.inputInsidePopup) {\n if (inputRef.current && inputRef.current.value !== '') {\n setInputValue('', createChangeEventDetails(REASONS.inputClear));\n }\n } else {\n const stringVal = stringifyValueLabel(selectedValue);\n if (inputRef.current && inputRef.current.value !== stringVal) {\n // If no selection was made, treat this as clearing the typed filter.\n const reason = stringVal === '' ? REASONS.inputClear : REASONS.none;\n setInputValue(stringVal, createChangeEventDetails(reason));\n }\n }\n }\n });\n\n // Support composing the Dialog component around an inline combobox.\n // `[role=\"dialog\"]` is more interoperable than using a context, e.g. it can work\n // with third-party modal libraries, though the limitation is that the closest\n // `role=dialog` part must be the animated element.\n const resolvedPopupRef = React.useMemo(() => {\n if (inline && positionerElement) {\n return {\n current: closest(positionerElement, '[role=\"dialog\"]')\n };\n }\n return popupRef;\n }, [inline, positionerElement]);\n const {\n mounted,\n transitionStatus,\n forceUnmount: handleUnmount\n } = useUnmountAfterClose({\n open,\n ref: resolvedPopupRef,\n preventUnmountOnClose,\n setPreventUnmountOnClose,\n onUnmount: handleUnmountCleanup\n });\n React.useImperativeHandle(props.actionsRef, () => ({\n unmount: handleUnmount,\n close: () => setOpen(false, createChangeEventDetails(REASONS.imperativeAction))\n }), [handleUnmount, setOpen]);\n useIsoLayoutEffect(function syncSelectedIndex() {\n const closeQueryReleased = previousCloseQueryRef.current !== null && closeQuery === null;\n previousCloseQueryRef.current = closeQuery;\n\n // Closing indexes against the frozen filtered list. Reopening releases that query, so its\n // rendered coordinates must be synchronized again even though the popup is already open.\n if (open && (!closeQueryReleased || !hasItems)) {\n return;\n }\n\n // State-driven (not tied to the internal event path) so controlled closes\n // also clear a pointerdown that never received a matching item mouseup.\n if (!open) {\n pointerDownItemRef.current = null;\n }\n if (selectionMode === 'none') {\n return;\n }\n\n // Without `items`, look the selection up in the live registry of mounted item\n // values (the list stays mounted while closed when closed-state features need\n // it — trigger interaction and rendered-label autofill force-mount it). Mounted\n // items re-assert the index themselves when their registration moves; when\n // nothing is mounted the lookup resolves to `null` and each item re-registers\n // the index on the next open.\n // Keep the selected index in the coordinates of the list that is actually rendered.\n const registry = hasItems ? flatFilteredValues : valuesRef.current;\n setIndices({\n selectedIndex: findSelectionIndex(registry, selectedValue, isItemEqualToValue, multiple)\n });\n }, [open, closeQuery, selectedValue, selectionMode, multiple, hasItems, flatFilteredValues, isItemEqualToValue, setIndices]);\n useIsoLayoutEffect(() => {\n if (items) {\n valuesRef.current = flatFilteredValues;\n listRef.current.length = flatFilteredValues.length;\n }\n }, [items, flatFilteredValues]);\n useIsoLayoutEffect(() => {\n // Controlled closes can bypass `setOpen`, and their exit animation may be interrupted.\n if (!open && pendingQueryHighlightRef.current?.hasQuery) {\n pendingQueryHighlightRef.current = null;\n }\n }, [open]);\n useIsoLayoutEffect(() => {\n // A kept-mounted dialog hides its inline list on close. Discard query-clear restoration\n // before it can overwrite the cleared highlight or report an item from the unfiltered list.\n if (!open && inline && resolvedPopupRef.current) {\n pendingQueryHighlightRef.current = null;\n return;\n }\n const candidateItems = hasItems || hasFilteredItemsProp ? flatFilteredValues : valuesRef.current;\n const pendingHighlight = pendingQueryHighlightRef.current;\n if (pendingHighlight) {\n // A directly rendered list remains visible when the popup state is closed, while a\n // kept-mounted Positioner is hidden and should stay inert.\n const listIsNavigable = open || inline || store.state.positionerElement?.hidden === false;\n if (pendingHighlight.hasQuery) {\n const input = inputRef.current;\n // Keep the request while results or a controlled popup opening are pending,\n // but do not restore an inline highlight after focus has left the input.\n if (!autoHighlightMode || String(inputValue).trim() === '' || inline && autoHighlightMode !== 'always' && (!input || activeElement(input.ownerDocument) !== input)) {\n pendingQueryHighlightRef.current = null;\n } else if (listIsNavigable && (\n // Individually rendered items register without re-running this effect, and their\n // registry has holes mid-reindex, so resolve their request immediately.\n candidateItems[0] !== undefined || !hasItems && !hasFilteredItemsProp)) {\n store.set('activeIndex', 0);\n pendingQueryHighlightRef.current = null;\n }\n } else if (String(inputValue).trim() === '') {\n // Only handle the clear once it has committed (a controlled input may reject it),\n // so a restore cannot fire while a query is still active.\n pendingQueryHighlightRef.current = null;\n if (listIsNavigable) {\n const clearedBySelection = pendingHighlight.selection;\n if (autoHighlightMode === 'always' && !clearedBySelection && store.state.selectionMode === 'none') {\n // There is no selection to restore in Autocomplete. Keep the first-item reset\n // synchronous so list navigation sees it before a directly rendered list closes.\n store.set('activeIndex', 0);\n }\n\n // Items re-mounted by the clear publish their composite indices in a follow-up\n // commit, so the item registries are mid-update here. Defer past React's cascade.\n queueMicrotask(() => {\n if (!store.state.open && (!store.state.inline || resolvedPopupRef.current) || inputRef.current && inputRef.current.value.trim() !== '') {\n return;\n }\n\n // Return the highlight to the selected item, the same anchor the popup uses\n // when it first opens. Read the selection through the store so consumers can\n // pass an inline `isItemEqualToValue` or a fresh `selectedValue` array without\n // re-running this effect on every render.\n const currentSelectedValue = store.state.selectedValue;\n const isMultiple = store.state.selectionMode === 'multiple';\n const hasSelection = isMultiple && Array.isArray(currentSelectedValue) ? currentSelectedValue.length > 0 : store.state.selectionMode !== 'none' && currentSelectedValue != null;\n if (hasSelection) {\n const registry = hasItems || hasFilteredItemsProp ? flatFilteredValues : valuesRef.current;\n // A selection-driven clear keeps the just-selected item highlighted;\n // otherwise return to the open anchor. A selection that is no longer in\n // the list drops the highlight rather than leaving it on whichever item\n // now occupies that index.\n // `findItemIndex` resolves to -1 when no value was toggled.\n const toggledIndex = findItemIndex(registry, pendingHighlight.toggledValue, store.state.isItemEqualToValue);\n store.set('activeIndex', toggledIndex !== -1 ? toggledIndex : findSelectionIndex(registry, currentSelectedValue, store.state.isItemEqualToValue, isMultiple));\n } else if (clearedBySelection) {\n store.set('activeIndex', null);\n } else if (autoHighlightMode === 'always') {\n store.set('activeIndex', 0);\n }\n });\n }\n }\n }\n if (!open && !inline) {\n return;\n }\n const storeActiveIndex = store.state.activeIndex;\n if (storeActiveIndex == null) {\n if (autoHighlightMode === 'always' && candidateItems.length > 0) {\n store.set('activeIndex', 0);\n return;\n }\n emitHighlight(undefined, -1, REASONS.none);\n return;\n }\n if (storeActiveIndex >= candidateItems.length) {\n emitHighlight(undefined, -1, REASONS.none);\n store.set('activeIndex', null);\n return;\n }\n const itemValue = candidateItems[storeActiveIndex];\n const previouslyHighlightedItemValue = lastHighlightRef.current.value;\n const isSameItem = previouslyHighlightedItemValue !== NO_ACTIVE_VALUE && compareItemEquality(itemValue, previouslyHighlightedItemValue, store.state.isItemEqualToValue);\n if (lastHighlightRef.current.index !== storeActiveIndex || !isSameItem) {\n emitHighlight(itemValue, storeActiveIndex, REASONS.none);\n }\n }, [activeIndex, autoHighlightMode, emitHighlight, hasFilteredItemsProp, hasItems, flatFilteredValues, inline, open, resolvedPopupRef, store,\n // Reruns the effect when the query changes without affecting the deps above, such as\n // clearing the input when no items are filtered out (individually rendered items).\n inputValue]);\n useIsoLayoutEffect(() => {\n if (selectionMode === 'none') {\n setFilled(String(inputValue) !== '');\n return;\n }\n setFilled(multiple ? Array.isArray(selectedValue) && selectedValue.length > 0 : selectedValue != null);\n }, [setFilled, selectionMode, inputValue, selectedValue, multiple]);\n\n // Ensures that the active index is not set to 0 when the list is empty.\n // This avoids needing to press ArrowDown twice under certain conditions.\n React.useEffect(() => {\n if (hasItems && autoHighlightMode && flatFilteredValues.length === 0) {\n setIndices({\n activeIndex: null\n });\n }\n }, [hasItems, autoHighlightMode, flatFilteredValues.length, setIndices]);\n function handleQueryChanged() {\n if (open && query !== '' && query !== String(initialDefaultInputValue) && !inputMatchesSelectedValue) {\n setQueryChangedAfterOpen(true);\n }\n }\n function handleOpenChanged() {\n // A controlled `open` prop can interrupt the close without calling `setOpen`.\n if (open && closeQuery !== null) {\n handleInterruptedReopen(false);\n }\n }\n\n // These sync triggers can run in the same commit while still seeing the pre-commit `inputValue`.\n // This render-scoped flag prevents duplicate callbacks and resets so canceled writes can retry.\n let syncedSelectedLabel = false;\n function syncInputToSelectedLabel() {\n if (!syncedSelectedLabel && inputValue !== selectedLabelString) {\n syncedSelectedLabel = true;\n setInputValue(selectedLabelString, createChangeEventDetails(REASONS.none));\n }\n }\n function handleSelectedValueChanged() {\n if (selectionMode === 'none') {\n return;\n }\n clearErrors(name);\n setDirty(isSelectedValueDirty(selectedValue, validityData.initialValue, isItemEqualToValue));\n validation.change(selectedValue);\n if (single && !hasInputValue && !inputInsidePopup) {\n syncInputToSelectedLabel();\n }\n }\n\n // The label catches accessor changes while the items identity restores the selected label after\n // a one-step input clear followed by a data reload. The shared sync prevents duplicate writes\n // when both change in the same commit.\n function syncInputAfterItemsOrLabelChange() {\n if (single && !hasInputValue && !inputInsidePopup && !queryChangedAfterOpen) {\n syncInputToSelectedLabel();\n }\n }\n function handleInputValueChanged() {\n if (selectionMode !== 'none') {\n return;\n }\n clearErrors(name);\n setDirty(inputValue !== validityData.initialValue);\n validation.change(inputValue);\n }\n useValueChanged(query, handleQueryChanged);\n useValueChanged(open, handleOpenChanged);\n useValueChanged(selectedValue, handleSelectedValueChanged);\n useValueChanged(selectedLabelString, syncInputAfterItemsOrLabelChange);\n useValueChanged(items, syncInputAfterItemsOrLabelChange);\n useValueChanged(inputValue, handleInputValueChanged);\n const floatingRootContext = useFloatingRootContext({\n open: inline ? true : open,\n onOpenChange: setOpen,\n elements: {\n reference: inputInsidePopup ? triggerElement : inputElement,\n floating: positionerElement\n }\n });\n const ariaHasPopup = grid ? 'grid' : 'listbox';\n // An inline list isn't gated on `open`: it renders for as long as it's in the tree, so the\n // combobox is permanently expanded even while the internal open state is `false`.\n const expanded = open || inline;\n const ariaExpanded = expanded ? 'true' : 'false';\n const role = React.useMemo(() => {\n const isPlainInput = inputElement?.tagName === 'INPUT';\n // During SSR and initial hydration, the input ref is not available yet.\n // Assume an input-like control so combobox ARIA attributes are present.\n const shouldTreatAsInput = inputElement == null || isPlainInput;\n // A non-input control only takes on combobox semantics while the list is exposed, which for\n // an inline list is the whole time.\n const shouldApplyAria = shouldTreatAsInput || expanded;\n const reference = shouldTreatAsInput ? {\n autoComplete: 'off',\n spellCheck: 'false',\n autoCorrect: 'off',\n autoCapitalize: 'none'\n } : {};\n if (shouldApplyAria) {\n reference.role = 'combobox';\n reference['aria-expanded'] = ariaExpanded;\n reference['aria-haspopup'] = ariaHasPopup;\n reference['aria-controls'] = expanded ? listElement?.id : undefined;\n // `readOnly` accepts no input, so no completion of any kind is offered.\n reference['aria-autocomplete'] = readOnly ? 'none' : autoComplete;\n }\n return {\n reference,\n floating: {\n role: 'presentation'\n }\n };\n }, [inputElement, expanded, ariaExpanded, ariaHasPopup, listElement?.id, autoComplete, readOnly]);\n\n // `readOnly` locks the value, not the interaction: the popup opens and can be browsed.\n // Value changes stay blocked in `ComboboxItem`, `ComboboxInput`'s keydown, `ComboboxTrigger`'s\n // typeahead, the clear/remove parts, and the hidden input's autofill handler.\n const click = useClick(floatingRootContext, {\n enabled: !disabled && openOnInputClick,\n event: 'mousedown-only',\n toggle: false,\n // Apply a small delay for touch to let mobile viewport/keyboard positioning settle.\n // This avoids top-bottom flip flickers if the preferred position is \"top\" when first tapping.\n touchOpenDelay: inputInsidePopup ? 0 : 100,\n reason: REASONS.inputPress\n });\n const dismiss = useDismiss(floatingRootContext, {\n enabled: !disabled && !inline,\n outsidePressEvent: {\n mouse: 'sloppy',\n // The visual viewport (affected by the mobile software keyboard) can be\n // somewhat small. The user may want to scroll the screen to see more of\n // the popup.\n touch: 'intentional'\n },\n // Without a popup, let the Escape key bubble the event up to other popups' handlers.\n bubbles: inline ? true : undefined,\n outsidePress(event) {\n const target = getTarget(event);\n return !contains(triggerElement, target) && !contains(clearRef.current, target) && !contains(chipsContainerRef.current, target) && !contains(inputGroupElement, target);\n }\n });\n const listNavigation = useListNavigation(floatingRootContext, {\n enabled: !disabled,\n id,\n listRef,\n activeIndex,\n selectedIndex,\n virtual: true,\n loopFocus,\n allowEscape: loopFocus && !autoHighlightMode,\n focusItemOnOpen: queryChangedAfterOpen || selectionMode === 'none' && !autoHighlightMode ? false : 'auto',\n focusItemOnHover: highlightItemOnHover,\n resetOnPointerLeave: !keepHighlight,\n orientation: grid ? 'horizontal' : undefined,\n rtl: direction === 'rtl',\n disabledIndices: EMPTY_ARRAY,\n grid: grid ? gridNavigation : undefined,\n onNavigate(nextActiveIndex, event) {\n // Ignore automatic navigation while closed, including selected-index sync for inline lists.\n // Inline lists remain navigable while `open` is false, so still allow resets (clearing the\n // highlight when an unbound inline list unmounts, e.g. in a closed dialog).\n if (!event && !open && !(inline && nextActiveIndex === null) || transitionStatus === 'ending') {\n return;\n }\n setIndices({\n activeIndex: nextActiveIndex,\n type: getHighlightReason(event),\n event: event?.nativeEvent\n });\n }\n });\n const inputProps = React.useMemo(() => mergeProps(listNavigation.reference, {\n onKeyDown(event) {\n // In grid mode the navigation hook treats ArrowLeft/ArrowRight as horizontal\n // grid movement. When the input has focus and no item is highlighted the user\n // is still editing the query, so let the input keep its native caret behavior.\n if (grid && store.state.activeIndex == null && (event.key === 'ArrowLeft' || event.key === 'ArrowRight')) {\n event.preventBaseUIHandler();\n }\n }\n }, dismiss.reference, click.reference, role.reference), [listNavigation.reference, dismiss.reference, click.reference, role.reference, grid, store]);\n const popupProps = React.useMemo(() => mergeProps(FOCUSABLE_POPUP_PROPS, dismiss.floating), [dismiss.floating]);\n const listProps = React.useMemo(() => mergeProps(listNavigation.floating, role.floating), [listNavigation.floating, role.floating]);\n const itemRoot = React.useMemo(() => {\n const listNavigationItemProps = listNavigation.item;\n return {\n // Combobox keeps focus on the input; item focus would incorrectly sync\n // list navigation state from DOM focus.\n props: listNavigationItemProps ? {\n ...listNavigationItemProps,\n onFocus: undefined\n } : EMPTY_OBJECT,\n id,\n selectionMode,\n disabled,\n readOnly,\n isItemEqualToValue\n };\n }, [listNavigation.item, id, selectionMode, disabled, readOnly, isItemEqualToValue]);\n store.useContextCallback('setOpen', setOpen);\n store.useContextCallback('setInputValue', setInputValue);\n store.useContextCallback('setSelectedValue', setSelectedValue);\n store.useContextCallback('setIndices', setIndices);\n store.useContextCallback('handleSelection', handleSelection);\n store.useContextCallback('forceMount', forceMount);\n store.useContextCallback('requestSubmit', requestSubmit);\n store.useContextCallback('onOpenChangeComplete', onOpenChangeCompleteProp);\n\n // The prop bags must be in the store before the parts render: they read them with `useStore`\n // during render, and a layout effect commits only after all children have rendered.\n useOnFirstRender(() => {\n store.update({\n inline: inlineProp,\n popupProps,\n listProps,\n inputProps,\n triggerProps,\n itemRoot\n });\n });\n const syncedValues = {\n id,\n selectedValue,\n open,\n mounted,\n transitionStatus,\n items: storeItems,\n inline: inlineProp,\n popupProps,\n listProps,\n inputProps,\n triggerProps,\n itemRoot,\n openMethod,\n selectionMode,\n name,\n form,\n disabled,\n readOnly,\n required,\n grid,\n virtualized,\n openOnInputClick,\n itemToStringLabel,\n modal,\n autoHighlight: autoHighlightMode,\n isItemEqualToValue,\n submitOnItemClick,\n hasInputValue\n };\n useIsoLayoutEffect(() => {\n // `inputOwnsFormValue` is derived here rather than during render because `ComboboxInput`\n // writes it from a ref callback earlier in the same commit, and it has to land in this same\n // `update` so subscribers never observe an intermediate snapshot. That is also why\n // `store.useSyncedValues` can't be used yet: it would need a second write. The dependencies\n // are derived from `syncedValues` so a newly synchronized field can't be forgotten here.\n store.update({\n ...syncedValues,\n inputOwnsFormValue: selectionMode === 'none' && (inlineProp || !store.state.inputInsidePopup)\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [store, ...Object.values(syncedValues)]);\n const hiddenInputRef = useMergedRefs(inputRefProp, validation.inputRef);\n const itemsContextValue = React.useMemo(() => ({\n query,\n hasItems,\n filteredItems,\n flatFilteredValues\n }), [query, hasItems, filteredItems, flatFilteredValues]);\n const serializedValue = React.useMemo(() => {\n if (Array.isArray(fieldRawValue)) {\n return '';\n }\n return stringifyAsValue(fieldRawValue, itemToStringValue);\n }, [fieldRawValue, itemToStringValue]);\n const hasMultipleSelection = multiple && Array.isArray(selectedValue) && selectedValue.length > 0;\n const hiddenInputName = multiple || selectionMode === 'none' && inputOwnsFormValue ? undefined : name;\n const hiddenInputs = React.useMemo(() => {\n if (!multiple || !Array.isArray(selectedValue) || !name) {\n return null;\n }\n return selectedValue.map(value => {\n const currentSerializedValue = stringifyAsValue(value, itemToStringValue);\n return /*#__PURE__*/_jsx(\"input\", {\n type: \"hidden\",\n form: form,\n name: name,\n value: currentSerializedValue,\n disabled: disabled\n }, currentSerializedValue);\n });\n }, [multiple, selectedValue, form, name, itemToStringValue, disabled]);\n const children = /*#__PURE__*/_jsxs(React.Fragment, {\n children: [props.children, /*#__PURE__*/_jsx(\"input\", {\n ...validation.getValidationProps(disabled, {\n // Move focus when the hidden input is focused.\n onFocus() {\n if (inputInsidePopup) {\n triggerElement?.focus();\n return;\n }\n (inputRef.current || triggerElement)?.focus();\n },\n // Handle browser autofill.\n onChange(event) {\n // Workaround for https://github.com/react/react/issues/9023\n if (event.nativeEvent.defaultPrevented || disabled || readOnly) {\n return;\n }\n const nextValue = event.currentTarget.value;\n const nextValueLower = nextValue.toLowerCase();\n const details = createChangeEventDetails(REASONS.none, event.nativeEvent);\n const findSerializedMatchIndex = () => valuesRef.current.findIndex(candidate => stringifyAsValue(candidate, itemToStringValue).toLowerCase() === nextValueLower || stringifyValueLabel(candidate).toLowerCase() === nextValueLower);\n function handleChange() {\n // Browser autofill only writes a single scalar value.\n if (multiple) {\n return;\n }\n if (selectionMode === 'none') {\n setInputValue(nextValue, details);\n return;\n }\n\n // Preserve the original serialized matching, then fall back to rendered text,\n // which browsers can autofill for primitive values like `value=\"US\">United States`.\n let matchingIndex = findSerializedMatchIndex();\n if (matchingIndex === -1) {\n matchingIndex = valuesRef.current.findIndex((_, index) => {\n const renderedLabel = labelsRef.current[index];\n return renderedLabel != null && renderedLabel.toLowerCase() === nextValueLower;\n });\n }\n const matchingValue = matchingIndex === -1 ? undefined : valuesRef.current[matchingIndex];\n if (matchingValue != null) {\n // `setSelectedValue` may be canceled by `onValueChange`; rely on\n // `useValueChanged` to mark the field dirty and run validation only\n // when the value actually changes.\n setSelectedValue?.(matchingValue, details);\n }\n }\n\n // Only single-selection autofill matches against the registered values/labels.\n // `multiple` ignores autofill and `none` just writes the input value, so avoid the\n // sticky `forceMounted` mount (which never resets) for those modes.\n if (single) {\n forceMount();\n if (items && findSerializedMatchIndex() === -1) {\n // `forceMount` only refreshes the derived labels for the `items` prop. When\n // serialized matching misses, also mount the list so rendered labels (which can\n // differ from the serialized values) are registered for autofill matching.\n store.set('forceMounted', true);\n }\n }\n queueMicrotask(handleChange);\n }\n }),\n id: id && hiddenInputName == null ? `${id}-hidden-input` : undefined,\n form: form,\n name: hiddenInputName,\n autoComplete: formAutoComplete,\n disabled: disabled,\n required: required && !hasMultipleSelection,\n readOnly: readOnly,\n value: serializedValue,\n ref: hiddenInputRef,\n style: hiddenInputName ? visuallyHiddenInput : visuallyHidden,\n tabIndex: -1,\n \"aria-hidden\": true,\n suppressHydrationWarning: true\n }), hiddenInputs]\n });\n return /*#__PURE__*/_jsx(ComboboxRootContext.Provider, {\n value: store,\n children: /*#__PURE__*/_jsx(ComboboxFloatingContext.Provider, {\n value: floatingRootContext,\n children: /*#__PURE__*/_jsx(ComboboxHasItemsContext.Provider, {\n value: hasItems,\n children: /*#__PURE__*/_jsx(ComboboxDerivedItemsContext.Provider, {\n value: itemsContextValue,\n children: /*#__PURE__*/_jsx(ComboboxInputValueContext.Provider, {\n value: inputValue,\n children: children\n })\n })\n })\n })\n });\n}","export const NO_ACTIVE_VALUE = Symbol('none');\nexport const INITIAL_LAST_HIGHLIGHT = {\n value: NO_ACTIVE_VALUE,\n index: -1\n};","import { compareItemEquality, defaultItemEquality } from \"../../internals/itemEquality.mjs\";\nexport function findCollectionItem(valueToItem, itemValue, isEqual) {\n const exactItem = valueToItem.get(itemValue);\n if (exactItem !== undefined || isEqual === defaultItemEquality) {\n return exactItem;\n }\n for (const [derivedValue, item] of valueToItem) {\n if (compareItemEquality(derivedValue, itemValue, isEqual)) {\n return item;\n }\n }\n return undefined;\n}\n\n/**\n * An opaque collection created by `createItems()`.\n *\n * It carries the source item and derived value types so the root can infer the list item and\n * selection value types.\n *\n * Pass it directly to the root's `items` prop; it has no public members.\n */\n\n/**\n * Internal shape of a collection. The extra members let the root project items to\n * their values and resolve a selected value back to its label while items are unmounted.\n */","'use client';\n\nimport * as React from 'react';\nimport { error } from '@base-ui/utils/error';\nimport { SafeReact } from '@base-ui/utils/safeReact';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useFieldRootContext } from \"../../internals/field-root-context/FieldRootContext.mjs\";\nimport { fieldValidityMapping } from \"../../internals/field-constants/constants.mjs\";\nimport { useLabel } from \"../../internals/labelable-provider/useLabel.mjs\";\nimport { getDefaultLabelId } from \"../../utils/resolveAriaLabelledBy.mjs\";\nimport { useComboboxRootContext } from \"../root/ComboboxRootContext.mjs\";\n\n/**\n * An accessible label that is automatically associated with the combobox trigger.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nexport const ComboboxLabel = /*#__PURE__*/React.forwardRef(function ComboboxLabel(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n ...elementProps\n } = componentProps;\n // Keep label id derived from the root and ignore runtime `id` overrides from untyped consumers.\n const elementPropsWithoutId = elementProps;\n delete elementPropsWithoutId.id;\n const fieldRootContext = useFieldRootContext();\n const store = useComboboxRootContext();\n const inputInsidePopup = store.useState('inputInsidePopup');\n const triggerElement = store.useState('triggerElement');\n const inputElement = store.useState('inputElement');\n const rootId = store.useState('id');\n const defaultLabelId = getDefaultLabelId(rootId);\n const localControlId = triggerElement?.id ?? (inputInsidePopup ? rootId : undefined);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n if (!inputElement || inputInsidePopup) {\n return;\n }\n const ownerStackMessage = SafeReact.captureOwnerStack?.() || '';\n const message = '<Combobox.Label> labels <Combobox.Trigger> only. ' + 'When <Combobox.Input> is the form control, use a native <label> or <Field.Label> instead.';\n error(`${message}${ownerStackMessage}`);\n }, [inputElement, inputInsidePopup]);\n }\n const labelProps = useLabel({\n id: defaultLabelId,\n fallbackControlId: localControlId,\n setLabelId(nextLabelId) {\n const resolvedLabelId = typeof nextLabelId === 'function' ? nextLabelId(store.state.labelId) : nextLabelId;\n store.set('labelId', resolvedLabelId);\n }\n });\n return useRenderElement('div', componentProps, {\n ref: forwardedRef,\n state: fieldRootContext.state,\n props: [labelProps, elementProps],\n stateAttributesMapping: fieldValidityMapping\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxLabel.displayName = \"ComboboxLabel\";","'use client';\n\nimport { isHTMLElement, isShadowRoot } from '@floating-ui/utils/dom';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { closest, getTarget } from \"../../floating-ui-react/utils.mjs\";\nimport { useRegisteredLabelId } from \"../../utils/useRegisteredLabelId.mjs\";\nimport { useLabelableContext } from \"./LabelableContext.mjs\";\nexport function useLabel(params = {}) {\n const {\n id: idProp,\n fallbackControlId,\n native = false,\n setLabelId: setLabelIdProp,\n focusControl: focusControlProp\n } = params;\n const {\n controlId: contextControlId,\n setLabelId: setContextLabelId\n } = useLabelableContext();\n const syncLabelId = useStableCallback(nextLabelId => {\n setContextLabelId(nextLabelId);\n setLabelIdProp?.(nextLabelId);\n });\n const id = useRegisteredLabelId(idProp, syncLabelId);\n const resolvedControlId = contextControlId ?? fallbackControlId;\n function focusControl(event) {\n if (focusControlProp) {\n focusControlProp(event, resolvedControlId);\n return;\n }\n if (!resolvedControlId) {\n return;\n }\n const controlElement = getControlById(event.currentTarget, resolvedControlId);\n if (isHTMLElement(controlElement)) {\n focusElementWithVisible(controlElement);\n }\n }\n function handleInteraction(event) {\n const target = getTarget(event.nativeEvent);\n if (closest(target, 'button,input,select,textarea')) {\n return;\n }\n\n // Prevent text selection when double clicking label.\n if (!event.defaultPrevented && event.detail > 1) {\n event.preventDefault();\n }\n if (native) {\n return;\n }\n focusControl(event);\n }\n return native ? {\n id,\n htmlFor: resolvedControlId,\n onMouseDown: handleInteraction\n } : {\n id,\n onClick: handleInteraction,\n onPointerDown(event) {\n event.preventDefault();\n }\n };\n}\nexport function getControlById(label, id) {\n let root = label.getRootNode();\n while (isShadowRoot(root)) {\n const element = root.getElementById(id);\n if (element) {\n return element;\n }\n root = root.host.getRootNode();\n }\n return ownerDocument(label).getElementById(id);\n}\nexport function focusElementWithVisible(element) {\n element.focus({\n // Available from Chrome 144+ (January 2026).\n // Safari and Firefox already support it.\n focusVisible: true\n });\n}","'use client';\n\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useBaseUiId } from \"../internals/useBaseUiId.mjs\";\nexport function useRegisteredLabelId(idProp, setLabelId) {\n const id = useBaseUiId(idProp);\n useIsoLayoutEffect(() => {\n setLabelId(id);\n return () => {\n setLabelId(currentId => currentId === id ? undefined : currentId);\n };\n }, [id, setLabelId]);\n return id;\n}","'use client';\n\nexport function getDefaultLabelId(id) {\n return id == null ? undefined : `${id}-label`;\n}\nexport function resolveAriaLabelledBy(fieldLabelId, localLabelId) {\n return fieldLabelId ?? localLabelId;\n}","'use client';\n\nimport * as React from 'react';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { platform } from '@base-ui/utils/platform';\nimport { useBaseUiId } from \"../../internals/useBaseUiId.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useComboboxInputValueContext, useComboboxRootContext } from \"../root/ComboboxRootContext.mjs\";\nimport { triggerStateAttributesMapping } from \"../utils/stateAttributesMapping.mjs\";\nimport { DEFAULT_FIELD_ROOT_CONTEXT, FieldRootContext, useFieldRootContext } from \"../../internals/field-root-context/FieldRootContext.mjs\";\nimport { useSetFieldFocused } from \"../../internals/field-root-context/useSetFieldFocused.mjs\";\nimport { DEFAULT_FIELD_STATE_ATTRIBUTES } from \"../../internals/field-constants/constants.mjs\";\nimport { useLabelableContext } from \"../../internals/labelable-provider/LabelableContext.mjs\";\nimport { useComboboxChipsContext } from \"../chips/ComboboxChipsContext.mjs\";\nimport { stopEvent } from \"../../floating-ui-react/utils.mjs\";\nimport { useComboboxPositionerContext } from \"../positioner/ComboboxPositionerContext.mjs\";\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { getHighlightReason } from \"../../utils/getHighlightReason.mjs\";\nimport { useDirection } from \"../../internals/direction-context/DirectionContext.mjs\";\nimport { ComboboxInternalDismissButton } from \"../utils/ComboboxInternalDismissButton.mjs\";\nimport { clickHighlightedItem, getChipNavigationKeys, useListEmpty, usePopupSide } from \"../utils/parts.mjs\";\n\n/**\n * A text input to search for items in the list.\n * Renders an `<input>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const ComboboxInput = /*#__PURE__*/React.forwardRef(function ComboboxInput(componentProps, forwardedRef) {\n const {\n render,\n className,\n disabled: disabledProp = false,\n id: idProp,\n style,\n ...elementProps\n } = componentProps;\n const {\n state: fieldState,\n disabled: fieldDisabled,\n setTouched,\n validationMode,\n validation\n } = useFieldRootContext();\n const {\n labelId: fieldLabelId\n } = useLabelableContext();\n const comboboxChipsContext = useComboboxChipsContext();\n const positioning = useComboboxPositionerContext(true);\n const hasPositionerParent = Boolean(positioning);\n const store = useComboboxRootContext();\n // `inputValue` can't be placed in the store.\n // https://github.com/mui/base-ui/issues/2703\n const inputValue = useComboboxInputValueContext();\n const direction = useDirection();\n const required = store.useState('required');\n const comboboxDisabled = store.useState('disabled');\n const readOnly = store.useState('readOnly');\n const name = store.useState('name');\n const form = store.useState('form');\n const selectionMode = store.useState('selectionMode');\n const autoHighlightMode = store.useState('autoHighlight');\n const inputProps = store.useState('inputProps');\n const triggerProps = store.useState('triggerProps');\n const open = store.useState('open');\n const mounted = store.useState('mounted');\n const selectedValue = store.useState('selectedValue');\n const rootId = store.useState('id');\n const inline = store.useState('inline');\n const modal = store.useState('modal');\n const autoHighlightEnabled = Boolean(autoHighlightMode);\n const popupSide = usePopupSide(store);\n const disabled = fieldDisabled || comboboxDisabled || disabledProp;\n const listEmpty = useListEmpty();\n const setFocused = useSetFieldFocused(disabled, store.context.inputRef);\n const isInsidePopup = hasPositionerParent || inline;\n const focusManagerModal = !isInsidePopup || modal;\n const id = useBaseUiId(idProp ?? (!isInsidePopup ? rootId : undefined));\n const fieldStateForInput = hasPositionerParent ? DEFAULT_FIELD_STATE_ATTRIBUTES : fieldState;\n const [composingValue, setComposingValue] = React.useState(null);\n const isComposingRef = React.useRef(false);\n const lastActiveIndexRef = React.useRef(null);\n\n // Restore the saved highlight on refocus only within the same open cycle.\n useIsoLayoutEffect(() => {\n if (!open) {\n lastActiveIndexRef.current = null;\n }\n }, [open]);\n const inputOwnsFormValue = selectionMode === 'none' && !hasPositionerParent;\n const setInputElement = useStableCallback(element => {\n const nextIsInsidePopup = hasPositionerParent || store.state.inline;\n if (nextIsInsidePopup && !store.state.hasInputValue) {\n store.context.setInputValue('', createChangeEventDetails(REASONS.none));\n }\n store.update({\n inputElement: element,\n inputInsidePopup: nextIsInsidePopup,\n inputOwnsFormValue\n });\n });\n const validationProps = hasPositionerParent ? elementProps : validation.getValidationProps(disabled, elementProps);\n function clearHighlight(event) {\n store.context.setIndices({\n activeIndex: null,\n selectedIndex: null,\n type: getHighlightReason(event),\n event\n });\n }\n const state = {\n ...fieldStateForInput,\n open,\n disabled,\n readOnly,\n popupSide,\n listEmpty\n };\n function handleKeyDown(event) {\n if (!comboboxChipsContext) {\n return undefined;\n }\n let nextIndex;\n const renderedChipsCount = comboboxChipsContext.chipsRef.current.length;\n const [previousChipKey] = getChipNavigationKeys(direction);\n if (event.key === previousChipKey && (event.currentTarget.selectionStart ?? 0) === 0 && selectedValue.length > 0) {\n event.preventDefault();\n nextIndex = renderedChipsCount > 0 ? renderedChipsCount - 1 : undefined;\n }\n return nextIndex;\n }\n const element = useRenderElement('input', componentProps, {\n state,\n ref: [forwardedRef, store.context.inputRef, setInputElement],\n props: [inputProps, triggerProps, {\n value: composingValue ?? inputValue,\n 'aria-readonly': readOnly || undefined,\n 'aria-required': required || undefined,\n 'aria-labelledby': fieldLabelId,\n disabled,\n readOnly,\n required: selectionMode === 'none' ? required : undefined,\n form,\n ...(inputOwnsFormValue && name && {\n name\n }),\n id,\n onFocus() {\n setFocused(true);\n if (!inline) {\n return;\n }\n const nextActiveIndex = lastActiveIndexRef.current;\n lastActiveIndexRef.current = null;\n if (nextActiveIndex == null ||\n // `valuesRef` can be sparse, so guard against restoring a removed slot.\n !Object.hasOwn(store.context.valuesRef.current, nextActiveIndex)) {\n return;\n }\n store.context.setIndices({\n activeIndex: nextActiveIndex\n });\n },\n onBlur() {\n setTouched(true);\n setFocused(false);\n const activeIndex = store.state.activeIndex;\n if (inline && activeIndex !== null && autoHighlightMode !== 'always') {\n lastActiveIndexRef.current = activeIndex;\n store.context.setIndices({\n activeIndex: null\n });\n }\n if (validationMode === 'onBlur') {\n const valueToValidate = selectionMode === 'none' ? inputValue : selectedValue;\n validation.commit(valueToValidate);\n }\n },\n onCompositionStart(event) {\n if (platform.os.android) {\n return;\n }\n isComposingRef.current = true;\n setComposingValue(event.currentTarget.value);\n },\n onCompositionEnd(event) {\n isComposingRef.current = false;\n const next = event.currentTarget.value;\n setComposingValue(null);\n store.context.setInputValue(next, createChangeEventDetails(REASONS.inputChange, event.nativeEvent));\n },\n onChange(event) {\n const nativeEvent = event.nativeEvent;\n // Autofill may not provide `inputType` (Chrome) or may report\n // `insertReplacementText` (Firefox).\n const inputType = nativeEvent.inputType;\n const autofillLikeInput = !inputType || inputType === 'insertReplacementText';\n // During composition the input is always considered typed into.\n const shouldOpenOnInput = isComposingRef.current || !autofillLikeInput;\n function maybeOpenOnInput(trimmed) {\n if (readOnly || disabled || !trimmed || !shouldOpenOnInput) {\n return;\n }\n store.context.setOpen(true, createChangeEventDetails(REASONS.inputChange, nativeEvent));\n // When autoHighlight is enabled, keep the highlight (will be set to 0 in root).\n if (!autoHighlightEnabled) {\n clearHighlight(nativeEvent);\n }\n }\n\n // During IME composition, avoid propagating controlled updates to prevent\n // filtering the options prematurely so `Empty` won't show incorrectly.\n // We can't rely on this check for Android due to how it handles composition\n // events with some keyboards (e.g. Samsung keyboard with predictive text on\n // treats all text as always-composing).\n // https://github.com/mui/base-ui/issues/2942\n if (isComposingRef.current) {\n const nextVal = event.currentTarget.value;\n setComposingValue(nextVal);\n if (nextVal === '' && !store.state.openOnInputClick && !store.state.inputInsidePopup) {\n store.context.setOpen(false, createChangeEventDetails(REASONS.inputClear, nativeEvent));\n }\n const trimmed = nextVal.trim();\n const shouldMaintainHighlight = autoHighlightEnabled && trimmed !== '';\n maybeOpenOnInput(trimmed);\n if (open && store.state.activeIndex !== null && !shouldMaintainHighlight) {\n clearHighlight(nativeEvent);\n }\n return;\n }\n const inputChangeDetails = createChangeEventDetails(REASONS.inputChange, nativeEvent);\n store.context.setInputValue(event.currentTarget.value, inputChangeDetails);\n if (inputChangeDetails.isCanceled) {\n return;\n }\n const empty = event.currentTarget.value === '';\n const clearDetails = createChangeEventDetails(REASONS.inputClear, nativeEvent);\n if (empty && !store.state.inputInsidePopup) {\n if (selectionMode === 'single') {\n store.context.setSelectedValue(null, clearDetails);\n }\n if (!store.state.openOnInputClick) {\n store.context.setOpen(false, clearDetails);\n }\n }\n maybeOpenOnInput(event.currentTarget.value.trim());\n\n // When the user types, ensure the list resets its highlight so that\n // virtual focus returns to the input (aria-activedescendant is\n // cleared).\n if (open && store.state.activeIndex !== null && !autoHighlightEnabled) {\n clearHighlight(nativeEvent);\n }\n },\n onKeyDown(event) {\n if (event.ctrlKey || event.shiftKey || event.altKey || event.metaKey) {\n return;\n }\n if (disabled || readOnly) {\n // Browsing can highlight an item, and Enter there must not submit the form.\n if (readOnly && event.key === 'Enter' && open && store.state.activeIndex !== null) {\n stopEvent(event);\n }\n return;\n }\n const input = event.currentTarget;\n const scrollAmount = input.scrollWidth - input.clientWidth;\n const isRTL = direction === 'rtl';\n if (event.key === 'Home') {\n stopEvent(event);\n const cursor = platform.engine.gecko && isRTL ? input.value.length : 0;\n input.setSelectionRange(cursor, cursor);\n input.scrollLeft = 0;\n return;\n }\n if (event.key === 'End') {\n stopEvent(event);\n const cursor = platform.engine.gecko && isRTL ? 0 : input.value.length;\n input.setSelectionRange(cursor, cursor);\n input.scrollLeft = isRTL ? -scrollAmount : scrollAmount;\n return;\n }\n if (!mounted && event.key === 'Escape') {\n const isClear = selectionMode === 'multiple' && Array.isArray(selectedValue) ? selectedValue.length === 0 : selectedValue === null;\n const details = createChangeEventDetails(REASONS.escapeKey, event.nativeEvent);\n const value = selectionMode === 'multiple' ? [] : null;\n store.context.setInputValue('', details);\n store.context.setSelectedValue(value, details);\n if (!isClear && !store.state.inline && !details.isPropagationAllowed) {\n event.stopPropagation();\n }\n return;\n }\n\n // Handle deletion when the input is empty.\n if (comboboxChipsContext && event.key === 'Backspace' && input.value === '' && Array.isArray(selectedValue) && selectedValue.length > 0) {\n const renderedChipsCount = comboboxChipsContext.chipsRef.current.length;\n const removalIndex = renderedChipsCount > 0 ? renderedChipsCount - 1 : selectedValue.length - 1;\n const newValue = selectedValue.filter((_, index) => index !== removalIndex);\n // If the removed item was also the active (highlighted) item, clear highlight\n clearHighlight(event.nativeEvent);\n store.context.setSelectedValue(newValue, createChangeEventDetails(REASONS.none, event.nativeEvent));\n return;\n }\n const nextIndex = handleKeyDown(event);\n if (nextIndex !== undefined) {\n comboboxChipsContext?.chipsRef.current[nextIndex]?.focus();\n }\n\n // event.isComposing\n if (event.which === 229) {\n return;\n }\n if (event.key === 'Enter' && open) {\n const activeIndex = store.state.activeIndex;\n const nativeEvent = event.nativeEvent;\n if (activeIndex === null) {\n if (inline) {\n return;\n }\n\n // Allow form submission when no item is highlighted.\n store.context.setOpen(false, createChangeEventDetails(REASONS.none, nativeEvent));\n return;\n }\n stopEvent(event);\n clickHighlightedItem(store, activeIndex, nativeEvent);\n }\n }\n }, validationProps],\n stateAttributesMapping: triggerStateAttributesMapping\n });\n const renderedInput = hasPositionerParent ? /*#__PURE__*/_jsx(FieldRootContext.Provider, {\n value: DEFAULT_FIELD_ROOT_CONTEXT,\n children: element\n }) : element;\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [open && focusManagerModal && /*#__PURE__*/_jsx(ComboboxInternalDismissButton, {\n ref: store.context.startDismissRef\n }), renderedInput]\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxInput.displayName = \"ComboboxInput\";","import { pressableTriggerOpenStateMapping } from \"../../utils/popupStateMapping.mjs\";\nimport { fieldValidityMapping } from \"../../internals/field-constants/constants.mjs\";\nimport * as ComboboxInputDataAttributes from \"../input/ComboboxInputDataAttributes.mjs\";\nexport const triggerStateAttributesMapping = {\n ...pressableTriggerOpenStateMapping,\n ...fieldValidityMapping,\n popupSide: side => side ? {\n [ComboboxInputDataAttributes.popupSide]: side\n } : null,\n listEmpty: empty => empty ? {\n [ComboboxInputDataAttributes.listEmpty]: ''\n } : null\n};","import { CommonTriggerDataAttributes } from \"../../utils/popupStateMapping.mjs\";\n\n/**\n * Present when the corresponding popup is open.\n */\nexport const popupOpen = CommonTriggerDataAttributes.popupOpen;\n/**\n * Present when the input is pressed.\n */\nexport const pressed = CommonTriggerDataAttributes.pressed;\n/**\n * Present when the component is disabled.\n */\nexport const disabled = 'data-disabled';\n/**\n * Present when the component is readonly.\n */\nexport const readonly = 'data-readonly';\n/**\n * Indicates which side the corresponding popup is positioned relative to its anchor.\n * @type {'top' | 'bottom' | 'left' | 'right' | 'inline-end' | 'inline-start' | null}\n */\nexport const popupSide = 'data-popup-side';\n/**\n * Present when the component is required.\n */\nexport const required = 'data-required';\n/**\n * Present when the component is in a valid state (when wrapped in Field.Root).\n */\nexport const valid = 'data-valid';\n/**\n * Present when the component is in an invalid state (when wrapped in Field.Root).\n */\nexport const invalid = 'data-invalid';\n/**\n * Present when the component has been touched (when wrapped in Field.Root).\n */\nexport const touched = 'data-touched';\n/**\n * Present when the component's value has changed (when wrapped in Field.Root).\n */\nexport const dirty = 'data-dirty';\n/**\n * Present when the component has a value (when wrapped in Field.Root).\n */\nexport const filled = 'data-filled';\n/**\n * Present when the input is focused (when wrapped in Field.Root).\n */\nexport const focused = 'data-focused';\n/**\n * Present when the corresponding items list is empty.\n */\nexport const listEmpty = 'data-list-empty';","'use client';\n\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useFieldRootContext } from \"./FieldRootContext.mjs\";\n\n/**\n * Returns the field's `setFocused`, recording which control the focused state belongs to.\n *\n * Disabling or unmounting a focused control moves focus away without firing `blur`, so the focused\n * state would otherwise stay latched. A field can have several focus targets, so a control only\n * clears the shared state when focus last landed on itself. The stable callback doubles as that\n * identity.\n */\nexport function useSetFieldFocused(disabled, focusTargetRef, onFocusedChange) {\n const {\n setFocused,\n focusOwnerRef\n } = useFieldRootContext();\n const setFieldFocused = useStableCallback(focused => {\n // A disabled target can still be focused (`aria-disabled` elements stay programmatically\n // focusable), but must not publish the field's focused styling.\n if (focused ? !disabled : focusOwnerRef.current === setFieldFocused) {\n focusOwnerRef.current = focused && setFieldFocused;\n onFocusedChange?.(focused);\n setFocused(focused);\n }\n });\n\n // Re-run when `disabled` changes so a focused control releases the field even when the browser\n // does not fire `blur`. The setup reclaims focus that no focus event reported: StrictMode\n // re-running effects after a mount-time focus, a control focused before hydration, or an\n // `aria-disabled` control re-enabled while it kept focus.\n useIsoLayoutEffect(() => {\n const el = focusTargetRef.current;\n const root = el?.getRootNode();\n if (root?.activeElement === el) {\n setFieldFocused(true);\n }\n return () => setFieldFocused(false);\n }, [disabled, focusTargetRef, setFieldFocused]);\n return setFieldFocused;\n}","'use client';\n\nimport * as React from 'react';\nexport const ComboboxChipsContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ComboboxChipsContext.displayName = \"ComboboxChipsContext\";\nexport function useComboboxChipsContext() {\n return React.useContext(ComboboxChipsContext);\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const ComboboxPositionerContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ComboboxPositionerContext.displayName = \"ComboboxPositionerContext\";\nexport function useComboboxPositionerContext(optional) {\n const context = React.useContext(ComboboxPositionerContext);\n if (context === undefined && !optional) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: <Combobox.Popup> and <Combobox.Arrow> must be used within the <Combobox.Positioner> component' : _formatErrorMessage(21));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nimport { useMergedRefs } from '@base-ui/utils/useMergedRefs';\nimport { visuallyHiddenInput } from '@base-ui/utils/visuallyHidden';\nimport { useButton } from \"../../internals/use-button/index.mjs\";\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { useComboboxRootContext } from \"../root/ComboboxRootContext.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * @internal\n */\nexport const ComboboxInternalDismissButton = /*#__PURE__*/React.forwardRef(function ComboboxInternalDismissButton(_, forwardedRef) {\n const store = useComboboxRootContext();\n const {\n buttonRef,\n getButtonProps\n } = useButton({\n native: false\n });\n const mergedRef = useMergedRefs(forwardedRef, buttonRef);\n function handleDismiss(event) {\n store.context.setOpen(false, createChangeEventDetails(REASONS.closePress, event.nativeEvent, event.currentTarget));\n }\n const dismissProps = getButtonProps({\n onClick: handleDismiss\n });\n return /*#__PURE__*/_jsx(\"span\", {\n ref: mergedRef,\n ...dismissProps,\n \"aria-label\": \"Dismiss\",\n tabIndex: undefined,\n style: visuallyHiddenInput\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxInternalDismissButton.displayName = \"ComboboxInternalDismissButton\";","'use client';\n\nimport { useComboboxDerivedItemsContext } from \"../root/ComboboxRootContext.mjs\";\n/**\n * The popup side is only meaningful while the positioner is mounted, as the store retains the\n * last resolved side after the popup unmounts.\n */\nexport function usePopupSide(store) {\n const mounted = store.useState('mounted');\n const popupSide = store.useState('popupSide');\n const positionerElement = store.useState('positionerElement');\n return mounted && positionerElement ? popupSide : null;\n}\n\n/**\n * Whether the filtered list has no items to show.\n */\nexport function useListEmpty() {\n return useComboboxDerivedItemsContext().filteredItems.length === 0;\n}\n\n/**\n * The arrow keys that move the chip highlight backwards and forwards, in that order.\n */\nexport function getChipNavigationKeys(direction) {\n return direction === 'rtl' ? ['ArrowRight', 'ArrowLeft'] : ['ArrowLeft', 'ArrowRight'];\n}\n\n/**\n * Where the highlight lands once the chip at `index` is removed, or `undefined` for no highlight.\n */\nexport function getIndexAfterChipRemoval(index, chipCount) {\n const nextIndex = index >= chipCount - 1 ? chipCount - 2 : index;\n return nextIndex >= 0 ? nextIndex : undefined;\n}\n\n/**\n * Commits the highlighted item by clicking it, tagging the originating event so the item's\n * handler can attribute the selection to it.\n */\nexport function clickHighlightedItem(store, activeIndex, nativeEvent) {\n const listItem = store.context.listRef.current[activeIndex];\n if (listItem) {\n store.context.selectionEventRef.current = nativeEvent;\n listItem.click();\n store.context.selectionEventRef.current = null;\n }\n}","import { isElement } from '@floating-ui/utils/dom';\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { getTarget, isInteractiveElement } from \"../../floating-ui-react/utils/element.mjs\";\nexport function handleInputPress(event, store, disabled, shouldIgnoreTarget) {\n if (event.baseUIHandlerPrevented) {\n return;\n }\n const target = getTarget(event.nativeEvent);\n const targetElement = isElement(target) ? target : null;\n if (targetElement !== event.currentTarget && (shouldIgnoreTarget?.(targetElement) || isInteractiveElement(targetElement))) {\n return;\n }\n event.preventDefault();\n if (disabled) {\n return;\n }\n store.context.inputRef.current?.focus();\n if (store.state.openOnInputClick) {\n store.context.setOpen(true, createChangeEventDetails(REASONS.inputPress, event.nativeEvent));\n }\n}","'use client';\n\nimport * as React from 'react';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useFieldRootContext } from \"../../internals/field-root-context/FieldRootContext.mjs\";\nimport { useComboboxRootContext } from \"../root/ComboboxRootContext.mjs\";\nimport { triggerStateAttributesMapping } from \"../utils/stateAttributesMapping.mjs\";\nimport { handleInputPress } from \"../utils/handleInputPress.mjs\";\nimport { useListEmpty, usePopupSide } from \"../utils/parts.mjs\";\nimport { contains } from \"../../floating-ui-react/utils/element.mjs\";\n\n/**\n * A wrapper for the input and its associated controls.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nexport const ComboboxInputGroup = /*#__PURE__*/React.forwardRef(function ComboboxInputGroup(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n ...elementProps\n } = componentProps;\n const {\n state: fieldState\n } = useFieldRootContext();\n const store = useComboboxRootContext();\n const open = store.useState('open');\n const comboboxDisabled = store.useState('disabled');\n const readOnly = store.useState('readOnly');\n const hasSelectedValue = store.useState('hasSelectedValue');\n const selectionMode = store.useState('selectionMode');\n const popupSide = usePopupSide(store);\n const disabled = comboboxDisabled;\n const listEmpty = useListEmpty();\n const placeholder = selectionMode === 'none' ? false : !hasSelectedValue;\n const state = {\n ...fieldState,\n open,\n disabled,\n readOnly,\n popupSide,\n listEmpty,\n placeholder\n };\n const setInputGroupElement = useStableCallback(element => {\n store.set('inputGroupElement', element);\n });\n return useRenderElement('div', componentProps, {\n ref: [forwardedRef, setInputGroupElement],\n props: [{\n role: 'group',\n onMouseDown(event) {\n handleInputPress(event, store, disabled, target => {\n return contains(store.context.chipsContainerRef.current, target);\n });\n }\n }, elementProps],\n state,\n stateAttributesMapping: triggerStateAttributesMapping\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxInputGroup.displayName = \"ComboboxInputGroup\";","'use client';\n\nimport * as React from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst GroupCollectionContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== \"production\") GroupCollectionContext.displayName = \"GroupCollectionContext\";\nexport function useGroupCollectionContext() {\n return React.useContext(GroupCollectionContext);\n}\nexport function GroupCollectionProvider(props) {\n const {\n children,\n items\n } = props;\n const contextValue = React.useMemo(() => ({\n items\n }), [items]);\n return /*#__PURE__*/_jsx(GroupCollectionContext.Provider, {\n value: contextValue,\n children: children\n });\n}","'use client';\n\nimport * as React from 'react';\nimport { useComboboxDerivedItemsContext } from \"../root/ComboboxRootContext.mjs\";\nimport { useGroupCollectionContext } from \"./GroupCollectionContext.mjs\";\n\n/**\n * Renders filtered list items.\n * Doesn't render its own HTML element.\n *\n * If rendering a flat list, pass a function child to the `List` component instead, which implicitly wraps it.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function ComboboxCollection(props) {\n const {\n children\n } = props;\n const {\n filteredItems\n } = useComboboxDerivedItemsContext();\n const groupContext = useGroupCollectionContext();\n const itemsToRender = groupContext ? groupContext.items : filteredItems;\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: itemsToRender.map(children)\n });\n}","'use client';\n\nimport * as React from 'react';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useComboboxDerivedItemsContext, useComboboxFloatingContext, useComboboxRootContext } from \"../root/ComboboxRootContext.mjs\";\nimport { useComboboxPositionerContext } from \"../positioner/ComboboxPositionerContext.mjs\";\nimport { ComboboxCollection } from \"../collection/ComboboxCollection.mjs\";\nimport { CompositeList } from \"../../internals/composite/list/CompositeList.mjs\";\nimport { stopEvent } from \"../../floating-ui-react/utils.mjs\";\nimport { clickHighlightedItem } from \"../utils/parts.mjs\";\n\n/**\n * A list container for the items.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const ComboboxList = /*#__PURE__*/React.forwardRef(function ComboboxList(componentProps, forwardedRef) {\n var _ComboboxCollection;\n const {\n render,\n className,\n style,\n children,\n ...elementProps\n } = componentProps;\n const store = useComboboxRootContext();\n const floatingRootContext = useComboboxFloatingContext();\n const hasPositionerContext = Boolean(useComboboxPositionerContext(true));\n const {\n filteredItems,\n hasItems\n } = useComboboxDerivedItemsContext();\n const selectionMode = store.useState('selectionMode');\n const grid = store.useState('grid');\n const readOnly = store.useState('readOnly');\n const listProps = store.useState('listProps');\n const virtualized = store.useState('virtualized');\n const forceMounted = store.useState('forceMounted');\n const multiple = selectionMode === 'multiple';\n const empty = filteredItems.length === 0;\n const setPositionerElement = useStableCallback(element => {\n store.set('positionerElement', element);\n });\n const setListElement = useStableCallback(element => {\n store.set('listElement', element);\n });\n\n // Support \"closed template\" API: if children is a function, implicitly wrap it\n // with a Combobox.Collection that reads items from context/root.\n // Ensures this component's `listProps` subscription does not cause <Combobox.Item>\n // to re-render on every active index change.\n const resolvedChildren = React.useMemo(() => {\n if (typeof children === 'function') {\n return _ComboboxCollection || (_ComboboxCollection = /*#__PURE__*/_jsx(ComboboxCollection, {\n children: children\n }));\n }\n return children;\n }, [children]);\n const state = {\n empty\n };\n const floatingId = floatingRootContext.useState('floatingId');\n const element = useRenderElement('div', componentProps, {\n state,\n ref: [forwardedRef, setListElement, hasPositionerContext ? null : setPositionerElement],\n props: [listProps, {\n children: resolvedChildren,\n tabIndex: -1,\n id: floatingId,\n role: grid ? 'grid' : 'listbox',\n 'aria-multiselectable': multiple ? 'true' : undefined,\n // On a grid the attribute describes cell editability, not selection, so it's left to the\n // combobox element in that mode.\n 'aria-readonly': !grid && readOnly ? true : undefined,\n onKeyDown(event) {\n if (store.state.disabled || store.state.readOnly) {\n return;\n }\n if (event.key === 'Enter') {\n const activeIndex = store.state.activeIndex;\n if (activeIndex == null) {\n // Allow form submission when no item is highlighted.\n return;\n }\n stopEvent(event);\n clickHighlightedItem(store, activeIndex, event.nativeEvent);\n }\n }\n }, elementProps]\n });\n if (virtualized) {\n return element;\n }\n\n // With the `items` prop, typeahead labels are derived from the items so they survive the list\n // unmounting (unmounting clears the registered labels). Rendered labels only need to be\n // registered when the list is force-mounted to match browser autofill against rendered text.\n const labelsRef = hasItems && !forceMounted ? undefined : store.context.labelsRef;\n return /*#__PURE__*/_jsx(CompositeList, {\n elementsRef: store.context.listRef,\n labelsRef: labelsRef,\n children: element\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxList.displayName = \"ComboboxList\";","'use client';\n\nimport * as React from 'react';\nimport { FloatingPortal } from \"../../floating-ui-react/index.mjs\";\nimport { useComboboxRootContext } from \"../root/ComboboxRootContext.mjs\";\nimport { ComboboxPortalContext } from \"./ComboboxPortalContext.mjs\";\n\n/**\n * A portal element that moves the popup to a different part of the DOM.\n * By default, the portal element is appended to `<body>`.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const ComboboxPortal = /*#__PURE__*/React.forwardRef(function ComboboxPortal(props, forwardedRef) {\n const {\n keepMounted = false,\n ...portalProps\n } = props;\n const store = useComboboxRootContext();\n const mounted = store.useState('mounted');\n const forceMounted = store.useState('forceMounted');\n const shouldRender = mounted || keepMounted || forceMounted;\n if (!shouldRender) {\n return null;\n }\n return /*#__PURE__*/_jsx(ComboboxPortalContext.Provider, {\n value: keepMounted,\n children: /*#__PURE__*/_jsx(FloatingPortal, {\n ref: forwardedRef,\n ...portalProps\n })\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxPortal.displayName = \"ComboboxPortal\";","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const ComboboxPortalContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ComboboxPortalContext.displayName = \"ComboboxPortalContext\";\nexport function useComboboxPortalContext() {\n const context = React.useContext(ComboboxPortalContext);\n if (context === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: <Combobox.Portal> is missing.' : _formatErrorMessage(20));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { inertValue } from '@base-ui/utils/inertValue';\nimport { useComboboxFloatingContext, useComboboxRootContext } from \"../root/ComboboxRootContext.mjs\";\nimport { ComboboxPositionerContext } from \"./ComboboxPositionerContext.mjs\";\nimport { useListEmpty } from \"../utils/parts.mjs\";\nimport { useAnchorPositioning } from \"../../internals/useAnchorPositioning.mjs\";\nimport { useComboboxPortalContext } from \"../portal/ComboboxPortalContext.mjs\";\nimport { DROPDOWN_COLLISION_AVOIDANCE } from \"../../internals/constants.mjs\";\nimport { InternalBackdrop } from \"../../utils/InternalBackdrop.mjs\";\nimport { usePositioner } from \"../../utils/usePositioner.mjs\";\nimport { useAnchoredPopupScrollLock } from \"../../utils/useAnchoredPopupScrollLock.mjs\";\n\n/**\n * Positions the popup against the trigger.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const ComboboxPositioner = /*#__PURE__*/React.forwardRef(function ComboboxPositioner(componentProps, forwardedRef) {\n const {\n render,\n className,\n anchor,\n // `useAnchorPositioning` applies the same defaults to the undefined values; the names\n // remain destructured to exclude the props from `elementProps`.\n positionMethod,\n side,\n align,\n sideOffset,\n alignOffset,\n collisionBoundary = 'clipping-ancestors',\n collisionPadding,\n arrowPadding,\n sticky,\n disableAnchorTracking = false,\n collisionAvoidance = DROPDOWN_COLLISION_AVOIDANCE,\n style: styleProp,\n ...elementProps\n } = componentProps;\n const store = useComboboxRootContext();\n const floatingRootContext = useComboboxFloatingContext();\n const keepMounted = useComboboxPortalContext();\n const modal = store.useState('modal');\n const open = store.useState('open');\n const mounted = store.useState('mounted');\n const openMethod = store.useState('openMethod');\n const positionerElement = store.useState('positionerElement');\n const triggerElement = store.useState('triggerElement');\n const inputElement = store.useState('inputElement');\n const inputGroupElement = store.useState('inputGroupElement');\n const inputInsidePopup = store.useState('inputInsidePopup');\n const transitionStatus = store.useState('transitionStatus');\n const empty = useListEmpty();\n const resolvedAnchor = anchor ?? (inputInsidePopup ? triggerElement : inputGroupElement ?? inputElement);\n const positioning = useAnchorPositioning({\n anchor: resolvedAnchor,\n floatingRootContext,\n positionMethod,\n mounted,\n side,\n sideOffset,\n align,\n alignOffset,\n arrowPadding,\n collisionBoundary,\n collisionPadding,\n sticky,\n disableAnchorTracking,\n keepMounted,\n collisionAvoidance,\n lazyFlip: true\n });\n useAnchoredPopupScrollLock(open && modal, openMethod === 'touch', positionerElement, triggerElement);\n const state = {\n open,\n side: positioning.side,\n align: positioning.align,\n anchorHidden: positioning.anchorHidden,\n empty\n };\n useIsoLayoutEffect(() => {\n store.set('popupSide', positioning.side);\n }, [store, positioning.side]);\n const setPositionerElement = useStableCallback(element => {\n store.set('positionerElement', element);\n });\n const element = usePositioner(componentProps, state, {\n styles: positioning.positionerStyles,\n transitionStatus,\n props: elementProps,\n refs: [forwardedRef, setPositionerElement],\n hidden: !mounted,\n inert: !open\n });\n return /*#__PURE__*/_jsxs(ComboboxPositionerContext.Provider, {\n value: positioning,\n children: [mounted && modal && /*#__PURE__*/_jsx(InternalBackdrop, {\n inert: inertValue(!open),\n cutout: inputGroupElement ?? inputElement ?? triggerElement\n }), element]\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxPositioner.displayName = \"ComboboxPositioner\";","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { FloatingFocusManager } from \"../../floating-ui-react/index.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useComboboxFloatingContext, useComboboxRootContext } from \"../root/ComboboxRootContext.mjs\";\nimport { popupStateMapping } from \"../../utils/popupStateMapping.mjs\";\nimport { useComboboxPositionerContext } from \"../positioner/ComboboxPositionerContext.mjs\";\nimport { useOpenChangeComplete } from \"../../internals/useOpenChangeComplete.mjs\";\nimport { transitionStatusMapping } from \"../../internals/stateAttributesMapping.mjs\";\nimport { contains, getTarget } from \"../../floating-ui-react/utils.mjs\";\nimport { getDisabledMountTransitionStyles } from \"../../internals/getDisabledMountTransitionStyles.mjs\";\nimport { ComboboxInternalDismissButton } from \"../utils/ComboboxInternalDismissButton.mjs\";\nimport { getComboboxPopupId } from \"../root/utils/index.mjs\";\nimport { useListEmpty } from \"../utils/parts.mjs\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst stateAttributesMapping = {\n ...popupStateMapping,\n ...transitionStatusMapping\n};\n\n/**\n * A container for the list.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nexport const ComboboxPopup = /*#__PURE__*/React.forwardRef(function ComboboxPopup(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n initialFocus,\n finalFocus,\n ...elementProps\n } = componentProps;\n const store = useComboboxRootContext();\n const positioning = useComboboxPositionerContext();\n const floatingRootContext = useComboboxFloatingContext();\n const mounted = store.useState('mounted');\n const open = store.useState('open');\n const openMethod = store.useState('openMethod');\n const popupProps = store.useState('popupProps');\n const transitionStatus = store.useState('transitionStatus');\n const inputInsidePopup = store.useState('inputInsidePopup');\n const inputElement = store.useState('inputElement');\n const modal = store.useState('modal');\n const rootId = store.useState('id');\n const empty = useListEmpty();\n const popupId = elementProps.id ?? (inputInsidePopup ? getComboboxPopupId(rootId) : undefined);\n useIsoLayoutEffect(() => {\n // Prefer the rendered DOM id, which a `render` prop element or function may override.\n store.set('popupId', store.context.popupRef.current?.id || popupId);\n return () => {\n store.set('popupId', undefined);\n };\n }, [store, popupId]);\n useOpenChangeComplete({\n open,\n ref: store.context.popupRef,\n onComplete() {\n if (open) {\n store.context.onOpenChangeComplete(true);\n }\n }\n });\n const state = {\n open,\n side: positioning.side,\n align: positioning.align,\n anchorHidden: positioning.anchorHidden,\n transitionStatus,\n empty\n };\n const element = useRenderElement('div', componentProps, {\n state,\n ref: [forwardedRef, store.context.popupRef],\n props: [popupProps, {\n id: popupId,\n role: inputInsidePopup ? 'dialog' : 'presentation',\n onFocus(event) {\n const target = getTarget(event.nativeEvent);\n if (openMethod !== 'touch' && (contains(store.state.listElement, target) || target === event.currentTarget)) {\n store.context.inputRef.current?.focus();\n }\n }\n }, getDisabledMountTransitionStyles(transitionStatus), elementProps],\n stateAttributesMapping\n });\n\n // Default initial focus logic:\n // If opened by touch, focus the popup element to prevent the virtual keyboard from opening\n // (this is required for Android specifically as iOS handles this automatically).\n const computedDefaultInitialFocus = inputInsidePopup ? interactionType => interactionType === 'touch' ? store.context.popupRef.current : inputElement : false;\n const resolvedInitialFocus = initialFocus === undefined ? computedDefaultInitialFocus : initialFocus;\n let resolvedFinalFocus;\n if (finalFocus != null) {\n resolvedFinalFocus = finalFocus;\n } else {\n resolvedFinalFocus = inputInsidePopup ? undefined : false;\n }\n const focusManagerModal = !inputInsidePopup || modal;\n return /*#__PURE__*/_jsx(FloatingFocusManager, {\n context: floatingRootContext,\n disabled: !mounted,\n modal: focusManagerModal,\n openInteractionType: openMethod,\n initialFocus: resolvedInitialFocus,\n returnFocus: resolvedFinalFocus,\n getInsideElements: () => [store.context.startDismissRef.current, store.context.endDismissRef.current],\n children: /*#__PURE__*/_jsxs(React.Fragment, {\n children: [element, focusManagerModal && /*#__PURE__*/_jsx(ComboboxInternalDismissButton, {\n ref: store.context.endDismissRef\n })]\n })\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxPopup.displayName = \"ComboboxPopup\";","'use client';\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useComboboxRootContext, useComboboxHasItemsContext, useComboboxDerivedItemsContext } from \"../root/ComboboxRootContext.mjs\";\nimport { useCompositeListItem } from \"../../internals/composite/list/useCompositeListItem.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { ComboboxItemContext } from \"./ComboboxItemContext.mjs\";\nimport { useButton } from \"../../internals/use-button/index.mjs\";\nimport { useComboboxRowContext } from \"../row/ComboboxRowContext.mjs\";\nimport { compareItemEquality, findItemIndex, resolveSelectedIndex } from \"../../internals/itemEquality.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction ComboboxItemInner(props) {\n const {\n componentProps,\n forwardedRef,\n virtualized,\n indexFromFilter\n } = props;\n const {\n render,\n className,\n style,\n value: itemValue = null,\n index: indexProp,\n disabled: disabledProp = false,\n nativeButton = false,\n ...elementProps\n } = componentProps;\n const textRef = React.useRef(null);\n const listItem = useCompositeListItem({\n guess: true,\n index: indexProp,\n textRef\n });\n const store = useComboboxRootContext();\n const isRow = useComboboxRowContext();\n const hasItems = useComboboxHasItemsContext();\n const {\n props: itemProps,\n id: rootId,\n selectionMode,\n disabled: rootDisabled,\n readOnly,\n isItemEqualToValue\n } = store.useState('itemRoot');\n const disabled = rootDisabled || disabledProp;\n const selectable = selectionMode !== 'none';\n const index = indexProp ?? indexFromFilter ?? listItem.index;\n const hasRegistered = index !== -1;\n const highlighted = store.useState('isActive', index);\n const matchesSelectedValue = store.useState('isSelected', itemValue);\n const itemRef = React.useRef(null);\n const id = rootId != null && hasRegistered ? `${rootId}-${index}` : undefined;\n const selected = matchesSelectedValue && selectable;\n useIsoLayoutEffect(() => {\n const shouldRun = hasRegistered && (virtualized || indexProp != null);\n if (!shouldRun) {\n return undefined;\n }\n const list = store.context.listRef.current;\n list[index] = itemRef.current;\n return () => {\n delete list[index];\n };\n }, [hasRegistered, virtualized, index, indexProp, store]);\n useIsoLayoutEffect(() => {\n if (!hasRegistered || hasItems) {\n return undefined;\n }\n const visibleValues = store.context.valuesRef.current;\n visibleValues[index] = itemValue;\n return () => {\n delete visibleValues[index];\n };\n }, [hasRegistered, hasItems, index, itemValue, store]);\n useIsoLayoutEffect(() => {\n if (!hasRegistered || hasItems) {\n return;\n }\n\n // Runs while closed as well (the list can stay mounted via `keepMounted` or a\n // force-mount) so the index tracks the item's composite position, keeping features\n // like closed-trigger typeahead in sync when the rendered order changes.\n const selectedValue = store.state.selectedValue;\n let nextIndex = store.state.selectedIndex;\n if (store.state.selectionMode === 'multiple' && Array.isArray(selectedValue)) {\n nextIndex = resolveSelectedIndex(index, itemValue, store.context.valuesRef.current, selectedValue, isItemEqualToValue, nextIndex);\n } else if (compareItemEquality(itemValue, selectedValue, isItemEqualToValue)) {\n nextIndex = index;\n }\n store.set('selectedIndex', nextIndex);\n }, [hasRegistered, hasItems, store, index, itemValue, isItemEqualToValue]);\n const {\n getButtonProps,\n buttonRef\n } = useButton({\n disabled,\n focusableWhenDisabled: true,\n native: nativeButton,\n composite: true\n });\n const state = {\n disabled,\n selected,\n highlighted\n };\n function commitSelection(nativeEvent) {\n function selectItem() {\n store.context.handleSelection(nativeEvent, itemValue);\n }\n if (store.state.submitOnItemClick) {\n ReactDOM.flushSync(selectItem);\n store.context.requestSubmit();\n } else {\n selectItem();\n }\n }\n const defaultProps = {\n id,\n role: isRow ? 'gridcell' : 'option',\n 'aria-selected': selectable ? selected : undefined,\n // Focusable items steal focus from the input upon mouseup.\n // Warn if the user renders a natively focusable element like `<button>`,\n // as it should be a `<div>` instead.\n tabIndex: undefined,\n onPointerDownCapture(event) {\n // The compat `mouseup` only fires for the primary pointer, so a non-primary\n // touch must not overwrite the shared ref — a mismatch would make the primary\n // pointer's release read as a drag-select and commit a second time after `click`.\n if (event.isPrimary) {\n store.context.pointerDownItemRef.current = event.currentTarget;\n }\n event.preventDefault();\n },\n onMouseDown(event) {\n // iOS Safari can emit a synthetic mousedown for touch taps without a preceding\n // pointerdown. Prevent default here too so tapping an item does not blur the input.\n event.preventDefault();\n },\n onClick(event) {\n if (disabled || readOnly) {\n return;\n }\n commitSelection(event.nativeEvent);\n },\n onMouseUp(event) {\n const pointerStartedOnItem = store.context.pointerDownItemRef.current === event.currentTarget;\n store.context.pointerDownItemRef.current = null;\n if (disabled || readOnly || event.button !== 0 || pointerStartedOnItem || !highlighted) {\n return;\n }\n commitSelection(event.nativeEvent);\n }\n };\n const element = useRenderElement('div', componentProps, {\n ref: [buttonRef, forwardedRef, listItem.ref, itemRef],\n state,\n props: [itemProps, defaultProps, elementProps, getButtonProps]\n });\n const contextValue = React.useMemo(() => ({\n selected,\n textRef\n }), [selected, textRef]);\n return /*#__PURE__*/_jsx(ComboboxItemContext.Provider, {\n value: contextValue,\n children: element\n });\n}\n\n/**\n * Resolves the index from the filtered items for the virtualized fallback (no `index` prop).\n * Isolated here so that this per-keystroke subscription to the derived-items context is only\n * paid by virtualized items. Those re-render on every input change anyway — the parent\n * virtualizer re-windows the list as the filtered set changes — so the extra subscription costs\n * them nothing, while it keeps every non-virtualized item off that context.\n */\nfunction ComboboxItemVirtualizedIndex(props) {\n const {\n componentProps,\n forwardedRef\n } = props;\n const store = useComboboxRootContext();\n const isItemEqualToValue = store.useState('isItemEqualToValue');\n const {\n flatFilteredValues\n } = useComboboxDerivedItemsContext();\n const lookupValue = componentProps.value ?? null;\n const indexFromFilter = findItemIndex(flatFilteredValues, lookupValue, isItemEqualToValue);\n\n // Only reached when `virtualized` is true (see the wrapper below).\n return /*#__PURE__*/_jsx(ComboboxItemInner, {\n componentProps: componentProps,\n forwardedRef: forwardedRef,\n virtualized: true,\n indexFromFilter: indexFromFilter\n });\n}\n\n/**\n * An individual item in the list.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nexport const ComboboxItem = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function ComboboxItem(componentProps, forwardedRef) {\n const store = useComboboxRootContext();\n const virtualized = store.useState('virtualized');\n\n // `virtualized` (and whether an item provides an explicit `index`) must be stable for an\n // item's lifetime: the two branches return different component types, so flipping it at\n // runtime remounts the item and resets its refs and effects.\n if (virtualized && componentProps.index == null) {\n return /*#__PURE__*/_jsx(ComboboxItemVirtualizedIndex, {\n componentProps: componentProps,\n forwardedRef: forwardedRef\n });\n }\n return /*#__PURE__*/_jsx(ComboboxItemInner, {\n componentProps: componentProps,\n forwardedRef: forwardedRef,\n virtualized: virtualized,\n indexFromFilter: undefined\n });\n}));\nif (process.env.NODE_ENV !== \"production\") ComboboxItem.displayName = \"ComboboxItem\";","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const ComboboxItemContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ComboboxItemContext.displayName = \"ComboboxItemContext\";\nexport function useComboboxItemContext() {\n const context = React.useContext(ComboboxItemContext);\n if (!context) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: ComboboxItemContext is missing. ComboboxItem parts must be placed within <Combobox.Item>.' : _formatErrorMessage(19));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nexport const ComboboxRowContext = /*#__PURE__*/React.createContext(false);\nif (process.env.NODE_ENV !== \"production\") ComboboxRowContext.displayName = \"ComboboxRowContext\";\nexport function useComboboxRowContext() {\n return React.useContext(ComboboxRowContext);\n}","'use client';\n\nimport * as React from 'react';\nimport { useTransitionStatus } from \"../internals/useTransitionStatus.mjs\";\nimport { useOpenChangeComplete } from \"../internals/useOpenChangeComplete.mjs\";\nimport { useRenderElement } from \"../internals/useRenderElement.mjs\";\nimport { transitionStatusMapping } from \"../internals/stateAttributesMapping.mjs\";\n\n// The public wrappers mount this component only when selected or kept mounted, avoiding the\n// hook costs for unselected items. Pass selection as a prop so memoization observes changes.\nexport const ItemIndicator = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function ItemIndicator(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n keepMounted,\n selected,\n ...elementProps\n } = componentProps;\n const indicatorRef = React.useRef(null);\n const {\n transitionStatus,\n setMounted\n } = useTransitionStatus(selected);\n const state = {\n selected,\n transitionStatus\n };\n const element = useRenderElement('span', componentProps, {\n ref: [forwardedRef, indicatorRef],\n state,\n props: [{\n 'aria-hidden': true,\n children: '✔️'\n }, elementProps],\n stateAttributesMapping: transitionStatusMapping\n });\n useOpenChangeComplete({\n batch: true,\n enabled: !selected,\n open: selected,\n ref: indicatorRef,\n onComplete() {\n if (!selected) {\n setMounted(false);\n }\n }\n });\n return element;\n}));\nif (process.env.NODE_ENV !== \"production\") ItemIndicator.displayName = \"ItemIndicator\";","'use client';\n\nimport * as React from 'react';\nimport { useComboboxItemContext } from \"../item/ComboboxItemContext.mjs\";\nimport { ItemIndicator } from \"../../utils/ItemIndicator.mjs\";\n\n/**\n * Indicates whether the item is selected.\n * Renders a `<span>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const ComboboxItemIndicator = /*#__PURE__*/React.forwardRef(function ComboboxItemIndicator(componentProps, forwardedRef) {\n const {\n selected\n } = useComboboxItemContext();\n const shouldRender = componentProps.keepMounted || selected;\n if (!shouldRender) {\n return null;\n }\n return /*#__PURE__*/_jsx(ItemIndicator, {\n ...componentProps,\n selected: selected,\n ref: forwardedRef\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxItemIndicator.displayName = \"ComboboxItemIndicator\";","'use client';\n\nimport * as React from 'react';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { ComboboxChipsContext } from \"./ComboboxChipsContext.mjs\";\nimport { CompositeList } from \"../../internals/composite/list/CompositeList.mjs\";\nimport { useComboboxRootContext } from \"../root/ComboboxRootContext.mjs\";\nimport { handleInputPress } from \"../utils/handleInputPress.mjs\";\n\n/**\n * A container for the chips in a multiselectable input.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const ComboboxChips = /*#__PURE__*/React.forwardRef(function ComboboxChips(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n ...elementProps\n } = componentProps;\n const store = useComboboxRootContext();\n const hasSelectionChips = store.useState('hasSelectionChips');\n const chipsRef = React.useRef([]);\n const element = useRenderElement('div', componentProps, {\n ref: [forwardedRef, store.context.chipsContainerRef],\n // NVDA enters browse mode instead of staying in focus mode when navigating with\n // arrow keys inside a container unless it has a toolbar role.\n props: [hasSelectionChips ? {\n role: 'toolbar'\n } : EMPTY_OBJECT, {\n onMouseDown(event) {\n handleInputPress(event, store, store.state.disabled);\n }\n }, elementProps]\n });\n const contextValue = React.useMemo(() => ({\n chipsRef\n }), []);\n return /*#__PURE__*/_jsx(ComboboxChipsContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(CompositeList, {\n elementsRef: chipsRef,\n children: element\n })\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxChips.displayName = \"ComboboxChips\";","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const ComboboxChipContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ComboboxChipContext.displayName = \"ComboboxChipContext\";\nexport function useComboboxChipContext() {\n const context = React.useContext(ComboboxChipContext);\n if (!context) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: ComboboxChipContext is missing. ComboboxChip parts must be placed within <Combobox.Chip>.' : _formatErrorMessage(17));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useComboboxChipsContext } from \"../chips/ComboboxChipsContext.mjs\";\nimport { useComboboxRootContext } from \"../root/ComboboxRootContext.mjs\";\nimport { useCompositeListItem } from \"../../internals/composite/list/useCompositeListItem.mjs\";\nimport { ComboboxChipContext } from \"./ComboboxChipContext.mjs\";\nimport { stopEvent } from \"../../floating-ui-react/utils.mjs\";\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { useDirection } from \"../../internals/direction-context/DirectionContext.mjs\";\nimport { getChipNavigationKeys, getIndexAfterChipRemoval } from \"../utils/parts.mjs\";\n\n/**\n * An individual chip that represents a value in a multiselectable input.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const ComboboxChip = /*#__PURE__*/React.forwardRef(function ComboboxChip(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n ...elementProps\n } = componentProps;\n const store = useComboboxRootContext();\n const {\n chipsRef\n } = useComboboxChipsContext();\n const direction = useDirection();\n const disabled = store.useState('disabled');\n const readOnly = store.useState('readOnly');\n const selectedValue = store.useState('selectedValue');\n const {\n ref,\n index\n } = useCompositeListItem();\n function handleKeyDown(event) {\n let nextIndex = index;\n const [previousChipKey, nextChipKey] = getChipNavigationKeys(direction);\n if (event.key === previousChipKey) {\n event.preventDefault();\n if (index > 0) {\n nextIndex = index - 1;\n } else {\n nextIndex = undefined;\n }\n } else if (event.key === nextChipKey) {\n event.preventDefault();\n if (index < chipsRef.current.length - 1) {\n nextIndex = index + 1;\n } else {\n nextIndex = undefined;\n }\n } else if (event.key === 'Backspace' || event.key === 'Delete') {\n nextIndex = getIndexAfterChipRemoval(index, selectedValue.length);\n stopEvent(event);\n\n // Commit the removal before focusing so `chipsRef` reflects the remaining chips.\n ReactDOM.flushSync(() => {\n store.context.setIndices({\n activeIndex: null,\n selectedIndex: null,\n type: REASONS.keyboard,\n event: event.nativeEvent\n });\n store.context.setSelectedValue(selectedValue.filter((_, i) => i !== index), createChangeEventDetails(REASONS.none, event.nativeEvent));\n });\n } else if (event.key === 'Enter' || event.key === ' ') {\n stopEvent(event);\n nextIndex = undefined;\n } else if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n stopEvent(event);\n // The input may mount when opening.\n ReactDOM.flushSync(() => {\n store.context.setOpen(true, createChangeEventDetails(REASONS.listNavigation, event.nativeEvent));\n });\n nextIndex = undefined;\n } else if (\n // Check for printable characters (letters, numbers, symbols)\n event.key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey) {\n nextIndex = undefined;\n }\n return nextIndex;\n }\n const state = {\n disabled\n };\n const element = useRenderElement('div', componentProps, {\n ref: [forwardedRef, ref],\n state,\n props: [{\n tabIndex: -1,\n 'aria-disabled': disabled || undefined,\n 'aria-readonly': readOnly || undefined,\n onKeyDown(event) {\n if (disabled || readOnly) {\n return;\n }\n const nextIndex = handleKeyDown(event);\n if (nextIndex === undefined) {\n store.context.inputRef.current?.focus();\n } else {\n chipsRef.current[nextIndex]?.focus();\n }\n }\n }, elementProps]\n });\n const contextValue = React.useMemo(() => ({\n index\n }), [index]);\n return /*#__PURE__*/_jsx(ComboboxChipContext.Provider, {\n value: contextValue,\n children: element\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxChip.displayName = \"ComboboxChip\";","'use client';\n\nimport * as React from 'react';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useComboboxRootContext } from \"../root/ComboboxRootContext.mjs\";\nimport { useComboboxChipContext } from \"../chip/ComboboxChipContext.mjs\";\nimport { useButton } from \"../../internals/use-button/index.mjs\";\nimport { stopEvent } from \"../../floating-ui-react/utils.mjs\";\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { getHighlightReason } from \"../../utils/getHighlightReason.mjs\";\nimport { findItemIndex } from \"../../internals/itemEquality.mjs\";\n\n/**\n * A button to remove a chip.\n * Renders a `<button>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nexport const ComboboxChipRemove = /*#__PURE__*/React.forwardRef(function ComboboxChipRemove(componentProps, forwardedRef) {\n const {\n render,\n className,\n disabled: disabledProp = false,\n nativeButton = true,\n style,\n ...elementProps\n } = componentProps;\n const store = useComboboxRootContext();\n const {\n index\n } = useComboboxChipContext();\n const comboboxDisabled = store.useState('disabled');\n const readOnly = store.useState('readOnly');\n const selectedValue = store.useState('selectedValue');\n const isItemEqualToValue = store.useState('isItemEqualToValue');\n const disabled = comboboxDisabled || disabledProp;\n const {\n buttonRef,\n getButtonProps\n } = useButton({\n native: nativeButton,\n disabled: disabled || readOnly,\n focusableWhenDisabled: true\n });\n const state = {\n disabled\n };\n function clearActiveIndexForRemovedItem(removedItem, event) {\n const activeIndex = store.state.activeIndex;\n if (activeIndex == null) {\n return;\n }\n\n // Try current visible list first; if not found, it's filtered out.\n // No need to clear highlight in that case since it can't equal activeIndex.\n const removedIndex = findItemIndex(store.context.valuesRef.current, removedItem, isItemEqualToValue);\n if (removedIndex !== -1 && activeIndex === removedIndex) {\n store.context.setIndices({\n activeIndex: null,\n type: getHighlightReason(event),\n event\n });\n }\n }\n function removeChip(event) {\n const eventDetails = createChangeEventDetails(REASONS.chipRemovePress, event.nativeEvent);\n const removedItem = selectedValue[index];\n clearActiveIndexForRemovedItem(removedItem, event.nativeEvent);\n store.context.setSelectedValue(selectedValue.filter((_, i) => i !== index), eventDetails);\n store.context.inputRef.current?.focus();\n return eventDetails;\n }\n const element = useRenderElement('button', componentProps, {\n ref: [forwardedRef, buttonRef],\n state,\n props: [{\n tabIndex: -1,\n onMouseDown(event) {\n event.preventDefault();\n },\n onClick(event) {\n const eventDetails = removeChip(event);\n if (!eventDetails.isPropagationAllowed) {\n event.stopPropagation();\n }\n },\n onKeyDown(event) {\n if (event.key === 'Enter' || event.key === ' ') {\n const eventDetails = removeChip(event);\n if (!eventDetails.isPropagationAllowed) {\n stopEvent(event);\n }\n }\n }\n }, elementProps, getButtonProps]\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxChipRemove.displayName = \"ComboboxChipRemove\";","'use client';\n\nimport * as React from 'react';\nimport { platform } from '@base-ui/utils/platform';\nimport { useTimeout } from '@base-ui/utils/useTimeout';\n\n// Word Joiner is invisible and zero-width, so it forces a text mutation without shifting layout.\nconst LIVE_REGION_MARKER = '\\u2060';\n// Safari VoiceOver needed roughly 200ms to reliably notice the initial polite live-region change.\nexport const INITIAL_LIVE_REGION_TEXT_MUTATION_RESET_DELAY = 200;\nfunction findLastTextNode(root) {\n const walker = root.ownerDocument.createTreeWalker(root, NodeFilter.SHOW_TEXT);\n let lastTextNode = null;\n while (walker.nextNode()) {\n const textNode = walker.currentNode;\n if (textNode.nodeValue !== '') {\n lastTextNode = textNode;\n }\n }\n return lastTextNode;\n}\n\n/**\n * @param present Whether the live region element is currently rendered. Lets a conditionally\n * rendered region re-run the marker each time its element (re)appears with text.\n */\nexport function useInitialLiveRegionTextMutation(present = true) {\n const timeout = useTimeout();\n const rootRef = React.useRef(null);\n\n // Only the initial mounted announcement needs the marker; later text updates announce naturally.\n React.useEffect(() => {\n if (!present || platform.os.ios) {\n return undefined;\n }\n const root = rootRef.current;\n if (root == null) {\n return undefined;\n }\n const textNode = findLastTextNode(root);\n if (textNode == null) {\n return undefined;\n }\n const originalValue = textNode.data;\n const markedValue = `${originalValue}${LIVE_REGION_MARKER}`;\n textNode.nodeValue = markedValue;\n timeout.start(INITIAL_LIVE_REGION_TEXT_MUTATION_RESET_DELAY, () => {\n if (textNode.nodeValue === markedValue) {\n textNode.nodeValue = originalValue;\n }\n });\n return () => {\n timeout.clear();\n if (textNode.nodeValue === markedValue) {\n textNode.nodeValue = originalValue;\n }\n };\n }, [present, rootRef, timeout]);\n return rootRef;\n}","'use client';\n\nimport * as React from 'react';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useComboboxDerivedItemsContext, useComboboxRootContext } from \"../root/ComboboxRootContext.mjs\";\nimport { useInitialLiveRegionTextMutation } from \"../../internals/useInitialLiveRegionTextMutation.mjs\";\n\n/**\n * Renders its children only when the list is empty.\n * Requires the `items` prop on the root component.\n * Announces changes politely to screen readers.\n * This component's root element must remain mounted in the DOM to announce\n * changes consistently across screen readers. Avoid hiding or removing the\n * component itself with `display: none`, `hidden`, `aria-hidden`, or conditional\n * rendering. Prefer updating or conditionally rendering its children instead.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Combobox](https://base-ui.com/react/components/combobox)\n */\nexport const ComboboxEmpty = /*#__PURE__*/React.forwardRef(function ComboboxEmpty(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n children: childrenProp,\n ...elementProps\n } = componentProps;\n const {\n filteredItems\n } = useComboboxDerivedItemsContext();\n const store = useComboboxRootContext();\n const emptyRef = useInitialLiveRegionTextMutation();\n const children = filteredItems.length === 0 ? childrenProp : null;\n return useRenderElement('div', componentProps, {\n ref: [forwardedRef, store.context.emptyRef, emptyRef],\n props: [{\n children,\n role: 'status',\n 'aria-live': 'polite',\n 'aria-atomic': true\n }, elementProps]\n });\n});\nif (process.env.NODE_ENV !== \"production\") ComboboxEmpty.displayName = \"ComboboxEmpty\";","import { getComputedStyle, getParentNode, isElement, isHTMLElement, isLastTraversableNode } from '@floating-ui/utils/dom';\nexport function isScrollableY(element, allowOverflowIntent = false) {\n const {\n overflowY\n } = getComputedStyle(element);\n if (overflowY !== 'auto' && overflowY !== 'scroll') {\n return false;\n }\n // When `allowOverflowIntent` is true, a container that overflows only once extra space is\n // added (e.g. drawer keyboard scroll slack) still counts, as long as it has layout size on\n // the axis.\n return allowOverflowIntent ? element.clientHeight > 0 : element.scrollHeight > element.clientHeight;\n}\nexport function isScrollableX(element, allowOverflowIntent = false) {\n const {\n overflowX\n } = getComputedStyle(element);\n if (overflowX !== 'auto' && overflowX !== 'scroll') {\n return false;\n }\n return allowOverflowIntent ? element.clientWidth > 0 : element.scrollWidth > element.clientWidth;\n}\nexport function isScrollable(element, axis, allowOverflowIntent = false) {\n return axis === 'vertical' ? isScrollableY(element, allowOverflowIntent) : isScrollableX(element, allowOverflowIntent);\n}\nexport function findScrollableAncestor(target, root, axis, allowOverflowIntent = false) {\n // `getParentNode` crosses shadow boundaries (and slots), so a target inside a shadow root\n // still walks up to scrollable ancestors in the light DOM. Non-HTML targets (SVG, MathML)\n // can't scroll, but their HTML ancestors can.\n let node = target;\n while (isElement(node) && node !== root && !isLastTraversableNode(node)) {\n if (isHTMLElement(node) && isScrollable(node, axis, allowOverflowIntent)) {\n return node;\n }\n node = getParentNode(node);\n }\n return null;\n}\nexport function findScrollableTouchTarget(target, root, axis = 'vertical', allowOverflowIntent = false) {\n return findScrollableAncestor(target, root, axis, allowOverflowIntent) ?? (isScrollable(root, axis, allowOverflowIntent) ? root : null);\n}","'use client';\n\nimport * as React from 'react';\nexport function useOnFirstRender(fn) {\n const ref = React.useRef(true);\n if (ref.current) {\n ref.current = false;\n fn();\n }\n}","'use client';\n\nimport { isElement } from '@floating-ui/utils/dom';\nimport { useId } from '@base-ui/utils/useId';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { PopupTriggerMap } from \"../../utils/popups/index.mjs\";\nimport { useFloatingParentNodeId } from \"../components/FloatingTree.mjs\";\nimport { FloatingRootStore } from \"../components/FloatingRootStore.mjs\";\nexport function useFloatingRootContext(options) {\n const {\n open = false,\n onOpenChange,\n elements = {}\n } = options;\n const floatingId = useId();\n const nested = useFloatingParentNodeId() != null;\n if (process.env.NODE_ENV !== 'production') {\n const optionDomReference = elements.reference;\n if (optionDomReference && !isElement(optionDomReference)) {\n console.error('Cannot pass a virtual element to the `elements.reference` option,', 'as it must be a real DOM element. Use `context.setPositionReference()`', 'instead.');\n }\n }\n const store = useRefWithInit(() => new FloatingRootStore({\n open,\n transitionStatus: undefined,\n onOpenChange,\n referenceElement: elements.reference ?? null,\n floatingElement: elements.floating ?? null,\n triggerElements: new PopupTriggerMap(),\n floatingId,\n syncOnly: false,\n nested\n })).current;\n useIsoLayoutEffect(() => {\n const valuesToSync = {\n open,\n floatingId\n };\n if (elements.reference !== undefined) {\n valuesToSync.referenceElement = elements.reference;\n valuesToSync.domReferenceElement = isElement(elements.reference) ? elements.reference : null;\n }\n if (elements.floating !== undefined) {\n valuesToSync.floatingElement = elements.floating;\n }\n store.update(valuesToSync);\n }, [open, floatingId, elements.reference, elements.floating, store]);\n store.context.onOpenChange = onOpenChange;\n store.context.nested = nested;\n return store;\n}","import { getGridNavigatedIndex, isIndexOutOfListBounds } from \"../utils/composite.mjs\";\n/**\n * Positional arguments are deliberate: property names of an options object\n * don't minify, and the signature is locked to the caller via `typeof` on the\n * `grid` option of `useListNavigation`.\n *\n * The injected grid navigator only ever operates on a uniform 1x1 grid (sizes are\n * always `1x1` and packing is never dense), so the cell-map machinery that supports\n * multi-cell items collapses to an identity transform over the item list. Calling\n * `getGridNavigatedIndex` directly keeps the cell-map helpers\n * (`createGridCellMap`/`getGridCellIndexOfCorner`/`getGridCellIndices`) out of\n * grid-combobox bundles.\n */\nexport function gridNavigation(event, prevIndex, listRef, orientation, loopFocus, rtl, disabledIndices, minIndex, maxIndex, cols = 2) {\n const nextIndex = getGridNavigatedIndex(listRef.current, {\n event,\n orientation,\n loopFocus,\n rtl,\n cols,\n disabledIndices,\n minIndex,\n maxIndex,\n // An out-of-range previous index falls back to the first enabled item.\n prevIndex: prevIndex > maxIndex ? minIndex : prevIndex,\n stopEvent: true\n });\n\n // `getGridNavigatedIndex` can return an out-of-bounds sentinel (e.g. `-1` when there is no\n // previous item to move from); surface that as `undefined` so the caller treats it as\n // \"no navigation\" rather than highlighting index `-1`.\n return isIndexOutOfListBounds(listRef.current, nextIndex) ? undefined : nextIndex;\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const ComboboxRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ComboboxRootContext.displayName = \"ComboboxRootContext\";\nexport const ComboboxFloatingContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ComboboxFloatingContext.displayName = \"ComboboxFloatingContext\";\nexport const ComboboxDerivedItemsContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") ComboboxDerivedItemsContext.displayName = \"ComboboxDerivedItemsContext\";\nexport const ComboboxHasItemsContext = /*#__PURE__*/React.createContext(false);\n// `inputValue` can't be placed in the store.\n// https://github.com/mui/base-ui/issues/2703\nif (process.env.NODE_ENV !== \"production\") ComboboxHasItemsContext.displayName = \"ComboboxHasItemsContext\";\nexport const ComboboxInputValueContext = /*#__PURE__*/React.createContext('');\nif (process.env.NODE_ENV !== \"production\") ComboboxInputValueContext.displayName = \"ComboboxInputValueContext\";\nexport function useComboboxRootContext() {\n const context = React.useContext(ComboboxRootContext);\n if (!context) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: ComboboxRootContext is missing. Combobox parts must be placed within <Combobox.Root>.' : _formatErrorMessage(22));\n }\n return context;\n}\nexport function useComboboxFloatingContext() {\n const context = React.useContext(ComboboxFloatingContext);\n if (!context) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: ComboboxFloatingContext is missing. Combobox parts must be placed within <Combobox.Root>.' : _formatErrorMessage(23));\n }\n return context;\n}\nexport function useComboboxDerivedItemsContext() {\n const context = React.useContext(ComboboxDerivedItemsContext);\n if (!context) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: ComboboxItemsContext is missing. Combobox parts must be placed within <Combobox.Root>.' : _formatErrorMessage(24));\n }\n return context;\n}\nexport function useComboboxInputValueContext() {\n return React.useContext(ComboboxInputValueContext);\n}\nexport function useComboboxHasItemsContext() {\n return React.useContext(ComboboxHasItemsContext);\n}","// https://github.com/mui/mui-x/blob/master/packages/x-internals/src/fastArrayCompare/fastArrayCompare.ts\n\n/**\n * Compares two arrays element-wise.\n *\n * The default comparison is `Object.is`, so `NaN` equals `NaN` and `0` does not equal `-0`.\n */\nexport function areArraysEqual(array1, array2, itemComparer = Object.is) {\n const {\n length\n } = array1;\n if (length !== array2.length) {\n return false;\n }\n for (let i = 0; i < length; i += 1) {\n if (!itemComparer(array1[i], array2[i])) {\n return false;\n }\n }\n return true;\n}","import { areArraysEqual } from '@base-ui/utils/areArraysEqual';\n// Compared by identity in `findSelectionIndex`; don't wrap it.\nexport const defaultItemEquality = (itemValue, selectedValue) => Object.is(itemValue, selectedValue);\nexport function compareItemEquality(itemValue, selectedValue, comparer) {\n if (itemValue == null || selectedValue == null) {\n return Object.is(itemValue, selectedValue);\n }\n return comparer(itemValue, selectedValue);\n}\nexport function isSelectedValueDirty(currentValue, initialValue, comparer) {\n if (Array.isArray(currentValue) && Array.isArray(initialValue)) {\n return !areArraysEqual(currentValue, initialValue, (itemValue, initialItemValue) => compareItemEquality(itemValue, initialItemValue, comparer));\n }\n return currentValue !== initialValue;\n}\nexport function selectedValueIncludes(selectedValues, itemValue, comparer) {\n if (!selectedValues) {\n return false;\n }\n return selectedValues.some(selectedValue => {\n if (selectedValue === undefined) {\n return false;\n }\n return compareItemEquality(itemValue, selectedValue, comparer);\n });\n}\nexport function findItemIndex(itemValues, selectedValue, comparer) {\n if (!itemValues) {\n return -1;\n }\n return itemValues.findIndex(itemValue => {\n if (itemValue === undefined) {\n return false;\n }\n return compareItemEquality(itemValue, selectedValue, comparer);\n });\n}\n\n// The default comparer is `Object.is`, so the values can be indexed instead of rescanned\n// for every item. A custom comparer may match values that don't hash alike.\nfunction createSelectionMatcher(selectedValues, comparer) {\n if (comparer !== defaultItemEquality) {\n return itemValue => selectedValueIncludes(selectedValues, itemValue, comparer);\n }\n const index = new Set(selectedValues);\n index.delete(undefined);\n // `Set` treats +0 and -0 as equal; `Object.is` does not.\n return itemValue => index.has(itemValue) && (itemValue !== 0 || selectedValues.some(v => Object.is(itemValue, v)));\n}\nexport function findSelectionIndex(itemValues, selectedValue, comparer, multiple) {\n // Only treat the value as a list in multiple mode: an array can itself be a valid\n // single-select value.\n const index = multiple && Array.isArray(selectedValue) ?\n // Anchor to the first selected item in rendered order so the index does not depend\n // on the order in which the values were added to the array.\n itemValues.findIndex(createSelectionMatcher(selectedValue, comparer)) : findItemIndex(itemValues, selectedValue, comparer);\n return index === -1 ? null : index;\n}\n\n/** Resolves the first selected index as items register or change. */\nexport function resolveSelectedIndex(index, itemValue, registry, selectedValues, comparer, currentIndex) {\n if (selectedValueIncludes(selectedValues, itemValue, comparer)) {\n // A later item only takes over once the current anchor stops being selected.\n return currentIndex != null && index > currentIndex && selectedValueIncludes(selectedValues, registry[currentIndex], comparer) ? currentIndex : index;\n }\n // The holder re-elects the anchor once it stops being selected.\n return index === currentIndex ? findSelectionIndex(registry, selectedValues, comparer, true) : currentIndex;\n}\nexport function removeItem(selectedValues, itemValue, comparer) {\n return selectedValues.filter(selectedValue => !compareItemEquality(itemValue, selectedValue, comparer));\n}","export function serializeValue(value) {\n if (value == null) {\n return '';\n }\n if (typeof value === 'string') {\n return value;\n }\n try {\n return JSON.stringify(value);\n } catch {\n return String(value);\n }\n}","'use client';\n\nimport * as React from 'react';\nimport { serializeValue } from \"./serializeValue.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction isGroup(item) {\n return typeof item === 'object' && item != null && Array.isArray(item.items);\n}\nexport function isGroupedItems(items) {\n // A group must carry an actual `items` array: key presence alone would misclassify an item\n // with an unrelated or optional `items` field.\n return isGroup(items?.[0]);\n}\nexport function flattenLeafItems(items) {\n return isGroupedItems(items) ? items.flatMap(group => group.items) : items;\n}\n\n/**\n * Checks if the items array contains an item with a null value that has a non-null label.\n */\nexport function hasNullItemLabel(items) {\n if (!Array.isArray(items)) {\n return items != null && 'null' in items;\n }\n const arrayItems = items;\n if (isGroupedItems(arrayItems)) {\n for (const group of arrayItems) {\n for (const item of group.items) {\n if (item && item.value == null && item.label != null) {\n return true;\n }\n }\n }\n return false;\n }\n for (const item of arrayItems) {\n if (item && item.value == null && item.label != null) {\n return true;\n }\n }\n return false;\n}\nexport function stringifyAsLabel(item, itemToStringLabel) {\n if (itemToStringLabel && item != null) {\n return itemToStringLabel(item) ?? '';\n }\n if (item && typeof item === 'object') {\n if ('label' in item && item.label != null) {\n return String(item.label);\n }\n if ('value' in item) {\n return String(item.value);\n }\n }\n return serializeValue(item);\n}\nexport function stringifyAsValue(item, itemToStringValue) {\n if (itemToStringValue && item != null) {\n return itemToStringValue(item) ?? '';\n }\n if (item && typeof item === 'object' && 'value' in item && 'label' in item) {\n return serializeValue(item.value);\n }\n return serializeValue(item);\n}\nexport function resolveSelectedLabel(value, items, itemToStringLabel) {\n function fallback() {\n return stringifyAsLabel(value, itemToStringLabel);\n }\n if (itemToStringLabel && value != null) {\n return itemToStringLabel(value);\n }\n\n // Custom object with explicit label takes precedence\n if (value && typeof value === 'object' && 'label' in value && value.label != null) {\n return value.label;\n }\n\n // Items provided as plain record map\n if (items && !Array.isArray(items)) {\n const label = Object.hasOwn(items, value) ? items[value] : undefined;\n return label ?? fallback();\n }\n\n // Items provided as array (flat or grouped)\n if (Array.isArray(items)) {\n const arrayItems = items;\n const flatItems = flattenLeafItems(arrayItems);\n if (value == null || typeof value !== 'object') {\n const match = flatItems.find(item => item.value === value);\n if (match && match.label != null) {\n return match.label;\n }\n return fallback();\n }\n\n // Object without explicit label: try matching by its `value` property\n if ('value' in value) {\n const match = flatItems.find(item => item && item.value === value.value);\n if (match && match.label != null) {\n return match.label;\n }\n }\n }\n return fallback();\n}\nexport function resolveMultipleLabels(values, items, itemToStringLabel) {\n return values.reduce((acc, value, index) => {\n if (index > 0) {\n acc.push(', ');\n }\n acc.push(/*#__PURE__*/_jsx(React.Fragment, {\n children: resolveSelectedLabel(value, items, itemToStringLabel)\n }, index));\n return acc;\n }, []);\n}","import { compareItemEquality } from \"../internals/itemEquality.mjs\";\nimport { hasNullItemLabel } from \"../internals/resolveValueLabel.mjs\";\n\n/**\n * Non-reactive values shared with the combobox parts. Nothing here is observable through\n * `selectors`, so writing to a ref never notifies subscribers.\n */\n\nexport const selectors = {\n id: state => state.id,\n labelId: state => state.labelId,\n items: state => state.items,\n selectedValue: state => state.selectedValue,\n hasSelectionChips: state => {\n const selectedValue = state.selectedValue;\n return Array.isArray(selectedValue) && selectedValue.length > 0;\n },\n hasSelectedValue: state => {\n const {\n selectedValue,\n selectionMode\n } = state;\n if (selectedValue == null) {\n return false;\n }\n if (selectionMode === 'multiple' && Array.isArray(selectedValue)) {\n return selectedValue.length > 0;\n }\n return true;\n },\n hasNullItemLabel: (state, enabled) => {\n return enabled ? hasNullItemLabel(state.items) : false;\n },\n open: state => state.open,\n mounted: state => state.mounted,\n forceMounted: state => state.forceMounted,\n inline: state => state.inline,\n activeIndex: state => state.activeIndex,\n selectedIndex: state => state.selectedIndex,\n isActive: (state, index) => state.activeIndex === index,\n isSelected: (state, itemValue) => {\n const comparer = state.isItemEqualToValue;\n const selectedValue = state.selectedValue;\n if (Array.isArray(selectedValue)) {\n return selectedValue.some(selectedItem => compareItemEquality(itemValue, selectedItem, comparer));\n }\n return compareItemEquality(itemValue, selectedValue, comparer);\n },\n transitionStatus: state => state.transitionStatus,\n popupProps: state => state.popupProps,\n listProps: state => state.listProps,\n inputProps: state => state.inputProps,\n triggerProps: state => state.triggerProps,\n itemRoot: state => state.itemRoot,\n positionerElement: state => state.positionerElement,\n listElement: state => state.listElement,\n popupId: state => state.popupId,\n triggerElement: state => state.triggerElement,\n inputElement: state => state.inputElement,\n inputGroupElement: state => state.inputGroupElement,\n popupSide: state => state.popupSide,\n openMethod: state => state.openMethod,\n inputInsidePopup: state => state.inputInsidePopup,\n inputOwnsFormValue: state => state.inputOwnsFormValue,\n selectionMode: state => state.selectionMode,\n name: state => state.name,\n form: state => state.form,\n disabled: state => state.disabled,\n readOnly: state => state.readOnly,\n required: state => state.required,\n grid: state => state.grid,\n virtualized: state => state.virtualized,\n itemToStringLabel: state => state.itemToStringLabel,\n isItemEqualToValue: state => state.isItemEqualToValue,\n modal: state => state.modal,\n autoHighlight: state => state.autoHighlight\n};","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { NOOP } from \"../noop.mjs\";\nimport { DEFAULT_FIELD_ROOT_STATE, DEFAULT_VALIDITY_STATE } from \"../field-constants/constants.mjs\";\nexport const DEFAULT_FIELD_ROOT_CONTEXT = {\n invalid: undefined,\n name: undefined,\n validityData: {\n state: DEFAULT_VALIDITY_STATE,\n errors: [],\n error: '',\n value: '',\n initialValue: null\n },\n setValidityData: NOOP,\n disabled: undefined,\n setTouched: NOOP,\n setDirty: NOOP,\n setFilled: NOOP,\n setFocused: NOOP,\n focusOwnerRef: {\n current: undefined\n },\n validationMode: 'onSubmit',\n shouldValidateOnChange: () => false,\n state: DEFAULT_FIELD_ROOT_STATE,\n registerFieldControl: NOOP,\n validation: {\n getValidationProps: (_disabled, props = EMPTY_OBJECT) => props,\n inputRef: {\n current: null\n },\n registeredInputs: new Map(),\n registerInput: NOOP,\n getInputControl: () => null,\n commit: async () => {},\n change: NOOP\n }\n};\nexport const FieldRootContext = /*#__PURE__*/React.createContext(DEFAULT_FIELD_ROOT_CONTEXT);\nif (process.env.NODE_ENV !== \"production\") FieldRootContext.displayName = \"FieldRootContext\";\nexport function useFieldRootContext(optional = true) {\n const context = React.useContext(FieldRootContext);\n if (context.setValidityData === NOOP && !optional) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: FieldRootContext is missing. Field parts must be placed within <Field.Root>.' : _formatErrorMessage(28));\n }\n return context;\n}","/**\n * Present when the field is disabled.\n */\nexport const disabled = 'data-disabled';\n/**\n * Present when the field is in a valid state.\n */\nexport const valid = 'data-valid';\n/**\n * Present when the field is in an invalid state.\n */\nexport const invalid = 'data-invalid';\n/**\n * Present when the field has been touched.\n */\nexport const touched = 'data-touched';\n/**\n * Present when the field's value has changed.\n */\nexport const dirty = 'data-dirty';\n/**\n * Present when the field is filled.\n */\nexport const filled = 'data-filled';\n/**\n * Present when the field control is focused.\n */\nexport const focused = 'data-focused';","import * as FieldControlDataAttributes from \"../../field/control/FieldControlDataAttributes.mjs\";\nexport const DEFAULT_VALIDITY_STATE = {\n badInput: false,\n customError: false,\n patternMismatch: false,\n rangeOverflow: false,\n rangeUnderflow: false,\n stepMismatch: false,\n tooLong: false,\n tooShort: false,\n typeMismatch: false,\n valid: null,\n valueMissing: false\n};\nexport const DEFAULT_FIELD_STATE_ATTRIBUTES = {\n valid: null,\n touched: false,\n dirty: false,\n filled: false,\n focused: false\n};\nexport const DEFAULT_FIELD_ROOT_STATE = {\n disabled: false,\n ...DEFAULT_FIELD_STATE_ATTRIBUTES\n};\nexport const fieldValidityMapping = {\n valid(value) {\n if (value === null) {\n return null;\n }\n if (value) {\n return {\n [FieldControlDataAttributes.valid]: ''\n };\n }\n return {\n [FieldControlDataAttributes.invalid]: ''\n };\n }\n};","'use client';\n\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { useFieldRootContext } from \"../field-root-context/FieldRootContext.mjs\";\nexport function useRegisterFieldControl(controlRef, id, value, getFormValueOverride, enabled = true, name) {\n const {\n registerFieldControl\n } = useFieldRootContext();\n const sourceRef = useRefWithInit(() => Symbol());\n\n // Re-register without unregistering first: re-registration with the same id updates the\n // form's fields Map entry in place, while a delete + re-add would move the field to the\n // end of the Map every time its value changes.\n useIsoLayoutEffect(() => {\n const source = sourceRef.current;\n if (!enabled) {\n registerFieldControl(source, undefined);\n return;\n }\n const registration = {\n controlRef,\n getValue: getFormValueOverride,\n id,\n name,\n value\n };\n registerFieldControl(source, registration);\n }, [controlRef, enabled, getFormValueOverride, id, name, registerFieldControl, sourceRef, value]);\n useIsoLayoutEffect(() => {\n const source = sourceRef.current;\n return () => {\n registerFieldControl(source, undefined);\n };\n }, [registerFieldControl, sourceRef]);\n}","'use client';\n\nimport * as React from 'react';\nimport { NOOP } from \"../noop.mjs\";\nexport const FormContext = /*#__PURE__*/React.createContext({\n elementRef: {\n current: null\n },\n formRef: {\n current: {\n fields: new Map()\n }\n },\n errors: {},\n clearErrors: NOOP,\n validationMode: 'onSubmit',\n submitCountRef: {\n current: 0\n }\n});\nif (process.env.NODE_ENV !== \"production\") FormContext.displayName = \"FormContext\";\nexport function useFormContext() {\n return React.useContext(FormContext);\n}","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { NOOP } from \"../noop.mjs\";\nimport { useBaseUiId } from \"../useBaseUiId.mjs\";\nimport { useLabelableContext } from \"./LabelableContext.mjs\";\nexport function useLabelableId(params = {}) {\n const {\n id,\n enabled = true\n } = params;\n const {\n controlId,\n registerControlId,\n resetControlId\n } = useLabelableContext();\n\n // Deliberately not seeded with `id`: on React 17 the seed would stick around after the\n // `id` prop is removed, leaving the control on a stale id forever.\n const defaultId = useBaseUiId();\n const controlSourceRef = useRefWithInit(() => Symbol());\n const hasRegisteredRef = React.useRef(false);\n const hadExplicitIdRef = React.useRef(false);\n const unregisterControlId = useStableCallback(() => {\n if (!hasRegisteredRef.current || registerControlId === NOOP) {\n return;\n }\n hasRegisteredRef.current = false;\n registerControlId(controlSourceRef.current, undefined);\n });\n useIsoLayoutEffect(() => {\n if (!enabled || registerControlId === NOOP) {\n unregisterControlId();\n return undefined;\n }\n let nextId;\n if (id !== undefined) {\n hadExplicitIdRef.current = true;\n nextId = id;\n } else if (hadExplicitIdRef.current) {\n nextId = defaultId;\n } else {\n // An id-less replacement must claim the provider's fallback so a previously registered\n // explicit id is not retained after its control unmounts.\n resetControlId();\n return undefined;\n }\n\n // Either the control never had an explicit `id`, or React 17 has not assigned the\n // fallback id yet. Neither is worth registering.\n if (nextId === undefined) {\n unregisterControlId();\n return undefined;\n }\n hasRegisteredRef.current = true;\n registerControlId(controlSourceRef.current, nextId);\n return undefined;\n }, [id, enabled, registerControlId, resetControlId, defaultId, controlSourceRef, unregisterControlId]);\n\n // Unregistering in the layout phase, not a passive effect: a replacement control's layout\n // effect would otherwise run first and still see the outgoing control's registration.\n useIsoLayoutEffect(() => {\n return unregisterControlId;\n }, [unregisterControlId]);\n\n // The provider's id wins until registration runs: the label renders `htmlFor` from the\n // provider's pre-registration state, so preempting it with an explicit `id` here would\n // leave the pair unassociated in server-rendered markup.\n return (enabled ? controlId : undefined) ?? id ?? defaultId;\n}","'use client';\n\nimport * as React from 'react';\nimport { NOOP } from \"../noop.mjs\";\n/**\n * A context for providing [labelable elements](https://html.spec.whatwg.org/multipage/forms.html#category-label)\\\n * with an accessible name (label) and description.\n */\nexport const LabelableContext = /*#__PURE__*/React.createContext({\n controlId: undefined,\n registerControlId: NOOP,\n resetControlId: NOOP,\n labelId: undefined,\n setLabelId: NOOP,\n messageIds: [],\n setMessageIds: NOOP,\n getDescriptionProps: externalProps => externalProps\n});\nif (process.env.NODE_ENV !== \"production\") LabelableContext.displayName = \"LabelableContext\";\nexport function useLabelableContext() {\n return React.useContext(LabelableContext);\n}","import { stringifyAsLabel } from \"../../../internals/resolveValueLabel.mjs\";\n/**\n * Derives the default id assigned to `Combobox.Popup` when the input is rendered inside it.\n * Shared by the popup (which applies it) and the trigger (which references it via `aria-controls`)\n * so the convention only lives in one place.\n */\nexport function getComboboxPopupId(rootId) {\n return rootId == null ? undefined : `${rootId}-popup`;\n}\n\n/**\n * Enhanced filter using Intl.Collator for more robust string matching.\n * Uses the provided `itemToStringLabel` function if available, otherwise falls back to:\n * • When `item` is an object with a `value` property, that property is used.\n * • When `item` is a primitive (e.g. `string`), it is used directly.\n */\nexport function createCollatorItemFilter(collatorFilter, itemToStringLabel) {\n return (item, query) => {\n if (item == null) {\n return false;\n }\n return collatorFilter.contains(item, query, itemToStringLabel);\n };\n}\n\n/**\n * Enhanced filter for single selection mode using Intl.Collator that shows all items\n * when query is empty or matches the current selection, making it easier to browse options.\n */\nexport function createSingleSelectionCollatorFilter(collatorFilter, itemToStringLabel, selectedValue) {\n return (item, query) => {\n if (item == null) {\n return false;\n }\n if (!query) {\n return true;\n }\n const selectedValueToString = itemToStringLabel?.selected ?? itemToStringLabel;\n const selectedString = selectedValue != null ? stringifyAsLabel(selectedValue, selectedValueToString) : '';\n\n // Handle case-insensitive matching consistently\n if (selectedString && collatorFilter.contains(selectedString, query) && selectedString.length === query.length) {\n return true;\n }\n return collatorFilter.contains(item, query, itemToStringLabel);\n };\n}","export function stringifyLocale(locale) {\n if (Array.isArray(locale)) {\n return locale.map(value => stringifyLocale(value)).join(',');\n }\n if (locale == null) {\n return '';\n }\n return String(locale);\n}","import { stringifyLocale } from '@base-ui/utils/stringifyLocale';\nimport { stringifyAsLabel } from \"./resolveValueLabel.mjs\";\nconst filterCache = new Map();\nexport function getFilter(options = {}) {\n const {\n locale,\n ...restOptions\n } = options;\n const collatorOptions = {\n usage: 'search',\n sensitivity: 'base',\n ignorePunctuation: true,\n ...restOptions\n };\n const cacheKey = `${stringifyLocale(locale)}|${JSON.stringify(collatorOptions)}`;\n const cachedFilter = filterCache.get(cacheKey);\n if (cachedFilter) {\n return cachedFilter;\n }\n const collator = new Intl.Collator(locale, collatorOptions);\n const filter = {\n contains(item, query, itemToString) {\n if (!query) {\n return true;\n }\n const itemString = stringifyAsLabel(item, itemToString);\n for (let i = 0; i <= itemString.length - query.length; i += 1) {\n if (collator.compare(itemString.slice(i, i + query.length), query) === 0) {\n return true;\n }\n }\n return false;\n },\n startsWith(item, query, itemToString) {\n if (!query) {\n return true;\n }\n const itemString = stringifyAsLabel(item, itemToString);\n return collator.compare(itemString.slice(0, query.length), query) === 0;\n },\n endsWith(item, query, itemToString) {\n if (!query) {\n return true;\n }\n const itemString = stringifyAsLabel(item, itemToString);\n const queryLength = query.length;\n return itemString.length >= queryLength && collator.compare(itemString.slice(itemString.length - queryLength), query) === 0;\n }\n };\n filterCache.set(cacheKey, filter);\n return filter;\n}","'use client';\n\nimport * as React from 'react';\nimport { createCollatorItemFilter, createSingleSelectionCollatorFilter } from \"./index.mjs\";\nimport { getFilter } from \"../../../internals/filter.mjs\";\n/**\n * Matches items against a query using `Intl.Collator` for robust string matching.\n */\nexport const useCoreFilter = getFilter;\n/**\n * Matches items against a query using `Intl.Collator` for robust string matching.\n */\nexport function useComboboxFilter(options = {}) {\n const {\n multiple = false,\n value,\n ...collatorOptions\n } = options;\n const coreFilter = getFilter(collatorOptions);\n const contains = React.useCallback((item, query, itemToString) => {\n if (multiple) {\n return createCollatorItemFilter(coreFilter, itemToString)(item, query);\n }\n return createSingleSelectionCollatorFilter(coreFilter, itemToString, value)(item, query);\n }, [coreFilter, value, multiple]);\n return React.useMemo(() => ({\n ...coreFilter,\n contains\n }), [contains, coreFilter]);\n}"],"names":["NO_ACTIVE_VALUE","Symbol","INITIAL_LAST_HIGHLIGHT","value","index","isScrollableY","element","allowOverflowIntent","overflowY","clientHeight","scrollHeight","isScrollableX","overflowX","clientWidth","scrollWidth","isScrollable","axis","findScrollableAncestor","target","root","node","findScrollableTouchTarget","useOnFirstRender","fn","ref","current"],"mappings":"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","ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56]}