construct-hub-webapp 0.1.445 → 0.1.448

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/.gitattributes +24 -22
  2. package/build/asset-manifest.json +37 -45
  3. package/build/index.html +1 -1
  4. package/build/static/css/main.60c3637f.css +2 -0
  5. package/build/static/css/main.60c3637f.css.map +1 -0
  6. package/build/static/js/122.ae446a89.chunk.js +2 -0
  7. package/build/static/js/122.ae446a89.chunk.js.map +1 -0
  8. package/build/static/js/19.f6e4ade1.chunk.js +2 -0
  9. package/build/static/js/19.f6e4ade1.chunk.js.map +1 -0
  10. package/build/static/js/225.0a200f20.chunk.js +2 -0
  11. package/build/static/js/225.0a200f20.chunk.js.map +1 -0
  12. package/build/static/js/229.e8cc3112.chunk.js +2 -0
  13. package/build/static/js/229.e8cc3112.chunk.js.map +1 -0
  14. package/build/static/js/259.07e40dd7.chunk.js +3 -0
  15. package/build/static/js/{15.6ef33063.chunk.js.LICENSE.txt → 259.07e40dd7.chunk.js.LICENSE.txt} +0 -0
  16. package/build/static/js/259.07e40dd7.chunk.js.map +1 -0
  17. package/build/static/js/270.e8136074.chunk.js +2 -0
  18. package/build/static/js/270.e8136074.chunk.js.map +1 -0
  19. package/build/static/js/283.366a87d5.chunk.js +2 -0
  20. package/build/static/js/283.366a87d5.chunk.js.map +1 -0
  21. package/build/static/js/411.800fe881.chunk.js +2 -0
  22. package/build/static/js/411.800fe881.chunk.js.map +1 -0
  23. package/build/static/js/502.55449322.chunk.js +3 -0
  24. package/build/static/js/{4.99a7c5e1.chunk.js.LICENSE.txt → 502.55449322.chunk.js.LICENSE.txt} +0 -0
  25. package/build/static/js/502.55449322.chunk.js.map +1 -0
  26. package/build/static/js/51.91ea6291.chunk.js +2 -0
  27. package/build/static/js/51.91ea6291.chunk.js.map +1 -0
  28. package/build/static/js/540.85e0d93a.chunk.js +2 -0
  29. package/build/static/js/540.85e0d93a.chunk.js.map +1 -0
  30. package/build/static/js/577.d5b9ef00.chunk.js +2 -0
  31. package/build/static/js/577.d5b9ef00.chunk.js.map +1 -0
  32. package/build/static/js/679.5a3ba75b.chunk.js +2 -0
  33. package/build/static/js/679.5a3ba75b.chunk.js.map +1 -0
  34. package/build/static/js/680.db4eb012.chunk.js +2 -0
  35. package/build/static/js/680.db4eb012.chunk.js.map +1 -0
  36. package/build/static/js/787.34927533.chunk.js +2 -0
  37. package/build/static/js/787.34927533.chunk.js.map +1 -0
  38. package/build/static/js/main.e590a187.js +3 -0
  39. package/build/static/js/{5.1801bbc2.chunk.js.LICENSE.txt → main.e590a187.js.LICENSE.txt} +0 -0
  40. package/build/static/js/main.e590a187.js.map +1 -0
  41. package/package.json +29 -28
  42. package/build/static/css/main.1e6d8b38.chunk.css +0 -2
  43. package/build/static/css/main.1e6d8b38.chunk.css.map +0 -1
  44. package/build/static/js/0.5d7aa10f.chunk.js +0 -2
  45. package/build/static/js/0.5d7aa10f.chunk.js.map +0 -1
  46. package/build/static/js/1.81b10c86.chunk.js +0 -2
  47. package/build/static/js/1.81b10c86.chunk.js.map +0 -1
  48. package/build/static/js/10.c1cef902.chunk.js +0 -2
  49. package/build/static/js/10.c1cef902.chunk.js.map +0 -1
  50. package/build/static/js/11.f17b9786.chunk.js +0 -2
  51. package/build/static/js/11.f17b9786.chunk.js.map +0 -1
  52. package/build/static/js/12.058c1e48.chunk.js +0 -2
  53. package/build/static/js/12.058c1e48.chunk.js.map +0 -1
  54. package/build/static/js/13.4a6bd352.chunk.js +0 -2
  55. package/build/static/js/13.4a6bd352.chunk.js.map +0 -1
  56. package/build/static/js/14.bc7a075e.chunk.js +0 -2
  57. package/build/static/js/14.bc7a075e.chunk.js.map +0 -1
  58. package/build/static/js/15.6ef33063.chunk.js +0 -3
  59. package/build/static/js/15.6ef33063.chunk.js.map +0 -1
  60. package/build/static/js/16.f993fdf0.chunk.js +0 -2
  61. package/build/static/js/16.f993fdf0.chunk.js.map +0 -1
  62. package/build/static/js/4.99a7c5e1.chunk.js +0 -3
  63. package/build/static/js/4.99a7c5e1.chunk.js.map +0 -1
  64. package/build/static/js/5.1801bbc2.chunk.js +0 -3
  65. package/build/static/js/5.1801bbc2.chunk.js.map +0 -1
  66. package/build/static/js/6.602ea6c4.chunk.js +0 -2
  67. package/build/static/js/6.602ea6c4.chunk.js.map +0 -1
  68. package/build/static/js/7.a2de03bb.chunk.js +0 -2
  69. package/build/static/js/7.a2de03bb.chunk.js.map +0 -1
  70. package/build/static/js/8.09b8b6b2.chunk.js +0 -2
  71. package/build/static/js/8.09b8b6b2.chunk.js.map +0 -1
  72. package/build/static/js/9.44832d44.chunk.js +0 -2
  73. package/build/static/js/9.44832d44.chunk.js.map +0 -1
  74. package/build/static/js/main.4f38042f.chunk.js +0 -2
  75. package/build/static/js/main.4f38042f.chunk.js.map +0 -1
  76. package/build/static/js/runtime-main.98d3ae5e.js +0 -2
  77. package/build/static/js/runtime-main.98d3ae5e.js.map +0 -1
package/.gitattributes CHANGED
@@ -1,24 +1,26 @@
1
1
  # ~~ Generated by projen. To modify, edit .projenrc.js and run "npx projen".
2
2
 
