@leanspec/ui 0.2.6-dev.20251125070417 → 0.2.6-dev.20251125092944

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 (119) hide show
  1. package/.next/standalone/packages/ui/.next/BUILD_ID +1 -1
  2. package/.next/standalone/packages/ui/.next/build-manifest.json +2 -2
  3. package/.next/standalone/packages/ui/.next/prerender-manifest.json +3 -3
  4. package/.next/standalone/packages/ui/.next/server/app/_global-error.html +2 -2
  5. package/.next/standalone/packages/ui/.next/server/app/_global-error.rsc +1 -1
  6. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  7. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  8. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  9. package/.next/standalone/packages/ui/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  10. package/.next/standalone/packages/ui/.next/server/app/_not-found/page.js.nft.json +1 -1
  11. package/.next/standalone/packages/ui/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  12. package/.next/standalone/packages/ui/.next/server/app/_not-found.html +2 -2
  13. package/.next/standalone/packages/ui/.next/server/app/_not-found.rsc +17 -17
  14. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_full.segment.rsc +17 -17
  15. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_index.segment.rsc +11 -11
  16. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  17. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
  18. package/.next/standalone/packages/ui/.next/server/app/_not-found.segments/_tree.segment.rsc +5 -5
  19. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/route.js.nft.json +1 -1
  20. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/[spec]/route.js.nft.json +1 -1
  21. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/specs/route.js.nft.json +1 -1
  22. package/.next/standalone/packages/ui/.next/server/app/api/projects/[id]/stats/route.js.nft.json +1 -1
  23. package/.next/standalone/packages/ui/.next/server/app/api/projects/route.js.nft.json +1 -1
  24. package/.next/standalone/packages/ui/.next/server/app/api/revalidate/route.js.nft.json +1 -1
  25. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/dependency-graph/route.js.nft.json +1 -1
  26. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/route.js.nft.json +1 -1
  27. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/status/route.js.nft.json +1 -1
  28. package/.next/standalone/packages/ui/.next/server/app/api/specs/[id]/subspecs/[file]/route.js.nft.json +1 -1
  29. package/.next/standalone/packages/ui/.next/server/app/api/stats/route.js.nft.json +1 -1
  30. package/.next/standalone/packages/ui/.next/server/app/page.js.nft.json +1 -1
  31. package/.next/standalone/packages/ui/.next/server/app/page_client-reference-manifest.js +1 -1
  32. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page.js.nft.json +1 -1
  33. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/page_client-reference-manifest.js +1 -1
  34. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page.js.nft.json +1 -1
  35. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/[specId]/page_client-reference-manifest.js +1 -1
  36. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page.js.nft.json +1 -1
  37. package/.next/standalone/packages/ui/.next/server/app/projects/[projectId]/specs/page_client-reference-manifest.js +1 -1
  38. package/.next/standalone/packages/ui/.next/server/app/projects/page.js.nft.json +1 -1
  39. package/.next/standalone/packages/ui/.next/server/app/projects/page_client-reference-manifest.js +1 -1
  40. package/.next/standalone/packages/ui/.next/server/app/projects.html +2 -2
  41. package/.next/standalone/packages/ui/.next/server/app/projects.rsc +11 -11
  42. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_full.segment.rsc +11 -11
  43. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_index.segment.rsc +9 -9
  44. package/.next/standalone/packages/ui/.next/server/app/projects.segments/_tree.segment.rsc +2 -2
  45. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects/__PAGE__.segment.rsc +2 -2
  46. package/.next/standalone/packages/ui/.next/server/app/projects.segments/projects.segment.rsc +1 -1
  47. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page.js.nft.json +1 -1
  48. package/.next/standalone/packages/ui/.next/server/app/specs/[id]/page_client-reference-manifest.js +1 -1
  49. package/.next/standalone/packages/ui/.next/server/app/specs/page.js.nft.json +1 -1
  50. package/.next/standalone/packages/ui/.next/server/app/specs/page_client-reference-manifest.js +1 -1
  51. package/.next/standalone/packages/ui/.next/server/app/stats/page.js.nft.json +1 -1
  52. package/.next/standalone/packages/ui/.next/server/app/stats/page_client-reference-manifest.js +1 -1
  53. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__1d0c2012._.js +1 -1
  54. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__73f60f12._.js +1 -1
  55. package/.next/standalone/packages/ui/.next/server/chunks/ssr/[root-of-the-server]__a7ae8552._.js +1 -1
  56. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_14118969._.js +3 -0
  57. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_497c8b73._.js +3 -0
  58. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_c2f54661._.js +1 -1
  59. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_app_specs_specs-client_tsx_0bb8f8f8._.js +1 -1
  60. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_spec-detail-loading-shell_tsx_f7136fb6._.js +3 -0
  61. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_specs-nav-sidebar_tsx_8237ed13._.js +1 -1
  62. package/.next/standalone/packages/ui/.next/server/chunks/ssr/packages_ui_src_components_ui_select_tsx_7e21d40f._.js +1 -1
  63. package/.next/standalone/packages/ui/.next/server/pages/404.html +2 -2
  64. package/.next/standalone/packages/ui/.next/server/pages/500.html +2 -2
  65. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.js +1 -1
  66. package/.next/standalone/packages/ui/.next/server/server-reference-manifest.json +1 -1
  67. package/.next/standalone/packages/ui/.next/static/chunks/15ea4a571afd2593.css +1 -0
  68. package/.next/standalone/packages/ui/.next/static/chunks/{a055d4b2866ff8d4.js → 1c1c8333e0a19d47.js} +1 -1
  69. package/.next/standalone/packages/ui/.next/static/chunks/1fe09300b3bcaa23.js +1 -0
  70. package/.next/standalone/packages/ui/.next/static/chunks/3f4207bc02becc30.js +1 -0
  71. package/.next/{static/chunks/afb7c5a4255f4081.js → standalone/packages/ui/.next/static/chunks/43bc30cd222b1e74.js} +1 -1
  72. package/.next/standalone/packages/ui/.next/static/chunks/5f0014bb843d2f45.js +1 -0
  73. package/.next/standalone/packages/ui/.next/static/chunks/7e0dbfe036ccd85d.js +1 -0
  74. package/.next/standalone/packages/ui/.next/static/chunks/{17471c87082c392c.js → 86bf3f94f2b0b8fc.js} +2 -2
  75. package/.next/standalone/packages/ui/.next/static/chunks/96339d2504976e86.js +1 -0
  76. package/.next/standalone/packages/ui/.next/static/chunks/d4de5562fb8f6e76.js +1 -0
  77. package/.next/standalone/packages/ui/leanspec.db +0 -0
  78. package/.next/standalone/packages/ui/package.json +1 -1
  79. package/.next/standalone/packages/ui/src/app/globals.css +25 -0
  80. package/.next/standalone/packages/ui/src/app/specs/specs-client.tsx +180 -140
  81. package/.next/standalone/packages/ui/src/components/main-sidebar.tsx +3 -3
  82. package/.next/standalone/packages/ui/src/components/spec-detail-client.tsx +25 -7
  83. package/.next/standalone/packages/ui/src/components/specs-nav-sidebar.tsx +3 -13
  84. package/.next/standalone/packages/ui/src/contexts/project-context.tsx +14 -14
  85. package/.next/standalone/packages/ui/tsconfig.tsbuildinfo +1 -1
  86. package/.next/static/chunks/15ea4a571afd2593.css +1 -0
  87. package/.next/static/chunks/{a055d4b2866ff8d4.js → 1c1c8333e0a19d47.js} +1 -1
  88. package/.next/static/chunks/1fe09300b3bcaa23.js +1 -0
  89. package/.next/static/chunks/3f4207bc02becc30.js +1 -0
  90. package/.next/{standalone/packages/ui/.next/static/chunks/afb7c5a4255f4081.js → static/chunks/43bc30cd222b1e74.js} +1 -1
  91. package/.next/static/chunks/5f0014bb843d2f45.js +1 -0
  92. package/.next/static/chunks/7e0dbfe036ccd85d.js +1 -0
  93. package/.next/static/chunks/{17471c87082c392c.js → 86bf3f94f2b0b8fc.js} +2 -2
  94. package/.next/static/chunks/96339d2504976e86.js +1 -0
  95. package/.next/static/chunks/d4de5562fb8f6e76.js +1 -0
  96. package/package.json +1 -1
  97. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_196b5a83._.js +0 -3
  98. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_6e4dd8b6._.js +0 -3
  99. package/.next/standalone/packages/ui/.next/server/chunks/ssr/_f1e82b43._.js +0 -3
  100. package/.next/standalone/packages/ui/.next/static/chunks/220ba5cb8fe4dd69.js +0 -1
  101. package/.next/standalone/packages/ui/.next/static/chunks/35ccd3286e538bd2.js +0 -1
  102. package/.next/standalone/packages/ui/.next/static/chunks/5a6fc30cd64085b4.css +0 -1
  103. package/.next/standalone/packages/ui/.next/static/chunks/843e1dfdc28e1385.js +0 -1
  104. package/.next/standalone/packages/ui/.next/static/chunks/9dad7fd31627df80.js +0 -1
  105. package/.next/standalone/packages/ui/.next/static/chunks/f9db24028d8c058e.js +0 -1
  106. package/.next/standalone/packages/ui/.next/static/chunks/fb640f50455ba34f.js +0 -1
  107. package/.next/static/chunks/220ba5cb8fe4dd69.js +0 -1
  108. package/.next/static/chunks/35ccd3286e538bd2.js +0 -1
  109. package/.next/static/chunks/5a6fc30cd64085b4.css +0 -1
  110. package/.next/static/chunks/843e1dfdc28e1385.js +0 -1
  111. package/.next/static/chunks/9dad7fd31627df80.js +0 -1
  112. package/.next/static/chunks/f9db24028d8c058e.js +0 -1
  113. package/.next/static/chunks/fb640f50455ba34f.js +0 -1
  114. /package/.next/standalone/packages/ui/.next/static/{X4lxx4RWGwS4tCD7M7u1r → iWGI_kVMs-xybaG9ZCyWK}/_buildManifest.js +0 -0
  115. /package/.next/standalone/packages/ui/.next/static/{X4lxx4RWGwS4tCD7M7u1r → iWGI_kVMs-xybaG9ZCyWK}/_clientMiddlewareManifest.json +0 -0
  116. /package/.next/standalone/packages/ui/.next/static/{X4lxx4RWGwS4tCD7M7u1r → iWGI_kVMs-xybaG9ZCyWK}/_ssgManifest.js +0 -0
  117. /package/.next/static/{X4lxx4RWGwS4tCD7M7u1r → iWGI_kVMs-xybaG9ZCyWK}/_buildManifest.js +0 -0
  118. /package/.next/static/{X4lxx4RWGwS4tCD7M7u1r → iWGI_kVMs-xybaG9ZCyWK}/_clientMiddlewareManifest.json +0 -0
  119. /package/.next/static/{X4lxx4RWGwS4tCD7M7u1r → iWGI_kVMs-xybaG9ZCyWK}/_ssgManifest.js +0 -0
