okengine 0.11.2 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1261) hide show
  1. package/manifest.v1.schema.json +1 -1
  2. package/package.json +57 -3
  3. package/site/content/docs/ai/index.mdx +2 -2
  4. package/site/content/docs/ai/llms-txt.mdx +21 -16
  5. package/site/content/docs/ai/mcp.mdx +1 -1
  6. package/site/content/docs/ai/skills.mdx +16 -14
  7. package/site/content/docs/deployment/docker-swarm.mdx +7 -8
  8. package/site/content/docs/deployment/docker.mdx +20 -12
  9. package/site/content/docs/deployment/index.mdx +2 -2
  10. package/site/content/docs/deployment/kubernetes.mdx +2 -2
  11. package/site/content/docs/deployment/reverse-proxy.mdx +39 -21
  12. package/site/content/docs/elements/ai.mdx +25 -15
  13. package/site/content/docs/elements/channel.mdx +2 -2
  14. package/site/content/docs/elements/clock.mdx +11 -1
  15. package/site/content/docs/elements/flow.mdx +66 -16
  16. package/site/content/docs/elements/gate.mdx +47 -39
  17. package/site/content/docs/elements/signal.mdx +2 -2
  18. package/site/content/docs/elements/store.mdx +191 -48
  19. package/site/content/docs/elements/vault.mdx +126 -41
  20. package/site/content/docs/get-started/basic-usage.mdx +14 -6
  21. package/site/content/docs/get-started/installation.mdx +24 -16
  22. package/site/content/docs/plugins/cors.mdx +9 -9
  23. package/site/content/docs/plugins/csrf.mdx +1 -1
  24. package/site/content/docs/providers/cockroachdb.mdx +13 -0
  25. package/site/content/docs/providers/neon.mdx +22 -0
  26. package/site/content/docs/providers/supabase.mdx +17 -0
  27. package/site/content/docs/providers/yugabytedb.mdx +15 -0
  28. package/site/content/docs/recipes/caddy.mdx +3 -3
  29. package/site/content/docs/recipes/cockroachdb.mdx +8 -2
  30. package/site/content/docs/recipes/index.mdx +6 -1
  31. package/site/content/docs/recipes/llama-cpp.mdx +5 -6
  32. package/site/content/docs/recipes/mailpit.mdx +3 -3
  33. package/site/content/docs/recipes/meilisearch.mdx +4 -4
  34. package/site/content/docs/recipes/meta.json +1 -0
  35. package/site/content/docs/recipes/nginx.mdx +117 -0
  36. package/site/content/docs/recipes/ollama.mdx +3 -3
  37. package/site/content/docs/recipes/pgdog.mdx +1 -1
  38. package/site/content/docs/recipes/postgres.mdx +44 -8
  39. package/site/content/docs/recipes/redis.mdx +7 -2
  40. package/site/content/docs/recipes/rustfs.mdx +4 -4
  41. package/site/content/docs/recipes/sglang.mdx +2 -2
  42. package/site/content/docs/recipes/supabase-docker.mdx +24 -0
  43. package/site/content/docs/recipes/timescale.mdx +30 -6
  44. package/site/content/docs/recipes/traefik.mdx +10 -7
  45. package/site/content/docs/recipes/vllm.mdx +2 -2
  46. package/site/content/docs/recipes/yugabytedb.mdx +7 -1
  47. package/site/content/docs/reference/cli.md +67 -34
  48. package/site/content/docs/reference/client.mdx +39 -20
  49. package/site/content/docs/reference/configuration.mdx +31 -24
  50. package/site/content/docs/reference/environment-variables.mdx +23 -20
  51. package/site/content/docs/reference/errors.mdx +25 -20
  52. package/site/content/docs/reference/fx.mdx +19 -12
  53. package/site/content/docs/reference/plugins.mdx +2 -2
  54. package/site/content/docs/reference/security.md +16 -7
  55. package/src/auth/auth.test.ts +2 -2
  56. package/src/auth/bindings.ts +5 -5
  57. package/src/auth/config.ts +8 -0
  58. package/src/auth/gate-auth.test.ts +5 -5
  59. package/src/auth/index.ts +3 -0
  60. package/src/auth/operator.ts +1 -1
  61. package/src/auth/password-policy.test.ts +142 -5
  62. package/src/auth/password-policy.ts +128 -12
  63. package/src/auth/plugin.ts +2 -2
  64. package/src/cli/ai-setup/ai-setup.test.ts +1 -1
  65. package/src/cli/ai-setup/apply.ts +3 -18
  66. package/src/cli/ai-setup/index.ts +4 -4
  67. package/src/cli/ai-setup/prompts.ts +1 -1
  68. package/src/cli/ask-seed.test.ts +27 -0
  69. package/src/cli/ask-seed.ts +11 -7
  70. package/src/cli/attach-host-console.test.ts +134 -0
  71. package/src/cli/attach-host-console.ts +100 -0
  72. package/src/cli/console-cmd.test.ts +81 -0
  73. package/src/cli/console-cmd.ts +107 -0
  74. package/src/cli/db-seed.ts +14 -3
  75. package/src/cli/db.test.ts +37 -2
  76. package/src/cli/db.ts +26 -0
  77. package/src/cli/dev-app-runner.ts +6 -40
  78. package/src/cli/dev-console-vite.test.ts +86 -0
  79. package/src/cli/dev-console-vite.ts +164 -0
  80. package/src/cli/dev-schema-sync.ts +2 -2
  81. package/src/cli/dev.test.ts +78 -2
  82. package/src/cli/dev.ts +170 -56
  83. package/src/cli/docker-cli.test.ts +2 -2
  84. package/src/cli/docker.ts +1 -1
  85. package/src/cli/doctor.ts +2 -1
  86. package/src/cli/drizzle-env.test.ts +4 -9
  87. package/src/cli/drizzle-env.ts +2 -2
  88. package/src/cli/hero-meta.test.ts +37 -0
  89. package/src/cli/hero-meta.ts +30 -9
  90. package/src/cli/index.ts +5 -0
  91. package/src/cli/load-config.images.test.ts +12 -12
  92. package/src/cli/load-config.ts +1 -1
  93. package/src/cli/project-state.test.ts +6 -2
  94. package/src/cli/project-state.ts +27 -11
  95. package/src/cli/registry.ts +11 -0
  96. package/src/cli/replay.ts +7 -2
  97. package/src/cli/vault-cmd.test.ts +2 -0
  98. package/src/cli/vault-cmd.ts +7 -2
  99. package/src/client/create.test.ts +38 -2
  100. package/src/client/create.ts +16 -11
  101. package/src/client/index.ts +6 -0
  102. package/src/client/pager.test.ts +66 -0
  103. package/src/client/pager.ts +138 -0
  104. package/src/client/transport.ts +9 -6
  105. package/src/client/types.ts +58 -10
  106. package/src/compiler/aot.test.ts +12 -2
  107. package/src/compiler/effects-infer.ts +13 -4
  108. package/src/compiler/extract.test.ts +243 -5
  109. package/src/compiler/extract.ts +323 -58
  110. package/src/compiler/fixtures/skyport/src/flows/bookings/index.ts +2 -2
  111. package/src/compiler/fixtures/skyport/src/gates.ts +2 -0
  112. package/src/compiler/fixtures/skyport.expected.json +4 -0
  113. package/src/config/driver-defaults.test.ts +3 -0
  114. package/src/config/driver-defaults.ts +14 -0
  115. package/src/config/index.ts +5 -0
  116. package/src/console/budget.test.ts +27 -37
  117. package/src/console/index.ts +3 -0
  118. package/src/console/password-policy.ts +89 -0
  119. package/src/console/server/app.ts +138 -12
  120. package/src/console/server/auth-rate.test.ts +3 -3
  121. package/src/console/server/auth-store.test.ts +222 -0
  122. package/src/console/server/auth-store.ts +499 -0
  123. package/src/console/server/bind.ts +2 -3
  124. package/src/console/server/channels.test.ts +1 -1
  125. package/src/console/server/claim.test.ts +60 -1
  126. package/src/console/server/claim.ts +137 -2
  127. package/src/console/server/console.test.ts +102 -6
  128. package/src/console/server/dry-run.audit.test.ts +5 -2
  129. package/src/console/server/files-catalog.test.ts +51 -0
  130. package/src/console/server/files-catalog.ts +122 -0
  131. package/src/console/server/flows-invoke.test.ts +655 -38
  132. package/src/console/server/flows.ts +907 -90
  133. package/src/console/server/gates.test.ts +59 -0
  134. package/src/console/server/gates.ts +17 -14
  135. package/src/console/server/i18n.ts +7 -4
  136. package/src/console/server/index-search.test.ts +57 -0
  137. package/src/console/server/index-search.ts +102 -0
  138. package/src/console/server/index.ts +32 -1
  139. package/src/console/server/instances.test.ts +68 -0
  140. package/src/console/server/instances.ts +58 -0
  141. package/src/console/server/invoke-user-flow.test.ts +206 -0
  142. package/src/console/server/invoke-user-flow.ts +367 -0
  143. package/src/console/server/live.test.ts +44 -1
  144. package/src/console/server/live.ts +16 -0
  145. package/src/console/server/operator-db.test.ts +5 -5
  146. package/src/console/server/operator-db.ts +2 -2
  147. package/src/console/server/panel-load.ts +1 -0
  148. package/src/console/server/plugin.ts +12 -2
  149. package/src/console/server/runs-history.test.ts +143 -0
  150. package/src/console/server/runs-ingest.test.ts +379 -0
  151. package/src/console/server/runs-ingest.ts +127 -0
  152. package/src/console/server/runs-list-nesting.test.ts +97 -0
  153. package/src/console/server/runs-pii.test.ts +69 -0
  154. package/src/console/server/runs-pii.ts +50 -4
  155. package/src/console/server/runs-query-guard.test.ts +75 -0
  156. package/src/console/server/runs-query-guard.ts +224 -0
  157. package/src/console/server/runs-query-mask.test.ts +37 -0
  158. package/src/console/server/runs-query-mask.ts +82 -0
  159. package/src/console/server/runs-query.test.ts +287 -0
  160. package/src/console/server/runs-query.ts +107 -0
  161. package/src/console/server/security-headers.ts +21 -2
  162. package/src/console/server/security.gate.test.ts +306 -3
  163. package/src/console/server/serve.ts +138 -9
  164. package/src/console/server/spa-paths.test.ts +36 -0
  165. package/src/console/server/spa-proxy.test.ts +86 -0
  166. package/src/console/server/sql-catalog.ts +572 -0
  167. package/src/console/server/sql-extension.test.ts +19 -0
  168. package/src/console/server/sql-rls.test.ts +44 -0
  169. package/src/console/server/state.ts +445 -7
  170. package/src/console/server/store-kv-stats.test.ts +178 -0
  171. package/src/console/server/store-kv-stats.ts +339 -0
  172. package/src/console/server/store-stats.test.ts +165 -0
  173. package/src/console/server/store-stats.ts +526 -0
  174. package/src/console/server/store.test.ts +930 -0
  175. package/src/console/server/store.ts +859 -76
  176. package/src/console/server/traces-replay.test.ts +212 -0
  177. package/src/console/server/vault-http.test.ts +458 -0
  178. package/src/console/server/vault-overlay.test.ts +49 -0
  179. package/src/console/server/vault-overlay.ts +99 -0
  180. package/src/console/server/vault.test.ts +75 -0
  181. package/src/console/server/vault.ts +443 -27
  182. package/src/console/ui-next/components.json +26 -0
  183. package/src/console/ui-next/dist/assets/bash-CLZ0U2zV.js +1 -0
  184. package/src/console/ui-next/dist/assets/cache-glyph-CLPBqZeb.js +1 -0
  185. package/src/console/ui-next/dist/assets/call-pii-button-bqkxMrJH.js +1 -0
  186. package/src/console/ui-next/dist/assets/collapsible-DYb0xU8C.js +1 -0
  187. package/src/console/ui-next/dist/assets/confirm-sheet-DDCRmG62.js +1 -0
  188. package/src/console/ui-next/dist/assets/dagre.esm-ZwcdTuZZ.js +1 -0
  189. package/src/console/ui-next/dist/assets/duration-tone-oiRxPVsZ.js +9 -0
  190. package/src/console/ui-next/dist/assets/explorer-empty-HjTnVQoR.js +1 -0
  191. package/src/console/ui-next/dist/assets/flows-page-C_Tas1E1.js +1 -0
  192. package/src/console/ui-next/dist/assets/github-dark-C-LZuMrd.js +1 -0
  193. package/src/console/ui-next/dist/assets/github-light-EUqPIrTm.js +1 -0
  194. package/src/console/ui-next/dist/assets/highlighted-json-CvDPvveV.js +154 -0
  195. package/src/console/ui-next/dist/assets/http-method-BJ92Z_ke.js +1 -0
  196. package/src/console/ui-next/dist/assets/index-D4Ldtj79.css +2 -0
  197. package/src/console/ui-next/dist/assets/index-DX248G39.js +66 -0
  198. package/src/console/ui-next/dist/assets/json-qhed-kSA.js +1 -0
  199. package/src/console/ui-next/dist/assets/link-DF7SZ9Ek.js +1 -0
  200. package/src/console/ui-next/dist/assets/observability-page-BwVS5Jvm.js +4 -0
  201. package/src/console/ui-next/dist/assets/preload-helper-oH4irX4C.js +1 -0
  202. package/src/console/ui-next/dist/assets/query-gate-parts-1m8m1iNp.js +2 -0
  203. package/src/console/ui-next/dist/assets/react-B1ML8gxg.js +1 -0
  204. package/src/console/ui-next/dist/assets/react-dom-Bph1y7z7.js +9 -0
  205. package/src/console/ui-next/dist/assets/replica-lag-C8_BRt2x.js +18 -0
  206. package/src/console/ui-next/dist/assets/rolldown-runtime-hePW80VL.js +1 -0
  207. package/src/console/ui-next/dist/assets/sheet-form-D-ata7jy.js +1 -0
  208. package/src/console/ui-next/dist/assets/shortcut-Cgzuv4k1.js +1 -0
  209. package/src/console/ui-next/dist/assets/shortcut-keys-DO4IsVqv.js +1 -0
  210. package/src/console/ui-next/dist/assets/skeleton-CL_X0GCj.js +1 -0
  211. package/src/console/ui-next/dist/assets/sql-BskegiFM.js +1 -0
  212. package/src/console/ui-next/dist/assets/store-page-v3LXdYpr.js +45 -0
  213. package/src/console/ui-next/dist/assets/trace-detail-sheet-D16lWQMt.js +2 -0
  214. package/src/console/ui-next/dist/assets/tsx-udAQXfEw.js +1 -0
  215. package/src/console/ui-next/dist/assets/typescript-bsJCZSQ-.js +1 -0
  216. package/src/console/ui-next/dist/assets/units-page-C5KOI7qG.js +1 -0
  217. package/src/console/ui-next/dist/assets/use-vault-list-Cl79j_ku.js +1 -0
  218. package/src/console/ui-next/dist/assets/vault-page-CSOYMHhO.js +2 -0
  219. package/src/console/ui-next/dist/assets/xyflow-D7n4g6go.js +7 -0
  220. package/src/console/ui-next/dist/assets/xyflow-DZ0Ws1xk.css +1 -0
  221. package/src/console/ui-next/dist/favicon.svg +6 -0
  222. package/src/console/ui-next/dist/index.html +56 -0
  223. package/src/console/ui-next/index.html +45 -0
  224. package/src/console/ui-next/public/favicon.svg +6 -0
  225. package/src/console/ui-next/seed-invoke-host.test.ts +47 -0
  226. package/src/console/ui-next/seed-invoke-host.ts +199 -0
  227. package/src/console/ui-next/seed-invoke-ops.test.ts +280 -0
  228. package/src/console/ui-next/seed-invoke-ops.ts +587 -0
  229. package/src/console/ui-next/src/client-session.test.ts +22 -0
  230. package/src/console/ui-next/src/client.ts +1379 -0
  231. package/src/console/ui-next/src/components/agents/agent-code.tsx +207 -0
  232. package/src/console/ui-next/src/components/agents/agent-disclosure.tsx +63 -0
  233. package/src/console/ui-next/src/components/agents/file-diff.tsx +271 -0
  234. package/src/console/ui-next/src/components/auth-card.tsx +298 -0
  235. package/src/console/ui-next/src/components/charts/animation.ts +36 -0
  236. package/src/console/ui-next/src/components/charts/area-chart-loading.tsx +115 -0
  237. package/src/console/ui-next/src/components/charts/area-chart.tsx +261 -0
  238. package/src/console/ui-next/src/components/charts/area-gradient-defs.tsx +98 -0
  239. package/src/console/ui-next/src/components/charts/area.tsx +349 -0
  240. package/src/console/ui-next/src/components/charts/chart-child-passthrough.ts +110 -0
  241. package/src/console/ui-next/src/components/charts/chart-config-context.tsx +81 -0
  242. package/src/console/ui-next/src/components/charts/chart-context.tsx +414 -0
  243. package/src/console/ui-next/src/components/charts/chart-defs.ts +61 -0
  244. package/src/console/ui-next/src/components/charts/chart-formatters.ts +26 -0
  245. package/src/console/ui-next/src/components/charts/chart-legend-hover.tsx +41 -0
  246. package/src/console/ui-next/src/components/charts/chart-loading-label.tsx +56 -0
  247. package/src/console/ui-next/src/components/charts/chart-phase.ts +52 -0
  248. package/src/console/ui-next/src/components/charts/chart-reveal-clip.tsx +87 -0
  249. package/src/console/ui-next/src/components/charts/composed-chart.tsx +333 -0
  250. package/src/console/ui-next/src/components/charts/dash-tail-stroke.tsx +75 -0
  251. package/src/console/ui-next/src/components/charts/decimate-time-series.ts +134 -0
  252. package/src/console/ui-next/src/components/charts/fade-edges.ts +52 -0
  253. package/src/console/ui-next/src/components/charts/filter-data-by-x-domain.ts +59 -0
  254. package/src/console/ui-next/src/components/charts/generate-chart-skeleton-data.ts +42 -0
  255. package/src/console/ui-next/src/components/charts/grid.tsx +299 -0
  256. package/src/console/ui-next/src/components/charts/highlight-segment-bounds.ts +68 -0
  257. package/src/console/ui-next/src/components/charts/highlight-segment.tsx +65 -0
  258. package/src/console/ui-next/src/components/charts/indicator-fade.ts +62 -0
  259. package/src/console/ui-next/src/components/charts/line-chart-loading.tsx +111 -0
  260. package/src/console/ui-next/src/components/charts/line-chart.tsx +293 -0
  261. package/src/console/ui-next/src/components/charts/line-loading-pulse.tsx +201 -0
  262. package/src/console/ui-next/src/components/charts/line-loading-timing.ts +12 -0
  263. package/src/console/ui-next/src/components/charts/line-series-terminal-marker.tsx +91 -0
  264. package/src/console/ui-next/src/components/charts/line.tsx +384 -0
  265. package/src/console/ui-next/src/components/charts/loading-sweep.tsx +452 -0
  266. package/src/console/ui-next/src/components/charts/motion-utils.ts +47 -0
  267. package/src/console/ui-next/src/components/charts/path-stroke-utils.ts +82 -0
  268. package/src/console/ui-next/src/components/charts/pattern-area.tsx +45 -0
  269. package/src/console/ui-next/src/components/charts/projection-config.ts +112 -0
  270. package/src/console/ui-next/src/components/charts/projection-line-end-marker.tsx +51 -0
  271. package/src/console/ui-next/src/components/charts/projection-line.tsx +208 -0
  272. package/src/console/ui-next/src/components/charts/projection-utils.ts +378 -0
  273. package/src/console/ui-next/src/components/charts/reference-area-config.ts +59 -0
  274. package/src/console/ui-next/src/components/charts/reference-area-geometry.ts +136 -0
  275. package/src/console/ui-next/src/components/charts/reference-area-registration-context.tsx +16 -0
  276. package/src/console/ui-next/src/components/charts/series-bar-layout.ts +60 -0
  277. package/src/console/ui-next/src/components/charts/series-bar.tsx +304 -0
  278. package/src/console/ui-next/src/components/charts/series-dash-tail-overlay.tsx +82 -0
  279. package/src/console/ui-next/src/components/charts/series-highlight-layer.tsx +49 -0
  280. package/src/console/ui-next/src/components/charts/series-hover-dim.tsx +57 -0
  281. package/src/console/ui-next/src/components/charts/series-markers.tsx +267 -0
  282. package/src/console/ui-next/src/components/charts/series-path-utils.ts +103 -0
  283. package/src/console/ui-next/src/components/charts/series-point-marker.tsx +205 -0
  284. package/src/console/ui-next/src/components/charts/static-chart-preview-context.tsx +16 -0
  285. package/src/console/ui-next/src/components/charts/time-series-chart-shell.tsx +644 -0
  286. package/src/console/ui-next/src/components/charts/tooltip/chart-tooltip.tsx +400 -0
  287. package/src/console/ui-next/src/components/charts/tooltip/date-ticker.tsx +140 -0
  288. package/src/console/ui-next/src/components/charts/tooltip/index.ts +10 -0
  289. package/src/console/ui-next/src/components/charts/tooltip/tooltip-box.tsx +227 -0
  290. package/src/console/ui-next/src/components/charts/tooltip/tooltip-content.tsx +58 -0
  291. package/src/console/ui-next/src/components/charts/tooltip/tooltip-dot.tsx +173 -0
  292. package/src/console/ui-next/src/components/charts/tooltip/tooltip-indicator.tsx +191 -0
  293. package/src/console/ui-next/src/components/charts/use-animated-series-path.ts +155 -0
  294. package/src/console/ui-next/src/components/charts/use-animated-y-domains.ts +227 -0
  295. package/src/console/ui-next/src/components/charts/use-chart-interaction.ts +343 -0
  296. package/src/console/ui-next/src/components/charts/use-chart-phase-orchestrator.ts +173 -0
  297. package/src/console/ui-next/src/components/charts/use-enter-complete.ts +28 -0
  298. package/src/console/ui-next/src/components/charts/use-grid-shimmer.ts +101 -0
  299. package/src/console/ui-next/src/components/charts/use-highlight-segment.ts +58 -0
  300. package/src/console/ui-next/src/components/charts/use-mount-progress.ts +29 -0
  301. package/src/console/ui-next/src/components/charts/use-scheduled-tooltip.ts +97 -0
  302. package/src/console/ui-next/src/components/charts/x-axis.tsx +635 -0
  303. package/src/console/ui-next/src/components/charts/y-axis-scales.ts +108 -0
  304. package/src/console/ui-next/src/components/charts/y-axis-ticks.ts +25 -0
  305. package/src/console/ui-next/src/components/charts/y-axis.tsx +151 -0
  306. package/src/console/ui-next/src/components/charts/y-domain-utils.ts +120 -0
  307. package/src/console/ui-next/src/components/console-chrome.tsx +50 -0
  308. package/src/console/ui-next/src/components/document-title.tsx +18 -0
  309. package/src/console/ui-next/src/components/explorer/copy-inline-button.tsx +57 -0
  310. package/src/console/ui-next/src/components/explorer/detail-header.tsx +82 -0
  311. package/src/console/ui-next/src/components/explorer/explorer-chrome.ts +123 -0
  312. package/src/console/ui-next/src/components/explorer/explorer-empty.tsx +67 -0
  313. package/src/console/ui-next/src/components/explorer/explorer-search.tsx +20 -0
  314. package/src/console/ui-next/src/components/explorer/explorer-start-toggle.tsx +52 -0
  315. package/src/console/ui-next/src/components/explorer/section-head.tsx +33 -0
  316. package/src/console/ui-next/src/components/explorer/tree-expand-toggle.tsx +69 -0
  317. package/src/console/ui-next/src/components/explorer/use-explorer-start-panel.ts +34 -0
  318. package/src/console/ui-next/src/components/gate-list.tsx +70 -0
  319. package/src/console/ui-next/src/components/generate-password-button.tsx +76 -0
  320. package/src/console/ui-next/src/components/highlighted-json.tsx +73 -0
  321. package/src/console/ui-next/src/components/http-method-badge.tsx +35 -0
  322. package/src/console/ui-next/src/components/mode-toggle.tsx +84 -0
  323. package/src/console/ui-next/src/components/motion/button/base.tsx +145 -0
  324. package/src/console/ui-next/src/components/motion/button/expanding-arrow.tsx +167 -0
  325. package/src/console/ui-next/src/components/motion/button/index.ts +12 -0
  326. package/src/console/ui-next/src/components/motion/button/stateful.tsx +243 -0
  327. package/src/console/ui-next/src/components/motion/checkbox.tsx +120 -0
  328. package/src/console/ui-next/src/components/motion/select.tsx +436 -0
  329. package/src/console/ui-next/src/components/motion/switch.tsx +108 -0
  330. package/src/console/ui-next/src/components/motion/table/editable-cell.tsx +98 -0
  331. package/src/console/ui-next/src/components/motion/table/index.tsx +404 -0
  332. package/src/console/ui-next/src/components/motion/table/row-handle.tsx +95 -0
  333. package/src/console/ui-next/src/components/motion/table/skeleton-rows.tsx +52 -0
  334. package/src/console/ui-next/src/components/motion/table/table-header.tsx +337 -0
  335. package/src/console/ui-next/src/components/motion/table/table-menu.tsx +130 -0
  336. package/src/console/ui-next/src/components/motion/table/types.ts +109 -0
  337. package/src/console/ui-next/src/components/motion/table/use-cell-range.ts +145 -0
  338. package/src/console/ui-next/src/components/motion/table/use-column-reorder.ts +112 -0
  339. package/src/console/ui-next/src/components/motion/table/use-column-resize.ts +83 -0
  340. package/src/console/ui-next/src/components/motion/table/use-column-sort.ts +73 -0
  341. package/src/console/ui-next/src/components/motion/table/use-row-selection.ts +70 -0
  342. package/src/console/ui-next/src/components/motion/table/utils.ts +138 -0
  343. package/src/console/ui-next/src/components/oke-logo.tsx +65 -0
  344. package/src/console/ui-next/src/components/password-input.tsx +67 -0
  345. package/src/console/ui-next/src/components/password-strength.tsx +160 -0
  346. package/src/console/ui-next/src/components/shell/app-sidebar.tsx +117 -0
  347. package/src/console/ui-next/src/components/shell/command-items.test.ts +30 -0
  348. package/src/console/ui-next/src/components/shell/command-items.ts +144 -0
  349. package/src/console/ui-next/src/components/shell/command-match.test.ts +37 -0
  350. package/src/console/ui-next/src/components/shell/command-match.ts +45 -0
  351. package/src/console/ui-next/src/components/shell/command-palette.tsx +334 -0
  352. package/src/console/ui-next/src/components/shell/nav-footer.tsx +109 -0
  353. package/src/console/ui-next/src/components/shell/section-empty.tsx +42 -0
  354. package/src/console/ui-next/src/components/shell/settings-dialog.tsx +65 -0
  355. package/src/console/ui-next/src/components/shell/shell-layout.tsx +100 -0
  356. package/src/console/ui-next/src/components/shimmering-text.tsx +87 -0
  357. package/src/console/ui-next/src/components/signal-delivery-badge.tsx +38 -0
  358. package/src/console/ui-next/src/components/theme-provider.tsx +86 -0
  359. package/src/console/ui-next/src/components/ui/alert-dialog.tsx +147 -0
  360. package/src/console/ui-next/src/components/ui/avatar.tsx +91 -0
  361. package/src/console/ui-next/src/components/ui/badge.tsx +54 -0
  362. package/src/console/ui-next/src/components/ui/breadcrumb.tsx +104 -0
  363. package/src/console/ui-next/src/components/ui/button.tsx +58 -0
  364. package/src/console/ui-next/src/components/ui/card.tsx +88 -0
  365. package/src/console/ui-next/src/components/ui/collapsible.tsx +15 -0
  366. package/src/console/ui-next/src/components/ui/confirm-sheet.tsx +149 -0
  367. package/src/console/ui-next/src/components/ui/dialog.tsx +144 -0
  368. package/src/console/ui-next/src/components/ui/dropdown-menu.tsx +265 -0
  369. package/src/console/ui-next/src/components/ui/empty.tsx +95 -0
  370. package/src/console/ui-next/src/components/ui/field.tsx +224 -0
  371. package/src/console/ui-next/src/components/ui/input.tsx +30 -0
  372. package/src/console/ui-next/src/components/ui/kbd.tsx +41 -0
  373. package/src/console/ui-next/src/components/ui/label.tsx +20 -0
  374. package/src/console/ui-next/src/components/ui/progress.tsx +66 -0
  375. package/src/console/ui-next/src/components/ui/resizable.tsx +74 -0
  376. package/src/console/ui-next/src/components/ui/select.tsx +230 -0
  377. package/src/console/ui-next/src/components/ui/separator.tsx +21 -0
  378. package/src/console/ui-next/src/components/ui/sheet-form.tsx +337 -0
  379. package/src/console/ui-next/src/components/ui/sheet.tsx +130 -0
  380. package/src/console/ui-next/src/components/ui/sidebar.tsx +691 -0
  381. package/src/console/ui-next/src/components/ui/skeleton.tsx +20 -0
  382. package/src/console/ui-next/src/components/ui/toggle-group.tsx +87 -0
  383. package/src/console/ui-next/src/components/ui/toggle.tsx +46 -0
  384. package/src/console/ui-next/src/components/ui/toolbar-tip.tsx +41 -0
  385. package/src/console/ui-next/src/components/ui/tooltip.tsx +74 -0
  386. package/src/console/ui-next/src/features/auth/auth-redirect.test.ts +119 -0
  387. package/src/console/ui-next/src/features/auth/auth-redirect.ts +153 -0
  388. package/src/console/ui-next/src/features/auth/login-form.tsx +234 -0
  389. package/src/console/ui-next/src/features/auth/logout.ts +17 -0
  390. package/src/console/ui-next/src/features/flows/data/console-live-session.test.ts +329 -0
  391. package/src/console/ui-next/src/features/flows/data/console-live-session.ts +210 -0
  392. package/src/console/ui-next/src/features/flows/data/use-console-live.ts +79 -0
  393. package/src/console/ui-next/src/features/flows/data/use-manifest.ts +23 -0
  394. package/src/console/ui-next/src/features/flows/data/use-runs.ts +24 -0
  395. package/src/console/ui-next/src/features/flows/fixture.ts +81 -0
  396. package/src/console/ui-next/src/features/flows/flows-page.tsx +227 -0
  397. package/src/console/ui-next/src/features/flows/graph/build-flow-graph.test.ts +236 -0
  398. package/src/console/ui-next/src/features/flows/graph/build-flow-graph.ts +530 -0
  399. package/src/console/ui-next/src/features/flows/graph/element-map.test.ts +443 -0
  400. package/src/console/ui-next/src/features/flows/graph/element-map.ts +1077 -0
  401. package/src/console/ui-next/src/features/flows/graph/flow-graph-nodes.tsx +486 -0
  402. package/src/console/ui-next/src/features/flows/graph/flow-graph-theme.ts +143 -0
  403. package/src/console/ui-next/src/features/flows/graph/flow-graph.tsx +268 -0
  404. package/src/console/ui-next/src/features/flows/graph/neighborhood.test.ts +64 -0
  405. package/src/console/ui-next/src/features/flows/graph/neighborhood.ts +82 -0
  406. package/src/console/ui-next/src/features/flows/graph/orchestra.test.ts +97 -0
  407. package/src/console/ui-next/src/features/flows/graph/orchestra.ts +86 -0
  408. package/src/console/ui-next/src/features/flows/graph/use-overview-orchestra.ts +95 -0
  409. package/src/console/ui-next/src/features/flows/state/flows-selection.test.ts +24 -0
  410. package/src/console/ui-next/src/features/flows/state/flows-selection.ts +92 -0
  411. package/src/console/ui-next/src/features/flows/traces/advanced-filters.tsx +222 -0
  412. package/src/console/ui-next/src/features/flows/traces/cache-glyph.tsx +42 -0
  413. package/src/console/ui-next/src/features/flows/traces/cache-icon.test.ts +27 -0
  414. package/src/console/ui-next/src/features/flows/traces/cache-icon.ts +48 -0
  415. package/src/console/ui-next/src/features/flows/traces/dimension-query.test.ts +100 -0
  416. package/src/console/ui-next/src/features/flows/traces/dimension-query.ts +325 -0
  417. package/src/console/ui-next/src/features/flows/traces/duration-tone.test.ts +71 -0
  418. package/src/console/ui-next/src/features/flows/traces/duration-tone.ts +128 -0
  419. package/src/console/ui-next/src/features/flows/traces/effect-kind.ts +106 -0
  420. package/src/console/ui-next/src/features/flows/traces/effect-summary.ts +193 -0
  421. package/src/console/ui-next/src/features/flows/traces/filter-runs.test.ts +98 -0
  422. package/src/console/ui-next/src/features/flows/traces/filter-runs.ts +68 -0
  423. package/src/console/ui-next/src/features/flows/traces/format-duration.test.ts +47 -0
  424. package/src/console/ui-next/src/features/flows/traces/format-duration.ts +25 -0
  425. package/src/console/ui-next/src/features/flows/traces/graph-filter.test.ts +192 -0
  426. package/src/console/ui-next/src/features/flows/traces/graph-filter.ts +175 -0
  427. package/src/console/ui-next/src/features/flows/traces/http-method.ts +134 -0
  428. package/src/console/ui-next/src/features/flows/traces/replay-playback.test.ts +101 -0
  429. package/src/console/ui-next/src/features/flows/traces/replay-playback.ts +107 -0
  430. package/src/console/ui-next/src/features/flows/traces/request-input-view.test.ts +60 -0
  431. package/src/console/ui-next/src/features/flows/traces/request-input-view.ts +108 -0
  432. package/src/console/ui-next/src/features/flows/traces/request-meta.ts +62 -0
  433. package/src/console/ui-next/src/features/flows/traces/scope-runs.test.ts +51 -0
  434. package/src/console/ui-next/src/features/flows/traces/scope-runs.ts +23 -0
  435. package/src/console/ui-next/src/features/flows/traces/trace-actions.test.ts +80 -0
  436. package/src/console/ui-next/src/features/flows/traces/trace-actions.ts +57 -0
  437. package/src/console/ui-next/src/features/flows/traces/trace-chain.test.ts +68 -0
  438. package/src/console/ui-next/src/features/flows/traces/trace-chain.ts +59 -0
  439. package/src/console/ui-next/src/features/flows/traces/trace-detail-sheet.tsx +1003 -0
  440. package/src/console/ui-next/src/features/flows/traces/trace-detail.test.ts +357 -0
  441. package/src/console/ui-next/src/features/flows/traces/trace-gates.ts +90 -0
  442. package/src/console/ui-next/src/features/flows/traces/trace-request-section.tsx +574 -0
  443. package/src/console/ui-next/src/features/flows/traces/trace-row-meta.test.ts +42 -0
  444. package/src/console/ui-next/src/features/flows/traces/trace-row-meta.ts +47 -0
  445. package/src/console/ui-next/src/features/flows/traces/trace-row.tsx +149 -0
  446. package/src/console/ui-next/src/features/flows/traces/traces-pane.tsx +289 -0
  447. package/src/console/ui-next/src/features/flows/traces/trigger-icon.test.ts +42 -0
  448. package/src/console/ui-next/src/features/flows/traces/trigger-icon.ts +53 -0
  449. package/src/console/ui-next/src/features/flows/traces/waterfall-bars.test.ts +93 -0
  450. package/src/console/ui-next/src/features/flows/traces/waterfall-bars.ts +80 -0
  451. package/src/console/ui-next/src/features/flows/traces/waterfall-timeline.test.ts +121 -0
  452. package/src/console/ui-next/src/features/flows/traces/waterfall-timeline.ts +230 -0
  453. package/src/console/ui-next/src/features/flows/traces/waterfall-tooltip.test.ts +51 -0
  454. package/src/console/ui-next/src/features/flows/traces/waterfall-tooltip.ts +20 -0
  455. package/src/console/ui-next/src/features/not-found/not-found-page.tsx +23 -0
  456. package/src/console/ui-next/src/features/observability/data/use-ai-list.ts +26 -0
  457. package/src/console/ui-next/src/features/observability/data/use-clock-list.ts +27 -0
  458. package/src/console/ui-next/src/features/observability/data/use-instances-list.ts +27 -0
  459. package/src/console/ui-next/src/features/observability/data/use-runs-query.ts +39 -0
  460. package/src/console/ui-next/src/features/observability/data/use-signals-list.ts +25 -0
  461. package/src/console/ui-next/src/features/observability/detail/ai-rail.tsx +77 -0
  462. package/src/console/ui-next/src/features/observability/detail/instance-fleet-sheet.tsx +111 -0
  463. package/src/console/ui-next/src/features/observability/detail/metrics-chart.tsx +111 -0
  464. package/src/console/ui-next/src/features/observability/detail/metrics-panel.tsx +154 -0
  465. package/src/console/ui-next/src/features/observability/explorer/error-list.tsx +139 -0
  466. package/src/console/ui-next/src/features/observability/explorer/error-row.tsx +84 -0
  467. package/src/console/ui-next/src/features/observability/explorer/health-strip.tsx +146 -0
  468. package/src/console/ui-next/src/features/observability/lib/ask-count.test.ts +47 -0
  469. package/src/console/ui-next/src/features/observability/lib/ask-count.ts +44 -0
  470. package/src/console/ui-next/src/features/observability/lib/health-cells.test.ts +243 -0
  471. package/src/console/ui-next/src/features/observability/lib/health-cells.ts +207 -0
  472. package/src/console/ui-next/src/features/observability/lib/run-fixture.ts +43 -0
  473. package/src/console/ui-next/src/features/observability/lib/time-buckets.test.ts +61 -0
  474. package/src/console/ui-next/src/features/observability/lib/time-buckets.ts +126 -0
  475. package/src/console/ui-next/src/features/observability/lib/token-count.test.ts +75 -0
  476. package/src/console/ui-next/src/features/observability/lib/token-count.ts +70 -0
  477. package/src/console/ui-next/src/features/observability/lib/top-errors.test.ts +89 -0
  478. package/src/console/ui-next/src/features/observability/lib/top-errors.ts +135 -0
  479. package/src/console/ui-next/src/features/observability/lib/window-stats.test.ts +62 -0
  480. package/src/console/ui-next/src/features/observability/lib/window-stats.ts +124 -0
  481. package/src/console/ui-next/src/features/observability/observability-page.tsx +217 -0
  482. package/src/console/ui-next/src/features/observability/query/runs-query-panel.tsx +91 -0
  483. package/src/console/ui-next/src/features/observability/state/observability-selection.test.ts +27 -0
  484. package/src/console/ui-next/src/features/observability/state/observability-selection.ts +121 -0
  485. package/src/console/ui-next/src/features/setup/auth-gate.test.ts +17 -0
  486. package/src/console/ui-next/src/features/setup/auth-gate.ts +21 -0
  487. package/src/console/ui-next/src/features/setup/claim-page.tsx +418 -0
  488. package/src/console/ui-next/src/features/store/data/use-gates.ts +26 -0
  489. package/src/console/ui-next/src/features/store/data/use-store-edit.ts +92 -0
  490. package/src/console/ui-next/src/features/store/data/use-store-files.ts +96 -0
  491. package/src/console/ui-next/src/features/store/data/use-store-kv-stats.ts +47 -0
  492. package/src/console/ui-next/src/features/store/data/use-store-query.test.ts +42 -0
  493. package/src/console/ui-next/src/features/store/data/use-store-query.ts +68 -0
  494. package/src/console/ui-next/src/features/store/data/use-store-reveal.ts +28 -0
  495. package/src/console/ui-next/src/features/store/data/use-store-sql-advise.ts +39 -0
  496. package/src/console/ui-next/src/features/store/data/use-store-sql-locks.ts +51 -0
  497. package/src/console/ui-next/src/features/store/data/use-store-sql-stats.ts +47 -0
  498. package/src/console/ui-next/src/features/store/data/use-store-sql.ts +39 -0
  499. package/src/console/ui-next/src/features/store/data/use-stores-list.ts +24 -0
  500. package/src/console/ui-next/src/features/store/detail/browse-section.tsx +692 -0
  501. package/src/console/ui-next/src/features/store/detail/json-value-sheet.tsx +470 -0
  502. package/src/console/ui-next/src/features/store/detail/resource-panel.tsx +325 -0
  503. package/src/console/ui-next/src/features/store/detail/reveal-cell.tsx +137 -0
  504. package/src/console/ui-next/src/features/store/detail/store-row-detail-sheet.tsx +225 -0
  505. package/src/console/ui-next/src/features/store/detail/touched-by-section.tsx +101 -0
  506. package/src/console/ui-next/src/features/store/explorer/store-tree.tsx +1044 -0
  507. package/src/console/ui-next/src/features/store/files/file-explorer.tsx +563 -0
  508. package/src/console/ui-next/src/features/store/files/file-kind-icon.tsx +70 -0
  509. package/src/console/ui-next/src/features/store/files/file-preview.tsx +338 -0
  510. package/src/console/ui-next/src/features/store/files/file-upload-sheet.tsx +190 -0
  511. package/src/console/ui-next/src/features/store/grid/catalog-advanced.tsx +80 -0
  512. package/src/console/ui-next/src/features/store/grid/extension-library-sheet.tsx +761 -0
  513. package/src/console/ui-next/src/features/store/grid/kv-add-sheet.tsx +165 -0
  514. package/src/console/ui-next/src/features/store/grid/pending-changes-sheet.tsx +219 -0
  515. package/src/console/ui-next/src/features/store/grid/rls-policy-sheet.tsx +875 -0
  516. package/src/console/ui-next/src/features/store/grid/sql-function-sheet.tsx +473 -0
  517. package/src/console/ui-next/src/features/store/grid/sql-index-sheet.tsx +355 -0
  518. package/src/console/ui-next/src/features/store/grid/sql-insert-sheet.tsx +177 -0
  519. package/src/console/ui-next/src/features/store/grid/sql-trigger-sheet.tsx +445 -0
  520. package/src/console/ui-next/src/features/store/grid/store-confirm-sheet.tsx +73 -0
  521. package/src/console/ui-next/src/features/store/grid/store-data-grid.tsx +1844 -0
  522. package/src/console/ui-next/src/features/store/grid/store-edit-sheet.tsx +329 -0
  523. package/src/console/ui-next/src/features/store/grid/store-grid-context-menu.tsx +111 -0
  524. package/src/console/ui-next/src/features/store/grid/store-grid-shortcuts.tsx +124 -0
  525. package/src/console/ui-next/src/features/store/lib/cell-selection.test.ts +125 -0
  526. package/src/console/ui-next/src/features/store/lib/cell-selection.ts +115 -0
  527. package/src/console/ui-next/src/features/store/lib/confirmation.test.ts +48 -0
  528. package/src/console/ui-next/src/features/store/lib/confirmation.ts +63 -0
  529. package/src/console/ui-next/src/features/store/lib/edit-history.test.ts +60 -0
  530. package/src/console/ui-next/src/features/store/lib/edit-history.ts +64 -0
  531. package/src/console/ui-next/src/features/store/lib/fields-from-table.ts +94 -0
  532. package/src/console/ui-next/src/features/store/lib/files-body.test.ts +16 -0
  533. package/src/console/ui-next/src/features/store/lib/files-body.ts +79 -0
  534. package/src/console/ui-next/src/features/store/lib/files-meta.test.ts +75 -0
  535. package/src/console/ui-next/src/features/store/lib/files-meta.ts +259 -0
  536. package/src/console/ui-next/src/features/store/lib/files-origin.test.ts +69 -0
  537. package/src/console/ui-next/src/features/store/lib/files-origin.ts +53 -0
  538. package/src/console/ui-next/src/features/store/lib/files-tree.test.ts +123 -0
  539. package/src/console/ui-next/src/features/store/lib/files-tree.ts +233 -0
  540. package/src/console/ui-next/src/features/store/lib/grid-model.test.ts +127 -0
  541. package/src/console/ui-next/src/features/store/lib/grid-model.ts +219 -0
  542. package/src/console/ui-next/src/features/store/lib/grid-transfer.test.ts +123 -0
  543. package/src/console/ui-next/src/features/store/lib/grid-transfer.ts +217 -0
  544. package/src/console/ui-next/src/features/store/lib/index-query.test.ts +30 -0
  545. package/src/console/ui-next/src/features/store/lib/index-query.ts +57 -0
  546. package/src/console/ui-next/src/features/store/lib/json-value.test.ts +141 -0
  547. package/src/console/ui-next/src/features/store/lib/json-value.ts +266 -0
  548. package/src/console/ui-next/src/features/store/lib/kv-format.test.ts +44 -0
  549. package/src/console/ui-next/src/features/store/lib/kv-format.ts +103 -0
  550. package/src/console/ui-next/src/features/store/lib/kv-meta.test.ts +43 -0
  551. package/src/console/ui-next/src/features/store/lib/kv-meta.ts +63 -0
  552. package/src/console/ui-next/src/features/store/lib/kv-query.test.ts +128 -0
  553. package/src/console/ui-next/src/features/store/lib/kv-query.ts +303 -0
  554. package/src/console/ui-next/src/features/store/lib/parse-resource-ref.ts +38 -0
  555. package/src/console/ui-next/src/features/store/lib/patch.test.ts +99 -0
  556. package/src/console/ui-next/src/features/store/lib/patch.ts +129 -0
  557. package/src/console/ui-next/src/features/store/lib/pending-edits.test.ts +125 -0
  558. package/src/console/ui-next/src/features/store/lib/pending-edits.ts +150 -0
  559. package/src/console/ui-next/src/features/store/lib/pending-sql.test.ts +108 -0
  560. package/src/console/ui-next/src/features/store/lib/pending-sql.ts +136 -0
  561. package/src/console/ui-next/src/features/store/lib/pg-extension-library.test.ts +117 -0
  562. package/src/console/ui-next/src/features/store/lib/pg-extension-library.ts +277 -0
  563. package/src/console/ui-next/src/features/store/lib/query-defaults.test.ts +78 -0
  564. package/src/console/ui-next/src/features/store/lib/query-defaults.ts +77 -0
  565. package/src/console/ui-next/src/features/store/lib/query-gate.test.ts +132 -0
  566. package/src/console/ui-next/src/features/store/lib/query-gate.ts +187 -0
  567. package/src/console/ui-next/src/features/store/lib/query-highlight.test.ts +103 -0
  568. package/src/console/ui-next/src/features/store/lib/query-highlight.ts +382 -0
  569. package/src/console/ui-next/src/features/store/lib/query-schema.test.ts +139 -0
  570. package/src/console/ui-next/src/features/store/lib/query-schema.ts +128 -0
  571. package/src/console/ui-next/src/features/store/lib/query-session.test.ts +91 -0
  572. package/src/console/ui-next/src/features/store/lib/query-session.ts +330 -0
  573. package/src/console/ui-next/src/features/store/lib/replica-lag.test.ts +101 -0
  574. package/src/console/ui-next/src/features/store/lib/replica-lag.ts +31 -0
  575. package/src/console/ui-next/src/features/store/lib/resource-effects.ts +12 -0
  576. package/src/console/ui-next/src/features/store/lib/rls-gate-catalog.test.ts +131 -0
  577. package/src/console/ui-next/src/features/store/lib/rls-gate-catalog.ts +274 -0
  578. package/src/console/ui-next/src/features/store/lib/rls-policy.test.ts +95 -0
  579. package/src/console/ui-next/src/features/store/lib/rls-policy.ts +290 -0
  580. package/src/console/ui-next/src/features/store/lib/rtl.test.ts +17 -0
  581. package/src/console/ui-next/src/features/store/lib/rtl.ts +15 -0
  582. package/src/console/ui-next/src/features/store/lib/schema-color.test.ts +91 -0
  583. package/src/console/ui-next/src/features/store/lib/schema-color.ts +216 -0
  584. package/src/console/ui-next/src/features/store/lib/schema-graph.test.ts +435 -0
  585. package/src/console/ui-next/src/features/store/lib/schema-graph.ts +566 -0
  586. package/src/console/ui-next/src/features/store/lib/sql-catalog.test.ts +60 -0
  587. package/src/console/ui-next/src/features/store/lib/sql-catalog.ts +98 -0
  588. package/src/console/ui-next/src/features/store/lib/sql-complete.test.ts +109 -0
  589. package/src/console/ui-next/src/features/store/lib/sql-complete.ts +385 -0
  590. package/src/console/ui-next/src/features/store/lib/sql-format.test.ts +35 -0
  591. package/src/console/ui-next/src/features/store/lib/sql-format.ts +85 -0
  592. package/src/console/ui-next/src/features/store/lib/sql-function.test.ts +141 -0
  593. package/src/console/ui-next/src/features/store/lib/sql-function.ts +195 -0
  594. package/src/console/ui-next/src/features/store/lib/sql-index.test.ts +101 -0
  595. package/src/console/ui-next/src/features/store/lib/sql-index.ts +151 -0
  596. package/src/console/ui-next/src/features/store/lib/sql-statements.test.ts +114 -0
  597. package/src/console/ui-next/src/features/store/lib/sql-statements.ts +205 -0
  598. package/src/console/ui-next/src/features/store/lib/sql-trigger.test.ts +125 -0
  599. package/src/console/ui-next/src/features/store/lib/sql-trigger.ts +210 -0
  600. package/src/console/ui-next/src/features/store/lib/store-tree.test.ts +220 -0
  601. package/src/console/ui-next/src/features/store/lib/store-tree.ts +314 -0
  602. package/src/console/ui-next/src/features/store/performance/advisor-enable.test.ts +16 -0
  603. package/src/console/ui-next/src/features/store/performance/advisor-enable.ts +26 -0
  604. package/src/console/ui-next/src/features/store/performance/kv-performance-panel.tsx +223 -0
  605. package/src/console/ui-next/src/features/store/performance/performance-panel.tsx +442 -0
  606. package/src/console/ui-next/src/features/store/query/query-complete.tsx +131 -0
  607. package/src/console/ui-next/src/features/store/query/query-console.tsx +1159 -0
  608. package/src/console/ui-next/src/features/store/query/query-editor.tsx +300 -0
  609. package/src/console/ui-next/src/features/store/query/query-gate-menu.tsx +178 -0
  610. package/src/console/ui-next/src/features/store/query/query-gate-parts.tsx +344 -0
  611. package/src/console/ui-next/src/features/store/query/query-gate-viz.tsx +166 -0
  612. package/src/console/ui-next/src/features/store/query/query-highlight-view.tsx +61 -0
  613. package/src/console/ui-next/src/features/store/query/query-results.tsx +369 -0
  614. package/src/console/ui-next/src/features/store/query/query-schema-panel.tsx +300 -0
  615. package/src/console/ui-next/src/features/store/query/sql-style-editor.tsx +73 -0
  616. package/src/console/ui-next/src/features/store/schema/schema-constraint-icon.tsx +108 -0
  617. package/src/console/ui-next/src/features/store/schema/schema-relation-edge.tsx +76 -0
  618. package/src/console/ui-next/src/features/store/schema/schema-relation-icon.tsx +84 -0
  619. package/src/console/ui-next/src/features/store/schema/schema-table-node.tsx +199 -0
  620. package/src/console/ui-next/src/features/store/schema/schema-visualizer.tsx +273 -0
  621. package/src/console/ui-next/src/features/store/state/store-selection.test.ts +38 -0
  622. package/src/console/ui-next/src/features/store/state/store-selection.ts +154 -0
  623. package/src/console/ui-next/src/features/store/store-page.tsx +180 -0
  624. package/src/console/ui-next/src/features/units/call/call-api-panel.tsx +1247 -0
  625. package/src/console/ui-next/src/features/units/call/call-identity-menu.tsx +226 -0
  626. package/src/console/ui-next/src/features/units/call/call-pii-button.tsx +60 -0
  627. package/src/console/ui-next/src/features/units/data/use-flows-invoke.ts +75 -0
  628. package/src/console/ui-next/src/features/units/detail/effects-summary.tsx +80 -0
  629. package/src/console/ui-next/src/features/units/detail/errors-section.tsx +64 -0
  630. package/src/console/ui-next/src/features/units/detail/flow-activity-strip.tsx +119 -0
  631. package/src/console/ui-next/src/features/units/detail/flow-contract-panel.tsx +335 -0
  632. package/src/console/ui-next/src/features/units/detail/schema-fields.tsx +149 -0
  633. package/src/console/ui-next/src/features/units/detail/validation-section.tsx +66 -0
  634. package/src/console/ui-next/src/features/units/explorer/units-tree.tsx +644 -0
  635. package/src/console/ui-next/src/features/units/lib/call-invoke-as.test.ts +40 -0
  636. package/src/console/ui-next/src/features/units/lib/call-read-safe.test.ts +38 -0
  637. package/src/console/ui-next/src/features/units/lib/call-read-safe.ts +32 -0
  638. package/src/console/ui-next/src/features/units/lib/call-timing.test.ts +28 -0
  639. package/src/console/ui-next/src/features/units/lib/call-timing.ts +34 -0
  640. package/src/console/ui-next/src/features/units/lib/contract-input.test.ts +47 -0
  641. package/src/console/ui-next/src/features/units/lib/contract-input.ts +68 -0
  642. package/src/console/ui-next/src/features/units/lib/fields-from-schema.test.ts +119 -0
  643. package/src/console/ui-next/src/features/units/lib/fields-from-schema.ts +329 -0
  644. package/src/console/ui-next/src/features/units/lib/fk-lookup.test.ts +103 -0
  645. package/src/console/ui-next/src/features/units/lib/fk-lookup.ts +175 -0
  646. package/src/console/ui-next/src/features/units/lib/flow-activity.test.ts +76 -0
  647. package/src/console/ui-next/src/features/units/lib/flow-activity.ts +68 -0
  648. package/src/console/ui-next/src/features/units/lib/flow-trigger.test.ts +63 -0
  649. package/src/console/ui-next/src/features/units/lib/flow-trigger.ts +120 -0
  650. package/src/console/ui-next/src/features/units/lib/invoke-cache.test.ts +31 -0
  651. package/src/console/ui-next/src/features/units/lib/invoke-cache.ts +22 -0
  652. package/src/console/ui-next/src/features/units/lib/invoke-response.test.ts +76 -0
  653. package/src/console/ui-next/src/features/units/lib/invoke-response.ts +70 -0
  654. package/src/console/ui-next/src/features/units/lib/path-params.test.ts +43 -0
  655. package/src/console/ui-next/src/features/units/lib/path-params.ts +75 -0
  656. package/src/console/ui-next/src/features/units/lib/resolve-clock.test.ts +106 -0
  657. package/src/console/ui-next/src/features/units/lib/resolve-clock.ts +79 -0
  658. package/src/console/ui-next/src/features/units/lib/schema-type-visual.ts +28 -0
  659. package/src/console/ui-next/src/features/units/lib/signal-delivery.test.ts +29 -0
  660. package/src/console/ui-next/src/features/units/lib/signal-delivery.ts +67 -0
  661. package/src/console/ui-next/src/features/units/lib/unit-tree.test.ts +289 -0
  662. package/src/console/ui-next/src/features/units/lib/unit-tree.ts +307 -0
  663. package/src/console/ui-next/src/features/units/lib/validate-contract.ts +103 -0
  664. package/src/console/ui-next/src/features/units/state/units-selection.ts +49 -0
  665. package/src/console/ui-next/src/features/units/units-page.tsx +120 -0
  666. package/src/console/ui-next/src/features/vault/data/use-vault-list.ts +27 -0
  667. package/src/console/ui-next/src/features/vault/detail/vault-detail.tsx +831 -0
  668. package/src/console/ui-next/src/features/vault/detail/vault-overview.tsx +71 -0
  669. package/src/console/ui-next/src/features/vault/explorer/vault-list.tsx +291 -0
  670. package/src/console/ui-next/src/features/vault/explorer/vault-posture-strip.tsx +131 -0
  671. package/src/console/ui-next/src/features/vault/explorer/vault-search.tsx +126 -0
  672. package/src/console/ui-next/src/features/vault/lib/backend.test.ts +147 -0
  673. package/src/console/ui-next/src/features/vault/lib/backend.ts +216 -0
  674. package/src/console/ui-next/src/features/vault/lib/blast-radius.ts +53 -0
  675. package/src/console/ui-next/src/features/vault/lib/confirmation.test.ts +41 -0
  676. package/src/console/ui-next/src/features/vault/lib/confirmation.ts +50 -0
  677. package/src/console/ui-next/src/features/vault/lib/contract-ops.test.ts +35 -0
  678. package/src/console/ui-next/src/features/vault/lib/contract-ops.ts +94 -0
  679. package/src/console/ui-next/src/features/vault/lib/dormant.ts +28 -0
  680. package/src/console/ui-next/src/features/vault/lib/export-safe.test.ts +25 -0
  681. package/src/console/ui-next/src/features/vault/lib/export-safe.ts +62 -0
  682. package/src/console/ui-next/src/features/vault/lib/fixture.ts +92 -0
  683. package/src/console/ui-next/src/features/vault/lib/group.test.ts +31 -0
  684. package/src/console/ui-next/src/features/vault/lib/group.ts +43 -0
  685. package/src/console/ui-next/src/features/vault/lib/posture.test.ts +137 -0
  686. package/src/console/ui-next/src/features/vault/lib/posture.ts +275 -0
  687. package/src/console/ui-next/src/features/vault/lib/progress.test.ts +36 -0
  688. package/src/console/ui-next/src/features/vault/lib/progress.ts +51 -0
  689. package/src/console/ui-next/src/features/vault/lib/search.test.ts +139 -0
  690. package/src/console/ui-next/src/features/vault/lib/search.ts +403 -0
  691. package/src/console/ui-next/src/features/vault/lib/theme.ts +14 -0
  692. package/src/console/ui-next/src/features/vault/lib/types.ts +114 -0
  693. package/src/console/ui-next/src/features/vault/lib/write-review.test.ts +139 -0
  694. package/src/console/ui-next/src/features/vault/lib/write-review.ts +115 -0
  695. package/src/console/ui-next/src/features/vault/sheets/vault-create-sheet.tsx +209 -0
  696. package/src/console/ui-next/src/features/vault/sheets/vault-master-key-sheet.tsx +87 -0
  697. package/src/console/ui-next/src/features/vault/sheets/vault-rotate-master-sheet.tsx +43 -0
  698. package/src/console/ui-next/src/features/vault/sheets/vault-security-sheet.tsx +205 -0
  699. package/src/console/ui-next/src/features/vault/sheets/vault-verify-sheet.tsx +103 -0
  700. package/src/console/ui-next/src/features/vault/sheets/vault-write-review-dialog.test.tsx +175 -0
  701. package/src/console/ui-next/src/features/vault/sheets/vault-write-review-dialog.tsx +135 -0
  702. package/src/console/ui-next/src/features/vault/sheets/vault-write-sheet.tsx +224 -0
  703. package/src/console/ui-next/src/features/vault/state/vault-selection.test.ts +20 -0
  704. package/src/console/ui-next/src/features/vault/state/vault-selection.ts +87 -0
  705. package/src/console/ui-next/src/features/vault/vault-page.tsx +439 -0
  706. package/src/console/ui-next/src/hooks/use-mobile.ts +22 -0
  707. package/src/console/ui-next/src/lib/document-meta.test.ts +43 -0
  708. package/src/console/ui-next/src/lib/document-meta.ts +34 -0
  709. package/src/console/ui-next/src/lib/ease.ts +59 -0
  710. package/src/console/ui-next/src/lib/element-icons.test.ts +38 -0
  711. package/src/console/ui-next/src/lib/element-icons.ts +75 -0
  712. package/src/console/ui-next/src/lib/highlight.test.ts +30 -0
  713. package/src/console/ui-next/src/lib/highlight.ts +39 -0
  714. package/src/console/ui-next/src/lib/hooks/use-hover-capable.ts +30 -0
  715. package/src/console/ui-next/src/lib/last-module-search.test.ts +47 -0
  716. package/src/console/ui-next/src/lib/last-module-search.ts +164 -0
  717. package/src/console/ui-next/src/lib/motion.ts +16 -0
  718. package/src/console/ui-next/src/lib/shiki.ts +42 -0
  719. package/src/console/ui-next/src/lib/shortcut-keys.tsx +47 -0
  720. package/src/console/ui-next/src/lib/shortcut.test.ts +70 -0
  721. package/src/console/ui-next/src/lib/shortcut.ts +111 -0
  722. package/src/console/ui-next/src/lib/use-console-shortcuts.ts +56 -0
  723. package/src/console/ui-next/src/lib/use-last-module-search.ts +37 -0
  724. package/src/console/ui-next/src/lib/utils.ts +15 -0
  725. package/src/console/ui-next/src/main.tsx +44 -0
  726. package/src/console/ui-next/src/router.tsx +175 -0
  727. package/src/console/ui-next/src/styles.css +384 -0
  728. package/src/console/ui-next/src/vite-env.d.ts +17 -0
  729. package/src/console/ui-next/tsconfig.json +25 -0
  730. package/src/console/ui-next/ui-next-dev-operator.test.ts +76 -0
  731. package/src/console/ui-next/ui-next-dev-operator.ts +81 -0
  732. package/src/console/ui-next/ui-next-seed-app-schema.ts +526 -0
  733. package/src/console/ui-next/ui-next-seed-manifest-surface.ts +882 -0
  734. package/src/console/ui-next/ui-next-seed-manifest.ts +635 -0
  735. package/src/console/ui-next/ui-next-seed-runs.ts +1429 -0
  736. package/src/console/ui-next/ui-next-seed-store.ts +1125 -0
  737. package/src/console/ui-next/ui-next-seed.test.ts +511 -0
  738. package/src/console/ui-next/ui-next-seed.ts +122 -0
  739. package/src/console/ui-next/vite-console-kernel-plugin.ts +195 -0
  740. package/src/console/ui-next/vite.config.ts +88 -0
  741. package/src/console/xss.gate.test.ts +21 -26
  742. package/src/docker/compose.ts +26 -7
  743. package/src/docker/derive.ts +67 -13
  744. package/src/docker/docker.test.ts +219 -27
  745. package/src/docker/helpers.ts +20 -0
  746. package/src/docker/images-config.test.ts +29 -22
  747. package/src/docker/index.ts +8 -0
  748. package/src/docker/postgres-advisor.integration.test.ts +163 -0
  749. package/src/docker/query-passthrough.integration.test.ts +212 -0
  750. package/src/docker/recipes/index.ts +13 -0
  751. package/src/docker/recipes/llama-cpp.ts +3 -3
  752. package/src/docker/recipes/nginx.ts +61 -0
  753. package/src/docker/recipes/ollama.ts +1 -1
  754. package/src/docker/recipes/postgres-advisor.ts +58 -0
  755. package/src/docker/recipes/postgres.ts +6 -2
  756. package/src/docker/recipes/sglang.ts +1 -1
  757. package/src/docker/recipes/timescale.ts +6 -2
  758. package/src/docker/recipes/traefik.ts +1 -0
  759. package/src/docker/recipes/vllm.ts +1 -1
  760. package/src/docker/stack-id.test.ts +5 -14
  761. package/src/docker/stack-id.ts +15 -35
  762. package/src/docker/stack.integration.test.ts +2 -2
  763. package/src/docker/types.ts +16 -7
  764. package/src/drivers/ai-mock.ts +41 -1
  765. package/src/drivers/ai-openai-compatible.ts +19 -1
  766. package/src/drivers/index.ts +32 -0
  767. package/src/drivers/instances-postgres.ts +154 -0
  768. package/src/drivers/meilisearch.integration.test.ts +9 -0
  769. package/src/drivers/meilisearch.test.ts +134 -6
  770. package/src/drivers/meilisearch.ts +77 -8
  771. package/src/drivers/memory.ts +384 -24
  772. package/src/drivers/pg-extensions.test.ts +50 -0
  773. package/src/drivers/pg-extensions.ts +1054 -0
  774. package/src/drivers/pg-rls.test.ts +71 -0
  775. package/src/drivers/pg-rls.ts +234 -0
  776. package/src/drivers/pgvector.ts +24 -0
  777. package/src/drivers/redis.ts +12 -0
  778. package/src/drivers/s3-ensure-bucket.test.ts +88 -0
  779. package/src/drivers/s3-ensure-bucket.ts +152 -0
  780. package/src/drivers/s3.ts +34 -2
  781. package/src/drivers/types.ts +28 -0
  782. package/src/drivers/vault-1password.test.ts +164 -0
  783. package/src/drivers/vault-1password.ts +351 -0
  784. package/src/drivers/vault-aws-secrets-manager.ts +15 -94
  785. package/src/drivers/vault-azure-key-vault.test.ts +137 -0
  786. package/src/drivers/vault-azure-key-vault.ts +243 -0
  787. package/src/drivers/vault-doppler.test.ts +133 -0
  788. package/src/drivers/vault-doppler.ts +202 -0
  789. package/src/drivers/vault-dotenv-parse.ts +32 -0
  790. package/src/drivers/vault-env.ts +1 -1
  791. package/src/drivers/vault-gcp-secret-manager.test.ts +127 -0
  792. package/src/drivers/vault-gcp-secret-manager.ts +291 -0
  793. package/src/drivers/vault-managed.test.ts +23 -26
  794. package/src/drivers/vault-managed.ts +58 -20
  795. package/src/drivers/vault-remote-bag.ts +242 -0
  796. package/src/drivers/vault-types.ts +9 -7
  797. package/src/elements/ai/runtime.ts +100 -8
  798. package/src/elements/ai/schema.test.ts +133 -0
  799. package/src/elements/ai/schema.ts +156 -11
  800. package/src/elements/ai.test.ts +53 -0
  801. package/src/elements/ai.ts +1 -0
  802. package/src/elements/clock/runtime.ts +31 -13
  803. package/src/elements/clock.test.ts +49 -0
  804. package/src/elements/gate/config.ts +18 -3
  805. package/src/elements/gate/declare.ts +25 -5
  806. package/src/elements/gate/flatten.ts +74 -0
  807. package/src/elements/gate/permissions.ts +1 -0
  808. package/src/elements/gate/runtime.ts +16 -4
  809. package/src/elements/gate.test.ts +32 -0
  810. package/src/elements/gate.ts +9 -1
  811. package/src/elements/store/cache.test.ts +79 -0
  812. package/src/elements/store/cache.ts +176 -0
  813. package/src/elements/store/classify.ts +79 -4
  814. package/src/elements/store/emit-drizzle.ts +3 -1
  815. package/src/elements/store/files-policy.test.ts +36 -1
  816. package/src/elements/store/files-policy.ts +151 -0
  817. package/src/elements/store/resource-list-docs.fixture.ts +0 -2
  818. package/src/elements/store/resource-list-docs.test.ts +3 -0
  819. package/src/elements/store/resource.test.ts +62 -2
  820. package/src/elements/store/resource.ts +279 -62
  821. package/src/elements/store/runtime.ts +53 -2
  822. package/src/elements/store/schema-decl.test.ts +49 -0
  823. package/src/elements/store/schema-decl.ts +29 -9
  824. package/src/elements/store/seed.test.ts +22 -1
  825. package/src/elements/store/seed.ts +46 -1
  826. package/src/elements/store/sql-session.ts +32 -7
  827. package/src/elements/store/table.ts +17 -1
  828. package/src/elements/store/upsert-app.test.ts +1 -1
  829. package/src/elements/store.test.ts +21 -0
  830. package/src/elements/store.ts +26 -3
  831. package/src/elements/vault/boot-chain.test.ts +108 -10
  832. package/src/elements/vault/boot-chain.ts +15 -15
  833. package/src/elements/vault/builtin-adapter.test.ts +1 -0
  834. package/src/elements/vault/builtin-adapter.ts +12 -0
  835. package/src/elements/vault/chain.ts +6 -20
  836. package/src/elements/vault/declare.ts +5 -2
  837. package/src/elements/vault/runtime.ts +47 -13
  838. package/src/elements/vault/storage.ts +35 -4
  839. package/src/elements/vault.test.ts +1 -0
  840. package/src/elements/vault.ts +2 -0
  841. package/src/full.ts +10 -0
  842. package/src/http.ts +1 -1
  843. package/src/index.ts +8 -0
  844. package/src/kernel/adopt-barrel-fresh.test.ts +1 -2
  845. package/src/kernel/app-auth.ts +8 -1
  846. package/src/kernel/app.ts +245 -25
  847. package/src/kernel/auth-resolve.ts +51 -0
  848. package/src/kernel/auto-cache.test.ts +270 -0
  849. package/src/kernel/boot-bind/ai.test.ts +34 -1
  850. package/src/kernel/boot-bind/ai.ts +15 -2
  851. package/src/kernel/boot-bind/channel.test.ts +1 -1
  852. package/src/kernel/boot-bind/channel.ts +1 -1
  853. package/src/kernel/boot-bind/clock.ts +9 -7
  854. package/src/kernel/boot-bind/gate.ts +1 -1
  855. package/src/kernel/boot-bind/honor-config.test.ts +70 -3
  856. package/src/kernel/boot-bind/instances.ts +58 -0
  857. package/src/kernel/boot-bind/journal.ts +3 -2
  858. package/src/kernel/boot-bind/runs.ts +63 -5
  859. package/src/kernel/boot-bind/signal.ts +1 -1
  860. package/src/kernel/boot-bind/store.ts +4 -4
  861. package/src/kernel/boot.test.ts +9 -9
  862. package/src/kernel/boot.ts +115 -16
  863. package/src/kernel/capability.test.ts +42 -0
  864. package/src/kernel/capability.ts +44 -2
  865. package/src/kernel/compensate.test.ts +34 -1
  866. package/src/kernel/compensate.ts +19 -0
  867. package/src/kernel/effect-timing.test.ts +16 -0
  868. package/src/kernel/effects-stamping.test.ts +3 -3
  869. package/src/kernel/effects.test.ts +15 -0
  870. package/src/kernel/effects.ts +39 -5
  871. package/src/kernel/elapsed.test.ts +26 -0
  872. package/src/kernel/elapsed.ts +23 -0
  873. package/src/kernel/errors.ts +26 -3
  874. package/src/kernel/flow.ts +5 -1
  875. package/src/kernel/fx-ask-telemetry.test.ts +114 -0
  876. package/src/kernel/fx.test.ts +143 -2
  877. package/src/kernel/fx.ts +136 -19
  878. package/src/kernel/graceful-shutdown.test.ts +20 -0
  879. package/src/kernel/graceful-shutdown.ts +9 -3
  880. package/src/kernel/horizontal-child.ts +4 -4
  881. package/src/kernel/http-query.test.ts +184 -0
  882. package/src/kernel/http-resource.ts +55 -0
  883. package/src/kernel/index.ts +43 -0
  884. package/src/kernel/instance-id.ts +23 -0
  885. package/src/kernel/instances-chaos-child.ts +73 -0
  886. package/src/kernel/instances.chaos.test.ts +238 -0
  887. package/src/kernel/instances.test.ts +85 -0
  888. package/src/kernel/instances.ts +372 -0
  889. package/src/kernel/lazy-require.ts +20 -0
  890. package/src/kernel/list-page.test.ts +194 -0
  891. package/src/kernel/list-page.ts +515 -0
  892. package/src/kernel/list-query.ts +469 -0
  893. package/src/kernel/pipeline-api-key.test.ts +266 -0
  894. package/src/kernel/pipeline.test.ts +164 -2
  895. package/src/kernel/pipeline.ts +13 -1
  896. package/src/kernel/plugin-elements.test.ts +1 -1
  897. package/src/kernel/plugin-needs.test.ts +1 -1
  898. package/src/kernel/plugin.ts +5 -5
  899. package/src/kernel/ready.test.ts +22 -2
  900. package/src/kernel/registry.ts +8 -4
  901. package/src/kernel/resource-mount.test.ts +75 -0
  902. package/src/kernel/router/index.ts +2 -0
  903. package/src/kernel/router/linear.ts +7 -0
  904. package/src/kernel/router/regexp.ts +8 -0
  905. package/src/kernel/router/smart.ts +7 -3
  906. package/src/kernel/router/trie.ts +7 -0
  907. package/src/kernel/router/types.ts +41 -1
  908. package/src/kernel/router.test.ts +27 -0
  909. package/src/kernel/router.ts +2 -0
  910. package/src/kernel/run-duration.test.ts +92 -0
  911. package/src/kernel/run-telemetry.ts +8 -2
  912. package/src/kernel/triggers.ts +95 -74
  913. package/src/manifest/sql-resource.test.ts +29 -0
  914. package/src/manifest/sql-resource.ts +20 -4
  915. package/src/manifest/types.ts +8 -3
  916. package/src/plugins/auth-delivery.mailpit.integration.test.ts +1 -1
  917. package/src/plugins/auth-methods.security.test.ts +3 -3
  918. package/src/plugins/auth-methods.test.ts +2 -2
  919. package/src/plugins/cors.test.ts +4 -2
  920. package/src/plugins/cors.ts +11 -2
  921. package/src/plugins/csrf.test.ts +17 -0
  922. package/src/plugins/csrf.ts +1 -1
  923. package/src/plugins/username-policy.test.ts +8 -8
  924. package/src/plugins/username.ts +1 -1
  925. package/src/release/build-lib.ts +7 -1
  926. package/src/release/limits.ts +2 -2
  927. package/src/release/measure.ts +7 -10
  928. package/src/runs/bridge-to-console.ts +99 -0
  929. package/src/runs/collect.test.ts +68 -0
  930. package/src/runs/collect.ts +29 -2
  931. package/src/runs/drivers/clickhouse.ts +4 -1
  932. package/src/runs/drivers/files.ts +138 -33
  933. package/src/runs/drivers/memory.ts +46 -7
  934. package/src/runs/drivers/postgres.ts +4 -1
  935. package/src/runs/duckdb.test.ts +33 -0
  936. package/src/runs/duckdb.ts +41 -0
  937. package/src/runs/history.ts +61 -0
  938. package/src/runs/index.ts +29 -1
  939. package/src/runs/parquet.test.ts +110 -0
  940. package/src/runs/parquet.ts +129 -8
  941. package/src/runs/retention.test.ts +24 -0
  942. package/src/runs/retention.ts +42 -0
  943. package/src/runs/runs.test.ts +101 -0
  944. package/src/runs/runtime.ts +5 -3
  945. package/src/runs/types.ts +33 -4
  946. package/src/runtime/bun.ts +61 -4
  947. package/src/runtime/dev-request-log.test.ts +4 -0
  948. package/src/runtime/dev-request-log.ts +19 -2
  949. package/src/runtime/index.ts +8 -1
  950. package/src/runtime/json-code-block.test.ts +355 -0
  951. package/src/runtime/json-code-block.ts +961 -0
  952. package/src/runtime/serve.test.ts +49 -4
  953. package/src/term.test.ts +89 -1
  954. package/src/term.ts +103 -29
  955. package/src/test/create-test-app.ts +3 -1
  956. package/src/console/ui/access/AccessA11yView.tsx +0 -222
  957. package/src/console/ui/access/a11y.test.tsx +0 -113
  958. package/src/console/ui/access/acknowledgement.test.ts +0 -10
  959. package/src/console/ui/access/acknowledgement.ts +0 -33
  960. package/src/console/ui/access/blast-radius.test.ts +0 -26
  961. package/src/console/ui/access/blast-radius.ts +0 -38
  962. package/src/console/ui/access/confirmation.test.ts +0 -34
  963. package/src/console/ui/access/confirmation.ts +0 -33
  964. package/src/console/ui/access/fixture.ts +0 -199
  965. package/src/console/ui/access/grantable.test.ts +0 -15
  966. package/src/console/ui/access/grantable.ts +0 -31
  967. package/src/console/ui/access/hygiene.test.ts +0 -12
  968. package/src/console/ui/access/hygiene.ts +0 -39
  969. package/src/console/ui/access/index.ts +0 -47
  970. package/src/console/ui/access/provenance.test.ts +0 -10
  971. package/src/console/ui/access/provenance.ts +0 -25
  972. package/src/console/ui/access/search.test.ts +0 -13
  973. package/src/console/ui/access/search.ts +0 -68
  974. package/src/console/ui/access/types.ts +0 -111
  975. package/src/console/ui/ai/AiA11yView.tsx +0 -254
  976. package/src/console/ui/ai/a11y.test.tsx +0 -96
  977. package/src/console/ui/ai/findings.ts +0 -41
  978. package/src/console/ui/ai/fixture.ts +0 -177
  979. package/src/console/ui/ai/format.ts +0 -88
  980. package/src/console/ui/ai/group.test.ts +0 -35
  981. package/src/console/ui/ai/group.ts +0 -80
  982. package/src/console/ui/ai/index.ts +0 -59
  983. package/src/console/ui/ai/promotion.test.ts +0 -72
  984. package/src/console/ui/ai/promotion.ts +0 -141
  985. package/src/console/ui/ai/search.test.ts +0 -31
  986. package/src/console/ui/ai/search.ts +0 -79
  987. package/src/console/ui/ai/types.ts +0 -132
  988. package/src/console/ui/architecture/ArchitectureA11yView.tsx +0 -142
  989. package/src/console/ui/architecture/a11y.test.tsx +0 -96
  990. package/src/console/ui/architecture/boundary.ts +0 -42
  991. package/src/console/ui/architecture/declared.ts +0 -161
  992. package/src/console/ui/architecture/fixture.ts +0 -74
  993. package/src/console/ui/architecture/index.ts +0 -56
  994. package/src/console/ui/architecture/layers.ts +0 -64
  995. package/src/console/ui/architecture/layout.ts +0 -66
  996. package/src/console/ui/architecture/pathologies.ts +0 -251
  997. package/src/console/ui/architecture/search.ts +0 -136
  998. package/src/console/ui/architecture/traffic.ts +0 -92
  999. package/src/console/ui/architecture/types.ts +0 -136
  1000. package/src/console/ui/architecture/view.test.ts +0 -153
  1001. package/src/console/ui/architecture/view.ts +0 -489
  1002. package/src/console/ui/channels/ChannelsA11yView.tsx +0 -171
  1003. package/src/console/ui/channels/a11y.test.tsx +0 -95
  1004. package/src/console/ui/channels/confirmation.test.ts +0 -34
  1005. package/src/console/ui/channels/confirmation.ts +0 -24
  1006. package/src/console/ui/channels/fallback.test.ts +0 -15
  1007. package/src/console/ui/channels/fallback.ts +0 -20
  1008. package/src/console/ui/channels/findings.ts +0 -34
  1009. package/src/console/ui/channels/fixture.ts +0 -134
  1010. package/src/console/ui/channels/group.ts +0 -25
  1011. package/src/console/ui/channels/index.ts +0 -51
  1012. package/src/console/ui/channels/locale.test.ts +0 -15
  1013. package/src/console/ui/channels/locale.ts +0 -25
  1014. package/src/console/ui/channels/mask.test.ts +0 -14
  1015. package/src/console/ui/channels/mask.ts +0 -12
  1016. package/src/console/ui/channels/search.ts +0 -49
  1017. package/src/console/ui/channels/taxonomy.test.ts +0 -17
  1018. package/src/console/ui/channels/taxonomy.ts +0 -47
  1019. package/src/console/ui/channels/types.ts +0 -118
  1020. package/src/console/ui/clock/ClockA11yView.tsx +0 -165
  1021. package/src/console/ui/clock/a11y.test.tsx +0 -96
  1022. package/src/console/ui/clock/confirmation.test.ts +0 -30
  1023. package/src/console/ui/clock/confirmation.ts +0 -31
  1024. package/src/console/ui/clock/findings.ts +0 -37
  1025. package/src/console/ui/clock/fixture.ts +0 -111
  1026. package/src/console/ui/clock/health.test.ts +0 -25
  1027. package/src/console/ui/clock/health.ts +0 -56
  1028. package/src/console/ui/clock/index.ts +0 -41
  1029. package/src/console/ui/clock/search.test.ts +0 -37
  1030. package/src/console/ui/clock/search.ts +0 -72
  1031. package/src/console/ui/clock/timeline.test.ts +0 -42
  1032. package/src/console/ui/clock/timeline.ts +0 -41
  1033. package/src/console/ui/clock/types.ts +0 -79
  1034. package/src/console/ui/clock/waiting-on.test.ts +0 -30
  1035. package/src/console/ui/clock/waiting-on.ts +0 -78
  1036. package/src/console/ui/confirmation.unify.test.ts +0 -92
  1037. package/src/console/ui/diff/DiffA11yView.tsx +0 -76
  1038. package/src/console/ui/diff/a11y.test.tsx +0 -96
  1039. package/src/console/ui/diff/fixture.ts +0 -85
  1040. package/src/console/ui/diff/group.test.ts +0 -48
  1041. package/src/console/ui/diff/group.ts +0 -91
  1042. package/src/console/ui/diff/index.ts +0 -32
  1043. package/src/console/ui/diff/search.test.ts +0 -28
  1044. package/src/console/ui/diff/search.ts +0 -63
  1045. package/src/console/ui/diff/summary.ts +0 -73
  1046. package/src/console/ui/diff/types.ts +0 -48
  1047. package/src/console/ui/display.test.ts +0 -14
  1048. package/src/console/ui/display.ts +0 -9
  1049. package/src/console/ui/dist/assets/index--Y0Uaz-m.js +0 -10
  1050. package/src/console/ui/dist/assets/panel-access-ri1X9Otj.js +0 -64
  1051. package/src/console/ui/dist/assets/panel-ai-DLHjRoJk.js +0 -1
  1052. package/src/console/ui/dist/assets/panel-architecture-DI3bQF3J.js +0 -1
  1053. package/src/console/ui/dist/assets/panel-channels-BDYWX29p.js +0 -1
  1054. package/src/console/ui/dist/assets/panel-clock-i-JpTjVB.js +0 -1
  1055. package/src/console/ui/dist/assets/panel-diff-CFuWxiXy.js +0 -1
  1056. package/src/console/ui/dist/assets/panel-flows-B8TRhcoe.js +0 -48
  1057. package/src/console/ui/dist/assets/panel-gates-CfkBgco7.js +0 -1
  1058. package/src/console/ui/dist/assets/panel-overview-CW0CQEc2.js +0 -1
  1059. package/src/console/ui/dist/assets/panel-plugins-DDJwTehL.js +0 -1
  1060. package/src/console/ui/dist/assets/panel-runs-BxuyDI3x.js +0 -1
  1061. package/src/console/ui/dist/assets/panel-signals-BXofbj7v.js +0 -1
  1062. package/src/console/ui/dist/assets/panel-store-B8mH-arU.js +0 -1
  1063. package/src/console/ui/dist/assets/panel-traces-DSA-ZWnf.js +0 -1
  1064. package/src/console/ui/dist/assets/panel-vault-BkZdJPX8.js +0 -1
  1065. package/src/console/ui/dist/assets/rolldown-runtime-B0Z9INg1.js +0 -1
  1066. package/src/console/ui/dist/assets/style-C3L349iZ.css +0 -3
  1067. package/src/console/ui/dist/favicon.svg +0 -7
  1068. package/src/console/ui/dist/index.html +0 -15
  1069. package/src/console/ui/flows/FlowsA11yView.tsx +0 -140
  1070. package/src/console/ui/flows/a11y.test.tsx +0 -99
  1071. package/src/console/ui/flows/buffer.test.ts +0 -83
  1072. package/src/console/ui/flows/buffer.ts +0 -111
  1073. package/src/console/ui/flows/confirmation.ts +0 -129
  1074. package/src/console/ui/flows/contract.test.ts +0 -85
  1075. package/src/console/ui/flows/contract.ts +0 -329
  1076. package/src/console/ui/flows/fixture.ts +0 -81
  1077. package/src/console/ui/flows/graph.test.ts +0 -93
  1078. package/src/console/ui/flows/graph.ts +0 -539
  1079. package/src/console/ui/flows/index.ts +0 -82
  1080. package/src/console/ui/flows/save-as-test.test.ts +0 -47
  1081. package/src/console/ui/flows/save-as-test.ts +0 -97
  1082. package/src/console/ui/flows/search.ts +0 -238
  1083. package/src/console/ui/flows/tiers.ts +0 -133
  1084. package/src/console/ui/gates/GatesA11yView.tsx +0 -183
  1085. package/src/console/ui/gates/a11y.test.tsx +0 -113
  1086. package/src/console/ui/gates/audit.test.ts +0 -40
  1087. package/src/console/ui/gates/audit.ts +0 -61
  1088. package/src/console/ui/gates/denial.test.ts +0 -34
  1089. package/src/console/ui/gates/denial.ts +0 -43
  1090. package/src/console/ui/gates/findings.ts +0 -17
  1091. package/src/console/ui/gates/fixture.ts +0 -193
  1092. package/src/console/ui/gates/group.test.ts +0 -30
  1093. package/src/console/ui/gates/group.ts +0 -94
  1094. package/src/console/ui/gates/index.ts +0 -39
  1095. package/src/console/ui/gates/search.test.ts +0 -49
  1096. package/src/console/ui/gates/search.ts +0 -108
  1097. package/src/console/ui/gates/types.ts +0 -124
  1098. package/src/console/ui/overview/OverviewA11yView.tsx +0 -134
  1099. package/src/console/ui/overview/a11y.test.tsx +0 -112
  1100. package/src/console/ui/overview/busiest.ts +0 -24
  1101. package/src/console/ui/overview/compose.ts +0 -121
  1102. package/src/console/ui/overview/cost.test.ts +0 -39
  1103. package/src/console/ui/overview/cost.ts +0 -134
  1104. package/src/console/ui/overview/fixture.ts +0 -156
  1105. package/src/console/ui/overview/golden.ts +0 -47
  1106. package/src/console/ui/overview/index.ts +0 -52
  1107. package/src/console/ui/overview/rank.test.ts +0 -129
  1108. package/src/console/ui/overview/rank.ts +0 -205
  1109. package/src/console/ui/overview/slo.test.ts +0 -69
  1110. package/src/console/ui/overview/slo.ts +0 -240
  1111. package/src/console/ui/overview/types.ts +0 -127
  1112. package/src/console/ui/overview/verdict.ts +0 -124
  1113. package/src/console/ui/plugins/PluginsA11yView.tsx +0 -217
  1114. package/src/console/ui/plugins/a11y.test.tsx +0 -96
  1115. package/src/console/ui/plugins/command.test.ts +0 -22
  1116. package/src/console/ui/plugins/command.ts +0 -27
  1117. package/src/console/ui/plugins/findings.ts +0 -39
  1118. package/src/console/ui/plugins/fixture.ts +0 -238
  1119. package/src/console/ui/plugins/group.test.ts +0 -36
  1120. package/src/console/ui/plugins/group.ts +0 -62
  1121. package/src/console/ui/plugins/index.ts +0 -30
  1122. package/src/console/ui/plugins/search.ts +0 -55
  1123. package/src/console/ui/plugins/types.ts +0 -118
  1124. package/src/console/ui/runs/RunsA11yView.tsx +0 -252
  1125. package/src/console/ui/runs/a11y.test.tsx +0 -96
  1126. package/src/console/ui/runs/errors.test.ts +0 -53
  1127. package/src/console/ui/runs/errors.ts +0 -88
  1128. package/src/console/ui/runs/explain.test.ts +0 -23
  1129. package/src/console/ui/runs/explain.ts +0 -28
  1130. package/src/console/ui/runs/fixture.ts +0 -189
  1131. package/src/console/ui/runs/group.test.ts +0 -24
  1132. package/src/console/ui/runs/group.ts +0 -76
  1133. package/src/console/ui/runs/histogram.test.ts +0 -22
  1134. package/src/console/ui/runs/histogram.ts +0 -82
  1135. package/src/console/ui/runs/index.ts +0 -69
  1136. package/src/console/ui/runs/project.ts +0 -118
  1137. package/src/console/ui/runs/query.test.ts +0 -48
  1138. package/src/console/ui/runs/query.ts +0 -260
  1139. package/src/console/ui/runs/search.test.ts +0 -45
  1140. package/src/console/ui/runs/search.ts +0 -143
  1141. package/src/console/ui/runs/trace-link.test.ts +0 -26
  1142. package/src/console/ui/runs/trace-link.ts +0 -87
  1143. package/src/console/ui/runs/types.ts +0 -135
  1144. package/src/console/ui/shell/App.tsx +0 -88
  1145. package/src/console/ui/shell/client.ts +0 -1642
  1146. package/src/console/ui/shell/components/oke-logo.tsx +0 -40
  1147. package/src/console/ui/shell/components/ui.tsx +0 -111
  1148. package/src/console/ui/shell/index.html +0 -13
  1149. package/src/console/ui/shell/layout/Shell.tsx +0 -92
  1150. package/src/console/ui/shell/main.tsx +0 -216
  1151. package/src/console/ui/shell/panels/Access.tsx +0 -5
  1152. package/src/console/ui/shell/panels/Ai.tsx +0 -5
  1153. package/src/console/ui/shell/panels/Architecture.tsx +0 -5
  1154. package/src/console/ui/shell/panels/Channels.tsx +0 -5
  1155. package/src/console/ui/shell/panels/Clock.tsx +0 -5
  1156. package/src/console/ui/shell/panels/Diff.tsx +0 -5
  1157. package/src/console/ui/shell/panels/Flows.tsx +0 -5
  1158. package/src/console/ui/shell/panels/Gates.tsx +0 -5
  1159. package/src/console/ui/shell/panels/Overview.tsx +0 -6
  1160. package/src/console/ui/shell/panels/Plugins.tsx +0 -5
  1161. package/src/console/ui/shell/panels/Runs.tsx +0 -5
  1162. package/src/console/ui/shell/panels/Signals.tsx +0 -5
  1163. package/src/console/ui/shell/panels/Store.tsx +0 -5
  1164. package/src/console/ui/shell/panels/Traces.tsx +0 -5
  1165. package/src/console/ui/shell/panels/Vault.tsx +0 -5
  1166. package/src/console/ui/shell/panels/access/AccessPanel.tsx +0 -749
  1167. package/src/console/ui/shell/panels/ai/AiPanel.tsx +0 -492
  1168. package/src/console/ui/shell/panels/architecture/ArchitecturePanel.tsx +0 -329
  1169. package/src/console/ui/shell/panels/channels/ChannelsPanel.tsx +0 -422
  1170. package/src/console/ui/shell/panels/clock/ClockPanel.tsx +0 -454
  1171. package/src/console/ui/shell/panels/diff/DiffPanel.tsx +0 -234
  1172. package/src/console/ui/shell/panels/flows/ContractEditor.tsx +0 -284
  1173. package/src/console/ui/shell/panels/flows/FlowDrawer.tsx +0 -335
  1174. package/src/console/ui/shell/panels/flows/FlowsPanel.tsx +0 -482
  1175. package/src/console/ui/shell/panels/gates/GatesPanel.tsx +0 -433
  1176. package/src/console/ui/shell/panels/overview/OverviewPanel.tsx +0 -398
  1177. package/src/console/ui/shell/panels/plugins/PluginsPanel.tsx +0 -402
  1178. package/src/console/ui/shell/panels/runs/RunsPanel.tsx +0 -652
  1179. package/src/console/ui/shell/panels/signals/SignalsPanel.tsx +0 -788
  1180. package/src/console/ui/shell/panels/store/StorePanel.tsx +0 -755
  1181. package/src/console/ui/shell/panels/traces/TracesPanel.tsx +0 -478
  1182. package/src/console/ui/shell/panels/vault/VaultPanel.tsx +0 -477
  1183. package/src/console/ui/shell/plugin/Sandbox.tsx +0 -29
  1184. package/src/console/ui/shell/public/favicon.svg +0 -7
  1185. package/src/console/ui/shell/setup/Wizard.tsx +0 -211
  1186. package/src/console/ui/shell/styles.css +0 -74
  1187. package/src/console/ui/signals/SignalsA11yView.tsx +0 -252
  1188. package/src/console/ui/signals/a11y.test.tsx +0 -96
  1189. package/src/console/ui/signals/confirmation.test.ts +0 -35
  1190. package/src/console/ui/signals/confirmation.ts +0 -59
  1191. package/src/console/ui/signals/dry-run.test.ts +0 -18
  1192. package/src/console/ui/signals/dry-run.ts +0 -34
  1193. package/src/console/ui/signals/durable.test.ts +0 -22
  1194. package/src/console/ui/signals/durable.ts +0 -39
  1195. package/src/console/ui/signals/findings.ts +0 -31
  1196. package/src/console/ui/signals/fixture.ts +0 -242
  1197. package/src/console/ui/signals/group.test.ts +0 -26
  1198. package/src/console/ui/signals/group.ts +0 -41
  1199. package/src/console/ui/signals/index.ts +0 -49
  1200. package/src/console/ui/signals/monitor.test.ts +0 -30
  1201. package/src/console/ui/signals/monitor.ts +0 -74
  1202. package/src/console/ui/signals/schema-form.test.ts +0 -23
  1203. package/src/console/ui/signals/schema-form.ts +0 -109
  1204. package/src/console/ui/signals/search.ts +0 -93
  1205. package/src/console/ui/signals/types.ts +0 -72
  1206. package/src/console/ui/store/StoreA11yView.tsx +0 -193
  1207. package/src/console/ui/store/a11y.test.tsx +0 -96
  1208. package/src/console/ui/store/cache-view.test.ts +0 -13
  1209. package/src/console/ui/store/cache-view.ts +0 -36
  1210. package/src/console/ui/store/confirmation.test.ts +0 -36
  1211. package/src/console/ui/store/confirmation.ts +0 -52
  1212. package/src/console/ui/store/dry-run.test.ts +0 -15
  1213. package/src/console/ui/store/dry-run.ts +0 -26
  1214. package/src/console/ui/store/fixture.ts +0 -167
  1215. package/src/console/ui/store/group.test.ts +0 -16
  1216. package/src/console/ui/store/group.ts +0 -38
  1217. package/src/console/ui/store/index.ts +0 -36
  1218. package/src/console/ui/store/search.ts +0 -74
  1219. package/src/console/ui/store/types.ts +0 -67
  1220. package/src/console/ui/store/will-not-fire.test.ts +0 -19
  1221. package/src/console/ui/store/will-not-fire.ts +0 -39
  1222. package/src/console/ui/traces/TracesA11yView.tsx +0 -181
  1223. package/src/console/ui/traces/a11y.test.tsx +0 -96
  1224. package/src/console/ui/traces/chain.test.ts +0 -47
  1225. package/src/console/ui/traces/chain.ts +0 -142
  1226. package/src/console/ui/traces/critical-path.test.ts +0 -22
  1227. package/src/console/ui/traces/critical-path.ts +0 -55
  1228. package/src/console/ui/traces/filter.test.ts +0 -74
  1229. package/src/console/ui/traces/filter.ts +0 -104
  1230. package/src/console/ui/traces/fixture.ts +0 -126
  1231. package/src/console/ui/traces/fold.test.ts +0 -59
  1232. package/src/console/ui/traces/fold.ts +0 -168
  1233. package/src/console/ui/traces/index.ts +0 -64
  1234. package/src/console/ui/traces/mini.ts +0 -63
  1235. package/src/console/ui/traces/replay.test.ts +0 -22
  1236. package/src/console/ui/traces/replay.ts +0 -33
  1237. package/src/console/ui/traces/sampling.test.ts +0 -26
  1238. package/src/console/ui/traces/sampling.ts +0 -63
  1239. package/src/console/ui/traces/search.ts +0 -135
  1240. package/src/console/ui/traces/tier.ts +0 -70
  1241. package/src/console/ui/traces/types.ts +0 -125
  1242. package/src/console/ui/tsconfig.json +0 -20
  1243. package/src/console/ui/vault/VaultA11yView.tsx +0 -197
  1244. package/src/console/ui/vault/a11y.test.tsx +0 -96
  1245. package/src/console/ui/vault/backend.test.ts +0 -75
  1246. package/src/console/ui/vault/backend.ts +0 -117
  1247. package/src/console/ui/vault/blast-radius.ts +0 -53
  1248. package/src/console/ui/vault/confirmation.test.ts +0 -37
  1249. package/src/console/ui/vault/confirmation.ts +0 -36
  1250. package/src/console/ui/vault/dormant.ts +0 -28
  1251. package/src/console/ui/vault/export-safe.test.ts +0 -26
  1252. package/src/console/ui/vault/export-safe.ts +0 -62
  1253. package/src/console/ui/vault/fixture.ts +0 -94
  1254. package/src/console/ui/vault/group.test.ts +0 -25
  1255. package/src/console/ui/vault/group.ts +0 -49
  1256. package/src/console/ui/vault/index.ts +0 -47
  1257. package/src/console/ui/vault/search.ts +0 -58
  1258. package/src/console/ui/vault/types.ts +0 -83
  1259. package/src/console/ui/vite.config.ts +0 -84
  1260. /package/src/console/{ui/vault → ui-next/src/features/vault/lib}/blast-radius.test.ts +0 -0
  1261. /package/src/console/{ui/vault → ui-next/src/features/vault/lib}/dormant.test.ts +0 -0
