\ No newline at end of file
diff --git a/web-app/build/static/css/275.bc418f92.chunk.css b/web-app/build/static/css/275.bc418f92.chunk.css
deleted file mode 100644
index f3ed55946a3..00000000000
--- a/web-app/build/static/css/275.bc418f92.chunk.css
+++ /dev/null
@@ -1,2 +0,0 @@
-@media (prefers-color-scheme:dark){.w-tc-editor{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}}@media (prefers-color-scheme:light){.w-tc-editor{--color-fg-default:#24292f;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}}[data-color-mode*=dark] .w-tc-editor,[data-color-mode*=dark] .w-tc-editor-var,body[data-color-mode*=dark]{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}[data-color-mode*=light] .w-tc-editor,[data-color-mode*=light] .w-tc-editor-var,body[data-color-mode*=light]{--color-fg-default:#24292f;--color-canvas-subtle:#f6f8fa;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}.w-tc-editor{background-color:var(--color-canvas-subtle);color:var(--color-fg-default);font-family:inherit;font-size:12px}.w-tc-editor-preview,.w-tc-editor-text{min-height:16px}.w-tc-editor-preview pre{font-family:inherit;font-size:inherit;margin:0;padding:0;white-space:inherit}.w-tc-editor-preview pre code{font-family:inherit}.w-tc-editor code[class*=language-] .token.cdata,.w-tc-editor code[class*=language-] .token.comment,.w-tc-editor code[class*=language-] .token.doctype,.w-tc-editor code[class*=language-] .token.prolog,.w-tc-editor pre[class*=language-] .token.cdata,.w-tc-editor pre[class*=language-] .token.comment,.w-tc-editor pre[class*=language-] .token.doctype,.w-tc-editor pre[class*=language-] .token.prolog{color:var(--color-prettylights-syntax-comment)}.w-tc-editor code[class*=language-] .token.punctuation,.w-tc-editor pre[class*=language-] .token.punctuation{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.w-tc-editor code[class*=language-] .namespace,.w-tc-editor pre[class*=language-] .namespace{opacity:.7}.w-tc-editor code[class*=language-] .token.boolean,.w-tc-editor code[class*=language-] .token.constant,.w-tc-editor code[class*=language-] .token.deleted,.w-tc-editor code[class*=language-] .token.number,.w-tc-editor code[class*=language-] .token.symbol,.w-tc-editor pre[class*=language-] .token.boolean,.w-tc-editor pre[class*=language-] .token.constant,.w-tc-editor pre[class*=language-] .token.deleted,.w-tc-editor pre[class*=language-] .token.number,.w-tc-editor pre[class*=language-] .token.symbol{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .style .token.string,.w-tc-editor code[class*=language-] .token.builtin,.w-tc-editor code[class*=language-] .token.char,.w-tc-editor code[class*=language-] .token.entity,.w-tc-editor code[class*=language-] .token.inserted,.w-tc-editor code[class*=language-] .token.operator,.w-tc-editor code[class*=language-] .token.property,.w-tc-editor code[class*=language-] .token.selector,.w-tc-editor code[class*=language-] .token.string,.w-tc-editor code[class*=language-] .token.url,.w-tc-editor pre[class*=language-] .style .token.string,.w-tc-editor pre[class*=language-] .token.builtin,.w-tc-editor pre[class*=language-] .token.char,.w-tc-editor pre[class*=language-] .token.entity,.w-tc-editor pre[class*=language-] .token.inserted,.w-tc-editor pre[class*=language-] .token.operator,.w-tc-editor pre[class*=language-] .token.property,.w-tc-editor pre[class*=language-] .token.selector,.w-tc-editor pre[class*=language-] .token.string,.w-tc-editor pre[class*=language-] .token.url{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.atrule,.w-tc-editor code[class*=language-] .token.keyword,.w-tc-editor code[class*=language-] .token.property-access .token.method,.w-tc-editor pre[class*=language-] .token.atrule,.w-tc-editor pre[class*=language-] .token.keyword,.w-tc-editor pre[class*=language-] .token.property-access .token.method{color:var(--color-prettylights-syntax-keyword)}.w-tc-editor code[class*=language-] .token.function,.w-tc-editor pre[class*=language-] .token.function{color:var(--color-prettylights-syntax-string)}.w-tc-editor code[class*=language-] .token.important,.w-tc-editor code[class*=language-] .token.regex,.w-tc-editor code[class*=language-] .token.variable,.w-tc-editor pre[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.regex,.w-tc-editor pre[class*=language-] .token.variable{color:var(--color-prettylights-syntax-string-regexp)}.w-tc-editor code[class*=language-] .token.bold,.w-tc-editor code[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.bold,.w-tc-editor pre[class*=language-] .token.important{color:var(--color-prettylights-syntax-markup-bold)}.w-tc-editor code[class*=language-] .token.tag,.w-tc-editor pre[class*=language-] .token.tag{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .token.attr-name,.w-tc-editor code[class*=language-] .token.attr-value,.w-tc-editor pre[class*=language-] .token.attr-name,.w-tc-editor pre[class*=language-] .token.attr-value{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.class-name,.w-tc-editor code[class*=language-] .token.selector .class,.w-tc-editor pre[class*=language-] .token.class-name,.w-tc-editor pre[class*=language-] .token.selector .class{color:var(--color-prettylights-syntax-entity)}
-/*# sourceMappingURL=275.bc418f92.chunk.css.map*/
\ No newline at end of file
diff --git a/web-app/build/static/css/275.bc418f92.chunk.css.map b/web-app/build/static/css/275.bc418f92.chunk.css.map
deleted file mode 100644
index 52aa2b0b254..00000000000
--- a/web-app/build/static/css/275.bc418f92.chunk.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/css/275.bc418f92.chunk.css","mappings":"AAAA,mCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,oCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,0GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,6GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,aAGE,2CAA4C,CAC5C,6BAA8B,CAH9B,mBAAoB,CACpB,cAGF,CACA,uCAEE,eACF,CACA,yBAIE,mBAAoB,CACpB,iBAAkB,CAJlB,QAAS,CACT,SAAU,CACV,mBAGF,CACA,8BACE,mBACF,CACA,8YAQE,8CACF,CACA,6GAEE,gEACF,CACA,6FAEE,UACF,CACA,ufAUE,iDACF,CAaA,o/BAUE,+CACF,CACA,yVAME,8CACF,CACA,uGAEE,6CACF,CACA,iTAME,oDACF,CACA,wMAIE,kDACF,CACA,6FAEE,iDACF,CACA,oNAIE,+CACF,CACA,gOAIE,6CACF","sources":["../node_modules/@uiw/react-textarea-code-editor/esm/style/index.css"],"sourcesContent":["@media (prefers-color-scheme: dark) {\n .w-tc-editor {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n }\n}\n@media (prefers-color-scheme: light) {\n .w-tc-editor {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n }\n}\n[data-color-mode*='dark'] .w-tc-editor,\n[data-color-mode*='dark'] .w-tc-editor-var,\nbody[data-color-mode*='dark'] {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n}\n[data-color-mode*='light'] .w-tc-editor,\n[data-color-mode*='light'] .w-tc-editor-var,\nbody[data-color-mode*='light'] {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #f6f8fa;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n}\n.w-tc-editor {\n font-family: inherit;\n font-size: 12px;\n background-color: var(--color-canvas-subtle);\n color: var(--color-fg-default);\n}\n.w-tc-editor-text,\n.w-tc-editor-preview {\n min-height: 16px;\n}\n.w-tc-editor-preview pre {\n margin: 0;\n padding: 0;\n white-space: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n.w-tc-editor-preview pre code {\n font-family: inherit;\n}\n.w-tc-editor code[class*='language-'] .token.cdata,\n.w-tc-editor pre[class*='language-'] .token.cdata,\n.w-tc-editor code[class*='language-'] .token.comment,\n.w-tc-editor pre[class*='language-'] .token.comment,\n.w-tc-editor code[class*='language-'] .token.doctype,\n.w-tc-editor pre[class*='language-'] .token.doctype,\n.w-tc-editor code[class*='language-'] .token.prolog,\n.w-tc-editor pre[class*='language-'] .token.prolog {\n color: var(--color-prettylights-syntax-comment);\n}\n.w-tc-editor code[class*='language-'] .token.punctuation,\n.w-tc-editor pre[class*='language-'] .token.punctuation {\n color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);\n}\n.w-tc-editor code[class*='language-'] .namespace,\n.w-tc-editor pre[class*='language-'] .namespace {\n opacity: 0.7;\n}\n.w-tc-editor code[class*='language-'] .token.boolean,\n.w-tc-editor pre[class*='language-'] .token.boolean,\n.w-tc-editor code[class*='language-'] .token.constant,\n.w-tc-editor pre[class*='language-'] .token.constant,\n.w-tc-editor code[class*='language-'] .token.deleted,\n.w-tc-editor pre[class*='language-'] .token.deleted,\n.w-tc-editor code[class*='language-'] .token.number,\n.w-tc-editor pre[class*='language-'] .token.number,\n.w-tc-editor code[class*='language-'] .token.symbol,\n.w-tc-editor pre[class*='language-'] .token.symbol {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.builtin,\n.w-tc-editor pre[class*='language-'] .token.builtin,\n.w-tc-editor code[class*='language-'] .token.char,\n.w-tc-editor pre[class*='language-'] .token.char,\n.w-tc-editor code[class*='language-'] .token.inserted,\n.w-tc-editor pre[class*='language-'] .token.inserted,\n.w-tc-editor code[class*='language-'] .token.selector,\n.w-tc-editor pre[class*='language-'] .token.selector,\n.w-tc-editor code[class*='language-'] .token.string,\n.w-tc-editor pre[class*='language-'] .token.string {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .style .token.string,\n.w-tc-editor pre[class*='language-'] .style .token.string,\n.w-tc-editor code[class*='language-'] .token.entity,\n.w-tc-editor pre[class*='language-'] .token.entity,\n.w-tc-editor code[class*='language-'] .token.property,\n.w-tc-editor pre[class*='language-'] .token.property,\n.w-tc-editor code[class*='language-'] .token.operator,\n.w-tc-editor pre[class*='language-'] .token.operator,\n.w-tc-editor code[class*='language-'] .token.url,\n.w-tc-editor pre[class*='language-'] .token.url {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.atrule,\n.w-tc-editor pre[class*='language-'] .token.atrule,\n.w-tc-editor code[class*='language-'] .token.property-access .token.method,\n.w-tc-editor pre[class*='language-'] .token.property-access .token.method,\n.w-tc-editor code[class*='language-'] .token.keyword,\n.w-tc-editor pre[class*='language-'] .token.keyword {\n color: var(--color-prettylights-syntax-keyword);\n}\n.w-tc-editor code[class*='language-'] .token.function,\n.w-tc-editor pre[class*='language-'] .token.function {\n color: var(--color-prettylights-syntax-string);\n}\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important,\n.w-tc-editor code[class*='language-'] .token.regex,\n.w-tc-editor pre[class*='language-'] .token.regex,\n.w-tc-editor code[class*='language-'] .token.variable,\n.w-tc-editor pre[class*='language-'] .token.variable {\n color: var(--color-prettylights-syntax-string-regexp);\n}\n.w-tc-editor code[class*='language-'] .token.bold,\n.w-tc-editor pre[class*='language-'] .token.bold,\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important {\n color: var(--color-prettylights-syntax-markup-bold);\n}\n.w-tc-editor code[class*='language-'] .token.tag,\n.w-tc-editor pre[class*='language-'] .token.tag {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.attr-value,\n.w-tc-editor pre[class*='language-'] .token.attr-value,\n.w-tc-editor code[class*='language-'] .token.attr-name,\n.w-tc-editor pre[class*='language-'] .token.attr-name {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.selector .class,\n.w-tc-editor pre[class*='language-'] .token.selector .class,\n.w-tc-editor code[class*='language-'] .token.class-name,\n.w-tc-editor pre[class*='language-'] .token.class-name {\n color: var(--color-prettylights-syntax-entity);\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/web-app/build/static/css/507.29780968.chunk.css b/web-app/build/static/css/507.29780968.chunk.css
new file mode 100644
index 00000000000..12513743870
--- /dev/null
+++ b/web-app/build/static/css/507.29780968.chunk.css
@@ -0,0 +1,2 @@
+@media (prefers-color-scheme:dark){.w-tc-editor{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}}@media (prefers-color-scheme:light){.w-tc-editor{--color-fg-default:#24292f;--color-canvas-subtle:#f6f8fa;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}}.w-tc-editor[data-color-mode*=dark],[data-color-mode*=dark] .w-tc-editor,[data-color-mode*=dark] .w-tc-editor-var,body[data-color-mode*=dark]{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}.w-tc-editor[data-color-mode*=light],[data-color-mode*=light] .w-tc-editor,[data-color-mode*=light] .w-tc-editor-var,body[data-color-mode*=light]{--color-fg-default:#24292f;--color-canvas-subtle:#f6f8fa;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}.w-tc-editor{background-color:var(--color-canvas-subtle);color:var(--color-fg-default);font-family:inherit;font-size:12px}.w-tc-editor-preview,.w-tc-editor-text{min-height:16px}.w-tc-editor-preview pre{font-family:inherit;font-size:inherit;margin:0;padding:0;white-space:inherit}.w-tc-editor-preview pre code{font-family:inherit}.w-tc-editor code[class*=language-] .token.cdata,.w-tc-editor code[class*=language-] .token.comment,.w-tc-editor code[class*=language-] .token.doctype,.w-tc-editor code[class*=language-] .token.prolog,.w-tc-editor pre[class*=language-] .token.cdata,.w-tc-editor pre[class*=language-] .token.comment,.w-tc-editor pre[class*=language-] .token.doctype,.w-tc-editor pre[class*=language-] .token.prolog{color:var(--color-prettylights-syntax-comment)}.w-tc-editor code[class*=language-] .token.punctuation,.w-tc-editor pre[class*=language-] .token.punctuation{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.w-tc-editor code[class*=language-] .namespace,.w-tc-editor pre[class*=language-] .namespace{opacity:.7}.w-tc-editor code[class*=language-] .token.boolean,.w-tc-editor code[class*=language-] .token.constant,.w-tc-editor code[class*=language-] .token.deleted,.w-tc-editor code[class*=language-] .token.number,.w-tc-editor code[class*=language-] .token.symbol,.w-tc-editor pre[class*=language-] .token.boolean,.w-tc-editor pre[class*=language-] .token.constant,.w-tc-editor pre[class*=language-] .token.deleted,.w-tc-editor pre[class*=language-] .token.number,.w-tc-editor pre[class*=language-] .token.symbol{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .style .token.string,.w-tc-editor code[class*=language-] .token.builtin,.w-tc-editor code[class*=language-] .token.char,.w-tc-editor code[class*=language-] .token.entity,.w-tc-editor code[class*=language-] .token.inserted,.w-tc-editor code[class*=language-] .token.operator,.w-tc-editor code[class*=language-] .token.property,.w-tc-editor code[class*=language-] .token.selector,.w-tc-editor code[class*=language-] .token.string,.w-tc-editor code[class*=language-] .token.url,.w-tc-editor pre[class*=language-] .style .token.string,.w-tc-editor pre[class*=language-] .token.builtin,.w-tc-editor pre[class*=language-] .token.char,.w-tc-editor pre[class*=language-] .token.entity,.w-tc-editor pre[class*=language-] .token.inserted,.w-tc-editor pre[class*=language-] .token.operator,.w-tc-editor pre[class*=language-] .token.property,.w-tc-editor pre[class*=language-] .token.selector,.w-tc-editor pre[class*=language-] .token.string,.w-tc-editor pre[class*=language-] .token.url{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.atrule,.w-tc-editor code[class*=language-] .token.keyword,.w-tc-editor code[class*=language-] .token.property-access .token.method,.w-tc-editor pre[class*=language-] .token.atrule,.w-tc-editor pre[class*=language-] .token.keyword,.w-tc-editor pre[class*=language-] .token.property-access .token.method{color:var(--color-prettylights-syntax-keyword)}.w-tc-editor code[class*=language-] .token.function,.w-tc-editor pre[class*=language-] .token.function{color:var(--color-prettylights-syntax-string)}.w-tc-editor code[class*=language-] .token.important,.w-tc-editor code[class*=language-] .token.regex,.w-tc-editor code[class*=language-] .token.variable,.w-tc-editor pre[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.regex,.w-tc-editor pre[class*=language-] .token.variable{color:var(--color-prettylights-syntax-string-regexp)}.w-tc-editor code[class*=language-] .token.bold,.w-tc-editor code[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.bold,.w-tc-editor pre[class*=language-] .token.important{color:var(--color-prettylights-syntax-markup-bold)}.w-tc-editor code[class*=language-] .token.tag,.w-tc-editor pre[class*=language-] .token.tag{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .token.attr-name,.w-tc-editor code[class*=language-] .token.attr-value,.w-tc-editor pre[class*=language-] .token.attr-name,.w-tc-editor pre[class*=language-] .token.attr-value{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.class-name,.w-tc-editor code[class*=language-] .token.selector .class,.w-tc-editor pre[class*=language-] .token.class-name,.w-tc-editor pre[class*=language-] .token.selector .class{color:var(--color-prettylights-syntax-entity)}
+/*# sourceMappingURL=507.29780968.chunk.css.map*/
\ No newline at end of file
diff --git a/web-app/build/static/css/507.29780968.chunk.css.map b/web-app/build/static/css/507.29780968.chunk.css.map
new file mode 100644
index 00000000000..4b905f5d5c2
--- /dev/null
+++ b/web-app/build/static/css/507.29780968.chunk.css.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/css/507.29780968.chunk.css","mappings":"AAAA,mCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,oCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,8IAIE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,kJAIE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,aAGE,2CAA4C,CAC5C,6BAA8B,CAH9B,mBAAoB,CACpB,cAGF,CACA,uCAEE,eACF,CACA,yBAIE,mBAAoB,CACpB,iBAAkB,CAJlB,QAAS,CACT,SAAU,CACV,mBAGF,CACA,8BACE,mBACF,CACA,8YAQE,8CACF,CACA,6GAEE,gEACF,CACA,6FAEE,UACF,CACA,ufAUE,iDACF,CAaA,o/BAUE,+CACF,CACA,yVAME,8CACF,CACA,uGAEE,6CACF,CACA,iTAME,oDACF,CACA,wMAIE,kDACF,CACA,6FAEE,iDACF,CACA,oNAIE,+CACF,CACA,gOAIE,6CACF","sources":["../node_modules/@uiw/react-textarea-code-editor/esm/style/index.css"],"sourcesContent":["@media (prefers-color-scheme: dark) {\n .w-tc-editor {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n }\n}\n@media (prefers-color-scheme: light) {\n .w-tc-editor {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #f6f8fa;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n }\n}\n.w-tc-editor[data-color-mode*='dark'],\n[data-color-mode*='dark'] .w-tc-editor,\n[data-color-mode*='dark'] .w-tc-editor-var,\nbody[data-color-mode*='dark'] {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n}\n.w-tc-editor[data-color-mode*='light'],\n[data-color-mode*='light'] .w-tc-editor,\n[data-color-mode*='light'] .w-tc-editor-var,\nbody[data-color-mode*='light'] {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #f6f8fa;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n}\n.w-tc-editor {\n font-family: inherit;\n font-size: 12px;\n background-color: var(--color-canvas-subtle);\n color: var(--color-fg-default);\n}\n.w-tc-editor-text,\n.w-tc-editor-preview {\n min-height: 16px;\n}\n.w-tc-editor-preview pre {\n margin: 0;\n padding: 0;\n white-space: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n.w-tc-editor-preview pre code {\n font-family: inherit;\n}\n.w-tc-editor code[class*='language-'] .token.cdata,\n.w-tc-editor pre[class*='language-'] .token.cdata,\n.w-tc-editor code[class*='language-'] .token.comment,\n.w-tc-editor pre[class*='language-'] .token.comment,\n.w-tc-editor code[class*='language-'] .token.doctype,\n.w-tc-editor pre[class*='language-'] .token.doctype,\n.w-tc-editor code[class*='language-'] .token.prolog,\n.w-tc-editor pre[class*='language-'] .token.prolog {\n color: var(--color-prettylights-syntax-comment);\n}\n.w-tc-editor code[class*='language-'] .token.punctuation,\n.w-tc-editor pre[class*='language-'] .token.punctuation {\n color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);\n}\n.w-tc-editor code[class*='language-'] .namespace,\n.w-tc-editor pre[class*='language-'] .namespace {\n opacity: 0.7;\n}\n.w-tc-editor code[class*='language-'] .token.boolean,\n.w-tc-editor pre[class*='language-'] .token.boolean,\n.w-tc-editor code[class*='language-'] .token.constant,\n.w-tc-editor pre[class*='language-'] .token.constant,\n.w-tc-editor code[class*='language-'] .token.deleted,\n.w-tc-editor pre[class*='language-'] .token.deleted,\n.w-tc-editor code[class*='language-'] .token.number,\n.w-tc-editor pre[class*='language-'] .token.number,\n.w-tc-editor code[class*='language-'] .token.symbol,\n.w-tc-editor pre[class*='language-'] .token.symbol {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.builtin,\n.w-tc-editor pre[class*='language-'] .token.builtin,\n.w-tc-editor code[class*='language-'] .token.char,\n.w-tc-editor pre[class*='language-'] .token.char,\n.w-tc-editor code[class*='language-'] .token.inserted,\n.w-tc-editor pre[class*='language-'] .token.inserted,\n.w-tc-editor code[class*='language-'] .token.selector,\n.w-tc-editor pre[class*='language-'] .token.selector,\n.w-tc-editor code[class*='language-'] .token.string,\n.w-tc-editor pre[class*='language-'] .token.string {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .style .token.string,\n.w-tc-editor pre[class*='language-'] .style .token.string,\n.w-tc-editor code[class*='language-'] .token.entity,\n.w-tc-editor pre[class*='language-'] .token.entity,\n.w-tc-editor code[class*='language-'] .token.property,\n.w-tc-editor pre[class*='language-'] .token.property,\n.w-tc-editor code[class*='language-'] .token.operator,\n.w-tc-editor pre[class*='language-'] .token.operator,\n.w-tc-editor code[class*='language-'] .token.url,\n.w-tc-editor pre[class*='language-'] .token.url {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.atrule,\n.w-tc-editor pre[class*='language-'] .token.atrule,\n.w-tc-editor code[class*='language-'] .token.property-access .token.method,\n.w-tc-editor pre[class*='language-'] .token.property-access .token.method,\n.w-tc-editor code[class*='language-'] .token.keyword,\n.w-tc-editor pre[class*='language-'] .token.keyword {\n color: var(--color-prettylights-syntax-keyword);\n}\n.w-tc-editor code[class*='language-'] .token.function,\n.w-tc-editor pre[class*='language-'] .token.function {\n color: var(--color-prettylights-syntax-string);\n}\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important,\n.w-tc-editor code[class*='language-'] .token.regex,\n.w-tc-editor pre[class*='language-'] .token.regex,\n.w-tc-editor code[class*='language-'] .token.variable,\n.w-tc-editor pre[class*='language-'] .token.variable {\n color: var(--color-prettylights-syntax-string-regexp);\n}\n.w-tc-editor code[class*='language-'] .token.bold,\n.w-tc-editor pre[class*='language-'] .token.bold,\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important {\n color: var(--color-prettylights-syntax-markup-bold);\n}\n.w-tc-editor code[class*='language-'] .token.tag,\n.w-tc-editor pre[class*='language-'] .token.tag {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.attr-value,\n.w-tc-editor pre[class*='language-'] .token.attr-value,\n.w-tc-editor code[class*='language-'] .token.attr-name,\n.w-tc-editor pre[class*='language-'] .token.attr-name {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.selector .class,\n.w-tc-editor pre[class*='language-'] .token.selector .class,\n.w-tc-editor code[class*='language-'] .token.class-name,\n.w-tc-editor pre[class*='language-'] .token.class-name {\n color: var(--color-prettylights-syntax-entity);\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/web-app/build/static/css/507.bc418f92.chunk.css b/web-app/build/static/css/507.bc418f92.chunk.css
deleted file mode 100644
index bad234529c9..00000000000
--- a/web-app/build/static/css/507.bc418f92.chunk.css
+++ /dev/null
@@ -1,2 +0,0 @@
-@media (prefers-color-scheme:dark){.w-tc-editor{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}}@media (prefers-color-scheme:light){.w-tc-editor{--color-fg-default:#24292f;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}}[data-color-mode*=dark] .w-tc-editor,[data-color-mode*=dark] .w-tc-editor-var,body[data-color-mode*=dark]{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}[data-color-mode*=light] .w-tc-editor,[data-color-mode*=light] .w-tc-editor-var,body[data-color-mode*=light]{--color-fg-default:#24292f;--color-canvas-subtle:#f6f8fa;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}.w-tc-editor{background-color:var(--color-canvas-subtle);color:var(--color-fg-default);font-family:inherit;font-size:12px}.w-tc-editor-preview,.w-tc-editor-text{min-height:16px}.w-tc-editor-preview pre{font-family:inherit;font-size:inherit;margin:0;padding:0;white-space:inherit}.w-tc-editor-preview pre code{font-family:inherit}.w-tc-editor code[class*=language-] .token.cdata,.w-tc-editor code[class*=language-] .token.comment,.w-tc-editor code[class*=language-] .token.doctype,.w-tc-editor code[class*=language-] .token.prolog,.w-tc-editor pre[class*=language-] .token.cdata,.w-tc-editor pre[class*=language-] .token.comment,.w-tc-editor pre[class*=language-] .token.doctype,.w-tc-editor pre[class*=language-] .token.prolog{color:var(--color-prettylights-syntax-comment)}.w-tc-editor code[class*=language-] .token.punctuation,.w-tc-editor pre[class*=language-] .token.punctuation{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.w-tc-editor code[class*=language-] .namespace,.w-tc-editor pre[class*=language-] .namespace{opacity:.7}.w-tc-editor code[class*=language-] .token.boolean,.w-tc-editor code[class*=language-] .token.constant,.w-tc-editor code[class*=language-] .token.deleted,.w-tc-editor code[class*=language-] .token.number,.w-tc-editor code[class*=language-] .token.symbol,.w-tc-editor pre[class*=language-] .token.boolean,.w-tc-editor pre[class*=language-] .token.constant,.w-tc-editor pre[class*=language-] .token.deleted,.w-tc-editor pre[class*=language-] .token.number,.w-tc-editor pre[class*=language-] .token.symbol{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .style .token.string,.w-tc-editor code[class*=language-] .token.builtin,.w-tc-editor code[class*=language-] .token.char,.w-tc-editor code[class*=language-] .token.entity,.w-tc-editor code[class*=language-] .token.inserted,.w-tc-editor code[class*=language-] .token.operator,.w-tc-editor code[class*=language-] .token.property,.w-tc-editor code[class*=language-] .token.selector,.w-tc-editor code[class*=language-] .token.string,.w-tc-editor code[class*=language-] .token.url,.w-tc-editor pre[class*=language-] .style .token.string,.w-tc-editor pre[class*=language-] .token.builtin,.w-tc-editor pre[class*=language-] .token.char,.w-tc-editor pre[class*=language-] .token.entity,.w-tc-editor pre[class*=language-] .token.inserted,.w-tc-editor pre[class*=language-] .token.operator,.w-tc-editor pre[class*=language-] .token.property,.w-tc-editor pre[class*=language-] .token.selector,.w-tc-editor pre[class*=language-] .token.string,.w-tc-editor pre[class*=language-] .token.url{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.atrule,.w-tc-editor code[class*=language-] .token.keyword,.w-tc-editor code[class*=language-] .token.property-access .token.method,.w-tc-editor pre[class*=language-] .token.atrule,.w-tc-editor pre[class*=language-] .token.keyword,.w-tc-editor pre[class*=language-] .token.property-access .token.method{color:var(--color-prettylights-syntax-keyword)}.w-tc-editor code[class*=language-] .token.function,.w-tc-editor pre[class*=language-] .token.function{color:var(--color-prettylights-syntax-string)}.w-tc-editor code[class*=language-] .token.important,.w-tc-editor code[class*=language-] .token.regex,.w-tc-editor code[class*=language-] .token.variable,.w-tc-editor pre[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.regex,.w-tc-editor pre[class*=language-] .token.variable{color:var(--color-prettylights-syntax-string-regexp)}.w-tc-editor code[class*=language-] .token.bold,.w-tc-editor code[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.bold,.w-tc-editor pre[class*=language-] .token.important{color:var(--color-prettylights-syntax-markup-bold)}.w-tc-editor code[class*=language-] .token.tag,.w-tc-editor pre[class*=language-] .token.tag{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .token.attr-name,.w-tc-editor code[class*=language-] .token.attr-value,.w-tc-editor pre[class*=language-] .token.attr-name,.w-tc-editor pre[class*=language-] .token.attr-value{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.class-name,.w-tc-editor code[class*=language-] .token.selector .class,.w-tc-editor pre[class*=language-] .token.class-name,.w-tc-editor pre[class*=language-] .token.selector .class{color:var(--color-prettylights-syntax-entity)}
-/*# sourceMappingURL=507.bc418f92.chunk.css.map*/
\ No newline at end of file
diff --git a/web-app/build/static/css/507.bc418f92.chunk.css.map b/web-app/build/static/css/507.bc418f92.chunk.css.map
deleted file mode 100644
index e596f58f671..00000000000
--- a/web-app/build/static/css/507.bc418f92.chunk.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/css/507.bc418f92.chunk.css","mappings":"AAAA,mCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,oCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,0GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,6GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,aAGE,2CAA4C,CAC5C,6BAA8B,CAH9B,mBAAoB,CACpB,cAGF,CACA,uCAEE,eACF,CACA,yBAIE,mBAAoB,CACpB,iBAAkB,CAJlB,QAAS,CACT,SAAU,CACV,mBAGF,CACA,8BACE,mBACF,CACA,8YAQE,8CACF,CACA,6GAEE,gEACF,CACA,6FAEE,UACF,CACA,ufAUE,iDACF,CAaA,o/BAUE,+CACF,CACA,yVAME,8CACF,CACA,uGAEE,6CACF,CACA,iTAME,oDACF,CACA,wMAIE,kDACF,CACA,6FAEE,iDACF,CACA,oNAIE,+CACF,CACA,gOAIE,6CACF","sources":["../node_modules/@uiw/react-textarea-code-editor/esm/style/index.css"],"sourcesContent":["@media (prefers-color-scheme: dark) {\n .w-tc-editor {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n }\n}\n@media (prefers-color-scheme: light) {\n .w-tc-editor {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n }\n}\n[data-color-mode*='dark'] .w-tc-editor,\n[data-color-mode*='dark'] .w-tc-editor-var,\nbody[data-color-mode*='dark'] {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n}\n[data-color-mode*='light'] .w-tc-editor,\n[data-color-mode*='light'] .w-tc-editor-var,\nbody[data-color-mode*='light'] {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #f6f8fa;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n}\n.w-tc-editor {\n font-family: inherit;\n font-size: 12px;\n background-color: var(--color-canvas-subtle);\n color: var(--color-fg-default);\n}\n.w-tc-editor-text,\n.w-tc-editor-preview {\n min-height: 16px;\n}\n.w-tc-editor-preview pre {\n margin: 0;\n padding: 0;\n white-space: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n.w-tc-editor-preview pre code {\n font-family: inherit;\n}\n.w-tc-editor code[class*='language-'] .token.cdata,\n.w-tc-editor pre[class*='language-'] .token.cdata,\n.w-tc-editor code[class*='language-'] .token.comment,\n.w-tc-editor pre[class*='language-'] .token.comment,\n.w-tc-editor code[class*='language-'] .token.doctype,\n.w-tc-editor pre[class*='language-'] .token.doctype,\n.w-tc-editor code[class*='language-'] .token.prolog,\n.w-tc-editor pre[class*='language-'] .token.prolog {\n color: var(--color-prettylights-syntax-comment);\n}\n.w-tc-editor code[class*='language-'] .token.punctuation,\n.w-tc-editor pre[class*='language-'] .token.punctuation {\n color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);\n}\n.w-tc-editor code[class*='language-'] .namespace,\n.w-tc-editor pre[class*='language-'] .namespace {\n opacity: 0.7;\n}\n.w-tc-editor code[class*='language-'] .token.boolean,\n.w-tc-editor pre[class*='language-'] .token.boolean,\n.w-tc-editor code[class*='language-'] .token.constant,\n.w-tc-editor pre[class*='language-'] .token.constant,\n.w-tc-editor code[class*='language-'] .token.deleted,\n.w-tc-editor pre[class*='language-'] .token.deleted,\n.w-tc-editor code[class*='language-'] .token.number,\n.w-tc-editor pre[class*='language-'] .token.number,\n.w-tc-editor code[class*='language-'] .token.symbol,\n.w-tc-editor pre[class*='language-'] .token.symbol {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.builtin,\n.w-tc-editor pre[class*='language-'] .token.builtin,\n.w-tc-editor code[class*='language-'] .token.char,\n.w-tc-editor pre[class*='language-'] .token.char,\n.w-tc-editor code[class*='language-'] .token.inserted,\n.w-tc-editor pre[class*='language-'] .token.inserted,\n.w-tc-editor code[class*='language-'] .token.selector,\n.w-tc-editor pre[class*='language-'] .token.selector,\n.w-tc-editor code[class*='language-'] .token.string,\n.w-tc-editor pre[class*='language-'] .token.string {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .style .token.string,\n.w-tc-editor pre[class*='language-'] .style .token.string,\n.w-tc-editor code[class*='language-'] .token.entity,\n.w-tc-editor pre[class*='language-'] .token.entity,\n.w-tc-editor code[class*='language-'] .token.property,\n.w-tc-editor pre[class*='language-'] .token.property,\n.w-tc-editor code[class*='language-'] .token.operator,\n.w-tc-editor pre[class*='language-'] .token.operator,\n.w-tc-editor code[class*='language-'] .token.url,\n.w-tc-editor pre[class*='language-'] .token.url {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.atrule,\n.w-tc-editor pre[class*='language-'] .token.atrule,\n.w-tc-editor code[class*='language-'] .token.property-access .token.method,\n.w-tc-editor pre[class*='language-'] .token.property-access .token.method,\n.w-tc-editor code[class*='language-'] .token.keyword,\n.w-tc-editor pre[class*='language-'] .token.keyword {\n color: var(--color-prettylights-syntax-keyword);\n}\n.w-tc-editor code[class*='language-'] .token.function,\n.w-tc-editor pre[class*='language-'] .token.function {\n color: var(--color-prettylights-syntax-string);\n}\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important,\n.w-tc-editor code[class*='language-'] .token.regex,\n.w-tc-editor pre[class*='language-'] .token.regex,\n.w-tc-editor code[class*='language-'] .token.variable,\n.w-tc-editor pre[class*='language-'] .token.variable {\n color: var(--color-prettylights-syntax-string-regexp);\n}\n.w-tc-editor code[class*='language-'] .token.bold,\n.w-tc-editor pre[class*='language-'] .token.bold,\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important {\n color: var(--color-prettylights-syntax-markup-bold);\n}\n.w-tc-editor code[class*='language-'] .token.tag,\n.w-tc-editor pre[class*='language-'] .token.tag {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.attr-value,\n.w-tc-editor pre[class*='language-'] .token.attr-value,\n.w-tc-editor code[class*='language-'] .token.attr-name,\n.w-tc-editor pre[class*='language-'] .token.attr-name {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.selector .class,\n.w-tc-editor pre[class*='language-'] .token.selector .class,\n.w-tc-editor code[class*='language-'] .token.class-name,\n.w-tc-editor pre[class*='language-'] .token.class-name {\n color: var(--color-prettylights-syntax-entity);\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/web-app/build/static/css/797.29780968.chunk.css b/web-app/build/static/css/797.29780968.chunk.css
new file mode 100644
index 00000000000..491c10175bb
--- /dev/null
+++ b/web-app/build/static/css/797.29780968.chunk.css
@@ -0,0 +1,2 @@
+@media (prefers-color-scheme:dark){.w-tc-editor{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}}@media (prefers-color-scheme:light){.w-tc-editor{--color-fg-default:#24292f;--color-canvas-subtle:#f6f8fa;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}}.w-tc-editor[data-color-mode*=dark],[data-color-mode*=dark] .w-tc-editor,[data-color-mode*=dark] .w-tc-editor-var,body[data-color-mode*=dark]{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}.w-tc-editor[data-color-mode*=light],[data-color-mode*=light] .w-tc-editor,[data-color-mode*=light] .w-tc-editor-var,body[data-color-mode*=light]{--color-fg-default:#24292f;--color-canvas-subtle:#f6f8fa;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}.w-tc-editor{background-color:var(--color-canvas-subtle);color:var(--color-fg-default);font-family:inherit;font-size:12px}.w-tc-editor-preview,.w-tc-editor-text{min-height:16px}.w-tc-editor-preview pre{font-family:inherit;font-size:inherit;margin:0;padding:0;white-space:inherit}.w-tc-editor-preview pre code{font-family:inherit}.w-tc-editor code[class*=language-] .token.cdata,.w-tc-editor code[class*=language-] .token.comment,.w-tc-editor code[class*=language-] .token.doctype,.w-tc-editor code[class*=language-] .token.prolog,.w-tc-editor pre[class*=language-] .token.cdata,.w-tc-editor pre[class*=language-] .token.comment,.w-tc-editor pre[class*=language-] .token.doctype,.w-tc-editor pre[class*=language-] .token.prolog{color:var(--color-prettylights-syntax-comment)}.w-tc-editor code[class*=language-] .token.punctuation,.w-tc-editor pre[class*=language-] .token.punctuation{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.w-tc-editor code[class*=language-] .namespace,.w-tc-editor pre[class*=language-] .namespace{opacity:.7}.w-tc-editor code[class*=language-] .token.boolean,.w-tc-editor code[class*=language-] .token.constant,.w-tc-editor code[class*=language-] .token.deleted,.w-tc-editor code[class*=language-] .token.number,.w-tc-editor code[class*=language-] .token.symbol,.w-tc-editor pre[class*=language-] .token.boolean,.w-tc-editor pre[class*=language-] .token.constant,.w-tc-editor pre[class*=language-] .token.deleted,.w-tc-editor pre[class*=language-] .token.number,.w-tc-editor pre[class*=language-] .token.symbol{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .style .token.string,.w-tc-editor code[class*=language-] .token.builtin,.w-tc-editor code[class*=language-] .token.char,.w-tc-editor code[class*=language-] .token.entity,.w-tc-editor code[class*=language-] .token.inserted,.w-tc-editor code[class*=language-] .token.operator,.w-tc-editor code[class*=language-] .token.property,.w-tc-editor code[class*=language-] .token.selector,.w-tc-editor code[class*=language-] .token.string,.w-tc-editor code[class*=language-] .token.url,.w-tc-editor pre[class*=language-] .style .token.string,.w-tc-editor pre[class*=language-] .token.builtin,.w-tc-editor pre[class*=language-] .token.char,.w-tc-editor pre[class*=language-] .token.entity,.w-tc-editor pre[class*=language-] .token.inserted,.w-tc-editor pre[class*=language-] .token.operator,.w-tc-editor pre[class*=language-] .token.property,.w-tc-editor pre[class*=language-] .token.selector,.w-tc-editor pre[class*=language-] .token.string,.w-tc-editor pre[class*=language-] .token.url{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.atrule,.w-tc-editor code[class*=language-] .token.keyword,.w-tc-editor code[class*=language-] .token.property-access .token.method,.w-tc-editor pre[class*=language-] .token.atrule,.w-tc-editor pre[class*=language-] .token.keyword,.w-tc-editor pre[class*=language-] .token.property-access .token.method{color:var(--color-prettylights-syntax-keyword)}.w-tc-editor code[class*=language-] .token.function,.w-tc-editor pre[class*=language-] .token.function{color:var(--color-prettylights-syntax-string)}.w-tc-editor code[class*=language-] .token.important,.w-tc-editor code[class*=language-] .token.regex,.w-tc-editor code[class*=language-] .token.variable,.w-tc-editor pre[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.regex,.w-tc-editor pre[class*=language-] .token.variable{color:var(--color-prettylights-syntax-string-regexp)}.w-tc-editor code[class*=language-] .token.bold,.w-tc-editor code[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.bold,.w-tc-editor pre[class*=language-] .token.important{color:var(--color-prettylights-syntax-markup-bold)}.w-tc-editor code[class*=language-] .token.tag,.w-tc-editor pre[class*=language-] .token.tag{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .token.attr-name,.w-tc-editor code[class*=language-] .token.attr-value,.w-tc-editor pre[class*=language-] .token.attr-name,.w-tc-editor pre[class*=language-] .token.attr-value{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.class-name,.w-tc-editor code[class*=language-] .token.selector .class,.w-tc-editor pre[class*=language-] .token.class-name,.w-tc-editor pre[class*=language-] .token.selector .class{color:var(--color-prettylights-syntax-entity)}
+/*# sourceMappingURL=797.29780968.chunk.css.map*/
\ No newline at end of file
diff --git a/web-app/build/static/css/797.29780968.chunk.css.map b/web-app/build/static/css/797.29780968.chunk.css.map
new file mode 100644
index 00000000000..e8f3cd1ecf1
--- /dev/null
+++ b/web-app/build/static/css/797.29780968.chunk.css.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/css/797.29780968.chunk.css","mappings":"AAAA,mCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,oCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,8IAIE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,kJAIE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,aAGE,2CAA4C,CAC5C,6BAA8B,CAH9B,mBAAoB,CACpB,cAGF,CACA,uCAEE,eACF,CACA,yBAIE,mBAAoB,CACpB,iBAAkB,CAJlB,QAAS,CACT,SAAU,CACV,mBAGF,CACA,8BACE,mBACF,CACA,8YAQE,8CACF,CACA,6GAEE,gEACF,CACA,6FAEE,UACF,CACA,ufAUE,iDACF,CAaA,o/BAUE,+CACF,CACA,yVAME,8CACF,CACA,uGAEE,6CACF,CACA,iTAME,oDACF,CACA,wMAIE,kDACF,CACA,6FAEE,iDACF,CACA,oNAIE,+CACF,CACA,gOAIE,6CACF","sources":["../node_modules/@uiw/react-textarea-code-editor/esm/style/index.css"],"sourcesContent":["@media (prefers-color-scheme: dark) {\n .w-tc-editor {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n }\n}\n@media (prefers-color-scheme: light) {\n .w-tc-editor {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #f6f8fa;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n }\n}\n.w-tc-editor[data-color-mode*='dark'],\n[data-color-mode*='dark'] .w-tc-editor,\n[data-color-mode*='dark'] .w-tc-editor-var,\nbody[data-color-mode*='dark'] {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n}\n.w-tc-editor[data-color-mode*='light'],\n[data-color-mode*='light'] .w-tc-editor,\n[data-color-mode*='light'] .w-tc-editor-var,\nbody[data-color-mode*='light'] {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #f6f8fa;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n}\n.w-tc-editor {\n font-family: inherit;\n font-size: 12px;\n background-color: var(--color-canvas-subtle);\n color: var(--color-fg-default);\n}\n.w-tc-editor-text,\n.w-tc-editor-preview {\n min-height: 16px;\n}\n.w-tc-editor-preview pre {\n margin: 0;\n padding: 0;\n white-space: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n.w-tc-editor-preview pre code {\n font-family: inherit;\n}\n.w-tc-editor code[class*='language-'] .token.cdata,\n.w-tc-editor pre[class*='language-'] .token.cdata,\n.w-tc-editor code[class*='language-'] .token.comment,\n.w-tc-editor pre[class*='language-'] .token.comment,\n.w-tc-editor code[class*='language-'] .token.doctype,\n.w-tc-editor pre[class*='language-'] .token.doctype,\n.w-tc-editor code[class*='language-'] .token.prolog,\n.w-tc-editor pre[class*='language-'] .token.prolog {\n color: var(--color-prettylights-syntax-comment);\n}\n.w-tc-editor code[class*='language-'] .token.punctuation,\n.w-tc-editor pre[class*='language-'] .token.punctuation {\n color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);\n}\n.w-tc-editor code[class*='language-'] .namespace,\n.w-tc-editor pre[class*='language-'] .namespace {\n opacity: 0.7;\n}\n.w-tc-editor code[class*='language-'] .token.boolean,\n.w-tc-editor pre[class*='language-'] .token.boolean,\n.w-tc-editor code[class*='language-'] .token.constant,\n.w-tc-editor pre[class*='language-'] .token.constant,\n.w-tc-editor code[class*='language-'] .token.deleted,\n.w-tc-editor pre[class*='language-'] .token.deleted,\n.w-tc-editor code[class*='language-'] .token.number,\n.w-tc-editor pre[class*='language-'] .token.number,\n.w-tc-editor code[class*='language-'] .token.symbol,\n.w-tc-editor pre[class*='language-'] .token.symbol {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.builtin,\n.w-tc-editor pre[class*='language-'] .token.builtin,\n.w-tc-editor code[class*='language-'] .token.char,\n.w-tc-editor pre[class*='language-'] .token.char,\n.w-tc-editor code[class*='language-'] .token.inserted,\n.w-tc-editor pre[class*='language-'] .token.inserted,\n.w-tc-editor code[class*='language-'] .token.selector,\n.w-tc-editor pre[class*='language-'] .token.selector,\n.w-tc-editor code[class*='language-'] .token.string,\n.w-tc-editor pre[class*='language-'] .token.string {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .style .token.string,\n.w-tc-editor pre[class*='language-'] .style .token.string,\n.w-tc-editor code[class*='language-'] .token.entity,\n.w-tc-editor pre[class*='language-'] .token.entity,\n.w-tc-editor code[class*='language-'] .token.property,\n.w-tc-editor pre[class*='language-'] .token.property,\n.w-tc-editor code[class*='language-'] .token.operator,\n.w-tc-editor pre[class*='language-'] .token.operator,\n.w-tc-editor code[class*='language-'] .token.url,\n.w-tc-editor pre[class*='language-'] .token.url {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.atrule,\n.w-tc-editor pre[class*='language-'] .token.atrule,\n.w-tc-editor code[class*='language-'] .token.property-access .token.method,\n.w-tc-editor pre[class*='language-'] .token.property-access .token.method,\n.w-tc-editor code[class*='language-'] .token.keyword,\n.w-tc-editor pre[class*='language-'] .token.keyword {\n color: var(--color-prettylights-syntax-keyword);\n}\n.w-tc-editor code[class*='language-'] .token.function,\n.w-tc-editor pre[class*='language-'] .token.function {\n color: var(--color-prettylights-syntax-string);\n}\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important,\n.w-tc-editor code[class*='language-'] .token.regex,\n.w-tc-editor pre[class*='language-'] .token.regex,\n.w-tc-editor code[class*='language-'] .token.variable,\n.w-tc-editor pre[class*='language-'] .token.variable {\n color: var(--color-prettylights-syntax-string-regexp);\n}\n.w-tc-editor code[class*='language-'] .token.bold,\n.w-tc-editor pre[class*='language-'] .token.bold,\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important {\n color: var(--color-prettylights-syntax-markup-bold);\n}\n.w-tc-editor code[class*='language-'] .token.tag,\n.w-tc-editor pre[class*='language-'] .token.tag {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.attr-value,\n.w-tc-editor pre[class*='language-'] .token.attr-value,\n.w-tc-editor code[class*='language-'] .token.attr-name,\n.w-tc-editor pre[class*='language-'] .token.attr-name {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.selector .class,\n.w-tc-editor pre[class*='language-'] .token.selector .class,\n.w-tc-editor code[class*='language-'] .token.class-name,\n.w-tc-editor pre[class*='language-'] .token.class-name {\n color: var(--color-prettylights-syntax-entity);\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/web-app/build/static/css/797.bc418f92.chunk.css b/web-app/build/static/css/797.bc418f92.chunk.css
deleted file mode 100644
index b09a22a1f66..00000000000
--- a/web-app/build/static/css/797.bc418f92.chunk.css
+++ /dev/null
@@ -1,2 +0,0 @@
-@media (prefers-color-scheme:dark){.w-tc-editor{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}}@media (prefers-color-scheme:light){.w-tc-editor{--color-fg-default:#24292f;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}}[data-color-mode*=dark] .w-tc-editor,[data-color-mode*=dark] .w-tc-editor-var,body[data-color-mode*=dark]{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}[data-color-mode*=light] .w-tc-editor,[data-color-mode*=light] .w-tc-editor-var,body[data-color-mode*=light]{--color-fg-default:#24292f;--color-canvas-subtle:#f6f8fa;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}.w-tc-editor{background-color:var(--color-canvas-subtle);color:var(--color-fg-default);font-family:inherit;font-size:12px}.w-tc-editor-preview,.w-tc-editor-text{min-height:16px}.w-tc-editor-preview pre{font-family:inherit;font-size:inherit;margin:0;padding:0;white-space:inherit}.w-tc-editor-preview pre code{font-family:inherit}.w-tc-editor code[class*=language-] .token.cdata,.w-tc-editor code[class*=language-] .token.comment,.w-tc-editor code[class*=language-] .token.doctype,.w-tc-editor code[class*=language-] .token.prolog,.w-tc-editor pre[class*=language-] .token.cdata,.w-tc-editor pre[class*=language-] .token.comment,.w-tc-editor pre[class*=language-] .token.doctype,.w-tc-editor pre[class*=language-] .token.prolog{color:var(--color-prettylights-syntax-comment)}.w-tc-editor code[class*=language-] .token.punctuation,.w-tc-editor pre[class*=language-] .token.punctuation{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.w-tc-editor code[class*=language-] .namespace,.w-tc-editor pre[class*=language-] .namespace{opacity:.7}.w-tc-editor code[class*=language-] .token.boolean,.w-tc-editor code[class*=language-] .token.constant,.w-tc-editor code[class*=language-] .token.deleted,.w-tc-editor code[class*=language-] .token.number,.w-tc-editor code[class*=language-] .token.symbol,.w-tc-editor pre[class*=language-] .token.boolean,.w-tc-editor pre[class*=language-] .token.constant,.w-tc-editor pre[class*=language-] .token.deleted,.w-tc-editor pre[class*=language-] .token.number,.w-tc-editor pre[class*=language-] .token.symbol{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .style .token.string,.w-tc-editor code[class*=language-] .token.builtin,.w-tc-editor code[class*=language-] .token.char,.w-tc-editor code[class*=language-] .token.entity,.w-tc-editor code[class*=language-] .token.inserted,.w-tc-editor code[class*=language-] .token.operator,.w-tc-editor code[class*=language-] .token.property,.w-tc-editor code[class*=language-] .token.selector,.w-tc-editor code[class*=language-] .token.string,.w-tc-editor code[class*=language-] .token.url,.w-tc-editor pre[class*=language-] .style .token.string,.w-tc-editor pre[class*=language-] .token.builtin,.w-tc-editor pre[class*=language-] .token.char,.w-tc-editor pre[class*=language-] .token.entity,.w-tc-editor pre[class*=language-] .token.inserted,.w-tc-editor pre[class*=language-] .token.operator,.w-tc-editor pre[class*=language-] .token.property,.w-tc-editor pre[class*=language-] .token.selector,.w-tc-editor pre[class*=language-] .token.string,.w-tc-editor pre[class*=language-] .token.url{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.atrule,.w-tc-editor code[class*=language-] .token.keyword,.w-tc-editor code[class*=language-] .token.property-access .token.method,.w-tc-editor pre[class*=language-] .token.atrule,.w-tc-editor pre[class*=language-] .token.keyword,.w-tc-editor pre[class*=language-] .token.property-access .token.method{color:var(--color-prettylights-syntax-keyword)}.w-tc-editor code[class*=language-] .token.function,.w-tc-editor pre[class*=language-] .token.function{color:var(--color-prettylights-syntax-string)}.w-tc-editor code[class*=language-] .token.important,.w-tc-editor code[class*=language-] .token.regex,.w-tc-editor code[class*=language-] .token.variable,.w-tc-editor pre[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.regex,.w-tc-editor pre[class*=language-] .token.variable{color:var(--color-prettylights-syntax-string-regexp)}.w-tc-editor code[class*=language-] .token.bold,.w-tc-editor code[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.bold,.w-tc-editor pre[class*=language-] .token.important{color:var(--color-prettylights-syntax-markup-bold)}.w-tc-editor code[class*=language-] .token.tag,.w-tc-editor pre[class*=language-] .token.tag{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .token.attr-name,.w-tc-editor code[class*=language-] .token.attr-value,.w-tc-editor pre[class*=language-] .token.attr-name,.w-tc-editor pre[class*=language-] .token.attr-value{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.class-name,.w-tc-editor code[class*=language-] .token.selector .class,.w-tc-editor pre[class*=language-] .token.class-name,.w-tc-editor pre[class*=language-] .token.selector .class{color:var(--color-prettylights-syntax-entity)}
-/*# sourceMappingURL=797.bc418f92.chunk.css.map*/
\ No newline at end of file
diff --git a/web-app/build/static/css/797.bc418f92.chunk.css.map b/web-app/build/static/css/797.bc418f92.chunk.css.map
deleted file mode 100644
index 80d0b56b6a5..00000000000
--- a/web-app/build/static/css/797.bc418f92.chunk.css.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/css/797.bc418f92.chunk.css","mappings":"AAAA,mCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,oCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,0GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,6GAGE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,aAGE,2CAA4C,CAC5C,6BAA8B,CAH9B,mBAAoB,CACpB,cAGF,CACA,uCAEE,eACF,CACA,yBAIE,mBAAoB,CACpB,iBAAkB,CAJlB,QAAS,CACT,SAAU,CACV,mBAGF,CACA,8BACE,mBACF,CACA,8YAQE,8CACF,CACA,6GAEE,gEACF,CACA,6FAEE,UACF,CACA,ufAUE,iDACF,CAaA,o/BAUE,+CACF,CACA,yVAME,8CACF,CACA,uGAEE,6CACF,CACA,iTAME,oDACF,CACA,wMAIE,kDACF,CACA,6FAEE,iDACF,CACA,oNAIE,+CACF,CACA,gOAIE,6CACF","sources":["../node_modules/@uiw/react-textarea-code-editor/esm/style/index.css"],"sourcesContent":["@media (prefers-color-scheme: dark) {\n .w-tc-editor {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n }\n}\n@media (prefers-color-scheme: light) {\n .w-tc-editor {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n }\n}\n[data-color-mode*='dark'] .w-tc-editor,\n[data-color-mode*='dark'] .w-tc-editor-var,\nbody[data-color-mode*='dark'] {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n}\n[data-color-mode*='light'] .w-tc-editor,\n[data-color-mode*='light'] .w-tc-editor-var,\nbody[data-color-mode*='light'] {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #f6f8fa;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n}\n.w-tc-editor {\n font-family: inherit;\n font-size: 12px;\n background-color: var(--color-canvas-subtle);\n color: var(--color-fg-default);\n}\n.w-tc-editor-text,\n.w-tc-editor-preview {\n min-height: 16px;\n}\n.w-tc-editor-preview pre {\n margin: 0;\n padding: 0;\n white-space: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n.w-tc-editor-preview pre code {\n font-family: inherit;\n}\n.w-tc-editor code[class*='language-'] .token.cdata,\n.w-tc-editor pre[class*='language-'] .token.cdata,\n.w-tc-editor code[class*='language-'] .token.comment,\n.w-tc-editor pre[class*='language-'] .token.comment,\n.w-tc-editor code[class*='language-'] .token.doctype,\n.w-tc-editor pre[class*='language-'] .token.doctype,\n.w-tc-editor code[class*='language-'] .token.prolog,\n.w-tc-editor pre[class*='language-'] .token.prolog {\n color: var(--color-prettylights-syntax-comment);\n}\n.w-tc-editor code[class*='language-'] .token.punctuation,\n.w-tc-editor pre[class*='language-'] .token.punctuation {\n color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);\n}\n.w-tc-editor code[class*='language-'] .namespace,\n.w-tc-editor pre[class*='language-'] .namespace {\n opacity: 0.7;\n}\n.w-tc-editor code[class*='language-'] .token.boolean,\n.w-tc-editor pre[class*='language-'] .token.boolean,\n.w-tc-editor code[class*='language-'] .token.constant,\n.w-tc-editor pre[class*='language-'] .token.constant,\n.w-tc-editor code[class*='language-'] .token.deleted,\n.w-tc-editor pre[class*='language-'] .token.deleted,\n.w-tc-editor code[class*='language-'] .token.number,\n.w-tc-editor pre[class*='language-'] .token.number,\n.w-tc-editor code[class*='language-'] .token.symbol,\n.w-tc-editor pre[class*='language-'] .token.symbol {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.builtin,\n.w-tc-editor pre[class*='language-'] .token.builtin,\n.w-tc-editor code[class*='language-'] .token.char,\n.w-tc-editor pre[class*='language-'] .token.char,\n.w-tc-editor code[class*='language-'] .token.inserted,\n.w-tc-editor pre[class*='language-'] .token.inserted,\n.w-tc-editor code[class*='language-'] .token.selector,\n.w-tc-editor pre[class*='language-'] .token.selector,\n.w-tc-editor code[class*='language-'] .token.string,\n.w-tc-editor pre[class*='language-'] .token.string {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .style .token.string,\n.w-tc-editor pre[class*='language-'] .style .token.string,\n.w-tc-editor code[class*='language-'] .token.entity,\n.w-tc-editor pre[class*='language-'] .token.entity,\n.w-tc-editor code[class*='language-'] .token.property,\n.w-tc-editor pre[class*='language-'] .token.property,\n.w-tc-editor code[class*='language-'] .token.operator,\n.w-tc-editor pre[class*='language-'] .token.operator,\n.w-tc-editor code[class*='language-'] .token.url,\n.w-tc-editor pre[class*='language-'] .token.url {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.atrule,\n.w-tc-editor pre[class*='language-'] .token.atrule,\n.w-tc-editor code[class*='language-'] .token.property-access .token.method,\n.w-tc-editor pre[class*='language-'] .token.property-access .token.method,\n.w-tc-editor code[class*='language-'] .token.keyword,\n.w-tc-editor pre[class*='language-'] .token.keyword {\n color: var(--color-prettylights-syntax-keyword);\n}\n.w-tc-editor code[class*='language-'] .token.function,\n.w-tc-editor pre[class*='language-'] .token.function {\n color: var(--color-prettylights-syntax-string);\n}\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important,\n.w-tc-editor code[class*='language-'] .token.regex,\n.w-tc-editor pre[class*='language-'] .token.regex,\n.w-tc-editor code[class*='language-'] .token.variable,\n.w-tc-editor pre[class*='language-'] .token.variable {\n color: var(--color-prettylights-syntax-string-regexp);\n}\n.w-tc-editor code[class*='language-'] .token.bold,\n.w-tc-editor pre[class*='language-'] .token.bold,\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important {\n color: var(--color-prettylights-syntax-markup-bold);\n}\n.w-tc-editor code[class*='language-'] .token.tag,\n.w-tc-editor pre[class*='language-'] .token.tag {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.attr-value,\n.w-tc-editor pre[class*='language-'] .token.attr-value,\n.w-tc-editor code[class*='language-'] .token.attr-name,\n.w-tc-editor pre[class*='language-'] .token.attr-name {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.selector .class,\n.w-tc-editor pre[class*='language-'] .token.selector .class,\n.w-tc-editor code[class*='language-'] .token.class-name,\n.w-tc-editor pre[class*='language-'] .token.class-name {\n color: var(--color-prettylights-syntax-entity);\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/web-app/build/static/css/973.29780968.chunk.css b/web-app/build/static/css/973.29780968.chunk.css
new file mode 100644
index 00000000000..3fbd7135594
--- /dev/null
+++ b/web-app/build/static/css/973.29780968.chunk.css
@@ -0,0 +1,2 @@
+@media (prefers-color-scheme:dark){.w-tc-editor{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}}@media (prefers-color-scheme:light){.w-tc-editor{--color-fg-default:#24292f;--color-canvas-subtle:#f6f8fa;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}}.w-tc-editor[data-color-mode*=dark],[data-color-mode*=dark] .w-tc-editor,[data-color-mode*=dark] .w-tc-editor-var,body[data-color-mode*=dark]{--color-fg-default:#c9d1d9;--color-canvas-subtle:#161b22;--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-markup-bold:#c9d1d9}.w-tc-editor[data-color-mode*=light],[data-color-mode*=light] .w-tc-editor,[data-color-mode*=light] .w-tc-editor-var,body[data-color-mode*=light]{--color-fg-default:#24292f;--color-canvas-subtle:#f6f8fa;--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-markup-bold:#24292f}.w-tc-editor{background-color:var(--color-canvas-subtle);color:var(--color-fg-default);font-family:inherit;font-size:12px}.w-tc-editor-preview,.w-tc-editor-text{min-height:16px}.w-tc-editor-preview pre{font-family:inherit;font-size:inherit;margin:0;padding:0;white-space:inherit}.w-tc-editor-preview pre code{font-family:inherit}.w-tc-editor code[class*=language-] .token.cdata,.w-tc-editor code[class*=language-] .token.comment,.w-tc-editor code[class*=language-] .token.doctype,.w-tc-editor code[class*=language-] .token.prolog,.w-tc-editor pre[class*=language-] .token.cdata,.w-tc-editor pre[class*=language-] .token.comment,.w-tc-editor pre[class*=language-] .token.doctype,.w-tc-editor pre[class*=language-] .token.prolog{color:var(--color-prettylights-syntax-comment)}.w-tc-editor code[class*=language-] .token.punctuation,.w-tc-editor pre[class*=language-] .token.punctuation{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.w-tc-editor code[class*=language-] .namespace,.w-tc-editor pre[class*=language-] .namespace{opacity:.7}.w-tc-editor code[class*=language-] .token.boolean,.w-tc-editor code[class*=language-] .token.constant,.w-tc-editor code[class*=language-] .token.deleted,.w-tc-editor code[class*=language-] .token.number,.w-tc-editor code[class*=language-] .token.symbol,.w-tc-editor pre[class*=language-] .token.boolean,.w-tc-editor pre[class*=language-] .token.constant,.w-tc-editor pre[class*=language-] .token.deleted,.w-tc-editor pre[class*=language-] .token.number,.w-tc-editor pre[class*=language-] .token.symbol{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .style .token.string,.w-tc-editor code[class*=language-] .token.builtin,.w-tc-editor code[class*=language-] .token.char,.w-tc-editor code[class*=language-] .token.entity,.w-tc-editor code[class*=language-] .token.inserted,.w-tc-editor code[class*=language-] .token.operator,.w-tc-editor code[class*=language-] .token.property,.w-tc-editor code[class*=language-] .token.selector,.w-tc-editor code[class*=language-] .token.string,.w-tc-editor code[class*=language-] .token.url,.w-tc-editor pre[class*=language-] .style .token.string,.w-tc-editor pre[class*=language-] .token.builtin,.w-tc-editor pre[class*=language-] .token.char,.w-tc-editor pre[class*=language-] .token.entity,.w-tc-editor pre[class*=language-] .token.inserted,.w-tc-editor pre[class*=language-] .token.operator,.w-tc-editor pre[class*=language-] .token.property,.w-tc-editor pre[class*=language-] .token.selector,.w-tc-editor pre[class*=language-] .token.string,.w-tc-editor pre[class*=language-] .token.url{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.atrule,.w-tc-editor code[class*=language-] .token.keyword,.w-tc-editor code[class*=language-] .token.property-access .token.method,.w-tc-editor pre[class*=language-] .token.atrule,.w-tc-editor pre[class*=language-] .token.keyword,.w-tc-editor pre[class*=language-] .token.property-access .token.method{color:var(--color-prettylights-syntax-keyword)}.w-tc-editor code[class*=language-] .token.function,.w-tc-editor pre[class*=language-] .token.function{color:var(--color-prettylights-syntax-string)}.w-tc-editor code[class*=language-] .token.important,.w-tc-editor code[class*=language-] .token.regex,.w-tc-editor code[class*=language-] .token.variable,.w-tc-editor pre[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.regex,.w-tc-editor pre[class*=language-] .token.variable{color:var(--color-prettylights-syntax-string-regexp)}.w-tc-editor code[class*=language-] .token.bold,.w-tc-editor code[class*=language-] .token.important,.w-tc-editor pre[class*=language-] .token.bold,.w-tc-editor pre[class*=language-] .token.important{color:var(--color-prettylights-syntax-markup-bold)}.w-tc-editor code[class*=language-] .token.tag,.w-tc-editor pre[class*=language-] .token.tag{color:var(--color-prettylights-syntax-entity-tag)}.w-tc-editor code[class*=language-] .token.attr-name,.w-tc-editor code[class*=language-] .token.attr-value,.w-tc-editor pre[class*=language-] .token.attr-name,.w-tc-editor pre[class*=language-] .token.attr-value{color:var(--color-prettylights-syntax-constant)}.w-tc-editor code[class*=language-] .token.class-name,.w-tc-editor code[class*=language-] .token.selector .class,.w-tc-editor pre[class*=language-] .token.class-name,.w-tc-editor pre[class*=language-] .token.selector .class{color:var(--color-prettylights-syntax-entity)}
+/*# sourceMappingURL=973.29780968.chunk.css.map*/
\ No newline at end of file
diff --git a/web-app/build/static/css/973.29780968.chunk.css.map b/web-app/build/static/css/973.29780968.chunk.css.map
new file mode 100644
index 00000000000..8ad6191ff97
--- /dev/null
+++ b/web-app/build/static/css/973.29780968.chunk.css.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/css/973.29780968.chunk.css","mappings":"AAAA,mCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,oCACE,aACE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACF,CACA,8IAIE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,kJAIE,0BAA2B,CAC3B,6BAA8B,CAC9B,2CAA4C,CAC5C,8CAA+C,CAC/C,0CAA2C,CAC3C,6DAA8D,CAC9D,4CAA6C,CAC7C,0CAA2C,CAC3C,2CAA4C,CAC5C,+CACF,CACA,aAGE,2CAA4C,CAC5C,6BAA8B,CAH9B,mBAAoB,CACpB,cAGF,CACA,uCAEE,eACF,CACA,yBAIE,mBAAoB,CACpB,iBAAkB,CAJlB,QAAS,CACT,SAAU,CACV,mBAGF,CACA,8BACE,mBACF,CACA,8YAQE,8CACF,CACA,6GAEE,gEACF,CACA,6FAEE,UACF,CACA,ufAUE,iDACF,CAaA,o/BAUE,+CACF,CACA,yVAME,8CACF,CACA,uGAEE,6CACF,CACA,iTAME,oDACF,CACA,wMAIE,kDACF,CACA,6FAEE,iDACF,CACA,oNAIE,+CACF,CACA,gOAIE,6CACF","sources":["../node_modules/@uiw/react-textarea-code-editor/esm/style/index.css"],"sourcesContent":["@media (prefers-color-scheme: dark) {\n .w-tc-editor {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n }\n}\n@media (prefers-color-scheme: light) {\n .w-tc-editor {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #f6f8fa;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n }\n}\n.w-tc-editor[data-color-mode*='dark'],\n[data-color-mode*='dark'] .w-tc-editor,\n[data-color-mode*='dark'] .w-tc-editor-var,\nbody[data-color-mode*='dark'] {\n --color-fg-default: #c9d1d9;\n --color-canvas-subtle: #161b22;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n}\n.w-tc-editor[data-color-mode*='light'],\n[data-color-mode*='light'] .w-tc-editor,\n[data-color-mode*='light'] .w-tc-editor-var,\nbody[data-color-mode*='light'] {\n --color-fg-default: #24292f;\n --color-canvas-subtle: #f6f8fa;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-markup-bold: #24292f;\n}\n.w-tc-editor {\n font-family: inherit;\n font-size: 12px;\n background-color: var(--color-canvas-subtle);\n color: var(--color-fg-default);\n}\n.w-tc-editor-text,\n.w-tc-editor-preview {\n min-height: 16px;\n}\n.w-tc-editor-preview pre {\n margin: 0;\n padding: 0;\n white-space: inherit;\n font-family: inherit;\n font-size: inherit;\n}\n.w-tc-editor-preview pre code {\n font-family: inherit;\n}\n.w-tc-editor code[class*='language-'] .token.cdata,\n.w-tc-editor pre[class*='language-'] .token.cdata,\n.w-tc-editor code[class*='language-'] .token.comment,\n.w-tc-editor pre[class*='language-'] .token.comment,\n.w-tc-editor code[class*='language-'] .token.doctype,\n.w-tc-editor pre[class*='language-'] .token.doctype,\n.w-tc-editor code[class*='language-'] .token.prolog,\n.w-tc-editor pre[class*='language-'] .token.prolog {\n color: var(--color-prettylights-syntax-comment);\n}\n.w-tc-editor code[class*='language-'] .token.punctuation,\n.w-tc-editor pre[class*='language-'] .token.punctuation {\n color: var(--color-prettylights-syntax-sublimelinter-gutter-mark);\n}\n.w-tc-editor code[class*='language-'] .namespace,\n.w-tc-editor pre[class*='language-'] .namespace {\n opacity: 0.7;\n}\n.w-tc-editor code[class*='language-'] .token.boolean,\n.w-tc-editor pre[class*='language-'] .token.boolean,\n.w-tc-editor code[class*='language-'] .token.constant,\n.w-tc-editor pre[class*='language-'] .token.constant,\n.w-tc-editor code[class*='language-'] .token.deleted,\n.w-tc-editor pre[class*='language-'] .token.deleted,\n.w-tc-editor code[class*='language-'] .token.number,\n.w-tc-editor pre[class*='language-'] .token.number,\n.w-tc-editor code[class*='language-'] .token.symbol,\n.w-tc-editor pre[class*='language-'] .token.symbol {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.builtin,\n.w-tc-editor pre[class*='language-'] .token.builtin,\n.w-tc-editor code[class*='language-'] .token.char,\n.w-tc-editor pre[class*='language-'] .token.char,\n.w-tc-editor code[class*='language-'] .token.inserted,\n.w-tc-editor pre[class*='language-'] .token.inserted,\n.w-tc-editor code[class*='language-'] .token.selector,\n.w-tc-editor pre[class*='language-'] .token.selector,\n.w-tc-editor code[class*='language-'] .token.string,\n.w-tc-editor pre[class*='language-'] .token.string {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .style .token.string,\n.w-tc-editor pre[class*='language-'] .style .token.string,\n.w-tc-editor code[class*='language-'] .token.entity,\n.w-tc-editor pre[class*='language-'] .token.entity,\n.w-tc-editor code[class*='language-'] .token.property,\n.w-tc-editor pre[class*='language-'] .token.property,\n.w-tc-editor code[class*='language-'] .token.operator,\n.w-tc-editor pre[class*='language-'] .token.operator,\n.w-tc-editor code[class*='language-'] .token.url,\n.w-tc-editor pre[class*='language-'] .token.url {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.atrule,\n.w-tc-editor pre[class*='language-'] .token.atrule,\n.w-tc-editor code[class*='language-'] .token.property-access .token.method,\n.w-tc-editor pre[class*='language-'] .token.property-access .token.method,\n.w-tc-editor code[class*='language-'] .token.keyword,\n.w-tc-editor pre[class*='language-'] .token.keyword {\n color: var(--color-prettylights-syntax-keyword);\n}\n.w-tc-editor code[class*='language-'] .token.function,\n.w-tc-editor pre[class*='language-'] .token.function {\n color: var(--color-prettylights-syntax-string);\n}\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important,\n.w-tc-editor code[class*='language-'] .token.regex,\n.w-tc-editor pre[class*='language-'] .token.regex,\n.w-tc-editor code[class*='language-'] .token.variable,\n.w-tc-editor pre[class*='language-'] .token.variable {\n color: var(--color-prettylights-syntax-string-regexp);\n}\n.w-tc-editor code[class*='language-'] .token.bold,\n.w-tc-editor pre[class*='language-'] .token.bold,\n.w-tc-editor code[class*='language-'] .token.important,\n.w-tc-editor pre[class*='language-'] .token.important {\n color: var(--color-prettylights-syntax-markup-bold);\n}\n.w-tc-editor code[class*='language-'] .token.tag,\n.w-tc-editor pre[class*='language-'] .token.tag {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.w-tc-editor code[class*='language-'] .token.attr-value,\n.w-tc-editor pre[class*='language-'] .token.attr-value,\n.w-tc-editor code[class*='language-'] .token.attr-name,\n.w-tc-editor pre[class*='language-'] .token.attr-name {\n color: var(--color-prettylights-syntax-constant);\n}\n.w-tc-editor code[class*='language-'] .token.selector .class,\n.w-tc-editor pre[class*='language-'] .token.selector .class,\n.w-tc-editor code[class*='language-'] .token.class-name,\n.w-tc-editor pre[class*='language-'] .token.class-name {\n color: var(--color-prettylights-syntax-entity);\n}\n"],"names":[],"sourceRoot":""}
\ No newline at end of file
diff --git a/web-app/build/static/js/112.36b0c5ce.chunk.js b/web-app/build/static/js/112.36b0c5ce.chunk.js
new file mode 100644
index 00000000000..6b4073093c3
--- /dev/null
+++ b/web-app/build/static/js/112.36b0c5ce.chunk.js
@@ -0,0 +1,2 @@
+"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[112],{9505:function(e,n,t){var a=t(29439),c=t(72791),o=t(81207);n.Z=function(e,n){var t=(0,c.useState)(!1),i=(0,a.Z)(t,2),r=i[0],s=i[1];return[r,function(t,a,c,i){s(!0),o.Z.invoke(t,a,c,i).then((function(n){s(!1),e(n)})).catch((function(e){s(!1),n(e)}))}]}},32112:function(e,n,t){t.r(n);var a=t(29439),c=t(72791),o=t(51691),i=t(21435),r=t(61889),s=t(9505),u=t(40306),l=t(75952),f=t(87995),p=t(41320),d=t(80184);n.default=function(e){var n=e.deleteOpen,t=e.selectedPVC,h=e.closeDeleteModalAndRefresh,m=(0,p.TL)(),C=(0,c.useState)(""),v=(0,a.Z)(C,2),Z=v[0],x=v[1],b=(0,s.Z)((function(){return h(!0)}),(function(e){return m((0,f.Ih)(e))})),P=(0,a.Z)(b,2),j=P[0],k=P[1];return(0,d.jsx)(u.Z,{title:"Delete PVC",confirmText:"Delete",isOpen:n,titleIcon:(0,d.jsx)(l.NvT,{}),isLoading:j,onConfirm:function(){Z===t.name?k("DELETE","/api/v1/namespaces/".concat(t.namespace,"/tenants/").concat(t.tenant,"/pvc/").concat(t.name)):m((0,f.Ih)({errorMessage:"PVC name is incorrect",detailedError:""}))},onClose:function(){return h(!1)},confirmButtonProps:{disabled:Z!==t.name||j},confirmationContent:(0,d.jsxs)(o.Z,{children:["To continue please type ",(0,d.jsx)("b",{children:t.name})," in the box.",(0,d.jsx)(r.ZP,{item:!0,xs:12,children:(0,d.jsx)(i.Z,{id:"retype-PVC",name:"retype-PVC",onChange:function(e){x(e.target.value)},label:"",value:Z})})]})})}}}]);
+//# sourceMappingURL=112.36b0c5ce.chunk.js.map
\ No newline at end of file
diff --git a/web-app/build/static/js/112.c512d225.chunk.js.map b/web-app/build/static/js/112.36b0c5ce.chunk.js.map
similarity index 97%
rename from web-app/build/static/js/112.c512d225.chunk.js.map
rename to web-app/build/static/js/112.36b0c5ce.chunk.js.map
index 87062eccdaa..e09e5d4f0e7 100644
--- a/web-app/build/static/js/112.c512d225.chunk.js.map
+++ b/web-app/build/static/js/112.36b0c5ce.chunk.js.map
@@ -1 +1 @@
-{"version":3,"file":"static/js/112.c512d225.chunk.js","mappings":"4IA+BA,IAvBe,SACbA,EACAC,GAEA,OAAkCC,EAAAA,EAAAA,WAAkB,GAAM,eAAnDC,EAAS,KAAEC,EAAY,KAgB9B,MAAO,CAACD,EAdQ,SAACE,EAAgBC,EAAaC,EAAYC,GACxDJ,GAAa,GACbK,EAAAA,EAAAA,OACUJ,EAAQC,EAAKC,EAAMC,GAC1BE,MAAK,SAACC,GACLP,GAAa,GACbJ,EAAUW,EACZ,IACCC,OAAM,SAACC,GACNT,GAAa,GACbH,EAAQY,EACV,GACJ,EAGF,C,0JCqEA,UA/DkB,SAAH,GAII,IAHjBC,EAAU,EAAVA,WACAC,EAAW,EAAXA,YACAC,EAA0B,EAA1BA,2BAEMC,GAAWC,EAAAA,EAAAA,MACjB,GAAkChB,EAAAA,EAAAA,UAAS,IAAG,eAAvCiB,EAAS,KAAEC,EAAY,KAO9B,GAAyCC,EAAAA,EAAAA,IALpB,WAAH,OAASL,GAA2B,EAAM,IACzC,SAACH,GAAyB,OAC3CI,GAASK,EAAAA,EAAAA,IAAqBT,GAAM,IAGmC,eAAlEU,EAAa,KAAEC,EAAe,KAkBrC,OACE,SAAC,IAAa,CACZC,MAAK,aACLC,YAAa,SACbC,OAAQb,EACRc,WAAW,SAAC,MAAiB,IAC7BzB,UAAWoB,EACXM,UAvBoB,WAClBV,IAAcJ,EAAYe,KAS9BN,EACE,SAAS,sBAAD,OACcT,EAAYgB,UAAS,oBAAYhB,EAAYiB,OAAM,gBAAQjB,EAAYe,OAV7Fb,GACEK,EAAAA,EAAAA,IAAqB,CACnBW,aAAc,wBACdC,cAAe,KASvB,EAUIC,QA5BY,WAAH,OAASnB,GAA2B,EAAO,EA6BpDoB,mBAAoB,CAClBC,SAAUlB,IAAcJ,EAAYe,MAAQP,GAE9Ce,qBACE,UAAC,IAAiB,WAAC,4BACO,uBAAIvB,EAAYe,OAAS,gBACjD,SAAC,KAAI,CAACS,MAAI,EAACC,GAAI,GAAG,UAChB,SAAC,IAAe,CACdC,GAAG,aACHX,KAAK,aACLY,SAAU,SAACC,GACTvB,EAAauB,EAAMC,OAAOC,MAC5B,EACAC,MAAM,GACND,MAAO1B,UAOrB,C","sources":["screens/Console/Common/Hooks/useApi.tsx","screens/Console/Tenants/TenantDetails/DeletePVC.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport api from \"../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\n\ntype NoReturnFunction = (param?: any) => void;\ntype ApiMethodToInvoke = (method: string, url: string, data?: any) => void;\ntype IsApiInProgress = boolean;\n\nconst useApi = (\n onSuccess: NoReturnFunction,\n onError: NoReturnFunction\n): [IsApiInProgress, ApiMethodToInvoke] => {\n const [isLoading, setIsLoading] = useState(false);\n\n const callApi = (method: string, url: string, data?: any, headers?: any) => {\n setIsLoading(true);\n api\n .invoke(method, url, data, headers)\n .then((res: any) => {\n setIsLoading(false);\n onSuccess(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setIsLoading(false);\n onError(err);\n });\n };\n\n return [isLoading, callApi];\n};\n\nexport default useApi;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useState } from \"react\";\nimport { DialogContentText } from \"@mui/material\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport Grid from \"@mui/material/Grid\";\n\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"mds\";\nimport { IStoragePVCs } from \"../../Storage/types\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IDeletePVC {\n deleteOpen: boolean;\n selectedPVC: IStoragePVCs;\n closeDeleteModalAndRefresh: (refreshList: boolean) => any;\n}\n\nconst DeletePVC = ({\n deleteOpen,\n selectedPVC,\n closeDeleteModalAndRefresh,\n}: IDeletePVC) => {\n const dispatch = useAppDispatch();\n const [retypePVC, setRetypePVC] = useState(\"\");\n\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) =>\n dispatch(setErrorSnackMessage(err));\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n const onConfirmDelete = () => {\n if (retypePVC !== selectedPVC.name) {\n dispatch(\n setErrorSnackMessage({\n errorMessage: \"PVC name is incorrect\",\n detailedError: \"\",\n })\n );\n return;\n }\n invokeDeleteApi(\n \"DELETE\",\n `/api/v1/namespaces/${selectedPVC.namespace}/tenants/${selectedPVC.tenant}/pvc/${selectedPVC.name}`\n );\n };\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmButtonProps={{\n disabled: retypePVC !== selectedPVC.name || deleteLoading,\n }}\n confirmationContent={\n \n To continue please type {selectedPVC.name} in the box.\n \n ) => {\n setRetypePVC(event.target.value);\n }}\n label=\"\"\n value={retypePVC}\n />\n \n \n }\n />\n );\n};\n\nexport default DeletePVC;\n"],"names":["onSuccess","onError","useState","isLoading","setIsLoading","method","url","data","headers","api","then","res","catch","err","deleteOpen","selectedPVC","closeDeleteModalAndRefresh","dispatch","useAppDispatch","retypePVC","setRetypePVC","useApi","setErrorSnackMessage","deleteLoading","invokeDeleteApi","title","confirmText","isOpen","titleIcon","onConfirm","name","namespace","tenant","errorMessage","detailedError","onClose","confirmButtonProps","disabled","confirmationContent","item","xs","id","onChange","event","target","value","label"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"static/js/112.36b0c5ce.chunk.js","mappings":"4IA+BA,IAvBe,SACbA,EACAC,GAEA,OAAkCC,EAAAA,EAAAA,WAAkB,GAAM,eAAnDC,EAAS,KAAEC,EAAY,KAgB9B,MAAO,CAACD,EAdQ,SAACE,EAAgBC,EAAaC,EAAYC,GACxDJ,GAAa,GACbK,EAAAA,EAAAA,OACUJ,EAAQC,EAAKC,EAAMC,GAC1BE,MAAK,SAACC,GACLP,GAAa,GACbJ,EAAUW,EACZ,IACCC,OAAM,SAACC,GACNT,GAAa,GACbH,EAAQY,EACV,GACJ,EAGF,C,2JCqEA,UA/DkB,SAAH,GAII,IAHjBC,EAAU,EAAVA,WACAC,EAAW,EAAXA,YACAC,EAA0B,EAA1BA,2BAEMC,GAAWC,EAAAA,EAAAA,MACjB,GAAkChB,EAAAA,EAAAA,UAAS,IAAG,eAAvCiB,EAAS,KAAEC,EAAY,KAO9B,GAAyCC,EAAAA,EAAAA,IALpB,WAAH,OAASL,GAA2B,EAAM,IACzC,SAACH,GAAyB,OAC3CI,GAASK,EAAAA,EAAAA,IAAqBT,GAAM,IAGmC,eAAlEU,EAAa,KAAEC,EAAe,KAkBrC,OACE,SAAC,IAAa,CACZC,MAAK,aACLC,YAAa,SACbC,OAAQb,EACRc,WAAW,SAAC,MAAiB,IAC7BzB,UAAWoB,EACXM,UAvBoB,WAClBV,IAAcJ,EAAYe,KAS9BN,EACE,SAAS,sBAAD,OACcT,EAAYgB,UAAS,oBAAYhB,EAAYiB,OAAM,gBAAQjB,EAAYe,OAV7Fb,GACEK,EAAAA,EAAAA,IAAqB,CACnBW,aAAc,wBACdC,cAAe,KASvB,EAUIC,QA5BY,WAAH,OAASnB,GAA2B,EAAO,EA6BpDoB,mBAAoB,CAClBC,SAAUlB,IAAcJ,EAAYe,MAAQP,GAE9Ce,qBACE,UAAC,IAAiB,WAAC,4BACO,uBAAIvB,EAAYe,OAAS,gBACjD,SAAC,KAAI,CAACS,MAAI,EAACC,GAAI,GAAG,UAChB,SAAC,IAAe,CACdC,GAAG,aACHX,KAAK,aACLY,SAAU,SAACC,GACTvB,EAAauB,EAAMC,OAAOC,MAC5B,EACAC,MAAM,GACND,MAAO1B,UAOrB,C","sources":["screens/Console/Common/Hooks/useApi.tsx","screens/Console/Tenants/TenantDetails/DeletePVC.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport api from \"../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\n\ntype NoReturnFunction = (param?: any) => void;\ntype ApiMethodToInvoke = (method: string, url: string, data?: any) => void;\ntype IsApiInProgress = boolean;\n\nconst useApi = (\n onSuccess: NoReturnFunction,\n onError: NoReturnFunction\n): [IsApiInProgress, ApiMethodToInvoke] => {\n const [isLoading, setIsLoading] = useState(false);\n\n const callApi = (method: string, url: string, data?: any, headers?: any) => {\n setIsLoading(true);\n api\n .invoke(method, url, data, headers)\n .then((res: any) => {\n setIsLoading(false);\n onSuccess(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setIsLoading(false);\n onError(err);\n });\n };\n\n return [isLoading, callApi];\n};\n\nexport default useApi;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useState } from \"react\";\nimport { DialogContentText } from \"@mui/material\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport Grid from \"@mui/material/Grid\";\n\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"mds\";\nimport { IStoragePVCs } from \"../../Storage/types\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IDeletePVC {\n deleteOpen: boolean;\n selectedPVC: IStoragePVCs;\n closeDeleteModalAndRefresh: (refreshList: boolean) => any;\n}\n\nconst DeletePVC = ({\n deleteOpen,\n selectedPVC,\n closeDeleteModalAndRefresh,\n}: IDeletePVC) => {\n const dispatch = useAppDispatch();\n const [retypePVC, setRetypePVC] = useState(\"\");\n\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) =>\n dispatch(setErrorSnackMessage(err));\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n const onConfirmDelete = () => {\n if (retypePVC !== selectedPVC.name) {\n dispatch(\n setErrorSnackMessage({\n errorMessage: \"PVC name is incorrect\",\n detailedError: \"\",\n })\n );\n return;\n }\n invokeDeleteApi(\n \"DELETE\",\n `/api/v1/namespaces/${selectedPVC.namespace}/tenants/${selectedPVC.tenant}/pvc/${selectedPVC.name}`\n );\n };\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmButtonProps={{\n disabled: retypePVC !== selectedPVC.name || deleteLoading,\n }}\n confirmationContent={\n \n To continue please type {selectedPVC.name} in the box.\n \n ) => {\n setRetypePVC(event.target.value);\n }}\n label=\"\"\n value={retypePVC}\n />\n \n \n }\n />\n );\n};\n\nexport default DeletePVC;\n"],"names":["onSuccess","onError","useState","isLoading","setIsLoading","method","url","data","headers","api","then","res","catch","err","deleteOpen","selectedPVC","closeDeleteModalAndRefresh","dispatch","useAppDispatch","retypePVC","setRetypePVC","useApi","setErrorSnackMessage","deleteLoading","invokeDeleteApi","title","confirmText","isOpen","titleIcon","onConfirm","name","namespace","tenant","errorMessage","detailedError","onClose","confirmButtonProps","disabled","confirmationContent","item","xs","id","onChange","event","target","value","label"],"sourceRoot":""}
\ No newline at end of file
diff --git a/web-app/build/static/js/112.c512d225.chunk.js b/web-app/build/static/js/112.c512d225.chunk.js
deleted file mode 100644
index b801dad1353..00000000000
--- a/web-app/build/static/js/112.c512d225.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[112],{9505:function(e,n,t){var a=t(29439),c=t(72791),o=t(81207);n.Z=function(e,n){var t=(0,c.useState)(!1),i=(0,a.Z)(t,2),r=i[0],s=i[1];return[r,function(t,a,c,i){s(!0),o.Z.invoke(t,a,c,i).then((function(n){s(!1),e(n)})).catch((function(e){s(!1),n(e)}))}]}},32112:function(e,n,t){t.r(n);var a=t(29439),c=t(72791),o=t(51691),i=t(21435),r=t(61889),s=t(9505),u=t(40306),l=t(75952),f=t(87995),p=t(1261),d=t(80184);n.default=function(e){var n=e.deleteOpen,t=e.selectedPVC,h=e.closeDeleteModalAndRefresh,m=(0,p.TL)(),C=(0,c.useState)(""),v=(0,a.Z)(C,2),Z=v[0],x=v[1],b=(0,s.Z)((function(){return h(!0)}),(function(e){return m((0,f.Ih)(e))})),P=(0,a.Z)(b,2),j=P[0],k=P[1];return(0,d.jsx)(u.Z,{title:"Delete PVC",confirmText:"Delete",isOpen:n,titleIcon:(0,d.jsx)(l.NvT,{}),isLoading:j,onConfirm:function(){Z===t.name?k("DELETE","/api/v1/namespaces/".concat(t.namespace,"/tenants/").concat(t.tenant,"/pvc/").concat(t.name)):m((0,f.Ih)({errorMessage:"PVC name is incorrect",detailedError:""}))},onClose:function(){return h(!1)},confirmButtonProps:{disabled:Z!==t.name||j},confirmationContent:(0,d.jsxs)(o.Z,{children:["To continue please type ",(0,d.jsx)("b",{children:t.name})," in the box.",(0,d.jsx)(r.ZP,{item:!0,xs:12,children:(0,d.jsx)(i.Z,{id:"retype-PVC",name:"retype-PVC",onChange:function(e){x(e.target.value)},label:"",value:Z})})]})})}}}]);
-//# sourceMappingURL=112.c512d225.chunk.js.map
\ No newline at end of file
diff --git a/web-app/build/static/js/120.a3fdaff6.chunk.js b/web-app/build/static/js/120.a3fdaff6.chunk.js
deleted file mode 100644
index b0591f34be8..00000000000
--- a/web-app/build/static/js/120.a3fdaff6.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[120,112],{9505:function(e,n,t){var a=t(29439),s=t(72791),c=t(81207);n.Z=function(e,n){var t=(0,s.useState)(!1),r=(0,a.Z)(t,2),l=r[0],o=r[1];return[l,function(t,a,s,r){o(!0),c.Z.invoke(t,a,s,r).then((function(n){o(!1),e(n)})).catch((function(e){o(!1),n(e)}))}]}},59114:function(e,n,t){var a=t(4942),s=t(1413),c=(t(72791),t(63466)),r=t(75952),l=t(27391),o=t(25787),i=t(11135),u=t(23814),d=t(80184);n.Z=(0,o.Z)((function(e){return(0,i.Z)({searchField:(0,s.Z)({},u.qg.searchField),adornment:{}})}))((function(e){var n=e.placeholder,t=void 0===n?"":n,s=e.classes,o=e.onChange,i=e.adornmentPosition,u=void 0===i?"end":i,m=e.overrideClass,p=e.value,f=(0,a.Z)({disableUnderline:!0},"".concat(u,"Adornment"),(0,d.jsx)(c.Z,{position:u,className:s.adornment,children:(0,d.jsx)(r.W1M,{})}));return(0,d.jsx)(l.Z,{placeholder:t,className:m||s.searchField,id:"search-resource",label:"",InputProps:f,onChange:function(e){o(e.target.value)},variant:"standard",value:p})}))},54120:function(e,n,t){t.r(n);var a=t(29439),s=t(1413),c=t(72791),r=t(26181),l=t.n(r),o=t(61889),i=t(11135),u=t(25787),d=t(23814),m=t(1261),p=t(87995),f=t(81207),h=t(42695),Z=t(32112),v=t(74794),C=t(59114),x=t(47974),b=t(80184);n.default=(0,u.Z)((function(e){return(0,i.Z)((0,s.Z)((0,s.Z)((0,s.Z)({tableWrapper:{height:"calc(100vh - 150px)"}},d.OR),d.qg),d.Bz))}))((function(e){var n=e.classes,t=(0,m.TL)(),r=(0,c.useState)([]),i=(0,a.Z)(r,2),u=i[0],d=i[1],j=(0,c.useState)(""),g=(0,a.Z)(j,2),P=g[0],y=g[1],S=(0,c.useState)(!0),V=(0,a.Z)(S,2),w=V[0],T=V[1],k=(0,c.useState)(null),F=(0,a.Z)(k,2),L=F[0],E=F[1],N=(0,c.useState)(!1),D=(0,a.Z)(N,2),I=D[0],K=D[1];(0,c.useEffect)((function(){w&&f.Z.invoke("GET","/api/v1/list-pvcs").then((function(e){var n=l()(e,"pvcs",[]);d(n||[]),T(!1)})).catch((function(e){T(!1),t((0,p.Ih)(e))}))}),[w,t]);var O=u.filter((function(e){return e.name.toLowerCase().includes(P.toLowerCase())})),A=[{type:"delete",onClick:function(e){var n=(0,s.Z)((0,s.Z)({},e),{},{tenant:e.tenant,namespace:e.namespace});E(n),K(!0)}}];return(0,b.jsxs)(c.Fragment,{children:[I&&(0,b.jsx)(Z.default,{deleteOpen:I,selectedPVC:L,closeDeleteModalAndRefresh:function(e){K(!1),T(!0)}}),(0,b.jsx)(x.Z,{label:"Persistent Volumes Claims",middleComponent:(0,b.jsx)(C.Z,{placeholder:"Search Volumes (PVCs)",onChange:function(e){y(e)},value:P})}),(0,b.jsx)(v.Z,{children:(0,b.jsx)(o.ZP,{item:!0,xs:12,children:(0,b.jsx)(h.Z,{itemActions:A,columns:[{label:"Name",elementKey:"name"},{label:"Namespace",elementKey:"namespace",width:90},{label:"Status",elementKey:"status",width:120},{label:"Tenant",renderFullObject:!0,renderFunction:function(e){return"".concat(e.namespace,"/").concat(e.tenant)}},{label:"Capacity",elementKey:"capacity",width:90},{label:"Storage Class",elementKey:"storageClass"}],isLoading:w,records:O,entityName:"PVCs",idField:"name",customPaperHeight:n.tableWrapper})})})]})}))},32112:function(e,n,t){t.r(n);var a=t(29439),s=t(72791),c=t(51691),r=t(21435),l=t(61889),o=t(9505),i=t(40306),u=t(75952),d=t(87995),m=t(1261),p=t(80184);n.default=function(e){var n=e.deleteOpen,t=e.selectedPVC,f=e.closeDeleteModalAndRefresh,h=(0,m.TL)(),Z=(0,s.useState)(""),v=(0,a.Z)(Z,2),C=v[0],x=v[1],b=(0,o.Z)((function(){return f(!0)}),(function(e){return h((0,d.Ih)(e))})),j=(0,a.Z)(b,2),g=j[0],P=j[1];return(0,p.jsx)(i.Z,{title:"Delete PVC",confirmText:"Delete",isOpen:n,titleIcon:(0,p.jsx)(u.NvT,{}),isLoading:g,onConfirm:function(){C===t.name?P("DELETE","/api/v1/namespaces/".concat(t.namespace,"/tenants/").concat(t.tenant,"/pvc/").concat(t.name)):h((0,d.Ih)({errorMessage:"PVC name is incorrect",detailedError:""}))},onClose:function(){return f(!1)},confirmButtonProps:{disabled:C!==t.name||g},confirmationContent:(0,p.jsxs)(c.Z,{children:["To continue please type ",(0,p.jsx)("b",{children:t.name})," in the box.",(0,p.jsx)(l.ZP,{item:!0,xs:12,children:(0,p.jsx)(r.Z,{id:"retype-PVC",name:"retype-PVC",onChange:function(e){x(e.target.value)},label:"",value:C})})]})})}}}]);
-//# sourceMappingURL=120.a3fdaff6.chunk.js.map
\ No newline at end of file
diff --git a/web-app/build/static/js/120.a3fdaff6.chunk.js.map b/web-app/build/static/js/120.a3fdaff6.chunk.js.map
deleted file mode 100644
index b1ee230d80a..00000000000
--- a/web-app/build/static/js/120.a3fdaff6.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/120.a3fdaff6.chunk.js","mappings":"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","sources":["screens/Console/Common/Hooks/useApi.tsx","screens/Console/Common/SearchBox.tsx","screens/Console/Storage/StoragePVCs.tsx","screens/Console/Tenants/TenantDetails/DeletePVC.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport api from \"../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\n\ntype NoReturnFunction = (param?: any) => void;\ntype ApiMethodToInvoke = (method: string, url: string, data?: any) => void;\ntype IsApiInProgress = boolean;\n\nconst useApi = (\n onSuccess: NoReturnFunction,\n onError: NoReturnFunction\n): [IsApiInProgress, ApiMethodToInvoke] => {\n const [isLoading, setIsLoading] = useState(false);\n\n const callApi = (method: string, url: string, data?: any, headers?: any) => {\n setIsLoading(true);\n api\n .invoke(method, url, data, headers)\n .then((res: any) => {\n setIsLoading(false);\n onSuccess(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setIsLoading(false);\n onError(err);\n });\n };\n\n return [isLoading, callApi];\n};\n\nexport default useApi;\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport { SearchIcon } from \"mds\";\nimport TextField from \"@mui/material/TextField\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"./FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n },\n adornment: {},\n });\n\ntype SearchBoxProps = {\n placeholder?: string;\n value: string;\n classes: any;\n onChange: (value: string) => void;\n adornmentPosition?: \"start\" | \"end\";\n overrideClass?: any;\n};\n\nconst SearchBox = ({\n placeholder = \"\",\n classes,\n onChange,\n adornmentPosition = \"end\",\n overrideClass,\n value,\n}: SearchBoxProps) => {\n const inputProps = {\n disableUnderline: true,\n [`${adornmentPosition}Adornment`]: (\n \n \n \n ),\n };\n return (\n {\n onChange(e.target.value);\n }}\n variant=\"standard\"\n value={value}\n />\n );\n};\n\nexport default withStyles(styles)(SearchBox);\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport { Grid } from \"@mui/material\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport { useAppDispatch } from \"../../../store\";\nimport { setErrorSnackMessage } from \"../../../systemSlice\";\nimport { IPVCsResponse, IStoragePVCs } from \"./types\";\nimport api from \"../../../common/api\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport DeletePVC from \"../Tenants/TenantDetails/DeletePVC\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport SearchBox from \"../Common/SearchBox\";\nimport PageHeaderWrapper from \"../Common/PageHeaderWrapper/PageHeaderWrapper\";\n\ninterface IStorageVolumesProps {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n tableWrapper: {\n height: \"calc(100vh - 150px)\",\n },\n ...actionsTray,\n ...searchField,\n ...containerForHeader,\n });\n\nconst StorageVolumes = ({ classes }: IStorageVolumesProps) => {\n const dispatch = useAppDispatch();\n\n const [records, setRecords] = useState([]);\n const [filter, setFilter] = useState(\"\");\n const [loading, setLoading] = useState(true);\n const [selectedPVC, setSelectedPVC] = useState(null);\n const [deleteOpen, setDeleteOpen] = useState(false);\n\n useEffect(() => {\n if (loading) {\n api\n .invoke(\"GET\", `/api/v1/list-pvcs`)\n .then((res: IPVCsResponse) => {\n let volumes = get(res, \"pvcs\", []);\n setRecords(volumes ? volumes : []);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n dispatch(setErrorSnackMessage(err));\n });\n }\n }, [loading, dispatch]);\n\n const filteredRecords: IStoragePVCs[] = records.filter((elementItem) =>\n elementItem.name.toLowerCase().includes(filter.toLowerCase())\n );\n\n const confirmDeletePVC = (pvcItem: IStoragePVCs) => {\n const delPvc = {\n ...pvcItem,\n tenant: pvcItem.tenant,\n namespace: pvcItem.namespace,\n };\n setSelectedPVC(delPvc);\n setDeleteOpen(true);\n };\n\n const tableActions = [{ type: \"delete\", onClick: confirmDeletePVC }];\n\n const closeDeleteModalAndRefresh = (reloadData: boolean) => {\n setDeleteOpen(false);\n setLoading(true);\n };\n\n return (\n \n {deleteOpen && (\n \n )}\n {\n setFilter(val);\n }}\n value={filter}\n />\n }\n />\n \n \n \n `${record.namespace}/${record.tenant}`,\n },\n {\n label: \"Capacity\",\n elementKey: \"capacity\",\n width: 90,\n },\n {\n label: \"Storage Class\",\n elementKey: \"storageClass\",\n },\n ]}\n isLoading={loading}\n records={filteredRecords}\n entityName=\"PVCs\"\n idField=\"name\"\n customPaperHeight={classes.tableWrapper}\n />\n \n \n \n );\n};\n\nexport default withStyles(styles)(StorageVolumes);\n","// This file is part of MinIO Operator\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useState } from \"react\";\nimport { DialogContentText } from \"@mui/material\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport Grid from \"@mui/material/Grid\";\n\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"mds\";\nimport { IStoragePVCs } from \"../../Storage/types\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport { useAppDispatch } from \"../../../../store\";\n\ninterface IDeletePVC {\n deleteOpen: boolean;\n selectedPVC: IStoragePVCs;\n closeDeleteModalAndRefresh: (refreshList: boolean) => any;\n}\n\nconst DeletePVC = ({\n deleteOpen,\n selectedPVC,\n closeDeleteModalAndRefresh,\n}: IDeletePVC) => {\n const dispatch = useAppDispatch();\n const [retypePVC, setRetypePVC] = useState(\"\");\n\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) =>\n dispatch(setErrorSnackMessage(err));\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n const onConfirmDelete = () => {\n if (retypePVC !== selectedPVC.name) {\n dispatch(\n setErrorSnackMessage({\n errorMessage: \"PVC name is incorrect\",\n detailedError: \"\",\n })\n );\n return;\n }\n invokeDeleteApi(\n \"DELETE\",\n `/api/v1/namespaces/${selectedPVC.namespace}/tenants/${selectedPVC.tenant}/pvc/${selectedPVC.name}`\n );\n };\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmButtonProps={{\n disabled: retypePVC !== selectedPVC.name || deleteLoading,\n }}\n confirmationContent={\n \n To continue please type {selectedPVC.name} in the box.\n \n ) => {\n setRetypePVC(event.target.value);\n }}\n label=\"\"\n value={retypePVC}\n />\n \n \n }\n />\n );\n};\n\nexport default DeletePVC;\n"],"names":["onSuccess","onError","useState","isLoading","setIsLoading","method","url","data","headers","api","then","res","catch","err","withStyles","theme","createStyles","searchField","adornment","placeholder","classes","onChange","adornmentPosition","overrideClass","value","inputProps","disableUnderline","position","className","id","label","InputProps","e","target","variant","tableWrapper","height","actionsTray","containerForHeader","dispatch","useAppDispatch","records","setRecords","filter","setFilter","loading","setLoading","selectedPVC","setSelectedPVC","deleteOpen","setDeleteOpen","useEffect","volumes","get","setErrorSnackMessage","filteredRecords","elementItem","name","toLowerCase","includes","tableActions","type","onClick","pvcItem","delPvc","tenant","namespace","Fragment","closeDeleteModalAndRefresh","reloadData","middleComponent","val","item","xs","itemActions","columns","elementKey","width","renderFullObject","renderFunction","record","entityName","idField","customPaperHeight","retypePVC","setRetypePVC","useApi","deleteLoading","invokeDeleteApi","title","confirmText","isOpen","titleIcon","onConfirm","errorMessage","detailedError","onClose","confirmButtonProps","disabled","confirmationContent","event"],"sourceRoot":""}
\ No newline at end of file
diff --git a/web-app/build/static/js/145.bbbee7ec.chunk.js b/web-app/build/static/js/145.bbbee7ec.chunk.js
new file mode 100644
index 00000000000..94a3b3a3ebf
--- /dev/null
+++ b/web-app/build/static/js/145.bbbee7ec.chunk.js
@@ -0,0 +1,2 @@
+"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[145],{59145:function(e,n,t){t.r(n),t.d(n,{default:function(){return k}});var i=t(29439),o=t(1413),a=t(72791),s=t(78687),c=t(11135),l=t(25787),r=t(61889),u=t(23814),d=t(41320),f=t(20890),p=t(45248),m=t(99779),x=t(11087),v=t(35527),h=t(75952),b=t(27454),g=t(80184),Z=(0,l.Z)((function(e){return(0,c.Z)((0,o.Z)({paperContainer:{padding:"15px",display:"flex",alignItems:"center",justifyContent:"center"},licenseInfoValue:{textTransform:"none",fontSize:14,fontWeight:"bold"},licenseContainer:{position:"relative",padding:"20px 52px 0px 28px",background:"#032F51",boxShadow:"0px 3px 7px #00000014","& h2":{color:"#FFF",marginBottom:67},"& a":{textDecoration:"none"},"& h3":{color:"#FFFFFF",marginBottom:"30px",fontWeight:"bold"},"& h6":{color:"#FFFFFF !important"}},licenseInfo:{color:"#FFFFFF",position:"relative"},licenseInfoTitle:{textTransform:"none",color:"#BFBFBF",fontSize:11},verifiedIcon:{width:96,position:"absolute",right:0,bottom:29},noUnderLine:{textDecoration:"none"}},u.Bz))}))((function(e){var n,t,i=e.classes,o=e.tenant,s=e.loadingActivateProduct,c=e.loadingLicenseInfo,l=e.licenseInfo,u=e.activateProduct,d=null!==o&&void 0!==o&&o.subnet_license?m.ou.fromISO(null===(n=o.subnet_license)||void 0===n?void 0:n.expires_at):m.ou.now();return(0,g.jsx)(v.Z,{className:o&&o.subnet_license?i.licenseContainer:"",children:o&&o.subnet_license?(0,g.jsx)(a.Fragment,{children:(0,g.jsxs)(r.ZP,{container:!0,className:i.licenseInfo,children:[(0,g.jsxs)(r.ZP,{item:!0,xs:6,children:[(0,g.jsx)(f.Z,{variant:"button",display:"block",gutterBottom:!0,className:i.licenseInfoTitle,children:"License"}),(0,g.jsx)(f.Z,{variant:"overline",display:"block",gutterBottom:!0,className:i.licenseInfoValue,children:"Commercial License"}),(0,g.jsx)(f.Z,{variant:"button",display:"block",gutterBottom:!0,className:i.licenseInfoTitle,children:"Organization"}),(0,g.jsx)(f.Z,{variant:"overline",display:"block",gutterBottom:!0,className:i.licenseInfoValue,children:o.subnet_license.organization}),(0,g.jsx)(f.Z,{variant:"button",display:"block",gutterBottom:!0,className:i.licenseInfoTitle,children:"Registered Capacity"}),(0,g.jsx)(f.Z,{variant:"overline",display:"block",gutterBottom:!0,className:i.licenseInfoValue,children:(0,p.ae)((1099511627776*((null===(t=o.subnet_license)||void 0===t?void 0:t.storage_capacity)||0)).toString(10))}),(0,g.jsx)(f.Z,{variant:"button",display:"block",gutterBottom:!0,className:i.licenseInfoTitle,children:"Expiry Date"}),(0,g.jsx)(f.Z,{variant:"overline",display:"block",gutterBottom:!0,className:i.licenseInfoValue,children:d.toFormat("yyyy-MM-dd")})]}),(0,g.jsxs)(r.ZP,{item:!0,xs:6,children:[(0,g.jsx)(f.Z,{variant:"button",display:"block",gutterBottom:!0,className:i.licenseInfoTitle,children:"Subscription Plan"}),(0,g.jsx)(f.Z,{variant:"overline",display:"block",gutterBottom:!0,className:i.licenseInfoValue,children:o.subnet_license.plan}),(0,g.jsx)(f.Z,{variant:"button",display:"block",gutterBottom:!0,className:i.licenseInfoTitle,children:"Requestor"}),(0,g.jsx)(f.Z,{variant:"overline",display:"block",gutterBottom:!0,className:i.licenseInfoValue,children:o.subnet_license.email})]}),(0,g.jsx)("img",{className:i.verifiedIcon,src:"/verified.svg",alt:"verified"})]})}):!c&&(0,g.jsxs)(r.ZP,{className:i.paperContainer,children:[!l&&(0,g.jsx)(x.rU,{to:"/license",onClick:function(e){e.stopPropagation()},className:i.noUnderLine,children:(0,g.jsx)(b.Z,{tooltip:"Activate Product",children:(0,g.jsx)(h.zxk,{id:"activate-product",label:"Activate Product",onClick:function(){return!1},variant:"callAction"})})}),l&&o&&(0,g.jsx)(b.Z,{tooltip:"Attach License",children:(0,g.jsx)(h.zxk,{id:"attach-license",disabled:s,label:"Attach License",onClick:function(){return u(o.namespace,o.name)},variant:"callAction"})})]})})})),j=t(81207),F=t(87995),I=t(17238),k=(0,l.Z)((function(e){return(0,c.Z)((0,o.Z)((0,o.Z)({},u.oZ),{},{loaderAlign:{textAlign:"center"}},u.Bz))}))((function(e){var n=e.classes,t=(0,d.TL)(),o=(0,s.v9)((function(e){return e.tenants.loadingTenant})),c=(0,s.v9)((function(e){return e.tenants.tenantInfo})),l=(0,a.useState)(),u=(0,i.Z)(l,2),f=u[0],p=u[1],m=(0,a.useState)(!0),x=(0,i.Z)(m,2),v=x[0],b=x[1],k=(0,a.useState)(!1),y=(0,i.Z)(k,2),N=y[0],B=y[1];return(0,a.useEffect)((function(){v&&j.Z.invoke("GET","/api/v1/subscription/info").then((function(e){p(e),b(!1)})).catch((function(e){b(!1)}))}),[v]),(0,g.jsxs)(a.Fragment,{children:[(0,g.jsx)("h1",{className:n.sectionTitle,children:"License"}),o?(0,g.jsx)("div",{className:n.loaderAlign,children:(0,g.jsx)(h.aNw,{})}):(0,g.jsx)(a.Fragment,{children:c&&(0,g.jsx)(r.ZP,{container:!0,children:(0,g.jsx)(r.ZP,{item:!0,xs:12,children:(0,g.jsx)(Z,{tenant:c,loadingLicenseInfo:v,loadingActivateProduct:N,licenseInfo:f,activateProduct:function(e,n){N||(B(!0),j.Z.invoke("POST","/api/v1/subscription/namespaces/".concat(e,"/tenants/").concat(n,"/activate"),{}).then((function(){B(!1),t((0,I.V2)(!0)),b(!0)})).catch((function(e){B(!1),t((0,F.Ih)(e))})))}})})})})]})}))}}]);
+//# sourceMappingURL=145.bbbee7ec.chunk.js.map
\ No newline at end of file
diff --git a/web-app/build/static/js/145.bbbee7ec.chunk.js.map b/web-app/build/static/js/145.bbbee7ec.chunk.js.map
new file mode 100644
index 00000000000..8822d902fec
--- /dev/null
+++ b/web-app/build/static/js/145.bbbee7ec.chunk.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"static/js/145.bbbee7ec.chunk.js","mappings":"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","sources":["screens/Console/Tenants/TenantDetails/SubnetLicenseTenant.tsx","screens/Console/Tenants/TenantDetails/TenantLicense.tsx"],"sourcesContent":["// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport { containerForHeader } from \"../../Common/FormComponents/common/styleLibrary\";\nimport { Typography } from \"@mui/material\";\nimport { niceBytes } from \"../../../../common/utils\";\nimport { DateTime } from \"luxon\";\nimport { Link } from \"react-router-dom\";\nimport Paper from \"@mui/material/Paper\";\nimport { Button } from \"mds\";\nimport { SubnetInfo } from \"../../License/types\";\nimport TooltipWrapper from \"../../Common/TooltipWrapper/TooltipWrapper\";\nimport { Tenant } from \"../../../../api/operatorApi\";\n\ninterface ISubnetLicenseTenant {\n classes: any;\n tenant: Tenant | null;\n loadingActivateProduct: any;\n loadingLicenseInfo: boolean;\n licenseInfo: SubnetInfo | undefined;\n activateProduct: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n paperContainer: {\n padding: \"15px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n licenseInfoValue: {\n textTransform: \"none\",\n fontSize: 14,\n fontWeight: \"bold\",\n },\n licenseContainer: {\n position: \"relative\",\n padding: \"20px 52px 0px 28px\",\n background: \"#032F51\",\n boxShadow: \"0px 3px 7px #00000014\",\n \"& h2\": {\n color: \"#FFF\",\n marginBottom: 67,\n },\n \"& a\": {\n textDecoration: \"none\",\n },\n \"& h3\": {\n color: \"#FFFFFF\",\n marginBottom: \"30px\",\n fontWeight: \"bold\",\n },\n \"& h6\": {\n color: \"#FFFFFF !important\",\n },\n },\n licenseInfo: { color: \"#FFFFFF\", position: \"relative\" },\n licenseInfoTitle: {\n textTransform: \"none\",\n color: \"#BFBFBF\",\n fontSize: 11,\n },\n verifiedIcon: {\n width: 96,\n position: \"absolute\",\n right: 0,\n bottom: 29,\n },\n noUnderLine: {\n textDecoration: \"none\",\n },\n ...containerForHeader,\n });\n\nconst SubnetLicenseTenant = ({\n classes,\n tenant,\n loadingActivateProduct,\n loadingLicenseInfo,\n licenseInfo,\n activateProduct,\n}: ISubnetLicenseTenant) => {\n const expiryTime = tenant?.subnet_license\n ? DateTime.fromISO(tenant.subnet_license?.expires_at!)\n : DateTime.now();\n\n return (\n \n {tenant && tenant.subnet_license ? (\n \n \n \n \n License\n \n \n Commercial License\n \n \n Organization\n \n \n {tenant.subnet_license.organization}\n \n \n Registered Capacity\n \n \n {niceBytes(\n (\n (tenant.subnet_license?.storage_capacity || 0) *\n 1099511627776\n ) // 1 Terabyte = 1099511627776 Bytes\n .toString(10)\n )}\n \n \n Expiry Date\n \n \n {expiryTime.toFormat(\"yyyy-MM-dd\")}\n \n \n \n \n Subscription Plan\n \n \n {tenant.subnet_license.plan}\n \n \n Requestor\n \n \n {tenant.subnet_license.email}\n \n \n \n \n \n ) : (\n !loadingLicenseInfo && (\n \n {!licenseInfo && (\n {\n e.stopPropagation();\n }}\n className={classes.noUnderLine}\n >\n \n \n \n )}\n {licenseInfo && tenant && (\n \n \n )}\n \n )\n )}\n \n );\n};\n\nexport default withStyles(styles)(SubnetLicenseTenant);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n containerForHeader,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { SubnetInfo } from \"../../License/types\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport SubnetLicenseTenant from \"./SubnetLicenseTenant\";\nimport api from \"../../../../common/api\";\nimport { Loader } from \"mds\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport { setTenantDetailsLoad } from \"../tenantsSlice\";\n\ninterface ITenantLicense {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n loaderAlign: {\n textAlign: \"center\",\n },\n ...containerForHeader,\n });\n\nconst TenantLicense = ({ classes }: ITenantLicense) => {\n const dispatch = useAppDispatch();\n\n const loadingTenant = useSelector(\n (state: AppState) => state.tenants.loadingTenant\n );\n const tenant = useSelector((state: AppState) => state.tenants.tenantInfo);\n\n const [licenseInfo, setLicenseInfo] = useState();\n const [loadingLicenseInfo, setLoadingLicenseInfo] = useState(true);\n const [loadingActivateProduct, setLoadingActivateProduct] =\n useState(false);\n\n const activateProduct = (namespace: string, tenant: string) => {\n if (loadingActivateProduct) {\n return;\n }\n setLoadingActivateProduct(true);\n api\n .invoke(\n \"POST\",\n `/api/v1/subscription/namespaces/${namespace}/tenants/${tenant}/activate`,\n {}\n )\n .then(() => {\n setLoadingActivateProduct(false);\n dispatch(setTenantDetailsLoad(true));\n setLoadingLicenseInfo(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingActivateProduct(false);\n dispatch(setErrorSnackMessage(err));\n });\n };\n\n useEffect(() => {\n if (loadingLicenseInfo) {\n api\n .invoke(\"GET\", `/api/v1/subscription/info`)\n .then((res: SubnetInfo) => {\n setLicenseInfo(res);\n setLoadingLicenseInfo(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingLicenseInfo(false);\n });\n }\n }, [loadingLicenseInfo]);\n\n return (\n \n
License
\n {loadingTenant ? (\n
\n \n
\n ) : (\n \n {tenant && (\n \n \n \n \n \n )}\n \n )}\n \n );\n};\n\nexport default withStyles(styles)(TenantLicense);\n"],"names":["withStyles","theme","createStyles","paperContainer","padding","display","alignItems","justifyContent","licenseInfoValue","textTransform","fontSize","fontWeight","licenseContainer","position","background","boxShadow","color","marginBottom","textDecoration","licenseInfo","licenseInfoTitle","verifiedIcon","width","right","bottom","noUnderLine","containerForHeader","classes","tenant","loadingActivateProduct","loadingLicenseInfo","activateProduct","expiryTime","subnet_license","DateTime","expires_at","Paper","className","Grid","container","item","xs","Typography","variant","gutterBottom","organization","niceBytes","storage_capacity","toString","toFormat","plan","email","src","alt","to","onClick","e","stopPropagation","TooltipWrapper","tooltip","id","label","disabled","namespace","name","tenantDetailsStyles","loaderAlign","textAlign","dispatch","useAppDispatch","loadingTenant","useSelector","state","tenants","tenantInfo","useState","setLicenseInfo","setLoadingLicenseInfo","setLoadingActivateProduct","useEffect","api","then","res","catch","err","Fragment","sectionTitle","setTenantDetailsLoad","setErrorSnackMessage"],"sourceRoot":""}
\ No newline at end of file
diff --git a/web-app/build/static/js/145.fa96ab1b.chunk.js b/web-app/build/static/js/145.fa96ab1b.chunk.js
deleted file mode 100644
index 73269226769..00000000000
--- a/web-app/build/static/js/145.fa96ab1b.chunk.js
+++ /dev/null
@@ -1,2 +0,0 @@
-"use strict";(self.webpackChunkweb_app=self.webpackChunkweb_app||[]).push([[145],{59145:function(e,n,t){t.r(n),t.d(n,{default:function(){return k}});var i=t(29439),a=t(1413),o=t(72791),s=t(78687),c=t(11135),l=t(25787),r=t(61889),u=t(23814),d=t(1261),f=t(20890),p=t(45248),m=t(99779),x=t(11087),h=t(35527),v=t(75952),b=t(27454),g=t(80184),Z=(0,l.Z)((function(e){return(0,c.Z)((0,a.Z)({paperContainer:{padding:"15px",display:"flex",alignItems:"center",justifyContent:"center"},licenseInfoValue:{textTransform:"none",fontSize:14,fontWeight:"bold"},licenseContainer:{position:"relative",padding:"20px 52px 0px 28px",background:"#032F51",boxShadow:"0px 3px 7px #00000014","& h2":{color:"#FFF",marginBottom:67},"& a":{textDecoration:"none"},"& h3":{color:"#FFFFFF",marginBottom:"30px",fontWeight:"bold"},"& h6":{color:"#FFFFFF !important"}},licenseInfo:{color:"#FFFFFF",position:"relative"},licenseInfoTitle:{textTransform:"none",color:"#BFBFBF",fontSize:11},verifiedIcon:{width:96,position:"absolute",right:0,bottom:29},noUnderLine:{textDecoration:"none"}},u.Bz))}))((function(e){var n=e.classes,t=e.tenant,i=e.loadingActivateProduct,a=e.loadingLicenseInfo,s=e.licenseInfo,c=e.activateProduct,l=null!==t&&void 0!==t&&t.subnet_license?m.ou.fromISO(t.subnet_license.expires_at):m.ou.now();return(0,g.jsx)(h.Z,{className:t&&t.subnet_license?n.licenseContainer:"",children:t&&t.subnet_license?(0,g.jsx)(o.Fragment,{children:(0,g.jsxs)(r.ZP,{container:!0,className:n.licenseInfo,children:[(0,g.jsxs)(r.ZP,{item:!0,xs:6,children:[(0,g.jsx)(f.Z,{variant:"button",display:"block",gutterBottom:!0,className:n.licenseInfoTitle,children:"License"}),(0,g.jsx)(f.Z,{variant:"overline",display:"block",gutterBottom:!0,className:n.licenseInfoValue,children:"Commercial License"}),(0,g.jsx)(f.Z,{variant:"button",display:"block",gutterBottom:!0,className:n.licenseInfoTitle,children:"Organization"}),(0,g.jsx)(f.Z,{variant:"overline",display:"block",gutterBottom:!0,className:n.licenseInfoValue,children:t.subnet_license.organization}),(0,g.jsx)(f.Z,{variant:"button",display:"block",gutterBottom:!0,className:n.licenseInfoTitle,children:"Registered Capacity"}),(0,g.jsx)(f.Z,{variant:"overline",display:"block",gutterBottom:!0,className:n.licenseInfoValue,children:(0,p.ae)((1099511627776*t.subnet_license.storage_capacity).toString(10))}),(0,g.jsx)(f.Z,{variant:"button",display:"block",gutterBottom:!0,className:n.licenseInfoTitle,children:"Expiry Date"}),(0,g.jsx)(f.Z,{variant:"overline",display:"block",gutterBottom:!0,className:n.licenseInfoValue,children:l.toFormat("yyyy-MM-dd")})]}),(0,g.jsxs)(r.ZP,{item:!0,xs:6,children:[(0,g.jsx)(f.Z,{variant:"button",display:"block",gutterBottom:!0,className:n.licenseInfoTitle,children:"Subscription Plan"}),(0,g.jsx)(f.Z,{variant:"overline",display:"block",gutterBottom:!0,className:n.licenseInfoValue,children:t.subnet_license.plan}),(0,g.jsx)(f.Z,{variant:"button",display:"block",gutterBottom:!0,className:n.licenseInfoTitle,children:"Requestor"}),(0,g.jsx)(f.Z,{variant:"overline",display:"block",gutterBottom:!0,className:n.licenseInfoValue,children:t.subnet_license.email})]}),(0,g.jsx)("img",{className:n.verifiedIcon,src:"/verified.svg",alt:"verified"})]})}):!a&&(0,g.jsxs)(r.ZP,{className:n.paperContainer,children:[!s&&(0,g.jsx)(x.rU,{to:"/license",onClick:function(e){e.stopPropagation()},className:n.noUnderLine,children:(0,g.jsx)(b.Z,{tooltip:"Activate Product",children:(0,g.jsx)(v.zxk,{id:"activate-product",label:"Activate Product",onClick:function(){return!1},variant:"callAction"})})}),s&&t&&(0,g.jsx)(b.Z,{tooltip:"Attach License",children:(0,g.jsx)(v.zxk,{id:"attach-license",disabled:i,label:"Attach License",onClick:function(){return c(t.namespace,t.name)},variant:"callAction"})})]})})})),j=t(81207),F=t(87995),I=t(17238),k=(0,l.Z)((function(e){return(0,c.Z)((0,a.Z)((0,a.Z)({},u.oZ),{},{loaderAlign:{textAlign:"center"}},u.Bz))}))((function(e){var n=e.classes,t=(0,d.TL)(),a=(0,s.v9)((function(e){return e.tenants.loadingTenant})),c=(0,s.v9)((function(e){return e.tenants.tenantInfo})),l=(0,o.useState)(),u=(0,i.Z)(l,2),f=u[0],p=u[1],m=(0,o.useState)(!0),x=(0,i.Z)(m,2),h=x[0],b=x[1],k=(0,o.useState)(!1),y=(0,i.Z)(k,2),N=y[0],B=y[1];return(0,o.useEffect)((function(){h&&j.Z.invoke("GET","/api/v1/subscription/info").then((function(e){p(e),b(!1)})).catch((function(e){b(!1)}))}),[h]),(0,g.jsxs)(o.Fragment,{children:[(0,g.jsx)("h1",{className:n.sectionTitle,children:"License"}),a?(0,g.jsx)("div",{className:n.loaderAlign,children:(0,g.jsx)(v.aNw,{})}):(0,g.jsx)(o.Fragment,{children:c&&(0,g.jsx)(r.ZP,{container:!0,children:(0,g.jsx)(r.ZP,{item:!0,xs:12,children:(0,g.jsx)(Z,{tenant:c,loadingLicenseInfo:h,loadingActivateProduct:N,licenseInfo:f,activateProduct:function(e,n){N||(B(!0),j.Z.invoke("POST","/api/v1/subscription/namespaces/".concat(e,"/tenants/").concat(n,"/activate"),{}).then((function(){B(!1),t((0,I.V2)(!0)),b(!0)})).catch((function(e){B(!1),t((0,F.Ih)(e))})))}})})})})]})}))}}]);
-//# sourceMappingURL=145.fa96ab1b.chunk.js.map
\ No newline at end of file
diff --git a/web-app/build/static/js/145.fa96ab1b.chunk.js.map b/web-app/build/static/js/145.fa96ab1b.chunk.js.map
deleted file mode 100644
index cd12e30b597..00000000000
--- a/web-app/build/static/js/145.fa96ab1b.chunk.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"file":"static/js/145.fa96ab1b.chunk.js","mappings":"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","sources":["screens/Console/Tenants/TenantDetails/SubnetLicenseTenant.tsx","screens/Console/Tenants/TenantDetails/TenantLicense.tsx"],"sourcesContent":["// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport { containerForHeader } from \"../../Common/FormComponents/common/styleLibrary\";\nimport { Typography } from \"@mui/material\";\nimport { niceBytes } from \"../../../../common/utils\";\nimport { DateTime } from \"luxon\";\nimport { Link } from \"react-router-dom\";\nimport Paper from \"@mui/material/Paper\";\nimport { ITenant } from \"../ListTenants/types\";\nimport { Button } from \"mds\";\nimport { SubnetInfo } from \"../../License/types\";\nimport TooltipWrapper from \"../../Common/TooltipWrapper/TooltipWrapper\";\n\ninterface ISubnetLicenseTenant {\n classes: any;\n tenant: ITenant | null;\n loadingActivateProduct: any;\n loadingLicenseInfo: boolean;\n licenseInfo: SubnetInfo | undefined;\n activateProduct: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n paperContainer: {\n padding: \"15px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n licenseInfoValue: {\n textTransform: \"none\",\n fontSize: 14,\n fontWeight: \"bold\",\n },\n licenseContainer: {\n position: \"relative\",\n padding: \"20px 52px 0px 28px\",\n background: \"#032F51\",\n boxShadow: \"0px 3px 7px #00000014\",\n \"& h2\": {\n color: \"#FFF\",\n marginBottom: 67,\n },\n \"& a\": {\n textDecoration: \"none\",\n },\n \"& h3\": {\n color: \"#FFFFFF\",\n marginBottom: \"30px\",\n fontWeight: \"bold\",\n },\n \"& h6\": {\n color: \"#FFFFFF !important\",\n },\n },\n licenseInfo: { color: \"#FFFFFF\", position: \"relative\" },\n licenseInfoTitle: {\n textTransform: \"none\",\n color: \"#BFBFBF\",\n fontSize: 11,\n },\n verifiedIcon: {\n width: 96,\n position: \"absolute\",\n right: 0,\n bottom: 29,\n },\n noUnderLine: {\n textDecoration: \"none\",\n },\n ...containerForHeader,\n });\n\nconst SubnetLicenseTenant = ({\n classes,\n tenant,\n loadingActivateProduct,\n loadingLicenseInfo,\n licenseInfo,\n activateProduct,\n}: ISubnetLicenseTenant) => {\n const expiryTime = tenant?.subnet_license\n ? DateTime.fromISO(tenant.subnet_license.expires_at)\n : DateTime.now();\n\n return (\n \n {tenant && tenant.subnet_license ? (\n \n \n \n \n License\n \n \n Commercial License\n \n \n Organization\n \n \n {tenant.subnet_license.organization}\n \n \n Registered Capacity\n \n \n {niceBytes(\n (tenant.subnet_license.storage_capacity * 1099511627776) // 1 Terabyte = 1099511627776 Bytes\n .toString(10)\n )}\n \n \n Expiry Date\n \n \n {expiryTime.toFormat(\"yyyy-MM-dd\")}\n \n \n \n \n Subscription Plan\n \n \n {tenant.subnet_license.plan}\n \n \n Requestor\n \n \n {tenant.subnet_license.email}\n \n \n \n \n \n ) : (\n !loadingLicenseInfo && (\n \n {!licenseInfo && (\n {\n e.stopPropagation();\n }}\n className={classes.noUnderLine}\n >\n \n \n \n )}\n {licenseInfo && tenant && (\n \n \n )}\n \n )\n )}\n \n );\n};\n\nexport default withStyles(styles)(SubnetLicenseTenant);\n","// This file is part of MinIO Operator\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n containerForHeader,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { SubnetInfo } from \"../../License/types\";\nimport { AppState, useAppDispatch } from \"../../../../store\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport SubnetLicenseTenant from \"./SubnetLicenseTenant\";\nimport api from \"../../../../common/api\";\nimport { Loader } from \"mds\";\nimport { setErrorSnackMessage } from \"../../../../systemSlice\";\nimport { setTenantDetailsLoad } from \"../tenantsSlice\";\n\ninterface ITenantLicense {\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n loaderAlign: {\n textAlign: \"center\",\n },\n ...containerForHeader,\n });\n\nconst TenantLicense = ({ classes }: ITenantLicense) => {\n const dispatch = useAppDispatch();\n\n const loadingTenant = useSelector(\n (state: AppState) => state.tenants.loadingTenant\n );\n const tenant = useSelector((state: AppState) => state.tenants.tenantInfo);\n\n const [licenseInfo, setLicenseInfo] = useState();\n const [loadingLicenseInfo, setLoadingLicenseInfo] = useState(true);\n const [loadingActivateProduct, setLoadingActivateProduct] =\n useState(false);\n\n const activateProduct = (namespace: string, tenant: string) => {\n if (loadingActivateProduct) {\n return;\n }\n setLoadingActivateProduct(true);\n api\n .invoke(\n \"POST\",\n `/api/v1/subscription/namespaces/${namespace}/tenants/${tenant}/activate`,\n {}\n )\n .then(() => {\n setLoadingActivateProduct(false);\n dispatch(setTenantDetailsLoad(true));\n setLoadingLicenseInfo(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingActivateProduct(false);\n dispatch(setErrorSnackMessage(err));\n });\n };\n\n useEffect(() => {\n if (loadingLicenseInfo) {\n api\n .invoke(\"GET\", `/api/v1/subscription/info`)\n .then((res: SubnetInfo) => {\n setLicenseInfo(res);\n setLoadingLicenseInfo(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingLicenseInfo(false);\n });\n }\n }, [loadingLicenseInfo]);\n\n return (\n \n