@exulu/frontend 1.3.2 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.next/BUILD_ID +1 -1
- package/dist/.next/app-build-manifest.json +185 -174
- package/dist/.next/app-path-routes-manifest.json +1 -1
- package/dist/.next/build-manifest.json +2 -2
- package/dist/.next/prerender-manifest.json +1 -1
- package/dist/.next/server/app/(application)/agents/edit/[id]/page.js +1 -1
- package/dist/.next/server/app/(application)/agents/edit/[id]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/agents/edit/[id]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/agents/page.js +1 -2
- package/dist/.next/server/app/(application)/agents/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/agents/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/[session]/page.js +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/[session]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/[session]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/page.js +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/chat/[agent]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/chat/page.js +1 -1
- package/dist/.next/server/app/(application)/chat/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/chat/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/configuration/page.js +1 -1
- package/dist/.next/server/app/(application)/configuration/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/configuration/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/dashboard/page.js +5 -1
- package/dist/.next/server/app/(application)/dashboard/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/dashboard/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/data/[[...query]]/page.js +5 -1
- package/dist/.next/server/app/(application)/data/[[...query]]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/data/[[...query]]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/evals/[id]/page.js +1 -1
- package/dist/.next/server/app/(application)/evals/[id]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/evals/[id]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/evals/[id]/runs/page.js +1 -1
- package/dist/.next/server/app/(application)/evals/[id]/runs/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/evals/[id]/runs/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/evals/cases/page.js +1 -1
- package/dist/.next/server/app/(application)/evals/cases/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/evals/cases/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/evals/page.js +1 -1
- package/dist/.next/server/app/(application)/evals/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/evals/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/explorer/page.js +1 -1
- package/dist/.next/server/app/(application)/explorer/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/explorer/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/jobs/page.js +1 -1
- package/dist/.next/server/app/(application)/jobs/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/jobs/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/keys/page.js +1 -1
- package/dist/.next/server/app/(application)/keys/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/keys/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/page.js +1 -1
- package/dist/.next/server/app/(application)/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/projects/[project]/page.js +1 -1
- package/dist/.next/server/app/(application)/projects/[project]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/projects/[project]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/projects/page.js +1 -1
- package/dist/.next/server/app/(application)/projects/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/projects/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/roles/page.js +1 -1
- package/dist/.next/server/app/(application)/roles/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/roles/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/token/page.js +1 -1
- package/dist/.next/server/app/(application)/token/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/token/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/users/page.js +1 -1
- package/dist/.next/server/app/(application)/users/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/users/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/variables/create/page.js +1 -1
- package/dist/.next/server/app/(application)/variables/create/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/variables/create/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/variables/edit/[variable_id]/page.js +1 -1
- package/dist/.next/server/app/(application)/variables/edit/[variable_id]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/variables/edit/[variable_id]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/variables/page.js +1 -1
- package/dist/.next/server/app/(application)/variables/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/variables/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/variables/usage/[variable_id]/page.js +1 -1
- package/dist/.next/server/app/(application)/variables/usage/[variable_id]/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/variables/usage/[variable_id]/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(application)/workflows/page.js +1 -1
- package/dist/.next/server/app/(application)/workflows/page.js.nft.json +1 -1
- package/dist/.next/server/app/(application)/workflows/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/(authentication)/login/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/dist/.next/server/app/_not-found.html +1 -1
- package/dist/.next/server/app/_not-found.rsc +1 -1
- package/dist/.next/server/app/api/auth/[...nextauth]/route.js +9 -9
- package/dist/.next/server/app-paths-manifest.json +5 -5
- package/dist/.next/server/chunks/1051.js +16 -16
- package/dist/.next/server/chunks/2270.js +188 -100
- package/dist/.next/server/chunks/{8838.js → 2875.js} +1 -1
- package/dist/.next/server/chunks/2916.js +1 -1
- package/dist/.next/server/chunks/3503.js +1 -0
- package/dist/.next/server/chunks/{7544.js → 4552.js} +1 -1
- package/dist/.next/server/chunks/{3393.js → 4739.js} +1 -1
- package/dist/.next/server/chunks/5192.js +1 -1
- package/dist/.next/server/chunks/5999.js +2 -0
- package/dist/.next/server/chunks/6282.js +1 -0
- package/dist/.next/server/chunks/6623.js +1 -0
- package/dist/.next/server/chunks/7721.js +1 -0
- package/dist/.next/server/chunks/7944.js +2 -2
- package/dist/.next/server/chunks/8050.js +1 -0
- package/dist/.next/server/chunks/8206.js +1 -0
- package/dist/.next/server/chunks/8679.js +5 -0
- package/dist/.next/server/middleware-manifest.json +5 -5
- package/dist/.next/server/pages/404.html +1 -1
- package/dist/.next/server/pages/500.html +1 -1
- package/dist/.next/server/server-reference-manifest.json +1 -1
- package/dist/.next/static/chunks/1294-368dc8ec59054da4.js +2 -0
- package/dist/.next/static/chunks/1294-368dc8ec59054da4.js.map +1 -0
- package/dist/.next/static/chunks/{1645-e5fd10236c0183ce.js → 1645-570e014100772437.js} +1 -1
- package/dist/.next/static/chunks/{1645-e5fd10236c0183ce.js.map → 1645-570e014100772437.js.map} +1 -1
- package/dist/.next/static/chunks/1957-5867716304ecd208.js +2 -0
- package/dist/.next/static/chunks/1957-5867716304ecd208.js.map +1 -0
- package/dist/.next/static/chunks/{2293-59b4bbce0c5bd2f2.js → 2293-1681cdef5b8c0c0b.js} +1 -1
- package/dist/.next/static/chunks/{2293-59b4bbce0c5bd2f2.js.map → 2293-1681cdef5b8c0c0b.js.map} +1 -1
- package/dist/.next/static/chunks/3475-28ce4fce960656bd.js +2 -0
- package/dist/.next/static/chunks/3475-28ce4fce960656bd.js.map +1 -0
- package/dist/.next/static/chunks/3832-a5e8fc6647e2be65.js +2 -0
- package/dist/.next/static/chunks/3832-a5e8fc6647e2be65.js.map +1 -0
- package/dist/.next/static/chunks/{4386-a36fe9c65884f025.js → 4386-c7690667749bff6a.js} +1 -1
- package/dist/.next/static/chunks/{4386-a36fe9c65884f025.js.map → 4386-c7690667749bff6a.js.map} +1 -1
- package/dist/.next/static/chunks/4750-4d5c13bbc96bc19b.js +2 -0
- package/dist/.next/static/chunks/4750-4d5c13bbc96bc19b.js.map +1 -0
- package/dist/.next/static/chunks/5243-1aaa41b2cd0ea87c.js +2 -0
- package/dist/.next/static/chunks/5243-1aaa41b2cd0ea87c.js.map +1 -0
- package/dist/.next/static/chunks/5978-814d6900645d2fcc.js +2 -0
- package/dist/.next/static/chunks/5978-814d6900645d2fcc.js.map +1 -0
- package/dist/.next/static/chunks/6373-651cb258c9e2b57b.js +2 -0
- package/dist/.next/static/chunks/6373-651cb258c9e2b57b.js.map +1 -0
- package/dist/.next/static/chunks/{7564-44a20b31206685e1.js → 6545-5a1d7cf4d5ca770e.js} +21 -21
- package/dist/.next/static/chunks/6545-5a1d7cf4d5ca770e.js.map +1 -0
- package/dist/.next/static/chunks/6839-0f4cfb48058a5ab6.js +2 -0
- package/dist/.next/static/chunks/6839-0f4cfb48058a5ab6.js.map +1 -0
- package/dist/.next/static/chunks/723-94e596796cbf911d.js +2 -0
- package/dist/.next/static/chunks/723-94e596796cbf911d.js.map +1 -0
- package/dist/.next/static/chunks/8202-db2cc384c66bc1be.js +2 -0
- package/dist/.next/static/chunks/8202-db2cc384c66bc1be.js.map +1 -0
- package/dist/.next/static/chunks/8269-37dd07515eb44201.js +2 -0
- package/dist/.next/static/chunks/8269-37dd07515eb44201.js.map +1 -0
- package/dist/.next/static/chunks/8469-ba31cbd7acab5f94.js +2 -0
- package/dist/.next/static/chunks/8469-ba31cbd7acab5f94.js.map +1 -0
- package/dist/.next/static/chunks/8824-20030459012376a3.js +2 -0
- package/dist/.next/static/chunks/8824-20030459012376a3.js.map +1 -0
- package/dist/.next/static/chunks/9105-3800f721d38e2b9a.js +2 -0
- package/dist/.next/static/chunks/9105-3800f721d38e2b9a.js.map +1 -0
- package/dist/.next/static/chunks/9183-a51605ff26b92fed.js +41 -0
- package/dist/.next/static/chunks/9183-a51605ff26b92fed.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-511f168123f85285.js +2 -0
- package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-511f168123f85285.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/agents/{page-499ac3bd1044306c.js → page-63643deabdaa6b2c.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/agents/{page-499ac3bd1044306c.js.map → page-63643deabdaa6b2c.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/{page-3807a8bc2ae87548.js → page-62c7321ba26632af.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-62c7321ba26632af.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/chat/{layout-53796525bd3e2443.js → layout-5eb1d22ddcbc0b55.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/chat/{layout-53796525bd3e2443.js.map → layout-5eb1d22ddcbc0b55.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/configuration/{page-2d8a0e2664ab9a94.js → page-8f92af5318feb84f.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/configuration/{page-2d8a0e2664ab9a94.js.map → page-8f92af5318feb84f.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/dashboard/page-00e425d942e0d769.js +2 -0
- package/dist/.next/static/chunks/app/(application)/dashboard/page-00e425d942e0d769.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-a460a56d3efac658.js +2 -0
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-a460a56d3efac658.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-bb06a9553c9ed178.js +2 -0
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-bb06a9553c9ed178.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/evals/[id]/{page-2238f1fb73d93328.js → page-ef82e92ca7d0da6c.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/evals/[id]/{page-2238f1fb73d93328.js.map → page-ef82e92ca7d0da6c.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/evals/[id]/runs/page-6622dd1b22a7885d.js +2 -0
- package/dist/.next/static/chunks/app/(application)/evals/[id]/runs/page-6622dd1b22a7885d.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/evals/cases/{page-ea5faf58b368feae.js → page-6246be9d6592d1d3.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/evals/cases/{page-ea5faf58b368feae.js.map → page-6246be9d6592d1d3.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/evals/{page-f79e1a90384ba618.js → page-b1e1fd7dba1e675f.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/evals/{page-f79e1a90384ba618.js.map → page-b1e1fd7dba1e675f.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/jobs/{page-e6f02a338bec4806.js → page-a96441a0bc654d68.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/jobs/{page-e6f02a338bec4806.js.map → page-a96441a0bc654d68.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/keys/{page-59ee4e0281131cbc.js → page-163aadfe9ad0d794.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/keys/{page-59ee4e0281131cbc.js.map → page-163aadfe9ad0d794.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/{layout-73d93420d0c6661c.js → layout-694c53aca85ef437.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/{layout-73d93420d0c6661c.js.map → layout-694c53aca85ef437.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/projects/[project]/page-e69828fde85c50af.js +2 -0
- package/dist/.next/static/chunks/app/(application)/projects/[project]/page-e69828fde85c50af.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/projects/{layout-f73ad7daf4825f1b.js → layout-d7642b25bf6d33b3.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/projects/{layout-f73ad7daf4825f1b.js.map → layout-d7642b25bf6d33b3.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/roles/page-5d5e5142f0997122.js +2 -0
- package/dist/.next/static/chunks/app/(application)/roles/page-5d5e5142f0997122.js.map +1 -0
- package/dist/.next/static/chunks/app/(application)/users/{page-e0a04fda52138aa0.js → page-b862cb199fd72525.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/users/{page-e0a04fda52138aa0.js.map → page-b862cb199fd72525.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/create/{page-6c6076f3f253190d.js → page-d79d5c1c1ecabdb5.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/create/{page-6c6076f3f253190d.js.map → page-d79d5c1c1ecabdb5.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/edit/[variable_id]/{page-a3fa477fead5609a.js → page-72cf3aa95776ab96.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/edit/[variable_id]/{page-a3fa477fead5609a.js.map → page-72cf3aa95776ab96.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/{page-ddeff54a8b19bdbe.js → page-67864b471b48c950.js} +2 -2
- package/dist/.next/static/chunks/app/(application)/variables/{page-ddeff54a8b19bdbe.js.map → page-67864b471b48c950.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/usage/[variable_id]/{page-ed6d136e7ee3a591.js → page-208b4c9cc64abf2e.js} +1 -1
- package/dist/.next/static/chunks/app/(application)/variables/usage/[variable_id]/{page-ed6d136e7ee3a591.js.map → page-208b4c9cc64abf2e.js.map} +1 -1
- package/dist/.next/static/chunks/app/(application)/workflows/page-5b1ffc7c5012fdf6.js +2 -0
- package/dist/.next/static/chunks/app/(application)/workflows/page-5b1ffc7c5012fdf6.js.map +1 -0
- package/dist/.next/static/css/006966ab2edd0ebc.css +4 -0
- package/dist/.next/static/css/006966ab2edd0ebc.css.map +1 -0
- package/dist/.next/static/css/e3f2a16ab7676b05.css.map +1 -1
- package/dist/package.json +4 -1
- package/package.json +1 -1
- package/dist/.next/server/chunks/3743.js +0 -1
- package/dist/.next/server/chunks/4375.js +0 -1
- package/dist/.next/server/chunks/4680.js +0 -1
- package/dist/.next/server/chunks/7203.js +0 -5
- package/dist/.next/server/chunks/7598.js +0 -5
- package/dist/.next/server/chunks/8806.js +0 -1
- package/dist/.next/static/chunks/1957-670ddf66742d95f2.js +0 -2
- package/dist/.next/static/chunks/1957-670ddf66742d95f2.js.map +0 -1
- package/dist/.next/static/chunks/3397-5a704b2e12e9e883.js +0 -2
- package/dist/.next/static/chunks/3397-5a704b2e12e9e883.js.map +0 -1
- package/dist/.next/static/chunks/3832-10b779e2f89f162f.js +0 -2
- package/dist/.next/static/chunks/3832-10b779e2f89f162f.js.map +0 -1
- package/dist/.next/static/chunks/3998-c1c5bec61ce07357.js +0 -2
- package/dist/.next/static/chunks/3998-c1c5bec61ce07357.js.map +0 -1
- package/dist/.next/static/chunks/428-61741966c36f4f72.js +0 -2
- package/dist/.next/static/chunks/428-61741966c36f4f72.js.map +0 -1
- package/dist/.next/static/chunks/5585-4f0c084850210a82.js +0 -2
- package/dist/.next/static/chunks/5585-4f0c084850210a82.js.map +0 -1
- package/dist/.next/static/chunks/5615-042f927b657e6db1.js +0 -41
- package/dist/.next/static/chunks/5615-042f927b657e6db1.js.map +0 -1
- package/dist/.next/static/chunks/5978-f3b8475a2d9f9299.js +0 -2
- package/dist/.next/static/chunks/5978-f3b8475a2d9f9299.js.map +0 -1
- package/dist/.next/static/chunks/6242-c1c2f1479529e9d4.js +0 -2
- package/dist/.next/static/chunks/6242-c1c2f1479529e9d4.js.map +0 -1
- package/dist/.next/static/chunks/6373-fc4799cc7a13474a.js +0 -2
- package/dist/.next/static/chunks/6373-fc4799cc7a13474a.js.map +0 -1
- package/dist/.next/static/chunks/7398-c6de1642586049cd.js +0 -2
- package/dist/.next/static/chunks/7398-c6de1642586049cd.js.map +0 -1
- package/dist/.next/static/chunks/7564-44a20b31206685e1.js.map +0 -1
- package/dist/.next/static/chunks/79-1d568f3c4cd45bd4.js +0 -2
- package/dist/.next/static/chunks/79-1d568f3c4cd45bd4.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-b66390eb4a95ac1a.js +0 -2
- package/dist/.next/static/chunks/app/(application)/agents/edit/[id]/page-b66390eb4a95ac1a.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/chat/[agent]/[session]/page-3807a8bc2ae87548.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/dashboard/page-85d3f8d2bd28ae4b.js +0 -2
- package/dist/.next/static/chunks/app/(application)/dashboard/page-85d3f8d2bd28ae4b.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-822dad4cb57f62e2.js +0 -2
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/layout-822dad4cb57f62e2.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-3efd7701534078ea.js +0 -2
- package/dist/.next/static/chunks/app/(application)/data/[[...query]]/page-3efd7701534078ea.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/evals/[id]/runs/page-b6a3cb8435be3ade.js +0 -2
- package/dist/.next/static/chunks/app/(application)/evals/[id]/runs/page-b6a3cb8435be3ade.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/projects/[project]/page-19382bb263f85fda.js +0 -2
- package/dist/.next/static/chunks/app/(application)/projects/[project]/page-19382bb263f85fda.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/roles/page-acd9ef282bc53557.js +0 -2
- package/dist/.next/static/chunks/app/(application)/roles/page-acd9ef282bc53557.js.map +0 -1
- package/dist/.next/static/chunks/app/(application)/workflows/page-38488c44d89b32f4.js +0 -2
- package/dist/.next/static/chunks/app/(application)/workflows/page-38488c44d89b32f4.js.map +0 -1
- package/dist/.next/static/css/a7092ddec8ffd4fb.css +0 -4
- package/dist/.next/static/css/a7092ddec8ffd4fb.css.map +0 -1
- /package/dist/.next/static/{HHwzgh0RLIMeodnSs4vIv → soJPoIxCmlpJ75t9n-Q9V}/_buildManifest.js +0 -0
- /package/dist/.next/static/{HHwzgh0RLIMeodnSs4vIv → soJPoIxCmlpJ75t9n-Q9V}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8469,7598,3619],{63639:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("AlertTriangle",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z",key:"c3ski4"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]])},28842:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("ArrowUpDown",[["path",{d:"m21 16-4 4-4-4",key:"f6ql7i"}],["path",{d:"M17 20V4",key:"1ejh1v"}],["path",{d:"m3 8 4-4 4 4",key:"11wl7u"}],["path",{d:"M7 4v16",key:"1glfcx"}]])},65302:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("CheckCircle",[["path",{d:"M22 11.08V12a10 10 0 1 1-5.93-9.14",key:"g774vq"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]])},24156:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("ChevronsUpDown",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]])},91723:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]])},42208:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("Eye",[["path",{d:"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z",key:"rwhkz3"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]])},14924:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("Folder",[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}]])},29202:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]])},66337:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("Lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]])},88893:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("Pen",[["path",{d:"M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z",key:"5qss01"}]])},33276:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("Play",[["polygon",{points:"5 3 19 12 5 21 5 3",key:"191637"}]])},15868:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("SquarePen",[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4Z",key:"1lpok0"}]])},45131:function(e,t,n){n.d(t,{Z:function(){return r}});let r=(0,n(39763).Z)("XCircle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]])},23619:function(e,t,n){n.d(t,{aU:function(){return ew},$j:function(){return ej},VY:function(){return eb},dk:function(){return eZ},aV:function(){return ek},h_:function(){return eM},fC:function(){return eD},Dx:function(){return eR},xz:function(){return ex}});var r=n(2265),o=n(73966),a=n(98575),i=n(6741),l=n(99255),u=n(80886),s=n(22308),c=n(99103),d=n(83832),f=n(71599),p=n(66840),h=n(86097),g=n(60703),m=n(5478),v=n(37053),y=n(57437),D="Dialog",[x,M]=(0,o.b)(D),[k,b]=x(D),w=e=>{let{__scopeDialog:t,children:n,open:o,defaultOpen:a,onOpenChange:i,modal:s=!0}=e,c=r.useRef(null),d=r.useRef(null),[f,p]=(0,u.T)({prop:o,defaultProp:null!=a&&a,onChange:i,caller:D});return(0,y.jsx)(k,{scope:t,triggerRef:c,contentRef:d,contentId:(0,l.M)(),titleId:(0,l.M)(),descriptionId:(0,l.M)(),open:f,onOpenChange:p,onOpenToggle:r.useCallback(()=>p(e=>!e),[p]),modal:s,children:n})};w.displayName=D;var j="DialogTrigger",R=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=b(j,n),l=(0,a.e)(t,o.triggerRef);return(0,y.jsx)(p.WV.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":q(o.open),...r,ref:l,onClick:(0,i.M)(e.onClick,o.onOpenToggle)})});R.displayName=j;var Z="DialogPortal",[N,C]=x(Z,{forceMount:void 0}),A=e=>{let{__scopeDialog:t,forceMount:n,children:o,container:a}=e,i=b(Z,t);return(0,y.jsx)(N,{scope:t,forceMount:n,children:r.Children.map(o,e=>(0,y.jsx)(f.z,{present:n||i.open,children:(0,y.jsx)(d.h,{asChild:!0,container:a,children:e})}))})};A.displayName=Z;var I="DialogOverlay",F=r.forwardRef((e,t)=>{let n=C(I,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=b(I,e.__scopeDialog);return a.modal?(0,y.jsx)(f.z,{present:r||a.open,children:(0,y.jsx)(_,{...o,ref:t})}):null});F.displayName=I;var O=(0,v.Z8)("DialogOverlay.RemoveScroll"),_=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=b(I,n);return(0,y.jsx)(g.Z,{as:O,allowPinchZoom:!0,shards:[o.contentRef],children:(0,y.jsx)(p.WV.div,{"data-state":q(o.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),E="DialogContent",T=r.forwardRef((e,t)=>{let n=C(E,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,a=b(E,e.__scopeDialog);return(0,y.jsx)(f.z,{present:r||a.open,children:a.modal?(0,y.jsx)(Q,{...o,ref:t}):(0,y.jsx)(P,{...o,ref:t})})});T.displayName=E;var Q=r.forwardRef((e,t)=>{let n=b(E,e.__scopeDialog),o=r.useRef(null),l=(0,a.e)(t,n.contentRef,o);return r.useEffect(()=>{let e=o.current;if(e)return(0,m.Ry)(e)},[]),(0,y.jsx)(V,{...e,ref:l,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,i.M)(e.onCloseAutoFocus,e=>{var t;e.preventDefault(),null===(t=n.triggerRef.current)||void 0===t||t.focus()}),onPointerDownOutside:(0,i.M)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey;(2===t.button||n)&&e.preventDefault()}),onFocusOutside:(0,i.M)(e.onFocusOutside,e=>e.preventDefault())})}),P=r.forwardRef((e,t)=>{let n=b(E,e.__scopeDialog),o=r.useRef(!1),a=r.useRef(!1);return(0,y.jsx)(V,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{var r,i;null===(r=e.onCloseAutoFocus)||void 0===r||r.call(e,t),t.defaultPrevented||(o.current||null===(i=n.triggerRef.current)||void 0===i||i.focus(),t.preventDefault()),o.current=!1,a.current=!1},onInteractOutside:t=>{var r,i;null===(r=e.onInteractOutside)||void 0===r||r.call(e,t),t.defaultPrevented||(o.current=!0,"pointerdown"!==t.detail.originalEvent.type||(a.current=!0));let l=t.target;(null===(i=n.triggerRef.current)||void 0===i?void 0:i.contains(l))&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&a.current&&t.preventDefault()}})}),V=r.forwardRef((e,t)=>{let{__scopeDialog:n,trapFocus:o,onOpenAutoFocus:i,onCloseAutoFocus:l,...u}=e,d=b(E,n),f=r.useRef(null),p=(0,a.e)(t,f);return(0,h.EW)(),(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(c.M,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:i,onUnmountAutoFocus:l,children:(0,y.jsx)(s.XB,{role:"dialog",id:d.contentId,"aria-describedby":d.descriptionId,"aria-labelledby":d.titleId,"data-state":q(d.open),...u,ref:p,onDismiss:()=>d.onOpenChange(!1)})}),(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(G,{titleId:d.titleId}),(0,y.jsx)(K,{contentRef:f,descriptionId:d.descriptionId})]})]})}),H="DialogTitle",X=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=b(H,n);return(0,y.jsx)(p.WV.h2,{id:o.titleId,...r,ref:t})});X.displayName=H;var z="DialogDescription",S=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=b(z,n);return(0,y.jsx)(p.WV.p,{id:o.descriptionId,...r,ref:t})});S.displayName=z;var W="DialogClose",Y=r.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,o=b(W,n);return(0,y.jsx)(p.WV.button,{type:"button",...r,ref:t,onClick:(0,i.M)(e.onClick,()=>o.onOpenChange(!1))})});function q(e){return e?"open":"closed"}Y.displayName=W;var L="DialogTitleWarning",[B,U]=(0,o.k)(L,{contentName:E,titleName:H,docsSlug:"dialog"}),G=e=>{let{titleId:t}=e,n=U(L),o="`".concat(n.contentName,"` requires a `").concat(n.titleName,"` for the component to be accessible for screen reader users.\n\nIf you want to hide the `").concat(n.titleName,"`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/").concat(n.docsSlug);return r.useEffect(()=>{t&&!document.getElementById(t)&&console.error(o)},[o,t]),null},K=e=>{let{contentRef:t,descriptionId:n}=e,o=U("DialogDescriptionWarning"),a="Warning: Missing `Description` or `aria-describedby={undefined}` for {".concat(o.contentName,"}.");return r.useEffect(()=>{var e;let r=null===(e=t.current)||void 0===e?void 0:e.getAttribute("aria-describedby");n&&r&&!document.getElementById(n)&&console.warn(a)},[a,t,n]),null},$="AlertDialog",[J,ee]=(0,o.b)($,[M]),et=M(),en=e=>{let{__scopeAlertDialog:t,...n}=e,r=et(t);return(0,y.jsx)(w,{...r,...n,modal:!0})};en.displayName=$;var er=r.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,o=et(n);return(0,y.jsx)(R,{...o,...r,ref:t})});er.displayName="AlertDialogTrigger";var eo=e=>{let{__scopeAlertDialog:t,...n}=e,r=et(t);return(0,y.jsx)(A,{...r,...n})};eo.displayName="AlertDialogPortal";var ea=r.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,o=et(n);return(0,y.jsx)(F,{...o,...r,ref:t})});ea.displayName="AlertDialogOverlay";var ei="AlertDialogContent",[el,eu]=J(ei),es=(0,v.sA)("AlertDialogContent"),ec=r.forwardRef((e,t)=>{let{__scopeAlertDialog:n,children:o,...l}=e,u=et(n),s=r.useRef(null),c=(0,a.e)(t,s),d=r.useRef(null);return(0,y.jsx)(B,{contentName:ei,titleName:ed,docsSlug:"alert-dialog",children:(0,y.jsx)(el,{scope:n,cancelRef:d,children:(0,y.jsxs)(T,{role:"alertdialog",...u,...l,ref:c,onOpenAutoFocus:(0,i.M)(l.onOpenAutoFocus,e=>{var t;e.preventDefault(),null===(t=d.current)||void 0===t||t.focus({preventScroll:!0})}),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:[(0,y.jsx)(es,{children:o}),(0,y.jsx)(ey,{contentRef:s})]})})})});ec.displayName=ei;var ed="AlertDialogTitle",ef=r.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,o=et(n);return(0,y.jsx)(X,{...o,...r,ref:t})});ef.displayName=ed;var ep="AlertDialogDescription",eh=r.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,o=et(n);return(0,y.jsx)(S,{...o,...r,ref:t})});eh.displayName=ep;var eg=r.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,o=et(n);return(0,y.jsx)(Y,{...o,...r,ref:t})});eg.displayName="AlertDialogAction";var em="AlertDialogCancel",ev=r.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,{cancelRef:o}=eu(em,n),i=et(n),l=(0,a.e)(t,o);return(0,y.jsx)(Y,{...i,...r,ref:l})});ev.displayName=em;var ey=e=>{let{contentRef:t}=e,n="`".concat(ei,"` requires a description for the component to be accessible for screen reader users.\n\nYou can add a description to the `").concat(ei,"` by passing a `").concat(ep,"` component as a child, which also benefits sighted users by adding visible context to the dialog.\n\nAlternatively, you can use your own component as a description by assigning it an `id` and passing the same value to the `aria-describedby` prop in `").concat(ei,"`. If the description is confusing or duplicative for sighted users, you can use the `@radix-ui/react-visually-hidden` primitive as a wrapper around your description component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog");return r.useEffect(()=>{var e;document.getElementById(null===(e=t.current)||void 0===e?void 0:e.getAttribute("aria-describedby"))||console.warn(n)},[n,t]),null},eD=en,ex=er,eM=eo,ek=ea,eb=ec,ew=eg,ej=ev,eR=ef,eZ=eh},81363:function(e,t,n){n.d(t,{T:function(){return o}});var r=n(99649);function o(e,t){let n=(0,r.Q)(e),o=(0,r.Q)(t);return 12*(n.getFullYear()-o.getFullYear())+(n.getMonth()-o.getMonth())}},27742:function(e,t,n){n.d(t,{V:function(){return o}});var r=n(99649);function o(e){let t=(0,r.Q)(e),n=t.getMonth();return t.setFullYear(t.getFullYear(),n+1,0),t.setHours(23,59,59,999),t}},7598:function(e,t,n){n.d(t,{Q:function(){return f}});var r=n(63497),o=n(99649);function a(e,t){let n=(0,o.Q)(e),r=(0,o.Q)(t),a=n.getTime()-r.getTime();return a<0?-1:a>0?1:a}var i=n(78198),l=n(81363),u=n(27742),s=n(5654),c=n(55528),d=n(9340);function f(e,t){return function(e,t,n){var r,f,p,h,g,m;let v,y,D;let x=(0,c.j)(),M=null!==(f=null!==(r=null==n?void 0:n.locale)&&void 0!==r?r:x.locale)&&void 0!==f?f:s._,k=a(e,t);if(isNaN(k))throw RangeError("Invalid time value");let b=Object.assign({},n,{addSuffix:null==n?void 0:n.addSuffix,comparison:k});k>0?(v=(0,o.Q)(t),y=(0,o.Q)(e)):(v=(0,o.Q)(e),y=(0,o.Q)(t));let w=(p=y,h=v,(m=null==void 0?void 0:(void 0).roundingMethod,e=>{let t=(m?Math[m]:Math.trunc)(e);return 0===t?0:t})((+(0,o.Q)(p)-+(0,o.Q)(h))/1e3)),j=Math.round((w-((0,d.D)(y)-(0,d.D)(v))/1e3)/60);if(j<2){if(null==n?void 0:n.includeSeconds){if(w<5)return M.formatDistance("lessThanXSeconds",5,b);if(w<10)return M.formatDistance("lessThanXSeconds",10,b);if(w<20)return M.formatDistance("lessThanXSeconds",20,b);if(w<40)return M.formatDistance("halfAMinute",0,b);else if(w<60)return M.formatDistance("lessThanXMinutes",1,b);else return M.formatDistance("xMinutes",1,b)}return 0===j?M.formatDistance("lessThanXMinutes",1,b):M.formatDistance("xMinutes",j,b)}if(j<45)return M.formatDistance("xMinutes",j,b);if(j<90)return M.formatDistance("aboutXHours",1,b);if(j<i.H_)return M.formatDistance("aboutXHours",Math.round(j/60),b);if(j<2520)return M.formatDistance("xDays",1,b);if(j<i.fH){let e=Math.round(j/i.H_);return M.formatDistance("xDays",e,b)}if(j<2*i.fH)return D=Math.round(j/i.fH),M.formatDistance("aboutXMonths",D,b);if((D=function(e,t){let n;let r=(0,o.Q)(e),i=(0,o.Q)(t),s=a(r,i),c=Math.abs((0,l.T)(r,i));if(c<1)n=0;else{1===r.getMonth()&&r.getDate()>27&&r.setDate(30),r.setMonth(r.getMonth()-s*c);let t=a(r,i)===-s;(function(e){let t=(0,o.Q)(e);return+function(e){let t=(0,o.Q)(e);return t.setHours(23,59,59,999),t}(t)==+(0,u.V)(t)})((0,o.Q)(e))&&1===c&&1===a(e,i)&&(t=!1),n=s*(c-Number(t))}return 0===n?0:n}(y,v))<12){let e=Math.round(j/i.fH);return M.formatDistance("xMonths",e,b)}{let e=D%12,t=Math.trunc(D/12);return e<3?M.formatDistance("aboutXYears",t,b):e<9?M.formatDistance("overXYears",t,b):M.formatDistance("almostXYears",t+1,b)}}(e,(0,r.L)(e,Date.now()),t)}}}]);
|
|
2
|
+
//# sourceMappingURL=8469-ba31cbd7acab5f94.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/chunks/8469-ba31cbd7acab5f94.js","mappings":"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","sources":["webpack://_N_E/../../../src/icons/alert-triangle.ts","webpack://_N_E/../../../src/icons/arrow-up-down.ts","webpack://_N_E/../../../src/icons/check-circle.ts","webpack://_N_E/../../../src/icons/chevrons-up-down.ts","webpack://_N_E/../../../src/icons/clock.ts","webpack://_N_E/../../../src/icons/eye.ts","webpack://_N_E/../../../src/icons/folder.ts","webpack://_N_E/../../../src/icons/globe.ts","webpack://_N_E/../../../src/icons/lock.ts","webpack://_N_E/../../../src/icons/pen.ts","webpack://_N_E/../../../src/icons/play.ts","webpack://_N_E/../../../src/icons/square-pen.ts","webpack://_N_E/../../../src/icons/x-circle.ts","webpack://_N_E/../src/dialog.tsx","webpack://_N_E/../src/alert-dialog.tsx","webpack://_N_E/./node_modules/date-fns/differenceInCalendarMonths.mjs","webpack://_N_E/./node_modules/date-fns/endOfMonth.mjs","webpack://_N_E/./node_modules/date-fns/constructNow.mjs","webpack://_N_E/./node_modules/date-fns/compareAsc.mjs","webpack://_N_E/./node_modules/date-fns/endOfDay.mjs","webpack://_N_E/./node_modules/date-fns/isLastDayOfMonth.mjs","webpack://_N_E/./node_modules/date-fns/differenceInMonths.mjs","webpack://_N_E/./node_modules/date-fns/_lib/getRoundingMethod.mjs","webpack://_N_E/./node_modules/date-fns/differenceInMilliseconds.mjs","webpack://_N_E/./node_modules/date-fns/differenceInSeconds.mjs","webpack://_N_E/./node_modules/date-fns/formatDistance.mjs","webpack://_N_E/./node_modules/date-fns/formatDistanceToNow.mjs"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name AlertTriangle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/alert-triangle\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst AlertTriangle = createLucideIcon('AlertTriangle', [\n [\n 'path',\n {\n d: 'm21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z',\n key: 'c3ski4',\n },\n ],\n ['path', { d: 'M12 9v4', key: 'juzpu7' }],\n ['path', { d: 'M12 17h.01', key: 'p32p05' }],\n]);\n\nexport default AlertTriangle;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowUpDown\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/arrow-up-down\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowUpDown = createLucideIcon('ArrowUpDown', [\n ['path', { d: 'm21 16-4 4-4-4', key: 'f6ql7i' }],\n ['path', { d: 'M17 20V4', key: '1ejh1v' }],\n ['path', { d: 'm3 8 4-4 4 4', key: '11wl7u' }],\n ['path', { d: 'M7 4v16', key: '1glfcx' }],\n]);\n\nexport default ArrowUpDown;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name CheckCircle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/check-circle\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst CheckCircle = createLucideIcon('CheckCircle', [\n ['path', { d: 'M22 11.08V12a10 10 0 1 1-5.93-9.14', key: 'g774vq' }],\n ['path', { d: 'm9 11 3 3L22 4', key: '1pflzl' }],\n]);\n\nexport default CheckCircle;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ChevronsUpDown\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/chevrons-up-down\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronsUpDown = createLucideIcon('ChevronsUpDown', [\n ['path', { d: 'm7 15 5 5 5-5', key: '1hf1tw' }],\n ['path', { d: 'm7 9 5-5 5 5', key: 'sgt6xg' }],\n]);\n\nexport default ChevronsUpDown;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Clock\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/clock\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Clock = createLucideIcon('Clock', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['polyline', { points: '12 6 12 12 16 14', key: '68esgv' }],\n]);\n\nexport default Clock;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Eye\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/eye\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Eye = createLucideIcon('Eye', [\n ['path', { d: 'M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z', key: 'rwhkz3' }],\n ['circle', { cx: '12', cy: '12', r: '3', key: '1v7zrd' }],\n]);\n\nexport default Eye;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Folder\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/folder\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Folder = createLucideIcon('Folder', [\n [\n 'path',\n {\n d: 'M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z',\n key: '1kt360',\n },\n ],\n]);\n\nexport default Folder;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Globe\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/globe\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Globe = createLucideIcon('Globe', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20', key: '13o1zl' }],\n ['path', { d: 'M2 12h20', key: '9i4pu4' }],\n]);\n\nexport default Globe;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Lock\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/lock\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Lock = createLucideIcon('Lock', [\n ['rect', { width: '18', height: '11', x: '3', y: '11', rx: '2', ry: '2', key: '1w4ew1' }],\n ['path', { d: 'M7 11V7a5 5 0 0 1 10 0v4', key: 'fwvmzm' }],\n]);\n\nexport default Lock;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Pen\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/pen\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Pen = createLucideIcon('Pen', [\n ['path', { d: 'M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z', key: '5qss01' }],\n]);\n\nexport default Pen;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Play\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/play\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Play = createLucideIcon('Play', [\n ['polygon', { points: '5 3 19 12 5 21 5 3', key: '191637' }],\n]);\n\nexport default Play;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name SquarePen\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/square-pen\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst SquarePen = createLucideIcon('SquarePen', [\n ['path', { d: 'M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7', key: '1m0v6g' }],\n ['path', { d: 'M18.375 2.625a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4Z', key: '1lpok0' }],\n]);\n\nexport default SquarePen;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name XCircle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/x-circle\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst XCircle = createLucideIcon('XCircle', [\n ['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }],\n ['path', { d: 'm15 9-6 6', key: '1uzhvr' }],\n ['path', { d: 'm9 9 6 6', key: 'z0biqf' }],\n]);\n\nexport default XCircle;\n","import * as React from 'react';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport { createContext, createContextScope } from '@radix-ui/react-context';\nimport { useId } from '@radix-ui/react-id';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { DismissableLayer } from '@radix-ui/react-dismissable-layer';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { Portal as PortalPrimitive } from '@radix-ui/react-portal';\nimport { Presence } from '@radix-ui/react-presence';\nimport { Primitive } from '@radix-ui/react-primitive';\nimport { useFocusGuards } from '@radix-ui/react-focus-guards';\nimport { RemoveScroll } from 'react-remove-scroll';\nimport { hideOthers } from 'aria-hidden';\nimport { createSlot } from '@radix-ui/react-slot';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Dialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst DIALOG_NAME = 'Dialog';\n\ntype ScopedProps<P> = P & { __scopeDialog?: Scope };\nconst [createDialogContext, createDialogScope] = createContextScope(DIALOG_NAME);\n\ntype DialogContextValue = {\n triggerRef: React.RefObject<HTMLButtonElement | null>;\n contentRef: React.RefObject<DialogContentElement | null>;\n contentId: string;\n titleId: string;\n descriptionId: string;\n open: boolean;\n onOpenChange(open: boolean): void;\n onOpenToggle(): void;\n modal: boolean;\n};\n\nconst [DialogProvider, useDialogContext] = createDialogContext<DialogContextValue>(DIALOG_NAME);\n\ninterface DialogProps {\n children?: React.ReactNode;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?(open: boolean): void;\n modal?: boolean;\n}\n\nconst Dialog: React.FC<DialogProps> = (props: ScopedProps<DialogProps>) => {\n const {\n __scopeDialog,\n children,\n open: openProp,\n defaultOpen,\n onOpenChange,\n modal = true,\n } = props;\n const triggerRef = React.useRef<HTMLButtonElement>(null);\n const contentRef = React.useRef<DialogContentElement>(null);\n const [open, setOpen] = useControllableState({\n prop: openProp,\n defaultProp: defaultOpen ?? false,\n onChange: onOpenChange,\n caller: DIALOG_NAME,\n });\n\n return (\n <DialogProvider\n scope={__scopeDialog}\n triggerRef={triggerRef}\n contentRef={contentRef}\n contentId={useId()}\n titleId={useId()}\n descriptionId={useId()}\n open={open}\n onOpenChange={setOpen}\n onOpenToggle={React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen])}\n modal={modal}\n >\n {children}\n </DialogProvider>\n );\n};\n\nDialog.displayName = DIALOG_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTrigger\n * -----------------------------------------------------------------------------------------------*/\n\nconst TRIGGER_NAME = 'DialogTrigger';\n\ntype DialogTriggerElement = React.ComponentRef<typeof Primitive.button>;\ntype PrimitiveButtonProps = React.ComponentPropsWithoutRef<typeof Primitive.button>;\ninterface DialogTriggerProps extends PrimitiveButtonProps {}\n\nconst DialogTrigger = React.forwardRef<DialogTriggerElement, DialogTriggerProps>(\n (props: ScopedProps<DialogTriggerProps>, forwardedRef) => {\n const { __scopeDialog, ...triggerProps } = props;\n const context = useDialogContext(TRIGGER_NAME, __scopeDialog);\n const composedTriggerRef = useComposedRefs(forwardedRef, context.triggerRef);\n return (\n <Primitive.button\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={context.open}\n aria-controls={context.contentId}\n data-state={getState(context.open)}\n {...triggerProps}\n ref={composedTriggerRef}\n onClick={composeEventHandlers(props.onClick, context.onOpenToggle)}\n />\n );\n }\n);\n\nDialogTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'DialogPortal';\n\ntype PortalContextValue = { forceMount?: true };\nconst [PortalProvider, usePortalContext] = createDialogContext<PortalContextValue>(PORTAL_NAME, {\n forceMount: undefined,\n});\n\ntype PortalProps = React.ComponentPropsWithoutRef<typeof PortalPrimitive>;\ninterface DialogPortalProps {\n children?: React.ReactNode;\n /**\n * Specify a container element to portal the content into.\n */\n container?: PortalProps['container'];\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogPortal: React.FC<DialogPortalProps> = (props: ScopedProps<DialogPortalProps>) => {\n const { __scopeDialog, forceMount, children, container } = props;\n const context = useDialogContext(PORTAL_NAME, __scopeDialog);\n return (\n <PortalProvider scope={__scopeDialog} forceMount={forceMount}>\n {React.Children.map(children, (child) => (\n <Presence present={forceMount || context.open}>\n <PortalPrimitive asChild container={container}>\n {child}\n </PortalPrimitive>\n </Presence>\n ))}\n </PortalProvider>\n );\n};\n\nDialogPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogOverlay\n * -----------------------------------------------------------------------------------------------*/\n\nconst OVERLAY_NAME = 'DialogOverlay';\n\ntype DialogOverlayElement = DialogOverlayImplElement;\ninterface DialogOverlayProps extends DialogOverlayImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogOverlay = React.forwardRef<DialogOverlayElement, DialogOverlayProps>(\n (props: ScopedProps<DialogOverlayProps>, forwardedRef) => {\n const portalContext = usePortalContext(OVERLAY_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, props.__scopeDialog);\n return context.modal ? (\n <Presence present={forceMount || context.open}>\n <DialogOverlayImpl {...overlayProps} ref={forwardedRef} />\n </Presence>\n ) : null;\n }\n);\n\nDialogOverlay.displayName = OVERLAY_NAME;\n\ntype DialogOverlayImplElement = React.ComponentRef<typeof Primitive.div>;\ntype PrimitiveDivProps = React.ComponentPropsWithoutRef<typeof Primitive.div>;\ninterface DialogOverlayImplProps extends PrimitiveDivProps {}\n\nconst Slot = createSlot('DialogOverlay.RemoveScroll');\n\nconst DialogOverlayImpl = React.forwardRef<DialogOverlayImplElement, DialogOverlayImplProps>(\n (props: ScopedProps<DialogOverlayImplProps>, forwardedRef) => {\n const { __scopeDialog, ...overlayProps } = props;\n const context = useDialogContext(OVERLAY_NAME, __scopeDialog);\n return (\n // Make sure `Content` is scrollable even when it doesn't live inside `RemoveScroll`\n // ie. when `Overlay` and `Content` are siblings\n <RemoveScroll as={Slot} allowPinchZoom shards={[context.contentRef]}>\n <Primitive.div\n data-state={getState(context.open)}\n {...overlayProps}\n ref={forwardedRef}\n // We re-enable pointer-events prevented by `Dialog.Content` to allow scrolling the overlay.\n style={{ pointerEvents: 'auto', ...overlayProps.style }}\n />\n </RemoveScroll>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DialogContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'DialogContent';\n\ntype DialogContentElement = DialogContentTypeElement;\ninterface DialogContentProps extends DialogContentTypeProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst DialogContent = React.forwardRef<DialogContentElement, DialogContentProps>(\n (props: ScopedProps<DialogContentProps>, forwardedRef) => {\n const portalContext = usePortalContext(CONTENT_NAME, props.__scopeDialog);\n const { forceMount = portalContext.forceMount, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n return (\n <Presence present={forceMount || context.open}>\n {context.modal ? (\n <DialogContentModal {...contentProps} ref={forwardedRef} />\n ) : (\n <DialogContentNonModal {...contentProps} ref={forwardedRef} />\n )}\n </Presence>\n );\n }\n);\n\nDialogContent.displayName = CONTENT_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentTypeElement = DialogContentImplElement;\ninterface DialogContentTypeProps\n extends Omit<DialogContentImplProps, 'trapFocus' | 'disableOutsidePointerEvents'> {}\n\nconst DialogContentModal = React.forwardRef<DialogContentTypeElement, DialogContentTypeProps>(\n (props: ScopedProps<DialogContentTypeProps>, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const contentRef = React.useRef<HTMLDivElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, context.contentRef, contentRef);\n\n // aria-hide everything except the content (better supported equivalent to setting aria-modal)\n React.useEffect(() => {\n const content = contentRef.current;\n if (content) return hideOthers(content);\n }, []);\n\n return (\n <DialogContentImpl\n {...props}\n ref={composedRefs}\n // we make sure focus isn't trapped once `DialogContent` has been closed\n // (closed !== unmounted when animating out)\n trapFocus={context.open}\n disableOutsidePointerEvents\n onCloseAutoFocus={composeEventHandlers(props.onCloseAutoFocus, (event) => {\n event.preventDefault();\n context.triggerRef.current?.focus();\n })}\n onPointerDownOutside={composeEventHandlers(props.onPointerDownOutside, (event) => {\n const originalEvent = event.detail.originalEvent;\n const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true;\n const isRightClick = originalEvent.button === 2 || ctrlLeftClick;\n\n // If the event is a right-click, we shouldn't close because\n // it is effectively as if we right-clicked the `Overlay`.\n if (isRightClick) event.preventDefault();\n })}\n // When focus is trapped, a `focusout` event may still happen.\n // We make sure we don't trigger our `onDismiss` in such case.\n onFocusOutside={composeEventHandlers(props.onFocusOutside, (event) =>\n event.preventDefault()\n )}\n />\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst DialogContentNonModal = React.forwardRef<DialogContentTypeElement, DialogContentTypeProps>(\n (props: ScopedProps<DialogContentTypeProps>, forwardedRef) => {\n const context = useDialogContext(CONTENT_NAME, props.__scopeDialog);\n const hasInteractedOutsideRef = React.useRef(false);\n const hasPointerDownOutsideRef = React.useRef(false);\n\n return (\n <DialogContentImpl\n {...props}\n ref={forwardedRef}\n trapFocus={false}\n disableOutsidePointerEvents={false}\n onCloseAutoFocus={(event) => {\n props.onCloseAutoFocus?.(event);\n\n if (!event.defaultPrevented) {\n if (!hasInteractedOutsideRef.current) context.triggerRef.current?.focus();\n // Always prevent auto focus because we either focus manually or want user agent focus\n event.preventDefault();\n }\n\n hasInteractedOutsideRef.current = false;\n hasPointerDownOutsideRef.current = false;\n }}\n onInteractOutside={(event) => {\n props.onInteractOutside?.(event);\n\n if (!event.defaultPrevented) {\n hasInteractedOutsideRef.current = true;\n if (event.detail.originalEvent.type === 'pointerdown') {\n hasPointerDownOutsideRef.current = true;\n }\n }\n\n // Prevent dismissing when clicking the trigger.\n // As the trigger is already setup to close, without doing so would\n // cause it to close and immediately open.\n const target = event.target as HTMLElement;\n const targetIsTrigger = context.triggerRef.current?.contains(target);\n if (targetIsTrigger) event.preventDefault();\n\n // On Safari if the trigger is inside a container with tabIndex={0}, when clicked\n // we will get the pointer down outside event on the trigger, but then a subsequent\n // focus outside event on the container, we ignore any focus outside event when we've\n // already had a pointer down outside event.\n if (event.detail.originalEvent.type === 'focusin' && hasPointerDownOutsideRef.current) {\n event.preventDefault();\n }\n }}\n />\n );\n }\n);\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype DialogContentImplElement = React.ComponentRef<typeof DismissableLayer>;\ntype DismissableLayerProps = React.ComponentPropsWithoutRef<typeof DismissableLayer>;\ntype FocusScopeProps = React.ComponentPropsWithoutRef<typeof FocusScope>;\ninterface DialogContentImplProps extends Omit<DismissableLayerProps, 'onDismiss'> {\n /**\n * When `true`, focus cannot escape the `Content` via keyboard,\n * pointer, or a programmatic focus.\n * @defaultValue false\n */\n trapFocus?: FocusScopeProps['trapped'];\n\n /**\n * Event handler called when auto-focusing on open.\n * Can be prevented.\n */\n onOpenAutoFocus?: FocusScopeProps['onMountAutoFocus'];\n\n /**\n * Event handler called when auto-focusing on close.\n * Can be prevented.\n */\n onCloseAutoFocus?: FocusScopeProps['onUnmountAutoFocus'];\n}\n\nconst DialogContentImpl = React.forwardRef<DialogContentImplElement, DialogContentImplProps>(\n (props: ScopedProps<DialogContentImplProps>, forwardedRef) => {\n const { __scopeDialog, trapFocus, onOpenAutoFocus, onCloseAutoFocus, ...contentProps } = props;\n const context = useDialogContext(CONTENT_NAME, __scopeDialog);\n const contentRef = React.useRef<HTMLDivElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n\n // Make sure the whole tree has focus guards as our `Dialog` will be\n // the last element in the DOM (because of the `Portal`)\n useFocusGuards();\n\n return (\n <>\n <FocusScope\n asChild\n loop\n trapped={trapFocus}\n onMountAutoFocus={onOpenAutoFocus}\n onUnmountAutoFocus={onCloseAutoFocus}\n >\n <DismissableLayer\n role=\"dialog\"\n id={context.contentId}\n aria-describedby={context.descriptionId}\n aria-labelledby={context.titleId}\n data-state={getState(context.open)}\n {...contentProps}\n ref={composedRefs}\n onDismiss={() => context.onOpenChange(false)}\n />\n </FocusScope>\n {process.env.NODE_ENV !== 'production' && (\n <>\n <TitleWarning titleId={context.titleId} />\n <DescriptionWarning contentRef={contentRef} descriptionId={context.descriptionId} />\n </>\n )}\n </>\n );\n }\n);\n\n/* -------------------------------------------------------------------------------------------------\n * DialogTitle\n * -----------------------------------------------------------------------------------------------*/\n\nconst TITLE_NAME = 'DialogTitle';\n\ntype DialogTitleElement = React.ComponentRef<typeof Primitive.h2>;\ntype PrimitiveHeading2Props = React.ComponentPropsWithoutRef<typeof Primitive.h2>;\ninterface DialogTitleProps extends PrimitiveHeading2Props {}\n\nconst DialogTitle = React.forwardRef<DialogTitleElement, DialogTitleProps>(\n (props: ScopedProps<DialogTitleProps>, forwardedRef) => {\n const { __scopeDialog, ...titleProps } = props;\n const context = useDialogContext(TITLE_NAME, __scopeDialog);\n return <Primitive.h2 id={context.titleId} {...titleProps} ref={forwardedRef} />;\n }\n);\n\nDialogTitle.displayName = TITLE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogDescription\n * -----------------------------------------------------------------------------------------------*/\n\nconst DESCRIPTION_NAME = 'DialogDescription';\n\ntype DialogDescriptionElement = React.ComponentRef<typeof Primitive.p>;\ntype PrimitiveParagraphProps = React.ComponentPropsWithoutRef<typeof Primitive.p>;\ninterface DialogDescriptionProps extends PrimitiveParagraphProps {}\n\nconst DialogDescription = React.forwardRef<DialogDescriptionElement, DialogDescriptionProps>(\n (props: ScopedProps<DialogDescriptionProps>, forwardedRef) => {\n const { __scopeDialog, ...descriptionProps } = props;\n const context = useDialogContext(DESCRIPTION_NAME, __scopeDialog);\n return <Primitive.p id={context.descriptionId} {...descriptionProps} ref={forwardedRef} />;\n }\n);\n\nDialogDescription.displayName = DESCRIPTION_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * DialogClose\n * -----------------------------------------------------------------------------------------------*/\n\nconst CLOSE_NAME = 'DialogClose';\n\ntype DialogCloseElement = React.ComponentRef<typeof Primitive.button>;\ninterface DialogCloseProps extends PrimitiveButtonProps {}\n\nconst DialogClose = React.forwardRef<DialogCloseElement, DialogCloseProps>(\n (props: ScopedProps<DialogCloseProps>, forwardedRef) => {\n const { __scopeDialog, ...closeProps } = props;\n const context = useDialogContext(CLOSE_NAME, __scopeDialog);\n return (\n <Primitive.button\n type=\"button\"\n {...closeProps}\n ref={forwardedRef}\n onClick={composeEventHandlers(props.onClick, () => context.onOpenChange(false))}\n />\n );\n }\n);\n\nDialogClose.displayName = CLOSE_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction getState(open: boolean) {\n return open ? 'open' : 'closed';\n}\n\nconst TITLE_WARNING_NAME = 'DialogTitleWarning';\n\nconst [WarningProvider, useWarningContext] = createContext(TITLE_WARNING_NAME, {\n contentName: CONTENT_NAME,\n titleName: TITLE_NAME,\n docsSlug: 'dialog',\n});\n\ntype TitleWarningProps = { titleId?: string };\n\nconst TitleWarning: React.FC<TitleWarningProps> = ({ titleId }) => {\n const titleWarningContext = useWarningContext(TITLE_WARNING_NAME);\n\n const MESSAGE = `\\`${titleWarningContext.contentName}\\` requires a \\`${titleWarningContext.titleName}\\` for the component to be accessible for screen reader users.\n\nIf you want to hide the \\`${titleWarningContext.titleName}\\`, you can wrap it with our VisuallyHidden component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/${titleWarningContext.docsSlug}`;\n\n React.useEffect(() => {\n if (titleId) {\n const hasTitle = document.getElementById(titleId);\n if (!hasTitle) console.error(MESSAGE);\n }\n }, [MESSAGE, titleId]);\n\n return null;\n};\n\nconst DESCRIPTION_WARNING_NAME = 'DialogDescriptionWarning';\n\ntype DescriptionWarningProps = {\n contentRef: React.RefObject<DialogContentElement | null>;\n descriptionId?: string;\n};\n\nconst DescriptionWarning: React.FC<DescriptionWarningProps> = ({ contentRef, descriptionId }) => {\n const descriptionWarningContext = useWarningContext(DESCRIPTION_WARNING_NAME);\n const MESSAGE = `Warning: Missing \\`Description\\` or \\`aria-describedby={undefined}\\` for {${descriptionWarningContext.contentName}}.`;\n\n React.useEffect(() => {\n const describedById = contentRef.current?.getAttribute('aria-describedby');\n // if we have an id and the user hasn't set aria-describedby={undefined}\n if (descriptionId && describedById) {\n const hasDescription = document.getElementById(descriptionId);\n if (!hasDescription) console.warn(MESSAGE);\n }\n }, [MESSAGE, contentRef, descriptionId]);\n\n return null;\n};\n\nconst Root = Dialog;\nconst Trigger = DialogTrigger;\nconst Portal = DialogPortal;\nconst Overlay = DialogOverlay;\nconst Content = DialogContent;\nconst Title = DialogTitle;\nconst Description = DialogDescription;\nconst Close = DialogClose;\n\nexport {\n createDialogScope,\n //\n Dialog,\n DialogTrigger,\n DialogPortal,\n DialogOverlay,\n DialogContent,\n DialogTitle,\n DialogDescription,\n DialogClose,\n //\n Root,\n Trigger,\n Portal,\n Overlay,\n Content,\n Title,\n Description,\n Close,\n //\n WarningProvider,\n};\nexport type {\n DialogProps,\n DialogTriggerProps,\n DialogPortalProps,\n DialogOverlayProps,\n DialogContentProps,\n DialogTitleProps,\n DialogDescriptionProps,\n DialogCloseProps,\n};\n","import * as React from 'react';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport * as DialogPrimitive from '@radix-ui/react-dialog';\nimport { createDialogScope } from '@radix-ui/react-dialog';\nimport { composeEventHandlers } from '@radix-ui/primitive';\nimport { createSlottable } from '@radix-ui/react-slot';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialog\n * -----------------------------------------------------------------------------------------------*/\n\nconst ROOT_NAME = 'AlertDialog';\n\ntype ScopedProps<P> = P & { __scopeAlertDialog?: Scope };\nconst [createAlertDialogContext, createAlertDialogScope] = createContextScope(ROOT_NAME, [\n createDialogScope,\n]);\nconst useDialogScope = createDialogScope();\n\ntype DialogProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Root>;\ninterface AlertDialogProps extends Omit<DialogProps, 'modal'> {}\n\nconst AlertDialog: React.FC<AlertDialogProps> = (props: ScopedProps<AlertDialogProps>) => {\n const { __scopeAlertDialog, ...alertDialogProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return <DialogPrimitive.Root {...dialogScope} {...alertDialogProps} modal={true} />;\n};\n\nAlertDialog.displayName = ROOT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogTrigger\n * -----------------------------------------------------------------------------------------------*/\nconst TRIGGER_NAME = 'AlertDialogTrigger';\n\ntype AlertDialogTriggerElement = React.ComponentRef<typeof DialogPrimitive.Trigger>;\ntype DialogTriggerProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Trigger>;\ninterface AlertDialogTriggerProps extends DialogTriggerProps {}\n\nconst AlertDialogTrigger = React.forwardRef<AlertDialogTriggerElement, AlertDialogTriggerProps>(\n (props: ScopedProps<AlertDialogTriggerProps>, forwardedRef) => {\n const { __scopeAlertDialog, ...triggerProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return <DialogPrimitive.Trigger {...dialogScope} {...triggerProps} ref={forwardedRef} />;\n }\n);\n\nAlertDialogTrigger.displayName = TRIGGER_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogPortal\n * -----------------------------------------------------------------------------------------------*/\n\nconst PORTAL_NAME = 'AlertDialogPortal';\n\ntype DialogPortalProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Portal>;\ninterface AlertDialogPortalProps extends DialogPortalProps {}\n\nconst AlertDialogPortal: React.FC<AlertDialogPortalProps> = (\n props: ScopedProps<AlertDialogPortalProps>\n) => {\n const { __scopeAlertDialog, ...portalProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return <DialogPrimitive.Portal {...dialogScope} {...portalProps} />;\n};\n\nAlertDialogPortal.displayName = PORTAL_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogOverlay\n * -----------------------------------------------------------------------------------------------*/\n\nconst OVERLAY_NAME = 'AlertDialogOverlay';\n\ntype AlertDialogOverlayElement = React.ComponentRef<typeof DialogPrimitive.Overlay>;\ntype DialogOverlayProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>;\ninterface AlertDialogOverlayProps extends DialogOverlayProps {}\n\nconst AlertDialogOverlay = React.forwardRef<AlertDialogOverlayElement, AlertDialogOverlayProps>(\n (props: ScopedProps<AlertDialogOverlayProps>, forwardedRef) => {\n const { __scopeAlertDialog, ...overlayProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return <DialogPrimitive.Overlay {...dialogScope} {...overlayProps} ref={forwardedRef} />;\n }\n);\n\nAlertDialogOverlay.displayName = OVERLAY_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogContent\n * -----------------------------------------------------------------------------------------------*/\n\nconst CONTENT_NAME = 'AlertDialogContent';\n\ntype AlertDialogContentContextValue = {\n cancelRef: React.MutableRefObject<AlertDialogCancelElement | null>;\n};\n\nconst [AlertDialogContentProvider, useAlertDialogContentContext] =\n createAlertDialogContext<AlertDialogContentContextValue>(CONTENT_NAME);\n\ntype AlertDialogContentElement = React.ComponentRef<typeof DialogPrimitive.Content>;\ntype DialogContentProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>;\ninterface AlertDialogContentProps\n extends Omit<DialogContentProps, 'onPointerDownOutside' | 'onInteractOutside'> {}\n\nconst Slottable = createSlottable('AlertDialogContent');\n\nconst AlertDialogContent = React.forwardRef<AlertDialogContentElement, AlertDialogContentProps>(\n (props: ScopedProps<AlertDialogContentProps>, forwardedRef) => {\n const { __scopeAlertDialog, children, ...contentProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const contentRef = React.useRef<AlertDialogContentElement>(null);\n const composedRefs = useComposedRefs(forwardedRef, contentRef);\n const cancelRef = React.useRef<AlertDialogCancelElement | null>(null);\n\n return (\n <DialogPrimitive.WarningProvider\n contentName={CONTENT_NAME}\n titleName={TITLE_NAME}\n docsSlug=\"alert-dialog\"\n >\n <AlertDialogContentProvider scope={__scopeAlertDialog} cancelRef={cancelRef}>\n <DialogPrimitive.Content\n role=\"alertdialog\"\n {...dialogScope}\n {...contentProps}\n ref={composedRefs}\n onOpenAutoFocus={composeEventHandlers(contentProps.onOpenAutoFocus, (event) => {\n event.preventDefault();\n cancelRef.current?.focus({ preventScroll: true });\n })}\n onPointerDownOutside={(event) => event.preventDefault()}\n onInteractOutside={(event) => event.preventDefault()}\n >\n {/**\n * We have to use `Slottable` here as we cannot wrap the `AlertDialogContentProvider`\n * around everything, otherwise the `DescriptionWarning` would be rendered straight away.\n * This is because we want the accessibility checks to run only once the content is actually\n * open and that behaviour is already encapsulated in `DialogContent`.\n */}\n <Slottable>{children}</Slottable>\n {process.env.NODE_ENV === 'development' && (\n <DescriptionWarning contentRef={contentRef} />\n )}\n </DialogPrimitive.Content>\n </AlertDialogContentProvider>\n </DialogPrimitive.WarningProvider>\n );\n }\n);\n\nAlertDialogContent.displayName = CONTENT_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogTitle\n * -----------------------------------------------------------------------------------------------*/\n\nconst TITLE_NAME = 'AlertDialogTitle';\n\ntype AlertDialogTitleElement = React.ComponentRef<typeof DialogPrimitive.Title>;\ntype DialogTitleProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>;\ninterface AlertDialogTitleProps extends DialogTitleProps {}\n\nconst AlertDialogTitle = React.forwardRef<AlertDialogTitleElement, AlertDialogTitleProps>(\n (props: ScopedProps<AlertDialogTitleProps>, forwardedRef) => {\n const { __scopeAlertDialog, ...titleProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return <DialogPrimitive.Title {...dialogScope} {...titleProps} ref={forwardedRef} />;\n }\n);\n\nAlertDialogTitle.displayName = TITLE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogDescription\n * -----------------------------------------------------------------------------------------------*/\n\nconst DESCRIPTION_NAME = 'AlertDialogDescription';\n\ntype AlertDialogDescriptionElement = React.ComponentRef<typeof DialogPrimitive.Description>;\ntype DialogDescriptionProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>;\ninterface AlertDialogDescriptionProps extends DialogDescriptionProps {}\n\nconst AlertDialogDescription = React.forwardRef<\n AlertDialogDescriptionElement,\n AlertDialogDescriptionProps\n>((props: ScopedProps<AlertDialogDescriptionProps>, forwardedRef) => {\n const { __scopeAlertDialog, ...descriptionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return <DialogPrimitive.Description {...dialogScope} {...descriptionProps} ref={forwardedRef} />;\n});\n\nAlertDialogDescription.displayName = DESCRIPTION_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogAction\n * -----------------------------------------------------------------------------------------------*/\n\nconst ACTION_NAME = 'AlertDialogAction';\n\ntype AlertDialogActionElement = React.ComponentRef<typeof DialogPrimitive.Close>;\ntype DialogCloseProps = React.ComponentPropsWithoutRef<typeof DialogPrimitive.Close>;\ninterface AlertDialogActionProps extends DialogCloseProps {}\n\nconst AlertDialogAction = React.forwardRef<AlertDialogActionElement, AlertDialogActionProps>(\n (props: ScopedProps<AlertDialogActionProps>, forwardedRef) => {\n const { __scopeAlertDialog, ...actionProps } = props;\n const dialogScope = useDialogScope(__scopeAlertDialog);\n return <DialogPrimitive.Close {...dialogScope} {...actionProps} ref={forwardedRef} />;\n }\n);\n\nAlertDialogAction.displayName = ACTION_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AlertDialogCancel\n * -----------------------------------------------------------------------------------------------*/\n\nconst CANCEL_NAME = 'AlertDialogCancel';\n\ntype AlertDialogCancelElement = React.ComponentRef<typeof DialogPrimitive.Close>;\ninterface AlertDialogCancelProps extends DialogCloseProps {}\n\nconst AlertDialogCancel = React.forwardRef<AlertDialogCancelElement, AlertDialogCancelProps>(\n (props: ScopedProps<AlertDialogCancelProps>, forwardedRef) => {\n const { __scopeAlertDialog, ...cancelProps } = props;\n const { cancelRef } = useAlertDialogContentContext(CANCEL_NAME, __scopeAlertDialog);\n const dialogScope = useDialogScope(__scopeAlertDialog);\n const ref = useComposedRefs(forwardedRef, cancelRef);\n return <DialogPrimitive.Close {...dialogScope} {...cancelProps} ref={ref} />;\n }\n);\n\nAlertDialogCancel.displayName = CANCEL_NAME;\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype DescriptionWarningProps = {\n contentRef: React.RefObject<AlertDialogContentElement | null>;\n};\n\nconst DescriptionWarning: React.FC<DescriptionWarningProps> = ({ contentRef }) => {\n const MESSAGE = `\\`${CONTENT_NAME}\\` requires a description for the component to be accessible for screen reader users.\n\nYou can add a description to the \\`${CONTENT_NAME}\\` by passing a \\`${DESCRIPTION_NAME}\\` component as a child, which also benefits sighted users by adding visible context to the dialog.\n\nAlternatively, you can use your own component as a description by assigning it an \\`id\\` and passing the same value to the \\`aria-describedby\\` prop in \\`${CONTENT_NAME}\\`. If the description is confusing or duplicative for sighted users, you can use the \\`@radix-ui/react-visually-hidden\\` primitive as a wrapper around your description component.\n\nFor more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;\n\n React.useEffect(() => {\n const hasDescription = document.getElementById(\n contentRef.current?.getAttribute('aria-describedby')!\n );\n if (!hasDescription) console.warn(MESSAGE);\n }, [MESSAGE, contentRef]);\n\n return null;\n};\n\nconst Root = AlertDialog;\nconst Trigger = AlertDialogTrigger;\nconst Portal = AlertDialogPortal;\nconst Overlay = AlertDialogOverlay;\nconst Content = AlertDialogContent;\nconst Action = AlertDialogAction;\nconst Cancel = AlertDialogCancel;\nconst Title = AlertDialogTitle;\nconst Description = AlertDialogDescription;\n\nexport {\n createAlertDialogScope,\n //\n AlertDialog,\n AlertDialogTrigger,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogContent,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogTitle,\n AlertDialogDescription,\n //\n Root,\n Trigger,\n Portal,\n Overlay,\n Content,\n Action,\n Cancel,\n Title,\n Description,\n};\nexport type {\n AlertDialogProps,\n AlertDialogTriggerProps,\n AlertDialogPortalProps,\n AlertDialogOverlayProps,\n AlertDialogContentProps,\n AlertDialogActionProps,\n AlertDialogCancelProps,\n AlertDialogTitleProps,\n AlertDialogDescriptionProps,\n};\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name differenceInCalendarMonths\n * @category Month Helpers\n * @summary Get the number of calendar months between the given dates.\n *\n * @description\n * Get the number of calendar months between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of calendar months\n *\n * @example\n * // How many calendar months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInCalendarMonths(\n * new Date(2014, 8, 1),\n * new Date(2014, 0, 31)\n * )\n * //=> 8\n */\nexport function differenceInCalendarMonths(dateLeft, dateRight) {\n const _dateLeft = toDate(dateLeft);\n const _dateRight = toDate(dateRight);\n\n const yearDiff = _dateLeft.getFullYear() - _dateRight.getFullYear();\n const monthDiff = _dateLeft.getMonth() - _dateRight.getMonth();\n\n return yearDiff * 12 + monthDiff;\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarMonths;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a month\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nexport function endOfMonth(date) {\n const _date = toDate(date);\n const month = _date.getMonth();\n _date.setFullYear(_date.getFullYear(), month + 1, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfMonth;\n","import { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name constructNow\n * @category Generic Helpers\n * @summary Constructs a new current date using the passed value constructor.\n * @pure false\n *\n * @description\n * The function constructs a new current date using the constructor from\n * the reference date. It helps to build generic functions that accept date\n * extensions and use the current date.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n *\n * @returns Current date initialized using the given date constructor\n *\n * @example\n * import { constructNow, isSameDay } from 'date-fns'\n *\n * function isToday<DateType extends Date>(\n * date: DateType | number | string,\n * ): boolean {\n * // If we were to use `new Date()` directly, the function would behave\n * // differently in different timezones and return false for the same date.\n * return isSameDay(date, constructNow(date));\n * }\n */\nexport function constructNow(date) {\n return constructFrom(date, Date.now());\n}\n\n// Fallback for modularized imports:\nexport default constructNow;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to compare\n * @param dateRight - The second date to compare\n *\n * @returns The result of the comparison\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\nexport function compareAsc(dateLeft, dateRight) {\n const _dateLeft = toDate(dateLeft);\n const _dateRight = toDate(dateRight);\n\n const diff = _dateLeft.getTime() - _dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1;\n // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}\n\n// Fallback for modularized imports:\nexport default compareAsc;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a day\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\nexport function endOfDay(date) {\n const _date = toDate(date);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfDay;\n","import { endOfDay } from \"./endOfDay.mjs\";\nimport { endOfMonth } from \"./endOfMonth.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isLastDayOfMonth\n * @category Month Helpers\n * @summary Is the given date the last day of a month?\n *\n * @description\n * Is the given date the last day of a month?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to check\n\n * @returns The date is the last day of a month\n *\n * @example\n * // Is 28 February 2014 the last day of a month?\n * const result = isLastDayOfMonth(new Date(2014, 1, 28))\n * //=> true\n */\nexport function isLastDayOfMonth(date) {\n const _date = toDate(date);\n return +endOfDay(_date) === +endOfMonth(_date);\n}\n\n// Fallback for modularized imports:\nexport default isLastDayOfMonth;\n","import { compareAsc } from \"./compareAsc.mjs\";\nimport { differenceInCalendarMonths } from \"./differenceInCalendarMonths.mjs\";\nimport { isLastDayOfMonth } from \"./isLastDayOfMonth.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name differenceInMonths\n * @category Month Helpers\n * @summary Get the number of full months between the given dates.\n *\n * @description\n * Get the number of full months between the given dates using trunc as a default rounding method.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of full months\n *\n * @example\n * // How many full months are between 31 January 2014 and 1 September 2014?\n * const result = differenceInMonths(new Date(2014, 8, 1), new Date(2014, 0, 31))\n * //=> 7\n */\nexport function differenceInMonths(dateLeft, dateRight) {\n const _dateLeft = toDate(dateLeft);\n const _dateRight = toDate(dateRight);\n\n const sign = compareAsc(_dateLeft, _dateRight);\n const difference = Math.abs(\n differenceInCalendarMonths(_dateLeft, _dateRight),\n );\n let result;\n\n // Check for the difference of less than month\n if (difference < 1) {\n result = 0;\n } else {\n if (_dateLeft.getMonth() === 1 && _dateLeft.getDate() > 27) {\n // This will check if the date is end of Feb and assign a higher end of month date\n // to compare it with Jan\n _dateLeft.setDate(30);\n }\n\n _dateLeft.setMonth(_dateLeft.getMonth() - sign * difference);\n\n // Math.abs(diff in full months - diff in calendar months) === 1 if last calendar month is not full\n // If so, result must be decreased by 1 in absolute value\n let isLastMonthNotFull = compareAsc(_dateLeft, _dateRight) === -sign;\n\n // Check for cases of one full calendar month\n if (\n isLastDayOfMonth(toDate(dateLeft)) &&\n difference === 1 &&\n compareAsc(dateLeft, _dateRight) === 1\n ) {\n isLastMonthNotFull = false;\n }\n\n result = sign * (difference - Number(isLastMonthNotFull));\n }\n\n // Prevent negative zero\n return result === 0 ? 0 : result;\n}\n\n// Fallback for modularized imports:\nexport default differenceInMonths;\n","export function getRoundingMethod(method) {\n return (number) => {\n const round = method ? Math[method] : Math.trunc;\n const result = round(number);\n // Prevent negative zero\n return result === 0 ? 0 : result;\n };\n}\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of milliseconds\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\nexport function differenceInMilliseconds(dateLeft, dateRight) {\n return +toDate(dateLeft) - +toDate(dateRight);\n}\n\n// Fallback for modularized imports:\nexport default differenceInMilliseconds;\n","import { getRoundingMethod } from \"./_lib/getRoundingMethod.mjs\";\nimport { differenceInMilliseconds } from \"./differenceInMilliseconds.mjs\";\n\n/**\n * The {@link differenceInSeconds} function options.\n */\n\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n * @param options - An object with options.\n *\n * @returns The number of seconds\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * const result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\nexport function differenceInSeconds(dateLeft, dateRight, options) {\n const diff = differenceInMilliseconds(dateLeft, dateRight) / 1000;\n return getRoundingMethod(options?.roundingMethod)(diff);\n}\n\n// Fallback for modularized imports:\nexport default differenceInSeconds;\n","import { compareAsc } from \"./compareAsc.mjs\";\nimport { minutesInDay, minutesInMonth } from \"./constants.mjs\";\nimport { differenceInMonths } from \"./differenceInMonths.mjs\";\nimport { differenceInSeconds } from \"./differenceInSeconds.mjs\";\nimport { toDate } from \"./toDate.mjs\";\nimport { defaultLocale } from \"./_lib/defaultLocale.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.mjs\";\n\n/**\n * The {@link formatDistance} function options.\n */\n\n/**\n * @name formatDistance\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words.\n *\n * | Distance between dates | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance between dates | Result |\n * |------------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date\n * @param baseDate - The date to compare with\n * @param options - An object with options\n *\n * @returns The distance in words\n *\n * @throws `date` must not be Invalid Date\n * @throws `baseDate` must not be Invalid Date\n * @throws `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistance(new Date(2014, 6, 2), new Date(2015, 0, 1))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00, including seconds?\n * const result = formatDistance(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0),\n * { includeSeconds: true }\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistance(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> 'about 1 year ago'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistance(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> 'pli ol 1 jaro'\n */\n\nexport function formatDistance(date, baseDate, options) {\n const defaultOptions = getDefaultOptions();\n const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n const minutesInAlmostTwoDays = 2520;\n\n const comparison = compareAsc(date, baseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError(\"Invalid time value\");\n }\n\n const localizeOptions = Object.assign({}, options, {\n addSuffix: options?.addSuffix,\n comparison: comparison,\n });\n\n let dateLeft;\n let dateRight;\n if (comparison > 0) {\n dateLeft = toDate(baseDate);\n dateRight = toDate(date);\n } else {\n dateLeft = toDate(date);\n dateRight = toDate(baseDate);\n }\n\n const seconds = differenceInSeconds(dateRight, dateLeft);\n const offsetInSeconds =\n (getTimezoneOffsetInMilliseconds(dateRight) -\n getTimezoneOffsetInMilliseconds(dateLeft)) /\n 1000;\n const minutes = Math.round((seconds - offsetInSeconds) / 60);\n let months;\n\n // 0 up to 2 mins\n if (minutes < 2) {\n if (options?.includeSeconds) {\n if (seconds < 5) {\n return locale.formatDistance(\"lessThanXSeconds\", 5, localizeOptions);\n } else if (seconds < 10) {\n return locale.formatDistance(\"lessThanXSeconds\", 10, localizeOptions);\n } else if (seconds < 20) {\n return locale.formatDistance(\"lessThanXSeconds\", 20, localizeOptions);\n } else if (seconds < 40) {\n return locale.formatDistance(\"halfAMinute\", 0, localizeOptions);\n } else if (seconds < 60) {\n return locale.formatDistance(\"lessThanXMinutes\", 1, localizeOptions);\n } else {\n return locale.formatDistance(\"xMinutes\", 1, localizeOptions);\n }\n } else {\n if (minutes === 0) {\n return locale.formatDistance(\"lessThanXMinutes\", 1, localizeOptions);\n } else {\n return locale.formatDistance(\"xMinutes\", minutes, localizeOptions);\n }\n }\n\n // 2 mins up to 0.75 hrs\n } else if (minutes < 45) {\n return locale.formatDistance(\"xMinutes\", minutes, localizeOptions);\n\n // 0.75 hrs up to 1.5 hrs\n } else if (minutes < 90) {\n return locale.formatDistance(\"aboutXHours\", 1, localizeOptions);\n\n // 1.5 hrs up to 24 hrs\n } else if (minutes < minutesInDay) {\n const hours = Math.round(minutes / 60);\n return locale.formatDistance(\"aboutXHours\", hours, localizeOptions);\n\n // 1 day up to 1.75 days\n } else if (minutes < minutesInAlmostTwoDays) {\n return locale.formatDistance(\"xDays\", 1, localizeOptions);\n\n // 1.75 days up to 30 days\n } else if (minutes < minutesInMonth) {\n const days = Math.round(minutes / minutesInDay);\n return locale.formatDistance(\"xDays\", days, localizeOptions);\n\n // 1 month up to 2 months\n } else if (minutes < minutesInMonth * 2) {\n months = Math.round(minutes / minutesInMonth);\n return locale.formatDistance(\"aboutXMonths\", months, localizeOptions);\n }\n\n months = differenceInMonths(dateRight, dateLeft);\n\n // 2 months up to 12 months\n if (months < 12) {\n const nearestMonth = Math.round(minutes / minutesInMonth);\n return locale.formatDistance(\"xMonths\", nearestMonth, localizeOptions);\n\n // 1 year up to max Date\n } else {\n const monthsSinceStartOfYear = months % 12;\n const years = Math.trunc(months / 12);\n\n // N years up to 1 years 3 months\n if (monthsSinceStartOfYear < 3) {\n return locale.formatDistance(\"aboutXYears\", years, localizeOptions);\n\n // N years 3 months up to N years 9 months\n } else if (monthsSinceStartOfYear < 9) {\n return locale.formatDistance(\"overXYears\", years, localizeOptions);\n\n // N years 9 months up to N year 12 months\n } else {\n return locale.formatDistance(\"almostXYears\", years + 1, localizeOptions);\n }\n }\n}\n\n// Fallback for modularized imports:\nexport default formatDistance;\n","import { constructNow } from \"./constructNow.mjs\";\nimport { formatDistance } from \"./formatDistance.mjs\";\n\n/**\n * The {@link formatDistanceToNow} function options.\n */\n\n/**\n * @name formatDistanceToNow\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n * @pure false\n *\n * @description\n * Return the distance between the given date and now in words.\n *\n * | Distance to now | Result |\n * |-------------------------------------------------------------------|---------------------|\n * | 0 ... 30 secs | less than a minute |\n * | 30 secs ... 1 min 30 secs | 1 minute |\n * | 1 min 30 secs ... 44 mins 30 secs | [2..44] minutes |\n * | 44 mins ... 30 secs ... 89 mins 30 secs | about 1 hour |\n * | 89 mins 30 secs ... 23 hrs 59 mins 30 secs | about [2..24] hours |\n * | 23 hrs 59 mins 30 secs ... 41 hrs 59 mins 30 secs | 1 day |\n * | 41 hrs 59 mins 30 secs ... 29 days 23 hrs 59 mins 30 secs | [2..30] days |\n * | 29 days 23 hrs 59 mins 30 secs ... 44 days 23 hrs 59 mins 30 secs | about 1 month |\n * | 44 days 23 hrs 59 mins 30 secs ... 59 days 23 hrs 59 mins 30 secs | about 2 months |\n * | 59 days 23 hrs 59 mins 30 secs ... 1 yr | [2..12] months |\n * | 1 yr ... 1 yr 3 months | about 1 year |\n * | 1 yr 3 months ... 1 yr 9 month s | over 1 year |\n * | 1 yr 9 months ... 2 yrs | almost 2 years |\n * | N yrs ... N yrs 3 months | about N years |\n * | N yrs 3 months ... N yrs 9 months | over N years |\n * | N yrs 9 months ... N+1 yrs | almost N+1 years |\n *\n * With `options.includeSeconds == true`:\n * | Distance to now | Result |\n * |---------------------|----------------------|\n * | 0 secs ... 5 secs | less than 5 seconds |\n * | 5 secs ... 10 secs | less than 10 seconds |\n * | 10 secs ... 20 secs | less than 20 seconds |\n * | 20 secs ... 40 secs | half a minute |\n * | 40 secs ... 60 secs | less than a minute |\n * | 60 secs ... 90 secs | 1 minute |\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n * @param options - The object with options\n *\n * @returns The distance in words\n *\n * @throws `date` must not be Invalid Date\n * @throws `options.locale` must contain `formatDistance` property\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * const result = formatDistanceToNow(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * const result = formatDistanceToNow(\n * new Date(2015, 0, 1, 0, 0, 15),\n * {includeSeconds: true}\n * )\n * //=> 'less than 20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * const result = formatDistanceToNow(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in about 1 year'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * const eoLocale = require('date-fns/locale/eo')\n * const result = formatDistanceToNow(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> 'pli ol 1 jaro'\n */\nexport function formatDistanceToNow(date, options) {\n return formatDistance(date, constructNow(date), options);\n}\n\n// Fallback for modularized imports:\nexport default formatDistanceToNow;\n"],"names":["AlertTriangle","createLucideIcon","d","key","ArrowUpDown","CheckCircle","ChevronsUpDown","Clock","cx","cy","r","points","Eye","Folder","Globe","Lock","width","height","x","y","rx","ry","Pen","Play","SquarePen","XCircle","DIALOG_NAME","createDialogContext","createDialogScope","createContextScope","DialogProvider","useDialogContext","Dialog","__scopeDialog","children","open","openProp","defaultOpen","onOpenChange","modal","props","triggerRef","React","contentRef","setOpen","useControllableState","prop","defaultProp","onChange","caller","jsx","scope","contentId","useId","titleId","descriptionId","onOpenToggle","prevOpen","displayName","TRIGGER_NAME","DialogTrigger","forwardedRef","triggerProps","context","composedTriggerRef","useComposedRefs","Primitive","button","type","getState","ref","onClick","composeEventHandlers","PORTAL_NAME","PortalProvider","usePortalContext","forceMount","DialogPortal","container","map","Presence","present","PortalPrimitive","asChild","child","OVERLAY_NAME","DialogOverlay","portalContext","overlayProps","DialogOverlayImpl","Slot","createSlot","RemoveScroll","as","allowPinchZoom","shards","div","style","pointerEvents","CONTENT_NAME","DialogContent","contentProps","DialogContentModal","DialogContentNonModal","composedRefs","content","current","hideOthers","DialogContentImpl","trapFocus","disableOutsidePointerEvents","onCloseAutoFocus","event","preventDefault","focus","onPointerDownOutside","originalEvent","detail","ctrlLeftClick","ctrlKey","onFocusOutside","hasInteractedOutsideRef","hasPointerDownOutsideRef","defaultPrevented","onInteractOutside","target","targetIsTrigger","contains","onOpenAutoFocus","useFocusGuards","jsxs","Fragment","FocusScope","loop","trapped","onMountAutoFocus","onUnmountAutoFocus","DismissableLayer","role","id","onDismiss","TitleWarning","DescriptionWarning","TITLE_NAME","DialogTitle","titleProps","h2","DESCRIPTION_NAME","DialogDescription","descriptionProps","p","CLOSE_NAME","DialogClose","closeProps","TITLE_WARNING_NAME","WarningProvider","useWarningContext","createContext","contentName","titleName","docsSlug","param","titleWarningContext","MESSAGE","concat","document","getElementById","console","error","descriptionWarningContext","describedById","getAttribute","warn","ROOT_NAME","createAlertDialogContext","createAlertDialogScope","useDialogScope","AlertDialog","__scopeAlertDialog","alertDialogProps","dialogScope","AlertDialogTrigger","AlertDialogPortal","portalProps","AlertDialogOverlay","AlertDialogContentProvider","useAlertDialogContentContext","Slottable","createSlottable","AlertDialogContent","cancelRef","DialogPrimitive","preventScroll","AlertDialogTitle","AlertDialogDescription","AlertDialogAction","actionProps","CANCEL_NAME","AlertDialogCancel","cancelProps","Root","Trigger","Portal","Overlay","Content","Action","Cancel","Title","Description","differenceInCalendarMonths","dateLeft","dateRight","_dateLeft","toDate","_dateRight","yearDiff","getFullYear","getMonth","endOfMonth","date","_date","month","setFullYear","setHours","compareAsc","diff","getTime","formatDistanceToNow","options","formatDistance","baseDate","method","months","defaultOptions","getDefaultOptions","locale","defaultLocale","comparison","isNaN","localizeOptions","Object","assign","addSuffix","seconds","getRoundingMethod","roundingMethod","result","round","Math","trunc","number","minutes","getTimezoneOffsetInMilliseconds","offsetInSeconds","includeSeconds","minutesInDay","minutesInMonth","days","differenceInMonths","sign","difference","abs","getDate","setDate","setMonth","isLastMonthNotFull","isLastDayOfMonth","endOfDay","Number","nearestMonth","monthsSinceStartOfYear","years","constructFrom","Date","now"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8824],{53245:function(e,t,s){s.d(t,{d:function(){return x},f:function(){return h}});var r=s(57437),n=s(62869),l=s(94508),a=s(30401),o=s(78867),i=s(2265),c=s(34996),d=s(1479),u=s(9880);let m=(0,i.createContext)({code:""}),x=e=>{let{code:t,language:s,showLineNumbers:n=!1,className:a,children:o,...i}=e;return(0,r.jsx)(m.Provider,{value:{code:t},children:(0,r.jsx)("div",{className:(0,l.cn)("relative w-full overflow-hidden rounded-md border bg-background text-foreground",a),...i,children:(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)(c.Z,{className:"overflow-hidden dark:hidden",codeTagProps:{className:"font-mono text-sm"},customStyle:{margin:0,padding:"1rem",fontSize:"0.875rem",background:"hsl(var(--background))",color:"hsl(var(--foreground))"},language:s,lineNumberStyle:{color:"hsl(var(--muted-foreground))",paddingRight:"1rem",minWidth:"2.5rem"},showLineNumbers:n,style:d.Z,children:t}),(0,r.jsx)(c.Z,{className:"hidden overflow-hidden dark:block",codeTagProps:{className:"font-mono text-sm"},customStyle:{margin:0,padding:"1rem",fontSize:"0.875rem",background:"hsl(var(--background))",color:"hsl(var(--foreground))"},language:s,lineNumberStyle:{color:"hsl(var(--muted-foreground))",paddingRight:"1rem",minWidth:"2.5rem"},showLineNumbers:n,style:u.Z,children:t}),o&&(0,r.jsx)("div",{className:"absolute top-2 right-2 flex items-center gap-2",children:o})]})})})},h=e=>{let{onCopy:t,onError:s,timeout:c=2e3,children:d,className:u,...x}=e,[h,p]=(0,i.useState)(!1),{code:f}=(0,i.useContext)(m),g=async()=>{if(!navigator.clipboard.writeText){null==s||s(Error("Clipboard API not available"));return}try{await navigator.clipboard.writeText(f),p(!0),null==t||t(),setTimeout(()=>p(!1),c)}catch(e){null==s||s(e)}},j=h?a.Z:o.Z;return(0,r.jsx)(n.z,{className:(0,l.cn)("shrink-0",u),onClick:g,size:"icon",variant:"ghost",...x,children:null!=d?d:(0,r.jsx)(j,{size:14})})}},27182:function(e,t,s){s.d(t,{iG:function(){return o},ri:function(){return a}});var r=s(57437);s(62869);var n=s(94508);s(2265);var l=s(20460);let a=e=>{let{className:t,...s}=e;return(0,r.jsx)(l.h,{className:(0,n.cn)("relative flex-1 overflow-y-auto",t),initial:"smooth",resize:"smooth",role:"log",...s})},o=e=>{let{className:t,...s}=e;return(0,r.jsx)(l.h.Content,{className:(0,n.cn)("p-4",t),...s})}},35629:function(e,t,s){s.d(t,{H:function(){return x}});var r=s(57437),n=s(94508),l=s(2265),a=s(86816),o=s(67245),i=s(58146),c=s(85020),d=s(53245);s(2446);let u=(0,s(86589).Z)(a.UG),m={ol:e=>{let{node:t,children:s,className:l,...a}=e;return(0,r.jsx)("ol",{className:(0,n.cn)("ml-4 list-outside list-decimal",l),...a,children:s})},li:e=>{let{node:t,children:s,className:l,...a}=e;return(0,r.jsx)("li",{className:(0,n.cn)("py-1",l),...a,children:s})},ul:e=>{let{node:t,children:s,className:l,...a}=e;return(0,r.jsx)("ul",{className:(0,n.cn)("ml-4 list-outside list-disc",l),...a,children:s})},hr:e=>{let{node:t,className:s,...l}=e;return(0,r.jsx)("hr",{className:(0,n.cn)("my-6 border-border",s),...l})},strong:e=>{let{node:t,children:s,className:l,...a}=e;return(0,r.jsx)("span",{className:(0,n.cn)("font-semibold",l),...a,children:s})},a:e=>{let{node:t,children:s,className:l,...a}=e;return(0,r.jsx)("a",{className:(0,n.cn)("font-medium text-primary underline",l),rel:"noreferrer",target:"_blank",...a,children:s})},h1:e=>{let{node:t,children:s,className:l,...a}=e;return(0,r.jsx)("h1",{className:(0,n.cn)("mt-6 mb-2 font-semibold text-3xl",l),...a,children:s})},h2:e=>{let{node:t,children:s,className:l,...a}=e;return(0,r.jsx)("h2",{className:(0,n.cn)("mt-6 mb-2 font-semibold text-2xl",l),...a,children:s})},h3:e=>{let{node:t,children:s,className:l,...a}=e;return(0,r.jsx)("h3",{className:(0,n.cn)("mt-6 mb-2 font-semibold text-xl",l),...a,children:s})},h4:e=>{let{node:t,children:s,className:l,...a}=e;return(0,r.jsx)("h4",{className:(0,n.cn)("mt-6 mb-2 font-semibold text-lg",l),...a,children:s})},h5:e=>{let{node:t,children:s,className:l,...a}=e;return(0,r.jsx)("h5",{className:(0,n.cn)("mt-6 mb-2 font-semibold text-base",l),...a,children:s})},h6:e=>{let{node:t,children:s,className:l,...a}=e;return(0,r.jsx)("h6",{className:(0,n.cn)("mt-6 mb-2 font-semibold text-sm",l),...a,children:s})},table:e=>{let{node:t,children:s,className:l,...a}=e;return(0,r.jsx)("div",{className:"my-4 overflow-x-auto",children:(0,r.jsx)("table",{className:(0,n.cn)("w-full border-collapse border border-border",l),...a,children:s})})},thead:e=>{let{node:t,children:s,className:l,...a}=e;return(0,r.jsx)("thead",{className:(0,n.cn)("bg-muted/50",l),...a,children:s})},tbody:e=>{let{node:t,children:s,className:l,...a}=e;return(0,r.jsx)("tbody",{className:(0,n.cn)("divide-y divide-border",l),...a,children:s})},tr:e=>{let{node:t,children:s,className:l,...a}=e;return(0,r.jsx)("tr",{className:(0,n.cn)("border-border border-b",l),...a,children:s})},th:e=>{let{node:t,children:s,className:l,...a}=e;return(0,r.jsx)("th",{className:(0,n.cn)("px-4 py-2 text-left font-semibold text-sm",l),...a,children:s})},td:e=>{let{node:t,children:s,className:l,...a}=e;return(0,r.jsx)("td",{className:(0,n.cn)("px-4 py-2 text-sm",l),...a,children:s})},blockquote:e=>{let{node:t,children:s,className:l,...a}=e;return(0,r.jsx)("blockquote",{className:(0,n.cn)("my-4 border-muted-foreground/30 border-l-4 pl-4 text-muted-foreground italic",l),...a,children:s})},code:e=>{var t,s;let{node:l,className:a,...o}=e;return(null==l?void 0:null===(t=l.position)||void 0===t?void 0:t.start.line)!==(null==l?void 0:null===(s=l.position)||void 0===s?void 0:s.end.line)?(0,r.jsx)("code",{className:a,...o}):(0,r.jsx)("code",{className:(0,n.cn)("rounded bg-muted px-1.5 py-0.5 font-mono text-sm",a),...o})},pre:e=>{var t;let{node:s,className:a,children:o}=e,i="javascript";"string"==typeof(null==s?void 0:null===(t=s.properties)||void 0===t?void 0:t.className)&&(i=s.properties.className.replace("language-",""));let c="";return(0,l.isValidElement)(o)&&o.props&&"string"==typeof o.props.children?c=o.props.children:"string"==typeof o&&(c=o),(0,r.jsx)(d.d,{className:(0,n.cn)("my-4 h-auto",a),code:c,language:i,children:(0,r.jsx)(d.f,{onCopy:()=>console.log("Copied code to clipboard"),onError:()=>console.error("Failed to copy code to clipboard")})})}},x=(0,l.memo)(e=>{let{className:t,options:s,children:l,allowedImagePrefixes:a,allowedLinkPrefixes:d,defaultOrigin:x,parseIncompleteMarkdown:h=!0,...p}=e,f="string"==typeof l&&h?function(e){if(!e||"string"!=typeof e)return e;let t=e,s=t.match(/(!?\[)([^\]]*?)$/);if(s){let e=t.lastIndexOf(s[1]);t=t.substring(0,e)}if(t.match(/(\*\*)([^*]*?)$/)&&(t.match(/\*\*/g)||[]).length%2==1&&(t="".concat(t,"**")),t.match(/(__)([^_]*?)$/)&&(t.match(/__/g)||[]).length%2==1&&(t="".concat(t,"__")),t.match(/(\*)([^*]*?)$/)&&t.split("").reduce((e,s,r)=>{if("*"===s){let s=t[r-1],n=t[r+1];if("*"!==s&&"*"!==n)return e+1}return e},0)%2==1&&(t="".concat(t,"*")),t.match(/(_)([^_]*?)$/)&&t.split("").reduce((e,s,r)=>{if("_"===s){let s=t[r-1],n=t[r+1];if("_"!==s&&"_"!==n)return e+1}return e},0)%2==1&&(t="".concat(t,"_")),t.match(/(`)([^`]*?)$/)&&(t.includes("```"),(t.match(/```[\s\S]*?```/g)||[]).length,(t.match(/```/g)||[]).length%2!=1)){let e=0;for(let s=0;s<t.length;s++)if("`"===t[s]){let r="```"===t.substring(s,s+3),n=s>0&&"```"===t.substring(s-1,s+2),l=s>1&&"```"===t.substring(s-2,s+1);!(r||n||l)&&e++}e%2==1&&(t="".concat(t,"`"))}return t.match(/(~~)([^~]*?)$/)&&(t.match(/~~/g)||[]).length%2==1&&(t="".concat(t,"~~")),t}(l):l;return(0,r.jsx)("div",{className:(0,n.cn)("size-full [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",t),...p,children:(0,r.jsx)(u,{allowedImagePrefixes:null!=a?a:["*"],allowedLinkPrefixes:null!=d?d:["*"],components:m,defaultOrigin:x,rehypePlugins:[o.Z],remarkPlugins:[i.Z,c.Z],...s,children:f})})},(e,t)=>e.children===t.children);x.displayName="Response"},77256:function(e,t,s){s.d(t,{K:function(){return M}});var r=s(57437);s(16831);var n=s(94508);let l=e=>{let{className:t,from:s,...l}=e;return(0,r.jsx)("div",{className:(0,n.cn)("group flex w-full items-end justify-end gap-2 py-4","user"===s?"is-user flex-row-reverse justify-end":"is-assistant flex-row-reverse justify-end","[&>div]:max-w-[80%]",t),...l})},a=e=>{let{children:t,className:s,...l}=e;return(0,r.jsx)("div",{className:(0,n.cn)("flex flex-col gap-2 overflow-hidden rounded-lg py-3 text-foreground text-sm","group-[.is-user]:bg-secondary group-[.is-user]:text-primary-foreground group-[.is-user]:px-4","group-[.is-assistant]:bg-transparent group-[.is-assistant]:text-foreground",s),...l,children:(0,r.jsx)("div",{className:"is-user:dark",children:t})})};var o=s(62869),i=s(81103);let c=e=>{let{className:t,children:s,...l}=e;return(0,r.jsx)("div",{className:(0,n.cn)("flex items-center gap-1",t),...l,children:s})},d=e=>{let{tooltip:t,children:s,label:l,className:a,variant:c="ghost",size:d="sm",...u}=e,m=(0,r.jsxs)(o.z,{className:(0,n.cn)("size-9 p-1.5 text-muted-foreground hover:text-foreground",a),size:d,type:"button",variant:c,...u,children:[s,(0,r.jsx)("span",{className:"sr-only",children:l||t})]});return t?(0,r.jsx)(i.pn,{children:(0,r.jsxs)(i.u,{children:[(0,r.jsx)(i.aJ,{asChild:!0,children:m}),(0,r.jsx)(i._v,{children:(0,r.jsx)("p",{children:t})})]})}):m};var u=s(35629),m=s(80886),x=s(74928),h=s(64972),p=s(40875),f=s(2265);let g=(0,f.createContext)(null),j=()=>{let e=(0,f.useContext)(g);if(!e)throw Error("Reasoning components must be used within Reasoning");return e},b=(0,f.memo)(e=>{let{className:t,isStreaming:s=!1,open:l,defaultOpen:a=!1,onOpenChange:o,duration:i,children:c,...d}=e,[u,h]=(0,m.T)({prop:l,defaultProp:a,onChange:o}),[p,j]=(0,m.T)({prop:i,defaultProp:0}),[b,v]=(0,f.useState)(!1),[N,y]=(0,f.useState)(null);return(0,f.useEffect)(()=>{s?null===N&&y(Date.now()):null!==N&&(j(Math.round((Date.now()-N)/1e3)),y(null))},[s,N,j]),(0,f.useEffect)(()=>{if(s&&!u)h(!0);else if(!s&&u&&!a&&!b){let e=setTimeout(()=>{h(!1),v(!0)},1e3);return()=>clearTimeout(e)}},[s,u,a,h,b]),(0,r.jsx)(g.Provider,{value:{isStreaming:s,isOpen:u,setIsOpen:h,duration:p},children:(0,r.jsx)(x.zF,{className:(0,n.cn)("not-prose mb-4",t),onOpenChange:e=>{h(e)},open:u,...d,children:c})})}),v=(0,f.memo)(e=>{let{className:t,title:s="Reasoning",children:l,...a}=e,{isStreaming:o,isOpen:i,duration:c}=j();return(0,r.jsx)(x.wy,{className:(0,n.cn)("flex items-center gap-2 text-muted-foreground text-sm",t),...a,children:null!=l?l:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(h.Z,{className:"size-4"}),o||0===c?(0,r.jsx)("p",{children:"Thinking..."}):(0,r.jsxs)("p",{children:["Thought for ",c," seconds"]}),(0,r.jsx)(p.Z,{className:(0,n.cn)("size-4 text-muted-foreground transition-transform",i?"rotate-180":"rotate-0")})]})})}),N=(0,f.memo)(e=>{let{className:t,children:s,...l}=e;return(0,r.jsx)(x.Fw,{className:(0,n.cn)("mt-4 text-sm","data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-popover-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in",t),...l,children:(0,r.jsx)(u.H,{className:"grid gap-2",children:s})})});b.displayName="Reasoning",v.displayName="ReasoningTrigger",N.displayName="ReasoningContent";var y=s(55455);let w=e=>{let{className:t,...s}=e;return(0,r.jsx)(x.zF,{className:(0,n.cn)("not-prose mb-4 text-primary text-xs",t),...s})},k=e=>{let{className:t,count:s,children:n,...l}=e;return(0,r.jsx)(x.wy,{className:"flex items-center gap-2",...l,children:null!=n?n:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("p",{className:"font-medium",children:["Used ",s," sources"]}),(0,r.jsx)(p.Z,{className:"h-4 w-4"})]})})},C=e=>{let{className:t,...s}=e;return(0,r.jsx)(x.Fw,{className:(0,n.cn)("mt-3 flex w-fit flex-col gap-2","data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 outline-none data-[state=closed]:animate-out data-[state=open]:animate-in",t),...s})},_=e=>{let{href:t,title:s,children:n,...l}=e;return(0,r.jsx)("a",{className:"flex items-center gap-2",href:t,rel:"noreferrer",target:"_blank",...l,children:null!=n?n:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(y.Z,{className:"h-4 w-4"}),(0,r.jsx)("span",{className:"block font-medium",children:s})]})})};var T=s(52636),z=s(78867),Z=s(33145),F=s(77992),P=s(40519),S=s(15863),R=s(66901),I=s(45131);let E={pending:{icon:P.Z,label:"Pending",className:"text-muted-foreground"},in_progress:{icon:S.Z,label:"In Progress",className:"text-blue-500 animate-spin"},completed:{icon:R.Z,label:"Completed",className:"text-green-500"},cancelled:{icon:I.Z,label:"Cancelled",className:"text-red-500"}},L={high:{label:"High",className:"bg-red-500/10 text-red-500 border-red-500/20"},medium:{label:"Medium",className:"bg-yellow-500/10 text-yellow-500 border-yellow-500/20"},low:{label:"Low",className:"bg-blue-500/10 text-blue-500 border-blue-500/20"}},$=e=>{let{todos:t,showPriority:s=!1,state:l,className:a,...o}=e;if("string"==typeof t&&(t=JSON.parse(t)),!t||0===t.length)return null;let i=t.filter(e=>"completed"===e.status).length,c=t.length;return(0,r.jsxs)("div",{className:(0,n.cn)("my-2 space-y-1","input-streaming"===l&&"opacity-70",a),...o,children:[t.map((e,l)=>{let a=E[e.status].icon,o=E[e.status].className;L[e.priority].className;let i="in_progress"===e.status&&l===t.findIndex(e=>"in_progress"===e.status);return(0,r.jsxs)("div",{className:(0,n.cn)("flex items-start gap-2 py-0.5","cancelled"===e.status&&"opacity-50"),children:[(0,r.jsx)("div",{className:"flex-shrink-0 pt-0.5",children:(0,r.jsx)(a,{className:(0,n.cn)("size-3.5",o)})}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("span",{className:(0,n.cn)("text-sm","completed"===e.status&&"text-muted-foreground line-through","cancelled"===e.status&&"text-muted-foreground line-through","in_progress"===e.status&&i&&"font-medium"),children:e.content}),s&&"high"===e.priority&&(0,r.jsx)("span",{className:"ml-2 text-red-500 text-xs",children:"(!)"})]})]},e.id)}),c>1&&(0,r.jsxs)("div",{className:"flex items-center gap-2 pt-1 text-muted-foreground text-xs",children:[(0,r.jsx)("div",{className:"h-1 flex-1 overflow-hidden rounded-full bg-secondary",children:(0,r.jsx)("div",{className:"h-full bg-primary transition-all duration-300",style:{width:"".concat(i/c*100,"%")}})}),(0,r.jsxs)("span",{className:"whitespace-nowrap",children:[i,"/",c]})]}),"output-error"===l&&(0,r.jsxs)("div",{className:"flex items-center gap-1 pt-1 text-red-500 text-xs",children:[(0,r.jsx)(I.Z,{className:"size-3"}),(0,r.jsx)("span",{children:"Error updating tasks"})]})]})};function M(e){let{messages:t,status:s="idle",className:o,showActions:i=!0,onRegenerate:m,onAddToolResult:x,UntypedToolPartComponent:h,addToContext:p,writeAccess:f=!0,config:g}=e,{toast:j}=(0,F.pm)();return(0,r.jsx)(r.Fragment,{children:null==t?void 0:t.map((e,y)=>{let F=e.metadata;return t.length,(0,r.jsx)(l,{className:(0,n.cn)("assistant"===e.role&&((null==g?void 0:g.customAssistantClassnames)?null==g?void 0:g.customAssistantClassnames:""),0===y&&((null==g?void 0:g.marginTopFirstMessage)?null==g?void 0:g.marginTopFirstMessage:"mt-12"),o),from:e.role,children:(0,r.jsxs)(a,{children:[e.parts.map((t,n)=>{var l,a,o;if("step-start"===t.type)return null;if("text"===t.type)return(0,r.jsx)("div",{children:(0,r.jsx)(u.H,{className:"chat-response-container",children:t.text})},"".concat(e.id,"-").concat(n));if("tool-askForConfirmation"===t.type&&x){let e=t.toolCallId;switch(t.state){case"input-streaming":return(0,r.jsx)("div",{children:"Loading confirmation request..."},e);case"input-available":return(0,r.jsxs)("div",{children:[t.input.message,(0,r.jsxs)("div",{children:[(0,r.jsx)("button",{onClick:()=>x({tool:"askForConfirmation",toolCallId:e,output:"Yes, confirmed"}),children:"Yes"}),(0,r.jsx)("button",{onClick:()=>x({tool:"askForConfirmation",toolCallId:e,output:"No, denied"}),children:"No"})]})]},e);case"output-available":return(0,r.jsxs)("div",{children:["Tool call allowed: ",t.output]},e);case"output-error":return(0,r.jsxs)("div",{children:["Error: ",t.errorText]},e)}}if((null===(l=t.type)||void 0===l?void 0:l.toLowerCase())==="tool-todo_write"||(null===(a=t.type)||void 0===a?void 0:a.toLowerCase())==="tool-todo_read"){let e=t.output;if(!(null==e?void 0:e.result))return null;let s=t.state;return(0,r.jsx)($,{todos:e.result,showPriority:!0,state:s})}if((t.type.startsWith("tool-")||"dynamic-tool"===t.type)&&h&&p){let e=t.toolCallId;return(0,r.jsx)(h,{untypedToolPart:t,callId:e,addToContext:p},e)}return"file"===t.type&&(null===(o=t.mediaType)||void 0===o?void 0:o.startsWith("image/"))?(0,r.jsx)(Z.default,{src:t.url,width:300,height:300,alt:"Generated image"},"".concat(e.id,"-").concat(n)):"source-url"===t.type?(0,r.jsxs)(w,{children:[(0,r.jsx)(k,{count:e.parts.filter(e=>"source-url"===e.type).length}),(0,r.jsx)(C,{children:e.parts.map((t,s)=>{if("source-url"===t.type)return(0,r.jsx)(_,{href:t.url,title:t.title},"".concat(e.id,"-").concat(s))})},"".concat(e.id))]},"".concat(e.id,"-").concat(n)):"reasoning"===t.type?(0,r.jsxs)(b,{className:"w-full",isStreaming:"streaming"===s,children:[(0,r.jsx)(v,{}),(0,r.jsx)(N,{children:t.text})]},"".concat(e.id,"-").concat(n)):null}),i&&"assistant"===e.role&&(0,r.jsxs)(c,{className:"mt-2",children:[m&&(0,r.jsx)(d,{onClick:()=>m(),label:"Retry",disabled:!f,children:(0,r.jsx)(T.Z,{className:"size-3"})}),(0,r.jsx)(d,{onClick:()=>{navigator.clipboard.writeText(e.parts.map(e=>(null==e?void 0:e.text)||"").join("\n")),j({title:"Copied message",description:"The message was copied to your clipboard."})},label:"Copy",children:(0,r.jsx)(z.Z,{className:"size-3"})}),(null==F?void 0:F.totalTokens)&&(0,r.jsxs)("small",{className:"text-muted-foreground",children:[Intl.NumberFormat("en-US").format(null==F?void 0:F.totalTokens)," tokens"]})]})]})},e.id)})})}},74928:function(e,t,s){s.d(t,{Fw:function(){return a},wy:function(){return l},zF:function(){return n}});var r=s(88985);let n=r.fC,l=r.wy,a=r.Fw},12339:function(e,t,s){s.d(t,{SP:function(){return c},dr:function(){return i},mQ:function(){return o},nU:function(){return d}});var r=s(57437),n=s(20271),l=s(2265),a=s(94508);let o=n.fC,i=l.forwardRef((e,t)=>{let{className:s,...l}=e;return(0,r.jsx)(n.aV,{ref:t,className:(0,a.cn)("inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground",s),...l})});i.displayName=n.aV.displayName;let c=l.forwardRef((e,t)=>{let{className:s,...l}=e;return(0,r.jsx)(n.xz,{ref:t,className:(0,a.cn)("inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",s),...l})});c.displayName=n.xz.displayName;let d=l.forwardRef((e,t)=>{let{className:s,...l}=e;return(0,r.jsx)(n.VY,{ref:t,className:(0,a.cn)("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",s),...l})});d.displayName=n.VY.displayName}}]);
|
|
2
|
+
//# sourceMappingURL=8824-20030459012376a3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/chunks/8824-20030459012376a3.js","mappings":"8PAiBA,IAAMA,EAAmBC,CAAAA,EAAAA,EAAAA,aAAAA,EAAoC,CAC3DC,KAAM,EACR,GASaC,EAAY,OAAC,CACxBD,KAAAA,CAAI,CACJE,SAAAA,CAAQ,CACRC,gBAAAA,EAAkB,EAAK,CACvBC,UAAAA,CAAS,CACTC,SAAAA,CAAQ,CACR,GAAGC,EACY,CAAAC,QACf,GAAAC,EAAAC,GAAA,EAACX,EAAiBY,QAAQ,EAACC,MAAO,CAAEX,KAAAA,CAAK,WACvC,GAAAQ,EAAAC,GAAA,EAACG,MAAAA,CACCR,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EACT,kFACAT,GAED,GAAGE,CAAK,UAET,GAAAE,EAAAM,IAAA,EAACF,MAAAA,CAAIR,UAAU,qBACb,GAAAI,EAAAC,GAAA,EAACM,EAAAA,CAAiBA,CAAAA,CAChBX,UAAU,8BACVY,aAAc,CACZZ,UAAW,mBACb,EACAa,YAAa,CACXC,OAAQ,EACRC,QAAS,OACTC,SAAU,WACVC,WAAY,yBACZC,MAAO,wBACT,EACApB,SAAUA,EACVqB,gBAAiB,CACfD,MAAO,+BACPE,aAAc,OACdC,SAAU,QACZ,EACAtB,gBAAiBA,EACjBuB,MAAOC,EAAAA,CAAQA,UAEd3B,IAEH,GAAAQ,EAAAC,GAAA,EAACM,EAAAA,CAAiBA,CAAAA,CAChBX,UAAU,oCACVY,aAAc,CACZZ,UAAW,mBACb,EACAa,YAAa,CACXC,OAAQ,EACRC,QAAS,OACTC,SAAU,WACVC,WAAY,yBACZC,MAAO,wBACT,EACApB,SAAUA,EACVqB,gBAAiB,CACfD,MAAO,+BACPE,aAAc,OACdC,SAAU,QACZ,EACAtB,gBAAiBA,EACjBuB,MAAOE,EAAAA,CAAOA,UAEb5B,IAEFK,GACC,GAAAG,EAAAC,GAAA,EAACG,MAAAA,CAAIR,UAAU,0DACZC,YAcAwB,EAAsB,OAAC,CAClCC,OAAAA,CAAM,CACNC,QAAAA,CAAO,CACPC,QAAAA,EAAU,GAAI,CACd3B,SAAAA,CAAQ,CACRD,UAAAA,CAAS,CACT,GAAGE,EACsB,CAAAC,EACnB,CAAC0B,EAAUC,EAAY,CAAGC,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IACnC,CAAEnC,KAAAA,CAAI,CAAE,CAAGoC,CAAAA,EAAAA,EAAAA,UAAAA,EAAWtC,GAEtBuC,EAAkB,UACtB,GAAqC,CAACC,UAAUC,SAAS,CAACC,SAAS,CAAE,CACnET,MAAAA,GAAAA,EAAU,MAAU,gCACpB,MACF,CAEA,GAAI,CACF,MAAMO,UAAUC,SAAS,CAACC,SAAS,CAACxC,GACpCkC,EAAY,IACZJ,MAAAA,GAAAA,IACAW,WAAW,IAAMP,EAAY,IAAQF,EACvC,CAAE,MAAOU,EAAO,CACdX,MAAAA,GAAAA,EAAUW,EACZ,CACF,EAEMC,EAAOV,EAAWW,EAAAA,CAASA,CAAGC,EAAAA,CAAQA,CAE5C,MACE,GAAArC,EAAAC,GAAA,EAACqC,EAAAA,CAAMA,CAAAA,CACL1C,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,WAAYT,GAC1B2C,QAASV,EACTW,KAAK,OACLC,QAAQ,QACP,GAAG3C,CAAK,UAERD,MAAAA,EAAAA,EAAY,GAAAG,EAAAC,GAAA,EAACkC,EAAAA,CAAKK,KAAM,MAG/B,gJCtIO,IAAME,EAAe,OAAC,CAAE9C,UAAAA,CAAS,CAAE,GAAGE,EAA0B,CAAAC,QAErE,GAAAC,EAAAC,GAAA,EAAC0C,EAAAA,CAAaA,CAAAA,CACZ/C,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,kCAAmCT,GACjDgD,QAAQ,SACRC,OAAO,SACPC,KAAK,MACJ,GAAGhD,CAAK,IASAiD,EAAsB,OAAC,CAElCnD,UAAAA,CAAS,CACT,GAAGE,EACsB,CAAAC,QAEzB,GAAAC,EAAAC,GAAA,EAAC0C,EAAAA,CAAaA,CAACK,OAAO,EAACpD,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,MAAOT,GAAa,GAAGE,CAAK,8JC2HnE,IAAMmD,EAAmBC,CAAAA,EAAAA,SAAAA,CAAAA,EAAoBC,EAAAA,EAAaA,EAiBpDC,EAAoC,CACxCC,GAAI,OAAC,CAAEC,KAAAA,CAAI,CAAEzD,SAAAA,CAAQ,CAAED,UAAAA,CAAS,CAAE,GAAGE,EAAO,CAAAC,QAC1C,GAAAC,EAAAC,GAAA,EAACoD,KAAAA,CAAGzD,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,iCAAkCT,GAAa,GAAGE,CAAK,UACtED,KAGL0D,GAAI,OAAC,CAAED,KAAAA,CAAI,CAAEzD,SAAAA,CAAQ,CAAED,UAAAA,CAAS,CAAE,GAAGE,EAAO,CAAAC,QAC1C,GAAAC,EAAAC,GAAA,EAACsD,KAAAA,CAAG3D,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,OAAQT,GAAa,GAAGE,CAAK,UAC5CD,KAGL2D,GAAI,OAAC,CAAEF,KAAAA,CAAI,CAAEzD,SAAAA,CAAQ,CAAED,UAAAA,CAAS,CAAE,GAAGE,EAAO,CAAAC,QAC1C,GAAAC,EAAAC,GAAA,EAACuD,KAAAA,CAAG5D,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,8BAA+BT,GAAa,GAAGE,CAAK,UACnED,KAGL4D,GAAI,OAAC,CAAEH,KAAAA,CAAI,CAAE1D,UAAAA,CAAS,CAAE,GAAGE,EAAO,CAAAC,QAChC,GAAAC,EAAAC,GAAA,EAACwD,KAAAA,CAAG7D,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,qBAAsBT,GAAa,GAAGE,CAAK,IAE/D4D,OAAQ,OAAC,CAAEJ,KAAAA,CAAI,CAAEzD,SAAAA,CAAQ,CAAED,UAAAA,CAAS,CAAE,GAAGE,EAAO,CAAAC,QAC9C,GAAAC,EAAAC,GAAA,EAAC0D,OAAAA,CAAK/D,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,gBAAiBT,GAAa,GAAGE,CAAK,UACvDD,KAGL+D,EAAG,OAAC,CAAEN,KAAAA,CAAI,CAAEzD,SAAAA,CAAQ,CAAED,UAAAA,CAAS,CAAE,GAAGE,EAAO,CAAAC,QACzC,GAAAC,EAAAC,GAAA,EAAC2D,IAAAA,CACChE,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,qCAAsCT,GACpDiE,IAAI,aACJC,OAAO,SACN,GAAGhE,CAAK,UAERD,KAGLkE,GAAI,OAAC,CAAET,KAAAA,CAAI,CAAEzD,SAAAA,CAAQ,CAAED,UAAAA,CAAS,CAAE,GAAGE,EAAO,CAAAC,QAC1C,GAAAC,EAAAC,GAAA,EAAC8D,KAAAA,CACCnE,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,mCAAoCT,GACjD,GAAGE,CAAK,UAERD,KAGLmE,GAAI,OAAC,CAAEV,KAAAA,CAAI,CAAEzD,SAAAA,CAAQ,CAAED,UAAAA,CAAS,CAAE,GAAGE,EAAO,CAAAC,QAC1C,GAAAC,EAAAC,GAAA,EAAC+D,KAAAA,CACCpE,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,mCAAoCT,GACjD,GAAGE,CAAK,UAERD,KAGLoE,GAAI,OAAC,CAAEX,KAAAA,CAAI,CAAEzD,SAAAA,CAAQ,CAAED,UAAAA,CAAS,CAAE,GAAGE,EAAO,CAAAC,QAC1C,GAAAC,EAAAC,GAAA,EAACgE,KAAAA,CAAGrE,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,kCAAmCT,GAAa,GAAGE,CAAK,UACvED,KAGLqE,GAAI,OAAC,CAAEZ,KAAAA,CAAI,CAAEzD,SAAAA,CAAQ,CAAED,UAAAA,CAAS,CAAE,GAAGE,EAAO,CAAAC,QAC1C,GAAAC,EAAAC,GAAA,EAACiE,KAAAA,CAAGtE,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,kCAAmCT,GAAa,GAAGE,CAAK,UACvED,KAGLsE,GAAI,OAAC,CAAEb,KAAAA,CAAI,CAAEzD,SAAAA,CAAQ,CAAED,UAAAA,CAAS,CAAE,GAAGE,EAAO,CAAAC,QAC1C,GAAAC,EAAAC,GAAA,EAACkE,KAAAA,CACCvE,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,oCAAqCT,GAClD,GAAGE,CAAK,UAERD,KAGLuE,GAAI,OAAC,CAAEd,KAAAA,CAAI,CAAEzD,SAAAA,CAAQ,CAAED,UAAAA,CAAS,CAAE,GAAGE,EAAO,CAAAC,QAC1C,GAAAC,EAAAC,GAAA,EAACmE,KAAAA,CAAGxE,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,kCAAmCT,GAAa,GAAGE,CAAK,UACvED,KAGLwE,MAAO,OAAC,CAAEf,KAAAA,CAAI,CAAEzD,SAAAA,CAAQ,CAAED,UAAAA,CAAS,CAAE,GAAGE,EAAO,CAAAC,QAC7C,GAAAC,EAAAC,GAAA,EAACG,MAAAA,CAAIR,UAAU,gCACb,GAAAI,EAAAC,GAAA,EAACoE,QAAAA,CACCzE,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,8CAA+CT,GAC5D,GAAGE,CAAK,UAERD,OAIPyE,MAAO,OAAC,CAAEhB,KAAAA,CAAI,CAAEzD,SAAAA,CAAQ,CAAED,UAAAA,CAAS,CAAE,GAAGE,EAAO,CAAAC,QAC7C,GAAAC,EAAAC,GAAA,EAACqE,QAAAA,CAAM1E,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,cAAeT,GAAa,GAAGE,CAAK,UACtDD,KAGL0E,MAAO,OAAC,CAAEjB,KAAAA,CAAI,CAAEzD,SAAAA,CAAQ,CAAED,UAAAA,CAAS,CAAE,GAAGE,EAAO,CAAAC,QAC7C,GAAAC,EAAAC,GAAA,EAACsE,QAAAA,CAAM3E,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,yBAA0BT,GAAa,GAAGE,CAAK,UACjED,KAGL2E,GAAI,OAAC,CAAElB,KAAAA,CAAI,CAAEzD,SAAAA,CAAQ,CAAED,UAAAA,CAAS,CAAE,GAAGE,EAAO,CAAAC,QAC1C,GAAAC,EAAAC,GAAA,EAACuE,KAAAA,CAAG5E,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,yBAA0BT,GAAa,GAAGE,CAAK,UAC9DD,KAGL4E,GAAI,OAAC,CAAEnB,KAAAA,CAAI,CAAEzD,SAAAA,CAAQ,CAAED,UAAAA,CAAS,CAAE,GAAGE,EAAO,CAAAC,QAC1C,GAAAC,EAAAC,GAAA,EAACwE,KAAAA,CACC7E,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,4CAA6CT,GAC1D,GAAGE,CAAK,UAERD,KAGL6E,GAAI,OAAC,CAAEpB,KAAAA,CAAI,CAAEzD,SAAAA,CAAQ,CAAED,UAAAA,CAAS,CAAE,GAAGE,EAAO,CAAAC,QAC1C,GAAAC,EAAAC,GAAA,EAACyE,KAAAA,CAAG9E,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,oBAAqBT,GAAa,GAAGE,CAAK,UACzDD,KAGL8E,WAAY,OAAC,CAAErB,KAAAA,CAAI,CAAEzD,SAAAA,CAAQ,CAAED,UAAAA,CAAS,CAAE,GAAGE,EAAO,CAAAC,QAClD,GAAAC,EAAAC,GAAA,EAAC0E,aAAAA,CACC/E,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EACT,+EACAT,GAED,GAAGE,CAAK,UAERD,KAGLL,KAAM,QACW8D,EAA+BA,KADzC,CAAEA,KAAAA,CAAI,CAAE1D,UAAAA,CAAS,CAAE,GAAGE,EAAO,CAAAC,QAGlC,CAFeuD,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAMsB,QAAQ,GAAdtB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgBuB,KAAK,CAACC,IAAI,IAAKxB,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAMsB,QAAQ,GAAdtB,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgByB,GAAG,CAACD,IAAI,EAG7D,GAAA9E,EAAAC,GAAA,EAACT,OAAAA,CAAKI,UAAWA,EAAY,GAAGE,CAAK,GAI5C,GAAAE,EAAAC,GAAA,EAACT,OAAAA,CACCI,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EACT,mDACAT,GAED,GAAGE,CAAK,EAGf,EACAkF,IAAK,QAGQ1B,KAHP,CAAEA,KAAAA,CAAI,CAAE1D,UAAAA,CAAS,CAAEC,SAAAA,CAAQ,CAAE,CAAAE,EAC7BL,EAAW,YAE4B,WAAvC,MAAO4D,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,OAAAA,CAAAA,EAAAA,EAAM2B,UAAU,GAAhB3B,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAkB1D,SAAS,GACpCF,CAAAA,EAAW4D,EAAK2B,UAAU,CAACrF,SAAS,CAACsF,OAAO,CAAC,YAAa,KAI5D,IAAI1F,EAAO,GAWX,MATE2F,CAAAA,EAAAA,EAAAA,cAAAA,EAAetF,IACfA,EAASC,KAAK,EACd,iBAAOD,EAASC,KAAK,CAACD,QAAQ,CAE9BL,EAAOK,EAASC,KAAK,CAACD,QAAQ,CACD,UAApB,OAAOA,GAChBL,CAAAA,EAAOK,CAAAA,EAIP,GAAAG,EAAAC,GAAA,EAACR,EAAAA,CAASA,CAAAA,CACRG,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,cAAeT,GAC7BJ,KAAMA,EACNE,SAAUA,WAEV,GAAAM,EAAAC,GAAA,EAACoB,EAAAA,CAAmBA,CAAAA,CAClBC,OAAQ,IAAM8D,QAAQC,GAAG,CAAC,4BAC1B9D,QAAS,IAAM6D,QAAQlD,KAAK,CAAC,uCAIrC,CACF,EAEaoD,EAAWC,CAAAA,EAAAA,EAAAA,IAAAA,EACtB,OAAC,CACC3F,UAAAA,CAAS,CACT4F,QAAAA,CAAO,CACP3F,SAAAA,CAAQ,CACR4F,qBAAAA,CAAoB,CACpBC,oBAAAA,CAAmB,CACnBC,cAAAA,CAAa,CACbC,wBAAyBC,EAAgC,EAAI,CAC7D,GAAG/F,EACW,CAAAC,EAER+F,EACJ,iBAAOjG,GAAyBgG,EAC5BD,SAzVuBG,CAAY,EAC3C,GAAI,CAACA,GAAQ,iBAAOA,EAClB,OAAOA,EAGT,IAAIC,EAASD,EAKPE,EAAYD,EAAOE,KAAK,CADL,oBAEzB,GAAID,EAAW,CAEb,IAAME,EAAaH,EAAOI,WAAW,CAACH,CAAS,CAAC,EAAE,EAClDD,EAASA,EAAOK,SAAS,CAAC,EAAGF,EAC/B,CA2EA,GAvEkBH,EAAOE,KAAK,CADV,oBAMdI,CAFmBN,EAAOE,KAAK,CAAC,UAAY,EAAE,EAAEK,MAAM,CAEtC,GAAM,GACxBP,CAAAA,EAAS,GAAUQ,MAAA,CAAPR,EAAO,OAMHA,EAAOE,KAAK,CADV,kBAMhBO,CAFqBT,EAAOE,KAAK,CAAC,QAAU,EAAE,EAAEK,MAAM,CAEpC,GAAM,GAC1BP,CAAAA,EAAS,GAAUQ,MAAA,CAAPR,EAAO,OAMKA,EAAOE,KAAK,CADV,kBAiBxBQ,EAb2BC,KAAK,CAAC,IAAIC,MAAM,CAAC,CAACC,EAAKC,EAAMC,KAC1D,GAAID,MAAAA,EAAc,CAEhB,IAAME,EAAWhB,CAAM,CAACe,EAAQ,EAAE,CAC5BE,EAAWjB,CAAM,CAACe,EAAQ,EAAE,CAClC,GAAIC,MAAAA,GAAoBC,MAAAA,EACtB,OAAOJ,EAAM,CAEjB,CACA,OAAOA,CACT,EAAG,GAGmB,GAAM,GAC1Bb,CAAAA,EAAS,GAAUQ,MAAA,CAAPR,EAAO,MAMOA,EAAOE,KAAK,CADV,iBAiB1BgB,EAb6BP,KAAK,CAAC,IAAIC,MAAM,CAAC,CAACC,EAAKC,EAAMC,KAC5D,GAAID,MAAAA,EAAc,CAEhB,IAAME,EAAWhB,CAAM,CAACe,EAAQ,EAAE,CAC5BE,EAAWjB,CAAM,CAACe,EAAQ,EAAE,CAClC,GAAIC,MAAAA,GAAoBC,MAAAA,EACtB,OAAOJ,EAAM,CAEjB,CACA,OAAOA,CACT,EAAG,GAGqB,GAAM,GAC5Bb,CAAAA,EAAS,GAAUQ,MAAA,CAAPR,EAAO,MAMCA,EAAOE,KAAK,CADV,kBAIEF,EAAOmB,QAAQ,CAAC,OAEf,CAACnB,EAAOE,KAAK,CADf,oBACqC,EAAE,EAAEK,MAAM,CAOpE,CANwBP,EAAOE,KAAK,CAAC,SAAW,EAAE,EAAEK,MAAM,CAIP,GAAM,GAE7B,CAE9B,IAAIa,EAAsB,EAC1B,IAAK,IAAIC,EAAI,EAAGA,EAAIrB,EAAOO,MAAM,CAAEc,IACjC,GAAIrB,MAAAA,CAAM,CAACqB,EAAE,CAAU,CAErB,IAAMC,EAAgBtB,QAAAA,EAAOK,SAAS,CAACgB,EAAGA,EAAI,GACxCE,EACJF,EAAI,GAAKrB,QAAAA,EAAOK,SAAS,CAACgB,EAAI,EAAGA,EAAI,GACjCG,EAAcH,EAAI,GAAKrB,QAAAA,EAAOK,SAAS,CAACgB,EAAI,EAAGA,EAAI,EAErD,EAAEC,CAAAA,GAAiBC,GAAkBC,CAAAA,GACvCJ,GAEJ,CAIEA,EAAsB,GAAM,GAC9BpB,CAAAA,EAAS,GAAUQ,MAAA,CAAPR,EAAO,KAEvB,CAeF,OAV2BA,EAAOE,KAAK,CADV,kBAMvBuB,CAFgBzB,EAAOE,KAAK,CAAC,QAAU,EAAE,EAAEK,MAAM,CAEpC,GAAM,GACrBP,CAAAA,EAAS,GAAUQ,MAAA,CAAPR,EAAO,OAIhBA,CACT,EA+MkCnG,GACxBA,EAEN,MACE,GAAAG,EAAAC,GAAA,EAACG,MAAAA,CACCR,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EACT,yDACAT,GAED,GAAGE,CAAK,UAET,GAAAE,EAAAC,GAAA,EAACgD,EAAAA,CACCwC,qBAAsBA,MAAAA,EAAAA,EAAwB,CAAC,IAAI,CACnDC,oBAAqBA,MAAAA,EAAAA,EAAuB,CAAC,IAAI,CACjDtC,WAAYA,EACZuC,cAAeA,EACf+B,cAAe,CAACC,EAAAA,CAAWA,CAAC,CAC5BC,cAAe,CAACC,EAAAA,CAASA,CAAEC,EAAAA,CAAUA,CAAC,CACrC,GAAGtC,CAAO,UAEVM,KAIT,EACA,CAACiC,EAAWC,IAAcD,EAAUlI,QAAQ,GAAKmI,EAAUnI,QAAQ,CAGrEyF,CAAAA,EAAS2C,WAAW,CAAG,yGCzXhB,IAAMC,EAAU,OAAC,CAAEtI,UAAAA,CAAS,CAAEuI,KAAAA,CAAI,CAAE,GAAGrI,EAAqB,CAAAC,QACjE,GAAAqI,EAAAnI,GAAA,EAACG,MAAAA,CACCR,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EACT,qDACA8H,SAAAA,EAAkB,uCAAyC,4CAC3D,sBACAvI,GAED,GAAGE,CAAK,IAMAuI,EAAiB,OAAC,CAC7BxI,SAAAA,CAAQ,CACRD,UAAAA,CAAS,CACT,GAAGE,EACiB,CAAAC,QACpB,GAAAqI,EAAAnI,GAAA,EAACG,MAAAA,CACCR,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EACT,8EACA,+FACA,6EACAT,GAED,GAAGE,CAAK,UAET,GAAAsI,EAAAnI,GAAA,EAACG,MAAAA,CAAIR,UAAU,wBAAgBC,iCC3B5B,IAAMyI,EAAU,OAAC,CAAE1I,UAAAA,CAAS,CAAEC,SAAAA,CAAQ,CAAE,GAAGC,EAAqB,CAAAC,QACrE,GAAAqI,EAAAnI,GAAA,EAACG,MAAAA,CAAIR,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,0BAA2BT,GAAa,GAAGE,CAAK,UAChED,KASQ0I,EAAS,OAAC,CACrBC,QAAAA,CAAO,CACP3I,SAAAA,CAAQ,CACR4I,MAAAA,CAAK,CACL7I,UAAAA,CAAS,CACT6C,QAAAA,EAAU,OAAO,CACjBD,KAAAA,EAAO,IAAI,CACX,GAAG1C,EACS,CAAAC,EACN2I,EACJ,GAAAN,EAAA9H,IAAA,EAACgC,EAAAA,CAAMA,CAAAA,CACL1C,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EACT,2DACAT,GAEF4C,KAAMA,EACNmG,KAAK,SACLlG,QAASA,EACR,GAAG3C,CAAK,WAERD,EACD,GAAAuI,EAAAnI,GAAA,EAAC0D,OAAAA,CAAK/D,UAAU,mBAAW6I,GAASD,cAIxC,EAEI,GAAAJ,EAAAnI,GAAA,EAAC2I,EAAAA,EAAeA,CAAAA,UACd,GAAAR,EAAA9H,IAAA,EAACuI,EAAAA,CAAOA,CAAAA,WACN,GAAAT,EAAAnI,GAAA,EAAC6I,EAAAA,EAAcA,CAAAA,CAACC,QAAO,YAAEL,IACzB,GAAAN,EAAAnI,GAAA,EAAC+I,EAAAA,EAAcA,CAAAA,UACb,GAAAZ,EAAAnI,GAAA,EAACgJ,IAAAA,UAAGT,WAOPE,CACT,uEC3CA,IAAMQ,EAAmB3J,CAAAA,EAAAA,EAAAA,aAAAA,EAA4C,MAE/D4J,EAAe,KACnB,IAAMC,EAAUxH,CAAAA,EAAAA,EAAAA,UAAAA,EAAWsH,GAC3B,GAAI,CAACE,EACH,MAAM,MAAU,sDAElB,OAAOA,CACT,EAYaC,EAAY9D,CAAAA,EAAAA,EAAAA,IAAAA,EACvB,OAAC,CACC3F,UAAAA,CAAS,CACT0J,YAAAA,EAAc,EAAK,CACnBC,KAAAA,CAAI,CACJC,YAAAA,EAAc,EAAK,CACnBC,aAAAA,CAAY,CACZC,SAAUC,CAAY,CACtB9J,SAAAA,CAAQ,CACR,GAAGC,EACY,CAAAC,EACT,CAAC6J,EAAQC,EAAU,CAAGC,CAAAA,EAAAA,EAAAA,CAAAA,EAAqB,CAC/CC,KAAMR,EACNS,YAAaR,EACbS,SAAUR,CACZ,GACM,CAACC,EAAUQ,EAAY,CAAGJ,CAAAA,EAAAA,EAAAA,CAAAA,EAAqB,CACnDC,KAAMJ,EACNK,YAAa,CACf,GAEM,CAACG,EAAkBC,EAAoB,CAAGzI,CAAAA,EAAAA,EAAAA,QAAAA,EAAS,IACnD,CAAC0I,EAAWC,EAAa,CAAG3I,CAAAA,EAAAA,EAAAA,QAAAA,EAAwB,YAG1D4I,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACJjB,EACgB,OAAde,GACFC,EAAaE,KAAKC,GAAG,IAEA,OAAdJ,IACTH,EAAYQ,KAAKC,KAAK,CAAC,CAACH,KAAKC,GAAG,GAAKJ,CAAAA,EAAa,MAClDC,EAAa,MAEjB,EAAG,CAAChB,EAAae,EAAWH,EAAY,EAGxCK,CAAAA,EAAAA,EAAAA,SAAAA,EAAU,KACR,GAAIjB,GAAe,CAACM,EAClBC,EAAU,SACL,GAAI,CAACP,GAAeM,GAAU,CAACJ,GAAe,CAACW,EAAkB,CAEtE,IAAMS,EAAQ3I,WAAW,KACvB4H,EAAU,IACVO,EAAoB,GACtB,EA/CiB,KAgDjB,MAAO,IAAMS,aAAaD,EAC5B,CACF,EAAG,CAACtB,EAAaM,EAAQJ,EAAaK,EAAWM,EAAiB,EAOhE,GAAA/B,EAAAnI,GAAA,EAACiJ,EAAiBhJ,QAAQ,EACxBC,MAAO,CAAEmJ,YAAAA,EAAaM,OAAAA,EAAQC,UAAAA,EAAWH,SAAAA,CAAS,WAElD,GAAAtB,EAAAnI,GAAA,EAAC6K,EAAAA,EAAWA,CAAAA,CACVlL,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,iBAAkBT,GAChC6J,aAVmB,IACvBI,EAAUkB,EACZ,EASMxB,KAAMK,EACL,GAAG9J,CAAK,UAERD,KAIT,GASWmL,EAAmBzF,CAAAA,EAAAA,EAAAA,IAAAA,EAC9B,OAAC,CACC3F,UAAAA,CAAS,CACTqL,MAAAA,EAAQ,WAAW,CACnBpL,SAAAA,CAAQ,CACR,GAAGC,EACmB,CAAAC,EAChB,CAAEuJ,YAAAA,CAAW,CAAEM,OAAAA,CAAM,CAAEF,SAAAA,CAAQ,CAAE,CAAGP,IAE1C,MACE,GAAAf,EAAAnI,GAAA,EAACiL,EAAAA,EAAkBA,CAAAA,CACjBtL,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EACT,wDACAT,GAED,GAAGE,CAAK,UAERD,MAAAA,EAAAA,EACC,GAAAuI,EAAA9H,IAAA,EAAA8H,EAAA+C,QAAA,YACE,GAAA/C,EAAAnI,GAAA,EAACmL,EAAAA,CAASA,CAAAA,CAACxL,UAAU,WACpB0J,GAAeI,IAAAA,EACd,GAAAtB,EAAAnI,GAAA,EAACgJ,IAAAA,UAAE,gBAEH,GAAAb,EAAA9H,IAAA,EAAC2I,IAAAA,WAAE,eAAaS,EAAS,cAE3B,GAAAtB,EAAAnI,GAAA,EAACoL,EAAAA,CAAeA,CAAAA,CACdzL,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EACT,oDACAuJ,EAAS,aAAe,kBAOtC,GASW0B,EAAmB/F,CAAAA,EAAAA,EAAAA,IAAAA,EAC9B,OAAC,CAAE3F,UAAAA,CAAS,CAAEC,SAAAA,CAAQ,CAAE,GAAGC,EAA8B,CAAAC,QACvD,GAAAqI,EAAAnI,GAAA,EAACsL,EAAAA,EAAkBA,CAAAA,CACjB3L,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EACT,eACA,gNACAT,GAED,GAAGE,CAAK,UAET,GAAAsI,EAAAnI,GAAA,EAACqF,EAAAA,CAAQA,CAAAA,CAAC1F,UAAU,sBAAcC,OAKxCwJ,CAAAA,EAAUpB,WAAW,CAAG,YACxB+C,EAAiB/C,WAAW,CAAG,mBAC/BqD,EAAiBrD,WAAW,CAAG,kCCtKxB,IAAMuD,EAAU,OAAC,CAAE5L,UAAAA,CAAS,CAAE,GAAGE,EAAqB,CAAAC,QAE3D,GAAAqI,EAAAnI,GAAA,EAAC6K,EAAAA,EAAWA,CAAAA,CACVlL,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,sCAAuCT,GACpD,GAAGE,CAAK,IAQA2L,EAAiB,OAAC,CAC7B7L,UAAAA,CAAS,CACT8L,MAAAA,CAAK,CACL7L,SAAAA,CAAQ,CACR,GAAGC,EACiB,CAAAC,QACpB,GAAAqI,EAAAnI,GAAA,EAACiL,EAAAA,EAAkBA,CAAAA,CAACtL,UAAU,0BAA2B,GAAGE,CAAK,UAC9DD,MAAAA,EAAAA,EACC,GAAAuI,EAAA9H,IAAA,EAAA8H,EAAA+C,QAAA,YACE,GAAA/C,EAAA9H,IAAA,EAAC2I,IAAAA,CAAErJ,UAAU,wBAAc,QAAM8L,EAAM,cACvC,GAAAtD,EAAAnI,GAAA,EAACoL,EAAAA,CAAeA,CAAAA,CAACzL,UAAU,kBAQtB+L,EAAiB,OAAC,CAC7B/L,UAAAA,CAAS,CACT,GAAGE,EACiB,CAAAC,QACpB,GAAAqI,EAAAnI,GAAA,EAACsL,EAAAA,EAAkBA,CAAAA,CACjB3L,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EACT,iCACA,wLACAT,GAED,GAAGE,CAAK,IAMA8L,EAAS,OAAC,CAAEC,KAAAA,CAAI,CAAEZ,MAAAA,CAAK,CAAEpL,SAAAA,CAAQ,CAAE,GAAGC,EAAoB,CAAAC,QACrE,GAAAqI,EAAAnI,GAAA,EAAC2D,IAAAA,CACChE,UAAU,0BACViM,KAAMA,EACNhI,IAAI,aACJC,OAAO,SACN,GAAGhE,CAAK,UAERD,MAAAA,EAAAA,EACC,GAAAuI,EAAA9H,IAAA,EAAA8H,EAAA+C,QAAA,YACE,GAAA/C,EAAAnI,GAAA,EAAC6L,EAAAA,CAAQA,CAAAA,CAAClM,UAAU,YACpB,GAAAwI,EAAAnI,GAAA,EAAC0D,OAAAA,CAAK/D,UAAU,6BAAqBqL,sGCnD7C,IAAMc,EAAe,CACnBC,QAAS,CACPC,KAAMC,EAAAA,CAAMA,CACZzD,MAAO,UACP7I,UAAW,uBACb,EACAuM,YAAa,CACXF,KAAMG,EAAAA,CAAOA,CACb3D,MAAO,cACP7I,UAAW,4BACb,EACAyM,UAAW,CACTJ,KAAMK,EAAAA,CAAYA,CAClB7D,MAAO,YACP7I,UAAW,gBACb,EACA2M,UAAW,CACTN,KAAMO,EAAAA,CAAOA,CACb/D,MAAO,YACP7I,UAAW,cACb,CACF,EAEM6M,EAAiB,CACrBC,KAAM,CACJjE,MAAO,OACP7I,UAAW,8CACb,EACA+M,OAAQ,CACNlE,MAAO,SACP7I,UAAW,uDACb,EACAgN,IAAK,CACHnE,MAAO,MACP7I,UAAW,iDACb,CACF,EAEaiN,EAAW,OAAC,CACvBC,MAAAA,CAAK,CACLC,aAAAA,EAAe,EAAK,CACpBC,MAAAA,CAAK,CACLpN,UAAAA,CAAS,CACT,GAAGE,EACW,CAAAC,EAMd,GAJqB,UAAjB,OAAO+M,GACTA,CAAAA,EAAQG,KAAKC,KAAK,CAACJ,EAAAA,EAGjB,CAACA,GAASA,IAAAA,EAAMvG,MAAM,CACxB,OAAO,KAKT,IAAM4G,EAAiBL,EAAMM,MAAM,CAAC,GAAOC,cAAAA,EAAEC,MAAM,EAAkB/G,MAAM,CACrEgH,EAAaT,EAAMvG,MAAM,CAE/B,MACE,GAAA6B,EAAA9H,IAAA,EAACF,MAAAA,CACCR,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EACT,iBACAiJ,oBATc0D,GASC,aACfpN,GAED,GAAGE,CAAK,WAERgN,EAAMU,GAAG,CAAC,CAACC,EAAM1G,KAChB,IAAM2G,EAAa3B,CAAY,CAAC0B,EAAKH,MAAM,CAAC,CAACrB,IAAI,CAC3C0B,EAAc5B,CAAY,CAAC0B,EAAKH,MAAM,CAAC,CAAC1N,SAAS,CACjC6M,CAAc,CAACgB,EAAKG,QAAQ,CAAC,CAAChO,SAAS,CAC7D,IAAMiO,EAAmBJ,gBAAAA,EAAKH,MAAM,EAClCvG,IAAU+F,EAAMgB,SAAS,CAACT,GAAKA,gBAAAA,EAAEC,MAAM,EAEzC,MACE,GAAAlF,EAAA9H,IAAA,EAACF,MAAAA,CAECR,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EACT,gCACAoN,cAAAA,EAAKH,MAAM,EAAoB,wBAGjC,GAAAlF,EAAAnI,GAAA,EAACG,MAAAA,CAAIR,UAAU,gCACb,GAAAwI,EAAAnI,GAAA,EAACyN,EAAAA,CAAW9N,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EAAG,WAAYsN,OAGxC,GAAAvF,EAAA9H,IAAA,EAACF,MAAAA,CAAIR,UAAU,2BACb,GAAAwI,EAAAnI,GAAA,EAAC0D,OAAAA,CACC/D,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EACT,UACAoN,cAAAA,EAAKH,MAAM,EAAoB,qCAC/BG,cAAAA,EAAKH,MAAM,EAAoB,qCAC/BG,gBAAAA,EAAKH,MAAM,EAAsBO,GAAoB,wBAGtDJ,EAAKM,OAAO,GAGdhB,GAAgBU,SAAAA,EAAKG,QAAQ,EAC5B,GAAAxF,EAAAnI,GAAA,EAAC0D,OAAAA,CAAK/D,UAAU,qCAA4B,aAvB3C6N,EAAKO,EAAE,CA4BlB,GAGCT,EAAa,GACZ,GAAAnF,EAAA9H,IAAA,EAACF,MAAAA,CAAIR,UAAU,uEACb,GAAAwI,EAAAnI,GAAA,EAACG,MAAAA,CAAIR,UAAU,gEACb,GAAAwI,EAAAnI,GAAA,EAACG,MAAAA,CACCR,UAAU,gDACVsB,MAAO,CACL+M,MAAO,GAAuCzH,MAAA,CAApC2G,EAAkBI,EAAc,IAAI,IAChD,MAGJ,GAAAnF,EAAA9H,IAAA,EAACqD,OAAAA,CAAK/D,UAAU,8BACbuN,EAAe,IAAEI,QAKvBW,iBArEYlB,GAsEX,GAAA5E,EAAA9H,IAAA,EAACF,MAAAA,CAAIR,UAAU,8DACb,GAAAwI,EAAAnI,GAAA,EAACuM,EAAAA,CAAOA,CAAAA,CAAC5M,UAAU,WACnB,GAAAwI,EAAAnI,GAAA,EAAC0D,OAAAA,UAAK,8BAKhB,ECrHO,SAASwK,EAAgBpO,CAWT,KAXS,CAC9BqO,SAAAA,CAAQ,CACRd,OAAAA,EAAS,MAAM,CACf1N,UAAAA,CAAS,CACTyO,YAAAA,EAAc,EAAI,CAClBC,aAAAA,CAAY,CACZC,gBAAAA,CAAe,CACfC,yBAAAA,CAAwB,CACxBC,aAAAA,CAAY,CACZC,YAAAA,EAAc,EAAI,CAClBC,OAAAA,CAAM,CACe,CAXS5O,EAYxB,CAAE6O,MAAAA,CAAK,CAAE,CAAGC,CAAAA,EAAAA,EAAAA,EAAAA,IAElB,MACE,GAAAzG,EAAAnI,GAAA,EAAAmI,EAAA+C,QAAA,WACGiD,MAAAA,EAAAA,KAAAA,EAAAA,EAAUZ,GAAG,CAAC,CAACsB,EAASC,KAEvB,IAAMC,EAAkBF,EAAQG,QAAQ,CAGxC,OAFuCb,EAAS7H,MAAM,CAGpD,GAAA6B,EAAAnI,GAAA,EAACiI,EAAOA,CACNtI,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EACTyO,cAAAA,EAAQhM,IAAI,EACV6L,CAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAQO,yBAAyB,EAAGP,MAAAA,EAAAA,KAAAA,EAAAA,EAAQO,yBAAyB,CAAG,IAE1EC,IAViBJ,GAWfJ,CAAAA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAQS,qBAAqB,EAAGT,MAAAA,EAAAA,KAAAA,EAAAA,EAAQS,qBAAqB,CAAG,SAC/DxP,GAELuI,KAAM2G,EAAQhM,IAAI,UAGlB,GAAAsF,EAAA9H,IAAA,EAAC+H,EAAcA,WACZyG,EAAQO,KAAK,CAAC7B,GAAG,CAAC,CAAC8B,EAAMjI,SAgEpBiI,EAAkDA,EAqChDA,EApGN,GAAIA,eAAAA,EAAK3G,IAAI,CACX,OAAO,KAGT,GAAI2G,SAAAA,EAAK3G,IAAI,CACX,MACE,GAAAP,EAAAnI,GAAA,EAACG,MAAAA,UACC,GAAAgI,EAAAnI,GAAA,EAACqF,EAAAA,CAAQA,CAAAA,CAAC1F,UAAU,mCACjB0P,EAAKvJ,IAAI,IAFJ,GAAiBsB,MAAAA,CAAdyH,EAAQd,EAAE,CAAC,KAAKxH,MAAA,CAAFa,IAQ/B,GAAIiI,4BAAAA,EAAK3G,IAAI,EAAkC4F,EAAiB,CAC9D,IAAMgB,EAASD,EAAKE,UAAU,CAE9B,OAAQF,EAAKtC,KAAK,EAChB,IAAK,kBACH,MACE,GAAA5E,EAAAnI,GAAA,EAACG,MAAAA,UAAiB,mCAARmP,EAEd,KAAK,kBACH,MACE,GAAAnH,EAAA9H,IAAA,EAACF,MAAAA,WACGkP,EAAKG,KAAK,CAAyBX,OAAO,CAC5C,GAAA1G,EAAA9H,IAAA,EAACF,MAAAA,WACC,GAAAgI,EAAAnI,GAAA,EAACyI,SAAAA,CACCnG,QAAS,IACPgM,EAAgB,CACdmB,KAAM,qBACNF,WAAYD,EACZI,OAAQ,gBACV,YAEH,QAGD,GAAAvH,EAAAnI,GAAA,EAACyI,SAAAA,CACCnG,QAAS,IACPgM,EAAgB,CACdmB,KAAM,qBACNF,WAAYD,EACZI,OAAQ,YACV,YAEH,YAtBKJ,EA4Bd,KAAK,mBACH,MACE,GAAAnH,EAAA9H,IAAA,EAACF,MAAAA,WAAiB,sBACIkP,EAAKK,MAAM,GADvBJ,EAId,KAAK,eACH,MAAO,GAAAnH,EAAA9H,IAAA,EAACF,MAAAA,WAAiB,UAAQkP,EAAKM,SAAS,GAA9BL,EACrB,CACF,CAEA,GAAID,CAAAA,OAAAA,CAAAA,EAAAA,EAAK3G,IAAI,GAAT2G,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAWO,WAAW,MAAO,mBAAqBP,CAAAA,OAAAA,CAAAA,EAAAA,EAAK3G,IAAI,GAAT2G,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAWO,WAAW,MAAO,iBAAkB,CAEnG,IAAMF,EAASG,EAAgBH,MAAM,CAQrC,GAAI,CAACA,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAQ3J,MAAM,EACjB,OAAO,KAET,IAAMgH,EAAqF8C,EAAgB9C,KAAK,CAChH,MACE,GAAA5E,EAAAnI,GAAA,EAAC4M,EAAQA,CAACC,MAAO6C,EAAO3J,MAAM,CAAE+G,aAAc,GAAMC,MAAOA,GAE/D,CAEA,GACE,CAACsC,EAAK3G,IAAI,CAACoH,UAAU,CAAC,UAAYT,iBAAAA,EAAK3G,IAAI,GAC3C6F,GACAC,EACA,CAEA,IAAMc,EAASS,EAAgBR,UAAU,CACzC,MACE,GAAApH,EAAAnI,GAAA,EAACuO,EAAAA,CAECwB,gBALoBV,EAMpBC,OAAQA,EACRd,aAAcA,GAHTc,EAMX,OAEA,SAAID,EAAK3G,IAAI,EACX,QAAI2G,CAAAA,EAAAA,EAAKW,SAAS,GAAdX,KAAAA,IAAAA,EAAAA,KAAAA,EAAAA,EAAgBS,UAAU,CAAC,WAE3B,GAAA3H,EAAAnI,GAAA,EAACiQ,EAAAA,OAAKA,CAAAA,CAEJC,IAAKb,EAAKc,GAAG,CACbnC,MAAO,IACPoC,OAAQ,IACRC,IAAK,mBAJA,GAAiBjJ,MAAAA,CAAdyH,EAAQd,EAAE,CAAC,KAAKxH,MAAA,CAAFa,IAU1BiI,eAAAA,EAAK3G,IAAI,CAET,GAAAP,EAAA9H,IAAA,EAACkL,EAAOA,WACN,GAAApD,EAAAnI,GAAA,EAACwL,EAAcA,CACbC,MAAOoD,EAAQO,KAAK,CAACjC,MAAM,CACzB,GAAUkC,eAAAA,EAAK3G,IAAI,EACnBpC,MAAM,GAEV,GAAA6B,EAAAnI,GAAA,EAAC0L,EAAcA,UACZmD,EAAQO,KAAK,CAAC7B,GAAG,CAAC,CAAC8B,EAAMjI,KACxB,GACO,eADCiI,EAAK3G,IAAI,CAEb,MACE,GAAAP,EAAAnI,GAAA,EAAC2L,EAAMA,CAELC,KAAMyD,EAAKc,GAAG,CACdnF,MAAOqE,EAAKrE,KAAK,EAFZ,GAAiB5D,MAAAA,CAAdyH,EAAQd,EAAE,CAAC,KAAKxH,MAAA,CAAFa,GAMhC,IAZmB,GAAcb,MAAA,CAAXsI,EAAQd,EAAE,KANtB,GAAiB3G,MAAAA,CAAdyH,EAAQd,EAAE,CAAC,KAAKxH,MAAA,CAAFa,IAwB/BiI,cAAAA,EAAK3G,IAAI,CAET,GAAAP,EAAA9H,IAAA,EAAC+I,EAASA,CAERzJ,UAAU,SACV0J,YAAagE,cAAAA,YAEb,GAAAlF,EAAAnI,GAAA,EAAC+K,EAAgBA,CAAAA,GACjB,GAAA5C,EAAAnI,GAAA,EAACqL,EAAgBA,UAAEgE,EAAKvJ,IAAI,KALvB,GAAiBsB,MAAAA,CAAdyH,EAAQd,EAAE,CAAC,KAAKxH,MAAA,CAAFa,IAUrB,IACT,GAECgH,GAAeS,cAAAA,EAAQhM,IAAI,EAC1B,GAAAsF,EAAA9H,IAAA,EAACgI,EAAOA,CAAC1I,UAAU,iBAChB0O,GACC,GAAAlG,EAAAnI,GAAA,EAACsI,EAAMA,CACLhG,QAAS,IAAM+L,IACf7F,MAAM,QACN8H,SAAU,CAAC7B,WAEX,GAAAtG,EAAAnI,GAAA,EAACuQ,EAAAA,CAAcA,CAAAA,CAAC5Q,UAAU,aAG9B,GAAAwI,EAAAnI,GAAA,EAACsI,EAAMA,CACLhG,QAAS,KACPT,UAAUC,SAAS,CAACC,SAAS,CAC3B8M,EAAQO,KAAK,CAAC7B,GAAG,CAAC,GAAe8B,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAMvJ,IAAI,GAAI,IAAI0K,IAAI,CAAC,OAE1D7B,EAAM,CACJ3D,MAAO,iBACPyF,YAAa,2CACf,EACF,EACAjI,MAAM,gBAEN,GAAAL,EAAAnI,GAAA,EAACoC,EAAAA,CAAQA,CAAAA,CAACzC,UAAU,aAErBoP,CAAAA,MAAAA,EAAAA,KAAAA,EAAAA,EAAiB2B,WAAW,GAC3B,GAAAvI,EAAA9H,IAAA,EAACsQ,QAAAA,CAAMhR,UAAU,kCACdiR,KAAKC,YAAY,CAAC,SAASC,MAAM,CAAC/B,MAAAA,EAAAA,KAAAA,EAAAA,EAAiB2B,WAAW,EAAE,oBA1LtE7B,EAAQd,EAAE,CAkMrB,IAGN,yHCnQA,IAAMlD,EAAckG,EAAAA,EAAyB,CAEvC9F,EAAqB8F,EAAAA,EAAuC,CAE5DzF,EAAqByF,EAAAA,EAAuC,gLCDlE,IAAMC,EAAOC,EAAAA,EAAkB,CAEzBC,EAAWC,EAAAA,UAAgB,CAG/B,CAAArR,EAA0BsR,QAAzB,CAAEzR,UAAAA,CAAS,CAAE,GAAGE,EAAO,CAAAC,QACxB,GAAAC,EAAAC,GAAA,EAACiR,EAAAA,EAAkB,EACjBG,IAAKA,EACLzR,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EACT,6FACAT,GAED,GAAGE,CAAK,IAGbqR,CAAAA,EAASlJ,WAAW,CAAGiJ,EAAAA,EAAkB,CAACjJ,WAAW,CAErD,IAAMqJ,EAAcF,EAAAA,UAAgB,CAGlC,CAAArR,EAA0BsR,QAAzB,CAAEzR,UAAAA,CAAS,CAAE,GAAGE,EAAO,CAAAC,QACxB,GAAAC,EAAAC,GAAA,EAACiR,EAAAA,EAAqB,EACpBG,IAAKA,EACLzR,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EACT,sYACAT,GAED,GAAGE,CAAK,IAGbwR,CAAAA,EAAYrJ,WAAW,CAAGiJ,EAAAA,EAAqB,CAACjJ,WAAW,CAE3D,IAAMsJ,EAAcH,EAAAA,UAAgB,CAGlC,CAAArR,EAA0BsR,QAAzB,CAAEzR,UAAAA,CAAS,CAAE,GAAGE,EAAO,CAAAC,QACxB,GAAAC,EAAAC,GAAA,EAACiR,EAAAA,EAAqB,EACpBG,IAAKA,EACLzR,UAAWS,CAAAA,EAAAA,EAAAA,EAAAA,EACT,kIACAT,GAED,GAAGE,CAAK,IAGbyR,CAAAA,EAAYtJ,WAAW,CAAGiJ,EAAAA,EAAqB,CAACjJ,WAAW","sources":["webpack://_N_E/./components/ai-elements/code-block.tsx","webpack://_N_E/./components/ai-elements/conversation.tsx","webpack://_N_E/./components/ai-elements/response.tsx","webpack://_N_E/./components/ai-elements/message.tsx","webpack://_N_E/./components/ai-elements/actions.tsx","webpack://_N_E/./components/ai-elements/reasoning.tsx","webpack://_N_E/./components/ai-elements/source.tsx","webpack://_N_E/./components/ai-elements/todo-list.tsx","webpack://_N_E/./components/message-renderer.tsx","webpack://_N_E/./components/ui/collapsible.tsx","webpack://_N_E/./components/ui/tabs.tsx"],"sourcesContent":["'use client';\n\nimport { Button } from '@/components/ui/button';\nimport { cn } from '@/lib/utils';\nimport { CheckIcon, CopyIcon } from 'lucide-react';\nimport type { ComponentProps, HTMLAttributes, ReactNode } from 'react';\nimport { createContext, useContext, useState } from 'react';\nimport { Prism as SyntaxHighlighter } from 'react-syntax-highlighter';\nimport {\n oneDark,\n oneLight,\n} from 'react-syntax-highlighter/dist/esm/styles/prism';\n\ntype CodeBlockContextType = {\n code: string;\n};\n\nconst CodeBlockContext = createContext<CodeBlockContextType>({\n code: '',\n});\n\nexport type CodeBlockProps = HTMLAttributes<HTMLDivElement> & {\n code: string;\n language: string;\n showLineNumbers?: boolean;\n children?: ReactNode;\n};\n\nexport const CodeBlock = ({\n code,\n language,\n showLineNumbers = false,\n className,\n children,\n ...props\n}: CodeBlockProps) => (\n <CodeBlockContext.Provider value={{ code }}>\n <div\n className={cn(\n 'relative w-full overflow-hidden rounded-md border bg-background text-foreground',\n className\n )}\n {...props}\n >\n <div className=\"relative\">\n <SyntaxHighlighter\n className=\"overflow-hidden dark:hidden\"\n codeTagProps={{\n className: 'font-mono text-sm',\n }}\n customStyle={{\n margin: 0,\n padding: '1rem',\n fontSize: '0.875rem',\n background: 'hsl(var(--background))',\n color: 'hsl(var(--foreground))',\n }}\n language={language}\n lineNumberStyle={{\n color: 'hsl(var(--muted-foreground))',\n paddingRight: '1rem',\n minWidth: '2.5rem',\n }}\n showLineNumbers={showLineNumbers}\n style={oneLight}\n >\n {code}\n </SyntaxHighlighter>\n <SyntaxHighlighter\n className=\"hidden overflow-hidden dark:block\"\n codeTagProps={{\n className: 'font-mono text-sm',\n }}\n customStyle={{\n margin: 0,\n padding: '1rem',\n fontSize: '0.875rem',\n background: 'hsl(var(--background))',\n color: 'hsl(var(--foreground))',\n }}\n language={language}\n lineNumberStyle={{\n color: 'hsl(var(--muted-foreground))',\n paddingRight: '1rem',\n minWidth: '2.5rem',\n }}\n showLineNumbers={showLineNumbers}\n style={oneDark}\n >\n {code}\n </SyntaxHighlighter>\n {children && (\n <div className=\"absolute top-2 right-2 flex items-center gap-2\">\n {children}\n </div>\n )}\n </div>\n </div>\n </CodeBlockContext.Provider>\n);\n\nexport type CodeBlockCopyButtonProps = ComponentProps<typeof Button> & {\n onCopy?: () => void;\n onError?: (error: Error) => void;\n timeout?: number;\n};\n\nexport const CodeBlockCopyButton = ({\n onCopy,\n onError,\n timeout = 2000,\n children,\n className,\n ...props\n}: CodeBlockCopyButtonProps) => {\n const [isCopied, setIsCopied] = useState(false);\n const { code } = useContext(CodeBlockContext);\n\n const copyToClipboard = async () => {\n if (typeof window === 'undefined' || !navigator.clipboard.writeText) {\n onError?.(new Error('Clipboard API not available'));\n return;\n }\n\n try {\n await navigator.clipboard.writeText(code);\n setIsCopied(true);\n onCopy?.();\n setTimeout(() => setIsCopied(false), timeout);\n } catch (error) {\n onError?.(error as Error);\n }\n };\n\n const Icon = isCopied ? CheckIcon : CopyIcon;\n\n return (\n <Button\n className={cn('shrink-0', className)}\n onClick={copyToClipboard}\n size=\"icon\"\n variant=\"ghost\"\n {...props}\n >\n {children ?? <Icon size={14} />}\n </Button>\n );\n};\n","'use client';\n\nimport { Button } from '@/components/ui/button';\nimport { cn } from '@/lib/utils';\nimport { ArrowDownIcon } from 'lucide-react';\nimport type { ComponentProps } from 'react';\nimport { useCallback } from 'react';\nimport { StickToBottom, useStickToBottomContext } from 'use-stick-to-bottom';\n\n// @ts-ignore\nexport type ConversationProps = ComponentProps<typeof StickToBottom>;\n\n// @ts-ignore\nexport const Conversation = ({ className, ...props }: ConversationProps) => (\n// @ts-ignore\n <StickToBottom\n className={cn('relative flex-1 overflow-y-auto', className)}\n initial=\"smooth\"\n resize=\"smooth\"\n role=\"log\"\n {...props}\n />\n);\n\nexport type ConversationContentProps = ComponentProps<\n // @ts-ignore\n typeof StickToBottom.Content\n>;\n\nexport const ConversationContent = ({\n // @ts-ignore\n className,\n ...props\n}: ConversationContentProps) => (\n // @ts-ignore\n <StickToBottom.Content className={cn('p-4', className)} {...props} />\n);\n\nexport type ConversationScrollButtonProps = ComponentProps<typeof Button>;\n\nexport const ConversationScrollButton = ({\n className,\n ...props\n}: ConversationScrollButtonProps) => {\n const { isAtBottom, scrollToBottom } = useStickToBottomContext();\n\n const handleScrollToBottom = useCallback(() => {\n scrollToBottom();\n }, [scrollToBottom]);\n\n return (\n !isAtBottom && (\n <Button\n className={cn(\n 'absolute bottom-4 left-[50%] translate-x-[-50%] rounded-full',\n className\n )}\n onClick={handleScrollToBottom}\n size=\"icon\"\n type=\"button\"\n variant=\"outline\"\n {...props}\n >\n <ArrowDownIcon className=\"size-4\" />\n </Button>\n )\n );\n};\n","'use client';\n\nimport { cn } from '@/lib/utils';\nimport type { ComponentProps, HTMLAttributes } from 'react';\nimport { isValidElement, memo } from 'react';\nimport ReactMarkdown, { type Options } from 'react-markdown';\nimport rehypeKatex from 'rehype-katex';\nimport remarkGfm from 'remark-gfm';\nimport remarkMath from 'remark-math';\nimport { CodeBlock, CodeBlockCopyButton } from './code-block';\nimport 'katex/dist/katex.min.css';\nimport hardenReactMarkdown from 'harden-react-markdown';\n\n/**\n * Parses markdown text and removes incomplete tokens to prevent partial rendering\n * of links, images, bold, and italic formatting during streaming.\n */\nfunction parseIncompleteMarkdown(text: string): string {\n if (!text || typeof text !== 'string') {\n return text;\n }\n\n let result = text;\n\n // Handle incomplete links and images\n // Pattern: [...] or ![...] where the closing ] is missing\n const linkImagePattern = /(!?\\[)([^\\]]*?)$/;\n const linkMatch = result.match(linkImagePattern);\n if (linkMatch) {\n // If we have an unterminated [ or ![, remove it and everything after\n const startIndex = result.lastIndexOf(linkMatch[1]);\n result = result.substring(0, startIndex);\n }\n\n // Handle incomplete bold formatting (**)\n const boldPattern = /(\\*\\*)([^*]*?)$/;\n const boldMatch = result.match(boldPattern);\n if (boldMatch) {\n // Count the number of ** in the entire string\n const asteriskPairs = (result.match(/\\*\\*/g) || []).length;\n // If odd number of **, we have an incomplete bold - complete it\n if (asteriskPairs % 2 === 1) {\n result = `${result}**`;\n }\n }\n\n // Handle incomplete italic formatting (__)\n const italicPattern = /(__)([^_]*?)$/;\n const italicMatch = result.match(italicPattern);\n if (italicMatch) {\n // Count the number of __ in the entire string\n const underscorePairs = (result.match(/__/g) || []).length;\n // If odd number of __, we have an incomplete italic - complete it\n if (underscorePairs % 2 === 1) {\n result = `${result}__`;\n }\n }\n\n // Handle incomplete single asterisk italic (*)\n const singleAsteriskPattern = /(\\*)([^*]*?)$/;\n const singleAsteriskMatch = result.match(singleAsteriskPattern);\n if (singleAsteriskMatch) {\n // Count single asterisks that aren't part of **\n const singleAsterisks = result.split('').reduce((acc, char, index) => {\n if (char === '*') {\n // Check if it's part of a ** pair\n const prevChar = result[index - 1];\n const nextChar = result[index + 1];\n if (prevChar !== '*' && nextChar !== '*') {\n return acc + 1;\n }\n }\n return acc;\n }, 0);\n\n // If odd number of single *, we have an incomplete italic - complete it\n if (singleAsterisks % 2 === 1) {\n result = `${result}*`;\n }\n }\n\n // Handle incomplete single underscore italic (_)\n const singleUnderscorePattern = /(_)([^_]*?)$/;\n const singleUnderscoreMatch = result.match(singleUnderscorePattern);\n if (singleUnderscoreMatch) {\n // Count single underscores that aren't part of __\n const singleUnderscores = result.split('').reduce((acc, char, index) => {\n if (char === '_') {\n // Check if it's part of a __ pair\n const prevChar = result[index - 1];\n const nextChar = result[index + 1];\n if (prevChar !== '_' && nextChar !== '_') {\n return acc + 1;\n }\n }\n return acc;\n }, 0);\n\n // If odd number of single _, we have an incomplete italic - complete it\n if (singleUnderscores % 2 === 1) {\n result = `${result}_`;\n }\n }\n\n // Handle incomplete inline code blocks (`) - but avoid code blocks (```)\n const inlineCodePattern = /(`)([^`]*?)$/;\n const inlineCodeMatch = result.match(inlineCodePattern);\n if (inlineCodeMatch) {\n // Check if we're dealing with a code block (triple backticks)\n const hasCodeBlockStart = result.includes('```');\n const codeBlockPattern = /```[\\s\\S]*?```/g;\n const completeCodeBlocks = (result.match(codeBlockPattern) || []).length;\n const allTripleBackticks = (result.match(/```/g) || []).length;\n\n // If we have an odd number of ``` sequences, we're inside an incomplete code block\n // In this case, don't complete inline code\n const insideIncompleteCodeBlock = allTripleBackticks % 2 === 1;\n\n if (!insideIncompleteCodeBlock) {\n // Count the number of single backticks that are NOT part of triple backticks\n let singleBacktickCount = 0;\n for (let i = 0; i < result.length; i++) {\n if (result[i] === '`') {\n // Check if this backtick is part of a triple backtick sequence\n const isTripleStart = result.substring(i, i + 3) === '```';\n const isTripleMiddle =\n i > 0 && result.substring(i - 1, i + 2) === '```';\n const isTripleEnd = i > 1 && result.substring(i - 2, i + 1) === '```';\n\n if (!(isTripleStart || isTripleMiddle || isTripleEnd)) {\n singleBacktickCount++;\n }\n }\n }\n\n // If odd number of single backticks, we have an incomplete inline code - complete it\n if (singleBacktickCount % 2 === 1) {\n result = `${result}\\``;\n }\n }\n }\n\n // Handle incomplete strikethrough formatting (~~)\n const strikethroughPattern = /(~~)([^~]*?)$/;\n const strikethroughMatch = result.match(strikethroughPattern);\n if (strikethroughMatch) {\n // Count the number of ~~ in the entire string\n const tildePairs = (result.match(/~~/g) || []).length;\n // If odd number of ~~, we have an incomplete strikethrough - complete it\n if (tildePairs % 2 === 1) {\n result = `${result}~~`;\n }\n }\n\n return result;\n}\n\n// Create a hardened version of ReactMarkdown\nconst HardenedMarkdown = hardenReactMarkdown(ReactMarkdown);\n\nexport type ResponseProps = HTMLAttributes<HTMLDivElement> & {\n options?: Options;\n children: Options['children'];\n allowedImagePrefixes?: ComponentProps<\n ReturnType<typeof hardenReactMarkdown>\n >['allowedImagePrefixes'];\n allowedLinkPrefixes?: ComponentProps<\n ReturnType<typeof hardenReactMarkdown>\n >['allowedLinkPrefixes'];\n defaultOrigin?: ComponentProps<\n ReturnType<typeof hardenReactMarkdown>\n >['defaultOrigin'];\n parseIncompleteMarkdown?: boolean;\n};\n\nconst components: Options['components'] = {\n ol: ({ node, children, className, ...props }) => (\n <ol className={cn('ml-4 list-outside list-decimal', className)} {...props}>\n {children}\n </ol>\n ),\n li: ({ node, children, className, ...props }) => (\n <li className={cn('py-1', className)} {...props}>\n {children}\n </li>\n ),\n ul: ({ node, children, className, ...props }) => (\n <ul className={cn('ml-4 list-outside list-disc', className)} {...props}>\n {children}\n </ul>\n ),\n hr: ({ node, className, ...props }) => (\n <hr className={cn('my-6 border-border', className)} {...props} />\n ),\n strong: ({ node, children, className, ...props }) => (\n <span className={cn('font-semibold', className)} {...props}>\n {children}\n </span>\n ),\n a: ({ node, children, className, ...props }) => (\n <a\n className={cn('font-medium text-primary underline', className)}\n rel=\"noreferrer\"\n target=\"_blank\"\n {...props}\n >\n {children}\n </a>\n ),\n h1: ({ node, children, className, ...props }) => (\n <h1\n className={cn('mt-6 mb-2 font-semibold text-3xl', className)}\n {...props}\n >\n {children}\n </h1>\n ),\n h2: ({ node, children, className, ...props }) => (\n <h2\n className={cn('mt-6 mb-2 font-semibold text-2xl', className)}\n {...props}\n >\n {children}\n </h2>\n ),\n h3: ({ node, children, className, ...props }) => (\n <h3 className={cn('mt-6 mb-2 font-semibold text-xl', className)} {...props}>\n {children}\n </h3>\n ),\n h4: ({ node, children, className, ...props }) => (\n <h4 className={cn('mt-6 mb-2 font-semibold text-lg', className)} {...props}>\n {children}\n </h4>\n ),\n h5: ({ node, children, className, ...props }) => (\n <h5\n className={cn('mt-6 mb-2 font-semibold text-base', className)}\n {...props}\n >\n {children}\n </h5>\n ),\n h6: ({ node, children, className, ...props }) => (\n <h6 className={cn('mt-6 mb-2 font-semibold text-sm', className)} {...props}>\n {children}\n </h6>\n ),\n table: ({ node, children, className, ...props }) => (\n <div className=\"my-4 overflow-x-auto\">\n <table\n className={cn('w-full border-collapse border border-border', className)}\n {...props}\n >\n {children}\n </table>\n </div>\n ),\n thead: ({ node, children, className, ...props }) => (\n <thead className={cn('bg-muted/50', className)} {...props}>\n {children}\n </thead>\n ),\n tbody: ({ node, children, className, ...props }) => (\n <tbody className={cn('divide-y divide-border', className)} {...props}>\n {children}\n </tbody>\n ),\n tr: ({ node, children, className, ...props }) => (\n <tr className={cn('border-border border-b', className)} {...props}>\n {children}\n </tr>\n ),\n th: ({ node, children, className, ...props }) => (\n <th\n className={cn('px-4 py-2 text-left font-semibold text-sm', className)}\n {...props}\n >\n {children}\n </th>\n ),\n td: ({ node, children, className, ...props }) => (\n <td className={cn('px-4 py-2 text-sm', className)} {...props}>\n {children}\n </td>\n ),\n blockquote: ({ node, children, className, ...props }) => (\n <blockquote\n className={cn(\n 'my-4 border-muted-foreground/30 border-l-4 pl-4 text-muted-foreground italic',\n className\n )}\n {...props}\n >\n {children}\n </blockquote>\n ),\n code: ({ node, className, ...props }) => {\n const inline = node?.position?.start.line === node?.position?.end.line;\n\n if (!inline) {\n return <code className={className} {...props} />;\n }\n\n return (\n <code\n className={cn(\n 'rounded bg-muted px-1.5 py-0.5 font-mono text-sm',\n className\n )}\n {...props}\n />\n );\n },\n pre: ({ node, className, children }) => {\n let language = 'javascript';\n\n if (typeof node?.properties?.className === 'string') {\n language = node.properties.className.replace('language-', '');\n }\n\n // Extract code content from children safely\n let code = '';\n if (\n isValidElement(children) &&\n children.props &&\n typeof children.props.children === 'string'\n ) {\n code = children.props.children;\n } else if (typeof children === 'string') {\n code = children;\n }\n\n return (\n <CodeBlock\n className={cn('my-4 h-auto', className)}\n code={code}\n language={language}\n >\n <CodeBlockCopyButton\n onCopy={() => console.log('Copied code to clipboard')}\n onError={() => console.error('Failed to copy code to clipboard')}\n />\n </CodeBlock>\n );\n },\n};\n\nexport const Response = memo(\n ({\n className,\n options,\n children,\n allowedImagePrefixes,\n allowedLinkPrefixes,\n defaultOrigin,\n parseIncompleteMarkdown: shouldParseIncompleteMarkdown = true,\n ...props\n }: ResponseProps) => {\n // Parse the children to remove incomplete markdown tokens if enabled\n const parsedChildren =\n typeof children === 'string' && shouldParseIncompleteMarkdown\n ? parseIncompleteMarkdown(children)\n : children;\n\n return (\n <div\n className={cn(\n 'size-full [&>*:first-child]:mt-0 [&>*:last-child]:mb-0',\n className\n )}\n {...props}\n >\n <HardenedMarkdown\n allowedImagePrefixes={allowedImagePrefixes ?? ['*']}\n allowedLinkPrefixes={allowedLinkPrefixes ?? ['*']}\n components={components}\n defaultOrigin={defaultOrigin}\n rehypePlugins={[rehypeKatex]}\n remarkPlugins={[remarkGfm, remarkMath]}\n {...options}\n >\n {parsedChildren}\n </HardenedMarkdown>\n </div>\n );\n },\n (prevProps, nextProps) => prevProps.children === nextProps.children\n);\n\nResponse.displayName = 'Response';\n","import {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from '@/components/ui/avatar';\nimport { cn } from '@/lib/utils';\nimport type { UIMessage } from 'ai';\nimport type { ComponentProps, HTMLAttributes } from 'react';\n\nexport type MessageProps = HTMLAttributes<HTMLDivElement> & {\n from: UIMessage['role'];\n};\n\nexport const Message = ({ className, from, ...props }: MessageProps) => (\n <div\n className={cn(\n 'group flex w-full items-end justify-end gap-2 py-4',\n from === 'user' ? 'is-user flex-row-reverse justify-end' : 'is-assistant flex-row-reverse justify-end',\n '[&>div]:max-w-[80%]',\n className\n )}\n {...props}\n />\n);\n\nexport type MessageContentProps = HTMLAttributes<HTMLDivElement>;\n\nexport const MessageContent = ({\n children,\n className,\n ...props\n}: MessageContentProps) => (\n <div\n className={cn(\n 'flex flex-col gap-2 overflow-hidden rounded-lg py-3 text-foreground text-sm',\n 'group-[.is-user]:bg-secondary group-[.is-user]:text-primary-foreground group-[.is-user]:px-4',\n 'group-[.is-assistant]:bg-transparent group-[.is-assistant]:text-foreground',\n className\n )}\n {...props}\n >\n <div className=\"is-user:dark\">{children}</div>\n </div>\n);\n\nexport type MessageAvatarProps = ComponentProps<typeof Avatar> & {\n src: string;\n name?: string;\n};\n\nexport const MessageAvatar = ({\n src,\n name,\n className,\n ...props\n}: MessageAvatarProps) => (\n <Avatar\n className={cn('size-8 ring ring-1 ring-border', className)}\n {...props}\n >\n <AvatarImage alt=\"\" className=\"mt-0 mb-0\" src={src} />\n <AvatarFallback>{name?.slice(0, 2) || 'ME'}</AvatarFallback>\n </Avatar>\n);\n","'use client';\n\nimport { Button } from '@/components/ui/button';\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from '@/components/ui/tooltip';\nimport { cn } from '@/lib/utils';\nimport type { ComponentProps } from 'react';\n\nexport type ActionsProps = ComponentProps<'div'>;\n\nexport const Actions = ({ className, children, ...props }: ActionsProps) => (\n <div className={cn('flex items-center gap-1', className)} {...props}>\n {children}\n </div>\n);\n\nexport type ActionProps = ComponentProps<typeof Button> & {\n tooltip?: string;\n label?: string;\n};\n\nexport const Action = ({\n tooltip,\n children,\n label,\n className,\n variant = 'ghost',\n size = 'sm',\n ...props\n}: ActionProps) => {\n const button = (\n <Button\n className={cn(\n 'size-9 p-1.5 text-muted-foreground hover:text-foreground',\n className\n )}\n size={size}\n type=\"button\"\n variant={variant}\n {...props}\n >\n {children}\n <span className=\"sr-only\">{label || tooltip}</span>\n </Button>\n );\n\n if (tooltip) {\n return (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent>\n <p>{tooltip}</p>\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n );\n }\n\n return button;\n};\n","'use client';\n\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from '@/components/ui/collapsible';\nimport { cn } from '@/lib/utils';\nimport { BrainIcon, ChevronDownIcon } from 'lucide-react';\nimport type { ComponentProps } from 'react';\nimport { createContext, memo, useContext, useEffect, useState } from 'react';\nimport { Response } from './response';\n\ntype ReasoningContextValue = {\n isStreaming: boolean;\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n duration: number;\n};\n\nconst ReasoningContext = createContext<ReasoningContextValue | null>(null);\n\nconst useReasoning = () => {\n const context = useContext(ReasoningContext);\n if (!context) {\n throw new Error('Reasoning components must be used within Reasoning');\n }\n return context;\n};\n\nexport type ReasoningProps = ComponentProps<typeof Collapsible> & {\n isStreaming?: boolean;\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n duration?: number;\n};\n\nconst AUTO_CLOSE_DELAY = 1000;\n\nexport const Reasoning = memo(\n ({\n className,\n isStreaming = false,\n open,\n defaultOpen = false,\n onOpenChange,\n duration: durationProp,\n children,\n ...props\n }: ReasoningProps) => {\n const [isOpen, setIsOpen] = useControllableState({\n prop: open,\n defaultProp: defaultOpen,\n onChange: onOpenChange,\n });\n const [duration, setDuration] = useControllableState({\n prop: durationProp,\n defaultProp: 0,\n });\n\n const [hasAutoClosedRef, setHasAutoClosedRef] = useState(false);\n const [startTime, setStartTime] = useState<number | null>(null);\n\n // Track duration when streaming starts and ends\n useEffect(() => {\n if (isStreaming) {\n if (startTime === null) {\n setStartTime(Date.now());\n }\n } else if (startTime !== null) {\n setDuration(Math.round((Date.now() - startTime) / 1000));\n setStartTime(null);\n }\n }, [isStreaming, startTime, setDuration]);\n\n // Auto-open when streaming starts, auto-close when streaming ends (once only)\n useEffect(() => {\n if (isStreaming && !isOpen) {\n setIsOpen(true);\n } else if (!isStreaming && isOpen && !defaultOpen && !hasAutoClosedRef) {\n // Add a small delay before closing to allow user to see the content\n const timer = setTimeout(() => {\n setIsOpen(false);\n setHasAutoClosedRef(true);\n }, AUTO_CLOSE_DELAY);\n return () => clearTimeout(timer);\n }\n }, [isStreaming, isOpen, defaultOpen, setIsOpen, hasAutoClosedRef]);\n\n const handleOpenChange = (newOpen: boolean) => {\n setIsOpen(newOpen);\n };\n\n return (\n <ReasoningContext.Provider\n value={{ isStreaming, isOpen, setIsOpen, duration }}\n >\n <Collapsible\n className={cn('not-prose mb-4', className)}\n onOpenChange={handleOpenChange}\n open={isOpen}\n {...props}\n >\n {children}\n </Collapsible>\n </ReasoningContext.Provider>\n );\n }\n);\n\nexport type ReasoningTriggerProps = ComponentProps<\n typeof CollapsibleTrigger\n> & {\n title?: string;\n};\n\nexport const ReasoningTrigger = memo(\n ({\n className,\n title = 'Reasoning',\n children,\n ...props\n }: ReasoningTriggerProps) => {\n const { isStreaming, isOpen, duration } = useReasoning();\n\n return (\n <CollapsibleTrigger\n className={cn(\n 'flex items-center gap-2 text-muted-foreground text-sm',\n className\n )}\n {...props}\n >\n {children ?? (\n <>\n <BrainIcon className=\"size-4\" />\n {isStreaming || duration === 0 ? (\n <p>Thinking...</p>\n ) : (\n <p>Thought for {duration} seconds</p>\n )}\n <ChevronDownIcon\n className={cn(\n 'size-4 text-muted-foreground transition-transform',\n isOpen ? 'rotate-180' : 'rotate-0'\n )}\n />\n </>\n )}\n </CollapsibleTrigger>\n );\n }\n);\n\nexport type ReasoningContentProps = ComponentProps<\n typeof CollapsibleContent\n> & {\n children: string;\n};\n\nexport const ReasoningContent = memo(\n ({ className, children, ...props }: ReasoningContentProps) => (\n <CollapsibleContent\n className={cn(\n 'mt-4 text-sm',\n 'data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-popover-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in',\n className\n )}\n {...props}\n >\n <Response className=\"grid gap-2\">{children}</Response>\n </CollapsibleContent>\n )\n);\n\nReasoning.displayName = 'Reasoning';\nReasoningTrigger.displayName = 'ReasoningTrigger';\nReasoningContent.displayName = 'ReasoningContent';\n","'use client';\n\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from '@/components/ui/collapsible';\nimport { cn } from '@/lib/utils';\nimport { BookIcon, ChevronDownIcon } from 'lucide-react';\nimport type { ComponentProps } from 'react';\n\nexport type SourcesProps = ComponentProps<'div'>;\n\nexport const Sources = ({ className, ...props }: SourcesProps) => (\n // @ts-ignore\n <Collapsible\n className={cn('not-prose mb-4 text-primary text-xs', className)}\n {...props}\n />\n);\n\nexport type SourcesTriggerProps = ComponentProps<typeof CollapsibleTrigger> & {\n count: number;\n};\n\nexport const SourcesTrigger = ({\n className,\n count,\n children,\n ...props\n}: SourcesTriggerProps) => (\n <CollapsibleTrigger className=\"flex items-center gap-2\" {...props}>\n {children ?? (\n <>\n <p className=\"font-medium\">Used {count} sources</p>\n <ChevronDownIcon className=\"h-4 w-4\" />\n </>\n )}\n </CollapsibleTrigger>\n);\n\nexport type SourcesContentProps = ComponentProps<typeof CollapsibleContent>;\n\nexport const SourcesContent = ({\n className,\n ...props\n}: SourcesContentProps) => (\n <CollapsibleContent\n className={cn(\n 'mt-3 flex w-fit flex-col gap-2',\n 'data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 outline-none data-[state=closed]:animate-out data-[state=open]:animate-in',\n className\n )}\n {...props}\n />\n);\n\nexport type SourceProps = ComponentProps<'a'>;\n\nexport const Source = ({ href, title, children, ...props }: SourceProps) => (\n <a\n className=\"flex items-center gap-2\"\n href={href}\n rel=\"noreferrer\"\n target=\"_blank\"\n {...props}\n >\n {children ?? (\n <>\n <BookIcon className=\"h-4 w-4\" />\n <span className=\"block font-medium\">{title}</span>\n </>\n )}\n </a>\n);\n","'use client';\n\nimport { cn } from '@/lib/utils';\nimport { CheckCircle2, Circle, Loader2, XCircle } from 'lucide-react';\nimport type { ComponentProps } from 'react';\n\nexport interface TodoItem {\n content: string;\n status: 'pending' | 'in_progress' | 'completed' | 'cancelled';\n priority: 'high' | 'medium' | 'low';\n id: string;\n}\n\nexport interface TodoListProps extends ComponentProps<'div'> {\n todos: TodoItem[];\n showPriority?: boolean;\n state?: 'input-streaming' | 'input-available' | 'output-available' | 'output-error';\n}\n\nconst statusConfig = {\n pending: {\n icon: Circle,\n label: 'Pending',\n className: 'text-muted-foreground',\n },\n in_progress: {\n icon: Loader2,\n label: 'In Progress',\n className: 'text-blue-500 animate-spin',\n },\n completed: {\n icon: CheckCircle2,\n label: 'Completed',\n className: 'text-green-500',\n },\n cancelled: {\n icon: XCircle,\n label: 'Cancelled',\n className: 'text-red-500',\n },\n};\n\nconst priorityConfig = {\n high: {\n label: 'High',\n className: 'bg-red-500/10 text-red-500 border-red-500/20',\n },\n medium: {\n label: 'Medium',\n className: 'bg-yellow-500/10 text-yellow-500 border-yellow-500/20',\n },\n low: {\n label: 'Low',\n className: 'bg-blue-500/10 text-blue-500 border-blue-500/20',\n },\n};\n\nexport const TodoList = ({\n todos,\n showPriority = false,\n state,\n className,\n ...props\n}: TodoListProps) => {\n\n if (typeof todos === 'string') {\n todos = JSON.parse(todos);\n }\n\n if (!todos || todos.length === 0) {\n return null;\n }\n\n const isStreaming = state === 'input-streaming';\n const hasError = state === 'output-error';\n const completedCount = todos.filter((t) => t.status === 'completed').length;\n const totalCount = todos.length;\n\n return (\n <div\n className={cn(\n 'my-2 space-y-1',\n isStreaming && 'opacity-70',\n className\n )}\n {...props}\n >\n {todos.map((todo, index) => {\n const StatusIcon = statusConfig[todo.status].icon;\n const statusClass = statusConfig[todo.status].className;\n const priorityClass = priorityConfig[todo.priority].className;\n const isLastInProgress = todo.status === 'in_progress' &&\n index === todos.findIndex(t => t.status === 'in_progress');\n\n return (\n <div\n key={todo.id}\n className={cn(\n 'flex items-start gap-2 py-0.5',\n todo.status === 'cancelled' && 'opacity-50'\n )}\n >\n <div className=\"flex-shrink-0 pt-0.5\">\n <StatusIcon className={cn('size-3.5', statusClass)} />\n </div>\n\n <div className=\"min-w-0 flex-1\">\n <span\n className={cn(\n 'text-sm',\n todo.status === 'completed' && 'text-muted-foreground line-through',\n todo.status === 'cancelled' && 'text-muted-foreground line-through',\n todo.status === 'in_progress' && isLastInProgress && 'font-medium'\n )}\n >\n {todo.content}\n </span>\n\n {showPriority && todo.priority === 'high' && (\n <span className=\"ml-2 text-red-500 text-xs\">(!)</span>\n )}\n </div>\n </div>\n );\n })}\n\n {/* Compact progress indicator */}\n {totalCount > 1 && (\n <div className=\"flex items-center gap-2 pt-1 text-muted-foreground text-xs\">\n <div className=\"h-1 flex-1 overflow-hidden rounded-full bg-secondary\">\n <div\n className=\"h-full bg-primary transition-all duration-300\"\n style={{\n width: `${(completedCount / totalCount) * 100}%`,\n }}\n />\n </div>\n <span className=\"whitespace-nowrap\">\n {completedCount}/{totalCount}\n </span>\n </div>\n )}\n\n {hasError && (\n <div className=\"flex items-center gap-1 pt-1 text-red-500 text-xs\">\n <XCircle className=\"size-3\" />\n <span>Error updating tasks</span>\n </div>\n )}\n </div>\n );\n};\n\nexport type TodoItemProps = ComponentProps<'div'> & {\n todo: TodoItem;\n showPriority?: boolean;\n state?: 'input-streaming' | 'input-available' | 'output-available' | 'output-error';\n};\n\nexport const TodoItemComponent = ({\n todo,\n showPriority = false,\n state,\n className,\n ...props\n}: TodoItemProps) => {\n const StatusIcon = statusConfig[todo.status].icon;\n const statusClass = statusConfig[todo.status].className;\n const isStreaming = state === 'input-streaming';\n\n return (\n <div\n className={cn(\n 'flex items-start gap-2 py-0.5',\n todo.status === 'cancelled' && 'opacity-50',\n isStreaming && 'opacity-70',\n className\n )}\n {...props}\n >\n <div className=\"flex-shrink-0 pt-0.5\">\n <StatusIcon className={cn('size-3.5', statusClass)} />\n </div>\n\n <div className=\"min-w-0 flex-1\">\n <span\n className={cn(\n 'text-sm',\n todo.status === 'completed' && 'text-muted-foreground line-through',\n todo.status === 'cancelled' && 'text-muted-foreground line-through',\n todo.status === 'in_progress' && 'font-medium'\n )}\n >\n {todo.content}\n </span>\n\n {showPriority && todo.priority === 'high' && (\n <span className=\"ml-2 text-red-500 text-xs\">(!)</span>\n )}\n </div>\n </div>\n );\n};\n","\"use client\"\n\nimport { DynamicToolUIPart, UIMessage } from \"ai\"\nimport { Message, MessageContent } from '@/components/ai-elements/message'\nimport { Actions, Action } from '@/components/ai-elements/actions'\nimport { Response } from '@/components/ai-elements/response'\nimport { Reasoning, ReasoningTrigger, ReasoningContent } from \"@/components/ai-elements/reasoning\"\nimport { Source, Sources, SourcesContent, SourcesTrigger } from \"@/components/ai-elements/source\"\nimport { RefreshCcwIcon, CopyIcon } from \"lucide-react\"\nimport { cn } from \"@/lib/utils\"\nimport Image from \"next/image\"\nimport { useToast } from \"@/components/ui/use-toast\"\nimport { TodoList } from \"./ai-elements/todo-list\"\n\ninterface MessageRendererProps {\n messages: UIMessage[]\n status?: \"streaming\" | \"idle\" | \"error\" | \"submitted\" | \"ready\"\n className?: string\n showActions?: boolean\n onRegenerate?: () => void\n onAddToolResult?: (args: { tool: string; toolCallId: string; output: string }) => void\n UntypedToolPartComponent?: React.ComponentType<{\n untypedToolPart: DynamicToolUIPart\n callId: string\n addToContext: (item: any) => void\n }>\n addToContext?: (item: any) => void\n writeAccess?: boolean\n config?: {\n marginTopFirstMessage?: string\n customAssistantClassnames?: string\n }\n}\n\nexport function MessageRenderer({\n messages,\n status = \"idle\",\n className,\n showActions = true,\n onRegenerate,\n onAddToolResult,\n UntypedToolPartComponent,\n addToContext,\n writeAccess = true,\n config\n}: MessageRendererProps) {\n const { toast } = useToast()\n\n return (\n <>\n {messages?.map((message, messageIndex) => {\n const isFirstMessage = messageIndex === 0\n const messageMetadata = message.metadata as any\n const isLastMessage = messageIndex === messages.length - 1\n\n return (\n <Message\n className={cn(\n message.role === 'assistant' && (\n config?.customAssistantClassnames ? config?.customAssistantClassnames : ''\n ),\n isFirstMessage && (\n config?.marginTopFirstMessage ? config?.marginTopFirstMessage : 'mt-12'\n ), className\n )}\n from={message.role}\n key={message.id}\n >\n <MessageContent>\n {message.parts.map((part, i) => {\n if (part.type === 'step-start') {\n return null\n }\n\n if (part.type === 'text') {\n return (\n <div key={`${message.id}-${i}`}>\n <Response className=\"chat-response-container\">\n {part.text}\n </Response>\n </div>\n )\n }\n\n if (part.type === 'tool-askForConfirmation' && onAddToolResult) {\n const callId = part.toolCallId\n\n switch (part.state) {\n case 'input-streaming':\n return (\n <div key={callId}>Loading confirmation request...</div>\n )\n case 'input-available':\n return (\n <div key={callId}>\n {(part.input as { message: string }).message}\n <div>\n <button\n onClick={() =>\n onAddToolResult({\n tool: 'askForConfirmation',\n toolCallId: callId,\n output: 'Yes, confirmed',\n })\n }\n >\n Yes\n </button>\n <button\n onClick={() =>\n onAddToolResult({\n tool: 'askForConfirmation',\n toolCallId: callId,\n output: 'No, denied',\n })\n }\n >\n No\n </button>\n </div>\n </div>\n )\n case 'output-available':\n return (\n <div key={callId}>\n Tool call allowed: {part.output as string}\n </div>\n )\n case 'output-error':\n return <div key={callId}>Error: {part.errorText}</div>\n }\n }\n\n if (part.type?.toLowerCase() === 'tool-todo_write' || part.type?.toLowerCase() === 'tool-todo_read') {\n const dynamicToolPart = part as any;\n const output = dynamicToolPart.output as {\n result: {\n content: string\n status: \"pending\" | \"in_progress\" | \"completed\" | \"cancelled\"\n priority: \"high\" | \"medium\" | \"low\"\n id: string\n }[]\n };\n if (!output?.result) {\n return null;\n }\n const state: \"input-streaming\" | \"input-available\" | \"output-available\" | \"output-error\" = dynamicToolPart.state;\n return (\n <TodoList todos={output.result} showPriority={true} state={state} />\n )\n }\n\n if (\n (part.type.startsWith('tool-') || part.type === 'dynamic-tool') &&\n UntypedToolPartComponent &&\n addToContext\n ) {\n const untypedToolPart = part as DynamicToolUIPart\n const callId = untypedToolPart.toolCallId\n return (\n <UntypedToolPartComponent\n key={callId}\n untypedToolPart={untypedToolPart}\n callId={callId}\n addToContext={addToContext}\n />\n )\n }\n\n if (part.type === 'file') {\n if (part.mediaType?.startsWith('image/')) {\n return (\n <Image\n key={`${message.id}-${i}`}\n src={part.url}\n width={300}\n height={300}\n alt={\"Generated image\"}\n />\n )\n }\n }\n\n if (part.type === 'source-url') {\n return (\n <Sources key={`${message.id}-${i}`}>\n <SourcesTrigger\n count={message.parts.filter(\n (part) => part.type === 'source-url'\n ).length}\n />\n <SourcesContent key={`${message.id}`}>\n {message.parts.map((part, i) => {\n switch (part.type) {\n case 'source-url':\n return (\n <Source\n key={`${message.id}-${i}`}\n href={part.url}\n title={part.title}\n />\n )\n }\n })}\n </SourcesContent>\n </Sources>\n )\n }\n\n if (part.type === 'reasoning') {\n return (\n <Reasoning\n key={`${message.id}-${i}`}\n className=\"w-full\"\n isStreaming={status === 'streaming'}\n >\n <ReasoningTrigger />\n <ReasoningContent>{part.text}</ReasoningContent>\n </Reasoning>\n )\n }\n\n return null\n })}\n\n {showActions && message.role === 'assistant' && (\n <Actions className=\"mt-2\">\n {onRegenerate && (\n <Action\n onClick={() => onRegenerate()}\n label=\"Retry\"\n disabled={!writeAccess}\n >\n <RefreshCcwIcon className=\"size-3\" />\n </Action>\n )}\n <Action\n onClick={() => {\n navigator.clipboard.writeText(\n message.parts.map((part: any) => part?.text || \"\").join('\\n')\n )\n toast({\n title: \"Copied message\",\n description: \"The message was copied to your clipboard.\",\n })\n }}\n label=\"Copy\"\n >\n <CopyIcon className=\"size-3\" />\n </Action>\n {messageMetadata?.totalTokens && (\n <small className=\"text-muted-foreground\">\n {Intl.NumberFormat('en-US').format(messageMetadata?.totalTokens)} tokens\n </small>\n )}\n </Actions>\n )}\n </MessageContent>\n </Message>\n )\n })}\n </>\n )\n}\n","\"use client\";\n\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\n\nconst Collapsible = CollapsiblePrimitive.Root;\n\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger;\n\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent;\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\n","\"use client\";\n\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst Tabs = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n \"inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground\",\n className,\n )}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm\",\n className,\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className,\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n"],"names":["CodeBlockContext","createContext","code","CodeBlock","language","showLineNumbers","className","children","props","param","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","Provider","value","div","cn","jsxs","SyntaxHighlighter","codeTagProps","customStyle","margin","padding","fontSize","background","color","lineNumberStyle","paddingRight","minWidth","style","oneLight","oneDark","CodeBlockCopyButton","onCopy","onError","timeout","isCopied","setIsCopied","useState","useContext","copyToClipboard","navigator","clipboard","writeText","setTimeout","error","Icon","CheckIcon","CopyIcon","Button","onClick","size","variant","Conversation","StickToBottom","initial","resize","role","ConversationContent","Content","HardenedMarkdown","hardenReactMarkdown","ReactMarkdown","components","ol","node","li","ul","hr","strong","span","a","rel","target","h1","h2","h3","h4","h5","h6","table","thead","tbody","tr","th","td","blockquote","position","start","line","end","pre","properties","replace","isValidElement","console","log","Response","memo","options","allowedImagePrefixes","allowedLinkPrefixes","defaultOrigin","parseIncompleteMarkdown","shouldParseIncompleteMarkdown","parsedChildren","text","result","linkMatch","match","startIndex","lastIndexOf","substring","asteriskPairs","length","concat","underscorePairs","singleAsterisks","split","reduce","acc","char","index","prevChar","nextChar","singleUnderscores","includes","singleBacktickCount","i","isTripleStart","isTripleMiddle","isTripleEnd","tildePairs","rehypePlugins","rehypeKatex","remarkPlugins","remarkGfm","remarkMath","prevProps","nextProps","displayName","Message","from","jsx_runtime","MessageContent","Actions","Action","tooltip","label","button","type","TooltipProvider","Tooltip","TooltipTrigger","asChild","TooltipContent","p","ReasoningContext","useReasoning","context","Reasoning","isStreaming","open","defaultOpen","onOpenChange","duration","durationProp","isOpen","setIsOpen","useControllableState","prop","defaultProp","onChange","setDuration","hasAutoClosedRef","setHasAutoClosedRef","startTime","setStartTime","useEffect","Date","now","Math","round","timer","clearTimeout","Collapsible","newOpen","ReasoningTrigger","title","CollapsibleTrigger","Fragment","BrainIcon","ChevronDownIcon","ReasoningContent","CollapsibleContent","Sources","SourcesTrigger","count","SourcesContent","Source","href","BookIcon","statusConfig","pending","icon","Circle","in_progress","Loader2","completed","CheckCircle2","cancelled","XCircle","priorityConfig","high","medium","low","TodoList","todos","showPriority","state","JSON","parse","completedCount","filter","t","status","totalCount","map","todo","StatusIcon","statusClass","priority","isLastInProgress","findIndex","content","id","width","hasError","MessageRenderer","messages","showActions","onRegenerate","onAddToolResult","UntypedToolPartComponent","addToContext","writeAccess","config","toast","useToast","message","messageIndex","messageMetadata","metadata","customAssistantClassnames","isFirstMessage","marginTopFirstMessage","parts","part","callId","toolCallId","input","tool","output","errorText","toLowerCase","dynamicToolPart","startsWith","untypedToolPart","mediaType","Image","src","url","height","alt","disabled","RefreshCcwIcon","join","description","totalTokens","small","Intl","NumberFormat","format","CollapsiblePrimitive","Tabs","TabsPrimitive","TabsList","React","ref","TabsTrigger","TabsContent"],"sourceRoot":""}
|