construct-hub 0.1.182 → 0.1.186

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. package/.jsii +2 -2
  2. package/lib/backend/orchestration/index.js +26 -3
  3. package/lib/backend/transliterator/transliterator.bundle/index.js +2 -2
  4. package/lib/construct-hub.js +1 -1
  5. package/lib/package-sources/code-artifact.js +1 -1
  6. package/lib/package-sources/npmjs.js +1 -1
  7. package/lib/spdx-license.js +1 -1
  8. package/package.json +6 -6
  9. package/website/asset-manifest.json +34 -15
  10. package/website/index.html +1 -1
  11. package/website/service-worker.js +1 -1
  12. package/website/service-worker.js.map +1 -1
  13. package/website/static/js/0.ff9d42f8.chunk.js +2 -0
  14. package/website/static/js/0.ff9d42f8.chunk.js.map +1 -0
  15. package/website/static/js/1.a7f029fd.chunk.js +2 -0
  16. package/website/static/js/1.a7f029fd.chunk.js.map +1 -0
  17. package/website/static/js/10.32615aa0.chunk.js +2 -0
  18. package/website/static/js/10.32615aa0.chunk.js.map +1 -0
  19. package/website/static/js/11.051d89fc.chunk.js +2 -0
  20. package/website/static/js/11.051d89fc.chunk.js.map +1 -0
  21. package/website/static/js/12.e96b82dd.chunk.js +3 -0
  22. package/website/static/js/{3.fcccb6af.chunk.js.LICENSE.txt → 12.e96b82dd.chunk.js.LICENSE.txt} +0 -0
  23. package/website/static/js/12.e96b82dd.chunk.js.map +1 -0
  24. package/website/static/js/13.fb054c47.chunk.js +2 -0
  25. package/website/static/js/{4.920a8651.chunk.js.map → 13.fb054c47.chunk.js.map} +1 -1
  26. package/website/static/js/4.7cd92fab.chunk.js +3 -0
  27. package/website/static/js/4.7cd92fab.chunk.js.LICENSE.txt +40 -0
  28. package/website/static/js/4.7cd92fab.chunk.js.map +1 -0
  29. package/website/static/js/5.0da0a8ef.chunk.js +3 -0
  30. package/website/static/js/{2.200df80d.chunk.js.LICENSE.txt → 5.0da0a8ef.chunk.js.LICENSE.txt} +0 -41
  31. package/website/static/js/5.0da0a8ef.chunk.js.map +1 -0
  32. package/website/static/js/6.c0e3f99c.chunk.js +2 -0
  33. package/website/static/js/6.c0e3f99c.chunk.js.map +1 -0
  34. package/website/static/js/7.11632168.chunk.js +2 -0
  35. package/website/static/js/7.11632168.chunk.js.map +1 -0
  36. package/website/static/js/8.8af79a83.chunk.js +2 -0
  37. package/website/static/js/8.8af79a83.chunk.js.map +1 -0
  38. package/website/static/js/9.2b21526e.chunk.js +2 -0
  39. package/website/static/js/9.2b21526e.chunk.js.map +1 -0
  40. package/website/static/js/main.f1390607.chunk.js +2 -0
  41. package/website/static/js/main.f1390607.chunk.js.map +1 -0
  42. package/website/static/js/runtime-main.82c3976d.js +2 -0
  43. package/website/static/js/runtime-main.82c3976d.js.map +1 -0
  44. package/website/static/js/2.200df80d.chunk.js +0 -3
  45. package/website/static/js/2.200df80d.chunk.js.map +0 -1
  46. package/website/static/js/3.fcccb6af.chunk.js +0 -3
  47. package/website/static/js/3.fcccb6af.chunk.js.map +0 -1
  48. package/website/static/js/4.920a8651.chunk.js +0 -2
  49. package/website/static/js/main.e4cce0ad.chunk.js +0 -2
  50. package/website/static/js/main.e4cce0ad.chunk.js.map +0 -1
  51. package/website/static/js/runtime-main.a7d2400e.js +0 -2
  52. package/website/static/js/runtime-main.a7d2400e.js.map +0 -1
