@nivora/matrix 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +3 -3
  3. package/.next/build-manifest.json +2 -2
  4. package/.next/prerender-manifest.json +3 -3
  5. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  6. package/.next/server/app/_global-error.html +2 -2
  7. package/.next/server/app/_global-error.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  13. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  14. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  15. package/.next/server/app/_not-found.html +1 -1
  16. package/.next/server/app/_not-found.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  20. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  21. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  22. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  23. package/.next/server/app/builder/page.js +11 -11
  24. package/.next/server/app/builder/page.js.nft.json +1 -1
  25. package/.next/server/app/builder/page_client-reference-manifest.js +1 -1
  26. package/.next/server/app/guide/page.js.nft.json +1 -1
  27. package/.next/server/app/guide/page_client-reference-manifest.js +1 -1
  28. package/.next/server/app/matrix/page.js.nft.json +1 -1
  29. package/.next/server/app/matrix/page_client-reference-manifest.js +1 -1
  30. package/.next/server/app/page.js.nft.json +1 -1
  31. package/.next/server/app/page_client-reference-manifest.js +1 -1
  32. package/.next/server/app/releases/[id]/page.js +16 -16
  33. package/.next/server/app/releases/[id]/page.js.nft.json +1 -1
  34. package/.next/server/app/releases/[id]/page_client-reference-manifest.js +1 -1
  35. package/.next/server/app/releases/page.js +3 -3
  36. package/.next/server/app/releases/page.js.nft.json +1 -1
  37. package/.next/server/app/releases/page_client-reference-manifest.js +1 -1
  38. package/.next/server/app/specs/[id]/page.js +2 -2
  39. package/.next/server/app/specs/[id]/page.js.nft.json +1 -1
  40. package/.next/server/app/specs/[id]/page_client-reference-manifest.js +1 -1
  41. package/.next/server/app-paths-manifest.json +3 -3
  42. package/.next/server/chunks/135.js +1 -1
  43. package/.next/server/chunks/530.js +1 -1
  44. package/.next/server/pages/404.html +1 -1
  45. package/.next/server/pages/500.html +2 -2
  46. package/.next/server/server-reference-manifest.js +1 -1
  47. package/.next/server/server-reference-manifest.json +1 -1
  48. package/.next/static/chunks/app/builder/{page-e10754eb65a4f784.js → page-29ef0d9ec753466c.js} +3 -3
  49. package/.next/static/chunks/app/releases/[id]/page-467d1893a4442eed.js +1 -0
  50. package/.next/static/chunks/app/releases/page-6fc2e948b934fbb5.js +1 -0
  51. package/.next/static/chunks/app/specs/[id]/page-b5f2c99269d194c4.js +1 -0
  52. package/README.md +220 -134
  53. package/bin/cli.js +37 -20
  54. package/bin/cli.ts +12 -12
  55. package/package.json +7 -2
  56. package/.next/diagnostics/build-diagnostics.json +0 -6
  57. package/.next/diagnostics/framework.json +0 -1
  58. package/.next/static/chunks/app/releases/[id]/page-d8069a1802686478.js +0 -1
  59. package/.next/static/chunks/app/releases/page-26a520d9789e69f5.js +0 -1
  60. package/.next/static/chunks/app/specs/[id]/page-7065af5d4d103f16.js +0 -1
  61. package/.next/trace-build +0 -1
  62. package/.next/types/app/builder/page.ts +0 -86
  63. package/.next/types/app/guide/page.ts +0 -86
  64. package/.next/types/app/layout.ts +0 -86
  65. package/.next/types/app/matrix/page.ts +0 -86
  66. package/.next/types/app/page.ts +0 -86
  67. package/.next/types/app/releases/[id]/page.ts +0 -86
  68. package/.next/types/app/releases/page.ts +0 -86
  69. package/.next/types/app/specs/[id]/page.ts +0 -86
  70. package/.next/types/package.json +0 -1
  71. package/.next/types/routes.d.ts +0 -63
  72. package/.next/types/validator.ts +0 -115
  73. /package/.next/static/{8ZUFcYHRSRlY1FYWZ33gH → p01ytei1EF9z6WCg6Sbk1}/_buildManifest.js +0 -0
  74. /package/.next/static/{8ZUFcYHRSRlY1FYWZ33gH → p01ytei1EF9z6WCg6Sbk1}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/specs/[id]/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"275":{"*":{"id":"696","name":"*","chunks":[],"async":false}},"484":{"*":{"id":"664","name":"*","chunks":[],"async":false}},"1304":{"*":{"id":"8059","name":"*","chunks":[],"async":false}},"2716":{"*":{"id":"2386","name":"*","chunks":[],"async":false}},"4581":{"*":{"id":"1335","name":"*","chunks":[],"async":false}},"4777":{"*":{"id":"2265","name":"*","chunks":[],"async":false}},"4815":{"*":{"id":"6872","name":"*","chunks":[],"async":false}},"6717":{"*":{"id":"3275","name":"*","chunks":[],"async":false}},"6869":{"*":{"id":"4661","name":"*","chunks":[],"async":false}},"7121":{"*":{"id":"5421","name":"*","chunks":[],"async":false}},"7123":{"*":{"id":"1921","name":"*","chunks":[],"async":false}},"7536":{"*":{"id":"3415","name":"*","chunks":[],"async":false}},"8169":{"*":{"id":"3291","name":"*","chunks":[],"async":false}},"8220":{"*":{"id":"6804","name":"*","chunks":[],"async":false}},"8500":{"*":{"id":"2116","name":"*","chunks":[],"async":false}},"8616":{"*":{"id":"4342","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/components/builtin/global-error.js":{"id":7123,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":7123,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/components/client-page.js":{"id":1304,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/components/client-page.js":{"id":1304,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/components/client-segment.js":{"id":8616,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/components/client-segment.js":{"id":8616,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":4777,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":4777,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/components/layout-router.js":{"id":7121,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/components/layout-router.js":{"id":7121,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4581,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4581,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/lib/framework/boundary-components.js":{"id":484,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":484,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":6869,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":6869,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/app-dir/link.js":{"id":8500,"name":"*","chunks":["500","static/chunks/500-b84d19d842172eba.js","385","static/chunks/app/specs/%5Bid%5D/page-7065af5d4d103f16.js"],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/app-dir/link.js":{"id":8500,"name":"*","chunks":["500","static/chunks/500-b84d19d842172eba.js","385","static/chunks/app/specs/%5Bid%5D/page-7065af5d4d103f16.js"],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/globals.css":{"id":1743,"name":"*","chunks":["500","static/chunks/500-b84d19d842172eba.js","177","static/chunks/app/layout-550e25f5579f1a32.js"],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/releases/releases-client.tsx":{"id":4815,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/matrix/client.tsx":{"id":2716,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/builder/builder-tabs.tsx":{"id":7536,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/specs/[id]/risk-detail-client.tsx":{"id":8220,"name":"*","chunks":["500","static/chunks/500-b84d19d842172eba.js","385","static/chunks/app/specs/%5Bid%5D/page-7065af5d4d103f16.js"],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/specs/[id]/scenario-list.tsx":{"id":8169,"name":"*","chunks":["500","static/chunks/500-b84d19d842172eba.js","385","static/chunks/app/specs/%5Bid%5D/page-7065af5d4d103f16.js"],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/specs/[id]/urs-detail-client.tsx":{"id":275,"name":"*","chunks":["500","static/chunks/500-b84d19d842172eba.js","385","static/chunks/app/specs/%5Bid%5D/page-7065af5d4d103f16.js"],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/releases/[id]/release-detail-client.tsx":{"id":6717,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/matthew/Code/github/p11o/machine/docs/src/":[],"/Users/matthew/Code/github/p11o/machine/docs/src/app/layout":[{"inlined":false,"path":"static/css/f29e518c867dffaa.css"}],"/Users/matthew/Code/github/p11o/machine/docs/src/app/page":[],"/Users/matthew/Code/github/p11o/machine/docs/src/app/specs/[id]/page":[]},"rscModuleMapping":{"275":{"*":{"id":"7250","name":"*","chunks":[],"async":false}},"484":{"*":{"id":"8562","name":"*","chunks":[],"async":false}},"1304":{"*":{"id":"5098","name":"*","chunks":[],"async":false}},"1743":{"*":{"id":"1135","name":"*","chunks":[],"async":false}},"2716":{"*":{"id":"7652","name":"*","chunks":[],"async":false}},"4581":{"*":{"id":"6237","name":"*","chunks":[],"async":false}},"4777":{"*":{"id":"3859","name":"*","chunks":[],"async":false}},"4815":{"*":{"id":"4618","name":"*","chunks":[],"async":false}},"6717":{"*":{"id":"9575","name":"*","chunks":[],"async":false}},"6869":{"*":{"id":"6675","name":"*","chunks":[],"async":false}},"7121":{"*":{"id":"8099","name":"*","chunks":[],"async":false}},"7123":{"*":{"id":"5547","name":"*","chunks":[],"async":false}},"7536":{"*":{"id":"1805","name":"*","chunks":[],"async":false}},"8169":{"*":{"id":"7831","name":"*","chunks":[],"async":false}},"8220":{"*":{"id":"9665","name":"*","chunks":[],"async":false}},"8500":{"*":{"id":"3318","name":"*","chunks":[],"async":false}},"8616":{"*":{"id":"7644","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
1
+ globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/specs/[id]/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"484":{"*":{"id":"664","name":"*","chunks":[],"async":false}},"1304":{"*":{"id":"8059","name":"*","chunks":[],"async":false}},"2716":{"*":{"id":"2386","name":"*","chunks":[],"async":false}},"2940":{"*":{"id":"2796","name":"*","chunks":[],"async":false}},"4491":{"*":{"id":"8737","name":"*","chunks":[],"async":false}},"4581":{"*":{"id":"1335","name":"*","chunks":[],"async":false}},"4777":{"*":{"id":"2265","name":"*","chunks":[],"async":false}},"5507":{"*":{"id":"8404","name":"*","chunks":[],"async":false}},"6869":{"*":{"id":"4661","name":"*","chunks":[],"async":false}},"7121":{"*":{"id":"5421","name":"*","chunks":[],"async":false}},"7123":{"*":{"id":"1921","name":"*","chunks":[],"async":false}},"8169":{"*":{"id":"3291","name":"*","chunks":[],"async":false}},"8384":{"*":{"id":"1536","name":"*","chunks":[],"async":false}},"8445":{"*":{"id":"579","name":"*","chunks":[],"async":false}},"8500":{"*":{"id":"2116","name":"*","chunks":[],"async":false}},"8616":{"*":{"id":"4342","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/components/builtin/global-error.js":{"id":7123,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":7123,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/components/client-page.js":{"id":1304,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/components/client-page.js":{"id":1304,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/components/client-segment.js":{"id":8616,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/components/client-segment.js":{"id":8616,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":4777,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":4777,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/components/layout-router.js":{"id":7121,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/components/layout-router.js":{"id":7121,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4581,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4581,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/lib/framework/boundary-components.js":{"id":484,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":484,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":6869,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":6869,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/client/app-dir/link.js":{"id":8500,"name":"*","chunks":["500","static/chunks/500-b84d19d842172eba.js","385","static/chunks/app/specs/%5Bid%5D/page-b5f2c99269d194c4.js"],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/node_modules/next/dist/esm/client/app-dir/link.js":{"id":8500,"name":"*","chunks":["500","static/chunks/500-b84d19d842172eba.js","385","static/chunks/app/specs/%5Bid%5D/page-b5f2c99269d194c4.js"],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/globals.css":{"id":1743,"name":"*","chunks":["500","static/chunks/500-b84d19d842172eba.js","177","static/chunks/app/layout-550e25f5579f1a32.js"],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/builder/builder-tabs.tsx":{"id":4491,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/matrix/client.tsx":{"id":2716,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/releases/releases-client.tsx":{"id":8445,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/releases/[id]/release-detail-client.tsx":{"id":2940,"name":"*","chunks":[],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/specs/[id]/risk-detail-client.tsx":{"id":5507,"name":"*","chunks":["500","static/chunks/500-b84d19d842172eba.js","385","static/chunks/app/specs/%5Bid%5D/page-b5f2c99269d194c4.js"],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/specs/[id]/scenario-list.tsx":{"id":8169,"name":"*","chunks":["500","static/chunks/500-b84d19d842172eba.js","385","static/chunks/app/specs/%5Bid%5D/page-b5f2c99269d194c4.js"],"async":false},"/Users/matthew/Code/github/p11o/machine/docs/src/app/specs/[id]/urs-detail-client.tsx":{"id":8384,"name":"*","chunks":["500","static/chunks/500-b84d19d842172eba.js","385","static/chunks/app/specs/%5Bid%5D/page-b5f2c99269d194c4.js"],"async":false}},"entryCSSFiles":{"/Users/matthew/Code/github/p11o/machine/docs/src/":[],"/Users/matthew/Code/github/p11o/machine/docs/src/app/layout":[{"inlined":false,"path":"static/css/f29e518c867dffaa.css"}],"/Users/matthew/Code/github/p11o/machine/docs/src/app/page":[],"/Users/matthew/Code/github/p11o/machine/docs/src/app/specs/[id]/page":[]},"rscModuleMapping":{"484":{"*":{"id":"8562","name":"*","chunks":[],"async":false}},"1304":{"*":{"id":"5098","name":"*","chunks":[],"async":false}},"1743":{"*":{"id":"1135","name":"*","chunks":[],"async":false}},"2716":{"*":{"id":"7652","name":"*","chunks":[],"async":false}},"2940":{"*":{"id":"9575","name":"*","chunks":[],"async":false}},"4491":{"*":{"id":"1805","name":"*","chunks":[],"async":false}},"4581":{"*":{"id":"6237","name":"*","chunks":[],"async":false}},"4777":{"*":{"id":"3859","name":"*","chunks":[],"async":false}},"5507":{"*":{"id":"9665","name":"*","chunks":[],"async":false}},"6869":{"*":{"id":"6675","name":"*","chunks":[],"async":false}},"7121":{"*":{"id":"8099","name":"*","chunks":[],"async":false}},"7123":{"*":{"id":"5547","name":"*","chunks":[],"async":false}},"8169":{"*":{"id":"7831","name":"*","chunks":[],"async":false}},"8384":{"*":{"id":"7250","name":"*","chunks":[],"async":false}},"8445":{"*":{"id":"4618","name":"*","chunks":[],"async":false}},"8500":{"*":{"id":"3318","name":"*","chunks":[],"async":false}},"8616":{"*":{"id":"7644","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
@@ -2,11 +2,11 @@
2
2
  "/_not-found/page": "app/_not-found/page.js",
3
3
  "/_global-error/page": "app/_global-error/page.js",
4
4
  "/favicon.ico/route": "app/favicon.ico/route.js",
5
- "/releases/page": "app/releases/page.js",
6
- "/matrix/page": "app/matrix/page.js",
7
5
  "/builder/page": "app/builder/page.js",
8
- "/specs/[id]/page": "app/specs/[id]/page.js",
6
+ "/matrix/page": "app/matrix/page.js",
7
+ "/releases/page": "app/releases/page.js",
9
8
  "/releases/[id]/page": "app/releases/[id]/page.js",
9
+ "/specs/[id]/page": "app/specs/[id]/page.js",
10
10
  "/guide/page": "app/guide/page.js",
11
11
  "/page": "app/page.js"
12
12
  }
@@ -1,4 +1,4 @@
1
- exports.id=135,exports.ids=[135],exports.modules={311:(a,b,c)=>{"use strict";c.d(b,{G0:()=>k,Lf:()=>j});var d=c(1787),e=c(9021),f=c(3873),g=c(1932);let h=(0,f.dirname)((0,g.fileURLToPath)("file:///Users/matthew/Code/github/p11o/machine/docs/src/lib/database/index.ts")),i=null;function j(){if(!i){let a=process.env.MACHINE_DB_PATH?process.env.MACHINE_DB_PATH:(0,f.join)(process.cwd(),"machine.db");(i=new d.Database(a,{create:!0})).exec("PRAGMA foreign_keys = ON"),function(){if(!i)return;let a=(0,f.join)(h,"schema.sql"),b=(0,e.readFileSync)(a,"utf-8");i.exec(b)}()}return i}function k(){return process.env.MACHINE_SPECS_DIR?process.env.MACHINE_SPECS_DIR:(0,f.join)(process.cwd(),"specs")}},440:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(8868);let e=async a=>[{type:"image/x-icon",sizes:"16x16",url:(0,d.fillMetadataSegment)(".",await a.params,"favicon.ico")+"?603d046c9a6fdfbb"}]},476:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,1921,23)),Promise.resolve().then(c.t.bind(c,8059,23)),Promise.resolve().then(c.t.bind(c,4342,23)),Promise.resolve().then(c.t.bind(c,2265,23)),Promise.resolve().then(c.t.bind(c,5421,23)),Promise.resolve().then(c.t.bind(c,1335,23)),Promise.resolve().then(c.t.bind(c,664,23)),Promise.resolve().then(c.bind(c,4661))},619:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,1921,23))},998:(a,b,c)=>{"use strict";c.d(b,{Nn:()=>q,x7:()=>o,I1:()=>l,Er:()=>j,Ey:()=>p,i7:()=>m,Lo:()=>k});var d=c(9021),e=c.n(d),f=c(3873),g=c.n(f),h=c(7390),i=c(311);function j(){return(0,i.Lf)().query(`
1
+ exports.id=135,exports.ids=[135],exports.modules={311:(a,b,c)=>{"use strict";c.d(b,{G0:()=>k,Lf:()=>j});var d=c(1787),e=c(9021),f=c(3873),g=c(1932);let h=(0,f.dirname)((0,g.fileURLToPath)("file:///Users/matthew/Code/github/p11o/machine/docs/src/lib/database/index.ts")),i=null;function j(){if(!i){let a=process.env.MACHINE_DB_PATH?process.env.MACHINE_DB_PATH:(0,f.join)(process.cwd(),"matrix.db");(i=new d.Database(a,{create:!0})).exec("PRAGMA foreign_keys = ON"),function(){if(!i)return;let a=(0,f.join)(h,"schema.sql"),b=(0,e.readFileSync)(a,"utf-8");i.exec(b)}()}return i}function k(){return process.env.MACHINE_SPECS_DIR?process.env.MACHINE_SPECS_DIR:(0,f.join)(process.cwd(),"specs")}},440:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(8868);let e=async a=>[{type:"image/x-icon",sizes:"16x16",url:(0,d.fillMetadataSegment)(".",await a.params,"favicon.ico")+"?603d046c9a6fdfbb"}]},476:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,1921,23)),Promise.resolve().then(c.t.bind(c,8059,23)),Promise.resolve().then(c.t.bind(c,4342,23)),Promise.resolve().then(c.t.bind(c,2265,23)),Promise.resolve().then(c.t.bind(c,5421,23)),Promise.resolve().then(c.t.bind(c,1335,23)),Promise.resolve().then(c.t.bind(c,664,23)),Promise.resolve().then(c.bind(c,4661))},619:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,1921,23))},998:(a,b,c)=>{"use strict";c.d(b,{Nn:()=>q,x7:()=>o,I1:()=>l,Er:()=>j,Ey:()=>p,i7:()=>m,Lo:()=>k});var d=c(9021),e=c.n(d),f=c(3873),g=c.n(f),h=c(7390),i=c(311);function j(){return(0,i.Lf)().query(`
2
2
  SELECT id, title, status, priority, owner, category,
3
3
  created_at, updated_at, business_need, intended_use,
4
4
  acceptance_criteria, regulatory_refs
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=530,exports.ids=[530],exports.modules={8864:(a,b,c)=>{c.d(b,{$C:()=>l,Lf:()=>j,lg:()=>k});var d=c(1787),e=c(9021),f=c(3873),g=c(1932);let h=(0,f.dirname)((0,g.fileURLToPath)("file:///Users/matthew/Code/github/p11o/machine/docs/src/lib/database/index.ts")),i=null;function j(){if(!i){let a=process.env.MACHINE_DB_PATH?process.env.MACHINE_DB_PATH:(0,f.join)(process.cwd(),"machine.db");(i=new d.Database(a,{create:!0})).exec("PRAGMA foreign_keys = ON"),function(){if(!i)return;let a=(0,f.join)(h,"schema.sql"),b=(0,e.readFileSync)(a,"utf-8");i.exec(b)}()}return i}function k(){return new Date().toISOString().split("T")[0]}function l(a,b){let c=b.filter(b=>b.startsWith(a)).map(b=>{let c=b.match(RegExp(`${a}-(\\d+)`));return c?parseInt(c[1],10):0}),d=c.length>0?Math.max(...c):0;return`${a}-${String(d+1).padStart(3,"0")}`}},9530:(a,b,c)=>{c.d(b,{w:()=>i,r_:()=>e,Nv:()=>j,cv:()=>f}),c(9021),c(3873),c(3870);var d=c(8864);function e(a,b){let c=(0,d.Lf)(),e=(0,d.Lf)().query(`
1
+ "use strict";exports.id=530,exports.ids=[530],exports.modules={8864:(a,b,c)=>{c.d(b,{$C:()=>l,Lf:()=>j,lg:()=>k});var d=c(1787),e=c(9021),f=c(3873),g=c(1932);let h=(0,f.dirname)((0,g.fileURLToPath)("file:///Users/matthew/Code/github/p11o/machine/docs/src/lib/database/index.ts")),i=null;function j(){if(!i){let a=process.env.MACHINE_DB_PATH?process.env.MACHINE_DB_PATH:(0,f.join)(process.cwd(),"matrix.db");(i=new d.Database(a,{create:!0})).exec("PRAGMA foreign_keys = ON"),function(){if(!i)return;let a=(0,f.join)(h,"schema.sql"),b=(0,e.readFileSync)(a,"utf-8");i.exec(b)}()}return i}function k(){return new Date().toISOString().split("T")[0]}function l(a,b){let c=b.filter(b=>b.startsWith(a)).map(b=>{let c=b.match(RegExp(`${a}-(\\d+)`));return c?parseInt(c[1],10):0}),d=c.length>0?Math.max(...c):0;return`${a}-${String(d+1).padStart(3,"0")}`}},9530:(a,b,c)=>{c.d(b,{w:()=>i,r_:()=>e,Nv:()=>j,cv:()=>f}),c(9021),c(3873),c(3870);var d=c(8864);function e(a,b){let c=(0,d.Lf)(),e=(0,d.Lf)().query(`
2
2
  SELECT id, title, status, priority, owner, category,
3
3
  created_at, updated_at, business_need, intended_use,
4
4
  acceptance_criteria, regulatory_refs
@@ -1 +1 @@
1
- <!DOCTYPE html><!--8ZUFcYHRSRlY1FYWZ33gH--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/f29e518c867dffaa.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-650bc85863e2a9e7.js"/><script src="/_next/static/chunks/4bd1b696-67e30520d621c4dd.js" async=""></script><script src="/_next/static/chunks/794-9353bb3ab9a73e90.js" async=""></script><script src="/_next/static/chunks/main-app-6d93e914b4a54c7e.js" async=""></script><script src="/_next/static/chunks/500-b84d19d842172eba.js" async=""></script><script src="/_next/static/chunks/app/page-9c9dff9c5e3ddefe.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>GAMP 5 Traceability</title><meta name="description" content="V-Model Documentation &amp; Test Management"/><link rel="icon" href="/favicon.ico?603d046c9a6fdfbb" type="image/x-icon" sizes="16x16"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div class="layout"><aside class="sidebar"><div class="sidebar-header"><h1 style="font-size:1.25rem;font-weight:700;margin:0">GAMP 5</h1><span style="font-size:0.75rem;color:var(--text-secondary)">V-Model System</span></div><nav class="sidebar-nav"><ul style="list-style:none;padding:0;margin:0"><li><a class="nav-link" href="/"><span>📊</span><span>Dashboard</span></a></li><li><a class="nav-link" href="/matrix"><span>🔗</span><span>Traceability</span></a></li><li><a class="nav-link" href="/releases"><span>📦</span><span>Releases</span></a></li><li><a class="nav-link" href="/guide"><span>📖</span><span>User Guide</span></a></li><li><a class="nav-link" href="/builder"><span>🔨</span><span>Builder</span></a></li></ul></nav><div style="margin-top:2rem;padding-top:2rem;border-top:1px solid var(--border)"><div style="font-size:0.75rem;color:var(--text-secondary)">GAMP 5 Compliant</div><div style="font-size:0.75rem;color:var(--text-secondary);margin-top:0.25rem">21 CFR Part 11 Ready</div></div></aside><main class="main-content"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--></main></div><script src="/_next/static/chunks/webpack-650bc85863e2a9e7.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[8500,[\"500\",\"static/chunks/500-b84d19d842172eba.js\",\"974\",\"static/chunks/app/page-9c9dff9c5e3ddefe.js\"],\"\"]\n3:I[7121,[],\"\"]\n4:I[4581,[],\"\"]\n5:I[484,[],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n8:I[484,[],\"ViewportBoundary\"]\na:I[484,[],\"MetadataBoundary\"]\nc:I[7123,[],\"\"]\n:HL[\"/_next/static/css/f29e518c867dffaa.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"8ZUFcYHRSRlY1FYWZ33gH\",\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/f29e518c867dffaa.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"layout\",\"children\":[[\"$\",\"aside\",null,{\"className\":\"sidebar\",\"children\":[[\"$\",\"div\",null,{\"className\":\"sidebar-header\",\"children\":[[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"1.25rem\",\"fontWeight\":700,\"margin\":0},\"children\":\"GAMP 5\"}],[\"$\",\"span\",null,{\"style\":{\"fontSize\":\"0.75rem\",\"color\":\"var(--text-secondary)\"},\"children\":\"V-Model System\"}]]}],[\"$\",\"nav\",null,{\"className\":\"sidebar-nav\",\"children\":[\"$\",\"ul\",null,{\"style\":{\"listStyle\":\"none\",\"padding\":0,\"margin\":0},\"children\":[[\"$\",\"li\",\"/\",{\"children\":[\"$\",\"$L2\",null,{\"href\":\"/\",\"className\":\"nav-link\",\"children\":[[\"$\",\"span\",null,{\"children\":\"📊\"}],[\"$\",\"span\",null,{\"children\":\"Dashboard\"}]]}]}],[\"$\",\"li\",\"/matrix\",{\"children\":[\"$\",\"$L2\",null,{\"href\":\"/matrix\",\"className\":\"nav-link\",\"children\":[[\"$\",\"span\",null,{\"children\":\"🔗\"}],[\"$\",\"span\",null,{\"children\":\"Traceability\"}]]}]}],[\"$\",\"li\",\"/releases\",{\"children\":[\"$\",\"$L2\",null,{\"href\":\"/releases\",\"className\":\"nav-link\",\"children\":[[\"$\",\"span\",null,{\"children\":\"📦\"}],[\"$\",\"span\",null,{\"children\":\"Releases\"}]]}]}],[\"$\",\"li\",\"/guide\",{\"children\":[\"$\",\"$L2\",null,{\"href\":\"/guide\",\"className\":\"nav-link\",\"children\":[[\"$\",\"span\",null,{\"children\":\"📖\"}],[\"$\",\"span\",null,{\"children\":\"User Guide\"}]]}]}],[\"$\",\"li\",\"/builder\",{\"children\":[\"$\",\"$L2\",null,{\"href\":\"/builder\",\"className\":\"nav-link\",\"children\":[[\"$\",\"span\",null,{\"children\":\"🔨\"}],[\"$\",\"span\",null,{\"children\":\"Builder\"}]]}]}]]}]}],[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"2rem\",\"paddingTop\":\"2rem\",\"borderTop\":\"1px solid var(--border)\"},\"children\":[[\"$\",\"div\",null,{\"style\":{\"fontSize\":\"0.75rem\",\"color\":\"var(--text-secondary)\"},\"children\":\"GAMP 5 Compliant\"}],[\"$\",\"div\",null,{\"style\":{\"fontSize\":\"0.75rem\",\"color\":\"var(--text-secondary)\",\"marginTop\":\"0.25rem\"},\"children\":\"21 CFR Part 11 Ready\"}]]}]]}],[\"$\",\"main\",null,{\"className\":\"main-content\",\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"d:I[6869,[],\"IconMark\"]\n7:null\nb:[[\"$\",\"title\",\"0\",{\"children\":\"GAMP 5 Traceability\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"V-Model Documentation \u0026 Test Management\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?603d046c9a6fdfbb\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"$Ld\",\"3\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><!--p01ytei1EF9z6WCg6Sbk1--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="/_next/static/css/f29e518c867dffaa.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-650bc85863e2a9e7.js"/><script src="/_next/static/chunks/4bd1b696-67e30520d621c4dd.js" async=""></script><script src="/_next/static/chunks/794-9353bb3ab9a73e90.js" async=""></script><script src="/_next/static/chunks/main-app-6d93e914b4a54c7e.js" async=""></script><script src="/_next/static/chunks/500-b84d19d842172eba.js" async=""></script><script src="/_next/static/chunks/app/page-9c9dff9c5e3ddefe.js" async=""></script><meta name="robots" content="noindex"/><title>404: This page could not be found.</title><title>GAMP 5 Traceability</title><meta name="description" content="V-Model Documentation &amp; Test Management"/><link rel="icon" href="/favicon.ico?603d046c9a6fdfbb" type="image/x-icon" sizes="16x16"/><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div class="layout"><aside class="sidebar"><div class="sidebar-header"><h1 style="font-size:1.25rem;font-weight:700;margin:0">GAMP 5</h1><span style="font-size:0.75rem;color:var(--text-secondary)">V-Model System</span></div><nav class="sidebar-nav"><ul style="list-style:none;padding:0;margin:0"><li><a class="nav-link" href="/"><span>📊</span><span>Dashboard</span></a></li><li><a class="nav-link" href="/matrix"><span>🔗</span><span>Traceability</span></a></li><li><a class="nav-link" href="/releases"><span>📦</span><span>Releases</span></a></li><li><a class="nav-link" href="/guide"><span>📖</span><span>User Guide</span></a></li><li><a class="nav-link" href="/builder"><span>🔨</span><span>Builder</span></a></li></ul></nav><div style="margin-top:2rem;padding-top:2rem;border-top:1px solid var(--border)"><div style="font-size:0.75rem;color:var(--text-secondary)">GAMP 5 Compliant</div><div style="font-size:0.75rem;color:var(--text-secondary);margin-top:0.25rem">21 CFR Part 11 Ready</div></div></aside><main class="main-content"><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding:0 23px 0 0;font-size:24px;font-weight:500;vertical-align:top;line-height:49px">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:49px;margin:0">This page could not be found.</h2></div></div></div><!--$--><!--/$--></main></div><script src="/_next/static/chunks/webpack-650bc85863e2a9e7.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[8500,[\"500\",\"static/chunks/500-b84d19d842172eba.js\",\"974\",\"static/chunks/app/page-9c9dff9c5e3ddefe.js\"],\"\"]\n3:I[7121,[],\"\"]\n4:I[4581,[],\"\"]\n5:I[484,[],\"OutletBoundary\"]\n6:\"$Sreact.suspense\"\n8:I[484,[],\"ViewportBoundary\"]\na:I[484,[],\"MetadataBoundary\"]\nc:I[7123,[],\"\"]\n:HL[\"/_next/static/css/f29e518c867dffaa.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"p01ytei1EF9z6WCg6Sbk1\",\"c\":[\"\",\"_not-found\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_not-found\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/f29e518c867dffaa.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"className\":\"layout\",\"children\":[[\"$\",\"aside\",null,{\"className\":\"sidebar\",\"children\":[[\"$\",\"div\",null,{\"className\":\"sidebar-header\",\"children\":[[\"$\",\"h1\",null,{\"style\":{\"fontSize\":\"1.25rem\",\"fontWeight\":700,\"margin\":0},\"children\":\"GAMP 5\"}],[\"$\",\"span\",null,{\"style\":{\"fontSize\":\"0.75rem\",\"color\":\"var(--text-secondary)\"},\"children\":\"V-Model System\"}]]}],[\"$\",\"nav\",null,{\"className\":\"sidebar-nav\",\"children\":[\"$\",\"ul\",null,{\"style\":{\"listStyle\":\"none\",\"padding\":0,\"margin\":0},\"children\":[[\"$\",\"li\",\"/\",{\"children\":[\"$\",\"$L2\",null,{\"href\":\"/\",\"className\":\"nav-link\",\"children\":[[\"$\",\"span\",null,{\"children\":\"📊\"}],[\"$\",\"span\",null,{\"children\":\"Dashboard\"}]]}]}],[\"$\",\"li\",\"/matrix\",{\"children\":[\"$\",\"$L2\",null,{\"href\":\"/matrix\",\"className\":\"nav-link\",\"children\":[[\"$\",\"span\",null,{\"children\":\"🔗\"}],[\"$\",\"span\",null,{\"children\":\"Traceability\"}]]}]}],[\"$\",\"li\",\"/releases\",{\"children\":[\"$\",\"$L2\",null,{\"href\":\"/releases\",\"className\":\"nav-link\",\"children\":[[\"$\",\"span\",null,{\"children\":\"📦\"}],[\"$\",\"span\",null,{\"children\":\"Releases\"}]]}]}],[\"$\",\"li\",\"/guide\",{\"children\":[\"$\",\"$L2\",null,{\"href\":\"/guide\",\"className\":\"nav-link\",\"children\":[[\"$\",\"span\",null,{\"children\":\"📖\"}],[\"$\",\"span\",null,{\"children\":\"User Guide\"}]]}]}],[\"$\",\"li\",\"/builder\",{\"children\":[\"$\",\"$L2\",null,{\"href\":\"/builder\",\"className\":\"nav-link\",\"children\":[[\"$\",\"span\",null,{\"children\":\"🔨\"}],[\"$\",\"span\",null,{\"children\":\"Builder\"}]]}]}]]}]}],[\"$\",\"div\",null,{\"style\":{\"marginTop\":\"2rem\",\"paddingTop\":\"2rem\",\"borderTop\":\"1px solid var(--border)\"},\"children\":[[\"$\",\"div\",null,{\"style\":{\"fontSize\":\"0.75rem\",\"color\":\"var(--text-secondary)\"},\"children\":\"GAMP 5 Compliant\"}],[\"$\",\"div\",null,{\"style\":{\"fontSize\":\"0.75rem\",\"color\":\"var(--text-secondary)\",\"marginTop\":\"0.25rem\"},\"children\":\"21 CFR Part 11 Ready\"}]]}]]}],[\"$\",\"main\",null,{\"className\":\"main-content\",\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],null,[\"$\",\"$L5\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@7\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[[\"$\",\"meta\",null,{\"name\":\"robots\",\"content\":\"noindex\"}],[\"$\",\"$L8\",null,{\"children\":\"$L9\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$La\",null,{\"children\":[\"$\",\"$6\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lb\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$c\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"9:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"d:I[6869,[],\"IconMark\"]\n7:null\nb:[[\"$\",\"title\",\"0\",{\"children\":\"GAMP 5 Traceability\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"V-Model Documentation \u0026 Test Management\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?603d046c9a6fdfbb\",\"type\":\"image/x-icon\",\"sizes\":\"16x16\"}],[\"$\",\"$Ld\",\"3\",{}]]\n"])</script></body></html>
@@ -1,2 +1,2 @@
1
- <!DOCTYPE html><!--8ZUFcYHRSRlY1FYWZ33gH--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-650bc85863e2a9e7.js"/><script src="/_next/static/chunks/4bd1b696-67e30520d621c4dd.js" async=""></script><script src="/_next/static/chunks/794-9353bb3ab9a73e90.js" async=""></script><script src="/_next/static/chunks/main-app-6d93e914b4a54c7e.js" async=""></script><title>500: Internal Server Error.</title><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
2
- @media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-650bc85863e2a9e7.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[7121,[],\"\"]\n3:I[4581,[],\"\"]\n4:I[484,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[484,[],\"ViewportBoundary\"]\n9:I[484,[],\"MetadataBoundary\"]\nb:I[7123,[],\"\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"8ZUFcYHRSRlY1FYWZ33gH\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{}]}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\na:[]\n"])</script></body></html>
1
+ <!DOCTYPE html><!--p01ytei1EF9z6WCg6Sbk1--><html id="__next_error__"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-650bc85863e2a9e7.js"/><script src="/_next/static/chunks/4bd1b696-67e30520d621c4dd.js" async=""></script><script src="/_next/static/chunks/794-9353bb3ab9a73e90.js" async=""></script><script src="/_next/static/chunks/main-app-6d93e914b4a54c7e.js" async=""></script><title>500: Internal Server Error.</title><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body><div hidden=""><!--$--><!--/$--></div><div style="font-family:system-ui,&quot;Segoe UI&quot;,Roboto,Helvetica,Arial,sans-serif,&quot;Apple Color Emoji&quot;,&quot;Segoe UI Emoji&quot;;height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}
2
+ @media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error.</h2></div></div></div><!--$--><!--/$--><script src="/_next/static/chunks/webpack-650bc85863e2a9e7.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[7121,[],\"\"]\n3:I[4581,[],\"\"]\n4:I[484,[],\"OutletBoundary\"]\n5:\"$Sreact.suspense\"\n7:I[484,[],\"ViewportBoundary\"]\n9:I[484,[],\"MetadataBoundary\"]\nb:I[7123,[],\"\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"p01ytei1EF9z6WCg6Sbk1\",\"c\":[\"\",\"_global-error\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"_global-error\",{\"children\":[\"__PAGE__\",{}]}]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"html\",null,{\"id\":\"__next_error__\",\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"title\",null,{\"children\":\"500: Internal Server Error.\"}]}],[\"$\",\"body\",null,{\"children\":[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"style\":{\"lineHeight\":\"48px\"},\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}\\n@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"paddingRight\":23,\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\"},\"children\":\"500\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"28px\"},\"children\":\"Internal Server Error.\"}]}]]}]}]}]]}],null,[\"$\",\"$L4\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@6\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L7\",null,{\"children\":\"$L8\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$5\",null,{\"name\":\"Next.Metadata\",\"children\":\"$La\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$b\",[]],\"S\":true}\n"])</script><script>self.__next_f.push([1,"8:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"6:null\na:[]\n"])</script></body></html>
@@ -1 +1 @@
1
- self.__RSC_SERVER_MANIFEST="{\"node\":{\"40d511dc3a76cac7d4c145452256536f04babc742d\":{\"workers\":{\"app/releases/page\":{\"moduleId\":\"3356\",\"async\":false},\"app/releases/[id]/page\":{\"moduleId\":\"4504\",\"async\":false}},\"layer\":{\"app/releases/page\":\"action-browser\",\"app/releases/[id]/page\":\"action-browser\"},\"filename\":\"app/releases/actions.ts\",\"exportedName\":\"createReleaseAction\"},\"600920c1121365a4e4a2b74f81a2832b96fbcadc12\":{\"workers\":{\"app/releases/page\":{\"moduleId\":\"3356\",\"async\":false},\"app/releases/[id]/page\":{\"moduleId\":\"4504\",\"async\":false}},\"layer\":{\"app/releases/page\":\"action-browser\",\"app/releases/[id]/page\":\"action-browser\"},\"filename\":\"app/releases/actions.ts\",\"exportedName\":\"untagFSFromReleaseAction\"},\"60a507c03894e522051c1ddbaa648c22f3145f6f7b\":{\"workers\":{\"app/releases/page\":{\"moduleId\":\"3356\",\"async\":false},\"app/releases/[id]/page\":{\"moduleId\":\"4504\",\"async\":false}},\"layer\":{\"app/releases/page\":\"action-browser\",\"app/releases/[id]/page\":\"action-browser\"},\"filename\":\"app/releases/actions.ts\",\"exportedName\":\"tagFSToReleaseAction\"},\"60b2b1ac09aa309cd62336a9a181a22f6a565110e8\":{\"workers\":{\"app/releases/page\":{\"moduleId\":\"3356\",\"async\":false},\"app/releases/[id]/page\":{\"moduleId\":\"4504\",\"async\":false}},\"layer\":{\"app/releases/page\":\"action-browser\",\"app/releases/[id]/page\":\"action-browser\"},\"filename\":\"app/releases/actions.ts\",\"exportedName\":\"updateReleaseAction\"},\"400f0db3de259ed9c29840924c83b24321311f81fe\":{\"workers\":{\"app/builder/page\":{\"moduleId\":\"9278\",\"async\":false}},\"layer\":{\"app/builder/page\":\"action-browser\"},\"filename\":\"app/builder/actions.ts\",\"exportedName\":\"saveURS\"},\"400f9dc48f783b65bc9ded53bcf12bd951d854bc12\":{\"workers\":{\"app/builder/page\":{\"moduleId\":\"9278\",\"async\":false}},\"layer\":{\"app/builder/page\":\"action-browser\"},\"filename\":\"app/builder/actions.ts\",\"exportedName\":\"saveRisk\"},\"60aced7721b76840cc203879c49d52dec02682a747\":{\"workers\":{\"app/builder/page\":{\"moduleId\":\"9278\",\"async\":false}},\"layer\":{\"app/builder/page\":\"action-browser\"},\"filename\":\"app/builder/actions.ts\",\"exportedName\":\"saveFS\"},\"6019bc063222ae2970a4725211376e4841d01aea8b\":{\"workers\":{\"app/specs/[id]/page\":{\"moduleId\":\"5833\",\"async\":false}},\"layer\":{\"app/specs/[id]/page\":\"action-browser\"},\"filename\":\"app/specs/[id]/actions.ts\",\"exportedName\":\"updateRiskAction\"},\"603c9bda0fbb0e0ca172cad506bef77f133f0f1640\":{\"workers\":{\"app/specs/[id]/page\":{\"moduleId\":\"5833\",\"async\":false}},\"layer\":{\"app/specs/[id]/page\":\"action-browser\"},\"filename\":\"app/specs/[id]/actions.ts\",\"exportedName\":\"updateURSAction\"},\"4098c7d1c9ece378d5dbdd69bf4aa352b2d12a9669\":{\"workers\":{\"app/releases/[id]/page\":{\"moduleId\":\"4504\",\"async\":false}},\"layer\":{\"app/releases/[id]/page\":\"action-browser\"},\"filename\":\"app/releases/[id]/defect-actions.ts\",\"exportedName\":\"createDefectAction\"},\"603dc8471994902b38c86346a8564445cc45765044\":{\"workers\":{\"app/releases/[id]/page\":{\"moduleId\":\"4504\",\"async\":false}},\"layer\":{\"app/releases/[id]/page\":\"action-browser\"},\"filename\":\"app/releases/[id]/defect-actions.ts\",\"exportedName\":\"deleteDefectAction\"},\"709382dfa3ad1bf62d6259ec90087ad538fc35afeb\":{\"workers\":{\"app/releases/[id]/page\":{\"moduleId\":\"4504\",\"async\":false}},\"layer\":{\"app/releases/[id]/page\":\"action-browser\"},\"filename\":\"app/releases/[id]/defect-actions.ts\",\"exportedName\":\"updateDefectAction\"}},\"edge\":{},\"encryptionKey\":\"process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY\"}"
1
+ self.__RSC_SERVER_MANIFEST="{\"node\":{\"403409638eb593eaa785d2919a0816535c64a9c9c5\":{\"workers\":{\"app/builder/page\":{\"moduleId\":\"3390\",\"async\":false}},\"layer\":{\"app/builder/page\":\"action-browser\"},\"filename\":\"app/builder/actions.ts\",\"exportedName\":\"saveRisk\"},\"4053fbbaeee5198306e625ddeb37160b138db1e8f4\":{\"workers\":{\"app/builder/page\":{\"moduleId\":\"3390\",\"async\":false}},\"layer\":{\"app/builder/page\":\"action-browser\"},\"filename\":\"app/builder/actions.ts\",\"exportedName\":\"saveURS\"},\"600d3806d6673dbc2e665d3c2e44546c76b6c23a6e\":{\"workers\":{\"app/builder/page\":{\"moduleId\":\"3390\",\"async\":false}},\"layer\":{\"app/builder/page\":\"action-browser\"},\"filename\":\"app/builder/actions.ts\",\"exportedName\":\"saveFS\"},\"40390e34c6f8a0229b91e5c4921b9fb399908c7adb\":{\"workers\":{\"app/releases/page\":{\"moduleId\":\"7328\",\"async\":false},\"app/releases/[id]/page\":{\"moduleId\":\"9352\",\"async\":false}},\"layer\":{\"app/releases/page\":\"action-browser\",\"app/releases/[id]/page\":\"action-browser\"},\"filename\":\"app/releases/actions.ts\",\"exportedName\":\"createReleaseAction\"},\"6044d053c155caff6616ff229bd75461a60befb59b\":{\"workers\":{\"app/releases/page\":{\"moduleId\":\"7328\",\"async\":false},\"app/releases/[id]/page\":{\"moduleId\":\"9352\",\"async\":false}},\"layer\":{\"app/releases/page\":\"action-browser\",\"app/releases/[id]/page\":\"action-browser\"},\"filename\":\"app/releases/actions.ts\",\"exportedName\":\"untagFSFromReleaseAction\"},\"6044f37d73f80ced74d04012a4acd2722aa0f5629c\":{\"workers\":{\"app/releases/page\":{\"moduleId\":\"7328\",\"async\":false},\"app/releases/[id]/page\":{\"moduleId\":\"9352\",\"async\":false}},\"layer\":{\"app/releases/page\":\"action-browser\",\"app/releases/[id]/page\":\"action-browser\"},\"filename\":\"app/releases/actions.ts\",\"exportedName\":\"updateReleaseAction\"},\"6087b612d8ae2f92bf9b052a68daaa99ef945e2755\":{\"workers\":{\"app/releases/page\":{\"moduleId\":\"7328\",\"async\":false},\"app/releases/[id]/page\":{\"moduleId\":\"9352\",\"async\":false}},\"layer\":{\"app/releases/page\":\"action-browser\",\"app/releases/[id]/page\":\"action-browser\"},\"filename\":\"app/releases/actions.ts\",\"exportedName\":\"tagFSToReleaseAction\"},\"40be6975492692156210167b8e45cfff82ad857711\":{\"workers\":{\"app/releases/[id]/page\":{\"moduleId\":\"9352\",\"async\":false}},\"layer\":{\"app/releases/[id]/page\":\"action-browser\"},\"filename\":\"app/releases/[id]/defect-actions.ts\",\"exportedName\":\"createDefectAction\"},\"60ccf5e1ea36a76f678979d0e0eab46e7ac8407de2\":{\"workers\":{\"app/releases/[id]/page\":{\"moduleId\":\"9352\",\"async\":false}},\"layer\":{\"app/releases/[id]/page\":\"action-browser\"},\"filename\":\"app/releases/[id]/defect-actions.ts\",\"exportedName\":\"deleteDefectAction\"},\"703b6e03a2537a530bab6de2162c5d13834cda2c01\":{\"workers\":{\"app/releases/[id]/page\":{\"moduleId\":\"9352\",\"async\":false}},\"layer\":{\"app/releases/[id]/page\":\"action-browser\"},\"filename\":\"app/releases/[id]/defect-actions.ts\",\"exportedName\":\"updateDefectAction\"},\"6001d939b150c0d179141b174c280871a1034e995a\":{\"workers\":{\"app/specs/[id]/page\":{\"moduleId\":\"8428\",\"async\":false}},\"layer\":{\"app/specs/[id]/page\":\"action-browser\"},\"filename\":\"app/specs/[id]/actions.ts\",\"exportedName\":\"updateURSAction\"},\"6006b5147757be7ff44bdbd037afdf883ea34b681c\":{\"workers\":{\"app/specs/[id]/page\":{\"moduleId\":\"8428\",\"async\":false}},\"layer\":{\"app/specs/[id]/page\":\"action-browser\"},\"filename\":\"app/specs/[id]/actions.ts\",\"exportedName\":\"updateRiskAction\"}},\"edge\":{},\"encryptionKey\":\"process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY\"}"
@@ -1 +1 @@
1
- {"node":{"40d511dc3a76cac7d4c145452256536f04babc742d":{"workers":{"app/releases/page":{"moduleId":"3356","async":false},"app/releases/[id]/page":{"moduleId":"4504","async":false}},"layer":{"app/releases/page":"action-browser","app/releases/[id]/page":"action-browser"},"filename":"app/releases/actions.ts","exportedName":"createReleaseAction"},"600920c1121365a4e4a2b74f81a2832b96fbcadc12":{"workers":{"app/releases/page":{"moduleId":"3356","async":false},"app/releases/[id]/page":{"moduleId":"4504","async":false}},"layer":{"app/releases/page":"action-browser","app/releases/[id]/page":"action-browser"},"filename":"app/releases/actions.ts","exportedName":"untagFSFromReleaseAction"},"60a507c03894e522051c1ddbaa648c22f3145f6f7b":{"workers":{"app/releases/page":{"moduleId":"3356","async":false},"app/releases/[id]/page":{"moduleId":"4504","async":false}},"layer":{"app/releases/page":"action-browser","app/releases/[id]/page":"action-browser"},"filename":"app/releases/actions.ts","exportedName":"tagFSToReleaseAction"},"60b2b1ac09aa309cd62336a9a181a22f6a565110e8":{"workers":{"app/releases/page":{"moduleId":"3356","async":false},"app/releases/[id]/page":{"moduleId":"4504","async":false}},"layer":{"app/releases/page":"action-browser","app/releases/[id]/page":"action-browser"},"filename":"app/releases/actions.ts","exportedName":"updateReleaseAction"},"400f0db3de259ed9c29840924c83b24321311f81fe":{"workers":{"app/builder/page":{"moduleId":"9278","async":false}},"layer":{"app/builder/page":"action-browser"},"filename":"app/builder/actions.ts","exportedName":"saveURS"},"400f9dc48f783b65bc9ded53bcf12bd951d854bc12":{"workers":{"app/builder/page":{"moduleId":"9278","async":false}},"layer":{"app/builder/page":"action-browser"},"filename":"app/builder/actions.ts","exportedName":"saveRisk"},"60aced7721b76840cc203879c49d52dec02682a747":{"workers":{"app/builder/page":{"moduleId":"9278","async":false}},"layer":{"app/builder/page":"action-browser"},"filename":"app/builder/actions.ts","exportedName":"saveFS"},"6019bc063222ae2970a4725211376e4841d01aea8b":{"workers":{"app/specs/[id]/page":{"moduleId":"5833","async":false}},"layer":{"app/specs/[id]/page":"action-browser"},"filename":"app/specs/[id]/actions.ts","exportedName":"updateRiskAction"},"603c9bda0fbb0e0ca172cad506bef77f133f0f1640":{"workers":{"app/specs/[id]/page":{"moduleId":"5833","async":false}},"layer":{"app/specs/[id]/page":"action-browser"},"filename":"app/specs/[id]/actions.ts","exportedName":"updateURSAction"},"4098c7d1c9ece378d5dbdd69bf4aa352b2d12a9669":{"workers":{"app/releases/[id]/page":{"moduleId":"4504","async":false}},"layer":{"app/releases/[id]/page":"action-browser"},"filename":"app/releases/[id]/defect-actions.ts","exportedName":"createDefectAction"},"603dc8471994902b38c86346a8564445cc45765044":{"workers":{"app/releases/[id]/page":{"moduleId":"4504","async":false}},"layer":{"app/releases/[id]/page":"action-browser"},"filename":"app/releases/[id]/defect-actions.ts","exportedName":"deleteDefectAction"},"709382dfa3ad1bf62d6259ec90087ad538fc35afeb":{"workers":{"app/releases/[id]/page":{"moduleId":"4504","async":false}},"layer":{"app/releases/[id]/page":"action-browser"},"filename":"app/releases/[id]/defect-actions.ts","exportedName":"updateDefectAction"}},"edge":{},"encryptionKey":"Jkbq2/5WABocPV9IhgGHUppWXJQ3KD0e2gOmkS7nInQ="}
1
+ {"node":{"403409638eb593eaa785d2919a0816535c64a9c9c5":{"workers":{"app/builder/page":{"moduleId":"3390","async":false}},"layer":{"app/builder/page":"action-browser"},"filename":"app/builder/actions.ts","exportedName":"saveRisk"},"4053fbbaeee5198306e625ddeb37160b138db1e8f4":{"workers":{"app/builder/page":{"moduleId":"3390","async":false}},"layer":{"app/builder/page":"action-browser"},"filename":"app/builder/actions.ts","exportedName":"saveURS"},"600d3806d6673dbc2e665d3c2e44546c76b6c23a6e":{"workers":{"app/builder/page":{"moduleId":"3390","async":false}},"layer":{"app/builder/page":"action-browser"},"filename":"app/builder/actions.ts","exportedName":"saveFS"},"40390e34c6f8a0229b91e5c4921b9fb399908c7adb":{"workers":{"app/releases/page":{"moduleId":"7328","async":false},"app/releases/[id]/page":{"moduleId":"9352","async":false}},"layer":{"app/releases/page":"action-browser","app/releases/[id]/page":"action-browser"},"filename":"app/releases/actions.ts","exportedName":"createReleaseAction"},"6044d053c155caff6616ff229bd75461a60befb59b":{"workers":{"app/releases/page":{"moduleId":"7328","async":false},"app/releases/[id]/page":{"moduleId":"9352","async":false}},"layer":{"app/releases/page":"action-browser","app/releases/[id]/page":"action-browser"},"filename":"app/releases/actions.ts","exportedName":"untagFSFromReleaseAction"},"6044f37d73f80ced74d04012a4acd2722aa0f5629c":{"workers":{"app/releases/page":{"moduleId":"7328","async":false},"app/releases/[id]/page":{"moduleId":"9352","async":false}},"layer":{"app/releases/page":"action-browser","app/releases/[id]/page":"action-browser"},"filename":"app/releases/actions.ts","exportedName":"updateReleaseAction"},"6087b612d8ae2f92bf9b052a68daaa99ef945e2755":{"workers":{"app/releases/page":{"moduleId":"7328","async":false},"app/releases/[id]/page":{"moduleId":"9352","async":false}},"layer":{"app/releases/page":"action-browser","app/releases/[id]/page":"action-browser"},"filename":"app/releases/actions.ts","exportedName":"tagFSToReleaseAction"},"40be6975492692156210167b8e45cfff82ad857711":{"workers":{"app/releases/[id]/page":{"moduleId":"9352","async":false}},"layer":{"app/releases/[id]/page":"action-browser"},"filename":"app/releases/[id]/defect-actions.ts","exportedName":"createDefectAction"},"60ccf5e1ea36a76f678979d0e0eab46e7ac8407de2":{"workers":{"app/releases/[id]/page":{"moduleId":"9352","async":false}},"layer":{"app/releases/[id]/page":"action-browser"},"filename":"app/releases/[id]/defect-actions.ts","exportedName":"deleteDefectAction"},"703b6e03a2537a530bab6de2162c5d13834cda2c01":{"workers":{"app/releases/[id]/page":{"moduleId":"9352","async":false}},"layer":{"app/releases/[id]/page":"action-browser"},"filename":"app/releases/[id]/defect-actions.ts","exportedName":"updateDefectAction"},"6001d939b150c0d179141b174c280871a1034e995a":{"workers":{"app/specs/[id]/page":{"moduleId":"8428","async":false}},"layer":{"app/specs/[id]/page":"action-browser"},"filename":"app/specs/[id]/actions.ts","exportedName":"updateURSAction"},"6006b5147757be7ff44bdbd037afdf883ea34b681c":{"workers":{"app/specs/[id]/page":{"moduleId":"8428","async":false}},"layer":{"app/specs/[id]/page":"action-browser"},"filename":"app/specs/[id]/actions.ts","exportedName":"updateRiskAction"}},"edge":{},"encryptionKey":"3dn6g/g/rBarLDcimI2v2sw5TX0Nk7OkgGwzy7qkIts="}
@@ -1,5 +1,5 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[462],{994:(e,t,a)=>{Promise.resolve().then(a.bind(a,7536))},7536:(e,t,a)=>{"use strict";a.d(t,{BuilderTabs:()=>y});var r=a(5155),l=a(2115);function i({options:e,selected:t,onChange:a,placeholder:i,multi:s=!0,allowCustom:n=!0}){let[c,o]=(0,l.useState)(!1),[d,u]=(0,l.useState)(""),p=(0,l.useRef)(null),m=e.filter(e=>e.label.toLowerCase().includes(d.toLowerCase())&&(!s||!t.includes(e.value)));return(0,l.useEffect)(()=>{let e=e=>{p.current&&!p.current.contains(e.target)&&o(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,r.jsxs)("div",{ref:p,style:{position:"relative",flex:1},children:[s&&t.length>0&&(0,r.jsx)("div",{style:{display:"flex",gap:"0.25rem",flexWrap:"wrap",marginBottom:"0.5rem"},children:t.map(l=>{let i=e.find(e=>e.value===l);return(0,r.jsxs)("span",{className:"badge badge-success",style:{display:"flex",alignItems:"center",gap:"0.25rem"},children:[i?.value||l,(0,r.jsx)("button",{onClick:()=>{a(t.filter(e=>e!==l))},style:{background:"none",border:"none",cursor:"pointer",padding:0,fontSize:"1rem",color:"inherit"},children:"\xd7"})]},l)})}),(0,r.jsx)("input",{type:"text",value:s||c?d:(()=>{if(!s&&t.length>0){let a=e.find(e=>e.value===t[0]);return a?.label||t[0]}return""})(),onChange:e=>u(e.target.value),onFocus:()=>o(!0),placeholder:0!==t.length&&s?"Add more...":i,className:"input",style:{width:"100%"}}),c&&(0,r.jsxs)("div",{style:{position:"absolute",top:"100%",left:0,right:0,marginTop:"0.25rem",background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:"8px",maxHeight:"200px",overflowY:"auto",zIndex:100,boxShadow:"0 4px 12px rgba(0,0,0,0.3)"},children:[0===m.length?(0,r.jsx)("div",{style:{padding:"0.75rem",color:"var(--text-secondary)",fontSize:"0.875rem"},children:n?"No matches - type to create":"No matching steps"}):m.slice(0,20).map(e=>(0,r.jsxs)("div",{onClick:()=>{var r;return r=e.value,void(s?a([...t,r]):(a([r]),o(!1)),u(""))},style:{padding:"0.625rem 0.75rem",cursor:"pointer",fontSize:"0.875rem",borderBottom:"1px solid var(--border)",transition:"background 0.15s"},onMouseEnter:e=>e.currentTarget.style.background="var(--bg-hover)",onMouseLeave:e=>e.currentTarget.style.background="transparent",children:[(0,r.jsx)("div",{style:{fontWeight:500},children:e.value}),e.label!==e.value&&(0,r.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",marginTop:"0.125rem"},children:e.label})]},e.value)),m.length>20&&(0,r.jsxs)("div",{style:{padding:"0.5rem",color:"var(--text-secondary)",fontSize:"0.75rem",textAlign:"center"},children:["+",m.length-20," more..."]})]})]})}var s=a(9339);let n=(0,s.createServerReference)("60aced7721b76840cc203879c49d52dec02682a747",s.callServer,void 0,s.findSourceMapURL,"saveFS");function c({ursItems:e,riskItems:t,existingFSCount:a,stepsByType:s}){let c,p,m,[h,g]=(0,l.useState)("FS-"+String(a+1).padStart(3,"0")),[x,v]=(0,l.useState)(""),[y,b]=(0,l.useState)(""),[j,f]=(0,l.useState)([""]),[S,C]=(0,l.useState)([]),[k,N]=(0,l.useState)([]),[w,R]=(0,l.useState)([{name:"",steps:[{type:"given",text:""},{type:"when",text:""},{type:"then",text:""}]}]),[B,$]=(0,l.useState)({type:"idle"}),[L,T]=(0,l.useTransition)(),_=(c=[...S.map(e=>`@${e}`),...k.map(e=>`@${e}`)].join(" "),p=j.filter(e=>e.trim()).map(e=>` - ${e}`).join("\n"),m=w.filter(e=>e.name.trim()).map(e=>{let t=e.steps.filter(e=>e.text.trim()).map(e=>` ${u(e.type)} ${e.text}`).join("\n");return` Scenario: ${e.name}
2
- ${t}`}).join("\n\n"),`${c}
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[462],{994:(e,t,a)=>{Promise.resolve().then(a.bind(a,4491))},4491:(e,t,a)=>{"use strict";a.d(t,{BuilderTabs:()=>y});var r=a(5155),l=a(2115);function i({options:e,selected:t,onChange:a,placeholder:i,multi:s=!0,allowCustom:n=!0}){let[o,c]=(0,l.useState)(!1),[d,u]=(0,l.useState)(""),p=(0,l.useRef)(null),m=e.filter(e=>e.label.toLowerCase().includes(d.toLowerCase())&&(!s||!t.includes(e.value)));return(0,l.useEffect)(()=>{let e=e=>{p.current&&!p.current.contains(e.target)&&c(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,r.jsxs)("div",{ref:p,style:{position:"relative",flex:1},children:[s&&t.length>0&&(0,r.jsx)("div",{style:{display:"flex",gap:"0.25rem",flexWrap:"wrap",marginBottom:"0.5rem"},children:t.map(l=>{let i=e.find(e=>e.value===l);return(0,r.jsxs)("span",{className:"badge badge-success",style:{display:"flex",alignItems:"center",gap:"0.25rem"},children:[i?.value||l,(0,r.jsx)("button",{onClick:()=>{a(t.filter(e=>e!==l))},style:{background:"none",border:"none",cursor:"pointer",padding:0,fontSize:"1rem",color:"inherit"},children:"\xd7"})]},l)})}),(0,r.jsx)("input",{type:"text",value:s||o?d:(()=>{if(!s&&t.length>0){let a=e.find(e=>e.value===t[0]);return a?.label||t[0]}return""})(),onChange:e=>u(e.target.value),onFocus:()=>c(!0),placeholder:0!==t.length&&s?"Add more...":i,className:"input",style:{width:"100%"}}),o&&(0,r.jsxs)("div",{style:{position:"absolute",top:"100%",left:0,right:0,marginTop:"0.25rem",background:"var(--bg-card)",border:"1px solid var(--border)",borderRadius:"8px",maxHeight:"200px",overflowY:"auto",zIndex:100,boxShadow:"0 4px 12px rgba(0,0,0,0.3)"},children:[0===m.length?(0,r.jsx)("div",{style:{padding:"0.75rem",color:"var(--text-secondary)",fontSize:"0.875rem"},children:n?"No matches - type to create":"No matching steps"}):m.slice(0,20).map(e=>(0,r.jsxs)("div",{onClick:()=>{var r;return r=e.value,void(s?a([...t,r]):(a([r]),c(!1)),u(""))},style:{padding:"0.625rem 0.75rem",cursor:"pointer",fontSize:"0.875rem",borderBottom:"1px solid var(--border)",transition:"background 0.15s"},onMouseEnter:e=>e.currentTarget.style.background="var(--bg-hover)",onMouseLeave:e=>e.currentTarget.style.background="transparent",children:[(0,r.jsx)("div",{style:{fontWeight:500},children:e.value}),e.label!==e.value&&(0,r.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",marginTop:"0.125rem"},children:e.label})]},e.value)),m.length>20&&(0,r.jsxs)("div",{style:{padding:"0.5rem",color:"var(--text-secondary)",fontSize:"0.75rem",textAlign:"center"},children:["+",m.length-20," more..."]})]})]})}var s=a(9339);let n=(0,s.createServerReference)("600d3806d6673dbc2e665d3c2e44546c76b6c23a6e",s.callServer,void 0,s.findSourceMapURL,"saveFS");function o({ursItems:e,riskItems:t,existingFSCount:a,stepsByType:s}){let o,p,m,[h,g]=(0,l.useState)("FS-"+String(a+1).padStart(3,"0")),[x,v]=(0,l.useState)(""),[y,b]=(0,l.useState)(""),[j,f]=(0,l.useState)([""]),[S,C]=(0,l.useState)([]),[k,N]=(0,l.useState)([]),[w,R]=(0,l.useState)([{name:"",steps:[{type:"given",text:""},{type:"when",text:""},{type:"then",text:""}]}]),[B,$]=(0,l.useState)({type:"idle"}),[L,T]=(0,l.useTransition)(),_=(o=[...S.map(e=>`@${e}`),...k.map(e=>`@${e}`)].join(" "),p=j.filter(e=>e.trim()).map(e=>` - ${e}`).join("\n"),m=w.filter(e=>e.name.trim()).map(e=>{let t=e.steps.filter(e=>e.text.trim()).map(e=>` ${u(e.type)} ${e.text}`).join("\n");return` Scenario: ${e.name}
2
+ ${t}`}).join("\n\n"),`${o}
3
3
  Feature: ${h} ${x}
4
4
  ${y}
5
5
 
@@ -7,4 +7,4 @@ Feature: ${h} ${x}
7
7
  ${p}
8
8
 
9
9
  ${m}
10
- `),z=()=>`${h}-${x.toLowerCase().replace(/\s+/g,"-")}.requirement`;return(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"1.5rem"},children:[(0,r.jsxs)("div",{className:"card",children:[(0,r.jsx)("h2",{className:"card-title",children:"\uD83D\uDCDD Editor"}),(0,r.jsx)(o,{label:"FS ID",children:(0,r.jsx)("input",{type:"text",value:h,onChange:e=>g(e.target.value),className:"input"})}),(0,r.jsx)(o,{label:"Title",children:(0,r.jsx)("input",{type:"text",value:x,onChange:e=>v(e.target.value),placeholder:"e.g., User Login Authentication",className:"input"})}),(0,r.jsx)(o,{label:"Description",children:(0,r.jsx)("textarea",{value:y,onChange:e=>b(e.target.value),placeholder:"The system shall...",rows:3,className:"input",style:{resize:"vertical"}})}),(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"1rem",marginBottom:"1.5rem"},children:[(0,r.jsx)(o,{label:"Link URS",children:(0,r.jsx)(i,{options:e.map(e=>({value:e.id,label:`${e.id} - ${e.title}`})),selected:S,onChange:C,placeholder:"Search URS...",multi:!0})}),(0,r.jsx)(o,{label:"Link Risks",children:(0,r.jsx)(i,{options:t.map(e=>({value:e.id,label:`${e.id} - ${e.title}`})),selected:k,onChange:N,placeholder:"Search Risks...",multi:!0})})]}),(0,r.jsx)(o,{label:"Requirements",action:{label:"+",onClick:()=>f([...j,""])},children:j.map((e,t)=>(0,r.jsxs)("div",{style:{display:"flex",gap:"0.5rem",marginBottom:"0.5rem"},children:[(0,r.jsx)("input",{type:"text",value:e,onChange:e=>{var a;let r;return a=e.target.value,void((r=[...j])[t]=a,f(r))},placeholder:`FR-${h.split("-")[1]}.${t+1}: Requirement description`,className:"input",style:{flex:1}}),j.length>1&&(0,r.jsx)("button",{onClick:()=>{f(j.filter((e,a)=>a!==t))},className:"btn-icon",children:"\xd7"})]},t))}),(0,r.jsx)(o,{label:"Test Scenarios",action:{label:"+ Scenario",onClick:()=>{R([...w,{name:"",steps:[{type:"given",text:""},{type:"when",text:""},{type:"then",text:""}]}])}},children:w.map((e,t)=>(0,r.jsx)(d,{scenario:e,index:t,stepsByType:s,onNameChange:e=>{let a;(a=[...w])[t].name=e,R(a)},onStepChange:(e,a)=>{let r;(r=[...w])[t].steps[e].text=a,R(r)},onAddStep:e=>{let a;(a=[...w])[t].steps.push({type:e,text:""}),R(a)},onRemoveStep:e=>{let a;(a=[...w])[t].steps=a[t].steps.filter((t,a)=>a!==e),R(a)},onRemove:()=>{R(w.filter((e,a)=>a!==t))},canRemove:w.length>1},t))})]}),(0,r.jsxs)("div",{className:"card",children:[(0,r.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1rem"},children:[(0,r.jsx)("h2",{className:"card-title",style:{margin:0},children:"\uD83D\uDCC4 Preview (.requirement)"}),(0,r.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[(0,r.jsx)("button",{onClick:()=>{let e=new Blob([_],{type:"text/plain"}),t=URL.createObjectURL(e),a=document.createElement("a");a.href=t,a.download=z(),a.click(),URL.revokeObjectURL(t)},className:"btn",style:{background:"var(--bg-hover)"},children:"⬇️ Download"}),(0,r.jsx)("button",{onClick:()=>{$({type:"idle"}),T(async()=>{let e=await n(z(),_);e.success?$({type:"success",message:`Saved as ${e.id}`}):$({type:"error",message:e.error})})},className:"btn btn-primary",disabled:L||!x.trim(),children:L?"\uD83D\uDCBE Saving...":"\uD83D\uDCBE Save to specs/fs/"})]})]}),"idle"!==B.type&&(0,r.jsxs)("div",{style:{marginBottom:"1rem",padding:"0.75rem 1rem",borderRadius:"8px",background:"success"===B.type?"rgba(16, 185, 129, 0.1)":"rgba(239, 68, 68, 0.1)",color:"success"===B.type?"var(--success)":"var(--error)",fontSize:"0.875rem"},children:["success"===B.type?"✅":"❌"," ",B.message]}),(0,r.jsx)("pre",{style:{background:"var(--bg-hover)",padding:"1rem",borderRadius:"8px",overflow:"auto",whiteSpace:"pre-wrap",fontFamily:"monospace",fontSize:"0.875rem",lineHeight:1.6,maxHeight:"calc(100vh - 300px)"},children:_})]})]})}function o({label:e,children:t,action:a}){return(0,r.jsxs)("div",{style:{marginBottom:"1.5rem"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",marginBottom:"0.5rem"},children:[(0,r.jsx)("label",{style:{fontWeight:500},children:e}),a&&(0,r.jsx)("button",{onClick:a.onClick,className:"btn",style:{marginLeft:"0.75rem",padding:"0.25rem 0.5rem",fontSize:"0.75rem"},children:a.label})]}),t]})}function d({scenario:e,stepsByType:t,onNameChange:a,onStepChange:l,onAddStep:s,onRemoveStep:n,onRemove:c,canRemove:o}){return(0,r.jsxs)("div",{style:{marginBottom:"1rem",padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px"},children:[(0,r.jsxs)("div",{style:{display:"flex",gap:"0.5rem",marginBottom:"0.75rem"},children:[(0,r.jsx)("input",{type:"text",value:e.name,onChange:e=>a(e.target.value),placeholder:"Scenario name (e.g., Successful login)",className:"input",style:{flex:1,fontWeight:500}}),o&&(0,r.jsx)("button",{onClick:c,className:"btn-icon",children:"\xd7"})]}),e.steps.map((e,a)=>(0,r.jsxs)("div",{style:{display:"flex",gap:"0.5rem",marginBottom:"0.5rem",alignItems:"center"},children:[(0,r.jsx)("span",{style:{minWidth:"50px",fontSize:"0.75rem",fontWeight:600,color:{given:"#a78bfa",when:"#60a5fa",then:"#34d399",and:"#94a3b8",but:"#f472b6"}[e.type]||"var(--text-secondary)",textTransform:"capitalize"},children:e.type}),(0,r.jsx)(i,{options:t[e.type].map(e=>({value:e.replace(/^(Given|When|Then|And|But)\s+/,""),label:e})),selected:e.text?[e.text]:[],onChange:e=>l(a,e[0]||""),placeholder:`Select or type ${e.type} step...`,multi:!1,allowCustom:!1}),(0,r.jsx)("button",{onClick:()=>n(a),className:"btn-icon",children:"\xd7"})]},a)),(0,r.jsx)("div",{style:{display:"flex",gap:"0.5rem",marginTop:"0.75rem"},children:["and","but"].map(e=>(0,r.jsxs)("button",{onClick:()=>s(e),className:"btn",style:{padding:"0.25rem 0.5rem",fontSize:"0.75rem"},children:["+ ",u(e)]},e))})]})}function u(e){return e.charAt(0).toUpperCase()+e.slice(1)}let p=(0,s.createServerReference)("400f0db3de259ed9c29840924c83b24321311f81fe",s.callServer,void 0,s.findSourceMapURL,"saveURS");function m({existingCount:e}){let[t,a]=(0,l.useState)(""),[i,s]=(0,l.useState)("draft"),[n,c]=(0,l.useState)("high"),[o,d]=(0,l.useState)(""),[u,m]=(0,l.useState)(""),[g,x]=(0,l.useState)(""),[v,y]=(0,l.useState)(""),[b,j]=(0,l.useState)([""]),[f,S]=(0,l.useState)(["GAMP 5"]),[C,k]=(0,l.useState)({type:"idle"}),[N,w]=(0,l.useTransition)();return(0,r.jsxs)("div",{className:"card",children:[(0,r.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1.5rem"},children:[(0,r.jsx)("h2",{className:"card-title",style:{margin:0},children:"\uD83D\uDCCB New URS"}),(0,r.jsx)("button",{onClick:()=>{k({type:"idle"}),w(async()=>{let e=await p({title:t,status:i,priority:n,owner:o,category:u,business_need:g,intended_use:v,acceptance_criteria:b.filter(e=>e.trim()),regulatory_refs:f.filter(e=>e.trim())});e.success?k({type:"success",message:`Created ${e.id}`}):k({type:"error",message:e.error})})},className:"btn btn-primary",disabled:N||!t.trim()||!o.trim(),children:N?"\uD83D\uDCBE Saving...":"\uD83D\uDCBE Save"})]}),"idle"!==C.type&&(0,r.jsxs)("div",{style:{marginBottom:"1rem",padding:"0.75rem 1rem",borderRadius:"8px",background:"success"===C.type?"rgba(16, 185, 129, 0.1)":"rgba(239, 68, 68, 0.1)",color:"success"===C.type?"var(--success)":"var(--error)",fontSize:"0.875rem"},children:["success"===C.type?"✅":"❌"," ",C.message]}),(0,r.jsx)(h,{label:"Title",children:(0,r.jsx)("input",{type:"text",value:t,onChange:e=>a(e.target.value),placeholder:"e.g., User Authentication",className:"input"})}),(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gap:"1rem",marginBottom:"1.5rem"},children:[(0,r.jsx)(h,{label:"Status",children:(0,r.jsxs)("select",{value:i,onChange:e=>s(e.target.value),className:"input",children:[(0,r.jsx)("option",{value:"draft",children:"Draft"}),(0,r.jsx)("option",{value:"review",children:"Review"}),(0,r.jsx)("option",{value:"approved",children:"Approved"})]})}),(0,r.jsx)(h,{label:"Priority",children:(0,r.jsxs)("select",{value:n,onChange:e=>c(e.target.value),className:"input",children:[(0,r.jsx)("option",{value:"critical",children:"Critical"}),(0,r.jsx)("option",{value:"high",children:"High"}),(0,r.jsx)("option",{value:"medium",children:"Medium"}),(0,r.jsx)("option",{value:"low",children:"Low"})]})}),(0,r.jsx)(h,{label:"Category",children:(0,r.jsx)("input",{type:"text",value:u,onChange:e=>m(e.target.value),placeholder:"e.g., Security",className:"input"})})]}),(0,r.jsx)(h,{label:"Owner",children:(0,r.jsx)("input",{type:"text",value:o,onChange:e=>d(e.target.value),placeholder:"e.g., Product Team",className:"input"})}),(0,r.jsx)(h,{label:"Business Need",children:(0,r.jsx)("textarea",{value:g,onChange:e=>x(e.target.value),placeholder:"Describe why this requirement exists...",rows:4,className:"input",style:{resize:"vertical"}})}),(0,r.jsx)(h,{label:"Intended Use",children:(0,r.jsx)("textarea",{value:v,onChange:e=>y(e.target.value),placeholder:"Describe how this will be used...",rows:3,className:"input",style:{resize:"vertical"}})}),(0,r.jsx)(h,{label:"Acceptance Criteria",action:{label:"+",onClick:()=>j([...b,""])},children:b.map((e,t)=>(0,r.jsx)("div",{style:{display:"flex",gap:"0.5rem",marginBottom:"0.5rem"},children:(0,r.jsx)("input",{type:"text",value:e,onChange:e=>{var a;let r;return a=e.target.value,void((r=[...b])[t]=a,j(r))},placeholder:`Criterion ${t+1}`,className:"input",style:{flex:1}})},t))})]})}function h({label:e,children:t,action:a}){return(0,r.jsxs)("div",{style:{marginBottom:"1.5rem"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",marginBottom:"0.5rem"},children:[(0,r.jsx)("label",{style:{fontWeight:500},children:e}),a&&(0,r.jsx)("button",{onClick:a.onClick,className:"btn",style:{marginLeft:"0.75rem",padding:"0.25rem 0.5rem",fontSize:"0.75rem"},children:a.label})]}),t]})}let g=(0,s.createServerReference)("400f9dc48f783b65bc9ded53bcf12bd951d854bc12",s.callServer,void 0,s.findSourceMapURL,"saveRisk");function x({fsItems:e,existingCount:t}){let[a,s]=(0,l.useState)(""),[n,c]=(0,l.useState)("draft"),[o,d]=(0,l.useState)(""),[u,p]=(0,l.useState)(4),[m,h]=(0,l.useState)("medium"),[x,y]=(0,l.useState)("medium"),[b,j]=(0,l.useState)("medium"),[f,S]=(0,l.useState)("acceptable"),[C,k]=(0,l.useState)([]),[N,w]=(0,l.useState)([{id:"R-001.1",description:"",impact:"medium",probability:"medium"}]),[R,B]=(0,l.useState)([{risk_id:"R-001.1",control:"",test:""}]),[$,L]=(0,l.useState)({type:"idle"}),[T,_]=(0,l.useTransition)(),z=(e,t,a)=>{let r=[...N];r[e]={...r[e],[t]:a},w(r)},U=(e,t,a)=>{let r=[...R];r[e]={...r[e],[t]:a},B(r)};return(0,r.jsxs)("div",{className:"card",children:[(0,r.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1.5rem"},children:[(0,r.jsx)("h2",{className:"card-title",style:{margin:0},children:"⚠️ New Risk"}),(0,r.jsx)("button",{onClick:()=>{L({type:"idle"}),_(async()=>{let e=await g({title:a,status:n,category:o,gamp_category:u,fs_ids:C,impact:m,probability:x,risk_level:b,risks:N.filter(e=>e.description.trim()).map(e=>({id:e.id,description:e.description,impact:e.impact,probability:e.probability})),mitigations:R.filter(e=>e.control.trim()).map(e=>({risk_id:e.risk_id,control:e.control,test:e.test})),residual_risk:f});e.success?L({type:"success",message:`Created ${e.id}`}):L({type:"error",message:e.error})})},className:"btn btn-primary",disabled:T||!a.trim()||0===C.length,children:T?"\uD83D\uDCBE Saving...":"\uD83D\uDCBE Save"})]}),"idle"!==$.type&&(0,r.jsxs)("div",{style:{marginBottom:"1rem",padding:"0.75rem 1rem",borderRadius:"8px",background:"success"===$.type?"rgba(16, 185, 129, 0.1)":"rgba(239, 68, 68, 0.1)",color:"success"===$.type?"var(--success)":"var(--error)",fontSize:"0.875rem"},children:["success"===$.type?"✅":"❌"," ",$.message]}),(0,r.jsx)(v,{label:"Title",children:(0,r.jsx)("input",{type:"text",value:a,onChange:e=>s(e.target.value),placeholder:"e.g., Authentication Security",className:"input"})}),(0,r.jsx)(v,{label:"Category",children:(0,r.jsx)("input",{type:"text",value:o,onChange:e=>d(e.target.value),placeholder:"e.g., Security, Data Integrity",className:"input"})}),(0,r.jsx)(v,{label:"Link FS",children:(0,r.jsx)(i,{options:e.map(e=>({value:e.id,label:`${e.id} - ${e.title}`})),selected:C,onChange:k,placeholder:"Search FS...",multi:!0})}),(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"0.5rem",marginBottom:"1.5rem"},children:[(0,r.jsx)(v,{label:"Impact",children:(0,r.jsxs)("select",{value:m,onChange:e=>h(e.target.value),className:"input",children:[(0,r.jsx)("option",{value:"low",children:"Low"}),(0,r.jsx)("option",{value:"medium",children:"Medium"}),(0,r.jsx)("option",{value:"high",children:"High"}),(0,r.jsx)("option",{value:"critical",children:"Critical"})]})}),(0,r.jsx)(v,{label:"Probability",children:(0,r.jsxs)("select",{value:x,onChange:e=>y(e.target.value),className:"input",children:[(0,r.jsx)("option",{value:"low",children:"Low"}),(0,r.jsx)("option",{value:"medium",children:"Medium"}),(0,r.jsx)("option",{value:"high",children:"High"})]})}),(0,r.jsx)(v,{label:"Risk Level",children:(0,r.jsxs)("select",{value:b,onChange:e=>j(e.target.value),className:"input",children:[(0,r.jsx)("option",{value:"low",children:"Low"}),(0,r.jsx)("option",{value:"medium",children:"Medium"}),(0,r.jsx)("option",{value:"high",children:"High"}),(0,r.jsx)("option",{value:"critical",children:"Critical"})]})}),(0,r.jsx)(v,{label:"Residual",children:(0,r.jsxs)("select",{value:f,onChange:e=>S(e.target.value),className:"input",children:[(0,r.jsx)("option",{value:"acceptable",children:"Acceptable"}),(0,r.jsx)("option",{value:"unacceptable",children:"Unacceptable"}),(0,r.jsx)("option",{value:"pending",children:"Pending"})]})})]}),(0,r.jsx)(v,{label:"Identified Risks",action:{label:"+",onClick:()=>w([...N,{id:`R-001.${N.length+1}`,description:"",impact:"medium",probability:"medium"}])},children:N.map((e,t)=>(0,r.jsxs)("div",{style:{display:"flex",gap:"0.5rem",marginBottom:"0.5rem"},children:[(0,r.jsx)("input",{type:"text",value:e.id,onChange:e=>z(t,"id",e.target.value),placeholder:"R-001.1",className:"input",style:{width:"80px"}}),(0,r.jsx)("input",{type:"text",value:e.description,onChange:e=>z(t,"description",e.target.value),placeholder:"Risk description",className:"input",style:{flex:1}})]},t))}),(0,r.jsx)(v,{label:"Mitigations",action:{label:"+",onClick:()=>B([...R,{risk_id:"",control:"",test:""}])},children:R.map((e,t)=>(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"80px 1fr 1fr",gap:"0.5rem",marginBottom:"0.5rem"},children:[(0,r.jsx)("input",{type:"text",value:e.risk_id,onChange:e=>U(t,"risk_id",e.target.value),placeholder:"R-ID",className:"input"}),(0,r.jsx)("input",{type:"text",value:e.control,onChange:e=>U(t,"control",e.target.value),placeholder:"Control measure",className:"input"}),(0,r.jsx)("input",{type:"text",value:e.test,onChange:e=>U(t,"test",e.target.value),placeholder:"How to test",className:"input"})]},t))})]})}function v({label:e,children:t,action:a}){return(0,r.jsxs)("div",{style:{marginBottom:"1.5rem"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",marginBottom:"0.5rem"},children:[(0,r.jsx)("label",{style:{fontWeight:500},children:e}),a&&(0,r.jsx)("button",{onClick:a.onClick,className:"btn",style:{marginLeft:"0.75rem",padding:"0.25rem 0.5rem",fontSize:"0.75rem"},children:a.label})]}),t]})}function y({ursItems:e,riskItems:t,fsItems:a,counts:i,stepsByType:s}){let[n,o]=(0,l.useState)("fs");return(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{style:{display:"flex",gap:"0.5rem",marginBottom:"1.5rem"},children:[{id:"urs",label:"URS",icon:"\uD83D\uDCCB",color:"var(--success)"},{id:"fs",label:"FS",icon:"⚙️",color:"var(--warning)"},{id:"risk",label:"Risk",icon:"⚠️",color:"#f97316"}].map(e=>(0,r.jsxs)("button",{onClick:()=>o(e.id),className:`btn ${n===e.id?"btn-primary":""}`,style:n!==e.id?{background:"var(--bg-hover)"}:{},children:[e.icon," New ",e.label]},e.id))}),"urs"===n&&(0,r.jsx)(m,{existingCount:i.urs}),"fs"===n&&(0,r.jsx)(c,{ursItems:e,riskItems:t,existingFSCount:i.fs,stepsByType:s}),"risk"===n&&(0,r.jsx)(x,{fsItems:a,existingCount:i.risk})]})}},9339:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={callServer:function(){return i.callServer},createServerReference:function(){return n.createServerReference},findSourceMapURL:function(){return s.findSourceMapURL}};for(var l in r)Object.defineProperty(t,l,{enumerable:!0,get:r[l]});let i=a(7304),s=a(4060),n=a(7197)}},e=>{e.O(0,[441,794,358],()=>e(e.s=994)),_N_E=e.O()}]);
10
+ `),z=()=>`${h}-${x.toLowerCase().replace(/\s+/g,"-")}.requirement`;return(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"1.5rem"},children:[(0,r.jsxs)("div",{className:"card",children:[(0,r.jsx)("h2",{className:"card-title",children:"\uD83D\uDCDD Editor"}),(0,r.jsx)(c,{label:"FS ID",children:(0,r.jsx)("input",{type:"text",value:h,onChange:e=>g(e.target.value),className:"input"})}),(0,r.jsx)(c,{label:"Title",children:(0,r.jsx)("input",{type:"text",value:x,onChange:e=>v(e.target.value),placeholder:"e.g., User Login Authentication",className:"input"})}),(0,r.jsx)(c,{label:"Description",children:(0,r.jsx)("textarea",{value:y,onChange:e=>b(e.target.value),placeholder:"The system shall...",rows:3,className:"input",style:{resize:"vertical"}})}),(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"1rem",marginBottom:"1.5rem"},children:[(0,r.jsx)(c,{label:"Link URS",children:(0,r.jsx)(i,{options:e.map(e=>({value:e.id,label:`${e.id} - ${e.title}`})),selected:S,onChange:C,placeholder:"Search URS...",multi:!0})}),(0,r.jsx)(c,{label:"Link Risks",children:(0,r.jsx)(i,{options:t.map(e=>({value:e.id,label:`${e.id} - ${e.title}`})),selected:k,onChange:N,placeholder:"Search Risks...",multi:!0})})]}),(0,r.jsx)(c,{label:"Requirements",action:{label:"+",onClick:()=>f([...j,""])},children:j.map((e,t)=>(0,r.jsxs)("div",{style:{display:"flex",gap:"0.5rem",marginBottom:"0.5rem"},children:[(0,r.jsx)("input",{type:"text",value:e,onChange:e=>{var a;let r;return a=e.target.value,void((r=[...j])[t]=a,f(r))},placeholder:`FR-${h.split("-")[1]}.${t+1}: Requirement description`,className:"input",style:{flex:1}}),j.length>1&&(0,r.jsx)("button",{onClick:()=>{f(j.filter((e,a)=>a!==t))},className:"btn-icon",children:"\xd7"})]},t))}),(0,r.jsx)(c,{label:"Test Scenarios",action:{label:"+ Scenario",onClick:()=>{R([...w,{name:"",steps:[{type:"given",text:""},{type:"when",text:""},{type:"then",text:""}]}])}},children:w.map((e,t)=>(0,r.jsx)(d,{scenario:e,index:t,stepsByType:s,onNameChange:e=>{let a;(a=[...w])[t].name=e,R(a)},onStepChange:(e,a)=>{let r;(r=[...w])[t].steps[e].text=a,R(r)},onAddStep:e=>{let a;(a=[...w])[t].steps.push({type:e,text:""}),R(a)},onRemoveStep:e=>{let a;(a=[...w])[t].steps=a[t].steps.filter((t,a)=>a!==e),R(a)},onRemove:()=>{R(w.filter((e,a)=>a!==t))},canRemove:w.length>1},t))})]}),(0,r.jsxs)("div",{className:"card",children:[(0,r.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1rem"},children:[(0,r.jsx)("h2",{className:"card-title",style:{margin:0},children:"\uD83D\uDCC4 Preview (.requirement)"}),(0,r.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[(0,r.jsx)("button",{onClick:()=>{let e=new Blob([_],{type:"text/plain"}),t=URL.createObjectURL(e),a=document.createElement("a");a.href=t,a.download=z(),a.click(),URL.revokeObjectURL(t)},className:"btn",style:{background:"var(--bg-hover)"},children:"⬇️ Download"}),(0,r.jsx)("button",{onClick:()=>{$({type:"idle"}),T(async()=>{let e=await n(z(),_);e.success?$({type:"success",message:`Saved as ${e.id}`}):$({type:"error",message:e.error})})},className:"btn btn-primary",disabled:L||!x.trim(),children:L?"\uD83D\uDCBE Saving...":"\uD83D\uDCBE Save to specs/fs/"})]})]}),"idle"!==B.type&&(0,r.jsxs)("div",{style:{marginBottom:"1rem",padding:"0.75rem 1rem",borderRadius:"8px",background:"success"===B.type?"rgba(16, 185, 129, 0.1)":"rgba(239, 68, 68, 0.1)",color:"success"===B.type?"var(--success)":"var(--error)",fontSize:"0.875rem"},children:["success"===B.type?"✅":"❌"," ",B.message]}),(0,r.jsx)("pre",{style:{background:"var(--bg-hover)",padding:"1rem",borderRadius:"8px",overflow:"auto",whiteSpace:"pre-wrap",fontFamily:"monospace",fontSize:"0.875rem",lineHeight:1.6,maxHeight:"calc(100vh - 300px)"},children:_})]})]})}function c({label:e,children:t,action:a}){return(0,r.jsxs)("div",{style:{marginBottom:"1.5rem"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",marginBottom:"0.5rem"},children:[(0,r.jsx)("label",{style:{fontWeight:500},children:e}),a&&(0,r.jsx)("button",{onClick:a.onClick,className:"btn",style:{marginLeft:"0.75rem",padding:"0.25rem 0.5rem",fontSize:"0.75rem"},children:a.label})]}),t]})}function d({scenario:e,stepsByType:t,onNameChange:a,onStepChange:l,onAddStep:s,onRemoveStep:n,onRemove:o,canRemove:c}){return(0,r.jsxs)("div",{style:{marginBottom:"1rem",padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px"},children:[(0,r.jsxs)("div",{style:{display:"flex",gap:"0.5rem",marginBottom:"0.75rem"},children:[(0,r.jsx)("input",{type:"text",value:e.name,onChange:e=>a(e.target.value),placeholder:"Scenario name (e.g., Successful login)",className:"input",style:{flex:1,fontWeight:500}}),c&&(0,r.jsx)("button",{onClick:o,className:"btn-icon",children:"\xd7"})]}),e.steps.map((e,a)=>(0,r.jsxs)("div",{style:{display:"flex",gap:"0.5rem",marginBottom:"0.5rem",alignItems:"center"},children:[(0,r.jsx)("span",{style:{minWidth:"50px",fontSize:"0.75rem",fontWeight:600,color:{given:"#a78bfa",when:"#60a5fa",then:"#34d399",and:"#94a3b8",but:"#f472b6"}[e.type]||"var(--text-secondary)",textTransform:"capitalize"},children:e.type}),(0,r.jsx)(i,{options:t[e.type].map(e=>({value:e.replace(/^(Given|When|Then|And|But)\s+/,""),label:e})),selected:e.text?[e.text]:[],onChange:e=>l(a,e[0]||""),placeholder:`Select or type ${e.type} step...`,multi:!1,allowCustom:!1}),(0,r.jsx)("button",{onClick:()=>n(a),className:"btn-icon",children:"\xd7"})]},a)),(0,r.jsx)("div",{style:{display:"flex",gap:"0.5rem",marginTop:"0.75rem"},children:["and","but"].map(e=>(0,r.jsxs)("button",{onClick:()=>s(e),className:"btn",style:{padding:"0.25rem 0.5rem",fontSize:"0.75rem"},children:["+ ",u(e)]},e))})]})}function u(e){return e.charAt(0).toUpperCase()+e.slice(1)}let p=(0,s.createServerReference)("4053fbbaeee5198306e625ddeb37160b138db1e8f4",s.callServer,void 0,s.findSourceMapURL,"saveURS");function m({existingCount:e}){let[t,a]=(0,l.useState)(""),[i,s]=(0,l.useState)("draft"),[n,o]=(0,l.useState)("high"),[c,d]=(0,l.useState)(""),[u,m]=(0,l.useState)(""),[g,x]=(0,l.useState)(""),[v,y]=(0,l.useState)(""),[b,j]=(0,l.useState)([""]),[f,S]=(0,l.useState)(["GAMP 5"]),[C,k]=(0,l.useState)({type:"idle"}),[N,w]=(0,l.useTransition)();return(0,r.jsxs)("div",{className:"card",children:[(0,r.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1.5rem"},children:[(0,r.jsx)("h2",{className:"card-title",style:{margin:0},children:"\uD83D\uDCCB New URS"}),(0,r.jsx)("button",{onClick:()=>{k({type:"idle"}),w(async()=>{let e=await p({title:t,status:i,priority:n,owner:c,category:u,business_need:g,intended_use:v,acceptance_criteria:b.filter(e=>e.trim()),regulatory_refs:f.filter(e=>e.trim())});e.success?k({type:"success",message:`Created ${e.id}`}):k({type:"error",message:e.error})})},className:"btn btn-primary",disabled:N||!t.trim()||!c.trim(),children:N?"\uD83D\uDCBE Saving...":"\uD83D\uDCBE Save"})]}),"idle"!==C.type&&(0,r.jsxs)("div",{style:{marginBottom:"1rem",padding:"0.75rem 1rem",borderRadius:"8px",background:"success"===C.type?"rgba(16, 185, 129, 0.1)":"rgba(239, 68, 68, 0.1)",color:"success"===C.type?"var(--success)":"var(--error)",fontSize:"0.875rem"},children:["success"===C.type?"✅":"❌"," ",C.message]}),(0,r.jsx)(h,{label:"Title",children:(0,r.jsx)("input",{type:"text",value:t,onChange:e=>a(e.target.value),placeholder:"e.g., User Authentication",className:"input"})}),(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr 1fr",gap:"1rem",marginBottom:"1.5rem"},children:[(0,r.jsx)(h,{label:"Status",children:(0,r.jsxs)("select",{value:i,onChange:e=>s(e.target.value),className:"input",children:[(0,r.jsx)("option",{value:"draft",children:"Draft"}),(0,r.jsx)("option",{value:"review",children:"Review"}),(0,r.jsx)("option",{value:"approved",children:"Approved"})]})}),(0,r.jsx)(h,{label:"Priority",children:(0,r.jsxs)("select",{value:n,onChange:e=>o(e.target.value),className:"input",children:[(0,r.jsx)("option",{value:"critical",children:"Critical"}),(0,r.jsx)("option",{value:"high",children:"High"}),(0,r.jsx)("option",{value:"medium",children:"Medium"}),(0,r.jsx)("option",{value:"low",children:"Low"})]})}),(0,r.jsx)(h,{label:"Category",children:(0,r.jsx)("input",{type:"text",value:u,onChange:e=>m(e.target.value),placeholder:"e.g., Security",className:"input"})})]}),(0,r.jsx)(h,{label:"Owner",children:(0,r.jsx)("input",{type:"text",value:c,onChange:e=>d(e.target.value),placeholder:"e.g., Product Team",className:"input"})}),(0,r.jsx)(h,{label:"Business Need",children:(0,r.jsx)("textarea",{value:g,onChange:e=>x(e.target.value),placeholder:"Describe why this requirement exists...",rows:4,className:"input",style:{resize:"vertical"}})}),(0,r.jsx)(h,{label:"Intended Use",children:(0,r.jsx)("textarea",{value:v,onChange:e=>y(e.target.value),placeholder:"Describe how this will be used...",rows:3,className:"input",style:{resize:"vertical"}})}),(0,r.jsx)(h,{label:"Acceptance Criteria",action:{label:"+",onClick:()=>j([...b,""])},children:b.map((e,t)=>(0,r.jsx)("div",{style:{display:"flex",gap:"0.5rem",marginBottom:"0.5rem"},children:(0,r.jsx)("input",{type:"text",value:e,onChange:e=>{var a;let r;return a=e.target.value,void((r=[...b])[t]=a,j(r))},placeholder:`Criterion ${t+1}`,className:"input",style:{flex:1}})},t))})]})}function h({label:e,children:t,action:a}){return(0,r.jsxs)("div",{style:{marginBottom:"1.5rem"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",marginBottom:"0.5rem"},children:[(0,r.jsx)("label",{style:{fontWeight:500},children:e}),a&&(0,r.jsx)("button",{onClick:a.onClick,className:"btn",style:{marginLeft:"0.75rem",padding:"0.25rem 0.5rem",fontSize:"0.75rem"},children:a.label})]}),t]})}let g=(0,s.createServerReference)("403409638eb593eaa785d2919a0816535c64a9c9c5",s.callServer,void 0,s.findSourceMapURL,"saveRisk");function x({fsItems:e,existingCount:t}){let[a,s]=(0,l.useState)(""),[n,o]=(0,l.useState)("draft"),[c,d]=(0,l.useState)(""),[u,p]=(0,l.useState)(4),[m,h]=(0,l.useState)("medium"),[x,y]=(0,l.useState)("medium"),[b,j]=(0,l.useState)("medium"),[f,S]=(0,l.useState)("acceptable"),[C,k]=(0,l.useState)([]),[N,w]=(0,l.useState)([{id:"R-001.1",description:"",impact:"medium",probability:"medium"}]),[R,B]=(0,l.useState)([{risk_id:"R-001.1",control:"",test:""}]),[$,L]=(0,l.useState)({type:"idle"}),[T,_]=(0,l.useTransition)(),z=(e,t,a)=>{let r=[...N];r[e]={...r[e],[t]:a},w(r)},U=(e,t,a)=>{let r=[...R];r[e]={...r[e],[t]:a},B(r)};return(0,r.jsxs)("div",{className:"card",children:[(0,r.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1.5rem"},children:[(0,r.jsx)("h2",{className:"card-title",style:{margin:0},children:"⚠️ New Risk"}),(0,r.jsx)("button",{onClick:()=>{L({type:"idle"}),_(async()=>{let e=await g({title:a,status:n,category:c,gamp_category:u,fs_ids:C,impact:m,probability:x,risk_level:b,risks:N.filter(e=>e.description.trim()).map(e=>({id:e.id,description:e.description,impact:e.impact,probability:e.probability})),mitigations:R.filter(e=>e.control.trim()).map(e=>({risk_id:e.risk_id,control:e.control,test:e.test})),residual_risk:f});e.success?L({type:"success",message:`Created ${e.id}`}):L({type:"error",message:e.error})})},className:"btn btn-primary",disabled:T||!a.trim()||0===C.length,children:T?"\uD83D\uDCBE Saving...":"\uD83D\uDCBE Save"})]}),"idle"!==$.type&&(0,r.jsxs)("div",{style:{marginBottom:"1rem",padding:"0.75rem 1rem",borderRadius:"8px",background:"success"===$.type?"rgba(16, 185, 129, 0.1)":"rgba(239, 68, 68, 0.1)",color:"success"===$.type?"var(--success)":"var(--error)",fontSize:"0.875rem"},children:["success"===$.type?"✅":"❌"," ",$.message]}),(0,r.jsx)(v,{label:"Title",children:(0,r.jsx)("input",{type:"text",value:a,onChange:e=>s(e.target.value),placeholder:"e.g., Authentication Security",className:"input"})}),(0,r.jsx)(v,{label:"Category",children:(0,r.jsx)("input",{type:"text",value:c,onChange:e=>d(e.target.value),placeholder:"e.g., Security, Data Integrity",className:"input"})}),(0,r.jsx)(v,{label:"Link FS",children:(0,r.jsx)(i,{options:e.map(e=>({value:e.id,label:`${e.id} - ${e.title}`})),selected:C,onChange:k,placeholder:"Search FS...",multi:!0})}),(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"0.5rem",marginBottom:"1.5rem"},children:[(0,r.jsx)(v,{label:"Impact",children:(0,r.jsxs)("select",{value:m,onChange:e=>h(e.target.value),className:"input",children:[(0,r.jsx)("option",{value:"low",children:"Low"}),(0,r.jsx)("option",{value:"medium",children:"Medium"}),(0,r.jsx)("option",{value:"high",children:"High"}),(0,r.jsx)("option",{value:"critical",children:"Critical"})]})}),(0,r.jsx)(v,{label:"Probability",children:(0,r.jsxs)("select",{value:x,onChange:e=>y(e.target.value),className:"input",children:[(0,r.jsx)("option",{value:"low",children:"Low"}),(0,r.jsx)("option",{value:"medium",children:"Medium"}),(0,r.jsx)("option",{value:"high",children:"High"})]})}),(0,r.jsx)(v,{label:"Risk Level",children:(0,r.jsxs)("select",{value:b,onChange:e=>j(e.target.value),className:"input",children:[(0,r.jsx)("option",{value:"low",children:"Low"}),(0,r.jsx)("option",{value:"medium",children:"Medium"}),(0,r.jsx)("option",{value:"high",children:"High"}),(0,r.jsx)("option",{value:"critical",children:"Critical"})]})}),(0,r.jsx)(v,{label:"Residual",children:(0,r.jsxs)("select",{value:f,onChange:e=>S(e.target.value),className:"input",children:[(0,r.jsx)("option",{value:"acceptable",children:"Acceptable"}),(0,r.jsx)("option",{value:"unacceptable",children:"Unacceptable"}),(0,r.jsx)("option",{value:"pending",children:"Pending"})]})})]}),(0,r.jsx)(v,{label:"Identified Risks",action:{label:"+",onClick:()=>w([...N,{id:`R-001.${N.length+1}`,description:"",impact:"medium",probability:"medium"}])},children:N.map((e,t)=>(0,r.jsxs)("div",{style:{display:"flex",gap:"0.5rem",marginBottom:"0.5rem"},children:[(0,r.jsx)("input",{type:"text",value:e.id,onChange:e=>z(t,"id",e.target.value),placeholder:"R-001.1",className:"input",style:{width:"80px"}}),(0,r.jsx)("input",{type:"text",value:e.description,onChange:e=>z(t,"description",e.target.value),placeholder:"Risk description",className:"input",style:{flex:1}})]},t))}),(0,r.jsx)(v,{label:"Mitigations",action:{label:"+",onClick:()=>B([...R,{risk_id:"",control:"",test:""}])},children:R.map((e,t)=>(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"80px 1fr 1fr",gap:"0.5rem",marginBottom:"0.5rem"},children:[(0,r.jsx)("input",{type:"text",value:e.risk_id,onChange:e=>U(t,"risk_id",e.target.value),placeholder:"R-ID",className:"input"}),(0,r.jsx)("input",{type:"text",value:e.control,onChange:e=>U(t,"control",e.target.value),placeholder:"Control measure",className:"input"}),(0,r.jsx)("input",{type:"text",value:e.test,onChange:e=>U(t,"test",e.target.value),placeholder:"How to test",className:"input"})]},t))})]})}function v({label:e,children:t,action:a}){return(0,r.jsxs)("div",{style:{marginBottom:"1.5rem"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",marginBottom:"0.5rem"},children:[(0,r.jsx)("label",{style:{fontWeight:500},children:e}),a&&(0,r.jsx)("button",{onClick:a.onClick,className:"btn",style:{marginLeft:"0.75rem",padding:"0.25rem 0.5rem",fontSize:"0.75rem"},children:a.label})]}),t]})}function y({ursItems:e,riskItems:t,fsItems:a,counts:i,stepsByType:s}){let[n,c]=(0,l.useState)("fs");return(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{style:{display:"flex",gap:"0.5rem",marginBottom:"1.5rem"},children:[{id:"urs",label:"URS",icon:"\uD83D\uDCCB",color:"var(--success)"},{id:"fs",label:"FS",icon:"⚙️",color:"var(--warning)"},{id:"risk",label:"Risk",icon:"⚠️",color:"#f97316"}].map(e=>(0,r.jsxs)("button",{onClick:()=>c(e.id),className:`btn ${n===e.id?"btn-primary":""}`,style:n!==e.id?{background:"var(--bg-hover)"}:{},children:[e.icon," New ",e.label]},e.id))}),"urs"===n&&(0,r.jsx)(m,{existingCount:i.urs}),"fs"===n&&(0,r.jsx)(o,{ursItems:e,riskItems:t,existingFSCount:i.fs,stepsByType:s}),"risk"===n&&(0,r.jsx)(x,{fsItems:a,existingCount:i.risk})]})}},9339:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={callServer:function(){return i.callServer},createServerReference:function(){return n.createServerReference},findSourceMapURL:function(){return s.findSourceMapURL}};for(var l in r)Object.defineProperty(t,l,{enumerable:!0,get:r[l]});let i=a(7304),s=a(4060),n=a(7197)}},e=>{e.O(0,[441,794,358],()=>e(e.s=994)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[41],{2940:(e,t,r)=>{"use strict";r.d(t,{ReleaseDetailClient:()=>h});var s=r(5155),i=r(2115),a=r(8500),l=r.n(a),n=r(9339);let o=(0,n.createServerReference)("6044f37d73f80ced74d04012a4acd2722aa0f5629c",n.callServer,void 0,n.findSourceMapURL,"updateReleaseAction"),d=(0,n.createServerReference)("6087b612d8ae2f92bf9b052a68daaa99ef945e2755",n.callServer,void 0,n.findSourceMapURL,"tagFSToReleaseAction"),c=(0,n.createServerReference)("6044d053c155caff6616ff229bd75461a60befb59b",n.callServer,void 0,n.findSourceMapURL,"untagFSFromReleaseAction"),m=(0,n.createServerReference)("40be6975492692156210167b8e45cfff82ad857711",n.callServer,void 0,n.findSourceMapURL,"createDefectAction");function h({release:e,taggedFS:t,availableFS:r,testRuns:a,defects:n}){let[h,p]=(0,i.useState)(!1),[g,x]=(0,i.useState)(!1),[v,u]=(0,i.useState)([]),[y,f]=(0,i.useState)(null),[j,b]=(0,i.useState)({isOpen:!1}),[S,N]=(0,i.useState)({title:"",description:"",status:"open"}),[C,k]=(0,i.useState)({titleError:!1,descriptionError:!1}),[R,w]=(0,i.useTransition)(),[B,W]=(0,i.useState)({version:e.version,name:e.name,status:e.status,notes:e.notes||""}),_={planning:{bg:"rgba(168, 85, 247, 0.1)",color:"#a855f7"},testing:{bg:"rgba(59, 130, 246, 0.1)",color:"#3b82f6"},released:{bg:"rgba(34, 197, 94, 0.1)",color:"#22c55e"}}[e.status];return(0,s.jsxs)("div",{style:{maxWidth:"1200px",margin:"0 auto",padding:"2rem"},children:[(0,s.jsx)("div",{style:{marginBottom:"1.5rem"},children:(0,s.jsx)(l(),{href:"/releases",style:{color:"var(--text-secondary)",textDecoration:"none"},children:"← Back to Releases"})}),(0,s.jsxs)("header",{style:{marginBottom:"2rem"},children:[(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1rem",marginBottom:"0.5rem"},children:[(0,s.jsxs)("code",{style:{fontSize:"1.5rem",fontWeight:700,color:_.color},children:[" ",e.id," "]}),(0,s.jsxs)("span",{style:{fontSize:"1.25rem",fontWeight:600},children:["v",e.version]}),(0,s.jsx)("span",{className:"badge",style:{background:_.bg,color:_.color,padding:"0.5rem 1rem"},children:e.status}),(0,s.jsx)("button",{onClick:()=>p(!h),className:"btn btn-primary",style:{marginLeft:"auto"},children:h?"Cancel":"✏️ Edit"})]}),(0,s.jsx)("h1",{style:{fontSize:"2rem",fontWeight:700},children:e.name}),(0,s.jsxs)("p",{style:{color:"var(--text-secondary)"},children:["Created ",e.created_at,e.released_at&&` • Released ${e.released_at}`]})]}),h&&(0,s.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,s.jsx)("h2",{className:"card-title",children:"Edit Release"}),(0,s.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 2fr 1fr",gap:"1rem",marginBottom:"1rem"},children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{style:{display:"block",fontWeight:500,marginBottom:"0.5rem"},children:"Version"}),(0,s.jsx)("input",{type:"text",value:B.version,onChange:e=>W({...B,version:e.target.value}),className:"input"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{style:{display:"block",fontWeight:500,marginBottom:"0.5rem"},children:"Name"}),(0,s.jsx)("input",{type:"text",value:B.name,onChange:e=>W({...B,name:e.target.value}),className:"input"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{style:{display:"block",fontWeight:500,marginBottom:"0.5rem"},children:"Status"}),(0,s.jsxs)("select",{value:B.status,onChange:e=>W({...B,status:e.target.value}),className:"input",children:[(0,s.jsx)("option",{value:"planning",children:"Planning"}),(0,s.jsx)("option",{value:"testing",children:"Testing"}),(0,s.jsx)("option",{value:"released",children:"Released"})]})]})]}),(0,s.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,s.jsx)("label",{style:{display:"block",fontWeight:500,marginBottom:"0.5rem"},children:"Notes"}),(0,s.jsx)("textarea",{value:B.notes,onChange:e=>W({...B,notes:e.target.value}),rows:3,className:"input",style:{resize:"vertical"}})]}),(0,s.jsx)("button",{onClick:()=>{w(async()=>{await o(e.id,B),p(!1)})},className:"btn btn-primary",disabled:R,children:R?"Saving...":"Save Changes"})]}),e.notes&&!h&&(0,s.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,s.jsx)("h2",{className:"card-title",children:"\uD83D\uDCDD Notes"}),(0,s.jsx)("p",{style:{color:"var(--text-secondary)",whiteSpace:"pre-wrap"},children:e.notes})]}),(0,s.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem",borderLeft:"4px solid var(--error)"},children:[(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1rem"},children:[(0,s.jsxs)("h2",{className:"card-title",children:["\uD83D\uDEA8 Defects & Deviations (",n.length,")"]}),(0,s.jsx)("button",{className:"btn",onClick:()=>{b({isOpen:!0,testResultId:void 0,fsId:void 0,scenarioName:void 0}),N({title:"",description:"",status:"open"})},children:"+ Log Defect"})]}),0===n.length?(0,s.jsx)("p",{style:{color:"var(--text-secondary)"},children:"No defects logged. Any failed tests must be resolved or logged as a defect."}):(0,s.jsx)("div",{style:{display:"grid",gap:"0.75rem"},children:n.map(e=>(0,s.jsxs)("div",{style:{padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px",borderLeft:"open"===e.status?"3px solid red":"3px solid green"},children:[(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:"0.5rem"},children:[(0,s.jsxs)("div",{style:{fontWeight:600},children:[e.id,": ",e.title]}),(0,s.jsx)("div",{className:"badge",style:{background:"open"===e.status?"rgba(239, 68, 68, 0.1)":"rgba(34, 197, 94, 0.1)",color:"open"===e.status?"var(--error)":"var(--success)"},children:e.status.toUpperCase()})]}),(0,s.jsx)("div",{style:{fontSize:"0.875rem",color:"var(--text-secondary)",whiteSpace:"pre-wrap"},children:e.description}),e.test_result_id&&(0,s.jsxs)("div",{style:{marginTop:"0.5rem",fontSize:"0.75rem",color:"var(--warning)"},children:["Linked to failed test result #",e.test_result_id]})]},e.id))})]}),(0,s.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1rem"},children:[(0,s.jsxs)("h2",{className:"card-title",style:{margin:0},children:["⚙️ Features (",t.length,")"]}),(0,s.jsx)("button",{onClick:()=>x(!0),className:"btn",disabled:0===r.length,children:"+ Add Features"})]}),g&&(0,s.jsxs)("div",{style:{marginBottom:"1rem",padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px"},children:[(0,s.jsx)("div",{style:{marginBottom:"0.5rem",fontWeight:500},children:"Select features to add:"}),(0,s.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:"0.5rem",marginBottom:"1rem"},children:r.map(e=>(0,s.jsxs)("label",{style:{display:"flex",alignItems:"center",gap:"0.5rem",cursor:"pointer"},children:[(0,s.jsx)("input",{type:"checkbox",checked:v.includes(e.id),onChange:t=>{t.target.checked?u([...v,e.id]):u(v.filter(t=>t!==e.id))}}),(0,s.jsx)("code",{style:{color:"var(--warning)"},children:e.id}),(0,s.jsx)("span",{children:e.title})]},e.id))}),(0,s.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[(0,s.jsx)("button",{onClick:()=>{x(!1),u([])},className:"btn",children:"Cancel"}),(0,s.jsx)("button",{onClick:()=>{0!==v.length&&w(async()=>{await d(e.id,v),x(!1),u([])})},className:"btn btn-primary",disabled:R||0===v.length,children:R?"Adding...":`Add ${v.length} Feature${1!==v.length?"s":""}`})]})]}),0===t.length?(0,s.jsx)("p",{style:{color:"var(--text-secondary)"},children:"No features tagged yet. Add features to track them in this release."}):(0,s.jsx)("div",{style:{display:"grid",gap:"0.5rem"},children:t.map(t=>(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",padding:"0.75rem 1rem",background:"var(--bg-hover)",borderRadius:"8px"},children:[(0,s.jsxs)(l(),{href:`/specs/${t.id}`,style:{flex:1,textDecoration:"none"},children:[(0,s.jsx)("code",{style:{fontWeight:600,color:"var(--warning)",marginRight:"0.75rem"},children:t.id}),(0,s.jsx)("span",{style:{color:"var(--text-primary)"},children:t.title}),(0,s.jsxs)("span",{style:{marginLeft:"0.75rem",color:"var(--text-secondary)",fontSize:"0.875rem"},children:[t.scenario_count," scenarios"]})]}),(0,s.jsx)("button",{onClick:()=>{var r;return r=t.id,void w(async()=>{await c(e.id,r)})},className:"btn",style:{padding:"0.25rem 0.5rem",fontSize:"0.75rem"},disabled:R,children:"\xd7"})]},t.id))})]}),(0,s.jsxs)("div",{className:"card",children:[(0,s.jsxs)("h2",{className:"card-title",children:["\uD83E\uDDEA Test Runs (",a.length,")"]}),0===a.length?(0,s.jsxs)("p",{style:{color:"var(--text-secondary)"},children:["No test runs yet. Import Cucumber results: ",(0,s.jsxs)("code",{children:["machine release import-results results.json -r ",e.id]})]}):(0,s.jsx)("div",{style:{display:"grid",gap:"0.75rem"},children:a.map(e=>{let t=e.total>0?e.passed/e.total*100:0,r=y===e.id;return(0,s.jsxs)("div",{style:{padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px"},children:[(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",cursor:"pointer"},onClick:()=>f(r?null:e.id),children:[(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{style:{fontWeight:600,marginBottom:"0.25rem"},children:[e.failed>0?"❌":"✅"," Run #",e.id," ",r?"\uD83D\uDD3D":"▶"]}),(0,s.jsxs)("div",{style:{fontSize:"0.875rem",color:"var(--text-secondary)"},children:[e.run_date," • ",e.source]})]}),(0,s.jsxs)("div",{style:{display:"flex",gap:"1rem",textAlign:"center"},children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{style:{fontWeight:700,color:"var(--success)"},children:e.passed}),(0,s.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:"Passed"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{style:{fontWeight:700,color:"var(--error)"},children:e.failed}),(0,s.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:"Failed"})]}),(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{style:{fontWeight:700,color:100===t?"var(--success)":t>=80?"var(--warning)":"var(--error)"},children:[t.toFixed(0),"%"]}),(0,s.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:"Pass Rate"})]})]})]}),r&&(0,s.jsx)("div",{style:{marginTop:"1rem",paddingTop:"1rem",borderTop:"1px solid var(--border)"},children:(0,s.jsx)("p",{style:{fontStyle:"italic",color:"var(--text-secondary)"},children:"Detailed results view would go here. For now, check the console logs or database for failure details."})})]},e.id)})})]}),j.isOpen&&(0,s.jsx)("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,background:"rgba(0,0,0,0.5)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:100},children:(0,s.jsxs)("div",{className:"card",style:{width:"500px",maxWidth:"90%"},children:[(0,s.jsx)("h2",{className:"card-title",children:"Log Defect / Deviation"}),(0,s.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,s.jsxs)("label",{style:{display:"block",marginBottom:"0.5rem"},children:["Title ",(0,s.jsx)("span",{style:{color:"var(--error)"},children:"*"})]}),(0,s.jsx)("input",{className:"input",value:S.title,onChange:e=>{N({...S,title:e.target.value}),e.target.value&&k(e=>({...e,titleError:!1}))},placeholder:"Defect summary",style:C.titleError?{borderColor:"var(--error)",boxShadow:"0 0 0 2px rgba(239, 68, 68, 0.2)"}:{}}),C.titleError&&(0,s.jsx)("div",{style:{color:"var(--error)",fontSize:"0.75rem",marginTop:"0.25rem"},children:"Title is required"})]}),(0,s.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,s.jsxs)("label",{style:{display:"block",marginBottom:"0.5rem"},children:["Description & Root Cause ",(0,s.jsx)("span",{style:{color:"var(--error)"},children:"*"})]}),(0,s.jsx)("textarea",{className:"input",rows:5,value:S.description,onChange:e=>{N({...S,description:e.target.value}),e.target.value&&k(e=>({...e,descriptionError:!1}))},placeholder:"Describe the failure, root cause, and why it is acceptable (if deviating) or mitigation plan.",style:C.descriptionError?{borderColor:"var(--error)",boxShadow:"0 0 0 2px rgba(239, 68, 68, 0.2)"}:{}}),C.descriptionError&&(0,s.jsx)("div",{style:{color:"var(--error)",fontSize:"0.75rem",marginTop:"0.25rem"},children:"Description is required"})]}),(0,s.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,s.jsx)("label",{style:{display:"block",marginBottom:"0.5rem"},children:"Status"}),(0,s.jsxs)("select",{className:"input",value:S.status,onChange:e=>N({...S,status:e.target.value}),children:[(0,s.jsx)("option",{value:"open",children:"Open (Needs Fix)"}),(0,s.jsx)("option",{value:"resolved",children:"Resolved (Fixed)"}),(0,s.jsx)("option",{value:"accepted",children:"Accepted (Permanent Deviation)"})]})]}),(0,s.jsxs)("div",{style:{display:"flex",gap:"0.5rem",justifyContent:"flex-end"},children:[(0,s.jsx)("button",{className:"btn",onClick:()=>{b({isOpen:!1}),k({titleError:!1,descriptionError:!1})},children:"Cancel"}),(0,s.jsx)("button",{className:"btn btn-primary",onClick:()=>{let t=!S.title.trim(),r=!S.description.trim();t||r?k({titleError:t,descriptionError:r}):w(async()=>{try{await m({releaseId:e.id,testResultId:j.testResultId,title:S.title,description:S.description,status:S.status}),b({isOpen:!1}),N({title:"",description:"",status:"open"})}catch(e){console.error("Failed to create defect:",e),alert("Failed to create defect. Check console for details.")}})},disabled:R,children:R?"Logging...":"Log Defect"})]})]})})]})}},4926:(e,t,r)=>{Promise.resolve().then(r.bind(r,2940))},9339:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s={callServer:function(){return a.callServer},createServerReference:function(){return n.createServerReference},findSourceMapURL:function(){return l.findSourceMapURL}};for(var i in s)Object.defineProperty(t,i,{enumerable:!0,get:s[i]});let a=r(7304),l=r(4060),n=r(7197)}},e=>{e.O(0,[500,441,794,358],()=>e(e.s=4926)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[549],{5411:(e,t,r)=>{Promise.resolve().then(r.bind(r,8445))},8445:(e,t,r)=>{"use strict";r.d(t,{ReleasesClient:()=>c});var s=r(5155),a=r(2115),l=r(8500),n=r.n(l),i=r(9339);let o=(0,i.createServerReference)("40390e34c6f8a0229b91e5c4921b9fb399908c7adb",i.callServer,void 0,i.findSourceMapURL,"createReleaseAction");function c({releases:e}){let[t,r]=(0,a.useState)(!1),[l,n]=(0,a.useState)(""),[i,c]=(0,a.useState)(""),[m,x]=(0,a.useState)(""),[h,g]=(0,a.useTransition)();return(0,s.jsxs)("div",{style:{maxWidth:"1200px",margin:"0 auto",padding:"2rem"},children:[(0,s.jsx)("header",{style:{marginBottom:"2rem"},children:(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("h1",{style:{fontSize:"2rem",fontWeight:700,marginBottom:"0.5rem"},children:"\uD83D\uDCE6 Releases"}),(0,s.jsx)("p",{style:{color:"var(--text-secondary)"},children:"Manage releases, track test execution, and compare changes"})]}),(0,s.jsx)("button",{onClick:()=>r(!0),className:"btn btn-primary",children:"+ New Release"})]})}),t&&(0,s.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,s.jsx)("h2",{className:"card-title",children:"Create New Release"}),(0,s.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 2fr",gap:"1rem",marginBottom:"1rem"},children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{style:{display:"block",fontWeight:500,marginBottom:"0.5rem"},children:"Version"}),(0,s.jsx)("input",{type:"text",value:l,onChange:e=>n(e.target.value),placeholder:"1.0.0",className:"input"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("label",{style:{display:"block",fontWeight:500,marginBottom:"0.5rem"},children:"Name"}),(0,s.jsx)("input",{type:"text",value:i,onChange:e=>c(e.target.value),placeholder:"Initial Release",className:"input"})]})]}),(0,s.jsxs)("div",{style:{marginBottom:"1rem"},children:[(0,s.jsx)("label",{style:{display:"block",fontWeight:500,marginBottom:"0.5rem"},children:"Notes (optional)"}),(0,s.jsx)("textarea",{value:m,onChange:e=>x(e.target.value),placeholder:"Release notes...",rows:3,className:"input",style:{resize:"vertical"}})]}),(0,s.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[(0,s.jsx)("button",{onClick:()=>r(!1),className:"btn",disabled:h,children:"Cancel"}),(0,s.jsx)("button",{onClick:()=>{g(async()=>{await o({version:l,name:i,notes:m||void 0}),r(!1),n(""),c(""),x("")})},className:"btn btn-primary",disabled:h||!l||!i,children:h?"Creating...":"Create Release"})]})]}),0===e.length?(0,s.jsxs)("div",{className:"card",style:{textAlign:"center",padding:"3rem"},children:[(0,s.jsx)("p",{style:{fontSize:"3rem",marginBottom:"1rem"},children:"\uD83D\uDCE6"}),(0,s.jsx)("h2",{style:{marginBottom:"0.5rem"},children:"No Releases Yet"}),(0,s.jsx)("p",{style:{color:"var(--text-secondary)",marginBottom:"1rem"},children:"Create your first release to start tracking features and test results."}),(0,s.jsx)("button",{onClick:()=>r(!0),className:"btn btn-primary",children:"Create First Release"})]}):(0,s.jsx)("div",{style:{display:"grid",gap:"1rem"},children:e.map(e=>(0,s.jsx)(d,{release:e},e.id))})]})}function d({release:e}){let t={planning:{bg:"rgba(168, 85, 247, 0.1)",color:"#a855f7"},testing:{bg:"rgba(59, 130, 246, 0.1)",color:"#3b82f6"},released:{bg:"rgba(34, 197, 94, 0.1)",color:"#22c55e"}}[e.status];return(0,s.jsx)(n(),{href:`/releases/${e.id}`,style:{textDecoration:"none"},children:(0,s.jsx)("div",{className:"card",style:{borderLeft:`4px solid ${t.color}`,transition:"transform 0.15s, box-shadow 0.15s",cursor:"pointer"},children:(0,s.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start"},children:[(0,s.jsxs)("div",{style:{flex:1},children:[(0,s.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.75rem",marginBottom:"0.5rem"},children:[(0,s.jsx)("code",{style:{fontSize:"1.25rem",fontWeight:700,color:t.color},children:e.id}),(0,s.jsxs)("span",{style:{fontSize:"1rem",fontWeight:600,color:"var(--text-primary)"},children:["v",e.version]}),(0,s.jsx)("span",{className:"badge",style:{background:t.bg,color:t.color},children:e.status})]}),(0,s.jsx)("h3",{style:{fontSize:"1.125rem",fontWeight:600,marginBottom:"0.5rem",color:"var(--text-primary)"},children:e.name}),(0,s.jsxs)("p",{style:{fontSize:"0.875rem",color:"var(--text-secondary)"},children:["Created ",e.created_at,e.released_at&&` • Released ${e.released_at}`]})]}),(0,s.jsxs)("div",{style:{display:"flex",gap:"1.5rem",textAlign:"center"},children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{style:{fontSize:"1.5rem",fontWeight:700,color:"var(--warning)"},children:e.fs_count}),(0,s.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:"Features"})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("div",{style:{fontSize:"1.5rem",fontWeight:700,color:"var(--accent)"},children:e.test_runs}),(0,s.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:"Test Runs"})]}),null!==e.latest_pass_rate&&(0,s.jsxs)("div",{children:[(0,s.jsxs)("div",{style:{fontSize:"1.5rem",fontWeight:700,color:100===e.latest_pass_rate?"var(--success)":e.latest_pass_rate>=80?"var(--warning)":"var(--error)"},children:[e.latest_pass_rate.toFixed(0),"%"]}),(0,s.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)"},children:"Pass Rate"})]})]})]})})})}},9339:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s={callServer:function(){return l.callServer},createServerReference:function(){return i.createServerReference},findSourceMapURL:function(){return n.findSourceMapURL}};for(var a in s)Object.defineProperty(t,a,{enumerable:!0,get:s[a]});let l=r(7304),n=r(4060),i=r(7197)}},e=>{e.O(0,[500,441,794,358],()=>e(e.s=5411)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[385],{5507:(e,t,a)=>{"use strict";a.d(t,{RiskDetailClient:()=>d});var r=a(5155),i=a(2115),s=a(8500),l=a.n(s),n=a(9339);let c=(0,n.createServerReference)("6006b5147757be7ff44bdbd037afdf883ea34b681c",n.callServer,void 0,n.findSourceMapURL,"updateRiskAction");function d({risk:e,linkedFS:t}){let[a,s]=(0,i.useState)(!1),[n,d]=(0,i.useTransition)(),[m,h]=(0,i.useState)({title:e.title,status:e.status,category:e.category,impact:e.impact,probability:e.probability,risk_level:e.risk_level,residual_risk:e.residual_risk}),u=e.title.includes("(Undefined)");return(0,r.jsxs)("div",{children:[(0,r.jsxs)("header",{className:"page-header",children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1rem",marginBottom:"0.5rem",flexWrap:"wrap"},children:[(0,r.jsx)("code",{style:{fontSize:"1.5rem",fontWeight:700,color:"#f97316",background:"rgba(249, 115, 22, 0.1)",padding:"0.5rem 1rem",borderRadius:"8px"},children:e.id}),a?(0,r.jsx)(({value:e,onChange:t,options:i})=>a?(0,r.jsx)("select",{value:e,onChange:e=>t(e.target.value),className:"input",children:i.map(e=>(0,r.jsx)("option",{value:e.value,children:e.label},e.value))}):(0,r.jsx)("span",{style:{textTransform:"capitalize"},children:e}),{value:m.status,onChange:e=>h({...m,status:e}),options:[{value:"draft",label:"Draft"},{value:"review",label:"Review"},{value:"approved",label:"Approved"}]}):(0,r.jsx)("span",{className:`badge ${"approved"===e.status?"badge-success":"badge-warning"}`,children:m.status}),(0,r.jsx)(p,{level:m.risk_level}),u&&!a&&(0,r.jsx)("span",{className:"badge",style:{background:"rgba(239, 68, 68, 0.2)",color:"var(--error)"},children:"Needs Definition"}),(0,r.jsx)("div",{style:{marginLeft:"auto",display:"flex",gap:"0.5rem"},children:a?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("button",{onClick:()=>{h({title:e.title,status:e.status,category:e.category,impact:e.impact,probability:e.probability,risk_level:e.risk_level,residual_risk:e.residual_risk}),s(!1)},className:"btn",disabled:n,children:"Cancel"}),(0,r.jsx)("button",{onClick:()=>{d(async()=>{await c(e.id,m),s(!1)})},className:"btn btn-primary",disabled:n,children:n?"Saving...":"\uD83D\uDCBE Save"})]}):(0,r.jsx)("button",{onClick:()=>s(!0),className:"btn btn-primary",children:"✏️ Edit"})})]}),a?(0,r.jsx)("input",{type:"text",value:m.title,onChange:e=>h({...m,title:e.target.value}),className:"input",style:{fontSize:"1.5rem",fontWeight:700,width:"100%",marginBottom:"0.5rem"}}):(0,r.jsx)("h1",{className:"page-title",children:m.title}),(0,r.jsxs)("p",{className:"page-subtitle",children:["Risk Assessment • Category: ",a?(0,r.jsx)("input",{type:"text",value:m.category,onChange:e=>h({...m,category:e.target.value}),className:"input",style:{width:"200px",display:"inline-block"}}):m.category," • GAMP Category ",e.gamp_category]})]}),u&&!a&&(0,r.jsx)("div",{className:"card",style:{marginBottom:"1.5rem",background:"rgba(239, 68, 68, 0.1)",borderLeft:"4px solid var(--error)"},children:(0,r.jsxs)("p",{style:{margin:0,color:"var(--error)"},children:["⚠️ This Risk was auto-created from FS references. Click ",(0,r.jsx)("strong",{children:"Edit"})," to define its details."]})}),(0,r.jsx)("div",{className:"card",style:{marginBottom:"1.5rem"},children:(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:"1rem"},children:[(0,r.jsx)(o,{label:"Impact",value:m.impact,isEditing:a,onChange:e=>h({...m,impact:e}),options:["low","medium","high","critical"]}),(0,r.jsx)(o,{label:"Probability",value:m.probability,isEditing:a,onChange:e=>h({...m,probability:e}),options:["low","medium","high"]}),(0,r.jsx)(o,{label:"Risk Level",value:m.risk_level,isEditing:a,onChange:e=>h({...m,risk_level:e}),options:["low","medium","high","critical"]}),(0,r.jsx)(o,{label:"Residual Risk",value:m.residual_risk,isEditing:a,onChange:e=>h({...m,residual_risk:e}),options:["acceptable","unacceptable","pending"]})]})}),(0,r.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,r.jsx)("h2",{className:"card-title",children:"⚙️ Linked Functional Specifications"}),(0,r.jsx)("div",{style:{display:"flex",gap:"0.5rem",flexWrap:"wrap"},children:t.map(e=>(0,r.jsx)(l(),{href:`/specs/${e.id}`,children:(0,r.jsxs)("span",{className:"badge",style:{background:"rgba(245, 158, 11, 0.15)",color:"var(--warning)",padding:"0.5rem 1rem"},children:[e.id," - ",e.title]})},e.id))})]}),(0,r.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,r.jsx)("h2",{className:"card-title",children:"\uD83D\uDD34 Identified Risks"}),0===e.risks.length?(0,r.jsx)("p",{style:{color:"var(--text-secondary)",fontStyle:"italic"},children:"No risks defined yet"}):(0,r.jsx)("div",{style:{display:"grid",gap:"0.5rem"},children:e.risks.map((e,t)=>(0,r.jsxs)("div",{style:{padding:"0.75rem 1rem",background:"var(--bg-hover)",borderRadius:"6px",display:"flex",alignItems:"center",gap:"1rem"},children:[(0,r.jsx)("code",{style:{fontWeight:600,color:"#f97316"},children:e.id}),(0,r.jsx)("span",{style:{flex:1,color:"var(--text-secondary)"},children:e.description}),(0,r.jsx)(p,{level:e.impact,small:!0})]},t))})]}),(0,r.jsxs)("div",{className:"card",children:[(0,r.jsx)("h2",{className:"card-title",children:"\uD83D\uDEE1️ Mitigations"}),0===e.mitigations.length?(0,r.jsx)("p",{style:{color:"var(--text-secondary)",fontStyle:"italic"},children:"No mitigations defined yet"}):(0,r.jsxs)("table",{className:"table",children:[(0,r.jsx)("thead",{children:(0,r.jsxs)("tr",{children:[(0,r.jsx)("th",{children:"Risk"}),(0,r.jsx)("th",{children:"Control"}),(0,r.jsx)("th",{children:"Test"})]})}),(0,r.jsx)("tbody",{children:e.mitigations.map((e,t)=>(0,r.jsxs)("tr",{children:[(0,r.jsx)("td",{children:(0,r.jsx)("code",{children:e.risk_id})}),(0,r.jsx)("td",{children:e.control}),(0,r.jsx)("td",{style:{color:"var(--text-secondary)"},children:e.test})]},t))})]})]})]})}function o({label:e,value:t,isEditing:a,onChange:i,options:s}){let l=m(t);return(0,r.jsxs)("div",{style:{textAlign:"center",padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px"},children:[(0,r.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",marginBottom:"0.25rem"},children:e}),a?(0,r.jsx)("select",{value:t,onChange:e=>i(e.target.value),className:"input",style:{width:"100%",textAlign:"center"},children:s.map(e=>(0,r.jsx)("option",{value:e,style:{textTransform:"capitalize"},children:e},e))}):(0,r.jsx)("div",{style:{fontSize:"1.25rem",fontWeight:700,color:l,textTransform:"capitalize"},children:t})]})}function p({level:e,small:t}){let a=m(e);return(0,r.jsx)("span",{className:"badge",style:{background:`${a}20`,color:a,padding:t?"0.25rem 0.5rem":"0.5rem 1rem",fontSize:t?"0.75rem":"0.875rem",textTransform:"capitalize"},children:e})}function m(e){switch(e){case"critical":case"unacceptable":return"#dc2626";case"high":return"#f97316";case"medium":case"pending":return"#eab308";case"low":case"acceptable":return"#22c55e";default:return"var(--text-secondary)"}}},6164:(e,t,a)=>{Promise.resolve().then(a.t.bind(a,8500,23)),Promise.resolve().then(a.bind(a,5507)),Promise.resolve().then(a.bind(a,8169)),Promise.resolve().then(a.bind(a,8384))},8169:(e,t,a)=>{"use strict";a.d(t,{ScenarioList:()=>l});var r=a(5155),i=a(2115);function s({scenario:e,isHighlighted:t}){return(0,r.jsxs)("div",{style:{padding:"1rem",background:t?"rgba(96, 165, 250, 0.1)":"var(--bg-hover)",borderRadius:"8px",border:t?"2px solid var(--accent)":"1px solid var(--border)"},children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.75rem",marginBottom:"0.75rem"},children:[(0,r.jsx)("span",{style:{color:"var(--accent)"},children:"\uD83E\uDDEA"}),(0,r.jsx)("span",{style:{fontWeight:600},children:e.name}),e.tags.length>0&&(0,r.jsx)("span",{style:{marginLeft:"auto",fontSize:"0.75rem",color:"var(--text-secondary)"},children:e.tags.join(" ")})]}),(0,r.jsx)("div",{style:{fontFamily:"monospace",fontSize:"0.8125rem",lineHeight:1.6},children:e.steps.map((e,t)=>{var a;return(0,r.jsx)("div",{style:{color:(a=e).startsWith("Given")?"#a78bfa":a.startsWith("When")?"#60a5fa":a.startsWith("Then")?"#34d399":"var(--text-secondary)"},children:e},t)})})]})}function l({scenarios:e,highlightScenario:t}){let a=(0,i.useRef)(null);return(0,i.useEffect)(()=>{t&&a.current&&setTimeout(()=>{a.current?.scrollIntoView({behavior:"smooth",block:"center"})},100)},[t]),(0,r.jsx)("div",{style:{display:"grid",gap:"0.75rem"},children:e.map((e,i)=>{let l=t===e.name;return(0,r.jsx)("div",{ref:l?a:void 0,children:(0,r.jsx)(s,{scenario:e,isHighlighted:l})},i)})})}a(8500)},8384:(e,t,a)=>{"use strict";a.d(t,{URSDetailClient:()=>d});var r=a(5155),i=a(2115),s=a(8500),l=a.n(s),n=a(9339);let c=(0,n.createServerReference)("6001d939b150c0d179141b174c280871a1034e995a",n.callServer,void 0,n.findSourceMapURL,"updateURSAction");function d({urs:e,linkedFS:t,linkedRisks:a}){let[s,n]=(0,i.useState)(!1),[d,p]=(0,i.useTransition)(),[m,h]=(0,i.useState)({title:e.title,status:e.status,priority:e.priority,owner:e.owner,category:e.category,business_need:e.business_need,intended_use:e.intended_use,acceptance_criteria:e.acceptance_criteria}),u=e.title.includes("(Undefined)"),g=({value:e,onChange:t,multiline:a,placeholder:i})=>s?a?(0,r.jsx)("textarea",{value:e,onChange:e=>t(e.target.value),rows:4,className:"input",style:{width:"100%",resize:"vertical"}}):(0,r.jsx)("input",{type:"text",value:e,onChange:e=>t(e.target.value),className:"input",style:{width:"100%"}}):(0,r.jsx)("span",{style:{whiteSpace:"pre-wrap",color:"var(--text-secondary)",fontStyle:e?"normal":"italic"},children:e||i||"Not defined"}),x=({value:e,onChange:t,options:a})=>s?(0,r.jsx)("select",{value:e,onChange:e=>t(e.target.value),className:"input",children:a.map(e=>(0,r.jsx)("option",{value:e.value,children:e.label},e.value))}):(0,r.jsx)("span",{style:{textTransform:"capitalize"},children:e});return(0,r.jsxs)("div",{children:[(0,r.jsxs)("header",{className:"page-header",children:[(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"1rem",marginBottom:"0.5rem",flexWrap:"wrap"},children:[(0,r.jsx)("code",{style:{fontSize:"1.5rem",fontWeight:700,color:"var(--success)",background:"rgba(16, 185, 129, 0.1)",padding:"0.5rem 1rem",borderRadius:"8px"},children:e.id}),s?(0,r.jsx)(x,{value:m.status,onChange:e=>h({...m,status:e}),options:[{value:"draft",label:"Draft"},{value:"review",label:"Review"},{value:"approved",label:"Approved"}]}):(0,r.jsx)("span",{className:`badge ${"approved"===e.status?"badge-success":"badge-warning"}`,children:m.status}),s?(0,r.jsx)(x,{value:m.priority,onChange:e=>h({...m,priority:e}),options:[{value:"critical",label:"Critical"},{value:"high",label:"High"},{value:"medium",label:"Medium"},{value:"low",label:"Low"}]}):(0,r.jsx)("span",{className:"badge",style:{background:"var(--bg-hover)"},children:m.priority}),u&&!s&&(0,r.jsx)("span",{className:"badge",style:{background:"rgba(239, 68, 68, 0.2)",color:"var(--error)"},children:"Needs Definition"}),(0,r.jsx)("div",{style:{marginLeft:"auto",display:"flex",gap:"0.5rem"},children:s?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("button",{onClick:()=>{h({title:e.title,status:e.status,priority:e.priority,owner:e.owner,category:e.category,business_need:e.business_need,intended_use:e.intended_use,acceptance_criteria:e.acceptance_criteria}),n(!1)},className:"btn",disabled:d,children:"Cancel"}),(0,r.jsx)("button",{onClick:()=>{p(async()=>{await c(e.id,m),n(!1)})},className:"btn btn-primary",disabled:d,children:d?"Saving...":"\uD83D\uDCBE Save"})]}):(0,r.jsx)("button",{onClick:()=>n(!0),className:"btn btn-primary",children:"✏️ Edit"})})]}),s?(0,r.jsx)("input",{type:"text",value:m.title,onChange:e=>h({...m,title:e.target.value}),className:"input",style:{fontSize:"1.5rem",fontWeight:700,width:"100%",marginBottom:"0.5rem"}}):(0,r.jsx)("h1",{className:"page-title",children:m.title}),(0,r.jsxs)("p",{className:"page-subtitle",children:["User Requirement Specification • Owner: ",s?(0,r.jsx)("input",{type:"text",value:m.owner,onChange:e=>h({...m,owner:e.target.value}),className:"input",style:{width:"200px",display:"inline-block"}}):m.owner]})]}),u&&!s&&(0,r.jsx)("div",{className:"card",style:{marginBottom:"1.5rem",background:"rgba(239, 68, 68, 0.1)",borderLeft:"4px solid var(--error)"},children:(0,r.jsxs)("p",{style:{margin:0,color:"var(--error)"},children:["⚠️ This URS was auto-created from FS references. Click ",(0,r.jsx)("strong",{children:"Edit"})," to define its details."]})}),(0,r.jsxs)("div",{className:"card",style:{marginBottom:"1.5rem"},children:[(0,r.jsx)("h2",{className:"card-title",children:"\uD83D\uDD17 Traceability"}),(0,r.jsxs)("div",{style:{display:"flex",gap:"2rem",flexWrap:"wrap"},children:[(0,r.jsx)(o,{label:"Functional Specs",count:t.length,color:"var(--warning)"}),(0,r.jsx)(o,{label:"Test Scenarios",count:t.reduce((e,t)=>e+t.scenarios.length,0),color:"var(--accent)"}),(0,r.jsx)(o,{label:"Risk Assessments",count:a.length,color:"#f97316"})]})]}),(0,r.jsxs)("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:"1.5rem"},children:[(0,r.jsxs)("div",{className:"card",children:[(0,r.jsx)("h2",{className:"card-title",children:"\uD83D\uDCCB Business Need"}),(0,r.jsx)("div",{style:{lineHeight:1.7},children:(0,r.jsx)(g,{value:m.business_need,onChange:e=>h({...m,business_need:e}),multiline:!0,placeholder:"Not defined"})})]}),(0,r.jsxs)("div",{className:"card",children:[(0,r.jsx)("h2",{className:"card-title",children:"\uD83C\uDFAF Intended Use"}),(0,r.jsx)("div",{style:{lineHeight:1.7},children:(0,r.jsx)(g,{value:m.intended_use,onChange:e=>h({...m,intended_use:e}),multiline:!0,placeholder:"Not defined"})})]})]}),(0,r.jsxs)("div",{className:"card",style:{marginTop:"1.5rem"},children:[(0,r.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1rem"},children:[(0,r.jsx)("h2",{className:"card-title",style:{margin:0},children:"✅ Acceptance Criteria"}),s&&(0,r.jsx)("button",{onClick:()=>h({...m,acceptance_criteria:[...m.acceptance_criteria,""]}),className:"btn",style:{padding:"0.25rem 0.75rem"},children:"+ Add"})]}),0===m.acceptance_criteria.length?(0,r.jsx)("p",{style:{color:"var(--text-secondary)",fontStyle:"italic"},children:"No acceptance criteria defined"}):s?(0,r.jsx)("div",{style:{display:"grid",gap:"0.5rem"},children:m.acceptance_criteria.map((e,t)=>(0,r.jsxs)("div",{style:{display:"flex",gap:"0.5rem"},children:[(0,r.jsx)("input",{type:"text",value:e,onChange:e=>{let a=[...m.acceptance_criteria];a[t]=e.target.value,h({...m,acceptance_criteria:a})},className:"input",style:{flex:1},placeholder:`Criterion ${t+1}`}),(0,r.jsx)("button",{onClick:()=>h({...m,acceptance_criteria:m.acceptance_criteria.filter((e,a)=>a!==t)}),className:"btn",style:{padding:"0.5rem"},children:"\xd7"})]},t))}):(0,r.jsx)("ul",{style:{margin:0,paddingLeft:"1.5rem"},children:m.acceptance_criteria.map((e,t)=>(0,r.jsx)("li",{style:{marginBottom:"0.5rem",color:"var(--text-secondary)"},children:e},t))})]}),(0,r.jsxs)("div",{className:"card",style:{marginTop:"1.5rem"},children:[(0,r.jsx)("h2",{className:"card-title",children:"⚙️ Linked Functional Specifications"}),0===t.length?(0,r.jsx)("p",{style:{color:"var(--text-secondary)"},children:"No FS linked yet"}):(0,r.jsx)("div",{style:{display:"grid",gap:"1rem"},children:t.map(e=>(0,r.jsx)(l(),{href:`/specs/${e.id}`,style:{textDecoration:"none"},children:(0,r.jsx)("div",{style:{padding:"1rem",background:"var(--bg-hover)",borderRadius:"8px",borderLeft:"4px solid var(--warning)"},children:(0,r.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:"0.75rem"},children:[(0,r.jsx)("code",{style:{fontWeight:600,color:"var(--warning)"},children:e.id}),(0,r.jsx)("span",{style:{color:"var(--text-primary)"},children:e.title}),(0,r.jsxs)("span",{className:"badge badge-success",style:{marginLeft:"auto"},children:[e.scenario_count," tests"]})]})})},e.id))})]})]})}function o({label:e,count:t,color:a}){return(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{style:{fontSize:"0.75rem",color:"var(--text-secondary)",marginBottom:"0.25rem"},children:e}),(0,r.jsx)("div",{style:{fontSize:"1.5rem",fontWeight:700,color:a},children:t})]})}},9339:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={callServer:function(){return s.callServer},createServerReference:function(){return n.createServerReference},findSourceMapURL:function(){return l.findSourceMapURL}};for(var i in r)Object.defineProperty(t,i,{enumerable:!0,get:r[i]});let s=a(7304),l=a(4060),n=a(7197)}},e=>{e.O(0,[500,441,794,358],()=>e(e.s=6164)),_N_E=e.O()}]);