test-lah 1.0.8 → 1.0.10
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/standalone/.next/BUILD_ID +1 -1
- package/.next/standalone/.next/app-build-manifest.json +71 -47
- package/.next/standalone/.next/app-path-routes-manifest.json +7 -4
- package/.next/standalone/.next/build-manifest.json +5 -5
- package/.next/standalone/.next/prerender-manifest.json +27 -27
- package/.next/standalone/.next/server/app/(dashboard)/integrations/page.js +2 -2
- package/.next/standalone/.next/server/app/(dashboard)/integrations/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[projectId]/page.js +17 -70
- package/.next/standalone/.next/server/app/(dashboard)/projects/[projectId]/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[projectId]/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[projectId]/summary/page.js +2 -22
- package/.next/standalone/.next/server/app/(dashboard)/projects/[projectId]/summary/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/[projectId]/summary/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/page.js +34 -2
- package/.next/standalone/.next/server/app/(dashboard)/projects/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/(dashboard)/projects/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/_not-found.html +1 -1
- package/.next/standalone/.next/server/app/_not-found.rsc +2 -2
- package/.next/standalone/.next/server/app/api/e2e/route.js +19 -8
- package/.next/standalone/.next/server/app/api/e2e/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/generate/route.js +1 -18
- package/.next/standalone/.next/server/app/api/generate/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/generate/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/llm/encrypt/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/llm/test/route.js +1 -18
- package/.next/standalone/.next/server/app/api/llm/test/route.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/api/llm/test/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/api/mcp/route.js +50 -0
- package/.next/standalone/.next/server/app/api/mcp/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/mcp/route_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/api/refine-notes/route.js +29 -0
- package/.next/standalone/.next/server/app/api/refine-notes/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/refine-notes/route_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/api/state/route.js +1 -0
- package/.next/standalone/.next/server/app/api/state/route.js.nft.json +1 -0
- package/.next/standalone/.next/server/app/api/state/route_client-reference-manifest.js +1 -0
- package/.next/standalone/.next/server/app/api/weather/route_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/index.html +1 -1
- package/.next/standalone/.next/server/app/index.rsc +3 -3
- package/.next/standalone/.next/server/app/integrations.html +1 -1
- package/.next/standalone/.next/server/app/integrations.rsc +4 -4
- package/.next/standalone/.next/server/app/login/page.js +2 -2
- package/.next/standalone/.next/server/app/login/page.js.nft.json +1 -1
- package/.next/standalone/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/login.html +1 -1
- package/.next/standalone/.next/server/app/login.rsc +3 -3
- package/.next/standalone/.next/server/app/page.js +2 -2
- package/.next/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/app/projects.html +1 -1
- package/.next/standalone/.next/server/app/projects.rsc +4 -4
- package/.next/standalone/.next/server/app-paths-manifest.json +7 -4
- package/.next/standalone/.next/server/chunks/423.js +62 -0
- package/.next/standalone/.next/server/chunks/496.js +33 -0
- package/.next/standalone/.next/server/chunks/611.js +3 -3
- package/.next/standalone/.next/server/chunks/615.js +2 -2
- package/.next/standalone/.next/server/chunks/779.js +1 -0
- package/.next/standalone/.next/server/chunks/845.js +23 -20
- package/.next/standalone/.next/server/chunks/898.js +21 -0
- package/.next/standalone/.next/server/middleware-build-manifest.js +1 -1
- package/.next/standalone/.next/server/pages/404.html +1 -1
- package/.next/standalone/.next/server/pages/500.html +1 -1
- package/.next/standalone/.next/server/pages-manifest.json +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.js +1 -1
- package/.next/standalone/.next/server/server-reference-manifest.json +1 -1
- package/.next/standalone/.next/static/BI7koHWCC15MOwsCfxo2O/_buildManifest.js +1 -0
- package/.next/standalone/.next/static/chunks/172-84d6b7afea495880.js +1 -0
- package/.next/standalone/.next/static/chunks/253-d1beae5e3cf2d88e.js +1 -0
- package/.next/standalone/.next/static/chunks/{255-4f84124391a7dac4.js → 255-98a0bdaa30757bda.js} +1 -1
- package/.next/standalone/.next/static/chunks/642-75adb59cbb062e44.js +1 -0
- package/.next/standalone/.next/static/chunks/661-a763fedcbf90af81.js +1 -0
- package/.next/standalone/.next/static/chunks/793-7306e111aea85b00.js +1 -0
- package/.next/standalone/.next/static/chunks/798-8424899efd598f73.js +1 -0
- package/.next/standalone/.next/static/chunks/968-a7dcf12036013254.js +62 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/integrations/page-25d6f67123a8a2ef.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-a63b3fef68015cb5.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[projectId]/page-cfab61233220bde3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[projectId]/summary/page-1650386b60d0337f.js +1 -0
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/page-420d60cc1ac676f3.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/e2e/route-4f053c4f9dcca3c0.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/generate/route-4f053c4f9dcca3c0.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/llm/encrypt/route-4f053c4f9dcca3c0.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/llm/test/route-4f053c4f9dcca3c0.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/mcp/route-4f053c4f9dcca3c0.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/refine-notes/route-4f053c4f9dcca3c0.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/state/route-4f053c4f9dcca3c0.js +1 -0
- package/.next/standalone/.next/static/chunks/app/api/weather/route-4f053c4f9dcca3c0.js +1 -0
- package/.next/{static/chunks/app/login/page-a655de2a3e8514f8.js → standalone/.next/static/chunks/app/login/page-35c717d39c71dcbf.js} +1 -1
- package/.next/standalone/.next/static/chunks/app/page-3e00e649355cd3ac.js +1 -0
- package/.next/standalone/.next/static/chunks/{main-646068343426c12d.js → main-2af68c75fbdc984e.js} +1 -1
- package/.next/standalone/.next/static/css/d95cfd16ee2f56f9.css +3 -0
- package/.next/standalone/node_modules/@next/env/package.json +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/agents.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/browserVersions.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/aac.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/abortcontroller.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/ac3-ec3.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/accelerometer.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/addeventlistener.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/alternate-stylesheet.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/ambient-light.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/apng.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/array-find-index.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/array-find.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/array-flat.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/array-includes.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/arrow-functions.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/asmjs.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/async-clipboard.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/async-functions.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/atob-btoa.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/audio-api.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/audio.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/audiotracks.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/autofocus.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/auxclick.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/av1.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/avif.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/background-attachment.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/background-clip-text.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/background-img-opts.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/background-position-x-y.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/background-repeat-round-space.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/background-sync.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/battery-status.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/beacon.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/beforeafterprint.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/bigint.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/blobbuilder.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/bloburls.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/border-image.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/border-radius.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/broadcastchannel.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/brotli.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/calc.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/canvas-blending.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/canvas-text.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/canvas.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/ch-unit.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/chacha20-poly1305.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/channel-messaging.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/childnode-remove.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/classlist.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/clipboard.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/colr-v1.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/colr.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/comparedocumentposition.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/console-basic.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/console-time.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/const.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/constraint-validation.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/contenteditable.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/cookie-store-api.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/cors.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/createimagebitmap.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/credential-management.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/cross-document-view-transitions.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/cryptography.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-all.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-anchor-positioning.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-animation.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-any-link.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-appearance.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-at-counter-style.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-autofill.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-backdrop-filter.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-background-offsets.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-boxshadow.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-canvas.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-caret-color.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-cascade-layers.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-cascade-scope.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-case-insensitive.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-clip-path.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-color-adjust.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-color-function.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-conic-gradients.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-container-queries-style.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-container-queries.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-container-query-units.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-containment.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-content-visibility.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-counters.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-crisp-edges.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-cross-fade.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-default-pseudo.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-deviceadaptation.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-dir-pseudo.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-display-contents.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-element-function.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-env-function.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-exclusions.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-featurequeries.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-file-selector-button.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-filter-function.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-filters.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-first-letter.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-first-line.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-fixed.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-focus-visible.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-focus-within.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-font-palette.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-font-stretch.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-gencontent.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-gradients.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-grid-animation.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-grid-lanes.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-grid.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-has.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-hyphens.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-if.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-image-orientation.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-image-set.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-in-out-of-range.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-initial-letter.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-initial-value.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-lch-lab.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-letter-spacing.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-line-clamp.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-logical-props.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-marker-pseudo.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-masks.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-matches-pseudo.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-math-functions.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-media-interaction.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-media-range-syntax.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-media-resolution.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-media-scripting.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-mediaqueries.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-mixblendmode.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-module-scripts.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-motion-paths.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-namespaces.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-nesting.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-not-sel-list.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-nth-child-of.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-opacity.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-optional-pseudo.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-overflow-anchor.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-overflow-overlay.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-overflow.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-page-break.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-paged-media.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-paint-api.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-placeholder-shown.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-placeholder.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-print-color-adjust.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-read-only-write.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-rebeccapurple.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-reflections.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-regions.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-relative-colors.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-repeating-gradients.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-resize.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-revert-value.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-rrggbbaa.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-scroll-behavior.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-scrollbar.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-sel2.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-sel3.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-selection.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-shapes.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-snappoints.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-sticky.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-subgrid.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-supports-api.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-table.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-text-align-last.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-text-box-trim.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-text-indent.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-text-justify.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-text-orientation.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-text-spacing.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-text-wrap-balance.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-textshadow.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-touch-action.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-transitions.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-unicode-bidi.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-unset-value.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-variables.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-when-else.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-widows-orphans.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-width-stretch.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-writing-mode.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css-zoom.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css3-attr.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css3-boxsizing.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css3-colors.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css3-cursors-grab.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css3-cursors-newer.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css3-cursors.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/css3-tabsize.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/currentcolor.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/custom-elements.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/custom-elementsv1.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/customevent.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/customizable-select.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/datalist.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/dataset.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/datauri.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/declarative-shadow-dom.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/decorators.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/details.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/deviceorientation.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/devicepixelratio.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/dialog.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/dispatchevent.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/dnssec.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/do-not-track.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/document-currentscript.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/document-execcommand.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/document-policy.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/document-scrollingelement.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/documenthead.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/dom-manip-convenience.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/dom-range.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/domcontentloaded.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/dommatrix.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/download.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/dragndrop.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/element-closest.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/element-from-point.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/element-scroll-methods.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/eme.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/eot.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/es5.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/es6-class.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/es6-generators.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/es6-module.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/es6-number.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/es6-string-includes.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/es6.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/eventsource.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/extended-system-fonts.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/feature-policy.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/fetch.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/fieldset-disabled.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/fileapi.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/filereader.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/filereadersync.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/filesystem.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/flac.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/flexbox-gap.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/flexbox.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/flow-root.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/focusin-focusout-events.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/font-family-system-ui.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/font-feature.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/font-kerning.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/font-loading.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/font-size-adjust.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/font-smooth.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/font-unicode-range.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/font-variant-alternates.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/font-variant-numeric.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/fontface.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/form-attribute.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/form-submit-attributes.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/form-validation.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/forms.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/fullscreen.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/gamepad.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/geolocation.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/getboundingclientrect.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/getcomputedstyle.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/getelementsbyclassname.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/getrandomvalues.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/gyroscope.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/hardwareconcurrency.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/hashchange.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/heif.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/hevc.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/hidden.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/high-resolution-time.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/history.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/html-media-capture.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/html5semantic.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/http-live-streaming.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/http2.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/http3.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/iframe-sandbox.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/iframe-seamless.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/iframe-srcdoc.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/imagecapture.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/ime.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/import-maps.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/imports.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/indexeddb.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/indexeddb2.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/inline-block.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/innertext.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/input-color.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/input-datetime.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/input-email-tel-url.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/input-event.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/input-file-accept.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/input-file-directory.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/input-file-multiple.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/input-inputmode.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/input-minlength.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/input-number.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/input-pattern.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/input-placeholder.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/input-range.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/input-search.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/input-selection.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/insert-adjacent.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/insertadjacenthtml.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/internationalization.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/intersectionobserver.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/intl-pluralrules.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/intrinsic-width.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/jpeg2000.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/jpegxl.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/jpegxr.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/json.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/keyboardevent-code.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/keyboardevent-key.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/keyboardevent-location.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/keyboardevent-which.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/lazyload.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/let.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/link-icon-png.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/link-icon-svg.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/link-rel-preconnect.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/link-rel-prefetch.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/link-rel-preload.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/link-rel-prerender.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/loading-lazy-attr.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/loading-lazy-media.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/localecompare.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/magnetometer.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/matchesselector.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/matchmedia.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/mathml.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/maxlength.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/mdn-css-backdrop-pseudo-element.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/media-fragments.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/mediarecorder.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/mediasource.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/menu.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/meta-theme-color.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/meter.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/midi.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/minmaxwh.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/mp3.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/mpeg-dash.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/mpeg4.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/multibackgrounds.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/multicolumn.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/mutation-events.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/mutationobserver.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/namevalue-storage.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/native-filesystem-api.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/nav-timing.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/netinfo.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/notifications.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/object-entries.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/object-fit.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/object-observe.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/object-values.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/objectrtc.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/offline-apps.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/offscreencanvas.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/ogg-vorbis.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/ogv.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/ol-reversed.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/once-event-listener.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/online-status.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/opus.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/orientation-sensor.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/outline.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/pad-start-end.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/page-transition-events.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/pagevisibility.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/passive-event-listener.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/passkeys.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/passwordrules.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/path2d.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/payment-request.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/pdf-viewer.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/permissions-api.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/permissions-policy.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/picture-in-picture.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/picture.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/ping.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/png-alpha.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/pointer-events.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/pointer.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/pointerlock.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/portals.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/prefers-color-scheme.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/progress.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/promise-finally.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/promises.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/proximity.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/proxy.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/publickeypinning.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/push-api.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/queryselector.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/readonly-attr.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/referrer-policy.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/registerprotocolhandler.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/rel-noopener.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/rel-noreferrer.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/rellist.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/rem.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/requestanimationframe.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/requestidlecallback.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/resizeobserver.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/resource-timing.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/rest-parameters.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/rtcpeerconnection.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/ruby.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/run-in.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/screen-orientation.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/script-async.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/script-defer.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/scrollintoview.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/sdch.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/selection-api.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/server-timing.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/serviceworkers.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/setimmediate.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/shadowdom.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/shadowdomv1.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/sharedarraybuffer.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/sharedworkers.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/sni.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/spdy.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/speech-recognition.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/speech-synthesis.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/spellcheck-attribute.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/sql-storage.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/srcset.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/stream.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/streams.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/stricttransportsecurity.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/style-scoped.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/subresource-bundling.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/subresource-integrity.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/svg-css.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/svg-filters.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/svg-fonts.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/svg-fragment.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/svg-html.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/svg-html5.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/svg-img.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/svg-smil.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/svg.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/sxg.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/tabindex-attr.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/template-literals.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/template.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/temporal.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/testfeat.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/text-decoration.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/text-emphasis.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/text-overflow.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/text-size-adjust.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/text-stroke.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/textcontent.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/textencoder.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/tls1-1.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/tls1-2.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/tls1-3.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/touch.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/transforms2d.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/transforms3d.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/trusted-types.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/ttf.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/typedarrays.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/u2f.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/unhandledrejection.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/url.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/urlsearchparams.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/use-strict.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/user-select-none.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/user-timing.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/variable-fonts.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/vector-effect.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/vibration.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/video.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/videotracks.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/view-transitions.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/viewport-unit-variants.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/viewport-units.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/wai-aria.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/wake-lock.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-bigint.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-bulk-memory.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-extended-const.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-gc.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-multi-memory.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-multi-value.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-mutable-globals.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-nontrapping-fptoint.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-reference-types.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-relaxed-simd.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-signext.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-simd.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-tail-calls.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/wasm-threads.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/wasm.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/wav.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/wbr-element.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/web-animation.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/web-app-manifest.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/web-bluetooth.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/web-serial.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/web-share.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/webauthn.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/webcodecs.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/webgl.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/webgl2.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/webgpu.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/webhid.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/webkit-user-drag.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/webm.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/webnfc.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/webp.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/websockets.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/webtransport.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/webusb.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/webvr.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/webvtt.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/webworkers.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/webxr.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/will-change.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/woff.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/woff2.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/word-break.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/wordwrap.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/x-doc-messaging.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/x-frame-options.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/xhr2.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/xhtml.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/xhtmlsmil.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/xml-serializer.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/data/features/zstd.js +1 -1
- package/.next/standalone/node_modules/caniuse-lite/package.json +1 -1
- package/.next/standalone/node_modules/next/dist/build/swc/index.js +1 -1
- package/.next/standalone/node_modules/next/dist/build/webpack-config.js +2 -2
- package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-experimental.runtime.prod.js +1 -1
- package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js +1 -1
- package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js +13 -13
- package/.next/standalone/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js +12 -12
- package/.next/standalone/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js +1 -1
- package/.next/standalone/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-turbopack.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/dev/hot-reloader-webpack.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/lib/app-info-log.js +1 -1
- package/.next/standalone/node_modules/next/dist/server/lib/start-server.js +3 -1
- package/.next/standalone/node_modules/next/dist/shared/lib/canary-only.js +1 -1
- package/.next/standalone/node_modules/next/dist/telemetry/anonymous-meta.js +1 -1
- package/.next/standalone/node_modules/next/dist/telemetry/events/version.js +2 -2
- package/.next/standalone/node_modules/next/package.json +15 -15
- package/.next/standalone/node_modules/semver/classes/range.js +9 -0
- package/.next/standalone/node_modules/semver/package.json +1 -1
- package/.next/standalone/package.json +3 -2
- package/.next/static/BI7koHWCC15MOwsCfxo2O/_buildManifest.js +1 -0
- package/.next/static/chunks/172-84d6b7afea495880.js +1 -0
- package/.next/static/chunks/253-d1beae5e3cf2d88e.js +1 -0
- package/.next/static/chunks/{255-4f84124391a7dac4.js → 255-98a0bdaa30757bda.js} +1 -1
- package/.next/static/chunks/642-75adb59cbb062e44.js +1 -0
- package/.next/static/chunks/661-a763fedcbf90af81.js +1 -0
- package/.next/static/chunks/793-7306e111aea85b00.js +1 -0
- package/.next/static/chunks/798-8424899efd598f73.js +1 -0
- package/.next/static/chunks/968-a7dcf12036013254.js +62 -0
- package/.next/static/chunks/app/(dashboard)/integrations/page-25d6f67123a8a2ef.js +1 -0
- package/.next/static/chunks/app/(dashboard)/layout-a63b3fef68015cb5.js +1 -0
- package/.next/static/chunks/app/(dashboard)/projects/[projectId]/page-cfab61233220bde3.js +1 -0
- package/.next/static/chunks/app/(dashboard)/projects/[projectId]/summary/page-1650386b60d0337f.js +1 -0
- package/.next/static/chunks/app/(dashboard)/projects/page-420d60cc1ac676f3.js +1 -0
- package/.next/static/chunks/app/api/e2e/route-4f053c4f9dcca3c0.js +1 -0
- package/.next/static/chunks/app/api/generate/route-4f053c4f9dcca3c0.js +1 -0
- package/.next/static/chunks/app/api/llm/encrypt/route-4f053c4f9dcca3c0.js +1 -0
- package/.next/static/chunks/app/api/llm/test/route-4f053c4f9dcca3c0.js +1 -0
- package/.next/static/chunks/app/api/mcp/route-4f053c4f9dcca3c0.js +1 -0
- package/.next/static/chunks/app/api/refine-notes/route-4f053c4f9dcca3c0.js +1 -0
- package/.next/static/chunks/app/api/state/route-4f053c4f9dcca3c0.js +1 -0
- package/.next/static/chunks/app/api/weather/route-4f053c4f9dcca3c0.js +1 -0
- package/.next/{standalone/.next/static/chunks/app/login/page-a655de2a3e8514f8.js → static/chunks/app/login/page-35c717d39c71dcbf.js} +1 -1
- package/.next/static/chunks/app/page-3e00e649355cd3ac.js +1 -0
- package/.next/static/chunks/{main-646068343426c12d.js → main-2af68c75fbdc984e.js} +1 -1
- package/.next/static/css/d95cfd16ee2f56f9.css +3 -0
- package/README.md +52 -16
- package/package.json +3 -2
- package/.next/standalone/.next/server/chunks/350.js +0 -21
- package/.next/standalone/.next/server/chunks/403.js +0 -1
- package/.next/standalone/.next/server/chunks/583.js +0 -1
- package/.next/standalone/.next/static/5bU_Xo0_CNnVnb2HQeysr/_buildManifest.js +0 -1
- package/.next/standalone/.next/static/chunks/246-1673b37cc8edb269.js +0 -1
- package/.next/standalone/.next/static/chunks/485-23e4a6e33ee79f14.js +0 -1
- package/.next/standalone/.next/static/chunks/532-95cb537bb36c2e68.js +0 -62
- package/.next/standalone/.next/static/chunks/637-dcbc811f7143935f.js +0 -1
- package/.next/standalone/.next/static/chunks/708-1fc7a6d1d5b4aee7.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/integrations/page-f5e71fcfbeffdfb1.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/layout-a5bf2535f1470c77.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[projectId]/page-7205f74080ad5010.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/[projectId]/summary/page-b69fc155f1796e19.js +0 -1
- package/.next/standalone/.next/static/chunks/app/(dashboard)/projects/page-11a49918142004f5.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/e2e/route-ccff81cd0a5704f2.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/generate/route-ccff81cd0a5704f2.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/llm/encrypt/route-ccff81cd0a5704f2.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/llm/test/route-ccff81cd0a5704f2.js +0 -1
- package/.next/standalone/.next/static/chunks/app/api/weather/route-ccff81cd0a5704f2.js +0 -1
- package/.next/standalone/.next/static/chunks/app/page-a90eeaea3538ebf2.js +0 -1
- package/.next/standalone/.next/static/css/f78c165472d53f48.css +0 -3
- package/.next/standalone/node_modules/buffer-from/index.js +0 -72
- package/.next/standalone/node_modules/buffer-from/package.json +0 -19
- package/.next/standalone/node_modules/source-map/lib/array-set.js +0 -121
- package/.next/standalone/node_modules/source-map/lib/base64-vlq.js +0 -140
- package/.next/standalone/node_modules/source-map/lib/base64.js +0 -67
- package/.next/standalone/node_modules/source-map/lib/binary-search.js +0 -111
- package/.next/standalone/node_modules/source-map/lib/mapping-list.js +0 -79
- package/.next/standalone/node_modules/source-map/lib/quick-sort.js +0 -114
- package/.next/standalone/node_modules/source-map/lib/source-map-consumer.js +0 -1145
- package/.next/standalone/node_modules/source-map/lib/source-map-generator.js +0 -425
- package/.next/standalone/node_modules/source-map/lib/source-node.js +0 -413
- package/.next/standalone/node_modules/source-map/lib/util.js +0 -488
- package/.next/standalone/node_modules/source-map/package.json +0 -73
- package/.next/standalone/node_modules/source-map/source-map.js +0 -8
- package/.next/standalone/node_modules/source-map-support/package.json +0 -31
- package/.next/standalone/node_modules/source-map-support/source-map-support.js +0 -625
- package/.next/static/5bU_Xo0_CNnVnb2HQeysr/_buildManifest.js +0 -1
- package/.next/static/chunks/246-1673b37cc8edb269.js +0 -1
- package/.next/static/chunks/485-23e4a6e33ee79f14.js +0 -1
- package/.next/static/chunks/532-95cb537bb36c2e68.js +0 -62
- package/.next/static/chunks/637-dcbc811f7143935f.js +0 -1
- package/.next/static/chunks/708-1fc7a6d1d5b4aee7.js +0 -1
- package/.next/static/chunks/app/(dashboard)/integrations/page-f5e71fcfbeffdfb1.js +0 -1
- package/.next/static/chunks/app/(dashboard)/layout-a5bf2535f1470c77.js +0 -1
- package/.next/static/chunks/app/(dashboard)/projects/[projectId]/page-7205f74080ad5010.js +0 -1
- package/.next/static/chunks/app/(dashboard)/projects/[projectId]/summary/page-b69fc155f1796e19.js +0 -1
- package/.next/static/chunks/app/(dashboard)/projects/page-11a49918142004f5.js +0 -1
- package/.next/static/chunks/app/api/e2e/route-ccff81cd0a5704f2.js +0 -1
- package/.next/static/chunks/app/api/generate/route-ccff81cd0a5704f2.js +0 -1
- package/.next/static/chunks/app/api/llm/encrypt/route-ccff81cd0a5704f2.js +0 -1
- package/.next/static/chunks/app/api/llm/test/route-ccff81cd0a5704f2.js +0 -1
- package/.next/static/chunks/app/api/weather/route-ccff81cd0a5704f2.js +0 -1
- package/.next/static/chunks/app/page-a90eeaea3538ebf2.js +0 -1
- package/.next/static/css/f78c165472d53f48.css +0 -3
- /package/.next/standalone/.next/static/{5bU_Xo0_CNnVnb2HQeysr → BI7koHWCC15MOwsCfxo2O}/_ssgManifest.js +0 -0
- /package/.next/static/{5bU_Xo0_CNnVnb2HQeysr → BI7koHWCC15MOwsCfxo2O}/_ssgManifest.js +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
exports.id=615,exports.ids=[615],exports.modules={2453:(a,b,c)=>{Promise.resolve().then(c.bind(c,97788))},3136:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81170,23)),Promise.resolve().then(c.t.bind(c,23597,23)),Promise.resolve().then(c.t.bind(c,36893,23)),Promise.resolve().then(c.t.bind(c,89748,23)),Promise.resolve().then(c.t.bind(c,6060,23)),Promise.resolve().then(c.t.bind(c,7184,23)),Promise.resolve().then(c.t.bind(c,69576,23)),Promise.resolve().then(c.t.bind(c,73041,23)),Promise.resolve().then(c.t.bind(c,51384,23))},5908:(a,b,c)=>{"use strict";c.d(b,{q:()=>m,M:()=>n});var d=c(21124),e=c(38301);function f(a,b){let[c,d]=(0,e.useState)(()=>b),[f,g]=(0,e.useState)(null),h=(0,e.useRef)(null);return[c,(0,e.useCallback)(a=>{d(b=>{let c=a instanceof Function?a(b):a;return h.current&&clearTimeout(h.current),h.current=setTimeout(()=>{g(new Date().toISOString())},300),c})},[a]),f]}var g=c(19188);let h={projects:{},activeProjectId:null,selectedNodeId:null},i={name:"",bannerColor:"#64B5F6",avatarUrl:"",role:"QA Engineer"},j={baseUrl:"http://localhost:3000",browser:"chromium",headless:!0,timeout:3e4};var k=c(42423);let l=(0,e.createContext)(null);function m({children:a}){let b=function(){let[a,b,c]=f("qa-dashboard",h),d=(0,e.useCallback)(a=>{let c=crypto.randomUUID(),d={id:c,name:a,createdAt:new Date().toISOString(),flows:[],testCases:{},columnConfig:[...g._X],columnConfigs:{},edges:[],userProfile:{name:"",bannerColor:"#64B5F6"},nodeCounter:0,tcCounter:{}};return b(a=>({...a,projects:{...a.projects,[c]:d},activeProjectId:c,selectedNodeId:null})),c},[b]),i=(0,e.useCallback)(a=>{b(b=>{let{[a]:c,...d}=b.projects,e=Object.keys(d);return{...b,projects:d,activeProjectId:b.activeProjectId===a?e[0]??null:b.activeProjectId,selectedNodeId:b.activeProjectId===a?null:b.selectedNodeId}})},[b]),j=(0,e.useCallback)(a=>{b(b=>({...b,activeProjectId:a,selectedNodeId:null}))},[b]),k=(0,e.useCallback)((a,c)=>{b(b=>({...b,projects:{...b.projects,[a]:{...b.projects[a],name:c}}}))},[b]),l=(0,e.useCallback)(a=>{b(b=>{let c=b.projects[a];if(!c)return b;let d=crypto.randomUUID(),e=new Date().toISOString(),f={...JSON.parse(JSON.stringify(c)),id:d,name:`${c.name} (Copy)`,createdAt:e};return{...b,projects:{...b.projects,[d]:f},activeProjectId:d,selectedNodeId:null}})},[b]),m=(0,e.useCallback)(a=>{try{let c=JSON.parse(a);if(!c||"object"!=typeof c)return{ok:!1,error:"Invalid JSON"};if(!c.name||!c.flows)return{ok:!1,error:"Missing required fields (name, flows)"};let d=crypto.randomUUID(),e={id:d,name:c.name,createdAt:c.createdAt||new Date().toISOString(),flows:Array.isArray(c.flows)?c.flows:[],testCases:c.testCases&&"object"==typeof c.testCases?c.testCases:{},columnConfig:Array.isArray(c.columnConfig)?c.columnConfig:[...g._X],columnConfigs:c.columnConfigs&&"object"==typeof c.columnConfigs?c.columnConfigs:{},edges:Array.isArray(c.edges)?c.edges:[],userProfile:c.userProfile&&"object"==typeof c.userProfile?c.userProfile:{name:"",bannerColor:"#64B5F6"},nodeCounter:"number"==typeof c.nodeCounter?c.nodeCounter:0,tcCounter:c.tcCounter&&"object"==typeof c.tcCounter?c.tcCounter:{}};return b(a=>({...a,projects:{...a.projects,[d]:e},activeProjectId:d,selectedNodeId:null})),{ok:!0}}catch{return{ok:!1,error:"Failed to parse project file"}}},[b]),n=(0,e.useCallback)(a=>{b(b=>({...b,selectedNodeId:a}))},[b]),o=(0,e.useCallback)((a,c)=>{b(b=>({...b,projects:{...b.projects,[a]:c(b.projects[a])}}))},[b]),p=a.activeProjectId?a.projects[a.activeProjectId]??null:null;return{state:a,setState:b,projects:a.projects,activeProject:p,activeProjectId:a.activeProjectId,selectedNodeId:a.selectedNodeId,createProject:d,deleteProject:i,duplicateProject:l,importProject:m,switchProject:j,renameProject:k,setSelectedNodeId:n,updateProject:o,lastSaved:c}}(),c=function(){let[a,b]=f("qa-profile",i),c=a.name.split(" ").map(a=>a[0]).filter(Boolean).slice(0,2).join("").toUpperCase()||"?";return{profile:a,setName:a=>b(b=>({...b,name:a})),setBannerColor:a=>b(b=>({...b,bannerColor:a})),setAvatarUrl:a=>b(b=>({...b,avatarUrl:a})),setRole:a=>b(b=>({...b,role:a})),initials:c}}(),m=function(a,b){let[c,d]=(0,e.useState)([]),[f,g]=(0,e.useState)(-1),h=(0,e.useRef)(!1),i=(0,e.useCallback)(b=>{if(!a||h.current){h.current=!1;return}d(c=>{let d=[...c.slice(0,f+1),{label:b,projectSnapshot:JSON.parse(JSON.stringify(a))}];return d.length>50&&d.shift(),d}),g(a=>Math.min(a+1,49))},[a,f]),j=(0,e.useCallback)(()=>{if(f<0||!a)return;let d=c[f];d&&(h.current=!0,b(a.id,()=>d.projectSnapshot),g(a=>a-1))},[c,f,a,b]),k=(0,e.useCallback)(()=>{if(f>=c.length-1||!a)return;let d=c[f+1];d&&(h.current=!0,b(a.id,()=>d.projectSnapshot),g(a=>a+1))},[c,f,a,b]),l=f>=0;return{pushState:i,undo:j,redo:k,canUndo:l,canRedo:f<c.length-1,recentActions:c.slice(-10).map(a=>a.label).reverse()}}(b.activeProject,b.updateProject),n=function(a,b,c,d){let f=a?.flows??[],h=a?.edges??[],i=(0,e.useCallback)((c,e,f,h)=>{if(!a)return null;let i=crypto.randomUUID(),j="";return b(a.id,a=>{let b=(a.nodeCounter??0)+1,d=(e||"").trim().replace(/[^a-zA-Z0-9\s]/g,"").split(/\s+/);j=d.length>=2?d.slice(0,2).map(a=>a.charAt(0).toUpperCase()).join("")+String(b).padStart(2,"0"):d[0]&&d[0].length>=2?d[0].slice(0,3).toUpperCase()+String(b).padStart(2,"0"):`N${String(b).padStart(3,"0")}`;let k=(0,g.IU)(i,j,e,c);f&&(k.position=f),h&&(k.direction=h);let l=[...a.flows];if(c){let a=l.findIndex(a=>a.id===c);-1!==a&&(l[a]={...l[a],children:[...l[a].children,i]})}return l.push(k),{...a,flows:l,testCases:{...a.testCases,[i]:[]},nodeCounter:b}}),d(i),i},[a,b,d]),j=(0,e.useCallback)(e=>{if(!a)return;let f=new Set,g=b=>{f.add(b);let c=a.flows.find(a=>a.id===b);c?.children.forEach(g)};g(e),b(a.id,a=>{let b=a.flows.filter(a=>!f.has(a.id)).map(a=>({...a,children:a.children.filter(a=>!f.has(a))})),c={...a.testCases};f.forEach(a=>delete c[a]);let d=(a.edges??[]).filter(a=>!f.has(a.fromId)&&!f.has(a.toId));return{...a,flows:b,testCases:c,edges:d}}),f.has(c??"")&&d(null)},[a,b,c,d]),k=(0,e.useCallback)(e=>{if(!a||0===e.length)return;let f=new Set,g=b=>{f.add(b);let c=a.flows.find(a=>a.id===b);c?.children.forEach(g)};e.forEach(g),b(a.id,a=>{let b=a.flows.filter(a=>!f.has(a.id)).map(a=>({...a,children:a.children.filter(a=>!f.has(a))})),c={...a.testCases};f.forEach(a=>delete c[a]);let d=(a.edges??[]).filter(a=>!f.has(a.fromId)&&!f.has(a.toId));return{...a,flows:b,testCases:c,edges:d}}),f.has(c??"")&&d(null)},[a,b,c,d]),l=(0,e.useCallback)((c,d)=>{a&&b(a.id,a=>({...a,flows:a.flows.map(a=>a.id===c?{...a,label:d}:a)}))},[a,b]),m=(0,e.useCallback)((c,d)=>{a&&b(a.id,a=>({...a,flows:a.flows.map(a=>a.id===c?{...a,...d}:a)}))},[a,b]),n=(0,e.useCallback)(c=>{a&&b(a.id,a=>{let b=a.flows.find(a=>a.id===c);return b&&b.parentId?{...a,flows:a.flows.map(a=>a.id===c?{...a,parentId:null}:a.id===b.parentId?{...a,children:a.children.filter(a=>a!==c)}:a)}:a})},[a,b]),o=(0,e.useCallback)(a=>{d(a)},[d]),p=(0,e.useCallback)((c,d,e)=>{if(!a)return;let f={id:crypto.randomUUID(),fromId:c,toId:d,type:e};b(a.id,a=>({...a,edges:[...a.edges??[],f]}))},[a,b]),q=(0,e.useCallback)(c=>{a&&b(a.id,a=>({...a,edges:(a.edges??[]).filter(a=>a.id!==c)}))},[a,b]);return{nodes:f,edges:h,selectedNodeId:c,addNode:i,deleteNode:j,deleteNodes:k,unlinkNode:n,renameNode:l,updateNode:m,selectNode:o,addEdge:p,deleteEdge:q,updateEdge:(0,e.useCallback)((c,d)=>{a&&b(a.id,a=>({...a,edges:(a.edges??[]).map(a=>a.id===c?{...a,...d}:a)}))},[a,b]),resetLayout:(0,e.useCallback)(()=>{a&&b(a.id,a=>({...a,flows:a.flows.map(a=>({...a,position:null}))}))},[a,b])}}(b.activeProject,b.updateProject,b.selectedNodeId,b.setSelectedNodeId),o=function(a,b,c){let d=c&&a?a.testCases[c]??[]:[],f=function(a){let b=a.length,c=a.filter(a=>"pass"===a.status).length,d=a.filter(a=>"fail"===a.status).length,e=a.filter(a=>"skip"===a.status).length,f=a.filter(a=>"untested"===a.status).length,g=b-e,h=g>0?Math.round(c/g*100):0;return{total:b,pass:c,fail:d,skip:e,untested:f,passRate:h}}(d),h=(0,e.useCallback)((c,d,e,f)=>{if(!a)return;let g=a.flows.find(a=>a.id===c),h=g?.code??"N000",i=a.testCases[c]??[],j="";b(a.id,a=>{let b={...a.tcCounter??{}},g=(b[c]??0)+1;b[c]=g,j=`${h}-TC${String(g).padStart(3,"0")}`;let k={id:crypto.randomUUID(),code:j,title:d,steps:e??"",expected:f??"",status:"untested",case_type:"General",notes:"",links:"",order:i.length};return{...a,testCases:{...a.testCases,[c]:[...a.testCases[c]??[],k]},tcCounter:b}})},[a,b]),i=(0,e.useCallback)((c,d,e)=>{a&&b(a.id,a=>({...a,testCases:{...a.testCases,[c]:(a.testCases[c]??[]).map(a=>a.id===d?{...a,...e}:a)}}))},[a,b]),j=(0,e.useCallback)((c,d)=>{a&&b(a.id,a=>({...a,testCases:{...a.testCases,[c]:(a.testCases[c]??[]).filter(a=>a.id!==d)}}))},[a,b]),k=(0,e.useCallback)((c,d)=>{if(!a||0===d.length)return;let e=new Set(d);b(a.id,a=>({...a,testCases:{...a.testCases,[c]:(a.testCases[c]??[]).filter(a=>!e.has(a.id))}}))},[a,b]),l=(0,e.useCallback)((c,d,e)=>{if(!a||0===d.length)return;let f=new Set(d);b(a.id,a=>({...a,testCases:{...a.testCases,[c]:(a.testCases[c]??[]).map(a=>f.has(a.id)?{...a,...e}:a)}}))},[a,b]),m=(0,e.useCallback)((c,d)=>{a&&b(a.id,a=>{let b=new Map((a.testCases[c]??[]).map(a=>[a.id,a])),e=d.map((a,c)=>{let d=b.get(a);return d?{...d,order:c}:null}).filter(Boolean);return{...a,testCases:{...a.testCases,[c]:e}}})},[a,b]),n=(0,e.useCallback)((c,d,e)=>{a&&b(a.id,a=>{let b={...a.columnConfigs??{}},f=b[c]??[...g._X];return b[c]=f.map(a=>a.key===d?{...a,label:e}:a),{...a,columnConfigs:b}})},[a,b]),o=(0,e.useCallback)((c,d)=>{a&&b(a.id,a=>{let b={...a.columnConfigs??{}},e=b[c]??[...g._X];return b[c]=e.map(a=>a.key===d?{...a,visible:!a.visible}:a),{...a,columnConfigs:b}})},[a,b]),p=(0,e.useCallback)((c,d)=>{if(!a)return;let e=d.toLowerCase().replace(/\s+/g,"_");b(a.id,a=>{let b={...a.columnConfigs??{}},f=b[c]??[...g._X];return b[c]=[...f,{key:e,label:d,visible:!0}],{...a,columnConfigs:b}})},[a,b]);return{testCases:d,stats:f,addTestCase:h,updateTestCase:i,deleteTestCase:j,bulkDeleteTestCases:k,bulkUpdateTestCases:l,reorderTestCases:m,updateColumnConfig:n,toggleColumnVisibility:o,addColumn:p,deleteColumn:(0,e.useCallback)((c,d)=>{a&&b(a.id,a=>{let b={...a.columnConfigs??{}},e=b[c]??[...g._X];return b[c]=e.filter(a=>a.key!==d),{...a,columnConfigs:b}})},[a,b]),reorderColumn:(0,e.useCallback)((c,d,e)=>{a&&b(a.id,a=>{let b={...a.columnConfigs??{}},f=[...b[c]??[...g._X]],h=f.findIndex(a=>a.key===d);if(-1===h)return a;let i="up"===e?h-1:h+1;if(i<0||i>=f.length)return a;let j=f[h];return f[h]=f[i],f[i]=j,b[c]=f,{...a,columnConfigs:b}})},[a,b])}}(b.activeProject,b.updateProject,b.selectedNodeId),p=function(a,b){let c=a?.id,d=(0,e.useMemo)(()=>a?.e2eData||{config:j,runs:[],savedScripts:[]},[a?.e2eData]),f=(0,e.useCallback)(a=>{c&&b(c,b=>({...b,e2eData:a(b.e2eData||{config:j,runs:[],savedScripts:[]})}))},[c,b]),g=(0,e.useCallback)(a=>{f(b=>({...b,config:{...b.config,...a}}))},[f]),h=(0,e.useCallback)(a=>{let b={...a,id:`run-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,timestamp:new Date().toISOString()};return f(a=>({...a,runs:[b,...a.runs].slice(0,20)})),b},[f]),i=(0,e.useCallback)(a=>{f(b=>({...b,runs:b.runs.filter(b=>b.id!==a)}))},[f]),k=(0,e.useCallback)(()=>{f(a=>({...a,runs:[]}))},[f]),l=(0,e.useCallback)((a,b,d,e)=>{f(f=>{let g=f.savedScripts.findIndex(b=>b.testCaseId===a),h={id:g>=0?f.savedScripts[g].id:`script-${Date.now()}`,projectId:c,testCaseId:a,title:b,code:d,script:e,updatedAt:new Date().toISOString()},i=[...f.savedScripts];return g>=0?i[g]=h:i.push(h),{...f,savedScripts:i}})},[c,f]),m=(0,e.useCallback)(a=>{f(b=>({...b,savedScripts:b.savedScripts.filter(b=>b.testCaseId!==a)}))},[f]),n=(0,e.useCallback)(a=>d.savedScripts.find(b=>b.testCaseId===a),[d.savedScripts]);return{config:d.config,runs:d.runs,savedScripts:d.savedScripts,saveConfig:g,saveRun:h,deleteRun:i,clearRuns:k,saveScript:l,deleteScript:m,getScript:n}}(b.activeProject,b.updateProject),q=(0,k.s)(),r=(0,e.useMemo)(()=>({projects:b.projects,activeProject:b.activeProject,activeProjectId:b.activeProjectId,selectedNodeId:b.selectedNodeId,createProject:b.createProject,deleteProject:b.deleteProject,duplicateProject:b.duplicateProject,importProject:b.importProject,switchProject:b.switchProject,renameProject:b.renameProject,setSelectedNodeId:b.setSelectedNodeId,updateProject:b.updateProject,profile:c.profile,profileInitials:c.initials,setProfileName:c.setName,setProfileBannerColor:c.setBannerColor,setProfileAvatarUrl:c.setAvatarUrl,setProfileRole:c.setRole,canUndo:m.canUndo,canRedo:m.canRedo,undo:m.undo,redo:m.redo,pushState:m.pushState,mindmap:n,testCases:o,e2e:p,dialog:q.dialog,alertDialog:q.alert,confirmDialog:q.confirm,promptDialog:q.prompt,lastSaved:b.lastSaved}),[b,c,m,n,o,p,q]);return(0,d.jsx)(l.Provider,{value:r,children:a})}function n(){let a=(0,e.useContext)(l);if(!a)throw Error("useDashboard must be used within DashboardProvider");return a}},19188:(a,b,c)=>{"use strict";c.d(b,{D_:()=>e,IU:()=>g,T7:()=>f,_X:()=>d});let d=[{key:"code",label:"ID",visible:!0},{key:"title",label:"Test Case",visible:!0},{key:"steps",label:"Steps",visible:!0},{key:"expected",label:"Expected Result",visible:!0},{key:"status",label:"Status",visible:!0},{key:"case_type",label:"Case Type",visible:!1},{key:"notes",label:"Notes",visible:!0},{key:"links",label:"Links",visible:!1}],e=["General","Positive","Negative"],f=["#E57373","#F06292","#BA68C8","#9575CD","#7986CB","#64B5F6","#4FC3F7","#4DD0E1","#4DB6AC","#81C784","#AED581","#FFD54F","#FFB74D","#FF8A65","#A1887F","#90A4AE"];function g(a,b,c,d){return{id:a,code:b,label:c,parentId:d,children:[],shape:"rounded",notes:"",position:null}}},22048:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>B});var d=c(21124),e=c(38301),f=c(42378),g=c(5908),h=c(3991),i=c.n(h),j=c(34776),k=c(19188);let l=["https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_11.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_12.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_13.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_14.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_15.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_16.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_17.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_18.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_19.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_20.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_21.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_22.png"],m=["https://i.pinimg.com/736x/ed/74/06/ed74063ade6d66fce2ca19acbe74babc.jpg","https://i.pinimg.com/736x/8c/6d/56/8c6d563311f0917d45d1f2ce5d7c1a2d.jpg","https://i.pinimg.com/736x/86/b8/be/86b8bea1c772cf5c540e6f01e6acce59.jpg","https://i.pinimg.com/736x/78/d4/b1/78d4b1787a4fd23c2a8d21e4fbbc016f.jpg","https://i.pinimg.com/1200x/87/de/e6/87dee6d33b04f1df28bc85702ee12d4b.jpg","https://i.pinimg.com/1200x/3b/e3/95/3be395c4a94705f95e0603afb04f9d56.jpg","https://media.licdn.com/dms/image/v2/D5603AQHBu4wrzFWoTw/profile-displayphoto-crop_800_800/B56Zq.Sy6LKsAI-/0/1764129191465?e=1782345600&v=beta&t=79y6xLivwcpvwy53sy1TuVopK4FMp6O8uAu7QxlIxDo"],n=["QA Engineer","QA Lead","Developer","Designer","Manager"];function o(a,b){let c=parseInt(a.replace("#",""),16),d=Math.min(255,(c>>16)+Math.round((255-(c>>16))*b)),e=Math.min(255,(c>>8&255)+Math.round((255-(c>>8&255))*b)),f=Math.min(255,(255&c)+Math.round((255-(255&c))*b));return`#${(d<<16|e<<8|f).toString(16).padStart(6,"0")}`}function p({profile:a,initials:b,onSetName:c,onSetBannerColor:f,onSetAvatarUrl:g,onSetRole:h}){let[i,j]=(0,e.useState)(!1),[p,q]=(0,e.useState)(!1),[r,s]=(0,e.useState)(!1),[t,u]=(0,e.useState)(a.name),[v,w]=(0,e.useState)(a.role||""),x=(0,e.useRef)(null),y=(0,e.useRef)(null),z=(0,e.useRef)(null),A=()=>{c(t.trim()),q(!1)},B=()=>{h(v.trim()),s(!1)},C=!!a.avatarUrl;return(0,d.jsxs)("div",{className:"relative",ref:x,children:[(0,d.jsx)("button",{onClick:()=>j(!i),className:"w-9 h-9 rounded-full flex items-center justify-center text-xs font-medium overflow-hidden border-2 transition-all hover:scale-105",style:{borderColor:i?"var(--accent)":"transparent",boxShadow:i?"0 0 0 2px var(--accent), 0 2px 8px rgba(0,0,0,0.1)":"0 1px 3px rgba(0,0,0,0.08)"},children:C?(0,d.jsx)("img",{src:a.avatarUrl,alt:"Avatar",className:"w-full h-full object-cover"}):(0,d.jsx)("span",{className:"w-full h-full flex items-center justify-center",style:{backgroundColor:a.bannerColor,color:"#fff"},children:b})}),i&&(0,d.jsxs)("div",{className:"absolute right-0 top-full mt-2 w-80 border z-50 overflow-hidden",style:{backgroundColor:"var(--bg-card)",borderColor:"var(--border)",borderRadius:"var(--radius-lg)",boxShadow:"var(--shadow-xl)",animation:"fadeIn 150ms ease-out"},children:[(0,d.jsxs)("div",{className:"relative px-5 pt-5 pb-4",style:{background:`linear-gradient(135deg, ${a.bannerColor} 0%, ${o(a.bannerColor,.4)} 50%, ${a.bannerColor} 100%)`},children:[(0,d.jsx)("div",{className:"absolute inset-0 opacity-10",style:{backgroundImage:"radial-gradient(circle at 20% 50%, white 1px, transparent 1px), radial-gradient(circle at 80% 20%, white 1px, transparent 1px)",backgroundSize:"30px 30px"}}),(0,d.jsxs)("div",{className:"relative flex items-end gap-4",children:[(0,d.jsxs)("div",{className:"relative group",children:[(0,d.jsx)("div",{className:"w-16 h-16 rounded-xl overflow-hidden border-3 flex-shrink-0",style:{borderColor:"rgba(255,255,255,0.3)",boxShadow:"0 4px 12px rgba(0,0,0,0.2)"},children:C?(0,d.jsx)("img",{src:a.avatarUrl,alt:"Avatar",className:"w-full h-full object-cover"}):(0,d.jsx)("div",{className:"w-full h-full flex items-center justify-center text-xl font-bold",style:{backgroundColor:a.bannerColor,color:"#fff"},children:b})}),(0,d.jsx)("div",{className:"absolute inset-0 rounded-xl flex items-center justify-center opacity-0 group-hover:opacity-100 cursor-pointer transition-opacity",style:{backgroundColor:"rgba(0,0,0,0.4)"},onClick:a=>{a.stopPropagation(),document.getElementById("avatar-gallery")?.scrollIntoView({behavior:"smooth"})},children:(0,d.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"white",children:(0,d.jsx)("path",{d:"M14 11V14H2V11H0V14C0 15.1.9 16 2 16H14C15.1 16 16 15.1 16 14V11H14ZM7 9L4.5 6.5L3 8L8 13L13 8L11.5 6.5L9 9V0H7V9Z"})})})]}),(0,d.jsxs)("div",{className:"flex-1 min-w-0 pb-1",children:[p?(0,d.jsx)("input",{ref:y,value:t,onChange:a=>u(a.target.value),onBlur:A,onKeyDown:a=>{"Enter"===a.key&&A(),"Escape"===a.key&&q(!1)},className:"w-full bg-white/20 backdrop-blur-sm outline-none text-white text-sm font-semibold px-2 py-1 rounded placeholder-white/50",placeholder:"Your name..."}):(0,d.jsx)("div",{className:"text-sm font-semibold text-white cursor-pointer hover:opacity-80 truncate",onClick:()=>{u(a.name),q(!0)},children:a.name||"Click to set name"}),(0,d.jsx)("div",{className:"text-[11px] mt-0.5 px-2 py-0.5 rounded-full inline-block cursor-pointer hover:opacity-80",style:{backgroundColor:"rgba(255,255,255,0.15)",color:"rgba(255,255,255,0.9)"},onClick:()=>{w(a.role||""),s(!0)},children:r?(0,d.jsx)("input",{ref:z,value:v,onChange:a=>w(a.target.value),onBlur:B,onKeyDown:a=>{"Enter"===a.key&&B(),"Escape"===a.key&&s(!1)},className:"bg-transparent outline-none text-white text-[11px] w-24 placeholder-white/50",placeholder:"Your role..."}):a.role||"Set role..."})]})]})]}),(0,d.jsxs)("div",{className:"px-4 pt-3 pb-2",children:[(0,d.jsx)("label",{className:"text-[10px] font-semibold uppercase tracking-wider block mb-2",style:{color:"var(--text-tertiary)"},children:"Role"}),(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5",children:n.map(b=>(0,d.jsx)("button",{onClick:()=>h(b),className:"px-2 py-1 text-[10px] rounded-md border transition-colors",style:{borderColor:a.role===b?"var(--accent)":"var(--border)",color:a.role===b?"var(--accent)":"var(--text-secondary)",backgroundColor:a.role===b?"var(--accent)10":"transparent",fontWeight:a.role===b?600:400},children:b},b))})]}),(0,d.jsxs)("div",{id:"avatar-gallery",className:"px-4 pt-2 pb-3",children:[(0,d.jsx)("label",{className:"text-[10px] font-semibold uppercase tracking-wider block mb-2",style:{color:"var(--text-tertiary)"},children:"Choose Avatar"}),(0,d.jsx)("div",{className:"grid grid-cols-6 gap-2",children:l.map((b,c)=>(0,d.jsx)("button",{onClick:()=>g(b),className:"w-10 h-10 rounded-lg overflow-hidden border-2 transition-all hover:scale-110 hover:shadow-md",style:{borderColor:a.avatarUrl===b?"var(--accent)":"transparent",boxShadow:a.avatarUrl===b?"0 0 0 2px var(--accent)":"none"},children:(0,d.jsx)("img",{src:b,alt:`Avatar ${c+11}`,className:"w-full h-full object-cover",loading:"lazy"})},b))}),(0,d.jsx)("div",{className:"grid grid-cols-6 gap-2 mt-2",children:m.map((b,c)=>(0,d.jsx)("button",{onClick:()=>g(b),className:"w-10 h-10 rounded-lg overflow-hidden border-2 transition-all hover:scale-110 hover:shadow-md",style:{borderColor:a.avatarUrl===b?"var(--accent)":"transparent",boxShadow:a.avatarUrl===b?"0 0 0 2px var(--accent)":"none"},children:(0,d.jsx)("img",{src:b,alt:`Avatar ${c+23}`,className:"w-full h-full object-cover",loading:"lazy"})},b))})]}),(0,d.jsxs)("div",{className:"px-4 pb-4",children:[(0,d.jsx)("label",{className:"text-[10px] font-semibold uppercase tracking-wider block mb-2",style:{color:"var(--text-tertiary)"},children:"Banner Color"}),(0,d.jsx)("div",{className:"grid grid-cols-8 gap-1.5",children:k.T7.map(b=>(0,d.jsx)("button",{onClick:()=>f(b),className:"w-6 h-6 rounded-full transition-transform hover:scale-110 relative overflow-hidden",style:{background:`linear-gradient(135deg, ${function(a,b){let c=parseInt(a.replace("#",""),16),d=Math.max(0,(c>>16)-Math.round((c>>16)*.3)),e=Math.max(0,(c>>8&255)-Math.round((c>>8&255)*.3)),f=Math.max(0,(255&c)-Math.round((255&c)*b));return`#${(d<<16|e<<8|f).toString(16).padStart(6,"0")}`}(b,.3)} 0%, ${b} 50%, ${o(b,.3)} 100%)`,outline:a.bannerColor!==b||a.avatarUrl?"none":"2px solid var(--accent)",outlineOffset:2},children:(0,d.jsx)("div",{className:"absolute inset-0",style:{background:"linear-gradient(135deg, transparent 0%, rgba(255,255,255,0.3) 50%, transparent 100%)",animation:"shimmer 2s ease-in-out infinite"}})},b))})]}),(0,d.jsxs)("div",{className:"px-4 py-2.5 border-t flex items-center justify-between",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-secondary)"},children:[(0,d.jsx)("span",{className:"text-[10px]",style:{color:"var(--text-tertiary)"},children:"Profile data stored locally"}),(0,d.jsx)("button",{onClick:()=>j(!1),className:"text-[10px] font-medium px-2 py-0.5 rounded",style:{color:"var(--accent)"},children:"Done"})]})]})]})}function q({open:a,onClose:b,profile:c,initials:f,stats:g}){let[h,i]=(0,e.useState)(!1);if(!a)return null;let j=`My Test Lah!:
|
|
2
|
-
${g.projects} Projects | ${g.testCases} Cases | ${g.passRate}% Pass Rate`,k=async()=>{if(navigator.share)try{await navigator.share({title:"Test Lah! Stats",text:j})}catch{}else navigator.clipboard.writeText(j)};return(0,d.jsx)("div",{className:"fixed inset-0 z-[300] flex items-center justify-center",style:{backgroundColor:"rgba(0,0,0,0.3)",animation:"fadeIn 150ms ease-out"},onClick:b,children:(0,d.jsxs)("div",{className:"w-72 mx-4",onClick:a=>a.stopPropagation(),style:{perspective:"1000px"},children:[(0,d.jsxs)("div",{className:"relative w-full",style:{transformStyle:"preserve-3d",transform:h?"rotateY(180deg)":"rotateY(0)",transition:"transform 0.5s ease",height:"380px"},children:[(0,d.jsxs)("div",{className:"absolute inset-0 rounded-xl overflow-hidden border",style:{backfaceVisibility:"hidden",borderColor:"var(--border)",boxShadow:"var(--shadow-lg)"},children:[(0,d.jsx)("div",{className:"absolute inset-0",style:{background:`linear-gradient(160deg, ${function(a,b){let c=parseInt(a.replace("#",""),16),d=Math.max(0,(c>>16)-Math.round((c>>16)*.25)),e=Math.max(0,(c>>8&255)-Math.round((c>>8&255)*b)),f=Math.max(0,(255&c)-Math.round((255&c)*b));return`#${(d<<16|e<<8|f).toString(16).padStart(6,"0")}`}(c.bannerColor,.25)} 0%, ${c.bannerColor} 50%, ${function(a,b){let c=parseInt(a.replace("#",""),16),d=Math.min(255,(c>>16)+Math.round((255-(c>>16))*.2)),e=Math.min(255,(c>>8&255)+Math.round((255-(c>>8&255))*b)),f=Math.min(255,(255&c)+Math.round((255-(255&c))*b));return`#${(d<<16|e<<8|f).toString(16).padStart(6,"0")}`}(c.bannerColor,.2)} 100%)`}}),(0,d.jsxs)("div",{className:"relative h-full flex flex-col items-center justify-center px-4",children:[(0,d.jsx)("div",{className:"w-20 h-20 rounded-xl overflow-hidden border-2 mb-3",style:{borderColor:"rgba(255,255,255,0.3)"},children:c.avatarUrl?(0,d.jsx)("img",{src:c.avatarUrl,alt:"Avatar",className:"w-full h-full object-cover"}):(0,d.jsx)("div",{className:"w-full h-full flex items-center justify-center text-2xl font-bold",style:{backgroundColor:"rgba(0,0,0,0.2)",color:"#fff"},children:f})}),(0,d.jsx)("h3",{className:"text-base font-semibold text-white drop-shadow-sm",children:c.name||"Anonymous Tester"}),(0,d.jsx)("p",{className:"text-xs mt-0.5 text-white/70",children:c.role||"No role set"}),(0,d.jsxs)("div",{className:"flex items-center gap-4 mt-4",children:[(0,d.jsx)(r,{value:g.projects,label:"Projects"}),(0,d.jsx)("div",{className:"w-px h-6 bg-white/20"}),(0,d.jsx)(r,{value:g.testCases,label:"Cases"}),(0,d.jsx)("div",{className:"w-px h-6 bg-white/20"}),(0,d.jsx)(r,{value:`${g.passRate}%`,label:"Pass"})]}),(0,d.jsx)("button",{onClick:()=>i(!0),className:"mt-5 px-4 py-1.5 text-[11px] font-medium rounded-full transition-colors",style:{backgroundColor:"rgba(255,255,255,0.2)",color:"#fff"},children:"View stats"})]})]}),(0,d.jsx)("div",{className:"absolute inset-0 rounded-xl overflow-hidden border",style:{backfaceVisibility:"hidden",transform:"rotateY(180deg)",borderColor:"var(--border)",backgroundColor:"var(--bg-card)",boxShadow:"var(--shadow-lg)"},children:(0,d.jsxs)("div",{className:"h-full flex flex-col",children:[(0,d.jsxs)("div",{className:"px-4 py-3 border-b flex items-center justify-between",style:{borderColor:"var(--border)"},children:[(0,d.jsx)("span",{className:"text-xs font-semibold",style:{color:"var(--text-primary)"},children:"Statistics"}),(0,d.jsx)("button",{onClick:()=>i(!1),className:"text-[10px] px-2 py-0.5 rounded border transition-colors hover:bg-[var(--bg-secondary)]",style:{color:"var(--text-tertiary)",borderColor:"var(--border)"},children:"Back"})]}),(0,d.jsxs)("div",{className:"flex-1 overflow-auto p-4 space-y-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,d.jsx)("span",{className:"text-[10px] uppercase tracking-wider",style:{color:"var(--text-tertiary)"},children:"Pass Rate"}),(0,d.jsxs)("span",{className:"text-sm font-semibold",style:{color:g.passRate>=80?"var(--status-pass-text)":g.passRate>=50?"var(--status-skip-text)":"var(--status-fail-text)"},children:[g.passRate,"%"]})]}),(0,d.jsx)("div",{className:"h-1.5 rounded-full overflow-hidden",style:{backgroundColor:"var(--bg-secondary)"},children:(0,d.jsx)("div",{className:"h-full rounded-full",style:{width:`${g.passRate}%`,backgroundColor:g.passRate>=80?"var(--status-pass-text)":g.passRate>=50?"var(--status-skip-text)":"var(--status-fail-text)"}})})]}),(0,d.jsxs)("div",{className:"grid grid-cols-4 gap-1.5",children:[(0,d.jsx)(s,{label:"Pass",value:g.pass,color:"var(--status-pass-text)"}),(0,d.jsx)(s,{label:"Fail",value:g.fail,color:"var(--status-fail-text)"}),(0,d.jsx)(s,{label:"Skip",value:g.skip,color:"var(--status-skip-text)"}),(0,d.jsx)(s,{label:"New",value:g.untested})]}),(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)(t,{label:"Test Cases",value:g.testCases}),(0,d.jsx)(t,{label:"Flow Nodes",value:g.nodes}),(0,d.jsx)(t,{label:"Edges",value:g.edges}),(0,d.jsx)(t,{label:"Projects",value:g.projects})]}),(0,d.jsxs)("button",{onClick:k,className:"w-full px-3 py-2 text-[11px] font-medium rounded-lg border transition-colors hover:bg-[var(--bg-secondary)] flex items-center justify-center gap-1.5",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:[(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M4 12v8a2 2 0 002 2h12a2 2 0 002-2v-8"}),(0,d.jsx)("polyline",{points:"16 6 12 2 8 6"}),(0,d.jsx)("line",{x1:"12",y1:"2",x2:"12",y2:"15"})]}),"Share"]})]})]})})]}),(0,d.jsx)("button",{onClick:b,className:"w-full mt-2 px-3 py-2 text-[11px] font-medium rounded-lg border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)",backgroundColor:"var(--bg-card)"},children:"Close"})]})})}function r({value:a,label:b}){return(0,d.jsxs)("div",{className:"text-center",children:[(0,d.jsx)("div",{className:"text-sm font-semibold text-white",children:a}),(0,d.jsx)("div",{className:"text-[9px] uppercase tracking-wider text-white/60",children:b})]})}function s({label:a,value:b,color:c}){return(0,d.jsxs)("div",{className:"py-2 rounded-lg text-center",style:{backgroundColor:"var(--bg-secondary)"},children:[(0,d.jsx)("div",{className:"text-sm font-medium",style:{color:c??"var(--text-secondary)"},children:b}),(0,d.jsx)("div",{className:"text-[8px] uppercase tracking-wider",style:{color:"var(--text-tertiary)"},children:a})]})}function t({label:a,value:b}){return(0,d.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 rounded-lg",style:{backgroundColor:"var(--bg-secondary)"},children:[(0,d.jsx)("span",{className:"text-[11px]",style:{color:"var(--text-tertiary)"},children:a}),(0,d.jsx)("span",{className:"text-xs font-medium",style:{color:"var(--text-primary)"},children:b})]})}var u=c(64271);function v(){let{projects:a,activeProject:b,activeProjectId:c,profile:h,profileInitials:k,setProfileName:l,setProfileBannerColor:m,setProfileAvatarUrl:n,setProfileRole:o}=(0,g.M)(),{logout:r}=(0,j.A)(),s=(0,f.useRouter)(),t=(0,f.usePathname)(),{startProgress:v,completeProgress:x}=(0,u.p1)(),[y,z]=(0,e.useState)(!1),[A,B]=(0,e.useState)(!1),C=Object.values(a),D=(0,e.useMemo)(()=>{let a=C.flatMap(a=>Object.values(a.testCases).flat()),b=a.length,c=a.filter(a=>"pass"===a.status).length,d=a.filter(a=>"fail"===a.status).length,e=a.filter(a=>"skip"===a.status).length,f=a.filter(a=>"untested"===a.status).length,g=C.reduce((a,b)=>a+b.flows.length,0),h=C.reduce((a,b)=>a+(b.edges??[]).length,0),i=b-e,j=i>0?Math.round(c/i*100):0;return{projects:C.length,testCases:b,passRate:j,nodes:g,edges:h,pass:c,fail:d,skip:e,untested:f}},[C]),E=t.startsWith("/integrations")?"integrations":"projects";return(0,d.jsxs)("header",{className:"flex flex-col border-b flex-shrink-0 relative",style:{backgroundColor:"var(--bg-card)",borderColor:"var(--border)"},children:[(0,d.jsx)("div",{className:"absolute inset-0 overflow-hidden flex items-center justify-center pointer-events-none group/duck",children:(0,d.jsx)("img",{src:"https://static.vecteezy.com/system/resources/thumbnails/067/162/149/small/cute-duck-meme-sticker-transparent-cute-illustration-free-png.png",alt:"",className:"h-[85%] object-contain select-none transition-all duration-300 group-hover/duck:scale-110 group-hover/duck:opacity-[0.15] cursor-pointer",style:{opacity:.09,pointerEvents:"auto"},onClick:()=>s.push("/projects"),title:"Quack! \uD83E\uDD86"})}),(0,d.jsxs)("div",{className:"relative z-10 flex items-center justify-between px-6 py-2.5",children:[(0,d.jsx)("div",{className:"flex items-center gap-3",children:(0,d.jsxs)(i(),{href:"/projects",className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"w-8 h-8 rounded-md overflow-hidden bg-white flex-shrink-0",style:{boxShadow:"0 1px 4px rgba(0,0,0,0.08)"},children:(0,d.jsx)("img",{src:"https://static.vecteezy.com/system/resources/thumbnails/067/162/149/small/cute-duck-meme-sticker-transparent-cute-illustration-free-png.png",alt:"Logo",width:32,height:32,className:"w-full h-full object-contain"})}),(0,d.jsx)("span",{className:"shimmer-text text-sm font-bold tracking-wide select-none",style:{background:"linear-gradient(90deg, var(--text-primary) 0%, var(--text-primary) 40%, #FFD54F 50%, var(--text-primary) 60%, var(--text-primary) 100%)",backgroundSize:"200% 100%",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent",backgroundClip:"text",animation:"shimmerText 3s ease-in-out infinite"},children:"Test Lah!"})]})}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("button",{onClick:()=>z(!0),className:"hidden md:block px-3 py-1.5 text-[11px] font-medium rounded-md border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:"My Card"}),(0,d.jsx)("div",{className:"hidden md:block w-px h-5 mx-0.5",style:{backgroundColor:"var(--border)"}}),(0,d.jsx)("div",{className:"relative z-[60]",children:(0,d.jsx)(p,{profile:h,initials:k,onSetName:l,onSetBannerColor:m,onSetAvatarUrl:n,onSetRole:o})}),(0,d.jsx)("button",{onClick:()=>{B(!0)},className:"w-8 h-8 flex items-center justify-center text-xs rounded-md border transition-colors hover:bg-[var(--bg-secondary)] hover:border-[var(--status-fail-text)]",style:{borderColor:"var(--border)",color:"var(--text-tertiary)"},title:"Logout",children:(0,d.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:(0,d.jsx)("path",{d:"M5 2H3.5A1.5 1.5 0 002 3.5v7A1.5 1.5 0 003.5 12H5M9 10l3-3-3-3M6 7h6",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]}),(0,d.jsxs)("div",{className:"relative z-10 flex items-center gap-1 px-6",children:[(0,d.jsx)(w,{label:"All Projects",href:"/projects",icon:(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 14 14",fill:"none",children:[(0,d.jsx)("rect",{x:"1",y:"1",width:"5",height:"5",rx:"1",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,d.jsx)("rect",{x:"8",y:"1",width:"5",height:"5",rx:"1",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,d.jsx)("rect",{x:"1",y:"8",width:"5",height:"5",rx:"1",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,d.jsx)("rect",{x:"8",y:"8",width:"5",height:"5",rx:"1",stroke:"currentColor",strokeWidth:"1.2",fill:"none"})]}),active:"projects"===E}),(0,d.jsx)(w,{label:"Integrations",href:"/integrations",icon:(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 14 14",fill:"none",children:[(0,d.jsx)("circle",{cx:"5",cy:"5",r:"2.5",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,d.jsx)("circle",{cx:"9",cy:"9",r:"2.5",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,d.jsx)("path",{d:"M7.5 5.5L6.5 8.5",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]}),active:"integrations"===E})]}),(0,d.jsx)(q,{open:y,onClose:()=>z(!1),profile:h,initials:k,stats:D}),A&&(0,d.jsx)("div",{className:"fixed inset-0 z-[400] flex items-center justify-center",style:{backgroundColor:"rgba(0,0,0,0.3)",animation:"fadeIn 150ms ease-out"},onClick:()=>B(!1),children:(0,d.jsxs)("div",{className:"w-full max-w-sm mx-4 rounded-xl border overflow-hidden",style:{backgroundColor:"var(--bg-card)",borderColor:"var(--border)",boxShadow:"var(--shadow-lg)",animation:"fadeInUp 200ms ease-out"},onClick:a=>a.stopPropagation(),children:[(0,d.jsxs)("div",{className:"px-6 pt-6 pb-4 text-center",children:[(0,d.jsx)("div",{className:"w-14 h-14 mx-auto mb-4 rounded-full flex items-center justify-center",style:{backgroundColor:"var(--status-skip-bg)"},children:(0,d.jsxs)("svg",{width:"28",height:"28",viewBox:"0 0 24 24",fill:"none",stroke:"var(--status-skip-text)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4"}),(0,d.jsx)("polyline",{points:"16 17 21 12 16 7"}),(0,d.jsx)("line",{x1:"21",y1:"12",x2:"9",y2:"12"})]})}),(0,d.jsx)("h3",{className:"text-base font-semibold mb-2",style:{color:"var(--text-primary)"},children:"Mau Keluar? Sedekahnya mana??"}),(0,d.jsx)("p",{className:"text-xs leading-relaxed",style:{color:"var(--text-tertiary)"},children:"Sebelum keluar, mungkin bisa traktir developer secangkir kopi? ☕"})]}),(0,d.jsxs)("div",{className:"px-6 pb-5 flex gap-2",children:[(0,d.jsx)("button",{onClick:()=>B(!1),className:"flex-1 px-3 py-2.5 text-xs font-medium rounded-lg border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:"Batal"}),(0,d.jsx)("button",{onClick:()=>{B(!1),v("Logging out..."),r(),setTimeout(()=>{x("Logged out!"),s.push("/login")},500)},className:"flex-1 px-3 py-2.5 text-xs font-medium rounded-lg transition-opacity hover:opacity-80",style:{backgroundColor:"var(--status-fail-text)",color:"#fff"},children:"Keluar"})]})]})})]})}function w({label:a,icon:b,active:c,href:e,badge:f}){return(0,d.jsxs)(i(),{href:e,className:"flex items-center gap-2 px-3 py-2 text-xs font-medium rounded-t-md transition-colors relative",style:{color:c?"var(--accent)":"var(--text-tertiary)",backgroundColor:c?"var(--bg-secondary)":"transparent"},children:[b,a,f&&(0,d.jsx)("span",{className:"ml-1 px-1.5 py-0.5 text-[9px] font-semibold rounded-full leading-none",style:{backgroundColor:c?"var(--accent)":"var(--bg-secondary)",color:c?"#fff":"var(--text-tertiary)"},children:f}),c&&(0,d.jsx)("div",{className:"absolute bottom-0 left-2 right-2 h-0.5 rounded-t-full",style:{backgroundColor:"var(--accent)"}})]})}var x=c(42423);function y({children:a}){(0,f.useRouter)();let{isLoggedIn:b,loaded:c}=(0,j.A)();return c?b?(0,d.jsx)(d.Fragment,{children:a}):null:(0,d.jsx)("div",{className:"h-screen flex items-center justify-center",style:{backgroundColor:"var(--bg-primary)"},children:(0,d.jsx)("div",{className:"text-sm",style:{color:"var(--text-tertiary)"},children:"Loading..."})})}function z(){let{undo:a,redo:b,canUndo:c,canRedo:d}=(0,g.M)();return null}function A({children:a}){let{dialog:b}=(0,g.M)();return(0,d.jsxs)(d.Fragment,{children:[a,(0,d.jsx)(x.q,{dialog:b})]})}function B({children:a}){return(0,d.jsx)(y,{children:(0,d.jsx)(g.q,{children:(0,d.jsx)(A,{children:(0,d.jsxs)("div",{className:"h-screen flex flex-col",style:{backgroundColor:"var(--bg-primary)"},children:[(0,d.jsx)(z,{}),(0,d.jsx)(v,{}),(0,d.jsx)("div",{className:"flex-1 min-h-0",children:a})]})})})})}},26239:(a,b,c)=>{"use strict";c.d(b,{Providers:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call Providers() from the server but Providers 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.")},"/home/sltr91025/code-repository/open-source/test-lah/src/components/shared/Providers.tsx","Providers")},34776:(a,b,c)=>{"use strict";c.d(b,{A:()=>f});var d=c(38301);function e(a){try{sessionStorage.setItem("qa-auth",JSON.stringify(a))}catch{}}function f(){let[a,b]=(0,d.useState)({name:"",isLoggedIn:!1}),[c,f]=(0,d.useState)(!1),g=(0,d.useCallback)(a=>{let c={name:a,isLoggedIn:!0};e(c),b(c)},[]),h=(0,d.useCallback)(()=>{let a={name:"",isLoggedIn:!1};e(a),b(a)},[]);return{...a,loaded:c,login:g,logout:h}}},35473:(a,b,c)=>{"use strict";c.d(b,{Providers:()=>f});var d=c(21124),e=c(64271);function f({children:a}){return(0,d.jsx)(e.Vx,{children:a})}},37687:(a,b,c)=>{Promise.resolve().then(c.bind(c,26239))},42423:(a,b,c)=>{"use strict";c.d(b,{q:()=>g,s:()=>f});var d=c(21124),e=c(38301);function f(){let[a,b]=(0,e.useState)(null),c=(0,e.useCallback)((a,c)=>new Promise(d=>{b({type:"alert",title:a,message:c,resolve:()=>{b(null),d()}})}),[]);return{dialog:a,alert:c,confirm:(0,e.useCallback)((a,c)=>new Promise(d=>{b({type:"confirm",title:a,message:c,resolve:a=>{b(null),d(!0===a)}})}),[]),prompt:(0,e.useCallback)((a,c,d="")=>new Promise(e=>{b({type:"prompt",title:a,message:c,defaultValue:d,resolve:a=>{b(null),e("string"==typeof a?a:null)}})}),[])}}function g({dialog:a}){let[b,c]=(0,e.useState)(""),f=(0,e.useRef)(null);return a?(0,d.jsx)("div",{className:"fixed inset-0 z-[400] flex items-center justify-center",style:{backgroundColor:"rgba(0,0,0,0.3)",animation:"fadeIn 150ms ease-out"},onClick:()=>a.resolve("prompt"===a.type&&null),children:(0,d.jsx)("div",{className:"relative w-full max-w-sm mx-4",onClick:a=>a.stopPropagation(),children:(0,d.jsx)("div",{className:"p-[2px] rounded-xl overflow-hidden",style:{background:"linear-gradient(135deg, #9E7AFF 0%, #FE8BBB 50%, #9E7AFF 100%)",backgroundSize:"200% 200%",animation:"borderShine 3s linear infinite"},children:(0,d.jsxs)("div",{className:"rounded-[10px] p-5",style:{backgroundColor:"var(--bg-card)",boxShadow:"var(--shadow-xl)"},children:[(0,d.jsx)("h3",{className:"text-sm font-semibold mb-2",style:{color:"var(--text-primary)"},children:a.title}),(0,d.jsx)("p",{className:"text-xs mb-4",style:{color:"var(--text-secondary)"},children:a.message}),"prompt"===a.type&&(0,d.jsx)("input",{ref:f,value:b,onChange:a=>c(a.target.value),onKeyDown:c=>{"Enter"===c.key&&a.resolve(b.trim()||null)},className:"w-full px-3 py-2 text-sm rounded-lg border outline-none transition-colors focus:border-[var(--accent)] mb-4",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-secondary)",color:"var(--text-primary)"},placeholder:"Enter value..."}),(0,d.jsxs)("div",{className:"flex gap-2 justify-end",children:["alert"!==a.type&&(0,d.jsx)("button",{onClick:()=>a.resolve("prompt"===a.type&&null),className:"px-3 py-1.5 text-xs font-medium rounded-lg border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:"Cancel"}),(0,d.jsx)("button",{onClick:()=>{"confirm"===a.type?a.resolve(!0):"prompt"===a.type?a.resolve(b.trim()||null):a.resolve(null)},className:"px-3 py-1.5 text-xs font-medium rounded-lg transition-opacity hover:opacity-80",style:{backgroundColor:"var(--accent)",color:"var(--bg-primary)"},children:"confirm"===a.type?"Confirm":"OK"})]})]})})})}):null}},44309:(a,b,c)=>{Promise.resolve().then(c.bind(c,22048))},51472:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>i,metadata:()=>h});var d=c(75338),e=c(76555),f=c.n(e);c(61135);var g=c(26239);let h={title:"Test Lah!",description:"Test Lah! — Your Boss's Favorite QA Tool",icons:{icon:"/favicon.ico"}};function i({children:a}){return(0,d.jsx)("html",{lang:"en",children:(0,d.jsx)("body",{className:f().variable,style:{fontFamily:"Inter, system-ui, sans-serif"},children:(0,d.jsx)(g.Providers,{children:a})})})}},61135:()=>{},64271:(a,b,c)=>{"use strict";c.d(b,{Vx:()=>h,p1:()=>g});var d=c(21124),e=c(38301);let f=(0,e.createContext)(null);function g(){let a=(0,e.useContext)(f);if(!a)throw Error("useProgress must be used within ProgressProvider");return a}function h({children:a}){let[b,c]=(0,e.useState)(0),[g,h]=(0,e.useState)(""),[i,j]=(0,e.useState)(!1),k=(0,e.useRef)(null),l=(0,e.useRef)(null),m=(0,e.useCallback)(()=>{k.current&&(clearInterval(k.current),k.current=null),l.current&&(clearTimeout(l.current),l.current=null)},[]),n=(0,e.useCallback)(()=>{j(!1),c(0),h("")},[]),o=(0,e.useCallback)(a=>{m(),c(0),h(a||""),j(!0),k.current=setInterval(()=>{c(a=>a>=90?(k.current&&clearInterval(k.current),k.current=null,90):a+15*Math.random())},300),l.current=setTimeout(()=>{n()},8e3)},[m,n]),p=(0,e.useCallback)((a,b)=>{c(Math.min(95,a)),b&&h(b)},[]),q=(0,e.useCallback)(a=>{m(),c(100),a&&h(a),setTimeout(()=>{n()},500)},[m,n]),r=(0,e.useCallback)(()=>{m(),n()},[m,n]);return(0,d.jsxs)(f.Provider,{value:{startProgress:o,updateProgress:p,completeProgress:q,cancelProgress:r,isProgressing:i},children:[a,(0,d.jsxs)("div",{className:"fixed bottom-0 left-0 right-0 z-[600] transition-all duration-300 ease-out",style:{opacity:+!!i,transform:i?"translateY(0)":"translateY(100%)",pointerEvents:i?"auto":"none"},children:[(0,d.jsx)("div",{className:"h-1 w-full",style:{backgroundColor:"var(--bg-secondary)"},children:(0,d.jsx)("div",{className:"h-full transition-all duration-200 ease-out",style:{width:`${b}%`,backgroundColor:b>=100?"var(--status-pass-text)":"var(--accent)",boxShadow:b>=100?"0 0 10px var(--status-pass-text)":"none"}})}),g&&(0,d.jsxs)("div",{className:"flex items-center justify-center py-2 px-4 text-xs font-medium cursor-pointer",onClick:r,style:{backgroundColor:"var(--bg-card)",color:b>=100?"var(--status-pass-text)":"var(--text-secondary)",borderTop:"1px solid var(--border)"},children:[b>=100&&(0,d.jsx)("svg",{className:"mr-2",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:(0,d.jsx)("path",{d:"M2 6l3 3 5-5",stroke:"var(--status-pass-text)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),g]})]})]})}},66688:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,54160,23)),Promise.resolve().then(c.t.bind(c,31603,23)),Promise.resolve().then(c.t.bind(c,68495,23)),Promise.resolve().then(c.t.bind(c,75170,23)),Promise.resolve().then(c.t.bind(c,77526,23)),Promise.resolve().then(c.t.bind(c,78922,23)),Promise.resolve().then(c.t.bind(c,29234,23)),Promise.resolve().then(c.t.bind(c,12263,23)),Promise.resolve().then(c.bind(c,82146))},70440:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(97523);let e=async a=>[{type:"image/x-icon",sizes:"350x350",url:(0,d.fillMetadataSegment)(".",await a.params,"favicon.ico")+""}]},90831:(a,b,c)=>{Promise.resolve().then(c.bind(c,35473))},97788:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/sltr91025/code-repository/open-source/test-lah/src/app/(dashboard)/layout.tsx\" from the server, but it's 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.")},"/home/sltr91025/code-repository/open-source/test-lah/src/app/(dashboard)/layout.tsx","default")}};
|
|
1
|
+
exports.id=615,exports.ids=[615],exports.modules={2453:(a,b,c)=>{Promise.resolve().then(c.bind(c,97788))},3136:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81170,23)),Promise.resolve().then(c.t.bind(c,23597,23)),Promise.resolve().then(c.t.bind(c,36893,23)),Promise.resolve().then(c.t.bind(c,89748,23)),Promise.resolve().then(c.t.bind(c,6060,23)),Promise.resolve().then(c.t.bind(c,7184,23)),Promise.resolve().then(c.t.bind(c,69576,23)),Promise.resolve().then(c.t.bind(c,73041,23)),Promise.resolve().then(c.t.bind(c,51384,23))},19188:(a,b,c)=>{"use strict";c.d(b,{D_:()=>e,IU:()=>g,T7:()=>f,_X:()=>d});let d=[{key:"code",label:"ID",visible:!0},{key:"title",label:"Test Case",visible:!0},{key:"steps",label:"Steps",visible:!0},{key:"expected",label:"Expected Result",visible:!0},{key:"status",label:"Status",visible:!0},{key:"case_type",label:"Case Type",visible:!1},{key:"notes",label:"Notes",visible:!0},{key:"links",label:"Links",visible:!1}],e=["General","Positive","Negative"],f=["#E57373","#F06292","#BA68C8","#9575CD","#7986CB","#64B5F6","#4FC3F7","#4DD0E1","#4DB6AC","#81C784","#AED581","#FFD54F","#FFB74D","#FF8A65","#A1887F","#90A4AE"];function g(a,b,c,d){return{id:a,code:b,label:c,parentId:d,children:[],shape:"rounded",notes:"",position:null}}},22048:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>B});var d=c(21124),e=c(38301),f=c(42378),g=c(66877),h=c(3991),i=c.n(h),j=c(34776),k=c(19188);let l=["https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_11.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_12.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_13.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_14.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_15.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_16.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_17.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_18.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_19.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_20.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_21.png","https://cdn.jsdelivr.net/gh/alohe/avatars/png/upstream_22.png"],m=["https://i.pinimg.com/736x/ed/74/06/ed74063ade6d66fce2ca19acbe74babc.jpg","https://i.pinimg.com/736x/8c/6d/56/8c6d563311f0917d45d1f2ce5d7c1a2d.jpg","https://i.pinimg.com/736x/86/b8/be/86b8bea1c772cf5c540e6f01e6acce59.jpg","https://i.pinimg.com/736x/78/d4/b1/78d4b1787a4fd23c2a8d21e4fbbc016f.jpg","https://i.pinimg.com/1200x/87/de/e6/87dee6d33b04f1df28bc85702ee12d4b.jpg","https://i.pinimg.com/1200x/3b/e3/95/3be395c4a94705f95e0603afb04f9d56.jpg","https://media.licdn.com/dms/image/v2/D5603AQHBu4wrzFWoTw/profile-displayphoto-crop_800_800/B56Zq.Sy6LKsAI-/0/1764129191465?e=1782345600&v=beta&t=79y6xLivwcpvwy53sy1TuVopK4FMp6O8uAu7QxlIxDo"],n=["QA Engineer","QA Lead","Developer","Designer","Manager"];function o(a,b){let c=parseInt(a.replace("#",""),16),d=Math.min(255,(c>>16)+Math.round((255-(c>>16))*b)),e=Math.min(255,(c>>8&255)+Math.round((255-(c>>8&255))*b)),f=Math.min(255,(255&c)+Math.round((255-(255&c))*b));return`#${(d<<16|e<<8|f).toString(16).padStart(6,"0")}`}function p({profile:a,initials:b,onSetName:c,onSetBannerColor:f,onSetAvatarUrl:g,onSetRole:h}){let[i,j]=(0,e.useState)(!1),[p,q]=(0,e.useState)(!1),[r,s]=(0,e.useState)(!1),[t,u]=(0,e.useState)(a.name),[v,w]=(0,e.useState)(a.role||""),x=(0,e.useRef)(null),y=(0,e.useRef)(null),z=(0,e.useRef)(null),A=()=>{c(t.trim()),q(!1)},B=()=>{h(v.trim()),s(!1)},C=!!a.avatarUrl;return(0,d.jsxs)("div",{className:"relative",ref:x,children:[(0,d.jsx)("button",{onClick:()=>j(!i),className:"w-9 h-9 rounded-full flex items-center justify-center text-xs font-medium overflow-hidden border-2 transition-all hover:scale-105",style:{borderColor:i?"var(--accent)":"transparent",boxShadow:i?"0 0 0 2px var(--accent), 0 2px 8px rgba(0,0,0,0.1)":"0 1px 3px rgba(0,0,0,0.08)"},children:C?(0,d.jsx)("img",{src:a.avatarUrl,alt:"Avatar",className:"w-full h-full object-cover"}):(0,d.jsx)("span",{className:"w-full h-full flex items-center justify-center",style:{backgroundColor:a.bannerColor,color:"#fff"},children:b})}),i&&(0,d.jsxs)("div",{className:"absolute right-0 top-full mt-2 w-80 border z-50 overflow-hidden",style:{backgroundColor:"var(--bg-card)",borderColor:"var(--border)",borderRadius:"var(--radius-lg)",boxShadow:"var(--shadow-xl)",animation:"fadeIn 150ms ease-out"},children:[(0,d.jsxs)("div",{className:"relative px-5 pt-5 pb-4",style:{background:`linear-gradient(135deg, ${a.bannerColor} 0%, ${o(a.bannerColor,.4)} 50%, ${a.bannerColor} 100%)`},children:[(0,d.jsx)("div",{className:"absolute inset-0 opacity-10",style:{backgroundImage:"radial-gradient(circle at 20% 50%, white 1px, transparent 1px), radial-gradient(circle at 80% 20%, white 1px, transparent 1px)",backgroundSize:"30px 30px"}}),(0,d.jsxs)("div",{className:"relative flex items-end gap-4",children:[(0,d.jsxs)("div",{className:"relative group",children:[(0,d.jsx)("div",{className:"w-16 h-16 rounded-xl overflow-hidden border-3 flex-shrink-0",style:{borderColor:"rgba(255,255,255,0.3)",boxShadow:"0 4px 12px rgba(0,0,0,0.2)"},children:C?(0,d.jsx)("img",{src:a.avatarUrl,alt:"Avatar",className:"w-full h-full object-cover"}):(0,d.jsx)("div",{className:"w-full h-full flex items-center justify-center text-xl font-bold",style:{backgroundColor:a.bannerColor,color:"#fff"},children:b})}),(0,d.jsx)("div",{className:"absolute inset-0 rounded-xl flex items-center justify-center opacity-0 group-hover:opacity-100 cursor-pointer transition-opacity",style:{backgroundColor:"rgba(0,0,0,0.4)"},onClick:a=>{a.stopPropagation(),document.getElementById("avatar-gallery")?.scrollIntoView({behavior:"smooth"})},children:(0,d.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"white",children:(0,d.jsx)("path",{d:"M14 11V14H2V11H0V14C0 15.1.9 16 2 16H14C15.1 16 16 15.1 16 14V11H14ZM7 9L4.5 6.5L3 8L8 13L13 8L11.5 6.5L9 9V0H7V9Z"})})})]}),(0,d.jsxs)("div",{className:"flex-1 min-w-0 pb-1",children:[p?(0,d.jsx)("input",{ref:y,value:t,onChange:a=>u(a.target.value),onBlur:A,onKeyDown:a=>{"Enter"===a.key&&A(),"Escape"===a.key&&q(!1)},className:"w-full bg-white/20 backdrop-blur-sm outline-none text-white text-sm font-semibold px-2 py-1 rounded placeholder-white/50",placeholder:"Your name..."}):(0,d.jsx)("div",{className:"text-sm font-semibold text-white cursor-pointer hover:opacity-80 truncate",onClick:()=>{u(a.name),q(!0)},children:a.name||"Click to set name"}),(0,d.jsx)("div",{className:"text-[11px] mt-0.5 px-2 py-0.5 rounded-full inline-block cursor-pointer hover:opacity-80",style:{backgroundColor:"rgba(255,255,255,0.15)",color:"rgba(255,255,255,0.9)"},onClick:()=>{w(a.role||""),s(!0)},children:r?(0,d.jsx)("input",{ref:z,value:v,onChange:a=>w(a.target.value),onBlur:B,onKeyDown:a=>{"Enter"===a.key&&B(),"Escape"===a.key&&s(!1)},className:"bg-transparent outline-none text-white text-[11px] w-24 placeholder-white/50",placeholder:"Your role..."}):a.role||"Set role..."})]})]})]}),(0,d.jsxs)("div",{className:"px-4 pt-3 pb-2",children:[(0,d.jsx)("label",{className:"text-[10px] font-semibold uppercase tracking-wider block mb-2",style:{color:"var(--text-tertiary)"},children:"Role"}),(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5",children:n.map(b=>(0,d.jsx)("button",{onClick:()=>h(b),className:"px-2 py-1 text-[10px] rounded-md border transition-colors",style:{borderColor:a.role===b?"var(--accent)":"var(--border)",color:a.role===b?"var(--accent)":"var(--text-secondary)",backgroundColor:a.role===b?"var(--accent)10":"transparent",fontWeight:a.role===b?600:400},children:b},b))})]}),(0,d.jsxs)("div",{id:"avatar-gallery",className:"px-4 pt-2 pb-3",children:[(0,d.jsx)("label",{className:"text-[10px] font-semibold uppercase tracking-wider block mb-2",style:{color:"var(--text-tertiary)"},children:"Choose Avatar"}),(0,d.jsx)("div",{className:"grid grid-cols-6 gap-2",children:l.map((b,c)=>(0,d.jsx)("button",{onClick:()=>g(b),className:"w-10 h-10 rounded-lg overflow-hidden border-2 transition-all hover:scale-110 hover:shadow-md",style:{borderColor:a.avatarUrl===b?"var(--accent)":"transparent",boxShadow:a.avatarUrl===b?"0 0 0 2px var(--accent)":"none"},children:(0,d.jsx)("img",{src:b,alt:`Avatar ${c+11}`,className:"w-full h-full object-cover",loading:"lazy"})},b))}),(0,d.jsx)("div",{className:"grid grid-cols-6 gap-2 mt-2",children:m.map((b,c)=>(0,d.jsx)("button",{onClick:()=>g(b),className:"w-10 h-10 rounded-lg overflow-hidden border-2 transition-all hover:scale-110 hover:shadow-md",style:{borderColor:a.avatarUrl===b?"var(--accent)":"transparent",boxShadow:a.avatarUrl===b?"0 0 0 2px var(--accent)":"none"},children:(0,d.jsx)("img",{src:b,alt:`Avatar ${c+23}`,className:"w-full h-full object-cover",loading:"lazy"})},b))})]}),(0,d.jsxs)("div",{className:"px-4 pb-4",children:[(0,d.jsx)("label",{className:"text-[10px] font-semibold uppercase tracking-wider block mb-2",style:{color:"var(--text-tertiary)"},children:"Banner Color"}),(0,d.jsx)("div",{className:"grid grid-cols-8 gap-1.5",children:k.T7.map(b=>(0,d.jsx)("button",{onClick:()=>f(b),className:"w-6 h-6 rounded-full transition-transform hover:scale-110 relative overflow-hidden",style:{background:`linear-gradient(135deg, ${function(a,b){let c=parseInt(a.replace("#",""),16),d=Math.max(0,(c>>16)-Math.round((c>>16)*.3)),e=Math.max(0,(c>>8&255)-Math.round((c>>8&255)*.3)),f=Math.max(0,(255&c)-Math.round((255&c)*b));return`#${(d<<16|e<<8|f).toString(16).padStart(6,"0")}`}(b,.3)} 0%, ${b} 50%, ${o(b,.3)} 100%)`,outline:a.bannerColor!==b||a.avatarUrl?"none":"2px solid var(--accent)",outlineOffset:2},children:(0,d.jsx)("div",{className:"absolute inset-0",style:{background:"linear-gradient(135deg, transparent 0%, rgba(255,255,255,0.3) 50%, transparent 100%)",animation:"shimmer 2s ease-in-out infinite"}})},b))})]}),(0,d.jsxs)("div",{className:"px-4 py-2.5 border-t flex items-center justify-between",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-secondary)"},children:[(0,d.jsx)("span",{className:"text-[10px]",style:{color:"var(--text-tertiary)"},children:"Profile data stored locally"}),(0,d.jsx)("button",{onClick:()=>j(!1),className:"text-[10px] font-medium px-2 py-0.5 rounded",style:{color:"var(--accent)"},children:"Done"})]})]})]})}function q({open:a,onClose:b,profile:c,initials:f,stats:g}){let[h,i]=(0,e.useState)(!1),[j,k]=(0,e.useState)(!1);if(!a)return null;let l=`My Test Lah!:
|
|
2
|
+
${g.projects} Projects | ${g.testCases} Cases | ${g.passRate}% Pass Rate`,m=async()=>{if(navigator.share)try{await navigator.share({title:"Test Lah! Stats",text:l})}catch{}else navigator.clipboard.writeText(l)};return(0,d.jsxs)("div",{className:"fixed inset-0 z-[300] flex items-center justify-center",style:{backgroundColor:"rgba(0,0,0,0.3)",animation:"fadeIn 150ms ease-out"},onClick:b,children:[(0,d.jsxs)("div",{className:"w-72 mx-4",onClick:a=>a.stopPropagation(),style:{perspective:"1000px"},children:[(0,d.jsxs)("div",{className:"relative w-full",style:{transformStyle:"preserve-3d",transform:h?"rotateY(180deg)":"rotateY(0)",transition:"transform 0.5s ease",height:"380px"},children:[(0,d.jsxs)("div",{className:"absolute inset-0 rounded-xl overflow-hidden border",style:{backfaceVisibility:"hidden",borderColor:"var(--border)",boxShadow:"var(--shadow-lg)"},children:[(0,d.jsx)("div",{className:"absolute inset-0",style:{background:`linear-gradient(160deg, ${function(a,b){let c=parseInt(a.replace("#",""),16),d=Math.max(0,(c>>16)-Math.round((c>>16)*.25)),e=Math.max(0,(c>>8&255)-Math.round((c>>8&255)*b)),f=Math.max(0,(255&c)-Math.round((255&c)*b));return`#${(d<<16|e<<8|f).toString(16).padStart(6,"0")}`}(c.bannerColor,.25)} 0%, ${c.bannerColor} 50%, ${function(a,b){let c=parseInt(a.replace("#",""),16),d=Math.min(255,(c>>16)+Math.round((255-(c>>16))*.2)),e=Math.min(255,(c>>8&255)+Math.round((255-(c>>8&255))*b)),f=Math.min(255,(255&c)+Math.round((255-(255&c))*b));return`#${(d<<16|e<<8|f).toString(16).padStart(6,"0")}`}(c.bannerColor,.2)} 100%)`}}),(0,d.jsxs)("div",{className:"relative h-full flex flex-col items-center justify-center px-4",children:[(0,d.jsx)("div",{className:"w-20 h-20 rounded-xl overflow-hidden border-2 mb-3",style:{borderColor:"rgba(255,255,255,0.3)"},children:c.avatarUrl?(0,d.jsx)("img",{src:c.avatarUrl,alt:"Avatar",className:"w-full h-full object-cover"}):(0,d.jsx)("div",{className:"w-full h-full flex items-center justify-center text-2xl font-bold",style:{backgroundColor:"rgba(0,0,0,0.2)",color:"#fff"},children:f})}),(0,d.jsx)("h3",{className:"text-base font-semibold text-white drop-shadow-sm",children:c.name||"Anonymous Tester"}),(0,d.jsx)("p",{className:"text-xs mt-0.5 text-white/70",children:c.role||"No role set"}),(0,d.jsxs)("div",{className:"flex items-center gap-4 mt-4",children:[(0,d.jsx)(r,{value:g.projects,label:"Projects"}),(0,d.jsx)("div",{className:"w-px h-6 bg-white/20"}),(0,d.jsx)(r,{value:g.testCases,label:"Cases"}),(0,d.jsx)("div",{className:"w-px h-6 bg-white/20"}),(0,d.jsx)(r,{value:`${g.passRate}%`,label:"Pass"})]}),(0,d.jsx)("button",{onClick:()=>i(!0),className:"mt-5 px-4 py-1.5 text-[11px] font-medium rounded-full transition-colors",style:{backgroundColor:"rgba(255,255,255,0.2)",color:"#fff"},children:"View stats"}),(0,d.jsx)("button",{onClick:()=>k(!0),className:"mt-2 px-4 py-1.5 text-[11px] font-medium rounded-full transition-colors",style:{backgroundColor:"rgba(255,255,255,0.1)",color:"rgba(255,255,255,0.7)"},children:"Get reward for my hardwork"})]})]}),(0,d.jsx)("div",{className:"absolute inset-0 rounded-xl overflow-hidden border",style:{backfaceVisibility:"hidden",transform:"rotateY(180deg)",borderColor:"var(--border)",backgroundColor:"var(--bg-card)",boxShadow:"var(--shadow-lg)"},children:(0,d.jsxs)("div",{className:"h-full flex flex-col",children:[(0,d.jsxs)("div",{className:"px-4 py-3 border-b flex items-center justify-between",style:{borderColor:"var(--border)"},children:[(0,d.jsx)("span",{className:"text-xs font-semibold",style:{color:"var(--text-primary)"},children:"Statistics"}),(0,d.jsx)("button",{onClick:()=>i(!1),className:"text-[10px] px-2 py-0.5 rounded border transition-colors hover:bg-[var(--bg-secondary)]",style:{color:"var(--text-tertiary)",borderColor:"var(--border)"},children:"Back"})]}),(0,d.jsxs)("div",{className:"flex-1 overflow-auto p-4 space-y-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-1.5",children:[(0,d.jsx)("span",{className:"text-[10px] uppercase tracking-wider",style:{color:"var(--text-tertiary)"},children:"Pass Rate"}),(0,d.jsxs)("span",{className:"text-sm font-semibold",style:{color:g.passRate>=80?"var(--status-pass-text)":g.passRate>=50?"var(--status-skip-text)":"var(--status-fail-text)"},children:[g.passRate,"%"]})]}),(0,d.jsx)("div",{className:"h-1.5 rounded-full overflow-hidden",style:{backgroundColor:"var(--bg-secondary)"},children:(0,d.jsx)("div",{className:"h-full rounded-full",style:{width:`${g.passRate}%`,backgroundColor:g.passRate>=80?"var(--status-pass-text)":g.passRate>=50?"var(--status-skip-text)":"var(--status-fail-text)"}})})]}),(0,d.jsxs)("div",{className:"grid grid-cols-4 gap-1.5",children:[(0,d.jsx)(s,{label:"Pass",value:g.pass,color:"var(--status-pass-text)"}),(0,d.jsx)(s,{label:"Fail",value:g.fail,color:"var(--status-fail-text)"}),(0,d.jsx)(s,{label:"Skip",value:g.skip,color:"var(--status-skip-text)"}),(0,d.jsx)(s,{label:"Blocked",value:g.blocked,color:"var(--status-blocked-text)"}),(0,d.jsx)(s,{label:"New",value:g.untested})]}),(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)(t,{label:"Test Cases",value:g.testCases}),(0,d.jsx)(t,{label:"Flow Nodes",value:g.nodes}),(0,d.jsx)(t,{label:"Edges",value:g.edges}),(0,d.jsx)(t,{label:"Projects",value:g.projects})]}),(0,d.jsxs)("button",{onClick:m,className:"w-full px-3 py-2 text-[11px] font-medium rounded-lg border transition-colors hover:bg-[var(--bg-secondary)] flex items-center justify-center gap-1.5",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:[(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,d.jsx)("path",{d:"M4 12v8a2 2 0 002 2h12a2 2 0 002-2v-8"}),(0,d.jsx)("polyline",{points:"16 6 12 2 8 6"}),(0,d.jsx)("line",{x1:"12",y1:"2",x2:"12",y2:"15"})]}),"Share"]})]})]})})]}),(0,d.jsx)("button",{onClick:b,className:"w-full mt-2 px-3 py-2 text-[11px] font-medium rounded-lg border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)",backgroundColor:"var(--bg-card)"},children:"Close"})]}),j&&(0,d.jsx)("div",{className:"fixed inset-0 z-[500] flex items-center justify-center",style:{backgroundColor:"rgba(0,0,0,0.4)",animation:"fadeIn 150ms ease-out"},onClick:()=>k(!1),children:(0,d.jsxs)("div",{className:"w-full max-w-sm mx-4 rounded-xl border overflow-hidden",style:{backgroundColor:"var(--bg-card)",borderColor:"var(--border)",boxShadow:"var(--shadow-lg)",animation:"fadeInUp 200ms ease-out"},onClick:a=>a.stopPropagation(),children:[(0,d.jsxs)("div",{className:"px-6 pt-6 pb-4 text-center",children:[(0,d.jsx)("div",{className:"w-14 h-14 mx-auto mb-4 rounded-full flex items-center justify-center",style:{backgroundColor:"var(--status-skip-bg)"},children:(0,d.jsx)("svg",{width:"28",height:"28",viewBox:"0 0 24 24",fill:"none",stroke:"var(--status-skip-text)",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:(0,d.jsx)("path",{d:"M12 2L15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"})})}),(0,d.jsx)("h3",{className:"text-base font-semibold mb-2",style:{color:"var(--text-primary)"},children:"Premium Feature"}),(0,d.jsxs)("p",{className:"text-xs leading-relaxed mb-4",style:{color:"var(--text-secondary)"},children:["Getting rewards for your hardwork is only available for ",(0,d.jsx)("strong",{children:"Premium Users"}),". To upgrade, please transfer to the following VA:"]}),(0,d.jsxs)("div",{className:"px-4 py-3 rounded-lg border mb-4",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-secondary)"},children:[(0,d.jsx)("p",{className:"text-[10px] uppercase tracking-wider mb-1",style:{color:"var(--text-tertiary)"},children:"Virtual Account"}),(0,d.jsx)("p",{className:"text-sm font-mono font-semibold",style:{color:"var(--text-primary)"},children:"0895 332 333 587"}),(0,d.jsx)("p",{className:"text-[10px] mt-1",style:{color:"var(--text-tertiary)"},children:"a/n Qois Ramadhani"})]}),(0,d.jsx)("p",{className:"text-[10px] italic",style:{color:"var(--text-tertiary)"},children:"*This is a joke. Please don't actually transfer. Or do. I won't stop you."})]}),(0,d.jsx)("div",{className:"px-6 pb-5",children:(0,d.jsx)("button",{onClick:()=>k(!1),className:"w-full px-3 py-2.5 text-xs font-medium rounded-lg border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:"Fine, I'll keep working for free"})})]})})]})}function r({value:a,label:b}){return(0,d.jsxs)("div",{className:"text-center",children:[(0,d.jsx)("div",{className:"text-sm font-semibold text-white",children:a}),(0,d.jsx)("div",{className:"text-[9px] uppercase tracking-wider text-white/60",children:b})]})}function s({label:a,value:b,color:c}){return(0,d.jsxs)("div",{className:"py-2 rounded-lg text-center",style:{backgroundColor:"var(--bg-secondary)"},children:[(0,d.jsx)("div",{className:"text-sm font-medium",style:{color:c??"var(--text-secondary)"},children:b}),(0,d.jsx)("div",{className:"text-[8px] uppercase tracking-wider",style:{color:"var(--text-tertiary)"},children:a})]})}function t({label:a,value:b}){return(0,d.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 rounded-lg",style:{backgroundColor:"var(--bg-secondary)"},children:[(0,d.jsx)("span",{className:"text-[11px]",style:{color:"var(--text-tertiary)"},children:a}),(0,d.jsx)("span",{className:"text-xs font-medium",style:{color:"var(--text-primary)"},children:b})]})}var u=c(64271);function v(){let{projects:a,activeProject:b,activeProjectId:c,profile:h,profileInitials:k,setProfileName:l,setProfileBannerColor:m,setProfileAvatarUrl:n,setProfileRole:o}=(0,g.M)(),{logout:r}=(0,j.A)(),s=(0,f.useRouter)(),t=(0,f.usePathname)(),{startProgress:v,completeProgress:x}=(0,u.p1)(),[y,z]=(0,e.useState)(!1),[A,B]=(0,e.useState)(!1),C=Object.values(a),D=(0,e.useMemo)(()=>{let a=C.flatMap(a=>Object.values(a.testCases).flat()),b=a.length,c=a.filter(a=>"pass"===a.status).length,d=a.filter(a=>"fail"===a.status).length,e=a.filter(a=>"skip"===a.status).length,f=a.filter(a=>"untested"===a.status).length,g=a.filter(a=>"blocked"===a.status).length,h=C.reduce((a,b)=>a+b.flows.length,0),i=C.reduce((a,b)=>a+(b.edges??[]).length,0),j=b-e,k=j>0?Math.round(c/j*100):0;return{projects:C.length,testCases:b,passRate:k,nodes:h,edges:i,pass:c,fail:d,skip:e,untested:f,blocked:g}},[C]),E=t.startsWith("/integrations")?"integrations":"projects";return(0,d.jsxs)("header",{className:"flex flex-col border-b flex-shrink-0 relative",style:{backgroundColor:"var(--bg-card)",borderColor:"var(--border)"},children:[(0,d.jsx)("div",{className:"absolute inset-0 overflow-hidden flex items-center justify-center pointer-events-none group/duck",children:(0,d.jsx)("img",{src:"https://static.vecteezy.com/system/resources/thumbnails/067/162/149/small/cute-duck-meme-sticker-transparent-cute-illustration-free-png.png",alt:"",className:"h-[85%] object-contain select-none transition-all duration-300 group-hover/duck:scale-110 group-hover/duck:opacity-[0.15] cursor-pointer",style:{opacity:.09,pointerEvents:"auto"},onClick:()=>s.push("/projects"),title:"Quack! \uD83E\uDD86"})}),(0,d.jsxs)("div",{className:"relative z-10 flex items-center justify-between px-6 py-2.5",children:[(0,d.jsx)("div",{className:"flex items-center gap-3",children:(0,d.jsxs)(i(),{href:"/projects",className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"w-8 h-8 rounded-md overflow-hidden bg-white flex-shrink-0",style:{boxShadow:"0 1px 4px rgba(0,0,0,0.08)"},children:(0,d.jsx)("img",{src:"https://static.vecteezy.com/system/resources/thumbnails/067/162/149/small/cute-duck-meme-sticker-transparent-cute-illustration-free-png.png",alt:"Logo",width:32,height:32,className:"w-full h-full object-contain"})}),(0,d.jsx)("span",{className:"shimmer-text text-sm font-bold tracking-wide select-none",style:{background:"linear-gradient(90deg, var(--text-primary) 0%, var(--text-primary) 40%, #FFD54F 50%, var(--text-primary) 60%, var(--text-primary) 100%)",backgroundSize:"200% 100%",WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent",backgroundClip:"text",animation:"shimmerText 3s ease-in-out infinite"},children:"Test Lah!"})]})}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("button",{onClick:()=>z(!0),className:"hidden md:block px-3 py-1.5 text-[11px] font-medium rounded-md border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:"My Card"}),(0,d.jsx)("div",{className:"hidden md:block w-px h-5 mx-0.5",style:{backgroundColor:"var(--border)"}}),(0,d.jsx)("div",{className:"relative z-[60]",children:(0,d.jsx)(p,{profile:h,initials:k,onSetName:l,onSetBannerColor:m,onSetAvatarUrl:n,onSetRole:o})}),(0,d.jsx)("button",{onClick:()=>{B(!0)},className:"w-8 h-8 flex items-center justify-center text-xs rounded-md border transition-colors hover:bg-[var(--bg-secondary)] hover:border-[var(--status-fail-text)]",style:{borderColor:"var(--border)",color:"var(--text-tertiary)"},title:"Logout",children:(0,d.jsx)("svg",{width:"14",height:"14",viewBox:"0 0 14 14",fill:"none",children:(0,d.jsx)("path",{d:"M5 2H3.5A1.5 1.5 0 002 3.5v7A1.5 1.5 0 003.5 12H5M9 10l3-3-3-3M6 7h6",stroke:"currentColor",strokeWidth:"1.3",strokeLinecap:"round",strokeLinejoin:"round"})})})]})]}),(0,d.jsxs)("div",{className:"relative z-10 flex items-center gap-1 px-6",children:[(0,d.jsx)(w,{label:"All Projects",href:"/projects",icon:(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 14 14",fill:"none",children:[(0,d.jsx)("rect",{x:"1",y:"1",width:"5",height:"5",rx:"1",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,d.jsx)("rect",{x:"8",y:"1",width:"5",height:"5",rx:"1",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,d.jsx)("rect",{x:"1",y:"8",width:"5",height:"5",rx:"1",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,d.jsx)("rect",{x:"8",y:"8",width:"5",height:"5",rx:"1",stroke:"currentColor",strokeWidth:"1.2",fill:"none"})]}),active:"projects"===E}),(0,d.jsx)(w,{label:"Integrations",href:"/integrations",icon:(0,d.jsxs)("svg",{width:"12",height:"12",viewBox:"0 0 14 14",fill:"none",children:[(0,d.jsx)("circle",{cx:"5",cy:"5",r:"2.5",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,d.jsx)("circle",{cx:"9",cy:"9",r:"2.5",stroke:"currentColor",strokeWidth:"1.2",fill:"none"}),(0,d.jsx)("path",{d:"M7.5 5.5L6.5 8.5",stroke:"currentColor",strokeWidth:"1.2",strokeLinecap:"round"})]}),active:"integrations"===E})]}),(0,d.jsx)(q,{open:y,onClose:()=>z(!1),profile:h,initials:k,stats:D}),A&&(0,d.jsx)("div",{className:"fixed inset-0 z-[400] flex items-center justify-center",style:{backgroundColor:"rgba(0,0,0,0.4)",animation:"fadeIn 150ms ease-out"},onClick:()=>B(!1),children:(0,d.jsxs)("div",{className:"w-full max-w-sm mx-4 rounded-xl border overflow-hidden",style:{backgroundColor:"var(--bg-card)",borderColor:"var(--border)",boxShadow:"var(--shadow-lg)",animation:"fadeInUp 200ms ease-out"},onClick:a=>a.stopPropagation(),children:[(0,d.jsx)("div",{className:"px-6 pt-5 pb-2 text-center border-b overflow-hidden",style:{borderColor:"var(--border)",background:"linear-gradient(135deg, #FCEAEA 0%, #F5D0D0 50%, #FCEAEA 100%)"},children:(0,d.jsx)("h3",{className:"text-sm font-semibold",style:{color:"var(--status-fail-text)"},children:"Where are you going? ծ_\xd4"})}),(0,d.jsxs)("div",{className:"px-6 pt-4 pb-4 text-center",children:[(0,d.jsx)("div",{className:"w-32 h-32 mx-auto mb-4 rounded-lg overflow-hidden",children:(0,d.jsx)("img",{src:"https://i.ytimg.com/vi/EcMlX_36gjs/mqdefault.jpg",alt:"Suspicious dog",className:"w-full h-full object-cover"})}),(0,d.jsx)("h3",{className:"text-base font-semibold mb-2",style:{color:"var(--text-primary)"},children:'Are you taking a "sick leave" again?'}),(0,d.jsx)("p",{className:"text-xs leading-relaxed",style:{color:"var(--text-tertiary)"},children:"We both know you're not coming back."})]}),(0,d.jsxs)("div",{className:"px-6 pb-3 flex gap-2",children:[(0,d.jsx)("button",{onClick:()=>B(!1),className:"flex-1 px-3 py-2.5 text-xs font-medium rounded-lg transition-opacity hover:opacity-80",style:{backgroundColor:"var(--accent)",color:"var(--bg-primary)"},children:"Cancel, I love my job"}),(0,d.jsx)("button",{onClick:()=>{B(!1),v("Logging out..."),r(),setTimeout(()=>{x("Logged out!"),s.push("/login")},500)},className:"flex-1 px-3 py-2.5 text-xs font-medium rounded-lg border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--status-fail-text)"},children:"Quit my job"})]}),(0,d.jsx)("div",{className:"px-6 pb-5 text-center",children:(0,d.jsxs)("p",{className:"text-[10px]",style:{color:"var(--text-tertiary)"},children:["Contact"," ",(0,d.jsxs)("span",{className:"relative inline-block group/nathan",children:[(0,d.jsx)("a",{href:"https://t.me/nathanaeliman",target:"_blank",rel:"noopener noreferrer",className:"underline cursor-pointer font-medium",style:{color:"var(--accent)"},children:"the best QA"}),(0,d.jsxs)("span",{className:"absolute bottom-full left-1/2 -translate-x-1/2 mb-1.5 rounded-lg overflow-hidden opacity-0 group-hover/nathan:opacity-100 transition-opacity pointer-events-none",style:{boxShadow:"0 4px 16px rgba(0,0,0,0.2)",width:120,height:120},children:[(0,d.jsx)("img",{src:"https://media.licdn.com/dms/image/v2/D5603AQHBu4wrzFWoTw/profile-displayphoto-crop_800_800/B56Zq.Sy6LKsAI-/0/1764129191465?e=1782345600&v=beta&t=79y6xLivwcpvwy53sy1TuVopK4FMp6O8uAu7QxlIxDo",alt:"Nathan",className:"w-full h-full object-cover"}),(0,d.jsx)("span",{className:"absolute top-full left-1/2 -translate-x-1/2 w-0 h-0",style:{borderLeft:"6px solid transparent",borderRight:"6px solid transparent",borderTop:"6px solid var(--bg-card)"}})]})]})," ","to do my job instead"]})})]})})]})}function w({label:a,icon:b,active:c,href:e,badge:f}){return(0,d.jsxs)(i(),{href:e,className:"flex items-center gap-2 px-3 py-2 text-xs font-medium rounded-t-md transition-colors relative",style:{color:c?"var(--accent)":"var(--text-tertiary)",backgroundColor:c?"var(--bg-secondary)":"transparent"},children:[b,a,f&&(0,d.jsx)("span",{className:"ml-1 px-1.5 py-0.5 text-[9px] font-semibold rounded-full leading-none",style:{backgroundColor:c?"var(--accent)":"var(--bg-secondary)",color:c?"#fff":"var(--text-tertiary)"},children:f}),c&&(0,d.jsx)("div",{className:"absolute bottom-0 left-2 right-2 h-0.5 rounded-t-full",style:{backgroundColor:"var(--accent)"}})]})}var x=c(42423);function y({children:a}){(0,f.useRouter)();let{isLoggedIn:b,loaded:c}=(0,j.A)();return c?b?(0,d.jsx)(d.Fragment,{children:a}):null:(0,d.jsx)("div",{className:"h-screen flex items-center justify-center",style:{backgroundColor:"var(--bg-primary)"},children:(0,d.jsx)("div",{className:"text-sm",style:{color:"var(--text-tertiary)"},children:"Loading..."})})}function z(){let{undo:a,redo:b,canUndo:c,canRedo:d}=(0,g.M)();return null}function A({children:a}){let{dialog:b}=(0,g.M)();return(0,d.jsxs)(d.Fragment,{children:[a,(0,d.jsx)(x.q,{dialog:b})]})}function B({children:a}){return(0,d.jsx)(y,{children:(0,d.jsx)(g.q,{children:(0,d.jsx)(A,{children:(0,d.jsxs)("div",{className:"h-screen flex flex-col",style:{backgroundColor:"var(--bg-primary)"},children:[(0,d.jsx)(z,{}),(0,d.jsx)(v,{}),(0,d.jsx)("div",{className:"flex-1 min-h-0",children:a})]})})})})}},26239:(a,b,c)=>{"use strict";c.d(b,{Providers:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call Providers() from the server but Providers 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.")},"/home/sltr91025/code-repository/open-source/test-lah/src/components/shared/Providers.tsx","Providers")},34776:(a,b,c)=>{"use strict";c.d(b,{A:()=>f});var d=c(38301);function e(a){try{sessionStorage.setItem("qa-auth",JSON.stringify(a))}catch{}}function f(){let[a,b]=(0,d.useState)({name:"",isLoggedIn:!1}),[c,f]=(0,d.useState)(!1),g=(0,d.useCallback)(a=>{let c={name:a,isLoggedIn:!0};e(c),b(c)},[]),h=(0,d.useCallback)(()=>{let a={name:"",isLoggedIn:!1};e(a),b(a)},[]);return{...a,loaded:c,login:g,logout:h}}},35473:(a,b,c)=>{"use strict";c.d(b,{Providers:()=>f});var d=c(21124),e=c(64271);function f({children:a}){return(0,d.jsx)(e.Vx,{children:a})}},37687:(a,b,c)=>{Promise.resolve().then(c.bind(c,26239))},42423:(a,b,c)=>{"use strict";c.d(b,{q:()=>g,s:()=>f});var d=c(21124),e=c(38301);function f(){let[a,b]=(0,e.useState)(null),c=(0,e.useCallback)((a,c)=>new Promise(d=>{b({type:"alert",title:a,message:c,resolve:()=>{b(null),d()}})}),[]);return{dialog:a,alert:c,confirm:(0,e.useCallback)((a,c)=>new Promise(d=>{b({type:"confirm",title:a,message:c,resolve:a=>{b(null),d(!0===a)}})}),[]),prompt:(0,e.useCallback)((a,c,d="")=>new Promise(e=>{b({type:"prompt",title:a,message:c,defaultValue:d,resolve:a=>{b(null),e("string"==typeof a?a:null)}})}),[])}}function g({dialog:a}){let[b,c]=(0,e.useState)(""),f=(0,e.useRef)(null);return a?(0,d.jsx)("div",{className:"fixed inset-0 z-[400] flex items-center justify-center",style:{backgroundColor:"rgba(0,0,0,0.3)",animation:"fadeIn 150ms ease-out"},onClick:()=>a.resolve("prompt"===a.type&&null),children:(0,d.jsx)("div",{className:"relative w-full max-w-sm mx-4",onClick:a=>a.stopPropagation(),children:(0,d.jsx)("div",{className:"p-[2px] rounded-xl overflow-hidden",style:{background:"linear-gradient(135deg, #9E7AFF 0%, #FE8BBB 50%, #9E7AFF 100%)",backgroundSize:"200% 200%",animation:"borderShine 3s linear infinite"},children:(0,d.jsxs)("div",{className:"rounded-[10px] p-5",style:{backgroundColor:"var(--bg-card)",boxShadow:"var(--shadow-xl)"},children:[(0,d.jsx)("h3",{className:"text-sm font-semibold mb-2",style:{color:"var(--text-primary)"},children:a.title}),(0,d.jsx)("p",{className:"text-xs mb-4",style:{color:"var(--text-secondary)"},children:a.message}),"prompt"===a.type&&(0,d.jsx)("input",{ref:f,value:b,onChange:a=>c(a.target.value),onKeyDown:c=>{"Enter"===c.key&&a.resolve(b.trim()||null)},className:"w-full px-3 py-2 text-sm rounded-lg border outline-none transition-colors focus:border-[var(--accent)] mb-4",style:{borderColor:"var(--border)",backgroundColor:"var(--bg-secondary)",color:"var(--text-primary)"},placeholder:"Enter value..."}),(0,d.jsxs)("div",{className:"flex gap-2 justify-end",children:["alert"!==a.type&&(0,d.jsx)("button",{onClick:()=>a.resolve("prompt"===a.type&&null),className:"px-3 py-1.5 text-xs font-medium rounded-lg border transition-colors hover:bg-[var(--bg-secondary)]",style:{borderColor:"var(--border)",color:"var(--text-secondary)"},children:"Cancel"}),(0,d.jsx)("button",{onClick:()=>{"confirm"===a.type?a.resolve(!0):"prompt"===a.type?a.resolve(b.trim()||null):a.resolve(null)},className:"px-3 py-1.5 text-xs font-medium rounded-lg transition-opacity hover:opacity-80",style:{backgroundColor:"var(--accent)",color:"var(--bg-primary)"},children:"confirm"===a.type?"Confirm":"OK"})]})]})})})}):null}},44309:(a,b,c)=>{Promise.resolve().then(c.bind(c,22048))},51472:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>i,metadata:()=>h});var d=c(75338),e=c(76555),f=c.n(e);c(61135);var g=c(26239);let h={title:"Test Lah!",description:"Test Lah! — Your Boss's Favorite QA Tool",icons:{icon:"/favicon.ico"}};function i({children:a}){return(0,d.jsx)("html",{lang:"en",children:(0,d.jsx)("body",{className:f().variable,style:{fontFamily:"Inter, system-ui, sans-serif"},children:(0,d.jsx)(g.Providers,{children:a})})})}},61135:()=>{},64271:(a,b,c)=>{"use strict";c.d(b,{Vx:()=>h,p1:()=>g});var d=c(21124),e=c(38301);let f=(0,e.createContext)(null);function g(){let a=(0,e.useContext)(f);if(!a)throw Error("useProgress must be used within ProgressProvider");return a}function h({children:a}){let[b,c]=(0,e.useState)(0),[g,h]=(0,e.useState)(""),[i,j]=(0,e.useState)(!1),k=(0,e.useRef)(null),l=(0,e.useRef)(null),m=(0,e.useCallback)(()=>{k.current&&(clearInterval(k.current),k.current=null),l.current&&(clearTimeout(l.current),l.current=null)},[]),n=(0,e.useCallback)(()=>{j(!1),c(0),h("")},[]),o=(0,e.useCallback)(a=>{m(),c(0),h(a||""),j(!0),k.current=setInterval(()=>{c(a=>a>=90?(k.current&&clearInterval(k.current),k.current=null,90):a+15*Math.random())},300),l.current=setTimeout(()=>{n()},8e3)},[m,n]),p=(0,e.useCallback)((a,b)=>{c(Math.min(95,a)),b&&h(b)},[]),q=(0,e.useCallback)(a=>{m(),c(100),a&&h(a),setTimeout(()=>{n()},500)},[m,n]),r=(0,e.useCallback)(()=>{m(),n()},[m,n]);return(0,d.jsxs)(f.Provider,{value:{startProgress:o,updateProgress:p,completeProgress:q,cancelProgress:r,isProgressing:i},children:[a,(0,d.jsxs)("div",{className:"fixed bottom-0 left-0 right-0 z-[600] transition-all duration-300 ease-out",style:{opacity:+!!i,transform:i?"translateY(0)":"translateY(100%)",pointerEvents:i?"auto":"none"},children:[(0,d.jsx)("div",{className:"h-1 w-full",style:{backgroundColor:"var(--bg-secondary)"},children:(0,d.jsx)("div",{className:"h-full transition-all duration-200 ease-out",style:{width:`${b}%`,backgroundColor:b>=100?"var(--status-pass-text)":"var(--accent)",boxShadow:b>=100?"0 0 10px var(--status-pass-text)":"none"}})}),g&&(0,d.jsxs)("div",{className:"flex items-center justify-center py-2 px-4 text-xs font-medium cursor-pointer",onClick:r,style:{backgroundColor:"var(--bg-card)",color:b>=100?"var(--status-pass-text)":"var(--text-secondary)",borderTop:"1px solid var(--border)"},children:[b>=100&&(0,d.jsx)("svg",{className:"mr-2",width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",children:(0,d.jsx)("path",{d:"M2 6l3 3 5-5",stroke:"var(--status-pass-text)",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})}),g]})]})]})}},66688:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,54160,23)),Promise.resolve().then(c.t.bind(c,31603,23)),Promise.resolve().then(c.t.bind(c,68495,23)),Promise.resolve().then(c.t.bind(c,75170,23)),Promise.resolve().then(c.t.bind(c,77526,23)),Promise.resolve().then(c.t.bind(c,78922,23)),Promise.resolve().then(c.t.bind(c,29234,23)),Promise.resolve().then(c.t.bind(c,12263,23)),Promise.resolve().then(c.bind(c,82146))},66877:(a,b,c)=>{"use strict";c.d(b,{q:()=>n,M:()=>o});var d=c(21124),e=c(38301);function f(a,b){let[c,d]=(0,e.useState)(()=>b),[f,g]=(0,e.useState)(null),h=(0,e.useRef)(null);return[c,(0,e.useCallback)(a=>{d(b=>{let c=a instanceof Function?a(b):a;return h.current&&clearTimeout(h.current),h.current=setTimeout(()=>{g(new Date().toISOString())},300),c})},[a]),f]}var g=c(19188);let h={projects:{},activeProjectId:null,selectedNodeId:null},i={name:"",bannerColor:"#64B5F6",avatarUrl:"",role:"QA Engineer"};function j(a){try{localStorage.setItem("qa-last-test-activity",new Date().toISOString());let b=localStorage.getItem("qa-project-activity"),c=b?JSON.parse(b):{};c[a]=new Date().toISOString(),localStorage.setItem("qa-project-activity",JSON.stringify(c))}catch{}}let k={baseUrl:"http://localhost:3000",browser:"chromium",headless:!0,timeout:3e4};var l=c(42423);let m=(0,e.createContext)(null);function n({children:a}){let b=function(){let[a,b,c]=f("qa-dashboard",h);(0,e.useRef)(!1),(0,e.useRef)(null);let d=(0,e.useCallback)((a,c)=>{let d=crypto.randomUUID(),e={id:d,name:a,type:c||"",notes:"",createdAt:new Date().toISOString(),flows:[],testCases:{},columnConfig:[...g._X],columnConfigs:{},edges:[],userProfile:{name:"",bannerColor:"#64B5F6"},nodeCounter:0,tcCounter:{}};return b(a=>({...a,projects:{...a.projects,[d]:e},activeProjectId:d,selectedNodeId:null})),d},[b]),i=(0,e.useCallback)(a=>{b(b=>{let{[a]:c,...d}=b.projects,e=Object.keys(d);return{...b,projects:d,activeProjectId:b.activeProjectId===a?e[0]??null:b.activeProjectId,selectedNodeId:b.activeProjectId===a?null:b.selectedNodeId}})},[b]),j=(0,e.useCallback)(a=>{b(b=>({...b,activeProjectId:a,selectedNodeId:null}))},[b]),k=(0,e.useCallback)((a,c)=>{b(b=>({...b,projects:{...b.projects,[a]:{...b.projects[a],name:c}}}))},[b]),l=(0,e.useCallback)(a=>{b(b=>{let c=b.projects[a];if(!c)return b;let d=crypto.randomUUID(),e=new Date().toISOString(),f={...JSON.parse(JSON.stringify(c)),id:d,name:`${c.name} (Copy)`,createdAt:e};return{...b,projects:{...b.projects,[d]:f},activeProjectId:d,selectedNodeId:null}})},[b]),m=(0,e.useCallback)(a=>{try{let c=JSON.parse(a);if(!c||"object"!=typeof c)return{ok:!1,error:"Invalid JSON"};if(!c.name||!c.flows)return{ok:!1,error:"Missing required fields (name, flows)"};let d=crypto.randomUUID(),e={id:d,name:c.name,createdAt:c.createdAt||new Date().toISOString(),flows:Array.isArray(c.flows)?c.flows:[],testCases:c.testCases&&"object"==typeof c.testCases?c.testCases:{},columnConfig:Array.isArray(c.columnConfig)?c.columnConfig:[...g._X],columnConfigs:c.columnConfigs&&"object"==typeof c.columnConfigs?c.columnConfigs:{},edges:Array.isArray(c.edges)?c.edges:[],userProfile:c.userProfile&&"object"==typeof c.userProfile?c.userProfile:{name:"",bannerColor:"#64B5F6"},nodeCounter:"number"==typeof c.nodeCounter?c.nodeCounter:0,tcCounter:c.tcCounter&&"object"==typeof c.tcCounter?c.tcCounter:{}};return b(a=>({...a,projects:{...a.projects,[d]:e},activeProjectId:d,selectedNodeId:null})),{ok:!0}}catch{return{ok:!1,error:"Failed to parse project file"}}},[b]),n=(0,e.useCallback)(a=>{b(b=>({...b,selectedNodeId:a}))},[b]),o=(0,e.useCallback)((a,c)=>{b(b=>({...b,projects:{...b.projects,[a]:c(b.projects[a])}}))},[b]),p=a.activeProjectId?a.projects[a.activeProjectId]??null:null;return{state:a,setState:b,projects:a.projects,activeProject:p,activeProjectId:a.activeProjectId,selectedNodeId:a.selectedNodeId,createProject:d,deleteProject:i,duplicateProject:l,importProject:m,switchProject:j,renameProject:k,setSelectedNodeId:n,updateProject:o,lastSaved:c}}(),c=function(){let[a,b]=f("qa-profile",i),c=a.name.split(" ").map(a=>a[0]).filter(Boolean).slice(0,2).join("").toUpperCase()||"?";return{profile:a,setName:a=>b(b=>({...b,name:a})),setBannerColor:a=>b(b=>({...b,bannerColor:a})),setAvatarUrl:a=>b(b=>({...b,avatarUrl:a})),setRole:a=>b(b=>({...b,role:a})),initials:c}}(),n=function(a,b){let[c,d]=(0,e.useState)([]),[f,g]=(0,e.useState)(-1),h=(0,e.useRef)(!1),i=(0,e.useCallback)(b=>{if(!a||h.current){h.current=!1;return}d(c=>{let d=[...c.slice(0,f+1),{label:b,projectSnapshot:JSON.parse(JSON.stringify(a))}];return d.length>50&&d.shift(),d}),g(a=>Math.min(a+1,49))},[a,f]),j=(0,e.useCallback)(()=>{if(f<0||!a)return;let d=c[f];d&&(h.current=!0,b(a.id,()=>d.projectSnapshot),g(a=>a-1))},[c,f,a,b]),k=(0,e.useCallback)(()=>{if(f>=c.length-1||!a)return;let d=c[f+1];d&&(h.current=!0,b(a.id,()=>d.projectSnapshot),g(a=>a+1))},[c,f,a,b]),l=f>=0;return{pushState:i,undo:j,redo:k,canUndo:l,canRedo:f<c.length-1,recentActions:c.slice(-10).map(a=>a.label).reverse()}}(b.activeProject,b.updateProject),o=function(a,b,c,d){let f=a?.flows??[],h=a?.edges??[],i=(0,e.useCallback)((c,e,f,h)=>{if(!a)return null;let i=crypto.randomUUID(),j="";return b(a.id,a=>{let b=(a.nodeCounter??0)+1,d=(e||"").trim().replace(/[^a-zA-Z0-9\s]/g,"").split(/\s+/).filter(a=>a.length>0),k="";k=d.length>=2?d[0].charAt(0).toUpperCase()+d[d.length-1].charAt(0).toUpperCase():1===d.length&&d[0].length>=2?d[0].charAt(0).toUpperCase()+d[0].charAt(d[0].length-1).toUpperCase():"N";let l=a.flows.map(a=>a.code),m=k,n=1;for(;l.includes(m);)m=k+String(++n);j=m;let o=(0,g.IU)(i,j,e,c);f&&(o.position=f),h&&(o.direction=h);let p=[...a.flows];if(c){let a=p.findIndex(a=>a.id===c);-1!==a&&(p[a]={...p[a],children:[...p[a].children,i]})}return p.push(o),{...a,flows:p,testCases:{...a.testCases,[i]:[]},nodeCounter:b}}),d(i),i},[a,b,d]),j=(0,e.useCallback)(e=>{if(!a)return;let f=new Set,g=b=>{f.add(b);let c=a.flows.find(a=>a.id===b);c?.children.forEach(g)};g(e),b(a.id,a=>{let b=a.flows.filter(a=>!f.has(a.id)).map(a=>({...a,children:a.children.filter(a=>!f.has(a))})),c={...a.testCases};f.forEach(a=>delete c[a]);let d=(a.edges??[]).filter(a=>!f.has(a.fromId)&&!f.has(a.toId));return{...a,flows:b,testCases:c,edges:d}}),f.has(c??"")&&d(null)},[a,b,c,d]),k=(0,e.useCallback)(e=>{if(!a||0===e.length)return;let f=new Set,g=b=>{f.add(b);let c=a.flows.find(a=>a.id===b);c?.children.forEach(g)};e.forEach(g),b(a.id,a=>{let b=a.flows.filter(a=>!f.has(a.id)).map(a=>({...a,children:a.children.filter(a=>!f.has(a))})),c={...a.testCases};f.forEach(a=>delete c[a]);let d=(a.edges??[]).filter(a=>!f.has(a.fromId)&&!f.has(a.toId));return{...a,flows:b,testCases:c,edges:d}}),f.has(c??"")&&d(null)},[a,b,c,d]),l=(0,e.useCallback)((c,d)=>{a&&b(a.id,a=>({...a,flows:a.flows.map(a=>a.id===c?{...a,label:d}:a)}))},[a,b]),m=(0,e.useCallback)((c,d)=>{a&&b(a.id,a=>({...a,flows:a.flows.map(a=>a.id===c?{...a,...d}:a)}))},[a,b]),n=(0,e.useCallback)(c=>{a&&b(a.id,a=>{let b=a.flows.find(a=>a.id===c);return b&&b.parentId?{...a,flows:a.flows.map(a=>a.id===c?{...a,parentId:null}:a.id===b.parentId?{...a,children:a.children.filter(a=>a!==c)}:a)}:a})},[a,b]),o=(0,e.useCallback)(a=>{d(a)},[d]),p=(0,e.useCallback)((c,d,e)=>{if(!a)return;let f={id:crypto.randomUUID(),fromId:c,toId:d,type:e};b(a.id,a=>({...a,edges:[...a.edges??[],f]}))},[a,b]),q=(0,e.useCallback)(c=>{a&&b(a.id,a=>({...a,edges:(a.edges??[]).filter(a=>a.id!==c)}))},[a,b]);return{nodes:f,edges:h,selectedNodeId:c,addNode:i,deleteNode:j,deleteNodes:k,unlinkNode:n,renameNode:l,updateNode:m,selectNode:o,addEdge:p,deleteEdge:q,updateEdge:(0,e.useCallback)((c,d)=>{a&&b(a.id,a=>({...a,edges:(a.edges??[]).map(a=>a.id===c?{...a,...d}:a)}))},[a,b]),resetLayout:(0,e.useCallback)(()=>{a&&b(a.id,a=>({...a,flows:a.flows.map(a=>({...a,position:null}))}))},[a,b])}}(b.activeProject,b.updateProject,b.selectedNodeId,b.setSelectedNodeId),p=function(a,b,c){let d=c&&a?a.testCases[c]??[]:[],f=function(a){let b=a.length,c=a.filter(a=>"pass"===a.status).length,d=a.filter(a=>"fail"===a.status).length,e=a.filter(a=>"skip"===a.status).length,f=a.filter(a=>"untested"===a.status).length,g=a.filter(a=>"blocked"===a.status).length,h=b-e,i=h>0?Math.round(c/h*100):0;return{total:b,pass:c,fail:d,skip:e,untested:f,blocked:g,passRate:i}}(d),h=(0,e.useCallback)((c,d,e,f)=>{a&&(b(a.id,a=>(function(a,b,c,d,e){let f=a.flows.find(a=>a.id===b),g=f?.code??"N000",h=a.testCases[b]??[],i={...a.tcCounter??{}},j=(i[b]??0)+1;i[b]=j;let k=`${g}-TC${String(j).padStart(3,"0")}`,l={id:crypto.randomUUID(),code:k,title:c,steps:d??"",expected:e??"",status:"untested",case_type:"General",notes:"",links:"",order:h.length};return{project:{...a,testCases:{...a.testCases,[b]:[...h,l]},tcCounter:i},testCase:l}})(a,c,d,e,f).project),j(a.id))},[a,b]),i=(0,e.useCallback)((c,d,e)=>{a&&(b(a.id,a=>({...a,testCases:{...a.testCases,[c]:(a.testCases[c]??[]).map(a=>a.id===d?{...a,...e}:a)}})),j(a.id))},[a,b]),k=(0,e.useCallback)((c,d)=>{a&&b(a.id,a=>({...a,testCases:{...a.testCases,[c]:(a.testCases[c]??[]).filter(a=>a.id!==d)}}))},[a,b]),l=(0,e.useCallback)((c,d)=>{a&&0!==d.length&&b(a.id,a=>(function(a,b,c){let d=new Set(c);return{...a,testCases:{...a.testCases,[b]:(a.testCases[b]??[]).filter(a=>!d.has(a.id))}}})(a,c,d))},[a,b]),m=(0,e.useCallback)((c,d,e)=>{a&&0!==d.length&&b(a.id,a=>(function(a,b,c,d){let e=new Set(c);return{...a,testCases:{...a.testCases,[b]:(a.testCases[b]??[]).map(a=>e.has(a.id)?{...a,...d}:a)}}})(a,c,d,e))},[a,b]),n=(0,e.useCallback)((c,d)=>{a&&b(a.id,a=>(function(a,b,c){let d=new Map((a.testCases[b]??[]).map(a=>[a.id,a])),e=c.map((a,b)=>{let c=d.get(a);return c?{...c,order:b}:null}).filter(a=>null!==a);return{...a,testCases:{...a.testCases,[b]:e}}})(a,c,d))},[a,b]),o=(0,e.useCallback)((c,d,e)=>{a&&b(a.id,a=>{let b={...a.columnConfigs??{}},f=b[c]??[...g._X];return b[c]=f.map(a=>a.key===d?{...a,label:e}:a),{...a,columnConfigs:b}})},[a,b]),p=(0,e.useCallback)((c,d)=>{a&&b(a.id,a=>{let b={...a.columnConfigs??{}},e=b[c]??[...g._X];return b[c]=e.map(a=>a.key===d?{...a,visible:!a.visible}:a),{...a,columnConfigs:b}})},[a,b]),q=(0,e.useCallback)((c,d)=>{if(!a)return;let e=d.toLowerCase().replace(/\s+/g,"_");b(a.id,a=>{let b={...a.columnConfigs??{}},f=b[c]??[...g._X];return b[c]=[...f,{key:e,label:d,visible:!0}],{...a,columnConfigs:b}})},[a,b]);return{testCases:d,stats:f,addTestCase:h,updateTestCase:i,deleteTestCase:k,bulkDeleteTestCases:l,bulkUpdateTestCases:m,reorderTestCases:n,updateColumnConfig:o,toggleColumnVisibility:p,addColumn:q,deleteColumn:(0,e.useCallback)((c,d)=>{a&&b(a.id,a=>{let b={...a.columnConfigs??{}},e=b[c]??[...g._X];return b[c]=e.filter(a=>a.key!==d),{...a,columnConfigs:b}})},[a,b]),reorderColumn:(0,e.useCallback)((c,d,e)=>{a&&b(a.id,a=>{let b={...a.columnConfigs??{}},f=[...b[c]??[...g._X]],h=f.findIndex(a=>a.key===d);if(-1===h)return a;let i="up"===e?h-1:h+1;if(i<0||i>=f.length)return a;let j=f[h];return f[h]=f[i],f[i]=j,b[c]=f,{...a,columnConfigs:b}})},[a,b])}}(b.activeProject,b.updateProject,b.selectedNodeId),q=function(a,b){let c=a?.id,d=(0,e.useMemo)(()=>a?.e2eData||{config:k,runs:[],savedScripts:[]},[a?.e2eData]),f=(0,e.useCallback)(a=>{c&&b(c,b=>({...b,e2eData:a(b.e2eData||{config:k,runs:[],savedScripts:[]})}))},[c,b]),g=(0,e.useCallback)(a=>{f(b=>({...b,config:{...b.config,...a}}))},[f]),h=(0,e.useCallback)(a=>{let b={...a,id:`run-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,timestamp:new Date().toISOString()};return f(a=>({...a,runs:[b,...a.runs].slice(0,20)})),b},[f]),i=(0,e.useCallback)(a=>{f(b=>({...b,runs:b.runs.filter(b=>b.id!==a)}))},[f]),j=(0,e.useCallback)(()=>{f(a=>({...a,runs:[]}))},[f]),l=(0,e.useCallback)((a,b,d,e)=>{f(f=>{let g=f.savedScripts.findIndex(b=>b.testCaseId===a),h={id:g>=0?f.savedScripts[g].id:`script-${Date.now()}`,projectId:c,testCaseId:a,title:b,code:d,script:e,updatedAt:new Date().toISOString()},i=[...f.savedScripts];return g>=0?i[g]=h:i.push(h),{...f,savedScripts:i}})},[c,f]),m=(0,e.useCallback)(a=>{f(b=>({...b,savedScripts:b.savedScripts.filter(b=>b.testCaseId!==a)}))},[f]),n=(0,e.useCallback)(a=>d.savedScripts.find(b=>b.testCaseId===a),[d.savedScripts]);return{config:d.config,runs:d.runs,savedScripts:d.savedScripts,saveConfig:g,saveRun:h,deleteRun:i,clearRuns:j,saveScript:l,deleteScript:m,getScript:n}}(b.activeProject,b.updateProject),r=(0,l.s)(),s=(0,e.useMemo)(()=>({projects:b.projects,activeProject:b.activeProject,activeProjectId:b.activeProjectId,selectedNodeId:b.selectedNodeId,createProject:b.createProject,deleteProject:b.deleteProject,duplicateProject:b.duplicateProject,importProject:b.importProject,switchProject:b.switchProject,renameProject:b.renameProject,setSelectedNodeId:b.setSelectedNodeId,updateProject:b.updateProject,profile:c.profile,profileInitials:c.initials,setProfileName:c.setName,setProfileBannerColor:c.setBannerColor,setProfileAvatarUrl:c.setAvatarUrl,setProfileRole:c.setRole,canUndo:n.canUndo,canRedo:n.canRedo,undo:n.undo,redo:n.redo,pushState:n.pushState,mindmap:o,testCases:p,e2e:q,dialog:r.dialog,alertDialog:r.alert,confirmDialog:r.confirm,promptDialog:r.prompt,lastSaved:b.lastSaved}),[b,c,n,o,p,q,r]);return(0,d.jsx)(m.Provider,{value:s,children:a})}function o(){let a=(0,e.useContext)(m);if(!a)throw Error("useDashboard must be used within DashboardProvider");return a}},70440:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(97523);let e=async a=>[{type:"image/x-icon",sizes:"350x350",url:(0,d.fillMetadataSegment)(".",await a.params,"favicon.ico")+""}]},90831:(a,b,c)=>{Promise.resolve().then(c.bind(c,35473))},97788:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/sltr91025/code-repository/open-source/test-lah/src/app/(dashboard)/layout.tsx\" from the server, but it's 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.")},"/home/sltr91025/code-repository/open-source/test-lah/src/app/(dashboard)/layout.tsx","default")}};
|