@@ -0,0 +1,2 @@
1
+ (this["webpackJsonpconstruct-hub-webapp"]=this["webpackJsonpconstruct-hub-webapp"]||[]).push([[8],{228:function(e,t,a){"use strict";a.d(t,"a",(function(){return o}));var n=a(0),c=a(239),r={home:{event:{name:"Home Load"}},faq:{event:{name:"Frequently Asked Questions Load"}},packageProfile:{event:{name:"Package Profile Load"}},search:{event:{name:"Search Load"}},siteTerms:{event:{name:"Site Terms Load"}},notFound:{page:{pageType:"errorPage"},event:{name:"404 Page Load"}}},i=a(109),s=a(1),o=function(e){var t=e.children,a=e.meta,o=e.pageName,l=Object(i.b)(r[o]);Object(n.useEffect)((function(){l()}),[l]);var j=a.suffix,u=void 0===j||j,d=a.title,b=a.description,f=u?"".concat(d," - Construct Hub"):d;return Object(s.jsxs)(s.Fragment,{children:[Object(s.jsxs)(c.a,{children:[!1,Object(s.jsx)("meta",{content:"width=device-width, initial-scale=1",name:"viewport"}),Object(s.jsx)("meta",{charSet:"utf-8"}),Object(s.jsx)("title",{children:f}),Object(s.jsx)("meta",{content:f,property:"og:title"}),Object(s.jsx)("meta",{content:f,name:"twitter:title"}),Object(s.jsx)("meta",{content:"summary",name:"twitter:card"}),Object(s.jsx)("meta",{content:b,name:"description"}),Object(s.jsx)("meta",{content:b,property:"og:description"}),Object(s.jsx)("meta",{content:b,name:"twitter:description"})]}),t]})}},252:function(e,t,a){"use strict";a.d(t,"a",(function(){return i}));var n=a(215),c=a(54),r=a(1),i=function(e){var t=e.children,a=e.language;return c.e.has(a)?Object(r.jsx)(r.Fragment,{children:t}):Object(r.jsx)(n.a,{hasArrow:!0,label:"Documentation support for ".concat(c.b[a]," is coming soon!"),placement:"top-start",children:Object(r.jsx)("span",{children:t})})}},253:function(e,t,a){"use strict";a.d(t,"a",(function(){return j}));var n=a(6),c=a(22),r=a(568),i=a(108),s=a(80),o=a(1),l=["children","language","value","label","zIndex"],j=function(e){var t=e.children,a=e.language,j=e.value,u=e.label,d=void 0===u?j:u,b=e.zIndex,f=Object(c.a)(e,l);return Object(o.jsx)(s.a,{"aria-label":"Tag: ".concat(d),to:Object(i.c)({query:"".concat(j),language:a}),zIndex:b,children:Object(o.jsx)(r.a,Object(n.a)(Object(n.a)({_hover:{textDecoration:"underline"}},f),{},{children:Object(o.jsx)(r.b,{children:t})}))})}},254:function(e,t,a){"use strict";a.d(t,"a",(function(){return j}));var n=a(6),c=a(22),r=a(21),i=a(184),s=a(582),o=a(1),l=["date","format"],j=Object(r.a)((function(e,t){var a=e.date,r=e.format,j=Object(c.a)(e,l);return Object(o.jsx)(i.a,Object(n.a)(Object(n.a)({as:"time",dateTime:a.toISOString(),ref:t},j),{},{children:Object(s.a)(a,r)}))}));j.displayName="Time"},285:function(e,t,a){"use strict";a.d(t,"a",(function(){return H}));var n=a(0),c=a(4),r=a(17),i=a(6),s=a(221),o=a(21),l=a(25),j=a(20);function u(){return u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},u.apply(this,arguments)}function d(e,t){if(null==e)return{};var a,n,c={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(c[a]=e[a]);return c}var b=Object(o.a)((function(e,t){var a=e.isExternal,c=e.target,r=e.rel,i=e.className,s=d(e,["isExternal","target","rel","className"]);return n.createElement(l.a.a,u({},s,{ref:t,className:Object(j.d)("chakra-linkbox__overlay",i),rel:a?"noopener noreferrer":r,target:a?"_blank":c,__css:{position:"static","&::before":{content:"''",cursor:"inherit",display:"block",position:"absolute",top:0,left:0,zIndex:0,width:"100%",height:"100%"}}}))})),f=Object(o.a)((function(e,t){var a=e.className,c=d(e,["className"]);return n.createElement(l.a.div,u({ref:t,position:"relative"},c,{className:Object(j.d)("chakra-linkbox",a),__css:{"a[href]:not(.chakra-linkbox__overlay), abbr[title]":{position:"relative",zIndex:1}}}))})),O=a(189),h=a(199),x=a(184),m=a(201),g=a(194),p=a(29),v=a(54),y=a(108),w=a(252),S=a(253),k=a(254),L=a(141),N=a(112),P=a(57),I=Object(P.a)("catalogCard",["container","name","version","tags","description","date","author","languages"]),E=a(1),_=function(e){var t=e.children;return Object(E.jsx)(N.a,{h:64,p:0,w:"100%",children:Object(E.jsx)(L.a,{as:"article",h:"100%",overflow:"hidden",templateColumns:"1fr",templateRows:"2fr 1fr",children:t})})},z=function(e){var t=e.children;return e.isLink?Object(E.jsx)(f,{_hover:{"> :first-child":{bg:"gray.50"}},"data-testid":I.container,children:Object(E.jsx)(_,{children:t})}):Object(E.jsx)(_,{children:t})},C=a(564),U=function(){return Object(E.jsxs)(E.Fragment,{children:[Object(E.jsxs)(s.a,{p:4,spacing:4,children:[Object(E.jsx)(C.a,{h:5,w:"50%"}),Object(E.jsxs)(s.a,{align:"center",direction:"row",spacing:2,children:[Object(E.jsx)(C.a,{h:5,w:10}),Object(E.jsx)(C.a,{h:5,w:10}),Object(E.jsx)(C.a,{h:5,w:10})]}),Object(E.jsx)(C.a,{h:3,w:"75%"}),Object(E.jsx)(C.a,{h:3,w:"50%"})]}),Object(E.jsxs)(x.a,{children:[Object(E.jsx)(m.a,{}),Object(E.jsxs)(s.a,{px:4,py:2,spacing:2,children:[Object(E.jsx)(C.a,{h:5,w:"25%"}),Object(E.jsxs)(s.a,{align:"center",direction:"row",spacing:2,children:[Object(E.jsx)(C.a,{h:5,w:10}),Object(E.jsx)(C.a,{h:5,w:10}),Object(E.jsx)(C.a,{h:5,w:10}),Object(E.jsx)(C.a,{h:5,w:10})]})]})]})]})},T=function(e){var t,a,n,o=e.language,l=e.pkg;if(!l)return Object(E.jsx)(z,{children:Object(E.jsx)(U,{})});var j=(null===(t=l.metadata)||void 0===t?void 0:t.date)?Object(E.jsx)(k.a,{date:new Date(l.metadata.date),fontSize:"sm",format:"MMMM dd, yyyy"}):null,u=null!==(a=l.author)&&void 0!==a?a:{},d=null!==(n=l.languages)&&void 0!==n?n:{},L=Object.keys(d),N=function(e){return Object(y.a)(Object(i.a)({name:l.name,version:l.version,language:o},e))},P="string"===typeof u?u:u.name;return Object(E.jsxs)(z,{isLink:!0,children:[Object(E.jsxs)(s.a,{maxH:"100%",maxW:"100%",overflow:"hidden",p:4,spacing:0,children:[Object(E.jsx)(b,{as:p.b,to:N(),children:Object(E.jsxs)(O.a,{color:"blue.800","data-testid":I.name,fontWeight:"semibold",isTruncated:!0,children:[l.name,Object(E.jsx)(O.a,{as:"span",color:"blue.500","data-testid":I.version,fontSize:"xs",ml:2,children:l.version})]})}),Object(E.jsx)(f,{as:h.a,"data-testid":I.tags,flexWrap:"wrap",maxH:6,overflow:"hidden",children:[l.name.startsWith("@aws-cdk/")?Object(E.jsx)(S.a,{label:"official",language:o,mr:1,value:"@aws-cdk",variant:"official",children:"Official"},"official"):null].concat(Object(r.a)(l.keywords.filter(Boolean).slice(0,3).map((function(e){return Object(E.jsx)(S.a,{language:o,mr:1,value:'"'.concat(e,'"'),zIndex:"0 !important",children:e},e)}))))}),Object(E.jsx)(O.a,{"data-testid":I.description,fontSize:"sm",noOfLines:2,children:l.description})]}),Object(E.jsxs)(x.a,{children:[Object(E.jsx)(m.a,{}),Object(E.jsxs)(s.a,{maxW:"100%",overflow:"hidden",px:4,py:2,spacing:2,children:[Object(E.jsx)(O.a,{"data-testid":I.date,fontSize:"sm",isTruncated:!0,children:j}),Object(E.jsx)(g.a,{as:p.b,color:"blue.500","data-testid":I.author,fontSize:"sm",to:Object(y.c)({query:P}),children:P}),Object(E.jsx)(f,{align:"center",as:s.a,"data-testid":I.languages,direction:"row",children:Object.entries(v.c).sort((function(e,t){var a=Object(c.a)(e,1)[0],n=Object(c.a)(t,1)[0];return v.a.indexOf(a)-v.a.indexOf(n)})).map((function(e){var t=Object(c.a)(e,2),a=t[0],n=t[1],r=a,i=r===v.d.TypeScript||L.includes(r),s=r===v.d.TypeScript||v.e.has(r);if(!i)return null;var o=n.name,l=n.icon,j=Object(E.jsx)(l,{"aria-label":"Supports ".concat(o),h:6,opacity:s?1:.2,w:6});return Object(E.jsx)(w.a,{language:r,children:s?Object(E.jsx)(p.b,{"aria-label":"View package docs for ".concat(r),to:N({language:r}),children:j}):j},r)}))})]})]})]})},D=a(200),R=function(e){var t=e.children;return Object(E.jsx)(D.a,{columns:{base:1,sm:2,md:3,lg:4,xl:5,"2xl":6},spacing:6,children:t})},q=function(e){for(var t=e.noOfItems,a=[],n=0;n<t;n+=1)a.push(Object(E.jsx)(T,{},n));return Object(E.jsx)(R,{children:a})},F=Object(n.memo)(q),A=function(e){var t=e.language,a=e.results,n=e.skeleton;return(null===n||void 0===n?void 0:n.loading)?Object(E.jsx)(F,{noOfItems:n.noOfItems}):Object(E.jsx)(R,{children:a.map((function(e,a){return Object(E.jsx)(T,{language:t,pkg:e},"".concat(e.name,"-").concat(a))}))})},H=Object(n.memo)(A)},340:function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var n=a(73),c=Object(n.a)({d:"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z",displayName:"ArrowForwardIcon"})},341:function(e,t,a){"use strict";a.d(t,"a",(function(){return c}));var n=a(73),c=Object(n.a)({d:"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z",displayName:"ChevronLeftIcon"})},564:function(e,t,a){"use strict";a.d(t,"a",(function(){return O}));a(4),a(72);var n=a(8);a(27),a(107);a(218);var c=a(0);var r=a(25),i=a(59),s=a(21),o=a(66),l=a(43);var j=a(20);function u(){return u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},u.apply(this,arguments)}function d(e,t){if(null==e)return{};var a,n,c={},r=Object.keys(e);for(n=0;n<r.length;n++)a=r[n],t.indexOf(a)>=0||(c[a]=e[a]);return c}var b=Object(r.a)("div",{baseStyle:{boxShadow:"none",backgroundClip:"padding-box",cursor:"default",color:"transparent",pointerEvents:"none",userSelect:"none","&::before, &::after, *":{visibility:"hidden"}}}),f=Object(i.b)({from:{opacity:0},to:{opacity:1}}),O=Object(s.a)((function(e,t){var a=Object(o.b)("Skeleton",e),n=function(){var e=c.useRef(!0);return c.useEffect((function(){e.current=!1}),[]),e.current}(),i=Object(l.b)(e),s=i.isLoaded,O=i.fadeDuration,h=i.className,x=d(i,["startColor","endColor","isLoaded","fadeDuration","speed","className"]),m=function(e){var t=Object(c.useRef)();return Object(c.useEffect)((function(){t.current=e}),[e]),t.current}(s),g=Object(j.d)("chakra-skeleton",h);if(s){var p=n||m?"none":f+" "+O+"s";return c.createElement(r.a.div,u({ref:t,className:g,__css:{animation:p}},x))}return c.createElement(b,u({ref:t,className:g},x,{__css:a}))}));O.defaultProps={fadeDuration:.4,speed:.8},n.a&&(O.displayName="Skeleton");n.a;n.a},584:function(e,t,a){"use strict";a.r(t),a.d(t,"SearchResults",(function(){return T})),a.d(t,"default",(function(){return T}));var n=a(6),c=a(199),r=a(184),i=a(201),s=a(0),o=a(18),l=a(116),j=a(228),u=a(285),d=a(13),b=a(117),f=a(118),O=a(113),h=a(108),x=a(341),m=a(569),g=a(141),p=a(197),v=a(29),y=a(1),w=function(e){var t=e.icon,a=e.offset,c=e.getPageUrl,r={"aria-label":"Page ".concat(a," link"),borderRadius:"md",borderColor:"blue.500",colorScheme:"blue",icon:Object(y.jsx)(t,{color:"blue.500",h:5,w:5}),mx:2,h:10,w:10,variant:"outline"};return void 0!==a?Object(y.jsx)(p.a,Object(n.a)(Object(n.a)({},r),{},{as:v.b,to:c({offset:a})})):Object(y.jsx)(p.a,Object(n.a)(Object(n.a)({},r),{},{disabled:!0}))},S=a(4),k=a(216),L=a(189),N=function(e){var t=e.pageLimit,a=e.offset,n=e.getPageUrl,r=Object(s.useState)((a+1).toString()),i=Object(S.a)(r,2),l=i[0],j=i[1],u=Object(o.g)().push;Object(s.useEffect)((function(){j((a+1).toString())}),[a]);return Object(y.jsxs)(c.a,{align:"center",as:"form",mx:2,onSubmit:function(e){e.preventDefault(),u(n({offset:parseInt(l)-1}))},children:[Object(y.jsx)(k.a,{colorScheme:"blue",h:10,max:t+1,min:1,name:"page",onChange:function(e){e.preventDefault(),j(e.target.value)},p:0,textAlign:"center",type:"number",value:l,w:10}),Object(y.jsxs)(L.a,{ml:2,w:"max-content",children:["of ",t+1]})]})},P=a(340),I=a(145),E={children:"Next Page",colorScheme:"blue",rightIcon:Object(y.jsx)(P.a,{color:"white"})},_=function(e){var t=e.nextPageUrl;return t?Object(y.jsx)(I.a,Object(n.a)(Object(n.a)({},E),{},{as:v.b,to:t})):Object(y.jsx)(I.a,Object(n.a)(Object(n.a)({},E),{},{disabled:!0}))},z=function(e){var t=e.offset,a=e.pageLimit,n=e.getPageUrl,r=t<a?t+1:void 0,i=t>0?t-1:void 0;return Object(y.jsxs)(g.a,{alignItems:"center",pt:4,templateColumns:"repeat(3, 1fr)",templateRows:"1fr",children:[Object(y.jsx)(g.b,{colStart:2,justifySelf:"center",children:Object(y.jsx)(_,{nextPageUrl:r?n({offset:r}):void 0})}),Object(y.jsx)(g.b,{colStart:3,justifySelf:"end",children:Object(y.jsxs)(c.a,{align:"center",justify:"center",py:4,children:[Object(y.jsx)(N,{getPageUrl:n,offset:t,pageLimit:a}),Object(y.jsx)(w,{getPageUrl:n,icon:x.a,offset:i}),Object(y.jsx)(w,{getPageUrl:n,icon:m.a,offset:r})]})})]})},C=function(e){var t=e.children;return Object(y.jsx)(L.a,{as:"em",color:"blue.500",fontWeight:"bold",children:t})},U=function(e){var t=e.limit,a=e.offset,n=e.count,c=e.filtered,r=t*a,i=r+t;return Object(y.jsxs)(L.a,{children:["Displaying"," ",Object(y.jsxs)(C,{children:[n?r+1:n," - ",i>n?n:i]})," ","of ",Object(y.jsx)(C,{children:n})," ",c?"search results":"constructs","."]})},T=function(){var e,t,a=Object(O.a)(),x=decodeURIComponent(null!==(e=a.get(d.b.SEARCH_QUERY))&&void 0!==e?e:""),m=a.get(d.b.LANGUAGE),g=Object(f.a)({defaultQuery:x,defaultLanguage:m}),p=function(e){var t=parseInt(e);return"NaN"==="".concat(t)?0:t}(null!==(t=a.get(d.b.OFFSET))&&void 0!==t?t:"0"),v=Object(o.g)().push,w=Object(b.a)({query:x,offset:p,limit:25,language:m}),S=w.results,k=w.displayable,L=w.loading,N=w.pageLimit,P=function(e){var t,a;return Object(h.c)({query:null!==(t=e.q)&&void 0!==t?t:x,language:m,offset:null!==(a=e.offset)&&void 0!==a?a:p})};return Object(s.useEffect)((function(){!L&&S.length&&(p<0||p>N)&&v(P(p<0?{offset:0}:{offset:N}))}),[L,S,N,p]),Object(s.useEffect)((function(){x!==g.query&&g.setQuery(x)}),[x]),Object(y.jsx)(j.a,{meta:{title:x||"Search",description:x?"".concat(S.length," results for ").concat(x," at Construct Hub"):"Search reusable components for your cloud application"},pageName:"search",children:Object(y.jsxs)(c.a,{direction:"column",maxW:"100vw",children:[Object(y.jsx)(r.a,{p:4,children:Object(y.jsx)(l.a,Object(n.a)({},g))}),Object(y.jsx)(i.a,{}),Object(y.jsxs)(r.a,{p:4,children:[Object(y.jsx)(r.a,{pb:4,children:Object(y.jsx)(U,{count:S.length,filtered:!!x,limit:25,offset:p})}),Object(y.jsx)(u.a,{language:null!==m&&void 0!==m?m:void 0,results:k,skeleton:{loading:L,noOfItems:25}}),Object(y.jsx)(z,{getPageUrl:P,limit:25,offset:p,pageLimit:N})]})]})})}}}]);
2
+ //# sourceMappingURL=8.8af79a83.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["constants/pageInfo.ts","components/Page/Page.tsx","components/LanguageSupportTooltip/LanguageSupportTooltip.tsx","components/PackageTag/PackageTag.tsx","components/Time/Time.tsx","../../../src/link-box.tsx","components/CatalogCard/testIds.ts","components/CatalogCard/CatalogCardContainer.tsx","components/CatalogCard/CatalogCardSkeleton.tsx","components/CatalogCard/CatalogCard.tsx","components/Results/ResultsGrid.tsx","components/Results/ResultsSkeleton.tsx","components/Results/Results.tsx","../../../src/ArrowForward.tsx","../../../src/ChevronLeft.tsx","../../../src/skeleton.tsx","../../../src/use-previous.ts","views/SearchResults/components/ArrowButton.tsx","views/SearchResults/components/GoToPage.tsx","views/SearchResults/components/NextPage.tsx","views/SearchResults/components/PageControls.tsx","views/SearchResults/components/ShowingDetails.tsx","views/SearchResults/SearchResults.tsx","views/SearchResults/constants.ts"],"names":["pageInfo","home","event","name","faq","packageProfile","search","siteTerms","notFound","page","pageType","Page","children","meta","pageName","trackPageView","usePageView","useEffect","suffix","title","description","formattedTitle","Helmet","process","content","charSet","property","LanguageSupportTooltip","language","TEMP_SUPPORTED_LANGUAGES","has","hasArrow","label","LANGUAGE_NAME_MAP","placement","PackageTag","value","zIndex","tagProps","NavLink","to","getSearchPath","query","_hover","textDecoration","Time","forwardRef","ref","date","formatString","format","boxProps","as","dateTime","toISOString","displayName","LinkOverlay","className","cx","rel","isExternal","target","__css","position","cursor","display","top","left","width","height","LinkBox","testIds","createTestIds","CardContainer","Card","h","p","w","overflow","templateColumns","templateRows","CatalogCardContainer","isLink","bg","container","CatalogCardSkeleton","spacing","align","direction","px","py","CatalogCard","currentLanguage","pkg","publishDate","metadata","Date","fontSize","author","languages","targets","Object","keys","getUrl","params","getPackagePath","version","authorName","maxH","maxW","Link","color","fontWeight","isTruncated","ml","Flex","tags","flexWrap","startsWith","mr","variant","keywords","filter","Boolean","slice","map","tag","noOfLines","Stack","entries","LANGUAGE_RENDER_MAP","sort","right","LANGUAGES","indexOf","lang","info","isSupportedByLibrary","Language","TypeScript","includes","isSupportedByConstructHub","Icon","icon","opacity","ResultsGrid","columns","base","sm","md","lg","xl","ResultsSkeletonComponent","noOfItems","skeletons","i","push","ResultsSkeleton","memo","ResultsComponent","results","skeleton","loading","idx","Results","ArrowForwardIcon","createIcon","d","ChevronLeftIcon","StyledSkeleton","chakra","baseStyle","boxShadow","backgroundClip","pointerEvents","userSelect","visibility","fade","keyframes","from","Skeleton","styles","useStyleConfig","isFirstRender","React","useIsFirstRender","omitThemingProps","wasPreviouslyLoaded","useRef","usePrevious","_className","animation","fadeDuration","speed","ArrowButton","offset","getPageUrl","props","borderRadius","borderColor","colorScheme","mx","undefined","disabled","GoToPage","pageLimit","useState","toString","inputValue","setInputValue","useHistory","onSubmit","e","preventDefault","parseInt","max","min","onChange","textAlign","type","btnProps","rightIcon","ArrowForward","NextPage","nextPageUrl","PageControls","nextOffset","prevOffset","alignItems","pt","colStart","justifySelf","justify","ChevronRightIcon","Em","ShowingDetails","limit","count","filtered","first","last","SearchResults","queryParams","useQueryParams","searchQuery","decodeURIComponent","get","QUERY_PARAMS","SEARCH_QUERY","languageQuery","LANGUAGE","searchAPI","useCatalogSearch","defaultQuery","defaultLanguage","val","result","toNum","OFFSET","useCatalogResults","displayable","q","length","setQuery","CatalogSearch","pb"],"mappings":"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","file":"static/js/8.8af79a83.chunk.js","sourcesContent":["export const pageInfo = {\n home: {\n event: {\n name: \"Home Load\",\n },\n },\n faq: {\n event: {\n name: \"Frequently Asked Questions Load\",\n },\n },\n packageProfile: {\n event: {\n name: \"Package Profile Load\",\n },\n },\n search: {\n event: {\n name: \"Search Load\",\n },\n },\n siteTerms: {\n event: {\n name: \"Site Terms Load\",\n },\n },\n notFound: {\n page: {\n pageType: \"errorPage\",\n },\n event: {\n name: \"404 Page Load\",\n },\n },\n} as const;\n","import { FunctionComponent, useEffect } from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport { pageInfo } from \"../../constants/pageInfo\";\nimport { usePageView } from \"../../contexts/Analytics\";\n\nexport interface PageProps {\n pageName: keyof typeof pageInfo;\n meta: {\n suffix?: boolean;\n title: string;\n description: string;\n };\n}\n\nexport const Page: FunctionComponent<PageProps> = ({\n children,\n meta,\n pageName,\n}) => {\n const trackPageView = usePageView(pageInfo[pageName]);\n\n useEffect(() => {\n trackPageView();\n }, [trackPageView]);\n\n const { suffix = true, title, description } = meta;\n const formattedTitle = suffix ? `${title} - Construct Hub` : title;\n\n return (\n <>\n <Helmet>\n {process.env.NODE_ENV === \"development\" && (\n <meta\n content=\"default-src 'self' 'unsafe-inline' https://*.awsstatic.com https://amazonwebservices.d2.sc.omtrdc.net; connect-src 'self' https://*.shortbread.aws.dev ws://localhost:3000 https://*.awsstatic.com https://amazonwebservices.d2.sc.omtrdc.net; frame-src 'none'; img-src 'self' https://* http://*.omtrdc.net; object-src 'none'; style-src 'self' 'unsafe-inline';\"\n httpEquiv=\"Content-Security-Policy\"\n />\n )}\n\n <meta content=\"width=device-width, initial-scale=1\" name=\"viewport\" />\n <meta charSet=\"utf-8\" />\n\n <title>{formattedTitle}</title>\n <meta content={formattedTitle} property=\"og:title\" />\n <meta content={formattedTitle} name=\"twitter:title\" />\n <meta content=\"summary\" name=\"twitter:card\" />\n\n <meta content={description} name=\"description\" />\n <meta content={description} property=\"og:description\" />\n <meta content={description} name=\"twitter:description\" />\n </Helmet>\n {children}\n </>\n );\n};\n","import { Tooltip } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport {\n Language,\n LANGUAGE_NAME_MAP,\n TEMP_SUPPORTED_LANGUAGES,\n} from \"../../constants/languages\";\n\nexport interface LanguageSupportTooltipProps {\n language: Language;\n}\n\nexport const LanguageSupportTooltip: FunctionComponent<LanguageSupportTooltipProps> =\n ({ children, language }) => {\n const isSupported = TEMP_SUPPORTED_LANGUAGES.has(language);\n\n if (isSupported) {\n return <>{children}</>;\n }\n\n return (\n <Tooltip\n hasArrow\n label={`Documentation support for ${LANGUAGE_NAME_MAP[language]} is coming soon!`}\n placement=\"top-start\"\n >\n <span>{children}</span>\n </Tooltip>\n );\n };\n","import { Tag, TagLabel, TagProps } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { Language } from \"../../constants/languages\";\nimport { getSearchPath } from \"../../util/url\";\nimport { NavLink } from \"../NavLink\";\n\nexport interface PackageTagProps extends TagProps {\n language?: Language;\n value: string;\n label?: string;\n zIndex?: string | number;\n}\n\nexport const PackageTag: FunctionComponent<PackageTagProps> = ({\n children,\n language,\n value,\n label = value,\n zIndex,\n ...tagProps\n}) => {\n return (\n <NavLink\n aria-label={`Tag: ${label}`}\n to={getSearchPath({ query: `${value}`, language })}\n zIndex={zIndex}\n >\n <Tag\n _hover={{\n textDecoration: \"underline\",\n }}\n {...tagProps}\n >\n <TagLabel>{children}</TagLabel>\n </Tag>\n </NavLink>\n );\n};\n","import { Box, BoxProps, forwardRef } from \"@chakra-ui/react\";\nimport { format } from \"date-fns\";\n\nexport interface TimeOptions {\n date: Date;\n format: string;\n}\n\nexport interface TimeProps extends BoxProps, TimeOptions {}\n\nexport const Time = forwardRef<TimeProps, \"time\">(\n ({ date, format: formatString, ...boxProps }, ref) => {\n return (\n <Box as=\"time\" dateTime={date.toISOString()} ref={ref} {...boxProps}>\n {format(date, formatString)}\n </Box>\n );\n }\n);\n\nTime.displayName = \"Time\";\n","import { chakra, forwardRef, HTMLChakraProps } from \"@chakra-ui/system\"\nimport { cx } from \"@chakra-ui/utils\"\nimport * as React from \"react\"\n\nexport interface LinkOverlayProps extends HTMLChakraProps<\"a\"> {\n /**\n * If `true`, the link will open in new tab\n */\n isExternal?: boolean\n}\n\nexport const LinkOverlay = forwardRef<LinkOverlayProps, \"a\">((props, ref) => {\n const { isExternal, target, rel, className, ...rest } = props\n return (\n <chakra.a\n {...rest}\n ref={ref}\n className={cx(\"chakra-linkbox__overlay\", className)}\n rel={isExternal ? \"noopener noreferrer\" : rel}\n target={isExternal ? \"_blank\" : target}\n __css={{\n position: \"static\",\n \"&::before\": {\n content: \"''\",\n cursor: \"inherit\",\n display: \"block\",\n position: \"absolute\",\n top: 0,\n left: 0,\n zIndex: 0,\n width: \"100%\",\n height: \"100%\",\n },\n }}\n />\n )\n})\n\nexport interface LinkBoxProps extends HTMLChakraProps<\"div\"> {}\n\n/**\n * `LinkBox` is used to wrap content areas within a link while ensuring semantic html\n *\n * @see Docs https://chakra-ui.com/docs/navigation/link-overlay\n * @see Resources https://www.sarasoueidan.com/blog/nested-links\n */\nexport const LinkBox = forwardRef<LinkBoxProps, \"div\">((props, ref) => {\n const { className, ...rest } = props\n\n return (\n <chakra.div\n ref={ref}\n position=\"relative\"\n {...rest}\n className={cx(\"chakra-linkbox\", className)}\n __css={{\n /* Elevate the links and abbreviations up */\n \"a[href]:not(.chakra-linkbox__overlay), abbr[title]\": {\n position: \"relative\",\n zIndex: 1,\n },\n }}\n />\n )\n})\n","import { createTestIds } from \"../../util/createTestIds\";\n\nconst testIds = createTestIds(\"catalogCard\", [\n \"container\",\n \"name\",\n \"version\",\n \"tags\",\n \"description\",\n \"date\",\n \"author\",\n \"languages\",\n] as const);\n\nexport default testIds;\n","import { Grid, LinkBox } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { Card } from \"../Card\";\nimport testIds from \"./testIds\";\n\nconst CardContainer: FunctionComponent = ({ children }) => (\n <Card h={64} p={0} w=\"100%\">\n <Grid\n as=\"article\"\n h=\"100%\"\n overflow=\"hidden\"\n templateColumns=\"1fr\"\n templateRows=\"2fr 1fr\"\n >\n {children}\n </Grid>\n </Card>\n);\n\nexport const CatalogCardContainer: FunctionComponent<{ isLink?: boolean }> = ({\n children,\n isLink,\n}) => {\n return isLink ? (\n <LinkBox\n _hover={{\n \"> :first-child\": {\n bg: \"gray.50\",\n },\n }}\n data-testid={testIds.container}\n >\n <CardContainer>{children}</CardContainer>\n </LinkBox>\n ) : (\n <CardContainer>{children}</CardContainer>\n );\n};\n","import { Box, Divider, Skeleton, Stack } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\n\nexport const CatalogCardSkeleton: FunctionComponent = () => (\n <>\n <Stack p={4} spacing={4}>\n <Skeleton h={5} w=\"50%\" />\n <Stack align=\"center\" direction=\"row\" spacing={2}>\n <Skeleton h={5} w={10} />\n <Skeleton h={5} w={10} />\n <Skeleton h={5} w={10} />\n </Stack>\n <Skeleton h={3} w=\"75%\" />\n <Skeleton h={3} w=\"50%\" />\n </Stack>\n <Box>\n <Divider />\n <Stack px={4} py={2} spacing={2}>\n <Skeleton h={5} w=\"25%\" />\n <Stack align=\"center\" direction=\"row\" spacing={2}>\n <Skeleton h={5} w={10} />\n <Skeleton h={5} w={10} />\n <Skeleton h={5} w={10} />\n <Skeleton h={5} w={10} />\n </Stack>\n </Stack>\n </Box>\n </>\n);\n","import {\n Box,\n Divider,\n Flex,\n LinkBox,\n Link as UILink,\n LinkOverlay,\n Stack,\n Text,\n} from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { CatalogPackage } from \"../../api/package/packages\";\nimport {\n Language,\n LANGUAGES,\n LANGUAGE_RENDER_MAP,\n TEMP_SUPPORTED_LANGUAGES,\n} from \"../../constants/languages\";\nimport { getPackagePath, getSearchPath } from \"../../util/url\";\nimport { LanguageSupportTooltip } from \"../LanguageSupportTooltip\";\nimport { PackageTag } from \"../PackageTag\";\nimport { Time } from \"../Time\";\nimport { CatalogCardContainer } from \"./CatalogCardContainer\";\nimport { CatalogCardSkeleton } from \"./CatalogCardSkeleton\";\nimport testIds from \"./testIds\";\n\nexport interface CatalogCardProps {\n /**\n * Specifies the language to link to by default\n */\n language?: Language;\n /**\n * If undefined, will render a skeleton\n */\n pkg?: CatalogPackage;\n}\n\nexport const CatalogCard: FunctionComponent<CatalogCardProps> = ({\n language: currentLanguage,\n pkg,\n}) => {\n if (!pkg) {\n return (\n <CatalogCardContainer>\n <CatalogCardSkeleton />\n </CatalogCardContainer>\n );\n }\n\n const publishDate = pkg.metadata?.date ? (\n <Time\n date={new Date(pkg.metadata.date)}\n fontSize=\"sm\"\n format=\"MMMM dd, yyyy\"\n />\n ) : null;\n\n const author = pkg.author ?? {};\n const languages = pkg.languages ?? {};\n const targets = Object.keys(languages) as Language[];\n\n const getUrl = (params?: Partial<Parameters<typeof getPackagePath>[0]>) =>\n getPackagePath({\n name: pkg.name,\n version: pkg.version,\n language: currentLanguage,\n ...params,\n });\n\n const authorName = typeof author === \"string\" ? author : author.name;\n\n return (\n <CatalogCardContainer isLink>\n <Stack maxH=\"100%\" maxW=\"100%\" overflow=\"hidden\" p={4} spacing={0}>\n {/* Name & Version */}\n <LinkOverlay as={Link} to={getUrl()}>\n <Text\n color=\"blue.800\"\n data-testid={testIds.name}\n fontWeight=\"semibold\"\n isTruncated\n >\n {pkg.name}\n\n <Text\n as=\"span\"\n color=\"blue.500\"\n data-testid={testIds.version}\n fontSize=\"xs\"\n ml={2}\n >\n {pkg.version}\n </Text>\n </Text>\n </LinkOverlay>\n\n {/* Tags */}\n <LinkBox\n as={Flex}\n data-testid={testIds.tags}\n flexWrap=\"wrap\"\n maxH={6}\n overflow=\"hidden\"\n >\n {[\n pkg.name.startsWith(\"@aws-cdk/\") ? (\n <PackageTag\n key=\"official\"\n label=\"official\"\n language={currentLanguage}\n mr={1}\n value=\"@aws-cdk\"\n variant=\"official\"\n >\n Official\n </PackageTag>\n ) : null,\n ...pkg.keywords\n .filter(Boolean)\n .slice(0, 3)\n .map((tag) => {\n return (\n <PackageTag\n key={tag}\n language={currentLanguage}\n mr={1}\n value={`\"${tag}\"`}\n zIndex=\"0 !important\"\n >\n {tag}\n </PackageTag>\n );\n }),\n ]}\n </LinkBox>\n <Text data-testid={testIds.description} fontSize=\"sm\" noOfLines={2}>\n {pkg.description}\n </Text>\n </Stack>\n\n {/* Bottom Details */}\n <Box>\n <Divider />\n <Stack maxW=\"100%\" overflow=\"hidden\" px={4} py={2} spacing={2}>\n <Text data-testid={testIds.date} fontSize=\"sm\" isTruncated>\n {publishDate}\n </Text>\n\n <UILink\n as={Link}\n color=\"blue.500\"\n data-testid={testIds.author}\n fontSize=\"sm\"\n to={getSearchPath({ query: authorName })}\n >\n {authorName}\n </UILink>\n\n {/* Language Support Icons */}\n <LinkBox\n align=\"center\"\n as={Stack}\n data-testid={testIds.languages}\n direction=\"row\"\n >\n {Object.entries(LANGUAGE_RENDER_MAP)\n // Ensure entries are always sorted in a stable way\n .sort(\n ([left], [right]) =>\n LANGUAGES.indexOf(left as Language) -\n LANGUAGES.indexOf(right as Language)\n )\n .map(([lang, info]) => {\n const language = lang as Language;\n\n const isSupportedByLibrary =\n language === Language.TypeScript ||\n targets.includes(language);\n\n const isSupportedByConstructHub =\n language === Language.TypeScript || // TypeScript is always supported\n // Otherwise, the language must be supported by ConstructHub\n TEMP_SUPPORTED_LANGUAGES.has(language);\n\n if (!isSupportedByLibrary) return null;\n\n const { name, icon: Icon } = info;\n\n const icon = (\n <Icon\n aria-label={`Supports ${name}`}\n h={6}\n opacity={isSupportedByConstructHub ? 1 : 0.2}\n w={6}\n />\n );\n\n return (\n <LanguageSupportTooltip key={language} language={language}>\n {isSupportedByConstructHub ? (\n <Link\n aria-label={`View package docs for ${language}`}\n to={getUrl({ language })}\n >\n {icon}\n </Link>\n ) : (\n icon\n )}\n </LanguageSupportTooltip>\n );\n })}\n </LinkBox>\n </Stack>\n </Box>\n </CatalogCardContainer>\n );\n};\n","import { SimpleGrid } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\n\nexport const ResultsGrid: FunctionComponent = ({ children }) => (\n <SimpleGrid\n columns={{\n base: 1,\n sm: 2,\n md: 3,\n lg: 4,\n xl: 5,\n \"2xl\": 6,\n }}\n spacing={6}\n >\n {children}\n </SimpleGrid>\n);\n","import { FunctionComponent, memo } from \"react\";\nimport { CatalogCard } from \"../CatalogCard\";\nimport { ResultsGrid } from \"./ResultsGrid\";\n\nexport interface ResultsSkeletonProps {\n noOfItems: number;\n}\n\nconst ResultsSkeletonComponent: FunctionComponent<ResultsSkeletonProps> = ({\n noOfItems,\n}) => {\n const skeletons = [];\n\n for (let i = 0; i < noOfItems; i += 1) {\n skeletons.push(<CatalogCard key={i} />);\n }\n\n return <ResultsGrid>{skeletons}</ResultsGrid>;\n};\n\nexport const ResultsSkeleton = memo(\n ResultsSkeletonComponent\n) as typeof ResultsSkeletonComponent;\n","import { FunctionComponent, memo } from \"react\";\nimport { Packages } from \"../../api/package/packages\";\nimport { Language } from \"../../constants/languages\";\nimport { CatalogCard } from \"../CatalogCard\";\nimport { ResultsGrid } from \"./ResultsGrid\";\nimport { ResultsSkeleton } from \"./ResultsSkeleton\";\n\nexport interface ResultsProps {\n language?: Language;\n results: Packages[\"packages\"];\n skeleton?: {\n loading: boolean;\n noOfItems: number;\n };\n}\n\nconst ResultsComponent: FunctionComponent<ResultsProps> = ({\n language,\n results,\n skeleton,\n}) => {\n if (skeleton?.loading) {\n return <ResultsSkeleton noOfItems={skeleton.noOfItems} />;\n }\n\n return (\n <ResultsGrid>\n {results.map((pkg, idx) => (\n <CatalogCard key={`${pkg.name}-${idx}`} language={language} pkg={pkg} />\n ))}\n </ResultsGrid>\n );\n};\n\nexport const Results = memo(ResultsComponent) as typeof ResultsComponent;\n","import { createIcon } from \"@chakra-ui/icon\"\n\nexport const ArrowForwardIcon = createIcon({\n d: \"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\",\n displayName: \"ArrowForwardIcon\",\n})\n","import { createIcon } from \"@chakra-ui/icon\"\n\nexport const ChevronLeftIcon = createIcon({\n d: \"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z\",\n displayName: \"ChevronLeftIcon\",\n})\n","import { useBreakpointValue } from \"@chakra-ui/media-query\"\nimport {\n chakra,\n forwardRef,\n keyframes,\n omitThemingProps,\n ThemingProps,\n useStyleConfig,\n HTMLChakraProps,\n} from \"@chakra-ui/system\"\nimport { usePrevious } from \"@chakra-ui/hooks\"\nimport { cx, __DEV__ } from \"@chakra-ui/utils\"\nimport * as React from \"react\"\n\nexport interface SkeletonOptions {\n /**\n * The color at the animation start\n */\n startColor?: string\n /**\n * The color at the animation end\n */\n endColor?: string\n /**\n * If `true`, it'll render its children with a nice fade transition\n */\n isLoaded?: boolean\n /**\n * The animation speed in seconds\n * @default\n * 0.8\n */\n speed?: number\n /**\n * The fadeIn duration in seconds\n *\n * @default\n * 0.4\n */\n fadeDuration?: number\n}\n\nconst StyledSkeleton = chakra(\"div\", {\n baseStyle: {\n boxShadow: \"none\",\n backgroundClip: \"padding-box\",\n cursor: \"default\",\n color: \"transparent\",\n pointerEvents: \"none\",\n userSelect: \"none\",\n \"&::before, &::after, *\": {\n visibility: \"hidden\",\n },\n },\n})\n\nexport type ISkeleton = SkeletonOptions\n\nexport interface SkeletonProps\n extends HTMLChakraProps<\"div\">,\n SkeletonOptions,\n ThemingProps<\"Skeleton\"> {}\n\nconst fade = keyframes({\n from: { opacity: 0 },\n to: { opacity: 1 },\n})\n\nconst useIsFirstRender = () => {\n const isFirstRender = React.useRef(true)\n\n React.useEffect(() => {\n isFirstRender.current = false\n }, [])\n\n return isFirstRender.current\n}\n\nexport const Skeleton = forwardRef<SkeletonProps, \"div\">((props, ref) => {\n const styles = useStyleConfig(\"Skeleton\", props)\n const isFirstRender = useIsFirstRender()\n\n const {\n startColor,\n endColor,\n isLoaded,\n fadeDuration,\n speed,\n className,\n ...rest\n } = omitThemingProps(props)\n\n const wasPreviouslyLoaded = usePrevious(isLoaded)\n\n const _className = cx(\"chakra-skeleton\", className)\n\n if (isLoaded) {\n const animation =\n isFirstRender || wasPreviouslyLoaded ? \"none\" : `${fade} ${fadeDuration}s`\n\n return (\n <chakra.div\n ref={ref}\n className={_className}\n __css={{ animation }}\n {...rest}\n />\n )\n }\n\n return (\n <StyledSkeleton ref={ref} className={_className} {...rest} __css={styles} />\n )\n})\n\nSkeleton.defaultProps = {\n fadeDuration: 0.4,\n speed: 0.8,\n}\n\nif (__DEV__) {\n Skeleton.displayName = \"Skeleton\"\n}\n\nfunction range(count: number) {\n return Array(count)\n .fill(1)\n .map((_, index) => index + 1)\n}\n\nexport interface SkeletonTextProps extends SkeletonProps {\n spacing?: SkeletonProps[\"margin\"]\n skeletonHeight?: SkeletonProps[\"height\"]\n startColor?: SkeletonProps[\"startColor\"]\n endColor?: SkeletonProps[\"endColor\"]\n isLoaded?: SkeletonProps[\"isLoaded\"]\n}\n\nconst defaultNoOfLines = 3\n\nexport const SkeletonText: React.FC<SkeletonTextProps> = (props) => {\n const {\n noOfLines = defaultNoOfLines,\n spacing = \"0.5rem\",\n skeletonHeight = \"0.5rem\",\n className,\n startColor,\n endColor,\n isLoaded,\n fadeDuration,\n speed,\n children,\n ...rest\n } = props\n\n const noOfLinesValue =\n useBreakpointValue(\n typeof noOfLines === \"number\" ? [noOfLines] : noOfLines,\n ) || defaultNoOfLines\n const numbers = range(noOfLinesValue)\n\n const getWidth = (index: number) => {\n if (noOfLinesValue > 1) {\n return index === numbers.length ? \"80%\" : \"100%\"\n }\n return \"100%\"\n }\n\n const _className = cx(\"chakra-skeleton__group\", className)\n\n return (\n <chakra.div className={_className} {...rest}>\n {numbers.map((number, index) => {\n if (isLoaded && index > 0) {\n // skip other lines\n return null\n }\n\n const sizeProps = isLoaded\n ? null\n : {\n mb: number === numbers.length ? \"0\" : spacing,\n width: getWidth(number),\n height: skeletonHeight,\n }\n\n return (\n <Skeleton\n key={numbers.length.toString() + number}\n startColor={startColor}\n endColor={endColor}\n isLoaded={isLoaded}\n fadeDuration={fadeDuration}\n speed={speed}\n {...sizeProps}\n >\n {\n // allows animating the children\n index === 0 ? children : undefined\n }\n </Skeleton>\n )\n })}\n </chakra.div>\n )\n}\n\nif (__DEV__) {\n SkeletonText.displayName = \"SkeletonText\"\n}\n\nexport const SkeletonCircle: React.FC<SkeletonProps> = ({\n size = \"2rem\",\n ...rest\n}) => <Skeleton borderRadius=\"full\" boxSize={size} {...rest} />\n\nif (__DEV__) {\n SkeletonCircle.displayName = \"SkeletonCircle\"\n}\n","import { useRef, useEffect } from \"react\"\n\nexport function usePrevious<T>(value: T) {\n const ref = useRef<T | undefined>()\n\n useEffect(() => {\n ref.current = value\n }, [value])\n\n return ref.current as T\n}\n","import { IconButton, IconProps } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { Link } from \"react-router-dom\";\n\nexport interface ArrowButtonProps {\n icon: FunctionComponent<IconProps>;\n offset?: number;\n getPageUrl: (params: { offset: number }) => string;\n}\n\nexport const ArrowButton: FunctionComponent<ArrowButtonProps> = ({\n icon: Icon,\n offset,\n getPageUrl,\n}) => {\n const label = `Page ${offset} link`;\n\n const props = {\n \"aria-label\": label,\n borderRadius: \"md\",\n borderColor: \"blue.500\",\n colorScheme: \"blue\",\n icon: <Icon color=\"blue.500\" h={5} w={5} />,\n mx: 2,\n h: 10,\n w: 10,\n variant: \"outline\",\n };\n\n if (offset !== undefined) {\n return <IconButton {...props} as={Link} to={getPageUrl({ offset })} />;\n }\n\n return <IconButton {...props} disabled />;\n};\n","import { Flex, Input, Text } from \"@chakra-ui/react\";\nimport {\n FormEventHandler,\n FunctionComponent,\n SyntheticEvent,\n useEffect,\n useState,\n} from \"react\";\nimport { useHistory } from \"react-router-dom\";\n\nexport interface GoToPageProps {\n pageLimit: number;\n offset: number;\n getPageUrl: (params: { offset: number }) => string;\n}\n\nexport const GoToPage: FunctionComponent<GoToPageProps> = ({\n pageLimit,\n offset,\n getPageUrl,\n}) => {\n const [inputValue, setInputValue] = useState((offset + 1).toString());\n const { push } = useHistory();\n\n useEffect(() => {\n setInputValue((offset + 1).toString());\n }, [offset]);\n\n const onInputChange = (e: SyntheticEvent<HTMLInputElement>) => {\n e.preventDefault();\n setInputValue((e.target as HTMLInputElement).value);\n };\n\n const onSubmit: FormEventHandler<HTMLInputElement> = (e) => {\n e.preventDefault();\n push(getPageUrl({ offset: parseInt(inputValue) - 1 }));\n };\n\n return (\n <Flex align=\"center\" as=\"form\" mx={2} onSubmit={onSubmit}>\n <Input\n colorScheme=\"blue\"\n h={10}\n max={pageLimit + 1}\n min={1}\n name=\"page\"\n onChange={onInputChange}\n p={0}\n textAlign=\"center\"\n type=\"number\"\n value={inputValue}\n w={10}\n />\n <Text ml={2} w=\"max-content\">\n of {pageLimit + 1}\n </Text>\n </Flex>\n );\n};\n","import { ArrowForwardIcon } from \"@chakra-ui/icons\";\nimport { Button } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { Link } from \"react-router-dom\";\n\nexport interface NextPageProps {\n nextPageUrl?: string;\n}\n\nconst btnProps = {\n children: \"Next Page\",\n colorScheme: \"blue\",\n rightIcon: <ArrowForwardIcon color=\"white\" />,\n};\n\nexport const NextPage: FunctionComponent<NextPageProps> = ({ nextPageUrl }) => {\n if (!nextPageUrl) {\n return <Button {...btnProps} disabled />;\n }\n\n return <Button {...btnProps} as={Link} to={nextPageUrl} />;\n};\n","import { ChevronLeftIcon, ChevronRightIcon } from \"@chakra-ui/icons\";\nimport { Flex, Grid, GridItem } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { ArrowButton } from \"./ArrowButton\";\nimport { GoToPage } from \"./GoToPage\";\nimport { NextPage } from \"./NextPage\";\n\nexport interface PageControlsProps {\n limit: number;\n offset: number;\n pageLimit: number;\n getPageUrl: (params: { offset?: number }) => string;\n}\n\nexport const PageControls: FunctionComponent<PageControlsProps> = ({\n offset,\n pageLimit,\n getPageUrl,\n}) => {\n const nextOffset = offset < pageLimit ? offset + 1 : undefined;\n const prevOffset = offset > 0 ? offset - 1 : undefined;\n\n return (\n <Grid\n alignItems=\"center\"\n pt={4}\n templateColumns=\"repeat(3, 1fr)\"\n templateRows=\"1fr\"\n >\n <GridItem colStart={2} justifySelf=\"center\">\n <NextPage\n nextPageUrl={\n nextOffset ? getPageUrl({ offset: nextOffset }) : undefined\n }\n />\n </GridItem>\n <GridItem colStart={3} justifySelf=\"end\">\n <Flex align=\"center\" justify=\"center\" py={4}>\n <GoToPage\n getPageUrl={getPageUrl}\n offset={offset}\n pageLimit={pageLimit}\n />\n <ArrowButton\n getPageUrl={getPageUrl}\n icon={ChevronLeftIcon}\n offset={prevOffset}\n />\n <ArrowButton\n getPageUrl={getPageUrl}\n icon={ChevronRightIcon}\n offset={nextOffset}\n />\n </Flex>\n </GridItem>\n </Grid>\n );\n};\n","import { Text } from \"@chakra-ui/react\";\nimport { FunctionComponent } from \"react\";\n\nexport interface ShowingDetailsProps {\n limit: number;\n offset: number;\n count: number;\n filtered: boolean;\n}\n\nconst Em: FunctionComponent = ({ children }) => (\n <Text as=\"em\" color=\"blue.500\" fontWeight=\"bold\">\n {children}\n </Text>\n);\n\nexport const ShowingDetails: FunctionComponent<ShowingDetailsProps> = ({\n limit,\n offset,\n count,\n filtered,\n}) => {\n const first = limit * offset;\n const last = first + limit;\n return (\n <Text>\n Displaying{\" \"}\n <Em>\n {count ? first + 1 : count} - {last > count ? count : last}\n </Em>{\" \"}\n of <Em>{count}</Em> {filtered ? \"search results\" : \"constructs\"}.\n </Text>\n );\n};\n","import { Box, Divider, Flex } from \"@chakra-ui/react\";\nimport { FunctionComponent, useEffect } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { CatalogSearch } from \"../../components/CatalogSearch\";\nimport { Page } from \"../../components/Page\";\nimport { Results } from \"../../components/Results\";\nimport { Language } from \"../../constants/languages\";\nimport { QUERY_PARAMS } from \"../../constants/url\";\nimport { useCatalogResults } from \"../../hooks/useCatalogResults\";\nimport { useCatalogSearch } from \"../../hooks/useCatalogSearch\";\nimport { useQueryParams } from \"../../hooks/useQueryParams\";\nimport { getSearchPath } from \"../../util/url\";\nimport { PageControls } from \"./components/PageControls\";\nimport { ShowingDetails } from \"./components/ShowingDetails\";\nimport { LIMIT, SearchQueryParam } from \"./constants\";\n\nconst toNum = (val: string) => {\n const result = parseInt(val);\n\n if (`${result}` === \"NaN\") {\n return 0;\n }\n\n return result;\n};\n\nexport const SearchResults: FunctionComponent = () => {\n const queryParams = useQueryParams();\n\n const searchQuery = decodeURIComponent(\n queryParams.get(QUERY_PARAMS.SEARCH_QUERY) ?? \"\"\n );\n\n const languageQuery = queryParams.get(\n QUERY_PARAMS.LANGUAGE\n ) as Language | null;\n\n const searchAPI = useCatalogSearch({\n defaultQuery: searchQuery,\n defaultLanguage: languageQuery,\n });\n\n const offset = toNum(queryParams.get(QUERY_PARAMS.OFFSET) ?? \"0\");\n\n const { push } = useHistory();\n\n const { results, displayable, loading, pageLimit } = useCatalogResults({\n query: searchQuery,\n offset,\n limit: LIMIT,\n language: languageQuery,\n });\n\n const getUrl = (\n params: Partial<{ [key in SearchQueryParam]: number | string }>\n ) => {\n return getSearchPath({\n query: (params.q ?? searchQuery) as string,\n language: languageQuery,\n offset: params.offset ?? offset,\n });\n };\n\n useEffect(() => {\n // If the query has results but the page has nothing to show...\n if (!loading && results.length && (offset < 0 || offset > pageLimit)) {\n // Handle an out of bounds offset\n if (offset < 0) {\n push(getUrl({ offset: 0 }));\n } else {\n // Offset is too large, just take last page\n push(getUrl({ offset: pageLimit }));\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [loading, results, pageLimit, offset]);\n\n useEffect(() => {\n // Reflect changes to queryParam to search input (specifically for tag clicks)\n if (searchQuery !== searchAPI.query) {\n searchAPI.setQuery(searchQuery);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [searchQuery]);\n\n return (\n <Page\n meta={{\n title: searchQuery || \"Search\",\n description: searchQuery\n ? `${results.length} results for ${searchQuery} at Construct Hub`\n : \"Search reusable components for your cloud application\",\n }}\n pageName=\"search\"\n >\n <Flex direction=\"column\" maxW=\"100vw\">\n <Box p={4}>\n <CatalogSearch {...searchAPI} />\n </Box>\n <Divider />\n <Box p={4}>\n <Box pb={4}>\n <ShowingDetails\n count={results.length}\n filtered={!!searchQuery}\n limit={LIMIT}\n offset={offset}\n />\n </Box>\n <Results\n language={languageQuery ?? undefined}\n results={displayable}\n skeleton={{ loading, noOfItems: LIMIT }}\n />\n <PageControls\n getPageUrl={getUrl}\n limit={LIMIT}\n offset={offset}\n pageLimit={pageLimit}\n />\n </Box>\n </Flex>\n </Page>\n );\n};\n","import type { QueryParamKey } from \"../../constants/url\";\n\nexport const LIMITS = [25, 50, 75, 100];\nexport const LIMIT = LIMITS[0];\n\nexport type SearchQueryParam = Extract<QueryParamKey, \"offset\" | \"q\">;\n"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ (this["webpackJsonpconstruct-hub-webapp"]=this["webpackJsonpconstruct-hub-webapp"]||[]).push([[9],{228:function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var a=n(0),r=n(239),c={home:{event:{name:"Home Load"}},faq:{event:{name:"Frequently Asked Questions Load"}},packageProfile:{event:{name:"Package Profile Load"}},search:{event:{name:"Search Load"}},siteTerms:{event:{name:"Site Terms Load"}},notFound:{page:{pageType:"errorPage"},event:{name:"404 Page Load"}}},i=n(109),o=n(1),s=function(e){var t=e.children,n=e.meta,s=e.pageName,l=Object(i.b)(c[s]);Object(a.useEffect)((function(){l()}),[l]);var u=n.suffix,d=void 0===u||u,b=n.title,m=n.description,f=d?"".concat(b," - Construct Hub"):b;return Object(o.jsxs)(o.Fragment,{children:[Object(o.jsxs)(r.a,{children:[!1,Object(o.jsx)("meta",{content:"width=device-width, initial-scale=1",name:"viewport"}),Object(o.jsx)("meta",{charSet:"utf-8"}),Object(o.jsx)("title",{children:f}),Object(o.jsx)("meta",{content:f,property:"og:title"}),Object(o.jsx)("meta",{content:f,name:"twitter:title"}),Object(o.jsx)("meta",{content:"summary",name:"twitter:card"}),Object(o.jsx)("meta",{content:m,name:"description"}),Object(o.jsx)("meta",{content:m,property:"og:description"}),Object(o.jsx)("meta",{content:m,name:"twitter:description"})]}),t]})}},251:function(e,t,n){"use strict";n.d(t,"a",(function(){return u}));var a=n(6),r=n(22),c=n(21),i=n(184),o=n(337),s=n(1),l=["sources"],u=Object(c.a)((function(e,t){var n=e.sources,c=Object(r.a)(e,l);return Object(s.jsxs)(i.a,{as:"picture",children:[null===n||void 0===n?void 0:n.map((function(e,t){return Object(s.jsx)("source",{media:e.media,srcSet:e.srcSet},t)})),Object(s.jsx)(o.a,Object(a.a)({ref:t},c))]})}));u.displayName="Picture"},286:function(e,t,n){"use strict";n.r(t),n.d(t,"NotFound",(function(){return d})),n.d(t,"default",(function(){return d}));var a=n(209),r=n(199),c=n(145),i=n(29),o=n(228),s=n(251),l=n(1),u={optimal:[{media:"(max-width:1024px)",srcSet:"/assets/404-hive@50.webp"},{media:"(min-width:1024px)",srcSet:"/assets/404-hive@100.webp"},{media:"(min-width:1024px)",srcSet:"/assets/404-hive@100.png"}],fallback:"/assets/404-hive@50.png"},d=function(){return Object(l.jsx)(o.a,{meta:{title:"Not Found",description:"Oops! The page you were looking for does not exist"},pageName:"notFound",children:Object(l.jsxs)(a.a,{h:"100%",position:"relative",w:"100%",children:[Object(l.jsx)(s.a,{alt:"",inset:0,position:"absolute",sources:u.optimal,src:u.fallback,zIndex:"hide"}),Object(l.jsxs)(r.a,{align:"center",direction:"column",justify:"center",children:[Object(l.jsx)(s.a,{alt:"404 Image",sources:[{srcSet:"/assets/robot.webp"}],src:"/assets/robot.png"}),Object(l.jsx)(c.a,{as:i.b,colorScheme:"blue",to:"/",children:"Take Me Home"})]})]})})}},337:function(e,t,n){"use strict";n.d(t,"a",(function(){return m}));var a=n(21),r=n(25),c=n(27),i=n(8),o=n(0),s=n(4),l=n(138);function u(){return u=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},u.apply(this,arguments)}function d(e,t){if(null==e)return{};var n,a,r={},c=Object.keys(e);for(a=0;a<c.length;a++)n=c[a],t.indexOf(n)>=0||(r[n]=e[n]);return r}var b=o.forwardRef((function(e,t){var n=e.htmlWidth,a=e.htmlHeight,r=e.alt,c=d(e,["htmlWidth","htmlHeight","alt"]);return o.createElement("img",u({width:n,height:a,ref:t,alt:r},c))})),m=Object(a.a)((function(e,t){var n=e.fallbackSrc,a=e.fallback,i=e.src,m=e.align,f=e.fit,j=e.loading,p=e.ignoreFallback,g=e.crossOrigin,h=d(e,["fallbackSrc","fallback","src","align","fit","loading","ignoreFallback","crossOrigin"]),O=null!=j||p,v=function(e){var t=e.src,n=e.srcSet,a=e.onLoad,r=e.onError,c=e.crossOrigin,i=e.sizes,u=e.ignoreFallback,d=Object(o.useState)("pending"),b=Object(s.a)(d,2),m=b[0],f=b[1];Object(o.useEffect)((function(){f(t?"loading":"pending")}),[t]);var j=Object(o.useRef)(),p=Object(o.useCallback)((function(){if(t){g();var e=new Image;e.src=t,c&&(e.crossOrigin=c),n&&(e.srcset=n),i&&(e.sizes=i),e.onload=function(e){g(),f("loaded"),null==a||a(e)},e.onerror=function(e){g(),f("failed"),null==r||r(e)},j.current=e}}),[t,c,n,i,a,r]),g=function(){j.current&&(j.current.onload=null,j.current.onerror=null,j.current=null)};return Object(l.a)((function(){if(!u)return"loading"===m&&p(),function(){g()}}),[m,p,u]),u?"loaded":m}(u({},e,{ignoreFallback:O})),x=u({ref:t,objectFit:f,objectPosition:m},O?h:Object(c.g)(h,["onError","onLoad"]));return"loaded"!==v?a||o.createElement(r.a.img,u({as:b,className:"chakra-image__placeholder",src:n},x)):o.createElement(r.a.img,u({as:b,src:i,crossOrigin:g,loading:j,className:"chakra-image"},x))}));i.a&&(m.displayName="Image")}}]);
2
+ //# sourceMappingURL=9.2b21526e.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["constants/pageInfo.ts","components/Page/Page.tsx","components/Picture/Picture.tsx","views/NotFound/NotFound.tsx","../../../src/image.tsx","../../../src/use-image.ts"],"names":["pageInfo","home","event","name","faq","packageProfile","search","siteTerms","notFound","page","pageType","Page","children","meta","pageName","trackPageView","usePageView","useEffect","suffix","title","description","formattedTitle","Helmet","process","content","charSet","property","Picture","forwardRef","ref","sources","props","as","map","source","idx","media","srcSet","displayName","bgSources","optimal","fallback","NotFound","h","position","w","alt","inset","src","zIndex","align","direction","justify","Link","colorScheme","to","NativeImage","width","height","Image","crossOrigin","shouldIgnore","loading","status","ignoreFallback","useState","setStatus","imageRef","useRef","load","useCallback","flush","img","onLoad","error","onError","sizes","useSafeLayoutEffect","useImage","shared","objectFit","objectPosition","rest","omit","className","fallbackSrc"],"mappings":"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","file":"static/js/9.2b21526e.chunk.js","sourcesContent":["export const pageInfo = {\n home: {\n event: {\n name: \"Home Load\",\n },\n },\n faq: {\n event: {\n name: \"Frequently Asked Questions Load\",\n },\n },\n packageProfile: {\n event: {\n name: \"Package Profile Load\",\n },\n },\n search: {\n event: {\n name: \"Search Load\",\n },\n },\n siteTerms: {\n event: {\n name: \"Site Terms Load\",\n },\n },\n notFound: {\n page: {\n pageType: \"errorPage\",\n },\n event: {\n name: \"404 Page Load\",\n },\n },\n} as const;\n","import { FunctionComponent, useEffect } from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport { pageInfo } from \"../../constants/pageInfo\";\nimport { usePageView } from \"../../contexts/Analytics\";\n\nexport interface PageProps {\n pageName: keyof typeof pageInfo;\n meta: {\n suffix?: boolean;\n title: string;\n description: string;\n };\n}\n\nexport const Page: FunctionComponent<PageProps> = ({\n children,\n meta,\n pageName,\n}) => {\n const trackPageView = usePageView(pageInfo[pageName]);\n\n useEffect(() => {\n trackPageView();\n }, [trackPageView]);\n\n const { suffix = true, title, description } = meta;\n const formattedTitle = suffix ? `${title} - Construct Hub` : title;\n\n return (\n <>\n <Helmet>\n {process.env.NODE_ENV === \"development\" && (\n <meta\n content=\"default-src 'self' 'unsafe-inline' https://*.awsstatic.com https://amazonwebservices.d2.sc.omtrdc.net; connect-src 'self' https://*.shortbread.aws.dev ws://localhost:3000 https://*.awsstatic.com https://amazonwebservices.d2.sc.omtrdc.net; frame-src 'none'; img-src 'self' https://* http://*.omtrdc.net; object-src 'none'; style-src 'self' 'unsafe-inline';\"\n httpEquiv=\"Content-Security-Policy\"\n />\n )}\n\n <meta content=\"width=device-width, initial-scale=1\" name=\"viewport\" />\n <meta charSet=\"utf-8\" />\n\n <title>{formattedTitle}</title>\n <meta content={formattedTitle} property=\"og:title\" />\n <meta content={formattedTitle} name=\"twitter:title\" />\n <meta content=\"summary\" name=\"twitter:card\" />\n\n <meta content={description} name=\"description\" />\n <meta content={description} property=\"og:description\" />\n <meta content={description} name=\"twitter:description\" />\n </Helmet>\n {children}\n </>\n );\n};\n","import { Box, HTMLChakraProps, forwardRef, Image } from \"@chakra-ui/react\";\n\nexport interface PictureProps extends HTMLChakraProps<\"img\"> {\n alt: string;\n src: string;\n sources?: {\n media?: string;\n srcSet: string;\n }[];\n}\n\nexport const Picture = forwardRef<PictureProps, \"img\">(\n ({ sources, ...props }, ref) => (\n <Box as=\"picture\">\n {sources?.map((source, idx) => (\n <source key={idx} media={source.media} srcSet={source.srcSet} />\n ))}\n <Image ref={ref} {...props} />\n </Box>\n )\n);\n\nPicture.displayName = \"Picture\";\n","import { Button, Center, Flex } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { Page } from \"../../components/Page\";\nimport { Picture } from \"../../components/Picture\";\n\nconst bgSources = {\n optimal: [\n { media: \"(max-width:1024px)\", srcSet: \"/assets/404-hive@50.webp\" },\n { media: \"(min-width:1024px)\", srcSet: \"/assets/404-hive@100.webp\" },\n { media: \"(min-width:1024px)\", srcSet: \"/assets/404-hive@100.png\" },\n ],\n fallback: \"/assets/404-hive@50.png\",\n};\n\nexport const NotFound: FunctionComponent = () => {\n return (\n <Page\n meta={{\n title: \"Not Found\",\n description: \"Oops! The page you were looking for does not exist\",\n }}\n pageName=\"notFound\"\n >\n <Center h=\"100%\" position=\"relative\" w=\"100%\">\n <Picture\n alt=\"\"\n inset={0}\n position=\"absolute\"\n sources={bgSources.optimal}\n src={bgSources.fallback}\n zIndex=\"hide\"\n />\n <Flex align=\"center\" direction=\"column\" justify=\"center\">\n <Picture\n alt=\"404 Image\"\n sources={[{ srcSet: \"/assets/robot.webp\" }]}\n src=\"/assets/robot.png\"\n />\n <Button as={Link} colorScheme=\"blue\" to=\"/\">\n Take Me Home\n </Button>\n </Flex>\n </Center>\n </Page>\n );\n};\n","import {\n chakra,\n PropsOf,\n SystemProps,\n forwardRef,\n HTMLChakraProps,\n} from \"@chakra-ui/system\"\nimport { omit, __DEV__ } from \"@chakra-ui/utils\"\nimport * as React from \"react\"\nimport { useImage, UseImageProps } from \"./use-image\"\n\ninterface NativeImageOptions {\n /**\n * The native HTML `width` attribute to the passed to the `img`\n */\n htmlWidth?: string | number\n /**\n * The native HTML `height` attribute to the passed to the `img`\n */\n htmlHeight?: string | number\n}\n\ninterface NativeImageProps extends PropsOf<\"img\">, NativeImageOptions {}\n\nconst NativeImage = React.forwardRef(\n (props: NativeImageProps, ref: React.Ref<any>) => {\n const { htmlWidth, htmlHeight, alt, ...rest } = props\n return (\n <img\n width={htmlWidth}\n height={htmlHeight}\n ref={ref}\n alt={alt}\n {...rest}\n />\n )\n },\n)\n\ninterface ImageOptions extends NativeImageOptions {\n /**\n * Fallback image `src` to show if image is loading or image fails.\n *\n * Note 🚨: We recommend you use a local image\n */\n fallbackSrc?: string\n /**\n * Fallback element to show if image is loading or image fails.\n * @type React.ReactElement\n */\n fallback?: React.ReactElement\n /**\n * Defines loading strategy\n */\n loading?: \"eager\" | \"lazy\"\n /**\n * How the image to fit within its bounds.\n * It maps to css `object-fit` property.\n * @type SystemProps[\"objectFit\"]\n */\n fit?: SystemProps[\"objectFit\"]\n /**\n * How to align the image within its bounds.\n * It maps to css `object-position` property.\n * @type SystemProps[\"objectPosition\"]\n */\n align?: SystemProps[\"objectPosition\"]\n /**\n * If `true`, opt out of the `fallbackSrc` logic and use as `img`\n */\n ignoreFallback?: boolean\n}\n\nexport interface ImageProps\n extends UseImageProps,\n Omit<HTMLChakraProps<\"img\">, keyof UseImageProps>,\n ImageOptions {}\n\n/**\n * React component that renders an image with support\n * for fallbacks\n *\n * @see Docs https://chakra-ui.com/image\n */\nexport const Image = forwardRef<ImageProps, \"img\">((props, ref) => {\n const {\n fallbackSrc,\n fallback,\n src,\n align,\n fit,\n loading,\n ignoreFallback,\n crossOrigin,\n ...rest\n } = props\n\n /**\n * Defer to native `img` tag if `loading` prop is passed\n * @see https://github.com/chakra-ui/chakra-ui/issues/1027\n */\n const shouldIgnore = loading != null || ignoreFallback\n\n const status = useImage({\n ...props,\n ignoreFallback: shouldIgnore,\n })\n\n const shared = {\n ref,\n objectFit: fit,\n objectPosition: align,\n ...(shouldIgnore ? rest : omit(rest, [\"onError\", \"onLoad\"])),\n }\n\n if (status !== \"loaded\") {\n /**\n * If user passed a custom fallback component,\n * let's render it here.\n */\n if (fallback) return fallback\n\n return (\n <chakra.img\n as={NativeImage}\n className=\"chakra-image__placeholder\"\n src={fallbackSrc}\n {...shared}\n />\n )\n }\n\n return (\n <chakra.img\n as={NativeImage}\n src={src}\n crossOrigin={crossOrigin}\n loading={loading}\n className=\"chakra-image\"\n {...shared}\n />\n )\n})\n\nexport interface ImgProps extends HTMLChakraProps<\"img\">, NativeImageOptions {}\n\n/**\n * Fallback component for most SSR users who want to use the native `img` with\n * support for chakra props\n */\nexport const Img = forwardRef<ImgProps, \"img\">((props, ref) => (\n <chakra.img ref={ref} as={NativeImage} className=\"chakra-image\" {...props} />\n))\n\nif (__DEV__) {\n Image.displayName = \"Image\"\n}\n","import { useSafeLayoutEffect } from \"@chakra-ui/hooks\"\nimport {\n ImgHTMLAttributes,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\"\n\nexport interface UseImageProps {\n /**\n * The image `src` attribute\n */\n src?: string\n /**\n * The image `srcset` attribute\n */\n srcSet?: string\n /**\n * The image `sizes` attribute\n */\n sizes?: string\n /**\n * A callback for when the image `src` has been loaded\n */\n onLoad?(event: React.SyntheticEvent<HTMLImageElement, Event>): void\n /**\n * A callback for when there was an error loading the image `src`\n */\n onError?(error: string | React.SyntheticEvent<HTMLImageElement, Event>): void\n /**\n * If `true`, opt out of the `fallbackSrc` logic and use as `img`\n */\n ignoreFallback?: boolean\n /**\n * The key used to set the crossOrigin on the HTMLImageElement into which the image will be loaded.\n * This tells the browser to request cross-origin access when trying to download the image data.\n */\n crossOrigin?: ImgHTMLAttributes<any>[\"crossOrigin\"]\n}\n\ntype Status = \"loading\" | \"failed\" | \"pending\" | \"loaded\"\n\ntype ImageEvent = React.SyntheticEvent<HTMLImageElement, Event>\n\n/**\n * React hook that loads an image in the browser,\n * and let's us know the `status` so we can show image\n * fallback if it is still `pending`\n *\n * @returns the status of the image loading progress\n *\n * @example\n *\n * ```jsx\n * function App(){\n * const status = useImage({ src: \"image.png\" })\n * return status === \"loaded\" ? <img src=\"image.png\" /> : <Placeholder />\n * }\n * ```\n */\nexport function useImage(props: UseImageProps) {\n const {\n src,\n srcSet,\n onLoad,\n onError,\n crossOrigin,\n sizes,\n ignoreFallback,\n } = props\n\n const [status, setStatus] = useState<Status>(\"pending\")\n\n useEffect(() => {\n setStatus(src ? \"loading\" : \"pending\")\n }, [src])\n\n const imageRef = useRef<HTMLImageElement | null>()\n\n const load = useCallback(() => {\n if (!src) return\n\n flush()\n\n const img = new Image()\n\n img.src = src\n\n if (crossOrigin) {\n img.crossOrigin = crossOrigin\n }\n\n if (srcSet) {\n img.srcset = srcSet\n }\n\n if (sizes) {\n img.sizes = sizes\n }\n\n img.onload = (event) => {\n flush()\n setStatus(\"loaded\")\n onLoad?.((event as unknown) as ImageEvent)\n }\n img.onerror = (error) => {\n flush()\n setStatus(\"failed\")\n onError?.(error as any)\n }\n\n imageRef.current = img\n }, [src, crossOrigin, srcSet, sizes, onLoad, onError])\n\n const flush = () => {\n if (imageRef.current) {\n imageRef.current.onload = null\n imageRef.current.onerror = null\n imageRef.current = null\n }\n }\n\n useSafeLayoutEffect(() => {\n /**\n * If user opts out of the fallback/placeholder\n * logic, let's bail out.\n */\n if (ignoreFallback) return undefined\n\n if (status === \"loading\") {\n load()\n }\n return () => {\n flush()\n }\n }, [status, load, ignoreFallback])\n\n /**\n * If user opts out of the fallback/placeholder\n * logic, let's just return 'loaded'\n */\n return ignoreFallback ? \"loaded\" : status\n}\n\nexport type UseImageReturn = ReturnType<typeof useImage>\n"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ (this["webpackJsonpconstruct-hub-webapp"]=this["webpackJsonpconstruct-hub-webapp"]||[]).push([[2],{108:function(e,t,n){"use strict";n.d(t,"b",(function(){return o})),n.d(t,"c",(function(){return l})),n.d(t,"a",(function(){return u}));var r=n(5),c=n(4),a=n(13),i=new RegExp(/git@github\.com:([a-zA-Z-]+)+\/?([a-zA-Z-]+)*(\.git)?/),o=function(e){try{var t=e,n=e.match(i);if(n){var r=Object(c.a)(n,3),a=r[1],o=r[2];t="https://github.com/".concat(a,"/").concat(o)}return{hostname:new URL(t).hostname,url:t}}catch(s){return}},s=function(e,t){var n=e;if(t){var r=function(e,t){var n=new URLSearchParams(t);return Object.entries(e).filter((function(e){return null!=Object(c.a)(e,2)[1]})).forEach((function(e){var t=Object(c.a)(e,2),r=t[0],a=t[1];n.set(r,"".concat(a))})),n.toString()}(t);r&&(n+="?".concat(r))}return n},l=function(e){var t,n=e.query,c=e.offset,i=e.language;return s(a.c.SEARCH,(t={},Object(r.a)(t,a.b.SEARCH_QUERY,n),Object(r.a)(t,a.b.LANGUAGE,i),Object(r.a)(t,a.b.OFFSET,null!==c&&void 0!==c?c:0),t))},u=function(e){var t,n=e.name,c=e.version,i=e.language,o=e.submodule;return s("".concat(a.c.PACKAGES,"/").concat(n,"/v/").concat(c),(t={},Object(r.a)(t,a.b.SUBMODULE,o),Object(r.a)(t,a.b.LANGUAGE,i),t))}},109:function(e,t,n){"use strict";n.d(t,"a",(function(){return o})),n.d(t,"b",(function(){return l}));var r=n(0),c=n(18),a=n(1),i=Object(r.createContext)({trackPageView:function(){}}),o=function(e){var t=e.children,n=Object(c.h)().pathname,o=Object(r.useRef)(null),s=Object(r.useCallback)((function(e){var t,r,c;o.current!==n&&(null===(t=window)||void 0===t||null===(r=t.AWSMA)||void 0===r||null===(c=r.ready)||void 0===c||c.call(r,(function(){document.dispatchEvent(new CustomEvent(window.AWSMA.TRIGGER_EVENT,{detail:e})),o.current=n})))}),[n]);return Object(a.jsx)(i.Provider,{value:{trackPageView:s},children:t})},s=n(6),l=function(e){var t=Object(r.useContext)(i).trackPageView,n=Object(c.h)().pathname,a=Object(r.useMemo)((function(){return{page:Object(s.a)({pageURL:window.location.href.replace("://localhost:3000","://constructs.local.dev")},e.page),event:{type:"pageview",name:e.event.name,description:e.event.description}}}),[n,e]);return Object(r.useCallback)((function(){return t(a)}),[t,a])}},111:function(e,t,n){"use strict";n.d(t,"a",(function(){return j}));var r=n(4),c=n(0),a=n(18),i=n(54),o=n(13),s=n(113),l=i.d.TypeScript,u="preferred-language",b=function(e){return null!=e&&i.e.has(e)},d=function(e){if(b(e))return e;try{var t,n=null!==(t=localStorage.getItem(u))&&void 0!==t?t:"";if(b(n))return n}catch(r){}return l},j=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.updateUrl,n=e.updateSaved,i=Object(a.h)(),l=i.pathname,j=i.hash,f=Object(a.g)(),h=f.replace,O=Object(s.a)(),p=O.get(o.b.LANGUAGE),g=Object(c.useState)((function(){return d(p)})),m=Object(r.a)(g,2),x=m[0],v=m[1];Object(c.useEffect)((function(){b(p)&&p!==x&&v(p)}),[p]),Object(c.useEffect)((function(){p!==x&&t&&(O.set(o.b.LANGUAGE,x),h({pathname:l,hash:j,search:O.toString()}))}),[x,t]);var y=Object(c.useCallback)((function(e){if(v(e),n)try{localStorage.setItem(u,e)}catch(t){}}),[n]);return Object(c.useMemo)((function(){return[x,y]}),[x,y])}},112:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(6),c=n(21),a=n(184),i=n(1),o=Object(c.a)((function(e,t){return Object(i.jsx)(a.a,Object(r.a)({bg:"white",border:"base",borderRadius:"card",boxShadow:"base",p:2,ref:t},e))}));o.displayName="Card"},113:function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(0),c=n(18),a=function(){var e=Object(c.h)().search;return Object(r.useMemo)((function(){return new URLSearchParams(e)}),[e])}},116:function(e,t,n){"use strict";n.d(t,"a",(function(){return y})),n.d(t,"b",(function(){return x}));var r=n(6),c=n(22),a=n(141),i=n(85),o=n(4),s=n(21),l=n(216),u=n(145),b=n(54),d=n(204),j=n(212),f=n(189),h=n(1),O=n(57),p=Object(O.a)("catalogSearch",["form","input","languageDropdown","languageDropdownMenu","languageDropdownValue","languageItem","submit"]),g=Object.fromEntries(Object.entries(b.b).filter((function(e){var t=Object(o.a)(e,1)[0];return b.e.has(t)}))),m=function(e){var t=e.placeholder,n=e.items,r=e.onSelect,c=e.selected,a=e.testIds,i=c?n[c]:t,s=Object.entries(n);return Object(h.jsxs)(j.a,{strategy:"fixed",children:[Object(h.jsx)(j.b,{as:u.a,bg:"white",borderColor:"blue.100",boxShadow:"base","data-testid":a.trigger,rightIcon:Object(h.jsx)(d.a,{color:"blue.500"}),variant:"outline",children:Object(h.jsx)(f.a,{"data-testid":a.value,children:i})}),Object(h.jsxs)(j.f,{"data-testid":a.menu,children:[Object(h.jsx)(j.e,{"data-testid":a.item,onClick:function(){return r(null)},children:"Any"}),s.map((function(e){var t=Object(o.a)(e,2),n=t[0],c=t[1];return Object(h.jsx)(j.e,{"data-testid":a.item,onClick:function(){return r(n)},children:c},n)}))]})]})},x=Object(s.a)((function(e,t){var n=e.query,r=e.onQueryChange,c=e.language,a=e.onLanguageChange;return Object(h.jsxs)(h.Fragment,{children:[Object(h.jsx)(l.a,{bg:"white",borderColor:"blue.100",boxShadow:"base","data-testid":p.input,name:"query",onChange:r,placeholder:"Search Constructs...",ref:t,value:n}),Object(h.jsx)(m,{items:g,onSelect:a,placeholder:"Language...",selected:c,testIds:{item:p.languageItem,menu:p.languageDropdownMenu,trigger:p.languageDropdown,value:p.languageDropdownValue}}),Object(h.jsx)(u.a,{boxShadow:"base",colorScheme:"blue","data-testid":p.submit,type:"submit",children:"Search"})]})})),v=["onSubmit"],y=function(e){var t=e.onSubmit,n=Object(c.a)(e,v);return Object(h.jsx)(i.a,{"data-testid":p.form,onSubmit:t,children:Object(h.jsx)(a.a,{autoRows:"1fr",gap:4,templateColumns:{sm:"1fr",md:"3fr 1fr 1fr"},width:"full",children:Object(h.jsx)(x,Object(r.a)({},n))})})}},117:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(17),c=n(0),a=n(54),i=n(83),o=function(e){var t=e.limit,n=e.offset,o=void 0===n?0:n,s=e.query,l=void 0===s?"":s,u=e.language,b=void 0===u?null:u,d=Object(i.b)(),j=d.data,f=d.loading,h=d.error,O=Object(c.useMemo)((function(){if(f||h||!(null===j||void 0===j?void 0:j.packages))return[];var e=j.packages.filter((function(e){if(b&&b!==a.d.TypeScript&&!Object.keys(e.languages).includes(b))return!1;if(l.length){var t=JSON.stringify(e).toLowerCase(),n=l.toLowerCase();if(!t.includes(n))return!1}return!0}));return Object(r.a)(e).sort((function(e,t){var n=new Date(e.metadata.date),r=new Date(t.metadata.date);return n===r?0:n<r?1:-1}))}),[null===j||void 0===j?void 0:j.packages,h,b,f,l]),p=O?Math.floor(O.length/t):0,g=Object(c.useMemo)((function(){var e=(o>p?p:o)*t,n=e+t;return O.slice(e,n)}),[t,o,p,O]);return Object(c.useMemo)((function(){return{loading:f,results:O,error:h,displayable:g,pageLimit:p}}),[g,h,f,p,O])}},118:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(4),c=n(0),a=n(18),i=n(108),o=function(){var e,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=Object(c.useState)(null!==(e=n.defaultQuery)&&void 0!==e?e:""),s=Object(r.a)(o,2),l=s[0],u=s[1],b=Object(c.useState)(null!==(t=n.defaultLanguage)&&void 0!==t?t:null),d=Object(r.a)(b,2),j=d[0],f=d[1],h=Object(a.g)(),O=h.push,p=function(e){e.preventDefault(),u(e.target.value)},g=Object(c.useCallback)((function(){O(Object(i.c)({language:j,query:l}))}),[j,O,l]),m=Object(c.useCallback)((function(e){null===e||void 0===e||e.preventDefault(),g()}),[g]);return Object(c.useMemo)((function(){return{language:j,onLanguageChange:f,onQueryChange:p,onSearch:g,onSubmit:m,query:l,setLanguage:f,setQuery:u}}),[j,g,m,l])}},13:function(e,t,n){"use strict";n.d(t,"a",(function(){return r})),n.d(t,"b",(function(){return c})),n.d(t,"c",(function(){return a}));var r={PACKAGES_PREFIX:"/data",CATALOG_SUFFIX:"/catalog.json",ASSEMBLY_SUFFIX:"/assembly.json",METADATA_SUFFIX:"/metadata.json",CONFIG:"/config.json"},c={LANGUAGE:"lang",OFFSET:"offset",SEARCH_QUERY:"q",SUBMODULE:"submodule"},a={FAQ:"/faq",HOME:"/",PACKAGES:"/packages",SEARCH:"/search",SITE_TERMS:"/terms"}},130:function(e,t,n){"use strict";n.d(t,"a",(function(){return h})),n.d(t,"b",(function(){return f}));var r=n(4),c=n(0),a=n(32),i=n.n(a),o=n(49),s=n(13),l={},u=function(){var e=Object(o.a)(i.a.mark((function e(){var t;return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch(s.a.CONFIG);case 2:if((t=e.sent).ok){e.next=6;break}return console.log("Failed to fetch application config, using default values"),e.abrupt("return",l);case 6:return e.abrupt("return",t.json().catch((function(e){return console.error(e),console.log("Invalid config response, using default values"),l})));case 7:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),b=n(84),d=n(1),j=Object(c.createContext)({loading:!1,data:void 0,error:void 0}),f=function(){return Object(c.useContext)(j)},h=function(e){var t=e.children,n=Object(b.a)(u),a=Object(r.a)(n,2),i=a[0],o=a[1];return Object(c.useEffect)((function(){i()}),[i]),Object(d.jsx)(j.Provider,{value:o,children:t})}},132:function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var r=n(4),c=n(0),a=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Object(c.useState)(e),a=Object(r.a)(n,2),i=a[0],o=a[1],s=t.delay,l=void 0===s?250:s,u=t.onChange;return Object(c.useEffect)((function(){var t=setTimeout((function(){o(e),null===u||void 0===u||u(e)}),l);return function(){clearTimeout(t)}}),[e,l,u]),i}},133:function(e,t,n){"use strict";n.d(t,"a",(function(){return l}));var r=n(6),c=n(22),a=n(21),i=n(207),o=n(1),s=["name","onClick"],l=Object(a.a)((function(e,t){var n=e.name,a=e.onClick,l=Object(c.a)(e,s);return Object(o.jsx)(i.a,Object(r.a)(Object(r.a)({alignItems:"center",display:"flex",fontSize:"lg",h:12,lineHeight:"base",listStyleType:"none",onClick:a,onKeyDown:function(e){"Enter"===e.key&&a()},px:4,ref:t,role:"option",sx:{":hover, :focus":{bg:"gray.100"}},tabIndex:0},l),{},{children:n}))}));l.displayName="SearchItem"},158:function(e,t,n){},165:function(e,t,n){"use strict";n.r(t);var r={};n.r(r),n.d(r,"initialize",(function(){return G})),n.d(r,"access",(function(){return L})),n.d(r,"checkForCookieConsent",(function(){return W})),n.d(r,"customizeCookies",(function(){return D})),n.d(r,"getConsentCookie",(function(){return N})),n.d(r,"hasConsent",(function(){return U}));var c,a,i=n(0),o=n.n(i),s=n(77),l=n.n(s),u=n(29),b=(n(158),n(141)),d=n(18),j=n(196),f=n(198),h=n(192),O=n(184),p=n(195),g=n(189),m=n(197),x=n(112),v=n(55),y=n(1),S="showing-dev-preview-banner",w=function(){var e,t=Object(h.a)({defaultIsOpen:JSON.parse(null!==(e=window.sessionStorage.getItem(S))&&void 0!==e?e:"true"),onClose:function(){return window.sessionStorage.setItem(S,"false")}}),n=t.isOpen,r=t.onClose;return Object(y.jsx)(O.a,{h:"max-content",children:Object(y.jsx)(p.a,{in:n,children:Object(y.jsxs)(x.a,{"aria-label":"Preview Banner",bg:"blue.500",border:"none",boxShadow:"none",color:"white",mt:4,mx:4,p:4,position:"relative",role:"alertdialog",children:[Object(y.jsx)(j.a,{h:5,left:4,position:"absolute",top:4,w:5}),Object(y.jsxs)(g.a,{fontSize:"md",mx:8,textAlign:"center",children:["This application is in Dev Preview. Some features may change. If you find any issues, please report them"," ",Object(y.jsx)(v.a,{color:"inherit",hasWarning:!1,href:"https://github.com/cdklabs/construct-hub-webapp/issues",textDecoration:"underline",children:"here"})]}),Object(y.jsx)(m.a,{"aria-label":"Dismiss banner",colorScheme:"white",icon:Object(y.jsx)(f.a,{}),onClick:r,position:"absolute",right:4,size:"xs",top:3,variant:"ghost"})]})})})},C=n(4),k=n(199),E=n(200),A=n(201),I=n(145),T=n(22),M=n(32),z=n.n(M),F=n(49),P=function(){new URLSearchParams(window.location.search).get("sb")},G=function(){var e=Object(F.a)(z.a.mark((function e(){return z.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new Promise((function(e,t){window.addEventListener("load",Object(F.a)(z.a.mark((function r(){var a,i,o;return z.a.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return r.prev=0,a={domain:window.location.hostname,language:navigator.language,__storeWriter:P()},r.next=4,n.e(12).then(n.t.bind(null,579,7));case 4:i=r.sent,o=i.AWSCShortbread,c=o(a),e(),r.next=13;break;case 10:r.prev=10,r.t0=r.catch(0),t(r.t0);case 13:case"end":return r.stop()}}),r,null,[[0,10]])}))))})));case 1:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),R=function(e){return function(){var t;if(!c)throw new Error("shortbread has not been initialized");return(t=c)[e].apply(t,arguments)}},L=R("access"),W=R("checkForCookieConsent"),D=R("customizeCookies"),N=R("getConsentCookie"),U=R("hasConsent"),H=G,_=Object(T.a)(r,["initialize"]),B=Object(i.createContext)({}),V=function(e){var t=e.children,n=Object(i.useState)(!1),r=Object(C.a)(n,2),c=r[0],a=r[1];return Object(i.useEffect)((function(){var e=!1;return H().then((function(){e||(_.checkForCookieConsent(),a(!0))})).catch((function(t){console.error(t),e||a(!1)})),function(){e=!0,a(!1)}}),[]),Object(y.jsx)(B.Provider,{value:c?_:{},children:t})},q=n(80),J=n(13),K={SERVICE_TERMS:{display:"AWS Service Terms",url:"https://aws.amazon.com/service-terms/",testId:"service-terms"},PRIVACY:{display:"Privacy",url:"https://aws.amazon.com/privacy/",testId:"privacy"},SITE_TERMS:{display:"Site Terms",url:J.c.SITE_TERMS,testId:"site-terms",isExternal:!1},LEGAL:{display:"Legal",url:"https://aws.amazon.com/legal/",testId:"legal"}},Q=n(17),X=n(57),Y=Object(X.a)("footer",["container","links","disclaimer","manageCookies"].concat(Object(Q.a)(Object.values(K).map((function(e){return e.testId}))))),Z=function(){var e=Object(i.useContext)(B).customizeCookies;return Object(y.jsxs)(k.a,{align:"center",as:"footer",bg:"blue.800",color:"white","data-testid":Y.container,direction:"column",justify:"center",py:4,children:[Object(y.jsx)(E.a,{columnGap:6,columns:[1,2,4],"data-testid":Y.links,children:Object.entries(K).map((function(e,t){var n=Object(C.a)(e,2),r=n[0],c=n[1],a=c.display,i=c.isExternal,o=void 0===i||i,s=c.testId,l=c.url;return Object(y.jsxs)(k.a,{align:"center",direction:{base:"column",md:"row"},children:[Object(y.jsx)(O.a,{display:{base:"none",md:0!==t?"initial":"none"},h:5,children:Object(y.jsx)(A.a,{borderColor:"white",mr:6,orientation:"vertical"})}),o?Object(y.jsx)(v.a,{color:"currentcolor","data-testid":Y[s],hasWarning:!1,href:l,lineHeight:10,mx:"auto",children:a}):Object(y.jsx)(q.a,{color:"currentcolor","data-testid":Y[s],lineHeight:10,mx:"auto",to:l,children:a}),Object(y.jsx)(O.a,{display:{base:"none",sm:t<2?"initial":"none",md:"none"},w:"100%",children:Object(y.jsx)(A.a,{borderColor:"white"})})]},r)}))}),Object(y.jsx)(g.a,{"data-testid":Y.disclaimer,fontSize:"xs",mt:4,children:"2021 Amazon Web Services, Inc. All rights reserved."}),Object(y.jsx)(I.a,{color:"white","data-testid":Y.manageCookies,fontSize:"xs",fontWeight:"normal",mt:4,onClick:e,variant:"link",children:"Manage Cookies"})]})},$=n(6),ee=[{display:"FAQ",isNavLink:!0,url:"/faq"},{display:"Construct Hub on GitHub",url:"https://github.com/cdklabs/construct-hub"},{display:"Issues on GitHub",url:"https://github.com/cdklabs/construct-hub/issues"}],te=[{display:"AWS CDK",links:[{display:"Home",url:"https://aws.amazon.com/cdk/"},{display:"Getting Started",url:"https://docs.aws.amazon.com/cdk/latest/guide/getting_started.html"},{display:"Workshop",url:"https://cdkworkshop.com/"},{display:"Best Practices",url:"https://aws.amazon.com/blogs/devops/best-practices-for-developing-cloud-applications-with-aws-cdk"}]},{display:"CDK for Terraform",links:[{display:"Getting Started",url:"https://learn.hashicorp.com/tutorials/terraform/cdktf"},{display:"Tutorials",url:"https://learn.hashicorp.com/collections/terraform/cdktf"}]},{display:"CDK for Kubernetes",links:[{display:"Home",url:"https://cdk8s.io"},{display:"Getting Started",url:"https://cdk8s.io/docs/latest/getting-started"},{display:"Documentation",url:"https://cdk8s.io/docs/latest"},{display:"API Reference",url:"https://cdk8s.io/docs/latest/reference/index.html"}]},{display:"Community",links:[{display:"Slack",url:"https://join.slack.com/t/cdk-dev/shared_invite/zt-mso6p56d-qJp7SOTBvMaQuDrx7R2wHg"},{display:"Community Hub",url:"https://cdk.dev"}]}],ne=n(212),re=["children"],ce=function(e){var t=e.children,n=Object(T.a)(e,re);return Object(y.jsx)(ne.a,Object($.a)(Object($.a)({colorScheme:"blue.800",strategy:"fixed"},n),{},{children:t}))},ae=n(21),ie=["items"],oe=function(e){var t=e.display,n=e.isNavLink,r=e.url;return n?Object(y.jsx)(q.a,{color:"blue.500",to:r,children:t}):Object(y.jsx)(v.a,{alignItems:"center",display:"flex",hasWarning:!1,href:r,justifyContent:"space-between",w:"100%",children:t})},se=Object(ae.a)((function(e,t){var n=e.items,r=Object(T.a)(e,ie);return Object(y.jsx)(ne.f,Object($.a)(Object($.a)({},r),{},{ref:t,children:n.map((function(e,t){return"links"in e?Object(y.jsxs)(i.Fragment,{children:[Object(y.jsx)(ne.d,{align:"left",title:e.display,children:e.links.map((function(e,t){return Object(y.jsx)(ne.e,{children:Object(y.jsx)(oe,Object($.a)({},e))},"".concat(e.display,"-").concat(t))}))}),t!==n.length-1&&Object(y.jsx)(ne.c,{})]},"".concat(e.display,"-").concat(t)):Object(y.jsx)(ne.e,{children:Object(y.jsx)(oe,Object($.a)({},e))},"".concat(e.display,"-").concat(t))}))}))})),le=n(204),ue=["children"],be=Object(ae.a)((function(e,t){var n=e.children,r=Object(T.a)(e,ue);return Object(y.jsx)(ne.b,Object($.a)(Object($.a)({as:I.a,color:"blue.800",fontWeight:"500",ref:t,rightIcon:Object(y.jsx)(le.a,{h:6,w:6}),size:"md",variant:"link"},r),{},{children:n}))})),de=Object(X.a)("header",["container","title","gettingStartedTrigger","gettingStartedMenu","resourcesTrigger","resourcesMenu","navOpen","navClose","searchButton","searchIcon","mobileNav"]),je=function(){return Object(y.jsxs)(ce,{children:[Object(y.jsx)(be,{"data-testid":de.gettingStartedTrigger,children:"Getting Started"}),Object(y.jsx)(se,{"data-testid":de.gettingStartedMenu,items:ee})]})},fe=n(206),he=n(219),Oe=n(220),pe=n(44),ge=n(221),me=function(){return Object(y.jsxs)(ce,{children:[Object(y.jsx)(be,{"data-testid":de.resourcesTrigger,children:"Resources"}),Object(y.jsx)(se,{"data-testid":de.resourcesMenu,items:te})]})},xe=n(205),ve=function(){return Object(y.jsx)(xe.a,{as:"h1",color:"blue.800","data-testid":de.title,size:"lg",children:Object(y.jsxs)(u.b,{to:"/",children:[Object(y.jsx)(O.a,{as:"span",color:"blue.500",children:"Construct"})," ","Hub"]})})},ye=function(e){var t=e.isOpen,n=e.onClose;return Object(y.jsx)(he.a,{children:Object(y.jsxs)(Oe.a,{isOpen:t,onClose:n,placement:"left",size:"xs",children:[Object(y.jsx)(pe.h,{}),Object(y.jsxs)(Oe.b,{"data-testid":de.mobileNav,children:[Object(y.jsx)(pe.c,{}),Object(y.jsx)(pe.g,{display:"flex",justifyContent:"center",children:Object(y.jsx)(ve,{})}),Object(y.jsx)(pe.b,{children:Object(y.jsxs)(ge.a,{align:"start",justify:"start",spacing:4,children:[Object(y.jsx)(je,{}),Object(y.jsx)(me,{})]})})]})]})})},Se=function(){var e=Object(h.a)();return Object(y.jsxs)(y.Fragment,{children:[Object(y.jsx)(m.a,{"aria-label":"Navigation Menu",borderRadius:"md","data-testid":de.navOpen,display:{md:"none"},icon:Object(y.jsx)(fe.a,{}),onClick:e.onOpen,variant:"ghost"}),Object(y.jsx)(ye,Object($.a)({},e))]})},we=n(208),Ce=n(207),ke=n(117),Ee=n(118),Ae=n(132),Ie=n(111),Te=n(116),Me=n(85),ze=n(133),Fe=Object(X.a)("searchModal",["container"]),Pe=["onSubmit"],Ge=function(e){var t=e.isOpen,n=e.onClose,r=Object(d.g)().push,c=Object(Ie.a)(),a=Object(C.a)(c,1)[0],o=Object(Ee.a)(),s=o.onSubmit,l=Object(T.a)(o,Pe),u=Object(Ae.a)({query:l.query,language:l.language}),b=u.query,j=u.language,f=Object(ke.a)({limit:5,offset:0,query:b,language:j}).displayable,h=(b||j)&&f.length>0,O=Object(i.useRef)(null);return Object(y.jsx)(he.a,{children:Object(y.jsx)(pe.a,{initialFocusRef:O,isOpen:t,onClose:n,children:Object(y.jsx)(pe.h,{children:Object(y.jsxs)(pe.d,{"data-testid":Fe.container,children:[Object(y.jsx)(pe.c,{}),Object(y.jsx)(pe.g,{children:"Search modules or providers"}),Object(y.jsxs)(pe.b,{children:[Object(y.jsx)(Me.a,{onSubmit:function(e){n(),s(e)},pb:4,children:Object(y.jsx)(ge.a,{spacing:4,children:Object(y.jsx)(Te.b,Object($.a)({ref:O},l))})}),h&&Object(y.jsxs)(y.Fragment,{children:[Object(y.jsx)(A.a,{}),Object(y.jsx)(xe.a,{fontSize:"md",my:4,textAlign:"center",children:"Suggestions"}),Object(y.jsx)(Ce.c,{children:f.map((function(e){return Object(y.jsx)(ze.a,{name:e.name,onClick:function(){return t="".concat(J.c.PACKAGES,"/").concat(e.name,"/v/").concat(e.version,"?").concat(J.b.LANGUAGE,"=").concat(null!==j&&void 0!==j?j:a),n(),void r(t);var t}},e.name)}))})]})]})]})})})})},Re=function(){var e=Object(h.a)(),t=Object(d.h)().pathname;return[J.c.HOME,J.c.SEARCH].some((function(e){return e===t}))?null:Object(y.jsxs)(y.Fragment,{children:[Object(y.jsx)(I.a,{align:"center",color:"gray.600",colorScheme:"gray","data-testid":de.searchButton,display:{base:"none",md:"flex"},fontWeight:"medium",justifyContent:"space-between",m:"0 auto",maxW:"500px",onClick:e.onOpen,rightIcon:Object(y.jsx)(we.a,{color:"gray.600",ml:4}),variant:"outline",w:"100%",children:"Search Constructs..."}),Object(y.jsx)(m.a,{"aria-label":"Search Icon",borderRadius:"md","data-testid":de.searchIcon,display:{base:"initial",md:"none"},icon:Object(y.jsx)(we.a,{color:"gray.600"}),onClick:e.onOpen,variant:"ghost"}),Object(y.jsx)(Ge,Object($.a)({},e))]})},Le=function(e){return Object(y.jsx)(b.b,Object($.a)({align:"center",justify:"center",rowStart:1},e))},We=function(){return Object(y.jsxs)(b.a,{alignItems:"center",as:"header",bg:"white",boxShadow:"base","data-testid":de.container,gap:4,gridTemplateColumns:{base:"1fr 3fr 1fr",md:"minmax(200px, 2fr) minmax(200px, 3fr) 2fr"},gridTemplateRows:"1fr",maxW:"100vw",position:"sticky",px:4,py:4,top:0,w:"100%",zIndex:"sticky",children:[Object(y.jsx)(Le,{colStart:{base:2,md:1},justifySelf:{base:"center",md:"start"},children:Object(y.jsx)(ve,{})}),Object(y.jsx)(Le,{colStart:{base:3,md:2},justifySelf:{base:"end",md:"stretch"},children:Object(y.jsx)(Re,{})}),Object(y.jsxs)(Le,{colStart:{base:1,md:3},justifySelf:{base:"start",md:"end"},children:[Object(y.jsxs)(b.a,{display:{base:"none",md:"grid"},gap:4,gridTemplateColumns:"1fr 1fr",gridTemplateRows:"1fr",placeItems:"center",w:"100%",children:[Object(y.jsx)(O.a,{children:Object(y.jsx)(je,{})}),Object(y.jsx)(O.a,{children:Object(y.jsx)(me,{})})]}),Object(y.jsx)(Se,{})]})]})},De=n(209),Ne=n(191),Ue=function(){return Object(y.jsx)(De.a,{children:Object(y.jsx)(Ne.a,{size:"xl"})})},He=["component"],_e=function(e){var t=e.component,n=Object(T.a)(e,He);return Object(y.jsx)(d.b,Object($.a)(Object($.a)({},n),{},{children:Object(y.jsx)(i.Suspense,{fallback:Object(y.jsx)(Ue,{}),children:Object(y.jsx)(t,{})})}))},Be=Object(i.lazy)((function(){return Promise.all([n.e(0),n.e(10)]).then(n.bind(null,585))})),Ve=Object(i.lazy)((function(){return Promise.all([n.e(0),n.e(1),n.e(7)]).then(n.bind(null,586))})),qe=Object(i.lazy)((function(){return Promise.all([n.e(0),n.e(9)]).then(n.bind(null,286))})),Je=Object(i.lazy)((function(){return Promise.all([n.e(0),n.e(1),n.e(4),n.e(6)]).then(n.bind(null,581))})),Ke=Object(i.lazy)((function(){return Promise.all([n.e(0),n.e(1),n.e(8)]).then(n.bind(null,584))})),Qe=Object(i.lazy)((function(){return Promise.all([n.e(0),n.e(11)]).then(n.bind(null,587))})),Xe=function(){return Object(y.jsxs)(b.a,{as:"main",bg:"bgPrimary",gridTemplateColumns:"1fr",gridTemplateRows:"auto auto 1fr auto",h:"100%",inset:0,maxW:"100vw",overflow:"hidden auto",position:"fixed",children:[Object(y.jsx)(We,{}),Object(y.jsx)(w,{}),Object(y.jsxs)(d.d,{children:[Object(y.jsx)(_e,{component:Be,exact:!0,path:J.c.FAQ}),Object(y.jsx)(_e,{component:Ve,exact:!0,path:J.c.HOME}),Object(y.jsx)(_e,{component:Qe,exact:!0,path:J.c.SITE_TERMS}),Object(y.jsx)(_e,{component:Je,path:J.c.PACKAGES}),Object(y.jsx)(_e,{component:Ke,exact:!0,path:J.c.SEARCH}),Object(y.jsx)(_e,{component:qe,path:"*"})]}),Object(y.jsx)(Z,{})]})},Ye=n(109),Ze=n(83),$e=n(130),et=n(98),tt=n(214),nt=n(210),rt=n(94),ct=rt.theme.components.Code,at=Object($.a)(Object($.a)({},ct),{},{variants:Object($.a)(Object($.a)({},ct.variants),{},{"code-block":Object($.a)(Object($.a)({},ct.variants.subtle),{},{display:"block",whiteSpace:"pre"})})}),it=function(e,t){return function(n){var r="function"===typeof e?e(n):e;return Object($.a)(Object($.a)({},r),{},{container:Object($.a)(Object($.a)({},r.container),t)})}},ot=rt.theme.components.Tag,st=Object($.a)(Object($.a)({},ot),{},{baseStyle:{container:{fontWeight:"normal"}},variants:Object($.a)(Object($.a)({},ot.variants),{},{subtle:it(ot.variants.subtle,{background:"#F2F2F2",color:"blue.800"}),official:it(ot.variants.subtle,{background:"rgba(33, 150, 83, 0.1)",color:"#219653"})})}),lt=Object($.a)(Object($.a)({},rt.theme.components),{},{Code:at,Divider:{defaultProps:{borderColor:"rgba(0, 124, 253, 0.15)"}},Tag:st}),ut={borders:{base:"1px solid rgba(0, 124, 253, 0.15)"},colors:Object($.a)(Object($.a)({},rt.theme.colors),{},{blue:{50:"#dcf3ff",100:"#aed9ff",200:"#7dbeff",300:"#4aa4ff",400:"#1a8aff",500:"#0070e6",600:"#0057b4",700:"#003e82",800:"#002551",900:"#000d21"},bgPrimary:"#F8F8F8"}),radii:{card:"0.75rem"},sizes:{container:{"2xl":"1920px"}},shadows:{base:"0px 4px 15px rgba(40, 132, 178, 0.15)"}},bt=Object(nt.a)(Object($.a)(Object($.a)({},ut),{},{components:lt})),dt=function(e){var t=e.children;return Object(y.jsx)(tt.a,{resetCSS:!0,theme:bt,children:t})},jt=Boolean("localhost"===window.location.hostname||"[::1]"===window.location.hostname||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/)),ft=function(e,t){navigator.serviceWorker.register(e).then((function(e){e.onupdatefound=function(){var n=e.installing;null!=n&&(n.onstatechange=function(){"installed"===n.state&&(navigator.serviceWorker.controller?(console.log("New content is available and will be used when all tabs for this page are closed. See https://cra.link/PWA."),t&&t.onUpdate&&t.onUpdate(e)):(console.log("Content is cached for offline use."),t&&t.onSuccess&&t.onSuccess(e)))})}})).catch((function(e){console.error("Error during service worker registration:",e)}))};l.a.render(Object(y.jsx)(o.a.StrictMode,{children:Object(y.jsx)($e.a,{children:Object(y.jsx)(V,{children:Object(y.jsx)(u.a,{children:Object(y.jsx)(Ye.a,{children:Object(y.jsx)(dt,{children:Object(y.jsx)(et.a,{children:Object(y.jsx)(Ze.a,{children:Object(y.jsx)(Xe,{})})})})})})})})}),document.getElementById("root")),a&&a instanceof Function&&n.e(13).then(n.bind(null,580)).then((function(e){var t=e.getCLS,n=e.getFID,r=e.getFCP,c=e.getLCP,i=e.getTTFB;t(a),n(a),r(a),c(a),i(a)}),(function(){})),function(e){if("serviceWorker"in navigator){if(new URL("",window.location.href).origin!==window.location.origin)return;window.addEventListener("load",(function(){var t="".concat("","/service-worker.js");jt?(!function(e,t){fetch(e,{headers:{"Service-Worker":"script"}}).then((function(n){var r=n.headers.get("content-type");404===n.status||null!=r&&-1===r.indexOf("javascript")?navigator.serviceWorker.ready.then((function(e){e.unregister().then((function(){window.location.reload()}))})):ft(e,t)})).catch((function(){console.log("No internet connection found. App is running in offline mode.")}))}(t,e),navigator.serviceWorker.ready.then((function(){console.log("This web app is being served cache-first by a service worker. To learn more, visit https://cra.link/PWA")}))):ft(t,e)}))}}()},54:function(e,t,n){"use strict";n.d(t,"d",(function(){return a})),n.d(t,"a",(function(){return u})),n.d(t,"b",(function(){return b})),n.d(t,"e",(function(){return d})),n.d(t,"c",(function(){return j}));var r,c,a,i=n(5),o=n(6),s=n(99),l=n(1);!function(e){e.DotNet="dotnet",e.TypeScript="typescript",e.Python="python",e.Go="golang",e.Java="java"}(a||(a={}));var u=[a.TypeScript,a.Python,a.Java,a.Go,a.DotNet],b=(r={},Object(i.a)(r,a.TypeScript,"TypeScript"),Object(i.a)(r,a.Python,"Python"),Object(i.a)(r,a.Java,"Java"),Object(i.a)(r,a.Go,"Go"),Object(i.a)(r,a.DotNet,".NET"),r),d=new Set([a.Python,a.TypeScript]),j=(c={},Object(i.a)(c,a.TypeScript,{name:b.typescript,icon:function(e){return Object(l.jsxs)(s.a,Object(o.a)(Object(o.a)({},e),{},{"aria-hidden":"true",transform:"rotate(360)",viewBox:"0 0 256 256",children:[Object(l.jsx)("path",{d:"M0 128v128h256V0H0z",fill:"#007ACC"}),Object(l.jsx)("path",{d:"M56.611 128.85l-.081 10.483h33.32v94.68h23.57v-94.68h33.32v-10.28c0-5.69-.122-10.444-.284-10.566-.122-.162-20.399-.244-44.983-.203l-44.739.122-.122 10.443zM206.567 118.108c6.501 1.626 11.459 4.51 16.01 9.224 2.357 2.52 5.851 7.112 6.136 8.209.08.325-11.053 7.802-17.798 11.987-.244.163-1.22-.894-2.317-2.52-3.291-4.794-6.745-6.867-12.028-7.232-7.76-.529-12.759 3.535-12.718 10.32 0 1.992.284 3.17 1.097 4.796 1.707 3.535 4.876 5.648 14.832 9.955 18.326 7.884 26.168 13.085 31.045 20.48 5.445 8.25 6.664 21.415 2.966 31.208-4.063 10.646-14.14 17.88-28.323 20.277-4.388.772-14.79.65-19.504-.203-10.28-1.829-20.033-6.908-26.047-13.572-2.357-2.601-6.949-9.387-6.664-9.875.122-.162 1.178-.812 2.356-1.503 1.138-.65 5.446-3.13 9.509-5.486l7.355-4.267 1.544 2.276c2.154 3.291 6.867 7.802 9.712 9.305 8.167 4.308 19.383 3.698 24.909-1.26 2.357-2.153 3.332-4.388 3.332-7.68 0-2.966-.366-4.266-1.91-6.5-1.99-2.845-6.054-5.243-17.595-10.24-13.206-5.69-18.895-9.225-24.096-14.833-3.007-3.25-5.852-8.452-7.03-12.8-.975-3.616-1.22-12.678-.447-16.335 2.723-12.76 12.353-21.658 26.25-24.3 4.51-.853 14.994-.528 19.424.57z",fill:"#FFF"})]}))}}),Object(i.a)(c,a.Python,{name:b.python,icon:function(e){return Object(l.jsxs)(s.a,Object(o.a)(Object(o.a)({},e),{},{version:"1.0",viewBox:"0 0 110.421 109.846",children:[Object(l.jsxs)("defs",{children:[Object(l.jsxs)("linearGradient",{id:"a",children:[Object(l.jsx)("stop",{offset:"0",stopColor:"#ffe052"}),Object(l.jsx)("stop",{offset:"1",stopColor:"#ffc331"})]}),Object(l.jsx)("linearGradient",{gradientUnits:"userSpaceOnUse",id:"d",x1:"89.137",x2:"147.777",xlinkHref:"#a",y1:"111.921",y2:"168.101"}),Object(l.jsxs)("linearGradient",{id:"b",children:[Object(l.jsx)("stop",{offset:"0",stopColor:"#387eb8"}),Object(l.jsx)("stop",{offset:"1",stopColor:"#366994"})]}),Object(l.jsx)("linearGradient",{gradientUnits:"userSpaceOnUse",id:"c",x1:"55.549",x2:"110.149",xlinkHref:"#b",y1:"77.07",y2:"131.853"})]}),Object(l.jsxs)("g",{color:"#000",children:[Object(l.jsx)("path",{d:"M99.75 67.469c-28.032 0-26.281 12.156-26.281 12.156l.031 12.594h26.75V96H62.875s-17.938-2.034-17.938 26.25 15.657 27.281 15.657 27.281h9.343v-13.125s-.503-15.656 15.407-15.656h26.531s14.906.241 14.906-14.406V82.125s2.263-14.656-27.031-14.656zM85 75.938a4.808 4.808 0 014.813 4.812A4.808 4.808 0 0185 85.563a4.808 4.808 0 01-4.813-4.813A4.808 4.808 0 0185 75.937z",fill:"url(#c)",overflow:"visible",style:{marker:"none"},transform:"translate(-44.938 -67.469)"}),Object(l.jsx)("path",{d:"M100.546 177.315c28.032 0 26.281-12.156 26.281-12.156l-.03-12.594h-26.75v-3.781h37.374s17.938 2.034 17.938-26.25c0-28.285-15.657-27.282-15.657-27.282h-9.343v13.125s.503 15.657-15.407 15.657h-26.53s-14.907-.241-14.907 14.406v24.219s-2.263 14.656 27.031 14.656zm14.75-8.469a4.808 4.808 0 01-4.812-4.812 4.808 4.808 0 014.812-4.813 4.808 4.808 0 014.813 4.813 4.808 4.808 0 01-4.813 4.812z",fill:"url(#d)",overflow:"visible",style:{marker:"none"},transform:"translate(-44.938 -67.469)"})]})]}))}}),Object(i.a)(c,a.Java,{name:b.java,icon:function(e){return Object(l.jsxs)(s.a,Object(o.a)(Object(o.a)({},e),{},{"aria-hidden":"true",transform:"rotate(360)",viewBox:"0 0 256 346",children:[Object(l.jsx)("path",{d:"M82.554 267.473s-13.198 7.675 9.393 10.272c27.369 3.122 41.356 2.675 71.517-3.034 0 0 7.93 4.972 19.003 9.279-67.611 28.977-153.019-1.679-99.913-16.517M74.292 229.659s-14.803 10.958 7.805 13.296c29.236 3.016 52.324 3.263 92.276-4.43 0 0 5.526 5.602 14.215 8.666-81.747 23.904-172.798 1.885-114.296-17.532",fill:"#5382A1"}),Object(l.jsx)("path",{d:"M143.942 165.515c16.66 19.18-4.377 36.44-4.377 36.44s42.301-21.837 22.874-49.183c-18.144-25.5-32.059-38.172 43.268-81.858 0 0-118.238 29.53-61.765 94.6",fill:"#E76F00"}),Object(l.jsx)("path",{d:"M233.364 295.442s9.767 8.047-10.757 14.273c-39.026 11.823-162.432 15.393-196.714.471-12.323-5.36 10.787-12.8 18.056-14.362 7.581-1.644 11.914-1.337 11.914-1.337-13.705-9.655-88.583 18.957-38.034 27.15 137.853 22.356 251.292-10.066 215.535-26.195M88.9 190.48s-62.771 14.91-22.228 20.323c17.118 2.292 51.243 1.774 83.03-.89 25.978-2.19 52.063-6.85 52.063-6.85s-9.16 3.923-15.787 8.448c-63.744 16.765-186.886 8.966-151.435-8.183 29.981-14.492 54.358-12.848 54.358-12.848M201.506 253.422c64.8-33.672 34.839-66.03 13.927-61.67-5.126 1.066-7.411 1.99-7.411 1.99s1.903-2.98 5.537-4.27c41.37-14.545 73.187 42.897-13.355 65.647 0 .001 1.003-.895 1.302-1.697",fill:"#5382A1"}),Object(l.jsx)("path",{d:"M162.439.371s35.887 35.9-34.037 91.101c-56.071 44.282-12.786 69.53-.023 98.377-32.73-29.53-56.75-55.526-40.635-79.72C111.395 74.612 176.918 57.393 162.439.37",fill:"#E76F00"}),Object(l.jsx)("path",{d:"M95.268 344.665c62.199 3.982 157.712-2.209 159.974-31.64 0 0-4.348 11.158-51.404 20.018-53.088 9.99-118.564 8.824-157.399 2.421.001 0 7.95 6.58 48.83 9.201",fill:"#5382A1"})]}))}}),Object(i.a)(c,a.Go,{name:b.golang,icon:function(e){return Object(l.jsx)(s.a,Object(o.a)(Object(o.a)({},e),{},{"aria-hidden":"true",transform:"rotate(360)",viewBox:"0 0 512 192",children:Object(l.jsx)("path",{d:"M292.533 13.295l1.124.75c13.212 8.725 22.685 20.691 28.917 35.15 1.496 2.243.499 3.49-2.493 4.237l-5.063 1.296c-11.447 2.949-20.53 5.429-31.827 8.378l-6.443 1.678c-2.32.574-2.96.333-5.428-2.477l-.348-.399c-3.519-3.988-6.155-6.652-10.817-9.03l-.899-.443c-15.705-7.727-30.911-5.484-45.12 3.74-16.952 10.968-25.677 27.172-25.428 47.364.25 19.942 13.96 36.395 33.654 39.137 16.951 2.244 31.16-3.739 42.378-16.452 2.244-2.743 4.238-5.734 6.73-9.224h-48.11c-5.235 0-6.481-3.24-4.736-7.478l.864-2.035c3.204-7.454 8.173-18.168 11.4-24.294l.704-1.319c.862-1.494 2.612-3.513 5.977-3.513h80.224c3.603-11.415 9.449-22.201 17.246-32.407 18.198-23.931 40.135-36.396 69.8-41.63 25.427-4.488 49.359-1.995 71.046 12.713 19.694 13.461 31.909 31.66 35.15 55.59 4.237 33.654-5.485 61.075-28.668 84.508-16.453 16.702-36.645 27.172-59.829 31.908-6.73 1.247-13.461 1.496-19.942 2.244-22.685-.499-43.376-6.98-60.826-21.937-12.273-10.61-20.727-23.648-24.928-38.828a104.937 104.937 0 01-10.47 16.89c-17.949 23.683-41.381 38.39-71.046 42.38-24.43 3.24-47.115-1.497-67.058-16.454-18.447-13.96-28.917-32.407-31.66-55.34-3.24-27.173 4.737-51.603 21.19-73.041 17.7-23.184 41.132-37.891 69.8-43.126 22.999-4.16 45.037-1.595 64.936 11.464zM411.12 49.017l-.798.178c-23.183 5.235-38.14 19.942-43.624 43.375-4.488 19.444 4.985 39.138 22.934 47.115 13.71 5.983 27.421 5.235 40.633-1.496 19.694-10.22 30.413-26.175 31.66-47.613-.25-3.24-.25-5.734-.749-8.227-4.436-24.401-26.664-38.324-50.056-33.332zM116.416 94.564c.997 0 1.496.748 1.496 1.745l-.499 5.983c0 .997-.997 1.745-1.745 1.745l-54.344-.249c-.997 0-1.246-.748-.748-1.496l3.49-6.232c.499-.748 1.496-1.496 2.493-1.496h49.857zM121.9 71.63c.997 0 1.496.748 1.247 1.496l-1.995 5.983c-.249.997-1.246 1.495-2.243 1.495l-117.912.25c-.997 0-1.246-.499-.748-1.247l5.235-6.73c.499-.748 1.745-1.247 2.742-1.247H121.9zm12.963-22.934c.997 0 1.246.748.748 1.496l-4.238 6.481c-.499.748-1.745 1.496-2.493 1.496l-90.24-.25c-.998 0-1.247-.498-.749-1.246l5.235-6.73c.499-.748 1.745-1.247 2.742-1.247h88.995z",fill:"#00ACD7"})}))}}),Object(i.a)(c,a.DotNet,{name:b.dotnet,icon:function(e){return Object(l.jsx)(s.a,Object(o.a)(Object(o.a)({},e),{},{"aria-hidden":"true",transform:"rotate(360)",viewBox:"0 0 32 32",children:Object(l.jsx)("path",{d:"M4.224 10.089v11.667h1.365v-8.438a12.58 12.58 0 00-.068-1.599h.052c.099.255.224.5.37.729l6 9.302h1.672V10.089h-1.359v8.203c-.016.573.016 1.146.083 1.714h-.031a13.986 13.986 0 00-.474-.781L5.995 10.09zm12.417 0v11.667h6.203l.005-1.281h-4.813v-4.047h4.214v-1.229h-4.214v-3.875h4.521V10.09zm7.25 0v1.234h3.354v10.432h1.365V11.323h3.391v-1.234zm-23.021 10a.86.86 0 00-.609.276.91.91 0 00-.26.641.901.901 0 001.542.641c.172-.167.271-.401.271-.641s-.099-.474-.271-.641a.876.876 0 00-.641-.276H.871z",fill:"#626262"})}))}}),c)},55:function(e,t,n){"use strict";n.d(t,"a",(function(){return b}));var r=n(6),c=n(22),a=n(193),i=n(21),o=n(194),s=n(98),l=n(1),u=["children","hasIcon","hasWarning","href","onClick","noFollow"],b=Object(i.a)((function(e,t){var n=e.children,i=e.hasIcon,b=void 0===i||i,d=e.hasWarning,j=void 0===d||d,f=e.href,h=e.onClick,O=e.noFollow,p=Object(c.a)(e,u),g=Object(s.b)(),m="noopener noreferrer";return(j||O)&&(m+=" nofollow"),Object(l.jsxs)(o.a,Object(r.a)(Object(r.a)({color:"blue.500",href:f,isExternal:!0,onClick:j?g({href:f,onClick:h}):h,ref:t,rel:m},p),{},{children:[n," ",b&&Object(l.jsx)(a.a,{mb:1,ml:2})]}))}));b.displayName="ExternalLink"},57:function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r=function(e,t){return t.reduce((function(t,n){return t[n]="".concat(e,"-").concat(n),t}),{})}},80:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(6),c=n(194),a=n(29),i=n(1),o=function(e){return Object(i.jsx)(c.a,Object(r.a)({as:a.b},e))}},83:function(e,t,n){"use strict";n.d(t,"b",(function(){return j})),n.d(t,"a",(function(){return f}));var r=n(4),c=n(0),a=n(32),i=n.n(a),o=n(49),s=n(13),l=function(){var e=Object(o.a)(i.a.mark((function e(){var t;return i.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch(s.a.CATALOG_SUFFIX);case 2:if((t=e.sent).ok){e.next=6;break}throw console.error(t.statusText),new Error("Failed fetching packages index: ".concat(t.statusText));case 6:return e.abrupt("return",t.json());case 7:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),u=n(84),b=n(1),d=Object(c.createContext)({loading:!1,data:void 0,error:void 0}),j=function(){return Object(c.useContext)(d)},f=function(e){var t=e.children,n=Object(u.a)(l),a=Object(r.a)(n,2),i=a[0],o=a[1];return Object(c.useEffect)((function(){i()}),[i]),Object(b.jsx)(d.Provider,{value:o,children:t})}},84:function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var r=n(32),c=n.n(r),a=n(49),i=n(4),o=n(0),s=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.initialValue,r=t.onSuccess,s=t.onError,l=Object(o.useState)(!1),u=Object(i.a)(l,2),b=u[0],d=u[1],j=Object(o.useState)(n),f=Object(i.a)(j,2),h=f[0],O=f[1],p=Object(o.useState)(),g=Object(i.a)(p,2),m=g[0],x=g[1],v=Object(o.useRef)(!1);Object(o.useEffect)((function(){return v.current=!0,function(){v.current=!1}}),[]);var y=Object(o.useCallback)(Object(a.a)(c.a.mark((function t(){var a,i=arguments;return c.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(v.current){t.next=2;break}return t.abrupt("return");case 2:return d(!0),x(void 0),t.prev=4,t.next=7,e.apply(void 0,i);case 7:a=t.sent,null===r||void 0===r||r(a),v.current&&(O(a),d(!1)),t.next=17;break;case 12:t.prev=12,t.t0=t.catch(4),console.error(t.t0),null===s||void 0===s||s(t.t0),v.current&&(O(n),x(t.t0),d(!1));case 17:case"end":return t.stop()}}),t,null,[[4,12]])}))),[s,r]);return Object(o.useMemo)((function(){return[y,{data:h,loading:b,error:m}]}),[y,h,b,m])}},85:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(6),c=n(21),a=n(25),i=n(1),o=Object(c.a)((function(e,t){return Object(i.jsx)(a.a.form,Object(r.a)(Object(r.a)({},e),{},{ref:t}))}));o.displayName="Form"},98:function(e,t,n){"use strict";n.d(t,"b",(function(){return g})),n.d(t,"a",(function(){return m}));var r=n(6),c=n(4),a=n(192),i=n(0),o="prefersWarnOnExternalLinkClick",s=n(193),l=n(44),u=n(189),b=n(213),d=n(145),j=n(215),f=n(55),h=n(1),O=function(e){var t=e.href,n=e.isOpen,r=e.onClick,a=e.onClose,O=e.setShouldWarn,p=Object(i.useState)(!0),g=Object(c.a)(p,2),m=g[0],x=g[1];return Object(h.jsx)(l.a,{closeOnOverlayClick:!1,isOpen:n,onClose:a,children:Object(h.jsx)(l.h,{children:Object(h.jsxs)(l.d,{color:"blue.800",children:[Object(h.jsx)(l.g,{children:"Confirm"}),Object(h.jsxs)(l.b,{children:[Object(h.jsx)(u.a,{fontSize:"lg",mb:2,children:"This link is taking you to an external site"}),Object(h.jsx)(u.a,{bg:"gray.100",borderRadius:"sm",color:"blue.500",fontSize:"sm",mb:4,p:1,children:t}),Object(h.jsx)(b.a,{onChange:function(e){var t=!e.target.checked;x(t)},children:"Do not show this warning again."})]}),Object(h.jsxs)(l.f,{children:[Object(h.jsx)(d.a,{onClick:function(){x(!0),a()},variant:"ghost",children:"Cancel"}),Object(h.jsx)(j.a,{hasArrow:!0,label:t,placement:"top",children:Object(h.jsx)(f.a,{hasIcon:!1,hasWarning:!1,href:t,noFollow:!0,onClick:function(e){if(!m){O(m);try{localStorage.setItem(o,JSON.stringify(m))}catch(t){}}null===r||void 0===r||r(e),a()},children:Object(h.jsx)(d.a,{colorScheme:"blue",ml:4,rightIcon:Object(h.jsx)(s.a,{}),tabIndex:0,variant:"ghost",children:"Proceed"})})})]})]})})})},p=Object(i.createContext)((function(e){return e.onClick})),g=function(){return Object(i.useContext)(p)},m=function(e){var t=e.children,n=Object(i.useState)(null),s=Object(c.a)(n,2),l=s[0],u=s[1],b=Object(a.a)({onClose:function(){u(null)}}),d=b.isOpen,j=b.onOpen,f=b.onClose,g=Object(i.useState)((function(){try{var e,t=null!==(e=localStorage.getItem(o))&&void 0!==e?e:"true";return JSON.parse(t)}catch(n){return!0}})),m=Object(c.a)(g,2),x=m[0],v=m[1],y=Object(i.useCallback)((function(e){var t=e.href,n=e.onClick;if(!x)return n;return function(e){u({href:t,onClick:n}),e.preventDefault(),j()}}),[j,x]);return Object(h.jsxs)(p.Provider,{value:y,children:[t,Object(h.jsx)(O,Object(r.a)({isOpen:d,onClose:f,setShouldWarn:v},l))]})}}},[[165,3,5]]]);
2
+ //# sourceMappingURL=main.f1390607.chunk.js.map