@@ -0,0 +1 @@
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{r as t}from"./react-dom-Bph1y7z7.js";import{A as n}from"./xyflow-D7n4g6go.js";var r=n(),i=e(t(),1),a=(0,i.createContext)({});function o(e){let t=(0,i.useRef)(null);return t.current===null&&(t.current=e()),t.current}var s=typeof window<`u`?i.useLayoutEffect:i.useEffect,c=(0,i.createContext)(null);function l(e,t){e.indexOf(t)===-1&&e.push(t)}function u(e,t){let n=e.indexOf(t);n>-1&&e.splice(n,1)}var d=(e,t,n)=>n>t?t:n<e?e:n,f=()=>{},p=()=>{},m={},h=e=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),g=e=>typeof e==`object`&&!!e,_=e=>/^0[^.\s]+$/u.test(e);function v(e){let t;return()=>(t===void 0&&(t=e()),t)}var y=e=>e,b=(...e)=>e.reduce((e,t)=>n=>t(e(n))),x=(e,t,n)=>{let r=t-e;return r?(n-e)/r:1},S=class{constructor(){this.subscriptions=[]}add(e){return l(this.subscriptions,e),()=>u(this.subscriptions,e)}notify(e,t,n){let r=this.subscriptions.length;if(r)if(r===1)this.subscriptions[0](e,t,n);else for(let i=0;i<r;i++){let r=this.subscriptions[i];r&&r(e,t,n)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}},C=e=>e*1e3,w=e=>e/1e3,ee=(e,t)=>t?1e3/t*e:0,T=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,te=1e-7,ne=12;function re(e,t,n,r,i){let a,o,s=0;do o=t+(n-t)/2,a=T(o,r,i)-e,a>0?n=o:t=o;while(Math.abs(a)>te&&++s<ne);return o}function ie(e,t,n,r){if(e===t&&n===r)return y;let i=t=>re(t,0,1,e,n);return e=>e===0||e===1?e:T(i(e),t,r)}var ae=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,oe=e=>t=>1-e(1-t),se=ie(.33,1.53,.69,.99),ce=oe(se),le=ae(ce),ue=e=>e>=1?1:(e*=2)<1?.5*ce(e):.5*(2-2**(-10*(e-1))),de=e=>1-Math.sin(Math.acos(e)),fe=oe(de),pe=ae(de),me=ie(.42,0,1,1),he=ie(0,0,.58,1),ge=ie(.42,0,.58,1),_e=e=>Array.isArray(e)&&typeof e[0]!=`number`,ve=e=>Array.isArray(e)&&typeof e[0]==`number`,ye={linear:y,easeIn:me,easeInOut:ge,easeOut:he,circIn:de,circInOut:pe,circOut:fe,backIn:ce,backInOut:le,backOut:se,anticipate:ue},be=e=>typeof e==`string`,xe=e=>{if(ve(e)){e.length;let[t,n,r,i]=e;return ie(t,n,r,i)}return be(e)?(ye[e],`${e}`,ye[e]):e},Se=[`setup`,`read`,`resolveKeyframes`,`preUpdate`,`update`,`preRender`,`render`,`postRender`];function Ce(e){let t=new Set,n=new Set,r=!1,i=!1,a=new WeakSet,o={delta:0,timestamp:0,isProcessing:!1};function s(t){a.has(t)&&(c.schedule(t),e()),t(o)}let c={schedule:(e,i=!1,o=!1)=>{let s=o&&r?t:n;return i&&a.add(e),s.add(e),e},cancel:e=>{n.delete(e),a.delete(e)},process:e=>{if(o=e,r){i=!0;return}r=!0;let a=t;t=n,n=a,t.forEach(s),t.clear(),r=!1,i&&(i=!1,c.process(e))}};return c}var we=40;function Te(e,t){let n=!1,r=!0,i={delta:0,timestamp:0,isProcessing:!1},a=()=>n=!0,o=Se.reduce((e,t)=>(e[t]=Ce(a),e),{}),{setup:s,read:c,resolveKeyframes:l,preUpdate:u,update:d,preRender:f,render:p,postRender:h}=o,g=()=>{let a=m.useManualTiming,o=a?i.timestamp:performance.now();n=!1,a||(i.delta=r?1e3/60:Math.max(Math.min(o-i.timestamp,we),1)),i.timestamp=o,i.isProcessing=!0,s.process(i),c.process(i),l.process(i),u.process(i),d.process(i),f.process(i),p.process(i),h.process(i),i.isProcessing=!1,n&&t&&(r=!1,e(g))},_=()=>{n=!0,r=!0,i.isProcessing||e(g)};return{schedule:Se.reduce((e,t)=>{let r=o[t];return e[t]=(e,t=!1,i=!1)=>(n||_(),r.schedule(e,t,i)),e},{}),cancel:e=>{for(let t=0;t<Se.length;t++)o[Se[t]].cancel(e)},state:i,steps:o}}var{schedule:E,cancel:D,state:O,steps:Ee}=Te(typeof requestAnimationFrame<`u`?requestAnimationFrame:y,!0),De;function Oe(){De=void 0}var k={now:()=>(De===void 0&&k.set(O.isProcessing||m.useManualTiming?O.timestamp:performance.now()),De),set:e=>{De=e,queueMicrotask(Oe)}},ke=e=>t=>typeof t==`string`&&t.startsWith(e),Ae=ke(`--`),je=ke(`var(--`),Me=e=>je(e)?Ne.test(e.split(`/*`)[0].trim()):!1,Ne=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function Pe(e){return typeof e==`string`&&e.split(`/*`)[0].includes(`var(--`)}var Fe={test:e=>typeof e==`number`,parse:parseFloat,transform:e=>e},Ie={...Fe,transform:e=>d(0,1,e)},Le={...Fe,default:1},Re=e=>Math.round(e*1e5)/1e5,ze=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function Be(e){return e==null}var Ve=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,He=(e,t)=>n=>!!(typeof n==`string`&&Ve.test(n)&&n.startsWith(e)||t&&!Be(n)&&Object.prototype.hasOwnProperty.call(n,t)),Ue=(e,t,n)=>r=>{if(typeof r!=`string`)return r;let[i,a,o,s]=r.match(ze);return{[e]:parseFloat(i),[t]:parseFloat(a),[n]:parseFloat(o),alpha:s===void 0?1:parseFloat(s)}},We=e=>d(0,255,e),Ge={...Fe,transform:e=>Math.round(We(e))},A={test:He(`rgb`,`red`),parse:Ue(`red`,`green`,`blue`),transform:({red:e,green:t,blue:n,alpha:r=1})=>`rgba(`+Ge.transform(e)+`, `+Ge.transform(t)+`, `+Ge.transform(n)+`, `+Re(Ie.transform(r))+`)`};function Ke(e){let t=``,n=``,r=``,i=``;return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),i=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),i=e.substring(4,5),t+=t,n+=n,r+=r,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:i?parseInt(i,16)/255:1}}var qe={test:He(`#`),parse:Ke,transform:A.transform},Je=e=>({test:t=>typeof t==`string`&&t.endsWith(e)&&t.split(` `).length===1,parse:parseFloat,transform:t=>`${t}${e}`}),j=Je(`deg`),M=Je(`%`),N=Je(`px`),Ye=Je(`vh`),Xe=Je(`vw`),Ze={...M,parse:e=>M.parse(e)/100,transform:e=>M.transform(e*100)},Qe={test:He(`hsl`,`hue`),parse:Ue(`hue`,`saturation`,`lightness`),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>`hsla(`+Math.round(e)+`, `+M.transform(Re(t))+`, `+M.transform(Re(n))+`, `+Re(Ie.transform(r))+`)`},P={test:e=>A.test(e)||qe.test(e)||Qe.test(e),parse:e=>A.test(e)?A.parse(e):Qe.test(e)?Qe.parse(e):qe.parse(e),transform:e=>typeof e==`string`?e:e.hasOwnProperty(`red`)?A.transform(e):Qe.transform(e),getAnimatableNone:e=>{let t=P.parse(e);return t.alpha=0,P.transform(t)}},$e=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function et(e){return isNaN(e)&&typeof e==`string`&&(e.match(ze)?.length||0)+(e.match($e)?.length||0)>0}var tt=`number`,nt=`color`,rt=`var`,it=`var(`,at="${}",ot=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function st(e){let t=e.toString(),n=[],r={color:[],number:[],var:[]},i=[],a=0;return{values:n,split:t.replace(ot,e=>(P.test(e)?(r.color.push(a),i.push(nt),n.push(P.parse(e))):e.startsWith(it)?(r.var.push(a),i.push(rt),n.push(e)):(r.number.push(a),i.push(tt),n.push(parseFloat(e))),++a,at)).split(at),indexes:r,types:i}}function ct(e){return st(e).values}function lt({split:e,types:t}){let n=e.length;return r=>{let i=``;for(let a=0;a<n;a++)if(i+=e[a],r[a]!==void 0){let e=t[a];i+=e===tt?Re(r[a]):e===nt?P.transform(r[a]):r[a]}return i}}function ut(e){return lt(st(e))}var dt=e=>typeof e==`number`?0:P.test(e)?P.getAnimatableNone(e):e,ft=(e,t)=>typeof e==`number`?t?.trim().endsWith(`/`)?e:0:dt(e);function pt(e){let t=st(e);return lt(t)(t.values.map((e,n)=>ft(e,t.split[n])))}var F={test:et,parse:ct,createTransformer:ut,getAnimatableNone:pt};function mt(e,t,n){return n<0&&(n+=1),n>1&&--n,n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function ht({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,a=0,o=0;if(!t)i=a=o=n;else{let r=n<.5?n*(1+t):n+t-n*t,s=2*n-r;i=mt(s,r,e+1/3),a=mt(s,r,e),o=mt(s,r,e-1/3)}return{red:Math.round(i*255),green:Math.round(a*255),blue:Math.round(o*255),alpha:r}}function gt(e,t){return n=>n>0?t:e}var I=(e,t,n)=>e+(t-e)*n,_t=(e,t,n)=>{let r=e*e,i=n*(t*t-r)+r;return i<0?0:Math.sqrt(i)},vt=[qe,A,Qe],yt=e=>vt.find(t=>t.test(e));function bt(e){let t=yt(e);if(`${e}`,!t)return!1;let n=t.parse(e);return t===Qe&&(n=ht(n)),n}var xt=(e,t)=>{let n=bt(e),r=bt(t);if(!n||!r)return gt(e,t);let i={...n};return e=>(i.red=_t(n.red,r.red,e),i.green=_t(n.green,r.green,e),i.blue=_t(n.blue,r.blue,e),i.alpha=I(n.alpha,r.alpha,e),A.transform(i))},St=new Set([`none`,`hidden`]);function Ct(e,t){return St.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function wt(e,t){return n=>I(e,t,n)}function Tt(e){return typeof e==`number`?wt:typeof e==`string`?Me(e)?gt:P.test(e)?xt:kt:Array.isArray(e)?Et:typeof e==`object`?P.test(e)?xt:Dt:gt}function Et(e,t){let n=[...e],r=n.length,i=e.map((e,n)=>Tt(e)(e,t[n]));return e=>{for(let t=0;t<r;t++)n[t]=i[t](e);return n}}function Dt(e,t){let n={...e,...t},r={};for(let i in n)e[i]!==void 0&&t[i]!==void 0&&(r[i]=Tt(e[i])(e[i],t[i]));return e=>{for(let t in r)n[t]=r[t](e);return n}}function Ot(e,t){let n=[],r={color:0,var:0,number:0};for(let i=0;i<t.values.length;i++){let a=t.types[i],o=e.indexes[a][r[a]],s=e.values[o]??0;n[i]=s,r[a]++}return n}var kt=(e,t)=>{let n=F.createTransformer(t),r=st(e),i=st(t);return r.indexes.var.length===i.indexes.var.length&&r.indexes.color.length===i.indexes.color.length&&r.indexes.number.length>=i.indexes.number.length?St.has(e)&&!i.values.length||St.has(t)&&!r.values.length?Ct(e,t):b(Et(Ot(r,i),i.values),n):(`${e}${t}`,gt(e,t))};function At(e,t,n){return typeof e==`number`&&typeof t==`number`&&typeof n==`number`?I(e,t,n):Tt(e)(e,t)}var jt=e=>{let t=({timestamp:t})=>e(t);return{start:(e=!0)=>E.update(t,e),stop:()=>D(t),now:()=>O.isProcessing?O.timestamp:k.now()}},Mt=(e,t,n=10)=>{let r=``,i=Math.max(Math.round(t/n),2);for(let t=0;t<i;t++)r+=Math.round(e(t/(i-1))*1e4)/1e4+`, `;return`linear(${r.substring(0,r.length-2)})`},Nt=2e4;function Pt(e){let t=0,n=e.next(t);for(;!n.done&&t<2e4;)t+=50,n=e.next(t);return t>=2e4?1/0:t}function Ft(e,t=100,n){let r=n({...e,keyframes:[0,t]}),i=Math.min(Pt(r),Nt);return{type:`keyframes`,ease:e=>r.next(i*e).value/t,duration:w(i)}}var L={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1};function It(e,t){return e*Math.sqrt(1-t*t)}var Lt=12;function Rt(e,t,n){let r=n;for(let n=1;n<Lt;n++)r-=e(r)/t(r);return r}var zt=.001;function Bt({duration:e=L.duration,bounce:t=L.bounce,velocity:n=L.velocity,mass:r=L.mass}){let i,a;L.maxDuration;let o=1-t;o=d(L.minDamping,L.maxDamping,o),e=d(L.minDuration,L.maxDuration,w(e)),o<1?(i=t=>{let r=t*o,i=r*e,a=r-n,s=It(t,o),c=Math.exp(-i);return zt-a/s*c},a=t=>{let r=t*o*e,a=r*n+n,s=o**2*t**2*e,c=Math.exp(-r),l=It(t**2,o);return(-i(t)+zt>0?-1:1)*((a-s)*c)/l}):(i=t=>-.001+Math.exp(-t*e)*((t-n)*e+1),a=t=>Math.exp(-t*e)*((n-t)*(e*e)));let s=5/e,c=Rt(i,a,s);if(e=C(e),isNaN(c))return{stiffness:L.stiffness,damping:L.damping,duration:e};{let t=c**2*r;return{stiffness:t,damping:o*2*Math.sqrt(r*t),duration:e}}}var Vt=[`duration`,`bounce`],Ht=[`stiffness`,`damping`,`mass`];function Ut(e,t){return t.some(t=>e[t]!==void 0)}function Wt(e){let t={velocity:L.velocity,stiffness:L.stiffness,damping:L.damping,mass:L.mass,isResolvedFromDuration:!1,...e};if(!Ut(e,Ht)&&Ut(e,Vt))if(t.velocity=0,e.visualDuration){let n=e.visualDuration,r=2*Math.PI/(n*1.2),i=r*r,a=2*d(.05,1,1-(e.bounce||0))*Math.sqrt(i);t={...t,mass:L.mass,stiffness:i,damping:a}}else{let n=Bt({...e,velocity:0});t={...t,...n,mass:L.mass},t.isResolvedFromDuration=!0}return t}function Gt(e=L.visualDuration,t=L.bounce){let n=typeof e==`object`?e:{visualDuration:e,keyframes:[0,1],bounce:t},{restSpeed:r,restDelta:i}=n,a=n.keyframes[0],o=n.keyframes[n.keyframes.length-1],s={done:!1,value:a},{stiffness:c,damping:l,mass:u,duration:d,velocity:f,isResolvedFromDuration:p}=Wt({...n,velocity:-w(n.velocity||0)}),m=f||0,h=l/(2*Math.sqrt(c*u)),g=o-a,_=w(Math.sqrt(c/u)),v=Math.abs(g)<5;r||=v?L.restSpeed.granular:L.restSpeed.default,i||=v?L.restDelta.granular:L.restDelta.default;let y,b,x,S,ee,T;if(h<1)x=It(_,h),S=(m+h*_*g)/x,y=e=>{let t=Math.exp(-h*_*e);return o-t*(S*Math.sin(x*e)+g*Math.cos(x*e))},ee=h*_*S+g*x,T=h*_*g-S*x,b=e=>Math.exp(-h*_*e)*(ee*Math.sin(x*e)+T*Math.cos(x*e));else if(h===1){y=e=>o-Math.exp(-_*e)*(g+(m+_*g)*e);let e=m+_*g;b=t=>Math.exp(-_*t)*(_*e*t-m)}else{let e=_*Math.sqrt(h*h-1);y=t=>{let n=Math.exp(-h*_*t),r=Math.min(e*t,300);return o-n*((m+h*_*g)*Math.sinh(r)+e*g*Math.cosh(r))/e};let t=(m+h*_*g)/e,n=h*_*t-g*e,r=h*_*g-t*e;b=t=>{let i=Math.exp(-h*_*t),a=Math.min(e*t,300);return i*(n*Math.sinh(a)+r*Math.cosh(a))}}let te={calculatedDuration:p&&d||null,velocity:e=>C(b(e)),next:e=>{if(!p&&h<1){let t=Math.exp(-h*_*e),n=Math.sin(x*e),a=Math.cos(x*e),c=o-t*(S*n+g*a),l=C(t*(ee*n+T*a));return s.done=Math.abs(l)<=r&&Math.abs(o-c)<=i,s.value=s.done?o:c,s}let t=y(e);if(p)s.done=e>=d;else{let n=C(b(e));s.done=Math.abs(n)<=r&&Math.abs(o-t)<=i}return s.value=s.done?o:t,s},toString:()=>{let e=Math.min(Pt(te),Nt),t=Mt(t=>te.next(e*t).value,e,30);return e+`ms `+t},toTransition:()=>{}};return te}Gt.applyToOptions=e=>{let t=Ft(e,100,Gt);return e.ease=t.ease,e.duration=C(t.duration),e.type=`keyframes`,e};var Kt=5;function qt(e,t,n){let r=Math.max(t-Kt,0);return ee(n-e(r),t-r)}function Jt({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:i=10,bounceStiffness:a=500,modifyTarget:o,min:s,max:c,restDelta:l=.5,restSpeed:u}){let d=e[0],f={done:!1,value:d},p=e=>s!==void 0&&e<s||c!==void 0&&e>c,m=e=>s===void 0?c:c===void 0||Math.abs(s-e)<Math.abs(c-e)?s:c,h=n*t,g=d+h,_=o===void 0?g:o(g);_!==g&&(h=_-d);let v=e=>-h*Math.exp(-e/r),y=e=>_+v(e),b=e=>{let t=v(e),n=y(e);f.done=Math.abs(t)<=l,f.value=f.done?_:n},x,S,C=e=>{p(f.value)&&(x=e,S=Gt({keyframes:[f.value,m(f.value)],velocity:qt(y,e,f.value),damping:i,stiffness:a,restDelta:l,restSpeed:u}))};return C(0),{calculatedDuration:null,next:e=>{let t=!1;return!S&&x===void 0&&(t=!0,b(e),C(e)),x!==void 0&&e>=x?S.next(e-x):(!t&&b(e),f)}}}function Yt(e,t,n){let r=[],i=n||m.mix||At,a=e.length-1;for(let n=0;n<a;n++){let a=i(e[n],e[n+1]);t&&(a=b(Array.isArray(t)?t[n]||y:t,a)),r.push(a)}return r}function Xt(e,t,{clamp:n=!0,ease:r,mixer:i}={}){let a=e.length;if(t.length,a===1)return()=>t[0];if(a===2&&t[0]===t[1])return()=>t[1];let o=e[0]===e[1];e[0]>e[a-1]&&(e=[...e].reverse(),t=[...t].reverse());let s=Yt(t,r,i),c=s.length,l=n=>{if(o&&n<e[0])return t[0];let r=0;if(c>1)for(;r<e.length-2&&!(n<e[r+1]);r++);let i=x(e[r],e[r+1],n);return s[r](i)};return n?t=>l(d(e[0],e[a-1],t)):l}function Zt(e,t){let n=e[e.length-1];for(let r=1;r<=t;r++){let i=x(0,t,r);e.push(I(n,1,i))}}function Qt(e){let t=[0];return Zt(t,e.length-1),t}function $t(e,t){return e.map(e=>e*t)}function en(e,t){return e.map(()=>t||ge).splice(0,e.length-1)}function tn({duration:e=300,keyframes:t,times:n,ease:r=`easeInOut`}){let i=_e(r)?r.map(xe):xe(r),a={done:!1,value:t[0]},o=Xt($t(n&&n.length===t.length?n:Qt(t),e),t,{ease:Array.isArray(i)?i:en(t,i)});return{calculatedDuration:e,next:t=>(a.value=o(t),a.done=t>=e,a)}}var nn=e=>e!==null;function rn(e,{repeat:t,repeatType:n=`loop`},r,i=1){let a=e.filter(nn),o=i<0||t&&n!==`loop`&&t%2==1?0:a.length-1;return!o||r===void 0?a[o]:r}var an={decay:Jt,inertia:Jt,tween:tn,keyframes:tn,spring:Gt};function on(e){typeof e.type==`string`&&(e.type=an[e.type])}var sn=class{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(e=>{this.resolve=e})}notifyFinished(){this.resolve()}then(e,t){return this.finished.then(e,t)}},cn=e=>e/100,ln=class extends sn{constructor(e){super(),this.state=`idle`,this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.delayState={done:!1,value:void 0},this.stop=()=>{let{motionValue:e}=this.options;e&&e.updatedAt!==k.now()&&this.tick(k.now()),this.isStopped=!0,this.state!==`idle`&&(this.teardown(),this.options.onStop?.())},this.options=e,this.initAnimation(),this.play(),e.autoplay===!1&&this.pause()}initAnimation(){let{options:e}=this;on(e);let{type:t=tn,repeat:n=0,repeatDelay:r=0,repeatType:i,velocity:a=0}=e,{keyframes:o}=e,s=t||tn;s!==tn&&typeof o[0]!=`number`&&(this.mixKeyframes=b(cn,At(o[0],o[1])),o=[0,100]);let c=s({...e,keyframes:o});i===`mirror`&&(this.mirroredGenerator=s({...e,keyframes:[...o].reverse(),velocity:-a})),c.calculatedDuration===null&&(c.calculatedDuration=Pt(c));let{calculatedDuration:l}=c;this.calculatedDuration=l,this.resolvedDuration=l+r,this.totalDuration=this.resolvedDuration*(n+1)-r,this.generator=c}updateTime(e){let t=Math.round(e-this.startTime)*this.playbackSpeed;this.currentTime=this.holdTime===null?t:this.holdTime}tick(e,t=!1){let{generator:n,totalDuration:r,mixKeyframes:i,mirroredGenerator:a,resolvedDuration:o,calculatedDuration:s}=this;if(this.startTime===null)return n.next(0);let{delay:c=0,keyframes:l,repeat:u,repeatType:f,repeatDelay:p,type:m,onUpdate:h,finalKeyframe:g}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,e):this.speed<0&&(this.startTime=Math.min(e-r/this.speed,this.startTime)),t?this.currentTime=e:this.updateTime(e);let _=this.currentTime-c*(this.playbackSpeed>=0?1:-1),v=this.playbackSpeed>=0?_<0:_>r;this.currentTime=Math.max(_,0),this.state===`finished`&&this.holdTime===null&&(this.currentTime=r);let y=this.currentTime,b=n;if(u){let e=Math.min(this.currentTime,r)/o,t=Math.floor(e),n=e%1;!n&&e>=1&&(n=1),n===1&&t--,t=Math.min(t,u+1),t%2&&(f===`reverse`?(n=1-n,p&&(n-=p/o)):f===`mirror`&&(b=a)),y=d(0,1,n)*o}let x;v?(this.delayState.value=l[0],x=this.delayState):x=b.next(y),i&&!v&&(x.value=i(x.value));let{done:S}=x;!v&&s!==null&&(S=this.playbackSpeed>=0?this.currentTime>=r:this.currentTime<=0);let C=this.holdTime===null&&(this.state===`finished`||this.state===`running`&&S);return C&&m!==Jt&&(x.value=rn(l,this.options,g,this.speed)),h&&h(x.value),C&&this.finish(),x}then(e,t){return this.finished.then(e,t)}get duration(){return w(this.calculatedDuration)}get iterationDuration(){let{delay:e=0}=this.options||{};return this.duration+w(e)}get time(){return w(this.currentTime)}set time(e){e=C(e),this.currentTime=e,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=e:this.driver&&(this.startTime=this.driver.now()-e/this.playbackSpeed),this.driver?this.driver.start(!1):(this.startTime=0,this.state=`paused`,this.holdTime=e,this.tick(e))}getGeneratorVelocity(){let e=this.currentTime;if(e<=0)return this.options.velocity||0;if(this.generator.velocity)return this.generator.velocity(e);let t=this.generator.next(e).value;return qt(e=>this.generator.next(e).value,e,t)}get speed(){return this.playbackSpeed}set speed(e){let t=this.playbackSpeed!==e;t&&this.driver&&this.updateTime(k.now()),this.playbackSpeed=e,t&&this.driver&&(this.time=w(this.currentTime))}play(){if(this.isStopped)return;let{driver:e=jt,startTime:t}=this.options;this.driver||=e(e=>this.tick(e)),this.options.onPlay?.();let n=this.driver.now();this.state===`finished`?(this.updateFinished(),this.startTime=n):this.holdTime===null?this.startTime||=t??n:this.startTime=n-this.holdTime,this.state===`finished`&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state=`running`,this.driver.start()}pause(){this.state=`paused`,this.updateTime(k.now()),this.holdTime=this.currentTime}complete(){this.state!==`running`&&this.play(),this.state=`finished`,this.holdTime=null}finish(){this.notifyFinished(),this.teardown(),this.state=`finished`,this.options.onComplete?.()}cancel(){this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),this.options.onCancel?.()}teardown(){this.state=`idle`,this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&=(this.driver.stop(),void 0)}sample(e){return this.startTime=0,this.tick(e,!0)}attachTimeline(e){return this.options.allowFlatten&&(this.options.type=`keyframes`,this.options.ease=`linear`,this.initAnimation()),this.driver?.stop(),e.observe(this)}};function un(e){for(let t=1;t<e.length;t++)e[t]??(e[t]=e[t-1])}var R=e=>e*180/Math.PI,dn=e=>pn(R(Math.atan2(e[1],e[0]))),fn={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:e=>(Math.abs(e[0])+Math.abs(e[3]))/2,rotate:dn,rotateZ:dn,skewX:e=>R(Math.atan(e[1])),skewY:e=>R(Math.atan(e[2])),skew:e=>(Math.abs(e[1])+Math.abs(e[2]))/2},pn=e=>(e%=360,e<0&&(e+=360),e),mn=dn,hn=e=>Math.sqrt(e[0]*e[0]+e[1]*e[1]),gn=e=>Math.sqrt(e[4]*e[4]+e[5]*e[5]),_n={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:hn,scaleY:gn,scale:e=>(hn(e)+gn(e))/2,rotateX:e=>pn(R(Math.atan2(e[6],e[5]))),rotateY:e=>pn(R(Math.atan2(-e[2],e[0]))),rotateZ:mn,rotate:mn,skewX:e=>R(Math.atan(e[4])),skewY:e=>R(Math.atan(e[1])),skew:e=>(Math.abs(e[1])+Math.abs(e[4]))/2};function vn(e){return+!!e.includes(`scale`)}function yn(e,t){if(!e||e===`none`)return vn(t);let n=e.match(/^matrix3d\(([-\d.e\s,]+)\)$/u),r,i;if(n)r=_n,i=n;else{let t=e.match(/^matrix\(([-\d.e\s,]+)\)$/u);r=fn,i=t}if(!i)return vn(t);let a=r[t],o=i[1].split(`,`).map(xn);return typeof a==`function`?a(o):o[a]}var bn=(e,t)=>{let{transform:n=`none`}=getComputedStyle(e);return yn(n,t)};function xn(e){return parseFloat(e.trim())}var Sn=[`transformPerspective`,`x`,`y`,`z`,`translateX`,`translateY`,`translateZ`,`scale`,`scaleX`,`scaleY`,`rotate`,`rotateX`,`rotateY`,`rotateZ`,`skew`,`skewX`,`skewY`],Cn=new Set([...Sn,`pathRotation`]),wn=e=>e===Fe||e===N,Tn=new Set([`x`,`y`,`z`]),En=Sn.filter(e=>!Tn.has(e));function Dn(e){let t=[];return En.forEach(n=>{let r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(+!!n.startsWith(`scale`)))}),t}var z={width:({x:e},{paddingLeft:t=`0`,paddingRight:n=`0`,boxSizing:r})=>{let i=e.max-e.min;return r===`border-box`?i:i-parseFloat(t)-parseFloat(n)},height:({y:e},{paddingTop:t=`0`,paddingBottom:n=`0`,boxSizing:r})=>{let i=e.max-e.min;return r===`border-box`?i:i-parseFloat(t)-parseFloat(n)},top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:(e,{transform:t})=>yn(t,`x`),y:(e,{transform:t})=>yn(t,`y`)};z.translateX=z.x,z.translateY=z.y;var B=new Set,On=!1,kn=!1,An=!1;function jn(){if(kn){let e=Array.from(B).filter(e=>e.needsMeasurement),t=new Set(e.map(e=>e.element)),n=new Map;t.forEach(e=>{let t=Dn(e);t.length&&(n.set(e,t),e.render())}),e.forEach(e=>e.measureInitialState()),t.forEach(e=>{e.render();let t=n.get(e);t&&t.forEach(([t,n])=>{e.getValue(t)?.set(n)})}),e.forEach(e=>e.measureEndState()),e.forEach(e=>{e.suspendedScrollY!==void 0&&window.scrollTo(0,e.suspendedScrollY)})}kn=!1,On=!1,B.forEach(e=>e.complete(An)),B.clear()}function Mn(){B.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(kn=!0)})}function Nn(){An=!0,Mn(),jn(),An=!1}var Pn=class{constructor(e,t,n,r,i,a=!1){this.state=`pending`,this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...e],this.onComplete=t,this.name=n,this.motionValue=r,this.element=i,this.isAsync=a}scheduleResolve(){this.state=`scheduled`,this.isAsync?(B.add(this),On||(On=!0,E.read(Mn),E.resolveKeyframes(jn))):(this.readKeyframes(),this.complete())}readKeyframes(){let{unresolvedKeyframes:e,name:t,element:n,motionValue:r}=this;if(e[0]===null){let i=r?.get(),a=e[e.length-1];if(i!==void 0)e[0]=i;else if(n&&t){let r=n.readValue(t,a);r!=null&&(e[0]=r)}e[0]===void 0&&(e[0]=a),r&&i===void 0&&r.set(e[0])}un(e)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(e=!1){this.state=`complete`,this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,e),B.delete(this)}cancel(){this.state===`scheduled`&&(B.delete(this),this.state=`pending`)}resume(){this.state===`pending`&&this.scheduleResolve()}},Fn=e=>e.startsWith(`--`);function In(e,t,n){Fn(t)?e.style.setProperty(t,n):e.style[t]=n}var Ln={};function Rn(e,t){let n=v(e);return()=>Ln[t]??n()}var zn=Rn(()=>window.ScrollTimeline!==void 0,`scrollTimeline`),Bn=Rn(()=>{try{document.createElement(`div`).animate({opacity:0},{easing:`linear(0, 1)`})}catch{return!1}return!0},`linearEasing`),Vn=([e,t,n,r])=>`cubic-bezier(${e}, ${t}, ${n}, ${r})`,Hn={linear:`linear`,ease:`ease`,easeIn:`ease-in`,easeOut:`ease-out`,easeInOut:`ease-in-out`,circIn:Vn([0,.65,.55,1]),circOut:Vn([.55,0,1,.45]),backIn:Vn([.31,.01,.66,-.59]),backOut:Vn([.33,1.53,.69,.99])};function Un(e,t){if(e)return typeof e==`function`?Bn()?Mt(e,t):`ease-out`:ve(e)?Vn(e):Array.isArray(e)?e.map(e=>Un(e,t)||Hn.easeOut):Hn[e]}function Wn(e,t,n,{delay:r=0,duration:i=300,repeat:a=0,repeatType:o=`loop`,ease:s=`easeOut`,times:c}={},l=void 0){let u={[t]:n};c&&(u.offset=c);let d=Un(s,i);Array.isArray(d)&&(u.easing=d);let f={delay:r,duration:i,easing:Array.isArray(d)?`linear`:d,fill:`both`,iterations:a+1,direction:o===`reverse`?`alternate`:`normal`};return l&&(f.pseudoElement=l),e.animate(u,f)}function Gn(e){return typeof e==`function`&&`applyToOptions`in e}function Kn({type:e,...t}){return Gn(e)&&Bn()?e.applyToOptions(t):(t.duration??=300,t.ease??=`easeOut`,t)}var qn=class extends sn{constructor(e){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!e)return;let{element:t,name:n,keyframes:r,pseudoElement:i,allowFlatten:a=!1,finalKeyframe:o,onComplete:s}=e;this.isPseudoElement=!!i,this.allowFlatten=a,this.options=e,e.type;let c=Kn(e);this.animation=Wn(t,n,r,c,i),c.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!i){let e=rn(r,this.options,o,this.speed);this.updateMotionValue&&this.updateMotionValue(e),In(t,n,e),this.animation.cancel()}s?.(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),this.state===`finished`&&this.updateFinished())}pause(){this.animation.pause()}complete(){this.animation.finish?.()}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;let{state:e}=this;e!==`idle`&&e!==`finished`&&(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){let e=this.options?.element;!this.isPseudoElement&&e?.isConnected&&this.animation.commitStyles?.()}get duration(){let e=this.animation.effect?.getComputedTiming?.().duration||0;return w(Number(e))}get iterationDuration(){let{delay:e=0}=this.options||{};return this.duration+w(e)}get time(){return w(Number(this.animation.currentTime)||0)}set time(e){let t=this.finishedTime!==null;this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=C(e),t&&this.animation.pause()}get speed(){return this.animation.playbackRate}set speed(e){e<0&&(this.finishedTime=null),this.animation.playbackRate=e}get state(){return this.finishedTime===null?this.animation.playState:`finished`}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(e){this.manualStartTime=this.animation.startTime=e}attachTimeline({timeline:e,rangeStart:t,rangeEnd:n,observe:r}){return this.allowFlatten&&this.animation.effect?.updateTiming({easing:`linear`}),this.animation.onfinish=null,e&&zn()?(this.animation.timeline=e,t&&(this.animation.rangeStart=t),n&&(this.animation.rangeEnd=n),y):r(this)}},Jn={anticipate:ue,backInOut:le,circInOut:pe};function Yn(e){return e in Jn}function Xn(e){typeof e.ease==`string`&&Yn(e.ease)&&(e.ease=Jn[e.ease])}var Zn=10,Qn=class extends qn{constructor(e){Xn(e),on(e),super(e),e.startTime!==void 0&&e.autoplay!==!1&&(this.startTime=e.startTime),this.options=e}updateMotionValue(e){let{motionValue:t,onUpdate:n,onComplete:r,element:i,...a}=this.options;if(!t)return;if(e!==void 0){t.set(e);return}let o=new ln({...a,autoplay:!1}),s=Math.max(Zn,k.now()-this.startTime),c=d(0,Zn,s-Zn),l=o.sample(s).value,{name:u}=this.options;i&&u&&In(i,u,l),t.setWithVelocity(o.sample(Math.max(0,s-c)).value,l,c),o.stop()}},$n=(e,t)=>t!==`zIndex`&&!!(typeof e==`number`||Array.isArray(e)||typeof e==`string`&&(F.test(e)||e===`0`)&&!e.startsWith(`url(`));function er(e){let t=e[0];if(e.length===1)return!0;for(let n=0;n<e.length;n++)if(e[n]!==t)return!0}function tr(e,t,n,r){let i=e[0];if(i===null)return!1;if(t===`display`||t===`visibility`)return!0;let a=e[e.length-1],o=$n(i,t),s=$n(a,t);return`${t}${i}${a}${o?a:i}`,!o||!s?!1:er(e)||(n===`spring`||Gn(n))&&r}function nr(e){e.duration=0,e.type=`keyframes`}var rr=new Set([`opacity`,`clipPath`,`filter`,`transform`,`backgroundColor`]),ir=/^(?:oklch|oklab|lab|lch|color|color-mix|light-dark)\(/;function ar(e){for(let t=0;t<e.length;t++)if(typeof e[t]==`string`&&ir.test(e[t]))return!0;return!1}var or=new Set([`color`,`backgroundColor`,`outlineColor`,`fill`,`stroke`,`borderColor`,`borderTopColor`,`borderRightColor`,`borderBottomColor`,`borderLeftColor`]),sr=v(()=>Object.hasOwnProperty.call(Element.prototype,`animate`));function cr(e){let{motionValue:t,name:n,repeatDelay:r,repeatType:i,damping:a,type:o,keyframes:s}=e,c=t?.owner?.current;if(!(c instanceof HTMLElement)&&!(c instanceof SVGElement))return!1;let{onUpdate:l,transformTemplate:u}=t.owner.getProps();return sr()&&n&&(rr.has(n)||or.has(n)&&ar(s))&&(n!==`transform`||!u)&&!l&&!r&&i!==`mirror`&&a!==0&&o!==`inertia`}var lr=40,ur=class extends sn{constructor({autoplay:e=!0,delay:t=0,type:n=`keyframes`,repeat:r=0,repeatDelay:i=0,repeatType:a=`loop`,keyframes:o,name:s,motionValue:c,element:l,...u}){super(),this.stop=()=>{this._animation&&(this._animation.stop(),this.stopTimeline?.()),this.keyframeResolver?.cancel()},this.createdAt=k.now();let d={autoplay:e,delay:t,type:n,repeat:r,repeatDelay:i,repeatType:a,name:s,motionValue:c,element:l,...u},f=l?.KeyframeResolver||Pn;this.keyframeResolver=new f(o,(e,t,n)=>this.onKeyframesResolved(e,t,d,!n),s,c,l),this.keyframeResolver?.scheduleResolve()}onKeyframesResolved(e,t,n,r){this.keyframeResolver=void 0;let{name:i,type:a,velocity:o,delay:s,isHandoff:c,onUpdate:l}=n;this.resolvedAt=k.now();let u=!0;tr(e,i,a,o)||(u=!1,(m.instantAnimations||!s)&&l?.(rn(e,n,t)),e[0]=e[e.length-1],nr(n),n.repeat=0);let d={startTime:r?this.resolvedAt&&this.resolvedAt-this.createdAt>lr?this.resolvedAt:this.createdAt:void 0,finalKeyframe:t,...n,keyframes:e},f=u&&!c&&cr(d),p=d.motionValue?.owner?.current,h;if(f)try{h=new Qn({...d,element:p})}catch{h=new ln(d)}else h=new ln(d);h.finished.then(()=>{this.notifyFinished()}).catch(y),this.pendingTimeline&&=(this.stopTimeline=h.attachTimeline(this.pendingTimeline),void 0),this._animation=h}get finished(){return this._animation?this.animation.finished:this._finished}then(e,t){return this.finished.finally(e).then(()=>{})}get animation(){return this._animation||(this.keyframeResolver?.resume(),Nn()),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(e){this.animation.time=e}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(e){this.animation.speed=e}get startTime(){return this.animation.startTime}attachTimeline(e){return this._animation?this.stopTimeline=this.animation.attachTimeline(e):this.pendingTimeline=e,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){this._animation&&this.animation.cancel(),this.keyframeResolver?.cancel()}};function dr(e,t,n,r=0,i=1){let a=Array.from(e).sort((e,t)=>e.sortNodePosition(t)).indexOf(t),o=e.size,s=(o-1)*r;return typeof n==`function`?n(a,o):i===1?a*r:s-a*r}var fr=30,pr=e=>!isNaN(parseFloat(e)),mr={current:void 0},hr=class{constructor(e,t={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=e=>{let t=k.now();if(this.updatedAt!==t&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(e),this.current!==this.prev&&(this.events.change?.notify(this.current),this.dependents))for(let e of this.dependents)e.dirty()},this.hasAnimated=!1,this.setCurrent(e),this.owner=t.owner}setCurrent(e){this.current=e,this.updatedAt=k.now(),this.canTrackVelocity===null&&e!==void 0&&(this.canTrackVelocity=pr(this.current))}setPrevFrameValue(e=this.current){this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt}onChange(e){return this.on(`change`,e)}on(e,t){this.events[e]||(this.events[e]=new S);let n=this.events[e].add(t);return e===`change`?()=>{n(),E.read(()=>{this.events.change.getSize()||this.stop()})}:n}clearListeners(){for(let e in this.events)this.events[e].clear()}attach(e,t){this.passiveEffect=e,this.stopPassiveEffect=t}set(e){this.passiveEffect?this.passiveEffect(e,this.updateAndNotify):this.updateAndNotify(e)}setWithVelocity(e,t,n){this.set(t),this.prev=void 0,this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt-n}jump(e,t=!0){this.updateAndNotify(e),this.prev=e,this.prevUpdatedAt=this.prevFrameValue=void 0,t&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){this.events.change?.notify(this.current)}addDependent(e){this.dependents||=new Set,this.dependents.add(e)}removeDependent(e){this.dependents&&this.dependents.delete(e)}get(){return mr.current&&mr.current.push(this),this.current}getPrevious(){return this.prev}getVelocity(){let e=k.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||e-this.updatedAt>fr)return 0;let t=Math.min(this.updatedAt-this.prevUpdatedAt,fr);return ee(parseFloat(this.current)-parseFloat(this.prevFrameValue),t)}start(e){return this.stop(),new Promise(t=>{this.hasAnimated=!0,this.animation=e(t),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.dependents?.clear(),this.events.destroy?.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}};function V(e,t){return new hr(e,t)}function gr(e,t){if(e?.inherit&&t){let{inherit:n,...r}=e;return{...t,...r}}return e}function _r(e,t){let n=e?.[t]??e?.default??e;return n===e?n:gr(n,e)}var vr={type:`spring`,stiffness:500,damping:25,restSpeed:10},yr=e=>({type:`spring`,stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),br={type:`keyframes`,duration:.8},xr={type:`keyframes`,ease:[.25,.1,.35,1],duration:.3},Sr=(e,{keyframes:t})=>t.length>2?br:Cn.has(e)?e.startsWith(`scale`)?yr(t[1]):vr:xr,Cr=new Set([`when`,`delay`,`delayChildren`,`staggerChildren`,`staggerDirection`,`repeat`,`repeatType`,`repeatDelay`,`from`,`elapsed`]);function wr(e){for(let t in e)if(!Cr.has(t))return!0;return!1}var Tr=(e,t,n,r={},i,a)=>o=>{let s=_r(r,e)||{},c=s.delay||r.delay||0,{elapsed:l=0}=r;l-=C(c);let u={keyframes:Array.isArray(n)?n:[null,n],ease:`easeOut`,velocity:t.getVelocity(),...s,delay:-l,onUpdate:e=>{t.set(e),s.onUpdate&&s.onUpdate(e)},onComplete:()=>{o(),s.onComplete&&s.onComplete()},name:e,motionValue:t,element:a?void 0:i};wr(s)||Object.assign(u,Sr(e,u)),u.duration&&=C(u.duration),u.repeatDelay&&=C(u.repeatDelay),u.from!==void 0&&(u.keyframes[0]=u.from);let d=!1;if((u.type===!1||u.duration===0&&!u.repeatDelay)&&(nr(u),u.delay===0&&(d=!0)),(m.instantAnimations||m.skipAnimations||i?.shouldSkipAnimations||s.skipAnimations)&&(d=!0,nr(u),u.delay=0),u.allowFlatten=!s.type&&!s.ease,d&&!a&&t.get()!==void 0){let e=rn(u.keyframes,s);if(e!==void 0){E.update(()=>{u.onUpdate(e),u.onComplete()});return}}return s.isSync?new ln(u):new ur(u)},Er=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function Dr(e){let t=Er.exec(e);if(!t)return[,];let[,n,r,i]=t;return[`--${n??r}`,i]}function Or(e,t,n=1){`${e}`;let[r,i]=Dr(e);if(!r)return;let a=window.getComputedStyle(t).getPropertyValue(r);if(a){let e=a.trim();return h(e)?parseFloat(e):e}return Me(i)?Or(i,t,n+1):i}function kr(e){let t=[{},{}];return e?.values.forEach((e,n)=>{t[0][n]=e.get(),t[1][n]=e.getVelocity()}),t}function Ar(e,t,n,r){if(typeof t==`function`){let[i,a]=kr(r);t=t(n===void 0?e.custom:n,i,a)}if(typeof t==`string`&&(t=e.variants&&e.variants[t]),typeof t==`function`){let[i,a]=kr(r);t=t(n===void 0?e.custom:n,i,a)}return t}function H(e,t,n){let r=e.getProps();return Ar(r,t,n===void 0?r.custom:n,e)}var jr=new Set([`width`,`height`,`top`,`left`,`right`,`bottom`,...Sn]),Mr=e=>Array.isArray(e);function Nr(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,V(n))}function Pr(e){return Mr(e)?e[e.length-1]||0:e}function Fr(e,t){let{transitionEnd:n={},transition:r={},...i}=H(e,t)||{};i={...i,...n};for(let t in i)Nr(e,t,Pr(i[t]))}var U=e=>!!(e&&e.getVelocity);function Ir(e){return!!(U(e)&&e.add)}function Lr(e,t){let n=e.getValue(`willChange`);if(Ir(n))return n.add(t);if(!n&&m.WillChange){let n=new m.WillChange(`auto`);e.addValue(`willChange`,n),n.add(t)}}function Rr(e){return e.replace(/([A-Z])/g,e=>`-${e.toLowerCase()}`)}var zr=`data-`+Rr(`framerAppearId`);function Br(e){return e.props[zr]}function Vr({protectedKeys:e,needsAnimating:t},n){let r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function Hr(e,t,{delay:n=0,transitionOverride:r,type:i}={}){let{transition:a,transitionEnd:o,...s}=t,c=e.getDefaultTransition();a=a?gr(a,c):c;let l=a?.reduceMotion,u=a?.skipAnimations;r&&(a=r);let d=[],f=i&&e.animationState&&e.animationState.getState()[i],p=a?.path;p&&p.animateVisualElement(e,s,a,n,d);for(let t in s){let r=e.getValue(t,e.latestValues[t]??null),i=s[t];if(i===void 0||f&&Vr(f,t))continue;let o={delay:n,..._r(a||{},t)};u&&(o.skipAnimations=!0);let c=r.get();if(c!==void 0&&!r.isAnimating()&&!Array.isArray(i)&&i===c&&!o.velocity){E.update(()=>r.set(i));continue}let p=!1;if(window.MotionHandoffAnimation){let n=Br(e);if(n){let e=window.MotionHandoffAnimation(n,t,E);e!==null&&(o.startTime=e,p=!0)}}Lr(e,t);let m=l??e.shouldReduceMotion;r.start(Tr(t,r,i,m&&jr.has(t)?{type:!1}:o,e,p));let h=r.animation;h&&d.push(h)}if(o){let t=()=>E.update(()=>{o&&Fr(e,o)});d.length?Promise.all(d).then(t):t()}return d}function Ur(e,t,n={}){let r=H(e,t,n.type===`exit`?e.presenceContext?.custom:void 0),{transition:i=e.getDefaultTransition()||{}}=r||{};n.transitionOverride&&(i=n.transitionOverride);let a=r?()=>Promise.all(Hr(e,r,n)):()=>Promise.resolve(),o=e.variantChildren&&e.variantChildren.size?(r=0)=>{let{delayChildren:a=0,staggerChildren:o,staggerDirection:s}=i;return Wr(e,t,r,a,o,s,n)}:()=>Promise.resolve(),{when:s}=i;if(s){let[e,t]=s===`beforeChildren`?[a,o]:[o,a];return e().then(()=>t())}return Promise.all([a(),o(n.delay)])}function Wr(e,t,n=0,r=0,i=0,a=1,o){let s=[];for(let c of e.variantChildren)c.notify(`AnimationStart`,t),s.push(Ur(c,t,{...o,delay:n+(typeof r==`function`?0:r)+dr(e.variantChildren,c,r,i,a)}).then(()=>c.notify(`AnimationComplete`,t)));return Promise.all(s)}function Gr(e,t,n={}){e.notify(`AnimationStart`,t);let r;if(Array.isArray(t)){let i=t.map(t=>Ur(e,t,n));r=Promise.all(i)}else if(typeof t==`string`)r=Ur(e,t,n);else{let i=typeof t==`function`?H(e,t,n.custom):t;r=Promise.all(Hr(e,i,n))}return r.then(()=>{e.notify(`AnimationComplete`,t)})}var Kr={test:e=>e===`auto`,parse:e=>e},qr=e=>t=>t.test(e),Jr=[Fe,N,M,j,Xe,Ye,Kr],Yr=e=>Jr.find(qr(e));function Xr(e){return typeof e==`number`?e===0:e===null||e===`none`||e===`0`||_(e)}var Zr=new Set([`brightness`,`contrast`,`saturate`,`opacity`]);function Qr(e){let[t,n]=e.slice(0,-1).split(`(`);if(t===`drop-shadow`)return e;let[r]=n.match(ze)||[];if(!r)return e;let i=n.replace(r,``),a=+!!Zr.has(t);return r!==n&&(a*=100),t+`(`+a+i+`)`}var $r=/\b([a-z-]*)\(.*?\)/gu,ei={...F,getAnimatableNone:e=>{let t=e.match($r);return t?t.map(Qr).join(` `):e}},ti={...F,getAnimatableNone:e=>{let t=F.parse(e);return F.createTransformer(e)(t.map(e=>typeof e==`number`?0:typeof e==`object`?{...e,alpha:1}:e))}},ni={...Fe,transform:Math.round},ri={borderWidth:N,borderTopWidth:N,borderRightWidth:N,borderBottomWidth:N,borderLeftWidth:N,borderRadius:N,borderTopLeftRadius:N,borderTopRightRadius:N,borderBottomRightRadius:N,borderBottomLeftRadius:N,width:N,maxWidth:N,height:N,maxHeight:N,top:N,right:N,bottom:N,left:N,inset:N,insetBlock:N,insetBlockStart:N,insetBlockEnd:N,insetInline:N,insetInlineStart:N,insetInlineEnd:N,padding:N,paddingTop:N,paddingRight:N,paddingBottom:N,paddingLeft:N,paddingBlock:N,paddingBlockStart:N,paddingBlockEnd:N,paddingInline:N,paddingInlineStart:N,paddingInlineEnd:N,margin:N,marginTop:N,marginRight:N,marginBottom:N,marginLeft:N,marginBlock:N,marginBlockStart:N,marginBlockEnd:N,marginInline:N,marginInlineStart:N,marginInlineEnd:N,fontSize:N,backgroundPositionX:N,backgroundPositionY:N,rotate:j,pathRotation:j,rotateX:j,rotateY:j,rotateZ:j,scale:Le,scaleX:Le,scaleY:Le,scaleZ:Le,skew:j,skewX:j,skewY:j,distance:N,translateX:N,translateY:N,translateZ:N,x:N,y:N,z:N,perspective:N,transformPerspective:N,opacity:Ie,originX:Ze,originY:Ze,originZ:N,zIndex:ni,fillOpacity:Ie,strokeOpacity:Ie,numOctaves:ni},ii={...ri,color:P,backgroundColor:P,outlineColor:P,fill:P,stroke:P,borderColor:P,borderTopColor:P,borderRightColor:P,borderBottomColor:P,borderLeftColor:P,filter:ei,WebkitFilter:ei,mask:ti,WebkitMask:ti},ai=e=>ii[e],oi=new Set([ei,ti]);function si(e,t){let n=ai(e);return oi.has(n)||(n=F),n.getAnimatableNone?n.getAnimatableNone(t):void 0}var ci=new Set([`auto`,`none`,`0`]);function li(e,t,n){let r=0,i;for(;r<e.length&&!i;){let t=e[r];typeof t==`string`&&!ci.has(t)&&st(t).values.length&&(i=e[r]),r++}if(i&&n)for(let r of t)e[r]=si(n,i)}var ui=class extends Pn{constructor(e,t,n,r,i){super(e,t,n,r,i,!0)}readKeyframes(){let{unresolvedKeyframes:e,element:t,name:n}=this;if(!t||!t.current)return;super.readKeyframes();for(let n=0;n<e.length;n++){let r=e[n];if(typeof r==`string`&&(r=r.trim(),Me(r))){let i=Or(r,t.current);i!==void 0&&(e[n]=i),n===e.length-1&&(this.finalKeyframe=r)}}if(this.resolveNoneKeyframes(),!jr.has(n)||e.length!==2)return;let[r,i]=e,a=Yr(r),o=Yr(i);if(Pe(r)!==Pe(i)&&z[n]){this.needsMeasurement=!0;return}if(a!==o)if(wn(a)&&wn(o))for(let t=0;t<e.length;t++){let n=e[t];typeof n==`string`&&(e[t]=parseFloat(n))}else z[n]&&(this.needsMeasurement=!0)}resolveNoneKeyframes(){let{unresolvedKeyframes:e,name:t}=this,n=[];for(let t=0;t<e.length;t++)(e[t]===null||Xr(e[t]))&&n.push(t);n.length&&li(e,n,t)}measureInitialState(){let{element:e,unresolvedKeyframes:t,name:n}=this;if(!e||!e.current)return;n===`height`&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=z[n](e.measureViewportBox(),window.getComputedStyle(e.current)),t[0]=this.measuredOrigin;let r=t[t.length-1];r!==void 0&&e.getValue(n,r).jump(r,!1)}measureEndState(){let{element:e,name:t,unresolvedKeyframes:n}=this;if(!e||!e.current)return;let r=e.getValue(t);r&&r.jump(this.measuredOrigin,!1);let i=n.length-1,a=n[i];n[i]=z[t](e.measureViewportBox(),window.getComputedStyle(e.current)),a!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=a),this.removedTransforms?.length&&this.removedTransforms.forEach(([t,n])=>{e.getValue(t).set(n)}),this.resolveNoneKeyframes()}},di=[`borderTopLeftRadius`,`borderTopRightRadius`,`borderBottomRightRadius`,`borderBottomLeftRadius`];function fi(e,t,n){if(e==null)return[];if(e instanceof EventTarget)return[e];if(typeof e==`string`){let r=document;t&&(r=t.current);let i=n?.[e]??r.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e).filter(e=>e!=null)}var pi=(e,t)=>t&&typeof e==`number`?t.transform(e):e;function mi(e){return g(e)&&`offsetHeight`in e&&!(`ownerSVGElement`in e)}var{schedule:hi,cancel:gi}=Te(queueMicrotask,!1),W={x:!1,y:!1};function _i(){return W.x||W.y}function vi(e){return e===`x`||e===`y`?W[e]?null:(W[e]=!0,()=>{W[e]=!1}):W.x||W.y?null:(W.x=W.y=!0,()=>{W.x=W.y=!1})}function yi(e,t){let n=fi(e),r=new AbortController;return[n,{passive:!0,...t,signal:r.signal},()=>r.abort()]}function bi(e){return!(e.pointerType===`touch`||_i())}function xi(e,t,n={}){let[r,i,a]=yi(e,n);return r.forEach(e=>{let n=!1,r=!1,a,o=()=>{e.removeEventListener(`pointerleave`,u)},s=e=>{a&&=(a(e),void 0),o()},c=e=>{n=!1,window.removeEventListener(`pointerup`,c),window.removeEventListener(`pointercancel`,c),r&&(r=!1,s(e))},l=()=>{n=!0,window.addEventListener(`pointerup`,c,i),window.addEventListener(`pointercancel`,c,i)},u=e=>{if(e.pointerType!==`touch`){if(n){r=!0;return}s(e)}};e.addEventListener(`pointerenter`,n=>{if(!bi(n))return;r=!1;let o=t(e,n);typeof o==`function`&&(a=o,e.addEventListener(`pointerleave`,u,i))},i),e.addEventListener(`pointerdown`,l,i)}),a}var Si=(e,t)=>t?e===t||Si(e,t.parentElement):!1,Ci=e=>e.pointerType===`mouse`?typeof e.button!=`number`||e.button<=0:e.isPrimary!==!1,wi=new Set([`BUTTON`,`INPUT`,`SELECT`,`TEXTAREA`,`A`]);function Ti(e){return wi.has(e.tagName)||e.isContentEditable===!0}var Ei=new Set([`INPUT`,`SELECT`,`TEXTAREA`]);function Di(e){return Ei.has(e.tagName)||e.isContentEditable===!0}var Oi=new WeakSet;function ki(e){return t=>{t.key===`Enter`&&e(t)}}function Ai(e,t){e.dispatchEvent(new PointerEvent(`pointer`+t,{isPrimary:!0,bubbles:!0}))}var ji=(e,t)=>{let n=e.currentTarget;if(!n)return;let r=ki(()=>{if(Oi.has(n))return;Ai(n,`down`);let e=ki(()=>{Ai(n,`up`)});n.addEventListener(`keyup`,e,t),n.addEventListener(`blur`,()=>Ai(n,`cancel`),t)});n.addEventListener(`keydown`,r,t),n.addEventListener(`blur`,()=>n.removeEventListener(`keydown`,r),t)};function Mi(e){return Ci(e)&&!_i()}var Ni=new WeakSet;function Pi(e,t,n={}){let[r,i,a]=yi(e,n),o=e=>{let r=e.currentTarget;if(!Mi(e)||Ni.has(e))return;Oi.add(r),n.stopPropagation&&Ni.add(e);let a=t(r,e),o={...i,capture:!0},s=(e,t)=>{window.removeEventListener(`pointerup`,c,o),window.removeEventListener(`pointercancel`,l,o),Oi.has(r)&&Oi.delete(r),Mi(e)&&typeof a==`function`&&a(e,{success:t})},c=e=>{s(e,r===window||r===document||n.useGlobalTarget||Si(r,e.target))},l=e=>{s(e,!1)};window.addEventListener(`pointerup`,c,o),window.addEventListener(`pointercancel`,l,o)};return r.forEach(e=>{(n.useGlobalTarget?window:e).addEventListener(`pointerdown`,o,i),mi(e)&&(e.addEventListener(`focus`,e=>ji(e,i)),!Ti(e)&&!e.hasAttribute(`tabindex`)&&(e.tabIndex=0))}),a}function Fi(e){return g(e)&&`ownerSVGElement`in e}var Ii=new WeakMap,Li,Ri=(e,t,n)=>(r,i)=>i&&i[0]?i[0][e+`Size`]:Fi(r)&&`getBBox`in r?r.getBBox()[t]:r[n],zi=Ri(`inline`,`width`,`offsetWidth`),Bi=Ri(`block`,`height`,`offsetHeight`);function Vi({target:e,borderBoxSize:t}){Ii.get(e)?.forEach(n=>{n(e,{get width(){return zi(e,t)},get height(){return Bi(e,t)}})})}function Hi(e){e.forEach(Vi)}function Ui(){typeof ResizeObserver>`u`||(Li=new ResizeObserver(Hi))}function Wi(e,t){Li||Ui();let n=fi(e);return n.forEach(e=>{let n=Ii.get(e);n||(n=new Set,Ii.set(e,n)),n.add(t),Li?.observe(e)}),()=>{n.forEach(e=>{let n=Ii.get(e);n?.delete(t),n?.size||Li?.unobserve(e)})}}var Gi=new Set,Ki;function qi(){Ki=()=>{let e={get width(){return window.innerWidth},get height(){return window.innerHeight}};Gi.forEach(t=>t(e))},window.addEventListener(`resize`,Ki)}function Ji(e){return Gi.add(e),Ki||qi(),()=>{Gi.delete(e),!Gi.size&&typeof Ki==`function`&&(window.removeEventListener(`resize`,Ki),Ki=void 0)}}function Yi(e,t){return typeof e==`function`?Ji(e):Wi(e,t)}var Xi={value:null,addProjectionMetrics:null};function Zi(e){return Fi(e)&&e.tagName===`svg`}var Qi=[...Jr,P,F],$i=e=>Qi.find(qr(e)),ea=()=>({translate:0,scale:1,origin:0,originPoint:0}),ta=()=>({x:ea(),y:ea()}),na=()=>({min:0,max:0}),G=()=>({x:na(),y:na()}),ra=new WeakMap;function ia(e){return typeof e==`object`&&!!e&&typeof e.start==`function`}function aa(e){return typeof e==`string`||Array.isArray(e)}var oa=[`animate`,`whileInView`,`whileFocus`,`whileHover`,`whileTap`,`whileDrag`,`exit`],sa=[`initial`,...oa];function ca(e){return ia(e.animate)||sa.some(t=>aa(e[t]))}function la(e){return!!(ca(e)||e.variants)}function ua(e,t,n){for(let r in t){let i=t[r],a=n[r];if(U(i))e.addValue(r,i);else if(U(a))e.addValue(r,V(i,{owner:e}));else if(a!==i)if(e.hasValue(r)){let t=e.getValue(r);t.liveStyle===!0?t.jump(i):t.hasAnimated||t.set(i)}else{let t=e.getStaticValue(r);e.addValue(r,V(t===void 0?i:t,{owner:e}))}}for(let r in n)t[r]===void 0&&e.removeValue(r);return t}var da={current:null},fa={current:!1},pa=typeof window<`u`;function ma(){if(fa.current=!0,pa)if(window.matchMedia){let e=window.matchMedia(`(prefers-reduced-motion)`),t=()=>da.current=e.matches;e.addEventListener(`change`,t),t()}else da.current=!1}var ha=[`AnimationStart`,`AnimationComplete`,`Update`,`BeforeLayoutMeasure`,`LayoutMeasure`,`LayoutAnimationStart`,`LayoutAnimationComplete`],ga={};function _a(e){ga=e}function va(){return ga}var ya=class{scrapeMotionValuesFromProps(e,t,n){return{}}constructor({parent:e,props:t,presenceContext:n,reducedMotionConfig:r,skipAnimations:i,blockInitialAnimation:a,visualState:o},s={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.shouldSkipAnimations=!1,this.values=new Map,this.KeyframeResolver=Pn,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.hasBeenMounted=!1,this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify(`Update`,this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{let e=k.now();this.renderScheduledAt<e&&(this.renderScheduledAt=e,E.render(this.render,!1,!0))};let{latestValues:c,renderState:l}=o;this.latestValues=c,this.baseTarget={...c},this.initialValues=t.initial?{...c}:{},this.renderState=l,this.parent=e,this.props=t,this.presenceContext=n,this.depth=e?e.depth+1:0,this.reducedMotionConfig=r,this.skipAnimationsConfig=i,this.options=s,this.blockInitialAnimation=!!a,this.isControllingVariants=ca(t),this.isVariantNode=la(t),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(e&&e.current);let{willChange:u,...d}=this.scrapeMotionValuesFromProps(t,{},this);for(let e in d){let t=d[e];c[e]!==void 0&&U(t)&&t.set(c[e])}}mount(e){if(this.hasBeenMounted)for(let e in this.initialValues)this.values.get(e)?.jump(this.initialValues[e]),this.latestValues[e]=this.initialValues[e];this.current=e,ra.set(e,this),this.projection&&!this.projection.instance&&this.projection.mount(e),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((e,t)=>this.bindToMotionValue(t,e)),this.reducedMotionConfig===`never`?this.shouldReduceMotion=!1:this.reducedMotionConfig===`always`?this.shouldReduceMotion=!0:(fa.current||ma(),this.shouldReduceMotion=da.current),this.shouldSkipAnimations=this.skipAnimationsConfig??!1,this.parent?.addChild(this),this.update(this.props,this.presenceContext),this.hasBeenMounted=!0}unmount(){this.projection&&this.projection.unmount(),D(this.notifyUpdate),D(this.render),this.valueSubscriptions.forEach(e=>e()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent?.removeChild(this);for(let e in this.events)this.events[e].clear();for(let e in this.features){let t=this.features[e];t&&(t.unmount(),t.isMounted=!1)}this.current=null}addChild(e){this.children.add(e),this.enteringChildren??=new Set,this.enteringChildren.add(e)}removeChild(e){this.children.delete(e),this.enteringChildren&&this.enteringChildren.delete(e)}bindToMotionValue(e,t){if(this.valueSubscriptions.has(e)&&this.valueSubscriptions.get(e)(),t.accelerate&&rr.has(e)&&this.current instanceof HTMLElement){let{factory:n,keyframes:r,times:i,ease:a,duration:o}=t.accelerate,s=new qn({element:this.current,name:e,keyframes:r,times:i,ease:a,duration:C(o)}),c=n(s);this.valueSubscriptions.set(e,()=>{c(),s.cancel()});return}let n=Cn.has(e);n&&this.onBindTransform&&this.onBindTransform();let r=t.on(`change`,t=>{this.latestValues[e]=t,this.props.onUpdate&&E.preRender(this.notifyUpdate),n&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()}),i;typeof window<`u`&&window.MotionCheckAppearSync&&(i=window.MotionCheckAppearSync(this,e,t)),this.valueSubscriptions.set(e,()=>{r(),i&&i()})}sortNodePosition(e){return!this.current||!this.sortInstanceNodePosition||this.type!==e.type?0:this.sortInstanceNodePosition(this.current,e.current)}updateFeatures(){let e=`animation`;for(e in ga){let t=ga[e];if(!t)continue;let{isEnabled:n,Feature:r}=t;if(!this.features[e]&&r&&n(this.props)&&(this.features[e]=new r(this)),this.features[e]){let t=this.features[e];t.isMounted?t.update():(t.mount(),t.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):G()}getStaticValue(e){return this.latestValues[e]}setStaticValue(e,t){this.latestValues[e]=t}update(e,t){(e.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=e,this.prevPresenceContext=this.presenceContext,this.presenceContext=t;for(let t=0;t<ha.length;t++){let n=ha[t];this.propEventSubscriptions[n]&&(this.propEventSubscriptions[n](),delete this.propEventSubscriptions[n]);let r=e[`on`+n];r&&(this.propEventSubscriptions[n]=this.on(n,r))}this.prevMotionValues=ua(this,this.scrapeMotionValuesFromProps(e,this.prevProps||{},this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue()}getProps(){return this.props}getVariant(e){return this.props.variants?this.props.variants[e]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}addVariantChild(e){let t=this.getClosestVariantNode();if(t)return t.variantChildren&&t.variantChildren.add(e),()=>t.variantChildren.delete(e)}addValue(e,t){let n=this.values.get(e);t!==n&&(n&&this.removeValue(e),this.bindToMotionValue(e,t),this.values.set(e,t),this.latestValues[e]=t.get())}removeValue(e){this.values.delete(e);let t=this.valueSubscriptions.get(e);t&&(t(),this.valueSubscriptions.delete(e)),delete this.latestValues[e],this.removeValueFromRenderState(e,this.renderState)}hasValue(e){return this.values.has(e)}getValue(e,t){if(this.props.values&&this.props.values[e])return this.props.values[e];let n=this.values.get(e);return n===void 0&&t!==void 0&&(n=V(t===null?void 0:t,{owner:this}),this.addValue(e,n)),n}readValue(e,t){let n=this.latestValues[e]!==void 0||!this.current?this.latestValues[e]:this.getBaseTargetFromProps(this.props,e)??this.readValueFromInstance(this.current,e,this.options);return n!=null&&(typeof n==`string`&&(h(n)||_(n))?n=parseFloat(n):!$i(n)&&F.test(t)&&(n=si(e,t)),this.setBaseTarget(e,U(n)?n.get():n)),U(n)?n.get():n}setBaseTarget(e,t){this.baseTarget[e]=t}getBaseTarget(e){let{initial:t}=this.props,n;if(typeof t==`string`||typeof t==`object`){let r=Ar(this.props,t,this.presenceContext?.custom);r&&(n=r[e])}if(t&&n!==void 0)return n;let r=this.getBaseTargetFromProps(this.props,e);return r!==void 0&&!U(r)?r:this.initialValues[e]!==void 0&&n===void 0?void 0:this.baseTarget[e]}on(e,t){return this.events[e]||(this.events[e]=new S),this.events[e].add(t)}notify(e,...t){this.events[e]&&this.events[e].notify(...t)}scheduleRenderMicrotask(){hi.render(this.render)}},ba=class extends ya{constructor(){super(...arguments),this.KeyframeResolver=ui}sortInstanceNodePosition(e,t){return e.compareDocumentPosition(t)&2?1:-1}getBaseTargetFromProps(e,t){let n=e.style;return n?n[t]:void 0}removeValueFromRenderState(e,{vars:t,style:n}){delete t[e],delete n[e]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);let{children:e}=this.props;U(e)&&(this.childSubscription=e.on(`change`,e=>{this.current&&(this.current.textContent=`${e}`)}))}},K=class{constructor(e){this.isMounted=!1,this.node=e}update(){}};function xa({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function Sa({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function Ca(e,t){if(!t)return e;let n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function wa(e){return e===void 0||e===1}function Ta({scale:e,scaleX:t,scaleY:n}){return!wa(e)||!wa(t)||!wa(n)}function q(e){return Ta(e)||Ea(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function Ea(e){return Da(e.x)||Da(e.y)}function Da(e){return e&&e!==`0%`}function Oa(e,t,n){return n+t*(e-n)}function ka(e,t,n,r,i){return i!==void 0&&(e=Oa(e,i,r)),Oa(e,n,r)+t}function Aa(e,t=0,n=1,r,i){e.min=ka(e.min,t,n,r,i),e.max=ka(e.max,t,n,r,i)}function ja(e,{x:t,y:n}){Aa(e.x,t.translate,t.scale,t.originPoint),Aa(e.y,n.translate,n.scale,n.originPoint)}var Ma=.999999999999,Na=1.0000000000001;function Pa(e,t,n,r=!1){let i=n.length;if(!i)return;t.x=t.y=1;let a,o;for(let s=0;s<i;s++){a=n[s],o=a.projectionDelta;let{visualElement:i}=a.options;i&&i.props.style&&i.props.style.display===`contents`||(r&&a.options.layoutScroll&&a.scroll&&a!==a.root&&(J(e.x,-a.scroll.offset.x),J(e.y,-a.scroll.offset.y)),o&&(t.x*=o.x.scale,t.y*=o.y.scale,ja(e,o)),r&&q(a.latestValues)&&La(e,a.latestValues,a.layout?.layoutBox))}t.x<Na&&t.x>Ma&&(t.x=1),t.y<Na&&t.y>Ma&&(t.y=1)}function J(e,t){e.min+=t,e.max+=t}function Fa(e,t,n,r,i=.5){Aa(e,t,n,I(e.min,e.max,i),r)}function Ia(e,t){return typeof e==`string`?parseFloat(e)/100*(t.max-t.min):e}function La(e,t,n){let r=n??e;Fa(e.x,Ia(t.x,r.x),t.scaleX,t.scale,t.originX),Fa(e.y,Ia(t.y,r.y),t.scaleY,t.scale,t.originY)}function Ra(e,t){return xa(Ca(e.getBoundingClientRect(),t))}function za(e,t,n){let r=Ra(e,n),{scroll:i}=t;return i&&(J(r.x,i.offset.x),J(r.y,i.offset.y)),r}var Ba={x:`translateX`,y:`translateY`,z:`translateZ`,transformPerspective:`perspective`},Va=Sn.length;function Ha(e,t,n){let r=``,i=!0;for(let a=0;a<Va;a++){let o=Sn[a],s=e[o];if(s===void 0)continue;let c=!0;if(typeof s==`number`)c=s===+!!o.startsWith(`scale`);else{let e=parseFloat(s);c=o.startsWith(`scale`)?e===1:e===0}if(!c||n){let e=pi(s,ri[o]);if(!c){i=!1;let t=Ba[o]||o;r+=`${t}(${e}) `}n&&(t[o]=e)}}let a=e.pathRotation;return a&&(i=!1,r+=`rotate(${pi(a,ri.pathRotation)}) `),r=r.trim(),n?r=n(t,i?``:r):i&&(r=`none`),r}function Ua(e,t,n){let{style:r,vars:i,transformOrigin:a}=e,o=!1,s=!1;for(let e in t){let n=t[e];if(Cn.has(e)){o=!0;continue}if(Ae(e)){i[e]=n;continue}{let t=pi(n,ri[e]);e.startsWith(`origin`)?(s=!0,a[e]=t):r[e]=t}}if(t.transform||(o||n?r.transform=Ha(t,e.transform,n):r.transform&&=`none`),s){let{originX:e=`50%`,originY:t=`50%`,originZ:n=0}=a;r.transformOrigin=`${e} ${t} ${n}`}}function Wa(e,{style:t,vars:n},r,i){let a=e.style,o;for(o in t)a[o]=t[o];for(o in i?.applyProjectionStyles(a,r),n)a.setProperty(o,n[o])}function Ga(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}var Ka={correct:(e,t)=>{if(!t.target)return e;if(typeof e==`string`)if(N.test(e))e=parseFloat(e);else return e;return`${Ga(e,t.target.x)}% ${Ga(e,t.target.y)}%`}},qa={correct:(e,{treeScale:t,projectionDelta:n})=>{let r=e,i=F.parse(e);if(i.length>5)return r;let a=F.createTransformer(e),o=typeof i[0]==`number`?0:1,s=n.x.scale*t.x,c=n.y.scale*t.y;i[0+o]/=s,i[1+o]/=c;let l=I(s,c,.5);return typeof i[2+o]==`number`&&(i[2+o]/=l),typeof i[3+o]==`number`&&(i[3+o]/=l),a(i)}},Ja={borderRadius:{...Ka,applyTo:[...di]},borderTopLeftRadius:Ka,borderTopRightRadius:Ka,borderBottomLeftRadius:Ka,borderBottomRightRadius:Ka,boxShadow:qa};function Ya(e,{layout:t,layoutId:n}){return Cn.has(e)||e.startsWith(`origin`)||(t||n!==void 0)&&(!!Ja[e]||e===`opacity`)}function Xa(e,t,n){let r=e.style,i=t?.style,a={};if(!r)return a;for(let t in r)(U(r[t])||i&&U(i[t])||Ya(t,e)||n?.getValue(t)?.liveStyle!==void 0)&&(a[t]=r[t]);return a}function Za(e){return window.getComputedStyle(e)}var Qa=class extends ba{constructor(){super(...arguments),this.type=`html`,this.renderInstance=Wa}mount(e){e.style,super.mount(e)}readValueFromInstance(e,t){if(Cn.has(t))return this.projection?.isProjecting?vn(t):bn(e,t);{let n=Za(e),r=(Ae(t)?n.getPropertyValue(t):n[t])||0;return typeof r==`string`?r.trim():r}}measureInstanceViewportBox(e,{transformPagePoint:t}){return Ra(e,t)}build(e,t,n){Ua(e,t,n.transformTemplate)}scrapeMotionValuesFromProps(e,t,n){return Xa(e,t,n)}},$a={offset:`stroke-dashoffset`,array:`stroke-dasharray`},eo={offset:`strokeDashoffset`,array:`strokeDasharray`};function to(e,t,n=1,r=0,i=!0){e.pathLength=1;let a=i?$a:eo;e[a.offset]=`${-r}`,e[a.array]=`${t} ${n}`}var no=[`transform`,`opacity`,`offsetDistance`,`offsetPath`,`offsetRotate`,`offsetAnchor`];function ro(e,{attrX:t,attrY:n,attrScale:r,pathLength:i,pathSpacing:a=1,pathOffset:o=0,...s},c,l,u){if(Ua(e,s,l),c){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};let{attrs:d,style:f}=e;for(let e of no)d[e]!==void 0&&(f[e]=d[e],delete d[e]);(f.transform||d.transformOrigin)&&(f.transformOrigin=d.transformOrigin??`50% 50%`,delete d.transformOrigin),f.transform&&(f.transformBox=u?.transformBox??`fill-box`,delete d.transformBox),t!==void 0&&(d.x=t),n!==void 0&&(d.y=n),r!==void 0&&(d.scale=r),i!==void 0&&to(d,i,a,o,!1)}var io=new Set([`baseFrequency`,`diffuseConstant`,`kernelMatrix`,`kernelUnitLength`,`keySplines`,`keyTimes`,`limitingConeAngle`,`markerHeight`,`markerWidth`,`numOctaves`,`targetX`,`targetY`,`surfaceScale`,`specularConstant`,`specularExponent`,`stdDeviation`,`tableValues`,`viewBox`,`gradientTransform`,`pathLength`,`startOffset`,`textLength`,`lengthAdjust`]),ao=e=>typeof e==`string`&&e.toLowerCase()===`svg`;function oo(e,t,n,r){Wa(e,t,void 0,r);for(let n in t.attrs)e.setAttribute(io.has(n)?n:Rr(n),t.attrs[n])}function so(e,t,n){let r=Xa(e,t,n);for(let n in e)if(U(e[n])||U(t[n])){let t=Sn.indexOf(n)===-1?n:`attr`+n.charAt(0).toUpperCase()+n.substring(1);r[t]=e[n]}return r}var co=class extends ba{constructor(){super(...arguments),this.type=`svg`,this.isSVGTag=!1,this.measureInstanceViewportBox=G}getBaseTargetFromProps(e,t){return e[t]}readValueFromInstance(e,t){if(Cn.has(t)){let e=ai(t);return e&&e.default||0}if(no.includes(t)){let n=getComputedStyle(e)[t];if(typeof n==`string`&&n)return n.trim()}return t=io.has(t)?t:Rr(t),e.getAttribute(t)}scrapeMotionValuesFromProps(e,t,n){return so(e,t,n)}build(e,t,n){ro(e,t,this.isSVGTag,n.transformTemplate,n.style)}renderInstance(e,t,n,r){oo(e,t,n,r)}mount(e){this.isSVGTag=ao(e.tagName),super.mount(e)}},lo=sa.length;function uo(e){if(!e)return;if(!e.isControllingVariants){let t=e.parent&&uo(e.parent)||{};return e.props.initial!==void 0&&(t.initial=e.props.initial),t}let t={};for(let n=0;n<lo;n++){let r=sa[n],i=e.props[r];(aa(i)||i===!1)&&(t[r]=i)}return t}function fo(e,t){if(!Array.isArray(t))return!1;let n=t.length;if(n!==e.length)return!1;for(let r=0;r<n;r++)if(t[r]!==e[r])return!1;return!0}var po=[...oa].reverse(),mo=oa.length;function ho(e){return t=>Promise.all(t.map(({animation:t,options:n})=>Gr(e,t,n)))}function go(e){let t=ho(e),n=vo(),r=!0,i=!1,a=t=>(n,r)=>{let i=H(e,r,t===`exit`?e.presenceContext?.custom:void 0);if(i){let{transition:e,transitionEnd:t,...r}=i;n={...n,...r,...t}}return n};function o(n){t=n(e)}function s(o){let{props:s}=e,c=uo(e.parent)||{},l=[],u=new Set,d={},f=1/0;for(let t=0;t<mo;t++){let p=po[t],m=n[p],h=s[p]===void 0?c[p]:s[p],g=aa(h),_=p===o?m.isActive:null;_===!1&&(f=t);let v=h===c[p]&&h!==s[p]&&g;if(v&&(r||i)&&e.manuallyAnimateOnMount&&(v=!1),m.protectedKeys={...d},!m.isActive&&_===null||!h&&!m.prevProp||ia(h)||typeof h==`boolean`)continue;if(p===`exit`&&m.isActive&&_!==!0){m.prevResolvedValues&&(d={...d,...m.prevResolvedValues});continue}let y=_o(m.prevProp,h),b=y||p===o&&m.isActive&&!v&&g||t>f&&g,x=!1,S=Array.isArray(h)?h:[h],C=S.reduce(a(p),{});_===!1&&(C={});let{prevResolvedValues:w={}}=m,ee={...w,...C},T=t=>{b=!0,u.has(t)&&(x=!0,u.delete(t)),m.needsAnimating[t]=!0;let n=e.getValue(t);n&&(n.liveStyle=!1)};for(let e in ee){let t=C[e],n=w[e];if(d.hasOwnProperty(e))continue;let r=!1;r=Mr(t)&&Mr(n)?!fo(t,n)||y:t!==n,r?t==null?u.add(e):T(e):t!==void 0&&u.has(e)?T(e):m.protectedKeys[e]=!0}m.prevProp=h,m.prevResolvedValues=C,m.isActive&&(d={...d,...C}),(r||i)&&e.blockInitialAnimation&&(b=!1);let te=v&&y;b&&(!te||x)&&l.push(...S.map(t=>{let n={type:p};if(typeof t==`string`&&(r||i)&&!te&&e.manuallyAnimateOnMount&&e.parent){let{parent:r}=e,i=H(r,t);if(r.enteringChildren&&i){let{delayChildren:t}=i.transition||{};n.delay=dr(r.enteringChildren,e,t)}}return{animation:t,options:n}}))}if(u.size){let t={};if(typeof s.initial!=`boolean`){let n=H(e,Array.isArray(s.initial)?s.initial[0]:s.initial);n&&n.transition&&(t.transition=n.transition)}u.forEach(n=>{let r=e.getBaseTarget(n),i=e.getValue(n);i&&(i.liveStyle=!0),t[n]=r??null}),l.push({animation:t})}let p=!!l.length;return r&&(s.initial===!1||s.initial===s.animate)&&!e.manuallyAnimateOnMount&&(p=!1),r=!1,i=!1,p?t(l):Promise.resolve()}function c(t,r){if(n[t].isActive===r)return Promise.resolve();e.variantChildren?.forEach(e=>e.animationState?.setActive(t,r)),n[t].isActive=r;let i=s(t);for(let e in n)n[e].protectedKeys={};return i}return{animateChanges:s,setActive:c,setAnimateFunction:o,getState:()=>n,reset:()=>{n=vo(),i=!0}}}function _o(e,t){return typeof t==`string`?t!==e:Array.isArray(t)?!fo(t,e):!1}function Y(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function vo(){return{animate:Y(!0),whileInView:Y(),whileHover:Y(),whileTap:Y(),whileDrag:Y(),whileFocus:Y(),exit:Y()}}function yo(e,t){e.min=t.min,e.max=t.max}function X(e,t){yo(e.x,t.x),yo(e.y,t.y)}function bo(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}var xo=.9999,So=1.0001,Co=-.01,wo=.01;function Z(e){return e.max-e.min}function To(e,t,n){return Math.abs(e-t)<=n}function Eo(e,t,n,r=.5){e.origin=r,e.originPoint=I(t.min,t.max,e.origin),e.scale=Z(n)/Z(t),e.translate=I(n.min,n.max,e.origin)-e.originPoint,(e.scale>=xo&&e.scale<=So||isNaN(e.scale))&&(e.scale=1),(e.translate>=Co&&e.translate<=wo||isNaN(e.translate))&&(e.translate=0)}function Do(e,t,n,r){Eo(e.x,t.x,n.x,r?r.originX:void 0),Eo(e.y,t.y,n.y,r?r.originY:void 0)}function Oo(e,t,n,r=0){e.min=(r?I(n.min,n.max,r):n.min)+t.min,e.max=e.min+Z(t)}function ko(e,t,n,r){Oo(e.x,t.x,n.x,r?.x),Oo(e.y,t.y,n.y,r?.y)}function Ao(e,t,n,r=0){let i=r?I(n.min,n.max,r):n.min;e.min=t.min-i,e.max=e.min+Z(t)}function jo(e,t,n,r){Ao(e.x,t.x,n.x,r?.x),Ao(e.y,t.y,n.y,r?.y)}function Mo(e,t,n,r,i){return e-=t,e=Oa(e,1/n,r),i!==void 0&&(e=Oa(e,1/i,r)),e}function No(e,t=0,n=1,r=.5,i,a=e,o=e){if(M.test(t)&&(t=parseFloat(t),t=I(o.min,o.max,t/100)-o.min),typeof t!=`number`)return;let s=I(a.min,a.max,r);e===a&&(s-=t),e.min=Mo(e.min,t,n,s,i),e.max=Mo(e.max,t,n,s,i)}function Po(e,t,[n,r,i],a,o){No(e,t[n],t[r],t[i],t.scale,a,o)}var Fo=[`x`,`scaleX`,`originX`],Io=[`y`,`scaleY`,`originY`];function Lo(e,t,n,r){Po(e.x,t,Fo,n?n.x:void 0,r?r.x:void 0),Po(e.y,t,Io,n?n.y:void 0,r?r.y:void 0)}function Ro(e){return e.translate===0&&e.scale===1}function zo(e){return Ro(e.x)&&Ro(e.y)}function Bo(e,t){return e.min===t.min&&e.max===t.max}function Vo(e,t){return Bo(e.x,t.x)&&Bo(e.y,t.y)}function Ho(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function Uo(e,t){return Ho(e.x,t.x)&&Ho(e.y,t.y)}function Wo(e){return Z(e.x)/Z(e.y)}function Go(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}function Q(e){return[e(`x`),e(`y`)]}function Ko(e,t,n){let r=``,i=e.x.translate/t.x,a=e.y.translate/t.y,o=n?.z||0;if((i||a||o)&&(r=`translate3d(${i}px, ${a}px, ${o}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){let{transformPerspective:e,rotate:t,pathRotation:i,rotateX:a,rotateY:o,skewX:s,skewY:c}=n;e&&(r=`perspective(${e}px) ${r}`),t&&(r+=`rotate(${t}deg) `),i&&(r+=`rotate(${i}deg) `),a&&(r+=`rotateX(${a}deg) `),o&&(r+=`rotateY(${o}deg) `),s&&(r+=`skewX(${s}deg) `),c&&(r+=`skewY(${c}deg) `)}let s=e.x.scale*t.x,c=e.y.scale*t.y;return(s!==1||c!==1)&&(r+=`scale(${s}, ${c})`),r||`none`}var qo=di.length,Jo=e=>typeof e==`string`?parseFloat(e):e,Yo=e=>typeof e==`number`||N.test(e);function Xo(e,t,n,r,i,a){i?(e.opacity=I(0,n.opacity??1,Qo(r)),e.opacityExit=I(t.opacity??1,0,$o(r))):a&&(e.opacity=I(t.opacity??1,n.opacity??1,r));for(let i=0;i<qo;i++){let a=di[i],o=Zo(t,a),s=Zo(n,a);(o!==void 0||s!==void 0)&&(o||=0,s||=0,o===0||s===0||Yo(o)===Yo(s)?(e[a]=Math.max(I(Jo(o),Jo(s),r),0),(M.test(s)||M.test(o))&&(e[a]+=`%`)):e[a]=s)}(t.rotate||n.rotate)&&(e.rotate=I(t.rotate||0,n.rotate||0,r))}function Zo(e,t){return e[t]===void 0?e.borderRadius:e[t]}var Qo=es(0,.5,fe),$o=es(.5,.95,y);function es(e,t,n){return r=>r<e?0:r>t?1:n(x(e,t,r))}function ts(e,t,n){let r=U(e)?e:V(e);return r.start(Tr(``,r,t,n)),r.animation}function ns(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)}var rs=(e,t)=>e.depth-t.depth,is=class{constructor(){this.children=[],this.isDirty=!1}add(e){l(this.children,e),this.isDirty=!0}remove(e){u(this.children,e),this.isDirty=!0}forEach(e){this.isDirty&&this.children.sort(rs),this.isDirty=!1,this.children.forEach(e)}};function as(e,t){let n=k.now(),r=({timestamp:i})=>{let a=i-n;a>=t&&(D(r),e(a-t))};return E.setup(r,!0),()=>D(r)}function os(e){return U(e)?e.get():e}var ss=class{constructor(){this.members=[]}add(e){l(this.members,e);for(let t=this.members.length-1;t>=0;t--){let n=this.members[t];if(n===e||n===this.lead||n===this.prevLead)continue;let r=n.instance;(!r||r.isConnected===!1)&&!n.snapshot&&(u(this.members,n),n.unmount())}e.scheduleRender()}remove(e){if(u(this.members,e),e===this.prevLead&&(this.prevLead=void 0),e===this.lead){let e=this.members[this.members.length-1];e&&this.promote(e)}}relegate(e){for(let t=this.members.indexOf(e)-1;t>=0;t--){let e=this.members[t];if(e.isPresent!==!1&&e.instance?.isConnected!==!1)return this.promote(e),!0}return!1}promote(e,t){let n=this.lead;if(e!==n&&(this.prevLead=n,this.lead=e,e.show(),n)){n.updateSnapshot(),e.scheduleRender();let{layoutDependency:r}=n.options,{layoutDependency:i}=e.options;(r===void 0||r!==i)&&(e.resumeFrom=n,t&&(n.preserveOpacity=!0),n.snapshot&&(e.snapshot=n.snapshot,e.snapshot.latestValues=n.animationValues||n.latestValues),e.root?.isUpdating&&(e.isLayoutDirty=!0)),e.options.crossfade===!1&&n.hide()}}exitAnimationComplete(){this.members.forEach(e=>{e.options.onExitComplete?.(),e.resumingFrom?.options.onExitComplete?.()})}scheduleRender(){this.members.forEach(e=>e.instance&&e.scheduleRender(!1))}removeLeadSnapshot(){this.lead?.snapshot&&(this.lead.snapshot=void 0)}},cs={hasAnimatedSinceResize:!0,hasEverUpdated:!1},$={nodes:0,calculatedTargetDeltas:0,calculatedProjections:0},ls=[``,`X`,`Y`,`Z`],us=1e3,ds=0;function fs(e,t,n,r){let{latestValues:i}=t;i[e]&&(n[e]=i[e],t.setStaticValue(e,0),r&&(r[e]=0))}function ps(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;let{visualElement:t}=e.options;if(!t)return;let n=Br(t);if(window.MotionHasOptimisedAnimation(n,`transform`)){let{layout:t,layoutId:r}=e.options;window.MotionCancelOptimisedAnimation(n,`transform`,E,!(t||r))}let{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&ps(r)}function ms({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:i}){return class{constructor(e={},n=t?.()){this.id=ds++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,Xi.value&&($.nodes=$.calculatedTargetDeltas=$.calculatedProjections=0),this.nodes.forEach(_s),this.nodes.forEach(Es),this.nodes.forEach(Ds),this.nodes.forEach(vs),Xi.addProjectionMetrics&&Xi.addProjectionMetrics($)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=e,this.root=n?n.root||n:this,this.path=n?[...n.path,n]:[],this.parent=n,this.depth=n?n.depth+1:0;for(let e=0;e<this.path.length;e++)this.path[e].shouldResetTransform=!0;this.root===this&&(this.nodes=new is)}addEventListener(e,t){return this.eventHandlers.has(e)||this.eventHandlers.set(e,new S),this.eventHandlers.get(e).add(t)}notifyListeners(e,...t){let n=this.eventHandlers.get(e);n&&n.notify(...t)}hasListeners(e){return this.eventHandlers.has(e)}mount(t){if(this.instance)return;this.isSVG=Fi(t)&&!Zi(t),this.instance=t;let{layoutId:n,layout:r,visualElement:i}=this.options;if(i&&!i.current&&i.mount(t),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),this.root.hasTreeAnimated&&(r||n)&&(this.isLayoutDirty=!0),e){let n,r=0,i=()=>this.root.updateBlockedByResize=!1;E.read(()=>{r=window.innerWidth}),e(t,()=>{let e=window.innerWidth;e!==r&&(r=e,this.root.updateBlockedByResize=!0,n&&n(),n=as(i,250),cs.hasAnimatedSinceResize&&(cs.hasAnimatedSinceResize=!1,this.nodes.forEach(Ts)))})}n&&this.root.registerSharedNode(n,this),this.options.animate!==!1&&i&&(n||r)&&this.addEventListener(`didUpdate`,({delta:e,hasLayoutChanged:t,hasRelativeLayoutChanged:n,layout:r})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}let a=this.options.transition||i.getDefaultTransition()||Ps,{onLayoutAnimationStart:o,onLayoutAnimationComplete:s}=i.getProps(),c=!this.targetLayout||!Uo(this.targetLayout,r),l=!t&&n;if(this.options.layoutRoot||this.resumeFrom||l||t&&(c||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);let t={..._r(a,`layout`),onPlay:o,onComplete:s};(i.shouldReduceMotion||this.options.layoutRoot)&&(t.delay=0,t.type=!1),this.startAnimation(t),this.setAnimationOrigin(e,l,t.path)}else t||Ts(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=r})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);let e=this.getStack();e&&e.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),D(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(Os),this.animationId++)}getTransformTemplate(){let{visualElement:e}=this.options;return e&&e.getProps().transformTemplate}willUpdate(e=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&ps(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let e=0;e<this.path.length;e++){let t=this.path[e];t.shouldResetTransform=!0,(typeof t.latestValues.x==`string`||typeof t.latestValues.y==`string`)&&(t.isLayoutDirty=!0),t.updateScroll(`snapshot`),t.options.layoutRoot&&t.willUpdate(!1)}let{layoutId:t,layout:n}=this.options;if(t===void 0&&!n)return;let r=this.getTransformTemplate();this.prevTransformTemplateValue=r?r(this.latestValues,``):void 0,this.updateSnapshot(),e&&this.notifyListeners(`willUpdate`)}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){let e=this.updateBlockedByResize;this.unblockUpdate(),this.updateBlockedByResize=!1,this.clearAllSnapshots(),e&&this.nodes.forEach(xs),this.nodes.forEach(bs);return}if(this.animationId<=this.animationCommitId){this.nodes.forEach(Ss);return}this.animationCommitId=this.animationId,this.isUpdating?(this.isUpdating=!1,this.nodes.forEach(Cs),this.nodes.forEach(ws),this.nodes.forEach(hs),this.nodes.forEach(gs)):this.nodes.forEach(Ss),this.clearAllSnapshots();let e=k.now();O.delta=d(0,1e3/60,e-O.timestamp),O.timestamp=e,O.isProcessing=!0,Ee.update.process(O),Ee.preRender.process(O),Ee.render.process(O),O.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,hi.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(ys),this.sharedNodes.forEach(ks)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,E.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){E.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!Z(this.snapshot.measuredBox.x)&&!Z(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let e=0;e<this.path.length;e++)this.path[e].updateScroll();let e=this.layout;this.layout=this.measure(!1),this.layoutVersion++,this.layoutCorrected||=G(),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners(`measure`,this.layout.layoutBox);let{visualElement:t}=this.options;t&&t.notify(`LayoutMeasure`,this.layout.layoutBox,e?e.layoutBox:void 0)}updateScroll(e=`measure`){let t=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===e&&(t=!1),t&&this.instance){let t=r(this.instance);this.scroll={animationId:this.root.animationId,phase:e,isRoot:t,offset:n(this.instance),wasRoot:this.scroll?this.scroll.isRoot:t}}}resetTransform(){if(!i)return;let e=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,t=this.projectionDelta&&!zo(this.projectionDelta),n=this.getTransformTemplate(),r=n?n(this.latestValues,``):void 0,a=r!==this.prevTransformTemplateValue;e&&this.instance&&(t||q(this.latestValues)||a)&&(i(this.instance,r),this.shouldResetTransform=!1,this.scheduleRender())}measure(e=!0){let t=this.measurePageBox(),n=this.removeElementScroll(t);return e&&(n=this.removeTransform(n)),Rs(n),{animationId:this.root.animationId,measuredBox:t,layoutBox:n,latestValues:{},source:this.id}}measurePageBox(){let{visualElement:e}=this.options;if(!e)return G();let t=e.measureViewportBox();if(!(this.scroll?.wasRoot||this.path.some(Bs))){let{scroll:e}=this.root;e&&(J(t.x,e.offset.x),J(t.y,e.offset.y))}return t}removeElementScroll(e){let t=G();if(X(t,e),this.scroll?.wasRoot)return t;for(let n=0;n<this.path.length;n++){let r=this.path[n],{scroll:i,options:a}=r;r!==this.root&&i&&a.layoutScroll&&(i.wasRoot&&X(t,e),J(t.x,i.offset.x),J(t.y,i.offset.y))}return t}applyTransform(e,t=!1,n){let r=n||G();X(r,e);for(let e=0;e<this.path.length;e++){let n=this.path[e];!t&&n.options.layoutScroll&&n.scroll&&n!==n.root&&(J(r.x,-n.scroll.offset.x),J(r.y,-n.scroll.offset.y)),q(n.latestValues)&&La(r,n.latestValues,n.layout?.layoutBox)}return q(this.latestValues)&&La(r,this.latestValues,this.layout?.layoutBox),r}removeTransform(e){let t=G();X(t,e);for(let e=0;e<this.path.length;e++){let n=this.path[e];if(!q(n.latestValues))continue;let r;n.instance&&(Ta(n.latestValues)&&n.updateSnapshot(),r=G(),X(r,n.measurePageBox())),Lo(t,n.latestValues,n.snapshot?.layoutBox,r)}return q(this.latestValues)&&Lo(t,this.latestValues),t}setTargetDelta(e){this.targetDelta=e,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(e){this.options={...this.options,...e,crossfade:e.crossfade===void 0||e.crossfade}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==O.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(e=!1){let t=this.getLead();this.isProjectionDirty||=t.isProjectionDirty,this.isTransformDirty||=t.isTransformDirty,this.isSharedProjectionDirty||=t.isSharedProjectionDirty;let n=!!this.resumingFrom||this!==t;if(!(e||n&&this.isSharedProjectionDirty||this.isProjectionDirty||this.parent?.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;let{layout:r,layoutId:i}=this.options;if(!this.layout||!(r||i))return;this.resolvedRelativeTargetAt=O.timestamp;let a=this.getClosestProjectingParent();a&&this.linkedParentVersion!==a.layoutVersion&&!a.options.layoutRoot&&this.removeRelativeTarget(),!this.targetDelta&&!this.relativeTarget&&(this.options.layoutAnchor!==!1&&a&&a.layout?this.createRelativeTarget(a,this.layout.layoutBox,a.layout.layoutBox):this.removeRelativeTarget()),!(!this.relativeTarget&&!this.targetDelta)&&(this.target||(this.target=G(),this.targetWithTransforms=G()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),ko(this.target,this.relativeTarget,this.relativeParent.target,this.options.layoutAnchor||void 0)):this.targetDelta?(this.resumingFrom?this.applyTransform(this.layout.layoutBox,!1,this.target):X(this.target,this.layout.layoutBox),ja(this.target,this.targetDelta)):X(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget&&(this.attemptToResolveRelativeTarget=!1,this.options.layoutAnchor!==!1&&a&&!!a.resumingFrom==!!this.resumingFrom&&!a.options.layoutScroll&&a.target&&this.animationProgress!==1?this.createRelativeTarget(a,this.target,a.target):this.relativeParent=this.relativeTarget=void 0),Xi.value&&$.calculatedTargetDeltas++)}getClosestProjectingParent(){if(!(!this.parent||Ta(this.parent.latestValues)||Ea(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}createRelativeTarget(e,t,n){this.relativeParent=e,this.linkedParentVersion=e.layoutVersion,this.forceRelativeParentToResolveTarget(),this.relativeTarget=G(),this.relativeTargetOrigin=G(),jo(this.relativeTargetOrigin,t,n,this.options.layoutAnchor||void 0),X(this.relativeTarget,this.relativeTargetOrigin)}removeRelativeTarget(){this.relativeParent=this.relativeTarget=void 0}calcProjection(){let e=this.getLead(),t=!!this.resumingFrom||this!==e,n=!0;if((this.isProjectionDirty||this.parent?.isProjectionDirty)&&(n=!1),t&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(n=!1),this.resolvedRelativeTargetAt===O.timestamp&&(n=!1),n)return;let{layout:r,layoutId:i}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(r||i))return;X(this.layoutCorrected,this.layout.layoutBox);let a=this.treeScale.x,o=this.treeScale.y;Pa(this.layoutCorrected,this.treeScale,this.path,t),e.layout&&!e.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(e.target=e.layout.layoutBox,e.targetWithTransforms=G());let{target:s}=e;if(!s){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(bo(this.prevProjectionDelta.x,this.projectionDelta.x),bo(this.prevProjectionDelta.y,this.projectionDelta.y)),Do(this.projectionDelta,this.layoutCorrected,s,this.latestValues),(this.treeScale.x!==a||this.treeScale.y!==o||!Go(this.projectionDelta.x,this.prevProjectionDelta.x)||!Go(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners(`projectionUpdate`,s)),Xi.value&&$.calculatedProjections++}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(e=!0){if(this.options.visualElement?.scheduleRender(),e){let e=this.getStack();e&&e.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=ta(),this.projectionDelta=ta(),this.projectionDeltaWithTransform=ta()}setAnimationOrigin(e,t=!1,n){let r=this.snapshot,i=r?r.latestValues:{},a={...this.latestValues},o=ta();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!t;let s=G(),c=(r?r.source:void 0)!==(this.layout?this.layout.source:void 0),l=this.getStack(),u=!l||l.members.length<=1,d=!!(c&&!u&&this.options.crossfade===!0&&!this.path.some(Ns));this.animationProgress=0;let f,p=n?.interpolateProjection(e);this.mixTargetDelta=t=>{let n=t/1e3,r=p?.(n);r?(o.x.translate=r.x,o.x.scale=I(e.x.scale,1,n),o.x.origin=e.x.origin,o.x.originPoint=e.x.originPoint,o.y.translate=r.y,o.y.scale=I(e.y.scale,1,n),o.y.origin=e.y.origin,o.y.originPoint=e.y.originPoint):(As(o.x,e.x,n),As(o.y,e.y,n)),this.setTargetDelta(o),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(jo(s,this.layout.layoutBox,this.relativeParent.layout.layoutBox,this.options.layoutAnchor||void 0),Ms(this.relativeTarget,this.relativeTargetOrigin,s,n),f&&Vo(this.relativeTarget,f)&&(this.isProjectionDirty=!1),f||=G(),X(f,this.relativeTarget)),c&&(this.animationValues=a,Xo(a,i,this.latestValues,n,d,u)),r&&r.rotate!==void 0&&(this.animationValues||=a,this.animationValues.pathRotation=r.rotate),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=n},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(e){this.notifyListeners(`animationStart`),this.currentAnimation?.stop(),this.resumingFrom?.currentAnimation?.stop(),this.pendingAnimation&&=(D(this.pendingAnimation),void 0),this.pendingAnimation=E.update(()=>{cs.hasAnimatedSinceResize=!0,this.motionValue||=V(0),this.motionValue.jump(0,!1),this.currentAnimation=ts(this.motionValue,[0,1e3],{...e,velocity:0,isSync:!0,onUpdate:t=>{this.mixTargetDelta(t),e.onUpdate&&e.onUpdate(t)},onComplete:()=>{e.onComplete&&e.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);let e=this.getStack();e&&e.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners(`animationComplete`)}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(us),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){let e=this.getLead(),{targetWithTransforms:t,target:n,layout:r,latestValues:i}=e;if(!(!t||!n||!r)){if(this!==e&&this.layout&&r&&zs(this.options.animationType,this.layout.layoutBox,r.layoutBox)){n=this.target||G();let t=Z(this.layout.layoutBox.x);n.x.min=e.target.x.min,n.x.max=n.x.min+t;let r=Z(this.layout.layoutBox.y);n.y.min=e.target.y.min,n.y.max=n.y.min+r}X(t,n),La(t,i),Do(this.projectionDeltaWithTransform,this.layoutCorrected,t,i)}}registerSharedNode(e,t){this.sharedNodes.has(e)||this.sharedNodes.set(e,new ss),this.sharedNodes.get(e).add(t);let n=t.options.initialPromotionConfig;t.promote({transition:n?n.transition:void 0,preserveFollowOpacity:n&&n.shouldPreserveFollowOpacity?n.shouldPreserveFollowOpacity(t):void 0})}isLead(){let e=this.getStack();return!e||e.lead===this}getLead(){let{layoutId:e}=this.options;return e&&this.getStack()?.lead||this}getPrevLead(){let{layoutId:e}=this.options;return e?this.getStack()?.prevLead:void 0}getStack(){let{layoutId:e}=this.options;if(e)return this.root.sharedNodes.get(e)}promote({needsReset:e,transition:t,preserveFollowOpacity:n}={}){let r=this.getStack();r&&r.promote(this,n),e&&(this.projectionDelta=void 0,this.needsReset=!0),t&&this.setOptions({transition:t})}relegate(){let e=this.getStack();return e?e.relegate(this):!1}resetSkewAndRotation(){let{visualElement:e}=this.options;if(!e)return;let t=!1,{latestValues:n}=e;if((n.z||n.rotate||n.rotateX||n.rotateY||n.rotateZ||n.skewX||n.skewY)&&(t=!0),!t)return;let r={};n.z&&fs(`z`,e,r,this.animationValues);for(let t=0;t<ls.length;t++)fs(`rotate${ls[t]}`,e,r,this.animationValues),fs(`skew${ls[t]}`,e,r,this.animationValues);e.render();for(let t in r)e.setStaticValue(t,r[t]),this.animationValues&&(this.animationValues[t]=r[t]);e.scheduleRender()}applyProjectionStyles(e,t){if(!this.instance||this.isSVG)return;if(!this.isVisible){e.visibility=`hidden`;return}let n=this.getTransformTemplate();if(this.needsReset){this.needsReset=!1,e.visibility=``,e.opacity=``,e.pointerEvents=os(t?.pointerEvents)||``,e.transform=n?n(this.latestValues,``):`none`;return}let r=this.getLead();if(!this.projectionDelta||!this.layout||!r.target){this.options.layoutId&&(e.opacity=this.latestValues.opacity===void 0?1:this.latestValues.opacity,e.pointerEvents=os(t?.pointerEvents)||``),this.hasProjected&&!q(this.latestValues)&&(e.transform=n?n({},``):`none`,this.hasProjected=!1);return}e.visibility=``;let i=r.animationValues||r.latestValues;this.applyTransformsToTarget();let a=Ko(this.projectionDeltaWithTransform,this.treeScale,i);n&&(a=n(i,a)),e.transform=a;let{x:o,y:s}=this.projectionDelta;e.transformOrigin=`${o.origin*100}% ${s.origin*100}% 0`,e.opacity=r.animationValues?r===this?i.opacity??this.latestValues.opacity??1:this.preserveOpacity?this.latestValues.opacity:i.opacityExit:r===this?i.opacity===void 0?``:i.opacity:i.opacityExit===void 0?0:i.opacityExit;for(let t in Ja){if(i[t]===void 0)continue;let{correct:n,applyTo:o,isCSSVariable:s}=Ja[t],c=a===`none`?i[t]:n(i[t],r);if(o){let t=o.length;for(let n=0;n<t;n++)e[o[n]]=c}else s?this.options.visualElement.renderState.vars[t]=c:e[t]=c}this.options.layoutId&&(e.pointerEvents=r===this?os(t?.pointerEvents)||``:`none`)}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(e=>e.currentAnimation?.stop()),this.root.nodes.forEach(bs),this.root.sharedNodes.clear()}}}function hs(e){e.updateLayout()}function gs(e){let t=e.resumeFrom?.snapshot||e.snapshot;if(e.isLead()&&e.layout&&t&&e.hasListeners(`didUpdate`)){let{layoutBox:n,measuredBox:r}=e.layout,{animationType:i}=e.options,a=t.source!==e.layout.source;if(i===`size`)Q(e=>{let r=a?t.measuredBox[e]:t.layoutBox[e],i=Z(r);r.min=n[e].min,r.max=r.min+i});else if(i===`x`||i===`y`){let e=i===`x`?`y`:`x`;yo(a?t.measuredBox[e]:t.layoutBox[e],n[e])}else zs(i,t.layoutBox,n)&&Q(r=>{let i=a?t.measuredBox[r]:t.layoutBox[r],o=Z(n[r]);i.max=i.min+o,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[r].max=e.relativeTarget[r].min+o)});let o=ta();Do(o,n,t.layoutBox);let s=ta();a?Do(s,e.applyTransform(r,!0),t.measuredBox):Do(s,n,t.layoutBox);let c=!zo(o),l=!1;if(!e.resumeFrom){let r=e.getClosestProjectingParent();if(r&&!r.resumeFrom){let{snapshot:i,layout:a}=r;if(i&&a){let o=e.options.layoutAnchor||void 0,s=G();jo(s,t.layoutBox,i.layoutBox,o);let c=G();jo(c,n,a.layoutBox,o),Uo(s,c)||(l=!0),r.options.layoutRoot&&(e.relativeTarget=c,e.relativeTargetOrigin=s,e.relativeParent=r)}}}e.notifyListeners(`didUpdate`,{layout:n,snapshot:t,delta:s,layoutDelta:o,hasLayoutChanged:c,hasRelativeLayoutChanged:l})}else if(e.isLead()){let{onExitComplete:t}=e.options;t&&t()}e.options.transition=void 0}function _s(e){Xi.value&&$.nodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty),e.isTransformDirty||=e.parent.isTransformDirty)}function vs(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function ys(e){e.clearSnapshot()}function bs(e){e.clearMeasurements()}function xs(e){e.isLayoutDirty=!0,e.updateLayout()}function Ss(e){e.isLayoutDirty=!1}function Cs(e){e.isAnimationBlocked&&e.layout&&!e.isLayoutDirty&&(e.snapshot=e.layout,e.isLayoutDirty=!0)}function ws(e){let{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify(`BeforeLayoutMeasure`),e.resetTransform()}function Ts(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function Es(e){e.resolveTargetDelta()}function Ds(e){e.calcProjection()}function Os(e){e.resetSkewAndRotation()}function ks(e){e.removeLeadSnapshot()}function As(e,t,n){e.translate=I(t.translate,0,n),e.scale=I(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function js(e,t,n,r){e.min=I(t.min,n.min,r),e.max=I(t.max,n.max,r)}function Ms(e,t,n,r){js(e.x,t.x,n.x,r),js(e.y,t.y,n.y,r)}function Ns(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}var Ps={duration:.45,ease:[.4,0,.1,1]},Fs=e=>typeof navigator<`u`&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Is=Fs(`applewebkit/`)&&!Fs(`chrome/`)?Math.round:y;function Ls(e){e.min=Is(e.min),e.max=Is(e.max)}function Rs(e){Ls(e.x),Ls(e.y)}function zs(e,t,n){return e===`position`||e===`preserve-aspect`&&!To(Wo(t),Wo(n),.2)}function Bs(e){return e!==e.root&&e.scroll?.wasRoot}var Vs=ms({attachResizeListener:(e,t)=>ns(e,`resize`,t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body?.scrollLeft||0,y:document.documentElement.scrollTop||document.body?.scrollTop||0}),checkIsScrollRoot:()=>!0}),Hs={current:void 0},Us=ms({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!Hs.current){let e=new Vs({});e.mount(window),e.setOptions({layoutScroll:!0}),Hs.current=e}return Hs.current},resetTransform:(e,t)=>{e.style.transform=t===void 0?`none`:t},checkIsScrollRoot:e=>window.getComputedStyle(e).position===`fixed`}),Ws=(0,i.createContext)({transformPagePoint:e=>e,isStatic:!1,reducedMotion:`never`});function Gs(e=!0){let t=(0,i.useContext)(c);if(t===null)return[!0,null];let{isPresent:n,onExitComplete:r,register:a}=t,o=(0,i.useId)();(0,i.useEffect)(()=>{if(e)return a(o)},[e]);let s=(0,i.useCallback)(()=>e&&r&&r(o),[o,r,e]);return!n&&r?[!1,s]:[!0]}var Ks=(0,i.createContext)({strict:!1}),qs={animation:[`animate`,`variants`,`whileHover`,`whileTap`,`exit`,`whileInView`,`whileFocus`,`whileDrag`],exit:[`exit`],drag:[`drag`,`dragControls`],focus:[`whileFocus`],hover:[`whileHover`,`onHoverStart`,`onHoverEnd`],tap:[`whileTap`,`onTap`,`onTapStart`,`onTapCancel`],pan:[`onPan`,`onPanStart`,`onPanSessionStart`,`onPanEnd`],inView:[`whileInView`,`onViewportEnter`,`onViewportLeave`],layout:[`layout`,`layoutId`]},Js=!1;function Ys(){if(Js)return;let e={};for(let t in qs)e[t]={isEnabled:e=>qs[t].some(t=>!!e[t])};_a(e),Js=!0}function Xs(){return Ys(),va()}function Zs(e){let t=Xs();for(let n in e)t[n]={...t[n],...e[n]};_a(t)}var Qs=(0,i.createContext)({});function $s(e,t){if(ca(e)){let{initial:t,animate:n}=e;return{initial:t===!1||aa(t)?t:void 0,animate:aa(n)?n:void 0}}return e.inherit===!1?{}:t}function ec(e){let{initial:t,animate:n}=$s(e,(0,i.useContext)(Qs));return(0,i.useMemo)(()=>({initial:t,animate:n}),[tc(t),tc(n)])}function tc(e){return Array.isArray(e)?e.join(` `):e}var nc=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function rc(e,t,n){for(let r in t)!U(t[r])&&!Ya(r,n)&&(e[r]=t[r])}function ic({transformTemplate:e},t){return(0,i.useMemo)(()=>{let n=nc();return Ua(n,t,e),Object.assign({},n.vars,n.style)},[t])}function ac(e,t){let n=e.style||{},r={};return rc(r,n,e),Object.assign(r,ic(e,t)),r}function oc(e,t){let n={},r=ac(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout=`none`,r.touchAction=e.drag===!0?`none`:`pan-${e.drag===`x`?`y`:`x`}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}var sc=()=>({...nc(),attrs:{}});function cc(e,t,n,r){let a=(0,i.useMemo)(()=>{let n=sc();return ro(n,t,ao(r),e.transformTemplate,e.style),{...n.attrs,style:{...n.style}}},[t]);if(e.style){let t={};rc(t,e.style,e),a.style={...t,...a.style}}return a}var lc=new Set(`animate.exit.variants.initial.style.values.variants.transition.transformTemplate.custom.inherit.onBeforeLayoutMeasure.onAnimationStart.onAnimationComplete.onUpdate.onDragStart.onDrag.onDragEnd.onMeasureDragConstraints.onDirectionLock.onDragTransitionEnd._dragX._dragY.onHoverStart.onHoverEnd.onViewportEnter.onViewportLeave.globalTapTarget.propagate.ignoreStrict.viewport`.split(`.`));function uc(e){return e.startsWith(`while`)||e.startsWith(`drag`)&&e!==`draggable`||e.startsWith(`layout`)||e.startsWith(`onTap`)||e.startsWith(`onPan`)||e.startsWith(`onLayout`)||lc.has(e)}function dc(e,t){return e.startsWith(`on`)?!uc(e):t?.(e)??!uc(e)}function fc(e,t,n,r){let i={};for(let a in e)(a!==`values`||typeof e.values!=`object`)&&(U(e[a])||(dc(a,r)||n===!0&&uc(a)||!t&&!uc(a)||e.draggable&&a.startsWith(`onDrag`))&&(i[a]=e[a]));return i}var pc=[`animate`,`circle`,`defs`,`desc`,`ellipse`,`g`,`image`,`line`,`filter`,`marker`,`mask`,`metadata`,`path`,`pattern`,`polygon`,`polyline`,`rect`,`stop`,`switch`,`symbol`,`svg`,`text`,`tspan`,`use`,`view`];function mc(e){return typeof e!=`string`||e.includes(`-`)?!1:!!(pc.indexOf(e)>-1||/[A-Z]/u.test(e))}function hc(e,t,n,{latestValues:r},a,o=!1,s,c){let l=(s??mc(e)?cc:oc)(t,r,a,e),u=fc(t,typeof e==`string`,o,c),d=e===i.Fragment?{}:{...u,...l,ref:n},{children:f}=t,p=(0,i.useMemo)(()=>U(f)?f.get():f,[f]);return(0,i.createElement)(e,{...d,children:p})}function gc({scrapeMotionValuesFromProps:e,createRenderState:t},n,r,i){return{latestValues:_c(n,r,i,e),renderState:t()}}function _c(e,t,n,r){let i={},a=r(e,{});for(let e in a)i[e]=os(a[e]);let{initial:o,animate:s}=e,c=ca(e),l=la(e);t&&l&&!c&&e.inherit!==!1&&(o===void 0&&(o=t.initial),s===void 0&&(s=t.animate));let u=n?n.initial===!1:!1;u||=o===!1;let d=u?s:o;if(d&&typeof d!=`boolean`&&!ia(d)){let t=Array.isArray(d)?d:[d];for(let n=0;n<t.length;n++){let r=Ar(e,t[n]);if(r){let{transitionEnd:e,transition:t,...n}=r;for(let e in n){let t=n[e];if(Array.isArray(t)){let e=u?t.length-1:0;t=t[e]}t!==null&&(i[e]=t)}for(let t in e)i[t]=e[t]}}}return i}var vc=e=>(t,n)=>{let r=(0,i.useContext)(Qs),a=(0,i.useContext)(c),s=()=>gc(e,t,r,a);return n?s():o(s)},yc=vc({scrapeMotionValuesFromProps:Xa,createRenderState:nc}),bc=vc({scrapeMotionValuesFromProps:so,createRenderState:sc}),xc=Symbol.for(`motionComponentSymbol`);function Sc(e,t,n){let r=(0,i.useRef)(n);(0,i.useInsertionEffect)(()=>{r.current=n});let a=(0,i.useRef)(null);return(0,i.useCallback)(n=>{n&&e.onMount?.(n),t&&(n?t.mount(n):t.unmount());let i=r.current;if(typeof i==`function`)if(n){let e=i(n);typeof e==`function`&&(a.current=e)}else a.current?(a.current(),a.current=null):i(n);else i&&(i.current=n)},[t])}var Cc=(0,i.createContext)({});function wc(e){return e&&typeof e==`object`&&Object.prototype.hasOwnProperty.call(e,`current`)}function Tc(e,t,n,r,a,o){let{visualElement:l}=(0,i.useContext)(Qs),u=(0,i.useContext)(Ks),d=(0,i.useContext)(c),f=(0,i.useContext)(Ws),p=f.reducedMotion,m=f.skipAnimations,h=(0,i.useRef)(null),g=(0,i.useRef)(!1);r||=u.renderer,!h.current&&r&&(h.current=r(e,{visualState:t,parent:l,props:n,presenceContext:d,blockInitialAnimation:d?d.initial===!1:!1,reducedMotionConfig:p,skipAnimations:m,isSVG:o}),g.current&&h.current&&(h.current.manuallyAnimateOnMount=!0));let _=h.current,v=(0,i.useContext)(Cc);_&&!_.projection&&a&&(_.type===`html`||_.type===`svg`)&&Ec(h.current,n,a,v);let y=(0,i.useRef)(!1);(0,i.useInsertionEffect)(()=>{_&&y.current&&_.update(n,d)});let b=n[zr],x=(0,i.useRef)(!!b&&typeof window<`u`&&!window.MotionHandoffIsComplete?.(b)&&window.MotionHasOptimisedAnimation?.(b));return s(()=>{g.current=!0,_&&(y.current=!0,window.MotionIsMounted=!0,_.updateFeatures(),_.scheduleRenderMicrotask(),x.current&&_.animationState&&_.animationState.animateChanges())}),(0,i.useEffect)(()=>{_&&(!x.current&&_.animationState&&_.animationState.animateChanges(),x.current&&=(queueMicrotask(()=>{window.MotionHandoffMarkAsComplete?.(b)}),!1),_.enteringChildren=void 0)}),_}function Ec(e,t,n,r){let{layoutId:i,layout:a,drag:o,dragConstraints:s,layoutScroll:c,layoutRoot:l,layoutAnchor:u,layoutCrossfade:d}=t;e.projection=new n(e.latestValues,t[`data-framer-portal-id`]?void 0:Dc(e.parent)),e.projection.setOptions({layoutId:i,layout:a,alwaysMeasureLayout:!!o||s&&wc(s),visualElement:e,animationType:typeof a==`string`?a:`both`,initialPromotionConfig:r,crossfade:d,layoutScroll:c,layoutRoot:l,layoutAnchor:u})}function Dc(e){if(e)return e.options.allowProjection===!1?Dc(e.parent):e.projection}function Oc(e,{forwardMotionProps:t=!1,type:n}={},a,o){a&&Zs(a);let s=n?n===`svg`:mc(e),c=s?bc:yc;function l(n,l){let u,d={...(0,i.useContext)(Ws),...n,layoutId:kc(n)},{isStatic:f,isValidProp:p}=d,m=ec(n),h=c(n,f);if(!f&&typeof window<`u`){Ac(d,a);let t=jc(d);u=t.MeasureLayout,m.visualElement=Tc(e,h,d,o,t.ProjectionNode,s)}return(0,r.jsxs)(Qs.Provider,{value:m,children:[u&&m.visualElement?(0,r.jsx)(u,{visualElement:m.visualElement,...d}):null,hc(e,n,Sc(h,m.visualElement,l),h,f,t,s,p)]})}l.displayName=`motion.${typeof e==`string`?e:`create(${e.displayName??e.name??``})`}`;let u=(0,i.forwardRef)(l);return u[xc]=e,u}function kc({layoutId:e}){let t=(0,i.useContext)(a).id;return t&&e!==void 0?t+`-`+e:e}function Ac(e,t){(0,i.useContext)(Ks).strict}function jc(e){let{drag:t,layout:n}=Xs();if(!t&&!n)return{};let r={...t,...n};return{MeasureLayout:t?.isEnabled(e)||n?.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}function Mc(e,t){if(typeof Proxy>`u`)return Oc;let n=new Map,r=(n,r)=>Oc(n,r,e,t);return new Proxy((e,t)=>r(e,t),{get:(i,a)=>a===`create`?r:(n.has(a)||n.set(a,Oc(a,void 0,e,t)),n.get(a))})}var Nc=(e,t)=>t.isSVG??mc(e)?new co(t):new Qa(t,{allowProjection:e!==i.Fragment}),Pc=class extends K{constructor(e){super(e),e.animationState||=go(e)}updateAnimationControlsSubscription(){let{animate:e}=this.node.getProps();ia(e)&&(this.unmountControls=e.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){let{animate:e}=this.node.getProps(),{animate:t}=this.node.prevProps||{};e!==t&&this.updateAnimationControlsSubscription()}unmount(){this.node.animationState.reset(),this.unmountControls?.()}},Fc=0,Ic={animation:{Feature:Pc},exit:{Feature:class extends K{constructor(){super(...arguments),this.id=Fc++,this.isExitComplete=!1}update(){if(!this.node.presenceContext)return;let{isPresent:e,onExitComplete:t}=this.node.presenceContext,{isPresent:n}=this.node.prevPresenceContext||{};if(!this.node.animationState||e===n)return;if(e&&n===!1){if(this.isExitComplete){let{initial:e,custom:t}=this.node.getProps();if(typeof e==`string`||typeof e==`object`&&e&&!Array.isArray(e)){let n=H(this.node,e,t);if(n){let{transition:e,transitionEnd:t,...r}=n;for(let e in r)this.node.getValue(e)?.jump(r[e])}}this.node.animationState.reset(),this.node.animationState.animateChanges()}else this.node.animationState.setActive(`exit`,!1);this.isExitComplete=!1;return}let r=this.node.animationState.setActive(`exit`,!e);t&&!e&&r.then(()=>{this.isExitComplete=!0,t(this.id)})}mount(){let{register:e,onExitComplete:t}=this.node.presenceContext||{};t&&t(this.id),e&&(this.unmount=e(this.id))}unmount(){}}}};function Lc(e){return{point:{x:e.pageX,y:e.pageY}}}var Rc=e=>t=>Ci(t)&&e(t,Lc(t));function zc(e,t,n,r){return ns(e,t,Rc(n),r)}var Bc=({current:e})=>e?e.ownerDocument.defaultView:null,Vc=(e,t)=>Math.abs(e-t);function Hc(e,t){let n=Vc(e.x,t.x),r=Vc(e.y,t.y);return Math.sqrt(n**2+r**2)}var Uc=new Set([`auto`,`scroll`]),Wc=class{constructor(e,t,{transformPagePoint:n,contextWindow:r=window,dragSnapToOrigin:i=!1,distanceThreshold:a=3,element:o}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=e=>{this.handleScroll(e.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=Gc(this.lastRawMoveEventInfo,this.transformPagePoint));let e=qc(this.lastMoveEventInfo,this.history),t=this.startEvent!==null,n=Hc(e.offset,{x:0,y:0})>=this.distanceThreshold;if(!t&&!n)return;let{point:r}=e,{timestamp:i}=O;this.history.push({...r,timestamp:i});let{onStart:a,onMove:o}=this.handlers;t||(a&&a(this.lastMoveEvent,e),this.startEvent=this.lastMoveEvent),o&&o(this.lastMoveEvent,e)},this.handlePointerMove=(e,t)=>{this.lastMoveEvent=e,this.lastRawMoveEventInfo=t,this.lastMoveEventInfo=Gc(t,this.transformPagePoint),E.update(this.updatePoint,!0)},this.handlePointerUp=(e,t)=>{this.end();let{onEnd:n,onSessionEnd:r,resumeAnimation:i}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&i&&i(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;let a=qc(e.type===`pointercancel`?this.lastMoveEventInfo:Gc(t,this.transformPagePoint),this.history);this.startEvent&&n&&n(e,a),r&&r(e,a)},!Ci(e))return;this.dragSnapToOrigin=i,this.handlers=t,this.transformPagePoint=n,this.distanceThreshold=a,this.contextWindow=r||window;let s=Gc(Lc(e),this.transformPagePoint),{point:c}=s,{timestamp:l}=O;this.history=[{...c,timestamp:l}];let{onSessionStart:u}=t;u&&u(e,qc(s,this.history));let d={passive:!0,capture:!0};this.removeListeners=b(zc(this.contextWindow,`pointermove`,this.handlePointerMove,d),zc(this.contextWindow,`pointerup`,this.handlePointerUp,d),zc(this.contextWindow,`pointercancel`,this.handlePointerUp,d)),o&&this.startScrollTracking(o)}startScrollTracking(e){let t=e.parentElement;for(;t;){let e=getComputedStyle(t);(Uc.has(e.overflowX)||Uc.has(e.overflowY))&&this.scrollPositions.set(t,{x:t.scrollLeft,y:t.scrollTop}),t=t.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener(`scroll`,this.onElementScroll,{capture:!0}),window.addEventListener(`scroll`,this.onWindowScroll),this.removeScrollListeners=()=>{window.removeEventListener(`scroll`,this.onElementScroll,{capture:!0}),window.removeEventListener(`scroll`,this.onWindowScroll)}}handleScroll(e){let t=this.scrollPositions.get(e);if(!t)return;let n=e===window,r=n?{x:window.scrollX,y:window.scrollY}:{x:e.scrollLeft,y:e.scrollTop},i={x:r.x-t.x,y:r.y-t.y};(i.x!==0||i.y!==0)&&(n?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=i.x,this.lastMoveEventInfo.point.y+=i.y):this.history.length>0&&(this.history[0].x-=i.x,this.history[0].y-=i.y),this.scrollPositions.set(e,r),E.update(this.updatePoint,!0))}updateHandlers(e){this.handlers=e}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),D(this.updatePoint)}};function Gc(e,t){return t?{point:t(e.point)}:e}function Kc(e,t){return{x:e.x-t.x,y:e.y-t.y}}function qc({point:e},t){return{point:e,delta:Kc(e,Yc(t)),offset:Kc(e,Jc(t)),velocity:Xc(t,.1)}}function Jc(e){return e[0]}function Yc(e){return e[e.length-1]}function Xc(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null,i=Yc(e);for(;n>=0&&(r=e[n],!(i.timestamp-r.timestamp>C(t)));)n--;if(!r)return{x:0,y:0};r===e[0]&&e.length>2&&i.timestamp-r.timestamp>C(t)*2&&(r=e[1]);let a=w(i.timestamp-r.timestamp);if(a===0)return{x:0,y:0};let o={x:(i.x-r.x)/a,y:(i.y-r.y)/a};return o.x===1/0&&(o.x=0),o.y===1/0&&(o.y=0),o}function Zc(e,{min:t,max:n},r){return t!==void 0&&e<t?e=r?I(t,e,r.min):Math.max(e,t):n!==void 0&&e>n&&(e=r?I(n,e,r.max):Math.min(e,n)),e}function Qc(e,t,n){return{min:t===void 0?void 0:e.min+t,max:n===void 0?void 0:e.max+n-(e.max-e.min)}}function $c(e,{top:t,left:n,bottom:r,right:i}){return{x:Qc(e.x,n,i),y:Qc(e.y,t,r)}}function el(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.min<e.max-e.min&&([n,r]=[r,n]),{min:n,max:r}}function tl(e,t){return{x:el(e.x,t.x),y:el(e.y,t.y)}}function nl(e,t){let n=.5,r=Z(e),i=Z(t);return i>r?n=x(t.min,t.max-r,e.min):r>i&&(n=x(e.min,e.max-i,t.min)),d(0,1,n)}function rl(e,t){let n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}var il=.35;function al(e=il){return e===!1?e=0:e===!0&&(e=il),{x:ol(e,`left`,`right`),y:ol(e,`top`,`bottom`)}}function ol(e,t,n){return{min:sl(e,t),max:sl(e,n)}}function sl(e,t){return typeof e==`number`?e:e[t]||0}var cl=new WeakMap,ll=class{constructor(e){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=G(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=e}start(e,{snapToCursor:t=!1,distanceThreshold:n}={}){let{presenceContext:r}=this.visualElement;if(r&&r.isPresent===!1)return;let i=e=>{t&&this.snapToCursor(Lc(e).point),this.stopAnimation()},a=(e,t)=>{let{drag:n,dragPropagation:r,onDragStart:i}=this.getProps();if(n&&!r&&(this.openDragLock&&this.openDragLock(),this.openDragLock=vi(n),!this.openDragLock))return;this.latestPointerEvent=e,this.latestPanInfo=t,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Q(e=>{let t=this.getAxisMotionValue(e).get()||0;if(M.test(t)){let{projection:n}=this.visualElement;if(n&&n.layout){let r=n.layout.layoutBox[e];r&&(t=Z(r)*(parseFloat(t)/100))}}this.originPoint[e]=t}),i&&E.update(()=>i(e,t),!1,!0),Lr(this.visualElement,`transform`);let{animationState:a}=this.visualElement;a&&a.setActive(`whileDrag`,!0)},o=(e,t)=>{this.latestPointerEvent=e,this.latestPanInfo=t;let{dragPropagation:n,dragDirectionLock:r,onDirectionLock:i,onDrag:a}=this.getProps();if(!n&&!this.openDragLock)return;let{offset:o}=t;if(r&&this.currentDirection===null){this.currentDirection=pl(o),this.currentDirection!==null&&i&&i(this.currentDirection);return}this.updateAxis(`x`,t.point,o),this.updateAxis(`y`,t.point,o),this.visualElement.render(),a&&E.update(()=>a(e,t),!1,!0)},s=(e,t)=>{this.latestPointerEvent=e,this.latestPanInfo=t,this.stop(e,t),this.latestPointerEvent=null,this.latestPanInfo=null},c=()=>{let{dragSnapToOrigin:e}=this.getProps();(e||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:l}=this.getProps();this.panSession=new Wc(e,{onSessionStart:i,onStart:a,onMove:o,onSessionEnd:s,resumeAnimation:c},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:l,distanceThreshold:n,contextWindow:Bc(this.visualElement),element:this.visualElement.current})}stop(e,t){let n=e||this.latestPointerEvent,r=t||this.latestPanInfo,i=this.isDragging;if(this.cancel(),!i||!r||!n)return;let{velocity:a}=r;this.startAnimation(a);let{onDragEnd:o}=this.getProps();o&&E.postRender(()=>o(n,r))}cancel(){this.isDragging=!1;let{projection:e,animationState:t}=this.visualElement;e&&(e.isAnimationBlocked=!1),this.endPanSession();let{dragPropagation:n}=this.getProps();!n&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),t&&t.setActive(`whileDrag`,!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(e,t,n){let{drag:r}=this.getProps();if(!n||!fl(e,r,this.currentDirection))return;let i=this.getAxisMotionValue(e),a=this.originPoint[e]+n[e];this.constraints&&this.constraints[e]&&(a=Zc(a,this.constraints[e],this.elastic[e])),i.set(a)}resolveConstraints(){let{dragConstraints:e,dragElastic:t}=this.getProps(),n=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,r=this.constraints;e&&wc(e)?this.constraints||=this.resolveRefConstraints():this.constraints=e&&n?$c(n.layoutBox,e):!1,this.elastic=al(t),r!==this.constraints&&!wc(e)&&n&&this.constraints&&!this.hasMutatedConstraints&&Q(e=>{this.constraints!==!1&&this.getAxisMotionValue(e)&&(this.constraints[e]=rl(n.layoutBox[e],this.constraints[e]))})}resolveRefConstraints(){let{dragConstraints:e,onMeasureDragConstraints:t}=this.getProps();if(!e||!wc(e))return!1;let n=e.current,{projection:r}=this.visualElement;if(!r||!r.layout)return!1;r.root&&(r.root.scroll=void 0,r.root.updateScroll());let i=za(n,r.root,this.visualElement.getTransformPagePoint()),a=tl(r.layout.layoutBox,i);if(t){let e=t(Sa(a));this.hasMutatedConstraints=!!e,e&&(a=xa(e))}return a}startAnimation(e){let{drag:t,dragMomentum:n,dragElastic:r,dragTransition:i,dragSnapToOrigin:a,onDragTransitionEnd:o}=this.getProps(),s=this.constraints||{},c=Q(o=>{if(!fl(o,t,this.currentDirection))return;let c=s&&s[o]||{};(a===!0||a===o)&&(c={min:0,max:0});let l=r?200:1e6,u=r?40:1e7,d={type:`inertia`,velocity:n?e[o]:0,bounceStiffness:l,bounceDamping:u,timeConstant:750,restDelta:1,restSpeed:10,...i,...c};return this.startAxisValueAnimation(o,d)});return Promise.all(c).then(o)}startAxisValueAnimation(e,t){let n=this.getAxisMotionValue(e);return Lr(this.visualElement,e),n.start(Tr(e,n,0,t,this.visualElement,!1))}stopAnimation(){Q(e=>this.getAxisMotionValue(e).stop())}getAxisMotionValue(e){let t=`_drag${e.toUpperCase()}`;return this.visualElement.getProps()[t]||this.visualElement.getValue(e,this.visualElement.latestValues[e]??0)}snapToCursor(e){Q(t=>{let{drag:n}=this.getProps();if(!fl(t,n,this.currentDirection))return;let{projection:r}=this.visualElement,i=this.getAxisMotionValue(t);if(r&&r.layout){let{min:n,max:a}=r.layout.layoutBox[t],o=i.get()||0;i.set(e[t]-I(n,a,.5)+o)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;let{drag:e,dragConstraints:t}=this.getProps(),{projection:n}=this.visualElement;if(!wc(t)||!n||!this.constraints)return;this.stopAnimation();let r={x:0,y:0};Q(e=>{let t=this.getAxisMotionValue(e);if(t&&this.constraints!==!1){let n=t.get();r[e]=nl({min:n,max:n},this.constraints[e])}});let{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},``):`none`,n.root&&n.root.updateScroll(),n.updateLayout(),this.constraints=!1,this.resolveConstraints(),Q(t=>{if(!fl(t,e,null))return;let n=this.getAxisMotionValue(t),{min:i,max:a}=this.constraints[t];n.set(I(i,a,r[t]))}),this.visualElement.render()}addListeners(){if(!this.visualElement.current)return;cl.set(this.visualElement,this);let e=this.visualElement.current,t=zc(e,`pointerdown`,t=>{let{drag:n,dragListener:r=!0}=this.getProps(),i=t.target,a=i!==e&&Di(i);n&&r&&!a&&this.start(t)}),n,r=()=>{let{dragConstraints:t}=this.getProps();wc(t)&&t.current&&(this.constraints=this.resolveRefConstraints(),n||=dl(e,t.current,()=>this.scalePositionWithinConstraints()))},{projection:i}=this.visualElement,a=i.addEventListener(`measure`,r);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),E.read(r);let o=ns(window,`resize`,()=>this.scalePositionWithinConstraints()),s=i.addEventListener(`didUpdate`,(({delta:e,hasLayoutChanged:t})=>{this.isDragging&&t&&(Q(t=>{let n=this.getAxisMotionValue(t);n&&(this.originPoint[t]+=e[t].translate,n.set(n.get()+e[t].translate))}),this.visualElement.render())}));return()=>{o(),t(),a(),s&&s(),n&&n()}}getProps(){let e=this.visualElement.getProps(),{drag:t=!1,dragDirectionLock:n=!1,dragPropagation:r=!1,dragConstraints:i=!1,dragElastic:a=il,dragMomentum:o=!0}=e;return{...e,drag:t,dragDirectionLock:n,dragPropagation:r,dragConstraints:i,dragElastic:a,dragMomentum:o}}};function ul(e){let t=!0;return()=>{if(t){t=!1;return}e()}}function dl(e,t,n){let r=Yi(e,ul(n)),i=Yi(t,ul(n));return()=>{r(),i()}}function fl(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function pl(e,t=10){let n=null;return Math.abs(e.y)>t?n=`y`:Math.abs(e.x)>t&&(n=`x`),n}var ml=class extends K{constructor(e){super(e),this.removeGroupControls=y,this.removeListeners=y,this.controls=new ll(e)}mount(){let{dragControls:e}=this.node.getProps();e&&(this.removeGroupControls=e.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||y}update(){let{dragControls:e}=this.node.getProps(),{dragControls:t}=this.node.prevProps||{};e!==t&&(this.removeGroupControls(),e&&(this.removeGroupControls=e.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}},hl=e=>(t,n)=>{e&&E.update(()=>e(t,n),!1,!0)},gl=class extends K{constructor(){super(...arguments),this.removePointerDownListener=y}onPointerDown(e){this.session=new Wc(e,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Bc(this.node)})}createPanHandlers(){let{onPanSessionStart:e,onPanStart:t,onPan:n,onPanEnd:r}=this.node.getProps();return{onSessionStart:hl(e),onStart:hl(t),onMove:hl(n),onEnd:(e,t)=>{delete this.session,r&&E.postRender(()=>r(e,t))}}}mount(){this.removePointerDownListener=zc(this.node.current,`pointerdown`,e=>this.onPointerDown(e))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}},_l=!1,vl=class extends i.Component{componentDidMount(){let{visualElement:e,layoutGroup:t,switchLayoutGroup:n,layoutId:r}=this.props,{projection:i}=e;i&&(t.group&&t.group.add(i),n&&n.register&&r&&n.register(i),_l&&i.root.didUpdate(),i.addEventListener(`animationComplete`,()=>{this.safeToRemove()}),i.setOptions({...i.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),cs.hasEverUpdated=!0}getSnapshotBeforeUpdate(e){let{layoutDependency:t,visualElement:n,drag:r,isPresent:i}=this.props,{projection:a}=n;return a?(a.isPresent=i,e.layoutDependency!==t&&a.setOptions({...a.options,layoutDependency:t}),_l=!0,r||e.layoutDependency!==t||t===void 0||e.isPresent!==i?a.willUpdate():this.safeToRemove(),e.isPresent!==i&&(i?a.promote():a.relegate()||E.postRender(()=>{let e=a.getStack();(!e||!e.members.length)&&this.safeToRemove()})),null):null}componentDidUpdate(){let{visualElement:e,layoutAnchor:t}=this.props,{projection:n}=e;n&&(n.options.layoutAnchor=t,n.root.didUpdate(),hi.postRender(()=>{!n.currentAnimation&&n.isLead()&&this.safeToRemove()}))}componentWillUnmount(){let{visualElement:e,layoutGroup:t,switchLayoutGroup:n}=this.props,{projection:r}=e;_l=!0,r&&(r.scheduleCheckAfterUnmount(),t&&t.group&&t.group.remove(r),n&&n.deregister&&n.deregister(r))}safeToRemove(){let{safeToRemove:e}=this.props;e&&e()}render(){return null}};function yl(e){let[t,n]=Gs(),o=(0,i.useContext)(a);return(0,r.jsx)(vl,{...e,layoutGroup:o,switchLayoutGroup:(0,i.useContext)(Cc),isPresent:t,safeToRemove:n})}var bl={pan:{Feature:gl},drag:{Feature:ml,ProjectionNode:Us,MeasureLayout:yl}};function xl(e,t,n){let{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive(`whileHover`,n===`Start`);let i=r[`onHover`+n];i&&E.postRender(()=>i(t,Lc(t)))}var Sl=class extends K{mount(){let{current:e}=this.node;e&&(this.unmount=xi(e,(e,t)=>(xl(this.node,t,`Start`),e=>xl(this.node,e,`End`))))}unmount(){}},Cl=class extends K{constructor(){super(...arguments),this.isActive=!1}onFocus(){let e=!1;try{e=this.node.current.matches(`:focus-visible`)}catch{e=!0}!e||!this.node.animationState||(this.node.animationState.setActive(`whileFocus`,!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive(`whileFocus`,!1),this.isActive=!1)}mount(){this.unmount=b(ns(this.node.current,`focus`,()=>this.onFocus()),ns(this.node.current,`blur`,()=>this.onBlur()))}unmount(){}};function wl(e,t,n){let{props:r}=e;if(e.current instanceof HTMLButtonElement&&e.current.disabled)return;e.animationState&&r.whileTap&&e.animationState.setActive(`whileTap`,n===`Start`);let i=r[`onTap`+(n===`End`?``:n)];i&&E.postRender(()=>i(t,Lc(t)))}var Tl=class extends K{mount(){let{current:e}=this.node;if(!e)return;let{globalTapTarget:t,propagate:n}=this.node.props;this.unmount=Pi(e,(e,t)=>(wl(this.node,t,`Start`),(e,{success:t})=>wl(this.node,e,t?`End`:`Cancel`)),{useGlobalTarget:t,stopPropagation:n?.tap===!1})}unmount(){}},El=new WeakMap,Dl=new WeakMap,Ol=e=>{let t=El.get(e.target);t&&t(e)},kl=e=>{e.forEach(Ol)};function Al({root:e,...t}){let n=e||document;Dl.has(n)||Dl.set(n,{});let r=Dl.get(n),i=JSON.stringify(t);return r[i]||(r[i]=new IntersectionObserver(kl,{root:e,...t})),r[i]}function jl(e,t,n){let r=Al(t);return El.set(e,n),r.observe(e),()=>{El.delete(e),r.unobserve(e)}}var Ml={some:0,all:1},Nl=class extends K{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.stopObserver?.();let{viewport:e={}}=this.node.getProps(),{root:t,margin:n,amount:r=`some`,once:i}=e,a={root:t?t.current:void 0,rootMargin:n,threshold:typeof r==`number`?r:Ml[r]},o=e=>{let{isIntersecting:t}=e;if(this.isInView===t||(this.isInView=t,i&&!t&&this.hasEnteredView))return;t&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive(`whileInView`,t);let{onViewportEnter:n,onViewportLeave:r}=this.node.getProps(),a=t?n:r;a&&a(e)};this.stopObserver=jl(this.node.current,a,o)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>`u`)return;let{props:e,prevProps:t}=this.node;[`amount`,`margin`,`root`].some(Pl(e,t))&&this.startObserver()}unmount(){this.stopObserver?.(),this.hasEnteredView=!1,this.isInView=!1}};function Pl({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}var Fl={inView:{Feature:Nl},tap:{Feature:Tl},focus:{Feature:Cl},hover:{Feature:Sl}},Il={layout:{ProjectionNode:Us,MeasureLayout:yl}},Ll=Mc({...Ic,...Fl,...bl,...Il},Nc);function Rl(){!fa.current&&ma();let[e]=(0,i.useState)(da.current);return e}var zl=Ll;export{_e as A,a as B,Zt as C,I as D,Ft as E,f as F,u as I,c as L,C as M,x as N,D as O,p as P,s as R,Qt as S,Gt as T,gr as _,ts as a,Gn as b,ya as c,Zi as d,Fi as f,U as g,Hr as h,Ws as i,oe as j,E as k,ra as l,fi as m,Rl as n,co as o,mi as p,Gs as r,Qa as s,zl as t,G as u,mr as v,Xt as w,ln as x,V as y,o as z};