@vasfal/vellum 0.1.0 → 0.1.2
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/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +5 -5
- package/.next/build-manifest.json +13 -14
- package/.next/next-minimal-server.js.nft.json +1 -1
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.json +3 -3
- package/.next/required-server-files.js +2 -0
- package/.next/required-server-files.json +2 -0
- package/.next/server/app/(app)/page.js +2 -15
- package/.next/server/app/(app)/page.js.nft.json +1 -1
- package/.next/server/app/(app)/page_client-reference-manifest.js +1 -3
- package/.next/server/app/(app)/session/[name]/page.js +2 -15
- package/.next/server/app/(app)/session/[name]/page.js.nft.json +1 -1
- package/.next/server/app/(app)/session/[name]/page_client-reference-manifest.js +1 -3
- package/.next/server/app/(app)/settings/key/page.js +2 -15
- package/.next/server/app/(app)/settings/key/page.js.nft.json +1 -1
- package/.next/server/app/(app)/settings/key/page_client-reference-manifest.js +1 -3
- package/.next/server/app/_global-error/page.js +32 -9
- package/.next/server/app/_global-error/page.js.nft.json +1 -1
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -3
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.meta +2 -1
- package/.next/server/app/_global-error.rsc +7 -7
- package/.next/server/app/_global-error.segments/_full.segment.rsc +7 -7
- package/.next/server/app/_global-error.segments/{__PAGE__.segment.rsc → _global-error/__PAGE__.segment.rsc} +2 -2
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +5 -0
- package/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
- package/.next/server/app/_global-error.segments/_index.segment.rsc +3 -3
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +2 -13
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -3
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +14 -12
- package/.next/server/app/_not-found.segments/_full.segment.rsc +14 -12
- package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/server/app/_not-found.segments/_index.segment.rsc +6 -6
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +4 -2
- package/.next/server/app/api/analyze/route.js +12 -9
- package/.next/server/app/api/analyze/route.js.nft.json +1 -1
- package/.next/server/app/api/analyze/route_client-reference-manifest.js +1 -3
- package/.next/server/app/api/key/route.js +1 -8
- package/.next/server/app/api/key/route.js.nft.json +1 -1
- package/.next/server/app/api/key/route_client-reference-manifest.js +1 -3
- package/.next/server/app/api/key-status/route.js +1 -7
- package/.next/server/app/api/key-status/route.js.nft.json +1 -1
- package/.next/server/app/api/key-status/route_client-reference-manifest.js +1 -3
- package/.next/server/app/api/models/route.js +1 -7
- package/.next/server/app/api/models/route.js.nft.json +1 -1
- package/.next/server/app/api/models/route_client-reference-manifest.js +1 -3
- package/.next/server/app/api/revise/route.js +1 -8
- package/.next/server/app/api/revise/route.js.nft.json +1 -1
- package/.next/server/app/api/revise/route_client-reference-manifest.js +1 -3
- package/.next/server/app/icon.svg/route.js +1 -7
- package/.next/server/app/icon.svg/route.js.nft.json +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +24 -27
- package/.next/server/app/index.segments/!KGFwcCk/__PAGE__.segment.rsc +6 -6
- package/.next/server/app/index.segments/!KGFwcCk.segment.rsc +9 -9
- package/.next/server/app/index.segments/_full.segment.rsc +24 -27
- package/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/server/app/index.segments/_index.segment.rsc +6 -6
- package/.next/server/app/index.segments/_tree.segment.rsc +4 -4
- package/.next/server/app/record-test/page.js +8 -14
- package/.next/server/app/record-test/page.js.nft.json +1 -1
- package/.next/server/app/record-test/page_client-reference-manifest.js +1 -3
- package/.next/server/app/record-test.html +2 -2
- package/.next/server/app/record-test.rsc +16 -16
- package/.next/server/app/record-test.segments/_full.segment.rsc +16 -16
- package/.next/server/app/record-test.segments/_head.segment.rsc +4 -4
- package/.next/server/app/record-test.segments/_index.segment.rsc +6 -6
- package/.next/server/app/record-test.segments/_tree.segment.rsc +4 -4
- package/.next/server/app/record-test.segments/record-test/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/record-test.segments/record-test.segment.rsc +3 -3
- package/.next/server/app/settings/key.html +1 -1
- package/.next/server/app/settings/key.rsc +28 -34
- package/.next/server/app/settings/key.segments/!KGFwcCk/settings/key/__PAGE__.segment.rsc +5 -5
- package/.next/server/app/settings/key.segments/!KGFwcCk/settings/key.segment.rsc +3 -3
- package/.next/server/app/settings/key.segments/!KGFwcCk/settings.segment.rsc +3 -3
- package/.next/server/app/settings/key.segments/!KGFwcCk.segment.rsc +9 -9
- package/.next/server/app/settings/key.segments/_full.segment.rsc +28 -34
- package/.next/server/app/settings/key.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/key.segments/_index.segment.rsc +6 -6
- package/.next/server/app/settings/key.segments/_tree.segment.rsc +4 -4
- package/.next/server/app/styleguide/page.js +2 -15
- package/.next/server/app/styleguide/page.js.nft.json +1 -1
- package/.next/server/app/styleguide/page_client-reference-manifest.js +1 -3
- package/.next/server/app/styleguide.html +1 -1
- package/.next/server/app/styleguide.rsc +68 -71
- package/.next/server/app/styleguide.segments/_full.segment.rsc +68 -71
- package/.next/server/app/styleguide.segments/_head.segment.rsc +4 -4
- package/.next/server/app/styleguide.segments/_index.segment.rsc +6 -6
- package/.next/server/app/styleguide.segments/_tree.segment.rsc +4 -4
- package/.next/server/app/styleguide.segments/styleguide/__PAGE__.segment.rsc +43 -45
- package/.next/server/app/styleguide.segments/styleguide.segment.rsc +3 -3
- package/.next/server/app-paths-manifest.json +5 -5
- package/.next/server/chunks/15.js +1 -0
- package/.next/server/chunks/319.js +45 -0
- package/.next/server/chunks/367.js +122 -0
- package/.next/server/chunks/393.js +4 -0
- package/.next/server/chunks/491.js +2 -0
- package/.next/server/chunks/497.js +1 -0
- package/.next/server/chunks/546.js +1 -0
- package/.next/server/chunks/592.js +44 -0
- package/.next/server/chunks/607.js +4 -0
- package/.next/server/chunks/724.js +1 -0
- package/.next/server/chunks/741.js +18 -0
- package/.next/server/chunks/813.js +1 -0
- package/.next/server/chunks/837.js +75 -0
- package/.next/server/chunks/852.js +14 -0
- package/.next/server/chunks/907.js +62 -0
- package/.next/server/chunks/915.js +8 -0
- package/.next/server/chunks/994.js +8 -0
- package/.next/server/middleware-build-manifest.js +1 -21
- package/.next/server/middleware-manifest.json +2 -2
- package/.next/server/middleware-react-loadable-manifest.js +1 -0
- package/.next/server/next-font-manifest.js +1 -1
- package/.next/server/next-font-manifest.json +1 -31
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -5
- package/.next/server/webpack-runtime.js +1 -0
- package/.next/static/FExJe2q2O67X3zxf-SYQ_/_buildManifest.js +1 -0
- package/.next/static/chunks/185-9c51ded7cd36ca7e.js +1 -0
- package/.next/static/chunks/20-cca33f633fa125b2.js +1 -0
- package/.next/static/chunks/27-02413cc56fbb4570.js +1 -0
- package/.next/static/chunks/376-6f7bc95550542e0b.js +62 -0
- package/.next/static/chunks/479-ea67f878851afbcd.js +1 -0
- package/.next/static/chunks/493-6bd8c75c972d3abd.js +2 -0
- package/.next/static/chunks/4bd1b696-deb4a0a1da1923b0.js +1 -0
- package/.next/static/chunks/603-6235d4d53b37035c.js +1 -0
- package/.next/static/chunks/743-c183133e0fbf1564.js +44 -0
- package/.next/static/chunks/793-5e37343b804eb1d9.js +1 -0
- package/.next/static/chunks/794-dc751ec6c8c611f8.js +32 -0
- package/.next/static/chunks/924-9226750edc5c2c2f.js +1 -0
- package/.next/static/chunks/95247769-a29d70f7fbba27c6.js +1 -0
- package/.next/static/chunks/app/(app)/layout-aad46049bfd54648.js +1 -0
- package/.next/static/chunks/app/(app)/page-d75e1fccccdbe30e.js +1 -0
- package/.next/static/chunks/app/(app)/session/[name]/page-60529ed1fd7a66a1.js +1 -0
- package/.next/static/chunks/app/(app)/settings/key/page-c2aab9f11db98d4e.js +1 -0
- package/.next/static/chunks/app/_global-error/page-b1c3f51315835726.js +1 -0
- package/.next/static/chunks/app/_not-found/page-6830be21b0ed0c95.js +1 -0
- package/.next/static/chunks/app/api/analyze/route-b1c3f51315835726.js +1 -0
- package/.next/static/chunks/app/api/key/route-b1c3f51315835726.js +1 -0
- package/.next/static/chunks/app/api/key-status/route-b1c3f51315835726.js +1 -0
- package/.next/static/chunks/app/api/models/route-b1c3f51315835726.js +1 -0
- package/.next/static/chunks/app/api/revise/route-b1c3f51315835726.js +1 -0
- package/.next/static/chunks/app/layout-aa71ca14e7f13c0c.js +1 -0
- package/.next/static/chunks/app/record-test/page-efb4287dda79ede4.js +7 -0
- package/.next/static/chunks/app/styleguide/page-f39510e82c1f9f31.js +1 -0
- package/.next/static/chunks/framework-b29f9083d3cda3b2.js +1 -0
- package/.next/static/chunks/main-app-39f57c6e6702740e.js +1 -0
- package/.next/static/chunks/main-fac8900b4f9c4833.js +5 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-b1c3f51315835726.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-b1c3f51315835726.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/global-error-c1d4bb24e31b66a2.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-b1c3f51315835726.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-b1c3f51315835726.js +1 -0
- package/.next/static/chunks/webpack-ceb933bd5f77076f.js +1 -0
- package/.next/static/css/e2905f0858acd77d.css +3 -0
- package/.next/types/app/(app)/page.ts +87 -0
- package/.next/types/app/(app)/session/[name]/page.ts +87 -0
- package/.next/types/app/(app)/settings/key/page.ts +87 -0
- package/.next/types/app/api/analyze/route.ts +351 -0
- package/.next/types/app/api/key/route.ts +351 -0
- package/.next/types/app/api/key-status/route.ts +351 -0
- package/.next/types/app/api/models/route.ts +351 -0
- package/.next/types/app/api/revise/route.ts +351 -0
- package/.next/types/app/layout.ts +87 -0
- package/.next/types/app/record-test/page.ts +87 -0
- package/.next/types/app/styleguide/page.ts +87 -0
- package/.next/types/package.json +1 -0
- package/README.md +4 -6
- package/next.config.ts +8 -0
- package/package.json +4 -4
- package/.next/build/56416d4ae4ce586f.js +0 -6
- package/.next/build/56416d4ae4ce586f.js.map +0 -5
- package/.next/build/chunks/[root-of-the-server]__0oj80bi._.js +0 -206
- package/.next/build/chunks/[root-of-the-server]__0oj80bi._.js.map +0 -8
- package/.next/build/chunks/[root-of-the-server]__1f933tp._.js +0 -500
- package/.next/build/chunks/[root-of-the-server]__1f933tp._.js.map +0 -11
- package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_0b7xl6g._.js +0 -13
- package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_0b7xl6g._.js.map +0 -5
- package/.next/build/chunks/[turbopack]_runtime.js +0 -890
- package/.next/build/chunks/[turbopack]_runtime.js.map +0 -11
- package/.next/build/chunks/node_modules_20v-8wl._.js +0 -6832
- package/.next/build/chunks/node_modules_20v-8wl._.js.map +0 -47
- package/.next/build/package.json +0 -1
- package/.next/cache/.previewinfo +0 -1
- package/.next/cache/.rscinfo +0 -1
- package/.next/cache/.tsbuildinfo +0 -1
- package/.next/diagnostics/route-bundle-stats.json +0 -111
- package/.next/fallback-build-manifest.json +0 -13
- package/.next/server/app/(app)/page/app-paths-manifest.json +0 -3
- package/.next/server/app/(app)/page/build-manifest.json +0 -17
- package/.next/server/app/(app)/page/next-font-manifest.json +0 -11
- package/.next/server/app/(app)/page/server-reference-manifest.json +0 -4
- package/.next/server/app/(app)/page.js.map +0 -5
- package/.next/server/app/(app)/session/[name]/page/app-paths-manifest.json +0 -3
- package/.next/server/app/(app)/session/[name]/page/build-manifest.json +0 -17
- package/.next/server/app/(app)/session/[name]/page/next-font-manifest.json +0 -11
- package/.next/server/app/(app)/session/[name]/page/react-loadable-manifest.json +0 -1
- package/.next/server/app/(app)/session/[name]/page/server-reference-manifest.json +0 -4
- package/.next/server/app/(app)/session/[name]/page.js.map +0 -5
- package/.next/server/app/(app)/settings/key/page/app-paths-manifest.json +0 -3
- package/.next/server/app/(app)/settings/key/page/build-manifest.json +0 -17
- package/.next/server/app/(app)/settings/key/page/next-font-manifest.json +0 -11
- package/.next/server/app/(app)/settings/key/page/react-loadable-manifest.json +0 -1
- package/.next/server/app/(app)/settings/key/page/server-reference-manifest.json +0 -4
- package/.next/server/app/(app)/settings/key/page.js.map +0 -5
- package/.next/server/app/_global-error/page/app-paths-manifest.json +0 -3
- package/.next/server/app/_global-error/page/build-manifest.json +0 -17
- package/.next/server/app/_global-error/page/next-font-manifest.json +0 -6
- package/.next/server/app/_global-error/page/react-loadable-manifest.json +0 -1
- package/.next/server/app/_global-error/page/server-reference-manifest.json +0 -4
- package/.next/server/app/_global-error/page.js.map +0 -5
- package/.next/server/app/_not-found/page/app-paths-manifest.json +0 -3
- package/.next/server/app/_not-found/page/build-manifest.json +0 -17
- package/.next/server/app/_not-found/page/next-font-manifest.json +0 -11
- package/.next/server/app/_not-found/page/react-loadable-manifest.json +0 -1
- package/.next/server/app/_not-found/page/server-reference-manifest.json +0 -4
- package/.next/server/app/_not-found/page.js.map +0 -5
- package/.next/server/app/api/analyze/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/analyze/route/build-manifest.json +0 -9
- package/.next/server/app/api/analyze/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/analyze/route.js.map +0 -5
- package/.next/server/app/api/key/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/key/route/build-manifest.json +0 -9
- package/.next/server/app/api/key/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/key/route.js.map +0 -5
- package/.next/server/app/api/key-status/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/key-status/route/build-manifest.json +0 -9
- package/.next/server/app/api/key-status/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/key-status/route.js.map +0 -5
- package/.next/server/app/api/models/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/models/route/build-manifest.json +0 -9
- package/.next/server/app/api/models/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/models/route.js.map +0 -5
- package/.next/server/app/api/revise/route/app-paths-manifest.json +0 -3
- package/.next/server/app/api/revise/route/build-manifest.json +0 -9
- package/.next/server/app/api/revise/route/server-reference-manifest.json +0 -4
- package/.next/server/app/api/revise/route.js.map +0 -5
- package/.next/server/app/icon.svg/route/app-paths-manifest.json +0 -3
- package/.next/server/app/icon.svg/route/build-manifest.json +0 -9
- package/.next/server/app/icon.svg/route.js.map +0 -5
- package/.next/server/app/record-test/page/app-paths-manifest.json +0 -3
- package/.next/server/app/record-test/page/build-manifest.json +0 -17
- package/.next/server/app/record-test/page/next-font-manifest.json +0 -11
- package/.next/server/app/record-test/page/react-loadable-manifest.json +0 -1
- package/.next/server/app/record-test/page/server-reference-manifest.json +0 -4
- package/.next/server/app/record-test/page.js.map +0 -5
- package/.next/server/app/styleguide/page/app-paths-manifest.json +0 -3
- package/.next/server/app/styleguide/page/build-manifest.json +0 -17
- package/.next/server/app/styleguide/page/next-font-manifest.json +0 -11
- package/.next/server/app/styleguide/page/react-loadable-manifest.json +0 -1
- package/.next/server/app/styleguide/page/server-reference-manifest.json +0 -4
- package/.next/server/app/styleguide/page.js.map +0 -5
- package/.next/server/chunks/[externals]__1l0bqbz._.js +0 -3
- package/.next/server/chunks/[externals]__1l0bqbz._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__00u0a0m._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__00u0a0m._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__02oblj7._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__02oblj7._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__04dzkv1._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__04dzkv1._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__081zp1m._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__081zp1m._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__0dkua3v._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0dkua3v._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__0ezil_h._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0ezil_h._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__0ww_12a._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0ww_12a._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__0x-kpif._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__0x-kpif._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__15bjnu5._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__15bjnu5._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__1kmbnvv._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1kmbnvv._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__1kp4vwc._.js +0 -14
- package/.next/server/chunks/[root-of-the-server]__1kp4vwc._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__1lbd3kd._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1lbd3kd._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__1ra6psc._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1ra6psc._.js.map +0 -1
- package/.next/server/chunks/[root-of-the-server]__1zn977r._.js +0 -3
- package/.next/server/chunks/[root-of-the-server]__1zn977r._.js.map +0 -1
- package/.next/server/chunks/[turbopack]_runtime.js +0 -903
- package/.next/server/chunks/[turbopack]_runtime.js.map +0 -11
- package/.next/server/chunks/_04h1cv_._.js +0 -185
- package/.next/server/chunks/_04h1cv_._.js.map +0 -1
- package/.next/server/chunks/_0pqmhjh._.js +0 -185
- package/.next/server/chunks/_0pqmhjh._.js.map +0 -1
- package/.next/server/chunks/_next-internal_server_app_api_analyze_route_actions_0lx-23h.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_analyze_route_actions_0lx-23h.js.map +0 -1
- package/.next/server/chunks/_next-internal_server_app_api_key-status_route_actions_1qgztm2.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_key-status_route_actions_1qgztm2.js.map +0 -1
- package/.next/server/chunks/_next-internal_server_app_api_key_route_actions_15n2qsb.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_key_route_actions_15n2qsb.js.map +0 -1
- package/.next/server/chunks/_next-internal_server_app_api_models_route_actions_1h6mkqp.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_models_route_actions_1h6mkqp.js.map +0 -1
- package/.next/server/chunks/_next-internal_server_app_api_revise_route_actions_19kk3m-.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_api_revise_route_actions_19kk3m-.js.map +0 -1
- package/.next/server/chunks/_next-internal_server_app_icon_svg_route_actions_1r2h_ub.js +0 -3
- package/.next/server/chunks/_next-internal_server_app_icon_svg_route_actions_1r2h_ub.js.map +0 -1
- package/.next/server/chunks/node_modules_0x51oh_._.js +0 -10
- package/.next/server/chunks/node_modules_0x51oh_._.js.map +0 -1
- package/.next/server/chunks/node_modules_19bvt3l._.js +0 -6
- package/.next/server/chunks/node_modules_19bvt3l._.js.map +0 -1
- package/.next/server/chunks/node_modules_1_-az43._.js +0 -16
- package/.next/server/chunks/node_modules_1_-az43._.js.map +0 -1
- package/.next/server/chunks/node_modules_1t2pqct._.js +0 -10
- package/.next/server/chunks/node_modules_1t2pqct._.js.map +0 -1
- package/.next/server/chunks/node_modules_next_08s853w._.js +0 -13
- package/.next/server/chunks/node_modules_next_08s853w._.js.map +0 -1
- package/.next/server/chunks/node_modules_node-fetch_src_index_1gf-_pn.js +0 -3
- package/.next/server/chunks/node_modules_node-fetch_src_index_1gf-_pn.js.map +0 -1
- package/.next/server/chunks/ssr/[externals]__1l0bqbz._.js +0 -3
- package/.next/server/chunks/ssr/[externals]__1l0bqbz._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__06ync7f._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__06ync7f._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0hml-pd._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0hml-pd._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0ntia6u._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0ntia6u._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0sdpd0o._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0sdpd0o._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0w2pa_y._.js +0 -33
- package/.next/server/chunks/ssr/[root-of-the-server]__0w2pa_y._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__10y0-wv._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__10y0-wv._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__11_7weu._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__11_7weu._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1_stkwn._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1_stkwn._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1dky4g0._.js +0 -33
- package/.next/server/chunks/ssr/[root-of-the-server]__1dky4g0._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1k6ey-q._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1k6ey-q._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1la73u1._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1la73u1._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1nshnxm._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1nshnxm._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1pssg49._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1pssg49._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1q6zd30._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1q6zd30._.js.map +0 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__1qlmg27._.js +0 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__1qlmg27._.js.map +0 -1
- package/.next/server/chunks/ssr/[turbopack]_runtime.js +0 -903
- package/.next/server/chunks/ssr/[turbopack]_runtime.js.map +0 -11
- package/.next/server/chunks/ssr/_01pksvc._.js +0 -78
- package/.next/server/chunks/ssr/_01pksvc._.js.map +0 -1
- package/.next/server/chunks/ssr/_03lgii8._.js +0 -3
- package/.next/server/chunks/ssr/_03lgii8._.js.map +0 -1
- package/.next/server/chunks/ssr/_05tft_r._.js +0 -3
- package/.next/server/chunks/ssr/_05tft_r._.js.map +0 -1
- package/.next/server/chunks/ssr/_06gt995._.js +0 -3
- package/.next/server/chunks/ssr/_06gt995._.js.map +0 -1
- package/.next/server/chunks/ssr/_0jrh37c._.js +0 -46
- package/.next/server/chunks/ssr/_0jrh37c._.js.map +0 -1
- package/.next/server/chunks/ssr/_0kw6yq_._.js +0 -3
- package/.next/server/chunks/ssr/_0kw6yq_._.js.map +0 -1
- package/.next/server/chunks/ssr/_0l3c05z._.js +0 -3
- package/.next/server/chunks/ssr/_0l3c05z._.js.map +0 -1
- package/.next/server/chunks/ssr/_0n-ojw-._.js +0 -3
- package/.next/server/chunks/ssr/_0n-ojw-._.js.map +0 -1
- package/.next/server/chunks/ssr/_0t6a1ln._.js +0 -6
- package/.next/server/chunks/ssr/_0t6a1ln._.js.map +0 -1
- package/.next/server/chunks/ssr/_0td-xk-._.js +0 -3
- package/.next/server/chunks/ssr/_0td-xk-._.js.map +0 -1
- package/.next/server/chunks/ssr/_0y92f-y._.js +0 -46
- package/.next/server/chunks/ssr/_0y92f-y._.js.map +0 -1
- package/.next/server/chunks/ssr/_1b6au28._.js +0 -3
- package/.next/server/chunks/ssr/_1b6au28._.js.map +0 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_(app)_page_actions_1gxdy57.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_(app)_page_actions_1gxdy57.js.map +0 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_(app)_session_[name]_page_actions_115d_ja.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_(app)_session_[name]_page_actions_115d_ja.js.map +0 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_(app)_settings_key_page_actions_1jsc3or.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_(app)_settings_key_page_actions_1jsc3or.js.map +0 -1
- package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-.js.map +0 -1
- package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yr.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yr.js.map +0 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_record-test_page_actions_0a_yofw.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_record-test_page_actions_0a_yofw.js.map +0 -1
- package/.next/server/chunks/ssr/_next-internal_server_app_styleguide_page_actions_174h7x7.js +0 -3
- package/.next/server/chunks/ssr/_next-internal_server_app_styleguide_page_actions_174h7x7.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_0el53_h._.js +0 -10
- package/.next/server/chunks/ssr/node_modules_0el53_h._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_0h91jdk._.js +0 -33
- package/.next/server/chunks/ssr/node_modules_0h91jdk._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_1fxqp22._.js +0 -10
- package/.next/server/chunks/ssr/node_modules_1fxqp22._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_1loo6j7._.js +0 -6
- package/.next/server/chunks/ssr/node_modules_1loo6j7._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_1pvqj0r._.js +0 -3
- package/.next/server/chunks/ssr/node_modules_1pvqj0r._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_0uboya6._.js +0 -6
- package/.next/server/chunks/ssr/node_modules_next_dist_0uboya6._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_172hvm-._.js +0 -19
- package/.next/server/chunks/ssr/node_modules_next_dist_172hvm-._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js +0 -3
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j3._.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js +0 -3
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0-o-goa.js +0 -3
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0-o-goa.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js +0 -3
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0x.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0_q50sh.js +0 -4
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0_q50sh.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0_xbpm0.js +0 -4
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0_xbpm0.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_119i6eu.js +0 -4
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_119i6eu.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_14nl2rs.js +0 -4
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_14nl2rs.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_18u8k23.js +0 -4
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_18u8k23.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19--w_z.js +0 -4
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19--w_z.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1_iwj0a.js +0 -4
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1_iwj0a.js.map +0 -1
- package/.next/server/chunks/ssr/node_modules_node-fetch_src_index_1e0t9p6.js +0 -3
- package/.next/server/chunks/ssr/node_modules_node-fetch_src_index_1e0t9p6.js.map +0 -1
- package/.next/server/chunks/ssr/src_19oqe9t._.js +0 -3
- package/.next/server/chunks/ssr/src_19oqe9t._.js.map +0 -1
- package/.next/server/chunks/ssr/src_app_record-test_page_tsx_08-2bld._.js +0 -9
- package/.next/server/chunks/ssr/src_app_record-test_page_tsx_08-2bld._.js.map +0 -1
- package/.next/server/chunks/ssr/src_components_app-sidebar_tsx_1xx2k53._.js +0 -3
- package/.next/server/chunks/ssr/src_components_app-sidebar_tsx_1xx2k53._.js.map +0 -1
- package/.next/server/chunks/ssr/src_components_settings_key-setup_tsx_0jxhnpa._.js +0 -3
- package/.next/server/chunks/ssr/src_components_settings_key-setup_tsx_0jxhnpa._.js.map +0 -1
- package/.next/server/chunks/ssr/src_components_ui_0lq7ewx._.js +0 -3
- package/.next/server/chunks/ssr/src_components_ui_0lq7ewx._.js.map +0 -1
- package/.next/static/CIZxngYjzUw1Kb0KrE473/_buildManifest.js +0 -11
- package/.next/static/CIZxngYjzUw1Kb0KrE473/_clientMiddlewareManifest.js +0 -1
- package/.next/static/chunks/05-c3ty_6dwfk.js +0 -1
- package/.next/static/chunks/07-hzktxqjvzd.js +0 -4
- package/.next/static/chunks/09bn0buuu6k2x.js +0 -1
- package/.next/static/chunks/0kkimqpuecvfn.js +0 -1
- package/.next/static/chunks/0mk1g55o6kl1e.js +0 -2
- package/.next/static/chunks/0ul837-9k0zx_.js +0 -63
- package/.next/static/chunks/0wpges32btt_p.js +0 -1
- package/.next/static/chunks/18qo-4_hfuwko.js +0 -1
- package/.next/static/chunks/1_dsevxz78b97.js +0 -1
- package/.next/static/chunks/2-oqhnxovgl_2.js +0 -44
- package/.next/static/chunks/2et_7fxuzt9cq.js +0 -31
- package/.next/static/chunks/2im7c515bo69p.js +0 -1
- package/.next/static/chunks/2merpuxt1zcvf.js +0 -1
- package/.next/static/chunks/2qb8lge1e2sv2.js +0 -1
- package/.next/static/chunks/2sj0gufu0lojq.css +0 -3
- package/.next/static/chunks/2zloaj9ja_vpy.js +0 -1
- package/.next/static/chunks/3rvy2rc9d_hwt.js +0 -1
- package/.next/static/chunks/3uci2qhsbp444.js +0 -50
- package/.next/static/chunks/3yao5u25-bf0g.js +0 -1
- package/.next/static/chunks/41_0qs6kjmoek.js +0 -1
- package/.next/static/chunks/4395sbjm36lbl.js +0 -1
- package/.next/static/chunks/turbopack-2cevjmbuh84ft.js +0 -1
- package/.next/static/media/icon.2_sgat73yt9an.svg +0 -7
- package/.next/trace +0 -1
- package/.next/trace-build +0 -1
- package/.next/turbopack +0 -0
- /package/.next/{server/app/(app)/page/react-loadable-manifest.json → react-loadable-manifest.json} +0 -0
- /package/.next/static/{CIZxngYjzUw1Kb0KrE473 → FExJe2q2O67X3zxf-SYQ_}/_ssgManifest.js +0 -0
- /package/.next/static/chunks/{0cz1d0mv5g_q7.js → polyfills-42372ed130431b0a.js} +0 -0
- /package/.next/static/media/{5ce348bf30bf5439-s.31988l_ccedte.woff2 → 013b72fa676f92e0-s.woff2} +0 -0
- /package/.next/static/media/{5476f68d60460930-s.2uwcyprjm3xu3.woff2 → 19cfc7226ec3afaa-s.woff2} +0 -0
- /package/.next/static/media/{9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2 → 21350d82a1f187e9-s.woff2} +0 -0
- /package/.next/static/media/{bbc41e54d2fcbd21-s.1rgnod-3esatf.woff2 → 2b5b02fc7e511755-s.woff2} +0 -0
- /package/.next/static/media/{6306c77e7c8268e4-s.2dbetqa9o8jxf.woff2 → 65f03d54ccadf4a8-s.woff2} +0 -0
- /package/.next/static/media/{797e433ab948586e-s.p.0r6juujl39pe6.woff2 → 7d4881bb7e1bf84d-s.p.woff2} +0 -0
- /package/.next/static/media/{1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2 → 8e9860b6e62d6359-s.woff2} +0 -0
- /package/.next/static/media/{4fa387ec64143e14-s.2tuy5pz7dlieh.woff2 → b9408752a0c24fb9-s.woff2} +0 -0
- /package/.next/static/media/{2c55a0e60120577a-s.0-dom-5bn10r2.woff2 → ba9851c3c22cd980-s.woff2} +0 -0
- /package/.next/static/media/{ad66f9afd8947f86-s.3lvt2whj97whp.woff2 → c5fe6dc8356a8c31-s.woff2} +0 -0
- /package/.next/static/media/{2bbe8d2671613f1f-s.0k62hbripvv8p.woff2 → df0a9ae256c0569c-s.woff2} +0 -0
- /package/.next/static/media/{7d817b4c03b0c5f1-s.1uyisp29ctx0d.woff2 → e038a29029a234f2-s.woff2} +0 -0
- /package/.next/static/media/{83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2 → e4af272ccee01ff0-s.p.woff2} +0 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
exports.id=367,exports.ids=[367],exports.modules={94:(a,b,c)=>{"use strict";c.d(b,{BE:()=>h,Bx:()=>l,DJ:()=>r,Ki:()=>o,R6:()=>f,VR:()=>g,gp:()=>n,h9:()=>p,kW:()=>j,p1:()=>u,tm:()=>k});var d=c(44046),e=c(44852);let f=["problem","idea","question","decision","followup","praise"],g=["ui_design","dev_vs_design","documentation","mixed","other"],h=["low","med","high"],i=/^\d{1,3}:[0-5]\d$/;function j(a){let b=a.normalize("NFKD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,60).replace(/-+$/g,"");return b.length>0?b:void 0}function k(a){let[b,c]=a.split(":");return 60*Number(b)+Number(c)}function l(a){let b=Math.max(0,Math.floor(a)),c=String(Math.floor(b/60)).padStart(2,"0"),d=String(b%60).padStart(2,"0");return`${c}:${d}`}let m=a=>d.Yj().regex(i,`${a} must be "mm:ss" (e.g. "03:42")`),n=d.Ik({timestamp:m("timestamp"),screenshot_timestamp:m("screenshot_timestamp"),title:d.Yj().min(1),description:d.Yj().min(1),screen_context:d.Yj().min(1),category:d.k5(f),priority:d.k5(h)}),o=["thorough","economy"],p=["en","uk"],q=d.Ik({analyzedAt:d.Yj().min(1),mode:d.k5(o),language:d.k5(p).optional(),origin:d.k5(["analyze","revise-text","revise-video"]).optional(),models:d.YO(d.Yj()),tokensIn:d.ai(),tokensOut:d.ai(),costUsd:d.ai().optional()}),r=d.Ik({review_type:d.k5(g),overview:d.Yj().min(1),suggested_name:d.Yj().regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/,'suggested_name must be kebab-case (e.g. "onboarding-review")').max(60).optional(),tasks:d.YO(n),run:q.optional()}),s=(a,b)=>({type:e.ZU.STRING,enum:[...a],description:b}),t={type:e.ZU.OBJECT,description:"One actionable item extracted from the review.",properties:{timestamp:{type:e.ZU.STRING,description:'When the item was discussed in the recording, as "mm:ss".'},screenshot_timestamp:{type:e.ZU.STRING,description:'When the item is best *visible* on screen, as "mm:ss". This may differ from `timestamp` — pick the moment the issue is clearest, not when it was spoken about.'},title:{type:e.ZU.STRING,description:"Short, specific, actionable title (English)."},description:{type:e.ZU.STRING,description:"Rich description: what was on screen + what was said + why it matters (English)."},screen_context:{type:e.ZU.STRING,description:"What screen/view/state the recording is showing at this moment."},category:s(f,"The nature of the item. Use exactly one of the allowed values."),priority:s(h,"Relative urgency of acting on the item.")},required:["timestamp","screenshot_timestamp","title","description","screen_context","category","priority"],propertyOrdering:["timestamp","screenshot_timestamp","title","description","screen_context","category","priority"]},u={type:e.ZU.OBJECT,properties:{review_type:s(g,"The kind of review session, inferred from the overall recording."),overview:{type:e.ZU.STRING,description:"Structural overview of the recording: what it is and its overall context."},suggested_name:{type:e.ZU.STRING,description:'A concise, kebab-case English name for this session, derived from what it is about (e.g. "onboarding-step-2-review", "settings-page-polish"). Lowercase words joined by single hyphens; no spaces, punctuation, or file extension.'},tasks:{type:e.ZU.ARRAY,items:t,description:"Every actionable item found, in the order discussed."}},required:["review_type","overview","suggested_name","tasks"],propertyOrdering:["review_type","overview","suggested_name","tasks"]}},8074:(a,b,c)=>{"use strict";c.d(b,{Bi:()=>k,jp:()=>j});var d=c(94);let e=d.VR.join(", "),f=d.R6.join(", "),g=d.BE.join(", ");function h(a){return 0===a.length?"(no tasks yet)":a.map(a=>{let b=[`- [${a.id}] (${a.category}, ${a.priority}) ${a.title}`,` when: ${a.timestamp??"—"} frame: ${a.screenshot_timestamp??"—"}`,` description: ${a.description}`];return a.screen_context&&b.push(` screen: ${a.screen_context}`),b.join("\n")}).join("\n")}function i(a){return 0===a.length?"(no comments)":a.map(a=>{if("global"===a.kind)return`- [session] ${a.body}`;let b="overview"===a.field?"on the overview":a.taskId?`on task ${a.taskId}${a.field?` (${a.field})`:""}`:"on the session",c=a.quote?` re: “${a.quote}”`:"";return`- [${b}]${c} ${a.body}`}).join("\n")}function j(a,b,c="en"){var d;return d=["You are REVISING an existing analysis of a design/product review recording,\nbased on a reviewer's comments. You do NOT have the recording this time —\nwork from the prior analysis and the comments below.\n\nPRIOR ANALYSIS",` review_type: ${a.review_type}`,` overview: ${a.overview}`,"\n tasks:",h(a.tasks),"\nREVIEWER COMMENTS (each is either on a specific task/field, on the overview,\nor on the whole session). Apply ALL of them:",i(b),"\nProduce a REVISED analysis. You MAY restructure freely to satisfy the\ncomments: rewrite, merge, split, add, remove, or re-categorize tasks, and\nrevise the overview. Leave untouched anything no comment concerns.\n\nRules:",`- \`review_type\` — one of: ${e}. Keep the prior one unless a`," comment clearly implies otherwise.",`- \`category\` — exactly one of: ${f}.`,`- \`priority\` — one of: ${g}.`,"- `timestamp` / `screenshot_timestamp` — \"mm:ss\". PRESERVE a retained task's\n timestamps unchanged (the extracted screenshots are keyed to them); only\n change a timestamp if a comment is specifically about WHICH moment a task\n refers to. For a genuinely new task, use the most relevant moment you can\n infer from the prior tasks; if none applies, reuse a nearby task's.\n- `title`, `description`, `screen_context` — English, specific, actionable.\n- `suggested_name` — keep it meaningful for the (possibly changed) task set;\n kebab-case ASCII, lowercase words joined by single hyphens.\n\nReturn the complete revised analysis (overview, review_type, suggested_name,\nand the full task list) — not a diff."].join("\n"),"uk"===c?`${d}
|
|
2
|
+
|
|
3
|
+
OUTPUT LANGUAGE — Ukrainian. This OVERRIDES every instruction above that says
|
|
4
|
+
to write in English:
|
|
5
|
+
Write ALL natural-language output (overview, task title, description,
|
|
6
|
+
screen_context) in clean standard Ukrainian. Normalize Russian/surzhyk to
|
|
7
|
+
correct Ukrainian; do NOT preserve them.
|
|
8
|
+
Do NOT translate the fixed codes: \`category\`, \`review_type\`, and \`priority\`
|
|
9
|
+
must stay their exact English enum values. \`suggested_name\` must stay
|
|
10
|
+
kebab-case ASCII.`:d}function k(a,b){return["REVISION CONTEXT — you previously analyzed THIS recording. Below is that prior\nanalysis and a reviewer's comments on it. Re-watch the recording and produce a\nREVISED analysis that incorporates the comments; use the recording to ground\nand correct the prior tasks (you may add, remove, rewrite, merge, split, or\nre-categorize them).\n",`Prior review_type: ${a.review_type}`,`Prior overview: ${a.overview}`,"\nPrior tasks:",h(a.tasks),"\nReviewer comments (apply ALL):",i(b)].join("\n")}},13793:(a,b,c)=>{"use strict";c.d(b,{NM:()=>e});var d=c(44046);let e=d.Ik({id:d.Yj().min(1),kind:d.k5(["anchor","global"]),taskId:d.Yj().min(1).optional(),field:d.k5(["title","description","screen_context","overview"]).optional(),quote:d.Yj().min(1).optional(),body:d.Yj().min(1),createdAt:d.Yj().min(1)});d.Ik({comments:d.YO(e)})},31116:(a,b,c)=>{"use strict";c.d(b,{Tw:()=>p,ns:()=>v,Kq:()=>w,y2:()=>q,nJ:()=>y});var d=c(44852),e=c(44046);let f=process.env.GEMINI_MODEL??"gemini-2.5-pro",g=(process.env.GEMINI_FALLBACK_MODELS??"gemini-2.5-flash,gemini-2.5-flash-lite").split(",").map(a=>a.trim()).filter(Boolean),h=null;var i=c(94),j=c(98347);let k=i.VR.join(", "),l=i.R6.join(", "),m=i.BE.join(", ");function n(a,b){return"uk"===b?`${a}
|
|
11
|
+
|
|
12
|
+
OUTPUT LANGUAGE — Ukrainian. This OVERRIDES every instruction above that says
|
|
13
|
+
to write in English:
|
|
14
|
+
Write ALL natural-language output (overview, task title, description,
|
|
15
|
+
screen_context) in clean standard Ukrainian. The speech may be Ukrainian,
|
|
16
|
+
Russian, or surzhyk — normalize it to correct Ukrainian; do NOT preserve
|
|
17
|
+
Russian/surzhyk.
|
|
18
|
+
Do NOT translate the fixed codes: \`category\`, \`review_type\`, and \`priority\`
|
|
19
|
+
must stay their exact English enum values. \`suggested_name\` must stay
|
|
20
|
+
kebab-case ASCII (lowercase a–z, digits, single hyphens) — do NOT
|
|
21
|
+
transliterate it into Cyrillic.`:a}let o="video/webm";class p extends Error{constructor(a,b){super(b),this.kind=a,this.name="AnalyzeError"}}function q(a,b,c="en",d="analyze"){let e=[],f=0,g=0,h=0,i=!0;for(let b of a){e.includes(b.model)||e.push(b.model),f+=b.tokensIn,g+=b.tokensOut;let a=(0,j.O4)(b.model,b.tokensIn,b.tokensOut,b.tokensIn);void 0===a?i=!1:h+=a}return{analyzedAt:new Date().toISOString(),mode:b,language:c,origin:d,models:e,tokensIn:f,tokensOut:g,costUsd:i?Math.round(1e6*h)/1e6:void 0}}let r={type:d.ZU.OBJECT,properties:{review_type:{type:d.ZU.STRING,enum:[...i.VR],description:"The kind of review session, inferred from the whole recording."},overview:{type:d.ZU.STRING,description:"Structural overview of the recording in English: what it is and its overall context."},suggested_name:{type:d.ZU.STRING,description:'A concise, kebab-case English name for this session (e.g. "onboarding-step-2-review"). Lowercase words joined by single hyphens.'}},required:["review_type","overview","suggested_name"],propertyOrdering:["review_type","overview","suggested_name"]},s=i.DJ.pick({review_type:!0,overview:!0}).extend({suggested_name:e.Yj().optional()}),t=i.DJ.omit({suggested_name:!0}),u=i.DJ.omit({suggested_name:!0,run:!0}).extend({suggested_name:e.Yj().optional()});async function v(a,b=o,c,d="thorough",e="en",f,g){let{result:h,calls:i}=await w(a,g,b,c,d,e,f);return{...h,run:q(i,d,e)}}async function w(a,b,c=o,d,e="thorough",f="en",g){if("economy"===e){let e=await y({prompt:x(function(a="en"){return n(`You are analyzing a screen-recording of a design/product review. The reviewer
|
|
22
|
+
narrates out loud (possibly in Ukrainian) while moving through screens.
|
|
23
|
+
|
|
24
|
+
Watch the ENTIRE recording, then produce ALL of the following in one response:
|
|
25
|
+
|
|
26
|
+
1. \`overview\` — a few sentences in ENGLISH describing what this recording is:
|
|
27
|
+
what is being reviewed, the overall context, and the reviewer's apparent goal.
|
|
28
|
+
|
|
29
|
+
2. \`review_type\` — classify the session as exactly ONE of: ${k}.
|
|
30
|
+
- ui_design: reviewing visual/interaction design of a UI (e.g. in Figma).
|
|
31
|
+
- dev_vs_design: comparing an implemented build against its design.
|
|
32
|
+
- documentation: checking whether docs/specs match current reality.
|
|
33
|
+
- mixed: clearly spans more than one of the above.
|
|
34
|
+
- other: none of the above fit.
|
|
35
|
+
|
|
36
|
+
3. \`suggested_name\` — a concise, human-meaningful name for this session in
|
|
37
|
+
ENGLISH, kebab-case: lowercase words joined by single hyphens, no spaces,
|
|
38
|
+
punctuation, or file extension. Base it on WHAT is being reviewed, not on the
|
|
39
|
+
date. Aim for 2–5 words (e.g. "onboarding-step-2-review", "settings-page-polish").
|
|
40
|
+
|
|
41
|
+
4. \`tasks\` — EVERY actionable item the reviewer raises, in the order discussed.
|
|
42
|
+
Classify each item using the review_type you chose above to tune attention, but
|
|
43
|
+
ALWAYS use the fixed category set regardless of review_type. For each item:
|
|
44
|
+
- \`timestamp\` — when it was DISCUSSED, as "mm:ss".
|
|
45
|
+
- \`screenshot_timestamp\` — the moment the item is best VISIBLE on screen, as
|
|
46
|
+
"mm:ss". This is often NOT the same as \`timestamp\`: pick the frame where the
|
|
47
|
+
thing being discussed is clearest, even if spoken about before or after it.
|
|
48
|
+
- \`title\` — short, specific, actionable (English).
|
|
49
|
+
- \`description\` — rich: what was on screen + what was said + why it matters (English).
|
|
50
|
+
- \`screen_context\` — what screen/view/state is shown at that moment.
|
|
51
|
+
- \`category\` — exactly one of: ${l}. The NATURE of the item:
|
|
52
|
+
problem (something wrong), idea (a suggestion), question (an open question),
|
|
53
|
+
decision (a choice made), followup (a deferred action), praise (called out as good).
|
|
54
|
+
- \`priority\` — one of: ${m}.
|
|
55
|
+
|
|
56
|
+
Base all of it on the whole recording, not just the opening moments. Write all
|
|
57
|
+
output in English even though the narration may be Ukrainian. If the recording
|
|
58
|
+
contains no actionable items, return an empty task list.`,a)}(f),b),responseSchema:i.p1,file:{uri:a,mimeType:c},signal:d,chosenModel:g}),h=z(u,e.data,"combined step");return{result:z(i.DJ,{review_type:h.review_type,overview:h.overview,suggested_name:(0,i.kW)(h.suggested_name??""),tasks:h.tasks},"assembled result"),calls:[e.usage]}}let h=await y({prompt:x(function(a="en"){return n(`You are analyzing a screen-recording of a design/product review. The reviewer
|
|
59
|
+
narrates out loud (possibly in Ukrainian) while moving through screens.
|
|
60
|
+
|
|
61
|
+
First, watch the entire recording and form a STRUCTURAL OVERVIEW — do not yet
|
|
62
|
+
extract individual tasks.
|
|
63
|
+
|
|
64
|
+
Produce three things:
|
|
65
|
+
|
|
66
|
+
1. \`overview\` — a few sentences in ENGLISH describing what this recording is:
|
|
67
|
+
what is being reviewed, the overall context, and the reviewer's apparent
|
|
68
|
+
goal. This is orientation for the extraction step that follows.
|
|
69
|
+
|
|
70
|
+
2. \`review_type\` — classify the session as exactly ONE of: ${k}.
|
|
71
|
+
- ui_design: reviewing visual/interaction design of a UI (e.g. in Figma).
|
|
72
|
+
- dev_vs_design: comparing an implemented build against its design.
|
|
73
|
+
- documentation: checking whether docs/specs match current reality.
|
|
74
|
+
- mixed: clearly spans more than one of the above.
|
|
75
|
+
- other: none of the above fit.
|
|
76
|
+
|
|
77
|
+
3. \`suggested_name\` — a concise, human-meaningful name for this session in
|
|
78
|
+
ENGLISH, kebab-case: lowercase words joined by single hyphens, no spaces,
|
|
79
|
+
punctuation, or file extension. Base it on WHAT is being reviewed, not on the
|
|
80
|
+
date. Aim for 2–5 words (e.g. "onboarding-step-2-review", "settings-page-polish",
|
|
81
|
+
"dashboard-empty-states"). This becomes the session's display name.
|
|
82
|
+
|
|
83
|
+
Base all three on the whole recording, not just the opening moments.`,a)}(f),b),responseSchema:r,file:{uri:a,mimeType:c},signal:d,chosenModel:g}),j=z(s,h.data,"overview step"),p=await y({prompt:x(function(a,b,c="en"){return n(`You are extracting actionable items from a screen-recording of a review.
|
|
84
|
+
|
|
85
|
+
The recording has already been classified. Use this established context and
|
|
86
|
+
reuse it verbatim in your output — do not re-derive it:
|
|
87
|
+
|
|
88
|
+
review_type: ${b}
|
|
89
|
+
overview: ${a}
|
|
90
|
+
|
|
91
|
+
Because review_type is "${b}", pay particular attention to the kinds
|
|
92
|
+
of findings that matter for that sort of review — but ALWAYS classify every
|
|
93
|
+
item using the fixed category set below, regardless of review_type.
|
|
94
|
+
|
|
95
|
+
Extract EVERY actionable item the reviewer raises, in the order discussed.
|
|
96
|
+
For each item provide:
|
|
97
|
+
|
|
98
|
+
- \`timestamp\` — when it was DISCUSSED, as "mm:ss".
|
|
99
|
+
- \`screenshot_timestamp\` — the moment the item is best VISIBLE on screen, as
|
|
100
|
+
"mm:ss". This is often NOT the same as \`timestamp\`: pick the frame where the
|
|
101
|
+
thing being discussed is clearest, even if the reviewer talks about it before
|
|
102
|
+
or after that frame.
|
|
103
|
+
- \`title\` — short, specific, actionable (English).
|
|
104
|
+
- \`description\` — rich: what was on screen + what was said + why it matters
|
|
105
|
+
(English).
|
|
106
|
+
- \`screen_context\` — what screen/view/state is shown at that moment.
|
|
107
|
+
- \`category\` — exactly one of: ${l}. This describes the NATURE of
|
|
108
|
+
the item:
|
|
109
|
+
problem (something wrong), idea (a suggestion), question (an open
|
|
110
|
+
question), decision (a choice made), followup (a deferred action),
|
|
111
|
+
praise (something explicitly called out as good).
|
|
112
|
+
- \`priority\` — one of: ${m}.
|
|
113
|
+
|
|
114
|
+
Write all output in English even though the narration may be Ukrainian.
|
|
115
|
+
If the recording contains no actionable items, return an empty task list.`,c)}(j.overview,j.review_type,f),b),responseSchema:i.p1,file:{uri:a,mimeType:c},signal:d,chosenModel:g}),q=z(t,p.data,"task-extraction step");return{result:z(i.DJ,{review_type:j.review_type,overview:j.overview,suggested_name:(0,i.kW)(j.suggested_name??""),tasks:q.tasks},"assembled result"),calls:[h.usage,p.usage]}}function x(a,b){return b?`${b}
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
${a}`:a}async function y({prompt:a,responseSchema:b,file:c,signal:e,chosenModel:i}){var k,l,m;let n,o,q,r=i??f,s=[{model:r,attempts:A},...(k=r,g.filter(a=>{var b,c;let d,e;return a!==k&&(b=a,c=k,d=(0,j.JI)(b)?.input,e=(0,j.JI)(c)?.input,void 0===d?void 0===e:void 0===e||d<=e)})).map(a=>({model:a,attempts:B}))],t=!1;a:for(let{model:f,attempts:g}of s)for(let i=1;i<=g;i++)try{let g=c?[(0,d.eX)(c.uri,c.mimeType),a]:[a],i=await (function(){if(h)return h;let a=process.env.GEMINI_API_KEY?.trim();if(!a)throw Error("GEMINI_API_KEY is not set. Copy .env.example to .env.local and add your key from https://aistudio.google.com/apikey");return h=new d.M4({apiKey:a})})().models.generateContent({model:f,contents:(0,d.$o)(g),config:{responseMimeType:"application/json",responseSchema:b,abortSignal:e}});n=i.text,l=f,m=i.usageMetadata,o={model:l,tokensIn:m?.promptTokenCount??0,tokensOut:(m?.candidatesTokenCount??0)+(m?.thoughtsTokenCount??0)},t=!0,f!==r&&console.warn(`[analyze] used fallback model ${f} (${r} overloaded)`);break a}catch(a){if(q=a,D(a))throw a;if(function(a){let b=a?.status;if(401===b||403===b)return!0;let c=E(a).toLowerCase();return c.includes("api key not valid")||c.includes("api_key_invalid")||c.includes("permission_denied")}(a))throw new p("invalid_api_key",`Gemini rejected the API key (${E(a)}).
|
|
120
|
+
Check GEMINI_API_KEY in .env.local (no extra spaces/quotes) and that
|
|
121
|
+
the key is active at https://aistudio.google.com/apikey.`);if(!function(a){if(D(a))return!1;let b=a?.status;if(500===b||503===b||429===b)return!0;let c=E(a).toLowerCase();return c.includes("high demand")||c.includes("overloaded")||c.includes("unavailable")||c.includes("try again later")||c.includes("rate limit")||c.includes("resource_exhausted")||c.includes("quota")}(a))throw new p("api_error",`Gemini call failed: ${E(a)}`);i<g&&await function(a,b){return new Promise((c,d)=>{if(b?.aborted)return void d(b.reason??new DOMException("Aborted","AbortError"));let e=setTimeout(c,a);b?.addEventListener("abort",()=>{clearTimeout(e),d(b.reason??new DOMException("Aborted","AbortError"))},{once:!0})})}(C*2**(i-1)+Math.floor(250*Math.random()),e)}if(!t)throw new p("api_error",`Gemini call failed: ${E(q)}`);if(!n||!o)throw new p("empty_response","Gemini returned an empty response (no text). The model may have refused or hit a safety filter; re-run.");try{return{data:JSON.parse(n),usage:o}}catch{throw new p("invalid_json",`Gemini returned text that is not valid JSON despite responseSchema. First 200 chars:
|
|
122
|
+
${n.slice(0,200)}`)}}function z(a,b,c){let d=a.safeParse(b);if(d.success)return d.data;throw new p("schema_invalid",`Gemini output failed schema validation (${c}): ${E(d.error)}`)}let A=2,B=2,C=1e3;function D(a){return a?.name==="AbortError"}function E(a){let b=a instanceof Error?a.message:String(a);try{let a=JSON.parse(b);if(a?.error?.message)return a.error.message}catch{}return b}},39727:()=>{},47990:()=>{},53562:(a,b,c)=>{"use strict";c.d(b,{E_:()=>g});var d=c(44046),e=c(94);let f=d.Ik({id:d.Yj().min(1),origin:d.k5(["ai","human"]),screenshot:d.Yj().min(1).optional(),note:d.Yj().optional(),timestamp:e.gp.shape.timestamp.optional(),screenshot_timestamp:e.gp.shape.screenshot_timestamp.optional(),screen_context:e.gp.shape.screen_context.optional(),title:e.gp.shape.title,description:e.gp.shape.description,category:e.gp.shape.category,priority:e.gp.shape.priority}),g=d.Ik({review_type:e.DJ.shape.review_type,overview:e.DJ.shape.overview,suggested_name:e.DJ.shape.suggested_name,run:e.DJ.shape.run,note:d.Yj().optional(),tasks:d.YO(f)})},78335:()=>{},96487:()=>{},98347:(a,b,c)=>{"use strict";c.d(b,{JI:()=>h,O4:()=>i});let d={"gemini-2.5-pro":{input:{threshold:2e5,below:1.25,above:2.5},output:{threshold:2e5,below:10,above:15}},"gemini-2.5-flash":{input:.3,output:2.5},"gemini-2.5-flash-lite":{input:.1,output:.4}};function e(){let a=process.env.GEMINI_PRICING?.trim();if(!a)return d;try{let b=JSON.parse(a);return{...d,...b}}catch{return console.warn("[pricing] GEMINI_PRICING is not valid JSON — using built-in prices."),d}}function f(a,b){return"number"==typeof a?a:b>a.threshold?a.above:a.below}function g(a){return"number"==typeof a?a:a.below}function h(a){let b=e()[a];if(b)return{input:g(b.input),output:g(b.output)}}function i(a,b,c,d){let g=e()[a];if(g)return b/1e6*f(g.input,d)+c/1e6*f(g.output,d)}}};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
exports.id=393,exports.ids=[393],exports.modules={1393:function(a,b,c){"use strict";var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c);var e=Object.getOwnPropertyDescriptor(b,c);(!e||("get"in e?!b.__esModule:e.writable||e.configurable))&&(e={enumerable:!0,get:function(){return b[c]}}),Object.defineProperty(a,d,e)}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__setModuleDefault||(Object.create?function(a,b){Object.defineProperty(a,"default",{enumerable:!0,value:b})}:function(a,b){a.default=b}),f=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)"default"!==c&&Object.prototype.hasOwnProperty.call(a,c)&&d(b,a,c);return e(b,a),b},g=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.HttpsProxyAgent=void 0;let h=f(c(91645)),i=f(c(34631)),j=g(c(12412)),k=g(c(14830)),l=c(7038),m=c(1932),n=c(23279),o=(0,k.default)("https-proxy-agent"),p=a=>void 0===a.servername&&a.host&&!h.isIP(a.host)?{...a,servername:a.host}:a;class q extends l.Agent{constructor(a,b){super(b),this.options={path:void 0},this.proxy="string"==typeof a?new m.URL(a):a,this.proxyHeaders=b?.headers??{},o("Creating new HttpsProxyAgent instance: %o",this.proxy.href);const c=(this.proxy.hostname||this.proxy.host).replace(/^\[|\]$/g,""),d=this.proxy.port?parseInt(this.proxy.port,10):"https:"===this.proxy.protocol?443:80;this.connectOpts={ALPNProtocols:["http/1.1"],...b?s(b,"headers"):null,host:c,port:d}}async connect(a,b){let c,{proxy:d}=this;if(!b.host)throw TypeError('No "host" provided');"https:"===d.protocol?(o("Creating `tls.Socket`: %o",this.connectOpts),c=i.connect(p(this.connectOpts))):(o("Creating `net.Socket`: %o",this.connectOpts),c=h.connect(this.connectOpts));let e="function"==typeof this.proxyHeaders?this.proxyHeaders():{...this.proxyHeaders},f=h.isIPv6(b.host)?`[${b.host}]`:b.host,g=`CONNECT ${f}:${b.port} HTTP/1.1\r
|
|
2
|
+
`;if(d.username||d.password){let a=`${decodeURIComponent(d.username)}:${decodeURIComponent(d.password)}`;e["Proxy-Authorization"]=`Basic ${Buffer.from(a).toString("base64")}`}for(let a of(e.Host=`${f}:${b.port}`,e["Proxy-Connection"]||(e["Proxy-Connection"]=this.keepAlive?"Keep-Alive":"close"),Object.keys(e)))g+=`${a}: ${e[a]}\r
|
|
3
|
+
`;let k=(0,n.parseProxyResponse)(c);c.write(`${g}\r
|
|
4
|
+
`);let{connect:l,buffered:m}=await k;if(a.emit("proxyConnect",l),this.emit("proxyConnect",l,a),200===l.statusCode)return(a.once("socket",r),b.secureEndpoint)?(o("Upgrading socket connection to TLS"),i.connect({...s(p(b),"host","path","port"),socket:c})):c;c.destroy();let q=new h.Socket({writable:!1});return q.readable=!0,a.once("socket",a=>{o("Replaying proxy buffer for failed request"),(0,j.default)(a.listenerCount("data")>0),a.push(m),a.push(null)}),q}}function r(a){a.resume()}function s(a,...b){let c,d={};for(c in a)b.includes(c)||(d[c]=a[c]);return d}q.protocols=["http","https"],b.HttpsProxyAgent=q},7038:function(a,b,c){"use strict";var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c);var e=Object.getOwnPropertyDescriptor(b,c);(!e||("get"in e?!b.__esModule:e.writable||e.configurable))&&(e={enumerable:!0,get:function(){return b[c]}}),Object.defineProperty(a,d,e)}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__setModuleDefault||(Object.create?function(a,b){Object.defineProperty(a,"default",{enumerable:!0,value:b})}:function(a,b){a.default=b}),f=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)"default"!==c&&Object.prototype.hasOwnProperty.call(a,c)&&d(b,a,c);return e(b,a),b},g=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),b.Agent=void 0;let h=f(c(91645)),i=f(c(81630)),j=c(55591);g(c(86791),b);let k=Symbol("AgentBaseInternalState");class l extends i.Agent{constructor(a){super(a),this[k]={}}isSecureEndpoint(a){if(a){if("boolean"==typeof a.secureEndpoint)return a.secureEndpoint;if("string"==typeof a.protocol)return"https:"===a.protocol}let{stack:b}=Error();return"string"==typeof b&&b.split("\n").some(a=>-1!==a.indexOf("(https.js:")||-1!==a.indexOf("node:https:"))}incrementSockets(a){if(this.maxSockets===1/0&&this.maxTotalSockets===1/0)return null;this.sockets[a]||(this.sockets[a]=[]);let b=new h.Socket({writable:!1});return this.sockets[a].push(b),this.totalSocketCount++,b}decrementSockets(a,b){if(!this.sockets[a]||null===b)return;let c=this.sockets[a],d=c.indexOf(b);-1!==d&&(c.splice(d,1),this.totalSocketCount--,0===c.length&&delete this.sockets[a])}getName(a){return this.isSecureEndpoint(a)?j.Agent.prototype.getName.call(this,a):super.getName(a)}createSocket(a,b,c){let d={...b,secureEndpoint:this.isSecureEndpoint(b)},e=this.getName(d),f=this.incrementSockets(e);Promise.resolve().then(()=>this.connect(a,d)).then(g=>{if(this.decrementSockets(e,f),g instanceof i.Agent)try{return g.addRequest(a,d)}catch(a){return c(a)}this[k].currentSocket=g,super.createSocket(a,b,c)},a=>{this.decrementSockets(e,f),c(a)})}createConnection(){let a=this[k].currentSocket;if(this[k].currentSocket=void 0,!a)throw Error("No socket was returned in the `connect()` function");return a}get defaultPort(){return this[k].defaultPort??("https:"===this.protocol?443:80)}set defaultPort(a){this[k]&&(this[k].defaultPort=a)}get protocol(){return this[k].protocol??(this.isSecureEndpoint()?"https:":"http:")}set protocol(a){this[k]&&(this[k].protocol=a)}}b.Agent=l},11949:(a,b,c)=>{a.exports=function(a){function b(a){let c,e,f,g=null;function h(...a){if(!h.enabled)return;let d=Number(new Date);h.diff=d-(c||d),h.prev=c,h.curr=d,c=d,a[0]=b.coerce(a[0]),"string"!=typeof a[0]&&a.unshift("%O");let e=0;a[0]=a[0].replace(/%([a-zA-Z%])/g,(c,d)=>{if("%%"===c)return"%";e++;let f=b.formatters[d];if("function"==typeof f){let b=a[e];c=f.call(h,b),a.splice(e,1),e--}return c}),b.formatArgs.call(h,a),(h.log||b.log).apply(h,a)}return h.namespace=a,h.useColors=b.useColors(),h.color=b.selectColor(a),h.extend=d,h.destroy=b.destroy,Object.defineProperty(h,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==g?g:(e!==b.namespaces&&(e=b.namespaces,f=b.enabled(a)),f),set:a=>{g=a}}),"function"==typeof b.init&&b.init(h),h}function d(a,c){let d=b(this.namespace+(void 0===c?":":c)+a);return d.log=this.log,d}function e(a,b){let c=0,d=0,e=-1,f=0;for(;c<a.length;)if(d<b.length&&(b[d]===a[c]||"*"===b[d]))"*"===b[d]?(e=d,f=c):c++,d++;else{if(-1===e)return!1;d=e+1,c=++f}for(;d<b.length&&"*"===b[d];)d++;return d===b.length}return b.debug=b,b.default=b,b.coerce=function(a){return a instanceof Error?a.stack||a.message:a},b.disable=function(){let a=[...b.names,...b.skips.map(a=>"-"+a)].join(",");return b.enable(""),a},b.enable=function(a){for(let c of(b.save(a),b.namespaces=a,b.names=[],b.skips=[],("string"==typeof a?a:"").trim().replace(/\s+/g,",").split(",").filter(Boolean)))"-"===c[0]?b.skips.push(c.slice(1)):b.names.push(c)},b.enabled=function(a){for(let c of b.skips)if(e(a,c))return!1;for(let c of b.names)if(e(a,c))return!0;return!1},b.humanize=c(45452),b.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(a).forEach(c=>{b[c]=a[c]}),b.names=[],b.skips=[],b.formatters={},b.selectColor=function(a){let c=0;for(let b=0;b<a.length;b++)c=(c<<5)-c+a.charCodeAt(b)|0;return b.colors[Math.abs(c)%b.colors.length]},b.enable(b.load()),b}},14830:(a,b,c)=>{"u"<typeof process||"renderer"===process.type||process.__nwjs?a.exports=c(66094):a.exports=c(84024)},23279:function(a,b,c){"use strict";var d=this&&this.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(b,"__esModule",{value:!0}),b.parseProxyResponse=void 0;let e=(0,d(c(14830)).default)("https-proxy-agent:parse-proxy-response");b.parseProxyResponse=function(a){return new Promise((b,c)=>{let d=0,f=[];function g(){let i=a.read();i?function(i){f.push(i),d+=i.length;let j=Buffer.concat(f,d),k=j.indexOf("\r\n\r\n");if(-1===k){e("have not received end of HTTP headers yet..."),g();return}let l=j.slice(0,k).toString("ascii").split("\r\n"),m=l.shift();if(!m)return a.destroy(),c(Error("No header received from proxy CONNECT response"));let n=m.split(" "),o=+n[1],p=n.slice(2).join(" "),q={};for(let b of l){if(!b)continue;let d=b.indexOf(":");if(-1===d)return a.destroy(),c(Error(`Invalid header from proxy CONNECT response: "${b}"`));let e=b.slice(0,d).toLowerCase(),f=b.slice(d+1).trimStart(),g=q[e];"string"==typeof g?q[e]=[g,f]:Array.isArray(g)?g.push(f):q[e]=f}e("got proxy server response: %o %o",m,q),h(),b({connect:{statusCode:o,statusText:p,headers:q},buffered:j})}(i):a.once("readable",g)}function h(){a.removeListener("end",i),a.removeListener("error",j),a.removeListener("readable",g)}function i(){h(),e("onend"),c(Error("Proxy connection ended before receiving CONNECT response"))}function j(a){h(),e("onerror %o",a),c(a)}a.on("error",j),a.on("end",i),g()})}},27658:(a,b,c)=>{"use strict";let d,e=c(21820),f=c(83997),g=c(47633),{env:h}=process;function i(a){return 0!==a&&{level:a,hasBasic:!0,has256:a>=2,has16m:a>=3}}function j(a,b){if(0===d)return 0;if(g("color=16m")||g("color=full")||g("color=truecolor"))return 3;if(g("color=256"))return 2;if(a&&!b&&void 0===d)return 0;let c=d||0;if("dumb"===h.TERM)return c;if("win32"===process.platform){let a=e.release().split(".");return Number(a[0])>=10&&Number(a[2])>=10586?Number(a[2])>=14931?3:2:1}if("CI"in h)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some(a=>a in h)||"codeship"===h.CI_NAME?1:c;if("TEAMCITY_VERSION"in h)return+!!/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(h.TEAMCITY_VERSION);if("truecolor"===h.COLORTERM)return 3;if("TERM_PROGRAM"in h){let a=parseInt((h.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(h.TERM_PROGRAM){case"iTerm.app":return a>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(h.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(h.TERM)||"COLORTERM"in h?1:c}g("no-color")||g("no-colors")||g("color=false")||g("color=never")?d=0:(g("color")||g("colors")||g("color=true")||g("color=always"))&&(d=1),"FORCE_COLOR"in h&&(d="true"===h.FORCE_COLOR?1:"false"===h.FORCE_COLOR?0:0===h.FORCE_COLOR.length?1:Math.min(parseInt(h.FORCE_COLOR,10),3)),a.exports={supportsColor:function(a){return i(j(a,a&&a.isTTY))},stdout:i(j(!0,f.isatty(1))),stderr:i(j(!0,f.isatty(2)))}},45452:a=>{function b(a,b,c,d){return Math.round(a/c)+" "+d+(b>=1.5*c?"s":"")}a.exports=function(a,c){c=c||{};var d,e,f,g,h=typeof a;if("string"===h&&a.length>0){var i=a;if(!((i=String(i)).length>100)){var j=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(i);if(j){var k=parseFloat(j[1]);switch((j[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*k;case"weeks":case"week":case"w":return 6048e5*k;case"days":case"day":case"d":return 864e5*k;case"hours":case"hour":case"hrs":case"hr":case"h":return 36e5*k;case"minutes":case"minute":case"mins":case"min":case"m":return 6e4*k;case"seconds":case"second":case"secs":case"sec":case"s":return 1e3*k;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return k;default:break}}}return}if("number"===h&&isFinite(a)){return c.long?(e=Math.abs(d=a))>=864e5?b(d,e,864e5,"day"):e>=36e5?b(d,e,36e5,"hour"):e>=6e4?b(d,e,6e4,"minute"):e>=1e3?b(d,e,1e3,"second"):d+" ms":(g=Math.abs(f=a))>=864e5?Math.round(f/864e5)+"d":g>=36e5?Math.round(f/36e5)+"h":g>=6e4?Math.round(f/6e4)+"m":g>=1e3?Math.round(f/1e3)+"s":f+"ms"}throw Error("val is not a non-empty string or a valid number. val="+JSON.stringify(a))}},47633:a=>{"use strict";a.exports=(a,b=process.argv)=>{let c=a.startsWith("-")?"":1===a.length?"-":"--",d=b.indexOf(c+a),e=b.indexOf("--");return -1!==d&&(-1===e||d<e)}},66094:(a,b,c)=>{let d;b.formatArgs=function(b){if(b[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+b[0]+(this.useColors?"%c ":" ")+"+"+a.exports.humanize(this.diff),!this.useColors)return;let c="color: "+this.color;b.splice(1,0,c,"color: inherit");let d=0,e=0;b[0].replace(/%[a-zA-Z%]/g,a=>{"%%"!==a&&(d++,"%c"===a&&(e=d))}),b.splice(e,0,c)},b.save=function(a){try{a?b.storage.setItem("debug",a):b.storage.removeItem("debug")}catch(a){}},b.load=function(){let a;try{a=b.storage.getItem("debug")||b.storage.getItem("DEBUG")}catch(a){}return!a&&"u">typeof process&&"env"in process&&(a=process.env.DEBUG),a},b.useColors=function(){let a;return"u">typeof window&&!!window.process&&("renderer"===window.process.type||!!window.process.__nwjs)||!("u">typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("u">typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"u">typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"u">typeof navigator&&navigator.userAgent&&(a=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(a[1],10)>=31||"u">typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},b.storage=function(){try{return localStorage}catch(a){}}(),d=!1,b.destroy=()=>{d||(d=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))},b.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],b.log=console.debug||console.log||(()=>{}),a.exports=c(11949)(b);let{formatters:e}=a.exports;e.j=function(a){try{return JSON.stringify(a)}catch(a){return"[UnexpectedJSONParseError]: "+a.message}}},84024:(a,b,c)=>{let d=c(83997),e=c(28354);b.init=function(a){a.inspectOpts={};let c=Object.keys(b.inspectOpts);for(let d=0;d<c.length;d++)a.inspectOpts[c[d]]=b.inspectOpts[c[d]]},b.log=function(...a){return process.stderr.write(e.formatWithOptions(b.inspectOpts,...a)+"\n")},b.formatArgs=function(c){let{namespace:d,useColors:e}=this;if(e){let b=this.color,e="\x1b[3"+(b<8?b:"8;5;"+b),f=` ${e};1m${d} \u001B[0m`;c[0]=f+c[0].split("\n").join("\n"+f),c.push(e+"m+"+a.exports.humanize(this.diff)+"\x1b[0m")}else c[0]=(b.inspectOpts.hideDate?"":new Date().toISOString()+" ")+d+" "+c[0]},b.save=function(a){a?process.env.DEBUG=a:delete process.env.DEBUG},b.load=function(){return process.env.DEBUG},b.useColors=function(){return"colors"in b.inspectOpts?!!b.inspectOpts.colors:d.isatty(process.stderr.fd)},b.destroy=e.deprecate(()=>{},"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),b.colors=[6,2,3,4,5,1];try{let a=c(27658);a&&(a.stderr||a).level>=2&&(b.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(a){}b.inspectOpts=Object.keys(process.env).filter(a=>/^debug_/i.test(a)).reduce((a,b)=>{let c=b.substring(6).toLowerCase().replace(/_([a-z])/g,(a,b)=>b.toUpperCase()),d=process.env[b];return d=!!/^(yes|on|true|enabled)$/i.test(d)||!/^(no|off|false|disabled)$/i.test(d)&&("null"===d?null:Number(d)),a[c]=d,a},{}),a.exports=c(11949)(b);let{formatters:f}=a.exports;f.o=function(a){return this.inspectOpts.colors=this.useColors,e.inspect(a,this.inspectOpts).split("\n").map(a=>a.trim()).join(" ")},f.O=function(a){return this.inspectOpts.colors=this.useColors,e.inspect(a,this.inspectOpts)}},86791:function(a,b,c){"use strict";var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c);var e=Object.getOwnPropertyDescriptor(b,c);(!e||("get"in e?!b.__esModule:e.writable||e.configurable))&&(e={enumerable:!0,get:function(){return b[c]}}),Object.defineProperty(a,d,e)}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__setModuleDefault||(Object.create?function(a,b){Object.defineProperty(a,"default",{enumerable:!0,value:b})}:function(a,b){a.default=b}),f=this&&this.__importStar||function(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)"default"!==c&&Object.prototype.hasOwnProperty.call(a,c)&&d(b,a,c);return e(b,a),b};Object.defineProperty(b,"__esModule",{value:!0}),b.req=b.json=b.toBuffer=void 0;let g=f(c(81630)),h=f(c(55591));async function i(a){let b=0,c=[];for await(let d of a)b+=d.length,c.push(d);return Buffer.concat(c,b)}b.toBuffer=i,b.json=async function(a){let b=(await i(a)).toString("utf8");try{return JSON.parse(b)}catch(a){throw a.message+=` (input: ${b})`,a}},b.req=function(a,b={}){let c=(("string"==typeof a?a:a.href).startsWith("https:")?h:g).request(a,b),d=new Promise((a,b)=>{c.once("response",a).once("error",b).end()});return c.then=d.then.bind(d),c}}};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
exports.id=491,exports.ids=[491],exports.modules={6212:(a,b,c)=>{"use strict";c.d(b,{E_:()=>g,eJ:()=>h,fG:()=>j,xK:()=>i});var d=c(42706),e=c(45516);let f=d.Ik({id:d.Yj().min(1),origin:d.k5(["ai","human"]),screenshot:d.Yj().min(1).optional(),note:d.Yj().optional(),timestamp:e.gp.shape.timestamp.optional(),screenshot_timestamp:e.gp.shape.screenshot_timestamp.optional(),screen_context:e.gp.shape.screen_context.optional(),title:e.gp.shape.title,description:e.gp.shape.description,category:e.gp.shape.category,priority:e.gp.shape.priority}),g=d.Ik({review_type:e.DJ.shape.review_type,overview:e.DJ.shape.overview,suggested_name:e.DJ.shape.suggested_name,run:e.DJ.shape.run,note:d.Yj().optional(),tasks:d.YO(f)});function h(a){let b=g.safeParse(a);if(b.success)return{status:"stored",result:b.data};let c=e.DJ.safeParse(a);return c.success?{status:"legacy",result:c.data}:{status:"malformed"}}function i(a){let b=0;for(let c of a){let a=/(\d+)$/.exec(c.id);a&&(b=Math.max(b,Number(a[1])))}return`h${b+1}`}function j(a,b){let c=b(a.tasks),d=a.tasks.map((a,b)=>({id:`t${b+1}`,origin:"ai",screenshot:c[b],...a}));return{review_type:a.review_type,overview:a.overview,suggested_name:a.suggested_name,run:a.run,tasks:d}}},7913:(a,b,c)=>{"use strict";c.d(b,{WorkspaceProvider:()=>e});var d=c(77943);(0,d.registerClientReference)(function(){throw Error("Attempted to call useWorkspace() from the server but useWorkspace is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/workspace/workspace-provider.tsx","useWorkspace");let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call WorkspaceProvider() from the server but WorkspaceProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/workspace/workspace-provider.tsx","WorkspaceProvider")},11715:(a,b,c)=>{"use strict";c.d(b,{SidebarInset:()=>e,SidebarProvider:()=>f,SidebarTrigger:()=>g});var d=c(77943);(0,d.registerClientReference)(function(){throw Error("Attempted to call Sidebar() from the server but Sidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/ui/sidebar.tsx","Sidebar"),(0,d.registerClientReference)(function(){throw Error("Attempted to call SidebarContent() from the server but SidebarContent is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/ui/sidebar.tsx","SidebarContent"),(0,d.registerClientReference)(function(){throw Error("Attempted to call SidebarFooter() from the server but SidebarFooter is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/ui/sidebar.tsx","SidebarFooter"),(0,d.registerClientReference)(function(){throw Error("Attempted to call SidebarGroup() from the server but SidebarGroup is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/ui/sidebar.tsx","SidebarGroup"),(0,d.registerClientReference)(function(){throw Error("Attempted to call SidebarGroupAction() from the server but SidebarGroupAction is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/ui/sidebar.tsx","SidebarGroupAction"),(0,d.registerClientReference)(function(){throw Error("Attempted to call SidebarGroupContent() from the server but SidebarGroupContent is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/ui/sidebar.tsx","SidebarGroupContent"),(0,d.registerClientReference)(function(){throw Error("Attempted to call SidebarGroupLabel() from the server but SidebarGroupLabel is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/ui/sidebar.tsx","SidebarGroupLabel"),(0,d.registerClientReference)(function(){throw Error("Attempted to call SidebarHeader() from the server but SidebarHeader is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/ui/sidebar.tsx","SidebarHeader"),(0,d.registerClientReference)(function(){throw Error("Attempted to call SidebarInput() from the server but SidebarInput is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/ui/sidebar.tsx","SidebarInput");let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call SidebarInset() from the server but SidebarInset is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/ui/sidebar.tsx","SidebarInset");(0,d.registerClientReference)(function(){throw Error("Attempted to call SidebarMenu() from the server but SidebarMenu is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/ui/sidebar.tsx","SidebarMenu"),(0,d.registerClientReference)(function(){throw Error("Attempted to call SidebarMenuAction() from the server but SidebarMenuAction is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/ui/sidebar.tsx","SidebarMenuAction"),(0,d.registerClientReference)(function(){throw Error("Attempted to call SidebarMenuBadge() from the server but SidebarMenuBadge is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/ui/sidebar.tsx","SidebarMenuBadge"),(0,d.registerClientReference)(function(){throw Error("Attempted to call SidebarMenuButton() from the server but SidebarMenuButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/ui/sidebar.tsx","SidebarMenuButton"),(0,d.registerClientReference)(function(){throw Error("Attempted to call SidebarMenuItem() from the server but SidebarMenuItem is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/ui/sidebar.tsx","SidebarMenuItem"),(0,d.registerClientReference)(function(){throw Error("Attempted to call SidebarMenuSkeleton() from the server but SidebarMenuSkeleton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/ui/sidebar.tsx","SidebarMenuSkeleton"),(0,d.registerClientReference)(function(){throw Error("Attempted to call SidebarMenuSub() from the server but SidebarMenuSub is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/ui/sidebar.tsx","SidebarMenuSub"),(0,d.registerClientReference)(function(){throw Error("Attempted to call SidebarMenuSubButton() from the server but SidebarMenuSubButton is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/ui/sidebar.tsx","SidebarMenuSubButton"),(0,d.registerClientReference)(function(){throw Error("Attempted to call SidebarMenuSubItem() from the server but SidebarMenuSubItem is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/ui/sidebar.tsx","SidebarMenuSubItem");let f=(0,d.registerClientReference)(function(){throw Error("Attempted to call SidebarProvider() from the server but SidebarProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/ui/sidebar.tsx","SidebarProvider");(0,d.registerClientReference)(function(){throw Error("Attempted to call SidebarRail() from the server but SidebarRail is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/ui/sidebar.tsx","SidebarRail"),(0,d.registerClientReference)(function(){throw Error("Attempted to call SidebarSeparator() from the server but SidebarSeparator is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/ui/sidebar.tsx","SidebarSeparator");let g=(0,d.registerClientReference)(function(){throw Error("Attempted to call SidebarTrigger() from the server but SidebarTrigger is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/ui/sidebar.tsx","SidebarTrigger");(0,d.registerClientReference)(function(){throw Error("Attempted to call useSidebar() from the server but useSidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/ui/sidebar.tsx","useSidebar")},12068:(a,b,c)=>{"use strict";c.d(b,{X:()=>e,z:()=>f});var d=c(67484);function e(){}function f(){let[a,b]=(0,d.useState)({status:"loading"});return a}},12513:(a,b,c)=>{"use strict";c.d(b,{AnalysisProvider:()=>k,S:()=>j});var d=c(48249),e=c(67484),f=c(58741),g=c(18595),h=c(91932);let i=(0,e.createContext)(null);function j(){let a=(0,e.useContext)(i);if(!a)throw Error("useAnalysis must be used within an AnalysisProvider");return a}function k({children:a}){let{handle:b,refreshSessions:c}=(0,f.h)(),[j,l]=(0,e.useState)(null),[m,n]=(0,e.useState)({}),[o,p]=(0,e.useState)({}),[q,r]=(0,e.useState)(null),s=(0,e.useRef)(null),t=(0,e.useRef)(0),u=(0,e.useRef)(!1),v=(0,e.useCallback)(a=>{u.current||r({name:a})},[]),w=(0,e.useCallback)((a,d)=>{if(u.current)return;let e=++t.current,f=new AbortController;s.current=f,u.current=!0,n(b=>{if(!(a in b))return b;let c={...b};return delete c[a],c}),l({name:a,phase:"upload",status:"running"}),(async()=>{try{let g=await b.getDirectoryHandle(a);if(await (0,h.e)({sessionDir:g,sessionName:a,model:d.model,mode:d.mode,language:d.language,signal:f.signal,onProgress:b=>{t.current===e&&l({name:a,phase:b.phase,n:b.n,m:b.m,status:"running"})}}),t.current!==e)return;u.current=!1,l(null),p(b=>({...b,[a]:(b[a]??0)+1})),c()}catch(c){if(c instanceof DOMException&&"AbortError"===c.name||t.current!==e)return;u.current=!1,l(null);let b=c instanceof h.f?{kind:c.kind,message:c.message}:{kind:"internal",message:c instanceof Error?c.message:String(c)};n(c=>({...c,[a]:b}))}})()},[b,c]),x=(0,e.useCallback)(()=>{t.current+=1,u.current=!1,s.current?.abort(),l(null)},[]),y=(0,e.useCallback)(a=>{if(!q)return;let{name:b}=q;r(null),w(b,a)},[q,w]);return(0,d.jsxs)(i.Provider,{value:{analysis:j,analyze:v,cancelAnalyze:x,errors:m,completions:o},children:[a,(0,d.jsx)(g.H,{sessionName:q?.name??null,onStart:y,onClose:()=>r(null)})]})}},13507:(a,b,c)=>{"use strict";c.d(b,{T6:()=>e,_b:()=>f,bN:()=>g,nO:()=>d});let d=[".webm",".mp4"];function e(a){return d.includes(a)}function f(a){return".mp4"===a?"video/mp4":"video/webm"}async function g(a){for(let b of d){let c=`recording${b}`,d=await h(a,c);if(d)return{handle:d,name:c,ext:b}}return null}async function h(a,b){try{return await a.getFileHandle(b)}catch(a){if(a instanceof DOMException&&"NotFoundError"===a.name)return null;throw a}}},13656:(a,b,c)=>{"use strict";c.d(b,{E:()=>f});var d=c(48249),e=c(14490);function f({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"skeleton",className:(0,e.cn)("animate-pulse rounded-md bg-muted",a),...b})}},14344:(a,b,c)=>{Promise.resolve().then(c.bind(c,12513)),Promise.resolve().then(c.bind(c,20635)),Promise.resolve().then(c.bind(c,46443)),Promise.resolve().then(c.bind(c,43074)),Promise.resolve().then(c.bind(c,58741))},17555:(a,b,c)=>{"use strict";c.d(b,{AnalysisProvider:()=>e});var d=c(77943);(0,d.registerClientReference)(function(){throw Error("Attempted to call useAnalysis() from the server but useAnalysis is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/analysis/analysis-provider.tsx","useAnalysis");let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call AnalysisProvider() from the server but AnalysisProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/analysis/analysis-provider.tsx","AnalysisProvider")},18595:(a,b,c)=>{"use strict";c.d(b,{H:()=>H});var d=c(48249),e=c(67484),f=c(34460),g=c(35471),h=c(67494),i=c(77265),j=c(15386),k=c(84932),l=c(23366),m=c(94501),n=c(15073),o=c(54364),p=c(92091),q=c(68650),r=c(42351),s=c(94225),t=c(73230),u=c(24281),v=c(32962),w=c(34656),x=c(25297),y=c(38393),z=c(55296),A=c(58741);c(13507);var B=c(14490);let C={analyze:{title:"Analysis settings",description:"Choose how this session is analyzed.",cta:"Start analysis",showMode:!0,costKind:"video"},"revise-video":{title:"Re-run with video",description:"Re-analyze the recording with your comments — fresh screenshots included.",cta:"Re-run with video",showMode:!0,costKind:"video"},"revise-text":{title:"Process comments",description:"Send the current tasks and your comments to the model for a text-only revision — no video, much cheaper.",cta:"Process comments",showMode:!1,costKind:"text"}},D={model:"gemini-2.5-pro",mode:"thorough",language:"en"},E=[{value:"en",label:"English"},{value:"uk",label:"Ukrainian"}];function F(){return D}function G(a){return void 0===a.inputPrice||void 0===a.outputPrice?"price n/a":`$${a.inputPrice} / $${a.outputPrice} per 1M`}function H({sessionName:a,onStart:b,onClose:c,variant:h="analyze",defaults:i,textInputTokens:j}){let k=C[h],{handle:l}=(0,A.h)(),[m,n]=(0,e.useState)([]),[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(null),[u,v]=(0,e.useState)(!1),[w,z]=(0,e.useState)(F);(0,e.useRef)(i).current=i;let D=(0,e.useMemo)(()=>{let a=m.find(a=>a.id===w.model);if("text"===k.costKind){var b=j??2e3;if(void 0===a)return{state:"unavailable"};let c=b+4e3;return void 0===a.inputPrice||void 0===a.outputPrice?{state:"no-price",passes:1,totalTokens:c}:{state:"ready",cost:b/1e6*a.inputPrice+.004*a.outputPrice,passes:1,totalTokens:c}}return u?{state:"loading"}:function(a,b,c){if(null===a||void 0===b)return{state:"unavailable"};let d="thorough"===c?2:1,e=Math.round(290*a*d+600*d),f=4e3*d,g=e+f;return void 0===b.inputPrice||void 0===b.outputPrice?{state:"no-price",passes:d,totalTokens:g}:{state:"ready",cost:e/1e6*b.inputPrice+f/1e6*b.outputPrice,passes:d,totalTokens:g}}(s,a,w.mode)},[k.costKind,j,u,s,m,w.model,w.mode]),G=(0,e.useCallback)(()=>{b(w)},[w,b]);return(0,d.jsx)(y.Dialog,{open:null!==a,onOpenChange:a=>{a||c()},children:(0,d.jsxs)(y.DialogContent,{className:"sm:max-w-md",children:[(0,d.jsxs)(y.DialogHeader,{children:[(0,d.jsx)(y.DialogTitle,{children:k.title}),(0,d.jsx)(y.DialogDescription,{children:"analyze"===h?(0,d.jsxs)(d.Fragment,{children:["Choose how ",a?`“${a}”`:"this session"," is analyzed."]}):k.description})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)(I,{label:"Model",children:[q&&(0,d.jsxs)("p",{className:"flex items-start gap-2 text-xs text-muted-foreground",children:[(0,d.jsx)(f.A,{className:"mt-px size-3.5 shrink-0",strokeWidth:1.5}),"Couldn’t load the live model list — showing the built-in set."]}),o?(0,d.jsx)("div",{className:"rounded-lg border border-border px-3 py-2 text-xs text-muted-foreground",children:"Loading models…"}):(0,d.jsx)(M,{models:m,value:w.model,onChange:a=>z(b=>({...b,model:a}))})]}),k.showMode&&(0,d.jsxs)(I,{label:"Mode",children:[(0,d.jsx)(K,{selected:"thorough"===w.mode,onSelect:()=>z(a=>({...a,mode:"thorough"})),title:"Thorough",hint:"Two passes — most complete, priciest."}),(0,d.jsx)(K,{selected:"economy"===w.mode,onSelect:()=>z(a=>({...a,mode:"economy"})),title:"Basic",hint:"Single pass — roughly half the cost."})]}),(0,d.jsx)(I,{label:"Language",children:(0,d.jsx)("div",{className:"flex gap-1.5",children:E.map(({value:a,label:b})=>{let c=w.language===a;return(0,d.jsxs)("button",{type:"button",role:"radio","aria-checked":c,onClick:()=>z(b=>({...b,language:a})),className:(0,B.cn)("flex flex-1 items-center justify-center gap-1.5 rounded-lg border px-3 py-2 text-sm font-medium transition-colors active:translate-y-px",c?"border-foreground/10 bg-muted":"border-border hover:bg-muted/50"),children:[b,c&&(0,d.jsx)(g.A,{className:"size-3.5 shrink-0",strokeWidth:1.75})]},a)})})}),(0,d.jsx)(J,{estimate:D})]}),(0,d.jsxs)(y.DialogFooter,{children:[(0,d.jsx)(x.$,{variant:"outline",onClick:c,children:"Cancel"}),(0,d.jsx)(x.$,{onClick:G,disabled:o,children:k.cta})]})]})})}function I({label:a,children:b}){return(0,d.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,d.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:a}),b]})}function J({estimate:a}){var b;if("unavailable"===a.state)return(0,d.jsx)("p",{className:"rounded-lg border border-border bg-background px-3 py-2 text-xs text-muted-foreground",children:"Cost depends on the video — you’ll see the exact figure after the run."});let c="loading"===a.state?"estimating…":"no-price"===a.state?"n/a":`~$${a.cost.toFixed(2)}`,e="ready"===a.state||"no-price"===a.state?`${a.passes} ${1===a.passes?"pass":"passes"} \xb7 ~${(b=a.totalTokens)>=1e6?`${(b/1e6).toFixed(1)}M`:b>=1e3?`${Math.round(b/1e3)}K`:`${b}`} tokens`:null;return(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3 rounded-lg border border-border bg-background px-3 py-2",children:[(0,d.jsxs)("span",{className:"flex items-center gap-1.5 text-xs font-medium text-muted-foreground",children:[(0,d.jsx)(h.A,{className:"size-3.5 shrink-0",strokeWidth:1.5}),"Estimated cost",(0,d.jsxs)(z.m_,{children:[(0,d.jsx)(z.k$,{render:(0,d.jsx)("span",{}),className:"inline-flex cursor-help text-muted-foreground/70 transition-colors hover:text-foreground",children:(0,d.jsx)(i.A,{className:"size-3.5",strokeWidth:1.5})}),(0,d.jsx)(z.ZI,{className:"max-w-56",children:"Approximate — from the video’s duration \xd7 Gemini’s token rates. The exact figure lands after the run."})]})]}),(0,d.jsxs)("span",{className:"flex items-baseline gap-2 text-right",children:[(0,d.jsx)("span",{className:"font-mono text-sm text-foreground",children:c}),e&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:e})]})]})}function K({selected:a,onSelect:b,title:c,badges:e,hint:f}){return(0,d.jsxs)("button",{type:"button",role:"radio","aria-checked":a,onClick:b,className:(0,B.cn)("flex items-center gap-3 rounded-lg border px-3 py-2 text-left transition-colors","active:translate-y-px",a?"border-foreground/10 bg-muted":"border-border hover:bg-muted/50"),children:[(0,d.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-0.5",children:[(0,d.jsxs)("span",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"truncate text-sm font-medium",children:c}),e]}),f&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:f})]}),(0,d.jsx)(g.A,{className:(0,B.cn)("size-4 shrink-0 transition-opacity",a?"opacity-100":"opacity-0"),strokeWidth:1.75})]})}let L=[{key:"recommended",label:"Recommended",tip:"Live-verified for video analysis — the best quality-for-cost picks.",match:a=>a.recommended},{key:"preview",label:"Preview",tip:"Newer or experimental models — may change or be less reliable.",match:a=>a.preview&&!a.recommended},{key:"all",label:"All",tip:null,match:a=>!a.recommended&&!a.preview}];function M({models:a,value:b,onChange:c}){return(0,d.jsxs)(k.H,{value:b,onValueChange:a=>{a&&c(a)},children:[(0,d.jsxs)(l.b,{className:(0,B.cn)("flex w-full items-center justify-between gap-2 rounded-lg border border-border bg-transparent px-3 py-2 text-left text-sm transition-colors","hover:bg-muted/50 focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none active:translate-y-px"),children:[(0,d.jsx)(m.y,{className:"flex min-w-0 items-center gap-2",children:b=>{let c=a.find(a=>a.id===b);return c?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"truncate font-medium",children:c.displayName}),(0,d.jsx)("span",{className:"shrink-0 font-mono text-[0.7rem] text-muted-foreground",children:G(c)})]}):(0,d.jsx)("span",{className:"text-muted-foreground",children:"Select a model…"})}}),(0,d.jsx)(n.w,{children:(0,d.jsx)(j.A,{className:"size-4 shrink-0 text-muted-foreground",strokeWidth:1.5})})]}),(0,d.jsx)(o.V,{children:(0,d.jsx)(p.l,{side:"bottom",sideOffset:6,align:"start",alignItemWithTrigger:!1,className:"z-50",children:(0,d.jsx)(q.t,{className:(0,B.cn)("max-h-64 w-(--anchor-width) min-w-48 overflow-y-auto rounded-lg border border-border bg-popover p-1 text-popover-foreground shadow-md outline-none","origin-(--transform-origin) duration-150 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95"),children:(0,d.jsx)(r.B,{children:L.map(b=>{let c=a.filter(b.match);return 0===c.length?null:(0,d.jsxs)(s.s,{className:"py-1 first:pt-0 last:pb-0",children:[(0,d.jsxs)(t.M,{className:"flex items-center gap-1.5 px-2 py-1 text-xs font-medium text-muted-foreground",children:[b.label,b.tip&&(0,d.jsx)(N,{text:b.tip})]}),c.map(a=>(0,d.jsxs)(u.e,{value:a.id,className:(0,B.cn)("flex cursor-default items-center gap-2 rounded-md px-2 py-1.5 text-sm outline-none transition-colors","data-highlighted:bg-muted"),children:[(0,d.jsx)(v.h,{className:"truncate",children:a.displayName}),(0,d.jsx)("span",{className:"ml-auto shrink-0 font-mono text-[0.7rem] text-muted-foreground",children:G(a)}),(0,d.jsx)("span",{className:"flex w-4 shrink-0 justify-center",children:(0,d.jsx)(w.h,{children:(0,d.jsx)(g.A,{className:"size-4",strokeWidth:1.75})})})]},a.id))]},b.key)})})})})})]})}function N({text:a}){return(0,d.jsxs)(z.m_,{children:[(0,d.jsx)(z.k$,{render:(0,d.jsx)("span",{}),className:"inline-flex cursor-help text-muted-foreground/70 transition-colors hover:text-foreground",onPointerDown:a=>a.stopPropagation(),onClick:a=>a.stopPropagation(),children:(0,d.jsx)(i.A,{className:"size-3.5",strokeWidth:1.5})}),(0,d.jsx)(z.ZI,{className:"max-w-56",children:a})]})}},20635:(a,b,c)=>{"use strict";c.d(b,{AppSidebar:()=>ac});var d=c(48249),e=c(67484),f=c(29813),g=c(45535),h=c(69357),i=c(69038),j=c(46443),k=c(25297),l=c(55296);function m(){let{startImport:a,importing:b}=(0,j.J)();return(0,d.jsxs)(l.m_,{children:[(0,d.jsx)(l.k$,{render:(0,d.jsx)(k.$,{variant:"outline",size:"icon",onClick:a,disabled:b,"aria-label":"Import video",className:"bg-background dark:bg-background"}),children:b?(0,d.jsx)(h.A,{className:"animate-spin",strokeWidth:1.5}):(0,d.jsx)(i.A,{strokeWidth:1.5})}),(0,d.jsx)(l.ZI,{children:"Import video"})]})}var n=c(57974),o=c(62842),p=c(16414),q=c(54171),r=c(73097),s=c(19879),t=c(67612),u=c(12518),v=c(14490);function w(){let{startRecording:a,recordingActive:b,recording:c}=(0,j.J)();return b?(0,d.jsx)(x,{phase:c.phase,elapsedMs:c.elapsedMs,micEnabled:c.micEnabled,canPopOut:c.canPopOut,onPauseResume:c.pauseResume,onStop:c.stop,onToggleMic:c.toggleMic,onPopOut:c.popOut}):(0,d.jsxs)(k.$,{onClick:a,className:"w-full",children:[(0,d.jsx)(n.A,{strokeWidth:1.5}),"New recording"]})}function x({phase:a,elapsedMs:b,micEnabled:c,canPopOut:e,onPauseResume:f,onStop:g,onToggleMic:h,onPopOut:i}){let j="recording"===a,l="paused"===a;return(0,d.jsxs)("div",{className:"flex flex-col gap-2.5 rounded-lg border border-border bg-card p-2.5",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(y,{isRecording:j,isPaused:l}),(0,d.jsx)("span",{className:"font-mono text-[11px] font-semibold tracking-wider text-foreground",children:j?"REC":"PAUSED"}),(0,d.jsx)("span",{className:"ml-auto font-mono text-xs tabular-nums text-foreground",children:(0,u.C)(b)})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)(k.$,{variant:"outline",size:"icon-sm",onClick:h,"aria-label":c?"Mute microphone":"Unmute microphone",className:(0,v.cn)(!c&&"text-muted-foreground"),children:c?(0,d.jsx)(o.A,{strokeWidth:1.5}):(0,d.jsx)(p.A,{strokeWidth:1.5})}),(0,d.jsx)(k.$,{variant:"outline",size:"icon-sm",onClick:f,"aria-label":l?"Resume recording":"Pause recording",children:l?(0,d.jsx)(q.A,{strokeWidth:1.5}):(0,d.jsx)(r.A,{strokeWidth:1.5})}),e&&(0,d.jsx)(k.$,{variant:"outline",size:"icon-sm",onClick:i,"aria-label":"Pop out floating controls",children:(0,d.jsx)(s.A,{strokeWidth:1.5})}),(0,d.jsxs)(k.$,{size:"sm",onClick:g,className:"ml-auto",children:[(0,d.jsx)(t.A,{fill:"currentColor",strokeWidth:2}),"Stop"]})]})]})}function y({isRecording:a,isPaused:b}){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("style",{children:"@keyframes vellum-rec-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.82)}}.vellum-rec-dot{animation:vellum-rec-pulse 1.6s ease-in-out infinite}"}),(0,d.jsx)("span",{className:(0,v.cn)("size-2 shrink-0 rounded-full",a&&"vellum-rec-dot bg-foreground",b&&"border-[1.5px] border-foreground")})]})}var z=c(72275),A=c(2116),B=c.n(A),C=c(19099),D=c(42925),E=c(74067),F=c(12513),G=c(28942),H=c(58741);c(13507),c(87675),c(86903);var I=c(22694),J=c(43074);function K({query:a=""}){let b=function(){let{handle:a,sessionsNonce:b}=(0,H.h)(),[c,d]=(0,e.useState)({status:"loading"});return c}();if("loading"===b.status)return(0,d.jsx)(J.wZ,{children:[0,1,2].map(a=>(0,d.jsx)(J.FX,{children:(0,d.jsx)(J.n,{showIcon:!0})},a))});if("error"===b.status)return(0,d.jsx)("p",{className:"px-2 py-1.5 text-xs text-muted-foreground",children:"Couldn't read this workspace."});if(0===b.sessions.length)return(0,d.jsx)("p",{className:"px-2 py-1.5 text-xs text-muted-foreground",children:"No sessions yet"});let c=b.sessions.filter(b=>{let c;return!(c=a.trim().toLowerCase())||b.displayName.toLowerCase().includes(c)});return 0===c.length?(0,d.jsx)("p",{className:"px-2 py-1.5 text-xs text-muted-foreground",children:"No matches"}):(0,d.jsx)(J.wZ,{children:c.map(a=>(0,d.jsx)(L,{session:a},a.name))})}function L({session:a}){let b=(0,C.usePathname)(),c=`/session/${encodeURIComponent(a.name)}`,{analysis:e}=(0,F.S)(),f=e?.name===a.name?e:null,g=f?"Analyzing…":a.unanalyzed?"Unanalyzed":a.incomplete?"Incomplete":"Analyzed";return(0,d.jsx)(J.FX,{children:(0,d.jsxs)(l.m_,{children:[(0,d.jsxs)(l.k$,{render:(0,d.jsx)(J.Uj,{render:(0,d.jsx)(B(),{href:c}),isActive:b===c,className:"data-active:bg-[var(--gray-5)] data-active:font-normal data-active:hover:bg-[var(--gray-5)]"}),children:[f?(0,d.jsx)(h.A,{className:"animate-spin",strokeWidth:1.5}):a.unanalyzed||a.incomplete?(0,d.jsx)(D.A,{className:"text-muted-foreground opacity-80",strokeWidth:1.5}):(0,d.jsx)(E.A,{className:"text-muted-foreground opacity-80",strokeWidth:1.5}),(0,d.jsx)(G.FadeText,{tooltip:!1,className:"min-w-0 flex-1 text-clip!",children:a.displayName})]}),(0,d.jsxs)(l.ZI,{side:"right",className:"flex max-w-64 flex-col gap-0.5",children:[(0,d.jsx)("span",{className:"truncate text-popover-foreground",children:a.displayName}),a.name!==a.displayName&&(0,d.jsx)("span",{className:"truncate font-mono text-[11px] text-muted-foreground",children:a.name}),(0,d.jsxs)("span",{className:"text-[11px] text-muted-foreground",children:[g," \xb7 ",(0,I.f)(a.lastModified)]})]})]})})}var M=c(2409),N=c(90165),O=c(5152),P=c(35471),Q=c(38393),R=c(12068);function S(){let{handle:a,repickWorkspace:b}=(0,H.h)(),c=(0,R.z)();return(0,d.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,d.jsx)(U,{state:c}),(0,d.jsxs)(l.m_,{children:[(0,d.jsxs)(l.k$,{render:(0,d.jsx)("button",{type:"button",onClick:b,className:"group flex items-center gap-2 rounded-md px-2 py-1.5 text-left text-sm text-muted-foreground transition-colors hover:bg-sidebar-accent hover:text-foreground"}),children:[(0,d.jsx)(M.A,{className:"size-4 shrink-0",strokeWidth:1.5}),(0,d.jsx)("span",{className:"flex-1 truncate",children:a.name}),(0,d.jsx)("span",{className:"shrink-0 pr-0.5 text-xs text-muted-foreground transition-colors group-hover:text-foreground",children:"Change"})]}),(0,d.jsx)(l.ZI,{children:"Change workspace folder"})]})]})}let T="flex items-center gap-2 rounded-md px-2 py-1.5 text-sm";function U({state:a}){return"ready"!==a.status||a.present?"ready"===a.status&&a.present?"file"===a.source?(0,d.jsx)(W,{}):(0,d.jsx)(X,{}):"error"===a.status?(0,d.jsx)(V,{}):(0,d.jsxs)("div",{className:`${T} text-muted-foreground`,children:[(0,d.jsx)(N.A,{className:"size-4 shrink-0",strokeWidth:1.5}),(0,d.jsx)("span",{className:"truncate",children:"Checking key…"})]}):(0,d.jsxs)(B(),{href:"/settings/key",className:`${T} text-foreground transition-colors hover:bg-sidebar-accent`,children:[(0,d.jsx)(N.A,{className:"size-4 shrink-0 text-muted-foreground",strokeWidth:1.5}),(0,d.jsx)("span",{className:"truncate",children:"No key — set up"})]})}function V(){return(0,d.jsxs)(l.m_,{children:[(0,d.jsxs)(l.k$,{render:(0,d.jsx)("div",{tabIndex:0,className:`${T} text-muted-foreground outline-none`}),children:[(0,d.jsx)(N.A,{className:"size-4 shrink-0",strokeWidth:1.5}),(0,d.jsx)("span",{className:"truncate",children:"Key status unavailable"}),(0,d.jsx)(O.A,{className:"size-4 shrink-0 text-muted-foreground",strokeWidth:1.5,"aria-hidden":!0})]}),(0,d.jsx)(l.ZI,{children:"Couldn't reach the local server to check the key. It may be starting up — this clears once it responds."})]})}function W(){let[a,b]=(0,e.useState)(!1),[c,f]=(0,e.useState)(!1);async function g(){f(!0);try{let a=await fetch("/api/key",{method:"DELETE"});if(!a.ok)throw Error(`delete ${a.status}`)}catch{f(!1),b(!1);return}(0,R.X)()}return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:`${T} group text-muted-foreground transition-colors hover:bg-sidebar-accent`,children:[(0,d.jsxs)(B(),{href:"/settings/key",className:"flex min-w-0 items-center gap-2 transition-colors group-hover:text-foreground",children:[(0,d.jsx)(N.A,{className:"size-4 shrink-0",strokeWidth:1.5}),(0,d.jsx)("span",{className:"truncate",children:"Key configured"}),(0,d.jsx)(P.A,{className:"size-4 shrink-0 text-green-500",strokeWidth:2.5,"aria-hidden":!0})]}),(0,d.jsx)("button",{type:"button",onClick:()=>b(!0),className:"ml-auto shrink-0 pr-0.5 text-xs text-muted-foreground opacity-0 transition-[color,opacity] duration-150 ease-out group-hover:text-foreground group-hover:opacity-100 focus-visible:opacity-100",children:"Remove"})]}),(0,d.jsx)(Q.Dialog,{open:a,onOpenChange:a=>!c&&b(a),children:(0,d.jsxs)(Q.DialogContent,{className:"sm:max-w-sm",children:[(0,d.jsxs)(Q.DialogHeader,{children:[(0,d.jsx)(Q.DialogTitle,{children:"Remove API key?"}),(0,d.jsxs)(Q.DialogDescription,{children:["This clears the key saved in ",(0,d.jsx)("code",{children:"~/.vellum/.env"}),". Analysis won't run until you add one again. You can set a new key any time from the sidebar."]})]}),(0,d.jsxs)(Q.DialogFooter,{children:[(0,d.jsx)(Q.DialogClose,{render:(0,d.jsx)(k.$,{variant:"outline",disabled:c}),children:"Cancel"}),(0,d.jsx)(k.$,{onClick:g,disabled:c,children:c?"Removing…":"Remove key"})]})]})})]})}function X(){return(0,d.jsxs)(l.m_,{children:[(0,d.jsxs)(l.k$,{render:(0,d.jsx)("div",{tabIndex:0,className:`${T} text-muted-foreground outline-none`}),children:[(0,d.jsx)(N.A,{className:"size-4 shrink-0",strokeWidth:1.5}),(0,d.jsx)("span",{className:"truncate",children:"Key configured"}),(0,d.jsx)(P.A,{className:"size-4 shrink-0 text-green-500",strokeWidth:2.5,"aria-hidden":!0})]}),(0,d.jsx)(l.ZI,{children:"Set via an environment variable — remove it where it's defined."})]})}var Y=c(60525),Z=c(10090),$=c(8696);let _=[{value:"light",label:"Light",Icon:Y.A},{value:"dark",label:"Dark",Icon:Z.A}];function aa(){let{theme:a,setTheme:b}=(0,$.D)(),[c,f]=(0,e.useState)(!1);return(0,d.jsx)("div",{className:"flex items-center gap-0.5 rounded-lg border border-border bg-background p-0.5",children:_.map(({value:e,label:f,Icon:g})=>{let h=c&&a===e;return(0,d.jsxs)(l.m_,{children:[(0,d.jsx)(l.k$,{render:(0,d.jsx)("button",{type:"button",onClick:()=>b(e),"aria-label":f,"aria-pressed":h,className:(0,v.cn)("flex size-6 items-center justify-center rounded-md transition-colors duration-150 ease-out active:opacity-80",h?"bg-secondary text-secondary-foreground":"text-muted-foreground hover:text-foreground")}),children:(0,d.jsx)(g,{className:"size-3.5",strokeWidth:1.5})}),(0,d.jsx)(l.ZI,{side:"top",children:f})]},e)})})}var ab=c(88877);function ac(){let[a,b]=(0,e.useState)(""),[c,h]=(0,e.useState)(!1),{recordingActive:i}=(0,j.J)();return(0,d.jsxs)(J.Bx,{variant:"inset",className:"px-0!",children:[(0,d.jsxs)(J.Gh,{className:"gap-2 p-0",children:[(0,d.jsxs)("div",{className:"flex h-12 items-center justify-between pl-4 pr-3",children:[(0,d.jsxs)("div",{className:"flex items-end gap-2",children:[(0,d.jsx)(z.Logo,{className:"h-[18px]"}),(0,d.jsx)("span",{className:"relative -top-px font-mono text-[11px] leading-none tabular-nums text-muted-foreground",children:"v1.0"})]}),(0,d.jsx)(aa,{})]}),(0,d.jsx)(J.wZ,{className:"px-3 pb-1.5",children:(0,d.jsxs)(J.FX,{className:"flex items-stretch gap-2.5",children:[(0,d.jsx)("div",{className:"min-w-0 flex-1",children:(0,d.jsx)(w,{})}),!i&&(0,d.jsx)(m,{})]})})]}),(0,d.jsx)(J.Yv,{className:"overflow-hidden",children:(0,d.jsxs)(J.Cn,{className:"min-h-0 flex-1",children:[(0,d.jsxs)("div",{className:"flex shrink-0 items-center justify-between",children:[(0,d.jsx)(J.jj,{className:"h-7 text-[0.6875rem] font-medium uppercase tracking-wider text-sidebar-foreground/50",children:"Sessions"}),(0,d.jsxs)(l.m_,{children:[(0,d.jsx)(l.k$,{render:(0,d.jsx)("button",{type:"button",onClick:()=>h(a=>(a&&b(""),!a)),"aria-label":c?"Close search":"Search sessions","aria-expanded":c,className:`mr-1 rounded p-1 transition-colors ${c?"text-foreground":"text-muted-foreground hover:text-foreground"}`}),children:(0,d.jsx)(f.A,{className:"size-3.5",strokeWidth:1.5})}),(0,d.jsx)(l.ZI,{children:c?"Close search":"Search sessions"})]})]}),c&&(0,d.jsx)("div",{className:"shrink-0 px-1 pb-2",children:(0,d.jsxs)("div",{className:"relative h-8",children:[(0,d.jsx)(f.A,{className:"pointer-events-none absolute left-2.5 top-1/2 size-3.5 -translate-y-1/2 text-muted-foreground",strokeWidth:1.5}),(0,d.jsx)(ab.p,{type:"text",autoFocus:!0,value:a,onChange:a=>b(a.target.value),placeholder:"Search sessions","aria-label":"Search sessions",className:"h-8 pl-8 pr-8 text-sm"}),a&&(0,d.jsx)("button",{type:"button",onClick:()=>b(""),"aria-label":"Clear search",className:"absolute right-2 top-1/2 flex -translate-y-1/2 items-center rounded p-0.5 text-muted-foreground transition-colors hover:text-foreground",children:(0,d.jsx)(g.A,{className:"size-3.5",strokeWidth:1.5})})]})}),(0,d.jsx)(J.rQ,{className:"min-h-0 flex-1 overflow-y-auto",children:(0,d.jsx)(K,{query:c?a:""})})]})}),(0,d.jsx)(J.CG,{className:"py-0.5",children:(0,d.jsx)(S,{})})]})}},22694:(a,b,c)=>{"use strict";c.d(b,{f:()=>d});function d(a,b=Date.now()){let c=b-a;return c<6e4?"just now":c<36e5?`${Math.floor(c/6e4)}min ago`:c<864e5?`${Math.floor(c/36e5)}h ago`:c<6048e5?`${Math.floor(c/864e5)}d ago`:c<2592e6?`${Math.floor(c/6048e5)}w ago`:c<31536e6?`${Math.floor(c/2592e6)}mo ago`:`${Math.floor(c/31536e6)}y ago`}},23135:(a,b,c)=>{"use strict";c.d(b,{Separator:()=>g});var d=c(48249),e=c(69394),f=c(14490);function g({className:a,orientation:b="horizontal",...c}){return(0,d.jsx)(e.w,{"data-slot":"separator",orientation:b,className:(0,f.cn)("shrink-0 bg-border data-horizontal:h-px data-horizontal:w-full data-vertical:w-px data-vertical:self-stretch",a),...c})}},25297:(a,b,c)=>{"use strict";c.d(b,{$:()=>i});var d=c(48249),e=c(15712),f=c(21654),g=c(14490);let h=(0,f.F)("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function i({className:a,variant:b="default",size:c="default",...f}){return(0,d.jsx)(e.Button,{"data-slot":"button",className:(0,g.cn)(h({variant:b,size:c,className:a})),...f})}},27496:(a,b,c)=>{Promise.resolve().then(c.bind(c,17555)),Promise.resolve().then(c.bind(c,95424)),Promise.resolve().then(c.bind(c,30716)),Promise.resolve().then(c.bind(c,11715)),Promise.resolve().then(c.bind(c,7913))},28942:(a,b,c)=>{"use strict";c.d(b,{FadeText:()=>h});var d=c(48249),e=c(67484),f=c(55296),g=c(14490);function h({children:a,className:b,tooltip:c=!0}){let i=(0,e.useRef)(null),[j,k]=(0,e.useState)(!1),l=(0,d.jsx)("span",{ref:i,className:(0,g.cn)("overflow-hidden whitespace-nowrap",j&&"fade-end",b),children:a});return c?(0,d.jsxs)(f.m_,{children:[(0,d.jsx)(f.k$,{render:l}),j&&(0,d.jsx)(f.ZI,{children:a})]}):l}},29604:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>j});var d=c(5735),e=c(17555),f=c(95424),g=c(30716),h=c(11715),i=c(7913);function j({children:a}){return(0,d.jsx)(i.WorkspaceProvider,{children:(0,d.jsx)(h.SidebarProvider,{className:"h-svh",style:{"--sidebar-width":"var(--app-sidebar-width)"},children:(0,d.jsx)(e.AnalysisProvider,{children:(0,d.jsxs)(g.SessionActionsProvider,{children:[(0,d.jsx)(f.AppSidebar,{}),(0,d.jsx)(h.SidebarInset,{className:"m-2! overflow-hidden rounded-xl border border-border shadow-xs!",children:a})]})})})})}},30716:(a,b,c)=>{"use strict";c.d(b,{SessionActionsProvider:()=>e});var d=c(77943);(0,d.registerClientReference)(function(){throw Error("Attempted to call useSessionActions() from the server but useSessionActions is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/recording/session-actions.tsx","useSessionActions");let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call SessionActionsProvider() from the server but SessionActionsProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/recording/session-actions.tsx","SessionActionsProvider")},34022:(a,b,c)=>{"use strict";c.d(b,{W:()=>e,o:()=>f});var d=c(45516);function e(a){let b=new Set;return a.map(a=>i(h((0,d.tm)(a.screenshot_timestamp)),b))}async function f(a,b){let c;if(0===b.length)return[];try{c=await a.getDirectoryHandle(g)}catch(a){if(k(a))return b.map(()=>null);throw a}return Promise.all((function(a){let b=new Set;for(let c of a)c.screenshot&&b.add(c.screenshot);return a.map(a=>a.screenshot?a.screenshot:null==a.screenshot_timestamp?null:i(h((0,d.tm)(a.screenshot_timestamp)),b))})(b).map(a=>a?j(c,a):null))}let g="screenshots";function h(a){let b=Math.floor(a),c=String(Math.floor(b/60)).padStart(2,"0"),d=String(b%60).padStart(2,"0");return`frame-${c}-${d}.png`}function i(a,b){if(!b.has(a))return b.add(a),a;let c=a.replace(/\.png$/,""),d=2;for(;b.has(`${c}-${d}.png`);)d+=1;let e=`${c}-${d}.png`;return b.add(e),e}async function j(a,b){try{let c=await a.getFileHandle(b);return await c.getFile()}catch(a){if(k(a))return null;throw a}}function k(a){return a instanceof DOMException&&"NotFoundError"===a.name}},38393:(a,b,c)=>{"use strict";c.d(b,{Dialog:()=>p,DialogClose:()=>s,DialogContent:()=>u,DialogDescription:()=>y,DialogFooter:()=>w,DialogHeader:()=>v,DialogTitle:()=>x,DialogTrigger:()=>q});var d=c(48249);c(67484);var e=c(16793),f=c(51937),g=c(98823),h=c(17193),i=c(44107),j=c(48939),k=c(26829),l=c(94493),m=c(14490),n=c(25297),o=c(45535);function p({...a}){return(0,d.jsx)(e.D,{"data-slot":"dialog",...a})}function q({...a}){return(0,d.jsx)(f.z,{"data-slot":"dialog-trigger",...a})}function r({...a}){return(0,d.jsx)(g.Z,{"data-slot":"dialog-portal",...a})}function s({...a}){return(0,d.jsx)(h.H,{"data-slot":"dialog-close",...a})}function t({className:a,...b}){return(0,d.jsx)(i.X,{"data-slot":"dialog-overlay",className:(0,m.cn)("fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0",a),...b})}function u({className:a,children:b,showCloseButton:c=!0,...e}){return(0,d.jsxs)(r,{children:[(0,d.jsx)(t,{}),(0,d.jsxs)(j.h,{"data-slot":"dialog-content",className:(0,m.cn)("fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",a),...e,children:[b,c&&(0,d.jsxs)(h.H,{"data-slot":"dialog-close",render:(0,d.jsx)(n.$,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[(0,d.jsx)(o.A,{}),(0,d.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function v({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"dialog-header",className:(0,m.cn)("flex flex-col gap-2",a),...b})}function w({className:a,showCloseButton:b=!1,children:c,...e}){return(0,d.jsxs)("div",{"data-slot":"dialog-footer",className:(0,m.cn)("-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 sm:flex-row sm:justify-end",a),...e,children:[c,b&&(0,d.jsx)(h.H,{render:(0,d.jsx)(n.$,{variant:"outline"}),children:"Close"})]})}function x({className:a,...b}){return(0,d.jsx)(k.L,{"data-slot":"dialog-title",className:(0,m.cn)("font-heading text-base leading-none font-medium",a),...b})}function y({className:a,...b}){return(0,d.jsx)(l.r,{"data-slot":"dialog-description",className:(0,m.cn)("text-sm text-muted-foreground *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground",a),...b})}},39727:()=>{},43074:(a,b,c)=>{"use strict";c.d(b,{Bx:()=>F,Yv:()=>K,CG:()=>J,Cn:()=>L,rQ:()=>N,jj:()=>M,Gh:()=>I,SidebarInset:()=>H,wZ:()=>O,Uj:()=>R,FX:()=>P,n:()=>S,SidebarProvider:()=>E,SidebarTrigger:()=>G});var d=c(48249),e=c(67484),f=c(56479),g=c(50039),h=c(21654),i=c(14490),j=c(25297);c(88877),c(23135);var k=c(16793),l=c(98823),m=c(44107),n=c(48939),o=c(17193),p=c(26829),q=c(94493),r=c(45535);function s({...a}){return(0,d.jsx)(k.D,{"data-slot":"sheet",...a})}function t({...a}){return(0,d.jsx)(l.Z,{"data-slot":"sheet-portal",...a})}function u({className:a,...b}){return(0,d.jsx)(m.X,{"data-slot":"sheet-overlay",className:(0,i.cn)("fixed inset-0 z-50 bg-black/10 transition-opacity duration-150 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs",a),...b})}function v({className:a,children:b,side:c="right",showCloseButton:e=!0,...f}){return(0,d.jsxs)(t,{children:[(0,d.jsx)(u,{}),(0,d.jsxs)(n.h,{"data-slot":"sheet-content","data-side":c,className:(0,i.cn)("fixed z-50 flex flex-col gap-4 bg-popover bg-clip-padding text-sm text-popover-foreground shadow-lg transition duration-200 ease-in-out data-ending-style:opacity-0 data-starting-style:opacity-0 data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=bottom]:data-ending-style:translate-y-[2.5rem] data-[side=bottom]:data-starting-style:translate-y-[2.5rem] data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=left]:data-ending-style:translate-x-[-2.5rem] data-[side=left]:data-starting-style:translate-x-[-2.5rem] data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=right]:data-ending-style:translate-x-[2.5rem] data-[side=right]:data-starting-style:translate-x-[2.5rem] data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=top]:data-ending-style:translate-y-[-2.5rem] data-[side=top]:data-starting-style:translate-y-[-2.5rem] data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm",a),...f,children:[b,e&&(0,d.jsxs)(o.H,{"data-slot":"sheet-close",render:(0,d.jsx)(j.$,{variant:"ghost",className:"absolute top-3 right-3",size:"icon-sm"}),children:[(0,d.jsx)(r.A,{}),(0,d.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})}function w({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"sheet-header",className:(0,i.cn)("flex flex-col gap-0.5 p-4",a),...b})}function x({className:a,...b}){return(0,d.jsx)(p.L,{"data-slot":"sheet-title",className:(0,i.cn)("font-heading text-base font-medium text-foreground",a),...b})}function y({className:a,...b}){return(0,d.jsx)(q.r,{"data-slot":"sheet-description",className:(0,i.cn)("text-sm text-muted-foreground",a),...b})}var z=c(13656),A=c(55296),B=c(96933);let C=e.createContext(null);function D(){let a=e.useContext(C);if(!a)throw Error("useSidebar must be used within a SidebarProvider.");return a}function E({defaultOpen:a=!0,open:b,onOpenChange:c,className:f,style:g,children:h,...j}){let k=function(){let[a,b]=e.useState(void 0);return e.useEffect(()=>{let a=window.matchMedia("(max-width: 767px)"),c=()=>{b(window.innerWidth<768)};return a.addEventListener("change",c),b(window.innerWidth<768),()=>a.removeEventListener("change",c)},[]),!!a}(),[l,m]=e.useState(!1),[n,o]=e.useState(a),p=b??n,q=e.useCallback(a=>{let b="function"==typeof a?a(p):a;c?c(b):o(b),document.cookie=`sidebar_state=${b}; path=/; max-age=604800`},[c,p]),r=e.useCallback(()=>k?m(a=>!a):q(a=>!a),[k,q,m]);e.useEffect(()=>{let a=a=>{"b"===a.key&&(a.metaKey||a.ctrlKey)&&(a.preventDefault(),r())};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[r]);let s=p?"expanded":"collapsed",t=e.useMemo(()=>({state:s,open:p,setOpen:q,isMobile:k,openMobile:l,setOpenMobile:m,toggleSidebar:r}),[s,p,q,k,l,m,r]);return(0,d.jsx)(C.Provider,{value:t,children:(0,d.jsx)("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3rem",...g},className:(0,i.cn)("group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",f),...j,children:h})})}function F({side:a="left",variant:b="sidebar",collapsible:c="offcanvas",className:e,children:f,dir:g,...h}){let{isMobile:j,state:k,openMobile:l,setOpenMobile:m}=D();return"none"===c?(0,d.jsx)("div",{"data-slot":"sidebar",className:(0,i.cn)("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",e),...h,children:f}):j?(0,d.jsx)(s,{open:l,onOpenChange:m,...h,children:(0,d.jsxs)(v,{dir:g,"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",className:"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",style:{"--sidebar-width":"18rem"},side:a,children:[(0,d.jsxs)(w,{className:"sr-only",children:[(0,d.jsx)(x,{children:"Sidebar"}),(0,d.jsx)(y,{children:"Displays the mobile sidebar."})]}),(0,d.jsx)("div",{className:"flex h-full w-full flex-col",children:f})]})}):(0,d.jsxs)("div",{className:"group peer hidden text-sidebar-foreground md:block","data-state":k,"data-collapsible":"collapsed"===k?c:"","data-variant":b,"data-side":a,"data-slot":"sidebar",children:[(0,d.jsx)("div",{"data-slot":"sidebar-gap",className:(0,i.cn)("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180","floating"===b||"inset"===b?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),(0,d.jsx)("div",{"data-slot":"sidebar-container","data-side":a,className:(0,i.cn)("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear data-[side=left]:left-0 data-[side=left]:group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)] data-[side=right]:right-0 data-[side=right]:group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)] md:flex","floating"===b||"inset"===b?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",e),...h,children:(0,d.jsx)("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"flex size-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border",children:f})})]})}function G({className:a,onClick:b,...c}){let{toggleSidebar:e}=D();return(0,d.jsxs)(j.$,{"data-sidebar":"trigger","data-slot":"sidebar-trigger",variant:"ghost",size:"icon-sm",className:(0,i.cn)(a),onClick:a=>{b?.(a),e()},...c,children:[(0,d.jsx)(B.A,{}),(0,d.jsx)("span",{className:"sr-only",children:"Toggle Sidebar"})]})}function H({className:a,...b}){return(0,d.jsx)("main",{"data-slot":"sidebar-inset",className:(0,i.cn)("relative flex w-full flex-1 flex-col bg-background md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",a),...b})}function I({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:(0,i.cn)("flex flex-col gap-2 p-2",a),...b})}function J({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"sidebar-footer","data-sidebar":"footer",className:(0,i.cn)("flex flex-col gap-2 p-2",a),...b})}function K({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:(0,i.cn)("no-scrollbar flex min-h-0 flex-1 flex-col gap-0 overflow-auto group-data-[collapsible=icon]:overflow-hidden",a),...b})}function L({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:(0,i.cn)("relative flex w-full min-w-0 flex-col p-2",a),...b})}function M({className:a,render:b,...c}){return(0,g.C)({defaultTagName:"div",props:(0,f.v6)({className:(0,i.cn)("flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",a)},c),render:b,state:{slot:"sidebar-group-label",sidebar:"group-label"}})}function N({className:a,...b}){return(0,d.jsx)("div",{"data-slot":"sidebar-group-content","data-sidebar":"group-content",className:(0,i.cn)("w-full text-sm",a),...b})}function O({className:a,...b}){return(0,d.jsx)("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:(0,i.cn)("flex w-full min-w-0 flex-col gap-0",a),...b})}function P({className:a,...b}){return(0,d.jsx)("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:(0,i.cn)("group/menu-item relative",a),...b})}let Q=(0,h.F)("peer/menu-button group/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground data-active:bg-sidebar-accent data-active:font-medium data-active:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function R({render:a,isActive:b=!1,variant:c="default",size:e="default",tooltip:h,className:j,...k}){let{isMobile:l,state:m}=D(),n=(0,g.C)({defaultTagName:"button",props:(0,f.v6)({className:(0,i.cn)(Q({variant:c,size:e}),j)},k),render:h?(0,d.jsx)(A.k$,{render:a}):a,state:{slot:"sidebar-menu-button",sidebar:"menu-button",size:e,active:b}});return h?("string"==typeof h&&(h={children:h}),(0,d.jsxs)(A.m_,{children:[n,(0,d.jsx)(A.ZI,{side:"right",align:"center",hidden:"collapsed"!==m||l,...h})]})):n}function S({className:a,showIcon:b=!1,...c}){let[f]=e.useState(()=>`${Math.floor(40*Math.random())+50}%`);return(0,d.jsxs)("div",{"data-slot":"sidebar-menu-skeleton","data-sidebar":"menu-skeleton",className:(0,i.cn)("flex h-8 items-center gap-2 rounded-md px-2",a),...c,children:[b&&(0,d.jsx)(z.E,{className:"size-4 rounded-md","data-sidebar":"menu-skeleton-icon"}),(0,d.jsx)(z.E,{className:"h-4 max-w-(--skeleton-width) flex-1","data-sidebar":"menu-skeleton-text",style:{"--skeleton-width":f}})]})}},45516:(a,b,c)=>{"use strict";c.d(b,{BE:()=>h,DJ:()=>o,R6:()=>f,gp:()=>m,kW:()=>j,tm:()=>k});var d=c(42706),e=c(17387);let f=["problem","idea","question","decision","followup","praise"],g=["ui_design","dev_vs_design","documentation","mixed","other"],h=["low","med","high"],i=/^\d{1,3}:[0-5]\d$/;function j(a){let b=a.normalize("NFKD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,60).replace(/-+$/g,"");return b.length>0?b:void 0}function k(a){let[b,c]=a.split(":");return 60*Number(b)+Number(c)}let l=a=>d.Yj().regex(i,`${a} must be "mm:ss" (e.g. "03:42")`),m=d.Ik({timestamp:l("timestamp"),screenshot_timestamp:l("screenshot_timestamp"),title:d.Yj().min(1),description:d.Yj().min(1),screen_context:d.Yj().min(1),category:d.k5(f),priority:d.k5(h)}),n=d.Ik({analyzedAt:d.Yj().min(1),mode:d.k5(["thorough","economy"]),language:d.k5(["en","uk"]).optional(),origin:d.k5(["analyze","revise-text","revise-video"]).optional(),models:d.YO(d.Yj()),tokensIn:d.ai(),tokensOut:d.ai(),costUsd:d.ai().optional()}),o=d.Ik({review_type:d.k5(g),overview:d.Yj().min(1),suggested_name:d.Yj().regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/,'suggested_name must be kebab-case (e.g. "onboarding-review")').max(60).optional(),tasks:d.YO(m),run:n.optional()}),p=(a,b)=>({type:e.ZU.STRING,enum:[...a],description:b});e.ZU.OBJECT,e.ZU.STRING,e.ZU.STRING,e.ZU.STRING,e.ZU.STRING,e.ZU.STRING,p(f,"The nature of the item. Use exactly one of the allowed values."),p(h,"Relative urgency of acting on the item."),e.ZU.OBJECT,p(g,"The kind of review session, inferred from the overall recording."),e.ZU.STRING,e.ZU.STRING,e.ZU.ARRAY},46443:(a,b,c)=>{"use strict";c.d(b,{SessionActionsProvider:()=>y,J:()=>x});var d=c(48249),e=c(67484),f=c(74429),g=c(19099),h=c(34460),i=c(25297),j=c(38393),k=c(12513),l=c(71429),m=c(58741),n=c(45001),o=c(65077),p=c(24638),q=c(12518),r=c(82181),s=c(13507);class t extends Error{constructor(a,b){super(b),this.kind=a,this.name="ImportError"}}async function u(){var a;let b,c;try{[b]=await window.showOpenFilePicker({multiple:!1,excludeAcceptAllOption:!0,types:[{description:"Video (WebM or MP4)",accept:{"video/webm":[".webm"],"video/mp4":[".mp4"]}}]})}catch(a){if(a instanceof DOMException&&"AbortError"===a.name)return null;throw a}let d=await b.getFile(),e=(c=(a=d.name).lastIndexOf("."))>=0?a.slice(c).toLowerCase():"";if(!(0,s.T6)(e))throw new t("unsupported",`Vellum can import ${s.nO.join(" and ")} videos. “${d.name}” isn’t one of those — convert it first, then import.`);return{file:d,ext:e}}async function v(a,b,c){let{dir:d,name:e}=await (0,r.C)(a,c);try{let a=await d.getFileHandle(`recording${b.ext}`,{create:!0}),c=await a.createWritable();await c.write(b.file),await c.close()}catch{throw new t("copy","Couldn't copy the video into the workspace. Check the folder is still available, then try again.")}return{sessionDir:d,name:e}}let w=(0,e.createContext)(null);function x(){let a=(0,e.useContext)(w);if(!a)throw Error("useSessionActions must be used within a SessionActionsProvider");return a}function y({children:a}){let{handle:b,refreshSessions:c}=(0,m.h)(),r=(0,g.useRouter)(),{analyze:s}=(0,k.S)(),{phase:x,micEnabled:z,elapsedMs:A,start:B,pauseResume:C,toggleMic:D,stop:E}=function({workspace:a,onSaved:b}){let[c,d]=(0,e.useState)("inactive"),[f,g]=(0,e.useState)(!0),[h,i]=(0,e.useState)(null),{elapsedMs:j,setState:k}=(0,q.d)(),l=(0,e.useRef)(null),m=(0,e.useRef)(null),n=(0,e.useRef)(null),r=(0,e.useRef)(null),s=(0,e.useCallback)(()=>{l.current?.getTracks().forEach(a=>a.stop()),m.current?.getTracks().forEach(a=>a.stop()),l.current=null,m.current=null},[]),t=(0,e.useCallback)(async()=>{let a=n.current;if(!a)return;n.current=null,await a.stop(),d("inactive"),k("inactive"),s();let c=r.current;if(r.current=null,c)try{await c.close(),b(c.sessionDirName)}catch(a){i(a instanceof Error?a.message:String(a))}},[k,s,b]),u=(0,e.useCallback)(async()=>{let b,c;if(n.current)return!1;i(null);try{b=await navigator.mediaDevices.getDisplayMedia({video:{width:{max:2560},height:{max:1440},frameRate:{ideal:30,max:30}},audio:!1})}catch(a){if(a instanceof DOMException&&"NotAllowedError"===a.name)return!1;return i(a instanceof Error?a.message:String(a)),!1}l.current=b;try{let a=(c=await navigator.mediaDevices.getUserMedia({audio:!0,video:!1})).getAudioTracks()[0];a&&(a.enabled=f)}catch{c=new MediaStream,g(!1)}m.current=c;let e=new MediaStream([...b.getVideoTracks(),...c.getAudioTracks()]);b.getVideoTracks()[0]?.addEventListener("ended",()=>void t());try{r.current=await (0,p.P)(a,new Date)}catch(a){return s(),i(a instanceof Error?a.message:String(a)),!1}try{let a=(0,o.Tk)({stream:e,onChunk:a=>{r.current?.write(a).catch(a=>{i(a instanceof Error?a.message:String(a))})},onError:a=>i(`${a.name} — ${a.message}`)});return n.current=a,a.start(),d("recording"),k("recording"),!0}catch(b){s();let a=r.current;return r.current=null,a?.close().catch(()=>{}),i(b instanceof Error?b.message:String(b)),!1}},[a,f,k,s,t]),v=(0,e.useCallback)(()=>{let a=n.current;a&&("recording"===a.state()?(a.pause(),d("paused"),k("paused")):"paused"===a.state()&&(a.resume(),d("recording"),k("recording")))},[k]),w=(0,e.useCallback)(()=>{let a=!f,b=m.current?.getAudioTracks()[0];b&&(b.enabled=a),g(a)},[f]);return{phase:c,micEnabled:f,elapsedMs:j,error:h,start:u,pauseResume:v,toggleMic:w,stop:t}}({workspace:b,onSaved:(0,e.useCallback)(a=>{c(),s(a),r.push(`/session/${encodeURIComponent(a)}`)},[c,s,r])}),F=(0,n.Y)(),G="inactive"!==x,H=(0,e.useCallback)(async()=>{try{await F.open({width:320,height:72})}catch{}},[F]),I=(0,e.useCallback)(()=>{F.close(),E()},[F,E]),J=(0,e.useCallback)(()=>void B(),[B]),[K,L]=(0,e.useState)({status:"idle"}),M=(0,e.useRef)(0),N=(0,e.useCallback)(async()=>{let a,d,e=++M.current;try{a=await u()}catch(a){L({status:"rejected",message:a instanceof t?a.message:"Couldn't open the file picker."});return}if(a&&M.current===e){L({status:"copying",fileName:a.file.name});try{d=await v(b,a,new Date)}catch(a){if(M.current!==e)return;L({status:"rejected",message:a instanceof t?a.message:"Couldn't copy the video into the workspace."});return}M.current===e&&(L({status:"idle"}),c(),s(d.name),r.push(`/session/${encodeURIComponent(d.name)}`))}},[b,c,s,r]),O=(0,e.useCallback)(()=>void N(),[N]),P="copying"===K.status,Q=(0,e.useCallback)(()=>L({status:"idle"}),[]),R={phase:x,elapsedMs:A,micEnabled:z,canPopOut:F.isSupported&&null===F.pipWindow,pauseResume:C,toggleMic:D,stop:I,popOut:()=>void H()};return(0,d.jsxs)(w.Provider,{value:{startRecording:J,recordingActive:G,recording:R,startImport:O,importing:P},children:[a,(0,d.jsx)(j.Dialog,{open:"rejected"===K.status,onOpenChange:a=>{a||Q()},children:(0,d.jsxs)(j.DialogContent,{children:[(0,d.jsxs)(j.DialogHeader,{children:[(0,d.jsx)(j.DialogTitle,{children:"Import video"}),(0,d.jsx)(j.DialogDescription,{children:"This file can’t be imported."})]}),"rejected"===K.status&&(0,d.jsxs)("div",{className:"flex items-start gap-2.5 py-1",children:[(0,d.jsx)(h.A,{className:"mt-0.5 size-4 shrink-0 text-muted-foreground",strokeWidth:1.5}),(0,d.jsx)("p",{className:"text-xs whitespace-pre-line text-muted-foreground",children:K.message})]}),(0,d.jsx)(j.DialogFooter,{children:(0,d.jsx)(i.$,{variant:"outline",size:"sm",onClick:Q,children:"Close"})})]})}),F.pipWindow&&(0,f.createPortal)((0,d.jsx)(l.m,{recState:x,elapsedMs:A,micEnabled:z,onPauseResume:C,onStop:I,onToggleMic:D}),F.pipWindow.document.body)]})}},47990:()=>{},58741:(a,b,c)=>{"use strict";c.d(b,{WorkspaceProvider:()=>E,h:()=>D});var d=c(48249),e=c(67484),f=c(24638);let g="handles";async function h(a,b){let c=await new Promise((a,b)=>{let c=indexedDB.open("vellum",1);c.onupgradeneeded=()=>{let a=c.result;a.objectStoreNames.contains(g)||a.createObjectStore(g)},c.onsuccess=()=>a(c.result),c.onerror=()=>b(c.error)});try{return await new Promise((d,e)=>{let f=c.transaction(g,a).objectStore(g),h=b(f);h.onsuccess=()=>d(h.result),h.onerror=()=>e(h.error)})}finally{c.close()}}async function i(a){await h("readwrite",b=>b.put(a,"workspace"))}let j=".vellum-workspace.json",k={mode:"readwrite"};async function l(a){try{for await(let b of a.keys())break;return!0}catch(a){if(a instanceof DOMException&&"NotFoundError"===a.name)return!1;throw a}}async function m(a){try{await a.getFileHandle(j);return}catch(a){if(!(a instanceof DOMException)||"NotFoundError"!==a.name)throw a}let b={schemaVersion:1,createdAt:new Date().toISOString()},c=await a.getFileHandle(j,{create:!0}),d=await c.createWritable();await d.write(`${JSON.stringify(b,null,2)}
|
|
2
|
+
`),await d.close()}var n=c(48581),o=c(22130),p=c(97432),q=c(40338),r=c(69357),s=c(72275),t=c(25297);function u({children:a}){return(0,d.jsx)("div",{className:"flex h-full w-full items-center justify-center bg-background p-6",children:(0,d.jsx)("div",{className:"w-full max-w-md animate-in fade-in-0 zoom-in-95 duration-200 ease-out",children:a})})}function v(){return(0,d.jsx)("div",{className:"mb-8 flex items-center",children:(0,d.jsx)(s.Logo,{className:"h-[21px]"})})}function w({children:a}){return(0,d.jsx)("div",{className:"flex size-9 items-center justify-center rounded-lg border border-border bg-card",children:a})}function x(){return(0,d.jsxs)("div",{className:"mt-8 flex gap-3 rounded-lg border border-border bg-card p-4",children:[(0,d.jsx)(n.A,{className:"mt-0.5 size-4 shrink-0 text-muted-foreground",strokeWidth:1.5}),(0,d.jsx)("p",{className:"text-xs leading-relaxed text-muted-foreground",children:"Everything stays on your machine. Recordings and reports are written to this folder and never leave it. The only data sent out is the video itself — uploaded to the Google Gemini API under your own key for analysis. No backend, no telemetry, no account."})]})}function y({onPick:a}){return(0,d.jsxs)(u,{children:[(0,d.jsx)(v,{}),(0,d.jsx)(w,{children:(0,d.jsx)(o.A,{className:"size-5",strokeWidth:1.5})}),(0,d.jsx)("h1",{className:"mt-4 text-lg font-medium tracking-tight",children:"Choose a workspace folder"}),(0,d.jsx)("p",{className:"mt-1.5 text-sm text-muted-foreground",children:"Vellum keeps every recording, report, and screenshot inside one folder you choose. Pick an empty folder to start."}),(0,d.jsxs)(t.$,{className:"mt-6 w-full",onClick:a,children:[(0,d.jsx)(o.A,{}),"Choose folder…"]}),(0,d.jsx)(x,{})]})}function z({folderName:a,onConfirm:b,onPickOther:c}){return(0,d.jsxs)(u,{children:[(0,d.jsx)(v,{}),(0,d.jsx)(w,{children:(0,d.jsx)(p.A,{className:"size-5",strokeWidth:1.5})}),(0,d.jsx)("h1",{className:"mt-4 text-lg font-medium tracking-tight",children:"Confirm workspace access"}),(0,d.jsxs)("p",{className:"mt-1.5 text-sm text-muted-foreground",children:["Your browser needs permission to reopen"," ",a?(0,d.jsx)("span",{className:"font-medium text-foreground",children:a}):"your workspace folder",". This is a routine confirmation after a restart — nothing has changed."]}),(0,d.jsx)(t.$,{className:"mt-6 w-full",onClick:b,children:"Confirm access"}),c&&(0,d.jsx)(t.$,{variant:"ghost",className:"mt-2 w-full",onClick:c,children:"Choose a different folder…"})]})}function A({folderName:a,onPick:b}){return(0,d.jsxs)(u,{children:[(0,d.jsx)(v,{}),(0,d.jsx)(w,{children:(0,d.jsx)(q.A,{className:"size-5",strokeWidth:1.5})}),(0,d.jsx)("h1",{className:"mt-4 text-lg font-medium tracking-tight",children:"Workspace unavailable"}),(0,d.jsxs)("p",{className:"mt-1.5 text-sm text-muted-foreground",children:["We couldn’t find"," ",a?(0,d.jsx)("span",{className:"font-medium text-foreground",children:a}):"your workspace folder",". It may have been moved, renamed, or deleted. Choose a workspace folder to continue."]}),(0,d.jsxs)(t.$,{className:"mt-6 w-full",onClick:b,children:[(0,d.jsx)(o.A,{}),"Choose folder…"]})]})}function B(){return(0,d.jsx)("div",{className:"flex h-full w-full items-center justify-center bg-background",children:(0,d.jsx)(r.A,{className:"size-5 animate-spin text-muted-foreground",strokeWidth:1.5})})}let C=(0,e.createContext)(null);function D(){let a=(0,e.useContext)(C);if(!a)throw Error("useWorkspace must be used within a ready WorkspaceProvider");return a}function E({children:a}){let[b,c]=(0,e.useState)({kind:"loading"}),[g,h]=(0,e.useState)(0),j=(0,e.useCallback)(()=>h(a=>a+1),[]),n=(0,e.useCallback)(async a=>{await l(a)?(await m(a),await i(a),c({kind:"ready",handle:a})):c({kind:"unavailable",folderName:a.name})},[]),o=(0,e.useCallback)(async()=>{try{let a=await (0,f.a)();await n(a)}catch(a){if(a instanceof DOMException&&"AbortError"===a.name)return;c({kind:"unavailable"})}},[n]),p=(0,e.useCallback)(async a=>{try{let b=await a.requestPermission(k);"granted"===b?await n(a):c({kind:"unavailable",folderName:a.name})}catch{c({kind:"unavailable",folderName:a.name})}},[n]);switch(b.kind){case"loading":return(0,d.jsx)(F,{children:(0,d.jsx)(B,{})});case"onboarding":return(0,d.jsx)(F,{children:(0,d.jsx)(y,{onPick:o})});case"needs-permission":return(0,d.jsx)(F,{children:(0,d.jsx)(z,{folderName:b.handle.name,onConfirm:()=>p(b.handle),onPickOther:o})});case"unavailable":return(0,d.jsx)(F,{children:(0,d.jsx)(A,{folderName:b.folderName,onPick:o})});case"ready":return(0,d.jsx)(C.Provider,{value:{handle:b.handle,sessionsNonce:g,refreshSessions:j,repickWorkspace:o},children:a})}}function F({children:a}){return(0,d.jsx)("div",{className:"h-svh w-full",children:a})}},72275:(a,b,c)=>{"use strict";c.d(b,{Logo:()=>g});var d=c(48249),e=c(67484),f=c(14490);function g({className:a}){let[b,c]=(0,e.useState)(0),h=()=>c(a=>a+90);return(0,d.jsxs)("svg",{viewBox:"0 0 122 16",className:(0,f.cn)("h-4 w-auto text-foreground",a),fill:"currentColor",role:"img","aria-label":"Vellum",xmlns:"http://www.w3.org/2000/svg",onMouseEnter:h,onMouseLeave:h,children:[(0,d.jsx)("g",{className:"origin-center transition-transform duration-500 ease-out motion-reduce:transition-none",style:{transformBox:"fill-box",transform:`rotate(${b}deg)`},children:(0,d.jsx)("path",{d:"M6.50391 3.5H9.50391V1H12.5039V3.5H15.0039V6.5H12.5039V9.5H15.0039V12.5H12.5039V15H9.50391V12.5H6.50391V15H3.50391V12.5H1.00391V9.5H3.50391V6.5H1.00391V3.5H3.50391V1H6.50391V3.5ZM6.50391 9.5H9.50391V6.5H6.50391V9.5Z"})}),(0,d.jsx)("path",{d:"M86.7959 7.94043C86.7959 9.45243 87.2643 11.4512 90.4863 11.4512H90.5762C93.78 11.4511 94.2119 9.4524 94.2119 7.94043V1.40723H98.4961V7.99512C98.496 10.6591 97.6497 14.9971 90.792 14.9971H90.2695C83.1422 14.9969 82.5118 10.6411 82.5117 7.99512V1.40723H86.7959V7.94043ZM27.3057 10.9473L31.5176 1.40723H36.0898L29.9697 14.7988H24.498L18.1084 1.40723H23.0938L27.3057 10.9473ZM50.6113 4.48438H42.043V6.42871H50.3418V9.61523H42.043V11.6846H50.7197V14.7988H37.7773V1.40723H50.6113V4.48438ZM57.8643 11.3066H65.9648V14.7988H53.5625V1.40723H57.8643V11.3066ZM72.7354 11.3066H80.8359V14.7988H68.4336V1.40723H72.7354V11.3066ZM111.343 9.74121L115.374 1.40723H120.918V14.7988H116.706V6.24902L112.692 14.7988H109.704L105.708 6.24902V14.7988H101.568V1.40723H107.4L111.343 9.74121Z"})]})}},78590:(a,b,c)=>{"use strict";c.d(b,{m:()=>m,n:()=>n});var d=c(45516),e=c(6212),f=c(86903),g=c(34022),h=c(87675),i=c(98453);let j="report.md",k="tasks.json",l="screenshots";async function m(a,b,c,g){let i=d.DJ.parse(b);if(c.length!==i.tasks.length)throw Error(`writeReportBrowser: screenshots (${c.length}) must be parallel to result.tasks (${i.tasks.length}).`);await p(a);let m=c.map(a=>a.name),n=(0,e.fG)(i,()=>m),o=await (0,h.yB)(a),q=(0,f.Gc)({title:(0,f.wv)({override:o,suggested:n.suggested_name,folderName:g}),date:(0,f.Ec)(),relVideo:"recording.webm",result:n});await u(a,j,q),await u(a,k,JSON.stringify(n,null,2)+"\n");let r=await a.getDirectoryHandle(l,{create:!0});for(let a of c)await v(r,a.name,function(a){let b=atob(a),c=new Uint8Array(b.length);for(let a=0;a<b.length;a+=1)c[a]=b.charCodeAt(a);return c}(a.base64));return{reportName:j,tasksJsonName:k,screenshotNames:c.map(a=>a.name)}}async function n(a,b,c){let i=d.DJ.parse(b),m=await o(a),n=(0,g.W)(i.tasks).map(a=>m.has(a)?a:void 0);await p(a);let q=(0,e.fG)(i,()=>n),r=await (0,h.yB)(a),s=(0,f.Gc)({title:(0,f.wv)({override:r,suggested:q.suggested_name,folderName:c}),date:(0,f.Ec)(),relVideo:"recording.webm",result:q});await u(a,j,s),await u(a,k,JSON.stringify(q,null,2)+"\n");let t=await a.getDirectoryHandle(l,{create:!0}),w=[];for(let a of n){if(!a)continue;let b=m.get(a);b&&(w.includes(a)||(await v(t,a,b),w.push(a)))}return{reportName:j,tasksJsonName:k,screenshotNames:w}}async function o(a){let b=new Map,c=await x(a,l);if(!c)return b;for await(let a of c.values()){if("file"!==a.kind)continue;let c=await a.getFile();b.set(a.name,new Uint8Array(await c.arrayBuffer()))}return b}async function p(a){let b=await w(a,j),c=await w(a,k),d=await x(a,l);if(!b&&!c&&!d)return;let e=b?(await b.getFile()).lastModified:c?(await c.getFile()).lastModified:Date.now(),g=await q(a,(0,f.aA)(new Date(e)));b&&await s(a,j,`report-${g}.md`),c&&await s(a,k,`tasks-${g}.json`),d&&await t(a,d,(0,f.$e)(g)),await s(a,i.Dg,`tasks.ai-${g}.json`),await s(a,"comments.json",`comments-${g}.json`)}async function q(a,b){let c=b,d=2;for(;await r(a,c);)c=`${b}-${d}`,d+=1;return c}async function r(a,b){return!!(await w(a,`report-${b}.md`)||await w(a,`tasks-${b}.json`)||await x(a,(0,f.$e)(b)))}async function s(a,b,c){let d=await w(a,b);if(!d)return;let e=new Uint8Array(await (await d.getFile()).arrayBuffer());await v(a,c,e),await a.removeEntry(b)}async function t(a,b,c){let d=await a.getDirectoryHandle(c,{create:!0});for await(let a of b.values()){if("file"!==a.kind)continue;let b=new Uint8Array(await (await a.getFile()).arrayBuffer());await v(d,a.name,b)}await a.removeEntry(l,{recursive:!0})}async function u(a,b,c){let d=await a.getFileHandle(b,{create:!0}),e=await d.createWritable();await e.write(c),await e.close()}async function v(a,b,c){let d=await a.getFileHandle(b,{create:!0}),e=await d.createWritable();await e.write(c),await e.close()}async function w(a,b){try{return await a.getFileHandle(b)}catch(a){if(a instanceof DOMException&&"NotFoundError"===a.name)return null;throw a}}async function x(a,b){try{return await a.getDirectoryHandle(b)}catch(a){if(a instanceof DOMException&&"NotFoundError"===a.name)return null;throw a}}},86903:(a,b,c)=>{"use strict";c.d(b,{$e:()=>l,Ec:()=>i,Gc:()=>e,U4:()=>k,aA:()=>j,wv:()=>h});let d={ui_design:"UI Design",dev_vs_design:"Dev vs Design",documentation:"Documentation",mixed:"Mixed",other:"Other"};function e(a){var b;let c,{title:e,date:h,relVideo:i,result:j}=a,l=d[j.review_type];return[`# ${e}`,"",`**Review type:** ${l} \xb7 **Date:** ${h} \xb7 **Recording:** [${(c=(b=i).split("/").filter(Boolean)).length>0?c[c.length-1]:b}](${f(i)})`,"",j.overview].concat(0===j.tasks.length?["","---","","_No tasks were extracted from this recording._"]:j.tasks.flatMap((a,b)=>(function(a,b){let c=["","---","",`## ${b+1}. ${a.title}`,""];if(a.screenshot){let b=`${k}/${a.screenshot}`;c.push(`})`,"")}return c.push(`**Discussed at** \`${a.timestamp}\` \xb7 **Visible at** \`${a.screenshot_timestamp}\` \xb7 **Category:** ${g(a.category)} \xb7 **Priority:** ${g(a.priority)}`,"",a.description,"",`> **Screen context:** ${a.screen_context}`),c})(a,b))).join("\n").trimEnd()+"\n"}function f(a){return a.split("/").map(encodeURIComponent).join("/")}function g(a){return a.charAt(0).toUpperCase()+a.slice(1)}function h({override:a,suggested:b,folderName:c}){var d;let e,f=a?.trim();if(f)return f;let g=b?.trim();return g?(e=(d=g).replace(/[-_]+/g," ").trim().split(/\s+/).filter(Boolean).map(a=>a.charAt(0).toUpperCase()+a.slice(1))).length>0?e.join(" "):d:c}function i(){let a=new Date,b=a=>String(a).padStart(2,"0");return`${a.getFullYear()}-${b(a.getMonth()+1)}-${b(a.getDate())}`}function j(a){let b=a=>String(a).padStart(2,"0");return`${a.getFullYear()}-${b(a.getMonth()+1)}-${b(a.getDate())}-${b(a.getHours())}${b(a.getMinutes())}${b(a.getSeconds())}`}let k="screenshots";function l(a){return`${k}-${a}`}},87675:(a,b,c)=>{"use strict";c.d(b,{Iw:()=>j,R7:()=>g,yB:()=>f});var d=c(45516);let e="name.txt";async function f(a){try{let b=await a.getFileHandle(e),c=await (await b.getFile()).text(),d=c.split(/\r?\n/)[0]?.trim()??"";return d.length>0?d:null}catch{return null}}async function g(a,b){let c=b.trim(),d=await a.getFileHandle(e,{create:!0}),f=await d.createWritable();await f.write(c+"\n"),await f.close()}let h=".txt";async function i(a){let b=a.name;if(b===e||!b.endsWith(h))return!1;let c=b.slice(0,-h.length);if((0,d.kW)(c)!==c)return!1;try{return 0===(await a.getFile()).size}catch{return!1}}async function j(a,b){try{let c=function(a){let b=(0,d.kW)(a);if(!b)return null;let c=b+h;return c===e?null:c}(b);if(!c)return;for await(let b of a.values())if("file"===b.kind&&b.name!==c&&await i(b))try{await a.removeEntry(b.name)}catch{}try{await a.getFileHandle(c);return}catch(a){if(!(a instanceof DOMException&&"NotFoundError"===a.name))return}let f=await a.getFileHandle(c,{create:!0});await (await f.createWritable()).close()}catch{}}},88877:(a,b,c)=>{"use strict";c.d(b,{p:()=>g});var d=c(48249);c(67484);var e=c(67992),f=c(14490);function g({className:a,type:b,...c}){return(0,d.jsx)(e.Input,{type:b,"data-slot":"input",className:(0,f.cn)("h-8 w-full min-w-0 rounded-lg border border-input bg-transparent px-2.5 py-1 text-base transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:cursor-not-allowed disabled:bg-input/50 disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:disabled:bg-input/80 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40",a),...c})}},91932:(a,b,c)=>{"use strict";c.d(b,{f:()=>f,e:()=>g});var d=c(78590),e=c(13507);class f extends Error{constructor(a,b){super(b),this.kind=a,this.name="AnalyzeFlowError"}}async function g({sessionDir:a,sessionName:b,onProgress:c,signal:j,mode:k,language:l,model:m,revise:n}){var o,p,q,r;let s,t,{bytes:u,ext:v}=await h(a),w=(0,e._b)(v),x=`?ext=${v.slice(1)}${k?`&mode=${k}`:""}${l?`&lang=${l}`:""}${m?`&model=${encodeURIComponent(m)}`:""}`,y=n?{method:"POST",body:(o=u,p=v,q=w,r=n,(s=new FormData).append("video",new Blob([o],{type:q}),`recording${p}`),s.append("revise",JSON.stringify(r)),s),signal:j}:{method:"POST",headers:{"Content-Type":w},body:u,signal:j};try{t=await fetch(`/api/analyze${x}`,y)}catch(a){if(a instanceof DOMException&&"AbortError"===a.name)throw a;throw new f("network","Couldn't reach the analyzer. Check that the app is running, then retry.")}if(!t.ok||!t.body)throw new f("internal",`The analyzer responded with ${t.status}. Retry in a moment.`);let z=await i(t.body,c);return c({phase:"writing"}),(0,d.m)(a,z.result,z.screenshots,b)}async function h(a){let b=await (0,e.bN)(a);if(!b)throw new f("recording","This session has no recording (recording.webm or recording.mp4) to analyze.");let c=await b.handle.getFile();return{bytes:await c.arrayBuffer(),ext:b.ext}}async function i(a,b){let c=a.getReader(),d=new TextDecoder,e="",g=null;for(;;){let a=await c.read();if(a.done)break;let h=function(a){let b=a.split("\n"),c=b.pop()??"";return{lines:b.map(a=>a.trim()).filter(a=>a.length>0),rest:c}}(e+=d.decode(a.value,{stream:!0}));for(let a of(e=h.rest,h.lines)){let c=function(a){try{return JSON.parse(a)}catch{throw new f("stream","The analyzer sent a malformed response. Retry in a moment.")}}(a);if("progress"===c.type)b({phase:c.phase,n:c.n,m:c.m});else if("error"===c.type)throw new f(c.kind,c.message);else g={result:c.result,screenshots:c.screenshots}}if(g)break}if(!g)throw new f("stream","The analysis stream ended before finishing. Retry in a moment.");return g}},95424:(a,b,c)=>{"use strict";c.d(b,{AppSidebar:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call AppSidebar() from the server but AppSidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/vasylf/Desktop/projects/vellum/src/components/app-sidebar.tsx","AppSidebar")},98453:(a,b,c)=>{"use strict";c.d(b,{Dg:()=>i,VQ:()=>j,aq:()=>l});var d=c(6212),e=c(86903),f=c(34022),g=c(87675);let h="tasks.json",i="tasks.ai.json";async function j(a,b,c){await k(a);let f=d.E_.parse(b),i=await (0,g.yB)(a),j=(0,e.Gc)({title:(0,e.wv)({override:i,suggested:f.suggested_name,folderName:c}),date:(0,e.Ec)(),relVideo:"recording.webm",result:f});await n(a,h,JSON.stringify(f,null,2)+"\n"),await n(a,"report.md",j)}async function k(a){let b;if(await o(a,i))return;let c=await o(a,h);if(!c)return;try{b=await (await c.getFile()).text()}catch{return}let d=m(b);d&&await n(a,i,JSON.stringify(d,null,2)+"\n")}async function l(a){let b=await o(a,i);if(!b)return null;try{let a=await (await b.getFile()).text();return m(a)}catch{return null}}function m(a){let b;try{b=JSON.parse(a)}catch{return null}let c=(0,d.eJ)(b);return"stored"===c.status?c.result:"legacy"===c.status?(0,d.fG)(c.result,f.W):null}async function n(a,b,c){let d=await a.getFileHandle(b,{create:!0}),e=await d.createWritable();await e.write(c),await e.close()}async function o(a,b){try{return await a.getFileHandle(b)}catch(a){if(a instanceof DOMException&&"NotFoundError"===a.name)return null;throw a}}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=497,exports.ids=[497],exports.modules={1625:(a,b,c)=>{c.d(b,{l:()=>l});var d=c(67484),e=c(16942),f=c(43512),g=c(25685),h=c(60977),i=c(17526),j=c(8231),k=c(50484);function l(a={}){let{id:b,implicit:c=!1,controlRef:m}=a,{controlId:n,registerControlId:o}=(0,k.H)(),p=(0,j.e)(b),q=c?n:void 0,r=(0,g.j)(()=>Symbol("labelable-control")),s=d.useRef(!1),t=d.useRef(null!=b),u=(0,f.K)(()=>{s.current&&o!==i.tE&&(s.current=!1,o(r.current,void 0))});return(0,e.g)(()=>{let a;if(o!==i.tE){if(c){let c=m?.current;a=(0,h.vq)(c)&&null!=c.closest("label")?b??null:q??p}else if(null!=b)t.current=!0,a=b;else{if(!t.current)return void u();a=p}if(void 0===a)return void u();s.current=!0,o(r.current,a)}},[b,m,q,o,c,p,r,u]),d.useEffect(()=>u,[u]),n??p}},8896:(a,b,c)=>{c.d(b,{PQ:()=>h,Ts:()=>f,am:()=>g});var d=c(54729),e=c(67484);let f=e.createContext(!1),g=e.createContext(void 0);function h(a){let b=e.useContext(g);if(!1===a&&void 0===b)throw Error((0,d.A)(27));return b}},9114:(a,b,c)=>{c.d(b,{K:()=>r});var d=c(60977),e=c(63664),f=c(36139),g=c(28375),h=c(13344),i=c(16942),j=c(24077),k=c(3917),l=c(17526);let m={},n={},o="";class p{acquire(a){return this.lockCount+=1,1===this.lockCount&&null===this.restore&&this.timeoutLock.start(0,()=>this.lock(a)),this.release}lock(a){let b,c,i,j,p;if(0===this.lockCount||null!==this.restore)return;let q=(0,h.R)(a).documentElement,r=(0,d.zk)(q).getComputedStyle(q).overflowY;if("hidden"===r||"clip"===r){this.restore=l.tE;return}let s=g.s4||!function(a){if("u"<typeof document)return!1;let b=(0,h.R)(a);return(0,d.zk)(b).innerWidth-b.documentElement.clientWidth>0}(a);this.restore=s?(c=(b=(0,h.R)(a)).documentElement,i=b.body,p={overflowY:(j=(0,d.ZU)(c)?c:i).style.overflowY,overflowX:j.style.overflowX},Object.assign(j.style,{overflowY:"hidden",overflowX:"hidden"}),()=>{Object.assign(j.style,p)}):function(a){let b=(0,h.R)(a),c=b.documentElement,g=b.body,i=(0,d.zk)(c),j=0,l=0,p=!1,q=k.K.create();if(f.Fp&&(i.visualViewport?.scale??1)!==1)return()=>{};function r(){let b=i.getComputedStyle(c),e=i.getComputedStyle(g),f=(b.scrollbarGutter||"").includes("both-edges")?"stable both-edges":"stable";j=c.scrollTop,l=c.scrollLeft,m={scrollbarGutter:c.style.scrollbarGutter,overflowY:c.style.overflowY,overflowX:c.style.overflowX},o=c.style.scrollBehavior,n={position:g.style.position,height:g.style.height,width:g.style.width,boxSizing:g.style.boxSizing,overflowY:g.style.overflowY,overflowX:g.style.overflowX,scrollBehavior:g.style.scrollBehavior};let k=c.scrollHeight>c.clientHeight,q=c.scrollWidth>c.clientWidth,r="scroll"===b.overflowY||"scroll"===e.overflowY,s="scroll"===b.overflowX||"scroll"===e.overflowX,t=Math.max(0,i.innerWidth-g.clientWidth),u=Math.max(0,i.innerHeight-g.clientHeight),v=parseFloat(e.marginTop)+parseFloat(e.marginBottom),w=parseFloat(e.marginLeft)+parseFloat(e.marginRight),x=(0,d.ZU)(c)?c:g;if(p=function(a){if(!("u">typeof CSS&&CSS.supports&&CSS.supports("scrollbar-gutter","stable"))||"u"<typeof document)return!1;let b=(0,h.R)(a),c=b.documentElement,e=b.body,f=(0,d.ZU)(c)?c:e,g=f.style.overflowY,i=c.style.scrollbarGutter;c.style.scrollbarGutter="stable",f.style.overflowY="scroll";let j=f.offsetWidth;f.style.overflowY="hidden";let k=f.offsetWidth;return f.style.overflowY=g,c.style.scrollbarGutter=i,j===k}(a)){c.style.scrollbarGutter=f,x.style.overflowY="hidden",x.style.overflowX="hidden";return}Object.assign(c.style,{scrollbarGutter:f,overflowY:"hidden",overflowX:"hidden"}),(k||r)&&(c.style.overflowY="scroll"),(q||s)&&(c.style.overflowX="scroll"),Object.assign(g.style,{position:"relative",height:v||u?`calc(100dvh - ${v+u}px)`:"100dvh",width:w||t?`calc(100vw - ${w+t}px)`:"100vw",boxSizing:"border-box",overflow:"hidden",scrollBehavior:"unset"}),g.scrollTop=j,g.scrollLeft=l,c.setAttribute("data-base-ui-scroll-locked",""),c.style.scrollBehavior="unset"}function s(){Object.assign(c.style,m),Object.assign(g.style,n),p||(c.scrollTop=j,c.scrollLeft=l,c.removeAttribute("data-base-ui-scroll-locked"),c.style.scrollBehavior=o)}r();let t=(0,e.q)(i,"resize",function(){s(),q.request(r)});return()=>{q.cancel(),s(),"function"==typeof i.removeEventListener&&t()}}(a)}constructor(){this.lockCount=0,this.restore=null,this.timeoutLock=j.E.create(),this.timeoutUnlock=j.E.create(),this.release=()=>{this.lockCount-=1,0===this.lockCount&&this.restore&&this.timeoutUnlock.start(0,this.unlock)},this.unlock=()=>{0===this.lockCount&&this.restore&&(this.restore?.(),this.restore=null)}}}let q=new p;function r(a=!0,b=null){(0,i.g)(()=>{if(a)return q.acquire(b)},[a,b])}},10549:(a,b,c)=>{c.d(b,{default:()=>h});var d=c(67484),e={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"},f=c(80473);let g=(0,d.createContext)({}),h=(0,d.forwardRef)(({color:a,size:b,strokeWidth:c,absoluteStrokeWidth:h,className:i="",children:j,iconNode:k,...l},m)=>{let{size:n=24,strokeWidth:o=2,absoluteStrokeWidth:p=!1,color:q="currentColor",className:r=""}=(0,d.useContext)(g)??{},s=h??p?24*Number(c??o)/Number(b??n):c??o;return(0,d.createElement)("svg",{ref:m,...e,width:b??n??e.width,height:b??n??e.height,stroke:a??q,strokeWidth:s,className:(0,f.z)("lucide",r,i),...!j&&!(a=>{for(let b in a)if(b.startsWith("aria-")||"role"===b||"title"===b)return!0;return!1})(l)&&{"aria-hidden":"true"},...l},[...k.map(([a,b])=>(0,d.createElement)(a,b)),...Array.isArray(j)?j:[j]])})},13102:(a,b,c)=>{c.d(b,{I:()=>g});var d=c(67484),e=c(16942),f=c(89983);function g(a,b,c,h,i=!0,j){let{registerFieldControl:k}=(0,f.V$)(),l=d.useRef(null);l.current||(l.current=Symbol()),(0,e.g)(()=>{let d=l.current;if(d&&i)return k(d,{controlRef:a,getValue:h,id:b,name:j,value:c}),()=>{k(d,void 0)}},[a,i,h,b,j,k,c])}},15712:(a,b,c)=>{c.d(b,{Button:()=>g});var d=c(67484),e=c(30894),f=c(73838);let g=d.forwardRef(function(a,b){let{render:c,className:d,disabled:g=!1,focusableWhenDisabled:h=!1,nativeButton:i=!0,style:j,...k}=a,{getButtonProps:l,buttonRef:m}=(0,e.s)({disabled:g,focusableWhenDisabled:h,native:i});return(0,f.o)("button",a,{state:{disabled:g},ref:[b,m],props:[k,l]})})},16793:(a,b,c)=>{c.d(b,{D:()=>v});var d=c(67484),e=c(8896),f=c(87991),g=c(9114),h=c(17526),i=c(69359),j=c(21380),k=c(69827),l=c(60485),m=c(6787);function n({store:a,parentContext:b,isDrawer:c}){let e=a.useState("open"),f=a.useState("disablePointerDismissal"),k=a.useState("modal"),l=a.useState("popupElement"),o=a.useState("floatingRootContext"),[p,q]=d.useState(0),[r,s]=d.useState(0),t=0===p,u=(0,i.s)(o,{outsidePressEvent:()=>a.context.internalBackdropRef.current||a.context.backdropRef.current?"intentional":{mouse:"trap-focus"===k?"sloppy":"intentional",touch:"sloppy"},outsidePress(b){if(!a.context.outsidePressEnabledRef.current||"button"in b&&0!==b.button||"touches"in b&&1!==b.touches.length)return!1;let c=(0,j.EW)(b);return!!t&&!f&&(!k||!a.context.internalBackdropRef.current&&!a.context.backdropRef.current||a.context.internalBackdropRef.current===c||a.context.backdropRef.current===c||(0,j.gR)(c,l)&&!c?.hasAttribute("data-base-ui-portal"))},escapeKey:t});(0,g.K)(e&&!0===k,l),a.useContextCallback("onNestedDialogOpen",(a,b)=>{q(a),s(b)}),a.useContextCallback("onNestedDialogClose",()=>{q(0),s(0)}),d.useEffect(()=>(b?.onNestedDialogOpen&&e&&b.onNestedDialogOpen(p+1,r+ +!!c),b?.onNestedDialogClose&&!e&&b.onNestedDialogClose(),()=>{b?.onNestedDialogClose&&e&&b.onNestedDialogClose()}),[c,e,p,r,b]);let v=u.reference??h.t0,w=u.trigger??h.t0,x=u.floating??h.t0;return(0,m.i6)(a,{activeTriggerProps:v,inactiveTriggerProps:w,popupProps:x,nestedOpenDialogCount:p,nestedOpenDrawerCount:r}),null}var o=c(62110),p=c(7401),q=c(47842),r=c(49259);let s={...q.ol,modal:(0,o.M)(a=>a.modal),nested:(0,o.M)(a=>a.nested),nestedOpenDialogCount:(0,o.M)(a=>a.nestedOpenDialogCount),nestedOpenDrawerCount:(0,o.M)(a=>a.nestedOpenDrawerCount),disablePointerDismissal:(0,o.M)(a=>a.disablePointerDismissal),openMethod:(0,o.M)(a=>a.openMethod),descriptionElementId:(0,o.M)(a=>a.descriptionElementId),titleElementId:(0,o.M)(a=>a.titleElementId),viewportElement:(0,o.M)(a=>a.viewportElement),role:(0,o.M)(a=>a.role)};class t extends p.H{constructor(a,b,c=!1){const e=new r.Z,f=function(a={}){return{...(0,q.rJ)(),modal:!0,disablePointerDismissal:!1,popupElement:null,viewportElement:null,descriptionElementId:void 0,titleElementId:void 0,openMethod:null,nested:!1,nestedOpenDialogCount:0,nestedOpenDrawerCount:0,role:"dialog",...a}}(a);f.floatingRootContext=(0,q.OB)(e,b,c),super(f,{popupRef:d.createRef(),backdropRef:d.createRef(),internalBackdropRef:d.createRef(),outsidePressEnabledRef:{current:!0},triggerElements:e,onOpenChange:void 0,onOpenChangeComplete:void 0},s)}setOpen=(a,b)=>{if(b.preventUnmountOnClose=()=>{this.set("preventUnmountingOnClose",!0)},a||null!=b.trigger||null==this.state.activeTriggerId||(b.trigger=this.state.activeTriggerElement??void 0),this.context.onOpenChange?.(a,b),b.isCanceled)return;this.state.floatingRootContext.dispatchOpenChange(a,b);let c={open:a};(0,m.i)(c,a,b.trigger),this.update(c)};static useStore(a,b){return(0,m.Nj)(a,(a,c)=>new t(b,a,c),!0).store}}var u=c(48249);function v(a){return function(a,b="dialog"){let{children:c,open:g,defaultOpen:h=!1,onOpenChange:i,onOpenChangeComplete:j,disablePointerDismissal:o=!1,modal:p=!0,actionsRef:q,handle:r,triggerId:s,defaultTriggerId:v=null}=a,w="alert-dialog"===b,x=(0,e.PQ)(!0),y={modal:!!w||p,disablePointerDismissal:w||o,nested:!!x,role:w?"alertdialog":"dialog"},z=t.useStore(r?.store,{open:h,openProp:g,activeTriggerId:v,triggerIdProp:s,...y});(0,f.j)(()=>{let a=void 0===g&&!1===z.state.open&&!0===h?{open:!0,activeTriggerId:v}:null;w?z.update(a?{...y,...a}:y):a&&z.update(a)}),z.useControlledProp("openProp",g),z.useControlledProp("triggerIdProp",s),z.useSyncedValues(y),z.useContextCallback("onOpenChange",i),z.useContextCallback("onOpenChangeComplete",j);let A=z.useState("open"),B=z.useState("mounted"),C=z.useState("payload");!function(a){let{store:b,actionsRef:c}=a,e=b.useState("open");(0,m.xs)(b,e),(0,m.tr)(b);let{forceUnmount:f}=(0,m.l$)(e,b),g=d.useCallback(()=>{b.setOpen(!1,(0,k.d)(l.zJ))},[b]);d.useImperativeHandle(c,()=>({unmount:f,close:g}),[f,g])}({store:z,actionsRef:q});let D=d.useMemo(()=>({store:z}),[z]);return(0,u.jsx)(e.Ts.Provider,{value:!1,children:(0,u.jsxs)(e.am.Provider,{value:D,children:[(A||B)&&(0,u.jsx)(n,{store:z,parentContext:x?.store.context,isDrawer:"drawer"===b}),"function"==typeof c?c({payload:C}):c]})})}(a,d.useContext(e.Ts)?"drawer":"dialog")}},17193:(a,b,c)=>{c.d(b,{H:()=>j});var d=c(67484),e=c(8896),f=c(73838),g=c(30894),h=c(69827),i=c(60485);let j=d.forwardRef(function(a,b){let{render:c,className:d,style:j,disabled:k=!1,nativeButton:l=!0,...m}=a,{store:n}=(0,e.PQ)(),o=n.useState("open"),{getButtonProps:p,buttonRef:q}=(0,g.s)({disabled:k,native:l});return(0,f.o)("button",a,{state:{disabled:k},ref:[b,q],props:[{onClick:function(a){o&&n.setOpen(!1,(0,h.d)(i.SR,a.nativeEvent))}},m,p]})})},21654:(a,b,c)=>{c.d(b,{F:()=>g});var d=c(99314);let e=a=>"boolean"==typeof a?`${a}`:0===a?"0":a,f=d.$,g=(a,b)=>c=>{var d;if((null==b?void 0:b.variants)==null)return f(a,null==c?void 0:c.class,null==c?void 0:c.className);let{variants:g,defaultVariants:h}=b,i=Object.keys(g).map(a=>{let b=null==c?void 0:c[a],d=null==h?void 0:h[a];if(null===b)return null;let f=e(b)||e(d);return g[a][f]}),j=c&&Object.entries(c).reduce((a,b)=>{let[c,d]=b;return void 0===d||(a[c]=d),a},{});return f(a,i,null==b||null==(d=b.compoundVariants)?void 0:d.reduce((a,b)=>{let{class:c,className:d,...e}=b;return Object.entries(e).every(a=>{let[b,c]=a;return Array.isArray(c)?c.includes({...h,...j}[b]):({...h,...j})[b]===c})?[...a,c,d]:a},[]),null==c?void 0:c.class,null==c?void 0:c.className)}},25318:(a,b,c)=>{c.d(b,{x:()=>g});var d=c(67484),e=c(17526);let f=d.createContext({formRef:{current:{fields:new Map}},errors:{},clearErrors:e.tE,validationMode:"onSubmit",submitAttemptedRef:{current:!1}});function g(){return d.useContext(f)}},26829:(a,b,c)=>{c.d(b,{L:()=>h});var d=c(67484),e=c(8896),f=c(73838),g=c(8231);let h=d.forwardRef(function(a,b){let{render:c,className:d,style:h,id:i,...j}=a,{store:k}=(0,e.PQ)(),l=(0,g.e)(i);return k.useSyncedValueWithCleanup("titleElementId",l),(0,f.o)("h2",a,{ref:b,props:[{id:l},j]})})},27677:(a,b,c)=>{c.d(b,{$v:()=>s,Jd:()=>f,Kp:()=>j,LM:()=>o,Qi:()=>r,RJ:()=>h,eR:()=>g,eb:()=>k,il:()=>e,jF:()=>p,lZ:()=>l,rT:()=>q,ug:()=>m,yZ:()=>i,z5:()=>n});var d=c(60977);let e="ArrowUp",f="ArrowDown",g="ArrowLeft",h="ArrowRight",i="Home",j="End",k=new Set([g,h]),l=new Set([g,h,i,j]),m=new Set([e,f]),n=new Set([e,f,i,j]),o=new Set([...k,...m]),p=new Set([...o,i,j]),q=new Set(["Shift","Control","Alt","Meta"]);function r(a){return!!((0,d.sb)(a)&&"INPUT"===a.tagName&&null!=a.selectionStart||(0,d.sb)(a)&&"TEXTAREA"===a.tagName)}function s(a,b,c,d){if(!a||!b||!b.scrollTo)return;let e=a.scrollLeft,f=a.scrollTop,g=a.clientWidth<a.scrollWidth,h=a.clientHeight<a.scrollHeight;if(g&&"vertical"!==d){let d=t(a,b,"left"),f=u(a),g=u(b);"ltr"===c&&(d+b.offsetWidth+g.scrollMarginRight>a.scrollLeft+a.clientWidth-f.scrollPaddingRight?e=d+b.offsetWidth+g.scrollMarginRight-a.clientWidth+f.scrollPaddingRight:d-g.scrollMarginLeft<a.scrollLeft+f.scrollPaddingLeft&&(e=d-g.scrollMarginLeft-f.scrollPaddingLeft)),"rtl"===c&&(d-g.scrollMarginRight<a.scrollLeft+f.scrollPaddingLeft?e=d-g.scrollMarginLeft-f.scrollPaddingLeft:d+b.offsetWidth+g.scrollMarginRight>a.scrollLeft+a.clientWidth-f.scrollPaddingRight&&(e=d+b.offsetWidth+g.scrollMarginRight-a.clientWidth+f.scrollPaddingRight))}if(h&&"horizontal"!==d){let c=t(a,b,"top"),d=u(a),e=u(b);c-e.scrollMarginTop<a.scrollTop+d.scrollPaddingTop?f=c-e.scrollMarginTop-d.scrollPaddingTop:c+b.offsetHeight+e.scrollMarginBottom>a.scrollTop+a.clientHeight-d.scrollPaddingBottom&&(f=c+b.offsetHeight+e.scrollMarginBottom-a.clientHeight+d.scrollPaddingBottom)}a.scrollTo({left:e,top:f,behavior:"auto"})}function t(a,b,c){let d="left"===c?"offsetLeft":"offsetTop",e=0;for(;b.offsetParent&&(e+=b[d],b.offsetParent!==a);)b=b.offsetParent;return e}function u(a){let b=getComputedStyle(a);return{scrollMarginTop:parseFloat(b.scrollMarginTop)||0,scrollMarginRight:parseFloat(b.scrollMarginRight)||0,scrollMarginBottom:parseFloat(b.scrollMarginBottom)||0,scrollMarginLeft:parseFloat(b.scrollMarginLeft)||0,scrollPaddingTop:parseFloat(b.scrollPaddingTop)||0,scrollPaddingRight:parseFloat(b.scrollPaddingRight)||0,scrollPaddingBottom:parseFloat(b.scrollPaddingBottom)||0,scrollPaddingLeft:parseFloat(b.scrollPaddingLeft)||0}}},30894:(a,b,c)=>{c.d(b,{s:()=>j});var d=c(67484),e=c(60977),f=c(43512),g=c(16942),h=c(56479),i=c(58441);function j(a={}){let{disabled:b=!1,focusableWhenDisabled:c,tabIndex:e=0,native:l=!0,composite:m}=a,n=d.useRef(null),o=(0,i.G)(!0),p=m??void 0!==o,{props:q}=function(a){let{focusableWhenDisabled:b,disabled:c,composite:e=!1,tabIndex:f=0,isNativeButton:g}=a,h=e&&!1!==b,i=e&&!1===b;return{props:d.useMemo(()=>{let a={onKeyDown(a){c&&b&&"Tab"!==a.key&&a.preventDefault()}};return e||(a.tabIndex=f,!g&&c&&(a.tabIndex=b?f:-1)),(g&&(b||h)||!g&&c)&&(a["aria-disabled"]=c),g&&(!b||i)&&(a.disabled=c),a},[e,c,b,h,i,g,f])}}({focusableWhenDisabled:c,disabled:b,composite:p,tabIndex:e,isNativeButton:l}),r=d.useCallback(()=>{let a=n.current;k(a)&&p&&b&&void 0===q.disabled&&a.disabled&&(a.disabled=!1)},[b,q.disabled,p]);return(0,g.g)(r,[r]),{getButtonProps:d.useCallback((a={})=>{let{onClick:c,onMouseDown:d,onKeyUp:e,onKeyDown:f,onPointerDown:g,...i}=a;return(0,h.v6)({onClick(a){b?a.preventDefault():c?.(a)},onMouseDown(a){b||d?.(a)},onKeyDown(a){var d;if(b||((0,h.PT)(a),f?.(a),a.baseUIHandlerPrevented))return;let e=a.target===a.currentTarget,g=a.currentTarget,i=k(g),j=!l&&(d=g,!!(d?.tagName==="A"&&d?.href)),m=e&&(l?i:!j),n="Enter"===a.key,o=" "===a.key,q=g.getAttribute("role"),r=q?.startsWith("menuitem")||"option"===q||"gridcell"===q;if(e&&p&&o){if(a.defaultPrevented&&r)return;a.preventDefault(),j||l&&i?(g.click(),a.preventBaseUIHandler()):m&&(c?.(a),a.preventBaseUIHandler());return}m&&(!l&&(o||n)&&a.preventDefault(),!l&&n&&c?.(a))},onKeyUp(a){b||(((0,h.PT)(a),e?.(a),a.target===a.currentTarget&&l&&p&&k(a.currentTarget)&&" "===a.key)?a.preventDefault():!a.baseUIHandlerPrevented&&(a.target!==a.currentTarget||l||p||" "!==a.key||c?.(a)))},onPointerDown(a){b?a.preventDefault():g?.(a)}},l?{type:"button"}:{role:"button"},q,i)},[b,q,p,l]),buttonRef:(0,f.K)(a=>{n.current=a,r()})}}function k(a){return(0,e.sb)(a)&&"BUTTON"===a.tagName}},32595:(a,b,c)=>{c.d(b,{k:()=>m});var d=c(67484),e=c(3917),f=c(24077),g=c(17526),h=c(21380),i=c(66611),j=c(6683),k=c(69827),l=c(60485);function m(a,b={}){let{enabled:c=!0,event:n="click",toggle:o=!0,ignoreMouse:p=!1,stickIfOpen:q=!0,touchOpenDelay:r=0,reason:s=l.Ui}=b,t="rootStore"in a?a.rootStore:a,u=t.context.dataRef,v=d.useRef(void 0),w=(0,e.N)(),x=(0,f.Z)(),y=d.useMemo(()=>{function a(a,b,c,d){let e=(0,k.d)(s,b,c);a&&"touch"===d&&r>0?x.start(r,()=>{t.setOpen(!0,e)}):t.setOpen(a,e)}function b(a,b,c){let d=u.current.openEvent,e=t.select("domReferenceElement")!==b;return!!a&&!!e||!a||!o||!!d&&!!q&&!c(d.type)}return{onPointerDown(a){v.current=a.pointerType},onMouseDown(c){let d=v.current,e=c.nativeEvent,f=t.select("open");if(0!==c.button||"click"===n||(0,j.Go)(d,!0)&&p)return;let g=b(f,c.currentTarget,a=>"click"===a||"mousedown"===a),k=(0,h.EW)(e);if((0,i.$u)(k))return void a(g,e,k,d);let l=c.currentTarget;w.request(()=>{a(g,e,l,d)})},onClick(c){if("mousedown-only"===n)return;let d=v.current;if("mousedown"===n&&d){v.current=void 0;return}(0,j.Go)(d,!0)&&p||a(b(t.select("open"),c.currentTarget,a=>"click"===a||"mousedown"===a||"keydown"===a||"keyup"===a),c.nativeEvent,c.currentTarget,d)},onKeyDown(){v.current=void 0}}},[u,n,p,s,t,q,o,w,x,r]);return d.useMemo(()=>c?{reference:y}:g.t0,[c,y])}},33408:(a,b,c)=>{c.d(b,{Y:()=>e});var d=c(43476);function e(a){return(0,d._)(19)?a:a?"true":void 0}},36645:(a,b,c)=>{c.d(b,{s:()=>T});var d=c(67484),e=c(60977),f=c(63664),g=c(67466),h=c(92806),i=c(43302),j=c(43512),k=c(16942),l=c(24077),m=c(36139),n=c(3917),o=c(13344),p=c(48297),q=c(21380),r=c(66611),s=c(6683),t=c(92960),u=c(52940),v=c(48341),w=c(69827),x=c(60485),y=c(81355),z=c(37375);let A={inert:new WeakMap,"aria-hidden":new WeakMap},B="data-base-ui-inert",C={inert:new WeakSet,"aria-hidden":new WeakSet},D=new WeakMap,E=0,F=(a,b)=>b.map(b=>{if(a.contains(b))return b;let c=function a(b){return b?(0,e.Ng)(b)?b.host:a(b.parentNode):null}(b);return a.contains(c)?c:null}).filter(a=>null!=a),G=a=>{let b=new Set;return a.forEach(a=>{let c=a;for(;c&&!b.has(c);)b.add(c),c=c.parentNode}),b},H=(a,b,c)=>{let d=[],f=a=>{!a||c.has(a)||Array.from(a.children).forEach(a=>{"script"!==(0,e.mq)(a)&&(b.has(a)?f(a):d.push(a))})};return f(a),d};function I(a,b={}){let{ariaHidden:c=!1,inert:d=!1,mark:e=!0}=b,f=(0,o.R)(a[0]).body;return function(a,b,c,d,{mark:e=!0}){let f=null;d?f="inert":c&&(f="aria-hidden");let g=null,h=null,i=F(b,a),j=e?H(b,G(i),new Set(i)):[],k=[],l=[];if(f){let a=A[f],c=C[f];h=c,g=a;let d=F(b,Array.from(b.querySelectorAll("[aria-live]"))),e=i.concat(d);H(b,G(e),new Set(e)).forEach(b=>{let d=b.getAttribute(f),e=null!==d&&"false"!==d,g=(a.get(b)||0)+1;a.set(b,g),k.push(b),1===g&&e&&c.add(b),e||b.setAttribute(f,"inert"===f?"":"true")})}return e&&j.forEach(a=>{let b=(D.get(a)||0)+1;D.set(a,b),l.push(a),1===b&&a.setAttribute(B,"")}),E+=1,()=>{g&&k.forEach(a=>{let b=(g.get(a)||0)-1;g.set(a,b),b||(!h?.has(a)&&f&&a.removeAttribute(f),h?.delete(a))}),e&&l.forEach(a=>{let b=(D.get(a)||0)-1;D.set(a,b),b||a.removeAttribute(B)}),(E-=1)||(A.inert=new WeakMap,A["aria-hidden"]=new WeakMap,C.inert=new WeakSet,C["aria-hidden"]=new WeakSet,D=new WeakMap)}}(a,f,c,d,{mark:e})}var J=c(60982),K=c(51032),L=c(49219),M=c(40280),N=c(48249);let O=[];function P(){O=O.filter(a=>a.deref()?.isConnected)}function Q(a){P(),a&&"body"!==(0,e.mq)(a)&&(O.push(new WeakRef(a)),O.length>20&&(O=O.slice(-20)))}function R(){return P(),O[O.length-1]?.deref()}function S(a){if(a.hasAttribute("tabindex")&&!a.hasAttribute("data-tabindex")||!a.getAttribute("role")?.includes("dialog"))return;let b=(0,t.nq)(a).filter(a=>{let b=a.getAttribute("data-tabindex")||"";return(0,t.AO)(a)||a.hasAttribute("data-tabindex")&&!b.startsWith("-")}),c=a.getAttribute("tabindex");0===b.length?"0"!==c&&(a.setAttribute("tabindex","0"),a.setAttribute("data-tabindex","0")):("-1"!==c||a.hasAttribute("data-tabindex")&&"-1"!==a.getAttribute("data-tabindex"))&&(a.setAttribute("tabindex","-1"),a.setAttribute("data-tabindex","-1"))}function T(a){let{context:b,children:c,disabled:A=!1,initialFocus:B=!0,returnFocus:C=!0,restoreFocus:D=!1,modal:E=!0,closeOnFocusOut:F=!0,openInteractionType:G="",nextFocusableElement:H,previousFocusableElement:O,beforeContentFocusGuardRef:T,externalTree:U,getInsideElements:V}=a,W="rootStore"in b?b.rootStore:b,X=W.useState("open"),Y=W.useState("domReferenceElement"),Z=W.useState("floatingElement"),{events:$,dataRef:_}=W.context,aa=(0,j.K)(()=>_.current.floatingContext?.nodeId),ab=(0,r.WZ)(Y)&&!1===B,ac=(0,i.u)(B),ad=(0,i.u)(C),ae=(0,i.u)(G),af=(0,i.u)(X),ag=(0,K.cq)(U),ah=(0,J.vB)(),ai=d.useRef(!1),aj=d.useRef(!1),ak=d.useRef(!1),al=d.useRef(null),am=d.useRef(""),an=d.useRef(""),ao=d.useRef(null),ap=d.useRef(null),aq=(0,h.a)(ao,T,ah?.beforeInsideRef),ar=(0,h.a)(ap,ah?.afterInsideRef),as=(0,l.Z)(),at=(0,l.Z)(),au=(0,n.N)(),av=null!=ah,aw=(0,r.nd)(Z),ax=(0,j.K)((a=aw)=>a?(0,t.Kr)(a):[]),ay=(0,j.K)(()=>V?.().filter(a=>null!=a)??[]);d.useEffect(()=>{if(A||!E)return;let a=(0,o.R)(aw);return(0,f.q)(a,"keydown",function(a){"Tab"===a.key&&(0,q.gR)(aw,(0,q.RS)((0,o.R)(aw)))&&0===ax().length&&!ab&&(0,s.jo)(a)})},[A,aw,E,ab,ax]),d.useEffect(()=>{if(A||!X)return;let a=(0,o.R)(aw);function b(){ak.current=!1}return(0,g.g)((0,f.q)(a,"pointerdown",function(a){let b=(0,q.EW)(a),c=ay();ak.current=!((0,q.gR)(Z,b)||(0,q.gR)(Y,b)||(0,q.gR)(ah?.portalNode,b)||c.some(a=>a===b||(0,q.gR)(a,b))),an.current=a.pointerType||"keyboard",b?.closest(`[${L.Kd}]`)&&(aj.current=!0,at.start(0,()=>{aj.current=!1}))},!0),(0,f.q)(a,"pointerup",b,!0),(0,f.q)(a,"pointercancel",b,!0),(0,f.q)(a,"keydown",function(){an.current="keyboard"},!0),b)},[A,Z,Y,aw,X,ah,at,ay]),d.useEffect(()=>{if(A||!F)return;let a=(0,o.R)(aw);function b(b){let c=b.relatedTarget,d=b.currentTarget,f=(0,q.EW)(b);E&&null==c&&null!=f&&(0,q.gR)(Z,f)&&Q(f),queueMicrotask(()=>{let g=aa(),h=W.context.triggerElements,i=ay(),j=c?.hasAttribute((0,y.F)("focus-guard"))&&[ao.current,ap.current,ah?.beforeInsideRef.current,ah?.afterInsideRef.current,ah?.beforeOutsideRef.current,ah?.afterOutsideRef.current,(0,M.q)(O),(0,M.q)(H)].includes(c),k=!((0,q.gR)(Y,c)||(0,q.gR)(Z,c)||(0,q.gR)(c,Z)||(0,q.gR)(ah?.portalNode,c)||i.some(a=>a===c||(0,q.gR)(a,c))||null!=c&&h.hasElement(c)||h.hasMatchingElement(a=>(0,q.gR)(a,c))||j||ag&&((0,u.CM)(ag.nodesRef.current,g).find(a=>(0,q.gR)(a.context?.elements.floating,c)||(0,q.gR)(a.context?.elements.domReference,c))||(0,u.$4)(ag.nodesRef.current,g).find(a=>[a.context?.elements.floating,(0,r.nd)(a.context?.elements.floating)].includes(c)||a.context?.elements.domReference===c)));if(d===Y&&aw&&S(aw),D&&d!==Y&&!(0,v.J9)(f)&&(0,q.RS)(a)===a.body){if((0,e.sb)(aw)&&(aw.focus(),"popup"===D))return void au.request(()=>{aw.focus()});let a=ax(),b=al.current,c=(b&&a.includes(b)?b:null)||a[a.length-1]||aw;(0,e.sb)(c)&&c.focus()}if(_.current.insideReactTree){_.current.insideReactTree=!1;return}(ab||!E)&&c&&k&&!aj.current&&(ab||c!==R())&&(ai.current=!0,W.setOpen(!1,(0,w.d)(x.Xn,b)))})}let c=(0,e.sb)(Y)?Y:null;if(Z||c)return(0,g.g)(c&&(0,f.q)(c,"focusout",b),c&&(0,f.q)(c,"pointerdown",function(){aj.current=!0,at.start(0,()=>{aj.current=!1})}),Z&&(0,f.q)(Z,"focusin",function(a){let b=(0,q.EW)(a);(0,t.AO)(b)&&(al.current=b)}),Z&&(0,f.q)(Z,"focusout",b),Z&&ah&&(0,f.q)(Z,"focusout",function(){ak.current||(_.current.insideReactTree=!0,as.start(0,()=>{_.current.insideReactTree=!1}))},!0))},[A,Y,Z,aw,E,ag,ah,W,F,D,ax,ab,aa,_,as,at,au,H,O,ay]),d.useEffect(()=>{if(A||!Z||!X)return;let a=Array.from(ah?.portalNode?.querySelectorAll(`[${(0,y.F)("portal")}]`)||[]),b=ag?(0,u.$4)(ag.nodesRef.current,aa()):[],c=b.find(a=>(0,r.WZ)(a.context?.elements.domReference||null))?.context?.elements.domReference,d=I([Z,...a,ao.current,ap.current,ah?.beforeOutsideRef.current,ah?.afterOutsideRef.current,...ay(),c,(0,M.q)(O),(0,M.q)(H),ab?Y:null].filter(a=>null!=a),{ariaHidden:E||ab,mark:!1}),e=I([Z,...a].filter(a=>null!=a));return()=>{e(),d()}},[X,A,Y,Z,E,ah,ab,ag,aa,H,O,ay]),(0,k.g)(()=>{if(!X||A||!(0,e.sb)(aw))return;let a=(0,o.R)(aw),b=(0,q.RS)(a);queueMicrotask(()=>{let c,d=ac.current,e="function"==typeof d?d(ae.current||""):d;if(void 0===e||!1===e||(0,q.gR)(aw,b))return;let f=null,g=()=>(null==f&&(f=ax(aw)),f[0]||aw);c=(c=!0===e||null===e?g():(0,M.q)(e))||g();let h=(0,q.gR)(aw,(0,q.RS)(a));(0,z.p)(c,{preventScroll:c===aw,shouldFocus(){if(!af.current)return!1;if(h)return!0;let b=(0,q.RS)(a);return!(b!==c&&(0,q.gR)(aw,b))}})})},[A,X,aw,ax,ac,ae,af]),(0,k.g)(()=>{if(A||!aw)return;let a=(0,o.R)(aw),b=(0,q.RS)(a),c=null==ae.current;function d(a){var b,c;let d;if(a.open||(b=a.nativeEvent,c=an.current,d=(0,e.zk)((0,q.EW)(b)),am.current=b instanceof d.KeyboardEvent?"keyboard":b instanceof d.FocusEvent?c||"keyboard":"pointerType"in b?b.pointerType||"keyboard":"touches"in b?"touch":b instanceof d.MouseEvent?c||(0===b.detail?"keyboard":"mouse"):""),a.reason===x.N7&&"mouseleave"===a.nativeEvent.type&&(ai.current=!0),a.reason===x.Np)if(a.nested)ai.current=!1;else if((0,s.YF)(a.nativeEvent)||(0,s.Pg)(a.nativeEvent))ai.current=!1;else{let a=!1;(0,o.R)(aw).createElement("div").focus({get preventScroll(){return a=!0,!1}}),a?ai.current=!1:ai.current=!0}}return Q(b),$.on("openchange",d),()=>{$.off("openchange",d);let f=(0,q.RS)(a),g=ay(),h=(0,q.gR)(Z,f)||g.some(a=>a===f||(0,q.gR)(a,f))||ag&&(0,u.CM)(ag.nodesRef.current,aa(),!1).some(a=>(0,q.gR)(a.context?.elements.floating,f)),i=ad.current,j=function(){let a=ad.current,d="function"==typeof a?a(am.current):a;if(void 0===d||!1===d)return null;null===d&&(d=!0);let f=Y?.isConnected?Y:null,g=b?.isConnected&&"body"!==(0,e.mq)(b)?b:null,h=c?g||f:f||g;return(h||(h=R()||null),"boolean"==typeof d)?h:(0,M.q)(d)||h||null}();queueMicrotask(()=>{let b=j?(0,t.AO)(j)?j:(0,t.Kr)(j)[0]||j:null;i&&!ai.current&&(0,e.sb)(b)&&("boolean"!=typeof i||b===f||f===a.body||h)&&b.focus({preventScroll:!0}),ai.current=!1})}},[A,Z,aw,ad,ae,$,ag,Y,aa,ay]),(0,k.g)(()=>{if(!m.Fp||X||!Z)return;let a=(0,q.RS)((0,o.R)(Z));(0,e.sb)(a)&&(0,r.$u)(a)&&(0,q.gR)(Z,a)&&a.blur()},[X,Z]),(0,k.g)(()=>{if(!A&&ah)return ah.setFocusManagerState({modal:E,closeOnFocusOut:F,open:X,onOpenChange:W.setOpen,domReference:Y}),()=>{ah.setFocusManagerState(null)}},[A,ah,E,X,W,F,Y]),(0,k.g)(()=>{if(!A&&aw)return S(aw),()=>{queueMicrotask(P)}},[A,aw]);let az=!A&&(!E||!ab)&&(av||E);return(0,N.jsxs)(d.Fragment,{children:[az&&(0,N.jsx)(p.U,{"data-type":"inside",ref:aq,onFocus:a=>{if(E){let a=ax();(0,z.p)(a[a.length-1])}else if(ah?.portalNode)if(ai.current=!1,(0,t.Qp)(a,ah.portalNode)){let a=(0,t.vF)(Y);a?.focus()}else(0,M.q)(O??ah.beforeOutsideRef)?.focus()}}),c,az&&(0,N.jsx)(p.U,{"data-type":"inside",ref:ar,onFocus:a=>{if(E)(0,z.p)(ax()[0]);else if(ah?.portalNode)if(F&&(ai.current=!0),(0,t.Qp)(a,ah.portalNode)){let a=(0,t.XJ)(Y);a?.focus()}else(0,M.q)(H??ah.afterOutsideRef)?.focus()}})]})}},37375:(a,b,c)=>{c.d(b,{p:()=>f});var d=c(17526);let e=0;function f(a,b={}){let{preventScroll:c=!1,sync:g=!1,shouldFocus:h}=b;function i(){(!h||h())&&a?.focus({preventScroll:c})}if(cancelAnimationFrame(e),g)return i(),d.tE;let j=requestAnimationFrame(i);return e=j,()=>{e===j&&(cancelAnimationFrame(j),e=0)}}},38240:(a,b,c)=>{c.d(b,{u:()=>j});var d=c(67484),e=c(25685),f=c(43512),g=c(16942),h=c(79153),i=c(48249);function j(a){let{children:b,elementsRef:c,labelsRef:j,onMapChange:n}=a,o=(0,f.K)(n),p=d.useRef(0),q=(0,e.j)(l).current,r=(0,e.j)(k).current,[s,t]=d.useState(0),u=d.useRef(s),v=(0,f.K)((a,b)=>{r.set(a,b??null),u.current+=1,t(u.current)}),w=(0,f.K)(a=>{r.delete(a),u.current+=1,t(u.current)}),x=d.useMemo(()=>{let a=new Map;return Array.from(r.keys()).filter(a=>a.isConnected).sort(m).forEach((b,c)=>{let d=r.get(b)??{};a.set(b,{...d,index:c})}),a},[r,s]);(0,g.g)(()=>{if("function"!=typeof MutationObserver||0===x.size)return;let a=new MutationObserver(a=>{let b=new Set,c=a=>b.has(a)?b.delete(a):b.add(a);a.forEach(a=>{a.removedNodes.forEach(c),a.addedNodes.forEach(c)}),0===b.size&&(u.current+=1,t(u.current))});return x.forEach((b,c)=>{c.parentElement&&a.observe(c.parentElement,{childList:!0})}),()=>{a.disconnect()}},[x]),(0,g.g)(()=>{u.current===s&&(c.current.length!==x.size&&(c.current.length=x.size),j&&j.current.length!==x.size&&(j.current.length=x.size),p.current=x.size),o(x)},[o,x,c,j,s]),(0,g.g)(()=>()=>{c.current=[]},[c]),(0,g.g)(()=>()=>{j&&(j.current=[])},[j]);let y=(0,f.K)(a=>(q.add(a),()=>{q.delete(a)}));(0,g.g)(()=>{q.forEach(a=>a(x))},[q,x]);let z=d.useMemo(()=>({register:v,unregister:w,subscribeMapChange:y,elementsRef:c,labelsRef:j,nextIndexRef:p}),[v,w,y,c,j,p]);return(0,i.jsx)(h.D.Provider,{value:z,children:b})}function k(){return new Map}function l(){return new Set}function m(a,b){let c=a.compareDocumentPosition(b);return c&Node.DOCUMENT_POSITION_FOLLOWING||c&Node.DOCUMENT_POSITION_CONTAINED_BY?-1:c&Node.DOCUMENT_POSITION_PRECEDING||c&Node.DOCUMENT_POSITION_CONTAINS?1:0}},44107:(a,b,c)=>{c.d(b,{X:()=>j});var d=c(67484),e=c(8896),f=c(73838),g=c(43704),h=c(83758);let i={...g.GW,...h.G},j=d.forwardRef(function(a,b){let{render:c,className:d,style:g,forceRender:h=!1,...j}=a,{store:k}=(0,e.PQ)(),l=k.useState("open"),m=k.useState("nested"),n=k.useState("mounted"),o=k.useState("transitionStatus");return(0,f.o)("div",a,{state:{open:l,transitionStatus:o},ref:[k.context.backdropRef,b],stateAttributesMapping:i,props:[{role:"presentation",hidden:!n,style:{userSelect:"none",WebkitUserSelect:"none"}},j],enabled:h||!m})})},44476:(a,b,c)=>{c.d(b,{m:()=>f,p:()=>g});var d=c(54729),e=c(67484);let f=e.createContext(void 0);function g(){let a=e.useContext(f);if(void 0===a)throw Error((0,d.A)(26));return a}},45535:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(64686).A)("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])},48939:(a,b,c)=>{c.d(b,{h:()=>t});var d,e,f=c(67484),g=c(36645),h=c(8896),i=c(73838),j=c(43704),k=c(83758);let l=((d={}).nestedDialogs="--nested-dialogs",d),m=((e={})[e.open=j.lP.open]="open",e[e.closed=j.lP.closed]="closed",e[e.startingStyle=j.lP.startingStyle]="startingStyle",e[e.endingStyle=j.lP.endingStyle]="endingStyle",e.nested="data-nested",e.nestedDialogOpen="data-nested-dialog-open",e);var n=c(44476),o=c(62340),p=c(27677),q=c(6787),r=c(48249);let s={...j.GW,...k.G,nestedDialogOpen:a=>a?{[m.nestedDialogOpen]:""}:null},t=f.forwardRef(function(a,b){let{render:c,className:d,style:e,finalFocus:f,initialFocus:j,...k}=a,{store:m}=(0,h.PQ)(),t=m.useState("descriptionElementId"),u=m.useState("disablePointerDismissal"),v=m.useState("floatingRootContext"),w=m.useState("popupProps"),x=m.useState("modal"),y=m.useState("mounted"),z=m.useState("nested"),A=m.useState("nestedOpenDialogCount"),B=m.useState("open"),C=m.useState("openMethod"),D=m.useState("titleElementId"),E=m.useState("transitionStatus"),F=m.useState("role"),G=v.useState("floatingId"),H=k.id??G;(0,n.p)(),(0,o.v)({open:B,ref:m.context.popupRef,onComplete(){B&&m.context.onOpenChangeComplete?.(!0)}});let I=void 0===j?(0,q.UM)(m.context.popupRef):j,J=m.useStateSetter("popupElement"),K=(0,i.o)("div",a,{state:{open:B,nested:z,transitionStatus:E,nestedDialogOpen:A>0},props:[w,{id:H,"aria-labelledby":D??void 0,"aria-describedby":t??void 0,role:F,...q.Ls,hidden:!y,onKeyDown(a){p.jF.has(a.key)&&a.stopPropagation()},style:{[l.nestedDialogs]:A}},k],ref:[b,m.context.popupRef,J],stateAttributesMapping:s});return(0,r.jsx)(g.s,{context:v,openInteractionType:C,disabled:!y,closeOnFocusOut:!u,initialFocus:I,returnFocus:f,modal:!1!==x,restoreFocus:"popup",children:K})})},50484:(a,b,c)=>{c.d(b,{H:()=>g});var d=c(67484),e=c(17526);let f=d.createContext({controlId:void 0,registerControlId:e.tE,labelId:void 0,setLabelId:e.tE,messageIds:[],setMessageIds:e.tE,getDescriptionProps:a=>a});function g(){return d.useContext(f)}},51937:(a,b,c)=>{c.d(b,{z:()=>o});var d=c(54729),e=c(67484),f=c(8896),g=c(30894),h=c(73838),i=c(43704),j=c(49219),k=c(6787),l=c(8231),m=c(32595),n=c(63414);let o=e.forwardRef(function(a,b){let{render:c,className:o,style:p,disabled:q=!1,nativeButton:r=!0,id:s,payload:t,handle:u,...v}=a,w=(0,f.PQ)(!0),x=u?.store??w?.store;if(!x)throw Error((0,d.A)(79));let y=(0,l.e)(s),z=x.useState("floatingRootContext"),A=x.useState("isOpenedByTrigger",y),B=x.useState("triggerPopupId",y),C=e.useRef(null),{registerTrigger:D,isMountedByThisTrigger:E}=(0,k.L_)(y,C,x,{payload:t}),{getButtonProps:F,buttonRef:G}=(0,g.s)({disabled:q,native:r}),H=(0,m.k)(z,{enabled:null!=z}),I=(0,n.L)(()=>x.select("open"),a=>{x.set("openMethod",a)}),J=x.useState("triggerProps",E);return(0,h.o)("button",a,{state:{disabled:q,open:A},ref:[G,b,D,C],props:[H.reference,J,I,{[j.Kd]:"",id:y,"aria-haspopup":"dialog","aria-expanded":A,"aria-controls":B},v,F],stateAttributesMapping:i.qV})})},53574:(a,b,c)=>{c.d(b,{q:()=>e});var d=c(67484);function e({controlled:a,default:b,name:c,state:f="value"}){let{current:g}=d.useRef(void 0!==a),[h,i]=d.useState(b),j=d.useCallback(a=>{g||i(a)},[]);return[g?a:h,j]}},58441:(a,b,c)=>{c.d(b,{G:()=>g,H:()=>f});var d=c(54729),e=c(67484);let f=e.createContext(void 0);function g(a=!1){let b=e.useContext(f);if(void 0===b&&!a)throw Error((0,d.A)(16));return b}},63414:(a,b,c)=>{c.d(b,{G:()=>i,L:()=>h});var d=c(67484),e=c(43512),f=c(28375),g=c(71788);function h(a,b){var c;let g,h,{onClick:i,onPointerDown:j}=(c=(0,e.K)((c,d)=>{("function"==typeof a?a():a)||b(d||(f.s4?"touch":""))}),g=d.useRef(""),h=d.useCallback(a=>{a.defaultPrevented||(g.current=a.pointerType,c(a,a.pointerType))},[c]),{onClick:d.useCallback(a=>{0===a.detail?c(a,"keyboard"):("pointerType"in a?c(a,a.pointerType):c(a,g.current),g.current="")},[c]),onPointerDown:h});return d.useMemo(()=>({onClick:i,onPointerDown:j}),[i,j])}function i(a){let[b,c]=d.useState(null),e=h(a,c);return(0,g.x)(a,b=>{b&&!a&&c(null)}),d.useMemo(()=>({openMethod:b,triggerProps:e}),[b,e])}},64686:(a,b,c)=>{c.d(b,{A:()=>h});var d=c(67484),e=c(80473);let f=a=>{let b=a.replace(/^([A-Z])|[\s-_]+(\w)/g,(a,b,c)=>c?c.toUpperCase():b.toLowerCase());return b.charAt(0).toUpperCase()+b.slice(1)};var g=c(10549);let h=(a,b)=>{let c=(0,d.forwardRef)(({className:c,...h},i)=>(0,d.createElement)(g.default,{ref:i,iconNode:b,className:(0,e.z)(`lucide-${f(a).replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,`lucide-${a}`,c),...h}));return c.displayName=f(a),c}},67992:(a,b,c)=>{c.d(b,{Input:()=>u});var d=c(67484),e=c(53574),f=c(16942),g=c(13344),h=c(43512),i=c(89983),j=c(13102),k=c(25318),l=c(50484),m=c(1625),n=c(78597),o=c(73838),p=c(69827),q=c(60485),r=c(21380);let s=d.forwardRef(function(a,b){let{render:c,className:s,id:t,name:u,value:v,disabled:w=!1,onValueChange:x,defaultValue:y,autoFocus:z=!1,style:A,...B}=a,{state:C,name:D,disabled:E,setTouched:F,setDirty:G,validityData:H,setFocused:I,setFilled:J,validationMode:K,validation:L}=(0,i.V$)(),{clearErrors:M}=(0,k.x)(),N=E||w,O=D??u,P={...C,disabled:N},{labelId:Q}=(0,l.H)(),R=(0,m.l)({id:t});(0,f.g)(()=>{let a=null!=v;L.inputRef.current?.value||a&&""!==v?J(!0):a&&""===v&&J(!1)},[L.inputRef,J,v]);let S=d.useRef(null);(0,f.g)(()=>{z&&S.current===(0,r.RS)((0,g.R)(S.current))&&I(!0)},[z,I]);let[T]=(0,e.q)({controlled:v,default:y,name:"FieldControl",state:"value"}),U=void 0!==v,V=U?T:void 0,W=(0,h.K)(()=>L.inputRef.current?.value);return(0,j.I)(L.inputRef,R,V,W,!N,u),(0,o.o)("input",a,{ref:[b,S],state:P,props:[{id:R,disabled:N,name:O,ref:L.inputRef,"aria-labelledby":Q,autoFocus:z,...U?{value:V}:{defaultValue:y},onChange(a){let b=a.currentTarget.value;x?.(b,(0,p.d)(q.dv,a.nativeEvent)),G(b!==H.initialValue),J(""!==b),a.nativeEvent.defaultPrevented||(M(O),L.change(b))},onFocus(){I(!0)},onBlur(a){F(!0),I(!1),"onBlur"===K&&L.commit(a.currentTarget.value)},onKeyDown(a){"INPUT"===a.currentTarget.tagName&&"Enter"===a.key&&(F(!0),L.commit(a.currentTarget.value))}},B,a=>L.getValidationProps(N,a)],stateAttributesMapping:n.dc})});var t=c(48249);let u=d.forwardRef(function(a,b){return(0,t.jsx)(s,{ref:b,...a})})},69394:(a,b,c)=>{c.d(b,{w:()=>f});var d=c(67484),e=c(73838);let f=d.forwardRef(function(a,b){let{className:c,render:d,orientation:f="horizontal",style:g,...h}=a;return(0,e.o)("div",a,{state:{orientation:f},ref:b,props:[{role:"separator","aria-orientation":f},h]})})},71788:(a,b,c)=>{c.d(b,{x:()=>g});var d=c(67484),e=c(16942),f=c(43512);function g(a,b){let c=d.useRef(a),g=(0,f.K)(b);(0,e.g)(()=>{c.current!==a&&g(c.current)},[a,g]),(0,e.g)(()=>{c.current=a},[a])}},72276:(a,b,c)=>{c.d(b,{G:()=>h,q:()=>i});var d,e=c(67484),f=c(16942),g=c(79153);let h=((d={})[d.None=0]="None",d[d.GuessFromOrder=1]="GuessFromOrder",d);function i(a={}){let{label:b,metadata:c,textRef:d,indexGuessBehavior:j,index:k}=a,{register:l,unregister:m,subscribeMapChange:n,elementsRef:o,labelsRef:p,nextIndexRef:q}=(0,g.M)(),r=e.useRef(-1),[s,t]=e.useState(k??(j===h.GuessFromOrder?()=>{if(-1===r.current){let a=q.current;q.current+=1,r.current=a}return r.current}:-1)),u=e.useRef(null),v=e.useCallback(a=>{if(u.current=a,-1!==s&&null!==a&&(o.current[s]=a,p)){let c=void 0!==b;p.current[s]=c?b:d?.current?.textContent??a.textContent}},[s,o,p,b,d]);return(0,f.g)(()=>{if(null!=k)return;let a=u.current;if(a)return l(a,c),()=>{m(a)}},[k,l,m,c]),(0,f.g)(()=>{if(null==k)return n(a=>{let b=u.current?a.get(u.current)?.index:null;null!=b&&t(b)})},[k,n,t]),{ref:v,index:s}}},75514:(a,b,c)=>{c.d(b,{W:()=>f});var d=c(67484),e=c(48249);let f=d.forwardRef(function(a,b){let c,{cutout:d,...f}=a;if(d){let a=d.getBoundingClientRect();c=`polygon(0% 0%,100% 0%,100% 100%,0% 100%,0% 0%,${a.left}px ${a.top}px,${a.left}px ${a.bottom}px,${a.right}px ${a.bottom}px,${a.right}px ${a.top}px,${a.left}px ${a.top}px)`}return(0,e.jsx)("div",{ref:b,role:"presentation","data-base-ui-inert":"",...f,style:{position:"fixed",inset:0,userSelect:"none",WebkitUserSelect:"none",clipPath:c}})})},78597:(a,b,c)=>{var d;c.d(b,{mk:()=>h,HH:()=>g,ZV:()=>f,dc:()=>i});let e=((d={}).disabled="data-disabled",d.valid="data-valid",d.invalid="data-invalid",d.touched="data-touched",d.dirty="data-dirty",d.filled="data-filled",d.focused="data-focused",d),f={badInput:!1,customError:!1,patternMismatch:!1,rangeOverflow:!1,rangeUnderflow:!1,stepMismatch:!1,tooLong:!1,tooShort:!1,typeMismatch:!1,valid:null,valueMissing:!1},g={valid:null,touched:!1,dirty:!1,filled:!1,focused:!1},h={disabled:!1,...g},i={valid:a=>null===a?null:a?{[e.valid]:""}:{[e.invalid]:""}}},79153:(a,b,c)=>{c.d(b,{D:()=>e,M:()=>f});var d=c(67484);let e=d.createContext({register:()=>{},unregister:()=>{},subscribeMapChange:()=>()=>{},elementsRef:{current:[]},nextIndexRef:{current:0}});function f(){return d.useContext(e)}},80473:(a,b,c)=>{c.d(b,{z:()=>d});let d=(...a)=>a.filter((a,b,c)=>!!a&&""!==a.trim()&&c.indexOf(a)===b).join(" ").trim()},89983:(a,b,c)=>{c.d(b,{V$:()=>j});var d=c(54729),e=c(67484),f=c(17526),g=c(78597);let h={invalid:void 0,name:void 0,validityData:{state:g.ZV,errors:[],error:"",value:"",initialValue:null},setValidityData:f.tE,disabled:void 0,touched:g.HH.touched,setTouched:f.tE,dirty:g.HH.dirty,setDirty:f.tE,filled:g.HH.filled,setFilled:f.tE,focused:g.HH.focused,setFocused:f.tE,validate:()=>null,validationMode:"onSubmit",validationDebounceTime:0,shouldValidateOnChange:()=>!1,state:g.mk,markedDirtyRef:{current:!1},registerFieldControl:f.tE,validation:{getValidationProps:(a,b=f.t0)=>b,inputRef:{current:null},registerInput:f.tE,commit:async()=>{},change:f.tE}},i=e.createContext(h);function j(a=!0){let b=e.useContext(i);if(b.setValidityData===f.tE&&!a)throw Error((0,d.A)(28));return b}},93073:(a,b,c)=>{c.d(b,{F:()=>d});function d(a){return null==a||a.hasAttribute("disabled")||"true"===a.getAttribute("aria-disabled")}},94493:(a,b,c)=>{c.d(b,{r:()=>h});var d=c(67484),e=c(8896),f=c(73838),g=c(8231);let h=d.forwardRef(function(a,b){let{render:c,className:d,style:h,id:i,...j}=a,{store:k}=(0,e.PQ)(),l=(0,g.e)(i);return k.useSyncedValueWithCleanup("descriptionElementId",l),(0,f.o)("p",a,{ref:b,props:[{id:l},j]})})},98823:(a,b,c)=>{c.d(b,{Z:()=>k});var d=c(67484),e=c(33408),f=c(60982),g=c(8896),h=c(44476),i=c(75514),j=c(48249);let k=d.forwardRef(function(a,b){let{keepMounted:c=!1,...d}=a,{store:k}=(0,g.PQ)(),l=k.useState("mounted"),m=k.useState("modal"),n=k.useState("open");return l||c?(0,j.jsx)(h.m.Provider,{value:c,children:(0,j.jsxs)(f.XF,{ref:b,...d,children:[l&&!0===m&&(0,j.jsx)(i.W,{ref:k.context.internalBackdropRef,inert:(0,e.Y)(!n)}),a.children]})}):null})}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=546,exports.ids=[546],exports.modules={61546:(a,b,c)=>{c.d(b,{toFormData:()=>m});var d=c(43784),e=c(52717);let f=0,g={START_BOUNDARY:f++,HEADER_FIELD_START:f++,HEADER_FIELD:f++,HEADER_VALUE_START:f++,HEADER_VALUE:f++,HEADER_VALUE_ALMOST_DONE:f++,HEADERS_ALMOST_DONE:f++,PART_DATA_START:f++,PART_DATA:f++,END:f++},h=1,i=2,j=a=>32|a,k=()=>{};class l{constructor(a){this.index=0,this.flags=0,this.onHeaderEnd=k,this.onHeaderField=k,this.onHeadersEnd=k,this.onHeaderValue=k,this.onPartBegin=k,this.onPartData=k,this.onPartEnd=k,this.boundaryChars={};const b=new Uint8Array((a="\r\n--"+a).length);for(let c=0;c<a.length;c++)b[c]=a.charCodeAt(c),this.boundaryChars[b[c]]=!0;this.boundary=b,this.lookbehind=new Uint8Array(this.boundary.length+8),this.state=g.START_BOUNDARY}write(a){let b,c,d=0,e=a.length,f=this.index,{lookbehind:k,boundary:l,boundaryChars:m,index:n,state:o,flags:p}=this,q=this.boundary.length,r=q-1,s=a.length,t=a=>{this[a+"Mark"]=d},u=a=>{delete this[a+"Mark"]},v=(a,b,c,d)=>{(void 0===b||b!==c)&&this[a](d&&d.subarray(b,c))},w=(b,c)=>{let e=b+"Mark";e in this&&(c?(v(b,this[e],d,a),delete this[e]):(v(b,this[e],a.length,a),this[e]=0))};for(d=0;d<e;d++)switch(b=a[d],o){case g.START_BOUNDARY:if(n===l.length-2){if(45===b)p|=i;else if(13!==b)return;n++;break}if(n-1==l.length-2){if(p&i&&45===b)o=g.END,p=0;else{if(p&i||10!==b)return;n=0,v("onPartBegin"),o=g.HEADER_FIELD_START}break}b!==l[n+2]&&(n=-2),b===l[n+2]&&n++;break;case g.HEADER_FIELD_START:o=g.HEADER_FIELD,t("onHeaderField"),n=0;case g.HEADER_FIELD:if(13===b){u("onHeaderField"),o=g.HEADERS_ALMOST_DONE;break}if(n++,45===b)break;if(58===b){if(1===n)return;w("onHeaderField",!0),o=g.HEADER_VALUE_START;break}if((c=j(b))<97||c>122)return;break;case g.HEADER_VALUE_START:if(32===b)break;t("onHeaderValue"),o=g.HEADER_VALUE;case g.HEADER_VALUE:13===b&&(w("onHeaderValue",!0),v("onHeaderEnd"),o=g.HEADER_VALUE_ALMOST_DONE);break;case g.HEADER_VALUE_ALMOST_DONE:if(10!==b)return;o=g.HEADER_FIELD_START;break;case g.HEADERS_ALMOST_DONE:if(10!==b)return;v("onHeadersEnd"),o=g.PART_DATA_START;break;case g.PART_DATA_START:o=g.PART_DATA,t("onPartData");case g.PART_DATA:if(f=n,0===n){for(d+=r;d<s&&!(a[d]in m);)d+=q;d-=r,b=a[d]}if(n<l.length)l[n]===b?(0===n&&w("onPartData",!0),n++):n=0;else if(n===l.length)n++,13===b?p|=h:45===b?p|=i:n=0;else if(n-1===l.length)if(p&h){if(n=0,10===b){p&=~h,v("onPartEnd"),v("onPartBegin"),o=g.HEADER_FIELD_START;break}}else p&i&&45===b?(v("onPartEnd"),o=g.END,p=0):n=0;n>0?k[n-1]=b:f>0&&(v("onPartData",0,f,new Uint8Array(k.buffer,k.byteOffset,k.byteLength)),f=0,t("onPartData"),d--);break;case g.END:break;default:throw Error(`Unexpected state entered: ${o}`)}w("onHeaderField"),w("onHeaderValue"),w("onPartData"),this.index=n,this.state=o,this.flags=p}end(){if(this.state===g.HEADER_FIELD_START&&0===this.index||this.state===g.PART_DATA&&this.index===this.boundary.length)this.onPartEnd();else if(this.state!==g.END)throw Error("MultipartParser.end(): stream ended unexpectedly")}}async function m(a,b){let c,f,g,h,i,j;if(!/multipart/i.test(b))throw TypeError("Failed to fetch");let k=b.match(/boundary=(?:"([^"]+)"|([^;]+))/i);if(!k)throw TypeError("no or bad content-type header, no multipart boundary");let m=new l(k[1]||k[2]),n=[],o=new e.fS,p=a=>{g+=t.decode(a,{stream:!0})},q=a=>{n.push(a)},r=()=>{let a=new d.ZH(n,j,{type:i});o.append(h,a)},s=()=>{o.append(h,g)},t=new TextDecoder("utf-8");for await(let b of(t.decode(),m.onPartBegin=function(){m.onPartData=p,m.onPartEnd=s,c="",f="",g="",h="",i="",j=null,n.length=0},m.onHeaderField=function(a){c+=t.decode(a,{stream:!0})},m.onHeaderValue=function(a){f+=t.decode(a,{stream:!0})},m.onHeaderEnd=function(){if(f+=t.decode(),"content-disposition"===(c=c.toLowerCase())){let a=f.match(/\bname=("([^"]*)"|([^()<>@,;:\\"/[\]?={}\s\t]+))/i);a&&(h=a[2]||a[3]||""),(j=function(a){let b=a.match(/\bfilename=("(.*?)"|([^()<>@,;:\\"/[\]?={}\s\t]+))($|;\s)/i);if(!b)return;let c=b[2]||b[3]||"",d=c.slice(c.lastIndexOf("\\")+1);return(d=d.replace(/%22/g,'"')).replace(/&#(\d{4});/g,(a,b)=>String.fromCharCode(b))}(f))&&(m.onPartData=q,m.onPartEnd=r)}else"content-type"===c&&(i=f);f="",c=""},a))m.write(b);return m.end(),o}}};
|