construct-hub 0.3.137 → 0.3.142

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. package/.gitattributes +1 -0
  2. package/.jsii +2 -2
  3. package/lib/construct-hub.js +1 -1
  4. package/lib/package-sources/code-artifact.js +1 -1
  5. package/lib/package-sources/npmjs.js +1 -1
  6. package/lib/package-tag/index.js +2 -2
  7. package/lib/s3/vpc-endpoint-bucket.js +30 -1
  8. package/lib/spdx-license.js +1 -1
  9. package/package.json +2 -2
  10. package/website/asset-manifest.json +40 -40
  11. package/website/assets/aqua-security.png +0 -0
  12. package/website/index.html +1 -1
  13. package/website/static/js/{0.75bd4211.chunk.js → 0.740a33f8.chunk.js} +2 -2
  14. package/website/static/js/{0.75bd4211.chunk.js.map → 0.740a33f8.chunk.js.map} +1 -1
  15. package/website/static/js/{1.de94dd4f.chunk.js → 1.64a9b795.chunk.js} +2 -2
  16. package/website/static/js/{1.de94dd4f.chunk.js.map → 1.64a9b795.chunk.js.map} +1 -1
  17. package/website/static/js/{10.63153bb8.chunk.js → 10.30ecd71a.chunk.js} +2 -2
  18. package/website/static/js/{10.63153bb8.chunk.js.map → 10.30ecd71a.chunk.js.map} +1 -1
  19. package/website/static/js/11.9e53aff3.chunk.js +2 -0
  20. package/website/static/js/11.9e53aff3.chunk.js.map +1 -0
  21. package/website/static/js/12.7d44c985.chunk.js +2 -0
  22. package/website/static/js/12.7d44c985.chunk.js.map +1 -0
  23. package/website/static/js/{13.d3fce156.chunk.js → 13.9c0ba67b.chunk.js} +2 -2
  24. package/website/static/js/{13.d3fce156.chunk.js.map → 13.9c0ba67b.chunk.js.map} +1 -1
  25. package/website/static/js/{14.e783508a.chunk.js → 14.924c14cb.chunk.js} +2 -2
  26. package/website/static/js/{14.e783508a.chunk.js.map → 14.924c14cb.chunk.js.map} +1 -1
  27. package/website/static/js/{15.06217ace.chunk.js → 15.c3f18810.chunk.js} +3 -3
  28. package/website/static/js/{15.06217ace.chunk.js.LICENSE.txt → 15.c3f18810.chunk.js.LICENSE.txt} +0 -0
  29. package/website/static/js/{15.06217ace.chunk.js.map → 15.c3f18810.chunk.js.map} +1 -1
  30. package/website/static/js/{16.0b2ec5e5.chunk.js → 16.84214b0e.chunk.js} +2 -2
  31. package/website/static/js/{16.0b2ec5e5.chunk.js.map → 16.84214b0e.chunk.js.map} +1 -1
  32. package/website/static/js/{4.91a3f4bb.chunk.js → 4.e051c405.chunk.js} +3 -3
  33. package/website/static/js/{4.91a3f4bb.chunk.js.LICENSE.txt → 4.e051c405.chunk.js.LICENSE.txt} +0 -0
  34. package/website/static/js/4.e051c405.chunk.js.map +1 -0
  35. package/website/static/js/5.05213cd1.chunk.js +3 -0
  36. package/website/static/js/{5.fb19ba3d.chunk.js.LICENSE.txt → 5.05213cd1.chunk.js.LICENSE.txt} +0 -0
  37. package/website/static/js/5.05213cd1.chunk.js.map +1 -0
  38. package/website/static/js/6.d05c0b08.chunk.js +2 -0
  39. package/website/static/js/6.d05c0b08.chunk.js.map +1 -0
  40. package/website/static/js/7.ebf6a179.chunk.js +2 -0
  41. package/website/static/js/7.ebf6a179.chunk.js.map +1 -0
  42. package/website/static/js/{8.73c2c7f3.chunk.js → 8.8e96ad43.chunk.js} +2 -2
  43. package/website/static/js/{8.73c2c7f3.chunk.js.map → 8.8e96ad43.chunk.js.map} +1 -1
  44. package/website/static/js/{9.8b744886.chunk.js → 9.174f64fc.chunk.js} +2 -2
  45. package/website/static/js/{9.8b744886.chunk.js.map → 9.174f64fc.chunk.js.map} +1 -1
  46. package/website/static/js/main.8038c15f.chunk.js +2 -0
  47. package/website/static/js/main.8038c15f.chunk.js.map +1 -0
  48. package/website/static/js/{runtime-main.b8868b3c.js → runtime-main.3666b7b5.js} +2 -2
  49. package/website/static/js/{runtime-main.b8868b3c.js.map → runtime-main.3666b7b5.js.map} +1 -1
  50. package/website/static/js/11.95a7aff0.chunk.js +0 -2
  51. package/website/static/js/11.95a7aff0.chunk.js.map +0 -1
  52. package/website/static/js/12.755ea3fc.chunk.js +0 -2
  53. package/website/static/js/12.755ea3fc.chunk.js.map +0 -1
  54. package/website/static/js/4.91a3f4bb.chunk.js.map +0 -1
  55. package/website/static/js/5.fb19ba3d.chunk.js +0 -3
  56. package/website/static/js/5.fb19ba3d.chunk.js.map +0 -1
  57. package/website/static/js/6.ca3456ca.chunk.js +0 -2
  58. package/website/static/js/6.ca3456ca.chunk.js.map +0 -1
  59. package/website/static/js/7.f1806927.chunk.js +0 -2
  60. package/website/static/js/7.f1806927.chunk.js.map +0 -1
  61. package/website/static/js/main.40e21094.chunk.js +0 -2
  62. package/website/static/js/main.40e21094.chunk.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/index.ts","../../../src/link-box.tsx","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/date-fns/esm/compareAsc/index.js","../node_modules/date-fns/esm/_lib/cloneObject/index.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/date-fns/esm/formatDistanceStrict/index.js","../node_modules/date-fns/esm/formatDistanceToNowStrict/index.js","../../../src/use-tabs.ts","../../../src/tabs.tsx","../../../src/wrap.tsx"],"names":["LinkOverlay","forwardRef","className","ref","cx","rel","isExternal","target","__css","position","content","cursor","display","top","left","zIndex","width","height","LinkBox","_taggedTemplateLiteral","strings","raw","slice","Object","freeze","defineProperties","value","compareAsc","dirtyDateLeft","dirtyDateRight","requiredArgs","arguments","dateLeft","toDate","dateRight","diff","getTime","cloneObject","dirtyObject","TypeError","property","prototype","hasOwnProperty","call","assign","MILLISECONDS_IN_MINUTE","MINUTES_IN_DAY","MINUTES_IN_MONTH","MINUTES_IN_YEAR","formatDistanceStrict","dirtyDate","dirtyBaseDate","options","length","undefined","locale","defaultLocale","formatDistance","RangeError","comparison","isNaN","localizeOptions","addSuffix","Boolean","roundingMethodFn","roundingMethod","String","Math","floor","ceil","round","unit","milliseconds","minutes","timezoneOffset","getTimezoneOffsetInMilliseconds","dstNormalizedMinutes","seconds","roundedMinutes","hours","days","months","years","formatDistanceToNowStrict","dirtyOptions","Date","now","createDescendantContext","createContext","name","errorMessage","makeTabId","id","makeTabPanelId","Tabs","styles","useMultiStyleConfig","omitThemingProps","props","lazyBehavior","orientation","direction","React","defaultIndex","useControllableState","defaultValue","onChange","index","setFocusedIndex","descendants","useTabsDescendants","useId","selectedIndex","focusedIndex","setSelectedIndex","isManual","isLazy","htmlProps","useTabs","context","rootProps","omit","root","Tab","useStyles","tabProps","isFocusable","useTabsContext","useTabsDescendant","disabled","isDisabled","register","isSelected","clickableProps","useClickable","mergeRefs","onClick","callAllHandlers","role","tabIndex","type","onFocus","useTab","tabStyles","outline","alignItems","justifyContent","TabList","tablistProps","useTabsDescendantsContext","onKeyDown","event","nextTab","next","focus","prevTab","prev","isHorizontal","isVertical","eventKey","normalizeEventKey","ArrowStart","ArrowEnd","action","first","last","useTabList","tablistStyles","TabPanel","panelProps","children","hasBeenSelected","determineLazyBehavior","hidden","useTabPanel","tabpanel","TabPanels","panelsProps","getValidChildren","useTabPanels","tabpanels","TabIndicator","indicatorStyle","useSafeLayoutEffect","isUndefined","tab","setRect","offsetWidth","offsetHeight","requestAnimationFrame","setHasMeasured","cancelAnimationFrame","transitionProperty","transitionDuration","hasMeasured","transitionTimingFunction","useTabIndicator","style","indicator","Wrap","spacing","shouldWrapChildren","theme","mapResponsive","tokenToCSSVar","flexWrap","flexDirection","listStyleType","padding","margin","justify","align","childrenToRender","key","WrapItem"],"mappings":"mIAAA,sX,kfCWO,IAAMA,EAAcC,aAAkC,cAC3D,IAAM,EAAN,EAAM,aAAN,EAAM,SAAN,EAAM,IAA2BC,EAAjC,EAAiCA,UAAjC,iDACA,OACE,gBAAC,IAAD,UAEEC,IAFF,EAGED,UAAWE,YAAG,0BAHhB,GAIEC,IAAKC,EAAa,sBAJpB,EAKEC,OAAQD,EAAa,SALvB,EAMEE,MAAO,CACLC,SADK,SAEL,YAAa,CACXC,QADW,KAEXC,OAFW,UAGXC,QAHW,QAIXH,SAJW,WAKXI,IALW,EAMXC,KANW,EAOXC,OAPW,EAQXC,MARW,OASXC,OAAQ,eAeLC,EAAUjB,aAAgC,cAC/C,IAAEC,EAAR,EAAQA,UAAR,qBAEA,OACE,gBAAC,IAAD,OACEC,IADF,EAEEM,SAAS,YAFX,GAIEP,UAAWE,YAAG,iBAJhB,GAKEI,MAAO,CAEL,qDAAsD,CACpDC,SADoD,WAEpDM,OAAQ,W,iCC3DH,SAASI,EAAuBC,EAASC,GAKtD,OAJKA,IACHA,EAAMD,EAAQE,MAAM,IAGfC,OAAOC,OAAOD,OAAOE,iBAAiBL,EAAS,CACpDC,IAAK,CACHK,MAAOH,OAAOC,OAAOH,OAP3B,mC,kGCuCe,SAASM,EAAWC,EAAeC,GAChDC,YAAa,EAAGC,WAChB,IAAIC,EAAWC,YAAOL,GAClBM,EAAYD,YAAOJ,GACnBM,EAAOH,EAASI,UAAYF,EAAUE,UAE1C,OAAID,EAAO,GACD,EACCA,EAAO,EACT,EAEAA,ECjDI,SAASE,EAAYC,GAClC,OCFa,SAAgB/B,EAAQ+B,GACrC,GAAc,MAAV/B,EACF,MAAM,IAAIgC,UAAU,iEAKtB,IAAK,IAAIC,KAFTF,EAAcA,GAAe,GAGvBf,OAAOkB,UAAUC,eAAeC,KAAKL,EAAaE,KACpDjC,EAAOiC,GAAYF,EAAYE,IAInC,OAAOjC,EDXAqC,CAAO,GAAIN,G,aEIhBO,EAAyB,IACzBC,EAAiB,KACjBC,EAAmBD,MACnBE,EAAkBF,OAwJP,SAASG,EAAqBC,EAAWC,GACtD,IAAIC,EAAUrB,UAAUsB,OAAS,QAAsBC,IAAjBvB,UAAU,GAAmBA,UAAU,GAAK,GAClFD,YAAa,EAAGC,WAChB,IAAIwB,EAASH,EAAQG,QAAUC,IAE/B,IAAKD,EAAOE,eACV,MAAM,IAAIC,WAAW,wDAGvB,IAAIC,EAAahC,EAAWuB,EAAWC,GAEvC,GAAIS,MAAMD,GACR,MAAM,IAAID,WAAW,sBAGvB,IAGI1B,EACAE,EAJA2B,EAAkBxB,EAAYe,GAClCS,EAAgBC,UAAYC,QAAQX,EAAQU,WAC5CD,EAAgBF,WAAaA,EAIzBA,EAAa,GACf3B,EAAWC,YAAOkB,GAClBjB,EAAYD,YAAOiB,KAEnBlB,EAAWC,YAAOiB,GAClBhB,EAAYD,YAAOkB,IAGrB,IACIa,EADAC,EAA2C,MAA1Bb,EAAQa,eAAyB,QAAUC,OAAOd,EAAQa,gBAG/E,GAAuB,UAAnBA,EACFD,EAAmBG,KAAKC,WACnB,GAAuB,SAAnBH,EACTD,EAAmBG,KAAKE,SACnB,IAAuB,UAAnBJ,EAGT,MAAM,IAAIP,WAAW,qDAFrBM,EAAmBG,KAAKG,MAK1B,IAMIC,EANAC,EAAetC,EAAUE,UAAYJ,EAASI,UAC9CqC,EAAUD,EAAe3B,EACzB6B,EAAiBC,YAAgCzC,GAAayC,YAAgC3C,GAG9F4C,GAAwBJ,EAAeE,GAAkB7B,EAsB7D,GAAa,YAjBT0B,EAFgB,MAAhBnB,EAAQmB,KACNE,EAAU,EACL,SACEA,EAAU,GACZ,SACEA,EAAU3B,EACZ,OACE8B,EAAuB7B,EACzB,MACE6B,EAAuB5B,EACzB,QAEA,OAGFkB,OAAOd,EAAQmB,OAID,CACrB,IAAIM,EAAUb,EAAiBQ,EAAe,KAC9C,OAAOjB,EAAOE,eAAe,WAAYoB,EAAShB,GAC7C,GAAa,WAATU,EAAmB,CAC5B,IAAIO,EAAiBd,EAAiBS,GACtC,OAAOlB,EAAOE,eAAe,WAAYqB,EAAgBjB,GACpD,GAAa,SAATU,EAAiB,CAC1B,IAAIQ,EAAQf,EAAiBS,EAAU,IACvC,OAAOlB,EAAOE,eAAe,SAAUsB,EAAOlB,GACzC,GAAa,QAATU,EAAgB,CACzB,IAAIS,EAAOhB,EAAiBY,EAAuB9B,GACnD,OAAOS,EAAOE,eAAe,QAASuB,EAAMnB,GACvC,GAAa,UAATU,EAAkB,CAC3B,IAAIU,EAASjB,EAAiBY,EAAuB7B,GACrD,OAAkB,KAAXkC,GAAkC,UAAjB7B,EAAQmB,KAAmBhB,EAAOE,eAAe,SAAU,EAAGI,GAAmBN,EAAOE,eAAe,UAAWwB,EAAQpB,GAC7I,GAAa,SAATU,EAAiB,CAC1B,IAAIW,EAAQlB,EAAiBY,EAAuB5B,GACpD,OAAOO,EAAOE,eAAe,SAAUyB,EAAOrB,GAGhD,MAAM,IAAIH,WAAW,qEC7KR,SAASyB,EAA0BjC,EAAWkC,GAE3D,OADAtD,YAAa,EAAGC,WACTkB,EAAqBC,EAAWmC,KAAKC,MAAOF,K,2tBCnD9C,MAKHG,cALG,mBAAM,EAAN,KAAM,EAAN,KAAM,EAAN,KAAM,EAAN,KAmJA,MAAuCC,YAA6B,CACzEC,KADyE,cAEzEC,aACE,yGAHG,mBAAM,EAAN,KAAM,EAAN,KA2RP,SAASC,EAAUC,EAAnB,GACE,OAAUA,EAAV,WAGF,SAASC,EAAeD,EAAxB,GACE,OAAUA,EAAV,gB,sVC5ZK,IAAME,EAAO7F,aAA6B,cAC/C,IAAM8F,EAASC,YAAoB,OAAnC,GACA,EAAyCC,YAAzC,GAAM,EAAN,EAAM,SAAY/F,EAAlB,EAAkBA,UAElB,ED+CK,SAAiBgG,GACtB,IAAM,EAAN,EAAM,eAAN,EAAM,WAAN,EAAM,QAAN,EAAM,WAAN,EAAM,OAAN,IAMEC,oBANF,MAAM,UAAN,MAOEC,mBAPF,MAAM,aAAN,MAQEC,iBARF,MAQc,MARd,0GAwBA,EAAwCC,iBAAeC,EAAfD,EAAxC,sBAAM,EAAN,KAAM,EAAN,KAEA,EAA0CE,YAAqB,CAC7DC,aAAY,MAAEF,EAAF,EADiD,EAE7D7E,MAF6D,EAG7DgF,aAHF,mBAAM,EAAN,KAAM,EAAN,KASAJ,aAAgB,WACd,MAAIK,GACFC,OAED,CAJHN,IASA,IAAMO,EAAcC,IAOpB,MAAO,CACLlB,GAHSmB,YAAMb,EAAD,GAAhB,QAIEc,gBACAC,eACAC,mBACAN,kBACAO,WACAC,SACAjB,eACAC,cACAS,cACAR,YACAgB,aC/GyCC,CAF3C,+BAEM,EAAN,EAAM,UAAaT,EAAnB,EAAmBA,YAAnB,mCACMU,EAAUjB,WAAc,kBAAdA,IAAyB,CAAzC,IAEMkB,EAAYC,YAAKJ,EAAkB,CAAzC,aAEA,OACE,mBAAyB3F,MAAOmF,GAC9B,mBAAcnF,MAAO6F,GACnB,qBAAgB7F,MAAOqE,GACrB,gBAAC,IAAD,OACE7F,UAAWE,YAAG,cADhB,GAEED,IAAKA,GAFP,GAIEK,MAAOuF,EAAO2B,OARxB,SAkBE,EAAJ,IACE5B,sBASK,IAAM6B,EAAM1H,aAA+B,cAChD,IAAM8F,EAAS6B,cACTC,ED0LD,YACL,IAAM,EAAN,EAAM,WAAcC,EAApB,EAAoBA,YAApB,oCAEA,EAMIC,IANE,EAAN,EAAM,mBAAN,EAAM,WAAN,EAAM,KAAN,EAAM,gBAKJf,EALF,EAKEA,cAGF,EAA4BgB,EAAkB,CAC5CC,SAAUC,IAAeJ,IADrB,EAAN,EAAM,MAASK,EAAf,EAAeA,SAITC,EAAazB,IAAnB,EAeM0B,EAAiBC,YAAa,EAAD,MAEjCnI,IAAKoI,YAAUJ,EAAUjC,EAFQ,KAGjCgC,aACAJ,cACAU,QAASC,YAAgBvC,EAAD,SAlBV,WACdgB,WAsBF,eAEEtB,GAAID,EAAUC,EAFhB,GAGE8C,KAHF,MAIEC,SAAUP,EAAa,GAJzB,EAKEQ,KAPF,SAQE,gBANF,EAOE,gBAAiB/C,EAAeD,EAPlC,GAQEiD,QAASX,OAAa5E,EAAYmF,YAAgBvC,EAAD,SA3BnC,WACdU,MAEsBO,KADSe,IAA/B,IAGEhB,UCpNa4B,CAAO,EAAD,MAAa3I,SAE9B4I,EAA+B,EAAH,CAChCC,QADgC,IAEhCpI,QAFgC,OAGhCqI,WAHgC,SAIhCC,eAAgB,UACbnD,EALL,KAQA,OACE,gBAAC,IAAD,eAEE7F,UAAWE,YAAG,mBAAoB8F,EAFpC,WAGE1F,MAAOuI,QAKT,EAAJ,IACEpB,qBAWK,IAAMwB,EAAUlJ,aAAgC,cACrD,IAAMmJ,EDyED,YACL,MAAiDrB,IAA3C,EAAN,EAAM,eAAN,EAAM,YAA6B1B,EAAnC,EAAmCA,UAE7BQ,EAAcwC,IAEdC,EAAY,eACfC,YAA+B,MACxBC,EAAU,WACd,IAAMC,EAAO5C,cAAb,GACA,GAAU6C,YAAMD,EAANC,OAENC,EAAU,WACd,IAAMC,EAAO/C,cAAb,GACA,GAAU6C,YAAME,EAANF,OAWNG,EAAN,eAAqBzD,EACf0D,EAAN,aAAmB1D,EAEb2D,EAAWC,YAAjB,GAEMC,EAAa5D,sBAAnB,aACM6D,EAAW7D,uBAAjB,YAWM8D,GATmB,mBACvB,GAAc,kBAAMN,GAAgBF,OADb,cAEvB,GAAY,kBAAME,GAAgBL,OAFX,2BAGZ,kBAAMM,GAAcN,OAHR,yBAId,kBAAMM,GAAcH,OAJN,sBAjBR,WACf,IAAMS,EAAQvD,EAAd,eACA,GAAW6C,YAAMU,EAANV,SAeY,qBAbT,WACd,IAAMW,EAAOxD,EAAb,cACA,GAAU6C,YAAMW,EAANX,SAWa,GASzB,GAEA,IACEH,mBACAY,QAGJ,CAACtD,EAAaI,EAAcb,EA3C9B,IA8CA,eAEEsC,KAFF,UAGE,mBAHF,EAIEY,UAAWb,YAAgBvC,EAAD,eChIPoE,CAAW,EAAD,MAAanK,SAItCoK,EAAmC,EAAH,CACpC3J,QAAS,QAHIgH,cAEf,SAKA,OACE,gBAAC,IAAD,YAEE1H,UAAWE,YAAG,uBAAwB8F,EAFxC,WAGE1F,MAAO+J,QAKT,EAAJ,IACEpB,yBASK,IAAMqB,EAAWvK,aAAiC,cACvD,IAAMwK,EDuND,SAAqBvE,GAC1B,IAAM,EAAN,EAAM,aAAN,EAAM,GAAkBwE,EAAxB,EAAwBA,SAAxB,sCACA,EAAiC3C,IAA3B,EAAN,EAAM,OAAU5B,EAAhB,EAAgBA,aAEVwE,EAAkBrE,UAAxB,GAYA,OAXA,IACEqE,cAUF,GAEEhC,SAAU,GAFZ,GAIE+B,SAX2BE,YAAsB,CACjDD,gBAAiBA,EADgC,QAEjDvC,aACAhB,SACAjB,iBAOiCuE,EAJnC,KAKEhC,KALF,WAMEmC,QANF,EAOEjF,OC9OiBkF,CAAY,EAAD,MAAa3K,SACrC4F,EAAS6B,cAEf,OACE,gBAAC,IAAD,OACEoB,QAAQ,KADV,GAGE9I,UAAWE,YAAG,yBAA0B8F,EAH1C,WAIE1F,MAAOuF,EAAOgF,eAKhB,EAAJ,IACEP,0BAaK,IAAMQ,EAAY/K,aAAkC,cACzD,IAAMgL,EDkKD,YACL,IAAM1D,EAAUQ,IAEV,EAAN,EAAM,GAAMf,EAAZ,EAAYA,cAaZ,eAAmB0D,SAXGQ,YAAiBhF,EAAvC,UAEiB,KAAkB,qBACjC,iBAAmC,CACjCkC,WAAYzB,IADqB,EAEjCf,GAAIC,EAAeD,EAFc,GAIjC,kBAAmBD,EAAUC,EAAIe,UC9KjBwE,CAApB,GACMpF,EAAS6B,cAEf,OACE,gBAAC,IAAD,YAEE5G,MAFF,OAGEb,IAHF,EAIED,UAAWE,YAAG,0BAA2B8F,EAJ3C,WAKE1F,MAAOuF,EAAOqF,gBAKhB,EAAJ,IACEJ,2BAWK,IAAMK,EAAepL,aAC1B,cACE,IAAMqL,EDkMH,WACL,IAAM/D,EAAUQ,IACVlB,EAAcwC,IAEd,EAAN,EAAM,cAAiBjD,EAAvB,EAAuBA,YAEjByD,EAAN,eAAqBzD,EACf0D,EAP+C,aAOlC1D,EAGnB,EAAwB,YAAe,WACrC,SAAyB,CAAEtF,KAAF,EAAWE,MAAO,GAC3C,EAAuB,CAAEH,IAAF,EAAUI,OAAQ,QAAzC,KAFF,mBAAM,EAAN,KAAM,EAAN,KAMA,EAAsCqF,YAhBe,GAgBrD,mBAAM,EAAN,KAAM,EAAN,KAgCA,OA7BAiF,aAAoB,WAClB,IAAIC,YAAJ,IAEA,IAAMC,EAAM5E,OAAZ,GACA,IAAI2E,YAAJ,IAGA,GACEE,EAAQ,CAAE5K,KAAM2K,OAAR,WAA6BzK,MAAOyK,OAASE,cAIvD,GACED,EAAQ,CAAE7K,IAAK4K,OAAP,UAA2BxK,OAAQwK,OAASG,eAKtD,IAAMhG,EAAKiG,uBAAsB,WAC/BC,SAGF,OAAO,WACL,GACEC,6BAGH,CAAC/E,EAAe6C,EAAcC,EA3BjCyB,IA6BA,GACE9K,SADF,WAEEuL,mBAFF,2BAGEC,mBAAoBC,EAAc,QAHpC,MAIEC,yBAA0B,8BAJ5B,GClPyBC,GACjBC,EAAQ,EAAH,GACNnG,EADM,MAAX,GAKMH,EAAS6B,cAEf,OACE,gBAAC,IAAD,OACEzH,IAAKA,GADP,GAGED,UAAWE,YAAG,6BAA8B8F,EAH9C,WAIEmG,MAJF,EAKE7L,MAAOuF,EAAOuG,gBAMlB,EAAJ,IACEjB,+B,sfCrLK,IAAMkB,EAAOtM,aAA6B,cAC/C,QACEuM,eADF,MAAM,SAAN,EAAM,EAAN,EAAM,WAAN,EAAM,UAAN,EAAM,YAAN,EAAM,QAAN,EAAM,UAOJC,EAPF,EAOEA,mBAPF,6FAWM1G,EAAS,WACb,iBAAO,CACL,wBAA0B2G,YAAD,OACvBC,YAAcH,GAAU9K,YAAD,OAAWkL,wBAAc,QAAdA,GAF/B,OAGL,iBAHK,uCAILhM,QAJK,OAKLiM,SALK,OAML3D,eANK,EAOLD,WAPK,EAQL6D,cARK,EASLC,cATK,OAULC,QAVK,IAWLC,OAXK,iCAYL,mBAAoB,CAClBA,OAAQ,0BAGZ,CAACT,EAASU,EAASC,EAjBrB,IAoBMC,EAAmBX,EACrB,kBAA6B,qBAC3B,mBAAUY,IAAK1G,GAFsB,MAA3C,EAMA,OACE,gBAAC,IAAD,OAAYxG,IAAZ,EAAsBD,UAAWE,YAAG,cAAeF,IAAnD,GACE,gBAAC,IAAD,IAAWA,UAAX,oBAAyCM,MAAOuF,GAFpD,OASE,EAAJ,IACEwG,sBAKK,IAAMe,EAAWrN,aAAgC,cAChD,IAAEC,EAAR,EAAQA,UAAR,qBACA,OACE,gBAAC,IAAD,MACEC,IADF,EAEEK,MAAO,CAAEI,QAAF,OAAmBqI,WAAY,cACtC/I,UAAWE,YAAG,wBAAyBF,IAJ3C,OAUE,EAAJ,IACEoN","file":"static/js/9.8b744886.chunk.js","sourcesContent":["export * from \"@chakra-ui/color-mode\"\nexport * from \"@chakra-ui/styled-system\"\nexport { keyframes } from \"@emotion/react\"\nexport type { Interpolation } from \"@emotion/react\"\nexport * from \"./hooks\"\nexport * from \"./system.types\"\nexport * from \"./providers\"\nexport { omitThemingProps } from \"./system.utils\"\nexport * from \"./system\"\nexport * from \"./forward-ref\"\nexport * from \"./use-style-config\"\nexport { shouldForwardProp } from \"./should-forward-prop\"\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","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","import assign from \"../assign/index.js\";\nexport default function cloneObject(dirtyObject) {\n return assign({}, dirtyObject);\n}","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (Object.prototype.hasOwnProperty.call(dirtyObject, property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport cloneObject from \"../_lib/cloneObject/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_MINUTE = 1000 * 60;\nvar MINUTES_IN_DAY = 60 * 24;\nvar MINUTES_IN_MONTH = MINUTES_IN_DAY * 30;\nvar MINUTES_IN_YEAR = MINUTES_IN_DAY * 365;\n/**\n * @name formatDistanceStrict\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words, using strict units.\n * This is like `formatDistance`, but does not use helpers like 'almost', 'over',\n * 'less than' and the like.\n *\n * | Distance between dates | Result |\n * |------------------------|---------------------|\n * | 0 ... 59 secs | [0..59] seconds |\n * | 1 ... 59 mins | [1..59] minutes |\n * | 1 ... 23 hrs | [1..23] hours |\n * | 1 ... 29 days | [1..29] days |\n * | 1 ... 11 months | [1..11] months |\n * | 1 ... N years | [1..N] years |\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `distanceInWordsStrict` to `formatDistanceStrict`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * - The order of arguments is swapped to make the function\n * consistent with `differenceIn...` functions.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(2015, 0, 2),\n * new Date(2014, 6, 2)\n * ) //=> '6 months'\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(2014, 6, 2),\n * new Date(2015, 0, 2)\n * ) //=> '6 months'\n * ```\n *\n * - `partialMethod` option is renamed to `roundingMethod`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 10, 33, 1),\n * { partialMethod: 'ceil' }\n * ) //=> '2 minutes'\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(1986, 3, 4, 10, 33, 1),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { roundingMethod: 'ceil' }\n * ) //=> '2 minutes'\n * ```\n *\n * - If `roundingMethod` is not specified, it now defaults to `round` instead of `floor`.\n *\n * - `unit` option now accepts one of the strings:\n * 'second', 'minute', 'hour', 'day', 'month' or 'year' instead of 's', 'm', 'h', 'd', 'M' or 'Y'\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 10, 33, 1),\n * { unit: 'm' }\n * )\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(1986, 3, 4, 10, 33, 1),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { unit: 'minute' }\n * )\n * ```\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {'second'|'minute'|'hour'|'day'|'month'|'year'} [options.unit] - if specified, will force a unit\n * @param {'floor'|'ceil'|'round'} [options.roundingMethod='round'] - which way to round partial units\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.roundingMethod` must be 'floor', 'ceil' or 'round'\n * @throws {RangeError} `options.unit` must be 'second', 'minute', 'hour', 'day', 'month' or 'year'\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistanceStrict(new Date(2014, 6, 2), new Date(2015, 0, 2))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00?\n * const result = formatDistanceStrict(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0)\n * )\n * //=> '15 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistanceStrict(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> '1 year ago'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, in minutes?\n * const result = formatDistanceStrict(new Date(2016, 0, 1), new Date(2015, 0, 1), {\n * unit: 'minute'\n * })\n * //=> '525600 minutes'\n *\n * @example\n * // What is the distance from 1 January 2015\n * // to 28 January 2015, in months, rounded up?\n * const result = formatDistanceStrict(new Date(2015, 0, 28), new Date(2015, 0, 1), {\n * unit: 'month',\n * roundingMethod: 'ceil'\n * })\n * //=> '1 month'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistanceStrict(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> '1 jaro'\n */\n\nexport default function formatDistanceStrict(dirtyDate, dirtyBaseDate) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n requiredArgs(2, arguments);\n var locale = options.locale || defaultLocale;\n\n if (!locale.formatDistance) {\n throw new RangeError('locale must contain localize.formatDistance property');\n }\n\n var comparison = compareAsc(dirtyDate, dirtyBaseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError('Invalid time value');\n }\n\n var localizeOptions = cloneObject(options);\n localizeOptions.addSuffix = Boolean(options.addSuffix);\n localizeOptions.comparison = comparison;\n var dateLeft;\n var dateRight;\n\n if (comparison > 0) {\n dateLeft = toDate(dirtyBaseDate);\n dateRight = toDate(dirtyDate);\n } else {\n dateLeft = toDate(dirtyDate);\n dateRight = toDate(dirtyBaseDate);\n }\n\n var roundingMethod = options.roundingMethod == null ? 'round' : String(options.roundingMethod);\n var roundingMethodFn;\n\n if (roundingMethod === 'floor') {\n roundingMethodFn = Math.floor;\n } else if (roundingMethod === 'ceil') {\n roundingMethodFn = Math.ceil;\n } else if (roundingMethod === 'round') {\n roundingMethodFn = Math.round;\n } else {\n throw new RangeError(\"roundingMethod must be 'floor', 'ceil' or 'round'\");\n }\n\n var milliseconds = dateRight.getTime() - dateLeft.getTime();\n var minutes = milliseconds / MILLISECONDS_IN_MINUTE;\n var timezoneOffset = getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft); // Use DST-normalized difference in minutes for years, months and days;\n // use regular difference in minutes for hours, minutes and seconds.\n\n var dstNormalizedMinutes = (milliseconds - timezoneOffset) / MILLISECONDS_IN_MINUTE;\n var unit;\n\n if (options.unit == null) {\n if (minutes < 1) {\n unit = 'second';\n } else if (minutes < 60) {\n unit = 'minute';\n } else if (minutes < MINUTES_IN_DAY) {\n unit = 'hour';\n } else if (dstNormalizedMinutes < MINUTES_IN_MONTH) {\n unit = 'day';\n } else if (dstNormalizedMinutes < MINUTES_IN_YEAR) {\n unit = 'month';\n } else {\n unit = 'year';\n }\n } else {\n unit = String(options.unit);\n } // 0 up to 60 seconds\n\n\n if (unit === 'second') {\n var seconds = roundingMethodFn(milliseconds / 1000);\n return locale.formatDistance('xSeconds', seconds, localizeOptions); // 1 up to 60 mins\n } else if (unit === 'minute') {\n var roundedMinutes = roundingMethodFn(minutes);\n return locale.formatDistance('xMinutes', roundedMinutes, localizeOptions); // 1 up to 24 hours\n } else if (unit === 'hour') {\n var hours = roundingMethodFn(minutes / 60);\n return locale.formatDistance('xHours', hours, localizeOptions); // 1 up to 30 days\n } else if (unit === 'day') {\n var days = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_DAY);\n return locale.formatDistance('xDays', days, localizeOptions); // 1 up to 12 months\n } else if (unit === 'month') {\n var months = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_MONTH);\n return months === 12 && options.unit !== 'month' ? locale.formatDistance('xYears', 1, localizeOptions) : locale.formatDistance('xMonths', months, localizeOptions); // 1 year up to max Date\n } else if (unit === 'year') {\n var years = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_YEAR);\n return locale.formatDistance('xYears', years, localizeOptions);\n }\n\n throw new RangeError(\"unit must be 'second', 'minute', 'hour', 'day', 'month' or 'year'\");\n}","import formatDistanceStrict from \"../formatDistanceStrict/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name formatDistanceToNowStrict\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n * @pure false\n *\n * @description\n * Return the distance between the given dates in words, using strict units.\n * This is like `formatDistance`, but does not use helpers like 'almost', 'over',\n * 'less than' and the like.\n *\n * | Distance between dates | Result |\n * |------------------------|---------------------|\n * | 0 ... 59 secs | [0..59] seconds |\n * | 1 ... 59 mins | [1..59] minutes |\n * | 1 ... 23 hrs | [1..23] hours |\n * | 1 ... 29 days | [1..29] days |\n * | 1 ... 11 months | [1..11] months |\n * | 1 ... N years | [1..N] years |\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {'second'|'minute'|'hour'|'day'|'month'|'year'} [options.unit] - if specified, will force a unit\n * @param {'floor'|'ceil'|'round'} [options.roundingMethod='round'] - which way to round partial units\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * var result = formatDistanceToNowStrict(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * var result = formatDistanceToNowStrict(\n * new Date(2015, 0, 1, 0, 0, 15)\n * )\n * //=> '20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * var result = formatDistanceToNowStrict(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in 1 year'\n *\n * @example\n * // If today is 28 January 2015,\n * // what is the distance to 1 January 2015, in months, rounded up??\n * var result = formatDistanceToNowStrict(new Date(2015, 0, 1), {\n * unit: 'month',\n * roundingMethod: 'ceil'\n * })\n * //=> '1 month'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = formatDistanceToNowStrict(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> '1 jaro'\n */\n\nexport default function formatDistanceToNowStrict(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n return formatDistanceStrict(dirtyDate, Date.now(), dirtyOptions);\n}","import { useClickable, UseClickableProps } from \"@chakra-ui/clickable\"\nimport { createDescendantContext } from \"@chakra-ui/descendant\"\nimport {\n useControllableState,\n useId,\n useSafeLayoutEffect,\n} from \"@chakra-ui/hooks\"\nimport {\n createContext,\n EventKeyMap,\n getValidChildren,\n mergeRefs,\n} from \"@chakra-ui/react-utils\"\nimport {\n callAllHandlers,\n determineLazyBehavior,\n Dict,\n focus,\n isUndefined,\n LazyBehavior,\n normalizeEventKey,\n} from \"@chakra-ui/utils\"\nimport * as React from \"react\"\n\n/* -------------------------------------------------------------------------------------------------\n * Create context to track descendants and their indices\n * -----------------------------------------------------------------------------------------------*/\n\nexport const [\n TabsDescendantsProvider,\n useTabsDescendantsContext,\n useTabsDescendants,\n useTabsDescendant,\n] = createDescendantContext<HTMLButtonElement>()\n\n/* -------------------------------------------------------------------------------------------------\n * useTabs - The root react hook that manages all tab items\n * -----------------------------------------------------------------------------------------------*/\n\nexport interface UseTabsProps {\n /**\n * The orientation of the tab list.\n */\n orientation?: \"vertical\" | \"horizontal\"\n /**\n * If `true`, the tabs will be manually activated and\n * display its panel by pressing Space or Enter.\n *\n * If `false`, the tabs will be automatically activated\n * and their panel is displayed when they receive focus.\n */\n isManual?: boolean\n /**\n * Callback when the index (controlled or un-controlled) changes.\n */\n onChange?: (index: number) => void\n /**\n * The index of the selected tab (in controlled mode)\n */\n index?: number\n /**\n * The initial index of the selected tab (in uncontrolled mode)\n */\n defaultIndex?: number\n /**\n * The id of the tab\n */\n id?: string\n /**\n * Performance 🚀:\n * If `true`, rendering of the tab panel's will be deferred until it is selected.\n */\n isLazy?: boolean\n /**\n * Performance 🚀:\n * The lazy behavior of tab panels' content when not active.\n * Only works when `isLazy={true}`\n *\n * - \"unmount\": The content of inactive tab panels are always unmounted.\n * - \"keepMounted\": The content of inactive tab panels is initially unmounted,\n * but stays mounted when selected.\n *\n * @default \"unmount\"\n */\n lazyBehavior?: LazyBehavior\n /**\n * The writing mode direction.\n *\n * - When in RTL, the left and right navigation is flipped\n */\n direction?: \"rtl\" | \"ltr\"\n}\n\n/**\n * Tabs hooks that provides all the states, and accessibility\n * helpers to keep all things working properly.\n *\n * Its returned object will be passed unto a Context Provider\n * so all child components can read from it.\n * There is no document link yet\n * @see Docs https://chakra-ui.com/docs/components/useTabs\n */\nexport function useTabs(props: UseTabsProps) {\n const {\n defaultIndex,\n onChange,\n index,\n isManual,\n isLazy,\n lazyBehavior = \"unmount\",\n orientation = \"horizontal\",\n direction = \"ltr\",\n ...htmlProps\n } = props\n\n /**\n * We use this to keep track of the index of the focused tab.\n *\n * Tabs can be automatically activated, this means selection follows focus.\n * When we navigate with the arrow keys, we move focus and selection to next/prev tab\n *\n * Tabs can also be manually activated, this means selection does not follow focus.\n * When we navigate with the arrow keys, we only move focus NOT selection. The user\n * will need not manually activate the tab using `Enter` or `Space`.\n *\n * This is why we need to keep track of the `focusedIndex` and `selectedIndex`\n */\n const [focusedIndex, setFocusedIndex] = React.useState(defaultIndex ?? 0)\n\n const [selectedIndex, setSelectedIndex] = useControllableState({\n defaultValue: defaultIndex ?? 0,\n value: index,\n onChange,\n })\n\n /**\n * Sync focused `index` with controlled `selectedIndex` (which is the `props.index`)\n */\n React.useEffect(() => {\n if (index != null) {\n setFocusedIndex(index)\n }\n }, [index])\n\n /**\n * Think of `useDescendants` as a register for the tab nodes.\n */\n const descendants = useTabsDescendants()\n\n /**\n * Generate a unique id or use user-provided id for the tabs widget\n */\n const id = useId(props.id, `tabs`)\n\n return {\n id,\n selectedIndex,\n focusedIndex,\n setSelectedIndex,\n setFocusedIndex,\n isManual,\n isLazy,\n lazyBehavior,\n orientation,\n descendants,\n direction,\n htmlProps,\n }\n}\n\nexport type UseTabsReturn = Omit<\n ReturnType<typeof useTabs>,\n \"htmlProps\" | \"descendants\"\n>\n\nexport const [TabsProvider, useTabsContext] = createContext<UseTabsReturn>({\n name: \"TabsContext\",\n errorMessage:\n \"useTabsContext: `context` is undefined. Seems you forgot to wrap all tabs components within <Tabs />\",\n})\n\ntype Child = React.ReactElement<any>\n\nexport interface UseTabListProps {\n children?: React.ReactNode\n onKeyDown?: React.KeyboardEventHandler\n ref?: React.Ref<any>\n}\n\n/**\n * Tabs hook to manage multiple tab buttons,\n * and ensures only one tab is selected per time.\n *\n * @param props props object for the tablist\n */\nexport function useTabList<P extends UseTabListProps>(props: P) {\n const { focusedIndex, orientation, direction } = useTabsContext()\n\n const descendants = useTabsDescendantsContext()\n\n const onKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n const nextTab = () => {\n const next = descendants.nextEnabled(focusedIndex)\n if (next) focus(next.node)\n }\n const prevTab = () => {\n const prev = descendants.prevEnabled(focusedIndex)\n if (prev) focus(prev.node)\n }\n const firstTab = () => {\n const first = descendants.firstEnabled()\n if (first) focus(first.node)\n }\n const lastTab = () => {\n const last = descendants.lastEnabled()\n if (last) focus(last.node)\n }\n\n const isHorizontal = orientation === \"horizontal\"\n const isVertical = orientation === \"vertical\"\n\n const eventKey = normalizeEventKey(event)\n\n const ArrowStart = direction === \"ltr\" ? \"ArrowLeft\" : \"ArrowRight\"\n const ArrowEnd = direction === \"ltr\" ? \"ArrowRight\" : \"ArrowLeft\"\n\n const keyMap: EventKeyMap = {\n [ArrowStart]: () => isHorizontal && prevTab(),\n [ArrowEnd]: () => isHorizontal && nextTab(),\n ArrowDown: () => isVertical && nextTab(),\n ArrowUp: () => isVertical && prevTab(),\n Home: firstTab,\n End: lastTab,\n }\n\n const action = keyMap[eventKey]\n\n if (action) {\n event.preventDefault()\n action(event)\n }\n },\n [descendants, focusedIndex, orientation, direction],\n )\n\n return {\n ...props,\n role: \"tablist\",\n \"aria-orientation\": orientation,\n onKeyDown: callAllHandlers(props.onKeyDown, onKeyDown),\n }\n}\n\nexport type UseTabListReturn = ReturnType<typeof useTabList>\n\nexport interface UseTabOptions {\n id?: string\n isSelected?: boolean\n panelId?: string\n /**\n * If `true`, the `Tab` won't be toggleable\n */\n isDisabled?: boolean\n}\n\nexport interface UseTabProps\n extends Omit<UseClickableProps, \"color\">,\n UseTabOptions {}\n\n/**\n * Tabs hook to manage each tab button.\n *\n * A tab can be disabled and focusable, or both,\n * hence the use of `useClickable` to handle this scenario\n */\nexport function useTab<P extends UseTabProps>(props: P) {\n const { isDisabled, isFocusable, ...htmlProps } = props\n\n const {\n setSelectedIndex,\n isManual,\n id,\n setFocusedIndex,\n selectedIndex,\n } = useTabsContext()\n\n const { index, register } = useTabsDescendant({\n disabled: isDisabled && !isFocusable,\n })\n\n const isSelected = index === selectedIndex\n\n const onClick = () => {\n setSelectedIndex(index)\n }\n\n const onFocus = () => {\n setFocusedIndex(index)\n const isDisabledButFocusable = isDisabled && isFocusable\n const shouldSelect = !isManual && !isDisabledButFocusable\n if (shouldSelect) {\n setSelectedIndex(index)\n }\n }\n\n const clickableProps = useClickable({\n ...htmlProps,\n ref: mergeRefs(register, props.ref),\n isDisabled,\n isFocusable,\n onClick: callAllHandlers(props.onClick, onClick),\n })\n\n const type: \"button\" | \"submit\" | \"reset\" = \"button\"\n\n return {\n ...clickableProps,\n id: makeTabId(id, index),\n role: \"tab\",\n tabIndex: isSelected ? 0 : -1,\n type,\n \"aria-selected\": isSelected,\n \"aria-controls\": makeTabPanelId(id, index),\n onFocus: isDisabled ? undefined : callAllHandlers(props.onFocus, onFocus),\n }\n}\n\nexport interface UseTabPanelsProps {\n children?: React.ReactNode\n}\n\n/**\n * Tabs hook for managing the visibility of multiple tab panels.\n *\n * Since only one panel can be show at a time, we use `cloneElement`\n * to inject `selected` panel to each TabPanel.\n *\n * It returns a cloned version of its children with\n * all functionality included.\n */\nexport function useTabPanels<P extends UseTabPanelsProps>(props: P) {\n const context = useTabsContext()\n\n const { id, selectedIndex } = context\n\n const validChildren = getValidChildren(props.children)\n\n const children = validChildren.map((child, index) =>\n React.cloneElement(child as Child, {\n isSelected: index === selectedIndex,\n id: makeTabPanelId(id, index),\n // Refers to the associated tab element, and also provides an accessible name to the tab panel.\n \"aria-labelledby\": makeTabId(id, index),\n }),\n )\n\n return { ...props, children }\n}\n\n/**\n * Tabs hook for managing the visible/hidden states\n * of the tab panel.\n *\n * @param props props object for the tab panel\n */\nexport function useTabPanel(props: Dict) {\n const { isSelected, id, children, ...htmlProps } = props\n const { isLazy, lazyBehavior } = useTabsContext()\n\n const hasBeenSelected = React.useRef(false)\n if (isSelected) {\n hasBeenSelected.current = true\n }\n\n const shouldRenderChildren = determineLazyBehavior({\n hasBeenSelected: hasBeenSelected.current,\n isSelected,\n isLazy,\n lazyBehavior,\n })\n\n return {\n // Puts the tabpanel in the page `Tab` sequence.\n tabIndex: 0,\n ...htmlProps,\n children: shouldRenderChildren ? children : null,\n role: \"tabpanel\",\n hidden: !isSelected,\n id,\n }\n}\n\n/**\n * Tabs hook to show an animated indicators that\n * follows the active tab.\n *\n * The way we do it is by measuring the DOM Rect (or dimensions)\n * of the active tab, and return that as CSS style for\n * the indicator.\n */\nexport function useTabIndicator(): React.CSSProperties {\n const context = useTabsContext()\n const descendants = useTabsDescendantsContext()\n\n const { selectedIndex, orientation } = context\n\n const isHorizontal = orientation === \"horizontal\"\n const isVertical = orientation === \"vertical\"\n\n // Get the clientRect of the selected tab\n const [rect, setRect] = React.useState(() => {\n if (isHorizontal) return { left: 0, width: 0 }\n if (isVertical) return { top: 0, height: 0 }\n return undefined\n })\n\n const [hasMeasured, setHasMeasured] = React.useState(false)\n\n // Update the selected tab rect when the selectedIndex changes\n useSafeLayoutEffect(() => {\n if (isUndefined(selectedIndex)) return undefined\n\n const tab = descendants.item(selectedIndex)\n if (isUndefined(tab)) return undefined\n\n // Horizontal Tab: Calculate width and left distance\n if (isHorizontal) {\n setRect({ left: tab.node.offsetLeft, width: tab.node.offsetWidth })\n }\n\n // Vertical Tab: Calculate height and top distance\n if (isVertical) {\n setRect({ top: tab.node.offsetTop, height: tab.node.offsetHeight })\n }\n\n // Prevent unwanted transition from 0 to measured rect\n // by setting the measured state in the next tick\n const id = requestAnimationFrame(() => {\n setHasMeasured(true)\n })\n\n return () => {\n if (id) {\n cancelAnimationFrame(id)\n }\n }\n }, [selectedIndex, isHorizontal, isVertical, descendants])\n\n return {\n position: \"absolute\",\n transitionProperty: \"left, right, top, bottom\",\n transitionDuration: hasMeasured ? \"200ms\" : \"0ms\",\n transitionTimingFunction: \"cubic-bezier(0, 0, 0.2, 1)\",\n ...rect,\n }\n}\n\nfunction makeTabId(id: string, index: number) {\n return `${id}--tab-${index}`\n}\n\nfunction makeTabPanelId(id: string, index: number) {\n return `${id}--tabpanel-${index}`\n}\n","import {\n chakra,\n forwardRef,\n omitThemingProps,\n StylesProvider,\n SystemStyleObject,\n ThemingProps,\n useMultiStyleConfig,\n useStyles,\n HTMLChakraProps,\n} from \"@chakra-ui/system\"\nimport { cx, omit, __DEV__ } from \"@chakra-ui/utils\"\nimport * as React from \"react\"\nimport {\n TabsDescendantsProvider,\n TabsProvider,\n useTab,\n useTabIndicator,\n useTabList,\n UseTabListProps,\n UseTabOptions,\n useTabPanel,\n useTabPanels,\n useTabs,\n UseTabsProps,\n} from \"./use-tabs\"\n\ninterface TabsOptions {\n /**\n * If `true`, tabs will stretch to width of the tablist.\n */\n isFitted?: boolean\n /**\n * The alignment of the tabs\n */\n align?: \"start\" | \"end\" | \"center\"\n}\n\nexport interface TabsProps\n extends UseTabsProps,\n ThemingProps<\"Tabs\">,\n Omit<HTMLChakraProps<\"div\">, \"onChange\">,\n TabsOptions {\n children: React.ReactNode\n}\n\n/**\n * Tabs\n *\n * Provides context and logic for all tabs components.\n */\nexport const Tabs = forwardRef<TabsProps, \"div\">((props, ref) => {\n const styles = useMultiStyleConfig(\"Tabs\", props)\n const { children, className, ...rest } = omitThemingProps(props)\n\n const { htmlProps, descendants, ...ctx } = useTabs(rest)\n const context = React.useMemo(() => ctx, [ctx])\n\n const rootProps = omit(htmlProps as any, [\"isFitted\"])\n\n return (\n <TabsDescendantsProvider value={descendants}>\n <TabsProvider value={context}>\n <StylesProvider value={styles}>\n <chakra.div\n className={cx(\"chakra-tabs\", className)}\n ref={ref}\n {...rootProps}\n __css={styles.root}\n >\n {children}\n </chakra.div>\n </StylesProvider>\n </TabsProvider>\n </TabsDescendantsProvider>\n )\n})\n\nif (__DEV__) {\n Tabs.displayName = \"Tabs\"\n}\n\nexport interface TabProps extends UseTabOptions, HTMLChakraProps<\"button\"> {}\n\n/**\n * Tab button used to activate a specific tab panel. It renders a `button`,\n * and is responsible for automatic and manual selection modes.\n */\nexport const Tab = forwardRef<TabProps, \"button\">((props, ref) => {\n const styles = useStyles()\n const tabProps = useTab({ ...props, ref })\n\n const tabStyles: SystemStyleObject = {\n outline: \"0\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n ...styles.tab,\n }\n\n return (\n <chakra.button\n {...tabProps}\n className={cx(\"chakra-tabs__tab\", props.className)}\n __css={tabStyles}\n />\n )\n})\n\nif (__DEV__) {\n Tab.displayName = \"Tab\"\n}\n\nexport interface TabListProps\n extends UseTabListProps,\n Omit<HTMLChakraProps<\"div\">, \"onKeyDown\" | \"ref\"> {}\n\n/**\n * TabList is used to manage a list of tab buttons. It renders a `div` by default,\n * and is responsible the keyboard interaction between tabs.\n */\nexport const TabList = forwardRef<TabListProps, \"div\">((props, ref) => {\n const tablistProps = useTabList({ ...props, ref })\n\n const styles = useStyles()\n\n const tablistStyles: SystemStyleObject = {\n display: \"flex\",\n ...styles.tablist,\n }\n\n return (\n <chakra.div\n {...tablistProps}\n className={cx(\"chakra-tabs__tablist\", props.className)}\n __css={tablistStyles}\n />\n )\n})\n\nif (__DEV__) {\n TabList.displayName = \"TabList\"\n}\n\nexport interface TabPanelProps extends HTMLChakraProps<\"div\"> {}\n\n/**\n * TabPanel\n * Used to render the content for a specific tab.\n */\nexport const TabPanel = forwardRef<TabPanelProps, \"div\">((props, ref) => {\n const panelProps = useTabPanel({ ...props, ref })\n const styles = useStyles()\n\n return (\n <chakra.div\n outline=\"0\"\n {...panelProps}\n className={cx(\"chakra-tabs__tab-panel\", props.className)}\n __css={styles.tabpanel}\n />\n )\n})\n\nif (__DEV__) {\n TabPanel.displayName = \"TabPanel\"\n}\n\nexport interface TabPanelsProps extends HTMLChakraProps<\"div\"> {}\n\n/**\n * TabPanel\n *\n * Used to manage the rendering of multiple tab panels. It uses\n * `cloneElement` to hide/show tab panels.\n *\n * It renders a `div` by default.\n */\nexport const TabPanels = forwardRef<TabPanelsProps, \"div\">((props, ref) => {\n const panelsProps = useTabPanels(props)\n const styles = useStyles()\n\n return (\n <chakra.div\n {...panelsProps}\n width=\"100%\"\n ref={ref}\n className={cx(\"chakra-tabs__tab-panels\", props.className)}\n __css={styles.tabpanels}\n />\n )\n})\n\nif (__DEV__) {\n TabPanels.displayName = \"TabPanels\"\n}\n\nexport interface TabIndicatorProps extends HTMLChakraProps<\"div\"> {}\n\n/**\n * TabIndicator\n *\n * Used to render an active tab indicator that animates between\n * selected tabs.\n */\nexport const TabIndicator = forwardRef<TabIndicatorProps, \"div\">(\n (props, ref) => {\n const indicatorStyle = useTabIndicator()\n const style = {\n ...props.style,\n ...indicatorStyle,\n }\n\n const styles = useStyles()\n\n return (\n <chakra.div\n ref={ref}\n {...props}\n className={cx(\"chakra-tabs__tab-indicator\", props.className)}\n style={style}\n __css={styles.indicator}\n />\n )\n },\n)\n\nif (__DEV__) {\n TabIndicator.displayName = \"TabIndicator\"\n}\n","import {\n chakra,\n forwardRef,\n HTMLChakraProps,\n SystemProps,\n tokenToCSSVar,\n} from \"@chakra-ui/system\"\nimport { cx, Dict, mapResponsive, __DEV__ } from \"@chakra-ui/utils\"\nimport * as React from \"react\"\n\nexport interface WrapProps extends HTMLChakraProps<\"div\"> {\n /**\n * The space between the each child (even if it wraps)\n * @type SystemProps[\"margin\"]\n */\n spacing?: SystemProps[\"margin\"]\n /**\n * The `justify-content` value (for cross-axis alignment)\n * @type SystemProps[\"justifyContent\"]\n */\n justify?: SystemProps[\"justifyContent\"]\n /**\n * The `align-items` value (for main axis alignment)\n * @type SystemProps[\"alignItems\"]\n */\n align?: SystemProps[\"alignItems\"]\n /**\n * The `flex-direction` value\n * @type SystemProps[\"flexDirection\"]\n */\n direction?: SystemProps[\"flexDirection\"]\n /**\n * If `true`, the children will be wrapped in a `WrapItem`\n */\n shouldWrapChildren?: boolean\n}\n\n/**\n * Layout component used to stack elements that differ in length\n * and are liable to wrap.\n *\n * Common use cases:\n * - Buttons that appear together at the end of forms\n * - Lists of tags and chips\n *\n * @see Docs https://chakra-ui.com/wrap\n */\nexport const Wrap = forwardRef<WrapProps, \"div\">((props, ref) => {\n const {\n spacing = \"0.5rem\",\n children,\n justify,\n direction,\n align,\n className,\n shouldWrapChildren,\n ...rest\n } = props\n\n const styles = React.useMemo(\n () => ({\n \"--chakra-wrap-spacing\": (theme: Dict) =>\n mapResponsive(spacing, (value) => tokenToCSSVar(\"space\", value)(theme)),\n \"--wrap-spacing\": \"calc(var(--chakra-wrap-spacing) / 2)\",\n display: \"flex\",\n flexWrap: \"wrap\",\n justifyContent: justify,\n alignItems: align,\n flexDirection: direction,\n listStyleType: \"none\",\n padding: \"0\",\n margin: \"calc(var(--wrap-spacing) * -1)\",\n \"& > *:not(style)\": {\n margin: \"var(--wrap-spacing)\",\n },\n }),\n [spacing, justify, align, direction],\n )\n\n const childrenToRender = shouldWrapChildren\n ? React.Children.map(children, (child, index) => (\n <WrapItem key={index}>{child}</WrapItem>\n ))\n : children\n\n return (\n <chakra.div ref={ref} className={cx(\"chakra-wrap\", className)} {...rest}>\n <chakra.ul className=\"chakra-wrap__list\" __css={styles}>\n {childrenToRender}\n </chakra.ul>\n </chakra.div>\n )\n})\n\nif (__DEV__) {\n Wrap.displayName = \"Wrap\"\n}\n\nexport interface WrapItemProps extends HTMLChakraProps<\"li\"> {}\n\nexport const WrapItem = forwardRef<WrapItemProps, \"li\">((props, ref) => {\n const { className, ...rest } = props\n return (\n <chakra.li\n ref={ref}\n __css={{ display: \"flex\", alignItems: \"flex-start\" }}\n className={cx(\"chakra-wrap__listitem\", className)}\n {...rest}\n />\n )\n})\n\nif (__DEV__) {\n WrapItem.displayName = \"WrapItem\"\n}\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["../../../src/index.ts","../../../src/link-box.tsx","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/date-fns/esm/compareAsc/index.js","../node_modules/date-fns/esm/_lib/cloneObject/index.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/date-fns/esm/formatDistanceStrict/index.js","../node_modules/date-fns/esm/formatDistanceToNowStrict/index.js","../../../src/use-tabs.ts","../../../src/tabs.tsx","../../../src/wrap.tsx"],"names":["LinkOverlay","forwardRef","className","ref","cx","rel","isExternal","target","__css","position","content","cursor","display","top","left","zIndex","width","height","LinkBox","_taggedTemplateLiteral","strings","raw","slice","Object","freeze","defineProperties","value","compareAsc","dirtyDateLeft","dirtyDateRight","requiredArgs","arguments","dateLeft","toDate","dateRight","diff","getTime","cloneObject","dirtyObject","TypeError","property","prototype","hasOwnProperty","call","assign","MILLISECONDS_IN_MINUTE","MINUTES_IN_DAY","MINUTES_IN_MONTH","MINUTES_IN_YEAR","formatDistanceStrict","dirtyDate","dirtyBaseDate","options","length","undefined","locale","defaultLocale","formatDistance","RangeError","comparison","isNaN","localizeOptions","addSuffix","Boolean","roundingMethodFn","roundingMethod","String","Math","floor","ceil","round","unit","milliseconds","minutes","timezoneOffset","getTimezoneOffsetInMilliseconds","dstNormalizedMinutes","seconds","roundedMinutes","hours","days","months","years","formatDistanceToNowStrict","dirtyOptions","Date","now","createDescendantContext","createContext","name","errorMessage","makeTabId","id","makeTabPanelId","Tabs","styles","useMultiStyleConfig","omitThemingProps","props","lazyBehavior","orientation","direction","React","defaultIndex","useControllableState","defaultValue","onChange","index","setFocusedIndex","descendants","useTabsDescendants","useId","selectedIndex","focusedIndex","setSelectedIndex","isManual","isLazy","htmlProps","useTabs","context","rootProps","omit","root","Tab","useStyles","tabProps","isFocusable","useTabsContext","useTabsDescendant","disabled","isDisabled","register","isSelected","clickableProps","useClickable","mergeRefs","onClick","callAllHandlers","role","tabIndex","type","onFocus","useTab","tabStyles","outline","alignItems","justifyContent","TabList","tablistProps","useTabsDescendantsContext","onKeyDown","event","nextTab","next","focus","prevTab","prev","isHorizontal","isVertical","eventKey","normalizeEventKey","ArrowStart","ArrowEnd","action","first","last","useTabList","tablistStyles","TabPanel","panelProps","children","hasBeenSelected","determineLazyBehavior","hidden","useTabPanel","tabpanel","TabPanels","panelsProps","getValidChildren","useTabPanels","tabpanels","TabIndicator","indicatorStyle","useSafeLayoutEffect","isUndefined","tab","setRect","offsetWidth","offsetHeight","requestAnimationFrame","setHasMeasured","cancelAnimationFrame","transitionProperty","transitionDuration","hasMeasured","transitionTimingFunction","useTabIndicator","style","indicator","Wrap","spacing","shouldWrapChildren","theme","mapResponsive","tokenToCSSVar","flexWrap","flexDirection","listStyleType","padding","margin","justify","align","childrenToRender","key","WrapItem"],"mappings":"mIAAA,sX,kfCWO,IAAMA,EAAcC,aAAkC,cAC3D,IAAM,EAAN,EAAM,aAAN,EAAM,SAAN,EAAM,IAA2BC,EAAjC,EAAiCA,UAAjC,iDACA,OACE,gBAAC,IAAD,UAEEC,IAFF,EAGED,UAAWE,YAAG,0BAHhB,GAIEC,IAAKC,EAAa,sBAJpB,EAKEC,OAAQD,EAAa,SALvB,EAMEE,MAAO,CACLC,SADK,SAEL,YAAa,CACXC,QADW,KAEXC,OAFW,UAGXC,QAHW,QAIXH,SAJW,WAKXI,IALW,EAMXC,KANW,EAOXC,OAPW,EAQXC,MARW,OASXC,OAAQ,eAeLC,EAAUjB,aAAgC,cAC/C,IAAEC,EAAR,EAAQA,UAAR,qBAEA,OACE,gBAAC,IAAD,OACEC,IADF,EAEEM,SAAS,YAFX,GAIEP,UAAWE,YAAG,iBAJhB,GAKEI,MAAO,CAEL,qDAAsD,CACpDC,SADoD,WAEpDM,OAAQ,W,iCC3DH,SAASI,EAAuBC,EAASC,GAKtD,OAJKA,IACHA,EAAMD,EAAQE,MAAM,IAGfC,OAAOC,OAAOD,OAAOE,iBAAiBL,EAAS,CACpDC,IAAK,CACHK,MAAOH,OAAOC,OAAOH,OAP3B,mC,kGCuCe,SAASM,EAAWC,EAAeC,GAChDC,YAAa,EAAGC,WAChB,IAAIC,EAAWC,YAAOL,GAClBM,EAAYD,YAAOJ,GACnBM,EAAOH,EAASI,UAAYF,EAAUE,UAE1C,OAAID,EAAO,GACD,EACCA,EAAO,EACT,EAEAA,ECjDI,SAASE,EAAYC,GAClC,OCFa,SAAgB/B,EAAQ+B,GACrC,GAAc,MAAV/B,EACF,MAAM,IAAIgC,UAAU,iEAKtB,IAAK,IAAIC,KAFTF,EAAcA,GAAe,GAGvBf,OAAOkB,UAAUC,eAAeC,KAAKL,EAAaE,KACpDjC,EAAOiC,GAAYF,EAAYE,IAInC,OAAOjC,EDXAqC,CAAO,GAAIN,G,aEIhBO,EAAyB,IACzBC,EAAiB,KACjBC,EAAmBD,MACnBE,EAAkBF,OAwJP,SAASG,EAAqBC,EAAWC,GACtD,IAAIC,EAAUrB,UAAUsB,OAAS,QAAsBC,IAAjBvB,UAAU,GAAmBA,UAAU,GAAK,GAClFD,YAAa,EAAGC,WAChB,IAAIwB,EAASH,EAAQG,QAAUC,IAE/B,IAAKD,EAAOE,eACV,MAAM,IAAIC,WAAW,wDAGvB,IAAIC,EAAahC,EAAWuB,EAAWC,GAEvC,GAAIS,MAAMD,GACR,MAAM,IAAID,WAAW,sBAGvB,IAGI1B,EACAE,EAJA2B,EAAkBxB,EAAYe,GAClCS,EAAgBC,UAAYC,QAAQX,EAAQU,WAC5CD,EAAgBF,WAAaA,EAIzBA,EAAa,GACf3B,EAAWC,YAAOkB,GAClBjB,EAAYD,YAAOiB,KAEnBlB,EAAWC,YAAOiB,GAClBhB,EAAYD,YAAOkB,IAGrB,IACIa,EADAC,EAA2C,MAA1Bb,EAAQa,eAAyB,QAAUC,OAAOd,EAAQa,gBAG/E,GAAuB,UAAnBA,EACFD,EAAmBG,KAAKC,WACnB,GAAuB,SAAnBH,EACTD,EAAmBG,KAAKE,SACnB,IAAuB,UAAnBJ,EAGT,MAAM,IAAIP,WAAW,qDAFrBM,EAAmBG,KAAKG,MAK1B,IAMIC,EANAC,EAAetC,EAAUE,UAAYJ,EAASI,UAC9CqC,EAAUD,EAAe3B,EACzB6B,EAAiBC,YAAgCzC,GAAayC,YAAgC3C,GAG9F4C,GAAwBJ,EAAeE,GAAkB7B,EAsB7D,GAAa,YAjBT0B,EAFgB,MAAhBnB,EAAQmB,KACNE,EAAU,EACL,SACEA,EAAU,GACZ,SACEA,EAAU3B,EACZ,OACE8B,EAAuB7B,EACzB,MACE6B,EAAuB5B,EACzB,QAEA,OAGFkB,OAAOd,EAAQmB,OAID,CACrB,IAAIM,EAAUb,EAAiBQ,EAAe,KAC9C,OAAOjB,EAAOE,eAAe,WAAYoB,EAAShB,GAC7C,GAAa,WAATU,EAAmB,CAC5B,IAAIO,EAAiBd,EAAiBS,GACtC,OAAOlB,EAAOE,eAAe,WAAYqB,EAAgBjB,GACpD,GAAa,SAATU,EAAiB,CAC1B,IAAIQ,EAAQf,EAAiBS,EAAU,IACvC,OAAOlB,EAAOE,eAAe,SAAUsB,EAAOlB,GACzC,GAAa,QAATU,EAAgB,CACzB,IAAIS,EAAOhB,EAAiBY,EAAuB9B,GACnD,OAAOS,EAAOE,eAAe,QAASuB,EAAMnB,GACvC,GAAa,UAATU,EAAkB,CAC3B,IAAIU,EAASjB,EAAiBY,EAAuB7B,GACrD,OAAkB,KAAXkC,GAAkC,UAAjB7B,EAAQmB,KAAmBhB,EAAOE,eAAe,SAAU,EAAGI,GAAmBN,EAAOE,eAAe,UAAWwB,EAAQpB,GAC7I,GAAa,SAATU,EAAiB,CAC1B,IAAIW,EAAQlB,EAAiBY,EAAuB5B,GACpD,OAAOO,EAAOE,eAAe,SAAUyB,EAAOrB,GAGhD,MAAM,IAAIH,WAAW,qEC7KR,SAASyB,EAA0BjC,EAAWkC,GAE3D,OADAtD,YAAa,EAAGC,WACTkB,EAAqBC,EAAWmC,KAAKC,MAAOF,K,2tBCnD9C,MAKHG,cALG,mBAAM,EAAN,KAAM,EAAN,KAAM,EAAN,KAAM,EAAN,KAmJA,MAAuCC,YAA6B,CACzEC,KADyE,cAEzEC,aACE,yGAHG,mBAAM,EAAN,KAAM,EAAN,KA2RP,SAASC,EAAUC,EAAnB,GACE,OAAUA,EAAV,WAGF,SAASC,EAAeD,EAAxB,GACE,OAAUA,EAAV,gB,sVC5ZK,IAAME,EAAO7F,aAA6B,cAC/C,IAAM8F,EAASC,YAAoB,OAAnC,GACA,EAAyCC,YAAzC,GAAM,EAAN,EAAM,SAAY/F,EAAlB,EAAkBA,UAElB,ED+CK,SAAiBgG,GACtB,IAAM,EAAN,EAAM,eAAN,EAAM,WAAN,EAAM,QAAN,EAAM,WAAN,EAAM,OAAN,IAMEC,oBANF,MAAM,UAAN,MAOEC,mBAPF,MAAM,aAAN,MAQEC,iBARF,MAQc,MARd,0GAwBA,EAAwCC,iBAAeC,EAAfD,EAAxC,sBAAM,EAAN,KAAM,EAAN,KAEA,EAA0CE,YAAqB,CAC7DC,aAAY,MAAEF,EAAF,EADiD,EAE7D7E,MAF6D,EAG7DgF,aAHF,mBAAM,EAAN,KAAM,EAAN,KASAJ,aAAgB,WACd,MAAIK,GACFC,OAED,CAJHN,IASA,IAAMO,EAAcC,IAOpB,MAAO,CACLlB,GAHSmB,YAAMb,EAAD,GAAhB,QAIEc,gBACAC,eACAC,mBACAN,kBACAO,WACAC,SACAjB,eACAC,cACAS,cACAR,YACAgB,aC/GyCC,CAF3C,+BAEM,EAAN,EAAM,UAAaT,EAAnB,EAAmBA,YAAnB,mCACMU,EAAUjB,WAAc,kBAAdA,IAAyB,CAAzC,IAEMkB,EAAYC,YAAKJ,EAAkB,CAAzC,aAEA,OACE,mBAAyB3F,MAAOmF,GAC9B,mBAAcnF,MAAO6F,GACnB,qBAAgB7F,MAAOqE,GACrB,gBAAC,IAAD,OACE7F,UAAWE,YAAG,cADhB,GAEED,IAAKA,GAFP,GAIEK,MAAOuF,EAAO2B,OARxB,SAkBE,EAAJ,IACE5B,sBASK,IAAM6B,EAAM1H,aAA+B,cAChD,IAAM8F,EAAS6B,cACTC,ED0LD,YACL,IAAM,EAAN,EAAM,WAAcC,EAApB,EAAoBA,YAApB,oCAEA,EAMIC,IANE,EAAN,EAAM,mBAAN,EAAM,WAAN,EAAM,KAAN,EAAM,gBAKJf,EALF,EAKEA,cAGF,EAA4BgB,EAAkB,CAC5CC,SAAUC,IAAeJ,IADrB,EAAN,EAAM,MAASK,EAAf,EAAeA,SAITC,EAAazB,IAAnB,EAeM0B,EAAiBC,YAAa,EAAD,MAEjCnI,IAAKoI,YAAUJ,EAAUjC,EAFQ,KAGjCgC,aACAJ,cACAU,QAASC,YAAgBvC,EAAD,SAlBV,WACdgB,WAsBF,eAEEtB,GAAID,EAAUC,EAFhB,GAGE8C,KAHF,MAIEC,SAAUP,EAAa,GAJzB,EAKEQ,KAPF,SAQE,gBANF,EAOE,gBAAiB/C,EAAeD,EAPlC,GAQEiD,QAASX,OAAa5E,EAAYmF,YAAgBvC,EAAD,SA3BnC,WACdU,MAEsBO,KADSe,IAA/B,IAGEhB,UCpNa4B,CAAO,EAAD,MAAa3I,SAE9B4I,EAA+B,EAAH,CAChCC,QADgC,IAEhCpI,QAFgC,OAGhCqI,WAHgC,SAIhCC,eAAgB,UACbnD,EALL,KAQA,OACE,gBAAC,IAAD,eAEE7F,UAAWE,YAAG,mBAAoB8F,EAFpC,WAGE1F,MAAOuI,QAKT,EAAJ,IACEpB,qBAWK,IAAMwB,EAAUlJ,aAAgC,cACrD,IAAMmJ,EDyED,YACL,MAAiDrB,IAA3C,EAAN,EAAM,eAAN,EAAM,YAA6B1B,EAAnC,EAAmCA,UAE7BQ,EAAcwC,IAEdC,EAAY,eACfC,YAA+B,MACxBC,EAAU,WACd,IAAMC,EAAO5C,cAAb,GACA,GAAU6C,YAAMD,EAANC,OAENC,EAAU,WACd,IAAMC,EAAO/C,cAAb,GACA,GAAU6C,YAAME,EAANF,OAWNG,EAAN,eAAqBzD,EACf0D,EAAN,aAAmB1D,EAEb2D,EAAWC,YAAjB,GAEMC,EAAa5D,sBAAnB,aACM6D,EAAW7D,uBAAjB,YAWM8D,GATmB,mBACvB,GAAc,kBAAMN,GAAgBF,OADb,cAEvB,GAAY,kBAAME,GAAgBL,OAFX,2BAGZ,kBAAMM,GAAcN,OAHR,yBAId,kBAAMM,GAAcH,OAJN,sBAjBR,WACf,IAAMS,EAAQvD,EAAd,eACA,GAAW6C,YAAMU,EAANV,SAeY,qBAbT,WACd,IAAMW,EAAOxD,EAAb,cACA,GAAU6C,YAAMW,EAANX,SAWa,GASzB,GAEA,IACEH,mBACAY,QAGJ,CAACtD,EAAaI,EAAcb,EA3C9B,IA8CA,eAEEsC,KAFF,UAGE,mBAHF,EAIEY,UAAWb,YAAgBvC,EAAD,eChIPoE,CAAW,EAAD,MAAanK,SAItCoK,EAAmC,EAAH,CACpC3J,QAAS,QAHIgH,cAEf,SAKA,OACE,gBAAC,IAAD,YAEE1H,UAAWE,YAAG,uBAAwB8F,EAFxC,WAGE1F,MAAO+J,QAKT,EAAJ,IACEpB,yBASK,IAAMqB,EAAWvK,aAAiC,cACvD,IAAMwK,EDuND,SAAqBvE,GAC1B,IAAM,EAAN,EAAM,aAAN,EAAM,GAAkBwE,EAAxB,EAAwBA,SAAxB,sCACA,EAAiC3C,IAA3B,EAAN,EAAM,OAAU5B,EAAhB,EAAgBA,aAEVwE,EAAkBrE,UAAxB,GAYA,OAXA,IACEqE,cAUF,GAEEhC,SAAU,GAFZ,GAIE+B,SAX2BE,YAAsB,CACjDD,gBAAiBA,EADgC,QAEjDvC,aACAhB,SACAjB,iBAOiCuE,EAJnC,KAKEhC,KALF,WAMEmC,QANF,EAOEjF,OC9OiBkF,CAAY,EAAD,MAAa3K,SACrC4F,EAAS6B,cAEf,OACE,gBAAC,IAAD,OACEoB,QAAQ,KADV,GAGE9I,UAAWE,YAAG,yBAA0B8F,EAH1C,WAIE1F,MAAOuF,EAAOgF,eAKhB,EAAJ,IACEP,0BAaK,IAAMQ,EAAY/K,aAAkC,cACzD,IAAMgL,EDkKD,YACL,IAAM1D,EAAUQ,IAEV,EAAN,EAAM,GAAMf,EAAZ,EAAYA,cAaZ,eAAmB0D,SAXGQ,YAAiBhF,EAAvC,UAEiB,KAAkB,qBACjC,iBAAmC,CACjCkC,WAAYzB,IADqB,EAEjCf,GAAIC,EAAeD,EAFc,GAIjC,kBAAmBD,EAAUC,EAAIe,UC9KjBwE,CAApB,GACMpF,EAAS6B,cAEf,OACE,gBAAC,IAAD,YAEE5G,MAFF,OAGEb,IAHF,EAIED,UAAWE,YAAG,0BAA2B8F,EAJ3C,WAKE1F,MAAOuF,EAAOqF,gBAKhB,EAAJ,IACEJ,2BAWK,IAAMK,EAAepL,aAC1B,cACE,IAAMqL,EDkMH,WACL,IAAM/D,EAAUQ,IACVlB,EAAcwC,IAEd,EAAN,EAAM,cAAiBjD,EAAvB,EAAuBA,YAEjByD,EAAN,eAAqBzD,EACf0D,EAP+C,aAOlC1D,EAGnB,EAAwB,YAAe,WACrC,SAAyB,CAAEtF,KAAF,EAAWE,MAAO,GAC3C,EAAuB,CAAEH,IAAF,EAAUI,OAAQ,QAAzC,KAFF,mBAAM,EAAN,KAAM,EAAN,KAMA,EAAsCqF,YAhBe,GAgBrD,mBAAM,EAAN,KAAM,EAAN,KAgCA,OA7BAiF,aAAoB,WAClB,IAAIC,YAAJ,IAEA,IAAMC,EAAM5E,OAAZ,GACA,IAAI2E,YAAJ,IAGA,GACEE,EAAQ,CAAE5K,KAAM2K,OAAR,WAA6BzK,MAAOyK,OAASE,cAIvD,GACED,EAAQ,CAAE7K,IAAK4K,OAAP,UAA2BxK,OAAQwK,OAASG,eAKtD,IAAMhG,EAAKiG,uBAAsB,WAC/BC,SAGF,OAAO,WACL,GACEC,6BAGH,CAAC/E,EAAe6C,EAAcC,EA3BjCyB,IA6BA,GACE9K,SADF,WAEEuL,mBAFF,2BAGEC,mBAAoBC,EAAc,QAHpC,MAIEC,yBAA0B,8BAJ5B,GClPyBC,GACjBC,EAAQ,EAAH,GACNnG,EADM,MAAX,GAKMH,EAAS6B,cAEf,OACE,gBAAC,IAAD,OACEzH,IAAKA,GADP,GAGED,UAAWE,YAAG,6BAA8B8F,EAH9C,WAIEmG,MAJF,EAKE7L,MAAOuF,EAAOuG,gBAMlB,EAAJ,IACEjB,+B,sfCrLK,IAAMkB,EAAOtM,aAA6B,cAC/C,QACEuM,eADF,MAAM,SAAN,EAAM,EAAN,EAAM,WAAN,EAAM,UAAN,EAAM,YAAN,EAAM,QAAN,EAAM,UAOJC,EAPF,EAOEA,mBAPF,6FAWM1G,EAAS,WACb,iBAAO,CACL,wBAA0B2G,YAAD,OACvBC,YAAcH,GAAU9K,YAAD,OAAWkL,wBAAc,QAAdA,GAF/B,OAGL,iBAHK,uCAILhM,QAJK,OAKLiM,SALK,OAML3D,eANK,EAOLD,WAPK,EAQL6D,cARK,EASLC,cATK,OAULC,QAVK,IAWLC,OAXK,iCAYL,mBAAoB,CAClBA,OAAQ,0BAGZ,CAACT,EAASU,EAASC,EAjBrB,IAoBMC,EAAmBX,EACrB,kBAA6B,qBAC3B,mBAAUY,IAAK1G,GAFsB,MAA3C,EAMA,OACE,gBAAC,IAAD,OAAYxG,IAAZ,EAAsBD,UAAWE,YAAG,cAAeF,IAAnD,GACE,gBAAC,IAAD,IAAWA,UAAX,oBAAyCM,MAAOuF,GAFpD,OASE,EAAJ,IACEwG,sBAKK,IAAMe,EAAWrN,aAAgC,cAChD,IAAEC,EAAR,EAAQA,UAAR,qBACA,OACE,gBAAC,IAAD,MACEC,IADF,EAEEK,MAAO,CAAEI,QAAF,OAAmBqI,WAAY,cACtC/I,UAAWE,YAAG,wBAAyBF,IAJ3C,OAUE,EAAJ,IACEoN","file":"static/js/9.174f64fc.chunk.js","sourcesContent":["export * from \"@chakra-ui/color-mode\"\nexport * from \"@chakra-ui/styled-system\"\nexport { keyframes } from \"@emotion/react\"\nexport type { Interpolation } from \"@emotion/react\"\nexport * from \"./hooks\"\nexport * from \"./system.types\"\nexport * from \"./providers\"\nexport { omitThemingProps } from \"./system.utils\"\nexport * from \"./system\"\nexport * from \"./forward-ref\"\nexport * from \"./use-style-config\"\nexport { shouldForwardProp } from \"./should-forward-prop\"\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","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * const result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","import assign from \"../assign/index.js\";\nexport default function cloneObject(dirtyObject) {\n return assign({}, dirtyObject);\n}","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (Object.prototype.hasOwnProperty.call(dirtyObject, property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport compareAsc from \"../compareAsc/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport cloneObject from \"../_lib/cloneObject/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_MINUTE = 1000 * 60;\nvar MINUTES_IN_DAY = 60 * 24;\nvar MINUTES_IN_MONTH = MINUTES_IN_DAY * 30;\nvar MINUTES_IN_YEAR = MINUTES_IN_DAY * 365;\n/**\n * @name formatDistanceStrict\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words, using strict units.\n * This is like `formatDistance`, but does not use helpers like 'almost', 'over',\n * 'less than' and the like.\n *\n * | Distance between dates | Result |\n * |------------------------|---------------------|\n * | 0 ... 59 secs | [0..59] seconds |\n * | 1 ... 59 mins | [1..59] minutes |\n * | 1 ... 23 hrs | [1..23] hours |\n * | 1 ... 29 days | [1..29] days |\n * | 1 ... 11 months | [1..11] months |\n * | 1 ... N years | [1..N] years |\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `distanceInWordsStrict` to `formatDistanceStrict`\n * to make its name consistent with `format` and `formatRelative`.\n *\n * - The order of arguments is swapped to make the function\n * consistent with `differenceIn...` functions.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(2015, 0, 2),\n * new Date(2014, 6, 2)\n * ) //=> '6 months'\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(2014, 6, 2),\n * new Date(2015, 0, 2)\n * ) //=> '6 months'\n * ```\n *\n * - `partialMethod` option is renamed to `roundingMethod`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 10, 33, 1),\n * { partialMethod: 'ceil' }\n * ) //=> '2 minutes'\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(1986, 3, 4, 10, 33, 1),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { roundingMethod: 'ceil' }\n * ) //=> '2 minutes'\n * ```\n *\n * - If `roundingMethod` is not specified, it now defaults to `round` instead of `floor`.\n *\n * - `unit` option now accepts one of the strings:\n * 'second', 'minute', 'hour', 'day', 'month' or 'year' instead of 's', 'm', 'h', 'd', 'M' or 'Y'\n *\n * ```javascript\n * // Before v2.0.0\n *\n * distanceInWordsStrict(\n * new Date(1986, 3, 4, 10, 32, 0),\n * new Date(1986, 3, 4, 10, 33, 1),\n * { unit: 'm' }\n * )\n *\n * // v2.0.0 onward\n *\n * formatDistanceStrict(\n * new Date(1986, 3, 4, 10, 33, 1),\n * new Date(1986, 3, 4, 10, 32, 0),\n * { unit: 'minute' }\n * )\n * ```\n *\n * @param {Date|Number} date - the date\n * @param {Date|Number} baseDate - the date to compare with\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {'second'|'minute'|'hour'|'day'|'month'|'year'} [options.unit] - if specified, will force a unit\n * @param {'floor'|'ceil'|'round'} [options.roundingMethod='round'] - which way to round partial units\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `baseDate` must not be Invalid Date\n * @throws {RangeError} `options.roundingMethod` must be 'floor', 'ceil' or 'round'\n * @throws {RangeError} `options.unit` must be 'second', 'minute', 'hour', 'day', 'month' or 'year'\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistanceStrict(new Date(2014, 6, 2), new Date(2015, 0, 2))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00?\n * const result = formatDistanceStrict(\n * new Date(2015, 0, 1, 0, 0, 15),\n * new Date(2015, 0, 1, 0, 0, 0)\n * )\n * //=> '15 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistanceStrict(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n * addSuffix: true\n * })\n * //=> '1 year ago'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, in minutes?\n * const result = formatDistanceStrict(new Date(2016, 0, 1), new Date(2015, 0, 1), {\n * unit: 'minute'\n * })\n * //=> '525600 minutes'\n *\n * @example\n * // What is the distance from 1 January 2015\n * // to 28 January 2015, in months, rounded up?\n * const result = formatDistanceStrict(new Date(2015, 0, 28), new Date(2015, 0, 1), {\n * unit: 'month',\n * roundingMethod: 'ceil'\n * })\n * //=> '1 month'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistanceStrict(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n * locale: eoLocale\n * })\n * //=> '1 jaro'\n */\n\nexport default function formatDistanceStrict(dirtyDate, dirtyBaseDate) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n requiredArgs(2, arguments);\n var locale = options.locale || defaultLocale;\n\n if (!locale.formatDistance) {\n throw new RangeError('locale must contain localize.formatDistance property');\n }\n\n var comparison = compareAsc(dirtyDate, dirtyBaseDate);\n\n if (isNaN(comparison)) {\n throw new RangeError('Invalid time value');\n }\n\n var localizeOptions = cloneObject(options);\n localizeOptions.addSuffix = Boolean(options.addSuffix);\n localizeOptions.comparison = comparison;\n var dateLeft;\n var dateRight;\n\n if (comparison > 0) {\n dateLeft = toDate(dirtyBaseDate);\n dateRight = toDate(dirtyDate);\n } else {\n dateLeft = toDate(dirtyDate);\n dateRight = toDate(dirtyBaseDate);\n }\n\n var roundingMethod = options.roundingMethod == null ? 'round' : String(options.roundingMethod);\n var roundingMethodFn;\n\n if (roundingMethod === 'floor') {\n roundingMethodFn = Math.floor;\n } else if (roundingMethod === 'ceil') {\n roundingMethodFn = Math.ceil;\n } else if (roundingMethod === 'round') {\n roundingMethodFn = Math.round;\n } else {\n throw new RangeError(\"roundingMethod must be 'floor', 'ceil' or 'round'\");\n }\n\n var milliseconds = dateRight.getTime() - dateLeft.getTime();\n var minutes = milliseconds / MILLISECONDS_IN_MINUTE;\n var timezoneOffset = getTimezoneOffsetInMilliseconds(dateRight) - getTimezoneOffsetInMilliseconds(dateLeft); // Use DST-normalized difference in minutes for years, months and days;\n // use regular difference in minutes for hours, minutes and seconds.\n\n var dstNormalizedMinutes = (milliseconds - timezoneOffset) / MILLISECONDS_IN_MINUTE;\n var unit;\n\n if (options.unit == null) {\n if (minutes < 1) {\n unit = 'second';\n } else if (minutes < 60) {\n unit = 'minute';\n } else if (minutes < MINUTES_IN_DAY) {\n unit = 'hour';\n } else if (dstNormalizedMinutes < MINUTES_IN_MONTH) {\n unit = 'day';\n } else if (dstNormalizedMinutes < MINUTES_IN_YEAR) {\n unit = 'month';\n } else {\n unit = 'year';\n }\n } else {\n unit = String(options.unit);\n } // 0 up to 60 seconds\n\n\n if (unit === 'second') {\n var seconds = roundingMethodFn(milliseconds / 1000);\n return locale.formatDistance('xSeconds', seconds, localizeOptions); // 1 up to 60 mins\n } else if (unit === 'minute') {\n var roundedMinutes = roundingMethodFn(minutes);\n return locale.formatDistance('xMinutes', roundedMinutes, localizeOptions); // 1 up to 24 hours\n } else if (unit === 'hour') {\n var hours = roundingMethodFn(minutes / 60);\n return locale.formatDistance('xHours', hours, localizeOptions); // 1 up to 30 days\n } else if (unit === 'day') {\n var days = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_DAY);\n return locale.formatDistance('xDays', days, localizeOptions); // 1 up to 12 months\n } else if (unit === 'month') {\n var months = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_MONTH);\n return months === 12 && options.unit !== 'month' ? locale.formatDistance('xYears', 1, localizeOptions) : locale.formatDistance('xMonths', months, localizeOptions); // 1 year up to max Date\n } else if (unit === 'year') {\n var years = roundingMethodFn(dstNormalizedMinutes / MINUTES_IN_YEAR);\n return locale.formatDistance('xYears', years, localizeOptions);\n }\n\n throw new RangeError(\"unit must be 'second', 'minute', 'hour', 'day', 'month' or 'year'\");\n}","import formatDistanceStrict from \"../formatDistanceStrict/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name formatDistanceToNowStrict\n * @category Common Helpers\n * @summary Return the distance between the given date and now in words.\n * @pure false\n *\n * @description\n * Return the distance between the given dates in words, using strict units.\n * This is like `formatDistance`, but does not use helpers like 'almost', 'over',\n * 'less than' and the like.\n *\n * | Distance between dates | Result |\n * |------------------------|---------------------|\n * | 0 ... 59 secs | [0..59] seconds |\n * | 1 ... 59 mins | [1..59] minutes |\n * | 1 ... 23 hrs | [1..23] hours |\n * | 1 ... 29 days | [1..29] days |\n * | 1 ... 11 months | [1..11] months |\n * | 1 ... N years | [1..N] years |\n *\n * @param {Date|Number} date - the given date\n * @param {Object} [options] - an object with options.\n * @param {Boolean} [options.addSuffix=false] - result indicates if the second date is earlier or later than the first\n * @param {'second'|'minute'|'hour'|'day'|'month'|'year'} [options.unit] - if specified, will force a unit\n * @param {'floor'|'ceil'|'round'} [options.roundingMethod='round'] - which way to round partial units\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @returns {String} the distance in words\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `formatDistance` property\n *\n * @example\n * // If today is 1 January 2015, what is the distance to 2 July 2014?\n * var result = formatDistanceToNowStrict(\n * new Date(2014, 6, 2)\n * )\n * //=> '6 months'\n *\n * @example\n * // If now is 1 January 2015 00:00:00,\n * // what is the distance to 1 January 2015 00:00:15, including seconds?\n * var result = formatDistanceToNowStrict(\n * new Date(2015, 0, 1, 0, 0, 15)\n * )\n * //=> '20 seconds'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 January 2016, with a suffix?\n * var result = formatDistanceToNowStrict(\n * new Date(2016, 0, 1),\n * {addSuffix: true}\n * )\n * //=> 'in 1 year'\n *\n * @example\n * // If today is 28 January 2015,\n * // what is the distance to 1 January 2015, in months, rounded up??\n * var result = formatDistanceToNowStrict(new Date(2015, 0, 1), {\n * unit: 'month',\n * roundingMethod: 'ceil'\n * })\n * //=> '1 month'\n *\n * @example\n * // If today is 1 January 2015,\n * // what is the distance to 1 August 2016 in Esperanto?\n * var eoLocale = require('date-fns/locale/eo')\n * var result = formatDistanceToNowStrict(\n * new Date(2016, 7, 1),\n * {locale: eoLocale}\n * )\n * //=> '1 jaro'\n */\n\nexport default function formatDistanceToNowStrict(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n return formatDistanceStrict(dirtyDate, Date.now(), dirtyOptions);\n}","import { useClickable, UseClickableProps } from \"@chakra-ui/clickable\"\nimport { createDescendantContext } from \"@chakra-ui/descendant\"\nimport {\n useControllableState,\n useId,\n useSafeLayoutEffect,\n} from \"@chakra-ui/hooks\"\nimport {\n createContext,\n EventKeyMap,\n getValidChildren,\n mergeRefs,\n} from \"@chakra-ui/react-utils\"\nimport {\n callAllHandlers,\n determineLazyBehavior,\n Dict,\n focus,\n isUndefined,\n LazyBehavior,\n normalizeEventKey,\n} from \"@chakra-ui/utils\"\nimport * as React from \"react\"\n\n/* -------------------------------------------------------------------------------------------------\n * Create context to track descendants and their indices\n * -----------------------------------------------------------------------------------------------*/\n\nexport const [\n TabsDescendantsProvider,\n useTabsDescendantsContext,\n useTabsDescendants,\n useTabsDescendant,\n] = createDescendantContext<HTMLButtonElement>()\n\n/* -------------------------------------------------------------------------------------------------\n * useTabs - The root react hook that manages all tab items\n * -----------------------------------------------------------------------------------------------*/\n\nexport interface UseTabsProps {\n /**\n * The orientation of the tab list.\n */\n orientation?: \"vertical\" | \"horizontal\"\n /**\n * If `true`, the tabs will be manually activated and\n * display its panel by pressing Space or Enter.\n *\n * If `false`, the tabs will be automatically activated\n * and their panel is displayed when they receive focus.\n */\n isManual?: boolean\n /**\n * Callback when the index (controlled or un-controlled) changes.\n */\n onChange?: (index: number) => void\n /**\n * The index of the selected tab (in controlled mode)\n */\n index?: number\n /**\n * The initial index of the selected tab (in uncontrolled mode)\n */\n defaultIndex?: number\n /**\n * The id of the tab\n */\n id?: string\n /**\n * Performance 🚀:\n * If `true`, rendering of the tab panel's will be deferred until it is selected.\n */\n isLazy?: boolean\n /**\n * Performance 🚀:\n * The lazy behavior of tab panels' content when not active.\n * Only works when `isLazy={true}`\n *\n * - \"unmount\": The content of inactive tab panels are always unmounted.\n * - \"keepMounted\": The content of inactive tab panels is initially unmounted,\n * but stays mounted when selected.\n *\n * @default \"unmount\"\n */\n lazyBehavior?: LazyBehavior\n /**\n * The writing mode direction.\n *\n * - When in RTL, the left and right navigation is flipped\n */\n direction?: \"rtl\" | \"ltr\"\n}\n\n/**\n * Tabs hooks that provides all the states, and accessibility\n * helpers to keep all things working properly.\n *\n * Its returned object will be passed unto a Context Provider\n * so all child components can read from it.\n * There is no document link yet\n * @see Docs https://chakra-ui.com/docs/components/useTabs\n */\nexport function useTabs(props: UseTabsProps) {\n const {\n defaultIndex,\n onChange,\n index,\n isManual,\n isLazy,\n lazyBehavior = \"unmount\",\n orientation = \"horizontal\",\n direction = \"ltr\",\n ...htmlProps\n } = props\n\n /**\n * We use this to keep track of the index of the focused tab.\n *\n * Tabs can be automatically activated, this means selection follows focus.\n * When we navigate with the arrow keys, we move focus and selection to next/prev tab\n *\n * Tabs can also be manually activated, this means selection does not follow focus.\n * When we navigate with the arrow keys, we only move focus NOT selection. The user\n * will need not manually activate the tab using `Enter` or `Space`.\n *\n * This is why we need to keep track of the `focusedIndex` and `selectedIndex`\n */\n const [focusedIndex, setFocusedIndex] = React.useState(defaultIndex ?? 0)\n\n const [selectedIndex, setSelectedIndex] = useControllableState({\n defaultValue: defaultIndex ?? 0,\n value: index,\n onChange,\n })\n\n /**\n * Sync focused `index` with controlled `selectedIndex` (which is the `props.index`)\n */\n React.useEffect(() => {\n if (index != null) {\n setFocusedIndex(index)\n }\n }, [index])\n\n /**\n * Think of `useDescendants` as a register for the tab nodes.\n */\n const descendants = useTabsDescendants()\n\n /**\n * Generate a unique id or use user-provided id for the tabs widget\n */\n const id = useId(props.id, `tabs`)\n\n return {\n id,\n selectedIndex,\n focusedIndex,\n setSelectedIndex,\n setFocusedIndex,\n isManual,\n isLazy,\n lazyBehavior,\n orientation,\n descendants,\n direction,\n htmlProps,\n }\n}\n\nexport type UseTabsReturn = Omit<\n ReturnType<typeof useTabs>,\n \"htmlProps\" | \"descendants\"\n>\n\nexport const [TabsProvider, useTabsContext] = createContext<UseTabsReturn>({\n name: \"TabsContext\",\n errorMessage:\n \"useTabsContext: `context` is undefined. Seems you forgot to wrap all tabs components within <Tabs />\",\n})\n\ntype Child = React.ReactElement<any>\n\nexport interface UseTabListProps {\n children?: React.ReactNode\n onKeyDown?: React.KeyboardEventHandler\n ref?: React.Ref<any>\n}\n\n/**\n * Tabs hook to manage multiple tab buttons,\n * and ensures only one tab is selected per time.\n *\n * @param props props object for the tablist\n */\nexport function useTabList<P extends UseTabListProps>(props: P) {\n const { focusedIndex, orientation, direction } = useTabsContext()\n\n const descendants = useTabsDescendantsContext()\n\n const onKeyDown = React.useCallback(\n (event: React.KeyboardEvent) => {\n const nextTab = () => {\n const next = descendants.nextEnabled(focusedIndex)\n if (next) focus(next.node)\n }\n const prevTab = () => {\n const prev = descendants.prevEnabled(focusedIndex)\n if (prev) focus(prev.node)\n }\n const firstTab = () => {\n const first = descendants.firstEnabled()\n if (first) focus(first.node)\n }\n const lastTab = () => {\n const last = descendants.lastEnabled()\n if (last) focus(last.node)\n }\n\n const isHorizontal = orientation === \"horizontal\"\n const isVertical = orientation === \"vertical\"\n\n const eventKey = normalizeEventKey(event)\n\n const ArrowStart = direction === \"ltr\" ? \"ArrowLeft\" : \"ArrowRight\"\n const ArrowEnd = direction === \"ltr\" ? \"ArrowRight\" : \"ArrowLeft\"\n\n const keyMap: EventKeyMap = {\n [ArrowStart]: () => isHorizontal && prevTab(),\n [ArrowEnd]: () => isHorizontal && nextTab(),\n ArrowDown: () => isVertical && nextTab(),\n ArrowUp: () => isVertical && prevTab(),\n Home: firstTab,\n End: lastTab,\n }\n\n const action = keyMap[eventKey]\n\n if (action) {\n event.preventDefault()\n action(event)\n }\n },\n [descendants, focusedIndex, orientation, direction],\n )\n\n return {\n ...props,\n role: \"tablist\",\n \"aria-orientation\": orientation,\n onKeyDown: callAllHandlers(props.onKeyDown, onKeyDown),\n }\n}\n\nexport type UseTabListReturn = ReturnType<typeof useTabList>\n\nexport interface UseTabOptions {\n id?: string\n isSelected?: boolean\n panelId?: string\n /**\n * If `true`, the `Tab` won't be toggleable\n */\n isDisabled?: boolean\n}\n\nexport interface UseTabProps\n extends Omit<UseClickableProps, \"color\">,\n UseTabOptions {}\n\n/**\n * Tabs hook to manage each tab button.\n *\n * A tab can be disabled and focusable, or both,\n * hence the use of `useClickable` to handle this scenario\n */\nexport function useTab<P extends UseTabProps>(props: P) {\n const { isDisabled, isFocusable, ...htmlProps } = props\n\n const {\n setSelectedIndex,\n isManual,\n id,\n setFocusedIndex,\n selectedIndex,\n } = useTabsContext()\n\n const { index, register } = useTabsDescendant({\n disabled: isDisabled && !isFocusable,\n })\n\n const isSelected = index === selectedIndex\n\n const onClick = () => {\n setSelectedIndex(index)\n }\n\n const onFocus = () => {\n setFocusedIndex(index)\n const isDisabledButFocusable = isDisabled && isFocusable\n const shouldSelect = !isManual && !isDisabledButFocusable\n if (shouldSelect) {\n setSelectedIndex(index)\n }\n }\n\n const clickableProps = useClickable({\n ...htmlProps,\n ref: mergeRefs(register, props.ref),\n isDisabled,\n isFocusable,\n onClick: callAllHandlers(props.onClick, onClick),\n })\n\n const type: \"button\" | \"submit\" | \"reset\" = \"button\"\n\n return {\n ...clickableProps,\n id: makeTabId(id, index),\n role: \"tab\",\n tabIndex: isSelected ? 0 : -1,\n type,\n \"aria-selected\": isSelected,\n \"aria-controls\": makeTabPanelId(id, index),\n onFocus: isDisabled ? undefined : callAllHandlers(props.onFocus, onFocus),\n }\n}\n\nexport interface UseTabPanelsProps {\n children?: React.ReactNode\n}\n\n/**\n * Tabs hook for managing the visibility of multiple tab panels.\n *\n * Since only one panel can be show at a time, we use `cloneElement`\n * to inject `selected` panel to each TabPanel.\n *\n * It returns a cloned version of its children with\n * all functionality included.\n */\nexport function useTabPanels<P extends UseTabPanelsProps>(props: P) {\n const context = useTabsContext()\n\n const { id, selectedIndex } = context\n\n const validChildren = getValidChildren(props.children)\n\n const children = validChildren.map((child, index) =>\n React.cloneElement(child as Child, {\n isSelected: index === selectedIndex,\n id: makeTabPanelId(id, index),\n // Refers to the associated tab element, and also provides an accessible name to the tab panel.\n \"aria-labelledby\": makeTabId(id, index),\n }),\n )\n\n return { ...props, children }\n}\n\n/**\n * Tabs hook for managing the visible/hidden states\n * of the tab panel.\n *\n * @param props props object for the tab panel\n */\nexport function useTabPanel(props: Dict) {\n const { isSelected, id, children, ...htmlProps } = props\n const { isLazy, lazyBehavior } = useTabsContext()\n\n const hasBeenSelected = React.useRef(false)\n if (isSelected) {\n hasBeenSelected.current = true\n }\n\n const shouldRenderChildren = determineLazyBehavior({\n hasBeenSelected: hasBeenSelected.current,\n isSelected,\n isLazy,\n lazyBehavior,\n })\n\n return {\n // Puts the tabpanel in the page `Tab` sequence.\n tabIndex: 0,\n ...htmlProps,\n children: shouldRenderChildren ? children : null,\n role: \"tabpanel\",\n hidden: !isSelected,\n id,\n }\n}\n\n/**\n * Tabs hook to show an animated indicators that\n * follows the active tab.\n *\n * The way we do it is by measuring the DOM Rect (or dimensions)\n * of the active tab, and return that as CSS style for\n * the indicator.\n */\nexport function useTabIndicator(): React.CSSProperties {\n const context = useTabsContext()\n const descendants = useTabsDescendantsContext()\n\n const { selectedIndex, orientation } = context\n\n const isHorizontal = orientation === \"horizontal\"\n const isVertical = orientation === \"vertical\"\n\n // Get the clientRect of the selected tab\n const [rect, setRect] = React.useState(() => {\n if (isHorizontal) return { left: 0, width: 0 }\n if (isVertical) return { top: 0, height: 0 }\n return undefined\n })\n\n const [hasMeasured, setHasMeasured] = React.useState(false)\n\n // Update the selected tab rect when the selectedIndex changes\n useSafeLayoutEffect(() => {\n if (isUndefined(selectedIndex)) return undefined\n\n const tab = descendants.item(selectedIndex)\n if (isUndefined(tab)) return undefined\n\n // Horizontal Tab: Calculate width and left distance\n if (isHorizontal) {\n setRect({ left: tab.node.offsetLeft, width: tab.node.offsetWidth })\n }\n\n // Vertical Tab: Calculate height and top distance\n if (isVertical) {\n setRect({ top: tab.node.offsetTop, height: tab.node.offsetHeight })\n }\n\n // Prevent unwanted transition from 0 to measured rect\n // by setting the measured state in the next tick\n const id = requestAnimationFrame(() => {\n setHasMeasured(true)\n })\n\n return () => {\n if (id) {\n cancelAnimationFrame(id)\n }\n }\n }, [selectedIndex, isHorizontal, isVertical, descendants])\n\n return {\n position: \"absolute\",\n transitionProperty: \"left, right, top, bottom\",\n transitionDuration: hasMeasured ? \"200ms\" : \"0ms\",\n transitionTimingFunction: \"cubic-bezier(0, 0, 0.2, 1)\",\n ...rect,\n }\n}\n\nfunction makeTabId(id: string, index: number) {\n return `${id}--tab-${index}`\n}\n\nfunction makeTabPanelId(id: string, index: number) {\n return `${id}--tabpanel-${index}`\n}\n","import {\n chakra,\n forwardRef,\n omitThemingProps,\n StylesProvider,\n SystemStyleObject,\n ThemingProps,\n useMultiStyleConfig,\n useStyles,\n HTMLChakraProps,\n} from \"@chakra-ui/system\"\nimport { cx, omit, __DEV__ } from \"@chakra-ui/utils\"\nimport * as React from \"react\"\nimport {\n TabsDescendantsProvider,\n TabsProvider,\n useTab,\n useTabIndicator,\n useTabList,\n UseTabListProps,\n UseTabOptions,\n useTabPanel,\n useTabPanels,\n useTabs,\n UseTabsProps,\n} from \"./use-tabs\"\n\ninterface TabsOptions {\n /**\n * If `true`, tabs will stretch to width of the tablist.\n */\n isFitted?: boolean\n /**\n * The alignment of the tabs\n */\n align?: \"start\" | \"end\" | \"center\"\n}\n\nexport interface TabsProps\n extends UseTabsProps,\n ThemingProps<\"Tabs\">,\n Omit<HTMLChakraProps<\"div\">, \"onChange\">,\n TabsOptions {\n children: React.ReactNode\n}\n\n/**\n * Tabs\n *\n * Provides context and logic for all tabs components.\n */\nexport const Tabs = forwardRef<TabsProps, \"div\">((props, ref) => {\n const styles = useMultiStyleConfig(\"Tabs\", props)\n const { children, className, ...rest } = omitThemingProps(props)\n\n const { htmlProps, descendants, ...ctx } = useTabs(rest)\n const context = React.useMemo(() => ctx, [ctx])\n\n const rootProps = omit(htmlProps as any, [\"isFitted\"])\n\n return (\n <TabsDescendantsProvider value={descendants}>\n <TabsProvider value={context}>\n <StylesProvider value={styles}>\n <chakra.div\n className={cx(\"chakra-tabs\", className)}\n ref={ref}\n {...rootProps}\n __css={styles.root}\n >\n {children}\n </chakra.div>\n </StylesProvider>\n </TabsProvider>\n </TabsDescendantsProvider>\n )\n})\n\nif (__DEV__) {\n Tabs.displayName = \"Tabs\"\n}\n\nexport interface TabProps extends UseTabOptions, HTMLChakraProps<\"button\"> {}\n\n/**\n * Tab button used to activate a specific tab panel. It renders a `button`,\n * and is responsible for automatic and manual selection modes.\n */\nexport const Tab = forwardRef<TabProps, \"button\">((props, ref) => {\n const styles = useStyles()\n const tabProps = useTab({ ...props, ref })\n\n const tabStyles: SystemStyleObject = {\n outline: \"0\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n ...styles.tab,\n }\n\n return (\n <chakra.button\n {...tabProps}\n className={cx(\"chakra-tabs__tab\", props.className)}\n __css={tabStyles}\n />\n )\n})\n\nif (__DEV__) {\n Tab.displayName = \"Tab\"\n}\n\nexport interface TabListProps\n extends UseTabListProps,\n Omit<HTMLChakraProps<\"div\">, \"onKeyDown\" | \"ref\"> {}\n\n/**\n * TabList is used to manage a list of tab buttons. It renders a `div` by default,\n * and is responsible the keyboard interaction between tabs.\n */\nexport const TabList = forwardRef<TabListProps, \"div\">((props, ref) => {\n const tablistProps = useTabList({ ...props, ref })\n\n const styles = useStyles()\n\n const tablistStyles: SystemStyleObject = {\n display: \"flex\",\n ...styles.tablist,\n }\n\n return (\n <chakra.div\n {...tablistProps}\n className={cx(\"chakra-tabs__tablist\", props.className)}\n __css={tablistStyles}\n />\n )\n})\n\nif (__DEV__) {\n TabList.displayName = \"TabList\"\n}\n\nexport interface TabPanelProps extends HTMLChakraProps<\"div\"> {}\n\n/**\n * TabPanel\n * Used to render the content for a specific tab.\n */\nexport const TabPanel = forwardRef<TabPanelProps, \"div\">((props, ref) => {\n const panelProps = useTabPanel({ ...props, ref })\n const styles = useStyles()\n\n return (\n <chakra.div\n outline=\"0\"\n {...panelProps}\n className={cx(\"chakra-tabs__tab-panel\", props.className)}\n __css={styles.tabpanel}\n />\n )\n})\n\nif (__DEV__) {\n TabPanel.displayName = \"TabPanel\"\n}\n\nexport interface TabPanelsProps extends HTMLChakraProps<\"div\"> {}\n\n/**\n * TabPanel\n *\n * Used to manage the rendering of multiple tab panels. It uses\n * `cloneElement` to hide/show tab panels.\n *\n * It renders a `div` by default.\n */\nexport const TabPanels = forwardRef<TabPanelsProps, \"div\">((props, ref) => {\n const panelsProps = useTabPanels(props)\n const styles = useStyles()\n\n return (\n <chakra.div\n {...panelsProps}\n width=\"100%\"\n ref={ref}\n className={cx(\"chakra-tabs__tab-panels\", props.className)}\n __css={styles.tabpanels}\n />\n )\n})\n\nif (__DEV__) {\n TabPanels.displayName = \"TabPanels\"\n}\n\nexport interface TabIndicatorProps extends HTMLChakraProps<\"div\"> {}\n\n/**\n * TabIndicator\n *\n * Used to render an active tab indicator that animates between\n * selected tabs.\n */\nexport const TabIndicator = forwardRef<TabIndicatorProps, \"div\">(\n (props, ref) => {\n const indicatorStyle = useTabIndicator()\n const style = {\n ...props.style,\n ...indicatorStyle,\n }\n\n const styles = useStyles()\n\n return (\n <chakra.div\n ref={ref}\n {...props}\n className={cx(\"chakra-tabs__tab-indicator\", props.className)}\n style={style}\n __css={styles.indicator}\n />\n )\n },\n)\n\nif (__DEV__) {\n TabIndicator.displayName = \"TabIndicator\"\n}\n","import {\n chakra,\n forwardRef,\n HTMLChakraProps,\n SystemProps,\n tokenToCSSVar,\n} from \"@chakra-ui/system\"\nimport { cx, Dict, mapResponsive, __DEV__ } from \"@chakra-ui/utils\"\nimport * as React from \"react\"\n\nexport interface WrapProps extends HTMLChakraProps<\"div\"> {\n /**\n * The space between the each child (even if it wraps)\n * @type SystemProps[\"margin\"]\n */\n spacing?: SystemProps[\"margin\"]\n /**\n * The `justify-content` value (for cross-axis alignment)\n * @type SystemProps[\"justifyContent\"]\n */\n justify?: SystemProps[\"justifyContent\"]\n /**\n * The `align-items` value (for main axis alignment)\n * @type SystemProps[\"alignItems\"]\n */\n align?: SystemProps[\"alignItems\"]\n /**\n * The `flex-direction` value\n * @type SystemProps[\"flexDirection\"]\n */\n direction?: SystemProps[\"flexDirection\"]\n /**\n * If `true`, the children will be wrapped in a `WrapItem`\n */\n shouldWrapChildren?: boolean\n}\n\n/**\n * Layout component used to stack elements that differ in length\n * and are liable to wrap.\n *\n * Common use cases:\n * - Buttons that appear together at the end of forms\n * - Lists of tags and chips\n *\n * @see Docs https://chakra-ui.com/wrap\n */\nexport const Wrap = forwardRef<WrapProps, \"div\">((props, ref) => {\n const {\n spacing = \"0.5rem\",\n children,\n justify,\n direction,\n align,\n className,\n shouldWrapChildren,\n ...rest\n } = props\n\n const styles = React.useMemo(\n () => ({\n \"--chakra-wrap-spacing\": (theme: Dict) =>\n mapResponsive(spacing, (value) => tokenToCSSVar(\"space\", value)(theme)),\n \"--wrap-spacing\": \"calc(var(--chakra-wrap-spacing) / 2)\",\n display: \"flex\",\n flexWrap: \"wrap\",\n justifyContent: justify,\n alignItems: align,\n flexDirection: direction,\n listStyleType: \"none\",\n padding: \"0\",\n margin: \"calc(var(--wrap-spacing) * -1)\",\n \"& > *:not(style)\": {\n margin: \"var(--wrap-spacing)\",\n },\n }),\n [spacing, justify, align, direction],\n )\n\n const childrenToRender = shouldWrapChildren\n ? React.Children.map(children, (child, index) => (\n <WrapItem key={index}>{child}</WrapItem>\n ))\n : children\n\n return (\n <chakra.div ref={ref} className={cx(\"chakra-wrap\", className)} {...rest}>\n <chakra.ul className=\"chakra-wrap__list\" __css={styles}>\n {childrenToRender}\n </chakra.ul>\n </chakra.div>\n )\n})\n\nif (__DEV__) {\n Wrap.displayName = \"Wrap\"\n}\n\nexport interface WrapItemProps extends HTMLChakraProps<\"li\"> {}\n\nexport const WrapItem = forwardRef<WrapItemProps, \"li\">((props, ref) => {\n const { className, ...rest } = props\n return (\n <chakra.li\n ref={ref}\n __css={{ display: \"flex\", alignItems: \"flex-start\" }}\n className={cx(\"chakra-wrap__listitem\", className)}\n {...rest}\n />\n )\n})\n\nif (__DEV__) {\n WrapItem.displayName = \"WrapItem\"\n}\n"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ (this["webpackJsonpconstruct-hub-webapp"]=this["webpackJsonpconstruct-hub-webapp"]||[]).push([[2],{107:function(e,t,n){"use strict";n.d(t,"b",(function(){return m})),n.d(t,"a",(function(){return p}));var a=n(6),r=n(5),c=n(210),o=n(0),i="prefersWarnOnExternalLinkClick",s=n(30),l=n(52),u=n(208),d=n(229),b=n(159),j=n(232),f=n(51),O=n(1),h=function(e){var t=e.href,n=e.isOpen,a=e.onClick,c=e.onClose,h=e.setShouldWarn,v=Object(o.useState)(!0),m=Object(r.a)(v,2),p=m[0],g=m[1];return Object(O.jsx)(l.a,{closeOnOverlayClick:!1,isOpen:n,onClose:c,children:Object(O.jsx)(l.h,{children:Object(O.jsxs)(l.d,{color:"blue.800",children:[Object(O.jsx)(l.g,{children:"Confirm"}),Object(O.jsxs)(l.b,{children:[Object(O.jsx)(u.a,{fontSize:"lg",mb:2,children:"This link is taking you to an external site"}),Object(O.jsx)(u.a,{bg:"gray.100",borderRadius:"sm",color:"blue.500",fontSize:"sm",mb:4,p:1,children:t}),Object(O.jsx)(d.a,{onChange:function(e){var t=!e.target.checked;g(t)},children:"Do not show this warning again."})]}),Object(O.jsxs)(l.f,{children:[Object(O.jsx)(b.a,{onClick:function(){g(!0),c()},variant:"ghost",children:"Cancel"}),Object(O.jsx)(j.a,{hasArrow:!0,label:t,placement:"top",children:Object(O.jsx)(f.a,{hasIcon:!1,hasWarning:!1,href:t,noFollow:!0,onClick:function(e){if(!p){h(p);try{localStorage.setItem(i,JSON.stringify(p))}catch(t){}}null===a||void 0===a||a(e),c()},children:Object(O.jsx)(b.a,{colorScheme:"blue",ml:4,rightIcon:Object(O.jsx)(s.k,{}),tabIndex:0,variant:"ghost",children:"Proceed"})})})]})]})})})},v=Object(o.createContext)((function(e){return e.onClick})),m=function(){return Object(o.useContext)(v)},p=function(e){var t=e.children,n=Object(o.useState)(null),s=Object(r.a)(n,2),l=s[0],u=s[1],d=Object(c.a)({onClose:function(){u(null)}}),b=d.isOpen,j=d.onOpen,f=d.onClose,m=Object(o.useState)((function(){try{var e,t=null!==(e=localStorage.getItem(i))&&void 0!==e?e:"true";return JSON.parse(t)}catch(n){return!0}})),p=Object(r.a)(m,2),g=p[0],x=p[1],y=Object(o.useCallback)((function(e){var t=e.href,n=e.onClick;if(!g)return n;return function(e){u({href:t,onClick:n}),e.preventDefault(),j()}}),[j,g]);return Object(O.jsxs)(v.Provider,{value:y,children:[t,Object(O.jsx)(h,Object(a.a)({isOpen:b,onClose:f,setShouldWarn:x},l))]})}},108:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var a=n(14),r=n(0),c=n(89),o=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.query,n=e.filters,o=e.sort,i=Object(c.b)();if(!i)throw new Error("This hook can only be called within a descendant of a <SearchProvider />");var s=Object(r.useMemo)((function(){return Object(a.a)(i.search({query:t,filters:n,sort:o}).values())}),[i,t,n,o]);return s}},122:function(e,t,n){"use strict";n.d(t,"d",(function(){return o})),n.d(t,"f",(function(){return d})),n.d(t,"a",(function(){return b})),n.d(t,"b",(function(){return j})),n.d(t,"e",(function(){return f})),n.d(t,"c",(function(){return O}));var a,r,c,o,i=n(4),s=n(6),l=n(160),u=n(1);!function(e){e.DotNet="dotnet",e.TypeScript="typescript",e.Python="python",e.Go="golang",e.Java="java"}(o||(o={}));var d=(a={},Object(i.a)(a,o.TypeScript,o.TypeScript),Object(i.a)(a,o.Python,o.Python),Object(i.a)(a,o.Go,o.Go),Object(i.a)(a,o.Java,o.Java),Object(i.a)(a,o.DotNet,"csharp"),a),b=[o.TypeScript,o.Python,o.Java,o.Go,o.DotNet],j=(r={},Object(i.a)(r,o.TypeScript,"TypeScript"),Object(i.a)(r,o.Python,"Python"),Object(i.a)(r,o.Java,"Java"),Object(i.a)(r,o.Go,"Go"),Object(i.a)(r,o.DotNet,".NET"),r),f=new Set([o.Python,o.TypeScript,o.Java,o.DotNet]),O=(c={},Object(i.a)(c,o.TypeScript,{name:j.typescript,icon:function(e){return Object(u.jsxs)(l.a,Object(s.a)(Object(s.a)({},e),{},{"aria-hidden":"true",transform:"rotate(360)",viewBox:"0 0 256 256",children:[Object(u.jsx)("path",{d:"M0 128v128h256V0H0z",fill:"#007ACC"}),Object(u.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,o.Python,{name:j.python,icon:function(e){return Object(u.jsxs)(l.a,Object(s.a)(Object(s.a)({},e),{},{version:"1.0",viewBox:"0 0 110.421 109.846",children:[Object(u.jsxs)("defs",{children:[Object(u.jsxs)("linearGradient",{id:"a",children:[Object(u.jsx)("stop",{offset:"0",stopColor:"#ffe052"}),Object(u.jsx)("stop",{offset:"1",stopColor:"#ffc331"})]}),Object(u.jsx)("linearGradient",{gradientUnits:"userSpaceOnUse",id:"d",x1:"89.137",x2:"147.777",xlinkHref:"#a",y1:"111.921",y2:"168.101"}),Object(u.jsxs)("linearGradient",{id:"b",children:[Object(u.jsx)("stop",{offset:"0",stopColor:"#387eb8"}),Object(u.jsx)("stop",{offset:"1",stopColor:"#366994"})]}),Object(u.jsx)("linearGradient",{gradientUnits:"userSpaceOnUse",id:"c",x1:"55.549",x2:"110.149",xlinkHref:"#b",y1:"77.07",y2:"131.853"})]}),Object(u.jsxs)("g",{color:"#000",children:[Object(u.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(u.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,o.Java,{name:j.java,icon:function(e){return Object(u.jsxs)(l.a,Object(s.a)(Object(s.a)({},e),{},{"aria-hidden":"true",transform:"rotate(360)",viewBox:"0 0 256 346",children:[Object(u.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(u.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(u.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(u.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(u.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,o.Go,{name:j.golang,icon:function(e){return Object(u.jsx)(l.a,Object(s.a)(Object(s.a)({},e),{},{"aria-hidden":"true",transform:"rotate(360)",viewBox:"0 0 512 192",children:Object(u.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,o.DotNet,{name:j.dotnet,icon:function(e){return Object(u.jsx)(l.a,Object(s.a)(Object(s.a)({},e),{},{"aria-hidden":"true",transform:"rotate(360)",viewBox:"0 0 32 32",children:Object(u.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)},123:function(e,t,n){"use strict";n.d(t,"a",(function(){return i})),n.d(t,"b",(function(){return l}));var a=n(0),r=n(22),c=n(1),o=Object(a.createContext)({trackPageView:function(){}}),i=function(e){var t=e.children,n=Object(r.h)().pathname,i=Object(a.useRef)(null),s=Object(a.useCallback)((function(e){var t,a,r;i.current!==n&&(null===(t=window)||void 0===t||null===(a=t.AWSMA)||void 0===a||null===(r=a.ready)||void 0===r||r.call(a,(function(){document.dispatchEvent(new CustomEvent(window.AWSMA.TRIGGER_EVENT,{detail:e})),i.current=n})))}),[n]);return Object(c.jsx)(o.Provider,{value:{trackPageView:s},children:t})},s=n(6),l=function(e){var t=Object(a.useContext)(o).trackPageView,n=Object(r.h)().pathname,c=Object(a.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(a.useCallback)((function(){return t(c)}),[t,c])}},127:function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var a=new Set(["aws-cdk","aws","awscdk","cdk-construct","cdk","cdktf","cdk8s","construct","constructs"].map((function(e){return e.toLocaleLowerCase()})))},128:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var a=n(0),r=function(e,t){var n=t.limit,a=t.offset*n,r=a+n;return e.slice(a,r)},c=n(108),o=function(e){var t=e.cdkMajor,n=e.cdkType,o=e.keywords,i=e.limit,s=e.offset,l=void 0===s?0:s,u=e.query,d=void 0===u?"":u,b=e.language,j=void 0===b?null:b,f=e.languages,O=e.sort,h=e.tags,v=Object(a.useMemo)((function(){return{cdkMajor:t,cdkType:n,keywords:o,language:null!==j&&void 0!==j?j:void 0,languages:f,tags:h}}),[t,n,o,j,f,h]),m=Object(c.a)({filters:v,query:d,sort:O}),p=function(e,t){var n=null!==t&&void 0!==t?t:{},c=n.limit,o=void 0===c?25:c,i=n.offset,s=void 0===i?0:i,l=e?Math.floor(e.length/o):0;return Object(a.useMemo)((function(){return{page:r(e,{limit:o,offset:s>l?l:s}),pageLimit:l}}),[e,o,s,l])}(m,{offset:l,limit:i}),g=p.page,x=p.pageLimit;return Object(a.useMemo)((function(){return{results:m,page:g,pageLimit:x}}),[g,x,m])}},129:function(e,t,n){"use strict";n.d(t,"a",(function(){return m}));var a,r=n(4),c=n(6),o=n(24),i=n(17),s=n(237),l=n(208),u=n(222),d=n(48),b=n(1),j=["name","majorVersion"],f=["name","majorVersion"],O=["name","majorVersion"],h=(Object(i.a)((function(e,t){var n=e.name,a=(e.majorVersion,Object(o.a)(e,j));return n?Object(b.jsx)(s.a,Object(c.a)({alt:"".concat(d.b[n].name," Logo"),h:5,ref:t,src:d.b[n].imgsrc,w:5},a)):null})),Object(i.a)((function(e,t){var n=e.name,a=e.majorVersion,r=Object(o.a)(e,f);return n?Object(b.jsxs)(l.a,Object(c.a)(Object(c.a)({ref:t},r),{},{children:[d.b[n].name,void 0!==a?" v".concat(a):""]})):null}))),v=(a={},Object(r.a)(a,d.c.awscdk,"#CF4A02"),Object(r.a)(a,d.c.cdk8s,"#005797"),Object(r.a)(a,d.c.cdktf,"#5C4EE5"),a),m=Object(i.a)((function(e){var t=e.name,n=e.majorVersion,a=Object(o.a)(e,O);if(!t)return null;var r=v[t];return Object(b.jsx)(u.a,Object(c.a)(Object(c.a)({alignItems:"center",bg:r,borderRadius:"md",color:"white",display:"flex",h:"1.5rem",maxW:"5.5rem",px:1.5,textTransform:"none"},a),{},{children:Object(b.jsx)(h,{majorVersion:n,name:t})}))}))},13:function(e,t,n){"use strict";n.d(t,"a",(function(){return a})),n.d(t,"b",(function(){return r})),n.d(t,"c",(function(){return c}));var a={PACKAGES_PREFIX:"/data",CATALOG_SUFFIX:"/catalog.json",ASSEMBLY_SUFFIX:"/assembly.json",METADATA_SUFFIX:"/metadata.json",CONFIG:"/config.json",STATS:"/stats.json"},r={CDK_TYPE:"cdk",KEYWORDS:"keywords",LANGUAGE:"lang",LANGUAGES:"langs",OFFSET:"offset",SEARCH_QUERY:"q",SORT:"sort",SUBMODULE:"submodule",CDK_MAJOR:"cdkver",TAGS:"tags"},c={CONTRIBUTE:"/contribute",FAQ:"/faq",HOME:"/",PACKAGES:"/packages",SEARCH:"/search",SITE_TERMS:"/terms"}},136:function(e,t,n){"use strict";n.d(t,"a",(function(){return i})),n.d(t,"b",(function(){return l}));var a=n(28),r=n.n(a),c=n(45),o=n(13),i={sections:[{name:"Recently updated",showLastUpdated:10}]},s={featureFlags:{},packageLinks:[],featuredPackages:i},l=function(){var e=Object(c.a)(r.a.mark((function e(){var t;return r.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!window.configOverride){e.next=2;break}return e.abrupt("return",window.configOverride);case 2:return e.next=4,fetch(o.a.CONFIG);case 4:if((t=e.sent).ok){e.next=9;break}return console.error(t.statusText),console.warn("Failed to fetch application config, using default values"),e.abrupt("return",s);case 9:return e.abrupt("return",t.json().catch((function(e){return console.error(e),console.warn("Invalid config response, using default values"),s})));case 10:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}()},144:function(e,t,n){"use strict";n.d(t,"a",(function(){return O}));var a=n(30),r=n(210),c=n(204),o=n(212),i=n(208),s=n(213),l=n(58),u=n(74),d=n(94),b=n(51),j=n(1),f="showing-dev-preview-banner",O=function(){var e,t,n=Object(u.b)().data,O=Object(r.a)({defaultIsOpen:JSON.parse(null!==(e=window.sessionStorage.getItem(f))&&void 0!==e?e:"true"),onClose:function(){return window.sessionStorage.setItem(f,"false")}}),h=O.isOpen,v=O.onClose;return(null===n||void 0===n||null===(t=n.featureFlags)||void 0===t?void 0:t.fullSite)?Object(j.jsx)(c.a,{h:"max-content"}):Object(j.jsx)(c.a,{h:"max-content",children:Object(j.jsx)(o.a,{in:h,children:Object(j.jsxs)(d.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(j.jsx)(a.m,{h:5,left:4,position:"absolute",top:4,w:5}),Object(j.jsxs)(i.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(j.jsx)(b.a,{color:"inherit",hasWarning:!1,href:"".concat(l.a,"/issues"),textDecoration:"underline",children:"here"})]}),Object(j.jsx)(s.a,{"aria-label":"Dismiss banner",colorScheme:"white",icon:Object(j.jsx)(a.g,{}),onClick:v,position:"absolute",right:4,size:"xs",top:3,variant:"ghost"})]})})})}},146:function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var a=n(6),r=n(17),c=n(21),o=n(1),i=Object(r.a)((function(e,t){return Object(o.jsx)(c.a.form,Object(a.a)(Object(a.a)({},e),{},{ref:t}))}));i.displayName="Form"},147:function(e,t,n){"use strict";n.d(t,"a",(function(){return c}));var a=n(5),r=n(0),c=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=Object(r.useState)(e),c=Object(a.a)(n,2),o=c[0],i=c[1],s=t.delay,l=void 0===s?250:s,u=t.onChange;return Object(r.useEffect)((function(){var t=setTimeout((function(){i(e),null===u||void 0===u||u(e)}),l);return function(){clearTimeout(t)}}),[e,l,u]),o}},148:function(e,t,n){"use strict";n.d(t,"a",(function(){return l}));var a=n(6),r=n(24),c=n(17),o=n(223),i=n(1),s=["name","onClick"],l=Object(c.a)((function(e,t){var n=e.name,c=e.onClick,l=Object(r.a)(e,s);return Object(i.jsx)(o.a,Object(a.a)(Object(a.a)({_hover:{cursor:"pointer"},alignItems:"center",display:"flex",fontSize:"md",lineHeight:"base",listStyleType:"none",minH:8,onClick:c,onKeyDown:function(e){["Enter"," "].includes(e.key)&&(e.preventDefault(),c())},px:4,ref:t,role:"option",sx:{":hover, :focus":{bg:"gray.100"}},tabIndex:0},l),{},{children:n}))}));l.displayName="SearchItem"},176:function(e,t,n){},183:function(e,t,n){"use strict";n.r(t);var a={};n.r(a),n.d(a,"initialize",(function(){return C})),n.d(a,"access",(function(){return E})),n.d(a,"checkForCookieConsent",(function(){return A})),n.d(a,"customizeCookies",(function(){return M})),n.d(a,"getConsentCookie",(function(){return z})),n.d(a,"hasConsent",(function(){return I}));var r,c,o=n(0),i=n.n(o),s=n(85),l=n.n(s),u=n(34),d=(n(176),n(154)),b=n(22),j=n(144),f=n(5),O=n(214),h=n(215),v=n(204),m=n(216),p=n(208),g=n(159),x=n(24),y=n(28),k=n.n(y),w=n(45),S=function(){new URLSearchParams(window.location.search).get("sb")},C=function(){var e=Object(w.a)(k.a.mark((function e(){return k.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(w.a)(k.a.mark((function a(){var c,o,i;return k.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:return a.prev=0,c={domain:window.location.hostname,language:navigator.language,__storeWriter:S()},a.next=4,n.e(15).then(n.t.bind(null,646,7));case 4:o=a.sent,i=o.AWSCShortbread,r=i(c),e(),a.next=13;break;case 10:a.prev=10,a.t0=a.catch(0),t(a.t0);case 13:case"end":return a.stop()}}),a,null,[[0,10]])}))))})));case 1:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),T=function(e){return function(){var t;if(!r)throw new Error("shortbread has not been initialized");return(t=r)[e].apply(t,arguments)}},E=T("access"),A=T("checkForCookieConsent"),M=T("customizeCookies"),z=T("getConsentCookie"),I=T("hasConsent"),F=n(1),P=C,D=Object(x.a)(a,["initialize"]),R=Object(o.createContext)({}),L=function(e){var t=e.children,n=Object(o.useState)(!1),a=Object(f.a)(n,2),r=a[0],c=a[1];return Object(o.useEffect)((function(){var e=!1;return P().then((function(){e||(D.checkForCookieConsent(),c(!0))})).catch((function(t){console.error(t),e||c(!1)})),function(){e=!0,c(!1)}}),[]),Object(F.jsx)(R.Provider,{value:r?D:{},children:t})},N=n(51),_=n(49),G=n(13),W={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:"Construct Hub Site Terms",url:G.c.SITE_TERMS,testId:"site-terms",isExternal:!1},LEGAL:{display:"Legal",url:"https://aws.amazon.com/legal/",testId:"legal"}},U=n(14),B=n(63),H=Object(B.a)("footer",["container","links","disclaimer","manageCookies"].concat(Object(U.a)(Object.values(W).map((function(e){return e.testId}))))),V=function(){var e=Object(o.useContext)(R).customizeCookies;return Object(F.jsxs)(O.a,{align:"center",as:"footer",bg:"blue.800",color:"white","data-testid":H.container,direction:"column",justify:"center",py:4,children:[Object(F.jsx)(h.a,{columnGap:6,columns:[1,2,4],"data-testid":H.links,children:Object.entries(W).map((function(e,t){var n=Object(f.a)(e,2),a=n[0],r=n[1],c=r.display,o=r.isExternal,i=void 0===o||o,s=r.testId,l=r.url;return Object(F.jsxs)(O.a,{align:"center",direction:{base:"column",md:"row"},children:[Object(F.jsx)(v.a,{display:{base:"none",md:0!==t?"initial":"none"},h:5,children:Object(F.jsx)(m.a,{borderColor:"white",mr:6,orientation:"vertical"})}),i?Object(F.jsx)(N.a,{color:"currentcolor","data-testid":H[s],hasWarning:!1,href:l,lineHeight:10,mx:"auto",children:c}):Object(F.jsx)(_.a,{color:"currentcolor","data-testid":H[s],lineHeight:10,mx:"auto",to:l,children:c}),Object(F.jsx)(v.a,{display:{base:"none",sm:t<2?"initial":"none",md:"none"},w:"100%",children:Object(F.jsx)(m.a,{borderColor:"white"})})]},a)}))}),Object(F.jsx)(p.a,{"data-testid":H.disclaimer,fontSize:"xs",mt:4,children:"2021 Amazon Web Services, Inc. All rights reserved."}),Object(F.jsx)(g.a,{color:"white","data-testid":H.manageCookies,fontSize:"xs",fontWeight:"normal",mt:4,onClick:e,variant:"link",children:"Manage Cookies"})]})},K=n(6),q=n(58),J=n(230),Q=["children"],Y=function(e){var t=e.children,n=Object(x.a)(e,Q);return Object(F.jsx)(J.a,Object(K.a)(Object(K.a)({colorScheme:"blue.800",strategy:"fixed"},n),{},{children:t}))},X=n(17),Z=["items"],$=function(e){var t=e.display,n=e.isNavLink,a=e.url;return n?Object(F.jsx)(_.a,{color:"blue.500",to:a,w:"100%",children:t}):Object(F.jsx)(N.a,{alignItems:"center",display:"flex",hasWarning:!1,href:a,justifyContent:"space-between",w:"100%",children:t})},ee=Object(X.a)((function(e,t){var n=e.items,a=Object(x.a)(e,Z);return Object(F.jsx)(J.f,Object(K.a)(Object(K.a)({},a),{},{ref:t,children:n.map((function(e,t){return"links"in e?Object(F.jsxs)(o.Fragment,{children:[Object(F.jsx)(J.d,{align:"left",title:e.display,children:e.links.map((function(e,t){return Object(F.jsx)(J.e,{children:Object(F.jsx)($,Object(K.a)({},e))},"".concat(e.display,"-").concat(t))}))}),t!==n.length-1&&Object(F.jsx)(J.c,{})]},"".concat(e.display,"-").concat(t)):Object(F.jsx)(J.e,{children:Object(F.jsx)($,Object(K.a)({},e))},"".concat(e.display,"-").concat(t))}))}))})),te=n(30),ne=["children"],ae=Object(X.a)((function(e,t){var n=e.children,a=Object(x.a)(e,ne);return Object(F.jsx)(J.b,Object(K.a)(Object(K.a)({as:g.a,color:"blue.800",fontWeight:"500",ref:t,rightIcon:Object(F.jsx)(te.c,{h:6,w:6}),size:"md",variant:"link"},a),{},{children:n}))})),re=Object(B.a)("header",["container","title","gettingStartedTrigger","gettingStartedMenu","documentationTrigger","documentationMenu","navOpen","navClose","searchInput","searchIcon","mobileNav"]),ce=function(){return Object(F.jsxs)(Y,{children:[Object(F.jsx)(ae,{"data-testid":re.documentationTrigger,children:"Documentation"}),Object(F.jsx)(ee,{"data-testid":re.documentationMenu,items:q.b})]})},oe=function(){return Object(F.jsxs)(Y,{children:[Object(F.jsx)(ae,{"data-testid":re.gettingStartedTrigger,children:"Getting Started"}),Object(F.jsx)(ee,{"data-testid":re.gettingStartedMenu,items:q.c})]})},ie=n(210),se=n(213),le=n(75),ue=n(235),de=n(52),be=n(238),je=n(95),fe=Object(B.a)("searchModal",["container"]),Oe=function(e){var t=e.isOpen,n=e.onClose,a=Object(je.a)(),r=a.query,c=a.onQueryChange,o=a.onSubmit,i=a.onSearch;return Object(F.jsx)(ue.a,{children:Object(F.jsx)(de.a,{isOpen:t,onClose:n,children:Object(F.jsx)(de.h,{children:Object(F.jsxs)(de.d,{"data-testid":fe.container,children:[Object(F.jsx)(de.c,{}),Object(F.jsx)(de.g,{children:"Search"}),Object(F.jsx)(de.b,{children:Object(F.jsxs)(be.a,{pb:4,spacing:4,children:[Object(F.jsx)(le.a,{onChange:c,onSubmit:o,value:r}),Object(F.jsx)(g.a,{colorScheme:"blue",onClick:function(){return i()},children:"Find Constructs"})]})})]})})})})},he=function(){var e=Object(ie.a)();return Object(F.jsxs)(b.d,{children:[Object(F.jsx)(b.b,{exact:!0,path:[G.c.HOME,G.c.SEARCH]}),Object(F.jsxs)(b.b,{path:"*",children:[Object(F.jsx)(v.a,{"data-testid":re.searchInput,display:{base:"none",lg:"initial"},children:Object(F.jsxs)(le.a,{bg:"gray.50",children:[Object(F.jsx)(le.b,{}),Object(F.jsx)(le.c,{})]})}),Object(F.jsxs)(v.a,{display:{base:"initial",lg:"none"},children:[Object(F.jsx)(se.a,{"aria-label":"Search Icon",borderRadius:"md","data-testid":re.searchIcon,icon:Object(F.jsx)(te.o,{color:"gray.600"}),onClick:e.onOpen,variant:"ghost"}),Object(F.jsx)(Oe,Object(K.a)({},e))]})]})]})},ve=n(240),me=n(239),pe=n(224),ge={color:"blue.500",py:2,w:"full"},xe=function(e){var t=e.display,n=e.isNavLink,a=e.url;return n?Object(F.jsx)(_.a,Object(K.a)(Object(K.a)({to:a},ge),{},{children:t})):Object(F.jsx)(N.a,Object(K.a)(Object(K.a)({alignItems:"center",display:"flex",hasWarning:!1,href:a,justifyContent:"space-between"},ge),{},{children:t}))},ye=function(e){var t=e.title,n=e.items,a=e.testId;return Object(F.jsxs)(me.d,{"data-testid":a,w:"full",children:[Object(F.jsxs)(me.b,{px:0,py:4,children:[Object(F.jsx)(v.a,{flex:"1",textAlign:"left",children:Object(F.jsx)(pe.a,{as:"h3",color:"blue.800",size:"sm",children:t})}),Object(F.jsx)(me.c,{})]}),Object(F.jsx)(me.e,{p:0,w:"full",children:Object(F.jsx)(O.a,{direction:"column",w:"full",children:n.map((function(e,t){return"links"in e?Object(F.jsxs)(o.Fragment,{children:[Object(F.jsx)(pe.a,{as:"h4",borderBottom:"base",pb:2,pt:4,size:"xs",children:e.display}),e.links.map((function(e,t){return Object(o.createElement)(xe,Object(K.a)(Object(K.a)({},e),{},{key:"".concat(e.display,"-").concat(t)}))}))]},"".concat(e.display,"-").concat(t)):Object(o.createElement)(xe,Object(K.a)(Object(K.a)({},e),{},{key:"".concat(e.display,"-").concat(t)}))}))})})]})},ke=function(e){var t=e.sections;return Object(F.jsx)(me.a,{allowMultiple:!0,allowToggle:!0,w:"full",children:t.map((function(e,t){return Object(F.jsx)(ye,Object(K.a)({},e),"section-".concat(t))}))})},we=function(){return Object(F.jsx)(pe.a,{as:"h1",color:"blue.800","data-testid":re.title,size:"lg",children:Object(F.jsxs)(u.b,{to:"/",children:[Object(F.jsx)(v.a,{as:"span",color:"blue.500",children:"Construct"})," ","Hub"]})})},Se=function(e){var t=e.isOpen,n=e.onClose;return Object(F.jsx)(ue.a,{children:Object(F.jsxs)(ve.a,{isOpen:t,onClose:n,placement:"left",size:"xs",children:[Object(F.jsx)(de.h,{}),Object(F.jsxs)(ve.b,{"data-testid":re.mobileNav,children:[Object(F.jsx)(de.c,{}),Object(F.jsx)(de.g,{display:"flex",justifyContent:"start",children:Object(F.jsx)(we,{})}),Object(F.jsx)(de.b,{children:Object(F.jsxs)(be.a,{align:"start",justify:"start",spacing:0,children:[Object(F.jsx)(ke,{sections:[{title:"Getting Started",items:q.c,testId:re.gettingStartedMenu},{title:"Documentation",items:q.b,testId:re.documentationMenu}]}),Object(F.jsx)(_.a,{_hover:{bg:"blackAlpha.50"},borderBottom:"1px solid",borderBottomColor:"gray.200",color:"blue.800",fontSize:"1rem",fontWeight:"bold",h:"3.25rem",lineHeight:"3.25rem",to:G.c.CONTRIBUTE,w:"full",children:"Contribute"})]})})]})]})})},Ce=function(){var e=Object(ie.a)();return Object(F.jsxs)(F.Fragment,{children:[Object(F.jsx)(se.a,{"aria-label":"Navigation Menu",borderRadius:"md","data-testid":re.navOpen,display:{lg:"none"},icon:Object(F.jsx)(te.l,{}),onClick:e.onOpen,variant:"ghost"}),Object(F.jsx)(Se,Object(K.a)({},e))]})},Te=function(e){return Object(F.jsx)(d.b,Object(K.a)({align:"center",justify:"center",rowStart:1},e))},Ee=function(){return Object(F.jsxs)(d.a,{alignItems:"center",as:"header",bg:"white",boxShadow:"base","data-testid":re.container,gap:6,gridTemplateColumns:{base:"1fr max-content 1fr",lg:"max-content minmax(12rem, 31rem) auto"},gridTemplateRows:"1fr",maxW:"100vw",position:"sticky",px:4,py:4,top:0,w:"100%",zIndex:"sticky",children:[Object(F.jsx)(Te,{colStart:{base:2,lg:1},justifySelf:{base:"center",lg:"start"},children:Object(F.jsx)(we,{})}),Object(F.jsx)(Te,{colStart:{base:3,lg:2},justifySelf:{base:"end",lg:"stretch"},children:Object(F.jsx)(he,{})}),Object(F.jsxs)(Te,{colStart:{base:1,lg:3},justifySelf:{base:"start",lg:"end"},children:[Object(F.jsxs)(d.a,{display:{base:"none",lg:"grid"},gap:4,gridTemplateRows:"1fr",placeItems:"center",templateColumns:"1fr 1fr auto",w:"100%",children:[Object(F.jsx)(v.a,{children:Object(F.jsx)(oe,{})}),Object(F.jsx)(v.a,{children:Object(F.jsx)(ce,{})}),Object(F.jsx)(_.a,{color:"blue.800",fontWeight:"500",to:G.c.CONTRIBUTE,children:"Contribute"})]}),Object(F.jsx)(Ce,{})]})]})},Ae=n(76),Me=["component"],ze=function(e){var t=e.component,n=Object(x.a)(e,Me);return Object(F.jsx)(b.b,Object(K.a)(Object(K.a)({},n),{},{children:Object(F.jsx)(o.Suspense,{fallback:Object(F.jsx)(Ae.a,{}),children:Object(F.jsx)(t,{})})}))},Ie=Object(o.lazy)((function(){return Promise.all([n.e(0),n.e(11)]).then(n.bind(null,654))})),Fe=Object(o.lazy)((function(){return Promise.all([n.e(0),n.e(12)]).then(n.bind(null,655))})),Pe=Object(o.lazy)((function(){return Promise.all([n.e(0),n.e(1),n.e(9),n.e(6)]).then(n.bind(null,651))})),De=Object(o.lazy)((function(){return Promise.all([n.e(0),n.e(13)]).then(n.bind(null,306))})),Re=Object(o.lazy)((function(){return Promise.all([n.e(0),n.e(1),n.e(4),n.e(7)]).then(n.bind(null,648))})),Le=Object(o.lazy)((function(){return Promise.all([n.e(0),n.e(1),n.e(10),n.e(8)]).then(n.bind(null,649))})),Ne=Object(o.lazy)((function(){return Promise.all([n.e(0),n.e(14)]).then(n.bind(null,656))})),_e=function(){var e="/"!==Object(b.h)().pathname;return Object(F.jsxs)(d.a,{as:"main",bg:"bgPrimary",gridTemplateColumns:"1fr",gridTemplateRows:"auto auto 1fr auto",h:"100%",maxW:"100%",minH:"100vh",children:[Object(F.jsx)(Ee,{}),e?Object(F.jsx)(j.a,{}):Object(F.jsx)("div",{}),Object(F.jsxs)(b.d,{children:[Object(F.jsx)(ze,{component:Ie,exact:!0,path:G.c.CONTRIBUTE}),Object(F.jsx)(ze,{component:Fe,exact:!0,path:G.c.FAQ}),Object(F.jsx)(ze,{component:Pe,exact:!0,path:G.c.HOME}),Object(F.jsx)(ze,{component:Ne,exact:!0,path:G.c.SITE_TERMS}),Object(F.jsx)(ze,{component:Re,path:G.c.PACKAGES}),Object(F.jsx)(ze,{component:Le,exact:!0,path:G.c.SEARCH}),Object(F.jsx)(ze,{component:De,path:"*"})]}),Object(F.jsx)(V,{})]})},Ge=n(123),We=n(90),Ue=n(74),Be=n(107),He=n(89),Ve=n(91),Ke=n(231),qe=n(227),Je=n(103),Qe=n(102),Ye=n(9),Xe=function(e){var t=e.colorScheme;return{w:"100%",transitionProperty:"box-shadow",transitionDuration:"normal",border:"2px solid",borderRadius:"sm",borderColor:"inherit",color:"white",_checked:{bg:Object(Ye.b)("".concat(t,".500"),"".concat(t,".200"))(e),borderColor:Object(Ye.b)("".concat(t,".500"),"".concat(t,".200"))(e),color:Object(Ye.b)("white","gray.900")(e),_hover:{bg:Object(Ye.b)("".concat(t,".600"),"".concat(t,".300"))(e),borderColor:Object(Ye.b)("".concat(t,".600"),"".concat(t,".300"))(e)},_disabled:{borderColor:Object(Ye.b)("gray.200","transparent")(e),bg:Object(Ye.b)("gray.200","whiteAlpha.300")(e),color:Object(Ye.b)("gray.500","whiteAlpha.500")(e)}},_indeterminate:{bg:Object(Ye.b)("".concat(t,".500"),"".concat(t,".200"))(e),borderColor:Object(Ye.b)("".concat(t,".500"),"".concat(t,".200"))(e),color:Object(Ye.b)("white","gray.900")(e)},_disabled:{bg:Object(Ye.b)("gray.100","whiteAlpha.100")(e),borderColor:Object(Ye.b)("gray.100","transparent")(e)},_focus:{boxShadow:"outline"},_invalid:{borderColor:Object(Ye.b)("red.500","red.300")(e)}}},Ze={userSelect:"none",_disabled:{opacity:.4}},$e={transitionProperty:"transform",transitionDuration:"normal"},et={parts:Qe.a.keys,baseStyle:function(e){return{icon:$e,control:Xe(e),label:Ze}},sizes:{sm:{control:{h:3,w:3},label:{fontSize:"sm"},icon:{fontSize:"0.45rem"}},base:{control:{h:3.5,w:3.5},label:{fontSize:"sm"},icon:{fontSize:"0.5rem"}},md:{control:{w:4,h:4},label:{fontSize:"md"},icon:{fontSize:"0.625rem"}},lg:{control:{w:5,h:5},label:{fontSize:"lg"},icon:{fontSize:"0.625rem"}}},defaultProps:{size:"base",colorScheme:"blue"}},tt=Je.theme.components.Code,nt=Object(K.a)(Object(K.a)({},tt),{},{variants:Object(K.a)(Object(K.a)({},tt.variants),{},{"code-block":Object(K.a)(Object(K.a)({},tt.variants.subtle),{},{display:"block",whiteSpace:"pre"})})}),at={defaultProps:{borderColor:"rgba(0, 124, 253, 0.15)"}},rt=function(e){var t=et.baseStyle(e).control,n=void 0===t?{}:t;return Object(K.a)(Object(K.a)({},n),{},{borderRadius:"full",pos:"relative",_checked:Object(K.a)(Object(K.a)({},n._checked),{},{_before:{content:'""',display:"inline-block",pos:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",w:"50%",h:"50%",borderRadius:"50%",bg:"currentColor"}})})},ct={parts:Qe.b.keys,baseStyle:function(e){return{label:et.baseStyle(e).label,control:rt(e)}},sizes:{sm:{control:{h:3,w:3},label:{fontSize:"sm"}},base:{control:{h:3.5,w:3.5},label:{fontSize:"sm"}},md:{control:{h:4,w:4},label:{fontSize:"md"}},lg:{control:{h:5,w:5},label:{fontSize:"lg"}}},defaultProps:{size:"base",colorScheme:"blue"}},ot=n(4),it=Je.theme.components.Tabs,st=Object(K.a)(Object(K.a)({},it.variants),{},{line:function(e){var t,n,a=e.colorScheme,r=e.orientation,c="vertical"===r?"borderStart":"borderBottom",o="vertical"===r?"marginStart":"marginBottom";return{tablist:(t={},Object(ot.a)(t,c,"none"),Object(ot.a)(t,"borderColor","inherit"),t),tab:(n={},Object(ot.a)(n,c,"4px solid"),Object(ot.a)(n,"borderColor","transparent"),Object(ot.a)(n,o,"0"),Object(ot.a)(n,"_selected",{color:Object(Ye.b)("".concat(a,".500"),"".concat(a,".300"))(e),borderColor:"currentColor",fontWeight:"semibold"}),Object(ot.a)(n,"_active",{bg:Object(Ye.b)("gray.200","whiteAlpha.300")(e)}),Object(ot.a)(n,"_disabled",{opacity:.4,cursor:"not-allowed"}),n)}}}),lt=Object(K.a)(Object(K.a)({},it),{},{variants:st}),ut=function(e,t){return function(n){var a="function"===typeof e?e(n):e;return Object(K.a)(Object(K.a)({},a),{},{container:Object(K.a)(Object(K.a)({},a.container),t)})}},dt=Je.theme.components.Tag,bt=function(e){var t=e.reduce((function(e,t){var n=t.keyword;return(null===n||void 0===n?void 0:n.color)?Object(K.a)(Object(K.a)({},e),{},Object(ot.a)({},n.color,ut(dt.variants.subtle,{background:Object(Ye.c)(n.color,.1),color:n.color}))):e}),{});return Object(K.a)(Object(K.a)({},dt),{},{baseStyle:{container:{fontWeight:"normal"}},variants:Object(K.a)(Object(K.a)({},dt.variants),{},{subtle:ut(dt.variants.subtle,{background:"#F2F2F2",color:"blue.800"})},t)})},jt=function(e){return Object(K.a)(Object(K.a)({},Je.theme.components),{},{Checkbox:et,Code:nt,Divider:at,Radio:ct,Tag:bt(e.Tag),Tabs:lt})},ft={borders:{base:"1px solid rgba(0, 124, 253, 0.15)"},colors:Object(K.a)(Object(K.a)({},Je.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":"120rem"}},shadows:{base:"0px 4px 15px rgba(40, 132, 178, 0.15)"}},Ot=function(e){var t,n={Tag:null!==(t=e.packageTags)&&void 0!==t?t:[]};return Object(qe.a)(Object(K.a)(Object(K.a)({},ft),{},{components:jt(n),config:{initialColorMode:"light",useSystemColorMode:!1}}))},ht=function(e){var t=e.children,n=Object(Ue.b)(),a=n.loading,r=n.data;return a?Object(F.jsx)(Ae.a,{}):Object(F.jsx)(Ke.a,{resetCSS:!0,theme:Ot(r),children:t})};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}$/));l.a.render(Object(F.jsx)(i.a.StrictMode,{children:Object(F.jsx)(u.a,{children:Object(F.jsx)(L,{children:Object(F.jsx)(Ge.a,{children:Object(F.jsx)(Ue.a,{children:Object(F.jsx)(We.a,{children:Object(F.jsx)(Ve.a,{children:Object(F.jsx)(He.a,{children:Object(F.jsx)(ht,{children:Object(F.jsx)(Be.a,{children:Object(F.jsx)(_e,{})})})})})})})})})})}),document.getElementById("root")),c&&c instanceof Function&&n.e(16).then(n.bind(null,647)).then((function(e){var t=e.getCLS,n=e.getFID,a=e.getFCP,r=e.getLCP,o=e.getTTFB;t(c),n(c),a(c),r(c),o(c)}),(function(){})),"serviceWorker"in navigator&&navigator.serviceWorker.ready.then((function(e){e.unregister()})).catch((function(e){console.error(e.message)}))},48:function(e,t,n){"use strict";n.d(t,"c",(function(){return c})),n.d(t,"a",(function(){return i})),n.d(t,"b",(function(){return s}));var a,r,c,o=n(4);!function(e){e.awscdk="aws-cdk",e.cdktf="cdktf",e.cdk8s="cdk8s"}(c||(c={}));var i=(a={},Object(o.a)(a,c.awscdk,"AWS CDK"),Object(o.a)(a,c.cdktf,"CDKtf"),Object(o.a)(a,c.cdk8s,"CDK8s"),a),s=(r={},Object(o.a)(r,c.awscdk,{name:i[c.awscdk],imgsrc:"/assets/awscdk-icon-v2.png"}),Object(o.a)(r,c.cdk8s,{name:i[c.cdk8s],imgsrc:"/assets/cdk8s-icon-v2.png"}),Object(o.a)(r,c.cdktf,{name:i[c.cdktf],imgsrc:"/assets/cdktf-icon.png"}),r)},49:function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var a=n(6),r=n(211),c=n(34),o=n(1),i=function(e){return Object(o.jsx)(r.a,Object(a.a)({as:c.b},e))}},51:function(e,t,n){"use strict";n.d(t,"a",(function(){return d}));var a=n(6),r=n(24),c=n(30),o=n(17),i=n(211),s=n(107),l=n(1),u=["children","hasIcon","hasWarning","href","onClick","noFollow","rightIcon"],d=Object(o.a)((function(e,t){var n=e.children,o=e.hasIcon,d=void 0===o||o,b=e.hasWarning,j=void 0===b||b,f=e.href,O=e.onClick,h=e.noFollow,v=e.rightIcon,m=Object(r.a)(e,u),p=Object(s.b)(),g=(d=d||Boolean(v))?null!==v&&void 0!==v?v:Object(l.jsx)(c.k,{mb:1,ml:0}):null,x="noopener noreferrer";return(j||h)&&(x+=" nofollow"),Object(l.jsxs)(i.a,Object(a.a)(Object(a.a)({color:"blue.500",href:f,isExternal:!0,onClick:j?p({href:f,onClick:O}):O,ref:t,rel:x},m),{},{children:[n," ",d&&g]}))}));d.displayName="ExternalLink"},58:function(e,t,n){"use strict";n.d(t,"a",(function(){return a})),n.d(t,"c",(function(){return r})),n.d(t,"b",(function(){return c}));var a="https://github.com/cdklabs/construct-hub",r=[{display:"FAQ",isNavLink:!0,url:"/faq"},{display:"Construct Hub on GitHub",url:a},{display:"Issues on GitHub",url:"".concat(a,"/issues")},{display:"Community",links:[{display:"Slack",url:"https://join.slack.com/t/cdk-dev/shared_invite/zt-xtpfmrqt-6ormYTA0hLdpMSAtTkM_2A"}]}],c=[{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://docs.aws.amazon.com/cdk/latest/guide/best-practices.html"}]},{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:"Community Hub",url:"https://cdk.dev"}]}]},59:function(e,t,n){"use strict";var a;n.d(t,"a",(function(){return a})),function(e){e.NameAsc="asc",e.NameDesc="desc",e.PublishDateAsc="oldest",e.PublishDateDesc="newest",e.DownloadsAsc="downloadsAsc",e.DownloadsDesc="downloadsDesc"}(a||(a={}))},63:function(e,t,n){"use strict";n.d(t,"a",(function(){return a}));var a=function(e,t){return t.reduce((function(t,n){return t[n]="".concat(e,"-").concat(n),t}),{})}},74:function(e,t,n){"use strict";n.d(t,"a",(function(){return f})),n.d(t,"b",(function(){return j}));var a=n(6),r=n(37),c=n(5),o=n(0),i=n(22),s=n(136),l=n(77),u=n(1),d=Object(o.createContext)({loading:!1,data:void 0,error:void 0}),b="construct-hub-config",j=function(){return Object(o.useContext)(d)},f=function(e){var t,n=e.children,j=Object(i.h)().search,f=Object(o.useState)((function(){try{var e=localStorage.getItem(b);return e?JSON.parse(e):void 0}catch(t){console.error(t)}})),O=Object(c.a)(f,2),h=O[0],v=O[1],m=Object(l.a)(s.b,{onSuccess:function(e){v(e);try{localStorage.setItem(b,JSON.stringify(e))}catch(t){console.error(t)}}}),p=Object(c.a)(m,2),g=p[0],x=p[1];Object(o.useEffect)((function(){g()}),[]);var y=null!==h&&void 0!==h?h:{},k=new URLSearchParams(j),w=null!==(t=y.featureFlags)&&void 0!==t?t:{};y.featureFlags=w;var S,C=Object(r.a)(k.keys());try{for(C.s();!(S=C.n()).done;){var T=S.value;if(T.startsWith("ff-"))w[T.slice(3)]=!0}}catch(E){C.e(E)}finally{C.f()}return Object(u.jsx)(d.Provider,{value:Object(a.a)(Object(a.a)({},x),{},{data:y}),children:n})}},75:function(e,t,n){"use strict";n.d(t,"a",(function(){return y})),n.d(t,"b",(function(){return S})),n.d(t,"c",(function(){return L}));var a=n(6),r=n(24),c=n(30),o=n(210),i=n(220),s=n(221),l=n(236),u=n(159),d=n(213),b=n(0),j=n(95),f=n(108),O=n(146),h=n(63),v=Object(h.a)("searchBar",["input","searchIcon","searchButton","overlay","suggestionsList","suggestion"]),m=n(1),p=["children","hasButton","onSubmit","value","onChange"],g=Object(b.createContext)(void 0),x=function(){var e=Object(b.useContext)(g);if(!e)throw new Error("This component must be a child of a <SearchBar />");return e},y=function(e){var t,n=e.children,h=e.hasButton,x=e.onSubmit,y=e.value,k=e.onChange,w=Object(r.a)(e,p),S=Object(o.a)(),C=Object(b.useRef)(null),T=Object(j.a)(),E=Object(f.a)(),A=100*Math.floor((null!==(t=E.length)&&void 0!==t?t:0)/100),M="Search ".concat(A>0?"".concat(A,"+ "):"","construct libraries");return Object(b.useEffect)((function(){var e=function(e){C.current&&e.target&&(C.current.contains(e.target)||S.onClose())},t=function(e){var t,n;"Escape"===e.key&&(null===(t=C.current)||void 0===t||null===(n=t.blur)||void 0===n||n.call(t),S.onClose())};return window.addEventListener("keyup",t),window.addEventListener("click",e),function(){window.removeEventListener("keyup",t),window.removeEventListener("click",e)}}),[]),Object(m.jsx)(g.Provider,{value:{query:null!==y&&void 0!==y?y:T.query,isOpen:S.isOpen},children:Object(m.jsxs)(O.a,{color:"initial",onSubmit:null!==x&&void 0!==x?x:T.onSubmit,pos:"relative",children:[Object(m.jsxs)(i.a,{pos:"relative",zIndex:S.isOpen?3:"initial",children:[h&&Object(m.jsx)(s.a,{children:Object(m.jsx)(c.o,{"data-testid":v.searchIcon})}),Object(m.jsx)(l.a,Object(a.a)({_focus:{boxShadow:"base",borderColor:"inherit"},bg:"white",boxShadow:S.isOpen?"base":"none","data-testid":v.input,onChange:null!==k&&void 0!==k?k:T.onQueryChange,onFocus:S.onOpen,placeholder:M,ref:C,value:null!==y&&void 0!==y?y:T.query},w)),h?Object(m.jsx)(s.b,{display:{base:"none",md:"initial"},w:"9rem",children:Object(m.jsx)(u.a,{borderLeftRadius:"0",colorScheme:"blue","data-testid":v.searchButton,type:"submit",children:"Find Constructs"})}):Object(m.jsx)(s.b,{children:Object(m.jsx)(d.a,{"aria-label":"Run search","data-testid":v.searchIcon,icon:Object(m.jsx)(c.o,{}),type:"submit",variant:"ghost"})})]}),n]})})},k=n(17),w=n(204),S=Object(k.a)((function(e,t){var n=x().isOpen;return Object(m.jsx)(w.a,Object(a.a)({bg:"gray.700","data-testid":v.overlay,display:n?"initial":"none",inset:"0",opacity:"0.5",pos:"fixed",ref:t,zIndex:"1"},e))})),C=n(223),T=n(216),E=n(238),A=n(208),M=n(22),z=n(128),I=n(147),F=n(88),P=n(94),D=n(129),R=n(148),L=Object(k.a)((function(e,t){var n=x(),r=n.query,c=n.isOpen,o=Object(I.a)(r),i=Object(M.g)().push,s=Object(z.a)({limit:5,offset:0,query:o}).page;return!c||s.length<1||!o?null:Object(m.jsx)(P.a,Object(a.a)(Object(a.a)({as:C.c,"data-testid":v.suggestionsList,left:0,ml:0,pos:"absolute",pt:10,px:0,ref:t,right:0,top:0,zIndex:2},e),{},{children:s.map((function(e,t){var n,r,c=null!==(n=null===(r=e.metadata)||void 0===r?void 0:r.constructFramework)&&void 0!==n?n:{};return Object(m.jsxs)(m.Fragment,{children:[t>0&&Object(m.jsx)(T.a,{mx:4,w:"auto"}),Object(m.jsx)(R.a,{"data-testid":v.suggestion,name:Object(m.jsxs)(E.a,{align:"center",direction:"row",spacing:4,children:[Object(m.jsx)(w.a,{w:"5.5rem",children:Object(m.jsx)(D.a,Object(a.a)({w:"min-content"},c))}),Object(m.jsx)(A.a,{children:e.name})]}),onClick:function(){return i(Object(F.a)(e))},py:2,textAlign:"left"},e.id)]})}))}))}))},76:function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var a=n(219),r=n(209),c=n(1),o=function(){return Object(c.jsx)(a.a,{children:Object(c.jsx)(r.a,{size:"xl"})})}},77:function(e,t,n){"use strict";n.d(t,"a",(function(){return s}));var a=n(28),r=n.n(a),c=n(45),o=n(5),i=n(0),s=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.initialValue,a=t.onSuccess,s=t.onError,l=Object(i.useState)(!1),u=Object(o.a)(l,2),d=u[0],b=u[1],j=Object(i.useState)(n),f=Object(o.a)(j,2),O=f[0],h=f[1],v=Object(i.useState)(),m=Object(o.a)(v,2),p=m[0],g=m[1],x=Object(i.useRef)(!1);Object(i.useEffect)((function(){return x.current=!0,function(){x.current=!1}}),[]);var y=Object(i.useCallback)(Object(c.a)(r.a.mark((function t(){var c,o=arguments;return r.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(x.current){t.next=2;break}return t.abrupt("return");case 2:return b(!0),g(void 0),t.prev=4,t.next=7,e.apply(void 0,o);case 7:c=t.sent,null===a||void 0===a||a(c),x.current&&(h(c),b(!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),x.current&&(h(n),g(t.t0),b(!1));case 17:case"end":return t.stop()}}),t,null,[[4,12]])}))),[s,a]);return Object(i.useMemo)((function(){return[y,{data:O,loading:d,error:p}]}),[y,O,d,p])}},88:function(e,t,n){"use strict";n.d(t,"b",(function(){return i})),n.d(t,"c",(function(){return l})),n.d(t,"a",(function(){return u}));var a=n(4),r=n(5),c=n(13),o=new RegExp(/git@github\.com:([a-zA-Z-]+)+\/?([a-zA-Z-]+)*(\.git)?/),i=function(e){try{var t=e,n=e.match(o);if(n){var a=Object(r.a)(n,3),c=a[1],i=a[2];t="https://github.com/".concat(c,"/").concat(i)}return{hostname:new URL(t).hostname,url:t}}catch(s){return}},s=function(e,t){var n=e;if(t){var a=function(e,t){var n=new URLSearchParams(t);return Object.entries(e).filter((function(e){return null!=Object(r.a)(e,2)[1]})).forEach((function(e){var t=Object(r.a)(e,2),a=t[0],c=t[1];n.set(a,"".concat(c))})),n.toString()}(t);a&&(n+="?".concat(a))}return n},l=function(e){var t,n=e.cdkMajor,r=e.cdkType,o=e.keywords,i=e.query,l=e.offset,u=e.languages,d=e.sort,b=e.tags;return s(c.c.SEARCH,(t={},Object(a.a)(t,c.b.SEARCH_QUERY,i),Object(a.a)(t,c.b.CDK_TYPE,r),Object(a.a)(t,c.b.CDK_MAJOR,n),Object(a.a)(t,c.b.KEYWORDS,(null===o||void 0===o?void 0:o.length)?o.join(","):null),Object(a.a)(t,c.b.LANGUAGES,(null===u||void 0===u?void 0:u.length)?u.join(","):null),Object(a.a)(t,c.b.SORT,d),Object(a.a)(t,c.b.OFFSET,null!==l&&void 0!==l?l:0),Object(a.a)(t,c.b.TAGS,(null===b||void 0===b?void 0:b.length)?b.join(","):null),t))},u=function(e){var t,n=e.name,r=e.version,o=e.language,i=e.submodule;return s("".concat(c.c.PACKAGES,"/").concat(n,"/v/").concat(r),(t={},Object(a.a)(t,c.b.SUBMODULE,i),Object(a.a)(t,c.b.LANGUAGE,o),t))}},89:function(e,t,n){"use strict";n.d(t,"b",(function(){return D})),n.d(t,"a",(function(){return R}));var a,r=n(0),c=n(4),o=n(37),i=n(14),s=n(6),l=n(5),u=n(68),d=n(78),b=n(119),j=n.n(b),f=n(48),O=n(59),h=n(127),v=n(122),m=function(e){return function(t,n){return t.name.localeCompare(n.name)*(e?1:-1)}},p=function(e){return function(t,n){var a=new Date(t.metadata.date).getTime(),r=new Date(n.metadata.date).getTime();return a===r?m(!0)(t,n):e?r<a?1:-1:a<r?1:-1}},g=function(e){return function(t,n){return t.downloads!==n.downloads?(t.downloads-n.downloads)*(e?1:-1):m(!e)(t,n)}},x=(a={},Object(c.a)(a,O.a.NameAsc,m(!0)),Object(c.a)(a,O.a.NameDesc,m(!1)),Object(c.a)(a,O.a.PublishDateAsc,p(!0)),Object(c.a)(a,O.a.PublishDateDesc,p(!1)),Object(c.a)(a,O.a.DownloadsAsc,g(!0)),Object(c.a)(a,O.a.DownloadsDesc,g(!1)),a),y=function(e){if(e)return function(t){var n,a;return(null===(n=t.metadata)||void 0===n||null===(a=n.constructFramework)||void 0===a?void 0:a.name)===e}},k=function(e){if("number"===typeof e)return function(t){var n,a;return(null===(n=t.metadata)||void 0===n||null===(a=n.constructFramework)||void 0===a?void 0:a.majorVersion)===e}},w=function(e){if(null===e||void 0===e?void 0:e.length)return function(t){var n,a,r,c,i=new Set,s=Object(o.a)(null!==(n=t.keywords)&&void 0!==n?n:[]);try{for(s.s();!(c=s.n()).done;){var l=c.value;i.add(l.toLocaleLowerCase())}}catch(v){s.e(v)}finally{s.f()}var u,d=Object(o.a)(null!==(a=null===(r=t.metadata)||void 0===r?void 0:r.packageTags)&&void 0!==a?a:[]);try{for(d.s();!(u=d.n()).done;){var b,j=null===(b=u.value.keyword)||void 0===b?void 0:b.label;j&&i.add(j.toLocaleLowerCase())}}catch(v){d.e(v)}finally{d.f()}var f,O=Object(o.a)(e);try{for(O.s();!(f=O.n()).done;){var h=f.value;if(i.has(h.toLocaleLowerCase()))return!0}}catch(v){O.e(v)}finally{O.f()}return!1}},S=function(e){var t,n=(null!==(t=null===e||void 0===e?void 0:e.length)&&void 0!==t?t:0)>0?new Set(e):void 0;if(n&&!n.has(v.d.TypeScript))return function(e){var t;return Object.keys(null!==(t=e.languages)&&void 0!==t?t:{}).some((function(e){return n.has(e)}))}},C=function(e){if(e&&e.length)return function(t){var n,a,r;return null!==(n=null===(a=t.metadata)||void 0===a||null===(r=a.packageTags)||void 0===r?void 0:r.some((function(t){return e.includes(t.id)})))&&void 0!==n&&n}},T=function(e){for(var t,n,a,r=new Set,c=null!==(t=e.keywords)&&void 0!==t?t:[],o=(null!==(n=null===(a=e.metadata)||void 0===a?void 0:a.packageTags)&&void 0!==n?n:[]).filter((function(e){return e.keyword})).map((function(e){return e.keyword.label})),s=0,l=[].concat(Object(i.a)(c),Object(i.a)(o));s<l.length;s++){var u=l[s];h.a.has(u)||r.add(u.toLocaleLowerCase())}return Array.from(r)},E={AUTHOR_EMAIL:{name:"authorEmail",boost:1},AUTHOR_NAME:{name:"authorName",boost:3},DESCRIPTION:{name:"description",boost:2},KEYWORDS:{name:"keywords",boost:2},NAME:{name:"name",boost:5},PACKAGE_NAME:{name:"packageName",boost:5},SCOPE:{name:"scope",boost:5},TAG_NAMES:{name:"tagNames",boost:2}},A=function(){function e(t,n){Object(u.a)(this,e),this.map=void 0,this.index=void 0,this.keywords=void 0,this.constructFrameworks=void 0;var a=t.filter((function(e){var t;return!(null===(t=e.keywords)||void 0===t?void 0:t.includes("construct-hub/hide-from-search"))})).reduce((function(e,t){var a,r,c,o,i,u,d=t.author,b=t.name,j=[b,t.version].join("@"),f=null!==(a=null===(r=n.packages[b])||void 0===r||null===(c=r.downloads)||void 0===c?void 0:c.npm)&&void 0!==a?a:0,O=b.split("/"),h=Object(l.a)(O,2),v=h[0],m=h[1];return m||(m=v),"string"===typeof d?i=d:((null===d||void 0===d?void 0:d.name)&&(i=d.name),(null===d||void 0===d?void 0:d.email)&&(u=d.email)),e.set(j,Object(s.a)(Object(s.a)({},t),{},{authorName:i,authorEmail:u,keywords:T(t),downloads:f,id:j,packageName:m,scope:v,tagNames:(null!==(o=t.metadata.packageTags)&&void 0!==o?o:[]).map((function(e){return e.id}))})),e}),new Map);this.map=this.sort(a,O.a.PublishDateDesc),this.constructFrameworks=this.detectConstructFrameworks(),this.keywords=this.detectKeywords(),this.index=j()((function(){var e=this;for(var t in this.tokenizer.separator=/[\s\-/@]+/,this.ref("id"),E){var n=E[t];this.field(n.name,{boost:n.boost})}Object(i.a)(a.values()).forEach((function(t){var n=Math.log(Math.max(t.downloads,1));e.add(t,{boost:n})}))}))}return Object(d.a)(e,[{key:"search",value:function(e){var t=null!==e&&void 0!==e?e:{},n=t.query,a=t.filters,r=t.sort,c=n?this.query(n):new Map(this.map);return a&&(c=this.filter(c,a)),c=this.dedup(c),r&&(c=this.sort(c,r)),c}},{key:"query",value:function(e){var t=this,n=[];try{var a=j.a.tokenizer(e);a.length>1&&(a=a.filter((function(e){return"cdk"!==e.toString()}))),n=this.index.query((function(e){e.term(a,{})}))}catch(r){console.error(r)}return n.reduce((function(e,n){var a=n.ref,r=t.map.get(a);return r&&e.set(a,r),e}),new Map)}},{key:"findByName",value:function(e){var t,n=Object(i.a)(this.map.values()).filter((function(t){return t.name===e})),a=new Array,r=Object(o.a)(n.values());try{for(r.s();!(t=r.n()).done;){var c=t.value;c.name===e&&a.push(c)}}catch(s){r.e(s)}finally{r.f()}return a}},{key:"filter",value:function(e,t){var n=t.cdkType,a=t.cdkMajor,r=t.keywords,c=t.languages,o=t.tags,i=new Map(e),s=[y(n),k(n?a:void 0),w(r),S(c),C(o)].filter(Boolean);return i.forEach((function(e){var t=!1;s.forEach((function(n){t||n(e)||(t=!0)})),t&&i.delete(e.id)})),i}},{key:"sort",value:function(e,t){return t?new Map(Object(i.a)(e.entries()).sort((function(e,n){var a=Object(l.a)(e,2)[1],r=Object(l.a)(n,2)[1];return x[t](a,r)}))):e}},{key:"dedup",value:function(e){var t,n=new Map,a=Object(o.a)(e);try{for(a.s();!(t=a.n()).done;){var r=Object(l.a)(t.value,2),c=(r[0],r[1]),i=n.get(c.name);(!i||new Date(i.metadata.date)<new Date(c.metadata.date))&&n.set(c.name,c)}}catch(s){a.e(s)}finally{a.f()}return n}},{key:"detectKeywords",value:function(){return Object(i.a)(this.map.values()).reduce((function(e,t){var n,a=Object(o.a)(T(t));try{for(a.s();!(n=a.n()).done;){var r=n.value,c=e.get(r);e.set(r,(null!==c&&void 0!==c?c:0)+1)}}catch(i){a.e(i)}finally{a.f()}return e}),new Map)}},{key:"detectConstructFrameworks",value:function(){var e;return Object(i.a)(this.map.values()).reduce((function(e,t){var n,a,r=t.metadata,c=null===r||void 0===r||null===(n=r.constructFramework)||void 0===n?void 0:n.name,o=null===r||void 0===r||null===(a=r.constructFramework)||void 0===a?void 0:a.majorVersion;if(c){var i=e[c];void 0===o||i.majorVersions.includes(o)||i.majorVersions.push(o),i.pkgCount+=1}return e}),(e={},Object(c.a)(e,f.c.awscdk,{majorVersions:[],pkgCount:0}),Object(c.a)(e,f.c.cdk8s,{majorVersions:[],pkgCount:0}),Object(c.a)(e,f.c.cdktf,{majorVersions:[],pkgCount:0}),e))}}]),e}(),M=n(76),z=n(90),I=n(91),F=n(1),P=Object(r.createContext)(void 0),D=function(){return Object(r.useContext)(P)},R=function(e){var t=e.children,n=Object(z.b)(),a=n.data,c=n.loading,o=Object(I.b)(),i=o.data,s=o.loading,l=Object(r.useMemo)((function(){if(void 0!==(null===a||void 0===a?void 0:a.packages)&&!c&&(void 0!==i&&!s))return new A(a.packages,i)}),[a,c,i,s]);return l?Object(F.jsx)(P.Provider,{value:l,children:t}):Object(F.jsx)(M.a,{})}},90:function(e,t,n){"use strict";n.d(t,"b",(function(){return f})),n.d(t,"a",(function(){return O}));var a=n(5),r=n(0),c=n(28),o=n.n(c),i=n(45),s=n(13),l={packages:[]},u=function(){var e=Object(i.a)(o.a.mark((function e(){var t;return o.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=7;break}return console.error(t.statusText),console.warn("Failed to fetch package catalog. Falling back to empty package list."),e.abrupt("return",l);case 7:return e.abrupt("return",t.json().catch((function(e){return console.error(e),console.warn("Invalid package catalog response. Falling back to empty package list."),l})));case 8:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),d=n(77),b=n(1),j=Object(r.createContext)({loading:!1,data:void 0,error:void 0}),f=function(){return Object(r.useContext)(j)},O=function(e){var t=e.children,n=Object(d.a)(u),c=Object(a.a)(n,2),o=c[0],i=c[1];return Object(r.useEffect)((function(){o()}),[o]),Object(b.jsx)(j.Provider,{value:i,children:t})}},91:function(e,t,n){"use strict";n.d(t,"b",(function(){return f})),n.d(t,"a",(function(){return O}));var a=n(5),r=n(0),c=n(28),o=n.n(c),i=n(45),s=n(13),l={packages:{},updated:"NOT_FOUND"},u=function(){var e=Object(i.a)(o.a.mark((function e(){var t;return o.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch(s.a.STATS);case 2:if((t=e.sent).ok){e.next=7;break}return console.error(t.statusText),console.warn("Could not retrieve package stats. Using empty stats."),e.abrupt("return",l);case 7:return e.abrupt("return",t.json().catch((function(e){return console.error(e),console.warn("Error in package stats response. Using empty stats."),l})));case 8:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),d=n(77),b=n(1),j=Object(r.createContext)({loading:!1,data:void 0,error:void 0}),f=function(){return Object(r.useContext)(j)},O=function(e){var t=e.children,n=Object(d.a)(u),c=Object(a.a)(n,2),o=c[0],i=c[1];return Object(r.useEffect)((function(){o()}),[o]),Object(b.jsx)(j.Provider,{value:i,children:t})}},94:function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var a=n(6),r=n(17),c=n(204),o=n(1),i=Object(r.a)((function(e,t){return Object(o.jsx)(c.a,Object(a.a)({bg:"white",border:"base",borderRadius:"card",boxShadow:"base",p:2,ref:t},e))}));i.displayName="Card"},95:function(e,t,n){"use strict";n.d(t,"a",(function(){return i}));var a=n(5),r=n(0),c=n(22),o=n(88),i=function(){var e,t,n,i,s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},l=Object(r.useState)(null!==(e=s.defaultQuery)&&void 0!==e?e:""),u=Object(a.a)(l,2),d=u[0],b=u[1],j=Object(r.useState)(s.defaultCdkType),f=Object(a.a)(j,2),O=f[0],h=f[1],v=Object(r.useState)(s.defaultCdkMajor),m=Object(a.a)(v,2),p=m[0],g=m[1],x=Object(r.useState)(null!==(t=s.defaultLanguages)&&void 0!==t?t:[]),y=Object(a.a)(x,2),k=y[0],w=y[1],S=Object(r.useState)(null!==(n=s.defaultTags)&&void 0!==n?n:[]),C=Object(a.a)(S,2),T=C[0],E=C[1],A=Object(r.useState)(null!==(i=s.defaultKeywords)&&void 0!==i?i:[]),M=Object(a.a)(A,2),z=M[0],I=M[1],F=Object(r.useState)(s.defaultSort),P=Object(a.a)(F,2),D=P[0],R=P[1],L=Object(c.g)(),N=L.push,_=L.replace,G=function(e){e.preventDefault(),b(e.target.value)},W=Object(r.useCallback)((function(e){((null===e||void 0===e?void 0:e.replace)?_:N)(Object(o.c)({cdkType:O,cdkMajor:p,keywords:z,languages:k,query:d,sort:D,tags:T}))}),[_,N,O,p,z,k,d,D,T]),U=Object(r.useCallback)((function(e){null===e||void 0===e||e.preventDefault(),W()}),[W]);return Object(r.useMemo)((function(){return{cdkMajor:p,cdkType:O,keywords:z,languages:k,onQueryChange:G,onSearch:W,onSubmit:U,query:d,setCdkMajor:g,setCdkType:h,setKeywords:I,setLanguages:w,setTags:E,setQuery:b,setSort:R,sort:D,tags:T}}),[p,O,z,k,W,U,d,D,T])}}},[[183,3,5]]]);
2
+ //# sourceMappingURL=main.8038c15f.chunk.js.map