3
- /.eslintrc.json linguist-generated
4
- /.gitattributes linguist-generated
5
- /.github/pull_request_template.md linguist-generated
6
- /.github/workflows/auto-approve.yml linguist-generated
7
- /.github/workflows/build.yml linguist-generated
8
- /.github/workflows/e2e-canary.yml linguist-generated
9
- /.github/workflows/pull-request-lint.yml linguist-generated
10
- /.github/workflows/release.yml linguist-generated
11
- /.github/workflows/stale.yml linguist-generated
12
- /.github/workflows/upgrade-main.yml linguist-generated
13
- /.gitignore linguist-generated
14
- /.mergify.yml linguist-generated
15
- /.npmignore linguist-generated
16
- /.projen/** linguist-generated
17
- /.projen/deps.json linguist-generated
18
- /.projen/tasks.json linguist-generated
19
- /LICENSE linguist-generated
20
- /package.json linguist-generated
21
- /react-app-env.d.ts linguist-generated
22
- /tsconfig.dev.json linguist-generated
23
- /tsconfig.json linguist-generated
24
- /yarn.lock linguist-generated
3
+ /.eslintrc.json linguist-generated
4
+ /.gitattributes linguist-generated
5
+ /.github/pull_request_template.md linguist-generated
6
+ /.github/workflows/auto-approve.yml linguist-generated
7
+ /.github/workflows/build.yml linguist-generated
8
+ /.github/workflows/e2e-canary.yml linguist-generated
9
+ /.github/workflows/integ.yml linguist-generated
10
+ /.github/workflows/pull-request-lint.yml linguist-generated
11
+ /.github/workflows/release.yml linguist-generated
12
+ /.github/workflows/stale.yml linguist-generated
13
+ /.github/workflows/upgrade-main.yml linguist-generated
14
+ /.gitignore linguist-generated
15
+ /.mergify.yml linguist-generated
16
+ /.npmignore linguist-generated
17
+ /.projen/** linguist-generated
18
+ /.projen/deps.json linguist-generated
19
+ /.projen/files.json linguist-generated
20
+ /.projen/tasks.json linguist-generated
21
+ /LICENSE linguist-generated
22
+ /package.json linguist-generated
23
+ /react-app-env.d.ts linguist-generated
24
+ /tsconfig.dev.json linguist-generated
25
+ /tsconfig.json linguist-generated
26
+ /yarn.lock linguist-generated
@@ -1,52 +1,44 @@
1
1
  {
2
2
  "files": {
3
- "static/js/0.5d7aa10f.chunk.js": "/static/js/0.5d7aa10f.chunk.js",
4
- "static/js/0.5d7aa10f.chunk.js.map": "/static/js/0.5d7aa10f.chunk.js.map",
5
- "static/js/1.81b10c86.chunk.js": "/static/js/1.81b10c86.chunk.js",
6
- "static/js/1.81b10c86.chunk.js.map": "/static/js/1.81b10c86.chunk.js.map",
7
- "main.css": "/static/css/main.1e6d8b38.chunk.css",
8
- "main.js": "/static/js/main.4f38042f.chunk.js",
9
- "main.js.map": "/static/js/main.4f38042f.chunk.js.map",
10
- "runtime-main.js": "/static/js/runtime-main.98d3ae5e.js",
11
- "runtime-main.js.map": "/static/js/runtime-main.98d3ae5e.js.map",
12
- "static/js/4.99a7c5e1.chunk.js": "/static/js/4.99a7c5e1.chunk.js",
13
- "static/js/4.99a7c5e1.chunk.js.map": "/static/js/4.99a7c5e1.chunk.js.map",
14
- "static/js/5.1801bbc2.chunk.js": "/static/js/5.1801bbc2.chunk.js",
15
- "static/js/5.1801bbc2.chunk.js.map": "/static/js/5.1801bbc2.chunk.js.map",
16
- "static/js/6.602ea6c4.chunk.js": "/static/js/6.602ea6c4.chunk.js",
17
- "static/js/6.602ea6c4.chunk.js.map": "/static/js/6.602ea6c4.chunk.js.map",
18
- "static/js/7.a2de03bb.chunk.js": "/static/js/7.a2de03bb.chunk.js",
19
- "static/js/7.a2de03bb.chunk.js.map": "/static/js/7.a2de03bb.chunk.js.map",
20
- "static/js/8.09b8b6b2.chunk.js": "/static/js/8.09b8b6b2.chunk.js",
21
- "static/js/8.09b8b6b2.chunk.js.map": "/static/js/8.09b8b6b2.chunk.js.map",
22
- "static/js/9.44832d44.chunk.js": "/static/js/9.44832d44.chunk.js",
23
- "static/js/9.44832d44.chunk.js.map": "/static/js/9.44832d44.chunk.js.map",
24
- "static/js/10.c1cef902.chunk.js": "/static/js/10.c1cef902.chunk.js",
25
- "static/js/10.c1cef902.chunk.js.map": "/static/js/10.c1cef902.chunk.js.map",
26
- "static/js/11.f17b9786.chunk.js": "/static/js/11.f17b9786.chunk.js",
27
- "static/js/11.f17b9786.chunk.js.map": "/static/js/11.f17b9786.chunk.js.map",
28
- "static/js/12.058c1e48.chunk.js": "/static/js/12.058c1e48.chunk.js",
29
- "static/js/12.058c1e48.chunk.js.map": "/static/js/12.058c1e48.chunk.js.map",
30
- "static/js/13.4a6bd352.chunk.js": "/static/js/13.4a6bd352.chunk.js",
31
- "static/js/13.4a6bd352.chunk.js.map": "/static/js/13.4a6bd352.chunk.js.map",
32
- "static/js/14.bc7a075e.chunk.js": "/static/js/14.bc7a075e.chunk.js",
33
- "static/js/14.bc7a075e.chunk.js.map": "/static/js/14.bc7a075e.chunk.js.map",
34
- "static/js/15.6ef33063.chunk.js": "/static/js/15.6ef33063.chunk.js",
35
- "static/js/15.6ef33063.chunk.js.map": "/static/js/15.6ef33063.chunk.js.map",
36
- "static/js/16.f993fdf0.chunk.js": "/static/js/16.f993fdf0.chunk.js",
37
- "static/js/16.f993fdf0.chunk.js.map": "/static/js/16.f993fdf0.chunk.js.map",
38
- "index.html": "/index.html",
3
+ "main.css": "/static/css/main.60c3637f.css",
4
+ "main.js": "/static/js/main.e590a187.js",
5
+ "static/js/19.f6e4ade1.chunk.js": "/static/js/19.f6e4ade1.chunk.js",
6
+ "static/js/679.5a3ba75b.chunk.js": "/static/js/679.5a3ba75b.chunk.js",
7
+ "static/js/229.e8cc3112.chunk.js": "/static/js/229.e8cc3112.chunk.js",
8
+ "static/js/577.d5b9ef00.chunk.js": "/static/js/577.d5b9ef00.chunk.js",
9
+ "static/js/411.800fe881.chunk.js": "/static/js/411.800fe881.chunk.js",
10
+ "static/js/51.91ea6291.chunk.js": "/static/js/51.91ea6291.chunk.js",
11
+ "static/js/540.85e0d93a.chunk.js": "/static/js/540.85e0d93a.chunk.js",
12
+ "static/js/259.07e40dd7.chunk.js": "/static/js/259.07e40dd7.chunk.js",
13
+ "static/js/787.34927533.chunk.js": "/static/js/787.34927533.chunk.js",
14
+ "static/js/270.e8136074.chunk.js": "/static/js/270.e8136074.chunk.js",
15
+ "static/js/680.db4eb012.chunk.js": "/static/js/680.db4eb012.chunk.js",
16
+ "static/js/502.55449322.chunk.js": "/static/js/502.55449322.chunk.js",
17
+ "static/js/122.ae446a89.chunk.js": "/static/js/122.ae446a89.chunk.js",
18
+ "static/js/225.0a200f20.chunk.js": "/static/js/225.0a200f20.chunk.js",
19
+ "static/js/283.366a87d5.chunk.js": "/static/js/283.366a87d5.chunk.js",
39
20
  "service-worker.js": "/service-worker.js",
40
- "service-worker.js.map": "/service-worker.js.map",
41
- "static/css/main.1e6d8b38.chunk.css.map": "/static/css/main.1e6d8b38.chunk.css.map",
42
- "static/js/15.6ef33063.chunk.js.LICENSE.txt": "/static/js/15.6ef33063.chunk.js.LICENSE.txt",
43
- "static/js/4.99a7c5e1.chunk.js.LICENSE.txt": "/static/js/4.99a7c5e1.chunk.js.LICENSE.txt",
44
- "static/js/5.1801bbc2.chunk.js.LICENSE.txt": "/static/js/5.1801bbc2.chunk.js.LICENSE.txt"
21
+ "index.html": "/index.html",
22
+ "main.60c3637f.css.map": "/static/css/main.60c3637f.css.map",
23
+ "main.e590a187.js.map": "/static/js/main.e590a187.js.map",
24
+ "19.f6e4ade1.chunk.js.map": "/static/js/19.f6e4ade1.chunk.js.map",
25
+ "679.5a3ba75b.chunk.js.map": "/static/js/679.5a3ba75b.chunk.js.map",
26
+ "229.e8cc3112.chunk.js.map": "/static/js/229.e8cc3112.chunk.js.map",
27
+ "577.d5b9ef00.chunk.js.map": "/static/js/577.d5b9ef00.chunk.js.map",
28
+ "411.800fe881.chunk.js.map": "/static/js/411.800fe881.chunk.js.map",
29
+ "51.91ea6291.chunk.js.map": "/static/js/51.91ea6291.chunk.js.map",
30
+ "540.85e0d93a.chunk.js.map": "/static/js/540.85e0d93a.chunk.js.map",
31
+ "259.07e40dd7.chunk.js.map": "/static/js/259.07e40dd7.chunk.js.map",
32
+ "787.34927533.chunk.js.map": "/static/js/787.34927533.chunk.js.map",
33
+ "270.e8136074.chunk.js.map": "/static/js/270.e8136074.chunk.js.map",
34
+ "680.db4eb012.chunk.js.map": "/static/js/680.db4eb012.chunk.js.map",
35
+ "502.55449322.chunk.js.map": "/static/js/502.55449322.chunk.js.map",
36
+ "122.ae446a89.chunk.js.map": "/static/js/122.ae446a89.chunk.js.map",
37
+ "225.0a200f20.chunk.js.map": "/static/js/225.0a200f20.chunk.js.map",
38
+ "283.366a87d5.chunk.js.map": "/static/js/283.366a87d5.chunk.js.map"
45
39
  },
46
40
  "entrypoints": [
47
- "static/js/runtime-main.98d3ae5e.js",
48
- "static/js/5.1801bbc2.chunk.js",
49
- "static/css/main.1e6d8b38.chunk.css",
50
- "static/js/main.4f38042f.chunk.js"
41
+ "static/css/main.60c3637f.css",
42
+ "static/js/main.e590a187.js"
51
43
  ]
52
44
  }
package/build/index.html CHANGED
@@ -1 +1 @@
1
- <!doctype html><html lang="en"><head><meta charset="utf-8"/><meta name="description" content="Construct Hub helps developers find open-source construct libraries for use with AWS CDK, CDK8s, CDKTf and other construct-based tools."/><meta name="viewport" content="width=device-width,initial-scale=1"/><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="manifest" href="/manifest.json"><meta name="theme-color" content="#ffffff"><title>Construct Hub</title><script>var AWSMA={config:{customPageview:!0}}</script><script src="https://a0.awsstatic.com/s_code/js/3.0/awshome_s_code.js"></script><link href="/static/css/main.1e6d8b38.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script src="/static/js/runtime-main.98d3ae5e.js"></script><script src="/static/js/5.1801bbc2.chunk.js"></script><script src="/static/js/main.4f38042f.chunk.js"></script></body></html>
1
+ <!doctype html><html lang="en"><head><meta charset="utf-8"/><meta name="description" content="Construct Hub helps developers find open-source construct libraries for use with AWS CDK, CDK8s, CDKTf and other construct-based tools."/><meta name="viewport" content="width=device-width,initial-scale=1"/><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="manifest" href="/manifest.json"><meta name="theme-color" content="#ffffff"><title>Construct Hub</title><script>var AWSMA={config:{customPageview:!0}}</script><script src="https://a0.awsstatic.com/s_code/js/3.0/awshome_s_code.js"></script><script defer="defer" src="/static/js/main.e590a187.js"></script><link href="/static/css/main.60c3637f.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
@@ -0,0 +1,2 @@
1
+ html{overflow:hidden auto}body,html{height:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}
2
+ /*# sourceMappingURL=main.60c3637f.css.map*/
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/css/main.60c3637f.css","mappings":"AAAA,KAEE,oBACF,CAEA,UAJE,WAYF,CARA,KAME,kCAAmC,CACnC,iCAAkC,CAJlC,mIAEY,CAHZ,QAMF,CAEA,KACE,uEAEF","sources":["index.css"],"sourcesContent":["html {\n height: 100%;\n overflow: hidden auto;\n}\n\nbody {\n height: 100%;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Oxygen\",\n \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\",\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, \"Courier New\",\n monospace;\n}\n"],"names":[],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunkconstruct_hub_webapp=self.webpackChunkconstruct_hub_webapp||[]).push([[122],{10855:function(e,n,r){r.d(n,{Sx:function(){return p}});var o=r(63209),a=r(96134),t=r(72791),i=r(15866);a.jU?t.useLayoutEffect:t.useEffect;a.Ts;a.Ts;function u(e,n){if(null==e)return{};var r,o,a={},t=Object.keys(e);for(o=0;o<t.length;o++)r=t[o],n.indexOf(r)>=0||(a[r]=e[r]);return a}function l(){return l=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},l.apply(this,arguments)}function s(e){return Object.entries(e).sort((function(e,n){return Number.parseInt(e[1],10)>Number.parseInt(n[1],10)?1:-1})).map((function(e,n,r){var o=e[0],a=e[1],t=r[n+1],i=t?t[1]:void 0,u=function(e,n){if(!(parseInt(e,10)>=0)&&!n)return"";var r="(min-width: "+d(e)+")";if(!n)return r;r&&(r+=" and ");return r+="(max-width: "+d(function(e){return function(e,n){if("number"===typeof e)return""+(e+n);return e.replace(c,(function(e){return""+(parseFloat(e)+n)}))}(e,e.endsWith("px")?-1:-.01)}(n))+")"}(a,i);return{minWidth:a,maxWidth:i,breakpoint:o,query:u}}))}var c=/([0-9]+\.?[0-9]*)/;function d(e){return(0,a.hj)(e)?e+"px":e}var v=["query"],f=["query"];function p(e,n){var r=function(e){var n=(0,o.Fg)().breakpoints,r=(0,i.O)(),a=t.useMemo((function(){return s(l({base:"0px"},n))}),[n]),c=t.useState((function(){if(e){var n=a.find((function(n){return n.breakpoint===e}));if(n)return n.query,u(n,v)}})),d=c[0],p=c[1],h=null==d?void 0:d.breakpoint,m=t.useCallback((function(e,n){e.matches&&h!==n.breakpoint&&p(n)}),[h]);return t.useEffect((function(){var e=new Set;return a.forEach((function(n){var o=n.query,a=u(n,f),t=r.window.matchMedia(o);m(t,a);var i=function(){m(t,a)};return t.addListener(i),e.add({mediaQuery:t,handleChange:i}),function(){t.removeListener(i)}})),function(){e.forEach((function(e){var n=e.mediaQuery,r=e.handleChange;n.removeListener(r)})),e.clear()}}),[a,n,m,r.window]),h}(n),c=(0,o.Fg)();if(r){var d=Object.keys(c.breakpoints);return function(e,n,r){void 0===r&&(r=a.AV);var o=Object.keys(e).indexOf(n);if(-1!==o)return e[n];for(var t=r.indexOf(n);t>=0;){if(null!=e[r[t]]){o=t;break}t-=1}return-1!==o?e[r[o]]:void 0}((0,a.kJ)(e)?(0,a.sq)(Object.entries((0,a.Yq)(e,d)).map((function(e){return[e[0],e[1]]}))):e,r,d)}}},74817:function(e,n,r){r.d(n,{J2:function(){return x},QH:function(){return N},b:function(){return R},yk:function(){return E},xo:function(){return D}});r(3329);var o=r(63209),a=r(36198),t=r.n(a),i=r(96134),u=r(72791),l=r(29611),s=r(95456),c=r(65223),d=r(90565);function v(){return v=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},v.apply(this,arguments)}function f(e,n){if(null==e)return{};var r,o,a={},t=Object.keys(e);for(o=0;o<t.length;o++)r=t[o],n.indexOf(r)>=0||(a[r]=e[r]);return a}var p=(0,l.kr)({name:"PopoverContext",errorMessage:"usePopoverContext: `context` is undefined. Seems you forgot to wrap all popover components within `<Popover />`"}),h=p[0],m=p[1],b=function(e){if(e)return t()(e,{enter:{visibility:"visible"},exit:{transitionEnd:{visibility:"hidden"}}})},g=(0,s.E)(o.m$.section),y=u.forwardRef((function(e,n){var r=m().isOpen;return u.createElement(g,v({ref:n,variants:b(e.variants)},e,{initial:!1,animate:r?"enter":"exit"}))}));y.defaultProps={variants:{exit:{opacity:0,scale:.95,transition:{duration:.1,ease:[.4,0,1,1]}},enter:{scale:1,opacity:1,transition:{duration:.15,ease:[0,0,.2,1]}}}};var k=["closeOnBlur","closeOnEsc","initialFocusRef","id","returnFocusOnClose","autoFocus","arrowSize","arrowShadowColor","trigger","openDelay","closeDelay","isLazy","lazyBehavior","computePositionOnMount"],P="click",C="hover";var w=["children"],O=["rootProps"],x=function(e){var n=(0,o.jC)("Popover",e),r=(0,o.Lr)(e),a=r.children,t=function(e){void 0===e&&(e={});var n=e,r=n.closeOnBlur,o=void 0===r||r,a=n.closeOnEsc,t=void 0===a||a,s=n.initialFocusRef,p=n.id,h=n.returnFocusOnClose,m=void 0===h||h,b=n.autoFocus,g=void 0===b||b,y=n.arrowSize,w=n.arrowShadowColor,O=n.trigger,x=void 0===O?P:O,D=n.openDelay,E=void 0===D?200:D,_=n.closeDelay,R=void 0===_?200:_,N=n.isLazy,M=n.lazyBehavior,F=void 0===M?"unmount":M,S=n.computePositionOnMount,B=f(n,k),T=(0,c.qY)(e),j=T.isOpen,q=T.onClose,I=T.onOpen,L=T.onToggle,Z=(0,u.useRef)(null),z=(0,u.useRef)(null),K=(0,u.useRef)(null),A=(0,u.useRef)(!1),$=(0,u.useRef)(!1);j&&($.current=!0);var U=(0,u.useState)(!1),G=U[0],Y=U[1],H=(0,u.useState)(!1),Q=H[0],V=H[1],W=(0,c.ZS)(p,"popover-trigger","popover-content","popover-header","popover-body"),J=W[0],X=W[1],ee=W[2],ne=W[3],re=(0,d.D)(v({},B,{enabled:j||!!S})),oe=re.referenceRef,ae=re.getArrowProps,te=re.getPopperProps,ie=re.getArrowInnerProps,ue=re.forceUpdate;(0,c.s9)({enabled:j,ref:z}),(0,c.Ck)(K,{focusRef:z,visible:j,shouldFocus:m&&x===P}),(0,c.Gp)(K,{focusRef:s,visible:j,shouldFocus:g&&x===P});var le=(0,i.VI)({hasBeenSelected:$.current,isLazy:N,lazyBehavior:F,isSelected:j}),se=(0,u.useCallback)((function(e,n){var r;void 0===e&&(e={}),void 0===n&&(n=null);var a=v({},e,{style:v({},e.style,(r={transformOrigin:d.j.transformOrigin.varRef},r[d.j.arrowSize.var]=y?(0,i.px)(y):void 0,r[d.j.arrowShadowColor.var]=w,r)),ref:(0,l.lq)(K,n),children:le?e.children:null,id:X,tabIndex:-1,role:"dialog",onKeyDown:(0,i.v0)(e.onKeyDown,(function(e){t&&"Escape"===e.key&&q()})),onBlur:(0,i.v0)(e.onBlur,(function(e){var n=(0,i.wN)(e),r=(0,i.r3)(K.current,n),a=(0,i.r3)(z.current,n);j&&o&&!r&&!a&&q()})),"aria-labelledby":G?ee:void 0,"aria-describedby":Q?ne:void 0});return x===C&&(a.role="tooltip",a.onMouseEnter=(0,i.v0)(e.onMouseEnter,(function(){A.current=!0})),a.onMouseLeave=(0,i.v0)(e.onMouseLeave,(function(){A.current=!1,setTimeout(q,R)}))),a}),[le,X,G,ee,Q,ne,x,t,q,j,o,R,w,y]),ce=(0,u.useCallback)((function(e,n){return void 0===e&&(e={}),void 0===n&&(n=null),te(v({},e,{style:v({visibility:j?"visible":"hidden"},e.style)}),n)}),[j,te]),de=(0,u.useCallback)((function(e,n){return void 0===n&&(n=null),v({},e,{ref:(0,l.lq)(n,Z,oe)})}),[Z,oe]),ve=(0,u.useRef)(),fe=(0,u.useRef)(),pe=(0,u.useCallback)((function(e){null==Z.current&&oe(e)}),[oe]),he=(0,u.useCallback)((function(e,n){void 0===e&&(e={}),void 0===n&&(n=null);var r=v({},e,{ref:(0,l.lq)(z,n,pe),id:J,"aria-haspopup":"dialog","aria-expanded":j,"aria-controls":X});return x===P&&(r.onClick=(0,i.v0)(e.onClick,L)),x===C&&(r.onFocus=(0,i.v0)(e.onFocus,I),r.onBlur=(0,i.v0)(e.onBlur,(function(e){var n=(0,i.wN)(e),r=!(0,i.r3)(K.current,n);j&&o&&r&&q()})),r.onKeyDown=(0,i.v0)(e.onKeyDown,(function(e){"Escape"===e.key&&q()})),r.onMouseEnter=(0,i.v0)(e.onMouseEnter,(function(){A.current=!0,ve.current=window.setTimeout(I,E)})),r.onMouseLeave=(0,i.v0)(e.onMouseLeave,(function(){A.current=!1,ve.current&&(clearTimeout(ve.current),ve.current=void 0),fe.current=window.setTimeout((function(){!1===A.current&&q()}),R)}))),r}),[J,j,X,x,pe,L,I,o,q,E,R]);(0,u.useEffect)((function(){return function(){ve.current&&clearTimeout(ve.current),fe.current&&clearTimeout(fe.current)}}),[]);var me=(0,u.useCallback)((function(e,n){return void 0===e&&(e={}),void 0===n&&(n=null),v({},e,{id:ee,ref:(0,l.lq)(n,(function(e){Y(!!e)}))})}),[ee]),be=(0,u.useCallback)((function(e,n){return void 0===e&&(e={}),void 0===n&&(n=null),v({},e,{id:ne,ref:(0,l.lq)(n,(function(e){V(!!e)}))})}),[ne]);return{forceUpdate:ue,isOpen:j,onClose:q,getAnchorProps:de,getArrowProps:ae,getArrowInnerProps:ie,getPopoverPositionerProps:ce,getPopoverProps:se,getTriggerProps:he,getHeaderProps:me,getBodyProps:be}}(v({},f(r,w),{direction:(0,o.Fg)().direction}));return u.createElement(h,{value:t},u.createElement(o.Fo,{value:n},(0,i.Pu)(a,{isOpen:t.isOpen,onClose:t.onClose,forceUpdate:t.forceUpdate})))};i.Ts&&(x.displayName="Popover");i.Ts;var D=function(e){var n=u.Children.only(e.children),r=m().getTriggerProps;return u.cloneElement(n,r(n.props,n.ref))};i.Ts&&(D.displayName="PopoverTrigger");var E=(0,o.Gp)((function(e,n){var r=e.rootProps,a=f(e,O),t=m(),l=t.getPopoverProps,s=t.getPopoverPositionerProps,c=(0,o.yK)(),d=v({position:"relative",display:"flex",flexDirection:"column"},c.content);return u.createElement(o.m$.div,v({},s(r),{__css:c.popper,className:"chakra-popover__popper"}),u.createElement(y,v({},l(a,n),{className:(0,i.cx)("chakra-popover__content",e.className),__css:d})))}));i.Ts&&(E.displayName="PopoverContent");var _=(0,o.Gp)((function(e,n){var r=m().getHeaderProps,a=(0,o.yK)();return u.createElement(o.m$.header,v({},r(e,n),{className:(0,i.cx)("chakra-popover__header",e.className),__css:a.header}))}));i.Ts&&(_.displayName="PopoverHeader");var R=(0,o.Gp)((function(e,n){var r=m().getBodyProps,a=(0,o.yK)();return u.createElement(o.m$.div,v({},r(e,n),{className:(0,i.cx)("chakra-popover__body",e.className),__css:a.body}))}));i.Ts&&(R.displayName="PopoverBody");i.Ts;i.Ts;var N=function(e){var n,r=e.bg,a=e.bgColor,t=e.backgroundColor,l=m(),s=l.getArrowProps,c=l.getArrowInnerProps,d=(0,o.yK)(),f=null!=(n=null!=r?r:a)?n:t;return u.createElement(o.m$.div,v({},s(),{className:"chakra-popover__arrow-positioner"}),u.createElement(o.m$.div,v({className:(0,i.cx)("chakra-popover__arrow",e.className)},c(e),{__css:v({},d.arrow,{"--popper-arrow-bg":f?"colors."+f+", "+f:void 0})})))};i.Ts&&(N.displayName="PopoverArrow")},3445:function(e,n,r){r.d(n,{Y8:function(){return C},Ee:function(){return g}});var o=r(63209),a=r(97160),t=r(96134),i=r(72791),u=r(29611),l=r(65223),s=r(93393),c=r(11212);function d(e,n){if(null==e)return{};var r,o,a={},t=Object.keys(e);for(o=0;o<t.length;o++)r=t[o],n.indexOf(r)>=0||(a[r]=e[r]);return a}function v(){return v=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&(e[o]=r[o])}return e},v.apply(this,arguments)}var f=["onChange","value","defaultValue","name","isDisabled","isFocusable","isNative"];var p=["colorScheme","size","variant","children","className","isDisabled","isFocusable"],h=(0,u.kr)({name:"RadioGroupContext",strict:!1}),m=h[0],b=h[1],g=(0,o.Gp)((function(e,n){var r=e.colorScheme,a=e.size,s=e.variant,c=e.children,h=e.className,b=e.isDisabled,g=e.isFocusable,y=function(e){void 0===e&&(e={});var n=e,r=n.onChange,o=n.value,a=n.defaultValue,s=n.name,c=n.isDisabled,p=n.isFocusable,h=n.isNative,m=d(n,f),b=i.useState(a||""),g=b[0],y=b[1],k=(0,l.pY)(o,g),P=k[0],C=k[1],w=i.useRef(null),O=i.useCallback((function(){var e=w.current;if(e){var n="input:not(:disabled):checked",r=e.querySelector(n);if(r)r.focus();else{n="input:not(:disabled)";var o=e.querySelector(n);null==o||o.focus()}}}),[]),x=(0,l.Me)(void 0,"radio"),D=s||x,E=i.useCallback((function(e){var n=(0,t.kA)(e)?e.target.value:e;P||y(n),null==r||r(String(n))}),[r,P]),_=i.useCallback((function(e,n){return void 0===e&&(e={}),void 0===n&&(n=null),v({},e,{ref:(0,u.lq)(n,w),role:"radiogroup"})}),[]),R=i.useCallback((function(e,n){var r;return void 0===e&&(e={}),void 0===n&&(n=null),v({},e,((r={ref:n,name:D})[h?"checked":"isChecked"]=null!=C?e.value===C:void 0,r.onChange=E,r["data-radiogroup"]=!0,r))}),[h,D,E,C]);return{getRootProps:_,getRadioProps:R,name:D,ref:w,focus:O,setValue:y,value:C,onChange:E,isDisabled:c,isFocusable:p,htmlProps:m}}(d(e,p)),k=y.value,P=y.onChange,C=y.getRootProps,w=y.name,O=y.htmlProps,x=i.useMemo((function(){return{name:w,size:a,onChange:P,colorScheme:r,value:k,variant:s,isDisabled:b,isFocusable:g}}),[w,a,P,r,k,s,b,g]),D=C(O,n),E=(0,t.cx)("chakra-radio-group",h);return i.createElement(m,{value:x},i.createElement(o.m$.div,v({},D,{className:E}),c))}));t.Ts&&(g.displayName="RadioGroup");var y=["defaultIsChecked","defaultChecked","isChecked","isFocusable","isDisabled","isReadOnly","isRequired","onChange","isInvalid","name","value","id","data-radiogroup"];function k(e){e.preventDefault(),e.stopPropagation()}var P=["spacing","children","isFullWidth","isDisabled","isFocusable"],C=(0,o.Gp)((function(e,n){var r,u=b(),f=e.onChange,p=e.value,h=(0,o.jC)("Radio",v({},u,e)),m=(0,o.Lr)(e),g=m.spacing,C=void 0===g?"0.5rem":g,w=m.children,O=m.isFullWidth,x=m.isDisabled,D=void 0===x?null==u?void 0:u.isDisabled:x,E=m.isFocusable,_=void 0===E?null==u?void 0:u.isFocusable:E,R=d(m,P),N=e.isChecked;null!=(null==u?void 0:u.value)&&null!=p&&(N=u.value===p);var M=f;null!=u&&u.onChange&&null!=p&&(M=(0,t.PP)(u.onChange,f));var F=function(e){void 0===e&&(e={});var n=e,r=n.defaultIsChecked,o=n.defaultChecked,a=void 0===o?r:o,u=n.isChecked,f=n.isFocusable,p=n.isDisabled,h=n.isReadOnly,m=n.isRequired,g=n.onChange,P=n.isInvalid,C=n.name,w=n.value,O=n.id,x=n["data-radiogroup"],D=d(n,y),E=(0,l.Me)(void 0,"radio"),_=(0,s.NJ)(),R=b(),N=!_||R||x?E:_.id;N=null!=O?O:N;var M=null!=p?p:null==_?void 0:_.isDisabled,F=null!=h?h:null==_?void 0:_.isReadOnly,S=null!=m?m:null==_?void 0:_.isRequired,B=null!=P?P:null==_?void 0:_.isInvalid,T=(0,l.kt)(),j=T[0],q=T[1],I=(0,l.kt)(),L=I[0],Z=I[1],z=(0,l.kt)(),K=z[0],A=z[1],$=(0,i.useState)(Boolean(a)),U=$[0],G=$[1],Y=(0,l.pY)(u,U),H=Y[0],Q=Y[1];(0,t.ZK)({condition:!!r,message:'The "defaultIsChecked" prop has been deprecated and will be removed in a future version. Please use the "defaultChecked" prop instead, which mirrors default React checkbox behavior.'});var V=(0,i.useCallback)((function(e){F||M?e.preventDefault():(H||G(e.target.checked),null==g||g(e))}),[H,M,F,g]),W=(0,i.useCallback)((function(e){" "===e.key&&A.on()}),[A]),J=(0,i.useCallback)((function(e){" "===e.key&&A.off()}),[A]),X=(0,i.useCallback)((function(e,n){return void 0===e&&(e={}),void 0===n&&(n=null),v({},e,{ref:n,"data-active":(0,t.PB)(K),"data-hover":(0,t.PB)(L),"data-disabled":(0,t.PB)(M),"data-invalid":(0,t.PB)(B),"data-checked":(0,t.PB)(Q),"data-focus":(0,t.PB)(j),"data-readonly":(0,t.PB)(F),"aria-hidden":!0,onMouseDown:(0,t.v0)(e.onMouseDown,A.on),onMouseUp:(0,t.v0)(e.onMouseUp,A.off),onMouseEnter:(0,t.v0)(e.onMouseEnter,Z.on),onMouseLeave:(0,t.v0)(e.onMouseLeave,Z.off)})}),[K,L,M,B,Q,j,F,A.on,A.off,Z.on,Z.off]),ee=null!=_?_:{},ne=ee.onFocus,re=ee.onBlur,oe=(0,i.useCallback)((function(e,n){void 0===e&&(e={}),void 0===n&&(n=null);var r=M&&!f;return v({},e,{id:N,ref:n,type:"radio",name:C,value:w,onChange:(0,t.v0)(e.onChange,V),onBlur:(0,t.v0)(re,e.onBlur,q.off),onFocus:(0,t.v0)(ne,e.onFocus,q.on),onKeyDown:(0,t.v0)(e.onKeyDown,W),onKeyUp:(0,t.v0)(e.onKeyUp,J),checked:Q,disabled:r,readOnly:F,required:S,"aria-invalid":(0,t.Qm)(B),"aria-disabled":(0,t.Qm)(r),"aria-required":(0,t.Qm)(S),"data-readonly":(0,t.PB)(F),style:c.NL})}),[M,f,N,C,w,V,re,q,ne,W,J,Q,F,S,B]);return{state:{isInvalid:B,isFocused:j,isChecked:Q,isActive:K,isHovered:L,isDisabled:M,isReadOnly:F,isRequired:S},getCheckboxProps:X,getInputProps:oe,getLabelProps:function(e,n){return void 0===e&&(e={}),void 0===n&&(n=null),v({},e,{ref:n,onMouseDown:(0,t.v0)(e.onMouseDown,k),onTouchStart:(0,t.v0)(e.onTouchStart,k),"data-disabled":(0,t.PB)(M),"data-checked":(0,t.PB)(Q),"data-invalid":(0,t.PB)(B)})},getRootProps:function(e,n){return void 0===n&&(n=null),v({},e,{ref:n,"data-disabled":(0,t.PB)(M),"data-checked":(0,t.PB)(Q),"data-invalid":(0,t.PB)(B)})},htmlProps:D}}(v({},R,{isChecked:N,isFocusable:_,isDisabled:D,onChange:M,name:null!=(r=null==e?void 0:e.name)?r:null==u?void 0:u.name})),S=F.getInputProps,B=F.getCheckboxProps,T=F.getLabelProps,j=F.getRootProps,q=F.htmlProps,I=(0,t.Vl)(q,a.oE),L=I[0],Z=B(I[1]),z=S({},n),K=T(),A=Object.assign({},L,j()),$=v({width:O?"full":void 0,display:"inline-flex",alignItems:"center",verticalAlign:"top",cursor:"pointer"},h.container),U=v({display:"inline-flex",alignItems:"center",justifyContent:"center",flexShrink:0},h.control),G=v({userSelect:"none",marginStart:C},h.label);return i.createElement(o.m$.label,v({className:"chakra-radio"},A,{__css:$}),i.createElement("input",v({className:"chakra-radio__input"},z)),i.createElement(o.m$.span,v({className:"chakra-radio__control"},Z,{__css:U})),w&&i.createElement(o.m$.span,v({className:"chakra-radio__label"},K,{__css:G}),w))}));t.Ts&&(C.displayName="Radio")},11853:function(e,n,r){r.d(n,{Z:function(){return p}});var o=r(4697),a=r(38527),t=r(4522);function i(e,n){(0,t.Z)(2,arguments);var r=(0,a.Z)(e),o=(0,a.Z)(n),i=r.getTime()-o.getTime();return i<0?-1:i>0?1:i}function u(e){return function(e,n){if(null==e)throw new TypeError("assign requires that input parameter not be null or undefined");for(var r in n=n||{})Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r]);return e}({},e)}var l=r(56704),s=6e4,c=1440,d=43200,v=525600;function f(e,n){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};(0,t.Z)(2,arguments);var f=r.locale||l.Z;if(!f.formatDistance)throw new RangeError("locale must contain localize.formatDistance property");var p=i(e,n);if(isNaN(p))throw new RangeError("Invalid time value");var h,m,b=u(r);b.addSuffix=Boolean(r.addSuffix),b.comparison=p,p>0?(h=(0,a.Z)(n),m=(0,a.Z)(e)):(h=(0,a.Z)(e),m=(0,a.Z)(n));var g,y=null==r.roundingMethod?"round":String(r.roundingMethod);if("floor"===y)g=Math.floor;else if("ceil"===y)g=Math.ceil;else{if("round"!==y)throw new RangeError("roundingMethod must be 'floor', 'ceil' or 'round'");g=Math.round}var k,P=m.getTime()-h.getTime(),C=P/s,w=(0,o.Z)(m)-(0,o.Z)(h),O=(P-w)/s;if("second"===(k=null==r.unit?C<1?"second":C<60?"minute":C<c?"hour":O<d?"day":O<v?"month":"year":String(r.unit))){var x=g(P/1e3);return f.formatDistance("xSeconds",x,b)}if("minute"===k){var D=g(C);return f.formatDistance("xMinutes",D,b)}if("hour"===k){var E=g(C/60);return f.formatDistance("xHours",E,b)}if("day"===k){var _=g(O/c);return f.formatDistance("xDays",_,b)}if("month"===k){var R=g(O/d);return 12===R&&"month"!==r.unit?f.formatDistance("xYears",1,b):f.formatDistance("xMonths",R,b)}if("year"===k){var N=g(O/v);return f.formatDistance("xYears",N,b)}throw new RangeError("unit must be 'second', 'minute', 'hour', 'day', 'month' or 'year'")}function p(e,n){return(0,t.Z)(1,arguments),f(e,Date.now(),n)}}}]);
2
+ //# sourceMappingURL=122.ae446a89.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/js/122.ae446a89.chunk.js","mappings":"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","sources":["../node_modules/@chakra-ui/media-query/dist/chakra-ui-media-query.esm.js","../node_modules/@chakra-ui/popover/dist/chakra-ui-popover.esm.js","../node_modules/@chakra-ui/radio/dist/chakra-ui-radio.esm.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"],"sourcesContent":["import { useTheme } from '@chakra-ui/system';\nimport { isBrowser, __DEV__, memoizedGet, isNumber, breakpoints, isArray, fromEntries, arrayToObjectNotation } from '@chakra-ui/utils';\nimport * as React from 'react';\nimport React__default from 'react';\nimport { useEnvironment } from '@chakra-ui/react-env';\n\nvar useSafeLayoutEffect = isBrowser ? React.useLayoutEffect : React.useEffect;\n/**\n * React hook that tracks state of a CSS media query\n *\n * @param query the media query to match\n */\n\nfunction useMediaQuery(query) {\n var env = useEnvironment();\n var queries = Array.isArray(query) ? query : [query];\n var isSupported = isBrowser && \"matchMedia\" in env.window;\n\n var _React$useState = React.useState(queries.map(function (query) {\n return isSupported ? !!env.window.matchMedia(query).matches : false;\n })),\n matches = _React$useState[0],\n setMatches = _React$useState[1]; // Specifying matches in the dependency list will cause the event listeners\n // to unload and then load each time the dependency changes. This causes\n // Media Query Events to be missed. The event listeners should only be unloaded\n // when the component unloads.\n\n\n useSafeLayoutEffect(function () {\n if (!isSupported) return undefined;\n var mediaQueryList = queries.map(function (query) {\n return env.window.matchMedia(query);\n });\n var listenerList = mediaQueryList.map(function (_, index) {\n var listener = function listener(mqlEvent) {\n var queryIndex = mediaQueryList.findIndex(function (mediaQuery) {\n return mediaQuery.media === mqlEvent.media;\n }); // As the event listener is on the media query list, any time the\n // listener is called, we know there is a change. There's no need\n // to compare the previous matches with current. Using\n // setMatches(matches => {...}) provides access to the current matches\n // state. Trying to access matches outside the setMatches function\n // would provide data from the the time of instantiation (stale).\n\n setMatches(function (matches) {\n var currentMatches = matches.map(function (x) {\n return x;\n });\n currentMatches[queryIndex] = mqlEvent.matches;\n return currentMatches;\n });\n }; // Listening to the 'change' event on the Media Query List Object\n // is more performant as the callback is only invoked when a specified\n // media query is matched. Using addEventListener on the window object\n // to listen for the resize event will call the callback on every\n // viewport resize.\n\n\n mediaQueryList[index].addEventListener(\"change\", listener);\n return listener;\n });\n return function () {\n mediaQueryList.forEach(function (_, index) {\n mediaQueryList[index].removeEventListener(\"change\", listenerList[index]);\n });\n };\n }, []);\n return matches;\n}\n\n/**\n * Visibility\n *\n * React component to control the visibility of its\n * children based on the current breakpoint\n */\nvar Visibility = function Visibility(props) {\n var breakpoint = props.breakpoint,\n hide = props.hide,\n children = props.children;\n\n var _useMediaQuery = useMediaQuery(breakpoint),\n show = _useMediaQuery[0];\n\n var isVisible = hide ? !show : show;\n var rendered = isVisible ? children : null;\n return rendered;\n};\n\nvar Hide = function Hide(props) {\n var children = props.children;\n var query = useQuery(props);\n return /*#__PURE__*/React.createElement(Visibility, {\n breakpoint: query,\n hide: true\n }, children);\n};\n\nif (__DEV__) {\n Hide.displayName = \"Hide\";\n}\n\nvar Show = function Show(props) {\n var children = props.children;\n var query = useQuery(props);\n return /*#__PURE__*/React.createElement(Visibility, {\n breakpoint: query\n }, children);\n};\n\nif (__DEV__) {\n Show.displayName = \"Show\";\n}\n\nvar getBreakpoint = function getBreakpoint(theme, value) {\n return memoizedGet(theme, \"breakpoints.\" + value, value);\n};\n\nfunction useQuery(props) {\n var _props$breakpoint = props.breakpoint,\n breakpoint = _props$breakpoint === void 0 ? \"\" : _props$breakpoint,\n below = props.below,\n above = props.above;\n var theme = useTheme();\n var bpBelow = getBreakpoint(theme, below);\n var bpAbove = getBreakpoint(theme, above);\n var query = breakpoint;\n\n if (bpBelow) {\n query = \"(max-width: \" + bpBelow + \")\";\n } else if (bpAbove) {\n query = \"(min-width: \" + bpAbove + \")\";\n }\n\n return query;\n}\n\n/**\n * React hook used to get the user's animation preference.\n */\n\nfunction usePrefersReducedMotion() {\n var _useMediaQuery = useMediaQuery(\"(prefers-reduced-motion: reduce)\"),\n prefersReducedMotion = _useMediaQuery[0];\n\n return prefersReducedMotion;\n}\n/**\n * React hook for getting the user's color mode preference.\n */\n\nfunction useColorModePreference() {\n var _useMediaQuery2 = useMediaQuery([\"(prefers-color-scheme: light)\", \"(prefers-color-scheme: dark)\"]),\n isLight = _useMediaQuery2[0],\n isDark = _useMediaQuery2[1];\n\n if (isLight) return \"light\";\n if (isDark) return \"dark\";\n return undefined;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction createMediaQueries(breakpoints) {\n return Object.entries(breakpoints) // sort css units in ascending order to ensure media queries are generated\n // in the correct order and reference to each other correctly aswell\n .sort(function (a, b) {\n return Number.parseInt(a[1], 10) > Number.parseInt(b[1], 10) ? 1 : -1;\n }).map(function (_ref, index, arr) {\n var breakpoint = _ref[0],\n minWidth = _ref[1];\n // given a following breakpoint\n var next = arr[index + 1]; // this breakpoint must end prior the threshold of the next\n\n var maxWidth = next ? next[1] : undefined;\n var query = createMediaQueryString(minWidth, maxWidth);\n return {\n minWidth: minWidth,\n maxWidth: maxWidth,\n breakpoint: breakpoint,\n query: query\n };\n });\n}\n/**\n * Create a media query string from the breakpoints,\n * using a combination of `min-width` and `max-width`.\n */\n\nfunction createMediaQueryString(minWidth, maxWidth) {\n var hasMinWidth = parseInt(minWidth, 10) >= 0;\n\n if (!hasMinWidth && !maxWidth) {\n return \"\";\n }\n\n var query = \"(min-width: \" + toMediaString(minWidth) + \")\";\n\n if (!maxWidth) {\n return query;\n }\n\n if (query) {\n query += \" and \";\n }\n\n query += \"(max-width: \" + toMediaString(subtract(maxWidth)) + \")\";\n return query;\n}\n\nvar measurementRegex = /([0-9]+\\.?[0-9]*)/;\n\nvar calculateMeasurement = function calculateMeasurement(value, modifier) {\n if (typeof value === \"number\") {\n return \"\" + (value + modifier);\n }\n\n return value.replace(measurementRegex, function (match) {\n return \"\" + (parseFloat(match) + modifier);\n });\n};\n/**\n * 0.01 and 0.1 are too small of a difference for `px` breakpoint values\n *\n * @see https://github.com/chakra-ui/chakra-ui/issues/2188#issuecomment-712774785\n */\n\n\nfunction subtract(value) {\n return calculateMeasurement(value, value.endsWith(\"px\") ? -1 : -0.01);\n}\n/**\n * Convert media query value to string\n */\n\n\nfunction toMediaString(value) {\n return isNumber(value) ? value + \"px\" : value;\n}\n\nvar _excluded = [\"query\"],\n _excluded2 = [\"query\"];\n\n/**\n * React hook used to get the current responsive media breakpoint.\n *\n * @param defaultBreakpoint default breakpoint name\n * (in non-window environments like SSR)\n *\n * For SSR, you can use a package like [is-mobile](https://github.com/kaimallea/isMobile)\n * to get the default breakpoint value from the user-agent\n */\nfunction useBreakpoint(defaultBreakpoint) {\n var _useTheme = useTheme(),\n breakpoints = _useTheme.breakpoints;\n\n var env = useEnvironment();\n var mediaQueries = React__default.useMemo(function () {\n return createMediaQueries(_extends({\n base: \"0px\"\n }, breakpoints));\n }, [breakpoints]);\n\n var _React$useState = React__default.useState(function () {\n if (!defaultBreakpoint) {\n return undefined;\n }\n\n var mediaQuery = mediaQueries.find(function (_ref) {\n var breakpoint = _ref.breakpoint;\n return breakpoint === defaultBreakpoint;\n });\n\n if (mediaQuery) {\n mediaQuery.query;\n var breakpoint = _objectWithoutPropertiesLoose(mediaQuery, _excluded);\n\n return breakpoint;\n }\n\n return undefined;\n }),\n currentBreakpoint = _React$useState[0],\n setCurrentBreakpoint = _React$useState[1];\n\n var current = currentBreakpoint == null ? void 0 : currentBreakpoint.breakpoint;\n var update = React__default.useCallback(function (query, breakpoint) {\n if (query.matches && current !== breakpoint.breakpoint) {\n setCurrentBreakpoint(breakpoint);\n }\n }, [current]);\n React__default.useEffect(function () {\n var listeners = new Set();\n mediaQueries.forEach(function (_ref2) {\n var query = _ref2.query,\n breakpoint = _objectWithoutPropertiesLoose(_ref2, _excluded2);\n\n var mediaQuery = env.window.matchMedia(query); // trigger an initial update to determine media query\n\n update(mediaQuery, breakpoint);\n\n var handleChange = function handleChange() {\n update(mediaQuery, breakpoint);\n }; // add media query-listener\n\n\n mediaQuery.addListener(handleChange); // push the media query list handleChange\n // so we can use it to remove Listener\n\n listeners.add({\n mediaQuery: mediaQuery,\n handleChange: handleChange\n });\n return function () {\n // clean up 1\n mediaQuery.removeListener(handleChange);\n };\n });\n return function () {\n // clean up 2: for safety\n listeners.forEach(function (_ref3) {\n var mediaQuery = _ref3.mediaQuery,\n handleChange = _ref3.handleChange;\n mediaQuery.removeListener(handleChange);\n });\n listeners.clear();\n };\n }, [mediaQueries, breakpoints, update, env.window]);\n return current;\n}\n\nfunction getClosestValue(values, breakpoint, breakpoints$1) {\n if (breakpoints$1 === void 0) {\n breakpoints$1 = breakpoints;\n }\n\n var index = Object.keys(values).indexOf(breakpoint);\n\n if (index !== -1) {\n return values[breakpoint];\n }\n\n var stopIndex = breakpoints$1.indexOf(breakpoint);\n\n while (stopIndex >= 0) {\n var key = breakpoints$1[stopIndex];\n\n if (values[key] != null) {\n index = stopIndex;\n break;\n }\n\n stopIndex -= 1;\n }\n\n if (index !== -1) {\n var _key = breakpoints$1[index];\n return values[_key];\n }\n\n return undefined;\n}\n\n/**\n * React hook for getting the value for the current breakpoint from the\n * provided responsive values object.\n *\n * @param values\n * @param defaultBreakpoint default breakpoint name\n * (in non-window environments like SSR)\n *\n * For SSR, you can use a package like [is-mobile](https://github.com/kaimallea/isMobile)\n * to get the default breakpoint value from the user-agent\n *\n * @example\n * const width = useBreakpointValue({ base: '150px', md: '250px' })\n */\n\nfunction useBreakpointValue(values, defaultBreakpoint) {\n var breakpoint = useBreakpoint(defaultBreakpoint);\n var theme = useTheme();\n if (!breakpoint) return undefined;\n /**\n * Get the non-number breakpoint keys from the provided breakpoints\n */\n\n var breakpoints = Object.keys(theme.breakpoints);\n var obj = isArray(values) ? fromEntries(Object.entries(arrayToObjectNotation(values, breakpoints)).map(function (_ref) {\n var key = _ref[0],\n value = _ref[1];\n return [key, value];\n })) : values;\n return getClosestValue(obj, breakpoint, breakpoints);\n}\n\nexport { Hide, Show, useBreakpoint, useBreakpointValue, useColorModePreference, useMediaQuery, usePrefersReducedMotion, useQuery };\n","import { CloseButton } from '@chakra-ui/close-button';\nimport { chakra, useMultiStyleConfig, omitThemingProps, useTheme, StylesProvider, forwardRef, useStyles } from '@chakra-ui/system';\nimport { mergeWith, determineLazyBehavior, px, callAllHandlers, getRelatedTarget, contains, runIfFn, __DEV__, cx } from '@chakra-ui/utils';\nimport * as React from 'react';\nimport React__default, { useRef, useState, useCallback, useEffect } from 'react';\nimport { createContext, mergeRefs } from '@chakra-ui/react-utils';\nimport { motion } from 'framer-motion';\nimport { useDisclosure, useIds, useFocusOnPointerDown, useFocusOnHide, useFocusOnShow } from '@chakra-ui/hooks';\nimport { usePopper, popperCSSVars } from '@chakra-ui/popper';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar _createContext = createContext({\n name: \"PopoverContext\",\n errorMessage: \"usePopoverContext: `context` is undefined. Seems you forgot to wrap all popover components within `<Popover />`\"\n}),\n PopoverProvider = _createContext[0],\n usePopoverContext = _createContext[1];\n\nvar mergeVariants = function mergeVariants(variants) {\n if (!variants) return;\n return mergeWith(variants, {\n enter: {\n visibility: \"visible\"\n },\n exit: {\n transitionEnd: {\n visibility: \"hidden\"\n }\n }\n });\n};\n\nvar scaleFade = {\n exit: {\n opacity: 0,\n scale: 0.95,\n transition: {\n duration: 0.1,\n ease: [0.4, 0, 1, 1]\n }\n },\n enter: {\n scale: 1,\n opacity: 1,\n transition: {\n duration: 0.15,\n ease: [0, 0, 0.2, 1]\n }\n }\n};\nvar Section = motion(chakra.section);\nvar PopoverTransition = /*#__PURE__*/React__default.forwardRef(function (props, ref) {\n var _usePopoverContext = usePopoverContext(),\n isOpen = _usePopoverContext.isOpen;\n\n return /*#__PURE__*/React__default.createElement(Section, _extends({\n ref: ref,\n variants: mergeVariants(props.variants)\n }, props, {\n initial: false,\n animate: isOpen ? \"enter\" : \"exit\"\n }));\n});\nPopoverTransition.defaultProps = {\n variants: scaleFade\n};\n\nvar _excluded$1 = [\"closeOnBlur\", \"closeOnEsc\", \"initialFocusRef\", \"id\", \"returnFocusOnClose\", \"autoFocus\", \"arrowSize\", \"arrowShadowColor\", \"trigger\", \"openDelay\", \"closeDelay\", \"isLazy\", \"lazyBehavior\", \"computePositionOnMount\"];\nvar TRIGGER = {\n click: \"click\",\n hover: \"hover\"\n};\n\n/**\n * @internal\n */\nfunction usePopover(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n _props$closeOnBlur = _props.closeOnBlur,\n closeOnBlur = _props$closeOnBlur === void 0 ? true : _props$closeOnBlur,\n _props$closeOnEsc = _props.closeOnEsc,\n closeOnEsc = _props$closeOnEsc === void 0 ? true : _props$closeOnEsc,\n initialFocusRef = _props.initialFocusRef,\n id = _props.id,\n _props$returnFocusOnC = _props.returnFocusOnClose,\n returnFocusOnClose = _props$returnFocusOnC === void 0 ? true : _props$returnFocusOnC,\n _props$autoFocus = _props.autoFocus,\n autoFocus = _props$autoFocus === void 0 ? true : _props$autoFocus,\n arrowSize = _props.arrowSize,\n arrowShadowColor = _props.arrowShadowColor,\n _props$trigger = _props.trigger,\n trigger = _props$trigger === void 0 ? TRIGGER.click : _props$trigger,\n _props$openDelay = _props.openDelay,\n openDelay = _props$openDelay === void 0 ? 200 : _props$openDelay,\n _props$closeDelay = _props.closeDelay,\n closeDelay = _props$closeDelay === void 0 ? 200 : _props$closeDelay,\n isLazy = _props.isLazy,\n _props$lazyBehavior = _props.lazyBehavior,\n lazyBehavior = _props$lazyBehavior === void 0 ? \"unmount\" : _props$lazyBehavior,\n computePositionOnMount = _props.computePositionOnMount,\n popperProps = _objectWithoutPropertiesLoose(_props, _excluded$1);\n\n var _useDisclosure = useDisclosure(props),\n isOpen = _useDisclosure.isOpen,\n onClose = _useDisclosure.onClose,\n onOpen = _useDisclosure.onOpen,\n onToggle = _useDisclosure.onToggle;\n\n var anchorRef = useRef(null);\n var triggerRef = useRef(null);\n var popoverRef = useRef(null);\n var isHoveringRef = useRef(false);\n var hasBeenOpened = useRef(false);\n\n if (isOpen) {\n hasBeenOpened.current = true;\n }\n\n var _useState = useState(false),\n hasHeader = _useState[0],\n setHasHeader = _useState[1];\n\n var _useState2 = useState(false),\n hasBody = _useState2[0],\n setHasBody = _useState2[1];\n\n var _useIds = useIds(id, \"popover-trigger\", \"popover-content\", \"popover-header\", \"popover-body\"),\n triggerId = _useIds[0],\n popoverId = _useIds[1],\n headerId = _useIds[2],\n bodyId = _useIds[3];\n\n var _usePopper = usePopper(_extends({}, popperProps, {\n enabled: isOpen || !!computePositionOnMount\n })),\n referenceRef = _usePopper.referenceRef,\n getArrowProps = _usePopper.getArrowProps,\n getPopperProps = _usePopper.getPopperProps,\n getArrowInnerProps = _usePopper.getArrowInnerProps,\n forceUpdate = _usePopper.forceUpdate;\n\n useFocusOnPointerDown({\n enabled: isOpen,\n ref: triggerRef\n });\n useFocusOnHide(popoverRef, {\n focusRef: triggerRef,\n visible: isOpen,\n shouldFocus: returnFocusOnClose && trigger === TRIGGER.click\n });\n useFocusOnShow(popoverRef, {\n focusRef: initialFocusRef,\n visible: isOpen,\n shouldFocus: autoFocus && trigger === TRIGGER.click\n });\n var shouldRenderChildren = determineLazyBehavior({\n hasBeenSelected: hasBeenOpened.current,\n isLazy: isLazy,\n lazyBehavior: lazyBehavior,\n isSelected: isOpen\n });\n var getPopoverProps = useCallback(function (props, _ref) {\n var _extends2;\n\n if (props === void 0) {\n props = {};\n }\n\n if (_ref === void 0) {\n _ref = null;\n }\n\n var popoverProps = _extends({}, props, {\n style: _extends({}, props.style, (_extends2 = {\n transformOrigin: popperCSSVars.transformOrigin.varRef\n }, _extends2[popperCSSVars.arrowSize[\"var\"]] = arrowSize ? px(arrowSize) : undefined, _extends2[popperCSSVars.arrowShadowColor[\"var\"]] = arrowShadowColor, _extends2)),\n ref: mergeRefs(popoverRef, _ref),\n children: shouldRenderChildren ? props.children : null,\n id: popoverId,\n tabIndex: -1,\n role: \"dialog\",\n onKeyDown: callAllHandlers(props.onKeyDown, function (event) {\n if (closeOnEsc && event.key === \"Escape\") {\n onClose();\n }\n }),\n onBlur: callAllHandlers(props.onBlur, function (event) {\n var relatedTarget = getRelatedTarget(event);\n var targetIsPopover = contains(popoverRef.current, relatedTarget);\n var targetIsTrigger = contains(triggerRef.current, relatedTarget);\n var isValidBlur = !targetIsPopover && !targetIsTrigger;\n\n if (isOpen && closeOnBlur && isValidBlur) {\n onClose();\n }\n }),\n \"aria-labelledby\": hasHeader ? headerId : undefined,\n \"aria-describedby\": hasBody ? bodyId : undefined\n });\n\n if (trigger === TRIGGER.hover) {\n popoverProps.role = \"tooltip\";\n popoverProps.onMouseEnter = callAllHandlers(props.onMouseEnter, function () {\n isHoveringRef.current = true;\n });\n popoverProps.onMouseLeave = callAllHandlers(props.onMouseLeave, function () {\n isHoveringRef.current = false;\n setTimeout(onClose, closeDelay);\n });\n }\n\n return popoverProps;\n }, [shouldRenderChildren, popoverId, hasHeader, headerId, hasBody, bodyId, trigger, closeOnEsc, onClose, isOpen, closeOnBlur, closeDelay, arrowShadowColor, arrowSize]);\n var getPopoverPositionerProps = useCallback(function (props, forwardedRef) {\n if (props === void 0) {\n props = {};\n }\n\n if (forwardedRef === void 0) {\n forwardedRef = null;\n }\n\n return getPopperProps(_extends({}, props, {\n style: _extends({\n visibility: isOpen ? \"visible\" : \"hidden\"\n }, props.style)\n }), forwardedRef);\n }, [isOpen, getPopperProps]);\n var getAnchorProps = useCallback(function (props, _ref) {\n if (_ref === void 0) {\n _ref = null;\n }\n\n var anchorProps = _extends({}, props, {\n // If anchor is rendered, it is used as reference.\n ref: mergeRefs(_ref, anchorRef, referenceRef)\n });\n\n return anchorProps;\n }, [anchorRef, referenceRef]);\n var openTimeout = useRef();\n var closeTimeout = useRef();\n var maybeReferenceRef = useCallback(function (node) {\n // Don't override referenceRef in case the PopoverAnchor is rendered.\n if (anchorRef.current == null) {\n referenceRef(node);\n }\n }, [referenceRef]);\n var getTriggerProps = useCallback(function (props, _ref) {\n if (props === void 0) {\n props = {};\n }\n\n if (_ref === void 0) {\n _ref = null;\n }\n\n var triggerProps = _extends({}, props, {\n ref: mergeRefs(triggerRef, _ref, maybeReferenceRef),\n id: triggerId,\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": isOpen,\n \"aria-controls\": popoverId\n });\n\n if (trigger === TRIGGER.click) {\n triggerProps.onClick = callAllHandlers(props.onClick, onToggle);\n }\n\n if (trigger === TRIGGER.hover) {\n /**\n * Any content that shows on pointer hover should also show on keyboard focus.\n * Consider focus and blur to be the `hover` for keyboard users.\n *\n * @see https://www.w3.org/WAI/WCAG21/Understanding/content-on-hover-or-focus.html\n */\n triggerProps.onFocus = callAllHandlers(props.onFocus, onOpen);\n triggerProps.onBlur = callAllHandlers(props.onBlur, function (event) {\n var relatedTarget = getRelatedTarget(event);\n var isValidBlur = !contains(popoverRef.current, relatedTarget);\n\n if (isOpen && closeOnBlur && isValidBlur) {\n onClose();\n }\n });\n /**\n * Any content that shows on hover or focus must be dismissible.\n * This case pressing `Escape` will dismiss the popover\n */\n\n triggerProps.onKeyDown = callAllHandlers(props.onKeyDown, function (event) {\n if (event.key === \"Escape\") {\n onClose();\n }\n });\n triggerProps.onMouseEnter = callAllHandlers(props.onMouseEnter, function () {\n isHoveringRef.current = true;\n openTimeout.current = window.setTimeout(onOpen, openDelay);\n });\n triggerProps.onMouseLeave = callAllHandlers(props.onMouseLeave, function () {\n isHoveringRef.current = false;\n\n if (openTimeout.current) {\n clearTimeout(openTimeout.current);\n openTimeout.current = undefined;\n }\n\n closeTimeout.current = window.setTimeout(function () {\n if (isHoveringRef.current === false) {\n onClose();\n }\n }, closeDelay);\n });\n }\n\n return triggerProps;\n }, [triggerId, isOpen, popoverId, trigger, maybeReferenceRef, onToggle, onOpen, closeOnBlur, onClose, openDelay, closeDelay]);\n useEffect(function () {\n return function () {\n if (openTimeout.current) {\n clearTimeout(openTimeout.current);\n }\n\n if (closeTimeout.current) {\n clearTimeout(closeTimeout.current);\n }\n };\n }, []);\n var getHeaderProps = useCallback(function (props, ref) {\n if (props === void 0) {\n props = {};\n }\n\n if (ref === void 0) {\n ref = null;\n }\n\n return _extends({}, props, {\n id: headerId,\n ref: mergeRefs(ref, function (node) {\n setHasHeader(!!node);\n })\n });\n }, [headerId]);\n var getBodyProps = useCallback(function (props, ref) {\n if (props === void 0) {\n props = {};\n }\n\n if (ref === void 0) {\n ref = null;\n }\n\n return _extends({}, props, {\n id: bodyId,\n ref: mergeRefs(ref, function (node) {\n setHasBody(!!node);\n })\n });\n }, [bodyId]);\n return {\n forceUpdate: forceUpdate,\n isOpen: isOpen,\n onClose: onClose,\n getAnchorProps: getAnchorProps,\n getArrowProps: getArrowProps,\n getArrowInnerProps: getArrowInnerProps,\n getPopoverPositionerProps: getPopoverPositionerProps,\n getPopoverProps: getPopoverProps,\n getTriggerProps: getTriggerProps,\n getHeaderProps: getHeaderProps,\n getBodyProps: getBodyProps\n };\n}\n\nvar _excluded = [\"children\"],\n _excluded2 = [\"rootProps\"];\n\n/**\n * Popover is used to bring attention to specific user interface elements,\n * typically to suggest an action or to guide users through a new experience.\n */\nvar Popover = function Popover(props) {\n var styles = useMultiStyleConfig(\"Popover\", props);\n\n var _omitThemingProps = omitThemingProps(props),\n children = _omitThemingProps.children,\n rest = _objectWithoutPropertiesLoose(_omitThemingProps, _excluded);\n\n var theme = useTheme();\n var context = usePopover(_extends({}, rest, {\n direction: theme.direction\n }));\n return /*#__PURE__*/React.createElement(PopoverProvider, {\n value: context\n }, /*#__PURE__*/React.createElement(StylesProvider, {\n value: styles\n }, runIfFn(children, {\n isOpen: context.isOpen,\n onClose: context.onClose,\n forceUpdate: context.forceUpdate\n })));\n};\n\nif (__DEV__) {\n Popover.displayName = \"Popover\";\n}\n/**\n * PopoverAnchor is element that is used as the positioning reference\n * for the popover.\n */\n\n\nvar PopoverAnchor = function PopoverAnchor(props) {\n // enforce a single child\n var child = React.Children.only(props.children);\n\n var _usePopoverContext = usePopoverContext(),\n getAnchorProps = _usePopoverContext.getAnchorProps;\n\n return /*#__PURE__*/React.cloneElement(child, getAnchorProps(child.props, child.ref));\n};\n\nif (__DEV__) {\n PopoverAnchor.displayName = \"PopoverAnchor\";\n}\n/**\n * PopoverTrigger opens the popover's content. It must be an interactive element\n * such as `button` or `a`.\n */\n\n\nvar PopoverTrigger = function PopoverTrigger(props) {\n // enforce a single child\n var child = React.Children.only(props.children);\n\n var _usePopoverContext2 = usePopoverContext(),\n getTriggerProps = _usePopoverContext2.getTriggerProps;\n\n return /*#__PURE__*/React.cloneElement(child, getTriggerProps(child.props, child.ref));\n};\n\nif (__DEV__) {\n PopoverTrigger.displayName = \"PopoverTrigger\";\n}\n\nvar PopoverContent = /*#__PURE__*/forwardRef(function (props, ref) {\n var rootProps = props.rootProps,\n contentProps = _objectWithoutPropertiesLoose(props, _excluded2);\n\n var _usePopoverContext3 = usePopoverContext(),\n getPopoverProps = _usePopoverContext3.getPopoverProps,\n getPopoverPositionerProps = _usePopoverContext3.getPopoverPositionerProps;\n\n var styles = useStyles();\n\n var contentStyles = _extends({\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\"\n }, styles.content);\n\n return /*#__PURE__*/React.createElement(chakra.div, _extends({}, getPopoverPositionerProps(rootProps), {\n __css: styles.popper,\n className: \"chakra-popover__popper\"\n }), /*#__PURE__*/React.createElement(PopoverTransition, _extends({}, getPopoverProps(contentProps, ref), {\n className: cx(\"chakra-popover__content\", props.className),\n __css: contentStyles\n })));\n});\n\nif (__DEV__) {\n PopoverContent.displayName = \"PopoverContent\";\n}\n\n/**\n * PopoverHeader is the accessible header or label\n * for the popover's content and it is first announced by screenreaders.\n */\nvar PopoverHeader = /*#__PURE__*/forwardRef(function (props, ref) {\n var _usePopoverContext4 = usePopoverContext(),\n getHeaderProps = _usePopoverContext4.getHeaderProps;\n\n var styles = useStyles();\n return /*#__PURE__*/React.createElement(chakra.header, _extends({}, getHeaderProps(props, ref), {\n className: cx(\"chakra-popover__header\", props.className),\n __css: styles.header\n }));\n});\n\nif (__DEV__) {\n PopoverHeader.displayName = \"PopoverHeader\";\n}\n\n/**\n * PopoverBody is the main content area for the popover. Should contain\n * at least one interactive element.\n */\nvar PopoverBody = /*#__PURE__*/forwardRef(function (props, ref) {\n var _usePopoverContext5 = usePopoverContext(),\n getBodyProps = _usePopoverContext5.getBodyProps;\n\n var styles = useStyles();\n return /*#__PURE__*/React.createElement(chakra.div, _extends({}, getBodyProps(props, ref), {\n className: cx(\"chakra-popover__body\", props.className),\n __css: styles.body\n }));\n});\n\nif (__DEV__) {\n PopoverBody.displayName = \"PopoverBody\";\n}\n\nvar PopoverFooter = function PopoverFooter(props) {\n var styles = useStyles();\n return /*#__PURE__*/React.createElement(chakra.footer, _extends({}, props, {\n className: cx(\"chakra-popover__footer\", props.className),\n __css: styles.footer\n }));\n};\n\nif (__DEV__) {\n PopoverFooter.displayName = \"PopoverFooter\";\n}\n\nvar PopoverCloseButton = function PopoverCloseButton(props) {\n var _usePopoverContext6 = usePopoverContext(),\n onClose = _usePopoverContext6.onClose;\n\n var styles = useStyles();\n return /*#__PURE__*/React.createElement(CloseButton, _extends({\n size: \"sm\",\n onClick: onClose,\n className: cx(\"chakra-popover__close-btn\", props.className),\n __css: styles.closeButton\n }, props));\n};\n\nif (__DEV__) {\n PopoverCloseButton.displayName = \"PopoverCloseButton\";\n}\n\nvar PopoverArrow = function PopoverArrow(props) {\n var _ref;\n\n var bg = props.bg,\n bgColor = props.bgColor,\n backgroundColor = props.backgroundColor;\n\n var _usePopoverContext7 = usePopoverContext(),\n getArrowProps = _usePopoverContext7.getArrowProps,\n getArrowInnerProps = _usePopoverContext7.getArrowInnerProps;\n\n var styles = useStyles();\n var arrowBg = (_ref = bg != null ? bg : bgColor) != null ? _ref : backgroundColor;\n return /*#__PURE__*/React.createElement(chakra.div, _extends({}, getArrowProps(), {\n className: \"chakra-popover__arrow-positioner\"\n }), /*#__PURE__*/React.createElement(chakra.div, _extends({\n className: cx(\"chakra-popover__arrow\", props.className)\n }, getArrowInnerProps(props), {\n __css: _extends({}, styles.arrow, {\n \"--popper-arrow-bg\": arrowBg ? \"colors.\" + arrowBg + \", \" + arrowBg : undefined\n })\n })));\n};\n\nif (__DEV__) {\n PopoverArrow.displayName = \"PopoverArrow\";\n}\n\nexport { Popover, PopoverAnchor, PopoverArrow, PopoverBody, PopoverCloseButton, PopoverContent, PopoverFooter, PopoverHeader, PopoverTrigger, usePopover, usePopoverContext };\n","import { forwardRef, chakra, useMultiStyleConfig, omitThemingProps, layoutPropNames } from '@chakra-ui/system';\nimport { isInputEvent, cx, __DEV__, warn, dataAttr, callAllHandlers, ariaAttr, callAll, split } from '@chakra-ui/utils';\nimport * as React from 'react';\nimport { useState, useCallback } from 'react';\nimport { mergeRefs, createContext } from '@chakra-ui/react-utils';\nimport { useControllableProp, useId, useBoolean } from '@chakra-ui/hooks';\nimport { useFormControlContext } from '@chakra-ui/form-control';\nimport { visuallyHiddenStyle } from '@chakra-ui/visually-hidden';\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar _excluded$3 = [\"onChange\", \"value\", \"defaultValue\", \"name\", \"isDisabled\", \"isFocusable\", \"isNative\"];\n\n/**\n * React hook to manage a group of radio inputs\n */\nfunction useRadioGroup(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n onChangeProp = _props.onChange,\n valueProp = _props.value,\n defaultValue = _props.defaultValue,\n nameProp = _props.name,\n isDisabled = _props.isDisabled,\n isFocusable = _props.isFocusable,\n isNative = _props.isNative,\n htmlProps = _objectWithoutPropertiesLoose(_props, _excluded$3);\n\n var _React$useState = React.useState(defaultValue || \"\"),\n valueState = _React$useState[0],\n setValue = _React$useState[1];\n\n var _useControllableProp = useControllableProp(valueProp, valueState),\n isControlled = _useControllableProp[0],\n value = _useControllableProp[1];\n\n var ref = React.useRef(null);\n var focus = React.useCallback(function () {\n var rootNode = ref.current;\n if (!rootNode) return;\n var query = \"input:not(:disabled):checked\";\n var firstEnabledAndCheckedInput = rootNode.querySelector(query);\n\n if (firstEnabledAndCheckedInput) {\n firstEnabledAndCheckedInput.focus();\n return;\n }\n\n query = \"input:not(:disabled)\";\n var firstEnabledInput = rootNode.querySelector(query);\n firstEnabledInput == null ? void 0 : firstEnabledInput.focus();\n }, []);\n /**\n * All radio options must use the same name\n */\n\n var fallbackName = useId(undefined, \"radio\");\n var name = nameProp || fallbackName;\n var onChange = React.useCallback(function (eventOrValue) {\n var nextValue = isInputEvent(eventOrValue) ? eventOrValue.target.value : eventOrValue;\n\n if (!isControlled) {\n setValue(nextValue);\n }\n\n onChangeProp == null ? void 0 : onChangeProp(String(nextValue));\n }, [onChangeProp, isControlled]);\n var getRootProps = React.useCallback(function (props, forwardedRef) {\n if (props === void 0) {\n props = {};\n }\n\n if (forwardedRef === void 0) {\n forwardedRef = null;\n }\n\n return _extends({}, props, {\n ref: mergeRefs(forwardedRef, ref),\n role: \"radiogroup\"\n });\n }, []);\n var getRadioProps = React.useCallback(function (props, ref) {\n var _extends2;\n\n if (props === void 0) {\n props = {};\n }\n\n if (ref === void 0) {\n ref = null;\n }\n\n var checkedKey = isNative ? \"checked\" : \"isChecked\";\n return _extends({}, props, (_extends2 = {\n ref: ref,\n name: name\n }, _extends2[checkedKey] = value != null ? props.value === value : undefined, _extends2.onChange = onChange, _extends2[\"data-radiogroup\"] = true, _extends2));\n }, [isNative, name, onChange, value]);\n return {\n getRootProps: getRootProps,\n getRadioProps: getRadioProps,\n name: name,\n ref: ref,\n focus: focus,\n setValue: setValue,\n value: value,\n onChange: onChange,\n isDisabled: isDisabled,\n isFocusable: isFocusable,\n htmlProps: htmlProps\n };\n}\n\nvar _excluded$2 = [\"colorScheme\", \"size\", \"variant\", \"children\", \"className\", \"isDisabled\", \"isFocusable\"];\n\nvar _createContext = createContext({\n name: \"RadioGroupContext\",\n strict: false\n}),\n RadioGroupProvider = _createContext[0],\n useRadioGroupContext = _createContext[1];\n\n/**\n * Used for multiple radios which are bound in one group,\n * and it indicates which option is selected.\n *\n * @see Docs https://chakra-ui.com/radio\n */\nvar RadioGroup = /*#__PURE__*/forwardRef(function (props, ref) {\n var colorScheme = props.colorScheme,\n size = props.size,\n variant = props.variant,\n children = props.children,\n className = props.className,\n isDisabled = props.isDisabled,\n isFocusable = props.isFocusable,\n rest = _objectWithoutPropertiesLoose(props, _excluded$2);\n\n var _useRadioGroup = useRadioGroup(rest),\n value = _useRadioGroup.value,\n onChange = _useRadioGroup.onChange,\n getRootProps = _useRadioGroup.getRootProps,\n name = _useRadioGroup.name,\n htmlProps = _useRadioGroup.htmlProps;\n\n var group = React.useMemo(function () {\n return {\n name: name,\n size: size,\n onChange: onChange,\n colorScheme: colorScheme,\n value: value,\n variant: variant,\n isDisabled: isDisabled,\n isFocusable: isFocusable\n };\n }, [name, size, onChange, colorScheme, value, variant, isDisabled, isFocusable]);\n var groupProps = getRootProps(htmlProps, ref);\n\n var _className = cx(\"chakra-radio-group\", className);\n\n return /*#__PURE__*/React.createElement(RadioGroupProvider, {\n value: group\n }, /*#__PURE__*/React.createElement(chakra.div, _extends({}, groupProps, {\n className: _className\n }), children));\n});\n\nif (__DEV__) {\n RadioGroup.displayName = \"RadioGroup\";\n}\n\nvar _excluded$1 = [\"defaultIsChecked\", \"defaultChecked\", \"isChecked\", \"isFocusable\", \"isDisabled\", \"isReadOnly\", \"isRequired\", \"onChange\", \"isInvalid\", \"name\", \"value\", \"id\", \"data-radiogroup\"];\n/**\n * @todo use the `useClickable` hook here\n * to manage the isFocusable & isDisabled props\n */\n\nfunction useRadio(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n defaultIsChecked = _props.defaultIsChecked,\n _props$defaultChecked = _props.defaultChecked,\n defaultChecked = _props$defaultChecked === void 0 ? defaultIsChecked : _props$defaultChecked,\n isCheckedProp = _props.isChecked,\n isFocusable = _props.isFocusable,\n isDisabledProp = _props.isDisabled,\n isReadOnlyProp = _props.isReadOnly,\n isRequiredProp = _props.isRequired,\n onChange = _props.onChange,\n isInvalidProp = _props.isInvalid,\n name = _props.name,\n value = _props.value,\n idProp = _props.id,\n dataRadioGroup = _props[\"data-radiogroup\"],\n htmlProps = _objectWithoutPropertiesLoose(_props, _excluded$1);\n\n var uuid = useId(undefined, \"radio\");\n var formControl = useFormControlContext();\n var group = useRadioGroupContext();\n var isWithinRadioGroup = !!group || !!dataRadioGroup;\n var isWithinFormControl = !!formControl;\n var id = isWithinFormControl && !isWithinRadioGroup ? formControl.id : uuid;\n id = idProp != null ? idProp : id;\n var isDisabled = isDisabledProp != null ? isDisabledProp : formControl == null ? void 0 : formControl.isDisabled;\n var isReadOnly = isReadOnlyProp != null ? isReadOnlyProp : formControl == null ? void 0 : formControl.isReadOnly;\n var isRequired = isRequiredProp != null ? isRequiredProp : formControl == null ? void 0 : formControl.isRequired;\n var isInvalid = isInvalidProp != null ? isInvalidProp : formControl == null ? void 0 : formControl.isInvalid;\n\n var _useBoolean = useBoolean(),\n isFocused = _useBoolean[0],\n setFocused = _useBoolean[1];\n\n var _useBoolean2 = useBoolean(),\n isHovered = _useBoolean2[0],\n setHovering = _useBoolean2[1];\n\n var _useBoolean3 = useBoolean(),\n isActive = _useBoolean3[0],\n setActive = _useBoolean3[1];\n\n var _useState = useState(Boolean(defaultChecked)),\n isCheckedState = _useState[0],\n setChecked = _useState[1];\n\n var _useControllableProp = useControllableProp(isCheckedProp, isCheckedState),\n isControlled = _useControllableProp[0],\n isChecked = _useControllableProp[1];\n\n warn({\n condition: !!defaultIsChecked,\n message: 'The \"defaultIsChecked\" prop has been deprecated and will be removed in a future version. ' + 'Please use the \"defaultChecked\" prop instead, which mirrors default React checkbox behavior.'\n });\n var handleChange = useCallback(function (event) {\n if (isReadOnly || isDisabled) {\n event.preventDefault();\n return;\n }\n\n if (!isControlled) {\n setChecked(event.target.checked);\n }\n\n onChange == null ? void 0 : onChange(event);\n }, [isControlled, isDisabled, isReadOnly, onChange]);\n var onKeyDown = useCallback(function (event) {\n if (event.key === \" \") {\n setActive.on();\n }\n }, [setActive]);\n var onKeyUp = useCallback(function (event) {\n if (event.key === \" \") {\n setActive.off();\n }\n }, [setActive]);\n var getCheckboxProps = useCallback(function (props, ref) {\n if (props === void 0) {\n props = {};\n }\n\n if (ref === void 0) {\n ref = null;\n }\n\n return _extends({}, props, {\n ref: ref,\n \"data-active\": dataAttr(isActive),\n \"data-hover\": dataAttr(isHovered),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-invalid\": dataAttr(isInvalid),\n \"data-checked\": dataAttr(isChecked),\n \"data-focus\": dataAttr(isFocused),\n \"data-readonly\": dataAttr(isReadOnly),\n \"aria-hidden\": true,\n onMouseDown: callAllHandlers(props.onMouseDown, setActive.on),\n onMouseUp: callAllHandlers(props.onMouseUp, setActive.off),\n onMouseEnter: callAllHandlers(props.onMouseEnter, setHovering.on),\n onMouseLeave: callAllHandlers(props.onMouseLeave, setHovering.off)\n });\n }, [isActive, isHovered, isDisabled, isInvalid, isChecked, isFocused, isReadOnly, setActive.on, setActive.off, setHovering.on, setHovering.off]);\n\n var _ref = formControl != null ? formControl : {},\n onFocus = _ref.onFocus,\n onBlur = _ref.onBlur;\n\n var getInputProps = useCallback(function (props, ref) {\n if (props === void 0) {\n props = {};\n }\n\n if (ref === void 0) {\n ref = null;\n }\n\n var trulyDisabled = isDisabled && !isFocusable;\n return _extends({}, props, {\n id: id,\n ref: ref,\n type: \"radio\",\n name: name,\n value: value,\n onChange: callAllHandlers(props.onChange, handleChange),\n onBlur: callAllHandlers(onBlur, props.onBlur, setFocused.off),\n onFocus: callAllHandlers(onFocus, props.onFocus, setFocused.on),\n onKeyDown: callAllHandlers(props.onKeyDown, onKeyDown),\n onKeyUp: callAllHandlers(props.onKeyUp, onKeyUp),\n checked: isChecked,\n disabled: trulyDisabled,\n readOnly: isReadOnly,\n required: isRequired,\n \"aria-invalid\": ariaAttr(isInvalid),\n \"aria-disabled\": ariaAttr(trulyDisabled),\n \"aria-required\": ariaAttr(isRequired),\n \"data-readonly\": dataAttr(isReadOnly),\n style: visuallyHiddenStyle\n });\n }, [isDisabled, isFocusable, id, name, value, handleChange, onBlur, setFocused, onFocus, onKeyDown, onKeyUp, isChecked, isReadOnly, isRequired, isInvalid]);\n\n var getLabelProps = function getLabelProps(props, ref) {\n if (props === void 0) {\n props = {};\n }\n\n if (ref === void 0) {\n ref = null;\n }\n\n return _extends({}, props, {\n ref: ref,\n onMouseDown: callAllHandlers(props.onMouseDown, stop),\n onTouchStart: callAllHandlers(props.onTouchStart, stop),\n \"data-disabled\": dataAttr(isDisabled),\n \"data-checked\": dataAttr(isChecked),\n \"data-invalid\": dataAttr(isInvalid)\n });\n };\n\n var getRootProps = function getRootProps(props, ref) {\n if (ref === void 0) {\n ref = null;\n }\n\n return _extends({}, props, {\n ref: ref,\n \"data-disabled\": dataAttr(isDisabled),\n \"data-checked\": dataAttr(isChecked),\n \"data-invalid\": dataAttr(isInvalid)\n });\n };\n\n return {\n state: {\n isInvalid: isInvalid,\n isFocused: isFocused,\n isChecked: isChecked,\n isActive: isActive,\n isHovered: isHovered,\n isDisabled: isDisabled,\n isReadOnly: isReadOnly,\n isRequired: isRequired\n },\n getCheckboxProps: getCheckboxProps,\n getInputProps: getInputProps,\n getLabelProps: getLabelProps,\n getRootProps: getRootProps,\n htmlProps: htmlProps\n };\n}\n/**\n * Prevent `onBlur` being fired when the checkbox label is touched\n */\n\nfunction stop(event) {\n event.preventDefault();\n event.stopPropagation();\n}\n\nvar _excluded = [\"spacing\", \"children\", \"isFullWidth\", \"isDisabled\", \"isFocusable\"];\n\n/**\n * Radio component is used in forms when a user needs to select a single value from\n * several options.\n *\n * @see Docs https://chakra-ui.com/radio\n */\nvar Radio = /*#__PURE__*/forwardRef(function (props, ref) {\n var _props$name;\n\n var group = useRadioGroupContext();\n var onChangeProp = props.onChange,\n valueProp = props.value;\n var styles = useMultiStyleConfig(\"Radio\", _extends({}, group, props));\n var ownProps = omitThemingProps(props);\n\n var _ownProps$spacing = ownProps.spacing,\n spacing = _ownProps$spacing === void 0 ? \"0.5rem\" : _ownProps$spacing,\n children = ownProps.children,\n isFullWidth = ownProps.isFullWidth,\n _ownProps$isDisabled = ownProps.isDisabled,\n isDisabled = _ownProps$isDisabled === void 0 ? group == null ? void 0 : group.isDisabled : _ownProps$isDisabled,\n _ownProps$isFocusable = ownProps.isFocusable,\n isFocusable = _ownProps$isFocusable === void 0 ? group == null ? void 0 : group.isFocusable : _ownProps$isFocusable,\n rest = _objectWithoutPropertiesLoose(ownProps, _excluded);\n\n var isChecked = props.isChecked;\n\n if ((group == null ? void 0 : group.value) != null && valueProp != null) {\n isChecked = group.value === valueProp;\n }\n\n var onChange = onChangeProp;\n\n if (group != null && group.onChange && valueProp != null) {\n onChange = callAll(group.onChange, onChangeProp);\n }\n\n var name = (_props$name = props == null ? void 0 : props.name) != null ? _props$name : group == null ? void 0 : group.name;\n\n var _useRadio = useRadio(_extends({}, rest, {\n isChecked: isChecked,\n isFocusable: isFocusable,\n isDisabled: isDisabled,\n onChange: onChange,\n name: name\n })),\n getInputProps = _useRadio.getInputProps,\n getCheckboxProps = _useRadio.getCheckboxProps,\n getLabelProps = _useRadio.getLabelProps,\n getRootProps = _useRadio.getRootProps,\n htmlProps = _useRadio.htmlProps;\n\n var _split = split(htmlProps, layoutPropNames),\n layoutProps = _split[0],\n otherProps = _split[1];\n\n var checkboxProps = getCheckboxProps(otherProps);\n var inputProps = getInputProps({}, ref);\n var labelProps = getLabelProps();\n var rootProps = Object.assign({}, layoutProps, getRootProps());\n\n var rootStyles = _extends({\n width: isFullWidth ? \"full\" : undefined,\n display: \"inline-flex\",\n alignItems: \"center\",\n verticalAlign: \"top\",\n cursor: \"pointer\"\n }, styles.container);\n\n var checkboxStyles = _extends({\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0\n }, styles.control);\n\n var labelStyles = _extends({\n userSelect: \"none\",\n marginStart: spacing\n }, styles.label);\n\n return /*#__PURE__*/React.createElement(chakra.label, _extends({\n className: \"chakra-radio\"\n }, rootProps, {\n __css: rootStyles\n }), /*#__PURE__*/React.createElement(\"input\", _extends({\n className: \"chakra-radio__input\"\n }, inputProps)), /*#__PURE__*/React.createElement(chakra.span, _extends({\n className: \"chakra-radio__control\"\n }, checkboxProps, {\n __css: checkboxStyles\n })), children && /*#__PURE__*/React.createElement(chakra.span, _extends({\n className: \"chakra-radio__label\"\n }, labelProps, {\n __css: labelStyles\n }), children));\n});\n\nif (__DEV__) {\n Radio.displayName = \"Radio\";\n}\n\nexport { Radio, RadioGroup, useRadio, useRadioGroup, useRadioGroupContext };\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}"],"names":["isBrowser","React","__DEV__","_objectWithoutPropertiesLoose","source","excluded","key","i","target","sourceKeys","Object","keys","length","indexOf","_extends","assign","arguments","prototype","hasOwnProperty","call","apply","this","createMediaQueries","breakpoints","entries","sort","a","b","Number","parseInt","map","_ref","index","arr","breakpoint","minWidth","next","maxWidth","undefined","query","toMediaString","value","modifier","replace","measurementRegex","match","parseFloat","calculateMeasurement","endsWith","subtract","createMediaQueryString","isNumber","_excluded","_excluded2","useBreakpointValue","values","defaultBreakpoint","useTheme","env","useEnvironment","mediaQueries","React__default","base","_React$useState","mediaQuery","find","currentBreakpoint","setCurrentBreakpoint","current","update","matches","listeners","Set","forEach","_ref2","window","matchMedia","handleChange","addListener","add","removeListener","_ref3","clear","useBreakpoint","theme","breakpoints$1","stopIndex","getClosestValue","isArray","fromEntries","arrayToObjectNotation","_createContext","createContext","name","errorMessage","PopoverProvider","usePopoverContext","mergeVariants","variants","mergeWith","enter","visibility","exit","transitionEnd","Section","motion","chakra","PopoverTransition","props","ref","isOpen","initial","animate","defaultProps","opacity","scale","transition","duration","ease","_excluded$1","TRIGGER","Popover","styles","useMultiStyleConfig","_omitThemingProps","omitThemingProps","children","context","_props","_props$closeOnBlur","closeOnBlur","_props$closeOnEsc","closeOnEsc","initialFocusRef","id","_props$returnFocusOnC","returnFocusOnClose","_props$autoFocus","autoFocus","arrowSize","arrowShadowColor","_props$trigger","trigger","_props$openDelay","openDelay","_props$closeDelay","closeDelay","isLazy","_props$lazyBehavior","lazyBehavior","computePositionOnMount","popperProps","_useDisclosure","useDisclosure","onClose","onOpen","onToggle","anchorRef","useRef","triggerRef","popoverRef","isHoveringRef","hasBeenOpened","_useState","useState","hasHeader","setHasHeader","_useState2","hasBody","setHasBody","_useIds","useIds","triggerId","popoverId","headerId","bodyId","_usePopper","usePopper","enabled","referenceRef","getArrowProps","getPopperProps","getArrowInnerProps","forceUpdate","useFocusOnPointerDown","useFocusOnHide","focusRef","visible","shouldFocus","useFocusOnShow","shouldRenderChildren","determineLazyBehavior","hasBeenSelected","isSelected","getPopoverProps","useCallback","_extends2","popoverProps","style","transformOrigin","popperCSSVars","px","mergeRefs","tabIndex","role","onKeyDown","callAllHandlers","event","onBlur","relatedTarget","getRelatedTarget","targetIsPopover","contains","targetIsTrigger","onMouseEnter","onMouseLeave","setTimeout","getPopoverPositionerProps","forwardedRef","getAnchorProps","openTimeout","closeTimeout","maybeReferenceRef","node","getTriggerProps","triggerProps","onClick","onFocus","isValidBlur","clearTimeout","useEffect","getHeaderProps","getBodyProps","usePopover","direction","StylesProvider","runIfFn","displayName","PopoverTrigger","child","PopoverContent","forwardRef","rootProps","contentProps","_usePopoverContext3","useStyles","contentStyles","position","display","flexDirection","content","__css","popper","className","cx","PopoverHeader","header","PopoverBody","body","PopoverArrow","bg","bgColor","backgroundColor","_usePopoverContext7","arrowBg","arrow","_excluded$3","_excluded$2","strict","RadioGroupProvider","useRadioGroupContext","RadioGroup","colorScheme","size","variant","isDisabled","isFocusable","_useRadioGroup","onChangeProp","onChange","valueProp","defaultValue","nameProp","isNative","htmlProps","valueState","setValue","_useControllableProp","useControllableProp","isControlled","focus","rootNode","firstEnabledAndCheckedInput","querySelector","firstEnabledInput","fallbackName","useId","eventOrValue","nextValue","isInputEvent","String","getRootProps","getRadioProps","useRadioGroup","group","groupProps","_className","stop","preventDefault","stopPropagation","Radio","_props$name","ownProps","_ownProps$spacing","spacing","isFullWidth","_ownProps$isDisabled","_ownProps$isFocusable","rest","isChecked","callAll","_useRadio","defaultIsChecked","_props$defaultChecked","defaultChecked","isCheckedProp","isDisabledProp","isReadOnlyProp","isReadOnly","isRequiredProp","isRequired","isInvalidProp","isInvalid","idProp","dataRadioGroup","uuid","formControl","useFormControlContext","_useBoolean","useBoolean","isFocused","setFocused","_useBoolean2","isHovered","setHovering","_useBoolean3","isActive","setActive","Boolean","isCheckedState","setChecked","warn","condition","message","checked","on","onKeyUp","off","getCheckboxProps","dataAttr","onMouseDown","onMouseUp","getInputProps","trulyDisabled","type","disabled","readOnly","required","ariaAttr","visuallyHiddenStyle","state","getLabelProps","onTouchStart","useRadio","_split","split","layoutPropNames","layoutProps","checkboxProps","inputProps","labelProps","rootStyles","width","alignItems","verticalAlign","cursor","container","checkboxStyles","justifyContent","flexShrink","control","labelStyles","userSelect","marginStart","label","compareAsc","dirtyDateLeft","dirtyDateRight","requiredArgs","dateLeft","toDate","dateRight","diff","getTime","cloneObject","dirtyObject","TypeError","property","MILLISECONDS_IN_MINUTE","MINUTES_IN_DAY","MINUTES_IN_MONTH","MINUTES_IN_YEAR","formatDistanceStrict","dirtyDate","dirtyBaseDate","options","locale","defaultLocale","formatDistance","RangeError","comparison","isNaN","localizeOptions","addSuffix","roundingMethodFn","roundingMethod","Math","floor","ceil","round","unit","milliseconds","minutes","timezoneOffset","getTimezoneOffsetInMilliseconds","dstNormalizedMinutes","seconds","roundedMinutes","hours","days","months","years","formatDistanceToNowStrict","dirtyOptions","Date","now"],"sourceRoot":""}
@@ -0,0 +1,2 @@
1
+ "use strict";(self.webpackChunkconstruct_hub_webapp=self.webpackChunkconstruct_hub_webapp||[]).push([[19],{51773:function(e,t,r){r.d(t,{Z0:function(){return n},S1:function(){return a},u9:function(){return c},eI:function(){return u},vy:function(){return d},Dq:function(){return m}});var s=r(28735),i=r(80184),n=function(e){var t=e.children;return(0,i.jsxs)(s.xu,{bg:"white",color:"blue.800",h:"100%",w:"100%",children:[t,(0,i.jsx)(s.xu,{py:5,width:"100%"})]})},a=function(e){var t=e.children;return(0,i.jsx)(s.xu,{bg:"gray.50",py:20,width:"100%",children:(0,i.jsx)(s.X6,{as:"h1",mx:"auto",textAlign:"center",children:t})})},o=r(35790),c=function(e){var t=e.question,r=e.children;return(0,i.jsxs)(o.Qd,{children:[(0,i.jsxs)(o.KF,{children:[(0,i.jsx)(s.xu,{flex:"1",py:2,textAlign:"left",children:(0,i.jsx)(s.X6,{as:"h3",ml:8,size:"sm",children:t})}),(0,i.jsx)(o.XE,{})]}),(0,i.jsx)(o.Hk,{px:12,py:4,children:(0,i.jsx)(s.xv,{color:"blue.800",fontSize:"md",sx:{p:{marginTop:"0",marginBottom:"4"}},children:r})})]})},l=r(6074),u=function(e){var t=e.href,r=e.children;return(0,i.jsx)(l.d,{color:"inherit",hasWarning:!1,href:t,textDecoration:"underline",children:r})},d=function(e){var t=e.heading,r=e.children;return(0,i.jsxs)(o.Qd,{children:[(0,i.jsxs)(o.KF,{children:[(0,i.jsx)(s.xu,{flex:"1",textAlign:"left",children:(0,i.jsx)(s.X6,{as:"h2",ml:4,my:4,size:"lg",children:t})}),(0,i.jsx)(o.XE,{})]}),(0,i.jsx)(o.Hk,{p:0,children:(0,i.jsx)(o.UQ,{allowMultiple:!0,w:"100%",children:r})})]})},h=r(1413),p=r(45987),b=["children"],m=function(e){var t=e.children,r=(0,p.Z)(e,b);return(0,i.jsx)(o.UQ,(0,h.Z)((0,h.Z)({allowMultiple:!0},r),{},{children:t}))}},41712:function(e,t,r){r.d(t,{T:function(){return c}});var s=r(72791),i=r(54270),n={contribute:{event:{name:"Contribute Load"}},home:{event:{name:"Home Load"}},faq:{event:{name:"Frequently Asked Questions Load"}},packageProfile:{event:{name:"Package Profile Load"}},search:{event:{name:"Search Load"}},siteTerms:{event:{name:"Site Terms Load"}},notFound:{page:{pageType:"errorPage"},event:{name:"404 Page Load"}}},a=r(59534),o=r(80184),c=(["default-src 'self' 'unsafe-inline' http://*.awsstatic.com;","connect-src 'self' https://*.shortbread.aws.dev http://*.shortbread.aws.dev http://a0.awsstatic.com/ http://amazonwebservices.d2.sc.omtrdc.net http://aws.demdex.net http://dpm.demdex.net http://cm.everesttech.net;","frame-src http://aws.demdex.net http://dpm.demdex.net;","img-src 'self' https://* http://a0.awsstatic.com/ http://amazonwebservices.d2.sc.omtrdc.net http://aws.demdex.net http://dpm.demdex.net http://cm.everesttech.net;","object-src 'none';","style-src 'self' 'unsafe-inline';"].join(" "),function(e){var t=e.children,r=e.meta,c=e.pageName,l=(0,a.aQ)(n[c]);(0,s.useEffect)((function(){l()}),[l]);var u=r.suffix,d=void 0===u||u,h=r.title,p=r.description,b=d?"".concat(h," - Construct Hub"):h;return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(i.q,{children:[!1,(0,o.jsx)("meta",{content:"width=device-width, initial-scale=1",name:"viewport"}),(0,o.jsx)("meta",{charSet:"utf-8"}),(0,o.jsx)("title",{children:b}),(0,o.jsx)("meta",{content:b,property:"og:title"}),(0,o.jsx)("meta",{content:b,name:"twitter:title"}),(0,o.jsx)("meta",{content:"summary",name:"twitter:card"}),(0,o.jsx)("meta",{content:p,name:"description"}),(0,o.jsx)("meta",{content:p,property:"og:description"}),(0,o.jsx)("meta",{content:p,name:"twitter:description"})]}),t]})})},27019:function(e,t,r){r.r(t),r.d(t,{default:function(){return l}});var s=r(35790),i=r(28735),n=r(51773),a=r(41712),o=r(76798),c=r(80184),l=function(){return(0,c.jsx)(a.T,{meta:{description:"Learn about contributing to Construct Hub.",title:"Contribute"},pageName:"contribute",children:(0,c.jsxs)(n.Z0,{children:[(0,c.jsx)(n.S1,{children:"Contributing to Construct Hub"}),(0,c.jsxs)(s.UQ,{allowMultiple:!0,allowToggle:!0,defaultIndex:[0],children:[(0,c.jsxs)(n.u9,{question:"How can I add my construct to Construct Hub?",children:[(0,c.jsxs)(i.xv,{children:["Constructs intended for Construct Hub must be published to the"," ",(0,c.jsx)(n.eI,{href:"https://www.npmjs.com/",children:"npm Registry"})," under Apache, BSD, EPL, MPL-2.0, ISC and CDDL or MIT open source licenses and annotated with a keyword recognized by Construct Hub (awscdk, cdk8s, or cdktf)."]}),(0,c.jsxs)(i.xv,{children:["Additionally, since one of the main goals of Construct Hub is to enable an ecosystem of constructs that can be consumed by all CDK languages, your library ",(0,c.jsx)("strong",{children:"must"})," be compiled with"," ",(0,c.jsx)(n.eI,{href:"https://aws.github.io/jsii/",children:"JSII"}),", a TypeScript-based tool for building multi-language libraries. Construct Hub leverages the type information produced by the JSII compiler to render a rich multi-language API reference for each construct."]}),(0,c.jsxs)(i.xv,{children:["Construct Hub continuously monitors the npm Registry. Packages that meet the above requirements appear in Construct Hub in about 30 minutes. If your package does not appear in Construct Hub, but meets these requirements, please file an issue against our"," ",(0,c.jsx)(n.eI,{href:"".concat(o.Sx,"/issues/new"),children:"GitHub repository."})]}),(0,c.jsxs)(i.xv,{children:["The community has provided some great resources about publishing construct libraries that meet Construct Hub requirements. For example, see"," ",(0,c.jsxs)(n.eI,{href:"https://dev.to/aws-builders/a-beginner-s-guide-to-create-aws-cdk-construct-library-with-projen-5eh4",children:["\u201cA Beginner's Guide to Create AWS CDK ConstructLibrary with"," ","projen\u201d"]})," ","by ",(0,c.jsx)(n.eI,{href:"https://hayao-k.dev/",children:"hayao-k"}),"."]}),(0,c.jsxs)(i.xv,{children:["If you already have a library written in TypeScript and want to migrate it to JSII so it can be included in Construct Hub, see the"," ",(0,c.jsx)(n.eI,{href:"https://aws.github.io/jsii/user-guides/#library-author-guide",children:"JSII library author guide."})]})]}),(0,c.jsxs)(n.u9,{question:"What are the best practices for improving discoverability of a construct library on Construct Hub?",children:[(0,c.jsx)(i.xv,{children:"To improve your construct library\u2019s visibility on Construct Hub, follow these best practices:"}),(0,c.jsxs)(i.GS,{sx:{li:{mt:4}},children:[(0,c.jsxs)(i.HC,{children:[(0,c.jsx)("strong",{children:"Helpful description."})," Publish your library with a description. Libraries without description have lower chances to be discovered by users. When you write your library\u2019s description, think: Why would someone use it? What makes it unique? Make the description as accurate and differentiated as possible."]}),(0,c.jsxs)(i.HC,{children:[(0,c.jsx)("strong",{children:"Helpful keywords."})," Publish your library with helpful keywords, ones that can help potential users to find your package. Helpful keywords can be technologies that are being used by the library, use cases the library is useful for, service names that are being used by the library etc. For example: \u2018Monitoring\u2019, \u2018Kubernetes\u2019, \u2018Cost Management\u2019, \u2018Websites\u2019, \u2018AI\u2019, \u2018Containers\u2019 and more."]}),(0,c.jsxs)(i.HC,{children:[(0,c.jsx)("strong",{children:"Helpful README."})," Review your library\u2019s README file. Is it developer-friendly? That is, can developers quickly understand the use case you\u2019re trying to solve? Does your README make it easy to get started with your library? Does it explain how your library is different from other libraries? Is it easy to understand at first glance the value developers gain from the library? For more information see *\u201cQ: What are the best practices for a developer-friendly README file?\u201d.*"]}),(0,c.jsxs)(i.HC,{children:[(0,c.jsx)("strong",{children:"API documentation."})," Document the library classes, methods, properties in the library\u2019s code. Construct Hub will display this information when it automatically generates the API documentation."]}),(0,c.jsxs)(i.HC,{children:[(0,c.jsx)("strong",{children:"Maintain your library."})," Developers prefer libraries that are updated on a regular basis. Our experience shows that successful libraries are those where publishers engage and collaborate with the user community, respond to issues and pull requests, fix bugs, and add capabilities. To gain more developers trust, maintain the releases section on your code repository and make sure to describe the changes between different releases. You may consider to link the libraries you\u2019ve published with your code repository."]}),(0,c.jsxs)(i.HC,{children:[(0,c.jsx)("strong",{children:"AWS Partner Network (APN) badge."})," If you\u2019re an AWS partner and you are publishing a library for your offering, please reach out to us and we will be happy to add a badge to your libraries with your company\u2019s name."]}),(0,c.jsxs)(i.HC,{children:[(0,c.jsx)("strong",{children:"Enable support for multiple programming languages."})," ","Make your library usable by a broader set of users and increase its value to the ecosystem. Starting with your library written in TypeScript, JSII will create packages in the other CDK programming languages. Construct Hub will then automatically generate API reference and transliterate code samples. All you need to do is to follow the instructions under *\u201cQ: How can I add my construct to Construct Hub?\u201d.*"]})]})]}),(0,c.jsxs)(n.u9,{question:"What are the best practices for writing a developer-friendly README file?",children:[(0,c.jsx)(i.xv,{children:"Developer-friendly READMEs help readers quickly understand your library\u2019s relevance to their needs and its unique value in comparison to similar libraries on the Construct Hub. Below is a suggestion for a README file structure:"}),(0,c.jsxs)(i.QI,{sx:{li:{mt:4}},children:[(0,c.jsxs)(i.HC,{children:[(0,c.jsx)("strong",{children:"State and maturity of the library."})," Start your READMEs with helpful badges like"," ",(0,c.jsx)(n.eI,{href:"https://www.npmjs.com/package/cdk-codepipeline-badge-notification",children:"CDK pipelines badges"}),". It will help users see the state of your package."]}),(0,c.jsxs)(i.HC,{children:[(0,c.jsx)("strong",{children:"Short description"}),". What does this library do? Which use case does it solve? Which technologies and services does it use or support?"]}),(0,c.jsxs)(i.HC,{children:[(0,c.jsx)("strong",{children:"What is unique about this library?"})," Help readers quickly find the right library for their needs by stating its special advantages right up front. How does it compare to other libraries addressing the same need or that use the same technologies and services? You don\u2019t need an explicit \u201cus vs. them\u201d feature checklist; just make sure you communicate your library\u2019s unique value."]}),(0,c.jsxs)(i.HC,{children:[(0,c.jsx)("strong",{children:"Code samples."})," Include as many complete and working code samples as you can to help developers quickly understand how they can use your library. Some developers start reading code samples before anything else. Write your code samples in TypeScript, and Construct Hub will transliterate them to the other programming languages your library supports. A good practice is to include a minimal code sample of how to use your library in the first page of your README."]}),(0,c.jsxs)(i.HC,{children:[(0,c.jsx)("strong",{children:"Author information."})," Share information about you, other packages you\u2019ve published, and additional helpful links that can improve your credibility with readers."]}),(0,c.jsxs)(i.HC,{children:[(0,c.jsx)("strong",{children:"License and support."})," Include a \u201cLicense\u201d and \u201cContributing\u201d sections that invite users to contribute via links to your source code repository and issue tracker. (Construct Hub provides \u201cLicense\u201d and \u201cProvide Feedback\u201d in your library\u2019s package page, but it\u2019s convenient to have them in the README too.)"]}),(0,c.jsxs)(i.HC,{children:[(0,c.jsx)("strong",{children:"Diagrams."})," Diagrams always help readers quickly understand what a library does. Consider adding diagrams for libraries that create multiple services that work together."]}),(0,c.jsxs)(i.HC,{children:[(0,c.jsx)("strong",{children:"Explanatory videos."})," Consider sharing links to videos that can help potential customers engage with your library."]}),(0,c.jsxs)(i.HC,{children:[(0,c.jsx)("strong",{children:"Absolute links vs. relative."})," Use absolute links (those that start with http:// or https://) and not relative links. Relative links are prone to breaking when the content is shared elsewhere."]})]})]}),(0,c.jsx)(n.u9,{question:"Why isn\u2019t my package displayed on Construct Hub?",children:(0,c.jsxs)(i.xv,{children:["Construct Hub includes publicly-available constructs that are JSII-compatible and that were published to the npm Registry with a permissive open-source license and a CDK keyword: aws-cdk, cdk8s, or cdktf. If you believe your package qualifies, but it still does not appear in Construct Hub, please raise an issue"," ",(0,c.jsx)(n.eI,{href:"".concat(o.Sx,"/issues/new"),children:"here"}),"."]})}),(0,c.jsx)(n.u9,{question:"Can I update my package after it has been displayed?",children:(0,c.jsx)(i.xv,{children:"Yes, you can and should! After you publish a new valid version to the public npm Registry, it should appear on Construct Hub in about 30 minutes."})}),(0,c.jsx)(n.u9,{question:"How can I report a bug or contribute code to a construct?",children:(0,c.jsx)(i.xv,{children:"Each package is owned by its publisher, so contributions, such as bug reports and pull requests, should be made via the repository link provided by the publisher. You may press the \u2018Provide feedback\u2019 link at the package page to open a new issue in at the package\u2019s repository."})}),(0,c.jsxs)(n.u9,{question:"How can I participate in link the Construct Hub community?",children:["Construct Hub is itself an open-source construct! Join the"," ",(0,c.jsx)(n.eI,{href:"https://github.com/cdklabs/construct-hub",children:"Construct Hub GitHub community"}),". You are also welcome to join the #construct-hub-dev channel in the"," ",(0,c.jsx)(n.eI,{href:"https://cdk.dev/",children:"CDK community Slack workspace"})]}),(0,c.jsx)(n.u9,{question:"Is there a Slack channel for the CDK community?",children:(0,c.jsxs)(i.xv,{children:["Please join the"," ",(0,c.jsx)(n.eI,{href:"https://cdk.dev/",children:"CDK Slack channel"}),". This Slack channel is managed by the CDK community, for the CDK community."]})})]})]})})}}}]);
2
+ //# sourceMappingURL=19.f6e4ade1.chunk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/js/19.f6e4ade1.chunk.js","mappings":"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","sources":["components/FAQ/FAQ.tsx","components/FAQ/FAQHeading.tsx","components/FAQ/FAQItem.tsx","components/FAQ/FAQLink.tsx","components/FAQ/FAQSection.tsx","components/FAQ/FAQSections.tsx","constants/pageInfo.ts","components/Page/Page.tsx","views/Contribute/Contribute.tsx"],"sourcesContent":["import { Box } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\n\nexport const FAQ: FunctionComponent = ({ children }) => (\n <Box bg=\"white\" color=\"blue.800\" h=\"100%\" w=\"100%\">\n {children}\n <Box py={5} width=\"100%\" />\n </Box>\n);\n","import { Box, Heading } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\n\nexport const FAQHeading: FunctionComponent = ({ children }) => (\n <Box bg=\"gray.50\" py={20} width=\"100%\">\n <Heading as=\"h1\" mx=\"auto\" textAlign=\"center\">\n {children}\n </Heading>\n </Box>\n);\n","import {\n Heading,\n Text,\n AccordionIcon,\n AccordionButton,\n AccordionItem,\n AccordionPanel,\n Box,\n} from \"@chakra-ui/react\";\nimport type { FunctionComponent, ReactChild } from \"react\";\n\nexport interface FAQItemProps {\n question: ReactChild;\n}\n\nexport const FAQItem: FunctionComponent<FAQItemProps> = ({\n question,\n children,\n}) => (\n <AccordionItem>\n <AccordionButton>\n <Box flex=\"1\" py={2} textAlign=\"left\">\n <Heading as=\"h3\" ml={8} size=\"sm\">\n {question}\n </Heading>\n </Box>\n <AccordionIcon />\n </AccordionButton>\n <AccordionPanel px={12} py={4}>\n <Text\n color=\"blue.800\"\n fontSize=\"md\"\n sx={{ p: { marginTop: \"0\", marginBottom: \"4\" } }}\n >\n {children}\n </Text>\n </AccordionPanel>\n </AccordionItem>\n);\n","import { FunctionComponent } from \"react\";\nimport { ExternalLink } from \"../../components/ExternalLink\";\n\nexport interface FAQLinkProps {\n href: string;\n}\n\nexport const FAQLink: FunctionComponent<FAQLinkProps> = ({\n href,\n children,\n}) => (\n <ExternalLink\n color=\"inherit\"\n hasWarning={false}\n href={href}\n textDecoration=\"underline\"\n >\n {children}\n </ExternalLink>\n);\n","import {\n AccordionIcon,\n AccordionButton,\n AccordionItem,\n AccordionPanel,\n Heading,\n Box,\n Accordion,\n} from \"@chakra-ui/react\";\n\nimport type { FunctionComponent } from \"react\";\n\nexport interface FAQSectionProps {\n heading: string;\n}\n\nexport const FAQSection: FunctionComponent<FAQSectionProps> = ({\n heading,\n children,\n}) => (\n <AccordionItem>\n <AccordionButton>\n <Box flex=\"1\" textAlign=\"left\">\n <Heading as=\"h2\" ml={4} my={4} size=\"lg\">\n {heading}\n </Heading>\n </Box>\n <AccordionIcon />\n </AccordionButton>\n <AccordionPanel p={0}>\n <Accordion allowMultiple w=\"100%\">\n {children}\n </Accordion>\n </AccordionPanel>\n </AccordionItem>\n);\n","import { Accordion, AccordionProps } from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\n\nexport const FAQSections: FunctionComponent<AccordionProps> = ({\n children,\n ...accordionProps\n}) => (\n <Accordion allowMultiple {...accordionProps}>\n {children}\n </Accordion>\n);\n","export const pageInfo = {\n contribute: {\n event: {\n name: \"Contribute Load\",\n },\n },\n home: {\n event: {\n name: \"Home Load\",\n },\n },\n faq: {\n event: {\n name: \"Frequently Asked Questions Load\",\n },\n },\n packageProfile: {\n event: {\n name: \"Package Profile Load\",\n },\n },\n search: {\n event: {\n name: \"Search Load\",\n },\n },\n siteTerms: {\n event: {\n name: \"Site Terms Load\",\n },\n },\n notFound: {\n page: {\n pageType: \"errorPage\",\n },\n event: {\n name: \"404 Page Load\",\n },\n },\n} as const;\n","import { FunctionComponent, useEffect } from \"react\";\nimport { Helmet } from \"react-helmet\";\nimport { pageInfo } from \"../../constants/pageInfo\";\nimport { usePageView } from \"../../contexts/Analytics\";\n\nexport interface PageProps {\n pageName: keyof typeof pageInfo;\n meta: {\n suffix?: boolean;\n title: string;\n description: string;\n };\n}\n\n// Should be the same as the \"real\" CSP, except most things come from HTTP\n// instead of HTTPS (because it is protocol-relative, and the dev site is\n// served over plain HTTP).\nconst csp = [\n \"default-src 'self' 'unsafe-inline' http://*.awsstatic.com;\",\n \"connect-src 'self' https://*.shortbread.aws.dev http://*.shortbread.aws.dev http://a0.awsstatic.com/ http://amazonwebservices.d2.sc.omtrdc.net http://aws.demdex.net http://dpm.demdex.net http://cm.everesttech.net;\",\n \"frame-src http://aws.demdex.net http://dpm.demdex.net;\",\n \"img-src 'self' https://* http://a0.awsstatic.com/ http://amazonwebservices.d2.sc.omtrdc.net http://aws.demdex.net http://dpm.demdex.net http://cm.everesttech.net;\",\n \"object-src 'none';\",\n \"style-src 'self' 'unsafe-inline';\",\n].join(\" \");\n\nexport const Page: FunctionComponent<PageProps> = ({\n children,\n meta,\n pageName,\n}) => {\n const trackPageView = usePageView(pageInfo[pageName]);\n\n useEffect(() => {\n trackPageView();\n }, [trackPageView]);\n\n const { suffix = true, title, description } = meta;\n const formattedTitle = suffix ? `${title} - Construct Hub` : title;\n\n return (\n <>\n <Helmet>\n {process.env.NODE_ENV === \"development\" && (\n <meta content={csp} httpEquiv=\"Content-Security-Policy\" />\n )}\n\n <meta content=\"width=device-width, initial-scale=1\" name=\"viewport\" />\n <meta charSet=\"utf-8\" />\n\n <title>{formattedTitle}</title>\n <meta content={formattedTitle} property=\"og:title\" />\n <meta content={formattedTitle} name=\"twitter:title\" />\n <meta content=\"summary\" name=\"twitter:card\" />\n\n <meta content={description} name=\"description\" />\n <meta content={description} property=\"og:description\" />\n <meta content={description} name=\"twitter:description\" />\n </Helmet>\n {children}\n </>\n );\n};\n","import {\n Accordion,\n OrderedList,\n ListItem,\n Text,\n UnorderedList,\n} from \"@chakra-ui/react\";\nimport type { FunctionComponent } from \"react\";\nimport { FAQ, FAQHeading, FAQItem, FAQLink } from \"../../components/FAQ\";\nimport { Page } from \"../../components/Page\";\nimport { CONSTRUCT_HUB_REPO_URL } from \"../../constants/links\";\n\nexport const Contribute: FunctionComponent = () => (\n <Page\n meta={{\n description: \"Learn about contributing to Construct Hub.\",\n title: \"Contribute\",\n }}\n pageName=\"contribute\"\n >\n <FAQ>\n <FAQHeading>Contributing to Construct Hub</FAQHeading>\n\n <Accordion allowMultiple allowToggle defaultIndex={[0]}>\n <FAQItem question=\"How can I add my construct to Construct Hub?\">\n <Text>\n Constructs intended for Construct Hub must be published to the{\" \"}\n <FAQLink href=\"https://www.npmjs.com/\">npm Registry</FAQLink> under\n Apache, BSD, EPL, MPL-2.0, ISC and CDDL or MIT open source licenses\n and annotated with a keyword recognized by Construct Hub (awscdk,\n cdk8s, or cdktf).\n </Text>\n\n <Text>\n Additionally, since one of the main goals of Construct Hub is to\n enable an ecosystem of constructs that can be consumed by all CDK\n languages, your library <strong>must</strong> be compiled with{\" \"}\n <FAQLink href=\"https://aws.github.io/jsii/\">JSII</FAQLink>, a\n TypeScript-based tool for building multi-language libraries.\n Construct Hub leverages the type information produced by the JSII\n compiler to render a rich multi-language API reference for each\n construct.\n </Text>\n\n <Text>\n Construct Hub continuously monitors the npm Registry. Packages that\n meet the above requirements appear in Construct Hub in about 30\n minutes. If your package does not appear in Construct Hub, but meets\n these requirements, please file an issue against our{\" \"}\n <FAQLink href={`${CONSTRUCT_HUB_REPO_URL}/issues/new`}>\n GitHub repository.\n </FAQLink>\n </Text>\n\n <Text>\n The community has provided some great resources about publishing\n construct libraries that meet Construct Hub requirements. For\n example, see{\" \"}\n <FAQLink href=\"https://dev.to/aws-builders/a-beginner-s-guide-to-create-aws-cdk-construct-library-with-projen-5eh4\">\n “A Beginner&apos;s Guide to Create AWS CDK ConstructLibrary with{\" \"}\n projen”\n </FAQLink>{\" \"}\n by <FAQLink href=\"https://hayao-k.dev/\">hayao-k</FAQLink>.\n </Text>\n\n <Text>\n If you already have a library written in TypeScript and want to\n migrate it to JSII so it can be included in Construct Hub, see the{\" \"}\n <FAQLink href=\"https://aws.github.io/jsii/user-guides/#library-author-guide\">\n JSII library author guide.\n </FAQLink>\n </Text>\n </FAQItem>\n\n <FAQItem question=\"What are the best practices for improving discoverability of a construct library on Construct Hub?\">\n <Text>\n To improve your construct library’s visibility on Construct Hub,\n follow these best practices:\n </Text>\n <OrderedList sx={{ li: { mt: 4 } }}>\n <ListItem>\n <strong>Helpful description.</strong> Publish your library with a\n description. Libraries without description have lower chances to\n be discovered by users. When you write your library’s description,\n think: Why would someone use it? What makes it unique? Make the\n description as accurate and differentiated as possible.\n </ListItem>\n\n <ListItem>\n <strong>Helpful keywords.</strong> Publish your library with\n helpful keywords, ones that can help potential users to find your\n package. Helpful keywords can be technologies that are being used\n by the library, use cases the library is useful for, service names\n that are being used by the library etc. For example: ‘Monitoring’,\n ‘Kubernetes’, ‘Cost Management’, ‘Websites’, ‘AI’, ‘Containers’\n and more.\n </ListItem>\n\n <ListItem>\n <strong>Helpful README.</strong> Review your library’s README\n file. Is it developer-friendly? That is, can developers quickly\n understand the use case you’re trying to solve? Does your README\n make it easy to get started with your library? Does it explain how\n your library is different from other libraries? Is it easy to\n understand at first glance the value developers gain from the\n library? For more information see *“Q: What are the best practices\n for a developer-friendly README file?”.*\n </ListItem>\n\n <ListItem>\n <strong>API documentation.</strong> Document the library classes,\n methods, properties in the library’s code. Construct Hub will\n display this information when it automatically generates the API\n documentation.\n </ListItem>\n\n <ListItem>\n <strong>Maintain your library.</strong> Developers prefer\n libraries that are updated on a regular basis. Our experience\n shows that successful libraries are those where publishers engage\n and collaborate with the user community, respond to issues and\n pull requests, fix bugs, and add capabilities. To gain more\n developers trust, maintain the releases section on your code\n repository and make sure to describe the changes between different\n releases. You may consider to link the libraries you’ve published\n with your code repository.\n </ListItem>\n\n <ListItem>\n <strong>AWS Partner Network (APN) badge.</strong> If you’re an AWS\n partner and you are publishing a library for your offering, please\n reach out to us and we will be happy to add a badge to your\n libraries with your company’s name.\n </ListItem>\n\n <ListItem>\n <strong>\n Enable support for multiple programming languages.\n </strong>{\" \"}\n Make your library usable by a broader set of users and increase\n its value to the ecosystem. Starting with your library written in\n TypeScript, JSII will create packages in the other CDK programming\n languages. Construct Hub will then automatically generate API\n reference and transliterate code samples. All you need to do is to\n follow the instructions under *“Q: How can I add my construct to\n Construct Hub?”.*\n </ListItem>\n </OrderedList>\n </FAQItem>\n\n <FAQItem question=\"What are the best practices for writing a developer-friendly README file?\">\n <Text>\n Developer-friendly READMEs help readers quickly understand your\n library’s relevance to their needs and its unique value in\n comparison to similar libraries on the Construct Hub. Below is a\n suggestion for a README file structure:\n </Text>\n\n <UnorderedList sx={{ li: { mt: 4 } }}>\n <ListItem>\n <strong>State and maturity of the library.</strong> Start your\n READMEs with helpful badges like{\" \"}\n <FAQLink href=\"https://www.npmjs.com/package/cdk-codepipeline-badge-notification\">\n CDK pipelines badges\n </FAQLink>\n . It will help users see the state of your package.\n </ListItem>\n\n <ListItem>\n <strong>Short description</strong>. What does this library do?\n Which use case does it solve? Which technologies and services does\n it use or support?\n </ListItem>\n\n <ListItem>\n <strong>What is unique about this library?</strong> Help readers\n quickly find the right library for their needs by stating its\n special advantages right up front. How does it compare to other\n libraries addressing the same need or that use the same\n technologies and services? You don’t need an explicit “us vs.\n them” feature checklist; just make sure you communicate your\n library’s unique value.\n </ListItem>\n\n <ListItem>\n <strong>Code samples.</strong> Include as many complete and\n working code samples as you can to help developers quickly\n understand how they can use your library. Some developers start\n reading code samples before anything else. Write your code samples\n in TypeScript, and Construct Hub will transliterate them to the\n other programming languages your library supports. A good practice\n is to include a minimal code sample of how to use your library in\n the first page of your README.\n </ListItem>\n\n <ListItem>\n <strong>Author information.</strong> Share information about you,\n other packages you’ve published, and additional helpful links that\n can improve your credibility with readers.\n </ListItem>\n\n <ListItem>\n <strong>License and support.</strong> Include a “License” and\n “Contributing” sections that invite users to contribute via links\n to your source code repository and issue tracker. (Construct Hub\n provides “License” and “Provide Feedback” in your library’s\n package page, but it’s convenient to have them in the README too.)\n </ListItem>\n\n <ListItem>\n <strong>Diagrams.</strong> Diagrams always help readers quickly\n understand what a library does. Consider adding diagrams for\n libraries that create multiple services that work together.\n </ListItem>\n\n <ListItem>\n <strong>Explanatory videos.</strong> Consider sharing links to\n videos that can help potential customers engage with your library.\n </ListItem>\n\n <ListItem>\n <strong>Absolute links vs. relative.</strong> Use absolute links\n (those that start with http:// or https://) and not relative\n links. Relative links are prone to breaking when the content is\n shared elsewhere.\n </ListItem>\n </UnorderedList>\n </FAQItem>\n\n <FAQItem question=\"Why isn’t my package displayed on Construct Hub?\">\n <Text>\n Construct Hub includes publicly-available constructs that are\n JSII-compatible and that were published to the npm Registry with a\n permissive open-source license and a CDK keyword: aws-cdk, cdk8s, or\n cdktf. If you believe your package qualifies, but it still does not\n appear in Construct Hub, please raise an issue{\" \"}\n <FAQLink href={`${CONSTRUCT_HUB_REPO_URL}/issues/new`}>\n here\n </FAQLink>\n .\n </Text>\n </FAQItem>\n\n <FAQItem question=\"Can I update my package after it has been displayed?\">\n <Text>\n Yes, you can and should! After you publish a new valid version to\n the public npm Registry, it should appear on Construct Hub in about\n 30 minutes.\n </Text>\n </FAQItem>\n\n <FAQItem question=\"How can I report a bug or contribute code to a construct?\">\n <Text>\n Each package is owned by its publisher, so contributions, such as\n bug reports and pull requests, should be made via the repository\n link provided by the publisher. You may press the ‘Provide feedback’\n link at the package page to open a new issue in at the package’s\n repository.\n </Text>\n </FAQItem>\n\n <FAQItem question=\"How can I participate in link the Construct Hub community?\">\n Construct Hub is itself an open-source construct! Join the{\" \"}\n <FAQLink href=\"https://github.com/cdklabs/construct-hub\">\n Construct Hub GitHub community\n </FAQLink>\n . You are also welcome to join the #construct-hub-dev channel in the{\" \"}\n <FAQLink href=\"https://cdk.dev/\">\n CDK community Slack workspace\n </FAQLink>\n </FAQItem>\n\n <FAQItem question=\"Is there a Slack channel for the CDK community?\">\n <Text>\n Please join the{\" \"}\n <FAQLink href=\"https://cdk.dev/\">CDK Slack channel</FAQLink>. This\n Slack channel is managed by the CDK community, for the CDK\n community.\n </Text>\n </FAQItem>\n </Accordion>\n </FAQ>\n </Page>\n);\n"],"names":["FAQ","children","bg","color","h","w","py","width","FAQHeading","as","mx","textAlign","FAQItem","question","flex","ml","size","px","fontSize","sx","p","marginTop","marginBottom","FAQLink","href","ExternalLink","hasWarning","textDecoration","FAQSection","heading","my","allowMultiple","FAQSections","accordionProps","pageInfo","contribute","event","name","home","faq","packageProfile","search","siteTerms","notFound","page","pageType","Page","join","meta","pageName","trackPageView","usePageView","useEffect","suffix","title","description","formattedTitle","Helmet","process","content","charSet","property","Contribute","allowToggle","defaultIndex","CONSTRUCT_HUB_REPO_URL","li","mt"],"sourceRoot":""}