@@ -1,5 +1,5 @@
1
1
  module.exports=[63652,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},80375,(a,b,c)=>{"use strict";function d({widthInt:a,heightInt:b,blurWidth:c,blurHeight:d,blurDataURL:e,objectFit:f}){let g=c?40*c:a,h=d?40*d:b,i=g&&h?`viewBox='0 0 ${g} ${h}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${i}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${i?"none":"contain"===f?"xMidYMid":"cover"===f?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${e}'/%3E%3C/svg%3E`}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"getImageBlurSvg",{enumerable:!0,get:function(){return d}})},729,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={VALID_LOADERS:function(){return f},imageConfigDefault:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=["default","imgix","cloudinary","akamai","custom"],g={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumRedirects:3,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1}},4484,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"getImgProps",{enumerable:!0,get:function(){return i}}),a.r(44127);let d=a.r(80375),e=a.r(729),f=["-moz-initial","fill","none","scale-down",void 0];function g(a){return void 0!==a.default}function h(a){return void 0===a?a:"number"==typeof a?Number.isFinite(a)?a:NaN:"string"==typeof a&&/^[0-9]+$/.test(a)?parseInt(a,10):NaN}function i({src:a,sizes:b,unoptimized:c=!1,priority:i=!1,preload:j=!1,loading:k,className:l,quality:m,width:n,height:o,fill:p=!1,style:q,overrideSrc:r,onLoad:s,onLoadingComplete:t,placeholder:u="empty",blurDataURL:v,fetchPriority:w,decoding:x="async",layout:y,objectFit:z,objectPosition:A,lazyBoundary:B,lazyRoot:C,...D},E){var F;let G,H,I,{imgConf:J,showAltText:K,blurComplete:L,defaultLoader:M}=E,N=J||e.imageConfigDefault;if("allSizes"in N)G=N;else{let a=[...N.deviceSizes,...N.imageSizes].sort((a,b)=>a-b),b=N.deviceSizes.sort((a,b)=>a-b),c=N.qualities?.sort((a,b)=>a-b);G={...N,allSizes:a,deviceSizes:b,qualities:c}}if(void 0===M)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let O=D.loader||M;delete D.loader,delete D.srcSet;let P="__next_img_default"in O;if(P){if("custom"===G.loader)throw Object.defineProperty(Error(`Image with src "${a}" is missing "loader" prop.
2
2
  Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let a=O;O=b=>{let{config:c,...d}=b;return a(d)}}if(y){"fill"===y&&(p=!0);let a={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[y];a&&(q={...q,...a});let c={responsive:"100vw",fill:"100vw"}[y];c&&!b&&(b=c)}let Q="",R=h(n),S=h(o);if((F=a)&&"object"==typeof F&&(g(F)||void 0!==F.src)){let b=g(a)?a.default:a;if(!b.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(b)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!b.height||!b.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(b)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(H=b.blurWidth,I=b.blurHeight,v=v||b.blurDataURL,Q=b.src,!p)if(R||S){if(R&&!S){let a=R/b.width;S=Math.round(b.height*a)}else if(!R&&S){let a=S/b.height;R=Math.round(b.width*a)}}else R=b.width,S=b.height}let T=!i&&!j&&("lazy"===k||void 0===k);(!(a="string"==typeof a?a:Q)||a.startsWith("data:")||a.startsWith("blob:"))&&(c=!0,T=!1),G.unoptimized&&(c=!0),P&&!G.dangerouslyAllowSVG&&a.split("?",1)[0].endsWith(".svg")&&(c=!0);let U=h(m),V=Object.assign(p?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:z,objectPosition:A}:{},K?{}:{color:"transparent"},q),W=L||"empty"===u?null:"blur"===u?`url("data:image/svg+xml;charset=utf-8,${(0,d.getImageBlurSvg)({widthInt:R,heightInt:S,blurWidth:H,blurHeight:I,blurDataURL:v||"",objectFit:V.objectFit})}")`:`url("${u}")`,X=f.includes(V.objectFit)?"fill"===V.objectFit?"100% 100%":"cover":V.objectFit,Y=W?{backgroundSize:X,backgroundPosition:V.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:W}:{},Z=function({config:a,src:b,unoptimized:c,width:d,quality:e,sizes:f,loader:g}){if(c)return{src:b,srcSet:void 0,sizes:void 0};let{widths:h,kind:i}=function({deviceSizes:a,allSizes:b},c,d){if(d){let c=/(^|\s)(1?\d?\d)vw/g,e=[];for(let a;a=c.exec(d);)e.push(parseInt(a[2]));if(e.length){let c=.01*Math.min(...e);return{widths:b.filter(b=>b>=a[0]*c),kind:"w"}}return{widths:b,kind:"w"}}return"number"!=typeof c?{widths:a,kind:"w"}:{widths:[...new Set([c,2*c].map(a=>b.find(b=>b>=a)||b[b.length-1]))],kind:"x"}}(a,d,f),j=h.length-1;return{sizes:f||"w"!==i?f:"100vw",srcSet:h.map((c,d)=>`${g({config:a,src:b,quality:e,width:c})} ${"w"===i?c:d+1}${i}`).join(", "),src:g({config:a,src:b,quality:e,width:h[j]})}}({config:G,src:a,unoptimized:c,width:R,quality:U,sizes:b,loader:O}),$=T?"lazy":k;return{props:{...D,loading:$,fetchPriority:w,width:R,height:S,decoding:x,className:l,style:{...V,...Y},sizes:Z.sizes,srcSet:Z.srcSet,src:r||Z.src},meta:{unoptimized:c,preload:j||i,placeholder:u,fill:p}}}},17303,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return f}});let d=a.r(36883),e=()=>{};function f(a){let{headManager:b,reduceComponentsToState:c}=a;function f(){if(b&&b.mountedInstances){let a=d.Children.toArray(Array.from(b.mountedInstances).filter(Boolean));b.updateHead(c(a))}}return b?.mountedInstances?.add(a.children),f(),e(()=>(b?.mountedInstances?.add(a.children),()=>{b?.mountedInstances?.delete(a.children)})),e(()=>(b&&(b._pendingUpdate=f),()=>{b&&(b._pendingUpdate=f)})),null}},61881,(a,b,c)=>{"use strict";b.exports=a.r(18382).vendored.contexts.HeadManagerContext},61964,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return p},defaultHead:function(){return l}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(63652),g=a.r(3988),h=a.r(40352),i=g._(a.r(36883)),j=f._(a.r(17303)),k=a.r(61881);function l(){return[(0,h.jsx)("meta",{charSet:"utf-8"},"charset"),(0,h.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function m(a,b){return"string"==typeof b||"number"==typeof b?a:b.type===i.default.Fragment?a.concat(i.default.Children.toArray(b.props.children).reduce((a,b)=>"string"==typeof b||"number"==typeof b?a:a.concat(b),[])):a.concat(b)}a.r(44127);let n=["name","httpEquiv","charSet","itemProp"];function o(a){let b,c,d,e;return a.reduce(m,[]).reverse().concat(l().reverse()).filter((b=new Set,c=new Set,d=new Set,e={},a=>{let f=!0,g=!1;if(a.key&&"number"!=typeof a.key&&a.key.indexOf("$")>0){g=!0;let c=a.key.slice(a.key.indexOf("$")+1);b.has(c)?f=!1:b.add(c)}switch(a.type){case"title":case"base":c.has(a.type)?f=!1:c.add(a.type);break;case"meta":for(let b=0,c=n.length;b<c;b++){let c=n[b];if(a.props.hasOwnProperty(c))if("charSet"===c)d.has(c)?f=!1:d.add(c);else{let b=a.props[c],d=e[c]||new Set;("name"!==c||!g)&&d.has(b)?f=!1:(d.add(b),e[c]=d)}}}return f})).reverse().map((a,b)=>{let c=a.key||b;return i.default.cloneElement(a,{key:c})})}let p=function({children:a}){let b=(0,i.useContext)(k.HeadManagerContext);return(0,h.jsx)(j.default,{reduceComponentsToState:o,headManager:b,children:a})};("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},9328,(a,b,c)=>{"use strict";b.exports=a.r(18382).vendored.contexts.ImageConfigContext},97867,(a,b,c)=>{"use strict";b.exports=a.r(18382).vendored.contexts.RouterContext},98783,(a,b,c)=>{"use strict";function d(a,b){let c=a||75;return b?.qualities?.length?b.qualities.reduce((a,b)=>Math.abs(b-c)<Math.abs(a-c)?b:a,0):c}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"findClosestQuality",{enumerable:!0,get:function(){return d}})},56797,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return f}});let d=a.r(98783);function e({config:a,src:b,width:c,quality:e}){if(b.startsWith("/")&&b.includes("?")&&a.localPatterns?.length===1&&"**"===a.localPatterns[0].pathname&&""===a.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${b}" is using a query string which is not configured in images.localPatterns.
3
- Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let f=(0,d.findClosestQuality)(e,a);return`${a.path}?url=${encodeURIComponent(b)}&w=${c}&q=${f}${b.startsWith("/_next/static/media/"),""}`}e.__next_img_default=!0;let f=e},74561,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"Image",{enumerable:!0,get:function(){return u}});let d=a.r(63652),e=a.r(3988),f=a.r(40352),g=e._(a.r(36883)),h=d._(a.r(90073)),i=d._(a.r(61964)),j=a.r(4484),k=a.r(729),l=a.r(9328);a.r(44127);let m=a.r(97867),n=d._(a.r(56797)),o=a.r(88100),p={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function q(a,b,c,d,e,f,g){let h=a?.src;a&&a["data-loaded-src"]!==h&&(a["data-loaded-src"]=h,("decode"in a?a.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(a.parentElement&&a.isConnected){if("empty"!==b&&e(!0),c?.current){let b=new Event("load");Object.defineProperty(b,"target",{writable:!1,value:a});let d=!1,e=!1;c.current({...b,nativeEvent:b,currentTarget:a,target:a,isDefaultPrevented:()=>d,isPropagationStopped:()=>e,persist:()=>{},preventDefault:()=>{d=!0,b.preventDefault()},stopPropagation:()=>{e=!0,b.stopPropagation()}})}d?.current&&d.current(a)}}))}function r(a){return g.use?{fetchPriority:a}:{fetchpriority:a}}globalThis.__NEXT_IMAGE_IMPORTED=!0;let s=(0,g.forwardRef)(({src:a,srcSet:b,sizes:c,height:d,width:e,decoding:h,className:i,style:j,fetchPriority:k,placeholder:l,loading:m,unoptimized:n,fill:p,onLoadRef:s,onLoadingCompleteRef:t,setBlurComplete:u,setShowAltText:v,sizesInput:w,onLoad:x,onError:y,...z},A)=>{let B=(0,g.useCallback)(a=>{a&&(y&&(a.src=a.src),a.complete&&q(a,l,s,t,u,n,w))},[a,l,s,t,u,y,n,w]),C=(0,o.useMergedRef)(A,B);return(0,f.jsx)("img",{...z,...r(k),loading:m,width:e,height:d,decoding:h,"data-nimg":p?"fill":"1",className:i,style:j,sizes:c,srcSet:b,src:a,ref:C,onLoad:a=>{q(a.currentTarget,l,s,t,u,n,w)},onError:a=>{v(!0),"empty"!==l&&u(!0),y&&y(a)}})});function t({isAppRouter:a,imgAttributes:b}){let c={as:"image",imageSrcSet:b.srcSet,imageSizes:b.sizes,crossOrigin:b.crossOrigin,referrerPolicy:b.referrerPolicy,...r(b.fetchPriority)};return a&&h.default.preload?(h.default.preload(b.src,c),null):(0,f.jsx)(i.default,{children:(0,f.jsx)("link",{rel:"preload",href:b.srcSet?void 0:b.src,...c},"__nimg-"+b.src+b.srcSet+b.sizes)})}let u=(0,g.forwardRef)((a,b)=>{let c=(0,g.useContext)(m.RouterContext),d=(0,g.useContext)(l.ImageConfigContext),e=(0,g.useMemo)(()=>{let a=p||d||k.imageConfigDefault,b=[...a.deviceSizes,...a.imageSizes].sort((a,b)=>a-b),c=a.deviceSizes.sort((a,b)=>a-b),e=a.qualities?.sort((a,b)=>a-b);return{...a,allSizes:b,deviceSizes:c,qualities:e,localPatterns:d?.localPatterns}},[d]),{onLoad:h,onLoadingComplete:i}=a,o=(0,g.useRef)(h);(0,g.useEffect)(()=>{o.current=h},[h]);let q=(0,g.useRef)(i);(0,g.useEffect)(()=>{q.current=i},[i]);let[r,u]=(0,g.useState)(!1),[v,w]=(0,g.useState)(!1),{props:x,meta:y}=(0,j.getImgProps)(a,{defaultLoader:n.default,imgConf:e,blurComplete:r,showAltText:v});return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(s,{...x,unoptimized:y.unoptimized,placeholder:y.placeholder,fill:y.fill,onLoadRef:o,onLoadingCompleteRef:q,setBlurComplete:u,setShowAltText:w,sizesInput:a.sizes,ref:b}),y.preload?(0,f.jsx)(t,{isAppRouter:!c,imgAttributes:x}):null]})});("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},78274,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return k},getImageProps:function(){return j}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(63652),g=a.r(4484),h=a.r(74561),i=f._(a.r(56797));function j(a){let{props:b}=(0,g.getImgProps)(a,{defaultLoader:i.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[a,c]of Object.entries(b))void 0===c&&delete b[a];return{props:b}}let k=h.Image},32745,(a,b,c)=>{b.exports=a.r(78274)},64952,a=>{"use strict";var b=a.i(40352),c=a.i(36883),d=/[\\\/_+.#"@\[\(\{&]/,e=/[\\\/_+.#"@\[\(\{&]/g,f=/[\s-]/,g=/[\s-]/g;function h(a){return a.toLowerCase().replace(g," ")}var i=a.i(21841);a.i(90073);var j=a.i(79965),k=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((a,d)=>{let e=(0,j.createSlot)(`Primitive.${d}`),f=c.forwardRef((a,c)=>{let{asChild:f,...g}=a;return(0,b.jsx)(f?e:d,{...g,ref:c})});return f.displayName=`Primitive.${d}`,{...a,[d]:f}},{}),l=a.i(99700),m=a.i(17988),n='[cmdk-group=""]',o='[cmdk-group-items=""]',p='[cmdk-item=""]',q=`${p}:not([aria-disabled="true"])`,r="cmdk-item-select",s="data-value",t=(a,b,c)=>{var i;return i=a,function a(b,c,h,i,j,k,l){if(k===c.length)return j===b.length?1:.99;var m=`${j},${k}`;if(void 0!==l[m])return l[m];for(var n,o,p,q,r=i.charAt(k),s=h.indexOf(r,j),t=0;s>=0;)(n=a(b,c,h,i,s+1,k+1,l))>t&&(s===j?n*=1:d.test(b.charAt(s-1))?(n*=.8,(p=b.slice(j,s-1).match(e))&&j>0&&(n*=Math.pow(.999,p.length))):f.test(b.charAt(s-1))?(n*=.9,(q=b.slice(j,s-1).match(g))&&j>0&&(n*=Math.pow(.999,q.length))):(n*=.17,j>0&&(n*=Math.pow(.999,s-j))),b.charAt(s)!==c.charAt(k)&&(n*=.9999)),(n<.1&&h.charAt(s-1)===i.charAt(k+1)||i.charAt(k+1)===i.charAt(k)&&h.charAt(s-1)!==i.charAt(k))&&.1*(o=a(b,c,h,i,s+1,k+2,l))>n&&(n=.1*o),n>t&&(t=n),s=h.indexOf(r,s+1);return l[m]=t,t}(i=c&&c.length>0?`${i+" "+c.join(" ")}`:i,b,h(i),h(b),0,0,{})},u=c.createContext(void 0),v=c.createContext(void 0),w=c.createContext(void 0),x=c.forwardRef((a,b)=>{let d=H(()=>{var b,c;return{search:"",value:null!=(c=null!=(b=a.value)?b:a.defaultValue)?c:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),e=H(()=>new Set),f=H(()=>new Map),g=H(()=>new Map),h=H(()=>new Set),i=F(a),{label:j,children:m,value:w,onValueChange:x,filter:y,shouldFilter:z,loop:A,disablePointerSelection:B=!1,vimBindings:C=!0,...D}=a,E=(0,l.useId)(),I=(0,l.useId)(),J=(0,l.useId)(),N=c.useRef(null),O=K();G(()=>{if(void 0!==w){let a=w.trim();d.current.value=a,P.emit()}},[w]),G(()=>{O(6,V)},[]);let P=c.useMemo(()=>({subscribe:a=>(h.current.add(a),()=>h.current.delete(a)),snapshot:()=>d.current,setState:(a,b,c)=>{var e,f,g,h;if(!Object.is(d.current[a],b)){if(d.current[a]=b,"search"===a)U(),S(),O(1,T);else if("value"===a){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let a=document.getElementById(J);a?a.focus():null==(e=document.getElementById(E))||e.focus()}if(O(7,()=>{var a;d.current.selectedItemId=null==(a=W())?void 0:a.id,P.emit()}),c||O(5,V),(null==(f=i.current)?void 0:f.value)!==void 0){null==(h=(g=i.current).onValueChange)||h.call(g,null!=b?b:"");return}}P.emit()}},emit:()=>{h.current.forEach(a=>a())}}),[]),Q=c.useMemo(()=>({value:(a,b,c)=>{var e;b!==(null==(e=g.current.get(a))?void 0:e.value)&&(g.current.set(a,{value:b,keywords:c}),d.current.filtered.items.set(a,R(b,c)),O(2,()=>{S(),P.emit()}))},item:(a,b)=>(e.current.add(a),b&&(f.current.has(b)?f.current.get(b).add(a):f.current.set(b,new Set([a]))),O(3,()=>{U(),S(),d.current.value||T(),P.emit()}),()=>{g.current.delete(a),e.current.delete(a),d.current.filtered.items.delete(a);let b=W();O(4,()=>{U(),(null==b?void 0:b.getAttribute("id"))===a&&T(),P.emit()})}),group:a=>(f.current.has(a)||f.current.set(a,new Set),()=>{g.current.delete(a),f.current.delete(a)}),filter:()=>i.current.shouldFilter,label:j||a["aria-label"],getDisablePointerSelection:()=>i.current.disablePointerSelection,listId:E,inputId:J,labelId:I,listInnerRef:N}),[]);function R(a,b){var c,e;let f=null!=(e=null==(c=i.current)?void 0:c.filter)?e:t;return a?f(a,d.current.search,b):0}function S(){if(!d.current.search||!1===i.current.shouldFilter)return;let a=d.current.filtered.items,b=[];d.current.filtered.groups.forEach(c=>{let d=f.current.get(c),e=0;d.forEach(b=>{e=Math.max(a.get(b),e)}),b.push([c,e])});let c=N.current;X().sort((b,c)=>{var d,e;let f=b.getAttribute("id"),g=c.getAttribute("id");return(null!=(d=a.get(g))?d:0)-(null!=(e=a.get(f))?e:0)}).forEach(a=>{let b=a.closest(o);b?b.appendChild(a.parentElement===b?a:a.closest(`${o} > *`)):c.appendChild(a.parentElement===c?a:a.closest(`${o} > *`))}),b.sort((a,b)=>b[1]-a[1]).forEach(a=>{var b;let c=null==(b=N.current)?void 0:b.querySelector(`${n}[${s}="${encodeURIComponent(a[0])}"]`);null==c||c.parentElement.appendChild(c)})}function T(){let a=X().find(a=>"true"!==a.getAttribute("aria-disabled")),b=null==a?void 0:a.getAttribute(s);P.setState("value",b||void 0)}function U(){var a,b,c,h;if(!d.current.search||!1===i.current.shouldFilter){d.current.filtered.count=e.current.size;return}d.current.filtered.groups=new Set;let j=0;for(let f of e.current){let e=R(null!=(b=null==(a=g.current.get(f))?void 0:a.value)?b:"",null!=(h=null==(c=g.current.get(f))?void 0:c.keywords)?h:[]);d.current.filtered.items.set(f,e),e>0&&j++}for(let[a,b]of f.current)for(let c of b)if(d.current.filtered.items.get(c)>0){d.current.filtered.groups.add(a);break}d.current.filtered.count=j}function V(){var a,b,c;let d=W();d&&((null==(a=d.parentElement)?void 0:a.firstChild)===d&&(null==(c=null==(b=d.closest(n))?void 0:b.querySelector('[cmdk-group-heading=""]'))||c.scrollIntoView({block:"nearest"})),d.scrollIntoView({block:"nearest"}))}function W(){var a;return null==(a=N.current)?void 0:a.querySelector(`${p}[aria-selected="true"]`)}function X(){var a;return Array.from((null==(a=N.current)?void 0:a.querySelectorAll(q))||[])}function Y(a){let b=X()[a];b&&P.setState("value",b.getAttribute(s))}function Z(a){var b;let c=W(),d=X(),e=d.findIndex(a=>a===c),f=d[e+a];null!=(b=i.current)&&b.loop&&(f=e+a<0?d[d.length-1]:e+a===d.length?d[0]:d[e+a]),f&&P.setState("value",f.getAttribute(s))}function $(a){let b=W(),c=null==b?void 0:b.closest(n),d;for(;c&&!d;)d=null==(c=a>0?function(a,b){let c=a.nextElementSibling;for(;c;){if(c.matches(b))return c;c=c.nextElementSibling}}(c,n):function(a,b){let c=a.previousElementSibling;for(;c;){if(c.matches(b))return c;c=c.previousElementSibling}}(c,n))?void 0:c.querySelector(q);d?P.setState("value",d.getAttribute(s)):Z(a)}let _=()=>Y(X().length-1),aa=a=>{a.preventDefault(),a.metaKey?_():a.altKey?$(1):Z(1)},ab=a=>{a.preventDefault(),a.metaKey?Y(0):a.altKey?$(-1):Z(-1)};return c.createElement(k.div,{ref:b,tabIndex:-1,...D,"cmdk-root":"",onKeyDown:a=>{var b;null==(b=D.onKeyDown)||b.call(D,a);let c=a.nativeEvent.isComposing||229===a.keyCode;if(!(a.defaultPrevented||c))switch(a.key){case"n":case"j":C&&a.ctrlKey&&aa(a);break;case"ArrowDown":aa(a);break;case"p":case"k":C&&a.ctrlKey&&ab(a);break;case"ArrowUp":ab(a);break;case"Home":a.preventDefault(),Y(0);break;case"End":a.preventDefault(),_();break;case"Enter":{a.preventDefault();let b=W();if(b){let a=new Event(r);b.dispatchEvent(a)}}}}},c.createElement("label",{"cmdk-label":"",htmlFor:Q.inputId,id:Q.labelId,style:M},j),L(a,a=>c.createElement(v.Provider,{value:P},c.createElement(u.Provider,{value:Q},a))))}),y=c.forwardRef((a,b)=>{var d,e;let f=(0,l.useId)(),g=c.useRef(null),h=c.useContext(w),i=c.useContext(u),j=F(a),n=null!=(e=null==(d=j.current)?void 0:d.forceMount)?e:null==h?void 0:h.forceMount;G(()=>{if(!n)return i.item(f,null==h?void 0:h.id)},[n]);let o=J(f,g,[a.value,a.children,g],a.keywords),p=c.useContext(v),q=I(a=>a.value&&a.value===o.current),s=I(a=>!!n||!1===i.filter()||!a.search||a.filtered.items.get(f)>0);function t(){var a,b;x(),null==(b=(a=j.current).onSelect)||b.call(a,o.current)}function x(){p.setState("value",o.current,!0)}if(c.useEffect(()=>{let b=g.current;if(!(!b||a.disabled))return b.addEventListener(r,t),()=>b.removeEventListener(r,t)},[s,a.onSelect,a.disabled]),!s)return null;let{disabled:y,value:z,onSelect:A,forceMount:B,keywords:C,...D}=a;return c.createElement(k.div,{ref:(0,m.composeRefs)(g,b),...D,id:f,"cmdk-item":"",role:"option","aria-disabled":!!y,"aria-selected":!!q,"data-disabled":!!y,"data-selected":!!q,onPointerMove:y||i.getDisablePointerSelection()?void 0:x,onClick:y?void 0:t},a.children)}),z=c.forwardRef((a,b)=>{let{heading:d,children:e,forceMount:f,...g}=a,h=(0,l.useId)(),i=c.useRef(null),j=c.useRef(null),n=(0,l.useId)(),o=c.useContext(u),p=I(a=>!!f||!1===o.filter()||!a.search||a.filtered.groups.has(h));G(()=>o.group(h),[]),J(h,i,[a.value,a.heading,j]);let q=c.useMemo(()=>({id:h,forceMount:f}),[f]);return c.createElement(k.div,{ref:(0,m.composeRefs)(i,b),...g,"cmdk-group":"",role:"presentation",hidden:!p||void 0},d&&c.createElement("div",{ref:j,"cmdk-group-heading":"","aria-hidden":!0,id:n},d),L(a,a=>c.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":d?n:void 0},c.createElement(w.Provider,{value:q},a))))}),A=c.forwardRef((a,b)=>{let{alwaysRender:d,...e}=a,f=c.useRef(null),g=I(a=>!a.search);return d||g?c.createElement(k.div,{ref:(0,m.composeRefs)(f,b),...e,"cmdk-separator":"",role:"separator"}):null}),B=c.forwardRef((a,b)=>{let{onValueChange:d,...e}=a,f=null!=a.value,g=c.useContext(v),h=I(a=>a.search),i=I(a=>a.selectedItemId),j=c.useContext(u);return c.useEffect(()=>{null!=a.value&&g.setState("search",a.value)},[a.value]),c.createElement(k.input,{ref:b,...e,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":j.listId,"aria-labelledby":j.labelId,"aria-activedescendant":i,id:j.inputId,type:"text",value:f?a.value:h,onChange:a=>{f||g.setState("search",a.target.value),null==d||d(a.target.value)}})}),C=c.forwardRef((a,b)=>{let{children:d,label:e="Suggestions",...f}=a,g=c.useRef(null),h=c.useRef(null),i=I(a=>a.selectedItemId),j=c.useContext(u);return c.useEffect(()=>{if(h.current&&g.current){let a=h.current,b=g.current,c,d=new ResizeObserver(()=>{c=requestAnimationFrame(()=>{let c=a.offsetHeight;b.style.setProperty("--cmdk-list-height",c.toFixed(1)+"px")})});return d.observe(a),()=>{cancelAnimationFrame(c),d.unobserve(a)}}},[]),c.createElement(k.div,{ref:(0,m.composeRefs)(g,b),...f,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":i,"aria-label":e,id:j.listId},L(a,a=>c.createElement("div",{ref:(0,m.composeRefs)(h,j.listInnerRef),"cmdk-list-sizer":""},a)))}),D=c.forwardRef((a,b)=>{let{open:d,onOpenChange:e,overlayClassName:f,contentClassName:g,container:h,...j}=a;return c.createElement(i.Root,{open:d,onOpenChange:e},c.createElement(i.Portal,{container:h},c.createElement(i.Overlay,{"cmdk-overlay":"",className:f}),c.createElement(i.Content,{"aria-label":a.label,"cmdk-dialog":"",className:g},c.createElement(x,{ref:b,...j}))))}),E=Object.assign(x,{List:C,Item:y,Input:B,Group:z,Separator:A,Dialog:D,Empty:c.forwardRef((a,b)=>I(a=>0===a.filtered.count)?c.createElement(k.div,{ref:b,...a,"cmdk-empty":"",role:"presentation"}):null),Loading:c.forwardRef((a,b)=>{let{progress:d,children:e,label:f="Loading...",...g}=a;return c.createElement(k.div,{ref:b,...g,"cmdk-loading":"",role:"progressbar","aria-valuenow":d,"aria-valuemin":0,"aria-valuemax":100,"aria-label":f},L(a,a=>c.createElement("div",{"aria-hidden":!0},a)))})});function F(a){let b=c.useRef(a);return G(()=>{b.current=a}),b}var G=c.useEffect;function H(a){let b=c.useRef();return void 0===b.current&&(b.current=a()),b}function I(a){let b=c.useContext(v),d=()=>a(b.snapshot());return c.useSyncExternalStore(b.subscribe,d,d)}function J(a,b,d,e=[]){let f=c.useRef(),g=c.useContext(u);return G(()=>{var c;let h=(()=>{var a;for(let b of d){if("string"==typeof b)return b.trim();if("object"==typeof b&&"current"in b)return b.current?null==(a=b.current.textContent)?void 0:a.trim():f.current}})(),i=e.map(a=>a.trim());g.value(a,h,i),null==(c=b.current)||c.setAttribute(s,h),f.current=h}),f}var K=()=>{let[a,b]=c.useState(),d=H(()=>new Map);return G(()=>{d.current.forEach(a=>a()),d.current=new Map},[a]),(a,c)=>{d.current.set(a,c),b({})}};function L({asChild:a,children:b},d){let e;return a&&c.isValidElement(b)?c.cloneElement("function"==typeof(e=b.type)?e(b.props):"render"in e?e.render(b.props):b,{ref:b.ref},d(b.props.children)):d(b)}var M={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"},N=a.i(93090),O=a.i(87052),P=a.i(86945);let Q=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(E,{ref:d,className:(0,O.cn)("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",a),...c}));Q.displayName=E.displayName;let R=({children:a,...c})=>(0,b.jsx)(P.Dialog,{...c,children:(0,b.jsx)(P.DialogContent,{className:"overflow-hidden p-0 shadow-lg",children:(0,b.jsx)(Q,{className:"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5",children:a})})}),S=c.forwardRef(({className:a,...c},d)=>(0,b.jsxs)("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[(0,b.jsx)(N.Search,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),(0,b.jsx)(E.Input,{ref:d,className:(0,O.cn)("flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",a),...c})]}));S.displayName=E.Input.displayName;let T=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(E.List,{ref:d,className:(0,O.cn)("max-h-[300px] overflow-y-auto overflow-x-hidden",a),...c}));T.displayName=E.List.displayName;let U=c.forwardRef((a,c)=>(0,b.jsx)(E.Empty,{ref:c,className:"py-6 text-center text-sm",...a}));U.displayName=E.Empty.displayName;let V=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(E.Group,{ref:d,className:(0,O.cn)("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",a),...c}));V.displayName=E.Group.displayName;let W=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(E.Separator,{ref:d,className:(0,O.cn)("-mx-1 h-px bg-border",a),...c}));W.displayName=E.Separator.displayName;let X=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(E.Item,{ref:d,className:(0,O.cn)("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",a),...c}));X.displayName=E.Item.displayName,a.s(["Command",()=>Q,"CommandDialog",()=>R,"CommandEmpty",()=>U,"CommandGroup",()=>V,"CommandInput",()=>S,"CommandItem",()=>X,"CommandList",()=>T,"CommandSeparator",()=>W],64952)},10660,a=>{"use strict";var b=a.i(40352),c=a.i(1926),d=a.i(32745),e=a.i(81612),f=a.i(41270),g=a.i(63535);let h=(0,g.default)("menu",[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]]),i=(0,g.default)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);var j=a.i(36883);let k=(0,g.default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]),l=(0,g.default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);var m=a.i(61698),n=a.i(27725);function o(){let{theme:a,setTheme:c}=(0,m.useTheme)(),[d,e]=j.useState(!1);return(j.useEffect(()=>{e(!0)},[]),d)?(0,b.jsxs)(n.Button,{variant:"ghost",size:"icon",onClick:()=>c("light"===a?"dark":"light"),"aria-label":"Toggle theme",children:[(0,b.jsx)(l,{className:"h-5 w-5 rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0"}),(0,b.jsx)(k,{className:"absolute h-5 w-5 rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100"})]}):(0,b.jsx)(n.Button,{variant:"ghost",size:"icon",disabled:!0,"aria-label":"Toggle theme",children:(0,b.jsx)(l,{className:"h-5 w-5"})})}var p=a.i(15268),q=a.i(93090),r=a.i(97557);let s=(0,g.default)("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);function t(a){return Array.isArray?Array.isArray(a):"[object Array]"===A(a)}let u=1/0;function v(a){return"string"==typeof a}function w(a){return"number"==typeof a}function x(a){return"object"==typeof a}function y(a){return null!=a}function z(a){return!a.trim().length}function A(a){return null==a?void 0===a?"[object Undefined]":"[object Null]":Object.prototype.toString.call(a)}let B=Object.prototype.hasOwnProperty;class C{constructor(a){this._keys=[],this._keyMap={};let b=0;a.forEach(a=>{let c=D(a);this._keys.push(c),this._keyMap[c.id]=c,b+=c.weight}),this._keys.forEach(a=>{a.weight/=b})}get(a){return this._keyMap[a]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function D(a){let b=null,c=null,d=null,e=1,f=null;if(v(a)||t(a))d=a,b=E(a),c=F(a);else{if(!B.call(a,"name"))throw Error("Missing name property in key");let g=a.name;if(d=g,B.call(a,"weight")&&(e=a.weight)<=0)throw Error(`Property 'weight' in key '${g}' must be a positive integer`);b=E(g),c=F(g),f=a.getFn}return{path:b,id:c,weight:e,src:d,getFn:f}}function E(a){return t(a)?a:a.split(".")}function F(a){return t(a)?a.join("."):a}var G={isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(a,b)=>a.score===b.score?a.idx<b.idx?-1:1:a.score<b.score?-1:1,includeMatches:!1,findAllMatches:!1,minMatchCharLength:1,location:0,threshold:.6,distance:100,useExtendedSearch:!1,getFn:function(a,b){let c=[],d=!1,e=(a,b,f)=>{if(y(a))if(b[f]){var g,h;let i=a[b[f]];if(!y(i))return;if(f===b.length-1&&(v(i)||w(i)||!0===(g=i)||!1===g||x(h=g)&&null!==h&&"[object Boolean]"==A(g)))c.push(null==i?"":function(a){if("string"==typeof a)return a;let b=a+"";return"0"==b&&1/a==-u?"-0":b}(i));else if(t(i)){d=!0;for(let a=0,c=i.length;a<c;a+=1)e(i[a],b,f+1)}else b.length&&e(i,b,f+1)}else c.push(a)};return e(a,v(b)?b.split("."):b,0),d?c:c[0]},ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1};let H=/[^ ]+/g;class I{constructor({getFn:a=G.getFn,fieldNormWeight:b=G.fieldNormWeight}={}){this.norm=function(a=1,b=3){let c=new Map,d=Math.pow(10,b);return{get(b){let e=b.match(H).length;if(c.has(e))return c.get(e);let f=parseFloat(Math.round(1/Math.pow(e,.5*a)*d)/d);return c.set(e,f),f},clear(){c.clear()}}}(b,3),this.getFn=a,this.isCreated=!1,this.setIndexRecords()}setSources(a=[]){this.docs=a}setIndexRecords(a=[]){this.records=a}setKeys(a=[]){this.keys=a,this._keysMap={},a.forEach((a,b)=>{this._keysMap[a.id]=b})}create(){!this.isCreated&&this.docs.length&&(this.isCreated=!0,v(this.docs[0])?this.docs.forEach((a,b)=>{this._addString(a,b)}):this.docs.forEach((a,b)=>{this._addObject(a,b)}),this.norm.clear())}add(a){let b=this.size();v(a)?this._addString(a,b):this._addObject(a,b)}removeAt(a){this.records.splice(a,1);for(let b=a,c=this.size();b<c;b+=1)this.records[b].i-=1}getValueForItemAtKeyId(a,b){return a[this._keysMap[b]]}size(){return this.records.length}_addString(a,b){if(!y(a)||z(a))return;let c={v:a,i:b,n:this.norm.get(a)};this.records.push(c)}_addObject(a,b){let c={i:b,$:{}};this.keys.forEach((b,d)=>{let e=b.getFn?b.getFn(a):this.getFn(a,b.path);if(y(e)){if(t(e)){let a=[],b=[{nestedArrIndex:-1,value:e}];for(;b.length;){let{nestedArrIndex:c,value:d}=b.pop();if(y(d))if(v(d)&&!z(d)){let b={v:d,i:c,n:this.norm.get(d)};a.push(b)}else t(d)&&d.forEach((a,c)=>{b.push({nestedArrIndex:c,value:a})})}c.$[d]=a}else if(v(e)&&!z(e)){let a={v:e,n:this.norm.get(e)};c.$[d]=a}}}),this.records.push(c)}toJSON(){return{keys:this.keys,records:this.records}}}function J(a,b,{getFn:c=G.getFn,fieldNormWeight:d=G.fieldNormWeight}={}){let e=new I({getFn:c,fieldNormWeight:d});return e.setKeys(a.map(D)),e.setSources(b),e.create(),e}function K(a,{errors:b=0,currentLocation:c=0,expectedLocation:d=0,distance:e=G.distance,ignoreLocation:f=G.ignoreLocation}={}){let g=b/a.length;if(f)return g;let h=Math.abs(d-c);return e?g+h/e:h?1:g}let L=String.prototype.normalize?a=>a.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,""):a=>a;class M{constructor(a,{location:b=G.location,threshold:c=G.threshold,distance:d=G.distance,includeMatches:e=G.includeMatches,findAllMatches:f=G.findAllMatches,minMatchCharLength:g=G.minMatchCharLength,isCaseSensitive:h=G.isCaseSensitive,ignoreDiacritics:i=G.ignoreDiacritics,ignoreLocation:j=G.ignoreLocation}={}){if(this.options={location:b,threshold:c,distance:d,includeMatches:e,findAllMatches:f,minMatchCharLength:g,isCaseSensitive:h,ignoreDiacritics:i,ignoreLocation:j},a=h?a:a.toLowerCase(),a=i?L(a):a,this.pattern=a,this.chunks=[],!this.pattern.length)return;const k=(a,b)=>{this.chunks.push({pattern:a,alphabet:function(a){let b={};for(let c=0,d=a.length;c<d;c+=1){let e=a.charAt(c);b[e]=(b[e]||0)|1<<d-c-1}return b}(a),startIndex:b})},l=this.pattern.length;if(l>32){let a=0;const b=l%32,c=l-b;for(;a<c;)k(this.pattern.substr(a,32),a),a+=32;if(b){const a=l-32;k(this.pattern.substr(a),a)}}else k(this.pattern,0)}searchIn(a){let{isCaseSensitive:b,ignoreDiacritics:c,includeMatches:d}=this.options;if(a=b?a:a.toLowerCase(),a=c?L(a):a,this.pattern===a){let b={isMatch:!0,score:0};return d&&(b.indices=[[0,a.length-1]]),b}let{location:e,distance:f,threshold:g,findAllMatches:h,minMatchCharLength:i,ignoreLocation:j}=this.options,k=[],l=0,m=!1;this.chunks.forEach(({pattern:b,alphabet:c,startIndex:n})=>{let{isMatch:o,score:p,indices:q}=function(a,b,c,{location:d=G.location,distance:e=G.distance,threshold:f=G.threshold,findAllMatches:g=G.findAllMatches,minMatchCharLength:h=G.minMatchCharLength,includeMatches:i=G.includeMatches,ignoreLocation:j=G.ignoreLocation}={}){let k;if(b.length>32)throw Error("Pattern length exceeds max of 32.");let l=b.length,m=a.length,n=Math.max(0,Math.min(d,m)),o=f,p=n,q=h>1||i,r=q?Array(m):[];for(;(k=a.indexOf(b,p))>-1;)if(o=Math.min(K(b,{currentLocation:k,expectedLocation:n,distance:e,ignoreLocation:j}),o),p=k+l,q){let a=0;for(;a<l;)r[k+a]=1,a+=1}p=-1;let s=[],t=1,u=l+m,v=1<<l-1;for(let d=0;d<l;d+=1){let f=0,h=u;for(;f<h;)K(b,{errors:d,currentLocation:n+h,expectedLocation:n,distance:e,ignoreLocation:j})<=o?f=h:u=h,h=Math.floor((u-f)/2+f);u=h;let i=Math.max(1,n-h+1),k=g?m:Math.min(n+h,m)+l,w=Array(k+2);w[k+1]=(1<<d)-1;for(let f=k;f>=i;f-=1){let g=f-1,h=c[a.charAt(g)];if(q&&(r[g]=+!!h),w[f]=(w[f+1]<<1|1)&h,d&&(w[f]|=(s[f+1]|s[f])<<1|1|s[f+1]),w[f]&v&&(t=K(b,{errors:d,currentLocation:g,expectedLocation:n,distance:e,ignoreLocation:j}))<=o){if(o=t,(p=g)<=n)break;i=Math.max(1,2*n-p)}}if(K(b,{errors:d+1,currentLocation:n,expectedLocation:n,distance:e,ignoreLocation:j})>o)break;s=w}let w={isMatch:p>=0,score:Math.max(.001,t)};if(q){let a=function(a=[],b=G.minMatchCharLength){let c=[],d=-1,e=-1,f=0;for(let g=a.length;f<g;f+=1){let g=a[f];g&&-1===d?d=f:g||-1===d||((e=f-1)-d+1>=b&&c.push([d,e]),d=-1)}return a[f-1]&&f-d>=b&&c.push([d,f-1]),c}(r,h);a.length?i&&(w.indices=a):w.isMatch=!1}return w}(a,b,c,{location:e+n,distance:f,threshold:g,findAllMatches:h,minMatchCharLength:i,includeMatches:d,ignoreLocation:j});o&&(m=!0),l+=p,o&&q&&(k=[...k,...q])});let n={isMatch:m,score:m?l/this.chunks.length:1};return m&&d&&(n.indices=k),n}}class N{constructor(a){this.pattern=a}static isMultiMatch(a){return O(a,this.multiRegex)}static isSingleMatch(a){return O(a,this.singleRegex)}search(){}}function O(a,b){let c=a.match(b);return c?c[1]:null}class P extends N{constructor(a,{location:b=G.location,threshold:c=G.threshold,distance:d=G.distance,includeMatches:e=G.includeMatches,findAllMatches:f=G.findAllMatches,minMatchCharLength:g=G.minMatchCharLength,isCaseSensitive:h=G.isCaseSensitive,ignoreDiacritics:i=G.ignoreDiacritics,ignoreLocation:j=G.ignoreLocation}={}){super(a),this._bitapSearch=new M(a,{location:b,threshold:c,distance:d,includeMatches:e,findAllMatches:f,minMatchCharLength:g,isCaseSensitive:h,ignoreDiacritics:i,ignoreLocation:j})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(a){return this._bitapSearch.searchIn(a)}}class Q extends N{constructor(a){super(a)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(a){let b,c=0,d=[],e=this.pattern.length;for(;(b=a.indexOf(this.pattern,c))>-1;)c=b+e,d.push([b,c-1]);let f=!!d.length;return{isMatch:f,score:+!f,indices:d}}}let R=[class extends N{constructor(a){super(a)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(a){let b=a===this.pattern;return{isMatch:b,score:+!b,indices:[0,this.pattern.length-1]}}},Q,class extends N{constructor(a){super(a)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(a){let b=a.startsWith(this.pattern);return{isMatch:b,score:+!b,indices:[0,this.pattern.length-1]}}},class extends N{constructor(a){super(a)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(a){let b=!a.startsWith(this.pattern);return{isMatch:b,score:+!b,indices:[0,a.length-1]}}},class extends N{constructor(a){super(a)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(a){let b=!a.endsWith(this.pattern);return{isMatch:b,score:+!b,indices:[0,a.length-1]}}},class extends N{constructor(a){super(a)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(a){let b=a.endsWith(this.pattern);return{isMatch:b,score:+!b,indices:[a.length-this.pattern.length,a.length-1]}}},class extends N{constructor(a){super(a)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(a){let b=-1===a.indexOf(this.pattern);return{isMatch:b,score:+!b,indices:[0,a.length-1]}}},P],S=R.length,T=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,U=new Set([P.type,Q.type]),V=[];function W(a,b){for(let c=0,d=V.length;c<d;c+=1){let d=V[c];if(d.condition(a,b))return new d(a,b)}return new M(a,b)}let X="$and",Y="$path",Z=a=>!!(a[X]||a.$or),$=a=>({[X]:Object.keys(a).map(b=>({[b]:a[b]}))});function _(a,b,{auto:c=!0}={}){let d=a=>{let e=Object.keys(a),f=!!a[Y];if(!f&&e.length>1&&!Z(a))return d($(a));if(!t(a)&&x(a)&&!Z(a)){let d=f?a[Y]:e[0],g=f?a.$val:a[d];if(!v(g))throw Error(`Invalid value for key ${d}`);let h={keyId:F(d),pattern:g};return c&&(h.searcher=W(g,b)),h}let g={children:[],operator:e[0]};return e.forEach(b=>{let c=a[b];t(c)&&c.forEach(a=>{g.children.push(d(a))})}),g};return Z(a)||(a=$(a)),d(a)}function aa(a,b){let c=a.matches;b.matches=[],y(c)&&c.forEach(a=>{if(!y(a.indices)||!a.indices.length)return;let{indices:c,value:d}=a,e={indices:c,value:d};a.key&&(e.key=a.key.src),a.idx>-1&&(e.refIndex=a.idx),b.matches.push(e)})}function ab(a,b){b.score=a.score}class ac{constructor(a,b={},c){this.options={...G,...b},this.options.useExtendedSearch,this._keyStore=new C(this.options.keys),this.setCollection(a,c)}setCollection(a,b){if(this._docs=a,b&&!(b instanceof I))throw Error("Incorrect 'index' type");this._myIndex=b||J(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(a){y(a)&&(this._docs.push(a),this._myIndex.add(a))}remove(a=()=>!1){let b=[];for(let c=0,d=this._docs.length;c<d;c+=1){let e=this._docs[c];a(e,c)&&(this.removeAt(c),c-=1,d-=1,b.push(e))}return b}removeAt(a){this._docs.splice(a,1),this._myIndex.removeAt(a)}getIndex(){return this._myIndex}search(a,{limit:b=-1}={}){let{includeMatches:c,includeScore:d,shouldSort:e,sortFn:f,ignoreFieldNorm:g}=this.options,h=v(a)?v(this._docs[0])?this._searchStringList(a):this._searchObjectList(a):this._searchLogical(a);return!function(a,{ignoreFieldNorm:b=G.ignoreFieldNorm}){a.forEach(a=>{let c=1;a.matches.forEach(({key:a,norm:d,score:e})=>{let f=a?a.weight:null;c*=Math.pow(0===e&&f?Number.EPSILON:e,(f||1)*(b?1:d))}),a.score=c})}(h,{ignoreFieldNorm:g}),e&&h.sort(f),w(b)&&b>-1&&(h=h.slice(0,b)),function(a,b,{includeMatches:c=G.includeMatches,includeScore:d=G.includeScore}={}){let e=[];return c&&e.push(aa),d&&e.push(ab),a.map(a=>{let{idx:c}=a,d={item:b[c],refIndex:c};return e.length&&e.forEach(b=>{b(a,d)}),d})}(h,this._docs,{includeMatches:c,includeScore:d})}_searchStringList(a){let b=W(a,this.options),{records:c}=this._myIndex,d=[];return c.forEach(({v:a,i:c,n:e})=>{if(!y(a))return;let{isMatch:f,score:g,indices:h}=b.searchIn(a);f&&d.push({item:a,idx:c,matches:[{score:g,value:a,norm:e,indices:h}]})}),d}_searchLogical(a){let b=_(a,this.options),c=(a,b,d)=>{if(!a.children){let{keyId:c,searcher:e}=a,f=this._findMatches({key:this._keyStore.get(c),value:this._myIndex.getValueForItemAtKeyId(b,c),searcher:e});return f&&f.length?[{idx:d,item:b,matches:f}]:[]}let e=[];for(let f=0,g=a.children.length;f<g;f+=1){let g=c(a.children[f],b,d);if(g.length)e.push(...g);else if(a.operator===X)return[]}return e},d=this._myIndex.records,e={},f=[];return d.forEach(({$:a,i:d})=>{if(y(a)){let g=c(b,a,d);g.length&&(e[d]||(e[d]={idx:d,item:a,matches:[]},f.push(e[d])),g.forEach(({matches:a})=>{e[d].matches.push(...a)}))}}),f}_searchObjectList(a){let b=W(a,this.options),{keys:c,records:d}=this._myIndex,e=[];return d.forEach(({$:a,i:d})=>{if(!y(a))return;let f=[];c.forEach((c,d)=>{f.push(...this._findMatches({key:c,value:a[d],searcher:b}))}),f.length&&e.push({idx:d,item:a,matches:f})}),e}_findMatches({key:a,value:b,searcher:c}){if(!y(b))return[];let d=[];if(t(b))b.forEach(({v:b,i:e,n:f})=>{if(!y(b))return;let{isMatch:g,score:h,indices:i}=c.searchIn(b);g&&d.push({score:h,key:a,value:b,idx:e,norm:f,indices:i})});else{let{v:e,n:f}=b,{isMatch:g,score:h,indices:i}=c.searchIn(e);g&&d.push({score:h,key:a,value:e,norm:f,indices:i})}return d}}ac.version="7.1.0",ac.createIndex=J,ac.parseIndex=function(a,{getFn:b=G.getFn,fieldNormWeight:c=G.fieldNormWeight}={}){let{keys:d,records:e}=a,f=new I({getFn:b,fieldNormWeight:c});return f.setKeys(d),f.setIndexRecords(e),f},ac.config=G,ac.parseQuery=_,function(...a){V.push(...a)}(class{constructor(a,{isCaseSensitive:b=G.isCaseSensitive,ignoreDiacritics:c=G.ignoreDiacritics,includeMatches:d=G.includeMatches,minMatchCharLength:e=G.minMatchCharLength,ignoreLocation:f=G.ignoreLocation,findAllMatches:g=G.findAllMatches,location:h=G.location,threshold:i=G.threshold,distance:j=G.distance}={}){this.query=null,this.options={isCaseSensitive:b,ignoreDiacritics:c,includeMatches:d,minMatchCharLength:e,findAllMatches:g,ignoreLocation:f,location:h,threshold:i,distance:j},a=b?a:a.toLowerCase(),a=c?L(a):a,this.pattern=a,this.query=function(a,b={}){return a.split("|").map(a=>{let c=a.trim().split(T).filter(a=>a&&!!a.trim()),d=[];for(let a=0,e=c.length;a<e;a+=1){let e=c[a],f=!1,g=-1;for(;!f&&++g<S;){let a=R[g],c=a.isMultiMatch(e);c&&(d.push(new a(c,b)),f=!0)}if(!f)for(g=-1;++g<S;){let a=R[g],c=a.isSingleMatch(e);if(c){d.push(new a(c,b));break}}}return d})}(this.pattern,this.options)}static condition(a,b){return b.useExtendedSearch}searchIn(a){let b=this.query;if(!b)return{isMatch:!1,score:1};let{includeMatches:c,isCaseSensitive:d,ignoreDiacritics:e}=this.options;a=d?a:a.toLowerCase(),a=e?L(a):a;let f=0,g=[],h=0;for(let d=0,e=b.length;d<e;d+=1){let e=b[d];g.length=0,f=0;for(let b=0,d=e.length;b<d;b+=1){let d=e[b],{isMatch:i,indices:j,score:k}=d.search(a);if(i){if(f+=1,h+=k,c){let a=d.constructor.type;U.has(a)?g=[...g,...j]:g.push(j)}}else{h=0,f=0,g.length=0;break}}if(f){let a={isMatch:!0,score:h/f};return c&&(a.indices=g),a}}return{isMatch:!1,score:1}}});var ad=a.i(64952),ae=a.i(82479),af=a.i(22570);function ag({specs:a}){let c=(0,e.useRouter)(),[d,f]=j.useState(!1),[g,h]=j.useState(""),[i,k]=j.useState([]);j.useEffect(()=>{let a=localStorage.getItem("leanspec-recent-searches");a&&k(JSON.parse(a))},[]),j.useEffect(()=>{let a=a=>{"k"===a.key&&(a.metaKey||a.ctrlKey)&&(a.preventDefault(),f(a=>!a))};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[]);let l=j.useMemo(()=>new ac(a,{keys:[{name:"title",weight:2},{name:"specNumber",weight:1.5},{name:"tags",weight:.5}],threshold:.4,includeScore:!0,minMatchCharLength:2}),[a]),m=j.useMemo(()=>g?l.search(g).map(a=>a.item):a.slice(0,8),[g,l,a]);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("button",{onClick:()=>f(!0),className:"inline-flex items-center gap-2 px-2 sm:px-3 py-2 text-sm text-muted-foreground hover:text-foreground transition-colors border rounded-md hover:border-foreground/20",children:[(0,b.jsx)(q.Search,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"hidden sm:inline",children:"Quick search..."}),(0,b.jsxs)("kbd",{className:"hidden md:inline-flex pointer-events-none h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium opacity-100",children:[(0,b.jsx)("span",{className:"text-xs",children:"⌘"}),"K"]})]}),(0,b.jsxs)(ad.CommandDialog,{open:d,onOpenChange:f,children:[(0,b.jsx)(ad.CommandInput,{placeholder:"Search specs by title, number, or tags...",value:g,onValueChange:h}),(0,b.jsxs)(ad.CommandList,{children:[(0,b.jsx)(ad.CommandEmpty,{children:"No specs found."}),!g&&i.length>0&&(0,b.jsx)(ad.CommandGroup,{heading:"Recent Searches",children:i.map(a=>(0,b.jsxs)(ad.CommandItem,{value:a,onSelect:()=>{h(a)},children:[(0,b.jsx)(r.Clock,{className:"mr-2 h-4 w-4"}),a]},a))}),(0,b.jsx)(ad.CommandGroup,{heading:"Specs",children:m.map(a=>(0,b.jsxs)(ad.CommandItem,{value:`${a.specNumber} ${a.title}`,onSelect:()=>{var b,d;let e;return b=a.id,void(k(e=[d=a.title,...i.filter(a=>a!==d)].slice(0,5)),localStorage.setItem("leanspec-recent-searches",JSON.stringify(e)),c.push(`/specs/${b}`),f(!1),h(""))},children:[(0,b.jsx)(p.FileText,{className:"mr-2 h-4 w-4"}),(0,b.jsxs)("div",{className:"flex-1 flex items-center justify-between gap-2",children:[(0,b.jsx)("div",{className:"flex-1 min-w-0",children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("span",{className:"font-medium",children:["#",a.specNumber]}),(0,b.jsx)("span",{className:"truncate",children:a.title})]})}),(0,b.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[(0,b.jsx)(ae.StatusBadge,{status:a.status}),(0,b.jsx)(af.PriorityBadge,{priority:a.priority})]})]})]},a.id))}),g&&(0,b.jsx)(ad.CommandGroup,{heading:"Filter by Tag",children:Array.from(new Set(a.flatMap(a=>a.tags))).filter(a=>a.toLowerCase().includes(g.toLowerCase())).slice(0,5).map(a=>(0,b.jsxs)(ad.CommandItem,{value:a,onSelect:()=>{c.push(`/?tag=${encodeURIComponent(a)}`),f(!1)},children:[(0,b.jsx)(s,{className:"mr-2 h-4 w-4"}),"Filter by: ",(0,b.jsx)("span",{className:"ml-1 font-medium",children:a})]},a))})]})]})]})}var ah=a.i(96151);function ai({items:a}){return(0,b.jsx)("nav",{className:"flex items-center gap-1 text-sm text-muted-foreground",children:a.map((a,d)=>(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[d>0&&(0,b.jsx)(f.ChevronRight,{className:"h-4 w-4"}),a.href?(0,b.jsx)(c.default,{href:a.href,className:"hover:text-foreground transition-colors",children:a.label}):(0,b.jsx)("span",{className:"text-foreground",children:a.label})]},d))})}function aj({specs:a}){let f=function(a){if("/"===a)return[{label:"Home"}];if("/stats"===a)return[{label:"Home",href:"/"},{label:"Stats"}];if("/specs"===a||a.startsWith("/specs?")){let b=new URLSearchParams(a.split("?")[1]||"").get("view");return[{label:"Home",href:"/"},{label:`Specs (${"board"===b?"Board View":"List View"})`}]}return a.startsWith("/specs/")?[{label:"Home",href:"/"},{label:"Specs",href:"/specs"},{label:a.split("/")[2]}]:"/board"===a?[{label:"Home",href:"/"},{label:"Board"}]:[{label:"Home",href:"/"}]}((0,e.usePathname)());return(0,b.jsx)("header",{className:"sticky top-0 z-50 w-full h-14 border-b border-border bg-background",children:(0,b.jsxs)("div",{className:"flex items-center justify-between h-full px-2 sm:px-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 sm:gap-4 min-w-0 flex-1",children:[(0,b.jsxs)(n.Button,{variant:"ghost",size:"icon",onClick:()=>{},className:"lg:hidden h-9 w-9 shrink-0",children:[(0,b.jsx)(h,{className:"h-5 w-5"}),(0,b.jsx)("span",{className:"sr-only",children:"Toggle menu"})]}),(0,b.jsxs)(c.default,{href:"/",className:"flex items-center space-x-2 shrink-0",children:[(0,b.jsx)(d.default,{src:"/logo-with-bg.svg",alt:"LeanSpec",width:32,height:32,className:"h-7 w-7 sm:h-8 sm:w-8 dark:hidden"}),(0,b.jsx)(d.default,{src:"/logo-dark-bg.svg",alt:"LeanSpec",width:32,height:32,className:"h-7 w-7 sm:h-8 sm:w-8 hidden dark:block"}),(0,b.jsx)("span",{className:"font-bold text-lg sm:text-xl hidden sm:inline",children:"LeanSpec"})]}),(0,b.jsx)("div",{className:"hidden md:block min-w-0",children:(0,b.jsx)(ai,{items:f})})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1 sm:gap-2 shrink-0",children:[(0,b.jsx)(ag,{specs:a}),(0,b.jsxs)(ah.TooltipProvider,{children:[(0,b.jsxs)(ah.Tooltip,{children:[(0,b.jsx)(ah.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("div",{children:(0,b.jsx)(o,{})})}),(0,b.jsx)(ah.TooltipContent,{children:(0,b.jsx)("p",{children:"Toggle theme"})})]}),(0,b.jsxs)(ah.Tooltip,{children:[(0,b.jsx)(ah.TooltipTrigger,{asChild:!0,children:(0,b.jsx)(n.Button,{variant:"ghost",size:"icon",asChild:!0,className:"h-9 w-9 sm:h-10 sm:w-10",children:(0,b.jsx)("a",{href:"https://www.lean-spec.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"Documentation",children:(0,b.jsx)(i,{className:"h-5 w-5"})})})}),(0,b.jsx)(ah.TooltipContent,{children:(0,b.jsx)("p",{children:"Documentation"})})]}),(0,b.jsxs)(ah.Tooltip,{children:[(0,b.jsx)(ah.TooltipTrigger,{asChild:!0,children:(0,b.jsx)(n.Button,{variant:"ghost",size:"icon",asChild:!0,className:"h-9 w-9 sm:h-10 sm:w-10",children:(0,b.jsxs)("a",{href:"https://github.com/codervisor/lean-spec",target:"_blank",rel:"noopener noreferrer","aria-label":"GitHub repository",children:[(0,b.jsx)(d.default,{src:"/github-mark-white.svg",alt:"GitHub",width:20,height:20,className:"hidden dark:block"}),(0,b.jsx)(d.default,{src:"/github-mark.svg",alt:"GitHub",width:20,height:20,className:"dark:hidden"})]})})}),(0,b.jsx)(ah.TooltipContent,{children:(0,b.jsx)("p",{children:"GitHub repository"})})]})]})]})]})})}a.s(["Navigation",()=>aj],10660)},50338,a=>{"use strict";var b=a.i(40352),c=a.i(1926),d=a.i(81612),e=a.i(76011),f=a.i(15268),g=a.i(63535);let h=(0,g.default)("chart-column",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);var i=a.i(29620),j=a.i(41270),k=a.i(14174),l=a.i(36883),m=a.i(70485);let n=(0,g.default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);var o=a.i(79220),p=a.i(66497),q=a.i(8920),r=a.i(87052),s=a.i(27725),t=a.i(64952),u=a.i(59653),v=a.i(17988),w=a.i(63375),x=a.i(83644),y=a.i(41857),z=a.i(84228),A=a.i(99700),B=a.i(72311),C=a.i(7547),D=a.i(44329),E=a.i(75655),F=a.i(78357),G=a.i(17449),H=a.i(16164),I=a.i(51867),J="Popover",[K,L]=(0,w.createContextScope)(J,[B.createPopperScope]),M=(0,B.createPopperScope)(),[N,O]=K(J),P=a=>{let{__scopePopover:c,children:d,open:e,defaultOpen:f,onOpenChange:g,modal:h=!1}=a,i=M(c),j=l.useRef(null),[k,m]=l.useState(!1),[n,o]=(0,G.useControllableState)({prop:e,defaultProp:f??!1,onChange:g,caller:J});return(0,b.jsx)(B.Root,{...i,children:(0,b.jsx)(N,{scope:c,contentId:(0,A.useId)(),triggerRef:j,open:n,onOpenChange:o,onOpenToggle:l.useCallback(()=>o(a=>!a),[o]),hasCustomAnchor:k,onCustomAnchorAdd:l.useCallback(()=>m(!0),[]),onCustomAnchorRemove:l.useCallback(()=>m(!1),[]),modal:h,children:d})})};P.displayName=J;var Q="PopoverAnchor";l.forwardRef((a,c)=>{let{__scopePopover:d,...e}=a,f=O(Q,d),g=M(d),{onCustomAnchorAdd:h,onCustomAnchorRemove:i}=f;return l.useEffect(()=>(h(),()=>i()),[h,i]),(0,b.jsx)(B.Anchor,{...g,...e,ref:c})}).displayName=Q;var R="PopoverTrigger",S=l.forwardRef((a,c)=>{let{__scopePopover:d,...e}=a,f=O(R,d),g=M(d),h=(0,v.useComposedRefs)(c,f.triggerRef),i=(0,b.jsx)(E.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":f.open,"aria-controls":f.contentId,"data-state":ac(f.open),...e,ref:h,onClick:(0,u.composeEventHandlers)(a.onClick,f.onOpenToggle)});return f.hasCustomAnchor?i:(0,b.jsx)(B.Anchor,{asChild:!0,...g,children:i})});S.displayName=R;var T="PopoverPortal",[U,V]=K(T,{forceMount:void 0}),W=a=>{let{__scopePopover:c,forceMount:d,children:e,container:f}=a,g=O(T,c);return(0,b.jsx)(U,{scope:c,forceMount:d,children:(0,b.jsx)(D.Presence,{present:d||g.open,children:(0,b.jsx)(C.Portal,{asChild:!0,container:f,children:e})})})};W.displayName=T;var X="PopoverContent",Y=l.forwardRef((a,c)=>{let d=V(X,a.__scopePopover),{forceMount:e=d.forceMount,...f}=a,g=O(X,a.__scopePopover);return(0,b.jsx)(D.Presence,{present:e||g.open,children:g.modal?(0,b.jsx)($,{...f,ref:c}):(0,b.jsx)(_,{...f,ref:c})})});Y.displayName=X;var Z=(0,F.createSlot)("PopoverContent.RemoveScroll"),$=l.forwardRef((a,c)=>{let d=O(X,a.__scopePopover),e=l.useRef(null),f=(0,v.useComposedRefs)(c,e),g=l.useRef(!1);return l.useEffect(()=>{let a=e.current;if(a)return(0,H.hideOthers)(a)},[]),(0,b.jsx)(I.RemoveScroll,{as:Z,allowPinchZoom:!0,children:(0,b.jsx)(aa,{...a,ref:f,trapFocus:d.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,u.composeEventHandlers)(a.onCloseAutoFocus,a=>{a.preventDefault(),g.current||d.triggerRef.current?.focus()}),onPointerDownOutside:(0,u.composeEventHandlers)(a.onPointerDownOutside,a=>{let b=a.detail.originalEvent,c=0===b.button&&!0===b.ctrlKey;g.current=2===b.button||c},{checkForDefaultPrevented:!1}),onFocusOutside:(0,u.composeEventHandlers)(a.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})})}),_=l.forwardRef((a,c)=>{let d=O(X,a.__scopePopover),e=l.useRef(!1),f=l.useRef(!1);return(0,b.jsx)(aa,{...a,ref:c,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:b=>{a.onCloseAutoFocus?.(b),b.defaultPrevented||(e.current||d.triggerRef.current?.focus(),b.preventDefault()),e.current=!1,f.current=!1},onInteractOutside:b=>{a.onInteractOutside?.(b),b.defaultPrevented||(e.current=!0,"pointerdown"===b.detail.originalEvent.type&&(f.current=!0));let c=b.target;d.triggerRef.current?.contains(c)&&b.preventDefault(),"focusin"===b.detail.originalEvent.type&&f.current&&b.preventDefault()}})}),aa=l.forwardRef((a,c)=>{let{__scopePopover:d,trapFocus:e,onOpenAutoFocus:f,onCloseAutoFocus:g,disableOutsidePointerEvents:h,onEscapeKeyDown:i,onPointerDownOutside:j,onFocusOutside:k,onInteractOutside:l,...m}=a,n=O(X,d),o=M(d);return(0,y.useFocusGuards)(),(0,b.jsx)(z.FocusScope,{asChild:!0,loop:!0,trapped:e,onMountAutoFocus:f,onUnmountAutoFocus:g,children:(0,b.jsx)(x.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:h,onInteractOutside:l,onEscapeKeyDown:i,onPointerDownOutside:j,onFocusOutside:k,onDismiss:()=>n.onOpenChange(!1),children:(0,b.jsx)(B.Content,{"data-state":ac(n.open),role:"dialog",id:n.contentId,...o,...m,ref:c,style:{...m.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),ab="PopoverClose";function ac(a){return a?"open":"closed"}l.forwardRef((a,c)=>{let{__scopePopover:d,...e}=a,f=O(ab,d);return(0,b.jsx)(E.Primitive.button,{type:"button",...e,ref:c,onClick:(0,u.composeEventHandlers)(a.onClick,()=>f.onOpenChange(!1))})}).displayName=ab,l.forwardRef((a,c)=>{let{__scopePopover:d,...e}=a,f=M(d);return(0,b.jsx)(B.Arrow,{...f,...e,ref:c})}).displayName="PopoverArrow";let ad=l.forwardRef(({className:a,align:c="center",sideOffset:d=4,...e},f)=>(0,b.jsx)(W,{children:(0,b.jsx)(Y,{ref:f,align:c,sideOffset:d,className:(0,r.cn)("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...e})}));ad.displayName=Y.displayName;var ae=a.i(72245),af=a.i(65791);function ag({collapsed:a}){let{mode:c,currentProject:d,projects:e,switchProject:f}=(0,ae.useProject)(),[g,h]=(0,l.useState)(!1),[i,j]=(0,l.useState)(!1);if("multi-project"!==c)return null;let k=async a=>{await f(a),h(!1)},u=[...e].sort((a,b)=>a.favorite===b.favorite?0:a.favorite?-1:1);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(af.CreateProjectDialog,{open:i,onOpenChange:j}),(0,b.jsxs)(P,{open:g,onOpenChange:h,children:[(0,b.jsx)(S,{asChild:!0,children:(0,b.jsx)(s.Button,{variant:"outline",role:"combobox","aria-expanded":g,className:(0,r.cn)("w-full justify-between",a?"h-9 w-9 p-0 justify-center":"px-3"),children:a?(0,b.jsx)(p.FolderOpen,{className:"h-4 w-4"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 truncate",children:[(0,b.jsx)(p.FolderOpen,{className:"h-4 w-4 shrink-0 opacity-50"}),(0,b.jsx)("span",{className:"truncate",children:d?.name||"Select project..."})]}),(0,b.jsx)(n,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})})}),(0,b.jsx)(ad,{className:"w-[200px] p-0",align:"start",children:(0,b.jsxs)(t.Command,{children:[(0,b.jsx)(t.CommandInput,{placeholder:"Search projects..."}),(0,b.jsxs)(t.CommandList,{children:[(0,b.jsx)(t.CommandEmpty,{children:"No project found."}),(0,b.jsx)(t.CommandGroup,{heading:"Projects",children:u.map(a=>(0,b.jsx)(t.CommandItem,{onSelect:()=>k(a.id),className:"text-sm",children:(0,b.jsxs)("div",{className:"flex items-center gap-2 w-full",children:[(0,b.jsx)(m.Check,{className:(0,r.cn)("mr-2 h-4 w-4",d?.id===a.id?"opacity-100":"opacity-0")}),(0,b.jsx)("span",{className:"truncate flex-1",children:a.name}),a.favorite&&(0,b.jsx)(q.Star,{className:"h-3 w-3 fill-yellow-500 text-yellow-500"})]})},a.id))}),(0,b.jsx)(t.CommandSeparator,{}),(0,b.jsx)(t.CommandGroup,{children:(0,b.jsxs)(t.CommandItem,{className:"cursor-pointer",onSelect:()=>{h(!1),j(!0)},children:[(0,b.jsx)(o.Plus,{className:"mr-2 h-4 w-4"}),"Create Project"]})})]})]})})]})]})}function ah({href:a,icon:d,children:e,description:f,currentPath:g,isCollapsed:h}){let i=g===a||"/"!==a&&g.startsWith(a);return(0,b.jsxs)(c.default,{href:a,className:(0,r.cn)("flex items-center gap-3 rounded-lg px-3 py-2 transition-colors","hover:bg-accent hover:text-accent-foreground",i&&"bg-accent text-accent-foreground font-medium",h&&"justify-center px-2"),children:[(0,b.jsx)(d,{className:(0,r.cn)("h-5 w-5 shrink-0",i&&"text-primary")}),!h&&(0,b.jsxs)("div",{className:"flex flex-col",children:[(0,b.jsx)("span",{className:"text-sm",children:e}),f&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:f})]})]})}function ai(){let a=(0,d.usePathname)(),[c,g]=l.useState(()=>!1),[m,n]=l.useState(!1),[o,p]=l.useState(!1);return l.useEffect(()=>{p(!0)},[]),l.useEffect(()=>{document.documentElement.style.setProperty("--main-sidebar-width",c?"60px":"240px"),localStorage.setItem("main-sidebar-collapsed",String(c))},[c]),l.useEffect(()=>{n(!1)},[a]),l.useEffect(()=>{},[]),(0,b.jsxs)(b.Fragment,{children:[m&&(0,b.jsx)("div",{className:"fixed inset-0 bg-black/50 z-40 lg:hidden",onClick:()=>n(!1)}),(0,b.jsx)("aside",{className:(0,r.cn)("sticky top-14 h-[calc(100vh-3.5rem)] border-r border-border bg-background transition-all duration-300 flex-shrink-0","hidden lg:flex",o&&c?"lg:w-[60px]":"lg:w-[240px]",m&&"fixed left-0 top-14 z-50 flex w-[280px]"),children:(0,b.jsxs)("div",{className:"flex flex-col h-full w-full",children:[(0,b.jsx)("div",{className:"lg:hidden flex justify-end p-2 border-b border-border",children:(0,b.jsxs)(s.Button,{variant:"ghost",size:"sm",onClick:()=>n(!1),className:"h-8 w-8 p-0",children:[(0,b.jsx)(k.X,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"sr-only",children:"Close menu"})]})}),o&&(0,b.jsxs)("nav",{className:"flex-1 px-2 py-4 space-y-1",children:[(0,b.jsx)("div",{className:"mb-4",children:(0,b.jsx)(ag,{collapsed:c&&!m})}),(0,b.jsx)(ah,{href:"/",icon:e.Home,currentPath:a,description:!c||m?"Dashboard":void 0,isCollapsed:c&&!m,children:"Home"}),(0,b.jsx)(ah,{href:"/specs",icon:f.FileText,currentPath:a,description:!c||m?"All Specifications":void 0,isCollapsed:c&&!m,children:"Specs"}),(0,b.jsx)(ah,{href:"/stats",icon:h,currentPath:a,description:!c||m?"Analytics":void 0,isCollapsed:c&&!m,children:"Stats"})]}),(0,b.jsx)("div",{className:"hidden lg:block p-2 border-t border-border",children:(0,b.jsx)(s.Button,{variant:"ghost",size:"sm",onClick:()=>g(!c),className:(0,r.cn)("w-full",o&&c&&"px-2"),children:o&&c?(0,b.jsx)(j.ChevronRight,{className:"h-4 w-4"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(i.ChevronLeft,{className:"h-4 w-4 mr-2"}),(0,b.jsx)("span",{className:"text-xs",children:"Collapse"})]})})})]})})]})}a.s(["MainSidebar",()=>ai],50338)},25726,a=>{"use strict";var b=a.i(40352),c=a.i(61698);function d({children:a,...d}){return(0,b.jsx)(c.ThemeProvider,{...d,children:a})}a.s(["ThemeProvider",()=>d])},68607,a=>{"use strict";var b=a.i(94783),c=a.i(56916);a.s(["Toast",()=>b.Toast,"toast",()=>c.toast])}];
3
+ Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let f=(0,d.findClosestQuality)(e,a);return`${a.path}?url=${encodeURIComponent(b)}&w=${c}&q=${f}${b.startsWith("/_next/static/media/"),""}`}e.__next_img_default=!0;let f=e},74561,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"Image",{enumerable:!0,get:function(){return u}});let d=a.r(63652),e=a.r(3988),f=a.r(40352),g=e._(a.r(36883)),h=d._(a.r(90073)),i=d._(a.r(61964)),j=a.r(4484),k=a.r(729),l=a.r(9328);a.r(44127);let m=a.r(97867),n=d._(a.r(56797)),o=a.r(88100),p={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function q(a,b,c,d,e,f,g){let h=a?.src;a&&a["data-loaded-src"]!==h&&(a["data-loaded-src"]=h,("decode"in a?a.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(a.parentElement&&a.isConnected){if("empty"!==b&&e(!0),c?.current){let b=new Event("load");Object.defineProperty(b,"target",{writable:!1,value:a});let d=!1,e=!1;c.current({...b,nativeEvent:b,currentTarget:a,target:a,isDefaultPrevented:()=>d,isPropagationStopped:()=>e,persist:()=>{},preventDefault:()=>{d=!0,b.preventDefault()},stopPropagation:()=>{e=!0,b.stopPropagation()}})}d?.current&&d.current(a)}}))}function r(a){return g.use?{fetchPriority:a}:{fetchpriority:a}}globalThis.__NEXT_IMAGE_IMPORTED=!0;let s=(0,g.forwardRef)(({src:a,srcSet:b,sizes:c,height:d,width:e,decoding:h,className:i,style:j,fetchPriority:k,placeholder:l,loading:m,unoptimized:n,fill:p,onLoadRef:s,onLoadingCompleteRef:t,setBlurComplete:u,setShowAltText:v,sizesInput:w,onLoad:x,onError:y,...z},A)=>{let B=(0,g.useCallback)(a=>{a&&(y&&(a.src=a.src),a.complete&&q(a,l,s,t,u,n,w))},[a,l,s,t,u,y,n,w]),C=(0,o.useMergedRef)(A,B);return(0,f.jsx)("img",{...z,...r(k),loading:m,width:e,height:d,decoding:h,"data-nimg":p?"fill":"1",className:i,style:j,sizes:c,srcSet:b,src:a,ref:C,onLoad:a=>{q(a.currentTarget,l,s,t,u,n,w)},onError:a=>{v(!0),"empty"!==l&&u(!0),y&&y(a)}})});function t({isAppRouter:a,imgAttributes:b}){let c={as:"image",imageSrcSet:b.srcSet,imageSizes:b.sizes,crossOrigin:b.crossOrigin,referrerPolicy:b.referrerPolicy,...r(b.fetchPriority)};return a&&h.default.preload?(h.default.preload(b.src,c),null):(0,f.jsx)(i.default,{children:(0,f.jsx)("link",{rel:"preload",href:b.srcSet?void 0:b.src,...c},"__nimg-"+b.src+b.srcSet+b.sizes)})}let u=(0,g.forwardRef)((a,b)=>{let c=(0,g.useContext)(m.RouterContext),d=(0,g.useContext)(l.ImageConfigContext),e=(0,g.useMemo)(()=>{let a=p||d||k.imageConfigDefault,b=[...a.deviceSizes,...a.imageSizes].sort((a,b)=>a-b),c=a.deviceSizes.sort((a,b)=>a-b),e=a.qualities?.sort((a,b)=>a-b);return{...a,allSizes:b,deviceSizes:c,qualities:e,localPatterns:d?.localPatterns}},[d]),{onLoad:h,onLoadingComplete:i}=a,o=(0,g.useRef)(h);(0,g.useEffect)(()=>{o.current=h},[h]);let q=(0,g.useRef)(i);(0,g.useEffect)(()=>{q.current=i},[i]);let[r,u]=(0,g.useState)(!1),[v,w]=(0,g.useState)(!1),{props:x,meta:y}=(0,j.getImgProps)(a,{defaultLoader:n.default,imgConf:e,blurComplete:r,showAltText:v});return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(s,{...x,unoptimized:y.unoptimized,placeholder:y.placeholder,fill:y.fill,onLoadRef:o,onLoadingCompleteRef:q,setBlurComplete:u,setShowAltText:w,sizesInput:a.sizes,ref:b}),y.preload?(0,f.jsx)(t,{isAppRouter:!c,imgAttributes:x}):null]})});("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},78274,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return k},getImageProps:function(){return j}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(63652),g=a.r(4484),h=a.r(74561),i=f._(a.r(56797));function j(a){let{props:b}=(0,g.getImgProps)(a,{defaultLoader:i.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[a,c]of Object.entries(b))void 0===c&&delete b[a];return{props:b}}let k=h.Image},32745,(a,b,c)=>{b.exports=a.r(78274)},64952,a=>{"use strict";var b=a.i(40352),c=a.i(36883),d=/[\\\/_+.#"@\[\(\{&]/,e=/[\\\/_+.#"@\[\(\{&]/g,f=/[\s-]/,g=/[\s-]/g;function h(a){return a.toLowerCase().replace(g," ")}var i=a.i(21841);a.i(90073);var j=a.i(79965),k=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((a,d)=>{let e=(0,j.createSlot)(`Primitive.${d}`),f=c.forwardRef((a,c)=>{let{asChild:f,...g}=a;return(0,b.jsx)(f?e:d,{...g,ref:c})});return f.displayName=`Primitive.${d}`,{...a,[d]:f}},{}),l=a.i(99700),m=a.i(17988),n='[cmdk-group=""]',o='[cmdk-group-items=""]',p='[cmdk-item=""]',q=`${p}:not([aria-disabled="true"])`,r="cmdk-item-select",s="data-value",t=(a,b,c)=>{var i;return i=a,function a(b,c,h,i,j,k,l){if(k===c.length)return j===b.length?1:.99;var m=`${j},${k}`;if(void 0!==l[m])return l[m];for(var n,o,p,q,r=i.charAt(k),s=h.indexOf(r,j),t=0;s>=0;)(n=a(b,c,h,i,s+1,k+1,l))>t&&(s===j?n*=1:d.test(b.charAt(s-1))?(n*=.8,(p=b.slice(j,s-1).match(e))&&j>0&&(n*=Math.pow(.999,p.length))):f.test(b.charAt(s-1))?(n*=.9,(q=b.slice(j,s-1).match(g))&&j>0&&(n*=Math.pow(.999,q.length))):(n*=.17,j>0&&(n*=Math.pow(.999,s-j))),b.charAt(s)!==c.charAt(k)&&(n*=.9999)),(n<.1&&h.charAt(s-1)===i.charAt(k+1)||i.charAt(k+1)===i.charAt(k)&&h.charAt(s-1)!==i.charAt(k))&&.1*(o=a(b,c,h,i,s+1,k+2,l))>n&&(n=.1*o),n>t&&(t=n),s=h.indexOf(r,s+1);return l[m]=t,t}(i=c&&c.length>0?`${i+" "+c.join(" ")}`:i,b,h(i),h(b),0,0,{})},u=c.createContext(void 0),v=c.createContext(void 0),w=c.createContext(void 0),x=c.forwardRef((a,b)=>{let d=H(()=>{var b,c;return{search:"",value:null!=(c=null!=(b=a.value)?b:a.defaultValue)?c:"",selectedItemId:void 0,filtered:{count:0,items:new Map,groups:new Set}}}),e=H(()=>new Set),f=H(()=>new Map),g=H(()=>new Map),h=H(()=>new Set),i=F(a),{label:j,children:m,value:w,onValueChange:x,filter:y,shouldFilter:z,loop:A,disablePointerSelection:B=!1,vimBindings:C=!0,...D}=a,E=(0,l.useId)(),I=(0,l.useId)(),J=(0,l.useId)(),N=c.useRef(null),O=K();G(()=>{if(void 0!==w){let a=w.trim();d.current.value=a,P.emit()}},[w]),G(()=>{O(6,V)},[]);let P=c.useMemo(()=>({subscribe:a=>(h.current.add(a),()=>h.current.delete(a)),snapshot:()=>d.current,setState:(a,b,c)=>{var e,f,g,h;if(!Object.is(d.current[a],b)){if(d.current[a]=b,"search"===a)U(),S(),O(1,T);else if("value"===a){if(document.activeElement.hasAttribute("cmdk-input")||document.activeElement.hasAttribute("cmdk-root")){let a=document.getElementById(J);a?a.focus():null==(e=document.getElementById(E))||e.focus()}if(O(7,()=>{var a;d.current.selectedItemId=null==(a=W())?void 0:a.id,P.emit()}),c||O(5,V),(null==(f=i.current)?void 0:f.value)!==void 0){null==(h=(g=i.current).onValueChange)||h.call(g,null!=b?b:"");return}}P.emit()}},emit:()=>{h.current.forEach(a=>a())}}),[]),Q=c.useMemo(()=>({value:(a,b,c)=>{var e;b!==(null==(e=g.current.get(a))?void 0:e.value)&&(g.current.set(a,{value:b,keywords:c}),d.current.filtered.items.set(a,R(b,c)),O(2,()=>{S(),P.emit()}))},item:(a,b)=>(e.current.add(a),b&&(f.current.has(b)?f.current.get(b).add(a):f.current.set(b,new Set([a]))),O(3,()=>{U(),S(),d.current.value||T(),P.emit()}),()=>{g.current.delete(a),e.current.delete(a),d.current.filtered.items.delete(a);let b=W();O(4,()=>{U(),(null==b?void 0:b.getAttribute("id"))===a&&T(),P.emit()})}),group:a=>(f.current.has(a)||f.current.set(a,new Set),()=>{g.current.delete(a),f.current.delete(a)}),filter:()=>i.current.shouldFilter,label:j||a["aria-label"],getDisablePointerSelection:()=>i.current.disablePointerSelection,listId:E,inputId:J,labelId:I,listInnerRef:N}),[]);function R(a,b){var c,e;let f=null!=(e=null==(c=i.current)?void 0:c.filter)?e:t;return a?f(a,d.current.search,b):0}function S(){if(!d.current.search||!1===i.current.shouldFilter)return;let a=d.current.filtered.items,b=[];d.current.filtered.groups.forEach(c=>{let d=f.current.get(c),e=0;d.forEach(b=>{e=Math.max(a.get(b),e)}),b.push([c,e])});let c=N.current;X().sort((b,c)=>{var d,e;let f=b.getAttribute("id"),g=c.getAttribute("id");return(null!=(d=a.get(g))?d:0)-(null!=(e=a.get(f))?e:0)}).forEach(a=>{let b=a.closest(o);b?b.appendChild(a.parentElement===b?a:a.closest(`${o} > *`)):c.appendChild(a.parentElement===c?a:a.closest(`${o} > *`))}),b.sort((a,b)=>b[1]-a[1]).forEach(a=>{var b;let c=null==(b=N.current)?void 0:b.querySelector(`${n}[${s}="${encodeURIComponent(a[0])}"]`);null==c||c.parentElement.appendChild(c)})}function T(){let a=X().find(a=>"true"!==a.getAttribute("aria-disabled")),b=null==a?void 0:a.getAttribute(s);P.setState("value",b||void 0)}function U(){var a,b,c,h;if(!d.current.search||!1===i.current.shouldFilter){d.current.filtered.count=e.current.size;return}d.current.filtered.groups=new Set;let j=0;for(let f of e.current){let e=R(null!=(b=null==(a=g.current.get(f))?void 0:a.value)?b:"",null!=(h=null==(c=g.current.get(f))?void 0:c.keywords)?h:[]);d.current.filtered.items.set(f,e),e>0&&j++}for(let[a,b]of f.current)for(let c of b)if(d.current.filtered.items.get(c)>0){d.current.filtered.groups.add(a);break}d.current.filtered.count=j}function V(){var a,b,c;let d=W();d&&((null==(a=d.parentElement)?void 0:a.firstChild)===d&&(null==(c=null==(b=d.closest(n))?void 0:b.querySelector('[cmdk-group-heading=""]'))||c.scrollIntoView({block:"nearest"})),d.scrollIntoView({block:"nearest"}))}function W(){var a;return null==(a=N.current)?void 0:a.querySelector(`${p}[aria-selected="true"]`)}function X(){var a;return Array.from((null==(a=N.current)?void 0:a.querySelectorAll(q))||[])}function Y(a){let b=X()[a];b&&P.setState("value",b.getAttribute(s))}function Z(a){var b;let c=W(),d=X(),e=d.findIndex(a=>a===c),f=d[e+a];null!=(b=i.current)&&b.loop&&(f=e+a<0?d[d.length-1]:e+a===d.length?d[0]:d[e+a]),f&&P.setState("value",f.getAttribute(s))}function $(a){let b=W(),c=null==b?void 0:b.closest(n),d;for(;c&&!d;)d=null==(c=a>0?function(a,b){let c=a.nextElementSibling;for(;c;){if(c.matches(b))return c;c=c.nextElementSibling}}(c,n):function(a,b){let c=a.previousElementSibling;for(;c;){if(c.matches(b))return c;c=c.previousElementSibling}}(c,n))?void 0:c.querySelector(q);d?P.setState("value",d.getAttribute(s)):Z(a)}let _=()=>Y(X().length-1),aa=a=>{a.preventDefault(),a.metaKey?_():a.altKey?$(1):Z(1)},ab=a=>{a.preventDefault(),a.metaKey?Y(0):a.altKey?$(-1):Z(-1)};return c.createElement(k.div,{ref:b,tabIndex:-1,...D,"cmdk-root":"",onKeyDown:a=>{var b;null==(b=D.onKeyDown)||b.call(D,a);let c=a.nativeEvent.isComposing||229===a.keyCode;if(!(a.defaultPrevented||c))switch(a.key){case"n":case"j":C&&a.ctrlKey&&aa(a);break;case"ArrowDown":aa(a);break;case"p":case"k":C&&a.ctrlKey&&ab(a);break;case"ArrowUp":ab(a);break;case"Home":a.preventDefault(),Y(0);break;case"End":a.preventDefault(),_();break;case"Enter":{a.preventDefault();let b=W();if(b){let a=new Event(r);b.dispatchEvent(a)}}}}},c.createElement("label",{"cmdk-label":"",htmlFor:Q.inputId,id:Q.labelId,style:M},j),L(a,a=>c.createElement(v.Provider,{value:P},c.createElement(u.Provider,{value:Q},a))))}),y=c.forwardRef((a,b)=>{var d,e;let f=(0,l.useId)(),g=c.useRef(null),h=c.useContext(w),i=c.useContext(u),j=F(a),n=null!=(e=null==(d=j.current)?void 0:d.forceMount)?e:null==h?void 0:h.forceMount;G(()=>{if(!n)return i.item(f,null==h?void 0:h.id)},[n]);let o=J(f,g,[a.value,a.children,g],a.keywords),p=c.useContext(v),q=I(a=>a.value&&a.value===o.current),s=I(a=>!!n||!1===i.filter()||!a.search||a.filtered.items.get(f)>0);function t(){var a,b;x(),null==(b=(a=j.current).onSelect)||b.call(a,o.current)}function x(){p.setState("value",o.current,!0)}if(c.useEffect(()=>{let b=g.current;if(!(!b||a.disabled))return b.addEventListener(r,t),()=>b.removeEventListener(r,t)},[s,a.onSelect,a.disabled]),!s)return null;let{disabled:y,value:z,onSelect:A,forceMount:B,keywords:C,...D}=a;return c.createElement(k.div,{ref:(0,m.composeRefs)(g,b),...D,id:f,"cmdk-item":"",role:"option","aria-disabled":!!y,"aria-selected":!!q,"data-disabled":!!y,"data-selected":!!q,onPointerMove:y||i.getDisablePointerSelection()?void 0:x,onClick:y?void 0:t},a.children)}),z=c.forwardRef((a,b)=>{let{heading:d,children:e,forceMount:f,...g}=a,h=(0,l.useId)(),i=c.useRef(null),j=c.useRef(null),n=(0,l.useId)(),o=c.useContext(u),p=I(a=>!!f||!1===o.filter()||!a.search||a.filtered.groups.has(h));G(()=>o.group(h),[]),J(h,i,[a.value,a.heading,j]);let q=c.useMemo(()=>({id:h,forceMount:f}),[f]);return c.createElement(k.div,{ref:(0,m.composeRefs)(i,b),...g,"cmdk-group":"",role:"presentation",hidden:!p||void 0},d&&c.createElement("div",{ref:j,"cmdk-group-heading":"","aria-hidden":!0,id:n},d),L(a,a=>c.createElement("div",{"cmdk-group-items":"",role:"group","aria-labelledby":d?n:void 0},c.createElement(w.Provider,{value:q},a))))}),A=c.forwardRef((a,b)=>{let{alwaysRender:d,...e}=a,f=c.useRef(null),g=I(a=>!a.search);return d||g?c.createElement(k.div,{ref:(0,m.composeRefs)(f,b),...e,"cmdk-separator":"",role:"separator"}):null}),B=c.forwardRef((a,b)=>{let{onValueChange:d,...e}=a,f=null!=a.value,g=c.useContext(v),h=I(a=>a.search),i=I(a=>a.selectedItemId),j=c.useContext(u);return c.useEffect(()=>{null!=a.value&&g.setState("search",a.value)},[a.value]),c.createElement(k.input,{ref:b,...e,"cmdk-input":"",autoComplete:"off",autoCorrect:"off",spellCheck:!1,"aria-autocomplete":"list",role:"combobox","aria-expanded":!0,"aria-controls":j.listId,"aria-labelledby":j.labelId,"aria-activedescendant":i,id:j.inputId,type:"text",value:f?a.value:h,onChange:a=>{f||g.setState("search",a.target.value),null==d||d(a.target.value)}})}),C=c.forwardRef((a,b)=>{let{children:d,label:e="Suggestions",...f}=a,g=c.useRef(null),h=c.useRef(null),i=I(a=>a.selectedItemId),j=c.useContext(u);return c.useEffect(()=>{if(h.current&&g.current){let a=h.current,b=g.current,c,d=new ResizeObserver(()=>{c=requestAnimationFrame(()=>{let c=a.offsetHeight;b.style.setProperty("--cmdk-list-height",c.toFixed(1)+"px")})});return d.observe(a),()=>{cancelAnimationFrame(c),d.unobserve(a)}}},[]),c.createElement(k.div,{ref:(0,m.composeRefs)(g,b),...f,"cmdk-list":"",role:"listbox",tabIndex:-1,"aria-activedescendant":i,"aria-label":e,id:j.listId},L(a,a=>c.createElement("div",{ref:(0,m.composeRefs)(h,j.listInnerRef),"cmdk-list-sizer":""},a)))}),D=c.forwardRef((a,b)=>{let{open:d,onOpenChange:e,overlayClassName:f,contentClassName:g,container:h,...j}=a;return c.createElement(i.Root,{open:d,onOpenChange:e},c.createElement(i.Portal,{container:h},c.createElement(i.Overlay,{"cmdk-overlay":"",className:f}),c.createElement(i.Content,{"aria-label":a.label,"cmdk-dialog":"",className:g},c.createElement(x,{ref:b,...j}))))}),E=Object.assign(x,{List:C,Item:y,Input:B,Group:z,Separator:A,Dialog:D,Empty:c.forwardRef((a,b)=>I(a=>0===a.filtered.count)?c.createElement(k.div,{ref:b,...a,"cmdk-empty":"",role:"presentation"}):null),Loading:c.forwardRef((a,b)=>{let{progress:d,children:e,label:f="Loading...",...g}=a;return c.createElement(k.div,{ref:b,...g,"cmdk-loading":"",role:"progressbar","aria-valuenow":d,"aria-valuemin":0,"aria-valuemax":100,"aria-label":f},L(a,a=>c.createElement("div",{"aria-hidden":!0},a)))})});function F(a){let b=c.useRef(a);return G(()=>{b.current=a}),b}var G=c.useEffect;function H(a){let b=c.useRef();return void 0===b.current&&(b.current=a()),b}function I(a){let b=c.useContext(v),d=()=>a(b.snapshot());return c.useSyncExternalStore(b.subscribe,d,d)}function J(a,b,d,e=[]){let f=c.useRef(),g=c.useContext(u);return G(()=>{var c;let h=(()=>{var a;for(let b of d){if("string"==typeof b)return b.trim();if("object"==typeof b&&"current"in b)return b.current?null==(a=b.current.textContent)?void 0:a.trim():f.current}})(),i=e.map(a=>a.trim());g.value(a,h,i),null==(c=b.current)||c.setAttribute(s,h),f.current=h}),f}var K=()=>{let[a,b]=c.useState(),d=H(()=>new Map);return G(()=>{d.current.forEach(a=>a()),d.current=new Map},[a]),(a,c)=>{d.current.set(a,c),b({})}};function L({asChild:a,children:b},d){let e;return a&&c.isValidElement(b)?c.cloneElement("function"==typeof(e=b.type)?e(b.props):"render"in e?e.render(b.props):b,{ref:b.ref},d(b.props.children)):d(b)}var M={position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"},N=a.i(93090),O=a.i(87052),P=a.i(86945);let Q=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(E,{ref:d,className:(0,O.cn)("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",a),...c}));Q.displayName=E.displayName;let R=({children:a,...c})=>(0,b.jsx)(P.Dialog,{...c,children:(0,b.jsx)(P.DialogContent,{className:"overflow-hidden p-0 shadow-lg",children:(0,b.jsx)(Q,{className:"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5",children:a})})}),S=c.forwardRef(({className:a,...c},d)=>(0,b.jsxs)("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[(0,b.jsx)(N.Search,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),(0,b.jsx)(E.Input,{ref:d,className:(0,O.cn)("flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",a),...c})]}));S.displayName=E.Input.displayName;let T=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(E.List,{ref:d,className:(0,O.cn)("max-h-[300px] overflow-y-auto overflow-x-hidden",a),...c}));T.displayName=E.List.displayName;let U=c.forwardRef((a,c)=>(0,b.jsx)(E.Empty,{ref:c,className:"py-6 text-center text-sm",...a}));U.displayName=E.Empty.displayName;let V=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(E.Group,{ref:d,className:(0,O.cn)("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",a),...c}));V.displayName=E.Group.displayName;let W=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(E.Separator,{ref:d,className:(0,O.cn)("-mx-1 h-px bg-border",a),...c}));W.displayName=E.Separator.displayName;let X=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(E.Item,{ref:d,className:(0,O.cn)("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",a),...c}));X.displayName=E.Item.displayName,a.s(["Command",()=>Q,"CommandDialog",()=>R,"CommandEmpty",()=>U,"CommandGroup",()=>V,"CommandInput",()=>S,"CommandItem",()=>X,"CommandList",()=>T,"CommandSeparator",()=>W],64952)},10660,a=>{"use strict";var b=a.i(40352),c=a.i(1926),d=a.i(32745),e=a.i(81612),f=a.i(41270),g=a.i(63535);let h=(0,g.default)("menu",[["path",{d:"M4 5h16",key:"1tepv9"}],["path",{d:"M4 12h16",key:"1lakjw"}],["path",{d:"M4 19h16",key:"1djgab"}]]),i=(0,g.default)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);var j=a.i(36883);let k=(0,g.default)("moon",[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]]),l=(0,g.default)("sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);var m=a.i(61698),n=a.i(27725);function o(){let{theme:a,setTheme:c}=(0,m.useTheme)(),[d,e]=j.useState(!1);return(j.useEffect(()=>{e(!0)},[]),d)?(0,b.jsxs)(n.Button,{variant:"ghost",size:"icon",onClick:()=>c("light"===a?"dark":"light"),"aria-label":"Toggle theme",children:[(0,b.jsx)(l,{className:"h-5 w-5 rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0"}),(0,b.jsx)(k,{className:"absolute h-5 w-5 rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100"})]}):(0,b.jsx)(n.Button,{variant:"ghost",size:"icon",disabled:!0,"aria-label":"Toggle theme",children:(0,b.jsx)(l,{className:"h-5 w-5"})})}var p=a.i(15268),q=a.i(93090),r=a.i(97557);let s=(0,g.default)("tag",[["path",{d:"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z",key:"vktsd0"}],["circle",{cx:"7.5",cy:"7.5",r:".5",fill:"currentColor",key:"kqv944"}]]);function t(a){return Array.isArray?Array.isArray(a):"[object Array]"===A(a)}let u=1/0;function v(a){return"string"==typeof a}function w(a){return"number"==typeof a}function x(a){return"object"==typeof a}function y(a){return null!=a}function z(a){return!a.trim().length}function A(a){return null==a?void 0===a?"[object Undefined]":"[object Null]":Object.prototype.toString.call(a)}let B=Object.prototype.hasOwnProperty;class C{constructor(a){this._keys=[],this._keyMap={};let b=0;a.forEach(a=>{let c=D(a);this._keys.push(c),this._keyMap[c.id]=c,b+=c.weight}),this._keys.forEach(a=>{a.weight/=b})}get(a){return this._keyMap[a]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function D(a){let b=null,c=null,d=null,e=1,f=null;if(v(a)||t(a))d=a,b=E(a),c=F(a);else{if(!B.call(a,"name"))throw Error("Missing name property in key");let g=a.name;if(d=g,B.call(a,"weight")&&(e=a.weight)<=0)throw Error(`Property 'weight' in key '${g}' must be a positive integer`);b=E(g),c=F(g),f=a.getFn}return{path:b,id:c,weight:e,src:d,getFn:f}}function E(a){return t(a)?a:a.split(".")}function F(a){return t(a)?a.join("."):a}var G={isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(a,b)=>a.score===b.score?a.idx<b.idx?-1:1:a.score<b.score?-1:1,includeMatches:!1,findAllMatches:!1,minMatchCharLength:1,location:0,threshold:.6,distance:100,useExtendedSearch:!1,getFn:function(a,b){let c=[],d=!1,e=(a,b,f)=>{if(y(a))if(b[f]){var g,h;let i=a[b[f]];if(!y(i))return;if(f===b.length-1&&(v(i)||w(i)||!0===(g=i)||!1===g||x(h=g)&&null!==h&&"[object Boolean]"==A(g)))c.push(null==i?"":function(a){if("string"==typeof a)return a;let b=a+"";return"0"==b&&1/a==-u?"-0":b}(i));else if(t(i)){d=!0;for(let a=0,c=i.length;a<c;a+=1)e(i[a],b,f+1)}else b.length&&e(i,b,f+1)}else c.push(a)};return e(a,v(b)?b.split("."):b,0),d?c:c[0]},ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1};let H=/[^ ]+/g;class I{constructor({getFn:a=G.getFn,fieldNormWeight:b=G.fieldNormWeight}={}){this.norm=function(a=1,b=3){let c=new Map,d=Math.pow(10,b);return{get(b){let e=b.match(H).length;if(c.has(e))return c.get(e);let f=parseFloat(Math.round(1/Math.pow(e,.5*a)*d)/d);return c.set(e,f),f},clear(){c.clear()}}}(b,3),this.getFn=a,this.isCreated=!1,this.setIndexRecords()}setSources(a=[]){this.docs=a}setIndexRecords(a=[]){this.records=a}setKeys(a=[]){this.keys=a,this._keysMap={},a.forEach((a,b)=>{this._keysMap[a.id]=b})}create(){!this.isCreated&&this.docs.length&&(this.isCreated=!0,v(this.docs[0])?this.docs.forEach((a,b)=>{this._addString(a,b)}):this.docs.forEach((a,b)=>{this._addObject(a,b)}),this.norm.clear())}add(a){let b=this.size();v(a)?this._addString(a,b):this._addObject(a,b)}removeAt(a){this.records.splice(a,1);for(let b=a,c=this.size();b<c;b+=1)this.records[b].i-=1}getValueForItemAtKeyId(a,b){return a[this._keysMap[b]]}size(){return this.records.length}_addString(a,b){if(!y(a)||z(a))return;let c={v:a,i:b,n:this.norm.get(a)};this.records.push(c)}_addObject(a,b){let c={i:b,$:{}};this.keys.forEach((b,d)=>{let e=b.getFn?b.getFn(a):this.getFn(a,b.path);if(y(e)){if(t(e)){let a=[],b=[{nestedArrIndex:-1,value:e}];for(;b.length;){let{nestedArrIndex:c,value:d}=b.pop();if(y(d))if(v(d)&&!z(d)){let b={v:d,i:c,n:this.norm.get(d)};a.push(b)}else t(d)&&d.forEach((a,c)=>{b.push({nestedArrIndex:c,value:a})})}c.$[d]=a}else if(v(e)&&!z(e)){let a={v:e,n:this.norm.get(e)};c.$[d]=a}}}),this.records.push(c)}toJSON(){return{keys:this.keys,records:this.records}}}function J(a,b,{getFn:c=G.getFn,fieldNormWeight:d=G.fieldNormWeight}={}){let e=new I({getFn:c,fieldNormWeight:d});return e.setKeys(a.map(D)),e.setSources(b),e.create(),e}function K(a,{errors:b=0,currentLocation:c=0,expectedLocation:d=0,distance:e=G.distance,ignoreLocation:f=G.ignoreLocation}={}){let g=b/a.length;if(f)return g;let h=Math.abs(d-c);return e?g+h/e:h?1:g}let L=String.prototype.normalize?a=>a.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,""):a=>a;class M{constructor(a,{location:b=G.location,threshold:c=G.threshold,distance:d=G.distance,includeMatches:e=G.includeMatches,findAllMatches:f=G.findAllMatches,minMatchCharLength:g=G.minMatchCharLength,isCaseSensitive:h=G.isCaseSensitive,ignoreDiacritics:i=G.ignoreDiacritics,ignoreLocation:j=G.ignoreLocation}={}){if(this.options={location:b,threshold:c,distance:d,includeMatches:e,findAllMatches:f,minMatchCharLength:g,isCaseSensitive:h,ignoreDiacritics:i,ignoreLocation:j},a=h?a:a.toLowerCase(),a=i?L(a):a,this.pattern=a,this.chunks=[],!this.pattern.length)return;const k=(a,b)=>{this.chunks.push({pattern:a,alphabet:function(a){let b={};for(let c=0,d=a.length;c<d;c+=1){let e=a.charAt(c);b[e]=(b[e]||0)|1<<d-c-1}return b}(a),startIndex:b})},l=this.pattern.length;if(l>32){let a=0;const b=l%32,c=l-b;for(;a<c;)k(this.pattern.substr(a,32),a),a+=32;if(b){const a=l-32;k(this.pattern.substr(a),a)}}else k(this.pattern,0)}searchIn(a){let{isCaseSensitive:b,ignoreDiacritics:c,includeMatches:d}=this.options;if(a=b?a:a.toLowerCase(),a=c?L(a):a,this.pattern===a){let b={isMatch:!0,score:0};return d&&(b.indices=[[0,a.length-1]]),b}let{location:e,distance:f,threshold:g,findAllMatches:h,minMatchCharLength:i,ignoreLocation:j}=this.options,k=[],l=0,m=!1;this.chunks.forEach(({pattern:b,alphabet:c,startIndex:n})=>{let{isMatch:o,score:p,indices:q}=function(a,b,c,{location:d=G.location,distance:e=G.distance,threshold:f=G.threshold,findAllMatches:g=G.findAllMatches,minMatchCharLength:h=G.minMatchCharLength,includeMatches:i=G.includeMatches,ignoreLocation:j=G.ignoreLocation}={}){let k;if(b.length>32)throw Error("Pattern length exceeds max of 32.");let l=b.length,m=a.length,n=Math.max(0,Math.min(d,m)),o=f,p=n,q=h>1||i,r=q?Array(m):[];for(;(k=a.indexOf(b,p))>-1;)if(o=Math.min(K(b,{currentLocation:k,expectedLocation:n,distance:e,ignoreLocation:j}),o),p=k+l,q){let a=0;for(;a<l;)r[k+a]=1,a+=1}p=-1;let s=[],t=1,u=l+m,v=1<<l-1;for(let d=0;d<l;d+=1){let f=0,h=u;for(;f<h;)K(b,{errors:d,currentLocation:n+h,expectedLocation:n,distance:e,ignoreLocation:j})<=o?f=h:u=h,h=Math.floor((u-f)/2+f);u=h;let i=Math.max(1,n-h+1),k=g?m:Math.min(n+h,m)+l,w=Array(k+2);w[k+1]=(1<<d)-1;for(let f=k;f>=i;f-=1){let g=f-1,h=c[a.charAt(g)];if(q&&(r[g]=+!!h),w[f]=(w[f+1]<<1|1)&h,d&&(w[f]|=(s[f+1]|s[f])<<1|1|s[f+1]),w[f]&v&&(t=K(b,{errors:d,currentLocation:g,expectedLocation:n,distance:e,ignoreLocation:j}))<=o){if(o=t,(p=g)<=n)break;i=Math.max(1,2*n-p)}}if(K(b,{errors:d+1,currentLocation:n,expectedLocation:n,distance:e,ignoreLocation:j})>o)break;s=w}let w={isMatch:p>=0,score:Math.max(.001,t)};if(q){let a=function(a=[],b=G.minMatchCharLength){let c=[],d=-1,e=-1,f=0;for(let g=a.length;f<g;f+=1){let g=a[f];g&&-1===d?d=f:g||-1===d||((e=f-1)-d+1>=b&&c.push([d,e]),d=-1)}return a[f-1]&&f-d>=b&&c.push([d,f-1]),c}(r,h);a.length?i&&(w.indices=a):w.isMatch=!1}return w}(a,b,c,{location:e+n,distance:f,threshold:g,findAllMatches:h,minMatchCharLength:i,includeMatches:d,ignoreLocation:j});o&&(m=!0),l+=p,o&&q&&(k=[...k,...q])});let n={isMatch:m,score:m?l/this.chunks.length:1};return m&&d&&(n.indices=k),n}}class N{constructor(a){this.pattern=a}static isMultiMatch(a){return O(a,this.multiRegex)}static isSingleMatch(a){return O(a,this.singleRegex)}search(){}}function O(a,b){let c=a.match(b);return c?c[1]:null}class P extends N{constructor(a,{location:b=G.location,threshold:c=G.threshold,distance:d=G.distance,includeMatches:e=G.includeMatches,findAllMatches:f=G.findAllMatches,minMatchCharLength:g=G.minMatchCharLength,isCaseSensitive:h=G.isCaseSensitive,ignoreDiacritics:i=G.ignoreDiacritics,ignoreLocation:j=G.ignoreLocation}={}){super(a),this._bitapSearch=new M(a,{location:b,threshold:c,distance:d,includeMatches:e,findAllMatches:f,minMatchCharLength:g,isCaseSensitive:h,ignoreDiacritics:i,ignoreLocation:j})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(a){return this._bitapSearch.searchIn(a)}}class Q extends N{constructor(a){super(a)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(a){let b,c=0,d=[],e=this.pattern.length;for(;(b=a.indexOf(this.pattern,c))>-1;)c=b+e,d.push([b,c-1]);let f=!!d.length;return{isMatch:f,score:+!f,indices:d}}}let R=[class extends N{constructor(a){super(a)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(a){let b=a===this.pattern;return{isMatch:b,score:+!b,indices:[0,this.pattern.length-1]}}},Q,class extends N{constructor(a){super(a)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(a){let b=a.startsWith(this.pattern);return{isMatch:b,score:+!b,indices:[0,this.pattern.length-1]}}},class extends N{constructor(a){super(a)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(a){let b=!a.startsWith(this.pattern);return{isMatch:b,score:+!b,indices:[0,a.length-1]}}},class extends N{constructor(a){super(a)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(a){let b=!a.endsWith(this.pattern);return{isMatch:b,score:+!b,indices:[0,a.length-1]}}},class extends N{constructor(a){super(a)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(a){let b=a.endsWith(this.pattern);return{isMatch:b,score:+!b,indices:[a.length-this.pattern.length,a.length-1]}}},class extends N{constructor(a){super(a)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(a){let b=-1===a.indexOf(this.pattern);return{isMatch:b,score:+!b,indices:[0,a.length-1]}}},P],S=R.length,T=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,U=new Set([P.type,Q.type]),V=[];function W(a,b){for(let c=0,d=V.length;c<d;c+=1){let d=V[c];if(d.condition(a,b))return new d(a,b)}return new M(a,b)}let X="$and",Y="$path",Z=a=>!!(a[X]||a.$or),$=a=>({[X]:Object.keys(a).map(b=>({[b]:a[b]}))});function _(a,b,{auto:c=!0}={}){let d=a=>{let e=Object.keys(a),f=!!a[Y];if(!f&&e.length>1&&!Z(a))return d($(a));if(!t(a)&&x(a)&&!Z(a)){let d=f?a[Y]:e[0],g=f?a.$val:a[d];if(!v(g))throw Error(`Invalid value for key ${d}`);let h={keyId:F(d),pattern:g};return c&&(h.searcher=W(g,b)),h}let g={children:[],operator:e[0]};return e.forEach(b=>{let c=a[b];t(c)&&c.forEach(a=>{g.children.push(d(a))})}),g};return Z(a)||(a=$(a)),d(a)}function aa(a,b){let c=a.matches;b.matches=[],y(c)&&c.forEach(a=>{if(!y(a.indices)||!a.indices.length)return;let{indices:c,value:d}=a,e={indices:c,value:d};a.key&&(e.key=a.key.src),a.idx>-1&&(e.refIndex=a.idx),b.matches.push(e)})}function ab(a,b){b.score=a.score}class ac{constructor(a,b={},c){this.options={...G,...b},this.options.useExtendedSearch,this._keyStore=new C(this.options.keys),this.setCollection(a,c)}setCollection(a,b){if(this._docs=a,b&&!(b instanceof I))throw Error("Incorrect 'index' type");this._myIndex=b||J(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(a){y(a)&&(this._docs.push(a),this._myIndex.add(a))}remove(a=()=>!1){let b=[];for(let c=0,d=this._docs.length;c<d;c+=1){let e=this._docs[c];a(e,c)&&(this.removeAt(c),c-=1,d-=1,b.push(e))}return b}removeAt(a){this._docs.splice(a,1),this._myIndex.removeAt(a)}getIndex(){return this._myIndex}search(a,{limit:b=-1}={}){let{includeMatches:c,includeScore:d,shouldSort:e,sortFn:f,ignoreFieldNorm:g}=this.options,h=v(a)?v(this._docs[0])?this._searchStringList(a):this._searchObjectList(a):this._searchLogical(a);return!function(a,{ignoreFieldNorm:b=G.ignoreFieldNorm}){a.forEach(a=>{let c=1;a.matches.forEach(({key:a,norm:d,score:e})=>{let f=a?a.weight:null;c*=Math.pow(0===e&&f?Number.EPSILON:e,(f||1)*(b?1:d))}),a.score=c})}(h,{ignoreFieldNorm:g}),e&&h.sort(f),w(b)&&b>-1&&(h=h.slice(0,b)),function(a,b,{includeMatches:c=G.includeMatches,includeScore:d=G.includeScore}={}){let e=[];return c&&e.push(aa),d&&e.push(ab),a.map(a=>{let{idx:c}=a,d={item:b[c],refIndex:c};return e.length&&e.forEach(b=>{b(a,d)}),d})}(h,this._docs,{includeMatches:c,includeScore:d})}_searchStringList(a){let b=W(a,this.options),{records:c}=this._myIndex,d=[];return c.forEach(({v:a,i:c,n:e})=>{if(!y(a))return;let{isMatch:f,score:g,indices:h}=b.searchIn(a);f&&d.push({item:a,idx:c,matches:[{score:g,value:a,norm:e,indices:h}]})}),d}_searchLogical(a){let b=_(a,this.options),c=(a,b,d)=>{if(!a.children){let{keyId:c,searcher:e}=a,f=this._findMatches({key:this._keyStore.get(c),value:this._myIndex.getValueForItemAtKeyId(b,c),searcher:e});return f&&f.length?[{idx:d,item:b,matches:f}]:[]}let e=[];for(let f=0,g=a.children.length;f<g;f+=1){let g=c(a.children[f],b,d);if(g.length)e.push(...g);else if(a.operator===X)return[]}return e},d=this._myIndex.records,e={},f=[];return d.forEach(({$:a,i:d})=>{if(y(a)){let g=c(b,a,d);g.length&&(e[d]||(e[d]={idx:d,item:a,matches:[]},f.push(e[d])),g.forEach(({matches:a})=>{e[d].matches.push(...a)}))}}),f}_searchObjectList(a){let b=W(a,this.options),{keys:c,records:d}=this._myIndex,e=[];return d.forEach(({$:a,i:d})=>{if(!y(a))return;let f=[];c.forEach((c,d)=>{f.push(...this._findMatches({key:c,value:a[d],searcher:b}))}),f.length&&e.push({idx:d,item:a,matches:f})}),e}_findMatches({key:a,value:b,searcher:c}){if(!y(b))return[];let d=[];if(t(b))b.forEach(({v:b,i:e,n:f})=>{if(!y(b))return;let{isMatch:g,score:h,indices:i}=c.searchIn(b);g&&d.push({score:h,key:a,value:b,idx:e,norm:f,indices:i})});else{let{v:e,n:f}=b,{isMatch:g,score:h,indices:i}=c.searchIn(e);g&&d.push({score:h,key:a,value:e,norm:f,indices:i})}return d}}ac.version="7.1.0",ac.createIndex=J,ac.parseIndex=function(a,{getFn:b=G.getFn,fieldNormWeight:c=G.fieldNormWeight}={}){let{keys:d,records:e}=a,f=new I({getFn:b,fieldNormWeight:c});return f.setKeys(d),f.setIndexRecords(e),f},ac.config=G,ac.parseQuery=_,function(...a){V.push(...a)}(class{constructor(a,{isCaseSensitive:b=G.isCaseSensitive,ignoreDiacritics:c=G.ignoreDiacritics,includeMatches:d=G.includeMatches,minMatchCharLength:e=G.minMatchCharLength,ignoreLocation:f=G.ignoreLocation,findAllMatches:g=G.findAllMatches,location:h=G.location,threshold:i=G.threshold,distance:j=G.distance}={}){this.query=null,this.options={isCaseSensitive:b,ignoreDiacritics:c,includeMatches:d,minMatchCharLength:e,findAllMatches:g,ignoreLocation:f,location:h,threshold:i,distance:j},a=b?a:a.toLowerCase(),a=c?L(a):a,this.pattern=a,this.query=function(a,b={}){return a.split("|").map(a=>{let c=a.trim().split(T).filter(a=>a&&!!a.trim()),d=[];for(let a=0,e=c.length;a<e;a+=1){let e=c[a],f=!1,g=-1;for(;!f&&++g<S;){let a=R[g],c=a.isMultiMatch(e);c&&(d.push(new a(c,b)),f=!0)}if(!f)for(g=-1;++g<S;){let a=R[g],c=a.isSingleMatch(e);if(c){d.push(new a(c,b));break}}}return d})}(this.pattern,this.options)}static condition(a,b){return b.useExtendedSearch}searchIn(a){let b=this.query;if(!b)return{isMatch:!1,score:1};let{includeMatches:c,isCaseSensitive:d,ignoreDiacritics:e}=this.options;a=d?a:a.toLowerCase(),a=e?L(a):a;let f=0,g=[],h=0;for(let d=0,e=b.length;d<e;d+=1){let e=b[d];g.length=0,f=0;for(let b=0,d=e.length;b<d;b+=1){let d=e[b],{isMatch:i,indices:j,score:k}=d.search(a);if(i){if(f+=1,h+=k,c){let a=d.constructor.type;U.has(a)?g=[...g,...j]:g.push(j)}}else{h=0,f=0,g.length=0;break}}if(f){let a={isMatch:!0,score:h/f};return c&&(a.indices=g),a}}return{isMatch:!1,score:1}}});var ad=a.i(64952),ae=a.i(82479),af=a.i(22570);function ag({specs:a}){let c=(0,e.useRouter)(),[d,f]=j.useState(!1),[g,h]=j.useState(""),[i,k]=j.useState([]);j.useEffect(()=>{let a=localStorage.getItem("leanspec-recent-searches");a&&k(JSON.parse(a))},[]),j.useEffect(()=>{let a=a=>{"k"===a.key&&(a.metaKey||a.ctrlKey)&&(a.preventDefault(),f(a=>!a))};return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[]);let l=j.useMemo(()=>new ac(a,{keys:[{name:"title",weight:2},{name:"specNumber",weight:1.5},{name:"tags",weight:.5}],threshold:.4,includeScore:!0,minMatchCharLength:2}),[a]),m=j.useMemo(()=>g?l.search(g).map(a=>a.item):a.slice(0,8),[g,l,a]);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("button",{onClick:()=>f(!0),className:"inline-flex items-center gap-2 px-2 sm:px-3 py-2 text-sm text-muted-foreground hover:text-foreground transition-colors border rounded-md hover:border-foreground/20",children:[(0,b.jsx)(q.Search,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"hidden sm:inline",children:"Quick search..."}),(0,b.jsxs)("kbd",{className:"hidden md:inline-flex pointer-events-none h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium opacity-100",children:[(0,b.jsx)("span",{className:"text-xs",children:"⌘"}),"K"]})]}),(0,b.jsxs)(ad.CommandDialog,{open:d,onOpenChange:f,children:[(0,b.jsx)(ad.CommandInput,{placeholder:"Search specs by title, number, or tags...",value:g,onValueChange:h}),(0,b.jsxs)(ad.CommandList,{children:[(0,b.jsx)(ad.CommandEmpty,{children:"No specs found."}),!g&&i.length>0&&(0,b.jsx)(ad.CommandGroup,{heading:"Recent Searches",children:i.map(a=>(0,b.jsxs)(ad.CommandItem,{value:a,onSelect:()=>{h(a)},children:[(0,b.jsx)(r.Clock,{className:"mr-2 h-4 w-4"}),a]},a))}),(0,b.jsx)(ad.CommandGroup,{heading:"Specs",children:m.map(a=>(0,b.jsxs)(ad.CommandItem,{value:`${a.specNumber} ${a.title}`,onSelect:()=>{var b,d;let e;return b=a.id,void(k(e=[d=a.title,...i.filter(a=>a!==d)].slice(0,5)),localStorage.setItem("leanspec-recent-searches",JSON.stringify(e)),c.push(`/specs/${b}`),f(!1),h(""))},children:[(0,b.jsx)(p.FileText,{className:"mr-2 h-4 w-4"}),(0,b.jsxs)("div",{className:"flex-1 flex items-center justify-between gap-2",children:[(0,b.jsx)("div",{className:"flex-1 min-w-0",children:(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("span",{className:"font-medium",children:["#",a.specNumber]}),(0,b.jsx)("span",{className:"truncate",children:a.title})]})}),(0,b.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[(0,b.jsx)(ae.StatusBadge,{status:a.status}),(0,b.jsx)(af.PriorityBadge,{priority:a.priority})]})]})]},a.id))}),g&&(0,b.jsx)(ad.CommandGroup,{heading:"Filter by Tag",children:Array.from(new Set(a.flatMap(a=>a.tags))).filter(a=>a.toLowerCase().includes(g.toLowerCase())).slice(0,5).map(a=>(0,b.jsxs)(ad.CommandItem,{value:a,onSelect:()=>{c.push(`/?tag=${encodeURIComponent(a)}`),f(!1)},children:[(0,b.jsx)(s,{className:"mr-2 h-4 w-4"}),"Filter by: ",(0,b.jsx)("span",{className:"ml-1 font-medium",children:a})]},a))})]})]})]})}var ah=a.i(96151);function ai({items:a}){return(0,b.jsx)("nav",{className:"flex items-center gap-1 text-sm text-muted-foreground",children:a.map((a,d)=>(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[d>0&&(0,b.jsx)(f.ChevronRight,{className:"h-4 w-4"}),a.href?(0,b.jsx)(c.default,{href:a.href,className:"hover:text-foreground transition-colors",children:a.label}):(0,b.jsx)("span",{className:"text-foreground",children:a.label})]},d))})}function aj({specs:a}){let f=function(a){if("/"===a)return[{label:"Home"}];if("/stats"===a)return[{label:"Home",href:"/"},{label:"Stats"}];if("/specs"===a||a.startsWith("/specs?")){let b=new URLSearchParams(a.split("?")[1]||"").get("view");return[{label:"Home",href:"/"},{label:`Specs (${"board"===b?"Board View":"List View"})`}]}return a.startsWith("/specs/")?[{label:"Home",href:"/"},{label:"Specs",href:"/specs"},{label:a.split("/")[2]}]:"/board"===a?[{label:"Home",href:"/"},{label:"Board"}]:[{label:"Home",href:"/"}]}((0,e.usePathname)());return(0,b.jsx)("header",{className:"sticky top-0 z-50 w-full h-14 border-b border-border bg-background",children:(0,b.jsxs)("div",{className:"flex items-center justify-between h-full px-2 sm:px-4",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 sm:gap-4 min-w-0 flex-1",children:[(0,b.jsxs)(n.Button,{variant:"ghost",size:"icon",onClick:()=>{},className:"lg:hidden h-9 w-9 shrink-0",children:[(0,b.jsx)(h,{className:"h-5 w-5"}),(0,b.jsx)("span",{className:"sr-only",children:"Toggle menu"})]}),(0,b.jsxs)(c.default,{href:"/",className:"flex items-center space-x-2 shrink-0",children:[(0,b.jsx)(d.default,{src:"/logo-with-bg.svg",alt:"LeanSpec",width:32,height:32,className:"h-7 w-7 sm:h-8 sm:w-8 dark:hidden"}),(0,b.jsx)(d.default,{src:"/logo-dark-bg.svg",alt:"LeanSpec",width:32,height:32,className:"h-7 w-7 sm:h-8 sm:w-8 hidden dark:block"}),(0,b.jsx)("span",{className:"font-bold text-lg sm:text-xl hidden sm:inline",children:"LeanSpec"})]}),(0,b.jsx)("div",{className:"hidden md:block min-w-0",children:(0,b.jsx)(ai,{items:f})})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1 sm:gap-2 shrink-0",children:[(0,b.jsx)(ag,{specs:a}),(0,b.jsxs)(ah.TooltipProvider,{children:[(0,b.jsxs)(ah.Tooltip,{children:[(0,b.jsx)(ah.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("div",{children:(0,b.jsx)(o,{})})}),(0,b.jsx)(ah.TooltipContent,{children:(0,b.jsx)("p",{children:"Toggle theme"})})]}),(0,b.jsxs)(ah.Tooltip,{children:[(0,b.jsx)(ah.TooltipTrigger,{asChild:!0,children:(0,b.jsx)(n.Button,{variant:"ghost",size:"icon",asChild:!0,className:"h-9 w-9 sm:h-10 sm:w-10",children:(0,b.jsx)("a",{href:"https://www.lean-spec.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"Documentation",children:(0,b.jsx)(i,{className:"h-5 w-5"})})})}),(0,b.jsx)(ah.TooltipContent,{children:(0,b.jsx)("p",{children:"Documentation"})})]}),(0,b.jsxs)(ah.Tooltip,{children:[(0,b.jsx)(ah.TooltipTrigger,{asChild:!0,children:(0,b.jsx)(n.Button,{variant:"ghost",size:"icon",asChild:!0,className:"h-9 w-9 sm:h-10 sm:w-10",children:(0,b.jsxs)("a",{href:"https://github.com/codervisor/lean-spec",target:"_blank",rel:"noopener noreferrer","aria-label":"GitHub repository",children:[(0,b.jsx)(d.default,{src:"/github-mark-white.svg",alt:"GitHub",width:20,height:20,className:"hidden dark:block"}),(0,b.jsx)(d.default,{src:"/github-mark.svg",alt:"GitHub",width:20,height:20,className:"dark:hidden"})]})})}),(0,b.jsx)(ah.TooltipContent,{children:(0,b.jsx)("p",{children:"GitHub repository"})})]})]})]})]})})}a.s(["Navigation",()=>aj],10660)},50338,a=>{"use strict";var b=a.i(40352),c=a.i(1926),d=a.i(81612),e=a.i(76011),f=a.i(15268),g=a.i(63535);let h=(0,g.default)("chart-column",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);var i=a.i(29620),j=a.i(41270),k=a.i(14174),l=a.i(36883),m=a.i(70485);let n=(0,g.default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);var o=a.i(79220),p=a.i(66497),q=a.i(8920),r=a.i(87052),s=a.i(27725),t=a.i(64952),u=a.i(59653),v=a.i(17988),w=a.i(63375),x=a.i(83644),y=a.i(41857),z=a.i(84228),A=a.i(99700),B=a.i(72311),C=a.i(7547),D=a.i(44329),E=a.i(75655),F=a.i(78357),G=a.i(17449),H=a.i(16164),I=a.i(51867),J="Popover",[K,L]=(0,w.createContextScope)(J,[B.createPopperScope]),M=(0,B.createPopperScope)(),[N,O]=K(J),P=a=>{let{__scopePopover:c,children:d,open:e,defaultOpen:f,onOpenChange:g,modal:h=!1}=a,i=M(c),j=l.useRef(null),[k,m]=l.useState(!1),[n,o]=(0,G.useControllableState)({prop:e,defaultProp:f??!1,onChange:g,caller:J});return(0,b.jsx)(B.Root,{...i,children:(0,b.jsx)(N,{scope:c,contentId:(0,A.useId)(),triggerRef:j,open:n,onOpenChange:o,onOpenToggle:l.useCallback(()=>o(a=>!a),[o]),hasCustomAnchor:k,onCustomAnchorAdd:l.useCallback(()=>m(!0),[]),onCustomAnchorRemove:l.useCallback(()=>m(!1),[]),modal:h,children:d})})};P.displayName=J;var Q="PopoverAnchor";l.forwardRef((a,c)=>{let{__scopePopover:d,...e}=a,f=O(Q,d),g=M(d),{onCustomAnchorAdd:h,onCustomAnchorRemove:i}=f;return l.useEffect(()=>(h(),()=>i()),[h,i]),(0,b.jsx)(B.Anchor,{...g,...e,ref:c})}).displayName=Q;var R="PopoverTrigger",S=l.forwardRef((a,c)=>{let{__scopePopover:d,...e}=a,f=O(R,d),g=M(d),h=(0,v.useComposedRefs)(c,f.triggerRef),i=(0,b.jsx)(E.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":f.open,"aria-controls":f.contentId,"data-state":ac(f.open),...e,ref:h,onClick:(0,u.composeEventHandlers)(a.onClick,f.onOpenToggle)});return f.hasCustomAnchor?i:(0,b.jsx)(B.Anchor,{asChild:!0,...g,children:i})});S.displayName=R;var T="PopoverPortal",[U,V]=K(T,{forceMount:void 0}),W=a=>{let{__scopePopover:c,forceMount:d,children:e,container:f}=a,g=O(T,c);return(0,b.jsx)(U,{scope:c,forceMount:d,children:(0,b.jsx)(D.Presence,{present:d||g.open,children:(0,b.jsx)(C.Portal,{asChild:!0,container:f,children:e})})})};W.displayName=T;var X="PopoverContent",Y=l.forwardRef((a,c)=>{let d=V(X,a.__scopePopover),{forceMount:e=d.forceMount,...f}=a,g=O(X,a.__scopePopover);return(0,b.jsx)(D.Presence,{present:e||g.open,children:g.modal?(0,b.jsx)($,{...f,ref:c}):(0,b.jsx)(_,{...f,ref:c})})});Y.displayName=X;var Z=(0,F.createSlot)("PopoverContent.RemoveScroll"),$=l.forwardRef((a,c)=>{let d=O(X,a.__scopePopover),e=l.useRef(null),f=(0,v.useComposedRefs)(c,e),g=l.useRef(!1);return l.useEffect(()=>{let a=e.current;if(a)return(0,H.hideOthers)(a)},[]),(0,b.jsx)(I.RemoveScroll,{as:Z,allowPinchZoom:!0,children:(0,b.jsx)(aa,{...a,ref:f,trapFocus:d.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,u.composeEventHandlers)(a.onCloseAutoFocus,a=>{a.preventDefault(),g.current||d.triggerRef.current?.focus()}),onPointerDownOutside:(0,u.composeEventHandlers)(a.onPointerDownOutside,a=>{let b=a.detail.originalEvent,c=0===b.button&&!0===b.ctrlKey;g.current=2===b.button||c},{checkForDefaultPrevented:!1}),onFocusOutside:(0,u.composeEventHandlers)(a.onFocusOutside,a=>a.preventDefault(),{checkForDefaultPrevented:!1})})})}),_=l.forwardRef((a,c)=>{let d=O(X,a.__scopePopover),e=l.useRef(!1),f=l.useRef(!1);return(0,b.jsx)(aa,{...a,ref:c,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:b=>{a.onCloseAutoFocus?.(b),b.defaultPrevented||(e.current||d.triggerRef.current?.focus(),b.preventDefault()),e.current=!1,f.current=!1},onInteractOutside:b=>{a.onInteractOutside?.(b),b.defaultPrevented||(e.current=!0,"pointerdown"===b.detail.originalEvent.type&&(f.current=!0));let c=b.target;d.triggerRef.current?.contains(c)&&b.preventDefault(),"focusin"===b.detail.originalEvent.type&&f.current&&b.preventDefault()}})}),aa=l.forwardRef((a,c)=>{let{__scopePopover:d,trapFocus:e,onOpenAutoFocus:f,onCloseAutoFocus:g,disableOutsidePointerEvents:h,onEscapeKeyDown:i,onPointerDownOutside:j,onFocusOutside:k,onInteractOutside:l,...m}=a,n=O(X,d),o=M(d);return(0,y.useFocusGuards)(),(0,b.jsx)(z.FocusScope,{asChild:!0,loop:!0,trapped:e,onMountAutoFocus:f,onUnmountAutoFocus:g,children:(0,b.jsx)(x.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:h,onInteractOutside:l,onEscapeKeyDown:i,onPointerDownOutside:j,onFocusOutside:k,onDismiss:()=>n.onOpenChange(!1),children:(0,b.jsx)(B.Content,{"data-state":ac(n.open),role:"dialog",id:n.contentId,...o,...m,ref:c,style:{...m.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),ab="PopoverClose";function ac(a){return a?"open":"closed"}l.forwardRef((a,c)=>{let{__scopePopover:d,...e}=a,f=O(ab,d);return(0,b.jsx)(E.Primitive.button,{type:"button",...e,ref:c,onClick:(0,u.composeEventHandlers)(a.onClick,()=>f.onOpenChange(!1))})}).displayName=ab,l.forwardRef((a,c)=>{let{__scopePopover:d,...e}=a,f=M(d);return(0,b.jsx)(B.Arrow,{...f,...e,ref:c})}).displayName="PopoverArrow";let ad=l.forwardRef(({className:a,align:c="center",sideOffset:d=4,...e},f)=>(0,b.jsx)(W,{children:(0,b.jsx)(Y,{ref:f,align:c,sideOffset:d,className:(0,r.cn)("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...e})}));ad.displayName=Y.displayName;var ae=a.i(72245),af=a.i(65791);function ag({collapsed:a}){let{mode:c,currentProject:d,projects:e,switchProject:f}=(0,ae.useProject)(),[g,h]=(0,l.useState)(!1),[i,j]=(0,l.useState)(!1);if("multi-project"!==c)return null;let k=async a=>{await f(a),h(!1)},u=[...e].sort((a,b)=>a.favorite===b.favorite?0:a.favorite?-1:1);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(af.CreateProjectDialog,{open:i,onOpenChange:j}),(0,b.jsxs)(P,{open:g,onOpenChange:h,children:[(0,b.jsx)(S,{asChild:!0,children:(0,b.jsx)(s.Button,{variant:"outline",role:"combobox","aria-expanded":g,className:(0,r.cn)("w-full justify-between",a?"h-9 w-9 p-0 justify-center":"px-3"),children:a?(0,b.jsx)(p.FolderOpen,{className:"h-4 w-4"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 truncate",children:[(0,b.jsx)(p.FolderOpen,{className:"h-4 w-4 shrink-0 opacity-50"}),(0,b.jsx)("span",{className:"truncate",children:d?.name||"Select project..."})]}),(0,b.jsx)(n,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})})}),(0,b.jsx)(ad,{className:"w-[200px] p-0",align:"start",children:(0,b.jsxs)(t.Command,{children:[(0,b.jsx)(t.CommandInput,{placeholder:"Search projects..."}),(0,b.jsxs)(t.CommandList,{children:[(0,b.jsx)(t.CommandEmpty,{children:"No project found."}),(0,b.jsx)(t.CommandGroup,{heading:"Projects",children:u.map(a=>(0,b.jsx)(t.CommandItem,{onSelect:()=>k(a.id),className:"text-sm",children:(0,b.jsxs)("div",{className:"flex items-center gap-2 w-full",children:[(0,b.jsx)(m.Check,{className:(0,r.cn)("mr-2 h-4 w-4",d?.id===a.id?"opacity-100":"opacity-0")}),(0,b.jsx)("span",{className:"truncate flex-1",children:a.name}),a.favorite&&(0,b.jsx)(q.Star,{className:"h-3 w-3 fill-yellow-500 text-yellow-500"})]})},a.id))}),(0,b.jsx)(t.CommandSeparator,{}),(0,b.jsx)(t.CommandGroup,{children:(0,b.jsxs)(t.CommandItem,{className:"cursor-pointer",onSelect:()=>{h(!1),j(!0)},children:[(0,b.jsx)(o.Plus,{className:"mr-2 h-4 w-4"}),"Create Project"]})})]})]})})]})]})}function ah({href:a,icon:d,children:e,description:f,currentPath:g,isCollapsed:h}){let i=g===a||"/"!==a&&g.startsWith(a);return(0,b.jsxs)(c.default,{href:a,className:(0,r.cn)("flex items-center gap-3 rounded-lg px-3 py-2 transition-colors","hover:bg-accent hover:text-accent-foreground",i&&"bg-accent text-accent-foreground font-medium",h&&"justify-center px-2"),children:[(0,b.jsx)(d,{className:(0,r.cn)("h-5 w-5 shrink-0",i&&"text-primary")}),!h&&(0,b.jsxs)("div",{className:"flex flex-col",children:[(0,b.jsx)("span",{className:"text-sm",children:e}),f&&(0,b.jsx)("span",{className:"text-xs text-muted-foreground",children:f})]})]})}function ai(){let a=(0,d.usePathname)(),[c,g]=l.useState(()=>!1),[m,n]=l.useState(!1),[o,p]=l.useState(!1);return l.useEffect(()=>{p(!0)},[]),l.useEffect(()=>{document.documentElement.style.setProperty("--main-sidebar-width",c?"60px":"240px"),localStorage.setItem("main-sidebar-collapsed",String(c))},[c]),l.useEffect(()=>{n(!1)},[a]),l.useEffect(()=>{},[]),(0,b.jsxs)(b.Fragment,{children:[m&&(0,b.jsx)("div",{className:"fixed inset-0 bg-black/50 z-40 lg:hidden",onClick:()=>n(!1)}),(0,b.jsx)("aside",{className:(0,r.cn)("border-r border-border bg-background transition-all duration-300 flex-shrink-0","hidden lg:flex lg:sticky lg:top-14 lg:h-[calc(100vh-3.5rem)]",o&&c?"lg:w-[60px]":"lg:w-[240px]",m&&"fixed inset-y-0 left-0 z-[60] flex w-[280px]"),children:(0,b.jsxs)("div",{className:"flex flex-col h-full w-full",children:[(0,b.jsx)("div",{className:"lg:hidden flex justify-end p-2 border-b border-border",children:(0,b.jsxs)(s.Button,{variant:"ghost",size:"sm",onClick:()=>n(!1),className:"h-8 w-8 p-0",children:[(0,b.jsx)(k.X,{className:"h-4 w-4"}),(0,b.jsx)("span",{className:"sr-only",children:"Close menu"})]})}),o&&(0,b.jsxs)("nav",{className:"flex-1 px-2 py-4 space-y-1",children:[(0,b.jsx)("div",{className:"mb-4",children:(0,b.jsx)(ag,{collapsed:c&&!m})}),(0,b.jsx)(ah,{href:"/",icon:e.Home,currentPath:a,description:!c||m?"Dashboard":void 0,isCollapsed:c&&!m,children:"Home"}),(0,b.jsx)(ah,{href:"/specs",icon:f.FileText,currentPath:a,description:!c||m?"All Specifications":void 0,isCollapsed:c&&!m,children:"Specs"}),(0,b.jsx)(ah,{href:"/stats",icon:h,currentPath:a,description:!c||m?"Analytics":void 0,isCollapsed:c&&!m,children:"Stats"})]}),(0,b.jsx)("div",{className:"hidden lg:block p-2 border-t border-border",children:(0,b.jsx)(s.Button,{variant:"ghost",size:"sm",onClick:()=>g(!c),className:(0,r.cn)("w-full",o&&c&&"px-2"),children:o&&c?(0,b.jsx)(j.ChevronRight,{className:"h-4 w-4"}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(i.ChevronLeft,{className:"h-4 w-4 mr-2"}),(0,b.jsx)("span",{className:"text-xs",children:"Collapse"})]})})})]})})]})}a.s(["MainSidebar",()=>ai],50338)},25726,a=>{"use strict";var b=a.i(40352),c=a.i(61698);function d({children:a,...d}){return(0,b.jsx)(c.ThemeProvider,{...d,children:a})}a.s(["ThemeProvider",()=>d])},68607,a=>{"use strict";var b=a.i(94783),c=a.i(56916);a.s(["Toast",()=>b.Toast,"toast",()=>c.toast])}];
4
4
 
5
5
  //# sourceMappingURL=_c2f54661._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[13142,a=>{"use strict";var b=a.i(40352),c=a.i(36883),d=a.i(1926),e=a.i(81612),f=a.i(80096),g=a.i(37717),h=a.i(6334),i=a.i(27725),j=a.i(15929),k=a.i(93090),l=a.i(966),m=a.i(59358),n=a.i(97557),o=a.i(62936),p=a.i(7840),q=a.i(30702),r=a.i(15268),s=a.i(15970),t=a.i(4620);let u=(0,a.i(63535).default)("minimize-2",[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]]);var v=a.i(82479),w=a.i(22570),x=a.i(87052),y=a.i(90075);a.i(94783);var z=a.i(56916);let A={planned:{icon:n.Clock,title:"Planned",colorClass:"text-blue-600 dark:text-blue-400",bgClass:"bg-blue-50 dark:bg-blue-900/20",borderClass:"border-blue-200 dark:border-blue-800"},"in-progress":{icon:m.PlayCircle,title:"In Progress",colorClass:"text-orange-600 dark:text-orange-400",bgClass:"bg-orange-50 dark:bg-orange-900/20",borderClass:"border-orange-200 dark:border-orange-800"},complete:{icon:l.CheckCircle2,title:"Complete",colorClass:"text-green-600 dark:text-green-400",bgClass:"bg-green-50 dark:bg-green-900/20",borderClass:"border-green-200 dark:border-green-800"},archived:{icon:o.Archive,title:"Archived",colorClass:"text-gray-600 dark:text-gray-400",bgClass:"bg-gray-50 dark:bg-gray-900/20",borderClass:"border-gray-200 dark:border-gray-800"}},B=["planned","in-progress","complete","archived"];function C({initialSpecs:a,projectId:d}){let f=(0,e.useSearchParams)(),g=(0,e.useRouter)(),[l,m]=(0,c.useState)(a),[n,o]=(0,c.useState)({}),[r,s]=(0,c.useState)(""),[v,w]=(0,c.useState)("all"),[y,B]=(0,c.useState)("all"),[C,F]=(0,c.useState)("id-desc"),[G,H]=(0,c.useState)(!1),[I,J]=(0,c.useState)(!1),[K,L]=(0,c.useState)(()=>{let a=f.get("view");return"board"===a||"list"===a?a:"list"}),M=(0,c.useRef)(!0);(0,c.useEffect)(()=>{m(a)},[a]);let N=(0,c.useCallback)(async(a,b)=>{if(a.status===b)return;let c=a.status;o(b=>({...b,[a.id]:!0})),m(c=>c.map(c=>c.id===a.id?{...c,status:b}:c));try{let c=d?`/api/projects/${d}/specs/${encodeURIComponent(a.specName)}/status`:`/api/specs/${encodeURIComponent(a.specName)}/status`,e=await fetch(c,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:b})});if(!e.ok){let a=await e.text();throw Error(a||"Failed to update spec status")}let f=a.specNumber?`#${a.specNumber}`:a.specName;z.toast.success(`Moved ${f} to ${A[b].title}`)}catch(b){console.error("Failed to update spec status",b),m(b=>b.map(b=>b.id===a.id?{...b,status:c}:b)),z.toast.error("Unable to update status. Please try again.")}finally{o(b=>{let c={...b};return delete c[a.id],c})}},[]);(0,c.useEffect)(()=>{"archived"===v&&"board"===K&&H(!0)},[v,K]),(0,c.useEffect)(()=>{if(M.current){M.current=!1;return}let a=new URLSearchParams(window.location.search);"board"===K?a.set("view","board"):a.delete("view");let b=a.toString(),c=b?`?${b}`:"";g.replace(`/specs${c}`,{scroll:!1})},[K,g]);let O=(0,c.useMemo)(()=>{let a=[...l.filter(a=>{let b=!r||a.title?.toLowerCase().includes(r.toLowerCase())||a.specName.toLowerCase().includes(r.toLowerCase())||a.tags?.some(a=>a.toLowerCase().includes(r.toLowerCase())),c="all"===v?"list"!==K||"archived"!==a.status:a.status===v,d="all"===y||a.priority===y;return b&&c&&d})];switch(C){case"id-desc":a.sort((a,b)=>(b.specNumber||0)-(a.specNumber||0));break;case"id-asc":a.sort((a,b)=>(a.specNumber||0)-(b.specNumber||0));break;case"updated-desc":a.sort((a,b)=>a.updatedAt?b.updatedAt?b.updatedAt.getTime()-a.updatedAt.getTime():-1:1);break;case"title-asc":a.sort((a,b)=>{let c=(a.title||a.specName).toLowerCase(),d=(b.title||b.specName).toLowerCase();return c.localeCompare(d)})}return a},[l,r,v,y,C,K]);return(0,b.jsx)("div",{className:"h-[calc(100vh-3.5rem)] flex flex-col overflow-hidden bg-background p-4",children:(0,b.jsxs)("div",{className:(0,x.cn)("flex flex-col h-full mx-auto transition-all duration-300",I?"w-full":"max-w-7xl w-full"),children:[(0,b.jsx)("div",{className:"flex-none mb-4",children:(0,b.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-4",children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h1",{className:"text-2xl font-bold tracking-tight",children:"Specifications"}),(0,b.jsxs)("p",{className:"text-sm text-muted-foreground",children:[O.length," specs"]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 bg-muted/50 p-1 rounded-lg",children:[(0,b.jsxs)(i.Button,{variant:"list"===K?"secondary":"ghost",size:"sm",onClick:()=>L("list"),className:"h-8 px-2 lg:px-3",children:[(0,b.jsx)(q.List,{className:"h-4 w-4 lg:mr-2"}),(0,b.jsx)("span",{className:"hidden lg:inline",children:"List"})]}),(0,b.jsxs)(i.Button,{variant:"board"===K?"secondary":"ghost",size:"sm",onClick:()=>L("board"),className:"h-8 px-2 lg:px-3",children:[(0,b.jsx)(p.LayoutGrid,{className:"h-4 w-4 lg:mr-2"}),(0,b.jsx)("span",{className:"hidden lg:inline",children:"Board"})]})]}),(0,b.jsx)(i.Button,{variant:"ghost",size:"icon",onClick:()=>J(!I),className:"h-10 w-10 text-muted-foreground hover:text-foreground",title:I?"Exit wide mode":"Enter wide mode",children:I?(0,b.jsx)(u,{className:"h-4 w-4"}):(0,b.jsx)(t.Maximize2,{className:"h-4 w-4"})})]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 overflow-x-auto pb-2",children:[(0,b.jsxs)("div",{className:"relative flex-1 min-w-[200px] max-w-md",children:[(0,b.jsx)(k.Search,{className:"absolute left-2.5 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),(0,b.jsx)(h.Input,{placeholder:"Search specs...",value:r,onChange:a=>s(a.target.value),className:"pl-9 h-9"})]}),(0,b.jsxs)(j.Select,{value:v,onValueChange:a=>w(a),children:[(0,b.jsx)(j.SelectTrigger,{className:"w-[140px] h-9",children:(0,b.jsx)(j.SelectValue,{placeholder:"Status"})}),(0,b.jsxs)(j.SelectContent,{children:[(0,b.jsx)(j.SelectItem,{value:"all",children:"All Status"}),(0,b.jsx)(j.SelectItem,{value:"planned",children:"Planned"}),(0,b.jsx)(j.SelectItem,{value:"in-progress",children:"In Progress"}),(0,b.jsx)(j.SelectItem,{value:"complete",children:"Complete"}),(0,b.jsx)(j.SelectItem,{value:"archived",children:"Archived"})]})]}),(0,b.jsxs)(j.Select,{value:y,onValueChange:B,children:[(0,b.jsx)(j.SelectTrigger,{className:"w-[140px] h-9",children:(0,b.jsx)(j.SelectValue,{placeholder:"Priority"})}),(0,b.jsxs)(j.SelectContent,{children:[(0,b.jsx)(j.SelectItem,{value:"all",children:"All Priority"}),(0,b.jsx)(j.SelectItem,{value:"critical",children:"Critical"}),(0,b.jsx)(j.SelectItem,{value:"high",children:"High"}),(0,b.jsx)(j.SelectItem,{value:"medium",children:"Medium"}),(0,b.jsx)(j.SelectItem,{value:"low",children:"Low"})]})]}),(0,b.jsxs)(j.Select,{value:C,onValueChange:a=>F(a),children:[(0,b.jsx)(j.SelectTrigger,{className:"w-[180px] h-9",children:(0,b.jsx)(j.SelectValue,{placeholder:"Sort by"})}),(0,b.jsxs)(j.SelectContent,{children:[(0,b.jsx)(j.SelectItem,{value:"id-desc",children:"Newest First"}),(0,b.jsx)(j.SelectItem,{value:"id-asc",children:"Oldest First"}),(0,b.jsx)(j.SelectItem,{value:"updated-desc",children:"Recently Updated"}),(0,b.jsx)(j.SelectItem,{value:"title-asc",children:"Title (A-Z)"})]})]})]})]})}),(0,b.jsx)("div",{className:(0,x.cn)("flex-1 min-h-0","board"===K?"overflow-x-auto overflow-y-hidden":"overflow-y-auto"),children:"list"===K?(0,b.jsx)("div",{className:"w-full",children:(0,b.jsx)(D,{specs:O})}):(0,b.jsx)(E,{specs:O,onStatusChange:N,pendingSpecIds:n,showArchived:G,onToggleArchived:()=>H(!G)})})]})})}function D({specs:a}){return(0,b.jsx)("div",{className:"grid grid-cols-1 gap-4 pb-8",children:a.map(a=>{let c={critical:"border-l-red-500",high:"border-l-orange-500",medium:"border-l-blue-500",low:"border-l-gray-400"}[a.priority]||"border-l-gray-300",e=a.relationships&&(a.relationships.dependsOn.length>0||a.relationships.related.length>0),h=!!(a.subSpecsCount&&a.subSpecsCount>0);return(0,b.jsxs)(f.Card,{className:(0,x.cn)("hover:shadow-lg transition-all duration-150 hover:scale-[1.01] border-l-4 cursor-pointer",c),onClick:()=>window.location.href=`/specs/${a.specNumber||a.id}`,children:[(0,b.jsx)(f.CardHeader,{className:"pb-3",children:(0,b.jsxs)("div",{className:"flex items-start justify-between gap-4",children:[(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsx)(d.default,{href:`/specs/${a.specNumber||a.id}`,children:(0,b.jsxs)(f.CardTitle,{className:"text-lg font-semibold hover:text-primary transition-colors flex items-center",children:[a.specNumber?(0,b.jsxs)("span",{className:"font-mono text-base font-normal text-muted-foreground mr-3",children:["#",a.specNumber.toString().padStart(3,"0")]}):null,a.title||a.specName]})}),a.title&&a.title!==a.specName&&(0,b.jsx)("p",{className:"text-xs font-mono text-muted-foreground mt-1.5 truncate",children:a.specName})]}),(0,b.jsxs)("div",{className:"flex gap-2 shrink-0",children:[a.status&&(0,b.jsx)(v.StatusBadge,{status:a.status}),a.priority&&(0,b.jsx)(w.PriorityBadge,{priority:a.priority})]})]})}),(0,b.jsxs)(f.CardContent,{className:"flex items-center justify-between gap-4 pt-0",children:[(0,b.jsx)("div",{className:"flex items-center gap-4 text-sm text-muted-foreground flex-wrap",children:a.updatedAt||h||e?(0,b.jsxs)(b.Fragment,{children:[a.updatedAt&&(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)(n.Clock,{className:"h-3.5 w-3.5"}),(0,b.jsxs)("span",{children:["Updated ",(0,y.formatRelativeTime)(a.updatedAt)]})]}),h&&(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)(r.FileText,{className:"h-3.5 w-3.5"}),(0,b.jsxs)("span",{children:["+",a.subSpecsCount," files"]})]}),e&&(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsx)(s.GitBranch,{className:"h-3.5 w-3.5"}),(0,b.jsxs)("span",{children:[a.relationships.dependsOn.length>0&&`${a.relationships.dependsOn.length} deps`,a.relationships.dependsOn.length>0&&a.relationships.related.length>0&&", ",a.relationships.related.length>0&&`${a.relationships.related.length} related`]})]})]}):(0,b.jsx)("span",{className:"invisible",children:"No metadata"})}),a.tags&&a.tags.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap gap-2 justify-end shrink-0",children:a.tags.map(a=>(0,b.jsx)(g.Badge,{variant:"outline",className:"text-xs font-mono text-muted-foreground hover:text-foreground transition-colors",children:a},a))})]})]},a.id)})})}function E({specs:a,onStatusChange:e,pendingSpecIds:h,showArchived:i,onToggleArchived:j}){let[k,l]=(0,c.useState)(null),[m,n]=(0,c.useState)(null),o=(0,c.useMemo)(()=>B.map(b=>({status:b,config:A[b],specs:a.filter(a=>a.status===b)})),[a]),p=(0,c.useMemo)(()=>{let b=new Map;return a.forEach(a=>b.set(a.id,a)),b},[a]),q=(0,c.useCallback)((a,b)=>{b.dataTransfer.setData("text/plain",a),b.dataTransfer.effectAllowed="move",l(a)},[]),r=(0,c.useCallback)(()=>{l(null),n(null)},[]),s=(0,c.useCallback)((a,b)=>{k&&(b.preventDefault(),b.dataTransfer.dropEffect="move",n(a))},[k]),t=(0,c.useCallback)((a,b)=>{if(!k)return;let c=b.relatedTarget;c&&b.currentTarget.contains(c)||n(b=>b===a?null:b)},[k]),u=(0,c.useCallback)((a,b)=>{b.preventDefault();let c=b.dataTransfer.getData("text/plain")||k;if(!c)return void r();let d=p.get(c);d&&d.status!==a&&e(d,a),r()},[k,r,e,p]);return(0,b.jsx)("div",{className:"flex gap-6 h-full pb-2",children:o.map(a=>{let c=a.config.icon,e="archived"===a.status;return(0,b.jsxs)("div",{className:(0,x.cn)("flex flex-col h-full flex-1 min-w-[280px]",e&&!i&&"w-14 min-w-[3.5rem] flex-none flex-shrink-0"),children:[(0,b.jsx)("div",{className:(0,x.cn)("flex-none mb-4 rounded-lg border-2 bg-background transition-all",a.config.bgClass,a.config.borderClass,e?"cursor-pointer hover:opacity-80":"",e&&!i?"py-6 px-2":"p-3"),onClick:e?j:void 0,children:(0,b.jsxs)("h2",{className:(0,x.cn)("text-lg font-semibold flex items-center gap-2",a.config.colorClass,e&&!i&&"flex-col text-sm gap-3"),children:[(0,b.jsx)(c,{className:"h-5 w-5"}),e&&!i?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"vertical-text text-sm whitespace-nowrap",children:a.config.title}),(0,b.jsx)(g.Badge,{variant:"outline",className:"text-xs",children:a.specs.length})]}):(0,b.jsxs)(b.Fragment,{children:[a.config.title,(0,b.jsx)(g.Badge,{variant:"outline",className:"ml-auto",children:a.specs.length})]})]})}),(!e||i)&&(0,b.jsxs)("div",{className:(0,x.cn)("space-y-3 flex-1 rounded-xl border border-transparent p-1 transition-colors overflow-y-auto min-h-0",k&&"border-dashed border-muted-foreground/40",k&&m===a.status&&"bg-muted/40 border-primary/50"),onDragOver:b=>s(a.status,b),onDragLeave:b=>t(a.status,b),onDrop:b=>u(a.status,b),children:[a.specs.map(a=>{let c={critical:"border-l-red-500",high:"border-l-orange-500",medium:"border-l-blue-500",low:"border-l-gray-400"}[a.priority]||"border-l-gray-300",e=!!h[a.id];return(0,b.jsxs)(f.Card,{draggable:!e,onDragStart:b=>{e?b.preventDefault():q(a.id,b)},onDragEnd:r,"aria-disabled":e,className:(0,x.cn)("relative hover:shadow-lg transition-all duration-150 hover:scale-[1.02] border-l-4 cursor-pointer group flex flex-col",c,e&&"opacity-60 cursor-wait"),onClick:()=>window.location.href=`/specs/${a.specNumber||a.id}`,children:[e&&(0,b.jsx)("div",{className:"absolute inset-0 rounded-lg bg-background/80 flex items-center justify-center text-xs font-medium z-10",children:"Updating..."}),(0,b.jsxs)(f.CardHeader,{className:"p-4 pb-2 space-y-1.5",children:[(0,b.jsx)("div",{className:"flex items-center justify-between",children:(0,b.jsx)("span",{className:"font-mono text-xs text-muted-foreground/70 group-hover:text-primary/60 transition-colors",children:a.specNumber?`#${a.specNumber}`:""})}),(0,b.jsx)(d.default,{href:`/specs/${a.specNumber||a.id}`,className:"block",children:(0,b.jsx)(f.CardTitle,{className:"text-sm font-semibold leading-snug hover:text-primary transition-colors line-clamp-3",children:a.title||a.specName})})]}),(0,b.jsx)(f.CardContent,{className:"p-4 pt-2 flex-1 flex flex-col justify-end",children:(0,b.jsxs)("div",{className:"flex flex-col gap-3",children:[a.title&&a.title!==a.specName&&(0,b.jsx)("p",{className:"text-xs font-mono text-muted-foreground truncate opacity-70",children:a.specName}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2 pt-1",children:[a.priority?(0,b.jsx)(w.PriorityBadge,{priority:a.priority}):(0,b.jsx)("div",{}),a.tags&&a.tags.length>0&&(0,b.jsxs)("div",{className:"flex flex-wrap gap-1 justify-end",children:[a.tags.slice(0,2).map(a=>(0,b.jsx)(g.Badge,{variant:"outline",className:"text-[10px] px-1.5 h-5 font-mono text-muted-foreground/80",children:a},a)),a.tags.length>2&&(0,b.jsxs)(g.Badge,{variant:"outline",className:"text-[10px] px-1.5 h-5 font-mono text-muted-foreground/80",children:["+",a.tags.length-2]})]})]})]})})]},a.id)}),0===a.specs.length&&(0,b.jsx)(f.Card,{className:"border-dashed border-gray-300 dark:border-gray-700 bg-transparent",children:(0,b.jsxs)(f.CardContent,{className:"py-8 text-center",children:[(0,b.jsx)(c,{className:(0,x.cn)("mx-auto h-8 w-8 mb-2",a.config.colorClass,"opacity-50")}),(0,b.jsx)("p",{className:"text-sm text-muted-foreground",children:"Drop here to move specs"})]})})]})]},a.status)})})}a.s(["SpecsClient",()=>C],13142)}];
1
+ module.exports=[13142,a=>{"use strict";var b=a.i(40352),c=a.i(36883),d=a.i(1926),e=a.i(81612),f=a.i(80096),g=a.i(37717),h=a.i(6334),i=a.i(27725),j=a.i(15929),k=a.i(93090),l=a.i(966),m=a.i(59358),n=a.i(97557),o=a.i(62936),p=a.i(7840),q=a.i(30702),r=a.i(15268),s=a.i(15970),t=a.i(4620);let u=(0,a.i(63535).default)("minimize-2",[["path",{d:"m14 10 7-7",key:"oa77jy"}],["path",{d:"M20 10h-6V4",key:"mjg0md"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M4 14h6v6",key:"rmj7iw"}]]);var v=a.i(33093),w=a.i(41270),x=a.i(82479),y=a.i(22570),z=a.i(87052),A=a.i(90075);a.i(94783);var B=a.i(56916);let C={planned:{icon:n.Clock,title:"Planned",colorClass:"text-blue-600 dark:text-blue-400",bgClass:"bg-blue-50 dark:bg-blue-900/20",borderClass:"border-blue-200 dark:border-blue-800"},"in-progress":{icon:m.PlayCircle,title:"In Progress",colorClass:"text-orange-600 dark:text-orange-400",bgClass:"bg-orange-50 dark:bg-orange-900/20",borderClass:"border-orange-200 dark:border-orange-800"},complete:{icon:l.CheckCircle2,title:"Complete",colorClass:"text-green-600 dark:text-green-400",bgClass:"bg-green-50 dark:bg-green-900/20",borderClass:"border-green-200 dark:border-green-800"},archived:{icon:o.Archive,title:"Archived",colorClass:"text-gray-600 dark:text-gray-400",bgClass:"bg-gray-50 dark:bg-gray-900/20",borderClass:"border-gray-200 dark:border-gray-800"}},D=["planned","in-progress","complete","archived"];function E({initialSpecs:a,projectId:d}){let f=(0,e.useSearchParams)(),g=(0,e.useRouter)(),[l,m]=(0,c.useState)(a),[n,o]=(0,c.useState)({}),[r,s]=(0,c.useState)(""),[v,w]=(0,c.useState)("all"),[x,y]=(0,c.useState)("all"),[A,D]=(0,c.useState)("id-desc"),[E,H]=(0,c.useState)(!1),[I,J]=(0,c.useState)(!1),[K,L]=(0,c.useState)(()=>{let a=f.get("view");return"board"===a||"list"===a?a:"list"}),M=(0,c.useRef)(!0);(0,c.useEffect)(()=>{m(a)},[a]);let N=(0,c.useCallback)(async(a,b)=>{if(a.status===b)return;let c=a.status;o(b=>({...b,[a.id]:!0})),m(c=>c.map(c=>c.id===a.id?{...c,status:b}:c));try{let c=d?`/api/projects/${d}/specs/${encodeURIComponent(a.specName)}/status`:`/api/specs/${encodeURIComponent(a.specName)}/status`,e=await fetch(c,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:b})});if(!e.ok){let a=await e.text();throw Error(a||"Failed to update spec status")}let f=a.specNumber?`#${a.specNumber}`:a.specName;B.toast.success(`Moved ${f} to ${C[b].title}`)}catch(b){console.error("Failed to update spec status",b),m(b=>b.map(b=>b.id===a.id?{...b,status:c}:b)),B.toast.error("Unable to update status. Please try again.")}finally{o(b=>{let c={...b};return delete c[a.id],c})}},[]);(0,c.useEffect)(()=>{"archived"===v&&"board"===K&&H(!0)},[v,K]),(0,c.useEffect)(()=>{if(M.current){M.current=!1;return}let a=new URLSearchParams(window.location.search);"board"===K?a.set("view","board"):a.delete("view");let b=a.toString(),c=b?`?${b}`:"";g.replace(`/specs${c}`,{scroll:!1})},[K,g]);let O=(0,c.useMemo)(()=>{let a=[...l.filter(a=>{let b=!r||a.title?.toLowerCase().includes(r.toLowerCase())||a.specName.toLowerCase().includes(r.toLowerCase())||a.tags?.some(a=>a.toLowerCase().includes(r.toLowerCase())),c="all"===v?"list"!==K||"archived"!==a.status:a.status===v,d="all"===x||a.priority===x;return b&&c&&d})];switch(A){case"id-desc":a.sort((a,b)=>(b.specNumber||0)-(a.specNumber||0));break;case"id-asc":a.sort((a,b)=>(a.specNumber||0)-(b.specNumber||0));break;case"updated-desc":a.sort((a,b)=>a.updatedAt?b.updatedAt?b.updatedAt.getTime()-a.updatedAt.getTime():-1:1);break;case"title-asc":a.sort((a,b)=>{let c=(a.title||a.specName).toLowerCase(),d=(b.title||b.specName).toLowerCase();return c.localeCompare(d)})}return a},[l,r,v,x,A,K]);return(0,b.jsx)("div",{className:"h-[calc(100vh-3.5rem)] flex flex-col overflow-hidden bg-background p-2 sm:p-4",children:(0,b.jsxs)("div",{className:(0,z.cn)("flex flex-col h-full mx-auto transition-all duration-300",I?"w-full":"max-w-7xl w-full"),children:[(0,b.jsx)("div",{className:"flex-none mb-3 sm:mb-4",children:(0,b.jsxs)("div",{className:"flex flex-col gap-2 sm:gap-3 md:gap-4",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("h1",{className:"text-lg sm:text-xl md:text-2xl font-bold tracking-tight truncate",children:"Specifications"}),(0,b.jsxs)("p",{className:"text-xs sm:text-sm text-muted-foreground",children:[O.length," specs"]})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 sm:gap-2 flex-shrink-0",children:[(0,b.jsxs)("div",{className:"flex items-center gap-0.5 sm:gap-1 bg-muted/50 p-0.5 sm:p-1 rounded-lg",children:[(0,b.jsxs)(i.Button,{variant:"list"===K?"secondary":"ghost",size:"sm",onClick:()=>L("list"),className:"h-7 sm:h-8 px-2 sm:px-3",title:"List view",children:[(0,b.jsx)(q.List,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4"}),(0,b.jsx)("span",{className:"hidden lg:inline ml-2",children:"List"})]}),(0,b.jsxs)(i.Button,{variant:"board"===K?"secondary":"ghost",size:"sm",onClick:()=>L("board"),className:"h-7 sm:h-8 px-2 sm:px-3",title:"Board view",children:[(0,b.jsx)(p.LayoutGrid,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4"}),(0,b.jsx)("span",{className:"hidden lg:inline ml-2",children:"Board"})]})]}),(0,b.jsx)(i.Button,{variant:"ghost",size:"icon",onClick:()=>J(!I),className:"hidden md:flex h-8 w-8 sm:h-10 sm:w-10 text-muted-foreground hover:text-foreground",title:I?"Exit wide mode":"Enter wide mode",children:I?(0,b.jsx)(u,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4"}):(0,b.jsx)(t.Maximize2,{className:"h-3.5 w-3.5 sm:h-4 sm:w-4"})})]})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("div",{className:"relative w-full",children:[(0,b.jsx)(k.Search,{className:"absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 sm:h-4 sm:w-4 text-muted-foreground pointer-events-none"}),(0,b.jsx)(h.Input,{placeholder:"Search specs...",value:r,onChange:a=>s(a.target.value),className:"pl-8 sm:pl-9 h-9 sm:h-10 w-full text-sm"})]}),(0,b.jsxs)("div",{className:"flex items-center gap-2 overflow-x-auto snap-x snap-mandatory pb-1 -mx-2 px-2 sm:mx-0 sm:px-0 sm:pb-0 scrollbar-thin",children:[(0,b.jsxs)(j.Select,{value:v,onValueChange:a=>w(a),children:[(0,b.jsx)(j.SelectTrigger,{className:"w-[110px] sm:w-[130px] h-9 sm:h-10 flex-shrink-0 snap-start text-xs sm:text-sm",children:(0,b.jsx)(j.SelectValue,{placeholder:"Status"})}),(0,b.jsxs)(j.SelectContent,{children:[(0,b.jsx)(j.SelectItem,{value:"all",children:"All Status"}),(0,b.jsx)(j.SelectItem,{value:"planned",children:"Planned"}),(0,b.jsx)(j.SelectItem,{value:"in-progress",children:"In Progress"}),(0,b.jsx)(j.SelectItem,{value:"complete",children:"Complete"}),(0,b.jsx)(j.SelectItem,{value:"archived",children:"Archived"})]})]}),(0,b.jsxs)(j.Select,{value:x,onValueChange:y,children:[(0,b.jsx)(j.SelectTrigger,{className:"w-[110px] sm:w-[130px] h-9 sm:h-10 flex-shrink-0 snap-start text-xs sm:text-sm",children:(0,b.jsx)(j.SelectValue,{placeholder:"Priority"})}),(0,b.jsxs)(j.SelectContent,{children:[(0,b.jsx)(j.SelectItem,{value:"all",children:"All Priority"}),(0,b.jsx)(j.SelectItem,{value:"critical",children:"Critical"}),(0,b.jsx)(j.SelectItem,{value:"high",children:"High"}),(0,b.jsx)(j.SelectItem,{value:"medium",children:"Medium"}),(0,b.jsx)(j.SelectItem,{value:"low",children:"Low"})]})]}),(0,b.jsxs)(j.Select,{value:A,onValueChange:a=>D(a),children:[(0,b.jsx)(j.SelectTrigger,{className:"w-[130px] sm:w-[170px] h-9 sm:h-10 flex-shrink-0 snap-start text-xs sm:text-sm",children:(0,b.jsx)(j.SelectValue,{placeholder:"Sort by"})}),(0,b.jsxs)(j.SelectContent,{children:[(0,b.jsx)(j.SelectItem,{value:"id-desc",children:"Newest First"}),(0,b.jsx)(j.SelectItem,{value:"id-asc",children:"Oldest First"}),(0,b.jsx)(j.SelectItem,{value:"updated-desc",children:"Recently Updated"}),(0,b.jsx)(j.SelectItem,{value:"title-asc",children:"Title (A-Z)"})]})]})]})]})]})}),(0,b.jsx)("div",{className:(0,z.cn)("flex-1 min-h-0","board"===K?"overflow-x-auto overflow-y-hidden":"overflow-y-auto"),children:"list"===K?(0,b.jsx)("div",{className:"w-full",children:(0,b.jsx)(F,{specs:O})}):(0,b.jsx)(G,{specs:O,onStatusChange:N,pendingSpecIds:n,showArchived:E,onToggleArchived:()=>H(!E)})})]})})}function F({specs:a}){return(0,b.jsx)("div",{className:"grid grid-cols-1 gap-2 sm:gap-3 md:gap-4 pb-2 sm:pb-4 md:pb-8",children:a.map(a=>{let c={critical:"border-l-red-500",high:"border-l-orange-500",medium:"border-l-blue-500",low:"border-l-gray-400"}[a.priority]||"border-l-gray-300",e=a.relationships&&(a.relationships.dependsOn.length>0||a.relationships.related.length>0),h=!!(a.subSpecsCount&&a.subSpecsCount>0);return(0,b.jsxs)(f.Card,{className:(0,z.cn)("hover:shadow-lg active:shadow-xl transition-all duration-150 hover:scale-[1.01] active:scale-[0.99] border-l-4 cursor-pointer touch-manipulation",c),onClick:()=>window.location.href=`/specs/${a.specNumber||a.id}`,children:[(0,b.jsx)(f.CardHeader,{className:"pb-2 sm:pb-2.5 md:pb-3 px-3 sm:px-4 md:px-6 pt-3 sm:pt-4 md:pt-6",children:(0,b.jsxs)("div",{className:"flex flex-col gap-2 md:flex-row md:items-start md:justify-between md:gap-4",children:[(0,b.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,b.jsx)(d.default,{href:`/specs/${a.specNumber||a.id}`,children:(0,b.jsxs)(f.CardTitle,{className:"text-sm sm:text-base md:text-lg font-semibold hover:text-primary transition-colors flex items-start flex-wrap gap-1.5 sm:gap-2 leading-snug sm:leading-normal",children:[a.specNumber?(0,b.jsxs)("span",{className:"font-mono text-xs sm:text-sm md:text-base font-normal text-muted-foreground flex-shrink-0",children:["#",a.specNumber.toString().padStart(3,"0")]}):null,(0,b.jsx)("span",{className:"flex-1 break-words",children:a.title||a.specName})]})}),a.title&&a.title!==a.specName&&(0,b.jsx)("p",{className:"text-[11px] sm:text-xs font-mono text-muted-foreground mt-1 sm:mt-1.5 truncate",children:a.specName})]}),(0,b.jsxs)("div",{className:"flex gap-1.5 sm:gap-2 flex-wrap md:shrink-0",children:[a.status&&(0,b.jsx)(x.StatusBadge,{status:a.status}),a.priority&&(0,b.jsx)(y.PriorityBadge,{priority:a.priority})]})]})}),(0,b.jsx)(f.CardContent,{className:"px-3 sm:px-4 md:px-6 pb-2.5 sm:pb-3 md:pb-6 pt-0",children:(0,b.jsxs)("div",{className:"flex flex-col gap-2 md:flex-row md:items-center md:justify-between md:gap-4",children:[(0,b.jsx)("div",{className:"flex items-center gap-2 sm:gap-3 md:gap-4 text-[11px] sm:text-xs md:text-sm text-muted-foreground flex-wrap",children:a.updatedAt||h||e?(0,b.jsxs)(b.Fragment,{children:[a.updatedAt&&(0,b.jsxs)("div",{className:"flex items-center gap-1 sm:gap-1.5",children:[(0,b.jsx)(n.Clock,{className:"h-3 w-3 sm:h-3.5 sm:w-3.5 flex-shrink-0"}),(0,b.jsxs)("span",{className:"whitespace-nowrap",children:["Updated ",(0,A.formatRelativeTime)(a.updatedAt)]})]}),h&&(0,b.jsxs)("div",{className:"flex items-center gap-1 sm:gap-1.5",children:[(0,b.jsx)(r.FileText,{className:"h-3 w-3 sm:h-3.5 sm:w-3.5 flex-shrink-0"}),(0,b.jsxs)("span",{className:"whitespace-nowrap",children:["+",a.subSpecsCount," files"]})]}),e&&(0,b.jsxs)("div",{className:"flex items-center gap-1 sm:gap-1.5",children:[(0,b.jsx)(s.GitBranch,{className:"h-3 w-3 sm:h-3.5 sm:w-3.5 flex-shrink-0"}),(0,b.jsxs)("span",{className:"whitespace-nowrap",children:[a.relationships.dependsOn.length>0&&`${a.relationships.dependsOn.length} deps`,a.relationships.dependsOn.length>0&&a.relationships.related.length>0&&", ",a.relationships.related.length>0&&`${a.relationships.related.length} related`]})]})]}):(0,b.jsx)("span",{className:"invisible hidden md:inline",children:"No metadata"})}),a.tags&&a.tags.length>0&&(0,b.jsx)("div",{className:"flex flex-wrap gap-1 sm:gap-1.5 md:gap-2 md:justify-end md:shrink-0",children:a.tags.map(a=>(0,b.jsx)(g.Badge,{variant:"outline",className:"text-[10px] sm:text-xs font-mono text-muted-foreground hover:text-foreground transition-colors h-5 sm:h-auto px-1.5 sm:px-2",children:a},a))})]})})]},a.id)})})}function G({specs:a,onStatusChange:e,pendingSpecIds:h,showArchived:i,onToggleArchived:j}){let[k,l]=(0,c.useState)(null),[m,n]=(0,c.useState)(null),[o,p]=(0,c.useState)({}),q=(0,c.useMemo)(()=>D.map(b=>({status:b,config:C[b],specs:a.filter(a=>a.status===b)})),[a]),r=(0,c.useMemo)(()=>{let b=new Map;return a.forEach(a=>b.set(a.id,a)),b},[a]),s=(0,c.useCallback)((a,b)=>{b.dataTransfer.setData("text/plain",a),b.dataTransfer.effectAllowed="move",l(a)},[]),t=(0,c.useCallback)(()=>{l(null),n(null)},[]),u=(0,c.useCallback)((a,b)=>{k&&(b.preventDefault(),b.dataTransfer.dropEffect="move",n(a))},[k]),x=(0,c.useCallback)((a,b)=>{if(!k)return;let c=b.relatedTarget;c&&b.currentTarget.contains(c)||n(b=>b===a?null:b)},[k]),A=(0,c.useCallback)((a,b)=>{b.preventDefault();let c=b.dataTransfer.getData("text/plain")||k;if(!c)return void t();let d=r.get(c);d&&d.status!==a&&e(d,a),t()},[k,t,e,r]);return(0,b.jsx)("div",{className:"flex flex-col md:flex-row gap-3 sm:gap-4 md:gap-6 h-full pb-2 md:snap-x md:snap-mandatory overflow-y-auto md:overflow-y-hidden md:overflow-x-auto",children:q.map(a=>{let c=a.config.icon,e="archived"===a.status,l=o[a.status];return(0,b.jsxs)("div",{className:(0,z.cn)("flex flex-col flex-1 snap-start","h-auto md:h-full w-full md:w-auto flex-shrink-0",e&&!i?"md:w-12 md:sm:w-14 md:min-w-[3rem] md:sm:min-w-[3.5rem] flex-none":"md:min-w-[260px] md:sm:min-w-[280px] md:md:min-w-[300px]"),children:[(0,b.jsx)("div",{className:(0,z.cn)("flex-none mb-3 sm:mb-4 rounded-lg border-2 bg-background transition-all touch-manipulation",a.config.bgClass,a.config.borderClass,e?"cursor-pointer hover:opacity-80 active:opacity-70":"",e&&!i?"py-4 sm:py-6 px-1.5 sm:px-2":"p-2.5 sm:p-3","md:cursor-default cursor-pointer"),onClick:()=>{if(e)j();else{var b;window.innerWidth<768&&(b=a.status,p(a=>({...a,[b]:!a[b]})))}},children:(0,b.jsxs)("h2",{className:(0,z.cn)("text-base sm:text-lg font-semibold flex items-center gap-1.5 sm:gap-2",a.config.colorClass,e&&!i&&"flex-col text-xs sm:text-sm gap-2 sm:gap-3"),children:[(0,b.jsx)(c,{className:"h-4 w-4 sm:h-5 sm:w-5 flex-shrink-0"}),e&&!i?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"vertical-text text-xs sm:text-sm whitespace-nowrap",children:a.config.title}),(0,b.jsx)(g.Badge,{variant:"outline",className:"text-[10px] sm:text-xs px-1 sm:px-2 h-4 sm:h-5",children:a.specs.length})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:"truncate flex-1",children:a.config.title}),(0,b.jsx)(g.Badge,{variant:"outline",className:"text-[10px] sm:text-xs px-1.5 sm:px-2 h-4 sm:h-5 flex-shrink-0",children:a.specs.length}),(0,b.jsx)("div",{className:"md:hidden ml-2 text-muted-foreground/50",children:l?(0,b.jsx)(w.ChevronRight,{className:"h-4 w-4"}):(0,b.jsx)(v.ChevronDown,{className:"h-4 w-4"})})]})]})}),(!e||i)&&!l&&(0,b.jsxs)("div",{className:(0,z.cn)("space-y-2 sm:space-y-2.5 md:space-y-3 flex-1 rounded-xl border border-transparent p-1 transition-colors overflow-y-auto min-h-0 scrollbar-thin",k&&"border-dashed border-muted-foreground/40",k&&m===a.status&&"bg-muted/40 border-primary/50"),onDragOver:b=>u(a.status,b),onDragLeave:b=>x(a.status,b),onDrop:b=>A(a.status,b),children:[a.specs.map(a=>{let c={critical:"border-l-red-500",high:"border-l-orange-500",medium:"border-l-blue-500",low:"border-l-gray-400"}[a.priority]||"border-l-gray-300",e=!!h[a.id];return(0,b.jsxs)(f.Card,{draggable:!e,onDragStart:b=>{e?b.preventDefault():s(a.id,b)},onDragEnd:t,"aria-disabled":e,className:(0,z.cn)("relative hover:shadow-lg active:shadow-xl transition-all duration-150 hover:scale-[1.02] active:scale-[0.99] border-l-4 cursor-pointer group flex flex-col touch-manipulation",c,e&&"opacity-60 cursor-wait"),onClick:()=>window.location.href=`/specs/${a.specNumber||a.id}`,children:[e&&(0,b.jsx)("div",{className:"absolute inset-0 rounded-lg bg-background/80 flex items-center justify-center text-xs sm:text-sm font-medium z-10",children:"Updating..."}),(0,b.jsxs)(f.CardHeader,{className:"p-3 sm:p-4 pb-1.5 sm:pb-2 space-y-1 sm:space-y-1.5",children:[(0,b.jsx)("div",{className:"flex items-center justify-between",children:(0,b.jsx)("span",{className:"font-mono text-[10px] sm:text-xs text-muted-foreground/70 group-hover:text-primary/60 transition-colors",children:a.specNumber?`#${a.specNumber}`:""})}),(0,b.jsx)(d.default,{href:`/specs/${a.specNumber||a.id}`,className:"block",children:(0,b.jsx)(f.CardTitle,{className:"text-xs sm:text-sm font-semibold leading-snug hover:text-primary transition-colors line-clamp-3",children:a.title||a.specName})})]}),(0,b.jsx)(f.CardContent,{className:"p-3 sm:p-4 pt-1.5 sm:pt-2 flex-1 flex flex-col justify-end",children:(0,b.jsxs)("div",{className:"flex flex-col gap-2 sm:gap-3",children:[a.title&&a.title!==a.specName&&(0,b.jsx)("p",{className:"text-[10px] sm:text-xs font-mono text-muted-foreground truncate opacity-70",children:a.specName}),(0,b.jsxs)("div",{className:"flex items-center justify-between gap-1.5 sm:gap-2 pt-0.5 sm:pt-1",children:[a.priority?(0,b.jsx)(y.PriorityBadge,{priority:a.priority}):(0,b.jsx)("div",{}),a.tags&&a.tags.length>0&&(0,b.jsxs)("div",{className:"flex flex-wrap gap-0.5 sm:gap-1 justify-end",children:[a.tags.slice(0,2).map(a=>(0,b.jsx)(g.Badge,{variant:"outline",className:"text-[9px] sm:text-[10px] px-1 sm:px-1.5 h-4 sm:h-5 font-mono text-muted-foreground/80",children:a},a)),a.tags.length>2&&(0,b.jsxs)(g.Badge,{variant:"outline",className:"text-[9px] sm:text-[10px] px-1 sm:px-1.5 h-4 sm:h-5 font-mono text-muted-foreground/80",children:["+",a.tags.length-2]})]})]})]})})]},a.id)}),0===a.specs.length&&(0,b.jsx)(f.Card,{className:"border-dashed border-gray-300 dark:border-gray-700 bg-transparent",children:(0,b.jsxs)(f.CardContent,{className:"py-6 sm:py-8 text-center px-2",children:[(0,b.jsx)(c,{className:(0,z.cn)("mx-auto h-6 w-6 sm:h-8 sm:w-8 mb-1.5 sm:mb-2",a.config.colorClass,"opacity-50")}),(0,b.jsx)("p",{className:"text-xs sm:text-sm text-muted-foreground",children:"Drop here to move specs"})]})})]})]},a.status)})})}a.s(["SpecsClient",()=>E],13142)}];
2
2
 
3
3
  //# sourceMappingURL=packages_ui_src_app_specs_specs-client_tsx_0bb8f8f8._.js.map
@@ -0,0 +1,3 @@
1
+ module.exports=[20037,a=>{"use strict";var b=a.i(40352),c=a.i(58285),d=a.i(87052);function e({className:a,...c}){return(0,b.jsx)("div",{className:(0,d.cn)("animate-pulse rounded-md bg-muted",a),...c})}var f=a.i(90555);function g(){let a=(0,f.useSpecsSidebarState)(),d=a.specs,g=a.activeSpecId||"";return(0,b.jsxs)("div",{className:"flex min-h-[calc(100vh-3.5rem)] w-full min-w-0",children:[(0,b.jsx)(c.SpecsNavSidebar,{initialSpecs:d,currentSpecId:g}),(0,b.jsx)("div",{className:"flex-1 min-w-0 px-4 py-6 sm:px-8 sm:py-10",children:(0,b.jsxs)("div",{className:"space-y-6",children:[(0,b.jsxs)("div",{className:"space-y-3",children:[(0,b.jsx)(e,{className:"h-7 w-56"}),(0,b.jsxs)("div",{className:"flex flex-wrap gap-3",children:[(0,b.jsx)(e,{className:"h-6 w-24"}),(0,b.jsx)(e,{className:"h-6 w-24"}),(0,b.jsx)(e,{className:"h-6 w-20"})]}),(0,b.jsx)(e,{className:"h-4 w-64"})]}),(0,b.jsxs)("div",{className:"space-y-4",children:[(0,b.jsx)(e,{className:"h-5 w-40"}),(0,b.jsx)(e,{className:"h-32 w-full"})]}),(0,b.jsx)("div",{className:"space-y-4",children:[...Array(6)].map((a,c)=>(0,b.jsx)(e,{className:"h-4 w-full"},c))})]})})]})}a.s(["SpecDetailLoadingShell",()=>g],20037)}];
2
+
3
+ //# sourceMappingURL=packages_ui_src_components_spec-detail-loading-shell_tsx_f7136fb6._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[58285,90555,a=>{"use strict";var b=a.i(40352),c=a.i(36883),d=a.i(1926);let e=c.useEffect;function f(a){if(void 0!==a)switch(typeof a){case"number":return a;case"string":if(a.endsWith("px"))return parseFloat(a)}}let g=null;function h({containerElement:a,direction:b,isRtl:c,scrollOffset:d}){if("horizontal"===b&&c)switch(function(a=!1){if(null===g||a){let a=document.createElement("div"),b=a.style;b.width="50px",b.height="50px",b.overflow="scroll",b.direction="rtl";let c=document.createElement("div"),d=c.style;return d.width="100px",d.height="100px",a.appendChild(c),document.body.appendChild(a),a.scrollLeft>0?g="positive-descending":(a.scrollLeft=1,g=0===a.scrollLeft?"negative":"positive-ascending"),document.body.removeChild(a),g}return g}()){case"negative":return-d;case"positive-descending":if(a){let{clientWidth:b,scrollLeft:c,scrollWidth:d}=a;return d-b-c}}return d}function i(a,b="Assertion error"){if(!a)throw console.error(b),Error(b)}function j(a,b){if(a===b)return!0;if(!!a!=!!b||(i(void 0!==a),i(void 0!==b),Object.keys(a).length!==Object.keys(b).length))return!1;for(let c in a)if(!Object.is(b[c],a[c]))return!1;return!0}function k({cachedBounds:a,itemCount:b,itemSize:c}){if(0===b)return 0;if("number"==typeof c)return b*c;{let c=a.get(0===a.size?0:a.size-1);return i(void 0!==c,"Unexpected bounds cache miss"),b*((c.scrollOffset+c.size)/a.size)}}function l({cachedBounds:a,containerScrollOffset:b,containerSize:c,itemCount:d,overscanCount:e}){let f=d-1,g=0,h=-1,i=0,j=-1,k=0;for(;k<f;){let c=a.get(k);if(c.scrollOffset+c.size>b)break;k++}for(i=Math.max(0,(g=k)-e);k<f;){let d=a.get(k);if(d.scrollOffset+d.size>=b+c)break;k++}return j=Math.min(d-1,(h=Math.min(f,k))+e),g<0&&(g=0,h=-1,i=0,j=-1),{startIndexVisible:g,stopIndexVisible:h,startIndexOverscan:i,stopIndexOverscan:j}}function m(a,b){let{ariaAttributes:c,style:d,...e}=a,{ariaAttributes:f,style:g,...h}=b;return j(c,f)&&j(d,g)&&j(e,h)}function n({children:a,className:d,defaultHeight:g=0,listRef:n,onResize:o,onRowsRendered:p,overscanCount:q=3,rowComponent:r,rowCount:s,rowHeight:t,rowProps:u,tagName:v="div",style:w,...x}){let y=(0,c.useMemo)(()=>u,Object.values(u)),z=(0,c.useMemo)(()=>(0,c.memo)(r,m),[r]),[A,B]=(0,c.useState)(null),C=null!=t&&"object"==typeof t&&"getAverageRowHeight"in t&&"function"==typeof t.getAverageRowHeight,{getCellBounds:D,getEstimatedSize:E,scrollToIndex:F,startIndexOverscan:G,startIndexVisible:H,stopIndexOverscan:I,stopIndexVisible:J}=function({containerElement:a,containerStyle:b,defaultContainerSize:d=0,direction:g,isRtl:m=!1,itemCount:n,itemProps:o,itemSize:p,onResize:q,overscanCount:r}){var s;let t,[u,v]=(0,c.useState)({startIndexVisible:0,startIndexOverscan:0,stopIndexVisible:-1,stopIndexOverscan:-1}),{startIndexVisible:w,startIndexOverscan:x,stopIndexVisible:y,stopIndexOverscan:z}={startIndexVisible:Math.min(n-1,u.startIndexVisible),startIndexOverscan:Math.min(n-1,u.startIndexOverscan),stopIndexVisible:Math.min(n-1,u.stopIndexVisible),stopIndexOverscan:Math.min(n-1,u.stopIndexOverscan)},{height:A=d,width:B=d}=function({box:a,defaultHeight:b,defaultWidth:d,disabled:g,element:h,mode:i,style:j}){let{styleHeight:k,styleWidth:l}=(0,c.useMemo)(()=>({styleHeight:f(j?.height),styleWidth:f(j?.width)}),[j?.height,j?.width]),[m,n]=(0,c.useState)({height:b,width:d}),o=g||"only-height"===i&&void 0!==k||"only-width"===i&&void 0!==l||void 0!==k&&void 0!==l;return e(()=>{if(null===h||o)return;let b=new ResizeObserver(a=>{for(let b of a){let{contentRect:a,target:c}=b;h===c&&n(b=>b.height===a.height&&b.width===a.width?b:{height:a.height,width:a.width})}});return b.observe(h,{box:a}),()=>{b?.unobserve(h)}},[a,o,h,k,l]),(0,c.useMemo)(()=>({height:k??m.height,width:l??m.width}),[m,k,l])}({defaultHeight:"vertical"===g?d:void 0,defaultWidth:"horizontal"===g?d:void 0,element:a,mode:"vertical"===g?"only-height":"only-width",style:b}),C=(0,c.useRef)({height:0,width:0}),D="vertical"===g?A:B,E=function({containerSize:a,itemSize:b}){let c;return"string"==typeof b?(i(b.endsWith("%"),`Invalid item size: "${b}"; string values must be percentages (e.g. "100%")`),i(void 0!==a,"Container size must be defined if a percentage item size is specified"),c=a*parseInt(b)/100):c=b,c}({containerSize:D,itemSize:p});(0,c.useLayoutEffect)(()=>{if("function"==typeof q){let a=C.current;(a.height!==A||a.width!==B)&&(q({height:A,width:B},{...a}),a.height=A,a.width=B)}},[A,q,B]);let F=function({itemCount:a,itemProps:b,itemSize:d}){return(0,c.useMemo)(()=>(function({itemCount:a,itemProps:b,itemSize:c}){let d=new Map;return{get(e){for(i(e<a,`Invalid index ${e}`);d.size-1<e;){let a,f=d.size;switch(typeof c){case"function":a=c(f,b);break;case"number":a=c}if(0===f)d.set(f,{size:a,scrollOffset:0});else{let b=d.get(f-1);i(void 0!==b,`Unexpected bounds cache miss for index ${e}`),d.set(f,{scrollOffset:b.scrollOffset+b.size,size:a})}}let f=d.get(e);return i(void 0!==f,`Unexpected bounds cache miss for index ${e}`),f},set(a,b){d.set(a,b)},get size(){return d.size}}})({itemCount:a,itemProps:b,itemSize:d}),[a,b,d])}({itemCount:n,itemProps:o,itemSize:E}),G=(0,c.useCallback)(a=>F.get(a),[F]),H=(0,c.useCallback)(()=>k({cachedBounds:F,itemCount:n,itemSize:E}),[F,n,E]),I=(0,c.useCallback)(b=>l({cachedBounds:F,containerScrollOffset:h({containerElement:a,direction:g,isRtl:m,scrollOffset:b}),containerSize:D,itemCount:n,overscanCount:r}),[F,a,D,g,m,n,r]);return e(()=>{v(I(("vertical"===g?a?.scrollTop:a?.scrollLeft)??0))},[a,g,I]),e(()=>{if(!a)return;let b=()=>{v(b=>{let{scrollLeft:c,scrollTop:d}=a,e=l({cachedBounds:F,containerScrollOffset:h({containerElement:a,direction:g,isRtl:m,scrollOffset:"vertical"===g?d:c}),containerSize:D,itemCount:n,overscanCount:r});return j(e,b)?b:e})};return a.addEventListener("scroll",b),()=>{a.removeEventListener("scroll",b)}},[F,a,D,g,n,r]),{getCellBounds:G,getEstimatedSize:H,scrollToIndex:(s=({align:b="auto",containerScrollOffset:c,index:d})=>{let e=function({align:a,cachedBounds:b,index:c,itemCount:d,itemSize:e,containerScrollOffset:f,containerSize:g}){if(c<0||c>=d)throw RangeError(`Invalid index specified: ${c}`,{cause:`Index ${c} is not within the range of 0 - ${d-1}`});let h=k({cachedBounds:b,itemCount:d,itemSize:e}),i=b.get(c),j=Math.max(0,Math.min(h-g,i.scrollOffset)),l=Math.max(0,i.scrollOffset-g+i.size);switch("smart"===a&&(a=f>=l&&f<=j?"auto":"center"),a){case"start":return j;case"end":return l;case"center":return i.scrollOffset<=g/2?0:i.scrollOffset+i.size/2>=h-g/2?h-g:i.scrollOffset+i.size/2-g/2;default:return f>=l&&f<=j?f:f<l?l:j}}({align:b,cachedBounds:F,containerScrollOffset:c,containerSize:D,index:d,itemCount:n,itemSize:E});if(a){if(e=h({containerElement:a,direction:g,isRtl:m,scrollOffset:e}),"function"!=typeof a.scrollTo){let a=I(e);j(u,a)||v(a)}return e}},t=(0,c.useRef)(()=>{throw Error("Cannot call during render.")}),e(()=>{t.current=s},[s]),(0,c.useCallback)(a=>t.current?.(a),[t])),startIndexOverscan:x,startIndexVisible:w,stopIndexOverscan:z,stopIndexVisible:y}}({containerElement:A,containerStyle:w,defaultContainerSize:g,direction:"vertical",itemCount:s,itemProps:y,itemSize:(0,c.useMemo)(()=>C?a=>t.getRowHeight(a)??t.getAverageRowHeight():t,[C,t]),onResize:o,overscanCount:q});(0,c.useImperativeHandle)(n,()=>({get element(){return A},scrollToRow({align:a="auto",behavior:b="auto",index:c}){let d=F({align:a,containerScrollOffset:A?.scrollTop??0,index:c});"function"==typeof A?.scrollTo&&A.scrollTo({behavior:b,top:d})}}),[A,F]),e(()=>{if(!A)return;let a=Array.from(A.children).filter((a,b)=>{if(a.hasAttribute("aria-hidden"))return!1;let c=`${G+b}`;return a.setAttribute("data-react-window-index",c),!0});if(C)return t.observeRowElements(a)},[A,C,t,G,I]),(0,c.useEffect)(()=>{G>=0&&I>=0&&p&&p({startIndex:H,stopIndex:J},{startIndex:G,stopIndex:I})},[p,G,H,I,J]);let K=(0,c.useMemo)(()=>{let a=[];if(s>0)for(let b=G;b<=I;b++){let d=D(b);a.push((0,c.createElement)(z,{...y,ariaAttributes:{"aria-posinset":b+1,"aria-setsize":s,role:"listitem"},key:b,index:b,style:{position:"absolute",left:0,transform:`translateY(${d.scrollOffset}px)`,height:C?void 0:d.size,width:"100%"}}))}return a},[z,D,C,s,y,G,I]),L=(0,b.jsx)("div",{"aria-hidden":!0,style:{height:E(),width:"100%",zIndex:-1}});return(0,c.createElement)(v,{role:"list",...x,className:d,ref:B,style:{position:"relative",maxHeight:"100%",flexGrow:1,overflowY:"auto",...w}},K,a,L)}c.useState,c.useRef,c.useState,c.useRef;var o=a.i(93090),p=a.i(29620),q=a.i(41270),r=a.i(14174),s=a.i(30702);let t=(0,a.i(63535).default)("funnel",[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]]);var u=a.i(6334),v=a.i(27725),w=a.i(82479),x=a.i(96151),y=a.i(15929),z=a.i(87052),A=a.i(22570),B=a.i(90075);let C={specs:[],signature:null,scrollTop:0,activeSpecId:null},D=[],E=new Set,F=new Set,G=new Set;function H(){for(let a of E)a()}function I(a){return E.add(a),()=>{E.delete(a)}}function J(){return C}function K(){return(0,c.useSyncExternalStore)(I,J,()=>C)}function L(){let a=c.useCallback(a=>(F.add(a),()=>{F.delete(a)}),[]);return(0,c.useSyncExternalStore)(a,()=>J().specs,()=>D)}function M(){let a=c.useCallback(a=>(G.add(a),()=>{G.delete(a)}),[]);return(0,c.useSyncExternalStore)(a,()=>J().activeSpecId,()=>null)}function N(a){if(0===a.length)return;let b=a.map(a=>[a.id,a.specNumber??"",a.title??"",a.status??"",a.priority??"",a.updatedAt?new Date(a.updatedAt).getTime():0].join(":")).join("|");if(b!==C.signature)for(let c of(C={...C,specs:a,signature:b},H(),F))c()}function O(a){if(C.activeSpecId!==a)for(let b of(C={...C,activeSpecId:a},H(),G))b()}a.s(["primeSpecsSidebar",()=>N,"setActiveSidebarSpec",()=>O,"useSpecsSidebarActiveSpec",()=>M,"useSpecsSidebarSpecs",()=>L,"useSpecsSidebarState",()=>K],90555);let P=c.useEffect;function Q({initialSpecs:a=[],currentSpecId:e,currentSubSpec:f,onSpecHover:g}){let[h,i]=c.useState(""),[j,k]=c.useState("all"),[l,m]=c.useState("all"),[C,D]=c.useState("all"),[E,F]=c.useState(!1),[G,H]=c.useState(()=>!1),[I,J]=c.useState(!1),[K,N]=c.useState(!1),O=c.useRef(null);c.useRef(null),c.useRef(!1);let Q=c.useRef(null);c.useRef(0),c.useRef(!1),c.useRef(!0);let R=L(),S=M(),T=c.useMemo(()=>R.length>0?R:a,[R,a]),U=e||S||"";c.useEffect(()=>{N(!0)},[]),c.useEffect(()=>{document.documentElement.style.setProperty("--specs-nav-sidebar-width",G?"0px":"280px"),localStorage.setItem("specs-nav-sidebar-collapsed",String(G))},[G]),c.useEffect(()=>{J(!1)},[U,f]);let V=c.useMemo(()=>{let a=T;if(h){let b=h.toLowerCase();a=a.filter(a=>a.title?.toLowerCase().includes(b)||a.specName.toLowerCase().includes(b)||a.specNumber?.toString().includes(b))}return"all"!==j&&(a=a.filter(a=>a.status===j)),"all"!==l&&(a=a.filter(a=>a.priority===l)),"all"!==C&&(a=a.filter(a=>a.tags?.includes(C))),console.debug(a),a},[T,h,j,l,C]),W=c.useMemo(()=>{let a=new Set;return T.forEach(b=>{b.tags?.forEach(b=>a.add(b))}),Array.from(a).sort()},[T]),X="all"!==j||"all"!==l||"all"!==C,Y=c.useMemo(()=>[...V].sort((a,b)=>(b.specNumber||0)-(a.specNumber||0)),[V]);P(()=>{},[]),P(()=>{},[Y,U]),c.useEffect(()=>{},[]);let Z=c.useCallback(a=>{let{index:c,style:e}=a,h=Y[c],i=h.id===U,j=(h.contentMd?(0,z.extractH1Title)(h.contentMd):null)||h.title||h.specName;return(0,b.jsx)("div",{style:e,className:"px-1",children:(0,b.jsx)("div",{className:"mb-0.5",children:(0,b.jsx)("div",{className:"flex items-center gap-0.5",children:(0,b.jsxs)(x.Tooltip,{children:[(0,b.jsx)(x.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)(d.default,{ref:i&&!f?O:null,href:`/specs/${h.specNumber||h.id}`,onMouseEnter:()=>g?.(h.specNumber?.toString()||h.id),className:(0,z.cn)("w-full flex flex-col gap-1 p-1.5 rounded-md text-sm transition-colors",i?"bg-accent text-accent-foreground font-medium":"hover:bg-accent/50"),children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[h.specNumber&&(0,b.jsxs)("span",{className:"text-xs font-mono text-muted-foreground shrink-0",children:["#",h.specNumber.toString().padStart(3,"0")]}),(0,b.jsx)("span",{className:"truncate text-xs leading-relaxed",children:j})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 flex-wrap",children:[h.status&&(0,b.jsxs)(x.Tooltip,{children:[(0,b.jsx)(x.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("div",{children:(0,b.jsx)(w.StatusBadge,{status:h.status,iconOnly:!0,className:"text-[10px] scale-90"})})}),(0,b.jsx)(x.TooltipContent,{side:"right",children:(0,w.getStatusLabel)(h.status)})]}),h.priority&&(0,b.jsxs)(x.Tooltip,{children:[(0,b.jsx)(x.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("div",{children:(0,b.jsx)(A.PriorityBadge,{priority:h.priority,iconOnly:!0,className:"text-[10px] scale-90"})})}),(0,b.jsx)(x.TooltipContent,{side:"right",children:(0,A.getPriorityLabel)(h.priority)})]}),"number"==typeof h.subSpecsCount&&h.subSpecsCount>0&&(0,b.jsxs)("span",{className:"text-[10px] text-muted-foreground",children:["+",h.subSpecsCount," files"]}),h.updatedAt&&(0,b.jsx)("span",{className:"text-[10px] text-muted-foreground",children:(0,B.formatRelativeTime)(h.updatedAt)})]})]})}),(0,b.jsx)(x.TooltipContent,{side:"right",className:"max-w-[300px]",children:(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("div",{className:"font-semibold",children:j}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:h.specName})]})})]})})})})},[Y,U,f,g]),$=c.useMemo(()=>600,[]),_=c.useMemo(()=>c.memo(n),[]);return(0,b.jsxs)(x.TooltipProvider,{delayDuration:700,children:[I&&(0,b.jsx)("div",{className:"fixed inset-0 bg-black/50 z-40 lg:hidden",onClick:()=>J(!1)}),(0,b.jsxs)("div",{className:"relative flex-shrink-0",children:[(0,b.jsxs)("aside",{className:(0,z.cn)("sticky top-14 h-[calc(100vh-3.5rem)] border-r border-border bg-background flex flex-col overflow-hidden transition-all duration-300","hidden lg:flex",K&&G?"lg:w-0 lg:border-r-0":"lg:w-[280px]",I&&"fixed left-0 top-14 z-50 flex w-[280px]"),children:[(0,b.jsxs)("div",{className:"p-4 border-b border-border",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,b.jsx)("h2",{className:"font-semibold text-sm",children:"Specifications"}),(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsxs)(x.Tooltip,{children:[(0,b.jsx)(x.TooltipTrigger,{asChild:!0,children:(0,b.jsx)(v.Button,{variant:E||X?"default":"ghost",size:"sm",onClick:()=>F(!E),className:"h-6 w-6 p-0",children:(0,b.jsx)(t,{className:"h-4 w-4"})})}),(0,b.jsx)(x.TooltipContent,{side:"bottom",children:E?"Hide filters":"Show filters"})]}),(0,b.jsx)(v.Button,{variant:"ghost",size:"sm",onClick:()=>J(!1),className:"h-6 w-6 p-0 lg:hidden",children:(0,b.jsx)(r.X,{className:"h-4 w-4"})}),(0,b.jsx)(v.Button,{variant:"ghost",size:"sm",onClick:()=>H(!0),className:"h-6 w-6 p-0 hidden lg:flex lg:items-center lg:justify-center",children:(0,b.jsx)(p.ChevronLeft,{className:"h-4 w-4"})})]})]}),E&&(0,b.jsxs)("div",{className:"space-y-2 mb-3 pb-3 border-b border-border",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:"Filters"}),X&&(0,b.jsx)(v.Button,{variant:"ghost",size:"sm",onClick:()=>{k("all"),m("all"),D("all")},className:"h-5 text-xs px-2 py-0",children:"Clear"})]}),(0,b.jsxs)(y.Select,{value:j,onValueChange:k,children:[(0,b.jsx)(y.SelectTrigger,{className:"h-8 text-xs",children:(0,b.jsx)(y.SelectValue,{placeholder:"Status"})}),(0,b.jsxs)(y.SelectContent,{children:[(0,b.jsx)(y.SelectItem,{value:"all",children:"All Status"}),(0,b.jsx)(y.SelectItem,{value:"planned",children:"Planned"}),(0,b.jsx)(y.SelectItem,{value:"in-progress",children:"In Progress"}),(0,b.jsx)(y.SelectItem,{value:"complete",children:"Complete"}),(0,b.jsx)(y.SelectItem,{value:"archived",children:"Archived"})]})]}),(0,b.jsxs)(y.Select,{value:l,onValueChange:m,children:[(0,b.jsx)(y.SelectTrigger,{className:"h-8 text-xs",children:(0,b.jsx)(y.SelectValue,{placeholder:"Priority"})}),(0,b.jsxs)(y.SelectContent,{children:[(0,b.jsx)(y.SelectItem,{value:"all",children:"All Priority"}),(0,b.jsx)(y.SelectItem,{value:"low",children:"Low"}),(0,b.jsx)(y.SelectItem,{value:"medium",children:"Medium"}),(0,b.jsx)(y.SelectItem,{value:"high",children:"High"}),(0,b.jsx)(y.SelectItem,{value:"critical",children:"Critical"})]})]}),W.length>0&&(0,b.jsxs)(y.Select,{value:C,onValueChange:D,children:[(0,b.jsx)(y.SelectTrigger,{className:"h-8 text-xs",children:(0,b.jsx)(y.SelectValue,{placeholder:"Tag"})}),(0,b.jsxs)(y.SelectContent,{children:[(0,b.jsx)(y.SelectItem,{value:"all",children:"All Tags"}),W.map(a=>(0,b.jsx)(y.SelectItem,{value:a,children:a},a))]})]})]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(o.Search,{className:"absolute left-2 top-2.5 h-4 w-4 text-muted-foreground"}),(0,b.jsx)(u.Input,{placeholder:"Search specs...",value:h,onChange:a=>i(a.target.value),className:"pl-8 h-9 border-border"})]})]}),(0,b.jsx)("div",{className:"flex-1 overflow-hidden",children:0===Y.length?(0,b.jsx)("div",{className:"text-center py-8 text-sm text-muted-foreground",children:"No specs found"}):(0,b.jsx)(_,{listRef:Q,defaultHeight:$,rowCount:Y.length,rowHeight:72,overscanCount:5,rowComponent:Z,rowProps:{}})})]}),K&&G&&(0,b.jsx)(v.Button,{variant:"ghost",size:"sm",onClick:()=>H(!1),className:"hidden lg:items-center lg:justify-center lg:flex h-6 w-6 p-0 fixed z-50 top-20 -translate-y-1 -translate-x-1/2 left-[calc(var(--main-sidebar-width,240px))] bg-background border",children:(0,b.jsx)(q.ChevronRight,{className:"h-4 w-4"})}),(0,b.jsx)(v.Button,{onClick:()=>J(!0),size:"icon",className:"lg:hidden fixed bottom-6 left-6 h-12 w-12 rounded-full shadow-lg z-40 hover:scale-110 transition-transform","aria-label":"Show specifications list",children:(0,b.jsx)(s.List,{className:"h-5 w-5"})})]})]})}a.s(["SpecsNavSidebar",()=>Q],58285)}];
1
+ module.exports=[58285,90555,a=>{"use strict";var b=a.i(40352),c=a.i(36883),d=a.i(1926);let e=c.useEffect;function f(a){if(void 0!==a)switch(typeof a){case"number":return a;case"string":if(a.endsWith("px"))return parseFloat(a)}}let g=null;function h({containerElement:a,direction:b,isRtl:c,scrollOffset:d}){if("horizontal"===b&&c)switch(function(a=!1){if(null===g||a){let a=document.createElement("div"),b=a.style;b.width="50px",b.height="50px",b.overflow="scroll",b.direction="rtl";let c=document.createElement("div"),d=c.style;return d.width="100px",d.height="100px",a.appendChild(c),document.body.appendChild(a),a.scrollLeft>0?g="positive-descending":(a.scrollLeft=1,g=0===a.scrollLeft?"negative":"positive-ascending"),document.body.removeChild(a),g}return g}()){case"negative":return-d;case"positive-descending":if(a){let{clientWidth:b,scrollLeft:c,scrollWidth:d}=a;return d-b-c}}return d}function i(a,b="Assertion error"){if(!a)throw console.error(b),Error(b)}function j(a,b){if(a===b)return!0;if(!!a!=!!b||(i(void 0!==a),i(void 0!==b),Object.keys(a).length!==Object.keys(b).length))return!1;for(let c in a)if(!Object.is(b[c],a[c]))return!1;return!0}function k({cachedBounds:a,itemCount:b,itemSize:c}){if(0===b)return 0;if("number"==typeof c)return b*c;{let c=a.get(0===a.size?0:a.size-1);return i(void 0!==c,"Unexpected bounds cache miss"),b*((c.scrollOffset+c.size)/a.size)}}function l({cachedBounds:a,containerScrollOffset:b,containerSize:c,itemCount:d,overscanCount:e}){let f=d-1,g=0,h=-1,i=0,j=-1,k=0;for(;k<f;){let c=a.get(k);if(c.scrollOffset+c.size>b)break;k++}for(i=Math.max(0,(g=k)-e);k<f;){let d=a.get(k);if(d.scrollOffset+d.size>=b+c)break;k++}return j=Math.min(d-1,(h=Math.min(f,k))+e),g<0&&(g=0,h=-1,i=0,j=-1),{startIndexVisible:g,stopIndexVisible:h,startIndexOverscan:i,stopIndexOverscan:j}}function m(a,b){let{ariaAttributes:c,style:d,...e}=a,{ariaAttributes:f,style:g,...h}=b;return j(c,f)&&j(d,g)&&j(e,h)}function n({children:a,className:d,defaultHeight:g=0,listRef:n,onResize:o,onRowsRendered:p,overscanCount:q=3,rowComponent:r,rowCount:s,rowHeight:t,rowProps:u,tagName:v="div",style:w,...x}){let y=(0,c.useMemo)(()=>u,Object.values(u)),z=(0,c.useMemo)(()=>(0,c.memo)(r,m),[r]),[A,B]=(0,c.useState)(null),C=null!=t&&"object"==typeof t&&"getAverageRowHeight"in t&&"function"==typeof t.getAverageRowHeight,{getCellBounds:D,getEstimatedSize:E,scrollToIndex:F,startIndexOverscan:G,startIndexVisible:H,stopIndexOverscan:I,stopIndexVisible:J}=function({containerElement:a,containerStyle:b,defaultContainerSize:d=0,direction:g,isRtl:m=!1,itemCount:n,itemProps:o,itemSize:p,onResize:q,overscanCount:r}){var s;let t,[u,v]=(0,c.useState)({startIndexVisible:0,startIndexOverscan:0,stopIndexVisible:-1,stopIndexOverscan:-1}),{startIndexVisible:w,startIndexOverscan:x,stopIndexVisible:y,stopIndexOverscan:z}={startIndexVisible:Math.min(n-1,u.startIndexVisible),startIndexOverscan:Math.min(n-1,u.startIndexOverscan),stopIndexVisible:Math.min(n-1,u.stopIndexVisible),stopIndexOverscan:Math.min(n-1,u.stopIndexOverscan)},{height:A=d,width:B=d}=function({box:a,defaultHeight:b,defaultWidth:d,disabled:g,element:h,mode:i,style:j}){let{styleHeight:k,styleWidth:l}=(0,c.useMemo)(()=>({styleHeight:f(j?.height),styleWidth:f(j?.width)}),[j?.height,j?.width]),[m,n]=(0,c.useState)({height:b,width:d}),o=g||"only-height"===i&&void 0!==k||"only-width"===i&&void 0!==l||void 0!==k&&void 0!==l;return e(()=>{if(null===h||o)return;let b=new ResizeObserver(a=>{for(let b of a){let{contentRect:a,target:c}=b;h===c&&n(b=>b.height===a.height&&b.width===a.width?b:{height:a.height,width:a.width})}});return b.observe(h,{box:a}),()=>{b?.unobserve(h)}},[a,o,h,k,l]),(0,c.useMemo)(()=>({height:k??m.height,width:l??m.width}),[m,k,l])}({defaultHeight:"vertical"===g?d:void 0,defaultWidth:"horizontal"===g?d:void 0,element:a,mode:"vertical"===g?"only-height":"only-width",style:b}),C=(0,c.useRef)({height:0,width:0}),D="vertical"===g?A:B,E=function({containerSize:a,itemSize:b}){let c;return"string"==typeof b?(i(b.endsWith("%"),`Invalid item size: "${b}"; string values must be percentages (e.g. "100%")`),i(void 0!==a,"Container size must be defined if a percentage item size is specified"),c=a*parseInt(b)/100):c=b,c}({containerSize:D,itemSize:p});(0,c.useLayoutEffect)(()=>{if("function"==typeof q){let a=C.current;(a.height!==A||a.width!==B)&&(q({height:A,width:B},{...a}),a.height=A,a.width=B)}},[A,q,B]);let F=function({itemCount:a,itemProps:b,itemSize:d}){return(0,c.useMemo)(()=>(function({itemCount:a,itemProps:b,itemSize:c}){let d=new Map;return{get(e){for(i(e<a,`Invalid index ${e}`);d.size-1<e;){let a,f=d.size;switch(typeof c){case"function":a=c(f,b);break;case"number":a=c}if(0===f)d.set(f,{size:a,scrollOffset:0});else{let b=d.get(f-1);i(void 0!==b,`Unexpected bounds cache miss for index ${e}`),d.set(f,{scrollOffset:b.scrollOffset+b.size,size:a})}}let f=d.get(e);return i(void 0!==f,`Unexpected bounds cache miss for index ${e}`),f},set(a,b){d.set(a,b)},get size(){return d.size}}})({itemCount:a,itemProps:b,itemSize:d}),[a,b,d])}({itemCount:n,itemProps:o,itemSize:E}),G=(0,c.useCallback)(a=>F.get(a),[F]),H=(0,c.useCallback)(()=>k({cachedBounds:F,itemCount:n,itemSize:E}),[F,n,E]),I=(0,c.useCallback)(b=>l({cachedBounds:F,containerScrollOffset:h({containerElement:a,direction:g,isRtl:m,scrollOffset:b}),containerSize:D,itemCount:n,overscanCount:r}),[F,a,D,g,m,n,r]);return e(()=>{v(I(("vertical"===g?a?.scrollTop:a?.scrollLeft)??0))},[a,g,I]),e(()=>{if(!a)return;let b=()=>{v(b=>{let{scrollLeft:c,scrollTop:d}=a,e=l({cachedBounds:F,containerScrollOffset:h({containerElement:a,direction:g,isRtl:m,scrollOffset:"vertical"===g?d:c}),containerSize:D,itemCount:n,overscanCount:r});return j(e,b)?b:e})};return a.addEventListener("scroll",b),()=>{a.removeEventListener("scroll",b)}},[F,a,D,g,n,r]),{getCellBounds:G,getEstimatedSize:H,scrollToIndex:(s=({align:b="auto",containerScrollOffset:c,index:d})=>{let e=function({align:a,cachedBounds:b,index:c,itemCount:d,itemSize:e,containerScrollOffset:f,containerSize:g}){if(c<0||c>=d)throw RangeError(`Invalid index specified: ${c}`,{cause:`Index ${c} is not within the range of 0 - ${d-1}`});let h=k({cachedBounds:b,itemCount:d,itemSize:e}),i=b.get(c),j=Math.max(0,Math.min(h-g,i.scrollOffset)),l=Math.max(0,i.scrollOffset-g+i.size);switch("smart"===a&&(a=f>=l&&f<=j?"auto":"center"),a){case"start":return j;case"end":return l;case"center":return i.scrollOffset<=g/2?0:i.scrollOffset+i.size/2>=h-g/2?h-g:i.scrollOffset+i.size/2-g/2;default:return f>=l&&f<=j?f:f<l?l:j}}({align:b,cachedBounds:F,containerScrollOffset:c,containerSize:D,index:d,itemCount:n,itemSize:E});if(a){if(e=h({containerElement:a,direction:g,isRtl:m,scrollOffset:e}),"function"!=typeof a.scrollTo){let a=I(e);j(u,a)||v(a)}return e}},t=(0,c.useRef)(()=>{throw Error("Cannot call during render.")}),e(()=>{t.current=s},[s]),(0,c.useCallback)(a=>t.current?.(a),[t])),startIndexOverscan:x,startIndexVisible:w,stopIndexOverscan:z,stopIndexVisible:y}}({containerElement:A,containerStyle:w,defaultContainerSize:g,direction:"vertical",itemCount:s,itemProps:y,itemSize:(0,c.useMemo)(()=>C?a=>t.getRowHeight(a)??t.getAverageRowHeight():t,[C,t]),onResize:o,overscanCount:q});(0,c.useImperativeHandle)(n,()=>({get element(){return A},scrollToRow({align:a="auto",behavior:b="auto",index:c}){let d=F({align:a,containerScrollOffset:A?.scrollTop??0,index:c});"function"==typeof A?.scrollTo&&A.scrollTo({behavior:b,top:d})}}),[A,F]),e(()=>{if(!A)return;let a=Array.from(A.children).filter((a,b)=>{if(a.hasAttribute("aria-hidden"))return!1;let c=`${G+b}`;return a.setAttribute("data-react-window-index",c),!0});if(C)return t.observeRowElements(a)},[A,C,t,G,I]),(0,c.useEffect)(()=>{G>=0&&I>=0&&p&&p({startIndex:H,stopIndex:J},{startIndex:G,stopIndex:I})},[p,G,H,I,J]);let K=(0,c.useMemo)(()=>{let a=[];if(s>0)for(let b=G;b<=I;b++){let d=D(b);a.push((0,c.createElement)(z,{...y,ariaAttributes:{"aria-posinset":b+1,"aria-setsize":s,role:"listitem"},key:b,index:b,style:{position:"absolute",left:0,transform:`translateY(${d.scrollOffset}px)`,height:C?void 0:d.size,width:"100%"}}))}return a},[z,D,C,s,y,G,I]),L=(0,b.jsx)("div",{"aria-hidden":!0,style:{height:E(),width:"100%",zIndex:-1}});return(0,c.createElement)(v,{role:"list",...x,className:d,ref:B,style:{position:"relative",maxHeight:"100%",flexGrow:1,overflowY:"auto",...w}},K,a,L)}c.useState,c.useRef,c.useState,c.useRef;var o=a.i(93090),p=a.i(29620),q=a.i(41270),r=a.i(14174);let s=(0,a.i(63535).default)("funnel",[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]]);var t=a.i(6334),u=a.i(27725),v=a.i(82479),w=a.i(96151),x=a.i(15929),y=a.i(87052),z=a.i(22570),A=a.i(90075);let B={specs:[],signature:null,scrollTop:0,activeSpecId:null},C=[],D=new Set,E=new Set,F=new Set;function G(){for(let a of D)a()}function H(a){return D.add(a),()=>{D.delete(a)}}function I(){return B}function J(){return(0,c.useSyncExternalStore)(H,I,()=>B)}function K(){let a=c.useCallback(a=>(E.add(a),()=>{E.delete(a)}),[]);return(0,c.useSyncExternalStore)(a,()=>I().specs,()=>C)}function L(){let a=c.useCallback(a=>(F.add(a),()=>{F.delete(a)}),[]);return(0,c.useSyncExternalStore)(a,()=>I().activeSpecId,()=>null)}function M(a){if(0===a.length)return;let b=a.map(a=>[a.id,a.specNumber??"",a.title??"",a.status??"",a.priority??"",a.updatedAt?new Date(a.updatedAt).getTime():0].join(":")).join("|");if(b!==B.signature)for(let c of(B={...B,specs:a,signature:b},G(),E))c()}function N(a){if(B.activeSpecId!==a)for(let b of(B={...B,activeSpecId:a},G(),F))b()}a.s(["primeSpecsSidebar",()=>M,"setActiveSidebarSpec",()=>N,"useSpecsSidebarActiveSpec",()=>L,"useSpecsSidebarSpecs",()=>K,"useSpecsSidebarState",()=>J],90555);let O=c.useEffect;function P({initialSpecs:a=[],currentSpecId:e,currentSubSpec:f,onSpecHover:g}){let[h,i]=c.useState(""),[j,k]=c.useState("all"),[l,m]=c.useState("all"),[B,C]=c.useState("all"),[D,E]=c.useState(!1),[F,G]=c.useState(()=>!1),[H,I]=c.useState(!1),[J,M]=c.useState(!1),N=c.useRef(null);c.useRef(null),c.useRef(!1);let P=c.useRef(null);c.useRef(0),c.useRef(!1),c.useRef(!0);let Q=K(),R=L(),S=c.useMemo(()=>Q.length>0?Q:a,[Q,a]),T=e||R||"";c.useEffect(()=>{M(!0)},[]),c.useEffect(()=>{document.documentElement.style.setProperty("--specs-nav-sidebar-width",F?"0px":"280px"),localStorage.setItem("specs-nav-sidebar-collapsed",String(F))},[F]),c.useEffect(()=>{I(!1)},[T,f]);let U=c.useMemo(()=>{let a=S;if(h){let b=h.toLowerCase();a=a.filter(a=>a.title?.toLowerCase().includes(b)||a.specName.toLowerCase().includes(b)||a.specNumber?.toString().includes(b))}return"all"!==j&&(a=a.filter(a=>a.status===j)),"all"!==l&&(a=a.filter(a=>a.priority===l)),"all"!==B&&(a=a.filter(a=>a.tags?.includes(B))),console.debug(a),a},[S,h,j,l,B]),V=c.useMemo(()=>{let a=new Set;return S.forEach(b=>{b.tags?.forEach(b=>a.add(b))}),Array.from(a).sort()},[S]),W="all"!==j||"all"!==l||"all"!==B,X=c.useMemo(()=>[...U].sort((a,b)=>(b.specNumber||0)-(a.specNumber||0)),[U]);O(()=>{},[]),O(()=>{},[X,T]),c.useEffect(()=>{},[]);let Y=c.useCallback(a=>{let{index:c,style:e}=a,h=X[c],i=h.id===T,j=(h.contentMd?(0,y.extractH1Title)(h.contentMd):null)||h.title||h.specName;return(0,b.jsx)("div",{style:e,className:"px-1",children:(0,b.jsx)("div",{className:"mb-0.5",children:(0,b.jsx)("div",{className:"flex items-center gap-0.5",children:(0,b.jsxs)(w.Tooltip,{children:[(0,b.jsx)(w.TooltipTrigger,{asChild:!0,children:(0,b.jsxs)(d.default,{ref:i&&!f?N:null,href:`/specs/${h.specNumber||h.id}`,onMouseEnter:()=>g?.(h.specNumber?.toString()||h.id),className:(0,y.cn)("w-full flex flex-col gap-1 p-1.5 rounded-md text-sm transition-colors",i?"bg-accent text-accent-foreground font-medium":"hover:bg-accent/50"),children:[(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[h.specNumber&&(0,b.jsxs)("span",{className:"text-xs font-mono text-muted-foreground shrink-0",children:["#",h.specNumber.toString().padStart(3,"0")]}),(0,b.jsx)("span",{className:"truncate text-xs leading-relaxed",children:j})]}),(0,b.jsxs)("div",{className:"flex items-center gap-1.5 flex-wrap",children:[h.status&&(0,b.jsxs)(w.Tooltip,{children:[(0,b.jsx)(w.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("div",{children:(0,b.jsx)(v.StatusBadge,{status:h.status,iconOnly:!0,className:"text-[10px] scale-90"})})}),(0,b.jsx)(w.TooltipContent,{side:"right",children:(0,v.getStatusLabel)(h.status)})]}),h.priority&&(0,b.jsxs)(w.Tooltip,{children:[(0,b.jsx)(w.TooltipTrigger,{asChild:!0,children:(0,b.jsx)("div",{children:(0,b.jsx)(z.PriorityBadge,{priority:h.priority,iconOnly:!0,className:"text-[10px] scale-90"})})}),(0,b.jsx)(w.TooltipContent,{side:"right",children:(0,z.getPriorityLabel)(h.priority)})]}),"number"==typeof h.subSpecsCount&&h.subSpecsCount>0&&(0,b.jsxs)("span",{className:"text-[10px] text-muted-foreground",children:["+",h.subSpecsCount," files"]}),h.updatedAt&&(0,b.jsx)("span",{className:"text-[10px] text-muted-foreground",children:(0,A.formatRelativeTime)(h.updatedAt)})]})]})}),(0,b.jsx)(w.TooltipContent,{side:"right",className:"max-w-[300px]",children:(0,b.jsxs)("div",{className:"space-y-1",children:[(0,b.jsx)("div",{className:"font-semibold",children:j}),(0,b.jsx)("div",{className:"text-xs text-muted-foreground",children:h.specName})]})})]})})})})},[X,T,f,g]),Z=c.useMemo(()=>600,[]),$=c.useMemo(()=>c.memo(n),[]);return(0,b.jsxs)(w.TooltipProvider,{delayDuration:700,children:[H&&(0,b.jsx)("div",{className:"fixed inset-0 bg-black/50 z-40 lg:hidden",onClick:()=>I(!1)}),(0,b.jsxs)("div",{className:"relative flex-shrink-0",children:[(0,b.jsxs)("aside",{className:(0,y.cn)("border-r border-border bg-background flex flex-col overflow-hidden transition-all duration-300","hidden lg:flex lg:sticky lg:top-14 lg:h-[calc(100vh-3.5rem)]",J&&F?"lg:w-0 lg:border-r-0":"lg:w-[280px]",H&&"fixed inset-y-0 left-0 z-[60] flex w-[280px]"),children:[(0,b.jsxs)("div",{className:"p-4 border-b border-border",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,b.jsx)("h2",{className:"font-semibold text-sm",children:"Specifications"}),(0,b.jsxs)("div",{className:"flex items-center gap-1",children:[(0,b.jsxs)(w.Tooltip,{children:[(0,b.jsx)(w.TooltipTrigger,{asChild:!0,children:(0,b.jsx)(u.Button,{variant:D||W?"default":"ghost",size:"sm",onClick:()=>E(!D),className:"h-6 w-6 p-0",children:(0,b.jsx)(s,{className:"h-4 w-4"})})}),(0,b.jsx)(w.TooltipContent,{side:"bottom",children:D?"Hide filters":"Show filters"})]}),(0,b.jsx)(u.Button,{variant:"ghost",size:"sm",onClick:()=>I(!1),className:"h-6 w-6 p-0 lg:hidden",children:(0,b.jsx)(r.X,{className:"h-4 w-4"})}),(0,b.jsx)(u.Button,{variant:"ghost",size:"sm",onClick:()=>G(!0),className:"h-6 w-6 p-0 hidden lg:flex lg:items-center lg:justify-center",children:(0,b.jsx)(p.ChevronLeft,{className:"h-4 w-4"})})]})]}),D&&(0,b.jsxs)("div",{className:"space-y-2 mb-3 pb-3 border-b border-border",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between",children:[(0,b.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:"Filters"}),W&&(0,b.jsx)(u.Button,{variant:"ghost",size:"sm",onClick:()=>{k("all"),m("all"),C("all")},className:"h-5 text-xs px-2 py-0",children:"Clear"})]}),(0,b.jsxs)(x.Select,{value:j,onValueChange:k,children:[(0,b.jsx)(x.SelectTrigger,{className:"h-8 text-xs",children:(0,b.jsx)(x.SelectValue,{placeholder:"Status"})}),(0,b.jsxs)(x.SelectContent,{children:[(0,b.jsx)(x.SelectItem,{value:"all",children:"All Status"}),(0,b.jsx)(x.SelectItem,{value:"planned",children:"Planned"}),(0,b.jsx)(x.SelectItem,{value:"in-progress",children:"In Progress"}),(0,b.jsx)(x.SelectItem,{value:"complete",children:"Complete"}),(0,b.jsx)(x.SelectItem,{value:"archived",children:"Archived"})]})]}),(0,b.jsxs)(x.Select,{value:l,onValueChange:m,children:[(0,b.jsx)(x.SelectTrigger,{className:"h-8 text-xs",children:(0,b.jsx)(x.SelectValue,{placeholder:"Priority"})}),(0,b.jsxs)(x.SelectContent,{children:[(0,b.jsx)(x.SelectItem,{value:"all",children:"All Priority"}),(0,b.jsx)(x.SelectItem,{value:"low",children:"Low"}),(0,b.jsx)(x.SelectItem,{value:"medium",children:"Medium"}),(0,b.jsx)(x.SelectItem,{value:"high",children:"High"}),(0,b.jsx)(x.SelectItem,{value:"critical",children:"Critical"})]})]}),V.length>0&&(0,b.jsxs)(x.Select,{value:B,onValueChange:C,children:[(0,b.jsx)(x.SelectTrigger,{className:"h-8 text-xs",children:(0,b.jsx)(x.SelectValue,{placeholder:"Tag"})}),(0,b.jsxs)(x.SelectContent,{children:[(0,b.jsx)(x.SelectItem,{value:"all",children:"All Tags"}),V.map(a=>(0,b.jsx)(x.SelectItem,{value:a,children:a},a))]})]})]}),(0,b.jsxs)("div",{className:"relative",children:[(0,b.jsx)(o.Search,{className:"absolute left-2 top-2.5 h-4 w-4 text-muted-foreground"}),(0,b.jsx)(t.Input,{placeholder:"Search specs...",value:h,onChange:a=>i(a.target.value),className:"pl-8 h-9 border-border"})]})]}),(0,b.jsx)("div",{className:"flex-1 overflow-hidden",children:0===X.length?(0,b.jsx)("div",{className:"text-center py-8 text-sm text-muted-foreground",children:"No specs found"}):(0,b.jsx)($,{listRef:P,defaultHeight:Z,rowCount:X.length,rowHeight:72,overscanCount:5,rowComponent:Y,rowProps:{}})})]}),J&&F&&(0,b.jsx)(u.Button,{variant:"ghost",size:"sm",onClick:()=>G(!1),className:"hidden lg:items-center lg:justify-center lg:flex h-6 w-6 p-0 fixed z-50 top-20 -translate-y-1 -translate-x-1/2 left-[calc(var(--main-sidebar-width,240px))] bg-background border",children:(0,b.jsx)(q.ChevronRight,{className:"h-4 w-4"})})]})]})}a.s(["SpecsNavSidebar",()=>P],58285)}];
2
2
 
3
3
  //# sourceMappingURL=packages_ui_src_components_specs-nav-sidebar_tsx_8237ed13._.js.map