@leanspec/ui 0.2.3 → 0.2.4

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 (187) hide show
  1. package/dist/standalone/packages/web/.next/BUILD_ID +1 -1
  2. package/dist/standalone/packages/web/.next/build-manifest.json +2 -2
  3. package/dist/standalone/packages/web/.next/prerender-manifest.json +3 -3
  4. package/dist/standalone/packages/web/.next/server/app/_global-error.html +2 -2
  5. package/dist/standalone/packages/web/.next/server/app/_global-error.rsc +1 -1
  6. package/dist/standalone/packages/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  7. package/dist/standalone/packages/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  8. package/dist/standalone/packages/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  9. package/dist/standalone/packages/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  10. package/dist/standalone/packages/web/.next/server/app/_not-found/page.js.nft.json +1 -1
  11. package/dist/standalone/packages/web/.next/server/app/_not-found.html +2 -2
  12. package/dist/standalone/packages/web/.next/server/app/_not-found.rsc +2 -2
  13. package/dist/standalone/packages/web/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  14. package/dist/standalone/packages/web/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  15. package/dist/standalone/packages/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  16. package/dist/standalone/packages/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  17. package/dist/standalone/packages/web/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  18. package/dist/standalone/packages/web/.next/server/app/api/projects/[id]/specs/route.js.nft.json +1 -1
  19. package/dist/standalone/packages/web/.next/server/app/api/projects/route.js.nft.json +1 -1
  20. package/dist/standalone/packages/web/.next/server/app/api/revalidate/route.js.nft.json +1 -1
  21. package/dist/standalone/packages/web/.next/server/app/api/specs/[id]/dependency-graph/route.js.nft.json +1 -1
  22. package/dist/standalone/packages/web/.next/server/app/api/specs/[id]/route.js.nft.json +1 -1
  23. package/dist/standalone/packages/web/.next/server/app/api/specs/[id]/subspecs/[file]/route.js.nft.json +1 -1
  24. package/dist/standalone/packages/web/.next/server/app/api/stats/route.js.nft.json +1 -1
  25. package/dist/standalone/packages/web/.next/server/app/board/page.js.nft.json +1 -1
  26. package/dist/standalone/packages/web/.next/server/app/board.html +1 -1
  27. package/dist/standalone/packages/web/.next/server/app/board.rsc +2 -2
  28. package/dist/standalone/packages/web/.next/server/app/board.segments/_full.segment.rsc +2 -2
  29. package/dist/standalone/packages/web/.next/server/app/board.segments/_index.segment.rsc +1 -1
  30. package/dist/standalone/packages/web/.next/server/app/board.segments/_tree.segment.rsc +1 -1
  31. package/dist/standalone/packages/web/.next/server/app/board.segments/board/__PAGE__.segment.rsc +1 -1
  32. package/dist/standalone/packages/web/.next/server/app/board.segments/board.segment.rsc +1 -1
  33. package/dist/standalone/packages/web/.next/server/app/page.js.nft.json +1 -1
  34. package/dist/standalone/packages/web/.next/server/app/specs/[id]/page.js.nft.json +1 -1
  35. package/dist/standalone/packages/web/.next/server/app/specs/[id]/page_client-reference-manifest.js +1 -1
  36. package/dist/standalone/packages/web/.next/server/app/specs/page.js.nft.json +1 -1
  37. package/dist/standalone/packages/web/.next/server/app/stats/page.js.nft.json +1 -1
  38. package/dist/standalone/packages/web/.next/server/chunks/[root-of-the-server]__2e0f9179._.js +1 -1
  39. package/dist/standalone/packages/web/.next/server/chunks/[root-of-the-server]__577d6d08._.js +1 -1
  40. package/dist/standalone/packages/web/.next/server/chunks/[root-of-the-server]__e54bc4b8._.js +1 -1
  41. package/dist/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f8978f3e._.js +1 -1
  42. package/dist/standalone/packages/web/.next/server/chunks/ssr/[root-of-the-server]__be46bb7c._.js +1 -1
  43. package/dist/standalone/packages/web/.next/server/chunks/ssr/_7dedc302._.js +1 -1
  44. package/dist/standalone/packages/web/.next/server/chunks/ssr/_ad71cd8c._.js +1 -1
  45. package/dist/standalone/packages/web/.next/server/chunks/ssr/_c5a5c652._.js +1 -1
  46. package/dist/standalone/packages/web/.next/server/pages/404.html +2 -2
  47. package/dist/standalone/packages/web/.next/server/pages/500.html +2 -2
  48. package/dist/standalone/packages/web/.next/server/server-reference-manifest.js +1 -1
  49. package/dist/standalone/packages/web/.next/server/server-reference-manifest.json +1 -1
  50. package/dist/{static/chunks/0de258404bcae76f.js → standalone/packages/web/.next/static/chunks/8864b47e107cbe63.js} +1 -1
  51. package/dist/{static/chunks/09ff02250dd56621.js → standalone/packages/web/.next/static/chunks/a2889ecda42c83e7.js} +1 -1
  52. package/dist/standalone/packages/web/.next/static/chunks/c22619397bb8368e.js +1 -0
  53. package/dist/standalone/packages/web/components.json +20 -0
  54. package/dist/standalone/packages/web/drizzle/0000_reflective_thena.sql +59 -0
  55. package/dist/standalone/packages/web/drizzle/0001_fresh_carmella_unuscione.sql +1 -0
  56. package/dist/standalone/packages/web/drizzle/meta/0000_snapshot.json +427 -0
  57. package/dist/standalone/packages/web/drizzle/meta/0001_snapshot.json +436 -0
  58. package/dist/standalone/packages/web/drizzle/meta/_journal.json +20 -0
  59. package/dist/standalone/packages/web/drizzle.config.ts +10 -0
  60. package/dist/standalone/packages/web/eslint.config.mjs +18 -0
  61. package/dist/standalone/packages/web/next.config.ts +7 -0
  62. package/dist/standalone/packages/web/package.json +1 -1
  63. package/dist/standalone/packages/web/postcss.config.mjs +8 -0
  64. package/dist/standalone/packages/web/src/app/api/projects/[id]/specs/route.ts +23 -0
  65. package/dist/standalone/packages/web/src/app/api/projects/route.ts +19 -0
  66. package/dist/standalone/packages/web/src/app/api/revalidate/route.ts +63 -0
  67. package/dist/standalone/packages/web/src/app/api/specs/[id]/dependency-graph/route.test.ts +51 -0
  68. package/dist/standalone/packages/web/src/app/api/specs/[id]/dependency-graph/route.ts +171 -0
  69. package/dist/standalone/packages/web/src/app/api/specs/[id]/route.ts +36 -0
  70. package/dist/standalone/packages/web/src/app/api/specs/[id]/subspecs/[file]/route.ts +46 -0
  71. package/dist/standalone/packages/web/src/app/api/stats/route.ts +19 -0
  72. package/dist/standalone/packages/web/src/app/board/board-client.tsx +162 -0
  73. package/dist/standalone/packages/web/src/app/board/loading.tsx +43 -0
  74. package/dist/standalone/packages/web/src/app/board/page.tsx +18 -0
  75. package/dist/standalone/packages/web/src/app/dashboard-client.tsx +364 -0
  76. package/dist/standalone/packages/web/src/app/error.tsx +43 -0
  77. package/dist/standalone/packages/web/src/app/globals.css +531 -0
  78. package/dist/standalone/packages/web/src/app/home-client.tsx +277 -0
  79. package/dist/standalone/packages/web/src/app/layout.tsx +70 -0
  80. package/dist/standalone/packages/web/src/app/loading.tsx +87 -0
  81. package/dist/standalone/packages/web/src/app/not-found.tsx +27 -0
  82. package/dist/standalone/packages/web/src/app/page.tsx +18 -0
  83. package/dist/standalone/packages/web/src/app/specs/[id]/loading.tsx +5 -0
  84. package/dist/standalone/packages/web/src/app/specs/[id]/page.tsx +43 -0
  85. package/dist/standalone/packages/web/src/app/specs/page.tsx +18 -0
  86. package/dist/standalone/packages/web/src/app/specs/specs-client.tsx +425 -0
  87. package/dist/standalone/packages/web/src/app/stats/page.tsx +18 -0
  88. package/dist/standalone/packages/web/src/app/stats/stats-client.tsx +283 -0
  89. package/dist/standalone/packages/web/src/components/back-to-top.tsx +46 -0
  90. package/dist/standalone/packages/web/src/components/empty-state.tsx +52 -0
  91. package/dist/standalone/packages/web/src/components/main-sidebar.tsx +175 -0
  92. package/dist/standalone/packages/web/src/components/markdown-link.test.ts +96 -0
  93. package/dist/standalone/packages/web/src/components/markdown-link.tsx +95 -0
  94. package/dist/standalone/packages/web/src/components/navigation.tsx +210 -0
  95. package/dist/standalone/packages/web/src/components/priority-badge.tsx +53 -0
  96. package/dist/standalone/packages/web/src/components/quick-search.tsx +180 -0
  97. package/dist/standalone/packages/web/src/components/skeletons.tsx +119 -0
  98. package/dist/standalone/packages/web/src/components/spec-dependency-graph.tsx +369 -0
  99. package/dist/standalone/packages/web/src/components/spec-detail-client.tsx +372 -0
  100. package/dist/standalone/packages/web/src/components/spec-detail-loading-shell.tsx +42 -0
  101. package/dist/standalone/packages/web/src/components/spec-detail-wrapper.tsx +70 -0
  102. package/dist/standalone/packages/web/src/components/spec-metadata.tsx +136 -0
  103. package/dist/standalone/packages/web/src/components/spec-sidebar.tsx +127 -0
  104. package/dist/standalone/packages/web/src/components/spec-timeline.tsx +186 -0
  105. package/dist/standalone/packages/web/src/components/specs-nav-sidebar.tsx +561 -0
  106. package/dist/standalone/packages/web/src/components/status-badge.tsx +53 -0
  107. package/dist/standalone/packages/web/src/components/sub-spec-tabs.tsx +143 -0
  108. package/dist/standalone/packages/web/src/components/table-of-contents.tsx +130 -0
  109. package/dist/standalone/packages/web/src/components/theme-provider.tsx +11 -0
  110. package/dist/standalone/packages/web/src/components/theme-toggle.tsx +37 -0
  111. package/dist/standalone/packages/web/src/components/ui/avatar.tsx +50 -0
  112. package/dist/standalone/packages/web/src/components/ui/badge.tsx +36 -0
  113. package/dist/standalone/packages/web/src/components/ui/breadcrumb.tsx +110 -0
  114. package/dist/standalone/packages/web/src/components/ui/button.tsx +57 -0
  115. package/dist/standalone/packages/web/src/components/ui/card.tsx +76 -0
  116. package/dist/standalone/packages/web/src/components/ui/command.tsx +153 -0
  117. package/dist/standalone/packages/web/src/components/ui/dialog.tsx +122 -0
  118. package/dist/standalone/packages/web/src/components/ui/input.tsx +24 -0
  119. package/dist/standalone/packages/web/src/components/ui/select.tsx +159 -0
  120. package/dist/standalone/packages/web/src/components/ui/separator.tsx +31 -0
  121. package/dist/standalone/packages/web/src/components/ui/skeleton.tsx +15 -0
  122. package/dist/standalone/packages/web/src/components/ui/tabs.tsx +55 -0
  123. package/dist/standalone/packages/web/src/components/ui/toast.tsx +30 -0
  124. package/dist/standalone/packages/web/src/components/ui/tooltip.tsx +32 -0
  125. package/dist/standalone/packages/web/src/lib/date-utils.ts +76 -0
  126. package/dist/standalone/packages/web/src/lib/db/index.ts +42 -0
  127. package/dist/standalone/packages/web/src/lib/db/migrate.ts +18 -0
  128. package/dist/standalone/packages/web/src/lib/db/queries.ts +114 -0
  129. package/dist/standalone/packages/web/src/lib/db/schema.ts +123 -0
  130. package/dist/standalone/packages/web/src/lib/db/seed.ts +156 -0
  131. package/dist/standalone/packages/web/src/lib/db/service-queries.ts +216 -0
  132. package/dist/standalone/packages/web/src/lib/dependency-graph.ts +105 -0
  133. package/dist/standalone/packages/web/src/lib/specs/service.ts +120 -0
  134. package/dist/standalone/packages/web/src/lib/specs/sources/database-source.ts +94 -0
  135. package/dist/standalone/packages/web/src/lib/specs/sources/filesystem-source.ts +249 -0
  136. package/dist/standalone/packages/web/src/lib/specs/types.ts +55 -0
  137. package/dist/standalone/packages/web/src/lib/stores/specs-sidebar-store.ts +152 -0
  138. package/dist/standalone/packages/web/src/lib/sub-specs.ts +171 -0
  139. package/dist/standalone/packages/web/src/lib/utils.ts +17 -0
  140. package/dist/standalone/packages/web/src/types/specs.ts +18 -0
  141. package/dist/standalone/packages/web/tailwind.config.ts +58 -0
  142. package/dist/standalone/packages/web/tsconfig.json +34 -0
  143. package/dist/standalone/packages/web/vitest.config.ts +14 -0
  144. package/dist/standalone/specs/100-release-process-typecheck-failure/README.md +266 -0
  145. package/dist/standalone/specs/101-sidebar-scroll-position-drift/README.md +100 -0
  146. package/package.json +5 -3
  147. package/dist/BUILD_ID +0 -1
  148. package/dist/static/chunks/a3e649fcddd3d715.js +0 -1
  149. /package/dist/{static/Z_BxkB0KJViCNbULN1S5p → standalone/packages/web/.next/static/DDHAmoL_2Poji-whvFjry}/_buildManifest.js +0 -0
  150. /package/dist/{static/Z_BxkB0KJViCNbULN1S5p → standalone/packages/web/.next/static/DDHAmoL_2Poji-whvFjry}/_clientMiddlewareManifest.json +0 -0
  151. /package/dist/{static/Z_BxkB0KJViCNbULN1S5p → standalone/packages/web/.next/static/DDHAmoL_2Poji-whvFjry}/_ssgManifest.js +0 -0
  152. /package/dist/{static → standalone/packages/web/.next/static}/chunks/0c19c69aa7625475.js +0 -0
  153. /package/dist/{static → standalone/packages/web/.next/static}/chunks/116800b03245a1e5.js +0 -0
  154. /package/dist/{static → standalone/packages/web/.next/static}/chunks/19e80edf527aef5c.js +0 -0
  155. /package/dist/{static → standalone/packages/web/.next/static}/chunks/2ece90370908f56c.js +0 -0
  156. /package/dist/{static → standalone/packages/web/.next/static}/chunks/36fd2dddb486f6bc.js +0 -0
  157. /package/dist/{static → standalone/packages/web/.next/static}/chunks/5c2072ad938de8ed.js +0 -0
  158. /package/dist/{static → standalone/packages/web/.next/static}/chunks/6577fe797a336bab.js +0 -0
  159. /package/dist/{static → standalone/packages/web/.next/static}/chunks/6a05a93ec8fa7b83.js +0 -0
  160. /package/dist/{static → standalone/packages/web/.next/static}/chunks/7f732ea69e643219.js +0 -0
  161. /package/dist/{static → standalone/packages/web/.next/static}/chunks/a02c1f50ff00204f.js +0 -0
  162. /package/dist/{static → standalone/packages/web/.next/static}/chunks/a45464b9776dd88e.js +0 -0
  163. /package/dist/{static → standalone/packages/web/.next/static}/chunks/a6dad97d9634a72d.js +0 -0
  164. /package/dist/{static → standalone/packages/web/.next/static}/chunks/ae04dcd433be6dab.js +0 -0
  165. /package/dist/{static → standalone/packages/web/.next/static}/chunks/b20313408e970968.css +0 -0
  166. /package/dist/{static → standalone/packages/web/.next/static}/chunks/c46095e1a421d93f.js +0 -0
  167. /package/dist/{static → standalone/packages/web/.next/static}/chunks/c48dd4c72d7c5ef4.js +0 -0
  168. /package/dist/{static → standalone/packages/web/.next/static}/chunks/c557ac675be79771.js +0 -0
  169. /package/dist/{static → standalone/packages/web/.next/static}/chunks/dca0c854c59234cd.js +0 -0
  170. /package/dist/{static → standalone/packages/web/.next/static}/chunks/df1731c03abf1aee.css +0 -0
  171. /package/dist/{static → standalone/packages/web/.next/static}/chunks/dfd41488ad062cd5.js +0 -0
  172. /package/dist/{static → standalone/packages/web/.next/static}/chunks/ebd89051637b9a47.js +0 -0
  173. /package/dist/{static → standalone/packages/web/.next/static}/chunks/f3ec9fd77a8618b1.js +0 -0
  174. /package/dist/{static → standalone/packages/web/.next/static}/chunks/turbopack-7450632b40b2e378.js +0 -0
  175. /package/dist/{public → standalone/packages/web/public}/f864aa7e7061c0600e35cf3d879b27cf.txt +0 -0
  176. /package/dist/{public → standalone/packages/web/public}/favicon.ico +0 -0
  177. /package/dist/{public → standalone/packages/web/public}/file.svg +0 -0
  178. /package/dist/{public → standalone/packages/web/public}/github-mark-white.svg +0 -0
  179. /package/dist/{public → standalone/packages/web/public}/github-mark.svg +0 -0
  180. /package/dist/{public → standalone/packages/web/public}/globe.svg +0 -0
  181. /package/dist/{public → standalone/packages/web/public}/icon.svg +0 -0
  182. /package/dist/{public → standalone/packages/web/public}/logo-dark-bg.svg +0 -0
  183. /package/dist/{public → standalone/packages/web/public}/logo-with-bg.svg +0 -0
  184. /package/dist/{public → standalone/packages/web/public}/logo.svg +0 -0
  185. /package/dist/{public → standalone/packages/web/public}/next.svg +0 -0
  186. /package/dist/{public → standalone/packages/web/public}/vercel.svg +0 -0
  187. /package/dist/{public → standalone/packages/web/public}/window.svg +0 -0
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,22764,e=>{"use strict";let t=(0,e.i(22436).default)("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]]);e.s(["List",()=>t],22764)},96026,e=>{"use strict";let t=(0,e.i(22436).default)("trending-up",[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]]);e.s(["TrendingUp",()=>t],96026)},70305,(e,t,r)=>{"use strict";var n=e.r(31231),i="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},s=n.useState,a=n.useEffect,o=n.useLayoutEffect,l=n.useDebugValue;function c(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!i(e,r)}catch(e){return!0}}var u="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var r=t(),n=s({inst:{value:r,getSnapshot:t}}),i=n[0].inst,u=n[1];return o(function(){i.value=r,i.getSnapshot=t,c(i)&&u({inst:i})},[e,r,t]),a(function(){return c(i)&&u({inst:i}),e(function(){c(i)&&u({inst:i})})},[e]),l(r),r};r.useSyncExternalStore=void 0!==n.useSyncExternalStore?n.useSyncExternalStore:u},34960,(e,t,r)=>{"use strict";t.exports=e.r(70305)},21665,(e,t,r)=>{"use strict";var n=e.r(31231),i=e.r(34960),s="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},a=i.useSyncExternalStore,o=n.useRef,l=n.useEffect,c=n.useMemo,u=n.useDebugValue;r.useSyncExternalStoreWithSelector=function(e,t,r,n,i){var d=o(null);if(null===d.current){var f={hasValue:!1,value:null};d.current=f}else f=d.current;var h=a(e,(d=c(function(){function e(e){if(!l){if(l=!0,a=e,e=n(e),void 0!==i&&f.hasValue){var t=f.value;if(i(t,e))return o=t}return o=e}if(t=o,s(a,e))return t;var r=n(e);return void 0!==i&&i(t,r)?(a=e,t):(a=e,o=r)}var a,o,l=!1,c=void 0===r?null:r;return[function(){return e(t())},null===c?void 0:function(){return e(c())}]},[t,r,n,i]))[0],d[1]);return l(function(){f.hasValue=!0,f.value=h},[h]),u(h),h}},96177,(e,t,r)=>{"use strict";t.exports=e.r(21665)},42541,e=>{"use strict";e.s(["default",0,function(e,t){return e*=1,t*=1,function(r){return e*(1-r)+t*r}}])},61610,21137,e=>{"use strict";function t(e,t,r){e.prototype=t.prototype=r,r.constructor=e}function r(e,t){var r=Object.create(e.prototype);for(var n in t)r[n]=t[n];return r}function n(){}var i="\\s*([+-]?\\d+)\\s*",s="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",a="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",o=/^#([0-9a-f]{3,8})$/,l=RegExp(`^rgb\\(${i},${i},${i}\\)$`),c=RegExp(`^rgb\\(${a},${a},${a}\\)$`),u=RegExp(`^rgba\\(${i},${i},${i},${s}\\)$`),d=RegExp(`^rgba\\(${a},${a},${a},${s}\\)$`),f=RegExp(`^hsl\\(${s},${a},${a}\\)$`),h=RegExp(`^hsla\\(${s},${a},${a},${s}\\)$`),m={aliceblue:0xf0f8ff,antiquewhite:0xfaebd7,aqua:65535,aquamarine:8388564,azure:0xf0ffff,beige:0xf5f5dc,bisque:0xffe4c4,black:0,blanchedalmond:0xffebcd,blue:255,blueviolet:9055202,brown:0xa52a2a,burlywood:0xdeb887,cadetblue:6266528,chartreuse:8388352,chocolate:0xd2691e,coral:0xff7f50,cornflowerblue:6591981,cornsilk:0xfff8dc,crimson:0xdc143c,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:0xb8860b,darkgray:0xa9a9a9,darkgreen:25600,darkgrey:0xa9a9a9,darkkhaki:0xbdb76b,darkmagenta:9109643,darkolivegreen:5597999,darkorange:0xff8c00,darkorchid:0x9932cc,darkred:9109504,darksalmon:0xe9967a,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:0xff1493,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:0xb22222,floralwhite:0xfffaf0,forestgreen:2263842,fuchsia:0xff00ff,gainsboro:0xdcdcdc,ghostwhite:0xf8f8ff,gold:0xffd700,goldenrod:0xdaa520,gray:8421504,green:32768,greenyellow:0xadff2f,grey:8421504,honeydew:0xf0fff0,hotpink:0xff69b4,indianred:0xcd5c5c,indigo:4915330,ivory:0xfffff0,khaki:0xf0e68c,lavender:0xe6e6fa,lavenderblush:0xfff0f5,lawngreen:8190976,lemonchiffon:0xfffacd,lightblue:0xadd8e6,lightcoral:0xf08080,lightcyan:0xe0ffff,lightgoldenrodyellow:0xfafad2,lightgray:0xd3d3d3,lightgreen:9498256,lightgrey:0xd3d3d3,lightpink:0xffb6c1,lightsalmon:0xffa07a,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:0xb0c4de,lightyellow:0xffffe0,lime:65280,limegreen:3329330,linen:0xfaf0e6,magenta:0xff00ff,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:0xba55d3,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:0xc71585,midnightblue:1644912,mintcream:0xf5fffa,mistyrose:0xffe4e1,moccasin:0xffe4b5,navajowhite:0xffdead,navy:128,oldlace:0xfdf5e6,olive:8421376,olivedrab:7048739,orange:0xffa500,orangered:0xff4500,orchid:0xda70d6,palegoldenrod:0xeee8aa,palegreen:0x98fb98,paleturquoise:0xafeeee,palevioletred:0xdb7093,papayawhip:0xffefd5,peachpuff:0xffdab9,peru:0xcd853f,pink:0xffc0cb,plum:0xdda0dd,powderblue:0xb0e0e6,purple:8388736,rebeccapurple:6697881,red:0xff0000,rosybrown:0xbc8f8f,royalblue:4286945,saddlebrown:9127187,salmon:0xfa8072,sandybrown:0xf4a460,seagreen:3050327,seashell:0xfff5ee,sienna:0xa0522d,silver:0xc0c0c0,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:0xfffafa,springgreen:65407,steelblue:4620980,tan:0xd2b48c,teal:32896,thistle:0xd8bfd8,tomato:0xff6347,turquoise:4251856,violet:0xee82ee,wheat:0xf5deb3,white:0xffffff,whitesmoke:0xf5f5f5,yellow:0xffff00,yellowgreen:0x9acd32};function x(){return this.rgb().formatHex()}function g(){return this.rgb().formatRgb()}function p(e){var t,r;return e=(e+"").trim().toLowerCase(),(t=o.exec(e))?(r=t[1].length,t=parseInt(t[1],16),6===r?v(t):3===r?new w(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===r?b(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===r?b(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=l.exec(e))?new w(t[1],t[2],t[3],1):(t=c.exec(e))?new w(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=u.exec(e))?b(t[1],t[2],t[3],t[4]):(t=d.exec(e))?b(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=f.exec(e))?k(t[1],t[2]/100,t[3]/100,1):(t=h.exec(e))?k(t[1],t[2]/100,t[3]/100,t[4]):m.hasOwnProperty(e)?v(m[e]):"transparent"===e?new w(NaN,NaN,NaN,0):null}function v(e){return new w(e>>16&255,e>>8&255,255&e,1)}function b(e,t,r,n){return n<=0&&(e=t=r=NaN),new w(e,t,r,n)}function y(e,t,r,i){var s;return 1==arguments.length?((s=e)instanceof n||(s=p(s)),s)?new w((s=s.rgb()).r,s.g,s.b,s.opacity):new w:new w(e,t,r,null==i?1:i)}function w(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}function S(){return`#${N(this.r)}${N(this.g)}${N(this.b)}`}function $(){let e=M(this.opacity);return`${1===e?"rgb(":"rgba("}${j(this.r)}, ${j(this.g)}, ${j(this.b)}${1===e?")":`, ${e})`}`}function M(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function j(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function N(e){return((e=j(e))<16?"0":"")+e.toString(16)}function k(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new O(e,t,r,n)}function C(e){if(e instanceof O)return new O(e.h,e.s,e.l,e.opacity);if(e instanceof n||(e=p(e)),!e)return new O;if(e instanceof O)return e;var t=(e=e.rgb()).r/255,r=e.g/255,i=e.b/255,s=Math.min(t,r,i),a=Math.max(t,r,i),o=NaN,l=a-s,c=(a+s)/2;return l?(o=t===a?(r-i)/l+(r<i)*6:r===a?(i-t)/l+2:(t-r)/l+4,l/=c<.5?a+s:2-a-s,o*=60):l=c>0&&c<1?0:o,new O(o,l,c,e.opacity)}function O(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}function I(e){return(e=(e||0)%360)<0?e+360:e}function z(e){return Math.max(0,Math.min(1,e||0))}function T(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}t(n,p,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:x,formatHex:x,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return C(this).formatHsl()},formatRgb:g,toString:g}),t(w,y,r(n,{brighter(e){return e=null==e?1.4285714285714286:Math.pow(1.4285714285714286,e),new w(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new w(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new w(j(this.r),j(this.g),j(this.b),M(this.opacity))},displayable(){return -.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:S,formatHex:S,formatHex8:function(){return`#${N(this.r)}${N(this.g)}${N(this.b)}${N((isNaN(this.opacity)?1:this.opacity)*255)}`},formatRgb:$,toString:$})),t(O,function(e,t,r,n){return 1==arguments.length?C(e):new O(e,t,r,null==n?1:n)},r(n,{brighter(e){return e=null==e?1.4285714285714286:Math.pow(1.4285714285714286,e),new O(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new O(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,i=2*r-n;return new w(T(e>=240?e-240:e+120,i,n),T(e,i,n),T(e<120?e+240:e-120,i,n),this.opacity)},clamp(){return new O(I(this.h),z(this.s),z(this.l),M(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=M(this.opacity);return`${1===e?"hsl(":"hsla("}${I(this.h)}, ${100*z(this.s)}%, ${100*z(this.l)}%${1===e?")":`, ${e})`}`}})),e.s(["default",()=>p,"rgb",()=>y],21137),e.s(["color",()=>p],61610)},77075,e=>{"use strict";var t=e.i(42541);e.s(["interpolateNumber",()=>t.default])},45665,81503,e=>{"use strict";var t=e.i(21137);function r(e,t,r,n,i){var s=e*e,a=s*e;return((1-3*e+3*s-a)*t+(4-6*s+3*a)*r+(1+3*e+3*s-3*a)*n+a*i)/6}let n=e=>()=>e;function i(e,t){var r=t-e;return r?function(t){return e+t*r}:n(isNaN(e)?t:e)}e.s(["default",0,n],81503);let s=function e(r){var s,a=1==(s=+r)?i:function(e,t){var r,i,a;return t-e?(r=e,i=t,r=Math.pow(r,a=s),i=Math.pow(i,a)-r,a=1/a,function(e){return Math.pow(r+e*i,a)}):n(isNaN(e)?t:e)};function o(e,r){var n=a((e=(0,t.rgb)(e)).r,(r=(0,t.rgb)(r)).r),s=a(e.g,r.g),o=a(e.b,r.b),l=i(e.opacity,r.opacity);return function(t){return e.r=n(t),e.g=s(t),e.b=o(t),e.opacity=l(t),e+""}}return o.gamma=e,o}(1);function a(e){return function(r){var n,i,s=r.length,a=Array(s),o=Array(s),l=Array(s);for(n=0;n<s;++n)i=(0,t.rgb)(r[n]),a[n]=i.r||0,o[n]=i.g||0,l[n]=i.b||0;return a=e(a),o=e(o),l=e(l),i.opacity=1,function(e){return i.r=a(e),i.g=o(e),i.b=l(e),i+""}}}a(function(e){var t=e.length-1;return function(n){var i=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),s=e[i],a=e[i+1],o=i>0?e[i-1]:2*s-a,l=i<t-1?e[i+2]:2*a-s;return r((n-i/t)*t,o,s,a,l)}}),a(function(e){var t=e.length;return function(n){var i=Math.floor(((n%=1)<0?++n:n)*t),s=e[(i+t-1)%t],a=e[i%t],o=e[(i+1)%t],l=e[(i+2)%t];return r((n-i/t)*t,s,a,o,l)}}),e.s(["default",0,s],45665)},47483,e=>{"use strict";var t=e.i(42541),r=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,n=RegExp(r.source,"g");e.s(["default",0,function(e,i){var s,a,o,l,c,u=r.lastIndex=n.lastIndex=0,d=-1,f=[],h=[];for(e+="",i+="";(o=r.exec(e))&&(l=n.exec(i));)(c=l.index)>u&&(c=i.slice(u,c),f[d]?f[d]+=c:f[++d]=c),(o=o[0])===(l=l[0])?f[d]?f[d]+=l:f[++d]=l:(f[++d]=null,h.push({i:d,x:(0,t.default)(o,l)})),u=n.lastIndex;return u<i.length&&(c=i.slice(u),f[d]?f[d]+=c:f[++d]=c),f.length<2?h[0]?(s=h[0].x,function(e){return s(e)+""}):(a=i,function(){return a}):(i=h.length,function(e){for(var t,r=0;r<i;++r)f[(t=h[r]).i]=t.x(e);return f.join("")})}])},28954,(e,t,r)=>{e.e,t.exports=function(){"use strict";var e="millisecond",t="second",r="minute",n="hour",i="week",s="month",a="quarter",o="year",l="date",c="Invalid Date",u=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,d=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,f=function(e,t,r){var n=String(e);return!n||n.length>=t?e:""+Array(t+1-n.length).join(r)+e},h="en",m={};m[h]={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],r=e%100;return"["+e+(t[(r-20)%10]||t[r]||t[0])+"]"}};var x="$isDayjsObject",g=function(e){return e instanceof y||!(!e||!e[x])},p=function e(t,r,n){var i;if(!t)return h;if("string"==typeof t){var s=t.toLowerCase();m[s]&&(i=s),r&&(m[s]=r,i=s);var a=t.split("-");if(!i&&a.length>1)return e(a[0])}else{var o=t.name;m[o]=t,i=o}return!n&&i&&(h=i),i||!n&&h},v=function(e,t){if(g(e))return e.clone();var r="object"==typeof t?t:{};return r.date=e,r.args=arguments,new y(r)},b={s:f,z:function(e){var t=-e.utcOffset(),r=Math.abs(t);return(t<=0?"+":"-")+f(Math.floor(r/60),2,"0")+":"+f(r%60,2,"0")},m:function e(t,r){if(t.date()<r.date())return-e(r,t);var n=12*(r.year()-t.year())+(r.month()-t.month()),i=t.clone().add(n,s),a=r-i<0,o=t.clone().add(n+(a?-1:1),s);return+(-(n+(r-i)/(a?i-o:o-i))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(c){return({M:s,y:o,w:i,d:"day",D:l,h:n,m:r,s:t,ms:e,Q:a})[c]||String(c||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}};b.l=p,b.i=g,b.w=function(e,t){return v(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var y=function(){function f(e){this.$L=p(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[x]=!0}var h=f.prototype;return h.parse=function(e){this.$d=function(e){var t=e.date,r=e.utc;if(null===t)return new Date(NaN);if(b.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var n=t.match(u);if(n){var i=n[2]-1||0,s=(n[7]||"0").substring(0,3);return r?new Date(Date.UTC(n[1],i,n[3]||1,n[4]||0,n[5]||0,n[6]||0,s)):new Date(n[1],i,n[3]||1,n[4]||0,n[5]||0,n[6]||0,s)}}return new Date(t)}(e),this.init()},h.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},h.$utils=function(){return b},h.isValid=function(){return this.$d.toString()!==c},h.isSame=function(e,t){var r=v(e);return this.startOf(t)<=r&&r<=this.endOf(t)},h.isAfter=function(e,t){return v(e)<this.startOf(t)},h.isBefore=function(e,t){return this.endOf(t)<v(e)},h.$g=function(e,t,r){return b.u(e)?this[t]:this.set(r,e)},h.unix=function(){return Math.floor(this.valueOf()/1e3)},h.valueOf=function(){return this.$d.getTime()},h.startOf=function(e,a){var c=this,u=!!b.u(a)||a,d=b.p(e),f=function(e,t){var r=b.w(c.$u?Date.UTC(c.$y,t,e):new Date(c.$y,t,e),c);return u?r:r.endOf("day")},h=function(e,t){return b.w(c.toDate()[e].apply(c.toDate("s"),(u?[0,0,0,0]:[23,59,59,999]).slice(t)),c)},m=this.$W,x=this.$M,g=this.$D,p="set"+(this.$u?"UTC":"");switch(d){case o:return u?f(1,0):f(31,11);case s:return u?f(1,x):f(0,x+1);case i:var v=this.$locale().weekStart||0,y=(m<v?m+7:m)-v;return f(u?g-y:g+(6-y),x);case"day":case l:return h(p+"Hours",0);case n:return h(p+"Minutes",1);case r:return h(p+"Seconds",2);case t:return h(p+"Milliseconds",3);default:return this.clone()}},h.endOf=function(e){return this.startOf(e,!1)},h.$set=function(i,a){var c,u=b.p(i),d="set"+(this.$u?"UTC":""),f=((c={}).day=d+"Date",c[l]=d+"Date",c[s]=d+"Month",c[o]=d+"FullYear",c[n]=d+"Hours",c[r]=d+"Minutes",c[t]=d+"Seconds",c[e]=d+"Milliseconds",c)[u],h="day"===u?this.$D+(a-this.$W):a;if(u===s||u===o){var m=this.clone().set(l,1);m.$d[f](h),m.init(),this.$d=m.set(l,Math.min(this.$D,m.daysInMonth())).$d}else f&&this.$d[f](h);return this.init(),this},h.set=function(e,t){return this.clone().$set(e,t)},h.get=function(e){return this[b.p(e)]()},h.add=function(e,a){var l,c=this;e=Number(e);var u=b.p(a),d=function(t){var r=v(c);return b.w(r.date(r.date()+Math.round(t*e)),c)};if(u===s)return this.set(s,this.$M+e);if(u===o)return this.set(o,this.$y+e);if("day"===u)return d(1);if(u===i)return d(7);var f=((l={})[r]=6e4,l[n]=36e5,l[t]=1e3,l)[u]||1,h=this.$d.getTime()+e*f;return b.w(h,this)},h.subtract=function(e,t){return this.add(-1*e,t)},h.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return r.invalidDate||c;var n=e||"YYYY-MM-DDTHH:mm:ssZ",i=b.z(this),s=this.$H,a=this.$m,o=this.$M,l=r.weekdays,u=r.months,f=r.meridiem,h=function(e,r,i,s){return e&&(e[r]||e(t,n))||i[r].slice(0,s)},m=function(e){return b.s(s%12||12,e,"0")},x=f||function(e,t,r){var n=e<12?"AM":"PM";return r?n.toLowerCase():n};return n.replace(d,function(e,n){return n||function(e){switch(e){case"YY":return String(t.$y).slice(-2);case"YYYY":return b.s(t.$y,4,"0");case"M":return o+1;case"MM":return b.s(o+1,2,"0");case"MMM":return h(r.monthsShort,o,u,3);case"MMMM":return h(u,o);case"D":return t.$D;case"DD":return b.s(t.$D,2,"0");case"d":return String(t.$W);case"dd":return h(r.weekdaysMin,t.$W,l,2);case"ddd":return h(r.weekdaysShort,t.$W,l,3);case"dddd":return l[t.$W];case"H":return String(s);case"HH":return b.s(s,2,"0");case"h":return m(1);case"hh":return m(2);case"a":return x(s,a,!0);case"A":return x(s,a,!1);case"m":return String(a);case"mm":return b.s(a,2,"0");case"s":return String(t.$s);case"ss":return b.s(t.$s,2,"0");case"SSS":return b.s(t.$ms,3,"0");case"Z":return i}return null}(e)||i.replace(":","")})},h.utcOffset=function(){return-(15*Math.round(this.$d.getTimezoneOffset()/15))},h.diff=function(e,l,c){var u,d=this,f=b.p(l),h=v(e),m=(h.utcOffset()-this.utcOffset())*6e4,x=this-h,g=function(){return b.m(d,h)};switch(f){case o:u=g()/12;break;case s:u=g();break;case a:u=g()/3;break;case i:u=(x-m)/6048e5;break;case"day":u=(x-m)/864e5;break;case n:u=x/36e5;break;case r:u=x/6e4;break;case t:u=x/1e3;break;default:u=x}return c?u:b.a(u)},h.daysInMonth=function(){return this.endOf(s).$D},h.$locale=function(){return m[this.$L]},h.locale=function(e,t){if(!e)return this.$L;var r=this.clone(),n=p(e,t,!0);return n&&(r.$L=n),r},h.clone=function(){return b.w(this.$d,this)},h.toDate=function(){return new Date(this.valueOf())},h.toJSON=function(){return this.isValid()?this.toISOString():null},h.toISOString=function(){return this.$d.toISOString()},h.toString=function(){return this.$d.toUTCString()},f}(),w=y.prototype;return v.prototype=w,[["$ms",e],["$s",t],["$m",r],["$H",n],["$W","day"],["$M",s],["$y",o],["$D",l]].forEach(function(e){w[e[1]]=function(t){return this.$g(t,e[0],e[1])}}),v.extend=function(e,t){return e.$i||(e(t,y,v),e.$i=!0),v},v.locale=p,v.isDayjs=g,v.unix=function(e){return v(1e3*e)},v.en=m[h],v.Ls=m,v.p={},v}()},12437,(e,t,r)=>{e.e,t.exports=function(e,t,r){e=e||{};var n=t.prototype,i={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function s(e,t,r,i){return n.fromToBase(e,t,r,i)}r.en.relativeTime=i,n.fromToBase=function(t,n,s,a,o){for(var l,c,u,d=s.$locale().relativeTime||i,f=e.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],h=f.length,m=0;m<h;m+=1){var x=f[m];x.d&&(l=a?r(t).diff(s,x.d,!0):s.diff(t,x.d,!0));var g=(e.rounding||Math.round)(Math.abs(l));if(u=l>0,g<=x.r||!x.r){g<=1&&m>0&&(x=f[m-1]);var p=d[x.l];o&&(g=o(""+g)),c="string"==typeof p?p.replace("%d",g):p(g,n,x.l,u);break}}if(n)return c;var v=u?d.future:d.past;return"function"==typeof v?v(c):v.replace("%s",c)},n.to=function(e,t){return s(e,t,this,!0)},n.from=function(e,t){return s(e,t,this)};var a=function(e){return e.$u?r.utc():r()};n.toNow=function(e){return this.to(a(this),e)},n.fromNow=function(e){return this.from(a(this),e)}}},3622,34153,12542,e=>{"use strict";var t=e.i(90022),r=e.i(31231),n=e.i(87985);let i="u">typeof window?r.useLayoutEffect:r.useEffect;function s(e){if(void 0!==e)switch(typeof e){case"number":return e;case"string":if(e.endsWith("px"))return parseFloat(e)}}let a=null;function o({containerElement:e,direction:t,isRtl:r,scrollOffset:n}){if("horizontal"===t&&r)switch(function(e=!1){if(null===a||e){let e=document.createElement("div"),t=e.style;t.width="50px",t.height="50px",t.overflow="scroll",t.direction="rtl";let r=document.createElement("div"),n=r.style;return n.width="100px",n.height="100px",e.appendChild(r),document.body.appendChild(e),e.scrollLeft>0?a="positive-descending":(e.scrollLeft=1,a=0===e.scrollLeft?"negative":"positive-ascending"),document.body.removeChild(e),a}return a}()){case"negative":return-n;case"positive-descending":if(e){let{clientWidth:t,scrollLeft:r,scrollWidth:n}=e;return n-t-r}}return n}function l(e,t="Assertion error"){if(!e)throw console.error(t),Error(t)}function c(e,t){if(e===t)return!0;if(!!e!=!!t||(l(void 0!==e),l(void 0!==t),Object.keys(e).length!==Object.keys(t).length))return!1;for(let r in e)if(!Object.is(t[r],e[r]))return!1;return!0}function u({cachedBounds:e,itemCount:t,itemSize:r}){if(0===t)return 0;if("number"==typeof r)return t*r;{let r=e.get(0===e.size?0:e.size-1);return l(void 0!==r,"Unexpected bounds cache miss"),t*((r.scrollOffset+r.size)/e.size)}}function d({cachedBounds:e,containerScrollOffset:t,containerSize:r,itemCount:n,overscanCount:i}){let s=n-1,a=0,o=-1,l=0,c=-1,u=0;for(;u<s;){let r=e.get(u);if(r.scrollOffset+r.size>t)break;u++}for(l=Math.max(0,(a=u)-i);u<s;){let n=e.get(u);if(n.scrollOffset+n.size>=t+r)break;u++}return c=Math.min(n-1,(o=Math.min(s,u))+i),a<0&&(a=0,o=-1,l=0,c=-1),{startIndexVisible:a,stopIndexVisible:o,startIndexOverscan:l,stopIndexOverscan:c}}function f(e,t){let{ariaAttributes:r,style:n,...i}=e,{ariaAttributes:s,style:a,...o}=t;return c(r,s)&&c(n,a)&&c(i,o)}function h({children:e,className:n,defaultHeight:a=0,listRef:h,onResize:m,onRowsRendered:x,overscanCount:g=3,rowComponent:p,rowCount:v,rowHeight:b,rowProps:y,tagName:w="div",style:S,...$}){let M=(0,r.useMemo)(()=>y,Object.values(y)),j=(0,r.useMemo)(()=>(0,r.memo)(p,f),[p]),[N,k]=(0,r.useState)(null),C=null!=b&&"object"==typeof b&&"getAverageRowHeight"in b&&"function"==typeof b.getAverageRowHeight,{getCellBounds:O,getEstimatedSize:I,scrollToIndex:z,startIndexOverscan:T,startIndexVisible:E,stopIndexOverscan:R,stopIndexVisible:D}=function({containerElement:e,containerStyle:t,defaultContainerSize:n=0,direction:a,isRtl:f=!1,itemCount:h,itemProps:m,itemSize:x,onResize:g,overscanCount:p}){var v;let b,[y,w]=(0,r.useState)({startIndexVisible:0,startIndexOverscan:0,stopIndexVisible:-1,stopIndexOverscan:-1}),{startIndexVisible:S,startIndexOverscan:$,stopIndexVisible:M,stopIndexOverscan:j}={startIndexVisible:Math.min(h-1,y.startIndexVisible),startIndexOverscan:Math.min(h-1,y.startIndexOverscan),stopIndexVisible:Math.min(h-1,y.stopIndexVisible),stopIndexOverscan:Math.min(h-1,y.stopIndexOverscan)},{height:N=n,width:k=n}=function({box:e,defaultHeight:t,defaultWidth:n,disabled:a,element:o,mode:l,style:c}){let{styleHeight:u,styleWidth:d}=(0,r.useMemo)(()=>({styleHeight:s(c?.height),styleWidth:s(c?.width)}),[c?.height,c?.width]),[f,h]=(0,r.useState)({height:t,width:n}),m=a||"only-height"===l&&void 0!==u||"only-width"===l&&void 0!==d||void 0!==u&&void 0!==d;return i(()=>{if(null===o||m)return;let t=new ResizeObserver(e=>{for(let t of e){let{contentRect:e,target:r}=t;o===r&&h(t=>t.height===e.height&&t.width===e.width?t:{height:e.height,width:e.width})}});return t.observe(o,{box:e}),()=>{t?.unobserve(o)}},[e,m,o,u,d]),(0,r.useMemo)(()=>({height:u??f.height,width:d??f.width}),[f,u,d])}({defaultHeight:"vertical"===a?n:void 0,defaultWidth:"horizontal"===a?n:void 0,element:e,mode:"vertical"===a?"only-height":"only-width",style:t}),C=(0,r.useRef)({height:0,width:0}),O="vertical"===a?N:k,I=function({containerSize:e,itemSize:t}){let r;return"string"==typeof t?(l(t.endsWith("%"),`Invalid item size: "${t}"; string values must be percentages (e.g. "100%")`),l(void 0!==e,"Container size must be defined if a percentage item size is specified"),r=e*parseInt(t)/100):r=t,r}({containerSize:O,itemSize:x});(0,r.useLayoutEffect)(()=>{if("function"==typeof g){let e=C.current;(e.height!==N||e.width!==k)&&(g({height:N,width:k},{...e}),e.height=N,e.width=k)}},[N,g,k]);let z=function({itemCount:e,itemProps:t,itemSize:n}){return(0,r.useMemo)(()=>(function({itemCount:e,itemProps:t,itemSize:r}){let n=new Map;return{get(i){for(l(i<e,`Invalid index ${i}`);n.size-1<i;){let e,s=n.size;switch(typeof r){case"function":e=r(s,t);break;case"number":e=r}if(0===s)n.set(s,{size:e,scrollOffset:0});else{let t=n.get(s-1);l(void 0!==t,`Unexpected bounds cache miss for index ${i}`),n.set(s,{scrollOffset:t.scrollOffset+t.size,size:e})}}let s=n.get(i);return l(void 0!==s,`Unexpected bounds cache miss for index ${i}`),s},set(e,t){n.set(e,t)},get size(){return n.size}}})({itemCount:e,itemProps:t,itemSize:n}),[e,t,n])}({itemCount:h,itemProps:m,itemSize:I}),T=(0,r.useCallback)(e=>z.get(e),[z]),E=(0,r.useCallback)(()=>u({cachedBounds:z,itemCount:h,itemSize:I}),[z,h,I]),R=(0,r.useCallback)(t=>d({cachedBounds:z,containerScrollOffset:o({containerElement:e,direction:a,isRtl:f,scrollOffset:t}),containerSize:O,itemCount:h,overscanCount:p}),[z,e,O,a,f,h,p]);return i(()=>{w(R(("vertical"===a?e?.scrollTop:e?.scrollLeft)??0))},[e,a,R]),i(()=>{if(!e)return;let t=()=>{w(t=>{let{scrollLeft:r,scrollTop:n}=e,i=d({cachedBounds:z,containerScrollOffset:o({containerElement:e,direction:a,isRtl:f,scrollOffset:"vertical"===a?n:r}),containerSize:O,itemCount:h,overscanCount:p});return c(i,t)?t:i})};return e.addEventListener("scroll",t),()=>{e.removeEventListener("scroll",t)}},[z,e,O,a,h,p]),{getCellBounds:T,getEstimatedSize:E,scrollToIndex:(v=({align:t="auto",containerScrollOffset:r,index:n})=>{let i=function({align:e,cachedBounds:t,index:r,itemCount:n,itemSize:i,containerScrollOffset:s,containerSize:a}){if(r<0||r>=n)throw RangeError(`Invalid index specified: ${r}`,{cause:`Index ${r} is not within the range of 0 - ${n-1}`});let o=u({cachedBounds:t,itemCount:n,itemSize:i}),l=t.get(r),c=Math.max(0,Math.min(o-a,l.scrollOffset)),d=Math.max(0,l.scrollOffset-a+l.size);switch("smart"===e&&(e=s>=d&&s<=c?"auto":"center"),e){case"start":return c;case"end":return d;case"center":return l.scrollOffset<=a/2?0:l.scrollOffset+l.size/2>=o-a/2?o-a:l.scrollOffset+l.size/2-a/2;default:return s>=d&&s<=c?s:s<d?d:c}}({align:t,cachedBounds:z,containerScrollOffset:r,containerSize:O,index:n,itemCount:h,itemSize:I});if(e){if(i=o({containerElement:e,direction:a,isRtl:f,scrollOffset:i}),"function"!=typeof e.scrollTo){let e=R(i);c(y,e)||w(e)}return i}},b=(0,r.useRef)(()=>{throw Error("Cannot call during render.")}),i(()=>{b.current=v},[v]),(0,r.useCallback)(e=>b.current?.(e),[b])),startIndexOverscan:$,startIndexVisible:S,stopIndexOverscan:j,stopIndexVisible:M}}({containerElement:N,containerStyle:S,defaultContainerSize:a,direction:"vertical",itemCount:v,itemProps:M,itemSize:(0,r.useMemo)(()=>C?e=>b.getRowHeight(e)??b.getAverageRowHeight():b,[C,b]),onResize:m,overscanCount:g});(0,r.useImperativeHandle)(h,()=>({get element(){return N},scrollToRow({align:e="auto",behavior:t="auto",index:r}){let n=z({align:e,containerScrollOffset:N?.scrollTop??0,index:r});"function"==typeof N?.scrollTo&&N.scrollTo({behavior:t,top:n})}}),[N,z]),i(()=>{if(!N)return;let e=Array.from(N.children).filter((e,t)=>{if(e.hasAttribute("aria-hidden"))return!1;let r=`${T+t}`;return e.setAttribute("data-react-window-index",r),!0});if(C)return b.observeRowElements(e)},[N,C,b,T,R]),(0,r.useEffect)(()=>{T>=0&&R>=0&&x&&x({startIndex:E,stopIndex:D},{startIndex:T,stopIndex:R})},[x,T,E,R,D]);let H=(0,r.useMemo)(()=>{let e=[];if(v>0)for(let t=T;t<=R;t++){let n=O(t);e.push((0,r.createElement)(j,{...M,ariaAttributes:{"aria-posinset":t+1,"aria-setsize":v,role:"listitem"},key:t,index:t,style:{position:"absolute",left:0,transform:`translateY(${n.scrollOffset}px)`,height:C?void 0:n.size,width:"100%"}}))}return e},[j,O,C,v,M,T,R]),A=(0,t.jsx)("div",{"aria-hidden":!0,style:{height:I(),width:"100%",zIndex:-1}});return(0,r.createElement)(w,{role:"list",...$,className:n,ref:k,style:{position:"relative",maxHeight:"100%",flexGrow:1,overflowY:"auto",...S}},H,e,A)}r.useState,r.useRef,r.useState,r.useRef;var m=e.i(329),x=e.i(58362),g=e.i(25761),p=e.i(44021),v=e.i(22764);let b=(0,e.i(22436).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 y=e.i(81622),w=e.i(60218),S=e.i(71840),$=e.i(38322),M=e.i(46131),j=e.i(65458),N=e.i(35179),k=e.i(28954),C=e.i(12437);function O(e){return e?(0,k.default)(e).fromNow():"Unknown"}function I(e,t){if(!e||!t)return"";let r=(0,k.default)(e),n=(0,k.default)(t).diff(r);if(n<0)return"";let i=Math.floor(n/864e5),s=Math.floor(n%864e5/36e5);if(0===i&&0===s){let e=Math.floor(n%36e5/6e4);return 0===e?"< 1m":`${e}m`}if(0===i)return`${s}h`;if(i<30)return s>0?`${i}d ${s}h`:`${i}d`;let a=Math.floor(i/30),o=i%30;if(a<12)return o>0?`${a}mo ${o}d`:`${a}mo`;let l=Math.floor(a/12),c=a%12;return c>0?`${l}y ${c}mo`:`${l}y`}k.default.extend(C.default),e.s(["formatDuration",()=>I,"formatRelativeTime",()=>O],34153);let z={specs:[],signature:null,scrollTop:0,activeSpecId:null},T=new Set;function E(){for(let e of T)e()}function R(e){return T.add(e),()=>{T.delete(e)}}function D(){return z}function H(){return(0,r.useSyncExternalStore)(R,D,()=>z)}function A(e){if(0===e.length)return;let t=e.map(e=>[e.id,e.specNumber??"",e.title??"",e.status??"",e.priority??"",e.updatedAt?new Date(e.updatedAt).getTime():0].join(":")).join("|");t!==z.signature&&(z={...z,specs:e,signature:t},E())}function L(e){z.activeSpecId!==e&&(z={...z,activeSpecId:e},E())}function V(e){1>Math.abs(e-z.scrollTop)||(z={...z,scrollTop:e},E())}function B({initialSpecs:e=[],currentSpecId:i,currentSubSpec:s,onSpecHover:a}){let[o,l]=r.useState(""),[c,u]=r.useState("all"),[d,f]=r.useState("all"),[k,C]=r.useState("all"),[I,z]=r.useState(!1),[T,E]=r.useState(()=>"true"===localStorage.getItem("specs-nav-sidebar-collapsed")),[R,D]=r.useState(!1),[A,L]=r.useState(!1),B=r.useRef(null),P=r.useRef(null),_=r.useRef(null),W=H(),Y=W.specs.length>0?W.specs:e,q=i||W.activeSpecId||"",U=W.scrollTop;r.useEffect(()=>{L(!0)},[]),r.useEffect(()=>{document.documentElement.style.setProperty("--specs-nav-sidebar-width",T?"0px":"280px"),localStorage.setItem("specs-nav-sidebar-collapsed",String(T))},[T]),r.useEffect(()=>{D(!1)},[q,s]),r.useLayoutEffect(()=>{P.current&&Math.abs(P.current.scrollTop-U)>1&&(P.current.scrollTop=U)},[U]),r.useEffect(()=>(window.toggleSpecsSidebar=()=>D(e=>!e),()=>{window.toggleSpecsSidebar=void 0}),[]),r.useEffect(()=>{if(B.current){let e=B.current,t=e.closest(".overflow-y-auto");if(t){let r=e.getBoundingClientRect(),n=t.getBoundingClientRect();r.top>=n.top&&r.bottom<=n.bottom||e.scrollIntoView({behavior:"smooth",block:"center"})}}},[i,s]);let F=r.useMemo(()=>{let e=Y;if(o){let t=o.toLowerCase();e=e.filter(e=>e.title?.toLowerCase().includes(t)||e.specName.toLowerCase().includes(t)||e.specNumber?.toString().includes(t))}return"all"!==c&&(e=e.filter(e=>e.status===c)),"all"!==d&&(e=e.filter(e=>e.priority===d)),"all"!==k&&(e=e.filter(e=>e.tags?.includes(k))),e},[Y,o,c,d,k]),J=r.useMemo(()=>{let e=new Set;return Y.forEach(t=>{t.tags?.forEach(t=>e.add(t))}),Array.from(e).sort()},[Y]),Z="all"!==c||"all"!==d||"all"!==k,K=r.useMemo(()=>[...F].sort((e,t)=>(t.specNumber||0)-(e.specNumber||0)),[F]),G=r.useCallback(()=>{_.current||(_.current=window.requestAnimationFrame(()=>{_.current=null,P.current&&V(P.current.scrollTop)}))},[]),Q=r.useCallback(e=>{let{index:r,style:i}=e,o=K[r],l=o.id===q,c=(o.contentMd?(0,j.extractH1Title)(o.contentMd):null)||o.title||o.specName;return(0,t.jsx)("div",{style:i,className:"px-1",children:(0,t.jsx)("div",{className:"mb-0.5",children:(0,t.jsx)("div",{className:"flex items-center gap-0.5",children:(0,t.jsxs)($.Tooltip,{children:[(0,t.jsx)($.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)(n.default,{ref:l&&!s?B:null,href:`/specs/${o.specNumber||o.id}`,onMouseEnter:()=>a?.(o.specNumber?.toString()||o.id),className:(0,j.cn)("w-full flex flex-col gap-1 p-1.5 rounded-md text-sm transition-colors",l?"bg-accent text-accent-foreground font-medium":"hover:bg-accent/50"),children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[o.specNumber&&(0,t.jsxs)("span",{className:"text-xs font-mono text-muted-foreground shrink-0",children:["#",o.specNumber.toString().padStart(3,"0")]}),(0,t.jsx)("span",{className:"truncate text-xs leading-relaxed",children:c})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5 flex-wrap",children:[o.status&&(0,t.jsxs)($.Tooltip,{children:[(0,t.jsx)($.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(S.StatusBadge,{status:o.status,iconOnly:!0,className:"text-[10px] scale-90"})})}),(0,t.jsx)($.TooltipContent,{side:"right",children:(0,S.getStatusLabel)(o.status)})]}),o.priority&&(0,t.jsxs)($.Tooltip,{children:[(0,t.jsx)($.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(N.PriorityBadge,{priority:o.priority,iconOnly:!0,className:"text-[10px] scale-90"})})}),(0,t.jsx)($.TooltipContent,{side:"right",children:(0,N.getPriorityLabel)(o.priority)})]}),o.updatedAt&&(0,t.jsx)("span",{className:"text-[10px] text-muted-foreground",children:O(o.updatedAt)})]})]})}),(0,t.jsx)($.TooltipContent,{side:"right",className:"max-w-[300px]",children:(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("div",{className:"font-semibold",children:c}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:o.specName})]})})]})})})})},[K,q,s,a]),X=r.useMemo(()=>window.innerHeight-56-180,[]),ee=r.useMemo(()=>K.findIndex(e=>e.id===q),[K,q]),et=r.useRef(null);return r.useEffect(()=>{et.current&&ee>=0&&et.current.scrollToRow({index:ee,align:"center",behavior:"smooth"})},[ee]),(0,t.jsxs)($.TooltipProvider,{delayDuration:700,children:[R&&(0,t.jsx)("div",{className:"fixed inset-0 bg-black/50 z-40 lg:hidden",onClick:()=>D(!1)}),(0,t.jsxs)("div",{className:"relative flex-shrink-0",children:[(0,t.jsxs)("aside",{className:(0,j.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",A&&T?"lg:w-0 lg:border-r-0":"lg:w-[280px]",R&&"fixed left-0 top-14 z-50 flex w-[280px]"),children:[(0,t.jsxs)("div",{className:"p-4 border-b border-border",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsx)("h2",{className:"font-semibold text-sm",children:"Specifications"}),(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsxs)($.Tooltip,{children:[(0,t.jsx)($.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(w.Button,{variant:I||Z?"default":"ghost",size:"sm",onClick:()=>z(!I),className:"h-6 w-6 p-0",children:(0,t.jsx)(b,{className:"h-4 w-4"})})}),(0,t.jsx)($.TooltipContent,{side:"bottom",children:I?"Hide filters":"Show filters"})]}),(0,t.jsx)(w.Button,{variant:"ghost",size:"sm",onClick:()=>D(!1),className:"h-6 w-6 p-0 lg:hidden",children:(0,t.jsx)(p.X,{className:"h-4 w-4"})}),(0,t.jsx)(w.Button,{variant:"ghost",size:"sm",onClick:()=>E(!0),className:"h-6 w-6 p-0 hidden lg:flex lg:items-center lg:justify-center",children:(0,t.jsx)(x.ChevronLeft,{className:"h-4 w-4"})})]})]}),I&&(0,t.jsxs)("div",{className:"space-y-2 mb-3 pb-3 border-b border-border",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:"Filters"}),Z&&(0,t.jsx)(w.Button,{variant:"ghost",size:"sm",onClick:()=>{u("all"),f("all"),C("all")},className:"h-5 text-xs px-2 py-0",children:"Clear"})]}),(0,t.jsxs)(M.Select,{value:c,onValueChange:u,children:[(0,t.jsx)(M.SelectTrigger,{className:"h-8 text-xs",children:(0,t.jsx)(M.SelectValue,{placeholder:"Status"})}),(0,t.jsxs)(M.SelectContent,{children:[(0,t.jsx)(M.SelectItem,{value:"all",children:"All Status"}),(0,t.jsx)(M.SelectItem,{value:"planned",children:"Planned"}),(0,t.jsx)(M.SelectItem,{value:"in-progress",children:"In Progress"}),(0,t.jsx)(M.SelectItem,{value:"complete",children:"Complete"}),(0,t.jsx)(M.SelectItem,{value:"archived",children:"Archived"})]})]}),(0,t.jsxs)(M.Select,{value:d,onValueChange:f,children:[(0,t.jsx)(M.SelectTrigger,{className:"h-8 text-xs",children:(0,t.jsx)(M.SelectValue,{placeholder:"Priority"})}),(0,t.jsxs)(M.SelectContent,{children:[(0,t.jsx)(M.SelectItem,{value:"all",children:"All Priority"}),(0,t.jsx)(M.SelectItem,{value:"low",children:"Low"}),(0,t.jsx)(M.SelectItem,{value:"medium",children:"Medium"}),(0,t.jsx)(M.SelectItem,{value:"high",children:"High"}),(0,t.jsx)(M.SelectItem,{value:"critical",children:"Critical"})]})]}),J.length>0&&(0,t.jsxs)(M.Select,{value:k,onValueChange:C,children:[(0,t.jsx)(M.SelectTrigger,{className:"h-8 text-xs",children:(0,t.jsx)(M.SelectValue,{placeholder:"Tag"})}),(0,t.jsxs)(M.SelectContent,{children:[(0,t.jsx)(M.SelectItem,{value:"all",children:"All Tags"}),J.map(e=>(0,t.jsx)(M.SelectItem,{value:e,children:e},e))]})]})]}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(m.Search,{className:"absolute left-2 top-2.5 h-4 w-4 text-muted-foreground"}),(0,t.jsx)(y.Input,{placeholder:"Search specs...",value:o,onChange:e=>l(e.target.value),className:"pl-8 h-9 border-border"})]})]}),(0,t.jsx)("div",{ref:P,className:"flex-1 overflow-y-auto overflow-x-hidden",onScroll:G,children:0===K.length?(0,t.jsx)("div",{className:"text-center py-8 text-sm text-muted-foreground",children:"No specs found"}):(0,t.jsx)(h,{listRef:et,defaultHeight:X,rowCount:K.length,rowHeight:72,overscanCount:5,rowComponent:Q,rowProps:{}})})]}),A&&T&&(0,t.jsx)(w.Button,{variant:"ghost",size:"sm",onClick:()=>E(!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,t.jsx)(g.ChevronRight,{className:"h-4 w-4"})}),(0,t.jsx)(w.Button,{onClick:()=>D(!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,t.jsx)(v.List,{className:"h-5 w-5"})})]})]})}e.s(["primeSpecsSidebar",()=>A,"setActiveSidebarSpec",()=>L,"updateSidebarScrollTop",()=>V,"useSpecsSidebarState",()=>H],12542),e.s(["SpecsNavSidebar",()=>B],3622)}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,22764,e=>{"use strict";let t=(0,e.i(22436).default)("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]]);e.s(["List",()=>t],22764)},96026,e=>{"use strict";let t=(0,e.i(22436).default)("trending-up",[["path",{d:"M16 7h6v6",key:"box55l"}],["path",{d:"m22 7-8.5 8.5-5-5L2 17",key:"1t1m79"}]]);e.s(["TrendingUp",()=>t],96026)},70305,(e,t,r)=>{"use strict";var n=e.r(31231),i="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},s=n.useState,a=n.useEffect,l=n.useLayoutEffect,o=n.useDebugValue;function u(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!i(e,r)}catch(e){return!0}}var c="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var r=t(),n=s({inst:{value:r,getSnapshot:t}}),i=n[0].inst,c=n[1];return l(function(){i.value=r,i.getSnapshot=t,u(i)&&c({inst:i})},[e,r,t]),a(function(){return u(i)&&c({inst:i}),e(function(){u(i)&&c({inst:i})})},[e]),o(r),r};r.useSyncExternalStore=void 0!==n.useSyncExternalStore?n.useSyncExternalStore:c},34960,(e,t,r)=>{"use strict";t.exports=e.r(70305)},21665,(e,t,r)=>{"use strict";var n=e.r(31231),i=e.r(34960),s="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},a=i.useSyncExternalStore,l=n.useRef,o=n.useEffect,u=n.useMemo,c=n.useDebugValue;r.useSyncExternalStoreWithSelector=function(e,t,r,n,i){var d=l(null);if(null===d.current){var f={hasValue:!1,value:null};d.current=f}else f=d.current;var h=a(e,(d=u(function(){function e(e){if(!o){if(o=!0,a=e,e=n(e),void 0!==i&&f.hasValue){var t=f.value;if(i(t,e))return l=t}return l=e}if(t=l,s(a,e))return t;var r=n(e);return void 0!==i&&i(t,r)?(a=e,t):(a=e,l=r)}var a,l,o=!1,u=void 0===r?null:r;return[function(){return e(t())},null===u?void 0:function(){return e(u())}]},[t,r,n,i]))[0],d[1]);return o(function(){f.hasValue=!0,f.value=h},[h]),c(h),h}},96177,(e,t,r)=>{"use strict";t.exports=e.r(21665)},42541,e=>{"use strict";e.s(["default",0,function(e,t){return e*=1,t*=1,function(r){return e*(1-r)+t*r}}])},61610,21137,e=>{"use strict";function t(e,t,r){e.prototype=t.prototype=r,r.constructor=e}function r(e,t){var r=Object.create(e.prototype);for(var n in t)r[n]=t[n];return r}function n(){}var i="\\s*([+-]?\\d+)\\s*",s="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",a="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",l=/^#([0-9a-f]{3,8})$/,o=RegExp(`^rgb\\(${i},${i},${i}\\)$`),u=RegExp(`^rgb\\(${a},${a},${a}\\)$`),c=RegExp(`^rgba\\(${i},${i},${i},${s}\\)$`),d=RegExp(`^rgba\\(${a},${a},${a},${s}\\)$`),f=RegExp(`^hsl\\(${s},${a},${a}\\)$`),h=RegExp(`^hsla\\(${s},${a},${a},${s}\\)$`),m={aliceblue:0xf0f8ff,antiquewhite:0xfaebd7,aqua:65535,aquamarine:8388564,azure:0xf0ffff,beige:0xf5f5dc,bisque:0xffe4c4,black:0,blanchedalmond:0xffebcd,blue:255,blueviolet:9055202,brown:0xa52a2a,burlywood:0xdeb887,cadetblue:6266528,chartreuse:8388352,chocolate:0xd2691e,coral:0xff7f50,cornflowerblue:6591981,cornsilk:0xfff8dc,crimson:0xdc143c,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:0xb8860b,darkgray:0xa9a9a9,darkgreen:25600,darkgrey:0xa9a9a9,darkkhaki:0xbdb76b,darkmagenta:9109643,darkolivegreen:5597999,darkorange:0xff8c00,darkorchid:0x9932cc,darkred:9109504,darksalmon:0xe9967a,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:0xff1493,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:0xb22222,floralwhite:0xfffaf0,forestgreen:2263842,fuchsia:0xff00ff,gainsboro:0xdcdcdc,ghostwhite:0xf8f8ff,gold:0xffd700,goldenrod:0xdaa520,gray:8421504,green:32768,greenyellow:0xadff2f,grey:8421504,honeydew:0xf0fff0,hotpink:0xff69b4,indianred:0xcd5c5c,indigo:4915330,ivory:0xfffff0,khaki:0xf0e68c,lavender:0xe6e6fa,lavenderblush:0xfff0f5,lawngreen:8190976,lemonchiffon:0xfffacd,lightblue:0xadd8e6,lightcoral:0xf08080,lightcyan:0xe0ffff,lightgoldenrodyellow:0xfafad2,lightgray:0xd3d3d3,lightgreen:9498256,lightgrey:0xd3d3d3,lightpink:0xffb6c1,lightsalmon:0xffa07a,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:0xb0c4de,lightyellow:0xffffe0,lime:65280,limegreen:3329330,linen:0xfaf0e6,magenta:0xff00ff,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:0xba55d3,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:0xc71585,midnightblue:1644912,mintcream:0xf5fffa,mistyrose:0xffe4e1,moccasin:0xffe4b5,navajowhite:0xffdead,navy:128,oldlace:0xfdf5e6,olive:8421376,olivedrab:7048739,orange:0xffa500,orangered:0xff4500,orchid:0xda70d6,palegoldenrod:0xeee8aa,palegreen:0x98fb98,paleturquoise:0xafeeee,palevioletred:0xdb7093,papayawhip:0xffefd5,peachpuff:0xffdab9,peru:0xcd853f,pink:0xffc0cb,plum:0xdda0dd,powderblue:0xb0e0e6,purple:8388736,rebeccapurple:6697881,red:0xff0000,rosybrown:0xbc8f8f,royalblue:4286945,saddlebrown:9127187,salmon:0xfa8072,sandybrown:0xf4a460,seagreen:3050327,seashell:0xfff5ee,sienna:0xa0522d,silver:0xc0c0c0,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:0xfffafa,springgreen:65407,steelblue:4620980,tan:0xd2b48c,teal:32896,thistle:0xd8bfd8,tomato:0xff6347,turquoise:4251856,violet:0xee82ee,wheat:0xf5deb3,white:0xffffff,whitesmoke:0xf5f5f5,yellow:0xffff00,yellowgreen:0x9acd32};function x(){return this.rgb().formatHex()}function g(){return this.rgb().formatRgb()}function p(e){var t,r;return e=(e+"").trim().toLowerCase(),(t=l.exec(e))?(r=t[1].length,t=parseInt(t[1],16),6===r?v(t):3===r?new w(t>>8&15|t>>4&240,t>>4&15|240&t,(15&t)<<4|15&t,1):8===r?b(t>>24&255,t>>16&255,t>>8&255,(255&t)/255):4===r?b(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|240&t,((15&t)<<4|15&t)/255):null):(t=o.exec(e))?new w(t[1],t[2],t[3],1):(t=u.exec(e))?new w(255*t[1]/100,255*t[2]/100,255*t[3]/100,1):(t=c.exec(e))?b(t[1],t[2],t[3],t[4]):(t=d.exec(e))?b(255*t[1]/100,255*t[2]/100,255*t[3]/100,t[4]):(t=f.exec(e))?k(t[1],t[2]/100,t[3]/100,1):(t=h.exec(e))?k(t[1],t[2]/100,t[3]/100,t[4]):m.hasOwnProperty(e)?v(m[e]):"transparent"===e?new w(NaN,NaN,NaN,0):null}function v(e){return new w(e>>16&255,e>>8&255,255&e,1)}function b(e,t,r,n){return n<=0&&(e=t=r=NaN),new w(e,t,r,n)}function y(e,t,r,i){var s;return 1==arguments.length?((s=e)instanceof n||(s=p(s)),s)?new w((s=s.rgb()).r,s.g,s.b,s.opacity):new w:new w(e,t,r,null==i?1:i)}function w(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}function S(){return`#${N(this.r)}${N(this.g)}${N(this.b)}`}function $(){let e=M(this.opacity);return`${1===e?"rgb(":"rgba("}${j(this.r)}, ${j(this.g)}, ${j(this.b)}${1===e?")":`, ${e})`}`}function M(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function j(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function N(e){return((e=j(e))<16?"0":"")+e.toString(16)}function k(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new O(e,t,r,n)}function C(e){if(e instanceof O)return new O(e.h,e.s,e.l,e.opacity);if(e instanceof n||(e=p(e)),!e)return new O;if(e instanceof O)return e;var t=(e=e.rgb()).r/255,r=e.g/255,i=e.b/255,s=Math.min(t,r,i),a=Math.max(t,r,i),l=NaN,o=a-s,u=(a+s)/2;return o?(l=t===a?(r-i)/o+(r<i)*6:r===a?(i-t)/o+2:(t-r)/o+4,o/=u<.5?a+s:2-a-s,l*=60):o=u>0&&u<1?0:l,new O(l,o,u,e.opacity)}function O(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}function I(e){return(e=(e||0)%360)<0?e+360:e}function z(e){return Math.max(0,Math.min(1,e||0))}function T(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}t(n,p,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:x,formatHex:x,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return C(this).formatHsl()},formatRgb:g,toString:g}),t(w,y,r(n,{brighter(e){return e=null==e?1.4285714285714286:Math.pow(1.4285714285714286,e),new w(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new w(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new w(j(this.r),j(this.g),j(this.b),M(this.opacity))},displayable(){return -.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:S,formatHex:S,formatHex8:function(){return`#${N(this.r)}${N(this.g)}${N(this.b)}${N((isNaN(this.opacity)?1:this.opacity)*255)}`},formatRgb:$,toString:$})),t(O,function(e,t,r,n){return 1==arguments.length?C(e):new O(e,t,r,null==n?1:n)},r(n,{brighter(e){return e=null==e?1.4285714285714286:Math.pow(1.4285714285714286,e),new O(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=null==e?.7:Math.pow(.7,e),new O(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,i=2*r-n;return new w(T(e>=240?e-240:e+120,i,n),T(e,i,n),T(e<120?e+240:e-120,i,n),this.opacity)},clamp(){return new O(I(this.h),z(this.s),z(this.l),M(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=M(this.opacity);return`${1===e?"hsl(":"hsla("}${I(this.h)}, ${100*z(this.s)}%, ${100*z(this.l)}%${1===e?")":`, ${e})`}`}})),e.s(["default",()=>p,"rgb",()=>y],21137),e.s(["color",()=>p],61610)},77075,e=>{"use strict";var t=e.i(42541);e.s(["interpolateNumber",()=>t.default])},45665,81503,e=>{"use strict";var t=e.i(21137);function r(e,t,r,n,i){var s=e*e,a=s*e;return((1-3*e+3*s-a)*t+(4-6*s+3*a)*r+(1+3*e+3*s-3*a)*n+a*i)/6}let n=e=>()=>e;function i(e,t){var r=t-e;return r?function(t){return e+t*r}:n(isNaN(e)?t:e)}e.s(["default",0,n],81503);let s=function e(r){var s,a=1==(s=+r)?i:function(e,t){var r,i,a;return t-e?(r=e,i=t,r=Math.pow(r,a=s),i=Math.pow(i,a)-r,a=1/a,function(e){return Math.pow(r+e*i,a)}):n(isNaN(e)?t:e)};function l(e,r){var n=a((e=(0,t.rgb)(e)).r,(r=(0,t.rgb)(r)).r),s=a(e.g,r.g),l=a(e.b,r.b),o=i(e.opacity,r.opacity);return function(t){return e.r=n(t),e.g=s(t),e.b=l(t),e.opacity=o(t),e+""}}return l.gamma=e,l}(1);function a(e){return function(r){var n,i,s=r.length,a=Array(s),l=Array(s),o=Array(s);for(n=0;n<s;++n)i=(0,t.rgb)(r[n]),a[n]=i.r||0,l[n]=i.g||0,o[n]=i.b||0;return a=e(a),l=e(l),o=e(o),i.opacity=1,function(e){return i.r=a(e),i.g=l(e),i.b=o(e),i+""}}}a(function(e){var t=e.length-1;return function(n){var i=n<=0?n=0:n>=1?(n=1,t-1):Math.floor(n*t),s=e[i],a=e[i+1],l=i>0?e[i-1]:2*s-a,o=i<t-1?e[i+2]:2*a-s;return r((n-i/t)*t,l,s,a,o)}}),a(function(e){var t=e.length;return function(n){var i=Math.floor(((n%=1)<0?++n:n)*t),s=e[(i+t-1)%t],a=e[i%t],l=e[(i+1)%t],o=e[(i+2)%t];return r((n-i/t)*t,s,a,l,o)}}),e.s(["default",0,s],45665)},47483,e=>{"use strict";var t=e.i(42541),r=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,n=RegExp(r.source,"g");e.s(["default",0,function(e,i){var s,a,l,o,u,c=r.lastIndex=n.lastIndex=0,d=-1,f=[],h=[];for(e+="",i+="";(l=r.exec(e))&&(o=n.exec(i));)(u=o.index)>c&&(u=i.slice(c,u),f[d]?f[d]+=u:f[++d]=u),(l=l[0])===(o=o[0])?f[d]?f[d]+=o:f[++d]=o:(f[++d]=null,h.push({i:d,x:(0,t.default)(l,o)})),c=n.lastIndex;return c<i.length&&(u=i.slice(c),f[d]?f[d]+=u:f[++d]=u),f.length<2?h[0]?(s=h[0].x,function(e){return s(e)+""}):(a=i,function(){return a}):(i=h.length,function(e){for(var t,r=0;r<i;++r)f[(t=h[r]).i]=t.x(e);return f.join("")})}])},28954,(e,t,r)=>{e.e,t.exports=function(){"use strict";var e="millisecond",t="second",r="minute",n="hour",i="week",s="month",a="quarter",l="year",o="date",u="Invalid Date",c=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,d=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,f=function(e,t,r){var n=String(e);return!n||n.length>=t?e:""+Array(t+1-n.length).join(r)+e},h="en",m={};m[h]={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],r=e%100;return"["+e+(t[(r-20)%10]||t[r]||t[0])+"]"}};var x="$isDayjsObject",g=function(e){return e instanceof y||!(!e||!e[x])},p=function e(t,r,n){var i;if(!t)return h;if("string"==typeof t){var s=t.toLowerCase();m[s]&&(i=s),r&&(m[s]=r,i=s);var a=t.split("-");if(!i&&a.length>1)return e(a[0])}else{var l=t.name;m[l]=t,i=l}return!n&&i&&(h=i),i||!n&&h},v=function(e,t){if(g(e))return e.clone();var r="object"==typeof t?t:{};return r.date=e,r.args=arguments,new y(r)},b={s:f,z:function(e){var t=-e.utcOffset(),r=Math.abs(t);return(t<=0?"+":"-")+f(Math.floor(r/60),2,"0")+":"+f(r%60,2,"0")},m:function e(t,r){if(t.date()<r.date())return-e(r,t);var n=12*(r.year()-t.year())+(r.month()-t.month()),i=t.clone().add(n,s),a=r-i<0,l=t.clone().add(n+(a?-1:1),s);return+(-(n+(r-i)/(a?i-l:l-i))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(u){return({M:s,y:l,w:i,d:"day",D:o,h:n,m:r,s:t,ms:e,Q:a})[u]||String(u||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}};b.l=p,b.i=g,b.w=function(e,t){return v(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var y=function(){function f(e){this.$L=p(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[x]=!0}var h=f.prototype;return h.parse=function(e){this.$d=function(e){var t=e.date,r=e.utc;if(null===t)return new Date(NaN);if(b.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var n=t.match(c);if(n){var i=n[2]-1||0,s=(n[7]||"0").substring(0,3);return r?new Date(Date.UTC(n[1],i,n[3]||1,n[4]||0,n[5]||0,n[6]||0,s)):new Date(n[1],i,n[3]||1,n[4]||0,n[5]||0,n[6]||0,s)}}return new Date(t)}(e),this.init()},h.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},h.$utils=function(){return b},h.isValid=function(){return this.$d.toString()!==u},h.isSame=function(e,t){var r=v(e);return this.startOf(t)<=r&&r<=this.endOf(t)},h.isAfter=function(e,t){return v(e)<this.startOf(t)},h.isBefore=function(e,t){return this.endOf(t)<v(e)},h.$g=function(e,t,r){return b.u(e)?this[t]:this.set(r,e)},h.unix=function(){return Math.floor(this.valueOf()/1e3)},h.valueOf=function(){return this.$d.getTime()},h.startOf=function(e,a){var u=this,c=!!b.u(a)||a,d=b.p(e),f=function(e,t){var r=b.w(u.$u?Date.UTC(u.$y,t,e):new Date(u.$y,t,e),u);return c?r:r.endOf("day")},h=function(e,t){return b.w(u.toDate()[e].apply(u.toDate("s"),(c?[0,0,0,0]:[23,59,59,999]).slice(t)),u)},m=this.$W,x=this.$M,g=this.$D,p="set"+(this.$u?"UTC":"");switch(d){case l:return c?f(1,0):f(31,11);case s:return c?f(1,x):f(0,x+1);case i:var v=this.$locale().weekStart||0,y=(m<v?m+7:m)-v;return f(c?g-y:g+(6-y),x);case"day":case o:return h(p+"Hours",0);case n:return h(p+"Minutes",1);case r:return h(p+"Seconds",2);case t:return h(p+"Milliseconds",3);default:return this.clone()}},h.endOf=function(e){return this.startOf(e,!1)},h.$set=function(i,a){var u,c=b.p(i),d="set"+(this.$u?"UTC":""),f=((u={}).day=d+"Date",u[o]=d+"Date",u[s]=d+"Month",u[l]=d+"FullYear",u[n]=d+"Hours",u[r]=d+"Minutes",u[t]=d+"Seconds",u[e]=d+"Milliseconds",u)[c],h="day"===c?this.$D+(a-this.$W):a;if(c===s||c===l){var m=this.clone().set(o,1);m.$d[f](h),m.init(),this.$d=m.set(o,Math.min(this.$D,m.daysInMonth())).$d}else f&&this.$d[f](h);return this.init(),this},h.set=function(e,t){return this.clone().$set(e,t)},h.get=function(e){return this[b.p(e)]()},h.add=function(e,a){var o,u=this;e=Number(e);var c=b.p(a),d=function(t){var r=v(u);return b.w(r.date(r.date()+Math.round(t*e)),u)};if(c===s)return this.set(s,this.$M+e);if(c===l)return this.set(l,this.$y+e);if("day"===c)return d(1);if(c===i)return d(7);var f=((o={})[r]=6e4,o[n]=36e5,o[t]=1e3,o)[c]||1,h=this.$d.getTime()+e*f;return b.w(h,this)},h.subtract=function(e,t){return this.add(-1*e,t)},h.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return r.invalidDate||u;var n=e||"YYYY-MM-DDTHH:mm:ssZ",i=b.z(this),s=this.$H,a=this.$m,l=this.$M,o=r.weekdays,c=r.months,f=r.meridiem,h=function(e,r,i,s){return e&&(e[r]||e(t,n))||i[r].slice(0,s)},m=function(e){return b.s(s%12||12,e,"0")},x=f||function(e,t,r){var n=e<12?"AM":"PM";return r?n.toLowerCase():n};return n.replace(d,function(e,n){return n||function(e){switch(e){case"YY":return String(t.$y).slice(-2);case"YYYY":return b.s(t.$y,4,"0");case"M":return l+1;case"MM":return b.s(l+1,2,"0");case"MMM":return h(r.monthsShort,l,c,3);case"MMMM":return h(c,l);case"D":return t.$D;case"DD":return b.s(t.$D,2,"0");case"d":return String(t.$W);case"dd":return h(r.weekdaysMin,t.$W,o,2);case"ddd":return h(r.weekdaysShort,t.$W,o,3);case"dddd":return o[t.$W];case"H":return String(s);case"HH":return b.s(s,2,"0");case"h":return m(1);case"hh":return m(2);case"a":return x(s,a,!0);case"A":return x(s,a,!1);case"m":return String(a);case"mm":return b.s(a,2,"0");case"s":return String(t.$s);case"ss":return b.s(t.$s,2,"0");case"SSS":return b.s(t.$ms,3,"0");case"Z":return i}return null}(e)||i.replace(":","")})},h.utcOffset=function(){return-(15*Math.round(this.$d.getTimezoneOffset()/15))},h.diff=function(e,o,u){var c,d=this,f=b.p(o),h=v(e),m=(h.utcOffset()-this.utcOffset())*6e4,x=this-h,g=function(){return b.m(d,h)};switch(f){case l:c=g()/12;break;case s:c=g();break;case a:c=g()/3;break;case i:c=(x-m)/6048e5;break;case"day":c=(x-m)/864e5;break;case n:c=x/36e5;break;case r:c=x/6e4;break;case t:c=x/1e3;break;default:c=x}return u?c:b.a(c)},h.daysInMonth=function(){return this.endOf(s).$D},h.$locale=function(){return m[this.$L]},h.locale=function(e,t){if(!e)return this.$L;var r=this.clone(),n=p(e,t,!0);return n&&(r.$L=n),r},h.clone=function(){return b.w(this.$d,this)},h.toDate=function(){return new Date(this.valueOf())},h.toJSON=function(){return this.isValid()?this.toISOString():null},h.toISOString=function(){return this.$d.toISOString()},h.toString=function(){return this.$d.toUTCString()},f}(),w=y.prototype;return v.prototype=w,[["$ms",e],["$s",t],["$m",r],["$H",n],["$W","day"],["$M",s],["$y",l],["$D",o]].forEach(function(e){w[e[1]]=function(t){return this.$g(t,e[0],e[1])}}),v.extend=function(e,t){return e.$i||(e(t,y,v),e.$i=!0),v},v.locale=p,v.isDayjs=g,v.unix=function(e){return v(1e3*e)},v.en=m[h],v.Ls=m,v.p={},v}()},12437,(e,t,r)=>{e.e,t.exports=function(e,t,r){e=e||{};var n=t.prototype,i={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function s(e,t,r,i){return n.fromToBase(e,t,r,i)}r.en.relativeTime=i,n.fromToBase=function(t,n,s,a,l){for(var o,u,c,d=s.$locale().relativeTime||i,f=e.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],h=f.length,m=0;m<h;m+=1){var x=f[m];x.d&&(o=a?r(t).diff(s,x.d,!0):s.diff(t,x.d,!0));var g=(e.rounding||Math.round)(Math.abs(o));if(c=o>0,g<=x.r||!x.r){g<=1&&m>0&&(x=f[m-1]);var p=d[x.l];l&&(g=l(""+g)),u="string"==typeof p?p.replace("%d",g):p(g,n,x.l,c);break}}if(n)return u;var v=c?d.future:d.past;return"function"==typeof v?v(u):v.replace("%s",u)},n.to=function(e,t){return s(e,t,this,!0)},n.from=function(e,t){return s(e,t,this)};var a=function(e){return e.$u?r.utc():r()};n.toNow=function(e){return this.to(a(this),e)},n.fromNow=function(e){return this.from(a(this),e)}}},3622,34153,12542,e=>{"use strict";var t=e.i(90022),r=e.i(31231),n=e.i(87985);let i="u">typeof window?r.useLayoutEffect:r.useEffect;function s(e){if(void 0!==e)switch(typeof e){case"number":return e;case"string":if(e.endsWith("px"))return parseFloat(e)}}let a=null;function l({containerElement:e,direction:t,isRtl:r,scrollOffset:n}){if("horizontal"===t&&r)switch(function(e=!1){if(null===a||e){let e=document.createElement("div"),t=e.style;t.width="50px",t.height="50px",t.overflow="scroll",t.direction="rtl";let r=document.createElement("div"),n=r.style;return n.width="100px",n.height="100px",e.appendChild(r),document.body.appendChild(e),e.scrollLeft>0?a="positive-descending":(e.scrollLeft=1,a=0===e.scrollLeft?"negative":"positive-ascending"),document.body.removeChild(e),a}return a}()){case"negative":return-n;case"positive-descending":if(e){let{clientWidth:t,scrollLeft:r,scrollWidth:n}=e;return n-t-r}}return n}function o(e,t="Assertion error"){if(!e)throw console.error(t),Error(t)}function u(e,t){if(e===t)return!0;if(!!e!=!!t||(o(void 0!==e),o(void 0!==t),Object.keys(e).length!==Object.keys(t).length))return!1;for(let r in e)if(!Object.is(t[r],e[r]))return!1;return!0}function c({cachedBounds:e,itemCount:t,itemSize:r}){if(0===t)return 0;if("number"==typeof r)return t*r;{let r=e.get(0===e.size?0:e.size-1);return o(void 0!==r,"Unexpected bounds cache miss"),t*((r.scrollOffset+r.size)/e.size)}}function d({cachedBounds:e,containerScrollOffset:t,containerSize:r,itemCount:n,overscanCount:i}){let s=n-1,a=0,l=-1,o=0,u=-1,c=0;for(;c<s;){let r=e.get(c);if(r.scrollOffset+r.size>t)break;c++}for(o=Math.max(0,(a=c)-i);c<s;){let n=e.get(c);if(n.scrollOffset+n.size>=t+r)break;c++}return u=Math.min(n-1,(l=Math.min(s,c))+i),a<0&&(a=0,l=-1,o=0,u=-1),{startIndexVisible:a,stopIndexVisible:l,startIndexOverscan:o,stopIndexOverscan:u}}function f(e,t){let{ariaAttributes:r,style:n,...i}=e,{ariaAttributes:s,style:a,...l}=t;return u(r,s)&&u(n,a)&&u(i,l)}function h({children:e,className:n,defaultHeight:a=0,listRef:h,onResize:m,onRowsRendered:x,overscanCount:g=3,rowComponent:p,rowCount:v,rowHeight:b,rowProps:y,tagName:w="div",style:S,...$}){let M=(0,r.useMemo)(()=>y,Object.values(y)),j=(0,r.useMemo)(()=>(0,r.memo)(p,f),[p]),[N,k]=(0,r.useState)(null),C=null!=b&&"object"==typeof b&&"getAverageRowHeight"in b&&"function"==typeof b.getAverageRowHeight,{getCellBounds:O,getEstimatedSize:I,scrollToIndex:z,startIndexOverscan:T,startIndexVisible:E,stopIndexOverscan:R,stopIndexVisible:D}=function({containerElement:e,containerStyle:t,defaultContainerSize:n=0,direction:a,isRtl:f=!1,itemCount:h,itemProps:m,itemSize:x,onResize:g,overscanCount:p}){var v;let b,[y,w]=(0,r.useState)({startIndexVisible:0,startIndexOverscan:0,stopIndexVisible:-1,stopIndexOverscan:-1}),{startIndexVisible:S,startIndexOverscan:$,stopIndexVisible:M,stopIndexOverscan:j}={startIndexVisible:Math.min(h-1,y.startIndexVisible),startIndexOverscan:Math.min(h-1,y.startIndexOverscan),stopIndexVisible:Math.min(h-1,y.stopIndexVisible),stopIndexOverscan:Math.min(h-1,y.stopIndexOverscan)},{height:N=n,width:k=n}=function({box:e,defaultHeight:t,defaultWidth:n,disabled:a,element:l,mode:o,style:u}){let{styleHeight:c,styleWidth:d}=(0,r.useMemo)(()=>({styleHeight:s(u?.height),styleWidth:s(u?.width)}),[u?.height,u?.width]),[f,h]=(0,r.useState)({height:t,width:n}),m=a||"only-height"===o&&void 0!==c||"only-width"===o&&void 0!==d||void 0!==c&&void 0!==d;return i(()=>{if(null===l||m)return;let t=new ResizeObserver(e=>{for(let t of e){let{contentRect:e,target:r}=t;l===r&&h(t=>t.height===e.height&&t.width===e.width?t:{height:e.height,width:e.width})}});return t.observe(l,{box:e}),()=>{t?.unobserve(l)}},[e,m,l,c,d]),(0,r.useMemo)(()=>({height:c??f.height,width:d??f.width}),[f,c,d])}({defaultHeight:"vertical"===a?n:void 0,defaultWidth:"horizontal"===a?n:void 0,element:e,mode:"vertical"===a?"only-height":"only-width",style:t}),C=(0,r.useRef)({height:0,width:0}),O="vertical"===a?N:k,I=function({containerSize:e,itemSize:t}){let r;return"string"==typeof t?(o(t.endsWith("%"),`Invalid item size: "${t}"; string values must be percentages (e.g. "100%")`),o(void 0!==e,"Container size must be defined if a percentage item size is specified"),r=e*parseInt(t)/100):r=t,r}({containerSize:O,itemSize:x});(0,r.useLayoutEffect)(()=>{if("function"==typeof g){let e=C.current;(e.height!==N||e.width!==k)&&(g({height:N,width:k},{...e}),e.height=N,e.width=k)}},[N,g,k]);let z=function({itemCount:e,itemProps:t,itemSize:n}){return(0,r.useMemo)(()=>(function({itemCount:e,itemProps:t,itemSize:r}){let n=new Map;return{get(i){for(o(i<e,`Invalid index ${i}`);n.size-1<i;){let e,s=n.size;switch(typeof r){case"function":e=r(s,t);break;case"number":e=r}if(0===s)n.set(s,{size:e,scrollOffset:0});else{let t=n.get(s-1);o(void 0!==t,`Unexpected bounds cache miss for index ${i}`),n.set(s,{scrollOffset:t.scrollOffset+t.size,size:e})}}let s=n.get(i);return o(void 0!==s,`Unexpected bounds cache miss for index ${i}`),s},set(e,t){n.set(e,t)},get size(){return n.size}}})({itemCount:e,itemProps:t,itemSize:n}),[e,t,n])}({itemCount:h,itemProps:m,itemSize:I}),T=(0,r.useCallback)(e=>z.get(e),[z]),E=(0,r.useCallback)(()=>c({cachedBounds:z,itemCount:h,itemSize:I}),[z,h,I]),R=(0,r.useCallback)(t=>d({cachedBounds:z,containerScrollOffset:l({containerElement:e,direction:a,isRtl:f,scrollOffset:t}),containerSize:O,itemCount:h,overscanCount:p}),[z,e,O,a,f,h,p]);return i(()=>{w(R(("vertical"===a?e?.scrollTop:e?.scrollLeft)??0))},[e,a,R]),i(()=>{if(!e)return;let t=()=>{w(t=>{let{scrollLeft:r,scrollTop:n}=e,i=d({cachedBounds:z,containerScrollOffset:l({containerElement:e,direction:a,isRtl:f,scrollOffset:"vertical"===a?n:r}),containerSize:O,itemCount:h,overscanCount:p});return u(i,t)?t:i})};return e.addEventListener("scroll",t),()=>{e.removeEventListener("scroll",t)}},[z,e,O,a,h,p]),{getCellBounds:T,getEstimatedSize:E,scrollToIndex:(v=({align:t="auto",containerScrollOffset:r,index:n})=>{let i=function({align:e,cachedBounds:t,index:r,itemCount:n,itemSize:i,containerScrollOffset:s,containerSize:a}){if(r<0||r>=n)throw RangeError(`Invalid index specified: ${r}`,{cause:`Index ${r} is not within the range of 0 - ${n-1}`});let l=c({cachedBounds:t,itemCount:n,itemSize:i}),o=t.get(r),u=Math.max(0,Math.min(l-a,o.scrollOffset)),d=Math.max(0,o.scrollOffset-a+o.size);switch("smart"===e&&(e=s>=d&&s<=u?"auto":"center"),e){case"start":return u;case"end":return d;case"center":return o.scrollOffset<=a/2?0:o.scrollOffset+o.size/2>=l-a/2?l-a:o.scrollOffset+o.size/2-a/2;default:return s>=d&&s<=u?s:s<d?d:u}}({align:t,cachedBounds:z,containerScrollOffset:r,containerSize:O,index:n,itemCount:h,itemSize:I});if(e){if(i=l({containerElement:e,direction:a,isRtl:f,scrollOffset:i}),"function"!=typeof e.scrollTo){let e=R(i);u(y,e)||w(e)}return i}},b=(0,r.useRef)(()=>{throw Error("Cannot call during render.")}),i(()=>{b.current=v},[v]),(0,r.useCallback)(e=>b.current?.(e),[b])),startIndexOverscan:$,startIndexVisible:S,stopIndexOverscan:j,stopIndexVisible:M}}({containerElement:N,containerStyle:S,defaultContainerSize:a,direction:"vertical",itemCount:v,itemProps:M,itemSize:(0,r.useMemo)(()=>C?e=>b.getRowHeight(e)??b.getAverageRowHeight():b,[C,b]),onResize:m,overscanCount:g});(0,r.useImperativeHandle)(h,()=>({get element(){return N},scrollToRow({align:e="auto",behavior:t="auto",index:r}){let n=z({align:e,containerScrollOffset:N?.scrollTop??0,index:r});"function"==typeof N?.scrollTo&&N.scrollTo({behavior:t,top:n})}}),[N,z]),i(()=>{if(!N)return;let e=Array.from(N.children).filter((e,t)=>{if(e.hasAttribute("aria-hidden"))return!1;let r=`${T+t}`;return e.setAttribute("data-react-window-index",r),!0});if(C)return b.observeRowElements(e)},[N,C,b,T,R]),(0,r.useEffect)(()=>{T>=0&&R>=0&&x&&x({startIndex:E,stopIndex:D},{startIndex:T,stopIndex:R})},[x,T,E,R,D]);let A=(0,r.useMemo)(()=>{let e=[];if(v>0)for(let t=T;t<=R;t++){let n=O(t);e.push((0,r.createElement)(j,{...M,ariaAttributes:{"aria-posinset":t+1,"aria-setsize":v,role:"listitem"},key:t,index:t,style:{position:"absolute",left:0,transform:`translateY(${n.scrollOffset}px)`,height:C?void 0:n.size,width:"100%"}}))}return e},[j,O,C,v,M,T,R]),H=(0,t.jsx)("div",{"aria-hidden":!0,style:{height:I(),width:"100%",zIndex:-1}});return(0,r.createElement)(w,{role:"list",...$,className:n,ref:k,style:{position:"relative",maxHeight:"100%",flexGrow:1,overflowY:"auto",...S}},A,e,H)}r.useState,r.useRef,r.useState,r.useRef;var m=e.i(329),x=e.i(58362),g=e.i(25761),p=e.i(44021),v=e.i(22764);let b=(0,e.i(22436).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 y=e.i(81622),w=e.i(60218),S=e.i(71840),$=e.i(38322),M=e.i(46131),j=e.i(65458),N=e.i(35179),k=e.i(28954),C=e.i(12437);function O(e){return e?(0,k.default)(e).fromNow():"Unknown"}function I(e,t){if(!e||!t)return"";let r=(0,k.default)(e),n=(0,k.default)(t).diff(r);if(n<0)return"";let i=Math.floor(n/864e5),s=Math.floor(n%864e5/36e5);if(0===i&&0===s){let e=Math.floor(n%36e5/6e4);return 0===e?"< 1m":`${e}m`}if(0===i)return`${s}h`;if(i<30)return s>0?`${i}d ${s}h`:`${i}d`;let a=Math.floor(i/30),l=i%30;if(a<12)return l>0?`${a}mo ${l}d`:`${a}mo`;let o=Math.floor(a/12),u=a%12;return u>0?`${o}y ${u}mo`:`${o}y`}k.default.extend(C.default),e.s(["formatDuration",()=>I,"formatRelativeTime",()=>O],34153);let z={specs:[],signature:null,scrollTop:0,activeSpecId:null},T=[],E=new Set,R=new Set,D=new Set;function A(){for(let e of E)e()}function H(e){return E.add(e),()=>{E.delete(e)}}function L(){return z}function V(){return(0,r.useSyncExternalStore)(H,L,()=>z)}function B(){let e=r.useCallback(e=>(R.add(e),()=>{R.delete(e)}),[]);return(0,r.useSyncExternalStore)(e,()=>L().specs,()=>T)}function P(){let e=r.useCallback(e=>(D.add(e),()=>{D.delete(e)}),[]);return(0,r.useSyncExternalStore)(e,()=>L().activeSpecId,()=>null)}function _(e){if(0===e.length)return;let t=e.map(e=>[e.id,e.specNumber??"",e.title??"",e.status??"",e.priority??"",e.updatedAt?new Date(e.updatedAt).getTime():0].join(":")).join("|");if(t!==z.signature)for(let r of(z={...z,specs:e,signature:t},A(),R))r()}function W(e){if(z.activeSpecId!==e)for(let t of(z={...z,activeSpecId:e},A(),D))t()}function Y(e){1>Math.abs(e-z.scrollTop)||(z={...z,scrollTop:e})}function q(){return z.scrollTop}e.s(["getSidebarScrollTop",()=>q,"primeSpecsSidebar",()=>_,"setActiveSidebarSpec",()=>W,"updateSidebarScrollTop",()=>Y,"useSpecsSidebarActiveSpec",()=>P,"useSpecsSidebarSpecs",()=>B,"useSpecsSidebarState",()=>V],12542);let F=r.useLayoutEffect;function U({initialSpecs:e=[],currentSpecId:i,currentSubSpec:s,onSpecHover:a}){let[l,o]=r.useState(""),[u,c]=r.useState("all"),[d,f]=r.useState("all"),[k,C]=r.useState("all"),[I,z]=r.useState(!1),[T,E]=r.useState(()=>"true"===localStorage.getItem("specs-nav-sidebar-collapsed")),[R,D]=r.useState(!1),[A,H]=r.useState(!1),L=r.useRef(null),V=r.useRef(null),_=r.useRef(!1),W=r.useRef(null),U=r.useRef(0),J=r.useRef(!1),Z=r.useRef(!0),K=B(),G=P(),Q=r.useMemo(()=>K.length>0?K:e,[K,e]),X=i||G||"";r.useEffect(()=>{H(!0)},[]),r.useEffect(()=>{document.documentElement.style.setProperty("--specs-nav-sidebar-width",T?"0px":"280px"),localStorage.setItem("specs-nav-sidebar-collapsed",String(T))},[T]),r.useEffect(()=>{D(!1)},[X,s]);let ee=r.useMemo(()=>{let e=Q;if(l){let t=l.toLowerCase();e=e.filter(e=>e.title?.toLowerCase().includes(t)||e.specName.toLowerCase().includes(t)||e.specNumber?.toString().includes(t))}return"all"!==u&&(e=e.filter(e=>e.status===u)),"all"!==d&&(e=e.filter(e=>e.priority===d)),"all"!==k&&(e=e.filter(e=>e.tags?.includes(k))),console.debug(e),e},[Q,l,u,d,k]),et=r.useMemo(()=>{let e=new Set;return Q.forEach(t=>{t.tags?.forEach(t=>e.add(t))}),Array.from(e).sort()},[Q]),er="all"!==u||"all"!==d||"all"!==k,en=r.useMemo(()=>[...ee].sort((e,t)=>(t.specNumber||0)-(e.specNumber||0)),[ee]);F(()=>{let e=null,t=null;U.current=q(),J.current=U.current>0;let r=()=>{let n=W.current?.element;if(!n){e=window.requestAnimationFrame(r);return}_.current||(U.current>0&&(n.scrollTop=U.current),_.current=!0);let i=()=>{null===V.current&&(V.current=window.requestAnimationFrame(()=>{V.current=null,U.current=n.scrollTop,Y(n.scrollTop)}))};n.addEventListener("scroll",i,{passive:!0}),t=()=>{n.removeEventListener("scroll",i)}};return r(),()=>{t&&t(),null!==e&&window.cancelAnimationFrame(e),null!==V.current&&(window.cancelAnimationFrame(V.current),V.current=null)}},[]),F(()=>{if(!Z.current||(Z.current=!1,J.current||!X))return;let e=null,t=()=>{if(J.current)return;if(!_.current||!W.current){e=window.requestAnimationFrame(t);return}let r=en.findIndex(e=>e.id===X);-1!==r&&(J.current=!0,W.current.scrollToRow({index:r,align:"center"}))};return t(),()=>{null!==e&&window.cancelAnimationFrame(e)}},[en,X]),r.useEffect(()=>(window.toggleSpecsSidebar=()=>D(e=>!e),()=>{window.toggleSpecsSidebar=void 0}),[]);let ei=r.useCallback(e=>{let{index:r,style:i}=e,l=en[r],o=l.id===X,u=(l.contentMd?(0,j.extractH1Title)(l.contentMd):null)||l.title||l.specName;return(0,t.jsx)("div",{style:i,className:"px-1",children:(0,t.jsx)("div",{className:"mb-0.5",children:(0,t.jsx)("div",{className:"flex items-center gap-0.5",children:(0,t.jsxs)($.Tooltip,{children:[(0,t.jsx)($.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)(n.default,{ref:o&&!s?L:null,href:`/specs/${l.specNumber||l.id}`,onMouseEnter:()=>a?.(l.specNumber?.toString()||l.id),className:(0,j.cn)("w-full flex flex-col gap-1 p-1.5 rounded-md text-sm transition-colors",o?"bg-accent text-accent-foreground font-medium":"hover:bg-accent/50"),children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[l.specNumber&&(0,t.jsxs)("span",{className:"text-xs font-mono text-muted-foreground shrink-0",children:["#",l.specNumber.toString().padStart(3,"0")]}),(0,t.jsx)("span",{className:"truncate text-xs leading-relaxed",children:u})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5 flex-wrap",children:[l.status&&(0,t.jsxs)($.Tooltip,{children:[(0,t.jsx)($.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(S.StatusBadge,{status:l.status,iconOnly:!0,className:"text-[10px] scale-90"})})}),(0,t.jsx)($.TooltipContent,{side:"right",children:(0,S.getStatusLabel)(l.status)})]}),l.priority&&(0,t.jsxs)($.Tooltip,{children:[(0,t.jsx)($.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(N.PriorityBadge,{priority:l.priority,iconOnly:!0,className:"text-[10px] scale-90"})})}),(0,t.jsx)($.TooltipContent,{side:"right",children:(0,N.getPriorityLabel)(l.priority)})]}),"number"==typeof l.subSpecsCount&&l.subSpecsCount>0&&(0,t.jsxs)("span",{className:"text-[10px] text-muted-foreground",children:["+",l.subSpecsCount," files"]}),l.updatedAt&&(0,t.jsx)("span",{className:"text-[10px] text-muted-foreground",children:O(l.updatedAt)})]})]})}),(0,t.jsx)($.TooltipContent,{side:"right",className:"max-w-[300px]",children:(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("div",{className:"font-semibold",children:u}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:l.specName})]})})]})})})})},[en,X,s,a]),es=r.useMemo(()=>window.innerHeight-56-180,[]),ea=r.useMemo(()=>r.memo(h),[]);return(0,t.jsxs)($.TooltipProvider,{delayDuration:700,children:[R&&(0,t.jsx)("div",{className:"fixed inset-0 bg-black/50 z-40 lg:hidden",onClick:()=>D(!1)}),(0,t.jsxs)("div",{className:"relative flex-shrink-0",children:[(0,t.jsxs)("aside",{className:(0,j.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",A&&T?"lg:w-0 lg:border-r-0":"lg:w-[280px]",R&&"fixed left-0 top-14 z-50 flex w-[280px]"),children:[(0,t.jsxs)("div",{className:"p-4 border-b border-border",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsx)("h2",{className:"font-semibold text-sm",children:"Specifications"}),(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsxs)($.Tooltip,{children:[(0,t.jsx)($.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(w.Button,{variant:I||er?"default":"ghost",size:"sm",onClick:()=>z(!I),className:"h-6 w-6 p-0",children:(0,t.jsx)(b,{className:"h-4 w-4"})})}),(0,t.jsx)($.TooltipContent,{side:"bottom",children:I?"Hide filters":"Show filters"})]}),(0,t.jsx)(w.Button,{variant:"ghost",size:"sm",onClick:()=>D(!1),className:"h-6 w-6 p-0 lg:hidden",children:(0,t.jsx)(p.X,{className:"h-4 w-4"})}),(0,t.jsx)(w.Button,{variant:"ghost",size:"sm",onClick:()=>E(!0),className:"h-6 w-6 p-0 hidden lg:flex lg:items-center lg:justify-center",children:(0,t.jsx)(x.ChevronLeft,{className:"h-4 w-4"})})]})]}),I&&(0,t.jsxs)("div",{className:"space-y-2 mb-3 pb-3 border-b border-border",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:"Filters"}),er&&(0,t.jsx)(w.Button,{variant:"ghost",size:"sm",onClick:()=>{c("all"),f("all"),C("all")},className:"h-5 text-xs px-2 py-0",children:"Clear"})]}),(0,t.jsxs)(M.Select,{value:u,onValueChange:c,children:[(0,t.jsx)(M.SelectTrigger,{className:"h-8 text-xs",children:(0,t.jsx)(M.SelectValue,{placeholder:"Status"})}),(0,t.jsxs)(M.SelectContent,{children:[(0,t.jsx)(M.SelectItem,{value:"all",children:"All Status"}),(0,t.jsx)(M.SelectItem,{value:"planned",children:"Planned"}),(0,t.jsx)(M.SelectItem,{value:"in-progress",children:"In Progress"}),(0,t.jsx)(M.SelectItem,{value:"complete",children:"Complete"}),(0,t.jsx)(M.SelectItem,{value:"archived",children:"Archived"})]})]}),(0,t.jsxs)(M.Select,{value:d,onValueChange:f,children:[(0,t.jsx)(M.SelectTrigger,{className:"h-8 text-xs",children:(0,t.jsx)(M.SelectValue,{placeholder:"Priority"})}),(0,t.jsxs)(M.SelectContent,{children:[(0,t.jsx)(M.SelectItem,{value:"all",children:"All Priority"}),(0,t.jsx)(M.SelectItem,{value:"low",children:"Low"}),(0,t.jsx)(M.SelectItem,{value:"medium",children:"Medium"}),(0,t.jsx)(M.SelectItem,{value:"high",children:"High"}),(0,t.jsx)(M.SelectItem,{value:"critical",children:"Critical"})]})]}),et.length>0&&(0,t.jsxs)(M.Select,{value:k,onValueChange:C,children:[(0,t.jsx)(M.SelectTrigger,{className:"h-8 text-xs",children:(0,t.jsx)(M.SelectValue,{placeholder:"Tag"})}),(0,t.jsxs)(M.SelectContent,{children:[(0,t.jsx)(M.SelectItem,{value:"all",children:"All Tags"}),et.map(e=>(0,t.jsx)(M.SelectItem,{value:e,children:e},e))]})]})]}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(m.Search,{className:"absolute left-2 top-2.5 h-4 w-4 text-muted-foreground"}),(0,t.jsx)(y.Input,{placeholder:"Search specs...",value:l,onChange:e=>o(e.target.value),className:"pl-8 h-9 border-border"})]})]}),(0,t.jsx)("div",{className:"flex-1 overflow-hidden",children:0===en.length?(0,t.jsx)("div",{className:"text-center py-8 text-sm text-muted-foreground",children:"No specs found"}):(0,t.jsx)(ea,{listRef:W,defaultHeight:es,rowCount:en.length,rowHeight:72,overscanCount:5,rowComponent:ei,rowProps:{}})})]}),A&&T&&(0,t.jsx)(w.Button,{variant:"ghost",size:"sm",onClick:()=>E(!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,t.jsx)(g.ChevronRight,{className:"h-4 w-4"})}),(0,t.jsx)(w.Button,{onClick:()=>D(!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,t.jsx)(v.List,{className:"h-5 w-5"})})]})]})}e.s(["SpecsNavSidebar",()=>U],3622)}]);
@@ -0,0 +1 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,22764,e=>{"use strict";let t=(0,e.i(22436).default)("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]]);e.s(["List",()=>t],22764)},28954,(e,t,r)=>{e.e,t.exports=function(){"use strict";var e="millisecond",t="second",r="minute",n="hour",s="week",i="month",a="quarter",l="year",o="date",c="Invalid Date",u=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,d=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,h=function(e,t,r){var n=String(e);return!n||n.length>=t?e:""+Array(t+1-n.length).join(r)+e},f="en",m={};m[f]={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],r=e%100;return"["+e+(t[(r-20)%10]||t[r]||t[0])+"]"}};var p="$isDayjsObject",x=function(e){return e instanceof w||!(!e||!e[p])},g=function e(t,r,n){var s;if(!t)return f;if("string"==typeof t){var i=t.toLowerCase();m[i]&&(s=i),r&&(m[i]=r,s=i);var a=t.split("-");if(!s&&a.length>1)return e(a[0])}else{var l=t.name;m[l]=t,s=l}return!n&&s&&(f=s),s||!n&&f},v=function(e,t){if(x(e))return e.clone();var r="object"==typeof t?t:{};return r.date=e,r.args=arguments,new w(r)},S={s:h,z:function(e){var t=-e.utcOffset(),r=Math.abs(t);return(t<=0?"+":"-")+h(Math.floor(r/60),2,"0")+":"+h(r%60,2,"0")},m:function e(t,r){if(t.date()<r.date())return-e(r,t);var n=12*(r.year()-t.year())+(r.month()-t.month()),s=t.clone().add(n,i),a=r-s<0,l=t.clone().add(n+(a?-1:1),i);return+(-(n+(r-s)/(a?s-l:l-s))||0)},a:function(e){return e<0?Math.ceil(e)||0:Math.floor(e)},p:function(c){return({M:i,y:l,w:s,d:"day",D:o,h:n,m:r,s:t,ms:e,Q:a})[c]||String(c||"").toLowerCase().replace(/s$/,"")},u:function(e){return void 0===e}};S.l=g,S.i=x,S.w=function(e,t){return v(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var w=function(){function h(e){this.$L=g(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[p]=!0}var f=h.prototype;return f.parse=function(e){this.$d=function(e){var t=e.date,r=e.utc;if(null===t)return new Date(NaN);if(S.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var n=t.match(u);if(n){var s=n[2]-1||0,i=(n[7]||"0").substring(0,3);return r?new Date(Date.UTC(n[1],s,n[3]||1,n[4]||0,n[5]||0,n[6]||0,i)):new Date(n[1],s,n[3]||1,n[4]||0,n[5]||0,n[6]||0,i)}}return new Date(t)}(e),this.init()},f.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},f.$utils=function(){return S},f.isValid=function(){return this.$d.toString()!==c},f.isSame=function(e,t){var r=v(e);return this.startOf(t)<=r&&r<=this.endOf(t)},f.isAfter=function(e,t){return v(e)<this.startOf(t)},f.isBefore=function(e,t){return this.endOf(t)<v(e)},f.$g=function(e,t,r){return S.u(e)?this[t]:this.set(r,e)},f.unix=function(){return Math.floor(this.valueOf()/1e3)},f.valueOf=function(){return this.$d.getTime()},f.startOf=function(e,a){var c=this,u=!!S.u(a)||a,d=S.p(e),h=function(e,t){var r=S.w(c.$u?Date.UTC(c.$y,t,e):new Date(c.$y,t,e),c);return u?r:r.endOf("day")},f=function(e,t){return S.w(c.toDate()[e].apply(c.toDate("s"),(u?[0,0,0,0]:[23,59,59,999]).slice(t)),c)},m=this.$W,p=this.$M,x=this.$D,g="set"+(this.$u?"UTC":"");switch(d){case l:return u?h(1,0):h(31,11);case i:return u?h(1,p):h(0,p+1);case s:var v=this.$locale().weekStart||0,w=(m<v?m+7:m)-v;return h(u?x-w:x+(6-w),p);case"day":case o:return f(g+"Hours",0);case n:return f(g+"Minutes",1);case r:return f(g+"Seconds",2);case t:return f(g+"Milliseconds",3);default:return this.clone()}},f.endOf=function(e){return this.startOf(e,!1)},f.$set=function(s,a){var c,u=S.p(s),d="set"+(this.$u?"UTC":""),h=((c={}).day=d+"Date",c[o]=d+"Date",c[i]=d+"Month",c[l]=d+"FullYear",c[n]=d+"Hours",c[r]=d+"Minutes",c[t]=d+"Seconds",c[e]=d+"Milliseconds",c)[u],f="day"===u?this.$D+(a-this.$W):a;if(u===i||u===l){var m=this.clone().set(o,1);m.$d[h](f),m.init(),this.$d=m.set(o,Math.min(this.$D,m.daysInMonth())).$d}else h&&this.$d[h](f);return this.init(),this},f.set=function(e,t){return this.clone().$set(e,t)},f.get=function(e){return this[S.p(e)]()},f.add=function(e,a){var o,c=this;e=Number(e);var u=S.p(a),d=function(t){var r=v(c);return S.w(r.date(r.date()+Math.round(t*e)),c)};if(u===i)return this.set(i,this.$M+e);if(u===l)return this.set(l,this.$y+e);if("day"===u)return d(1);if(u===s)return d(7);var h=((o={})[r]=6e4,o[n]=36e5,o[t]=1e3,o)[u]||1,f=this.$d.getTime()+e*h;return S.w(f,this)},f.subtract=function(e,t){return this.add(-1*e,t)},f.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return r.invalidDate||c;var n=e||"YYYY-MM-DDTHH:mm:ssZ",s=S.z(this),i=this.$H,a=this.$m,l=this.$M,o=r.weekdays,u=r.months,h=r.meridiem,f=function(e,r,s,i){return e&&(e[r]||e(t,n))||s[r].slice(0,i)},m=function(e){return S.s(i%12||12,e,"0")},p=h||function(e,t,r){var n=e<12?"AM":"PM";return r?n.toLowerCase():n};return n.replace(d,function(e,n){return n||function(e){switch(e){case"YY":return String(t.$y).slice(-2);case"YYYY":return S.s(t.$y,4,"0");case"M":return l+1;case"MM":return S.s(l+1,2,"0");case"MMM":return f(r.monthsShort,l,u,3);case"MMMM":return f(u,l);case"D":return t.$D;case"DD":return S.s(t.$D,2,"0");case"d":return String(t.$W);case"dd":return f(r.weekdaysMin,t.$W,o,2);case"ddd":return f(r.weekdaysShort,t.$W,o,3);case"dddd":return o[t.$W];case"H":return String(i);case"HH":return S.s(i,2,"0");case"h":return m(1);case"hh":return m(2);case"a":return p(i,a,!0);case"A":return p(i,a,!1);case"m":return String(a);case"mm":return S.s(a,2,"0");case"s":return String(t.$s);case"ss":return S.s(t.$s,2,"0");case"SSS":return S.s(t.$ms,3,"0");case"Z":return s}return null}(e)||s.replace(":","")})},f.utcOffset=function(){return-(15*Math.round(this.$d.getTimezoneOffset()/15))},f.diff=function(e,o,c){var u,d=this,h=S.p(o),f=v(e),m=(f.utcOffset()-this.utcOffset())*6e4,p=this-f,x=function(){return S.m(d,f)};switch(h){case l:u=x()/12;break;case i:u=x();break;case a:u=x()/3;break;case s:u=(p-m)/6048e5;break;case"day":u=(p-m)/864e5;break;case n:u=p/36e5;break;case r:u=p/6e4;break;case t:u=p/1e3;break;default:u=p}return c?u:S.a(u)},f.daysInMonth=function(){return this.endOf(i).$D},f.$locale=function(){return m[this.$L]},f.locale=function(e,t){if(!e)return this.$L;var r=this.clone(),n=g(e,t,!0);return n&&(r.$L=n),r},f.clone=function(){return S.w(this.$d,this)},f.toDate=function(){return new Date(this.valueOf())},f.toJSON=function(){return this.isValid()?this.toISOString():null},f.toISOString=function(){return this.$d.toISOString()},f.toString=function(){return this.$d.toUTCString()},h}(),y=w.prototype;return v.prototype=y,[["$ms",e],["$s",t],["$m",r],["$H",n],["$W","day"],["$M",i],["$y",l],["$D",o]].forEach(function(e){y[e[1]]=function(t){return this.$g(t,e[0],e[1])}}),v.extend=function(e,t){return e.$i||(e(t,w,v),e.$i=!0),v},v.locale=g,v.isDayjs=x,v.unix=function(e){return v(1e3*e)},v.en=m[f],v.Ls=m,v.p={},v}()},12437,(e,t,r)=>{e.e,t.exports=function(e,t,r){e=e||{};var n=t.prototype,s={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function i(e,t,r,s){return n.fromToBase(e,t,r,s)}r.en.relativeTime=s,n.fromToBase=function(t,n,i,a,l){for(var o,c,u,d=i.$locale().relativeTime||s,h=e.thresholds||[{l:"s",r:44,d:"second"},{l:"m",r:89},{l:"mm",r:44,d:"minute"},{l:"h",r:89},{l:"hh",r:21,d:"hour"},{l:"d",r:35},{l:"dd",r:25,d:"day"},{l:"M",r:45},{l:"MM",r:10,d:"month"},{l:"y",r:17},{l:"yy",d:"year"}],f=h.length,m=0;m<f;m+=1){var p=h[m];p.d&&(o=a?r(t).diff(i,p.d,!0):i.diff(t,p.d,!0));var x=(e.rounding||Math.round)(Math.abs(o));if(u=o>0,x<=p.r||!p.r){x<=1&&m>0&&(p=h[m-1]);var g=d[p.l];l&&(x=l(""+x)),c="string"==typeof g?g.replace("%d",x):g(x,n,p.l,u);break}}if(n)return c;var v=u?d.future:d.past;return"function"==typeof v?v(c):v.replace("%s",c)},n.to=function(e,t){return i(e,t,this,!0)},n.from=function(e,t){return i(e,t,this)};var a=function(e){return e.$u?r.utc():r()};n.toNow=function(e){return this.to(a(this),e)},n.fromNow=function(e){return this.from(a(this),e)}}},3622,34153,12542,e=>{"use strict";var t=e.i(90022),r=e.i(31231),n=e.i(87985);let s="u">typeof window?r.useLayoutEffect:r.useEffect;function i(e){if(void 0!==e)switch(typeof e){case"number":return e;case"string":if(e.endsWith("px"))return parseFloat(e)}}let a=null;function l({containerElement:e,direction:t,isRtl:r,scrollOffset:n}){if("horizontal"===t&&r)switch(function(e=!1){if(null===a||e){let e=document.createElement("div"),t=e.style;t.width="50px",t.height="50px",t.overflow="scroll",t.direction="rtl";let r=document.createElement("div"),n=r.style;return n.width="100px",n.height="100px",e.appendChild(r),document.body.appendChild(e),e.scrollLeft>0?a="positive-descending":(e.scrollLeft=1,a=0===e.scrollLeft?"negative":"positive-ascending"),document.body.removeChild(e),a}return a}()){case"negative":return-n;case"positive-descending":if(e){let{clientWidth:t,scrollLeft:r,scrollWidth:n}=e;return n-t-r}}return n}function o(e,t="Assertion error"){if(!e)throw console.error(t),Error(t)}function c(e,t){if(e===t)return!0;if(!!e!=!!t||(o(void 0!==e),o(void 0!==t),Object.keys(e).length!==Object.keys(t).length))return!1;for(let r in e)if(!Object.is(t[r],e[r]))return!1;return!0}function u({cachedBounds:e,itemCount:t,itemSize:r}){if(0===t)return 0;if("number"==typeof r)return t*r;{let r=e.get(0===e.size?0:e.size-1);return o(void 0!==r,"Unexpected bounds cache miss"),t*((r.scrollOffset+r.size)/e.size)}}function d({cachedBounds:e,containerScrollOffset:t,containerSize:r,itemCount:n,overscanCount:s}){let i=n-1,a=0,l=-1,o=0,c=-1,u=0;for(;u<i;){let r=e.get(u);if(r.scrollOffset+r.size>t)break;u++}for(o=Math.max(0,(a=u)-s);u<i;){let n=e.get(u);if(n.scrollOffset+n.size>=t+r)break;u++}return c=Math.min(n-1,(l=Math.min(i,u))+s),a<0&&(a=0,l=-1,o=0,c=-1),{startIndexVisible:a,stopIndexVisible:l,startIndexOverscan:o,stopIndexOverscan:c}}function h(e,t){let{ariaAttributes:r,style:n,...s}=e,{ariaAttributes:i,style:a,...l}=t;return c(r,i)&&c(n,a)&&c(s,l)}function f({children:e,className:n,defaultHeight:a=0,listRef:f,onResize:m,onRowsRendered:p,overscanCount:x=3,rowComponent:g,rowCount:v,rowHeight:S,rowProps:w,tagName:y="div",style:b,...j}){let $=(0,r.useMemo)(()=>w,Object.values(w)),M=(0,r.useMemo)(()=>(0,r.memo)(g,h),[g]),[N,C]=(0,r.useState)(null),I=null!=S&&"object"==typeof S&&"getAverageRowHeight"in S&&"function"==typeof S.getAverageRowHeight,{getCellBounds:z,getEstimatedSize:O,scrollToIndex:T,startIndexOverscan:k,startIndexVisible:D,stopIndexOverscan:A,stopIndexVisible:E}=function({containerElement:e,containerStyle:t,defaultContainerSize:n=0,direction:a,isRtl:h=!1,itemCount:f,itemProps:m,itemSize:p,onResize:x,overscanCount:g}){var v;let S,[w,y]=(0,r.useState)({startIndexVisible:0,startIndexOverscan:0,stopIndexVisible:-1,stopIndexOverscan:-1}),{startIndexVisible:b,startIndexOverscan:j,stopIndexVisible:$,stopIndexOverscan:M}={startIndexVisible:Math.min(f-1,w.startIndexVisible),startIndexOverscan:Math.min(f-1,w.startIndexOverscan),stopIndexVisible:Math.min(f-1,w.stopIndexVisible),stopIndexOverscan:Math.min(f-1,w.stopIndexOverscan)},{height:N=n,width:C=n}=function({box:e,defaultHeight:t,defaultWidth:n,disabled:a,element:l,mode:o,style:c}){let{styleHeight:u,styleWidth:d}=(0,r.useMemo)(()=>({styleHeight:i(c?.height),styleWidth:i(c?.width)}),[c?.height,c?.width]),[h,f]=(0,r.useState)({height:t,width:n}),m=a||"only-height"===o&&void 0!==u||"only-width"===o&&void 0!==d||void 0!==u&&void 0!==d;return s(()=>{if(null===l||m)return;let t=new ResizeObserver(e=>{for(let t of e){let{contentRect:e,target:r}=t;l===r&&f(t=>t.height===e.height&&t.width===e.width?t:{height:e.height,width:e.width})}});return t.observe(l,{box:e}),()=>{t?.unobserve(l)}},[e,m,l,u,d]),(0,r.useMemo)(()=>({height:u??h.height,width:d??h.width}),[h,u,d])}({defaultHeight:"vertical"===a?n:void 0,defaultWidth:"horizontal"===a?n:void 0,element:e,mode:"vertical"===a?"only-height":"only-width",style:t}),I=(0,r.useRef)({height:0,width:0}),z="vertical"===a?N:C,O=function({containerSize:e,itemSize:t}){let r;return"string"==typeof t?(o(t.endsWith("%"),`Invalid item size: "${t}"; string values must be percentages (e.g. "100%")`),o(void 0!==e,"Container size must be defined if a percentage item size is specified"),r=e*parseInt(t)/100):r=t,r}({containerSize:z,itemSize:p});(0,r.useLayoutEffect)(()=>{if("function"==typeof x){let e=I.current;(e.height!==N||e.width!==C)&&(x({height:N,width:C},{...e}),e.height=N,e.width=C)}},[N,x,C]);let T=function({itemCount:e,itemProps:t,itemSize:n}){return(0,r.useMemo)(()=>(function({itemCount:e,itemProps:t,itemSize:r}){let n=new Map;return{get(s){for(o(s<e,`Invalid index ${s}`);n.size-1<s;){let e,i=n.size;switch(typeof r){case"function":e=r(i,t);break;case"number":e=r}if(0===i)n.set(i,{size:e,scrollOffset:0});else{let t=n.get(i-1);o(void 0!==t,`Unexpected bounds cache miss for index ${s}`),n.set(i,{scrollOffset:t.scrollOffset+t.size,size:e})}}let i=n.get(s);return o(void 0!==i,`Unexpected bounds cache miss for index ${s}`),i},set(e,t){n.set(e,t)},get size(){return n.size}}})({itemCount:e,itemProps:t,itemSize:n}),[e,t,n])}({itemCount:f,itemProps:m,itemSize:O}),k=(0,r.useCallback)(e=>T.get(e),[T]),D=(0,r.useCallback)(()=>u({cachedBounds:T,itemCount:f,itemSize:O}),[T,f,O]),A=(0,r.useCallback)(t=>d({cachedBounds:T,containerScrollOffset:l({containerElement:e,direction:a,isRtl:h,scrollOffset:t}),containerSize:z,itemCount:f,overscanCount:g}),[T,e,z,a,h,f,g]);return s(()=>{y(A(("vertical"===a?e?.scrollTop:e?.scrollLeft)??0))},[e,a,A]),s(()=>{if(!e)return;let t=()=>{y(t=>{let{scrollLeft:r,scrollTop:n}=e,s=d({cachedBounds:T,containerScrollOffset:l({containerElement:e,direction:a,isRtl:h,scrollOffset:"vertical"===a?n:r}),containerSize:z,itemCount:f,overscanCount:g});return c(s,t)?t:s})};return e.addEventListener("scroll",t),()=>{e.removeEventListener("scroll",t)}},[T,e,z,a,f,g]),{getCellBounds:k,getEstimatedSize:D,scrollToIndex:(v=({align:t="auto",containerScrollOffset:r,index:n})=>{let s=function({align:e,cachedBounds:t,index:r,itemCount:n,itemSize:s,containerScrollOffset:i,containerSize:a}){if(r<0||r>=n)throw RangeError(`Invalid index specified: ${r}`,{cause:`Index ${r} is not within the range of 0 - ${n-1}`});let l=u({cachedBounds:t,itemCount:n,itemSize:s}),o=t.get(r),c=Math.max(0,Math.min(l-a,o.scrollOffset)),d=Math.max(0,o.scrollOffset-a+o.size);switch("smart"===e&&(e=i>=d&&i<=c?"auto":"center"),e){case"start":return c;case"end":return d;case"center":return o.scrollOffset<=a/2?0:o.scrollOffset+o.size/2>=l-a/2?l-a:o.scrollOffset+o.size/2-a/2;default:return i>=d&&i<=c?i:i<d?d:c}}({align:t,cachedBounds:T,containerScrollOffset:r,containerSize:z,index:n,itemCount:f,itemSize:O});if(e){if(s=l({containerElement:e,direction:a,isRtl:h,scrollOffset:s}),"function"!=typeof e.scrollTo){let e=A(s);c(w,e)||y(e)}return s}},S=(0,r.useRef)(()=>{throw Error("Cannot call during render.")}),s(()=>{S.current=v},[v]),(0,r.useCallback)(e=>S.current?.(e),[S])),startIndexOverscan:j,startIndexVisible:b,stopIndexOverscan:M,stopIndexVisible:$}}({containerElement:N,containerStyle:b,defaultContainerSize:a,direction:"vertical",itemCount:v,itemProps:$,itemSize:(0,r.useMemo)(()=>I?e=>S.getRowHeight(e)??S.getAverageRowHeight():S,[I,S]),onResize:m,overscanCount:x});(0,r.useImperativeHandle)(f,()=>({get element(){return N},scrollToRow({align:e="auto",behavior:t="auto",index:r}){let n=T({align:e,containerScrollOffset:N?.scrollTop??0,index:r});"function"==typeof N?.scrollTo&&N.scrollTo({behavior:t,top:n})}}),[N,T]),s(()=>{if(!N)return;let e=Array.from(N.children).filter((e,t)=>{if(e.hasAttribute("aria-hidden"))return!1;let r=`${k+t}`;return e.setAttribute("data-react-window-index",r),!0});if(I)return S.observeRowElements(e)},[N,I,S,k,A]),(0,r.useEffect)(()=>{k>=0&&A>=0&&p&&p({startIndex:D,stopIndex:E},{startIndex:k,stopIndex:A})},[p,k,D,A,E]);let R=(0,r.useMemo)(()=>{let e=[];if(v>0)for(let t=k;t<=A;t++){let n=z(t);e.push((0,r.createElement)(M,{...$,ariaAttributes:{"aria-posinset":t+1,"aria-setsize":v,role:"listitem"},key:t,index:t,style:{position:"absolute",left:0,transform:`translateY(${n.scrollOffset}px)`,height:I?void 0:n.size,width:"100%"}}))}return e},[M,z,I,v,$,k,A]),L=(0,t.jsx)("div",{"aria-hidden":!0,style:{height:O(),width:"100%",zIndex:-1}});return(0,r.createElement)(y,{role:"list",...j,className:n,ref:C,style:{position:"relative",maxHeight:"100%",flexGrow:1,overflowY:"auto",...b}},R,e,L)}r.useState,r.useRef,r.useState,r.useRef;var m=e.i(329),p=e.i(58362),x=e.i(25761),g=e.i(44021),v=e.i(22764);let S=(0,e.i(22436).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 w=e.i(81622),y=e.i(60218),b=e.i(71840),j=e.i(38322),$=e.i(46131),M=e.i(65458),N=e.i(35179),C=e.i(28954),I=e.i(12437);function z(e){return e?(0,C.default)(e).fromNow():"Unknown"}function O(e,t){if(!e||!t)return"";let r=(0,C.default)(e),n=(0,C.default)(t).diff(r);if(n<0)return"";let s=Math.floor(n/864e5),i=Math.floor(n%864e5/36e5);if(0===s&&0===i){let e=Math.floor(n%36e5/6e4);return 0===e?"< 1m":`${e}m`}if(0===s)return`${i}h`;if(s<30)return i>0?`${s}d ${i}h`:`${s}d`;let a=Math.floor(s/30),l=s%30;if(a<12)return l>0?`${a}mo ${l}d`:`${a}mo`;let o=Math.floor(a/12),c=a%12;return c>0?`${o}y ${c}mo`:`${o}y`}C.default.extend(I.default),e.s(["formatDuration",()=>O,"formatRelativeTime",()=>z],34153);let T={specs:[],signature:null,scrollTop:0,activeSpecId:null},k=[],D=new Set,A=new Set,E=new Set;function R(){for(let e of D)e()}function L(e){return D.add(e),()=>{D.delete(e)}}function H(){return T}function B(){return(0,r.useSyncExternalStore)(L,H,()=>T)}function V(){let e=r.useCallback(e=>(A.add(e),()=>{A.delete(e)}),[]);return(0,r.useSyncExternalStore)(e,()=>H().specs,()=>k)}function P(){let e=r.useCallback(e=>(E.add(e),()=>{E.delete(e)}),[]);return(0,r.useSyncExternalStore)(e,()=>H().activeSpecId,()=>null)}function _(e){if(0===e.length)return;let t=e.map(e=>[e.id,e.specNumber??"",e.title??"",e.status??"",e.priority??"",e.updatedAt?new Date(e.updatedAt).getTime():0].join(":")).join("|");if(t!==T.signature)for(let r of(T={...T,specs:e,signature:t},R(),A))r()}function W(e){if(T.activeSpecId!==e)for(let t of(T={...T,activeSpecId:e},R(),E))t()}function Y(e){1>Math.abs(e-T.scrollTop)||(T={...T,scrollTop:e})}function F(){return T.scrollTop}e.s(["getSidebarScrollTop",()=>F,"primeSpecsSidebar",()=>_,"setActiveSidebarSpec",()=>W,"updateSidebarScrollTop",()=>Y,"useSpecsSidebarActiveSpec",()=>P,"useSpecsSidebarSpecs",()=>V,"useSpecsSidebarState",()=>B],12542);let U=r.useLayoutEffect;function q({initialSpecs:e=[],currentSpecId:s,currentSubSpec:i,onSpecHover:a}){let[l,o]=r.useState(""),[c,u]=r.useState("all"),[d,h]=r.useState("all"),[C,I]=r.useState("all"),[O,T]=r.useState(!1),[k,D]=r.useState(()=>"true"===localStorage.getItem("specs-nav-sidebar-collapsed")),[A,E]=r.useState(!1),[R,L]=r.useState(!1),H=r.useRef(null),B=r.useRef(null),_=r.useRef(!1),W=r.useRef(null),q=r.useRef(0),J=r.useRef(!1),Z=r.useRef(!0),K=V(),G=P(),Q=r.useMemo(()=>K.length>0?K:e,[K,e]),X=s||G||"";r.useEffect(()=>{L(!0)},[]),r.useEffect(()=>{document.documentElement.style.setProperty("--specs-nav-sidebar-width",k?"0px":"280px"),localStorage.setItem("specs-nav-sidebar-collapsed",String(k))},[k]),r.useEffect(()=>{E(!1)},[X,i]);let ee=r.useMemo(()=>{let e=Q;if(l){let t=l.toLowerCase();e=e.filter(e=>e.title?.toLowerCase().includes(t)||e.specName.toLowerCase().includes(t)||e.specNumber?.toString().includes(t))}return"all"!==c&&(e=e.filter(e=>e.status===c)),"all"!==d&&(e=e.filter(e=>e.priority===d)),"all"!==C&&(e=e.filter(e=>e.tags?.includes(C))),console.debug(e),e},[Q,l,c,d,C]),et=r.useMemo(()=>{let e=new Set;return Q.forEach(t=>{t.tags?.forEach(t=>e.add(t))}),Array.from(e).sort()},[Q]),er="all"!==c||"all"!==d||"all"!==C,en=r.useMemo(()=>[...ee].sort((e,t)=>(t.specNumber||0)-(e.specNumber||0)),[ee]);U(()=>{let e=null,t=null;q.current=F(),J.current=q.current>0;let r=()=>{let n=W.current?.element;if(!n){e=window.requestAnimationFrame(r);return}_.current||(q.current>0&&(n.scrollTop=q.current),_.current=!0);let s=()=>{null===B.current&&(B.current=window.requestAnimationFrame(()=>{B.current=null,q.current=n.scrollTop,Y(n.scrollTop)}))};n.addEventListener("scroll",s,{passive:!0}),t=()=>{n.removeEventListener("scroll",s)}};return r(),()=>{t&&t(),null!==e&&window.cancelAnimationFrame(e),null!==B.current&&(window.cancelAnimationFrame(B.current),B.current=null)}},[]),U(()=>{if(!Z.current||(Z.current=!1,J.current||!X))return;let e=null,t=()=>{if(J.current)return;if(!_.current||!W.current){e=window.requestAnimationFrame(t);return}let r=en.findIndex(e=>e.id===X);-1!==r&&(J.current=!0,W.current.scrollToRow({index:r,align:"center"}))};return t(),()=>{null!==e&&window.cancelAnimationFrame(e)}},[en,X]),r.useEffect(()=>(window.toggleSpecsSidebar=()=>E(e=>!e),()=>{window.toggleSpecsSidebar=void 0}),[]);let es=r.useCallback(e=>{let{index:r,style:s}=e,l=en[r],o=l.id===X,c=(l.contentMd?(0,M.extractH1Title)(l.contentMd):null)||l.title||l.specName;return(0,t.jsx)("div",{style:s,className:"px-1",children:(0,t.jsx)("div",{className:"mb-0.5",children:(0,t.jsx)("div",{className:"flex items-center gap-0.5",children:(0,t.jsxs)(j.Tooltip,{children:[(0,t.jsx)(j.TooltipTrigger,{asChild:!0,children:(0,t.jsxs)(n.default,{ref:o&&!i?H:null,href:`/specs/${l.specNumber||l.id}`,onMouseEnter:()=>a?.(l.specNumber?.toString()||l.id),className:(0,M.cn)("w-full flex flex-col gap-1 p-1.5 rounded-md text-sm transition-colors",o?"bg-accent text-accent-foreground font-medium":"hover:bg-accent/50"),children:[(0,t.jsxs)("div",{className:"flex items-center gap-1.5",children:[l.specNumber&&(0,t.jsxs)("span",{className:"text-xs font-mono text-muted-foreground shrink-0",children:["#",l.specNumber.toString().padStart(3,"0")]}),(0,t.jsx)("span",{className:"truncate text-xs leading-relaxed",children:c})]}),(0,t.jsxs)("div",{className:"flex items-center gap-1.5 flex-wrap",children:[l.status&&(0,t.jsxs)(j.Tooltip,{children:[(0,t.jsx)(j.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(b.StatusBadge,{status:l.status,iconOnly:!0,className:"text-[10px] scale-90"})})}),(0,t.jsx)(j.TooltipContent,{side:"right",children:(0,b.getStatusLabel)(l.status)})]}),l.priority&&(0,t.jsxs)(j.Tooltip,{children:[(0,t.jsx)(j.TooltipTrigger,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(N.PriorityBadge,{priority:l.priority,iconOnly:!0,className:"text-[10px] scale-90"})})}),(0,t.jsx)(j.TooltipContent,{side:"right",children:(0,N.getPriorityLabel)(l.priority)})]}),"number"==typeof l.subSpecsCount&&l.subSpecsCount>0&&(0,t.jsxs)("span",{className:"text-[10px] text-muted-foreground",children:["+",l.subSpecsCount," files"]}),l.updatedAt&&(0,t.jsx)("span",{className:"text-[10px] text-muted-foreground",children:z(l.updatedAt)})]})]})}),(0,t.jsx)(j.TooltipContent,{side:"right",className:"max-w-[300px]",children:(0,t.jsxs)("div",{className:"space-y-1",children:[(0,t.jsx)("div",{className:"font-semibold",children:c}),(0,t.jsx)("div",{className:"text-xs text-muted-foreground",children:l.specName})]})})]})})})})},[en,X,i,a]),ei=r.useMemo(()=>window.innerHeight-56-180,[]),ea=r.useMemo(()=>r.memo(f),[]);return(0,t.jsxs)(j.TooltipProvider,{delayDuration:700,children:[A&&(0,t.jsx)("div",{className:"fixed inset-0 bg-black/50 z-40 lg:hidden",onClick:()=>E(!1)}),(0,t.jsxs)("div",{className:"relative flex-shrink-0",children:[(0,t.jsxs)("aside",{className:(0,M.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",R&&k?"lg:w-0 lg:border-r-0":"lg:w-[280px]",A&&"fixed left-0 top-14 z-50 flex w-[280px]"),children:[(0,t.jsxs)("div",{className:"p-4 border-b border-border",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,t.jsx)("h2",{className:"font-semibold text-sm",children:"Specifications"}),(0,t.jsxs)("div",{className:"flex items-center gap-1",children:[(0,t.jsxs)(j.Tooltip,{children:[(0,t.jsx)(j.TooltipTrigger,{asChild:!0,children:(0,t.jsx)(y.Button,{variant:O||er?"default":"ghost",size:"sm",onClick:()=>T(!O),className:"h-6 w-6 p-0",children:(0,t.jsx)(S,{className:"h-4 w-4"})})}),(0,t.jsx)(j.TooltipContent,{side:"bottom",children:O?"Hide filters":"Show filters"})]}),(0,t.jsx)(y.Button,{variant:"ghost",size:"sm",onClick:()=>E(!1),className:"h-6 w-6 p-0 lg:hidden",children:(0,t.jsx)(g.X,{className:"h-4 w-4"})}),(0,t.jsx)(y.Button,{variant:"ghost",size:"sm",onClick:()=>D(!0),className:"h-6 w-6 p-0 hidden lg:flex lg:items-center lg:justify-center",children:(0,t.jsx)(p.ChevronLeft,{className:"h-4 w-4"})})]})]}),O&&(0,t.jsxs)("div",{className:"space-y-2 mb-3 pb-3 border-b border-border",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:"Filters"}),er&&(0,t.jsx)(y.Button,{variant:"ghost",size:"sm",onClick:()=>{u("all"),h("all"),I("all")},className:"h-5 text-xs px-2 py-0",children:"Clear"})]}),(0,t.jsxs)($.Select,{value:c,onValueChange:u,children:[(0,t.jsx)($.SelectTrigger,{className:"h-8 text-xs",children:(0,t.jsx)($.SelectValue,{placeholder:"Status"})}),(0,t.jsxs)($.SelectContent,{children:[(0,t.jsx)($.SelectItem,{value:"all",children:"All Status"}),(0,t.jsx)($.SelectItem,{value:"planned",children:"Planned"}),(0,t.jsx)($.SelectItem,{value:"in-progress",children:"In Progress"}),(0,t.jsx)($.SelectItem,{value:"complete",children:"Complete"}),(0,t.jsx)($.SelectItem,{value:"archived",children:"Archived"})]})]}),(0,t.jsxs)($.Select,{value:d,onValueChange:h,children:[(0,t.jsx)($.SelectTrigger,{className:"h-8 text-xs",children:(0,t.jsx)($.SelectValue,{placeholder:"Priority"})}),(0,t.jsxs)($.SelectContent,{children:[(0,t.jsx)($.SelectItem,{value:"all",children:"All Priority"}),(0,t.jsx)($.SelectItem,{value:"low",children:"Low"}),(0,t.jsx)($.SelectItem,{value:"medium",children:"Medium"}),(0,t.jsx)($.SelectItem,{value:"high",children:"High"}),(0,t.jsx)($.SelectItem,{value:"critical",children:"Critical"})]})]}),et.length>0&&(0,t.jsxs)($.Select,{value:C,onValueChange:I,children:[(0,t.jsx)($.SelectTrigger,{className:"h-8 text-xs",children:(0,t.jsx)($.SelectValue,{placeholder:"Tag"})}),(0,t.jsxs)($.SelectContent,{children:[(0,t.jsx)($.SelectItem,{value:"all",children:"All Tags"}),et.map(e=>(0,t.jsx)($.SelectItem,{value:e,children:e},e))]})]})]}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(m.Search,{className:"absolute left-2 top-2.5 h-4 w-4 text-muted-foreground"}),(0,t.jsx)(w.Input,{placeholder:"Search specs...",value:l,onChange:e=>o(e.target.value),className:"pl-8 h-9 border-border"})]})]}),(0,t.jsx)("div",{className:"flex-1 overflow-hidden",children:0===en.length?(0,t.jsx)("div",{className:"text-center py-8 text-sm text-muted-foreground",children:"No specs found"}):(0,t.jsx)(ea,{listRef:W,defaultHeight:ei,rowCount:en.length,rowHeight:72,overscanCount:5,rowComponent:es,rowProps:{}})})]}),R&&k&&(0,t.jsx)(y.Button,{variant:"ghost",size:"sm",onClick:()=>D(!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,t.jsx)(x.ChevronRight,{className:"h-4 w-4"})}),(0,t.jsx)(y.Button,{onClick:()=>E(!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,t.jsx)(v.List,{className:"h-5 w-5"})})]})]})}e.s(["SpecsNavSidebar",()=>q],3622)},56654,e=>{"use strict";var t=e.i(90022),r=e.i(3622),n=e.i(65458);function s({className:e,...r}){return(0,t.jsx)("div",{className:(0,n.cn)("animate-pulse rounded-md bg-muted",e),...r})}var i=e.i(12542);function a(){let e=(0,i.useSpecsSidebarState)(),n=e.specs,a=e.activeSpecId||"";return(0,t.jsxs)("div",{className:"flex min-h-[calc(100vh-3.5rem)] w-full min-w-0",children:[(0,t.jsx)(r.SpecsNavSidebar,{initialSpecs:n,currentSpecId:a}),(0,t.jsx)("div",{className:"flex-1 min-w-0 px-4 py-6 sm:px-8 sm:py-10",children:(0,t.jsxs)("div",{className:"space-y-6",children:[(0,t.jsxs)("div",{className:"space-y-3",children:[(0,t.jsx)(s,{className:"h-7 w-56"}),(0,t.jsxs)("div",{className:"flex flex-wrap gap-3",children:[(0,t.jsx)(s,{className:"h-6 w-24"}),(0,t.jsx)(s,{className:"h-6 w-24"}),(0,t.jsx)(s,{className:"h-6 w-20"})]}),(0,t.jsx)(s,{className:"h-4 w-64"})]}),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsx)(s,{className:"h-5 w-40"}),(0,t.jsx)(s,{className:"h-32 w-full"})]}),(0,t.jsx)("div",{className:"space-y-4",children:[...Array(6)].map((e,r)=>(0,t.jsx)(s,{className:"h-4 w-full"},r))})]})})]})}e.s(["SpecDetailLoadingShell",()=>a],56654)}]);
@@ -0,0 +1,20 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema.json",
3
+ "style": "new-york",
4
+ "rsc": true,
5
+ "tsx": true,
6
+ "tailwind": {
7
+ "config": "tailwind.config.ts",
8
+ "css": "src/app/globals.css",
9
+ "baseColor": "slate",
10
+ "cssVariables": true,
11
+ "prefix": ""
12
+ },
13
+ "aliases": {
14
+ "components": "@/components",
15
+ "utils": "@/lib/utils",
16
+ "ui": "@/components/ui",
17
+ "lib": "@/lib",
18
+ "hooks": "@/hooks"
19
+ }
20
+ }
@@ -0,0 +1,59 @@
1
+ CREATE TABLE `projects` (
2
+ `id` text PRIMARY KEY NOT NULL,
3
+ `github_owner` text NOT NULL,
4
+ `github_repo` text NOT NULL,
5
+ `display_name` text,
6
+ `description` text,
7
+ `homepage_url` text,
8
+ `stars` integer DEFAULT 0,
9
+ `is_public` integer DEFAULT true,
10
+ `is_featured` integer DEFAULT false,
11
+ `last_synced_at` integer,
12
+ `created_at` integer NOT NULL,
13
+ `updated_at` integer NOT NULL
14
+ );
15
+ --> statement-breakpoint
16
+ CREATE TABLE `spec_relationships` (
17
+ `id` text PRIMARY KEY NOT NULL,
18
+ `spec_id` text NOT NULL,
19
+ `related_spec_id` text NOT NULL,
20
+ `relationship_type` text NOT NULL,
21
+ `created_at` integer NOT NULL,
22
+ FOREIGN KEY (`spec_id`) REFERENCES `specs`(`id`) ON UPDATE no action ON DELETE cascade,
23
+ FOREIGN KEY (`related_spec_id`) REFERENCES `specs`(`id`) ON UPDATE no action ON DELETE cascade
24
+ );
25
+ --> statement-breakpoint
26
+ CREATE TABLE `specs` (
27
+ `id` text PRIMARY KEY NOT NULL,
28
+ `project_id` text NOT NULL,
29
+ `spec_number` integer,
30
+ `spec_name` text NOT NULL,
31
+ `title` text,
32
+ `status` text,
33
+ `priority` text,
34
+ `tags` text,
35
+ `assignee` text,
36
+ `content_md` text NOT NULL,
37
+ `content_html` text,
38
+ `created_at` integer,
39
+ `updated_at` integer,
40
+ `completed_at` integer,
41
+ `file_path` text NOT NULL,
42
+ `github_url` text,
43
+ `synced_at` integer NOT NULL,
44
+ FOREIGN KEY (`project_id`) REFERENCES `projects`(`id`) ON UPDATE no action ON DELETE cascade
45
+ );
46
+ --> statement-breakpoint
47
+ CREATE TABLE `sync_logs` (
48
+ `id` text PRIMARY KEY NOT NULL,
49
+ `project_id` text NOT NULL,
50
+ `status` text NOT NULL,
51
+ `specs_added` integer DEFAULT 0,
52
+ `specs_updated` integer DEFAULT 0,
53
+ `specs_deleted` integer DEFAULT 0,
54
+ `error_message` text,
55
+ `started_at` integer NOT NULL,
56
+ `completed_at` integer,
57
+ `duration_ms` integer,
58
+ FOREIGN KEY (`project_id`) REFERENCES `projects`(`id`) ON UPDATE no action ON DELETE cascade
59
+ );
@@ -0,0 +1 @@
1
+ CREATE UNIQUE INDEX `unique_spec_number` ON `specs` (`project_id`,`spec_number`);