@karan171996/metricflow 0.1.2 → 0.1.5

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 (277) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +5 -2
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/fallback-build-manifest.json +3 -3
  5. package/.next/next-server.js.nft.json +1 -1
  6. package/.next/prerender-manifest.json +11 -11
  7. package/.next/routes-manifest.json +23 -3
  8. package/.next/server/app/_global-error/page.js +3 -3
  9. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  10. package/.next/server/app/_global-error.html +1 -1
  11. package/.next/server/app/_global-error.rsc +2 -3
  12. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +9 -10
  13. package/.next/server/app/_global-error.segments/_full.segment.rsc +2 -3
  14. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  15. package/.next/server/app/_not-found/page.js +3 -3
  16. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  17. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  18. package/.next/server/app/_not-found.html +2 -2
  19. package/.next/server/app/_not-found.rsc +10 -10
  20. package/.next/server/app/_not-found.segments/_full.segment.rsc +10 -10
  21. package/.next/server/app/_not-found.segments/_index.segment.rsc +8 -8
  22. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  23. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  24. package/.next/server/app/api/analyze/route.js +3 -2
  25. package/.next/server/app/api/analyze/route.js.nft.json +1 -1
  26. package/.next/server/app/api/connect/route.js +2 -2
  27. package/.next/server/app/api/connect/route.js.nft.json +1 -1
  28. package/.next/server/app/api/metrics/route.js +2 -2
  29. package/.next/server/app/api/metrics/route.js.nft.json +1 -1
  30. package/.next/server/app/api/settings/route/app-paths-manifest.json +3 -0
  31. package/.next/server/app/api/settings/route/server-reference-manifest.json +4 -0
  32. package/.next/server/app/api/settings/route.js +6 -0
  33. package/.next/server/app/api/settings/route.js.nft.json +1 -0
  34. package/.next/server/app/api/settings/route_client-reference-manifest.js +3 -0
  35. package/.next/server/app/api/setup/ai/route/app-paths-manifest.json +3 -0
  36. package/.next/server/app/api/setup/ai/route/build-manifest.json +12 -0
  37. package/.next/server/app/api/setup/ai/route/server-reference-manifest.json +4 -0
  38. package/.next/server/app/api/setup/ai/route.js +7 -0
  39. package/.next/server/app/api/setup/ai/route.js.nft.json +1 -0
  40. package/.next/server/app/api/setup/ai/route_client-reference-manifest.js +3 -0
  41. package/.next/server/app/api/setup/route.js +2 -2
  42. package/.next/server/app/api/setup/route.js.nft.json +1 -1
  43. package/.next/server/app/connect/page.js +3 -3
  44. package/.next/server/app/connect/page.js.nft.json +1 -1
  45. package/.next/server/app/connect/page_client-reference-manifest.js +1 -1
  46. package/.next/server/app/connect.html +2 -2
  47. package/.next/server/app/connect.rsc +12 -12
  48. package/.next/server/app/connect.segments/_full.segment.rsc +12 -12
  49. package/.next/server/app/connect.segments/_index.segment.rsc +8 -8
  50. package/.next/server/app/connect.segments/_tree.segment.rsc +2 -2
  51. package/.next/server/app/connect.segments/connect/__PAGE__.segment.rsc +6 -6
  52. package/.next/server/app/icon.svg/route/app-paths-manifest.json +3 -0
  53. package/.next/server/app/icon.svg/route/build-manifest.json +12 -0
  54. package/.next/server/app/icon.svg/route.js +7 -0
  55. package/.next/server/app/{favicon.ico → icon.svg}/route.js.nft.json +1 -1
  56. package/.next/server/app/icon.svg.body +4 -0
  57. package/.next/server/app/icon.svg.meta +1 -0
  58. package/.next/server/app/index.html +2 -2
  59. package/.next/server/app/index.rsc +12 -12
  60. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  61. package/.next/server/app/index.segments/_full.segment.rsc +12 -12
  62. package/.next/server/app/index.segments/_index.segment.rsc +8 -8
  63. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  64. package/.next/server/app/page.js +3 -3
  65. package/.next/server/app/page.js.nft.json +1 -1
  66. package/.next/server/app/page_client-reference-manifest.js +1 -1
  67. package/.next/server/app/performance/[slug]/page.js +5 -4
  68. package/.next/server/app/performance/[slug]/page.js.nft.json +1 -1
  69. package/.next/server/app/performance/[slug]/page_client-reference-manifest.js +1 -1
  70. package/.next/server/app/performance/page.js +3 -3
  71. package/.next/server/app/performance/page.js.nft.json +1 -1
  72. package/.next/server/app/performance/page_client-reference-manifest.js +1 -1
  73. package/.next/server/app/performance.html +2 -2
  74. package/.next/server/app/performance.rsc +13 -13
  75. package/.next/server/app/performance.segments/_full.segment.rsc +13 -13
  76. package/.next/server/app/performance.segments/_index.segment.rsc +8 -8
  77. package/.next/server/app/performance.segments/_tree.segment.rsc +2 -2
  78. package/.next/server/app/performance.segments/performance/__PAGE__.segment.rsc +27 -26
  79. package/.next/server/app/settings/page.js +4 -4
  80. package/.next/server/app/settings/page.js.nft.json +1 -1
  81. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  82. package/.next/server/app/settings.html +2 -2
  83. package/.next/server/app/settings.rsc +24 -24
  84. package/.next/server/app/settings.segments/_full.segment.rsc +24 -24
  85. package/.next/server/app/settings.segments/_index.segment.rsc +8 -8
  86. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  87. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +20 -20
  88. package/.next/server/app/setup/page.js +3 -3
  89. package/.next/server/app/setup/page.js.nft.json +1 -1
  90. package/.next/server/app/setup/page_client-reference-manifest.js +1 -1
  91. package/.next/server/app/setup.html +2 -2
  92. package/.next/server/app/setup.rsc +31 -30
  93. package/.next/server/app/setup.segments/_full.segment.rsc +31 -30
  94. package/.next/server/app/setup.segments/_index.segment.rsc +8 -8
  95. package/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  96. package/.next/server/app/setup.segments/setup/__PAGE__.segment.rsc +25 -24
  97. package/.next/server/app/tools/[tool]/page/app-paths-manifest.json +3 -0
  98. package/.next/server/app/tools/[tool]/page/build-manifest.json +19 -0
  99. package/.next/server/app/tools/[tool]/page/next-font-manifest.json +6 -0
  100. package/.next/server/app/tools/[tool]/page/react-loadable-manifest.json +1 -0
  101. package/.next/server/app/tools/[tool]/page/server-reference-manifest.json +4 -0
  102. package/.next/server/app/tools/[tool]/page.js +17 -0
  103. package/.next/server/app/tools/[tool]/page.js.nft.json +1 -0
  104. package/.next/server/app/tools/[tool]/page_client-reference-manifest.js +3 -0
  105. package/.next/server/app-paths-manifest.json +5 -2
  106. package/.next/server/chunks/[root-of-the-server]__027a1hx._.js +3 -0
  107. package/.next/server/chunks/{[root-of-the-server]__0chxb6o._.js → [root-of-the-server]__0eo1oa6._.js} +2 -2
  108. package/.next/server/chunks/{[root-of-the-server]__1l249st._.js → [root-of-the-server]__0vkb6_m._.js} +2 -2
  109. package/.next/server/chunks/[root-of-the-server]__1d1y03f._.js +3 -0
  110. package/.next/server/chunks/[root-of-the-server]__1lxxc0h._.js +3 -0
  111. package/.next/server/chunks/{node_modules_0jatszq._.js → _0g9k22b._.js} +4 -4
  112. package/.next/server/chunks/_0zwkfj-._.js +8 -0
  113. package/.next/server/chunks/_10b5gsp._.js +22 -0
  114. package/.next/server/chunks/_1f-783b._.js +158 -0
  115. package/.next/server/chunks/_1pe45_3._.js +7 -7
  116. package/.next/server/chunks/_next-internal_server_app_api_settings_route_actions_1bpm9ac.js +3 -0
  117. package/.next/server/chunks/_next-internal_server_app_api_setup_ai_route_actions_0-ay8t8.js +3 -0
  118. package/.next/server/chunks/_next-internal_server_app_icon_svg_route_actions_1r2h_ub.js +3 -0
  119. package/.next/server/chunks/ssr/[root-of-the-server]__06gb9_u._.js +3 -0
  120. package/.next/server/chunks/ssr/[root-of-the-server]__0d9igav._.js +3 -0
  121. package/.next/server/chunks/ssr/[root-of-the-server]__0fufdy-._.js +3 -0
  122. package/.next/server/chunks/ssr/[root-of-the-server]__15_sjnx._.js +3 -0
  123. package/.next/server/chunks/ssr/[root-of-the-server]__18-cm6x._.js +3 -0
  124. package/.next/server/chunks/ssr/[root-of-the-server]__1fxaeqo._.js +3 -0
  125. package/.next/server/chunks/ssr/[root-of-the-server]__1io3bae._.js +33 -0
  126. package/.next/server/chunks/ssr/[root-of-the-server]__1pm7uf6._.js +3 -0
  127. package/.next/server/chunks/ssr/[root-of-the-server]__1q99mso._.js +3 -0
  128. package/.next/server/chunks/ssr/{_1r2qog2._.js → _0-bp5v7._.js} +3 -3
  129. package/.next/server/chunks/ssr/{_042xeoh._.js → _06r8zrg._.js} +2 -2
  130. package/.next/server/chunks/ssr/_1-6djlo._.js +3 -0
  131. package/.next/server/chunks/ssr/{_1n9m819._.js → _1a5owey._.js} +2 -2
  132. package/.next/server/chunks/ssr/_1b_fov9._.js +3 -0
  133. package/.next/server/chunks/ssr/_1d1ipgp._.js +1 -1
  134. package/.next/server/chunks/ssr/_1d74ud1._.js +3 -0
  135. package/.next/server/chunks/ssr/{_0dbmzjx._.js → _1ovns3l._.js} +3 -151
  136. package/.next/server/chunks/ssr/_1y-b2zm._.js +151 -0
  137. package/.next/server/chunks/ssr/_1zb40ot._.js +3 -0
  138. package/.next/server/chunks/ssr/_20txlee._.js +1 -1
  139. package/.next/server/chunks/ssr/_next-internal_server_app_tools_[tool]_page_actions_0-u-_p-.js +3 -0
  140. package/.next/server/chunks/ssr/app_layout_tsx_2144vk_._.js +1 -1
  141. package/.next/server/chunks/ssr/node_modules_next_dist_0drixxt._.js +151 -0
  142. package/.next/server/middleware-build-manifest.js +3 -3
  143. package/.next/server/pages/404.html +2 -2
  144. package/.next/server/pages/500.html +1 -1
  145. package/.next/static/chunks/0ubjg1ka_080j.js +1 -0
  146. package/.next/static/chunks/{14pp7x-su_dnv.js → 19jmme1xtmib0.js} +2 -2
  147. package/.next/static/chunks/1jtdb3kujnm2_.css +1 -0
  148. package/.next/static/chunks/{0wyq7u3z0lfca.js → 1kpyel_do_nn_.js} +1 -1
  149. package/.next/static/chunks/1otvbjuxr6thq.js +1 -0
  150. package/.next/static/chunks/1wurvq5krow1k.js +1 -0
  151. package/.next/static/chunks/2bd8yoc_iosfu.js +1 -0
  152. package/.next/static/chunks/{3lqd2emjcxbd-.js → 2uf-bm2nz17t-.js} +1 -1
  153. package/.next/static/chunks/32d1qdgpjfhb0.js +4 -0
  154. package/.next/static/chunks/{2xy80eg_ueu_u.js → 41tx3tz7-8892.js} +1 -1
  155. package/.next/static/media/icon.23mz8iwcatff2.svg +4 -0
  156. package/.next/trace +1 -1
  157. package/.next/trace-build +1 -1
  158. package/LICENSE +21 -0
  159. package/bin/cli.mjs +7 -2
  160. package/package.json +4 -2
  161. package/.next/build/chunks/[root-of-the-server]__05i36w1._.js.map +0 -11
  162. package/.next/build/chunks/[root-of-the-server]__1kki86f._.js.map +0 -8
  163. package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_1gfkiq9._.js.map +0 -5
  164. package/.next/build/chunks/[turbopack]_runtime.js.map +0 -11
  165. package/.next/build/chunks/node_modules_20v-8wl._.js.map +0 -47
  166. package/.next/build/chunks/pool_entry-[turbopack-node]_transforms_postcss_ts_0tp-k2v._.js.map +0 -5
  167. package/.next/server/app/_global-error/page.js.map +0 -5
  168. package/.next/server/app/_not-found/page.js.map +0 -5
  169. package/.next/server/app/api/analyze/route.js.map +0 -5
  170. package/.next/server/app/api/connect/route.js.map +0 -5
  171. package/.next/server/app/api/health/route.js.map +0 -5
  172. package/.next/server/app/api/metrics/route.js.map +0 -5
  173. package/.next/server/app/api/setup/route.js.map +0 -5
  174. package/.next/server/app/api/timings/route.js.map +0 -5
  175. package/.next/server/app/connect/page.js.map +0 -5
  176. package/.next/server/app/favicon.ico/route/app-paths-manifest.json +0 -3
  177. package/.next/server/app/favicon.ico/route.js +0 -7
  178. package/.next/server/app/favicon.ico/route.js.map +0 -5
  179. package/.next/server/app/favicon.ico.body +0 -0
  180. package/.next/server/app/favicon.ico.meta +0 -1
  181. package/.next/server/app/page.js.map +0 -5
  182. package/.next/server/app/performance/[slug]/page.js.map +0 -5
  183. package/.next/server/app/performance/page.js.map +0 -5
  184. package/.next/server/app/settings/page.js.map +0 -5
  185. package/.next/server/app/setup/page.js.map +0 -5
  186. package/.next/server/chunks/[externals]__1o8qm3w._.js.map +0 -1
  187. package/.next/server/chunks/[root-of-the-server]__0chxb6o._.js.map +0 -1
  188. package/.next/server/chunks/[root-of-the-server]__14tfjrn._.js.map +0 -1
  189. package/.next/server/chunks/[root-of-the-server]__1fj5wte._.js.map +0 -1
  190. package/.next/server/chunks/[root-of-the-server]__1i_tsds._.js +0 -22
  191. package/.next/server/chunks/[root-of-the-server]__1i_tsds._.js.map +0 -1
  192. package/.next/server/chunks/[root-of-the-server]__1l249st._.js.map +0 -1
  193. package/.next/server/chunks/[root-of-the-server]__1uv-wzy._.js.map +0 -1
  194. package/.next/server/chunks/[turbopack]_runtime.js.map +0 -10
  195. package/.next/server/chunks/_1494cut._.js.map +0 -1
  196. package/.next/server/chunks/_1gvvd7n._.js +0 -158
  197. package/.next/server/chunks/_1gvvd7n._.js.map +0 -1
  198. package/.next/server/chunks/_1pe45_3._.js.map +0 -1
  199. package/.next/server/chunks/_1qtlv__._.js.map +0 -1
  200. package/.next/server/chunks/_next-internal_server_app_api_analyze_route_actions_0lx-23h.js.map +0 -1
  201. package/.next/server/chunks/_next-internal_server_app_api_connect_route_actions_1r5w03m.js.map +0 -1
  202. package/.next/server/chunks/_next-internal_server_app_api_health_route_actions_1ryftkb.js.map +0 -1
  203. package/.next/server/chunks/_next-internal_server_app_api_metrics_route_actions_0qn5q3s.js.map +0 -1
  204. package/.next/server/chunks/_next-internal_server_app_api_setup_route_actions_0txsuev.js.map +0 -1
  205. package/.next/server/chunks/_next-internal_server_app_api_timings_route_actions_1tsq7j6.js.map +0 -1
  206. package/.next/server/chunks/_next-internal_server_app_favicon_ico_route_actions_0g2jjls.js +0 -3
  207. package/.next/server/chunks/_next-internal_server_app_favicon_ico_route_actions_0g2jjls.js.map +0 -1
  208. package/.next/server/chunks/node_modules_0jatszq._.js.map +0 -1
  209. package/.next/server/chunks/ssr/[root-of-the-server]__036j_vr._.js +0 -3
  210. package/.next/server/chunks/ssr/[root-of-the-server]__036j_vr._.js.map +0 -1
  211. package/.next/server/chunks/ssr/[root-of-the-server]__0ev464o._.js +0 -3
  212. package/.next/server/chunks/ssr/[root-of-the-server]__0ev464o._.js.map +0 -1
  213. package/.next/server/chunks/ssr/[root-of-the-server]__0f5axvr._.js +0 -3
  214. package/.next/server/chunks/ssr/[root-of-the-server]__0f5axvr._.js.map +0 -1
  215. package/.next/server/chunks/ssr/[root-of-the-server]__0hg5gib._.js +0 -33
  216. package/.next/server/chunks/ssr/[root-of-the-server]__0hg5gib._.js.map +0 -1
  217. package/.next/server/chunks/ssr/[root-of-the-server]__0tmkhxy._.js +0 -3
  218. package/.next/server/chunks/ssr/[root-of-the-server]__0tmkhxy._.js.map +0 -1
  219. package/.next/server/chunks/ssr/[root-of-the-server]__0ydfg18._.js +0 -3
  220. package/.next/server/chunks/ssr/[root-of-the-server]__0ydfg18._.js.map +0 -1
  221. package/.next/server/chunks/ssr/[root-of-the-server]__18hr860._.js.map +0 -1
  222. package/.next/server/chunks/ssr/[root-of-the-server]__18w2nrx._.js +0 -3
  223. package/.next/server/chunks/ssr/[root-of-the-server]__18w2nrx._.js.map +0 -1
  224. package/.next/server/chunks/ssr/[root-of-the-server]__1c8dejo._.js.map +0 -1
  225. package/.next/server/chunks/ssr/[root-of-the-server]__1mwg_vi._.js +0 -3
  226. package/.next/server/chunks/ssr/[root-of-the-server]__1mwg_vi._.js.map +0 -1
  227. package/.next/server/chunks/ssr/[root-of-the-server]__1p_6ezv._.js.map +0 -1
  228. package/.next/server/chunks/ssr/[root-of-the-server]__1vxra_4._.js.map +0 -1
  229. package/.next/server/chunks/ssr/[turbopack]_runtime.js.map +0 -10
  230. package/.next/server/chunks/ssr/_042xeoh._.js.map +0 -1
  231. package/.next/server/chunks/ssr/_0c7qo1d._.js +0 -3
  232. package/.next/server/chunks/ssr/_0c7qo1d._.js.map +0 -1
  233. package/.next/server/chunks/ssr/_0dbmzjx._.js.map +0 -1
  234. package/.next/server/chunks/ssr/_178o6nh._.js +0 -3
  235. package/.next/server/chunks/ssr/_178o6nh._.js.map +0 -1
  236. package/.next/server/chunks/ssr/_1bbiu24._.js +0 -3
  237. package/.next/server/chunks/ssr/_1bbiu24._.js.map +0 -1
  238. package/.next/server/chunks/ssr/_1d1ipgp._.js.map +0 -1
  239. package/.next/server/chunks/ssr/_1n9m819._.js.map +0 -1
  240. package/.next/server/chunks/ssr/_1p5i72g._.js +0 -151
  241. package/.next/server/chunks/ssr/_1p5i72g._.js.map +0 -1
  242. package/.next/server/chunks/ssr/_1r2qog2._.js.map +0 -1
  243. package/.next/server/chunks/ssr/_1rkc3oc._.js.map +0 -1
  244. package/.next/server/chunks/ssr/_20txlee._.js.map +0 -1
  245. package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-.js.map +0 -1
  246. package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yr.js.map +0 -1
  247. package/.next/server/chunks/ssr/_next-internal_server_app_connect_page_actions_1g-s_3i.js.map +0 -1
  248. package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1j.js.map +0 -1
  249. package/.next/server/chunks/ssr/_next-internal_server_app_performance_[slug]_page_actions_1pzv3w1.js.map +0 -1
  250. package/.next/server/chunks/ssr/_next-internal_server_app_performance_page_actions_0vi13cc.js.map +0 -1
  251. package/.next/server/chunks/ssr/_next-internal_server_app_settings_page_actions_11x4dq5.js.map +0 -1
  252. package/.next/server/chunks/ssr/_next-internal_server_app_setup_page_actions_0u1sm0s.js.map +0 -1
  253. package/.next/server/chunks/ssr/app_layout_tsx_2144vk_._.js.map +0 -1
  254. package/.next/server/chunks/ssr/app_loading_tsx_0a1flg9._.js.map +0 -1
  255. package/.next/server/chunks/ssr/app_performance_[slug]_loading_tsx_0d5z78a._.js.map +0 -1
  256. package/.next/server/chunks/ssr/app_performance_loading_tsx_1bq2nq9._.js.map +0 -1
  257. package/.next/server/chunks/ssr/app_settings_loading_tsx_0nv_78v._.js.map +0 -1
  258. package/.next/server/chunks/ssr/components_0j32dj5._.js.map +0 -1
  259. package/.next/server/chunks/ssr/node_modules_1wax83z._.js.map +0 -1
  260. package/.next/server/chunks/ssr/node_modules_cn_dist_index_166wuka.js.map +0 -1
  261. package/.next/server/chunks/ssr/node_modules_next_dist_0nkkbfv._.js.map +0 -1
  262. package/.next/server/chunks/ssr/node_modules_next_dist_1v8aef8._.js.map +0 -1
  263. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js.map +0 -1
  264. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js.map +0 -1
  265. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892.js.map +0 -1
  266. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js.map +0 -1
  267. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_server-async-storage_0t1dato.js.map +0 -1
  268. package/.next/static/chunks/13ihwqjtq_hlo.js +0 -1
  269. package/.next/static/chunks/1clwpy-vw07cb.js +0 -1
  270. package/.next/static/chunks/2-llbg7gt2gi5.js +0 -4
  271. package/.next/static/chunks/28w-hz8hg8t4v.css +0 -1
  272. package/.next/static/chunks/3rfi1wruz0m51.js +0 -1
  273. package/.next/static/media/favicon.2vob68tjqpejf.ico +0 -0
  274. /package/.next/server/app/{favicon.ico → api/settings}/route/build-manifest.json +0 -0
  275. /package/.next/static/{edA9zyNvRjRViNxMJ7dlC → kitK02ca_n40lM28SxiCO}/_buildManifest.js +0 -0
  276. /package/.next/static/{edA9zyNvRjRViNxMJ7dlC → kitK02ca_n40lM28SxiCO}/_clientMiddlewareManifest.js +0 -0
  277. /package/.next/static/{edA9zyNvRjRViNxMJ7dlC → kitK02ca_n40lM28SxiCO}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../components/Settings/ExportSettings.tsx","../../../../node_modules/lucide-react/src/icons/file-braces.ts","../../../../node_modules/lucide-react/src/icons/cloud-download.ts","../../../../components/Settings/NotificationPrefs.tsx","../../../../node_modules/%40base-ui/react/switch/root/SwitchRoot.mjs","../../../../node_modules/%40base-ui/react/switch/root/SwitchRootContext.mjs","../../../../node_modules/%40base-ui/react/switch/stateAttributesMapping.mjs","../../../../node_modules/%40base-ui/react/switch/root/SwitchRootDataAttributes.mjs","../../../../node_modules/%40base-ui/react/internals/labelable-provider/useAriaLabelledBy.mjs","../../../../node_modules/%40base-ui/react/switch/thumb/SwitchThumb.mjs","../../../../components/ui/switch.tsx","../../../../components/Settings/TeamMembers.tsx","../../../../node_modules/lucide-react/src/icons/user-plus.ts","../../../../node_modules/lucide-react/src/icons/users.ts","../../../../components/Settings/ThresholdSettings.tsx","../../../../node_modules/%40base-ui/react/slider/root/SliderRoot.mjs","../../../../node_modules/%40base-ui/utils/areArraysEqual.mjs","../../../../node_modules/%40base-ui/react/utils/resolveAriaLabelledBy.mjs","../../../../node_modules/%40base-ui/react/slider/utils/asc.mjs","../../../../node_modules/%40base-ui/react/slider/utils/getSliderValue.mjs","../../../../node_modules/%40base-ui/react/slider/utils/validateMinimumDistance.mjs","../../../../node_modules/%40base-ui/react/slider/root/stateAttributesMapping.mjs","../../../../node_modules/%40base-ui/react/slider/root/SliderRootContext.mjs","../../../../node_modules/%40base-ui/react/slider/label/SliderLabel.mjs","../../../../node_modules/%40base-ui/utils/stringifyLocale.mjs","../../../../node_modules/%40base-ui/utils/formatNumber.mjs","../../../../node_modules/%40base-ui/react/slider/value/SliderValue.mjs","../../../../node_modules/%40base-ui/react/slider/control/SliderControl.mjs","../../../../node_modules/%40base-ui/react/slider/utils/getMidpoint.mjs","../../../../node_modules/%40base-ui/react/slider/utils/roundValueToStep.mjs","../../../../node_modules/%40base-ui/react/slider/utils/getPushedThumbValues.mjs","../../../../node_modules/%40base-ui/react/slider/utils/resolveThumbCollision.mjs","../../../../node_modules/%40base-ui/react/slider/track/SliderTrack.mjs","../../../../node_modules/%40base-ui/react/slider/thumb/SliderThumb.mjs","../../../../node_modules/%40base-ui/react/slider/thumb/prehydrationScript.min.mjs","../../../../node_modules/%40base-ui/react/utils/valueToPercent.mjs","../../../../node_modules/%40base-ui/react/slider/thumb/SliderThumbDataAttributes.mjs","../../../../node_modules/%40base-ui/react/slider/indicator/SliderIndicator.mjs","../../../../components/ui/slider.tsx","../../../../components/ui/label.tsx","../../../../node_modules/%40base-ui/react/tabs/root/TabsRoot.mjs","../../../../node_modules/%40base-ui/react/tabs/root/TabsRootContext.mjs","../../../../node_modules/%40base-ui/react/tabs/root/TabsRootDataAttributes.mjs","../../../../node_modules/%40base-ui/react/tabs/root/stateAttributesMapping.mjs","../../../../node_modules/%40base-ui/react/tabs/tab/TabsTab.mjs","../../../../node_modules/%40base-ui/react/internals/composite/constants.mjs","../../../../node_modules/%40base-ui/react/internals/composite/item/useCompositeItem.mjs","../../../../node_modules/%40base-ui/react/tabs/list/TabsListContext.mjs","../../../../node_modules/%40base-ui/react/tabs/indicator/TabsIndicator.mjs","../../../../node_modules/%40base-ui/utils/useForcedRerendering.mjs","../../../../node_modules/%40base-ui/react/tabs/indicator/prehydrationScript.min.mjs","../../../../node_modules/%40base-ui/react/tabs/indicator/TabsIndicatorCssVars.mjs","../../../../node_modules/%40base-ui/react/tabs/panel/TabsPanel.mjs","../../../../node_modules/%40base-ui/react/tabs/panel/TabsPanelDataAttributes.mjs","../../../../node_modules/%40base-ui/react/tabs/list/TabsList.mjs","../../../../node_modules/%40base-ui/utils/isElementDisabled.mjs","../../../../node_modules/%40base-ui/react/internals/composite/root/useCompositeRoot.mjs","../../../../node_modules/%40base-ui/react/internals/composite/root/CompositeRoot.mjs","../../../../components/ui/tabs.tsx","../../../../node_modules/%40base-ui/react/internals/composite/list/CompositeList.mjs","../../../../node_modules/%40base-ui/react/internals/composite/list/CompositeListContext.mjs","../../../../node_modules/%40base-ui/react/internals/composite/list/useCompositeListItem.mjs","../../../../node_modules/%40base-ui/react/utils/useIsHydrating.mjs","../../../../node_modules/%40base-ui/react/internals/csp-context/CSPContext.mjs","../../../../node_modules/%40base-ui/react/internals/PrehydrationScript.mjs"],"sourcesContent":["\"use client\";\n\nimport React from \"react\";\nimport { Card, CardHeader, CardTitle, CardDescription, CardContent } from \"@/components/ui/card\";\nimport { Button } from \"@/components/ui/button\";\nimport { DownloadCloud, FileJson } from \"lucide-react\";\n\nexport function ExportSettings() {\n return (\n <Card className=\"border-[#2d3748] bg-[#1a202c] shadow-md mt-6\">\n <CardHeader>\n <CardTitle className=\"text-[18px] font-bold text-white tracking-tight\">Export Settings</CardTitle>\n <CardDescription className=\"text-sm text-gray-400\">\n Download your complete configuration or raw performance metrics.\n </CardDescription>\n </CardHeader>\n <CardContent>\n <div className=\"flex gap-4\">\n <Button variant=\"outline\" className=\"border-[#2d3748] bg-transparent text-gray-300 hover:bg-white/10 hover:text-white flex items-center gap-2\">\n <DownloadCloud className=\"h-4 w-4\" />\n Export as CSV\n </Button>\n <Button variant=\"outline\" className=\"border-[#2d3748] bg-transparent text-gray-300 hover:bg-white/10 hover:text-white flex items-center gap-2\">\n <FileJson className=\"h-4 w-4\" />\n Export as JSON\n </Button>\n </div>\n </CardContent>\n </Card>\n );\n}\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'file-braces',\n size: 24,\n node: [\n [\n 'path',\n {\n d: 'M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z',\n key: '1oefj6',\n },\n ],\n ['path', { d: 'M14 2v5a1 1 0 0 0 1 1h5', key: 'wfsgrz' }],\n [\n 'path',\n { d: 'M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1', key: '1oajmo' },\n ],\n [\n 'path',\n { d: 'M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1', key: 'mpwhp6' },\n ],\n ],\n aliases: ['file-json'],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name FileBraces\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNiAyMmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg4YTIuNCAyLjQgMCAwIDEgMS43MDQuNzA2bDMuNTg4IDMuNTg4QTIuNCAyLjQgMCAwIDEgMjAgOHYxMmEyIDIgMCAwIDEtMiAyeiIgLz4KICA8cGF0aCBkPSJNMTQgMnY1YTEgMSAwIDAgMCAxIDFoNSIgLz4KICA8cGF0aCBkPSJNMTAgMTJhMSAxIDAgMCAwLTEgMXYxYTEgMSAwIDAgMS0xIDEgMSAxIDAgMCAxIDEgMXYxYTEgMSAwIDAgMCAxIDEiIC8+CiAgPHBhdGggZD0iTTE0IDE4YTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAxIDEtMSAxIDEgMCAwIDEtMS0xdi0xYTEgMSAwIDAgMC0xLTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/file-braces\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst FileBraces = createLucideIcon(__iconData);\n\nexport default FileBraces;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'cloud-download',\n size: 24,\n node: [\n ['path', { d: 'M12 13v8l-4-4', key: '1f5nwf' }],\n ['path', { d: 'm12 21 4-4', key: '1lfcce' }],\n [\n 'path',\n { d: 'M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284', key: 'ui1hmy' },\n ],\n ],\n aliases: ['download-cloud'],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name CloudDownload\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTIgMTN2OGwtNC00IiAvPgogIDxwYXRoIGQ9Im0xMiAyMSA0LTQiIC8+CiAgPHBhdGggZD0iTTQuMzkzIDE1LjI2OUE3IDcgMCAxIDEgMTUuNzEgOGgxLjc5YTQuNSA0LjUgMCAwIDEgMi40MzYgOC4yODQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/cloud-download\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CloudDownload = createLucideIcon(__iconData);\n\nexport default CloudDownload;\n","\"use client\";\n\nimport React, { useState } from \"react\";\nimport { Card, CardHeader, CardTitle, CardDescription, CardContent } from \"@/components/ui/card\";\nimport { Switch } from \"@/components/ui/switch\";\nimport { Label } from \"@/components/ui/label\";\nimport { Bell } from \"lucide-react\";\n\nexport function NotificationPrefs() {\n const [emailAlerts, setEmailAlerts] = useState(true);\n const [slackAlerts, setSlackAlerts] = useState(true);\n const [smsAlerts, setSmsAlerts] = useState(false);\n\n return (\n <Card className=\"border-[#2d3748] bg-[#1a202c] shadow-md mb-6\">\n <CardHeader>\n <CardTitle className=\"text-[18px] font-bold text-white tracking-tight flex items-center gap-2\">\n <Bell className=\"h-5 w-5 text-gray-400\" />\n Notification Preferences\n </CardTitle>\n <CardDescription className=\"text-sm text-gray-400\">\n Choose where and how you want to be alerted when thresholds are breached.\n </CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-6 max-w-lg\">\n <div className=\"flex items-center justify-between\">\n <div className=\"space-y-0.5\">\n <Label className=\"text-gray-300 text-sm\">Email Alerts</Label>\n <p className=\"text-xs text-gray-500\">Receive reports and alerts to your primary email.</p>\n </div>\n <Switch checked={emailAlerts} onCheckedChange={setEmailAlerts} />\n </div>\n <div className=\"flex items-center justify-between\">\n <div className=\"space-y-0.5\">\n <Label className=\"text-gray-300 text-sm\">Slack Integration</Label>\n <p className=\"text-xs text-gray-500\">Push critical alerts directly to a configured Slack channel.</p>\n </div>\n <Switch checked={slackAlerts} onCheckedChange={setSlackAlerts} />\n </div>\n <div className=\"flex items-center justify-between\">\n <div className=\"space-y-0.5\">\n <Label className=\"text-gray-300 text-sm\">SMS Alerts</Label>\n <p className=\"text-xs text-gray-500\">Get text messages for immediate downtime incidents.</p>\n </div>\n <Switch checked={smsAlerts} onCheckedChange={setSmsAlerts} />\n </div>\n </CardContent>\n </Card>\n );\n}\n","'use client';\n\nimport * as React from 'react';\nimport { useControlled } from '@base-ui/utils/useControlled';\nimport { useMergedRefs } from '@base-ui/utils/useMergedRefs';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { visuallyHidden, visuallyHiddenInput } from '@base-ui/utils/visuallyHidden';\nimport { EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useBaseUiId } from \"../../internals/useBaseUiId.mjs\";\nimport { useButton } from \"../../internals/use-button/index.mjs\";\nimport { SwitchRootContext } from \"./SwitchRootContext.mjs\";\nimport { stateAttributesMapping } from \"../stateAttributesMapping.mjs\";\nimport { dispatchClickWithModifiers } from \"../../utils/dispatchClickWithModifiers.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 { useLabelableContext } from \"../../internals/labelable-provider/LabelableContext.mjs\";\nimport { useAriaLabelledBy } from \"../../internals/labelable-provider/useAriaLabelledBy.mjs\";\nimport { useLabelableId } from \"../../internals/labelable-provider/useLabelableId.mjs\";\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { useValueChanged } from \"../../internals/useValueChanged.mjs\";\n\n/**\n * Represents the switch itself.\n * Renders a `<span>` element and a hidden `<input>` beside.\n *\n * Documentation: [Base UI Switch](https://base-ui.com/react/components/switch)\n */\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport const SwitchRoot = /*#__PURE__*/React.forwardRef(function SwitchRoot(componentProps, forwardedRef) {\n const {\n checked: checkedProp,\n className,\n defaultChecked,\n 'aria-labelledby': ariaLabelledByProp,\n form,\n id: idProp,\n inputRef: externalInputRef,\n name: nameProp,\n nativeButton = false,\n onCheckedChange,\n readOnly = false,\n required = false,\n disabled: disabledProp = false,\n render,\n uncheckedValue,\n value,\n style,\n ...elementProps\n } = componentProps;\n const {\n clearErrors\n } = useFormContext();\n const {\n state: fieldState,\n setTouched,\n setDirty,\n validityData,\n setFilled,\n setFocused,\n validationMode,\n disabled: fieldDisabled,\n name: fieldName,\n validation\n } = useFieldRootContext();\n const {\n labelId\n } = useLabelableContext();\n const disabled = fieldDisabled || disabledProp;\n const name = fieldName ?? nameProp;\n const inputRef = React.useRef(null);\n const handleInputRef = useMergedRefs(inputRef, externalInputRef, validation.inputRef);\n const switchRef = React.useRef(null);\n const id = useBaseUiId();\n const controlId = useLabelableId({\n id: idProp\n });\n const hiddenInputId = nativeButton ? undefined : controlId;\n const [checked, setCheckedState] = useControlled({\n controlled: checkedProp,\n default: Boolean(defaultChecked),\n name: 'Switch',\n state: 'checked'\n });\n useRegisterFieldControl(switchRef, id, checked, undefined, !disabled, nameProp);\n useIsoLayoutEffect(() => {\n setFilled(checked);\n }, [checked, setFilled]);\n useValueChanged(checked, () => {\n clearErrors(name);\n setDirty(checked !== validityData.initialValue);\n validation.change(checked);\n });\n const {\n getButtonProps,\n buttonRef\n } = useButton({\n disabled,\n native: nativeButton\n });\n const ariaLabelledBy = useAriaLabelledBy(ariaLabelledByProp, labelId, inputRef, !nativeButton, hiddenInputId);\n const rootProps = {\n id: nativeButton ? controlId : id,\n role: 'switch',\n 'aria-checked': checked,\n 'aria-readonly': readOnly || undefined,\n 'aria-required': required || undefined,\n 'aria-labelledby': ariaLabelledBy,\n onFocus() {\n if (!disabled) {\n setFocused(true);\n }\n },\n onBlur() {\n const element = inputRef.current;\n if (!element || disabled) {\n return;\n }\n setTouched(true);\n setFocused(false);\n if (validationMode === 'onBlur') {\n validation.commit(element.checked);\n }\n },\n onClick(event) {\n if (readOnly || disabled) {\n return;\n }\n event.preventDefault();\n const input = inputRef.current;\n if (!input) {\n return;\n }\n dispatchClickWithModifiers(input, event);\n }\n };\n const inputProps = {\n ...validation.getValidationProps(disabled),\n checked,\n disabled,\n form,\n id: hiddenInputId,\n name,\n required,\n style: name ? visuallyHiddenInput : visuallyHidden,\n tabIndex: -1,\n type: 'checkbox',\n 'aria-hidden': true,\n ref: handleInputRef,\n onChange(event) {\n // Workaround for https://github.com/react/react/issues/9023\n if (event.nativeEvent.defaultPrevented) {\n return;\n }\n if (readOnly) {\n event.preventDefault();\n return;\n }\n const nextChecked = event.currentTarget.checked;\n const eventDetails = createChangeEventDetails(REASONS.none, event.nativeEvent);\n onCheckedChange?.(nextChecked, eventDetails);\n if (eventDetails.isCanceled) {\n return;\n }\n setCheckedState(nextChecked);\n },\n onClick(event) {\n // The click dispatched from the root's `onClick` is an implementation detail\n // and must not reach ancestors, which already receive the original click.\n event.stopPropagation();\n },\n onFocus() {\n switchRef.current?.focus();\n },\n // React <19 sets an empty value if `undefined` is passed explicitly\n // To avoid this, we only set the value if it's defined\n ...(value !== undefined ? {\n value\n } : EMPTY_OBJECT)\n };\n const state = React.useMemo(() => ({\n ...fieldState,\n checked,\n disabled,\n readOnly,\n required\n }), [fieldState, checked, disabled, readOnly, required]);\n const element = useRenderElement('span', componentProps, {\n state,\n ref: [forwardedRef, switchRef, buttonRef],\n props: [rootProps, elementProps, getButtonProps, props => validation.getValidationProps(disabled, props)],\n stateAttributesMapping\n });\n return /*#__PURE__*/_jsxs(SwitchRootContext.Provider, {\n value: state,\n children: [element, !checked && name && uncheckedValue !== undefined && /*#__PURE__*/_jsx(\"input\", {\n type: \"hidden\",\n form: form,\n name: name,\n value: uncheckedValue,\n disabled: disabled\n }), /*#__PURE__*/_jsx(\"input\", {\n ...inputProps,\n suppressHydrationWarning: true\n })]\n });\n});\nif (process.env.NODE_ENV !== \"production\") SwitchRoot.displayName = \"SwitchRoot\";","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const SwitchRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") SwitchRootContext.displayName = \"SwitchRootContext\";\nexport function useSwitchRootContext() {\n const context = React.useContext(SwitchRootContext);\n if (context === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: SwitchRootContext is missing. Switch parts must be placed within <Switch.Root>.' : _formatErrorMessage(63));\n }\n return context;\n}","import { fieldValidityMapping } from \"../internals/field-constants/constants.mjs\";\nimport * as SwitchRootDataAttributes from \"./root/SwitchRootDataAttributes.mjs\";\nexport const stateAttributesMapping = {\n ...fieldValidityMapping,\n checked(value) {\n if (value) {\n return {\n [SwitchRootDataAttributes.checked]: ''\n };\n }\n return {\n [SwitchRootDataAttributes.unchecked]: ''\n };\n }\n};","/**\n * Present when the switch is checked.\n */\nexport const checked = 'data-checked';\n/**\n * Present when the switch is not checked.\n */\nexport const unchecked = 'data-unchecked';\n/**\n * Present when the switch is disabled.\n */\nexport const disabled = 'data-disabled';\n/**\n * Present when the switch is readonly.\n */\nexport const readonly = 'data-readonly';\n/**\n * Present when the switch is required.\n */\nexport const required = 'data-required';\n/**\n * Present when the switch is in a valid state (when wrapped in Field.Root).\n */\nexport const valid = 'data-valid';\n/**\n * Present when the switch is in an invalid state (when wrapped in Field.Root).\n */\nexport const invalid = 'data-invalid';\n/**\n * Present when the switch has been touched (when wrapped in Field.Root).\n */\nexport const touched = 'data-touched';\n/**\n * Present when the switch's value has changed (when wrapped in Field.Root).\n */\nexport const dirty = 'data-dirty';\n/**\n * Present when the switch is active (when wrapped in Field.Root).\n */\nexport const filled = 'data-filled';\n/**\n * Present when the switch is focused (when wrapped in Field.Root).\n */\nexport const focused = 'data-focused';","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useBaseUiId } from \"../useBaseUiId.mjs\";\nexport function useAriaLabelledBy(explicitAriaLabelledBy, labelId, labelSourceRef, enableFallback = true, labelSourceId) {\n const [fallbackAriaLabelledBy, setFallbackAriaLabelledBy] = React.useState();\n const generatedLabelId = useBaseUiId(labelSourceId ? `${labelSourceId}-label` : undefined);\n const ariaLabelledBy = explicitAriaLabelledBy ?? labelId ?? fallbackAriaLabelledBy;\n\n // Fallback for <span> controls labelled by wrapping/sibling native <label>.\n // Run after every commit so DOM association changes (e.g. label mount/unmount)\n // are reflected even when props/state deps are unchanged.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useIsoLayoutEffect(() => {\n const nextAriaLabelledBy = explicitAriaLabelledBy || labelId || !enableFallback ? undefined : getAriaLabelledBy(labelSourceRef.current, generatedLabelId);\n if (fallbackAriaLabelledBy !== nextAriaLabelledBy) {\n setFallbackAriaLabelledBy(nextAriaLabelledBy);\n }\n });\n return ariaLabelledBy;\n}\nfunction getAriaLabelledBy(labelSource, generatedLabelId) {\n const label = findAssociatedLabel(labelSource);\n if (!label) {\n return undefined;\n }\n if (!label.id && generatedLabelId) {\n label.id = generatedLabelId;\n }\n return label.id || undefined;\n}\nfunction findAssociatedLabel(labelSource) {\n if (!labelSource) {\n return undefined;\n }\n\n // Fast path before the expensive `.labels` read.\n const parent = labelSource.parentElement;\n if (parent && parent.tagName === 'LABEL') {\n return parent;\n }\n const controlId = labelSource.id;\n if (controlId) {\n const nextSibling = labelSource.nextElementSibling;\n if (nextSibling && nextSibling.htmlFor === controlId) {\n return nextSibling;\n }\n }\n const labels = labelSource.labels;\n return labels && labels[0];\n}","'use client';\n\nimport * as React from 'react';\nimport { useSwitchRootContext } from \"../root/SwitchRootContext.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { stateAttributesMapping } from \"../stateAttributesMapping.mjs\";\n\n/**\n * The movable part of the switch that indicates whether the switch is on or off.\n * Renders a `<span>`.\n *\n * Documentation: [Base UI Switch](https://base-ui.com/react/components/switch)\n */\nexport const SwitchThumb = /*#__PURE__*/React.forwardRef(function SwitchThumb(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n ...elementProps\n } = componentProps;\n const state = useSwitchRootContext();\n return useRenderElement('span', componentProps, {\n state,\n ref: forwardedRef,\n stateAttributesMapping,\n props: elementProps\n });\n});\nif (process.env.NODE_ENV !== \"production\") SwitchThumb.displayName = \"SwitchThumb\";","\"use client\"\n\nimport { Switch as SwitchPrimitive } from \"@base-ui/react/switch\"\nimport { cn } from \"cn\"\n\nfunction Switch({\n className,\n size = \"default\",\n ...props\n}: SwitchPrimitive.Root.Props & {\n size?: \"sm\" | \"default\"\n}) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n data-size={size}\n className={cn(\n \"peer group/switch relative inline-flex shrink-0 items-center rounded-full border border-transparent transition-all outline-none group-has-[:focus-visible]/field-label:border-transparent group-has-[:focus-visible]/field-label:ring-0 after:absolute after:-inset-x-3 after:-inset-y-2 focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-[size=default]:h-[18.4px] data-[size=default]:w-[32px] data-[size=sm]:h-[14px] data-[size=sm]:w-[24px] dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 data-checked:bg-primary data-unchecked:bg-input dark:data-unchecked:bg-input/80 data-disabled:cursor-not-allowed data-disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className=\"pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 group-data-[size=default]/switch:data-checked:translate-x-[calc(100%-2px)] group-data-[size=sm]/switch:data-checked:translate-x-[calc(100%-2px)] dark:data-checked:bg-primary-foreground group-data-[size=default]/switch:data-unchecked:translate-x-0 group-data-[size=sm]/switch:data-unchecked:translate-x-0 dark:data-unchecked:bg-foreground\"\n />\n </SwitchPrimitive.Root>\n )\n}\n\nexport { Switch }\n","\"use client\";\n\nimport React from \"react\";\nimport { Card, CardHeader, CardTitle, CardDescription, CardContent } from \"@/components/ui/card\";\nimport { Button } from \"@/components/ui/button\";\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from \"@/components/ui/table\";\nimport { Badge } from \"@/components/ui/badge\";\nimport { Users, UserPlus } from \"lucide-react\";\n\nconst teamMembers = [\n { name: \"Alice Freeman\", email: \"alice@company.com\", role: \"Admin\", status: \"Active\" },\n { name: \"Bob Smith\", email: \"bob@company.com\", role: \"Developer\", status: \"Active\" },\n { name: \"Charlie Davis\", email: \"charlie@company.com\", role: \"Viewer\", status: \"Invited\" },\n];\n\nexport function TeamMembers() {\n return (\n <Card className=\"border-[#2d3748] bg-[#1a202c] shadow-md\">\n <CardHeader className=\"flex flex-row items-center justify-between\">\n <div>\n <CardTitle className=\"text-[18px] font-bold text-white tracking-tight flex items-center gap-2\">\n <Users className=\"h-5 w-5 text-gray-400\" />\n Team Members\n </CardTitle>\n <CardDescription className=\"text-sm text-gray-400 mt-1\">\n Manage who has access to your performance dashboard.\n </CardDescription>\n </div>\n <Button className=\"bg-[#3ee0a1] text-black hover:bg-[#3ee0a1]/80 flex items-center gap-2\">\n <UserPlus className=\"h-4 w-4\" />\n Invite\n </Button>\n </CardHeader>\n <CardContent>\n <div className=\"rounded-md border border-[#2d3748] overflow-hidden\">\n <Table>\n <TableHeader className=\"bg-[#0f1419]\">\n <TableRow className=\"border-[#2d3748] hover:bg-transparent\">\n <TableHead className=\"text-gray-400\">Name</TableHead>\n <TableHead className=\"text-gray-400\">Email</TableHead>\n <TableHead className=\"text-gray-400\">Role</TableHead>\n <TableHead className=\"text-right text-gray-400\">Status</TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n {teamMembers.map((member) => (\n <TableRow key={member.email} className=\"border-[#2d3748] hover:bg-white/5 transition-colors\">\n <TableCell className=\"font-medium text-white\">{member.name}</TableCell>\n <TableCell className=\"text-gray-400\">{member.email}</TableCell>\n <TableCell className=\"text-gray-400\">{member.role}</TableCell>\n <TableCell className=\"text-right\">\n <Badge\n variant=\"outline\"\n className={`\n ${member.status === 'Active' ? 'border-[#3ee0a1] text-[#3ee0a1] bg-[#3ee0a1]/10' : ''}\n ${member.status === 'Invited' ? 'border-[#f59e0b] text-[#f59e0b] bg-[#f59e0b]/10' : ''}\n `}\n >\n {member.status}\n </Badge>\n </TableCell>\n </TableRow>\n ))}\n </TableBody>\n </Table>\n </div>\n </CardContent>\n </Card>\n );\n}\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'user-plus',\n size: 24,\n node: [\n ['path', { d: 'M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2', key: '1yyitq' }],\n ['circle', { cx: '9', cy: '7', r: '4', key: 'nufk8' }],\n ['line', { x1: '19', x2: '19', y1: '8', y2: '14', key: '1bvyxn' }],\n ['line', { x1: '22', x2: '16', y1: '11', y2: '11', key: '1shjgl' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name UserPlus\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiIgLz4KICA8Y2lyY2xlIGN4PSI5IiBjeT0iNyIgcj0iNCIgLz4KICA8bGluZSB4MT0iMTkiIHgyPSIxOSIgeTE9IjgiIHkyPSIxNCIgLz4KICA8bGluZSB4MT0iMjIiIHgyPSIxNiIgeTE9IjExIiB5Mj0iMTEiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/user-plus\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst UserPlus = createLucideIcon(__iconData);\n\nexport default UserPlus;\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'users',\n size: 24,\n node: [\n ['path', { d: 'M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2', key: '1yyitq' }],\n ['path', { d: 'M16 3.128a4 4 0 0 1 0 7.744', key: '16gr8j' }],\n ['path', { d: 'M22 21v-2a4 4 0 0 0-3-3.87', key: 'kshegd' }],\n ['circle', { cx: '9', cy: '7', r: '4', key: 'nufk8' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Users\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgMjF2LTJhNCA0IDAgMCAwLTQtNEg2YTQgNCAwIDAgMC00IDR2MiIgLz4KICA8cGF0aCBkPSJNMTYgMy4xMjhhNCA0IDAgMCAxIDAgNy43NDQiIC8+CiAgPHBhdGggZD0iTTIyIDIxdi0yYTQgNCAwIDAgMC0zLTMuODciIC8+CiAgPGNpcmNsZSBjeD0iOSIgY3k9IjciIHI9IjQiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/users\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Users = createLucideIcon(__iconData);\n\nexport default Users;\n","\"use client\";\n\nimport React, { useState } from \"react\";\nimport { Card, CardHeader, CardTitle, CardDescription, CardContent } from \"@/components/ui/card\";\nimport { Slider } from \"@/components/ui/slider\";\nimport { Label } from \"@/components/ui/label\";\nimport { Activity } from \"lucide-react\";\n\nexport function ThresholdSettings() {\n const [loadThreshold, setLoadThreshold] = useState([1.5]);\n const [errorThreshold, setErrorThreshold] = useState([2]);\n const [uptimeSLA, setUptimeSLA] = useState([99.9]);\n\n return (\n <Card className=\"border-[#2d3748] bg-[#1a202c] shadow-md\">\n <CardHeader>\n <CardTitle className=\"text-[18px] font-bold text-white tracking-tight flex items-center gap-2\">\n <Activity className=\"h-5 w-5 text-gray-400\" />\n Performance Thresholds\n </CardTitle>\n <CardDescription className=\"text-sm text-gray-400\">\n Set the boundaries that will trigger &quot;Warning&quot; or &quot;Critical&quot; statuses in your dashboard.\n </CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-8 max-w-2xl\">\n <div className=\"space-y-4\">\n <div className=\"flex items-center justify-between\">\n <Label className=\"text-gray-300 text-sm\">Load Time Threshold (Seconds)</Label>\n <span className=\"text-[#3ee0a1] font-mono text-sm\">{loadThreshold[0]}s</span>\n </div>\n <Slider \n value={loadThreshold} \n onValueChange={(val) => setLoadThreshold(val as number[])} \n max={5} \n step={0.1}\n className=\"cursor-pointer\"\n />\n <p className=\"text-xs text-gray-500\">Alert triggers if average load time exceeds this value.</p>\n </div>\n\n <div className=\"space-y-4\">\n <div className=\"flex items-center justify-between\">\n <Label className=\"text-gray-300 text-sm\">Error Rate Threshold (%)</Label>\n <span className=\"text-[#ef4444] font-mono text-sm\">{errorThreshold[0]}%</span>\n </div>\n <Slider \n value={errorThreshold} \n onValueChange={(val) => setErrorThreshold(val as number[])} \n max={10} \n step={0.5}\n className=\"cursor-pointer\"\n />\n <p className=\"text-xs text-gray-500\">Alert triggers if percentage of 5xx errors exceeds this value.</p>\n </div>\n\n <div className=\"space-y-4\">\n <div className=\"flex items-center justify-between\">\n <Label className=\"text-gray-300 text-sm\">Uptime SLA Target (%)</Label>\n <span className=\"text-[#06b6d4] font-mono text-sm\">{uptimeSLA[0]}%</span>\n </div>\n <Slider \n value={uptimeSLA} \n onValueChange={(val) => setUptimeSLA(val as number[])} \n min={90}\n max={100} \n step={0.01}\n className=\"cursor-pointer\"\n />\n <p className=\"text-xs text-gray-500\">Your desired target uptime SLA for the month.</p>\n </div>\n </CardContent>\n </Card>\n );\n}\n","'use client';\n\nimport * as React from 'react';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { useControlled } from '@base-ui/utils/useControlled';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { warn } from '@base-ui/utils/warn';\nimport { clamp } from '@base-ui/utils/clamp';\nimport { areArraysEqual } from '@base-ui/utils/areArraysEqual';\nimport { createChangeEventDetails, createGenericEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { useValueChanged } from \"../../internals/useValueChanged.mjs\";\nimport { useBaseUiId } from \"../../internals/useBaseUiId.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { activeElement, contains } from \"../../floating-ui-react/utils.mjs\";\nimport { CompositeList } from \"../../internals/composite/list/CompositeList.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 { useLabelableContext } from \"../../internals/labelable-provider/LabelableContext.mjs\";\nimport { resolveAriaLabelledBy, getDefaultLabelId } from \"../../utils/resolveAriaLabelledBy.mjs\";\nimport { asc } from \"../utils/asc.mjs\";\nimport { getSliderValue } from \"../utils/getSliderValue.mjs\";\nimport { validateMinimumDistance } from \"../utils/validateMinimumDistance.mjs\";\nimport { sliderStateAttributesMapping } from \"./stateAttributesMapping.mjs\";\nimport { SliderRootContext } from \"./SliderRootContext.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction areValuesEqual(newValue, oldValue) {\n return newValue === oldValue || Array.isArray(newValue) && Array.isArray(oldValue) && areArraysEqual(newValue, oldValue);\n}\n\n/**\n * Groups all parts of the slider.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Slider](https://base-ui.com/react/components/slider)\n */\nexport const SliderRoot = /*#__PURE__*/React.forwardRef(function SliderRoot(componentProps, forwardedRef) {\n const {\n 'aria-labelledby': ariaLabelledByProp,\n className,\n defaultValue,\n disabled: disabledProp = false,\n id: idProp,\n format,\n largeStep = 10,\n locale,\n render,\n max = 100,\n min = 0,\n minStepsBetweenValues = 0,\n form,\n name: nameProp,\n onValueChange: onValueChangeProp,\n onValueCommitted: onValueCommittedProp,\n orientation = 'horizontal',\n step = 1,\n thumbCollisionBehavior = 'push',\n thumbAlignment = 'center',\n value: valueProp,\n style,\n ...elementProps\n } = componentProps;\n const id = useBaseUiId(idProp);\n const defaultLabelId = getDefaultLabelId(id);\n const onValueChange = useStableCallback(onValueChangeProp);\n const onValueCommitted = useStableCallback(onValueCommittedProp);\n const {\n clearErrors\n } = useFormContext();\n const {\n state: fieldState,\n disabled: fieldDisabled,\n name: fieldName,\n setTouched,\n setDirty,\n validityData,\n validation\n } = useFieldRootContext();\n const {\n labelId: fieldLabelId\n } = useLabelableContext();\n const [labelId, setLabelId] = React.useState();\n const ariaLabelledby = ariaLabelledByProp ?? resolveAriaLabelledBy(fieldLabelId, labelId);\n const disabled = fieldDisabled || disabledProp;\n const name = fieldName ?? nameProp;\n\n // The internal value is potentially unsorted, e.g. to support frozen arrays\n // https://github.com/mui/material-ui/pull/28472\n const [valueUnwrapped, setValueUnwrapped] = useControlled({\n controlled: valueProp,\n default: defaultValue ?? min,\n name: 'Slider'\n });\n const sliderRef = React.useRef(null);\n const controlRef = React.useRef(null);\n const thumbRefs = React.useRef([]);\n // The px distance between the pointer and the center of a pressed thumb.\n const pressedThumbCenterOffsetRef = React.useRef(null);\n // The index of the pressed thumb, or the closest thumb if the `Control` was pressed.\n // This is updated on pointerdown, which is sooner than the `active/activeIndex`\n // state which is updated later when the nested `input` receives focus.\n const pressedThumbIndexRef = React.useRef(-1);\n // The values when the current drag interaction started.\n const pressedValuesRef = React.useRef(null);\n const lastChangeReasonRef = React.useRef(REASONS.none);\n\n // We can't use the :active browser pseudo-classes.\n // - The active state isn't triggered when clicking on the rail.\n // - The active state isn't transferred when inversing a range slider.\n const [active, setActiveState] = React.useState(-1);\n const [lastUsedThumbIndex, setLastUsedThumbIndex] = React.useState(-1);\n const [dragging, setDragging] = React.useState(false);\n const [thumbMap, setThumbMap] = React.useState(() => new Map());\n const [indicatorPosition, setIndicatorPosition] = React.useState([undefined, undefined]);\n const setActive = useStableCallback(value => {\n setActiveState(value);\n if (value !== -1) {\n setLastUsedThumbIndex(value);\n }\n });\n const registerFieldControlRef = useStableCallback(element => {\n if (element) {\n controlRef.current = element;\n }\n });\n const range = Array.isArray(valueUnwrapped);\n const values = React.useMemo(() => {\n if (!range) {\n return [clamp(valueUnwrapped, min, max)];\n }\n return valueUnwrapped.map(value => clamp(value, min, max)).sort(asc);\n }, [max, min, range, valueUnwrapped]);\n const fieldValue = range ? values : values[0];\n useRegisterFieldControl(validation.inputRef, id, fieldValue, undefined, !disabled, nameProp);\n useValueChanged(fieldValue, () => {\n clearErrors(name);\n validation.change(fieldValue);\n const initialValue = validityData.initialValue;\n let isDirty;\n if (Array.isArray(fieldValue) && Array.isArray(initialValue)) {\n isDirty = !areArraysEqual(fieldValue, initialValue);\n } else {\n isDirty = fieldValue !== initialValue;\n }\n setDirty(isDirty);\n });\n const setValue = useStableCallback((newValue, details) => {\n if (Number.isNaN(newValue) || areValuesEqual(newValue, valueUnwrapped)) {\n return false;\n }\n\n // Redefine target to allow name and value to be read.\n // This allows seamless integration with the most popular form libraries.\n // https://github.com/mui/material-ui/issues/13485#issuecomment-676048492\n // Clone the event to not override `target` of the original event.\n const nativeEvent = details.event;\n const EventConstructor = nativeEvent.constructor;\n const clonedEvent = new EventConstructor(nativeEvent.type, nativeEvent);\n Object.defineProperty(clonedEvent, 'target', {\n writable: true,\n value: {\n value: newValue,\n name\n }\n });\n details.event = clonedEvent;\n onValueChange(newValue, details);\n if (details.isCanceled) {\n return false;\n }\n lastChangeReasonRef.current = details.reason;\n setValueUnwrapped(newValue);\n return true;\n });\n const handleInputChange = useStableCallback((valueInput, index, event) => {\n const newValue = getSliderValue(valueInput, index, min, max, range, values);\n if (validateMinimumDistance(newValue, step, minStepsBetweenValues)) {\n const reason = 'key' in event ? REASONS.keyboard : REASONS.inputChange;\n const applied = setValue(newValue, createChangeEventDetails(reason, event.nativeEvent, undefined, {\n activeThumbIndex: index\n }));\n setTouched(true);\n if (applied) {\n onValueCommitted(newValue, createGenericEventDetails(reason, event.nativeEvent));\n }\n }\n });\n\n /* istanbul ignore else -- `process.env.NODE_ENV` is a build-time constant under test */\n if (process.env.NODE_ENV !== 'production') {\n if (min >= max) {\n warn('Slider `max` must be greater than `min`.');\n }\n }\n useIsoLayoutEffect(() => {\n if (!disabled) {\n return;\n }\n const activeEl = activeElement(ownerDocument(sliderRef.current));\n if (contains(sliderRef.current, activeEl)) {\n // This is necessary because Firefox and Safari will keep focus\n // on a disabled element:\n // https://codesandbox.io/p/sandbox/mui-pr-22247-forked-h151h?file=/src/App.js\n activeEl.blur();\n }\n if (active !== -1) {\n setActive(-1);\n }\n }, [active, disabled, setActive]);\n const state = React.useMemo(() => ({\n ...fieldState,\n activeThumbIndex: active,\n disabled,\n dragging,\n orientation,\n max,\n min,\n minStepsBetweenValues,\n step,\n values\n }), [fieldState, active, disabled, dragging, max, min, minStepsBetweenValues, orientation, step, values]);\n const contextValue = React.useMemo(() => ({\n active,\n controlRef,\n disabled,\n dragging,\n validation,\n format,\n handleInputChange,\n indicatorPosition,\n inset: thumbAlignment !== 'center',\n labelId: ariaLabelledby,\n rootLabelId: defaultLabelId,\n largeStep,\n lastUsedThumbIndex,\n lastChangeReasonRef,\n form,\n locale,\n max,\n min,\n minStepsBetweenValues,\n name,\n onValueCommitted,\n orientation,\n pressedThumbCenterOffsetRef,\n pressedThumbIndexRef,\n pressedValuesRef,\n registerFieldControlRef,\n renderBeforeHydration: thumbAlignment === 'edge',\n setActive,\n setDragging,\n setIndicatorPosition,\n setLabelId,\n setValue,\n state,\n step,\n thumbCollisionBehavior,\n thumbMap,\n thumbRefs,\n values\n }), [active, ariaLabelledby, defaultLabelId, disabled, dragging, validation, format, handleInputChange, indicatorPosition, largeStep, lastUsedThumbIndex, form, locale, max, min, minStepsBetweenValues, name, onValueCommitted, orientation, registerFieldControlRef, setActive, setValue, state, step, thumbCollisionBehavior, thumbAlignment, thumbMap, values]);\n const element = useRenderElement('div', componentProps, {\n state,\n ref: [forwardedRef, sliderRef],\n props: [{\n 'aria-labelledby': ariaLabelledby,\n id,\n role: 'group'\n }, elementProps, props => validation.getValidationProps(disabled, props)],\n stateAttributesMapping: sliderStateAttributesMapping\n });\n return /*#__PURE__*/_jsx(SliderRootContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(CompositeList, {\n elementsRef: thumbRefs,\n onMapChange: setThumbMap,\n children: element\n })\n });\n});\nif (process.env.NODE_ENV !== \"production\") SliderRoot.displayName = \"SliderRoot\";","// 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}","'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}","export function asc(a, b) {\n return a - b;\n}","import { clamp } from '@base-ui/utils/clamp';\nimport { asc } from \"./asc.mjs\";\nexport function getSliderValue(valueInput, index, min, max, range, values) {\n const clamped = clamp(valueInput, min, max);\n if (!range) {\n return clamped;\n }\n const output = values.slice();\n // Bound the new value to the thumb's neighbours.\n output[index] = clamp(clamped, values[index - 1] ?? -Infinity, values[index + 1] ?? Infinity);\n return output.sort(asc);\n}","export function validateMinimumDistance(values, step, minStepsBetweenValues) {\n if (!Array.isArray(values)) {\n return true;\n }\n const minDistance = step * minStepsBetweenValues;\n for (let i = 0; i < values.length - 1; i += 1) {\n if (!(Math.abs(values[i] - values[i + 1]) >= minDistance)) {\n return false;\n }\n }\n return true;\n}","import { fieldValidityMapping } from \"../../internals/field-constants/constants.mjs\";\nconst nullMapping = () => null;\nexport const sliderStateAttributesMapping = {\n activeThumbIndex: nullMapping,\n max: nullMapping,\n min: nullMapping,\n minStepsBetweenValues: nullMapping,\n step: nullMapping,\n values: nullMapping,\n ...fieldValidityMapping\n};","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const SliderRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") SliderRootContext.displayName = \"SliderRootContext\";\nexport function useSliderRootContext() {\n const context = React.useContext(SliderRootContext);\n if (context === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: SliderRootContext is missing. Slider parts must be placed within <Slider.Root>.' : _formatErrorMessage(62));\n }\n return context;\n}","'use client';\n\nimport * as React from 'react';\nimport { isHTMLElement } from '@floating-ui/utils/dom';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { focusElementWithVisible, useLabel } from \"../../internals/labelable-provider/useLabel.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useSliderRootContext } from \"../root/SliderRootContext.mjs\";\nimport { sliderStateAttributesMapping } from \"../root/stateAttributesMapping.mjs\";\n\n/**\n * An accessible label that is automatically associated with the slider thumbs.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Slider](https://base-ui.com/react/components/slider)\n */\nexport const SliderLabel = /*#__PURE__*/React.forwardRef(function SliderLabel(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 {\n state,\n setLabelId,\n controlRef,\n rootLabelId\n } = useSliderRootContext();\n function focusControl(event, controlId) {\n if (controlId) {\n const controlElement = ownerDocument(event.currentTarget).getElementById(controlId);\n if (isHTMLElement(controlElement)) {\n focusElementWithVisible(controlElement);\n return;\n }\n }\n const fallbackInputs = controlRef.current?.querySelectorAll('input[type=\"range\"]');\n const fallbackInput = fallbackInputs?.length === 1 ? fallbackInputs[0] : null;\n if (isHTMLElement(fallbackInput)) {\n focusElementWithVisible(fallbackInput);\n }\n }\n const labelProps = useLabel({\n id: rootLabelId,\n setLabelId,\n focusControl\n });\n return useRenderElement('div', componentProps, {\n ref: forwardedRef,\n state,\n props: [labelProps, elementProps],\n stateAttributesMapping: sliderStateAttributesMapping\n });\n});\nif (process.env.NODE_ENV !== \"production\") SliderLabel.displayName = \"SliderLabel\";","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 \"./stringifyLocale.mjs\";\nconst cache = new Map();\nexport function getFormatter(locale, options) {\n const optionsString = JSON.stringify({\n locale: stringifyLocale(locale),\n options\n });\n const cachedFormatter = cache.get(optionsString);\n if (cachedFormatter) {\n return cachedFormatter;\n }\n const formatter = new Intl.NumberFormat(locale, options);\n cache.set(optionsString, formatter);\n return formatter;\n}\nexport function formatNumber(value, locale, options) {\n if (value == null) {\n return '';\n }\n return getFormatter(locale, options).format(value);\n}","'use client';\n\nimport * as React from 'react';\nimport { formatNumber } from '@base-ui/utils/formatNumber';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useSliderRootContext } from \"../root/SliderRootContext.mjs\";\nimport { sliderStateAttributesMapping } from \"../root/stateAttributesMapping.mjs\";\n/**\n * Displays the current value of the slider as text.\n * Renders an `<output>` element.\n *\n * Documentation: [Base UI Slider](https://base-ui.com/react/components/slider)\n */\nexport const SliderValue = /*#__PURE__*/React.forwardRef(function SliderValue(componentProps, forwardedRef) {\n const {\n 'aria-live': ariaLive = 'off',\n render,\n className,\n children,\n style,\n ...elementProps\n } = componentProps;\n const {\n thumbMap,\n state,\n values,\n format,\n locale\n } = useSliderRootContext();\n const outputFor = Array.from(thumbMap.values(), ({\n inputId\n }) => inputId).join(' ').trim() || undefined;\n const formattedValues = React.useMemo(() => values.map(v => formatNumber(v, locale, format)), [format, locale, values]);\n const defaultDisplayValue = formattedValues.join(' – ');\n const element = useRenderElement('output', componentProps, {\n state,\n ref: forwardedRef,\n props: [{\n // off by default because it will keep announcing when the slider is being dragged\n // and also when the value is changing (but not yet committed)\n 'aria-live': ariaLive,\n children: typeof children === 'function' ? children(formattedValues, values) : defaultDisplayValue,\n htmlFor: outputFor\n }, elementProps],\n stateAttributesMapping: sliderStateAttributesMapping\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") SliderValue.displayName = \"SliderValue\";","'use client';\n\nimport * as React from 'react';\nimport { isElement } from '@floating-ui/utils/dom';\nimport { addEventListener } from '@base-ui/utils/addEventListener';\nimport { ownerDocument, ownerWindow } from '@base-ui/utils/owner';\nimport { useAnimationFrame } from '@base-ui/utils/useAnimationFrame';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useValueAsRef } from '@base-ui/utils/useValueAsRef';\nimport { clamp } from '@base-ui/utils/clamp';\nimport { activeElement, contains, getTarget } from \"../../floating-ui-react/utils.mjs\";\nimport { createChangeEventDetails, createGenericEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useDirection } from \"../../internals/direction-context/DirectionContext.mjs\";\nimport { useSliderRootContext } from \"../root/SliderRootContext.mjs\";\nimport { sliderStateAttributesMapping } from \"../root/stateAttributesMapping.mjs\";\nimport { getMidpoint } from \"../utils/getMidpoint.mjs\";\nimport { roundValueToStep } from \"../utils/roundValueToStep.mjs\";\nimport { validateMinimumDistance } from \"../utils/validateMinimumDistance.mjs\";\nimport { resolveThumbCollision } from \"../utils/resolveThumbCollision.mjs\";\nconst INTENTIONAL_DRAG_COUNT_THRESHOLD = 2;\nfunction getControlOffset(styles, vertical) {\n if (!styles) {\n return {\n start: 0,\n end: 0\n };\n }\n function parseSize(value) {\n const parsed = value != null ? parseFloat(value) : 0;\n return Number.isNaN(parsed) ? 0 : parsed;\n }\n const start = !vertical ? 'InlineStart' : 'Top';\n const end = !vertical ? 'InlineEnd' : 'Bottom';\n return {\n start: parseSize(styles[`border${start}Width`]) + parseSize(styles[`padding${start}`]),\n end: parseSize(styles[`border${end}Width`]) + parseSize(styles[`padding${end}`])\n };\n}\nfunction getFingerCoords(event, touchIdRef) {\n // The event is TouchEvent\n if (touchIdRef.current != null && event.changedTouches) {\n const touchEvent = event;\n for (let i = 0; i < touchEvent.changedTouches.length; i += 1) {\n const touch = touchEvent.changedTouches[i];\n if (touch.identifier === touchIdRef.current) {\n return {\n x: touch.clientX,\n y: touch.clientY\n };\n }\n }\n return null;\n }\n\n // The event is PointerEvent\n return {\n x: event.clientX,\n y: event.clientY\n };\n}\n\n/**\n * The clickable, interactive part of the slider.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Slider](https://base-ui.com/react/components/slider)\n */\nexport const SliderControl = /*#__PURE__*/React.forwardRef(function SliderControl(componentProps, forwardedRef) {\n const {\n render: renderProp,\n className,\n style,\n ...elementProps\n } = componentProps;\n const {\n disabled,\n dragging,\n inset,\n lastChangeReasonRef,\n max,\n min,\n minStepsBetweenValues,\n onValueCommitted,\n orientation,\n pressedThumbCenterOffsetRef,\n pressedThumbIndexRef,\n pressedValuesRef,\n registerFieldControlRef,\n renderBeforeHydration,\n setActive,\n setDragging,\n setValue,\n state,\n step,\n thumbCollisionBehavior,\n thumbRefs,\n values\n } = useSliderRootContext();\n const direction = useDirection();\n const range = values.length > 1;\n const vertical = orientation === 'vertical';\n const controlRef = React.useRef(null);\n const stylesRef = React.useRef(null);\n const setStylesRef = useStableCallback(element => {\n if (element && stylesRef.current == null) {\n stylesRef.current = ownerWindow(element).getComputedStyle(element);\n }\n });\n\n // A number that uniquely identifies the current finger in the touch session.\n const touchIdRef = React.useRef(null);\n // The number of touch/pointermove events that have fired.\n const moveCountRef = React.useRef(0);\n // The offset amount to each side of the control for inset sliders.\n // This value should be equal to the radius or half the width/height of the thumb.\n const insetThumbOffsetRef = React.useRef(0);\n const currentInteractionValueRef = React.useRef(null);\n const latestValuesRef = useValueAsRef(values);\n function getThumbInput(el) {\n return el?.querySelector('input[type=\"range\"]');\n }\n function updatePressedThumb(nextIndex) {\n pressedThumbIndexRef.current = nextIndex;\n if (!thumbRefs.current[nextIndex]) {\n pressedThumbCenterOffsetRef.current = null;\n }\n }\n function resetPressedThumb() {\n pressedThumbIndexRef.current = -1;\n pressedThumbCenterOffsetRef.current = null;\n }\n function isTargetDisabledThumb(target) {\n if (!isElement(target)) {\n return false;\n }\n return thumbRefs.current.some(thumbEl => {\n if (!isElement(thumbEl) || !contains(thumbEl, target)) {\n return false;\n }\n return getThumbInput(thumbEl)?.disabled === true;\n });\n }\n function getFingerState(fingerCoords) {\n const control = controlRef.current;\n const thumbIndex = pressedThumbIndexRef.current;\n if (!control || thumbIndex < 0 || thumbIndex >= values.length) {\n if (thumbIndex >= values.length) {\n currentInteractionValueRef.current = null;\n }\n return null;\n }\n const {\n width,\n height,\n bottom,\n left,\n right\n } = control.getBoundingClientRect();\n const controlOffset = getControlOffset(stylesRef.current, vertical);\n const insetThumbOffset = insetThumbOffsetRef.current;\n const controlSize = (vertical ? height : width) - controlOffset.start - controlOffset.end - insetThumbOffset * 2;\n const thumbCenterOffset = pressedThumbCenterOffsetRef.current ?? 0;\n const fingerX = fingerCoords.x - thumbCenterOffset;\n const fingerY = fingerCoords.y - thumbCenterOffset;\n const valueSize = vertical ? bottom - fingerY - controlOffset.end : (direction === 'rtl' ? right - fingerX : fingerX - left) - controlOffset.start;\n // the value at the finger origin scaled down to fit the range [0, 1]\n const valueRescaled = clamp((valueSize - insetThumbOffset) / controlSize, 0, 1);\n let newValue = (max - min) * valueRescaled + min;\n newValue = roundValueToStep(newValue, step, min);\n newValue = clamp(newValue, min, max);\n if (!range) {\n return {\n value: newValue,\n thumbIndex,\n didSwap: false\n };\n }\n return resolveThumbCollision(thumbCollisionBehavior, values, latestValuesRef.current, pressedValuesRef.current, thumbIndex, newValue, min, max, step, minStepsBetweenValues);\n }\n function startPressing(fingerCoords) {\n pressedValuesRef.current = range ? values.slice() : null;\n currentInteractionValueRef.current = null;\n latestValuesRef.current = values;\n const pressedThumbIndex = pressedThumbIndexRef.current;\n let closestThumbIndex = pressedThumbIndex;\n if (pressedThumbIndex > -1 && pressedThumbIndex < values.length) {\n if (values[pressedThumbIndex] === max) {\n let candidateIndex = pressedThumbIndex;\n while (candidateIndex > 0 && values[candidateIndex - 1] === max) {\n candidateIndex -= 1;\n }\n closestThumbIndex = candidateIndex;\n }\n } else {\n // pressed on control\n const axis = !vertical ? 'x' : 'y';\n let minDistance;\n closestThumbIndex = -1;\n for (let i = 0; i < thumbRefs.current.length; i += 1) {\n const thumbEl = thumbRefs.current[i];\n if (isElement(thumbEl) && !getThumbInput(thumbEl)?.disabled) {\n const midpoint = getMidpoint(thumbEl, vertical);\n const distance = Math.abs(fingerCoords[axis] - midpoint);\n if (minDistance === undefined || distance <= minDistance) {\n closestThumbIndex = i;\n minDistance = distance;\n }\n }\n }\n }\n if (closestThumbIndex > -1 && closestThumbIndex !== pressedThumbIndex) {\n updatePressedThumb(closestThumbIndex);\n }\n if (inset) {\n const thumbEl = thumbRefs.current[closestThumbIndex];\n if (isElement(thumbEl)) {\n const thumbRect = thumbEl.getBoundingClientRect();\n const side = !vertical ? 'width' : 'height';\n insetThumbOffsetRef.current = thumbRect[side] / 2;\n }\n }\n }\n function focusThumb(thumbIndex) {\n const input = getThumbInput(thumbRefs.current?.[thumbIndex]);\n if (!input) {\n return;\n }\n input.focus({\n preventScroll: true,\n // Prevent pointer-driven focus rings in browsers that support this option.\n // Supported in Chrome from 144+.\n focusVisible: false\n });\n }\n function setValueFromPointer(finger, reason, nativeEvent) {\n const applied = setValue(finger.value, createChangeEventDetails(reason, nativeEvent, undefined, {\n activeThumbIndex: finger.thumbIndex\n }));\n if (applied) {\n currentInteractionValueRef.current = finger.value;\n latestValuesRef.current = Array.isArray(finger.value) ? finger.value : [finger.value];\n\n // Only track and focus the swapped thumb once the change is actually applied so a\n // canceled swap doesn't leak the new index into subsequent moves.\n if (finger.didSwap) {\n updatePressedThumb(finger.thumbIndex);\n focusThumb(finger.thumbIndex);\n }\n }\n return applied;\n }\n const handleTouchMove = useStableCallback(nativeEvent => {\n const fingerCoords = getFingerCoords(nativeEvent, touchIdRef);\n if (fingerCoords == null) {\n return;\n }\n moveCountRef.current += 1;\n\n // Cancel move in case some other element consumed a pointerup event and it was not fired.\n if (nativeEvent.type === 'pointermove' && nativeEvent.buttons === 0) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n handleTouchEnd(nativeEvent);\n return;\n }\n const finger = getFingerState(fingerCoords);\n if (finger == null) {\n return;\n }\n if (validateMinimumDistance(finger.value, step, minStepsBetweenValues)) {\n if (!dragging && moveCountRef.current > INTENTIONAL_DRAG_COUNT_THRESHOLD) {\n setDragging(true);\n }\n setValueFromPointer(finger, REASONS.drag, nativeEvent);\n }\n });\n const handleTouchEnd = useStableCallback(nativeEvent => {\n setActive(-1);\n setDragging(false);\n pressedThumbCenterOffsetRef.current = null;\n\n // If the value array shrank or grew mid-drag, the cached interaction value no longer\n // matches the current thumbs (the pressed index can still be in range), so dropping it\n // keeps a stale or malformed array from being committed on release.\n const interactionValue = currentInteractionValueRef.current;\n if (Array.isArray(interactionValue) && interactionValue.length !== values.length) {\n currentInteractionValueRef.current = null;\n }\n if (currentInteractionValueRef.current != null) {\n const commitReason = lastChangeReasonRef.current;\n onValueCommitted(currentInteractionValueRef.current, createGenericEventDetails(commitReason, nativeEvent));\n }\n if ('pointerType' in nativeEvent && controlRef.current?.hasPointerCapture(nativeEvent.pointerId)) {\n controlRef.current?.releasePointerCapture(nativeEvent.pointerId);\n }\n pressedThumbIndexRef.current = -1;\n touchIdRef.current = null;\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n stopListening();\n });\n const handleTouchStart = useStableCallback(nativeEvent => {\n if (disabled) {\n return;\n }\n if (isTargetDisabledThumb(getTarget(nativeEvent))) {\n resetPressedThumb();\n return;\n }\n const touch = nativeEvent.changedTouches[0];\n if (touch == null) {\n return;\n }\n touchIdRef.current = touch.identifier;\n const fingerCoords = {\n x: touch.clientX,\n y: touch.clientY\n };\n startPressing(fingerCoords);\n const finger = getFingerState(fingerCoords);\n if (finger == null) {\n return;\n }\n focusThumb(finger.thumbIndex);\n setValueFromPointer(finger, REASONS.trackPress, nativeEvent);\n moveCountRef.current = 0;\n const doc = ownerDocument(controlRef.current);\n doc.addEventListener('touchmove', handleTouchMove, {\n passive: true\n });\n doc.addEventListener('touchend', handleTouchEnd, {\n passive: true\n });\n });\n const stopListening = useStableCallback(() => {\n const doc = ownerDocument(controlRef.current);\n doc.removeEventListener('pointermove', handleTouchMove);\n doc.removeEventListener('pointerup', handleTouchEnd);\n doc.removeEventListener('touchmove', handleTouchMove);\n doc.removeEventListener('touchend', handleTouchEnd);\n pressedValuesRef.current = null;\n currentInteractionValueRef.current = null;\n });\n const focusFrame = useAnimationFrame();\n React.useEffect(() => {\n const control = controlRef.current;\n if (!control) {\n return () => stopListening();\n }\n const unsubscribeTouchStart = addEventListener(control, 'touchstart', handleTouchStart, {\n passive: true\n });\n return () => {\n unsubscribeTouchStart();\n focusFrame.cancel();\n stopListening();\n };\n }, [stopListening, handleTouchStart, controlRef, focusFrame]);\n React.useEffect(() => {\n if (disabled) {\n stopListening();\n }\n }, [disabled, stopListening]);\n const element = useRenderElement('div', componentProps, {\n state,\n ref: [forwardedRef, registerFieldControlRef, controlRef, setStylesRef],\n props: [{\n ['data-base-ui-slider-control']: renderBeforeHydration ? '' : undefined,\n onPointerDown(event) {\n const control = controlRef.current;\n const target = getTarget(event.nativeEvent);\n if (!control || disabled || event.defaultPrevented || !isElement(target) ||\n // Only handle left clicks\n event.button !== 0) {\n return;\n }\n if (isTargetDisabledThumb(target)) {\n resetPressedThumb();\n return;\n }\n const fingerCoords = {\n x: event.clientX,\n y: event.clientY\n };\n startPressing(fingerCoords);\n const finger = getFingerState(fingerCoords);\n if (finger == null) {\n return;\n }\n const pressedOnFocusedThumb = contains(thumbRefs.current[finger.thumbIndex], activeElement(ownerDocument(control)));\n if (pressedOnFocusedThumb) {\n event.preventDefault();\n } else {\n focusFrame.request(() => {\n focusThumb(finger.thumbIndex);\n });\n }\n setDragging(true);\n const pressedOnAnyThumb = pressedThumbCenterOffsetRef.current != null;\n if (!pressedOnAnyThumb) {\n setValueFromPointer(finger, REASONS.trackPress, event.nativeEvent);\n }\n if (event.nativeEvent.pointerId) {\n control.setPointerCapture(event.nativeEvent.pointerId);\n }\n moveCountRef.current = 0;\n const doc = ownerDocument(control);\n doc.addEventListener('pointermove', handleTouchMove, {\n passive: true\n });\n doc.addEventListener('pointerup', handleTouchEnd, {\n once: true\n });\n }\n }, elementProps],\n stateAttributesMapping: sliderStateAttributesMapping\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") SliderControl.displayName = \"SliderControl\";","export function getMidpoint(element, vertical) {\n const rect = element.getBoundingClientRect();\n return vertical ? (rect.top + rect.bottom) / 2 : (rect.left + rect.right) / 2;\n}","export function getDecimalPrecision(num) {\n if (num === 0) {\n return 0;\n }\n\n // This handles the case when num is very small (0.00000001), js will turn this into 1e-8.\n // When num is bigger than 1 or less than -1 it won't get converted to this notation so it's fine.\n if (Math.abs(num) < 1) {\n const parts = num.toExponential().split('e-');\n const matissaDecimalPart = parts[0].split('.')[1];\n return (matissaDecimalPart ? matissaDecimalPart.length : 0) + parseInt(parts[1], 10);\n }\n const decimalPart = num.toString().split('.')[1];\n return decimalPart ? decimalPart.length : 0;\n}\nexport function roundValueToStep(value, step, min) {\n const nearest = Math.round((value - min) / step) * step + min;\n return Number(nearest.toFixed(Math.max(getDecimalPrecision(step), getDecimalPrecision(min))));\n}","import { clamp } from '@base-ui/utils/clamp';\n\n/**\n * Returns a new array of slider values where attempting to move the thumb at `index`\n * beyond its neighbours \"pushes\" them while respecting `minStepsBetweenValues`.\n *\n * Positional arguments are deliberate: property names of an options object don't\n * minify, so passing them positionally keeps this internal helper smaller in the bundle.\n */\nexport function getPushedThumbValues(values, index, nextValue, min, max, step, minStepsBetweenValues, initialValues) {\n const nextValues = values.slice();\n const minValueDifference = step * minStepsBetweenValues;\n const lastIndex = nextValues.length - 1;\n const baseInitialValues = initialValues ?? values;\n const indexMin = min + index * minValueDifference;\n const indexMax = max - (lastIndex - index) * minValueDifference;\n nextValues[index] = clamp(nextValue, indexMin, indexMax);\n for (let i = index + 1; i <= lastIndex; i += 1) {\n const minAllowed = nextValues[i - 1] + minValueDifference;\n const maxAllowed = max - (lastIndex - i) * minValueDifference;\n const initialValue = baseInitialValues[i];\n let candidate = Math.max(nextValues[i], minAllowed);\n if (initialValue < candidate) {\n candidate = Math.max(initialValue, minAllowed);\n }\n nextValues[i] = clamp(candidate, minAllowed, maxAllowed);\n }\n for (let i = index - 1; i >= 0; i -= 1) {\n const maxAllowed = nextValues[i + 1] - minValueDifference;\n const minAllowed = min + i * minValueDifference;\n const initialValue = baseInitialValues[i];\n let candidate = Math.min(nextValues[i], maxAllowed);\n if (initialValue > candidate) {\n candidate = Math.min(initialValue, maxAllowed);\n }\n nextValues[i] = clamp(candidate, minAllowed, maxAllowed);\n }\n for (let i = 0; i <= lastIndex; i += 1) {\n nextValues[i] = Number(nextValues[i].toFixed(12));\n }\n return nextValues;\n}","import { clamp } from '@base-ui/utils/clamp';\nimport { getPushedThumbValues } from \"./getPushedThumbValues.mjs\";\n/**\n * Positional arguments are deliberate: property names of an options object don't\n * minify, so passing them positionally keeps this internal helper smaller in the bundle.\n */\nexport function resolveThumbCollision(behavior, values, currentValues, initialValues, pressedIndex, nextValue, min, max, step, minStepsBetweenValues) {\n const activeValues = currentValues ?? values;\n const baselineValues = initialValues ?? values;\n const range = activeValues.length > 1;\n if (!range) {\n return {\n value: nextValue,\n thumbIndex: 0,\n didSwap: false\n };\n }\n const minValueDifference = step * minStepsBetweenValues;\n\n // `push` does its own copy/bounds/rounding pass in `getPushedThumbValues`, so it must not\n // pay for the neighbor-clamp setup below (this is the hottest path — `push` is the default).\n if (behavior === 'push') {\n return {\n value: getPushedThumbValues(activeValues, pressedIndex, nextValue, min, max, step, minStepsBetweenValues),\n thumbIndex: pressedIndex,\n didSwap: false\n };\n }\n\n // Shared by `swap` and `none`.\n const candidateValues = activeValues.slice();\n const previousNeighbor = candidateValues[pressedIndex - 1];\n const nextNeighbor = candidateValues[pressedIndex + 1];\n const lowerBound = previousNeighbor != null ? previousNeighbor + minValueDifference : min;\n const upperBound = nextNeighbor != null ? nextNeighbor - minValueDifference : max;\n const pressedValueAfterClamp = Number(clamp(nextValue, lowerBound, upperBound).toFixed(12));\n candidateValues[pressedIndex] = pressedValueAfterClamp;\n switch (behavior) {\n case 'swap':\n {\n const pressedInitialValue = activeValues[pressedIndex];\n const epsilon = 1e-7;\n const movingForward = nextValue > pressedInitialValue;\n const movingBackward = nextValue < pressedInitialValue;\n const shouldSwapForward = movingForward && nextNeighbor != null && nextValue >= nextNeighbor - epsilon;\n const shouldSwapBackward = movingBackward && previousNeighbor != null && nextValue <= previousNeighbor + epsilon;\n if (!shouldSwapForward && !shouldSwapBackward) {\n return {\n value: candidateValues,\n thumbIndex: pressedIndex,\n didSwap: false\n };\n }\n const targetIndex = shouldSwapForward ? pressedIndex + 1 : pressedIndex - 1;\n const initialValuesForPush = candidateValues.map((_, index) => {\n if (index === pressedIndex) {\n return pressedValueAfterClamp;\n }\n const baseline = baselineValues[index];\n if (baseline != null) {\n return baseline;\n }\n return activeValues[index];\n });\n let nextValueForTarget = nextValue;\n if (shouldSwapForward) {\n nextValueForTarget = Math.max(nextValue, candidateValues[targetIndex]);\n } else {\n nextValueForTarget = Math.min(nextValue, candidateValues[targetIndex]);\n }\n const adjustedValues = getPushedThumbValues(candidateValues, targetIndex, nextValueForTarget, min, max, step, minStepsBetweenValues, initialValuesForPush);\n const neighborIndex = shouldSwapForward ? targetIndex - 1 : targetIndex + 1;\n const previousValue = adjustedValues[neighborIndex - 1];\n const nextValueAfter = adjustedValues[neighborIndex + 1];\n let neighborLowerBound = previousValue != null ? previousValue + minValueDifference : min;\n neighborLowerBound = Math.max(neighborLowerBound, min + neighborIndex * minValueDifference);\n let neighborUpperBound = nextValueAfter != null ? nextValueAfter - minValueDifference : max;\n neighborUpperBound = Math.min(neighborUpperBound, max - (adjustedValues.length - 1 - neighborIndex) * minValueDifference);\n const restoredValue = clamp(pressedValueAfterClamp, neighborLowerBound, neighborUpperBound);\n adjustedValues[neighborIndex] = Number(restoredValue.toFixed(12));\n return {\n value: adjustedValues,\n thumbIndex: targetIndex,\n didSwap: true\n };\n }\n case 'none':\n default:\n {\n return {\n value: candidateValues,\n thumbIndex: pressedIndex,\n didSwap: false\n };\n }\n }\n}","'use client';\n\nimport * as React from 'react';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useSliderRootContext } from \"../root/SliderRootContext.mjs\";\nimport { sliderStateAttributesMapping } from \"../root/stateAttributesMapping.mjs\";\n\n/**\n * Contains the slider indicator and represents the entire range of the slider.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Slider](https://base-ui.com/react/components/slider)\n */\nexport const SliderTrack = /*#__PURE__*/React.forwardRef(function SliderTrack(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n ...elementProps\n } = componentProps;\n const {\n state\n } = useSliderRootContext();\n const element = useRenderElement('div', componentProps, {\n state,\n ref: forwardedRef,\n props: [{\n style: {\n position: 'relative'\n }\n }, elementProps],\n stateAttributesMapping: sliderStateAttributesMapping\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") SliderTrack.displayName = \"SliderTrack\";","'use client';\n\nvar _PrehydrationScript;\nimport * as React from 'react';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useMergedRefs } from '@base-ui/utils/useMergedRefs';\nimport { visuallyHidden } from '@base-ui/utils/visuallyHidden';\nimport { ownerWindow } from '@base-ui/utils/owner';\nimport { script as prehydrationScript } from '#prehydration/slider/thumb';\nimport { clamp } from '@base-ui/utils/clamp';\nimport { formatNumber } from '@base-ui/utils/formatNumber';\nimport { mergeProps } from \"../../merge-props/index.mjs\";\nimport { useBaseUiId } from \"../../internals/useBaseUiId.mjs\";\nimport { useIsHydrating } from \"../../utils/useIsHydrating.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { valueToPercent } from \"../../utils/valueToPercent.mjs\";\nimport { ARROW_DOWN, ARROW_UP, ARROW_RIGHT, ARROW_LEFT, HOME, END, COMPOSITE_KEYS, PAGE_UP, PAGE_DOWN } from \"../../internals/composite/composite.mjs\";\nimport { useCompositeListItem } from \"../../internals/composite/list/useCompositeListItem.mjs\";\nimport { useDirection } from \"../../internals/direction-context/DirectionContext.mjs\";\nimport { PrehydrationScript } from \"../../internals/PrehydrationScript.mjs\";\nimport { useFieldRootContext } from \"../../internals/field-root-context/FieldRootContext.mjs\";\nimport { contains } from \"../../floating-ui-react/utils.mjs\";\nimport { matchesFocusVisible } from \"../../floating-ui-react/utils/element.mjs\";\nimport { useLabelableId } from \"../../internals/labelable-provider/useLabelableId.mjs\";\nimport { getMidpoint } from \"../utils/getMidpoint.mjs\";\nimport { getSliderValue } from \"../utils/getSliderValue.mjs\";\nimport { getDecimalPrecision, roundValueToStep } from \"../utils/roundValueToStep.mjs\";\nimport { useSliderRootContext } from \"../root/SliderRootContext.mjs\";\nimport { sliderStateAttributesMapping } from \"../root/stateAttributesMapping.mjs\";\nimport * as SliderThumbDataAttributes from \"./SliderThumbDataAttributes.mjs\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst ALL_KEYS = new Set([...COMPOSITE_KEYS, PAGE_UP, PAGE_DOWN]);\nfunction getDefaultAriaValueText(values, index, format, locale) {\n if (index < 0) {\n return undefined;\n }\n if (values.length === 2) {\n return `${formatNumber(values[index], locale, format)} ${index === 0 ? 'start' : 'end'} range`;\n }\n return format ? formatNumber(values[index], locale, format) : undefined;\n}\nfunction getNewValue(thumbValue, increment, direction, min, max) {\n const value = thumbValue + increment * direction;\n const roundedValue = Number(value.toFixed(Math.max(getDecimalPrecision(thumbValue), getDecimalPrecision(increment), getDecimalPrecision(min))));\n return clamp(roundedValue, min, max);\n}\n\n/**\n * The draggable part of the slider at the tip of the indicator.\n * Renders a `<div>` element and a nested `<input type=\"range\">`.\n *\n * Documentation: [Base UI Slider](https://base-ui.com/react/components/slider)\n */\nexport const SliderThumb = /*#__PURE__*/React.forwardRef(function SliderThumb(componentProps, forwardedRef) {\n const {\n render,\n children: childrenProp,\n className,\n 'aria-describedby': ariaDescribedByProp,\n 'aria-label': ariaLabelProp,\n 'aria-labelledby': ariaLabelledByProp,\n 'aria-valuetext': ariaValueTextProp,\n disabled: disabledProp = false,\n getAriaLabel: getAriaLabelProp,\n getAriaValueText: getAriaValueTextProp,\n id: idProp,\n index: indexProp,\n inputRef: inputRefProp,\n onBlur: onBlurProp,\n onFocus: onFocusProp,\n onKeyDown: onKeyDownProp,\n tabIndex: tabIndexProp,\n style,\n ...elementProps\n } = componentProps;\n const id = useBaseUiId(idProp);\n const {\n active: activeIndex,\n lastUsedThumbIndex,\n controlRef,\n disabled: contextDisabled,\n validation,\n format,\n handleInputChange,\n inset,\n labelId,\n largeStep,\n locale,\n max,\n min,\n minStepsBetweenValues,\n form,\n name,\n orientation,\n pressedThumbCenterOffsetRef,\n pressedThumbIndexRef,\n renderBeforeHydration,\n setActive,\n setIndicatorPosition,\n state,\n step,\n thumbRefs,\n values: sliderValues\n } = useSliderRootContext();\n const direction = useDirection();\n const disabled = disabledProp || contextDisabled;\n const range = sliderValues.length > 1;\n const vertical = orientation === 'vertical';\n const rtl = direction === 'rtl';\n const {\n setTouched,\n setFocused,\n validationMode\n } = useFieldRootContext();\n const thumbRef = React.useRef(null);\n const inputRef = React.useRef(null);\n const restoringFocusVisibleRef = React.useRef(false);\n\n // Attached to the `input` (not the thumb wrapper) so `event.currentTarget` is the\n // input, matching `onKeyDown`. The synthetic blur/focus dispatched while restoring\n // `:focus-visible` is internal and must not be forwarded to the user's handlers.\n const handleFocusProp = useStableCallback(event => {\n if (restoringFocusVisibleRef.current) {\n return;\n }\n onFocusProp?.(event);\n });\n const handleBlurProp = useStableCallback(event => {\n if (restoringFocusVisibleRef.current) {\n return;\n }\n onBlurProp?.(event);\n });\n const defaultInputId = useBaseUiId();\n const labelableId = useLabelableId();\n const inputId = range ? defaultInputId : labelableId;\n const thumbMetadata = React.useMemo(() => ({\n inputId\n }), [inputId]);\n const {\n ref: listItemRef,\n index: compositeIndex\n } = useCompositeListItem({\n metadata: thumbMetadata\n });\n const index = !range ? 0 : indexProp ?? compositeIndex;\n const last = index === sliderValues.length - 1;\n const thumbValue = sliderValues[index];\n const thumbValuePercent = valueToPercent(thumbValue, min, max);\n const [positionPercent, setPositionPercent] = React.useState();\n const isHydrating = useIsHydrating();\n const safeLastUsedThumbIndex = lastUsedThumbIndex >= 0 && lastUsedThumbIndex < sliderValues.length ? lastUsedThumbIndex : -1;\n const getInsetPosition = useStableCallback(() => {\n const control = controlRef.current;\n const thumb = thumbRef.current;\n if (!control || !thumb) {\n return;\n }\n const thumbRect = thumb.getBoundingClientRect();\n const controlRect = control.getBoundingClientRect();\n const side = vertical ? 'height' : 'width';\n // the total travel distance adjusted to account for the thumb size\n const controlSize = controlRect[side] - thumbRect[side];\n // px distance from the starting edge (inline-start or bottom) to the thumb center\n const thumbOffsetFromControlEdge = thumbRect[side] / 2 + controlSize * thumbValuePercent / 100;\n const nextPositionPercent = thumbOffsetFromControlEdge / controlRect[side] * 100;\n const nextInsetPosition = Number.isFinite(nextPositionPercent) ? nextPositionPercent : undefined;\n setPositionPercent(nextInsetPosition);\n if (index === 0) {\n setIndicatorPosition(prevPosition => [nextInsetPosition, prevPosition[1]]);\n } else if (last) {\n setIndicatorPosition(prevPosition => [prevPosition[0], nextInsetPosition]);\n }\n });\n useIsoLayoutEffect(() => {\n if (inset) {\n queueMicrotask(getInsetPosition);\n }\n }, [getInsetPosition, inset]);\n useIsoLayoutEffect(() => {\n if (inset) {\n getInsetPosition();\n }\n }, [getInsetPosition, inset, thumbValuePercent]);\n useIsoLayoutEffect(() => {\n if (!inset) {\n return undefined;\n }\n const control = controlRef.current;\n const thumb = thumbRef.current;\n if (!control || !thumb) {\n return undefined;\n }\n const ResizeObserverCtor = ownerWindow(control).ResizeObserver;\n if (typeof ResizeObserverCtor !== 'function') {\n return undefined;\n }\n const resizeObserver = new ResizeObserverCtor(getInsetPosition);\n resizeObserver.observe(control);\n resizeObserver.observe(thumb);\n return () => {\n resizeObserver.disconnect();\n };\n }, [controlRef, getInsetPosition, inset]);\n const startEdge = vertical ? 'bottom' : 'insetInlineStart';\n const crossOffsetProperty = vertical ? 'left' : 'top';\n let zIndex;\n if (range) {\n if (activeIndex === index) {\n zIndex = 2;\n } else if (safeLastUsedThumbIndex === index) {\n zIndex = 1;\n }\n } else if (activeIndex === index) {\n zIndex = 1;\n }\n let thumbStyle;\n if (!inset && !Number.isFinite(thumbValuePercent)) {\n thumbStyle = visuallyHidden;\n } else {\n thumbStyle = {\n position: 'absolute',\n [startEdge]: inset ? 'var(--position)' : `${thumbValuePercent}%`,\n [crossOffsetProperty]: '50%',\n translate: `${(vertical || !rtl ? -1 : 1) * 50}% ${(vertical ? 1 : -1) * 50}%`,\n zIndex,\n ...(inset && {\n ['--position']: `${positionPercent ?? 0}%`,\n visibility: renderBeforeHydration && isHydrating || positionPercent === undefined ? 'hidden' : undefined\n })\n };\n }\n let cssWritingMode;\n if (vertical) {\n cssWritingMode = rtl ? 'vertical-rl' : 'vertical-lr';\n }\n const ariaLabel = typeof getAriaLabelProp === 'function' ? getAriaLabelProp(index) : ariaLabelProp;\n const inputProps = mergeProps({\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledByProp ?? (ariaLabel == null ? labelId : undefined),\n 'aria-describedby': ariaDescribedByProp,\n 'aria-orientation': orientation,\n 'aria-valuenow': thumbValue,\n 'aria-valuetext': typeof getAriaValueTextProp === 'function' ? getAriaValueTextProp(formatNumber(thumbValue, locale, format), thumbValue, index) : ariaValueTextProp ?? getDefaultAriaValueText(sliderValues, index, format, locale),\n disabled,\n form,\n id: inputId,\n max,\n min,\n name,\n onChange(event) {\n handleInputChange(event.currentTarget.valueAsNumber, index, event);\n },\n onFocus(event) {\n const isRestoringFocusVisible = restoringFocusVisibleRef.current;\n restoringFocusVisibleRef.current = false;\n setActive(index);\n setFocused(true);\n if (isRestoringFocusVisible) {\n event.stopPropagation();\n }\n },\n onBlur(event) {\n if (restoringFocusVisibleRef.current) {\n event.stopPropagation();\n return;\n }\n setActive(-1);\n\n // Keep field-level blur logic from running while focus moves to another thumb\n // of the same slider, so validation doesn't commit mid-interaction.\n if (thumbRefs.current.some(thumb => contains(thumb, event.relatedTarget))) {\n return;\n }\n setTouched(true);\n setFocused(false);\n if (validationMode === 'onBlur') {\n validation.commit(getSliderValue(thumbValue, index, min, max, range, sliderValues));\n }\n },\n onKeyDown(event) {\n if (event.defaultPrevented) {\n return;\n }\n if (!ALL_KEYS.has(event.key)) {\n return;\n }\n if (COMPOSITE_KEYS.has(event.key)) {\n event.stopPropagation();\n }\n let newValue = null;\n let direction = 0;\n let increment = event.shiftKey ? largeStep : step;\n const roundedValue = roundValueToStep(thumbValue, step, min);\n switch (event.key) {\n case ARROW_UP:\n direction = 1;\n break;\n case ARROW_RIGHT:\n direction = rtl ? -1 : 1;\n break;\n case ARROW_DOWN:\n direction = -1;\n break;\n case ARROW_LEFT:\n direction = rtl ? 1 : -1;\n break;\n case PAGE_UP:\n increment = largeStep;\n direction = 1;\n break;\n case PAGE_DOWN:\n increment = largeStep;\n direction = -1;\n break;\n case END:\n newValue = range && Number.isFinite(sliderValues[index + 1]) ? sliderValues[index + 1] - step * minStepsBetweenValues : max;\n break;\n case HOME:\n newValue = range && Number.isFinite(sliderValues[index - 1]) ? sliderValues[index - 1] + step * minStepsBetweenValues : min;\n break;\n default:\n break;\n }\n if (direction !== 0) {\n newValue = getNewValue(roundedValue, increment, direction, min, max);\n }\n if (newValue !== null) {\n const input = event.currentTarget;\n if (!matchesFocusVisible(input)) {\n restoringFocusVisibleRef.current = true;\n input.blur();\n input.focus({\n preventScroll: true,\n // Show `:focus-visible` after keyboard interaction, even if the\n // thumb was previously focused by a pointer.\n focusVisible: true\n });\n }\n handleInputChange(newValue, index, event);\n event.preventDefault();\n }\n },\n step,\n style: {\n ...visuallyHidden,\n // So that VoiceOver's focus indicator matches the thumb's dimensions\n width: '100%',\n height: '100%',\n writingMode: cssWritingMode\n },\n tabIndex: tabIndexProp,\n type: 'range',\n value: thumbValue ?? ''\n }, props => validation.getValidationProps(disabled, props), {\n onFocus: handleFocusProp,\n onBlur: handleBlurProp,\n onKeyDown: onKeyDownProp\n });\n const mergedInputRef = useMergedRefs(inputRef, validation.inputRef, inputRefProp);\n const element = useRenderElement('div', componentProps, {\n state,\n ref: [forwardedRef, listItemRef, thumbRef],\n props: [{\n [SliderThumbDataAttributes.index]: index,\n children: /*#__PURE__*/_jsxs(React.Fragment, {\n children: [childrenProp, /*#__PURE__*/_jsx(\"input\", {\n ref: mergedInputRef,\n ...inputProps,\n suppressHydrationWarning: true\n }), inset && last && renderBeforeHydration && (_PrehydrationScript || (_PrehydrationScript = /*#__PURE__*/_jsx(PrehydrationScript, {\n script: prehydrationScript\n })))]\n }),\n id,\n onPointerDown(event) {\n // Keep disabled thumbs from writing transient pointer state.\n if (disabled) {\n return;\n }\n pressedThumbIndexRef.current = index;\n const midpoint = getMidpoint(event.currentTarget, vertical);\n pressedThumbCenterOffsetRef.current = (vertical ? event.clientY : event.clientX) - midpoint;\n },\n style: thumbStyle,\n suppressHydrationWarning: renderBeforeHydration || undefined\n }, elementProps],\n stateAttributesMapping: sliderStateAttributesMapping\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") SliderThumb.displayName = \"SliderThumb\";","// This file is autogenerated. Do not edit it directly.\n// To update it, modify the corresponding source file and run `pnpm inline-scripts`.\n\n// prettier-ignore\nexport const script = '!function(){const t=document.currentScript?.parentElement;if(!t)return;const e=t.closest(\"[data-base-ui-slider-control]\");if(!e)return;const r=e.querySelector(\"[data-base-ui-slider-indicator]\"),i=e.getBoundingClientRect(),n=\"vertical\"===e.getAttribute(\"data-orientation\")?\"height\":\"width\",o=e.querySelectorAll(\\'input[type=\"range\"]\\'),l=o.length>1,s=o.length-1;let a=null,u=null;for(let t=0;t<o.length;t+=1){const e=o[t],y=parseFloat(e.getAttribute(\"value\")??\"\");if(Number.isNaN(y))return;const c=e.parentElement;if(!c)return;const p=parseFloat(e.getAttribute(\"max\")??\"100\"),g=parseFloat(e.getAttribute(\"min\")??\"0\"),b=c?.getBoundingClientRect(),d=i[n]-b[n],m=100*(y-g)/(p-g),v=(b[n]/2+d*m/100)/i[n]*100;c.style.setProperty(\"--position\",`${v}%`),Number.isFinite(v)&&(c.style.removeProperty(\"visibility\"),r&&(0===t?(a=v,r.style.setProperty(\"--start-position\",`${v}%`),l||r.style.removeProperty(\"visibility\")):t===s&&(u=v-(a??0),r.style.setProperty(\"--end-position\",`${v}%`),r.style.setProperty(\"--relative-size\",`${u}%`),r.style.removeProperty(\"visibility\"))))}}();';","export function valueToPercent(value, min, max) {\n return (value - min) * 100 / (max - min);\n}","/**\n * Indicates the index of the thumb in range sliders.\n */\nexport const index = 'data-index';\n/**\n * Present while the user is dragging.\n */\nexport const dragging = 'data-dragging';\n/**\n * Indicates the orientation of the slider.\n * @type {'horizontal' | 'vertical'}\n */\nexport const orientation = 'data-orientation';\n/**\n * Present when the slider is disabled.\n */\nexport const disabled = 'data-disabled';\n/**\n * Present when the slider is in a valid state (when wrapped in Field.Root).\n */\nexport const valid = 'data-valid';\n/**\n * Present when the slider is in an invalid state (when wrapped in Field.Root).\n */\nexport const invalid = 'data-invalid';\n/**\n * Present when the slider has been touched (when wrapped in Field.Root).\n */\nexport const touched = 'data-touched';\n/**\n * Present when the slider's value has changed (when wrapped in Field.Root).\n */\nexport const dirty = 'data-dirty';\n/**\n * Present when the slider is focused (when wrapped in Field.Root).\n */\nexport const focused = 'data-focused';","'use client';\n\nimport * as React from 'react';\nimport { valueToPercent } from \"../../utils/valueToPercent.mjs\";\nimport { useIsHydrating } from \"../../utils/useIsHydrating.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useSliderRootContext } from \"../root/SliderRootContext.mjs\";\nimport { sliderStateAttributesMapping } from \"../root/stateAttributesMapping.mjs\";\nfunction getIndicatorStyles(vertical, range, inset, start, end, forceHidden) {\n const styles = {\n visibility: forceHidden || inset && (start === undefined || range && end === undefined) ? 'hidden' : undefined,\n position: vertical ? 'absolute' : 'relative',\n [vertical ? 'width' : 'height']: 'inherit'\n };\n let startValue = `${start ?? 0}%`;\n let sizeValue = `${(end ?? 0) - (start ?? 0)}%`;\n if (inset) {\n styles['--start-position'] = startValue;\n startValue = 'var(--start-position)';\n if (range) {\n styles['--relative-size'] = sizeValue;\n sizeValue = 'var(--relative-size)';\n }\n }\n styles[vertical ? 'bottom' : 'insetInlineStart'] = range ? startValue : 0;\n styles[vertical ? 'height' : 'width'] = range ? sizeValue : startValue;\n return styles;\n}\n\n/**\n * Visualizes the current value of the slider.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Slider](https://base-ui.com/react/components/slider)\n */\nexport const SliderIndicator = /*#__PURE__*/React.forwardRef(function SliderIndicator(componentProps, forwardedRef) {\n const {\n render,\n className,\n style: styleProp,\n ...elementProps\n } = componentProps;\n const {\n indicatorPosition,\n inset,\n max,\n min,\n orientation,\n renderBeforeHydration,\n state,\n values\n } = useSliderRootContext();\n const isHydrating = useIsHydrating();\n const vertical = orientation === 'vertical';\n const range = values.length > 1;\n const style = getIndicatorStyles(vertical, range, inset, inset ? indicatorPosition[0] : valueToPercent(values[0], min, max), inset ? indicatorPosition[1] : valueToPercent(values[values.length - 1], min, max), inset && renderBeforeHydration && isHydrating);\n const element = useRenderElement('div', componentProps, {\n state,\n ref: forwardedRef,\n props: [{\n ['data-base-ui-slider-indicator']: renderBeforeHydration ? '' : undefined,\n style,\n suppressHydrationWarning: renderBeforeHydration || undefined\n }, elementProps],\n stateAttributesMapping: sliderStateAttributesMapping\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") SliderIndicator.displayName = \"SliderIndicator\";","import { Slider as SliderPrimitive } from \"@base-ui/react/slider\"\nimport { cn } from \"cn\"\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: SliderPrimitive.Root.Props) {\n const _values = Array.isArray(value)\n ? value\n : Array.isArray(defaultValue)\n ? defaultValue\n : [min, max]\n\n return (\n <SliderPrimitive.Root\n className={cn(\"data-horizontal:w-full data-vertical:h-full\", className)}\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n thumbAlignment=\"edge\"\n {...props}\n >\n <SliderPrimitive.Control className=\"relative flex w-full touch-none items-center select-none data-disabled:opacity-50 data-vertical:h-full data-vertical:min-h-40 data-vertical:w-auto data-vertical:flex-col\">\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className=\"relative grow overflow-hidden rounded-full bg-muted select-none data-horizontal:h-1 data-horizontal:w-full data-vertical:h-full data-vertical:w-1\"\n >\n <SliderPrimitive.Indicator\n data-slot=\"slider-range\"\n className=\"bg-primary select-none data-horizontal:h-full data-vertical:w-full\"\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className=\"relative block size-3 shrink-0 rounded-full border border-ring bg-white ring-ring/50 transition-[color,box-shadow] select-none after:absolute after:-inset-2 hover:ring-3 focus-visible:ring-3 focus-visible:outline-hidden active:ring-3 disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Control>\n </SliderPrimitive.Root>\n )\n}\n\nexport { Slider }\n","\"use client\"\n\nimport * as React from \"react\"\nimport { cn } from \"cn\"\n\nfunction Label({ className, ...props }: React.ComponentProps<\"label\">) {\n return (\n <label\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n","'use client';\n\nimport * as React from 'react';\nimport { useControlled } from '@base-ui/utils/useControlled';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { CompositeList } from \"../../internals/composite/list/CompositeList.mjs\";\nimport { TabsRootContext } from \"./TabsRootContext.mjs\";\nimport { tabsStateAttributesMapping } from \"./stateAttributesMapping.mjs\";\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\n\n/**\n * Groups the tabs and the corresponding panels.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Tabs](https://base-ui.com/react/components/tabs)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const TabsRoot = /*#__PURE__*/React.forwardRef(function TabsRoot(componentProps, forwardedRef) {\n const {\n className,\n defaultValue: defaultValueProp = 0,\n onValueChange: onValueChangeProp,\n orientation = 'horizontal',\n render,\n value: valueProp,\n style,\n ...elementProps\n } = componentProps;\n\n // Track whether the user explicitly provided a defined `defaultValue` prop.\n // Used to determine if we should honor a disabled tab selection.\n const hasExplicitDefaultValueProp = componentProps.defaultValue !== undefined;\n const tabPanelRefs = React.useRef([]);\n const [mountedTabPanels, setMountedTabPanels] = React.useState(() => new Map());\n const [value, setValue] = useControlled({\n controlled: valueProp,\n default: defaultValueProp,\n name: 'Tabs',\n state: 'value'\n });\n const isControlled = valueProp !== undefined;\n const [tabMap, setTabMap] = React.useState(() => new Map());\n const lastKnownTabElementRef = React.useRef(undefined);\n\n // Used for activation direction detection via tab element positions.\n const getTabElementBySelectedValue = React.useCallback(selectedValue => findTabElement(tabMap, selectedValue), [tabMap]);\n const [activationDirectionState, setActivationDirectionState] = React.useState(() => ({\n previousValue: value,\n tabActivationDirection: 'none'\n }));\n const {\n previousValue,\n tabActivationDirection: committedTabActivationDirection\n } = activationDirectionState;\n let tabActivationDirection = committedTabActivationDirection;\n let directionComputationIncomplete = false;\n\n // Compute activation direction during render when value changes so children see\n // the correct direction on their very first render after the selection update.\n // The previous value snapshot is stored in state and synced after commit.\n // https://github.com/mui/base-ui/issues/3873\n if (previousValue !== value) {\n tabActivationDirection = computeActivationDirection(previousValue, value, orientation, tabMap);\n\n // When a new tab is added and selected in the same controlled update,\n // the tab element may not yet be registered in tabMap, so direction was\n // computed from a value-based fallback. Keep the previous value snapshot\n // stale so we re-compute from DOM positions once tabMap is up to date.\n directionComputationIncomplete = previousValue != null && value != null && getTabElementBySelectedValue(value) == null;\n }\n const nextPreviousValue = directionComputationIncomplete ? previousValue : value;\n const shouldSyncActivationDirectionState = previousValue !== nextPreviousValue || committedTabActivationDirection !== tabActivationDirection;\n useIsoLayoutEffect(() => {\n if (!shouldSyncActivationDirectionState) {\n return;\n }\n setActivationDirectionState({\n previousValue: nextPreviousValue,\n tabActivationDirection\n });\n }, [nextPreviousValue, shouldSyncActivationDirectionState, tabActivationDirection]);\n const onValueChange = useStableCallback((newValue, eventDetails) => {\n const activationDirection = computeActivationDirection(value, newValue, orientation, tabMap);\n eventDetails.activationDirection = activationDirection;\n onValueChangeProp?.(newValue, eventDetails);\n if (eventDetails.isCanceled) {\n return;\n }\n setValue(newValue);\n });\n const notifyAutomaticValueChange = useStableCallback((nextValue, reason) => {\n onValueChangeProp?.(nextValue, createChangeEventDetails(reason, undefined, undefined, {\n activationDirection: 'none'\n }));\n });\n const registerMountedTabPanel = useStableCallback((panelValue, panelId) => {\n setMountedTabPanels(prev => {\n const next = new Map(prev);\n next.set(panelValue, panelId);\n return next;\n });\n return () => {\n setMountedTabPanels(prev => {\n // Another panel with the same value took ownership in the meantime;\n // leave its registration in place.\n if (prev.get(panelValue) !== panelId) {\n return prev;\n }\n const next = new Map(prev);\n next.delete(panelValue);\n return next;\n });\n };\n });\n\n // get the `id` attribute of <Tabs.Panel> to set as the value of `aria-controls` on <Tabs.Tab>\n const getTabPanelIdByValue = React.useCallback(tabValue => {\n return mountedTabPanels.get(tabValue);\n }, [mountedTabPanels]);\n\n // get the `id` attribute of <Tabs.Tab> to set as the value of `aria-labelledby` on <Tabs.Panel>\n const getTabIdByPanelValue = React.useCallback(tabPanelValue => {\n for (const tabMetadata of tabMap.values()) {\n if (tabPanelValue === tabMetadata.value) {\n return tabMetadata.id;\n }\n }\n return undefined;\n }, [tabMap]);\n const tabsContextValue = React.useMemo(() => ({\n getTabElementBySelectedValue,\n getTabIdByPanelValue,\n getTabPanelIdByValue,\n onValueChange,\n orientation,\n registerMountedTabPanel,\n setTabMap,\n tabActivationDirection,\n value\n }), [getTabElementBySelectedValue, getTabIdByPanelValue, getTabPanelIdByValue, onValueChange, orientation, registerMountedTabPanel, setTabMap, tabActivationDirection, value]);\n const selectedTabMetadata = React.useMemo(() => {\n for (const tabMetadata of tabMap.values()) {\n if (tabMetadata.value === value) {\n return tabMetadata;\n }\n }\n return undefined;\n }, [tabMap, value]);\n\n // Find the first non-disabled tab value.\n // Used as a fallback when the current selection is disabled or missing.\n const firstEnabledTabValue = React.useMemo(() => {\n for (const tabMetadata of tabMap.values()) {\n if (!tabMetadata.disabled) {\n return tabMetadata.value;\n }\n }\n return undefined;\n }, [tabMap]);\n\n // Implicit uncontrolled selections are still automatic changes, so notify\n // once when the tabs first register. Explicit defaults are treated as user-owned.\n const shouldNotifyInitialValueChangeRef = React.useRef(!hasExplicitDefaultValueProp);\n // useControlled warns if defaultValue changes after mount, but the\n // disabled-default honor policy below still needs a stable initial value.\n const initialDefaultValueRef = React.useRef(defaultValueProp);\n // An explicit defaultValue can intentionally point at a disabled tab on mount.\n // Once that selection becomes valid, later disabled states should fall back.\n const shouldHonorDisabledDefaultValueRef = React.useRef(hasExplicitDefaultValueProp);\n const didRegisterTabsRef = React.useRef(false);\n\n // Uncontrolled roots own automatic fallback. Controlled roots keep the exact\n // value supplied by the parent, even when that tab is disabled or missing.\n useIsoLayoutEffect(() => {\n if (isControlled) {\n return;\n }\n function commitAutomaticValueChange(fallbackValue, fallbackReason) {\n setValue(fallbackValue);\n // Automatic fallbacks are not directional transitions; reset the direction\n // alongside the value so the batched commit keeps both in sync.\n setActivationDirectionState({\n previousValue: fallbackValue,\n tabActivationDirection: 'none'\n });\n notifyAutomaticValueChange(fallbackValue, fallbackReason);\n // Mark the initial notification as delivered only after the consumer\n // callback returns. The fallback value is queued first so automatic\n // consistency updates are not cancelable through a throwing handler.\n shouldNotifyInitialValueChangeRef.current = false;\n }\n if (tabMap.size === 0) {\n // A Suspense boundary outside the root can clean up layout effects while\n // keeping the previous tabs connected. Don't treat that as removal.\n if (didRegisterTabsRef.current && value !== null && !lastKnownTabElementRef.current?.isConnected) {\n commitAutomaticValueChange(null, REASONS.missing);\n }\n return;\n }\n didRegisterTabsRef.current = true;\n lastKnownTabElementRef.current = tabMap.keys().next().value;\n const selectionIsDisabled = selectedTabMetadata?.disabled;\n const selectionIsMissing = selectedTabMetadata == null && value !== null;\n if (!selectionIsDisabled && value === initialDefaultValueRef.current) {\n shouldHonorDisabledDefaultValueRef.current = false;\n }\n if (shouldHonorDisabledDefaultValueRef.current && selectionIsDisabled && value === initialDefaultValueRef.current) {\n return;\n }\n const shouldNotifyInitialValueChange = shouldNotifyInitialValueChangeRef.current;\n if (selectionIsDisabled || selectionIsMissing) {\n const fallbackValue = firstEnabledTabValue ?? null;\n if (value === fallbackValue) {\n // Already at the fallback value; no commit or notification needed,\n // but record that the implicit-initial transition has resolved.\n shouldNotifyInitialValueChangeRef.current = false;\n return;\n }\n let fallbackReason = REASONS.missing;\n if (shouldNotifyInitialValueChange) {\n fallbackReason = REASONS.initial;\n } else if (selectionIsDisabled) {\n fallbackReason = REASONS.disabled;\n }\n commitAutomaticValueChange(fallbackValue, fallbackReason);\n return;\n }\n if (shouldNotifyInitialValueChange && selectedTabMetadata != null) {\n notifyAutomaticValueChange(value, REASONS.initial);\n shouldNotifyInitialValueChangeRef.current = false;\n }\n }, [firstEnabledTabValue, isControlled, notifyAutomaticValueChange, selectedTabMetadata, setValue, tabMap, value]);\n const state = {\n orientation,\n tabActivationDirection\n };\n const element = useRenderElement('div', componentProps, {\n state,\n ref: forwardedRef,\n props: elementProps,\n stateAttributesMapping: tabsStateAttributesMapping\n });\n return /*#__PURE__*/_jsx(TabsRootContext.Provider, {\n value: tabsContextValue,\n children: /*#__PURE__*/_jsx(CompositeList, {\n elementsRef: tabPanelRefs,\n children: element\n })\n });\n});\nif (process.env.NODE_ENV !== \"production\") TabsRoot.displayName = \"TabsRoot\";\nfunction findTabElement(tabMap, value) {\n for (const [tabElement, tabMetadata] of tabMap.entries()) {\n if (value === tabMetadata.value) {\n return tabElement;\n }\n }\n return null;\n}\nfunction computeActivationDirection(oldValue, newValue, orientation, tabMap) {\n if (oldValue == null || newValue == null) {\n return 'none';\n }\n const [positionProp, backward, forward] = orientation === 'horizontal' ? ['left', 'left', 'right'] : ['top', 'up', 'down'];\n const oldTab = findTabElement(tabMap, oldValue);\n const newTab = findTabElement(tabMap, newValue);\n if (oldTab == null || newTab == null) {\n // Fallback for dynamic tabs: when a tab element isn't registered yet\n // (e.g. added and selected in the same update), infer direction from\n // the values themselves. Works for comparable types (numbers, strings).\n if (oldTab !== newTab && (typeof oldValue === 'number' || typeof oldValue === 'string') && typeof oldValue === typeof newValue) {\n return newValue > oldValue ? forward : backward;\n }\n return 'none';\n }\n const oldPosition = oldTab.getBoundingClientRect()[positionProp];\n const newPosition = newTab.getBoundingClientRect()[positionProp];\n if (newPosition < oldPosition) {\n return backward;\n }\n if (newPosition > oldPosition) {\n return forward;\n }\n return 'none';\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\n/**\n * @internal\n */\nexport const TabsRootContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") TabsRootContext.displayName = \"TabsRootContext\";\nexport function useTabsRootContext() {\n const context = React.useContext(TabsRootContext);\n if (context === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: TabsRootContext is missing. Tabs parts must be placed within <Tabs.Root>.' : _formatErrorMessage(64));\n }\n return context;\n}","/**\n * Indicates the direction of the activation (based on the previous active tab).\n * @type {'left' | 'right' | 'up' | 'down' | 'none'}\n */\nexport const activationDirection = 'data-activation-direction';\n/**\n * Indicates the orientation of the tabs.\n * @type {'horizontal' | 'vertical'}\n */\nexport const orientation = 'data-orientation';","import * as TabsRootDataAttributes from \"./TabsRootDataAttributes.mjs\";\nexport const tabsStateAttributesMapping = {\n tabActivationDirection: dir => ({\n [TabsRootDataAttributes.activationDirection]: dir\n })\n};","'use client';\n\nimport * as React from 'react';\nimport { ownerDocument } from '@base-ui/utils/owner';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useBaseUiId } from \"../../internals/useBaseUiId.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useButton } from \"../../internals/use-button/index.mjs\";\nimport { ACTIVE_COMPOSITE_ITEM } from \"../../internals/composite/constants.mjs\";\nimport { useCompositeItem } from \"../../internals/composite/item/useCompositeItem.mjs\";\nimport { useCompositeRootContext } from \"../../internals/composite/root/CompositeRootContext.mjs\";\nimport { useTabsRootContext } from \"../root/TabsRootContext.mjs\";\nimport { tabsStateAttributesMapping } from \"../root/stateAttributesMapping.mjs\";\nimport { useTabsListContext } from \"../list/TabsListContext.mjs\";\nimport { createChangeEventDetails } from \"../../internals/createBaseUIEventDetails.mjs\";\nimport { REASONS } from \"../../internals/reasons.mjs\";\nimport { activeElement, contains } from \"../../floating-ui-react/utils.mjs\";\n\n/**\n * An individual interactive tab button that toggles the corresponding panel.\n * Renders a `<button>` element.\n *\n * Documentation: [Base UI Tabs](https://base-ui.com/react/components/tabs)\n */\nexport const TabsTab = /*#__PURE__*/React.forwardRef(function TabsTab(componentProps, forwardedRef) {\n const {\n className,\n disabled = false,\n render,\n value,\n id: idProp,\n nativeButton = true,\n style,\n ...elementProps\n } = componentProps;\n const {\n value: activeTabValue,\n getTabPanelIdByValue,\n onValueChange,\n orientation,\n tabActivationDirection\n } = useTabsRootContext();\n const {\n activateOnFocus,\n registerTabResizeObserverElement,\n tabsListElement\n } = useTabsListContext();\n const {\n highlightedIndex,\n onHighlightedIndexChange\n } = useCompositeRootContext();\n const id = useBaseUiId(idProp);\n const tabMetadata = React.useMemo(() => ({\n disabled,\n id,\n value\n }), [disabled, id, value]);\n const {\n compositeProps,\n compositeRef,\n index\n // hook is used instead of the CompositeItem component\n // because the index is needed for Tab internals\n } = useCompositeItem({\n metadata: tabMetadata\n });\n const active = value === activeTabValue;\n const isNavigatingRef = React.useRef(false);\n const unobserveTabElementRef = React.useRef(null);\n\n // Registered from the ref callback rather than an effect so the observer\n // follows the rendered element when the `render` prop swaps the host element.\n const observeTabElement = useStableCallback(element => {\n unobserveTabElementRef.current?.();\n unobserveTabElementRef.current = element ? registerTabResizeObserverElement(element) : null;\n });\n\n // Keep the highlighted item in sync with the currently active tab\n // when the value prop changes externally (controlled mode)\n useIsoLayoutEffect(() => {\n if (isNavigatingRef.current) {\n isNavigatingRef.current = false;\n return;\n }\n if (!(active && index > -1 && highlightedIndex !== index)) {\n return;\n }\n\n // If focus is currently within the tabs list, don't override the roving\n // focus highlight. This keeps keyboard navigation relative to the focused\n // item after an external/asynchronous selection change.\n const listElement = tabsListElement;\n if (listElement != null) {\n const activeEl = activeElement(ownerDocument(listElement));\n if (activeEl && contains(listElement, activeEl)) {\n return;\n }\n }\n\n // Don't highlight disabled tabs to prevent them from interfering with keyboard navigation.\n // Keyboard focus (tabIndex) should remain on an enabled tab even when a disabled tab is selected.\n if (!disabled) {\n onHighlightedIndexChange(index);\n }\n }, [active, index, highlightedIndex, onHighlightedIndexChange, disabled, tabsListElement]);\n const {\n getButtonProps,\n buttonRef\n } = useButton({\n disabled,\n native: nativeButton,\n focusableWhenDisabled: true\n });\n const tabPanelId = getTabPanelIdByValue(value);\n const isPressingRef = React.useRef(false);\n const isMainButtonRef = React.useRef(false);\n\n // Both callers guard on `!active`, so the current value is never re-committed.\n function activate(event) {\n onValueChange(value, createChangeEventDetails(REASONS.none, event.nativeEvent, undefined, {\n activationDirection: 'none'\n }));\n }\n function onClick(event) {\n if (active || disabled) {\n return;\n }\n activate(event);\n }\n function onFocus(event) {\n if (active || disabled) {\n return;\n }\n if (activateOnFocus && (!isPressingRef.current ||\n // keyboard or touch focus\n isMainButtonRef.current) // main mouse button focus\n ) {\n activate(event);\n }\n }\n function onPointerDown(event) {\n if (active || disabled) {\n return;\n }\n isPressingRef.current = true;\n // Secondary presses (context menu, middle click) may focus the tab, but\n // must not activate it with `activateOnFocus`.\n isMainButtonRef.current = event.button === 0;\n\n // Registered for every button so a secondary press doesn't leave the tab\n // stuck in the pressing state, which would suppress later focus activation.\n const doc = ownerDocument(event.currentTarget);\n function handlePointerEnd() {\n isPressingRef.current = false;\n isMainButtonRef.current = false;\n doc.removeEventListener('pointerup', handlePointerEnd);\n doc.removeEventListener('pointercancel', handlePointerEnd);\n }\n doc.addEventListener('pointerup', handlePointerEnd);\n doc.addEventListener('pointercancel', handlePointerEnd);\n }\n const state = {\n disabled,\n active,\n orientation,\n tabActivationDirection\n };\n const element = useRenderElement('button', componentProps, {\n state,\n ref: [forwardedRef, buttonRef, compositeRef, observeTabElement],\n props: [compositeProps, {\n role: 'tab',\n 'aria-controls': tabPanelId,\n 'aria-selected': active,\n id,\n onClick,\n onFocus,\n onPointerDown,\n [ACTIVE_COMPOSITE_ITEM]: active ? '' : undefined,\n onKeyDownCapture() {\n isNavigatingRef.current = true;\n }\n }, elementProps, getButtonProps],\n stateAttributesMapping: tabsStateAttributesMapping\n });\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") TabsTab.displayName = \"TabsTab\";","export const ACTIVE_COMPOSITE_ITEM = 'data-composite-item-active';","'use client';\n\nimport * as React from 'react';\nimport { useMergedRefs } from '@base-ui/utils/useMergedRefs';\nimport { useCompositeRootContext } from \"../root/CompositeRootContext.mjs\";\nimport { useCompositeListItem } from \"../list/useCompositeListItem.mjs\";\nexport function useCompositeItem(params = {}) {\n const {\n highlightItemOnHover,\n highlightedIndex,\n onHighlightedIndexChange\n } = useCompositeRootContext();\n const {\n ref,\n index\n } = useCompositeListItem(params);\n const isHighlighted = highlightedIndex === index;\n const itemRef = React.useRef(null);\n const mergedRef = useMergedRefs(ref, itemRef);\n const compositeProps = {\n tabIndex: isHighlighted ? 0 : -1,\n onFocus() {\n onHighlightedIndexChange(index);\n },\n onMouseMove() {\n const item = itemRef.current;\n if (!highlightItemOnHover || !item) {\n return;\n }\n const disabled = item.hasAttribute('disabled') || item.ariaDisabled === 'true';\n if (!isHighlighted && !disabled) {\n item.focus();\n }\n }\n };\n return {\n compositeProps,\n compositeRef: mergedRef,\n index\n };\n}","'use client';\n\nimport _formatErrorMessage from \"@base-ui/utils/formatErrorMessage\";\nimport * as React from 'react';\nexport const TabsListContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") TabsListContext.displayName = \"TabsListContext\";\nexport function useTabsListContext() {\n const context = React.useContext(TabsListContext);\n if (context === undefined) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? 'Base UI: TabsListContext is missing. TabsList parts must be placed within <Tabs.List>.' : _formatErrorMessage(65));\n }\n return context;\n}","'use client';\n\nvar _PrehydrationScript;\nimport * as React from 'react';\nimport { getParentNode, isHTMLElement, isLastTraversableNode } from '@floating-ui/utils/dom';\nimport { useForcedRerendering } from '@base-ui/utils/useForcedRerendering';\nimport { ownerWindow } from '@base-ui/utils/owner';\nimport { script as prehydrationScript } from '#prehydration/tabs/indicator';\nimport { PrehydrationScript } from \"../../internals/PrehydrationScript.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { getCssDimensions } from \"../../utils/getCssDimensions.mjs\";\nimport { getElementTransform } from \"../../utils/getElementTransform.mjs\";\nimport { useTabsRootContext } from \"../root/TabsRootContext.mjs\";\nimport { tabsStateAttributesMapping } from \"../root/stateAttributesMapping.mjs\";\nimport { useTabsListContext } from \"../list/TabsListContext.mjs\";\nimport * as TabsIndicatorCssVars from \"./TabsIndicatorCssVars.mjs\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst stateAttributesMapping = {\n ...tabsStateAttributesMapping,\n activeTabPosition: () => null,\n activeTabSize: () => null\n};\n\n// `offsetLeft`/`offsetTop` are rounded to whole pixels and the error can compound\n// across the offset parent chain.\nconst MAX_LAYOUT_ROUNDING_ERROR = 2;\n\n/**\n * A visual indicator that can be styled to match the position of the currently active tab.\n * Renders a `<span>` element.\n *\n * Documentation: [Base UI Tabs](https://base-ui.com/react/components/tabs)\n */\nexport const TabsIndicator = /*#__PURE__*/React.forwardRef(function TabsIndicator(componentProps, forwardedRef) {\n const {\n className,\n render,\n renderBeforeHydration = false,\n style: styleProp,\n ...elementProps\n } = componentProps;\n const {\n getTabElementBySelectedValue,\n orientation,\n tabActivationDirection,\n value\n } = useTabsRootContext();\n const {\n tabsListElement,\n registerIndicatorUpdateListener\n } = useTabsListContext();\n const rerender = useForcedRerendering();\n React.useEffect(() => {\n return registerIndicatorUpdateListener(rerender);\n }, [registerIndicatorUpdateListener, rerender]);\n let left = 0;\n let right = 0;\n let top = 0;\n let bottom = 0;\n let width = 0;\n let height = 0;\n let isTabSelected = false;\n if (value != null && tabsListElement != null) {\n const activeTab = getTabElementBySelectedValue(value);\n if (activeTab != null) {\n isTabSelected = true;\n const {\n width: computedWidth,\n height: computedHeight\n } = getCssDimensions(activeTab);\n const {\n width: tabListWidth,\n height: tabListHeight\n } = getCssDimensions(tabsListElement);\n const tabRect = activeTab.getBoundingClientRect();\n const tabsListRect = tabsListElement.getBoundingClientRect();\n const scaleX = tabListWidth > 0 ? tabsListRect.width / tabListWidth : 1;\n const scaleY = tabListHeight > 0 ? tabsListRect.height / tabListHeight : 1;\n\n // Layout offsets are immune to transforms, but lose sub-pixel precision.\n const layoutOffset = getLayoutOffset(activeTab, tabsListElement);\n left = layoutOffset.left;\n top = layoutOffset.top;\n const rectLeft = (tabRect.left - tabsListRect.left) / scaleX + tabsListElement.scrollLeft - tabsListElement.clientLeft;\n const rectTop = (tabRect.top - tabsListRect.top) / scaleY + tabsListElement.scrollTop - tabsListElement.clientTop;\n\n // The rect-based offset is sub-pixel-precise but is derived from projected viewport\n // geometry: a rotation, skew, flip, perspective, or 3D transform on the tab or any\n // ancestor warps it beyond what the scale division can undo. When it agrees with the\n // layout offset (up to layout rounding), no distortion is in effect and the more\n // precise value is safe to use. A tab list scaled to zero divides by zero just above,\n // and the resulting `NaN`/`Infinity` fails this same check, leaving the layout offset\n // in place — so a degenerate scale needs no guard of its own.\n //\n // The active tab's own translation moves the rect but not the layout offset, so\n // strip it from the comparison. This lets the indicator follow tab-local animations\n // (e.g. `transform: translateX(12px)` on the selected tab) — the indicator is a\n // sibling of the tab and does not inherit its transform.\n const tabTranslation = getActiveTabTranslation(activeTab);\n if (Math.abs(rectLeft - tabTranslation.x - left) <= MAX_LAYOUT_ROUNDING_ERROR && Math.abs(rectTop - tabTranslation.y - top) <= MAX_LAYOUT_ROUNDING_ERROR) {\n left = rectLeft;\n top = rectTop;\n }\n width = computedWidth;\n height = computedHeight;\n right = tabsListElement.scrollWidth - left - width;\n bottom = tabsListElement.scrollHeight - top - height;\n }\n }\n const activeTabPosition = isTabSelected ? {\n left,\n right,\n top,\n bottom\n } : null;\n const activeTabSize = isTabSelected ? {\n width,\n height\n } : null;\n const style = isTabSelected ? {\n [TabsIndicatorCssVars.activeTabLeft]: `${left}px`,\n [TabsIndicatorCssVars.activeTabRight]: `${right}px`,\n [TabsIndicatorCssVars.activeTabTop]: `${top}px`,\n [TabsIndicatorCssVars.activeTabBottom]: `${bottom}px`,\n [TabsIndicatorCssVars.activeTabWidth]: `${width}px`,\n [TabsIndicatorCssVars.activeTabHeight]: `${height}px`\n } : undefined;\n const displayIndicator = isTabSelected && width > 0 && height > 0;\n const state = {\n orientation,\n activeTabPosition,\n activeTabSize,\n tabActivationDirection\n };\n const element = useRenderElement('span', componentProps, {\n state,\n ref: forwardedRef,\n props: [{\n role: 'presentation',\n style,\n hidden: !displayIndicator // do not display the indicator before the layout is settled\n }, elementProps, {\n suppressHydrationWarning: true\n }],\n stateAttributesMapping\n });\n if (value == null) {\n return null;\n }\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [element, renderBeforeHydration && (_PrehydrationScript || (_PrehydrationScript = /*#__PURE__*/_jsx(PrehydrationScript, {\n script: prehydrationScript\n })))]\n });\n});\nif (process.env.NODE_ENV !== \"production\") TabsIndicator.displayName = \"TabsIndicator\";\nfunction getLayoutOffset(element, ancestor) {\n const elementOffset = getCumulativeOffset(element);\n const ancestorOffset = getCumulativeOffset(ancestor);\n let left = elementOffset.left - ancestorOffset.left - ancestor.clientLeft;\n let top = elementOffset.top - ancestorOffset.top - ancestor.clientTop;\n\n // `offsetLeft`/`offsetTop` describe layout, and scrolling doesn't change layout: a scroll\n // container between the tab and the list moves the tab on screen while its layout slot stays\n // put. Subtract that scroll so this offset remains comparable with the rect-based one below —\n // otherwise the difference reads as transform distortion, the rect offset is rejected, and the\n // indicator is left behind by the full scroll amount. The list's own scroll is deliberately\n // excluded: the indicator sits inside it and scrolls along with the tab.\n //\n // `getParentNode` crosses shadow boundaries (and slots), so a tab inside a shadow root still\n // reaches the scroll containers between it and the list.\n let node = getParentNode(element);\n while (isHTMLElement(node) && node !== ancestor && !isLastTraversableNode(node)) {\n left -= node.scrollLeft;\n top -= node.scrollTop;\n node = getParentNode(node);\n }\n return {\n left,\n top\n };\n}\nfunction getCumulativeOffset(element) {\n let left = 0;\n let top = 0;\n let currentElement = element;\n while (currentElement != null) {\n left += currentElement.offsetLeft;\n top += currentElement.offsetTop;\n const offsetParent = currentElement.offsetParent;\n if (offsetParent != null) {\n left += offsetParent.clientLeft;\n top += offsetParent.clientTop;\n }\n currentElement = offsetParent;\n }\n return {\n left,\n top\n };\n}\n\n// Returns the active tab's own 2D translation, in CSS pixels: the translation component of\n// the computed `transform` matrix plus the `translate` longhand. CSS composes the two as\n// `translate → rotate → scale → transform`, so adding them is only exact when no rotation or\n// scale is in play. That is enough here: with either of those present the caller's agreement\n// check rejects the rect-based offset regardless of the translation, and the tab's layout\n// slot is used instead.\nfunction getActiveTabTranslation(element) {\n const computedStyle = ownerWindow(element).getComputedStyle(element);\n const {\n x,\n y\n } = getElementTransform(element, computedStyle);\n let translateX = x;\n let translateY = y;\n\n // The `translate` longhand is a separate property and is not reflected in the\n // computed `transform` matrix that `getElementTransform` reads. `getComputedStyle`\n // resolves absolute and font-relative lengths to pixels but keeps percentages, which\n // resolve against the tab's border box.\n const {\n translate\n } = computedStyle;\n if (translate && translate !== 'none') {\n const parts = translate.split(' ');\n translateX += resolveTranslateLength(parts[0], element.offsetWidth);\n translateY += resolveTranslateLength(parts[1], element.offsetHeight);\n }\n return {\n x: translateX,\n y: translateY\n };\n}\n\n// Resolves a single `translate` longhand component to pixels. Percentages resolve against\n// the given border-box size; anything that isn't a plain number or percentage (e.g.\n// `calc(...)`) is treated as no translation, so the indicator falls back to the tab's\n// layout slot rather than guessing.\nfunction resolveTranslateLength(value, referenceSize) {\n if (!value) {\n return 0;\n }\n const numeric = parseFloat(value);\n if (!Number.isFinite(numeric)) {\n return 0;\n }\n return value.endsWith('%') ? numeric / 100 * referenceSize : numeric;\n}","'use client';\n\nimport * as React from 'react';\n\n/**\n * Returns a function that forces a rerender.\n */\nexport function useForcedRerendering() {\n const [, setState] = React.useState({});\n return React.useCallback(() => {\n setState({});\n }, []);\n}","// This file is autogenerated. Do not edit it directly.\n// To update it, modify the corresponding source file and run `pnpm inline-scripts`.\n\n// prettier-ignore\nexport const script = '!function(){const t=document.currentScript.previousElementSibling;if(!t)return;const e=t.closest(\\'[role=\"tablist\"]\\');if(!e)return;const n=e.querySelector(\"[data-active]\");if(!n)return;const o=getComputedStyle(n);if(\"none\"!==o.transform||\"none\"!==o.translate||\"none\"!==o.rotate||\"none\"!==o.scale)return;function r(t){let e=0,n=0,o=t;for(;null!=o;){e+=o.offsetLeft,n+=o.offsetTop;const t=o.offsetParent;null!=t&&(e+=t.clientLeft,n+=t.clientTop),o=t}return{left:e,top:n}}function i(){const{width:o,height:i}=function(t){const e=getComputedStyle(t);let n=parseFloat(e.width)||0,o=parseFloat(e.height)||0;return(Math.round(n)!==t.offsetWidth||Math.round(o)!==t.offsetHeight)&&(n=t.offsetWidth,o=t.offsetHeight),{width:n,height:o}}(n),l=function(t,e){const n=r(t),o=r(e);let i=n.left-o.left-e.clientLeft,l=n.top-o.top-e.clientTop,s=t.parentElement;for(;null!=s&&s!==e;)i-=s.scrollLeft,l-=s.scrollTop,s=s.parentElement;return{left:i,top:l}}(n,e),s=Math.min(l.left,e.scrollWidth-o),f=Math.min(l.top,e.scrollHeight-i),c=e.scrollWidth-s-o,u=e.scrollHeight-f-i;function h(e,n){t.style.setProperty(`--active-tab-${e}`,`${n}px`)}return h(\"left\",s),h(\"right\",c),h(\"top\",f),h(\"bottom\",u),h(\"width\",o),h(\"height\",i),o>0&&i>0&&(t.removeAttribute(\"hidden\"),!0)}if(i()||\"undefined\"==typeof ResizeObserver)return;let l,s;function f(){s.disconnect(),clearTimeout(l)}s=new ResizeObserver(()=>{t.isConnected&&t.hasAttribute(\"hidden\")&&n.hasAttribute(\"data-active\")?i()&&f():f()}),s.observe(n),l=setTimeout(f,1e4)}();';","/**\n * Indicates the distance on the left side from the parent's container if the tab is active.\n * @type {number}\n */\nexport const activeTabLeft = '--active-tab-left';\n/**\n * Indicates the distance on the right side from the parent's container if the tab is active.\n * @type {number}\n */\nexport const activeTabRight = '--active-tab-right';\n/**\n * Indicates the distance on the top side from the parent's container if the tab is active.\n * @type {number}\n */\nexport const activeTabTop = '--active-tab-top';\n/**\n * Indicates the distance on the bottom side from the parent's container if the tab is active.\n * @type {number}\n */\nexport const activeTabBottom = '--active-tab-bottom';\n/**\n * Indicates the width of the tab if it is active.\n * @type {number}\n */\nexport const activeTabWidth = '--active-tab-width';\n/**\n * Indicates the height of the tab if it is active.\n * @type {number}\n */\nexport const activeTabHeight = '--active-tab-height';","'use client';\n\nimport * as React from 'react';\nimport { inertValue } from '@base-ui/utils/inertValue';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useBaseUiId } from \"../../internals/useBaseUiId.mjs\";\nimport { transitionStatusMapping } from \"../../internals/stateAttributesMapping.mjs\";\nimport { useOpenChangeComplete } from \"../../internals/useOpenChangeComplete.mjs\";\nimport { useTransitionStatus } from \"../../internals/useTransitionStatus.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useCompositeListItem } from \"../../internals/composite/list/useCompositeListItem.mjs\";\nimport { tabsStateAttributesMapping } from \"../root/stateAttributesMapping.mjs\";\nimport { useTabsRootContext } from \"../root/TabsRootContext.mjs\";\nimport * as TabsPanelDataAttributes from \"./TabsPanelDataAttributes.mjs\";\nconst stateAttributesMapping = {\n ...tabsStateAttributesMapping,\n ...transitionStatusMapping\n};\n\n/**\n * A panel displayed when the corresponding tab is active.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Tabs](https://base-ui.com/react/components/tabs)\n */\nexport const TabsPanel = /*#__PURE__*/React.forwardRef(function TabsPanel(componentProps, forwardedRef) {\n const {\n className,\n value,\n render,\n keepMounted = false,\n style,\n ...elementProps\n } = componentProps;\n const {\n value: selectedValue,\n getTabIdByPanelValue,\n orientation,\n tabActivationDirection,\n registerMountedTabPanel\n } = useTabsRootContext();\n const id = useBaseUiId();\n const {\n ref: listItemRef,\n index\n } = useCompositeListItem();\n const open = value === selectedValue;\n const {\n mounted,\n transitionStatus,\n setMounted\n } = useTransitionStatus(open);\n const hidden = !mounted;\n const correspondingTabId = getTabIdByPanelValue(value);\n const state = {\n hidden,\n orientation,\n tabActivationDirection,\n transitionStatus\n };\n const panelRef = React.useRef(null);\n const element = useRenderElement('div', componentProps, {\n state,\n ref: [forwardedRef, listItemRef, panelRef],\n props: [{\n 'aria-labelledby': correspondingTabId,\n hidden,\n id,\n role: 'tabpanel',\n tabIndex: open ? 0 : -1,\n inert: inertValue(!open),\n // Computed key: a plain literal key fails the DOM-props excess property check.\n [TabsPanelDataAttributes.index]: index\n }, elementProps],\n stateAttributesMapping\n });\n useOpenChangeComplete({\n open,\n ref: panelRef,\n onComplete() {\n if (!open) {\n setMounted(false);\n }\n }\n });\n useIsoLayoutEffect(() => {\n // On React 17 `useId` resolves in a passive effect, so `id` is still\n // undefined during this layout effect on the first commit. Skip the\n // registration until the effect re-runs with the resolved id.\n if (id == null || hidden && !keepMounted) {\n return undefined;\n }\n return registerMountedTabPanel(value, id);\n }, [hidden, keepMounted, value, id, registerMountedTabPanel]);\n const shouldRender = keepMounted || mounted;\n if (!shouldRender) {\n return null;\n }\n return element;\n});\nif (process.env.NODE_ENV !== \"production\") TabsPanel.displayName = \"TabsPanel\";","import { TransitionStatusDataAttributes } from \"../../internals/stateAttributesMapping.mjs\";\n\n/**\n * Indicates the index of the tab panel.\n */\nexport const index = 'data-index';\n/**\n * Indicates the direction of the activation (based on the previous active tab).\n * @type {'left' | 'right' | 'up' | 'down' | 'none'}\n */\nexport const activationDirection = 'data-activation-direction';\n/**\n * Indicates the orientation of the tabs.\n * @type {'horizontal' | 'vertical'}\n */\nexport const orientation = 'data-orientation';\n/**\n * Present when the panel is hidden.\n */\nexport const hidden = 'data-hidden';\n/**\n * Present when the panel begins animating in.\n */\nexport const startingStyle = TransitionStatusDataAttributes.startingStyle;\n/**\n * Present when the panel is animating out.\n */\nexport const endingStyle = TransitionStatusDataAttributes.endingStyle;","'use client';\n\nimport * as React from 'react';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { EMPTY_ARRAY } from '@base-ui/utils/empty';\nimport { CompositeRoot } from \"../../internals/composite/root/CompositeRoot.mjs\";\nimport { tabsStateAttributesMapping } from \"../root/stateAttributesMapping.mjs\";\nimport { useTabsRootContext } from \"../root/TabsRootContext.mjs\";\nimport { TabsListContext } from \"./TabsListContext.mjs\";\n\n/**\n * Groups the individual tab buttons.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Tabs](https://base-ui.com/react/components/tabs)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const TabsList = /*#__PURE__*/React.forwardRef(function TabsList(componentProps, forwardedRef) {\n const {\n activateOnFocus = false,\n className,\n loopFocus = true,\n render,\n style,\n ...elementProps\n } = componentProps;\n const {\n orientation,\n setTabMap,\n tabActivationDirection\n } = useTabsRootContext();\n const [highlightedTabIndex, setHighlightedTabIndex] = React.useState(0);\n const [tabsListElement, setTabsListElement] = React.useState(null);\n const indicatorUpdateListenersRef = React.useRef(new Set());\n const tabResizeObserverElementsRef = React.useRef(new Set());\n const resizeObserverRef = React.useRef(null);\n useIsoLayoutEffect(() => {\n if (typeof ResizeObserver === 'undefined') {\n return undefined;\n }\n const resizeObserver = new ResizeObserver(() => {\n indicatorUpdateListenersRef.current.forEach(listener => {\n listener();\n });\n });\n resizeObserverRef.current = resizeObserver;\n if (tabsListElement) {\n resizeObserver.observe(tabsListElement);\n }\n tabResizeObserverElementsRef.current.forEach(element => {\n resizeObserver.observe(element);\n });\n return () => {\n resizeObserver.disconnect();\n resizeObserverRef.current = null;\n };\n }, [tabsListElement]);\n const registerIndicatorUpdateListener = useStableCallback(listener => {\n indicatorUpdateListenersRef.current.add(listener);\n return () => {\n indicatorUpdateListenersRef.current.delete(listener);\n };\n });\n const registerTabResizeObserverElement = useStableCallback(element => {\n tabResizeObserverElementsRef.current.add(element);\n resizeObserverRef.current?.observe(element);\n return () => {\n tabResizeObserverElementsRef.current.delete(element);\n resizeObserverRef.current?.unobserve(element);\n };\n });\n const state = {\n orientation,\n tabActivationDirection\n };\n const defaultProps = {\n 'aria-orientation': orientation === 'vertical' ? 'vertical' : undefined,\n role: 'tablist'\n };\n const tabsListContextValue = React.useMemo(() => ({\n activateOnFocus,\n registerIndicatorUpdateListener,\n registerTabResizeObserverElement,\n tabsListElement\n }), [activateOnFocus, registerIndicatorUpdateListener, registerTabResizeObserverElement, tabsListElement]);\n return /*#__PURE__*/_jsx(TabsListContext.Provider, {\n value: tabsListContextValue,\n children: /*#__PURE__*/_jsx(CompositeRoot, {\n render: render,\n className: className,\n style: style,\n state: state,\n refs: [forwardedRef, setTabsListElement],\n props: [defaultProps, elementProps],\n stateAttributesMapping: tabsStateAttributesMapping,\n highlightedIndex: highlightedTabIndex,\n enableHomeAndEndKeys: true,\n loopFocus: loopFocus,\n orientation: orientation,\n onHighlightedIndexChange: setHighlightedTabIndex,\n onMapChange: setTabMap,\n disabledIndices: EMPTY_ARRAY\n })\n });\n});\nif (process.env.NODE_ENV !== \"production\") TabsList.displayName = \"TabsList\";","export function isElementDisabled(element) {\n return element == null || element.hasAttribute('disabled') || element.getAttribute('aria-disabled') === 'true';\n}","'use client';\n\nimport * as React from 'react';\nimport { isElementDisabled } from '@base-ui/utils/isElementDisabled';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useMergedRefs } from '@base-ui/utils/useMergedRefs';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { EMPTY_ARRAY } from '@base-ui/utils/empty';\nimport { COMPOSITE_KEYS, ARROW_DOWN, ARROW_LEFT, ARROW_RIGHT, ARROW_UP, END, HOME, MODIFIER_KEYS, findNonDisabledListIndex, getMaxListIndex, getMinListIndex, isListIndexDisabled, isIndexOutOfListBounds, isNativeInput, scrollIntoViewIfNeeded } from \"../composite.mjs\";\nimport { ACTIVE_COMPOSITE_ITEM } from \"../constants.mjs\";\nimport { getTarget } from \"../../../floating-ui-react/utils.mjs\";\nexport function useCompositeRoot(params) {\n const {\n loopFocus = true,\n orientation = 'both',\n grid,\n onLoop,\n direction,\n highlightedIndex: externalHighlightedIndex,\n onHighlightedIndexChange: externalSetHighlightedIndex,\n rootRef: externalRef,\n enableHomeAndEndKeys = false,\n stopEventPropagation,\n disabledIndices,\n modifierKeys = EMPTY_ARRAY\n } = params;\n const [internalHighlightedIndex, internalSetHighlightedIndex] = React.useState(0);\n const isGrid = grid != null;\n const rootRef = React.useRef(null);\n const mergedRef = useMergedRefs(rootRef, externalRef);\n const elementsRef = React.useRef([]);\n const hasSetDefaultIndexRef = React.useRef(false);\n const highlightedElementRef = React.useRef(null);\n const highlightedIndex = externalHighlightedIndex ?? internalHighlightedIndex;\n const onHighlightedIndexChange = useStableCallback((index, shouldScrollIntoView = false) => {\n highlightedElementRef.current = elementsRef.current[index] ?? null;\n (externalSetHighlightedIndex ?? internalSetHighlightedIndex)(index);\n if (shouldScrollIntoView) {\n const newActiveItem = elementsRef.current[index];\n scrollIntoViewIfNeeded(rootRef.current, newActiveItem, direction, orientation);\n }\n });\n const onMapChange = useStableCallback(map => {\n if (map.size === 0) {\n return;\n }\n if (hasSetDefaultIndexRef.current) {\n const elements = elementsRef.current;\n // Items added or removed around the highlighted one shift its index, so the tab stop would\n // otherwise move to a different item and navigation would resume from the wrong position.\n const nextIndex = elements.indexOf(highlightedElementRef.current);\n if (nextIndex === -1) {\n // A replacement at the same index can keep the tab stop. Otherwise move it to an\n // eligible item so a missing, hidden, or disabled replacement does not take the\n // composite out of the tab order.\n const replacement = elements[highlightedIndex];\n if (!replacement || isListIndexDisabled(elements, highlightedIndex, disabledIndices)) {\n onHighlightedIndexChange(getFallbackIndex(elements, disabledIndices));\n } else {\n highlightedElementRef.current = replacement;\n }\n } else if (nextIndex !== highlightedIndex) {\n onHighlightedIndexChange(nextIndex);\n }\n return;\n }\n hasSetDefaultIndexRef.current = true;\n const sortedElements = Array.from(map.keys());\n const activeItem = sortedElements.find(compositeElement => compositeElement?.hasAttribute(ACTIVE_COMPOSITE_ITEM)) ?? null;\n // Set the default highlighted index of an arbitrary composite item. The map value carries\n // the item's own index, which is not its position among the keys once a list mixes explicit\n // and automatic indexes and leaves gaps.\n const activeIndex = activeItem ? map.get(activeItem)?.index ?? -1 : -1;\n if (activeIndex !== -1) {\n onHighlightedIndexChange(activeIndex);\n } else if (isListIndexDisabled(sortedElements, highlightedIndex, disabledIndices)) {\n // The default highlighted item is disabled, so it should not hold the single\n // roving tab stop: a natively disabled element is removed from the tab order,\n // and an aria-disabled one should not be the entry point. Move the tab stop\n // to the first enabled item. If every item is disabled, keep the current\n // highlighted index.\n const firstEnabledIndex = findNonDisabledListIndex(sortedElements, {\n disabledIndices\n });\n if (!isIndexOutOfListBounds(sortedElements, firstEnabledIndex)) {\n onHighlightedIndexChange(firstEnabledIndex);\n }\n }\n scrollIntoViewIfNeeded(rootRef.current, activeItem, direction, orientation);\n });\n useIsoLayoutEffect(() => {\n // `disabledIndices` can resolve a render after the initial map population\n // (e.g. Toolbar derives it from item metadata through a state update), so the\n // default tab stop at index 0 may now point at a disabled item, leaving the\n // composite without a reachable tab stop. Re-validate and move it to the first\n // enabled item. Gated on `disabledIndices` being provided so composites that\n // rely on the DOM disabled fallback keep their existing behavior.\n if (disabledIndices == null || externalHighlightedIndex != null || !hasSetDefaultIndexRef.current) {\n return;\n }\n const elements = elementsRef.current;\n if (isListIndexDisabled(elements, highlightedIndex, disabledIndices)) {\n const firstEnabledIndex = findNonDisabledListIndex(elements, {\n disabledIndices\n });\n if (!isIndexOutOfListBounds(elements, firstEnabledIndex)) {\n onHighlightedIndexChange(firstEnabledIndex);\n }\n }\n }, [disabledIndices, externalHighlightedIndex, highlightedIndex, elementsRef, onHighlightedIndexChange]);\n const wrappedOnLoop = useStableCallback((event, prevIndex, nextIndex) => {\n if (!onLoop) {\n return nextIndex;\n }\n return onLoop(event, prevIndex, nextIndex, elementsRef);\n });\n\n // Stable so that `relayKeyboardEvent` does not invalidate identity-sensitive\n // consumers (the `CompositeRootContext` value and trigger data forwarding).\n const onKeyDown = useStableCallback(event => {\n const isHomeOrEnd = event.key === HOME || event.key === END;\n if (!COMPOSITE_KEYS.has(event.key) || !enableHomeAndEndKeys && isHomeOrEnd) {\n return;\n }\n if (isModifierKeySet(event, modifierKeys)) {\n return;\n }\n const element = rootRef.current;\n if (!element) {\n return;\n }\n const isRtl = direction === 'rtl';\n const horizontalForwardKey = isRtl ? ARROW_LEFT : ARROW_RIGHT;\n const horizontalBackwardKey = isRtl ? ARROW_RIGHT : ARROW_LEFT;\n const forwardKey = orientation === 'vertical' ? ARROW_DOWN : horizontalForwardKey;\n const backwardKey = orientation === 'vertical' ? ARROW_UP : horizontalBackwardKey;\n const target = getTarget(event.nativeEvent);\n if (target != null && isNativeInput(target) && !isElementDisabled(target)) {\n const selectionStart = target.selectionStart;\n const selectionEnd = target.selectionEnd;\n const textContent = target.value;\n // return to native textbox behavior when\n // 1 - Shift is held to make a text selection, or if there already is a text selection\n if (selectionStart == null || event.shiftKey || selectionStart !== selectionEnd) {\n return;\n }\n // 2 - arrow-ing forward and not in the last position of the text\n if (event.key !== backwardKey && selectionStart < textContent.length) {\n return;\n }\n // 3 -arrow-ing backward and not in the first position of the text\n if (event.key !== forwardKey && selectionStart > 0) {\n return;\n }\n }\n let nextIndex = highlightedIndex;\n const minIndex = getMinListIndex(elementsRef, disabledIndices);\n const maxIndex = getMaxListIndex(elementsRef, disabledIndices);\n if (grid != null) {\n nextIndex = grid({\n disabledIndices,\n elementsRef,\n event,\n highlightedIndex,\n loopFocus,\n maxIndex,\n minIndex,\n onLoop: wrappedOnLoop,\n orientation,\n rtl: isRtl\n });\n }\n const isForwardKey = orientation !== 'vertical' && event.key === horizontalForwardKey || orientation !== 'horizontal' && event.key === ARROW_DOWN;\n const isBackwardKey = orientation !== 'vertical' && event.key === horizontalBackwardKey || orientation !== 'horizontal' && event.key === ARROW_UP;\n if (enableHomeAndEndKeys) {\n if (event.key === HOME) {\n nextIndex = minIndex;\n } else if (event.key === END) {\n nextIndex = maxIndex;\n }\n }\n if (nextIndex === highlightedIndex && (isForwardKey || isBackwardKey)) {\n if (loopFocus && nextIndex === maxIndex && isForwardKey) {\n nextIndex = minIndex;\n if (onLoop) {\n nextIndex = onLoop(event, highlightedIndex, nextIndex, elementsRef);\n }\n } else if (loopFocus && nextIndex === minIndex && isBackwardKey) {\n nextIndex = maxIndex;\n if (onLoop) {\n nextIndex = onLoop(event, highlightedIndex, nextIndex, elementsRef);\n }\n } else {\n nextIndex = findNonDisabledListIndex(elementsRef.current, {\n startingIndex: nextIndex,\n decrement: isBackwardKey,\n disabledIndices\n });\n }\n }\n if (nextIndex !== highlightedIndex && !isIndexOutOfListBounds(elementsRef.current, nextIndex)) {\n if (stopEventPropagation) {\n event.stopPropagation();\n }\n if (isGrid || isHomeOrEnd || isForwardKey || isBackwardKey) {\n event.preventDefault();\n }\n onHighlightedIndexChange(nextIndex, true);\n\n // Wait for FocusManager `returnFocus` to execute.\n queueMicrotask(() => {\n elementsRef.current[nextIndex]?.focus();\n });\n }\n });\n const props = {\n ref: mergedRef,\n onFocus(event) {\n const element = rootRef.current;\n const target = getTarget(event.nativeEvent);\n if (!element || target == null || !isNativeInput(target)) {\n return;\n }\n target.setSelectionRange(0, target.value.length);\n },\n onKeyDown\n };\n return {\n props,\n highlightedIndex,\n onHighlightedIndexChange,\n elementsRef,\n onMapChange,\n relayKeyboardEvent: onKeyDown\n };\n}\n\n// Resolves the item that should hold the tab stop: the active item when it can take focus,\n// otherwise the first item that can. Falls back to index 0 so an all-disabled composite keeps the\n// index in range and regains a tab stop as soon as one of its items becomes focusable.\nfunction getFallbackIndex(elements, disabledIndices) {\n let fallbackIndex = -1;\n for (let index = 0; index < elements.length; index += 1) {\n const element = elements[index];\n if (!element || isListIndexDisabled(elements, index, disabledIndices)) {\n continue;\n }\n if (element.hasAttribute(ACTIVE_COMPOSITE_ITEM)) {\n return index;\n }\n if (fallbackIndex === -1) {\n fallbackIndex = index;\n }\n }\n return Math.max(fallbackIndex, 0);\n}\nfunction isModifierKeySet(event, ignoredModifierKeys) {\n for (const key of MODIFIER_KEYS) {\n if (ignoredModifierKeys.includes(key)) {\n continue;\n }\n if (event.getModifierState(key)) {\n return true;\n }\n }\n return false;\n}","'use client';\n\nimport * as React from 'react';\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from '@base-ui/utils/empty';\nimport { CompositeList } from \"../list/CompositeList.mjs\";\nimport { useCompositeRoot } from \"./useCompositeRoot.mjs\";\nimport { CompositeRootContext } from \"./CompositeRootContext.mjs\";\nimport { useRenderElement } from \"../../useRenderElement.mjs\";\nimport { useDirection } from \"../../direction-context/DirectionContext.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function CompositeRoot(componentProps) {\n const {\n render,\n className,\n style,\n refs = EMPTY_ARRAY,\n props = EMPTY_ARRAY,\n state = EMPTY_OBJECT,\n stateAttributesMapping,\n highlightedIndex: highlightedIndexProp,\n onHighlightedIndexChange: onHighlightedIndexChangeProp,\n orientation,\n grid,\n loopFocus,\n onLoop,\n enableHomeAndEndKeys,\n onMapChange: onMapChangeProp,\n stopEventPropagation = true,\n rootRef,\n disabledIndices,\n modifierKeys,\n highlightItemOnHover = false,\n tag = 'div',\n ...elementProps\n } = componentProps;\n const direction = useDirection();\n const {\n props: defaultProps,\n highlightedIndex,\n onHighlightedIndexChange,\n elementsRef,\n onMapChange: onMapChangeUnwrapped,\n relayKeyboardEvent\n } = useCompositeRoot({\n grid,\n loopFocus,\n onLoop,\n orientation,\n highlightedIndex: highlightedIndexProp,\n onHighlightedIndexChange: onHighlightedIndexChangeProp,\n rootRef,\n stopEventPropagation,\n enableHomeAndEndKeys,\n direction,\n disabledIndices,\n modifierKeys\n });\n const element = useRenderElement(tag, componentProps, {\n state,\n ref: refs,\n props: [defaultProps, ...props, elementProps],\n stateAttributesMapping\n });\n const contextValue = React.useMemo(() => ({\n highlightedIndex,\n onHighlightedIndexChange,\n highlightItemOnHover,\n relayKeyboardEvent\n }), [highlightedIndex, onHighlightedIndexChange, highlightItemOnHover, relayKeyboardEvent]);\n return /*#__PURE__*/_jsx(CompositeRootContext.Provider, {\n value: contextValue,\n children: /*#__PURE__*/_jsx(CompositeList, {\n elementsRef: elementsRef,\n onMapChange: newMap => {\n onMapChangeProp?.(newMap);\n onMapChangeUnwrapped(newMap);\n },\n children: element\n })\n });\n}","\"use client\"\n\nimport { Tabs as TabsPrimitive } from \"@base-ui/react/tabs\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"cn\"\n\nfunction Tabs({\n className,\n orientation = \"horizontal\",\n ...props\n}: TabsPrimitive.Root.Props) {\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n data-orientation={orientation}\n className={cn(\n \"group/tabs flex gap-2 data-horizontal:flex-col\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst tabsListVariants = cva(\n \"group/tabs-list inline-flex w-fit items-center justify-center rounded-lg p-[3px] text-muted-foreground group-data-horizontal/tabs:h-8 group-data-vertical/tabs:h-fit group-data-vertical/tabs:flex-col data-[variant=line]:rounded-none\",\n {\n variants: {\n variant: {\n default: \"bg-muted\",\n line: \"gap-1 bg-transparent\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction TabsList({\n className,\n variant = \"default\",\n ...props\n}: TabsPrimitive.List.Props & VariantProps<typeof tabsListVariants>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n data-variant={variant}\n className={cn(tabsListVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nfunction TabsTrigger({ className, ...props }: TabsPrimitive.Tab.Props) {\n return (\n <TabsPrimitive.Tab\n data-slot=\"tabs-trigger\"\n className={cn(\n \"relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-1.5 py-0.5 text-sm font-medium whitespace-nowrap text-foreground/60 transition-all group-data-vertical/tabs:w-full group-data-vertical/tabs:justify-start hover:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 focus-visible:outline-ring disabled:pointer-events-none disabled:opacity-50 has-data-[icon=inline-end]:pr-1 has-data-[icon=inline-start]:pl-1 aria-disabled:pointer-events-none aria-disabled:opacity-50 dark:text-muted-foreground dark:hover:text-foreground group-data-[variant=default]/tabs-list:data-active:shadow-sm group-data-[variant=line]/tabs-list:data-active:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n \"group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent\",\n \"data-active:bg-background data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 dark:data-active:text-foreground\",\n \"after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TabsContent({ className, ...props }: TabsPrimitive.Panel.Props) {\n return (\n <TabsPrimitive.Panel\n data-slot=\"tabs-content\"\n className={cn(\"flex-1 text-sm outline-none\", className)}\n {...props}\n />\n )\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants }\n","/* eslint-disable no-bitwise */\n'use client';\n\nimport * as React from 'react';\nimport { useRefWithInit } from '@base-ui/utils/useRefWithInit';\nimport { useStableCallback } from '@base-ui/utils/useStableCallback';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { CompositeListContext } from \"./CompositeListContext.mjs\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Provides context for a list of items in a composite component.\n */\nexport function CompositeList(props) {\n const {\n children,\n elementsRef,\n labelsRef,\n onMapChange: onMapChangeProp\n } = props;\n const onMapChange = useStableCallback(onMapChangeProp);\n const [, setMapTick] = React.useState(false);\n const listeners = useRefWithInit(createListeners).current;\n const map = useRefWithInit(createMap).current;\n const nextIndexRef = React.useRef(0);\n const isDirtyRef = React.useRef(true);\n const itemsRef = React.useRef(null);\n const mutationObserverRef = React.useRef(null);\n\n // Item effects can run without their parent rendering. Schedule one synchronous\n // parent update for the whole commit so refs are rebuilt before paint and while\n // the originating React event is still inside `act()` in tests.\n const scheduleMapUpdate = useStableCallback(() => {\n if (isDirtyRef.current) {\n return;\n }\n isDirtyRef.current = true;\n setMapTick(tick => !tick);\n });\n const register = useStableCallback((node, registration) => {\n map.set(node, registration);\n scheduleMapUpdate();\n });\n const unregister = useStableCallback(node => {\n map.delete(node);\n scheduleMapUpdate();\n });\n const syncRefs = useStableCallback(items => {\n const nextMap = new Map();\n elementsRef.current.length = 0;\n if (labelsRef) {\n labelsRef.current.length = 0;\n }\n items.forEach(item => {\n nextMap.set(item.element, {\n ...(item.registration.metadata ?? {}),\n index: item.index\n });\n elementsRef.current[item.index] = item.element;\n if (labelsRef) {\n labelsRef.current[item.index] = item.registration.label !== undefined ? item.registration.label : item.registration.textRef?.current?.textContent ?? item.element.textContent;\n }\n });\n nextIndexRef.current = elementsRef.current.length;\n return nextMap;\n });\n function observe(sortedNodes) {\n mutationObserverRef.current?.disconnect();\n mutationObserverRef.current = null;\n\n // A single item can't reorder.\n if (typeof MutationObserver !== 'function' || sortedNodes.length < 2) {\n return;\n }\n const mutationObserver = new MutationObserver(entries => {\n // Only verify the order after a move: a node that was removed and later\n // re-added within the same batch. Additions and removals alone can't\n // change the relative order of the remaining items, and items that mount\n // or unmount re-sort through `register`/`unregister`.\n if (!hasMovedNode(entries)) {\n return;\n }\n let previousConnectedNode = null;\n\n // If any connected node now appears before the previous connected node,\n // wrappers/items moved and the index map needs to be rebuilt.\n for (const node of sortedNodes) {\n if (!node.isConnected) {\n continue;\n }\n if (previousConnectedNode && sortByDocumentPosition(previousConnectedNode, node) > 0) {\n mutationObserver.disconnect();\n scheduleMapUpdate();\n return;\n }\n previousConnectedNode = node;\n }\n });\n mutationObserverRef.current = mutationObserver;\n\n // A reorder that changes item indexes must invert at least one adjacent pair\n // from the previous sorted order. Observing each pair's common parent catches\n // both direct item moves and ancestor wrapper moves at the boundary.\n const roots = new Set();\n for (let i = 1; i < sortedNodes.length; i += 1) {\n const root = getCommonAncestor(sortedNodes[i - 1], sortedNodes[i]);\n if (root) {\n roots.add(root);\n }\n }\n roots.forEach(root => mutationObserver.observe(root, {\n childList: true\n }));\n }\n const flush = useStableCallback(() => {\n const [items, automaticNodes] = getCompositeListSnapshot(map);\n const nextMap = syncRefs(items);\n const previousItems = itemsRef.current;\n const changed = !previousItems || previousItems.length !== items.length || items.some((item, index) => {\n const previousItem = previousItems[index];\n return item.index !== previousItem.index || item.element !== previousItem.element || item.registration.index !== previousItem.registration.index || item.registration.metadata !== previousItem.registration.metadata;\n });\n observe(automaticNodes);\n itemsRef.current = items;\n isDirtyRef.current = false;\n if (!changed) {\n return;\n }\n listeners.forEach(listener => listener(nextMap));\n onMapChange(nextMap);\n });\n useIsoLayoutEffect(() => {\n // Re-copy the last committed snapshot when the ref objects change or Strict Mode replays\n // effects without reattaching callback refs.\n if (!isDirtyRef.current && itemsRef.current) {\n syncRefs(itemsRef.current);\n }\n return () => {\n elementsRef.current = [];\n if (labelsRef) {\n labelsRef.current = [];\n }\n };\n }, [elementsRef, labelsRef, syncRefs]);\n useIsoLayoutEffect(() => {\n if (isDirtyRef.current) {\n flush();\n }\n });\n useIsoLayoutEffect(() => {\n return () => {\n mutationObserverRef.current?.disconnect();\n // React 18 Strict Mode replays effects without replaying callback refs.\n // Mark the retained map dirty so the replay rebuilds refs and observation.\n isDirtyRef.current = true;\n };\n }, []);\n const subscribeMapChange = useStableCallback(fn => {\n listeners.add(fn);\n return () => {\n listeners.delete(fn);\n };\n });\n const contextValue = React.useMemo(() => ({\n register,\n unregister,\n subscribeMapChange,\n nextIndexRef\n }), [register, unregister, subscribeMapChange, nextIndexRef]);\n return /*#__PURE__*/_jsx(CompositeListContext.Provider, {\n value: contextValue,\n children: children\n });\n}\nfunction createMap() {\n return new Map();\n}\nfunction createListeners() {\n return new Set();\n}\nfunction getCompositeListSnapshot(map) {\n const reservedIndices = new Set();\n const items = [];\n const automaticItems = [];\n map.forEach((registration, node) => {\n if (!node.isConnected) {\n return;\n }\n const index = registration.index;\n const item = {\n index: index ?? -1,\n element: node,\n registration\n };\n if (index === null) {\n automaticItems.push(item);\n } else if (index >= 0) {\n reservedIndices.add(index);\n items.push(item);\n }\n });\n let nextAutomaticIndex = 0;\n automaticItems.sort((a, b) => sortByDocumentPosition(a.element, b.element));\n automaticItems.forEach(item => {\n while (reservedIndices.has(nextAutomaticIndex)) {\n nextAutomaticIndex += 1;\n }\n item.index = nextAutomaticIndex;\n items.push(item);\n nextAutomaticIndex += 1;\n });\n if (reservedIndices.size > 0) {\n items.sort((a, b) => a.index - b.index);\n }\n return [items, automaticItems.map(item => item.element)];\n}\nfunction getCommonAncestor(firstNode, lastNode) {\n let ancestor = firstNode.parentElement;\n\n // The `parentElement` walk cannot cross shadow boundaries, so the native\n // `contains` is sufficient here.\n while (ancestor && !ancestor.contains(lastNode)) {\n ancestor = ancestor.parentElement;\n }\n return ancestor;\n}\nfunction hasMovedNode(entries) {\n for (const entry of entries) {\n for (let i = 0; i < entry.removedNodes.length; i += 1) {\n if (entry.removedNodes[i].isConnected) {\n return true;\n }\n }\n }\n return false;\n}\nfunction sortByDocumentPosition(a, b) {\n // `DOCUMENT_POSITION_CONTAINED_BY` is always reported alongside `FOLLOWING`, and `CONTAINS`\n // alongside `PRECEDING`, so testing `FOLLOWING` alone orders siblings and nested items alike.\n return a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1;\n}","'use client';\n\nimport * as React from 'react';\nexport const CompositeListContext = /*#__PURE__*/React.createContext({\n register: () => {},\n unregister: () => {},\n subscribeMapChange: () => () => {},\n nextIndexRef: {\n current: 0\n }\n});\nif (process.env.NODE_ENV !== \"production\") CompositeListContext.displayName = \"CompositeListContext\";\nexport function useCompositeListContext() {\n return React.useContext(CompositeListContext);\n}","'use client';\n\nimport * as React from 'react';\nimport { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';\nimport { useCompositeListContext } from \"./CompositeListContext.mjs\";\n/**\n * Used to register a list item and its index (DOM position) in the `CompositeList`.\n */\nexport function useCompositeListItem(params = {}) {\n const {\n guess,\n label,\n metadata,\n textRef,\n index: externalIndex\n } = params;\n const {\n register,\n unregister,\n subscribeMapChange,\n nextIndexRef\n } = useCompositeListContext();\n\n // Guess the index from the render order. This avoids a re-render after mount for\n // flat lists rendered in DOM order; when the guess is wrong (grouped or out-of-order\n // rendering), the commit flush corrects it before paint.\n const indexRef = React.useRef(-1);\n const [internalIndex, setInternalIndex] = React.useState(externalIndex == null && guess ? () => {\n if (indexRef.current === -1) {\n const newIndex = nextIndexRef.current;\n nextIndexRef.current += 1;\n indexRef.current = newIndex;\n }\n return indexRef.current;\n } : -1);\n const index = externalIndex ?? internalIndex;\n const componentRef = React.useRef(null);\n\n // Deliberately identity-sensitive: nested items sharing one DOM node rely on ref attachment\n // order to decide which registration wins, and republishing from an effect instead would let\n // an inner item's later update silently take ownership from the outer one.\n const ref = React.useCallback(node => {\n const previousNode = componentRef.current;\n if (previousNode) {\n unregister(previousNode);\n }\n componentRef.current = node;\n if (node) {\n register(node, {\n metadata: metadata ?? null,\n index: externalIndex ?? null,\n label,\n textRef\n });\n }\n }, [externalIndex, register, unregister, metadata, label, textRef]);\n useIsoLayoutEffect(() => {\n if (externalIndex != null) {\n return undefined;\n }\n return subscribeMapChange(map => {\n const i = componentRef.current ? map.get(componentRef.current)?.index : null;\n if (i != null) {\n setInternalIndex(i);\n }\n });\n }, [externalIndex, subscribeMapChange]);\n return {\n ref,\n index\n };\n}","import { useSyncExternalStore } from 'use-sync-external-store/shim';\nimport { NOOP } from \"../internals/noop.mjs\";\nfunction subscribe() {\n return NOOP;\n}\nfunction getSnapshot() {\n return false;\n}\nfunction getServerSnapshot() {\n return true;\n}\n\n/**\n * Returns `true` while React is hydrating server-rendered markup and `false`\n * for fresh client-only mounts.\n */\nexport function useIsHydrating() {\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n}","'use client';\n\nimport * as React from 'react';\nexport const CSPContext = /*#__PURE__*/React.createContext(undefined);\nif (process.env.NODE_ENV !== \"production\") CSPContext.displayName = \"CSPContext\";\nconst DEFAULT_CSP_CONTEXT_VALUE = {\n disableStyleElements: false\n};\nexport function useCSPContext() {\n return React.useContext(CSPContext) ?? DEFAULT_CSP_CONTEXT_VALUE;\n}","'use client';\n\nimport * as React from 'react';\nimport { useIsHydrating } from \"../utils/useIsHydrating.mjs\";\nimport { useCSPContext } from \"./csp-context/CSPContext.mjs\";\n\n/**\n * Renders an inline script that runs before React hydrates, used by components that need\n * to position server-rendered content ahead of hydration (e.g. `Tabs.Indicator`,\n * `Slider.Thumb`).\n *\n * The `script` source is imported by the caller through the package's `#prehydration/*`\n * subpath import, whose `browser` condition resolves to a stub module exporting an empty\n * string — so the script body is excluded from client bundles. It only ever executes from\n * server-rendered HTML.\n *\n * Render this only when the script should be emitted (i.e. gate `renderBeforeHydration`\n * and any structural conditions at the call site). The element is still rendered (with\n * empty content) on the client during the hydration pass so the React tree matches the\n * server markup; `suppressHydrationWarning` bridges the content difference and React keeps\n * the already-executed server script. Once `isHydrating` flips to `false` the element\n * unmounts.\n *\n * The component must stay in client bundles: returning `null` on the client (e.g. by\n * stubbing the whole component) would drop an element the server emitted and trigger a\n * recoverable hydration error (React #418) in consumers' apps. Only the script body is\n * excluded from client bundles, via the `#prehydration/*` `browser` condition.\n *\n * When adding a new consumer, register a matching `#prehydration/*` entry (with `browser`\n * and `default` conditions) in `packages/react/package.json` `imports`; the `browser`\n * condition reuses the shared `internals/prehydrationScript.stub.ts`.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function PrehydrationScript(props) {\n const {\n script\n } = props;\n const {\n nonce\n } = useCSPContext();\n const isHydrating = useIsHydrating();\n if (!isHydrating) {\n return null;\n }\n return /*#__PURE__*/_jsx(\"script\", {\n nonce: nonce\n // eslint-disable-next-line react/no-danger\n ,\n dangerouslySetInnerHTML: {\n __html: script\n },\n suppressHydrationWarning: true\n });\n}"],"names":["name","d","key","cy","Label","className","props","CompositeListContext","register","unregister","subscribeMapChange","nextIndexRef","current","useCompositeListContext"],"mappings":"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","ignoreList":[1,2,4,5,6,7,8,9,12,13,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,59,60,61,62,63,64]}