diff --git a/404.html b/404.html index 0c1de9af2..257a25322 100644 --- a/404.html +++ b/404.html @@ -5,14 +5,14 @@ -Page Not Found | Hadmean - - +Page Not Found | Hadmean + +
-
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- - +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

+ + \ No newline at end of file diff --git a/assets/css/styles.84ab8758.css b/assets/css/styles.84ab8758.css deleted file mode 100644 index cbd4d1203..000000000 --- a/assets/css/styles.84ab8758.css +++ /dev/null @@ -1 +0,0 @@ -.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}:root,body.dark,body[data-theme=dark]{--aa-icon-color-rgb:119,119,163;--aa-scrollbar-thumb-background-color-rgb:var(--aa-background-color-rgb)}.button,.dropdown__link,.sr-only,.text--truncate{white-space:nowrap}*,.aa-Autocomplete *,.aa-DetachedFormContainer *,.aa-Panel *,:after,:before{box-sizing:border-box}.focus\:ring-2:focus,.focus\:ring-4:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.aa-List,.clean-list,.containsTaskList_mC6p,.details_lb9f>summary,.dropdown__menu,.menu__list,ol,ul{list-style:none}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#4b38b3;--ifm-color-primary-dark:#4b38b3;--ifm-color-primary-darker:#4b38b3;--ifm-color-primary-darkest:#4b38b3;--ifm-color-primary-light:#4b38b3;--ifm-color-primary-lighter:#4b38b3;--ifm-color-primary-lightest:#4b38b3;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--docusaurus-announcement-bar-height:auto;--aa-search-input-height:44px;--aa-input-icon-size:20px;--aa-base-unit:16;--aa-spacing-factor:1;--aa-spacing:calc(var(--aa-base-unit)*var(--aa-spacing-factor)*1px);--aa-spacing-half:calc(var(--aa-spacing)/2);--aa-panel-max-height:650px;--aa-base-z-index:9999;--aa-font-size:calc(var(--aa-base-unit)*1px);--aa-font-family:inherit;--aa-font-weight-medium:500;--aa-font-weight-semibold:600;--aa-font-weight-bold:700;--aa-icon-size:20px;--aa-icon-stroke-width:1.6;--aa-icon-color-alpha:1;--aa-action-icon-size:20px;--aa-text-color-rgb:38,38,39;--aa-text-color-alpha:1;--aa-primary-color-rgb:62,52,211;--aa-primary-color-alpha:0.2;--aa-muted-color-rgb:128,126,163;--aa-muted-color-alpha:0.6;--aa-panel-border-color-rgb:128,126,163;--aa-panel-border-color-alpha:0.3;--aa-input-border-color-rgb:128,126,163;--aa-input-border-color-alpha:0.8;--aa-background-color-rgb:255,255,255;--aa-background-color-alpha:1;--aa-input-background-color-rgb:255,255,255;--aa-input-background-color-alpha:1;--aa-selected-color-rgb:179,173,214;--aa-selected-color-alpha:0.205;--aa-description-highlight-background-color-rgb:245,223,77;--aa-description-highlight-background-color-alpha:0.5;--aa-detached-media-query:(max-width:680px);--aa-detached-modal-media-query:(min-width:680px);--aa-detached-modal-max-width:680px;--aa-detached-modal-max-height:500px;--aa-overlay-color-rgb:115,114,129;--aa-overlay-color-alpha:0.4;--aa-panel-shadow:0 0 0 1px #23263b1a,0 6px 16px -4px #23263b26;--aa-scrollbar-width:13px;--aa-scrollbar-track-background-color-rgb:234,234,234;--aa-scrollbar-track-background-color-alpha:1;--aa-scrollbar-thumb-background-color-alpha:1;--aa-search-input-height:36px;--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base)}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.list_eTzJ article:last-child,.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.items-center,.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.items-baseline,.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding);margin:0;padding:0}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_tbUL,.alert__heading,.text--uppercase,.uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area.breadcrumbs__link[href]:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child,.pt-0{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links,.mb-4{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_S0QG>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q>:last-child,.footer__items{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title,.title_f1Hy{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;content:""}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.docsWrapper_BCFX,.flex,.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-duration:.25s;transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-duration:.1s;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.inline-flex,.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover,.sidebarItemLink_mo7H:hover,a:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}[data-theme=dark]{--ifm-color-primary:#4b38b3;--ifm-color-primary-dark:#4b38b3;--ifm-color-primary-darker:#4b38b3;--ifm-color-primary-darkest:#4b38b3;--ifm-color-primary-light:#4b38b3;--ifm-color-primary-lighter:#4b38b3;--ifm-color-primary-lightest:#4b38b3;--docusaurus-highlighted-code-line-bg:#0000004d}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#docusaurus-base-url-issue-banner-container,.aa-ClearButton[hidden],.aa-ItemContent:empty,.aa-LoadingIndicator[hidden],.aa-Source:empty,.aa-SourceHeader:empty,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px;line-height:0;padding:0}.announcementBarContent_xLdY{flex:1 1 auto;font-size:85%;padding:5px 0;text-align:center}.announcementBarContent_xLdY a{color:inherit;text-decoration:underline}.toggle_vylO{height:2rem;width:2rem}.aa-Form,.toggleButton_gllP{align-items:center;width:100%;display:flex}.toggleButton_gllP{border-radius:50%;height:100%;justify-content:center;transition:background var(--ifm-transition-fast)}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}body.dark,body[data-theme=dark]{--aa-text-color-rgb:183,192,199;--aa-primary-color-rgb:146,138,255;--aa-muted-color-rgb:146,138,255;--aa-input-background-color-rgb:0,3,9;--aa-background-color-rgb:21,24,42;--aa-selected-color-rgb:146,138,255;--aa-selected-color-alpha:0.25;--aa-description-highlight-background-color-rgb:0 255 255;--aa-description-highlight-background-color-alpha:0.25;--aa-panel-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--aa-scrollbar-track-background-color-rgb:44,46,64;--aa-muted-color-alpha:1}.aa-Autocomplete,.aa-DetachedFormContainer,.aa-Panel{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-family:inherit;font-family:var(--aa-font-family);font-size:16px;font-size:var(--aa-font-size);font-weight:400;line-height:1em;margin:0;padding:0;text-align:left}.aa-Form{background-color:#fff;background-color:rgba(var(--aa-input-background-color-rgb),var(--aa-input-background-color-alpha));border:1px solid #807ea3cc;border:1px solid rgba(var(--aa-input-border-color-rgb),var(--aa-input-border-color-alpha));border-radius:3px;line-height:1em;margin:0;position:relative}.aa-ClearButton,.aa-Input,.aa-SubmitButton{border:0;background:none}.aa-Form:focus-within,.aa-Form[focus-within]{border-color:#3e34d3;border-color:rgba(var(--aa-primary-color-rgb),1);box-shadow:0 0 0 2px #3e34d333,inset 0 0 0 2px #3e34d333;box-shadow:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px,inset rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px;outline:currentColor}.aa-InputWrapperPrefix{align-items:center;display:flex;flex-shrink:0;height:44px;height:var(--aa-search-input-height);order:1}.aa-Label,.aa-LoadingIndicator{cursor:auto;flex-shrink:0;height:100%;padding:0;text-align:left}.aa-Label svg,.aa-LoadingIndicator svg{stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);height:auto;max-height:20px;max-height:var(--aa-input-icon-size);width:20px;width:var(--aa-input-icon-size)}.aa-LoadingIndicator,.aa-SubmitButton{height:100%;padding-left:11px;padding-left:calc(var(--aa-spacing)*.75 - 1px);padding-right:8px;padding-right:var(--aa-spacing-half);width:47px;width:calc(var(--aa-spacing)*1.75 + var(--aa-icon-size) - 1px)}.aa-SubmitButton{-webkit-appearance:none;appearance:none;margin:0}.aa-LoadingIndicator{align-items:center;display:flex;justify-content:center}.aa-InputWrapper{order:3;position:relative;width:100%}.aa-Input{-webkit-appearance:none;appearance:none;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font:inherit;height:44px;height:var(--aa-search-input-height);padding:0;width:100%}.aa-Input::placeholder{color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));opacity:1}.aa-Input:focus{border-color:none;box-shadow:none;outline:0}.aa-Input::-webkit-search-cancel-button,.aa-Input::-webkit-search-decoration,.aa-Input::-webkit-search-results-button,.aa-Input::-webkit-search-results-decoration{-webkit-appearance:none;appearance:none}.aa-InputWrapperSuffix{align-items:center;display:flex;height:44px;height:var(--aa-search-input-height);order:4}.aa-ClearButton{align-items:center;color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;height:100%;margin:0;padding:0 12.8333333333px;padding:0 calc(var(--aa-spacing)*.83333 - .5px)}.aa-Item,.aa-ItemIcon{align-items:center;border-radius:3px}.aa-ClearButton:focus,.aa-ClearButton:hover,.aa-ItemActionButton:focus svg,.aa-ItemActionButton:hover svg{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha))}.aa-ClearButton svg{stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);width:20px;width:var(--aa-icon-size)}.aa-Panel{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));border-radius:4px;border-radius:calc(var(--aa-spacing)/4);box-shadow:0 0 0 1px #23263b1a,0 6px 16px -4px #23263b26;box-shadow:var(--aa-panel-shadow);margin:8px 0 0;overflow:hidden;position:absolute;transition:opacity .2s ease-in,filter .2s ease-in}.aa-Panel button{-webkit-appearance:none;appearance:none;background:none;border:0;margin:0;padding:0}.aa-PanelLayout{height:100%;margin:0;max-height:650px;max-height:var(--aa-panel-max-height);overflow-y:auto;padding:0;position:relative;text-align:left}.aa-PanelLayoutColumns--twoGolden{display:grid;grid-template-columns:39.2% auto;overflow:hidden;padding:0}.aa-PanelLayoutColumns--two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;padding:0}.aa-PanelLayoutColumns--three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;padding:0}.aa-Panel--stalled .aa-Source{filter:grayscale(1);opacity:.8}.aa-Panel--scrollable{margin:0;max-height:650px;max-height:var(--aa-panel-max-height);overflow-x:hidden;overflow-y:auto;padding:8px;padding:var(--aa-spacing-half);scrollbar-color:#fff #eaeaea;scrollbar-color:rgba(var(--aa-scrollbar-thumb-background-color-rgb),var(--aa-scrollbar-thumb-background-color-alpha)) rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha));scrollbar-width:thin}.sidebar_re4s,.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem)}.aa-Panel--scrollable::-webkit-scrollbar{width:13px;width:var(--aa-scrollbar-width)}.aa-Panel--scrollable::-webkit-scrollbar-track{background-color:#eaeaea;background-color:rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha))}.aa-Panel--scrollable::-webkit-scrollbar-thumb{background-color:#fff;background-color:rgba(var(--aa-scrollbar-thumb-background-color-rgb),var(--aa-scrollbar-thumb-background-color-alpha));border:3px solid #eaeaea;border-color:rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha));border-radius:9999px;border-right:2px solid rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha))}.aa-Source{margin:0;padding:0;position:relative;width:100%}.aa-SourceNoResults{font-size:1em;margin:0;padding:16px;padding:var(--aa-spacing)}.aa-List{margin:0}.aa-List,.aa-SourceHeader{padding:0;position:relative}.aa-SourceHeader{margin:8px .5em 8px 0;margin:var(--aa-spacing-half) .5em var(--aa-spacing-half) 0}.aa-SourceHeaderTitle{background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);display:inline-block;font-size:.8em;font-weight:600;font-weight:var(--aa-font-weight-semibold);margin:0;padding:0 8px 0 0;padding:0 var(--aa-spacing-half) 0 0;position:relative;z-index:9999;z-index:var(--aa-base-z-index)}.aa-SourceHeaderLine{border-bottom:1px solid #3e34d3;border-bottom:1px solid rgba(var(--aa-primary-color-rgb),1);display:block;height:2px;left:0;margin:0;opacity:.3;padding:0;position:absolute;right:0;top:8px;top:var(--aa-spacing-half);z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-SourceFooterSeeAll{background:linear-gradient(180deg,#fff,#807ea324);background:linear-gradient(180deg,rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha)),#807ea324);border:1px solid #807ea399;border:1px solid rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));border-radius:5px;box-shadow:inset 0 0 2px #fff,0 2px 2px -1px #4c455826;color:inherit;font-size:.95em;font-weight:500;font-weight:var(--aa-font-weight-medium);padding:.475em 1em .6em;text-decoration:none}.aa-SourceFooterSeeAll:focus,.aa-SourceFooterSeeAll:hover{border:1px solid #3e34d3;border:1px solid rgba(var(--aa-primary-color-rgb),1);color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1)}.aa-Item{cursor:pointer;display:grid;min-height:40px;min-height:calc(var(--aa-spacing)*2.5);padding:4px;padding:calc(var(--aa-spacing-half)/2)}.aa-Item[aria-selected=true]{background-color:rgba(179,173,214,.205);background-color:rgba(var(--aa-selected-color-rgb),var(--aa-selected-color-alpha))}.aa-Item[aria-selected=true] .aa-ActiveOnly,.aa-Item[aria-selected=true] .aa-ItemActionButton{visibility:visible}.aa-ItemIcon{stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));box-shadow:inset 0 0 0 1px #807ea34d;box-shadow:inset 0 0 0 1px rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));color:#7777a3;color:rgba(var(--aa-icon-color-rgb),var(--aa-icon-color-alpha));display:flex;flex-shrink:0;font-size:.7em;height:28px;height:calc(var(--aa-icon-size) + var(--aa-spacing-half));justify-content:center;overflow:hidden;text-align:center;width:28px;width:calc(var(--aa-icon-size) + var(--aa-spacing-half))}.aa-ItemIcon img{height:auto;max-height:20px;max-height:calc(var(--aa-icon-size) + var(--aa-spacing-half) - 8px);max-width:20px;max-width:calc(var(--aa-icon-size) + var(--aa-spacing-half) - 8px);width:auto}.aa-ItemIcon svg{height:20px;height:var(--aa-icon-size);width:20px;width:var(--aa-icon-size)}.aa-ItemIcon--alignTop{align-self:flex-start}.aa-ItemIcon--noBorder{background:none;box-shadow:none}.aa-ItemIcon--picture{height:96px;width:96px}.aa-ItemIcon--picture img{max-height:100%;max-width:100%;padding:8px;padding:var(--aa-spacing-half)}.aa-ItemContent{grid-gap:8px;grid-gap:var(--aa-spacing-half);align-items:center;cursor:pointer;display:grid;gap:8px;gap:var(--aa-spacing-half);grid-auto-flow:column;line-height:1.25em;overflow:hidden}.aa-ItemContent mark{background:none;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-style:normal;font-weight:700;font-weight:var(--aa-font-weight-bold)}.aa-ItemContent--dual{display:flex;flex-direction:column;justify-content:space-between;text-align:left}.aa-ItemContent--dual .aa-ItemContentSubtitle,.aa-ItemContent--dual .aa-ItemContentTitle,.block,.tocCollapsibleContent_vkbj a{display:block}.aa-ItemContent--indented{padding-left:36px;padding-left:calc(var(--aa-icon-size) + var(--aa-spacing))}.aa-ItemContentBody{grid-gap:4px;grid-gap:calc(var(--aa-spacing-half)/2);display:grid;gap:4px;gap:calc(var(--aa-spacing-half)/2)}.aa-ItemContentTitle{display:inline-block;margin:0 .5em 0 0;max-width:100%;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.aa-ItemContentSubtitle{font-size:.92em}.aa-ItemContentSubtitleIcon:before{border-color:#807ea3a3;border-color:rgba(var(--aa-muted-color-rgb),.64);border-style:solid;content:"";display:inline-block;left:1px;position:relative;top:-3px}.aa-PanelFooter:after,.aa-PanelHeader:after{content:"";position:absolute;pointer-events:none;right:0;left:0}.aa-ItemContentSubtitle--inline .aa-ItemContentSubtitleIcon:before{border-width:0 0 1.5px;margin-left:8px;margin-left:var(--aa-spacing-half);margin-right:4px;margin-right:calc(var(--aa-spacing-half)/2);width:10px;width:calc(var(--aa-spacing-half) + 2px)}.aa-ItemContentSubtitle--standalone{grid-gap:8px;grid-gap:var(--aa-spacing-half);align-items:center;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));display:grid;gap:8px;gap:var(--aa-spacing-half);grid-auto-flow:column;justify-content:start}.aa-ItemContentSubtitle--standalone .aa-ItemContentSubtitleIcon:before{border-radius:0 0 0 3px;border-width:0 0 1.5px 1.5px;height:8px;height:var(--aa-spacing-half);width:8px;width:var(--aa-spacing-half)}.aa-ItemContentSubtitleCategory{color:#807ea3;color:rgba(var(--aa-muted-color-rgb),1);font-weight:500}.aa-ItemContentDescription{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-size:.85em;max-width:100%;overflow-x:hidden;text-overflow:ellipsis}.aa-ItemContentDescription:empty,.collapseSidebarButton_PEFL,.docSidebarContainer_b6E3,.hidden,.sidebarLogo_isFc{display:none}.aa-ItemContentDescription mark{background:#f5df4d80;background:rgba(var(--aa-description-highlight-background-color-rgb),var(--aa-description-highlight-background-color-alpha));color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-style:normal;font-weight:500;font-weight:var(--aa-font-weight-medium)}.aa-ItemContentDash{color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));display:none;opacity:.4}.aa-ItemContentTag{background-color:#3e34d333;background-color:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha));border-radius:3px;margin:0 .4em 0 0;padding:.08em .3em}.aa-ItemLink,.aa-ItemWrapper{grid-gap:4px;grid-gap:calc(var(--aa-spacing-half)/2);align-items:center;color:inherit;display:grid;gap:4px;gap:calc(var(--aa-spacing-half)/2);grid-auto-flow:column;justify-content:space-between;width:100%}.aa-ItemLink{color:inherit;text-decoration:none}.aa-ItemActions{display:grid;grid-auto-flow:column;height:100%;justify-self:end;margin:0 -5.3333333333px;margin:0 calc(var(--aa-spacing)/-3);padding:0 2px 0 0}.aa-ItemActionButton{align-items:center;background:none;border:0;color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;flex-shrink:0;padding:0}.aa-ItemActionButton svg{stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));margin:5.3333333333px;margin:calc(var(--aa-spacing)/3);width:20px;width:var(--aa-action-icon-size)}.aa-ActiveOnly{visibility:hidden}.aa-PanelHeader{align-items:center;background:#3e34d3;background:rgba(var(--aa-primary-color-rgb),1);color:#fff;display:grid;height:var(--aa-modal-header-height);margin:0;padding:8px 16px;padding:var(--aa-spacing-half) var(--aa-spacing);position:relative}.aa-PanelHeader:after{background-image:linear-gradient(#fff,#fff0);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),1),rgba(var(--aa-background-color-rgb),0));bottom:-8px;bottom:calc(var(--aa-spacing-half)*-1);height:8px;height:var(--aa-spacing-half)}.aa-PanelFooter,.aa-PanelHeader:after{z-index:9999;z-index:var(--aa-base-z-index)}.aa-PanelFooter{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));box-shadow:inset 0 1px 0 #807ea34d;box-shadow:inset 0 1px 0 rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));display:flex;justify-content:space-between;margin:0;padding:16px;padding:var(--aa-spacing);position:relative}.aa-PanelFooter:after{background-image:linear-gradient(#fff0,#807ea399);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),0),rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha)));height:16px;height:var(--aa-spacing);opacity:.12;top:-16px;top:calc(var(--aa-spacing)*-1);z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-DetachedContainer{background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));bottom:0;box-shadow:0 0 0 1px #23263b1a,0 6px 16px -4px #23263b26;box-shadow:var(--aa-panel-shadow);display:flex;flex-direction:column;left:0;margin:0;overflow:hidden;padding:0;position:fixed;right:0;top:0;z-index:9999;z-index:var(--aa-base-z-index)}.aa-DetachedContainer:after{height:32px}.aa-DetachedContainer .aa-SourceHeader{margin:8px 0 8px 2px;margin:var(--aa-spacing-half) 0 var(--aa-spacing-half) 2px}.aa-DetachedContainer .aa-Panel{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));border-radius:0;box-shadow:none;flex-grow:1;margin:0;padding:0;position:relative}.aa-DetachedContainer .aa-PanelLayout{bottom:0;box-shadow:none;left:0;margin:0;max-height:none;overflow-y:auto;position:absolute;right:0;top:0;width:100%}.aa-DetachedFormContainer{border-bottom:1px solid #807ea34d;border-bottom:1px solid rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:8px;padding:var(--aa-spacing-half)}.aa-DetachedCancelButton{background:none;border:0;border-radius:3px;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));cursor:pointer;font:inherit;margin:0 0 0 8px;margin:0 0 0 var(--aa-spacing-half);padding:0 8px;padding:0 var(--aa-spacing-half)}.aa-DetachedCancelButton:focus,.aa-DetachedCancelButton:hover{box-shadow:inset 0 0 0 1px #807ea34d;box-shadow:inset 0 0 0 1px rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha))}.aa-DetachedContainer--modal{border-radius:6px;bottom:inherit;height:auto;margin:0 auto;max-width:680px;max-width:var(--aa-detached-modal-max-width);position:absolute;top:3%}.aa-DetachedContainer--modal .aa-PanelLayout{max-height:500px;max-height:var(--aa-detached-modal-max-height);padding-bottom:8px;padding-bottom:var(--aa-spacing-half);position:static}.aa-DetachedSearchButton{align-items:center;background-color:#fff;background-color:rgba(var(--aa-input-background-color-rgb),var(--aa-input-background-color-alpha));border:1px solid #807ea3cc;border:1px solid rgba(var(--aa-input-border-color-rgb),var(--aa-input-border-color-alpha));border-radius:3px;color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;font:inherit;font-family:inherit;font-family:var(--aa-font-family);font-size:16px;font-size:var(--aa-font-size);height:44px;height:var(--aa-search-input-height);margin:0;padding:0 5.5px;padding:0 calc(var(--aa-search-input-height)/8);position:relative;text-align:left;width:100%}.aa-DetachedSearchButton:focus{border-color:#3e34d3;border-color:rgba(var(--aa-primary-color-rgb),1);box-shadow:0 0 0 3px #3e34d333,inset 0 0 0 2px #3e34d333;box-shadow:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 3px,inset rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px;outline:currentColor}.aa-DetachedSearchButtonIcon{align-items:center;color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);cursor:auto;display:flex;height:100%;justify-content:center;width:36px;width:calc(var(--aa-icon-size) + var(--aa-spacing))}.aa-Detached{height:100vh;overflow:hidden}.aa-DetachedOverlay{background-color:#73728166;background-color:rgba(var(--aa-overlay-color-rgb),var(--aa-overlay-color-alpha));height:100vh;left:0;margin:0;padding:0;position:fixed;right:0;top:0;z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-GradientBottom,.aa-GradientTop{height:8px;height:var(--aa-spacing-half);left:0;pointer-events:none;position:absolute;right:0;z-index:9999;z-index:var(--aa-base-z-index)}.aa-GradientTop{background-image:linear-gradient(#fff,#fff0);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),1),rgba(var(--aa-background-color-rgb),0));top:0}.aa-GradientBottom{background-image:linear-gradient(#fff0,#fff);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),0),rgba(var(--aa-background-color-rgb),1));border-bottom-left-radius:4px;border-bottom-left-radius:calc(var(--aa-spacing)/4);border-bottom-right-radius:4px;border-bottom-right-radius:calc(var(--aa-spacing)/4);bottom:0}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.mainWrapper_z2l0{flex:1 0 auto}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.sidebar_re4s{overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 2rem)}.sidebarItemTitle_pO2u{font-size:var(--ifm-h3-font-size);font-weight:var(--ifm-font-weight-bold)}.container_mt6G,.sidebarItemList_Yudw{font-size:.9rem}.sidebarItem__DBe{margin-top:.7rem}.sidebarItemLink_mo7H{color:var(--ifm-font-color-base);display:block}.sidebarItemLinkActive_I1ZP{color:var(--ifm-color-primary)!important}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 #00000026;transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 #0003}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.authorCol_Hf19{flex-grow:1!important;max-width:inherit!important}.imageOnlyAuthorRow_pa_O{display:flex;flex-flow:row wrap}.imageOnlyAuthorCol_G86a{margin-left:.3rem;margin-right:.3rem}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.collapse{visibility:collapse}.fixed{position:fixed}.m-6{margin:1.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-6{margin-bottom:1.5rem;margin-top:1.5rem}.my-7{margin-bottom:1.75rem;margin-top:1.75rem}.my-8{margin-bottom:2rem;margin-top:2rem}.mt-3{margin-top:.75rem}.mt-6{margin-top:1.5rem}.ml-1{margin-left:.25rem}.mb-6{margin-bottom:1.5rem}.mr-2{margin-right:.5rem}.mb-2{margin-bottom:.5rem}.mb-8{margin-bottom:2rem}.mb-5{margin-bottom:1.25rem}.mr-3{margin-right:.75rem}.mt-5{margin-top:1.25rem}.mt-2{margin-top:.5rem}.mr-4{margin-right:1rem}.mt-4{margin-top:1rem}.mr-auto{margin-right:auto}.mb-3{margin-bottom:.75rem}.grid{display:grid}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-10{height:2.5rem}.h-4{height:1rem}.h-12{height:3rem}.w-5{width:1.25rem}.w-full{width:100%}.w-6{width:1.5rem}.w-10{width:2.5rem}.w-4{width:1rem}.max-w-screen-xl{max-width:1280px}.max-w-screen-sm{max-width:640px}.max-w-screen-md{max-width:768px}.max-w-2xl{max-width:42rem}.max-w-lg{max-width:32rem}.flex-shrink-0,.shrink-0{flex-shrink:0}.rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.blogPostFooterDetailsFull_mRVl,.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.justify-center,.mdxPageWrapper_j9I6{justify-content:center}.justify-between{justify-content:space-between}.gap-8{gap:2rem}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2rem*var(--tw-space-y-reverse));margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))}.space-x-5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.25rem*var(--tw-space-x-reverse))}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(3rem*var(--tw-space-y-reverse));margin-top:calc(3rem*(1 - var(--tw-space-y-reverse)))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.25rem*var(--tw-space-y-reverse));margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.75rem*var(--tw-space-x-reverse))}.divide-x-2>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-left-width:calc(2px*(1 - var(--tw-divide-x-reverse)));border-right-width:calc(2px*var(--tw-divide-x-reverse))}.divide-gray-500>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(107 114 128/var(--tw-divide-opacity))}.place-self-center{place-self:center}.rounded-lg{border-radius:.5rem}.rounded{border-radius:.25rem}.rounded-full{border-radius:9999px}.border{border-width:1px}.border-t{border-top-width:1px}.border-b{border-bottom-width:1px}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity))}.border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity))}.bg-gray-50,.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-primary,.hover\:bg-primary:hover{--tw-bg-opacity:1;background-color:rgb(75 56 179/var(--tw-bg-opacity))}.p-4{padding:1rem}.p-8{padding:2rem}.p-6{padding:1.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-8{padding-bottom:2rem;padding-top:2rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.pl-2,.px-2{padding-left:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.px-2{padding-right:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.pt-6{padding-top:1.5rem}.pt-10{padding-top:2.5rem}.pl-3{padding-left:.75rem}.pr-4{padding-right:1rem}.pt-20{padding-top:5rem}.pb-8{padding-bottom:2rem}.pt-8{padding-top:2rem}.pr-3{padding-right:.75rem}.text-left{text-align:left}.text-center{text-align:center}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-light{font-weight:300}.font-bold{font-weight:700}.font-semibold{font-weight:600}.leading-tight{line-height:1.25}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.hover\:text-gray-900:hover,.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.hover\:text-primary:hover,.text-primary{--tw-text-opacity:1;color:rgb(75 56 179/var(--tw-text-opacity))}.hover\:text-white:hover,.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}*,:after,:before{border:0 solid #e5e7eb}[role=button],button{cursor:pointer}.admonitionHeading_tbUL code,button,select{text-transform:none}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;margin:0;padding:0}.hover\:bg-primary-dark:hover{--tw-bg-opacity:1;background-color:rgb(60 45 144/var(--tw-bg-opacity))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.hover\:underline:hover{text-decoration-line:underline}.focus\:outline-none:focus{outline:#0000 solid 2px;outline-offset:2px}.focus\:ring-4:focus{--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-2:focus,.focus\:ring-4:focus{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-primary-lighter:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(161 150 222/var(--tw-ring-opacity))}.focus\:ring-gray-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(209 213 219/var(--tw-ring-opacity))}.focus\:ring-gray-200:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(229 231 235/var(--tw-ring-opacity))}.focus\:ring-gray-100:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(243 244 246/var(--tw-ring-opacity))}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity .2s ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:.5rem;font-size:90%;padding:.3rem .5rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tag_Nnez{display:inline-block;margin:.5rem .5rem 0 1rem}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:.15s;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.img_ev3q{height:auto}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.tableOfContents_bqdL{overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.breadcrumbHomeIcon_OVgt{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.title_kItE{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-leading)*1.25)}@media (min-width:640px){.sm\:mx-auto{margin-left:auto;margin-right:auto}.sm\:mr-2{margin-right:.5rem}.sm\:inline-block{display:inline-block}.sm\:flex{display:flex}.sm\:h-9{height:2.25rem}.sm\:w-auto{width:auto}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:gap-12{gap:3rem}.sm\:gap-6{gap:1.5rem}.sm\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))}.sm\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}}@media (min-width:768px){.md\:grid{display:grid}.md\:h-12{height:3rem}.md\:w-12{width:3rem}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:gap-12{gap:3rem}.md\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))}.md\:p-8{padding:2rem}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-2xl{font-size:1.5rem;line-height:2rem}}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg);position:sticky}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;max-height:100vh;padding-top:var(--ifm-navbar-height);position:sticky;top:0;transition:opacity 50ms;width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{height:0;opacity:0;overflow:hidden;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;display:flex;height:100%;justify-content:center;max-height:100vh;top:0;transition:background-color var(--ifm-transition-fast) ease}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.docItemCol_VOVn,.generatedIndexPage_vN6x{max-width:75%!important}.list_eTzJ article:nth-last-child(-n+2){margin-bottom:0!important}}@media (min-width:1024px){.lg\:order-2{order:2}.lg\:order-1{order:1}.lg\:col-span-7{grid-column:span 7/span 7}.lg\:col-span-5{grid-column:span 5/span 5}.lg\:m-8{margin:2rem}.lg\:my-8{margin-top:2rem}.lg\:mb-8,.lg\:my-8{margin-bottom:2rem}.lg\:mr-0{margin-right:0}.lg\:mt-0{margin-top:0}.lg\:mb-0{margin-bottom:0}.lg\:mb-12{margin-bottom:3rem}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:w-auto{width:auto}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:gap-8{gap:2rem}.lg\:space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2rem*var(--tw-space-x-reverse))}.lg\:space-y-20>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(5rem*var(--tw-space-y-reverse));margin-top:calc(5rem*(1 - var(--tw-space-y-reverse)))}.lg\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))}.lg\:border-0{border-width:0}.lg\:bg-transparent,.lg\:hover\:bg-transparent:hover{background-color:initial}.lg\:p-12{padding:3rem}.lg\:p-10{padding:2.5rem}.lg\:p-0{padding:0}.lg\:py-16{padding-bottom:4rem;padding-top:4rem}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}.lg\:py-8{padding-bottom:2rem;padding-top:2rem}.lg\:py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.lg\:py-2{padding-bottom:.5rem;padding-top:.5rem}.lg\:px-5{padding-left:1.25rem;padding-right:1.25rem}.lg\:py-24{padding-bottom:6rem;padding-top:6rem}.lg\:pt-28{padding-top:7rem}.lg\:pb-16{padding-bottom:4rem}.lg\:text-3xl{font-size:1.875rem;line-height:2.25rem}.lg\:text-xl{font-size:1.25rem;line-height:1.75rem}.lg\:hover\:text-primary:hover,.lg\:text-primary{--tw-text-opacity:1;color:rgb(75 56 179/var(--tw-text-opacity))}.dark\:lg\:text-primary-light{--tw-text-opacity:1;color:rgb(161 150 222/var(--tw-text-opacity))}@media (prefers-color-scheme:dark){.lg\:dark\:hover\:bg-transparent:hover{background-color:initial}.lg\:dark\:hover\:text-primary-lighter:hover{--tw-text-opacity:1;color:rgb(161 150 222/var(--tw-text-opacity))}}}@media (min-width:1280px){.xl\:gap-0{gap:0}.xl\:gap-16{gap:4rem}.xl\:gap-10{gap:2.5rem}.xl\:p-8{padding:2rem}.xl\:text-6xl{font-size:3.75rem;line-height:1}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.sidebar_re4s,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}.title_f1Hy{font-size:2rem}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}.aa-TouchOnly{display:none}}@media (hover:none) and (pointer:coarse){:root{--aa-spacing-factor:1.2;--aa-action-icon-size:22px}.aa-LoadingIndicator,.aa-SubmitButton{padding-left:3px;padding-left:calc(var(--aa-spacing-half)/ 2 - 1px);width:39px;width:calc(var(--aa-icon-size) + var(--aa-spacing)*1.25 - 1px)}.aa-ClearButton{padding:0 10.1666666667px;padding:0 calc(var(--aa-spacing)*.66667 - .5px)}.aa-ItemActionButton:focus svg,.aa-ItemActionButton:hover svg{color:inherit}.aa-DesktopOnly{display:none}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-color-scheme:dark){.dark\:divide-gray-700>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(55 65 81/var(--tw-divide-opacity))}.dark\:border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity))}.dark\:border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity))}.dark\:bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.dark\:bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}.dark\:hover\:text-white:hover,.dark\:text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.dark\:text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.dark\:text-primary-light,.lg\:dark\:hover\:text-primary-lighter:hover{--tw-text-opacity:1;color:rgb(161 150 222/var(--tw-text-opacity))}.dark\:text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity))}.dark\:text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.dark\:hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}.dark\:hover\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.dark\:hover\:text-primary:hover{--tw-text-opacity:1;color:rgb(75 56 179/var(--tw-text-opacity))}.dark\:focus\:ring-primary:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(75 56 179/var(--tw-ring-opacity))}.dark\:focus\:ring-gray-800:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(31 41 55/var(--tw-ring-opacity))}.dark\:focus\:ring-gray-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(75 85 99/var(--tw-ring-opacity))}.dark\:focus\:ring-primary-darker:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(37 28 89/var(--tw-ring-opacity))}@media (min-width:1024px){.dark\:lg\:text-primary-light{--tw-text-opacity:1;color:rgb(161 150 222/var(--tw-text-opacity))}}.lg\:dark\:hover\:bg-transparent:hover{background-color:initial}}@media screen and (prefers-reduced-motion){.aa-Panel{transition:none}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/css/styles.99c9de46.css b/assets/css/styles.99c9de46.css new file mode 100644 index 000000000..c4b882e9b --- /dev/null +++ b/assets/css/styles.99c9de46.css @@ -0,0 +1 @@ +.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}:root,body.dark,body[data-theme=dark]{--aa-icon-color-rgb:119,119,163;--aa-scrollbar-thumb-background-color-rgb:var(--aa-background-color-rgb)}.button,.dropdown__link,.sr-only,.text--truncate{white-space:nowrap}*,.aa-Autocomplete *,.aa-DetachedFormContainer *,.aa-Panel *,:after,:before{box-sizing:border-box}.focus\:ring-2:focus,.focus\:ring-4:focus,.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.aa-List,.clean-list,.containsTaskList_mC6p,.details_lb9f>summary,.dropdown__menu,.menu__list,ol,ul{list-style:none}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#4b38b3;--ifm-color-primary-dark:#4b38b3;--ifm-color-primary-darker:#4b38b3;--ifm-color-primary-darkest:#4b38b3;--ifm-color-primary-light:#4b38b3;--ifm-color-primary-lighter:#4b38b3;--ifm-color-primary-lightest:#4b38b3;--ifm-code-font-size:95%;--docusaurus-highlighted-code-line-bg:#0000001a;--docusaurus-announcement-bar-height:auto;--aa-search-input-height:44px;--aa-input-icon-size:20px;--aa-base-unit:16;--aa-spacing-factor:1;--aa-spacing:calc(var(--aa-base-unit)*var(--aa-spacing-factor)*1px);--aa-spacing-half:calc(var(--aa-spacing)/2);--aa-panel-max-height:650px;--aa-base-z-index:9999;--aa-font-size:calc(var(--aa-base-unit)*1px);--aa-font-family:inherit;--aa-font-weight-medium:500;--aa-font-weight-semibold:600;--aa-font-weight-bold:700;--aa-icon-size:20px;--aa-icon-stroke-width:1.6;--aa-icon-color-alpha:1;--aa-action-icon-size:20px;--aa-text-color-rgb:38,38,39;--aa-text-color-alpha:1;--aa-primary-color-rgb:62,52,211;--aa-primary-color-alpha:0.2;--aa-muted-color-rgb:128,126,163;--aa-muted-color-alpha:0.6;--aa-panel-border-color-rgb:128,126,163;--aa-panel-border-color-alpha:0.3;--aa-input-border-color-rgb:128,126,163;--aa-input-border-color-alpha:0.8;--aa-background-color-rgb:255,255,255;--aa-background-color-alpha:1;--aa-input-background-color-rgb:255,255,255;--aa-input-background-color-alpha:1;--aa-selected-color-rgb:179,173,214;--aa-selected-color-alpha:0.205;--aa-description-highlight-background-color-rgb:245,223,77;--aa-description-highlight-background-color-alpha:0.5;--aa-detached-media-query:(max-width:680px);--aa-detached-modal-media-query:(min-width:680px);--aa-detached-modal-max-width:680px;--aa-detached-modal-max-height:500px;--aa-overlay-color-rgb:115,114,129;--aa-overlay-color-alpha:0.4;--aa-panel-shadow:0 0 0 1px #23263b1a,0 6px 16px -4px #23263b26;--aa-scrollbar-width:13px;--aa-scrollbar-track-background-color-rgb:234,234,234;--aa-scrollbar-track-background-color-alpha:1;--aa-scrollbar-thumb-background-color-alpha:1;--aa-search-input-height:36px;--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base)}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.list_eTzJ article:last-child,.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.items-center,.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.items-baseline,.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding);margin:0;padding:0}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_tbUL,.alert__heading,.text--uppercase,.uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area.breadcrumbs__link[href]:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;-webkit-user-select:none;user-select:none}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child,.pt-0{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links,.mb-4{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_S0QG>:last-child,.cardContainer_fWXF :last-child,.collapsibleContent_i85q>:last-child,.footer__items{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title,.title_f1Hy{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;content:""}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.docsWrapper_BCFX,.flex,.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-duration:.25s;transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-duration:.1s;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.inline-flex,.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover,.sidebarItemLink_mo7H:hover,a:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}[data-theme=dark]{--ifm-color-primary:#4b38b3;--ifm-color-primary-dark:#4b38b3;--ifm-color-primary-darker:#4b38b3;--ifm-color-primary-darkest:#4b38b3;--ifm-color-primary-light:#4b38b3;--ifm-color-primary-lighter:#4b38b3;--ifm-color-primary-lightest:#4b38b3;--docusaurus-highlighted-code-line-bg:#0000004d}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#docusaurus-base-url-issue-banner-container,.aa-ClearButton[hidden],.aa-ItemContent:empty,.aa-LoadingIndicator[hidden],.aa-Source:empty,.aa-SourceHeader:empty,.themedImage_ToTc,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px;line-height:0;padding:0}.announcementBarContent_xLdY{flex:1 1 auto;font-size:85%;padding:5px 0;text-align:center}.announcementBarContent_xLdY a{color:inherit;text-decoration:underline}.toggle_vylO{height:2rem;width:2rem}.aa-Form,.toggleButton_gllP{align-items:center;width:100%;display:flex}.toggleButton_gllP{border-radius:50%;height:100%;justify-content:center;transition:background var(--ifm-transition-fast)}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}[data-theme=dark] .themedImage--dark_i4oU,[data-theme=light] .themedImage--light_HNdA{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}body.dark,body[data-theme=dark]{--aa-text-color-rgb:183,192,199;--aa-primary-color-rgb:146,138,255;--aa-muted-color-rgb:146,138,255;--aa-input-background-color-rgb:0,3,9;--aa-background-color-rgb:21,24,42;--aa-selected-color-rgb:146,138,255;--aa-selected-color-alpha:0.25;--aa-description-highlight-background-color-rgb:0 255 255;--aa-description-highlight-background-color-alpha:0.25;--aa-panel-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--aa-scrollbar-track-background-color-rgb:44,46,64;--aa-muted-color-alpha:1}.aa-Autocomplete,.aa-DetachedFormContainer,.aa-Panel{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-family:inherit;font-family:var(--aa-font-family);font-size:16px;font-size:var(--aa-font-size);font-weight:400;line-height:1em;margin:0;padding:0;text-align:left}.aa-Form{background-color:#fff;background-color:rgba(var(--aa-input-background-color-rgb),var(--aa-input-background-color-alpha));border:1px solid #807ea3cc;border:1px solid rgba(var(--aa-input-border-color-rgb),var(--aa-input-border-color-alpha));border-radius:3px;line-height:1em;margin:0;position:relative}.aa-ClearButton,.aa-Input,.aa-SubmitButton{border:0;background:none}.aa-Form:focus-within,.aa-Form[focus-within]{border-color:#3e34d3;border-color:rgba(var(--aa-primary-color-rgb),1);box-shadow:0 0 0 2px #3e34d333,inset 0 0 0 2px #3e34d333;box-shadow:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px,inset rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px;outline:currentColor}.aa-InputWrapperPrefix{align-items:center;display:flex;flex-shrink:0;height:44px;height:var(--aa-search-input-height);order:1}.aa-Label,.aa-LoadingIndicator{cursor:auto;flex-shrink:0;height:100%;padding:0;text-align:left}.aa-Label svg,.aa-LoadingIndicator svg{stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);height:auto;max-height:20px;max-height:var(--aa-input-icon-size);width:20px;width:var(--aa-input-icon-size)}.aa-LoadingIndicator,.aa-SubmitButton{height:100%;padding-left:11px;padding-left:calc(var(--aa-spacing)*.75 - 1px);padding-right:8px;padding-right:var(--aa-spacing-half);width:47px;width:calc(var(--aa-spacing)*1.75 + var(--aa-icon-size) - 1px)}.aa-SubmitButton{-webkit-appearance:none;appearance:none;margin:0}.aa-LoadingIndicator{align-items:center;display:flex;justify-content:center}.aa-InputWrapper{order:3;position:relative;width:100%}.aa-Input{-webkit-appearance:none;appearance:none;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font:inherit;height:44px;height:var(--aa-search-input-height);padding:0;width:100%}.aa-Input::placeholder{color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));opacity:1}.aa-Input:focus{border-color:none;box-shadow:none;outline:0}.aa-Input::-webkit-search-cancel-button,.aa-Input::-webkit-search-decoration,.aa-Input::-webkit-search-results-button,.aa-Input::-webkit-search-results-decoration{-webkit-appearance:none;appearance:none}.aa-InputWrapperSuffix{align-items:center;display:flex;height:44px;height:var(--aa-search-input-height);order:4}.aa-ClearButton{align-items:center;color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;height:100%;margin:0;padding:0 12.8333333333px;padding:0 calc(var(--aa-spacing)*.83333 - .5px)}.aa-Item,.aa-ItemIcon{align-items:center;border-radius:3px}.aa-ClearButton:focus,.aa-ClearButton:hover,.aa-ItemActionButton:focus svg,.aa-ItemActionButton:hover svg{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha))}.aa-ClearButton svg{stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);width:20px;width:var(--aa-icon-size)}.aa-Panel{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));border-radius:4px;border-radius:calc(var(--aa-spacing)/4);box-shadow:0 0 0 1px #23263b1a,0 6px 16px -4px #23263b26;box-shadow:var(--aa-panel-shadow);margin:8px 0 0;overflow:hidden;position:absolute;transition:opacity .2s ease-in,filter .2s ease-in}.aa-Panel button{-webkit-appearance:none;appearance:none;background:none;border:0;margin:0;padding:0}.aa-PanelLayout{height:100%;margin:0;max-height:650px;max-height:var(--aa-panel-max-height);overflow-y:auto;padding:0;position:relative;text-align:left}.aa-PanelLayoutColumns--twoGolden{display:grid;grid-template-columns:39.2% auto;overflow:hidden;padding:0}.aa-PanelLayoutColumns--two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;padding:0}.aa-PanelLayoutColumns--three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden;padding:0}.aa-Panel--stalled .aa-Source{filter:grayscale(1);opacity:.8}.aa-Panel--scrollable{margin:0;max-height:650px;max-height:var(--aa-panel-max-height);overflow-x:hidden;overflow-y:auto;padding:8px;padding:var(--aa-spacing-half);scrollbar-color:#fff #eaeaea;scrollbar-color:rgba(var(--aa-scrollbar-thumb-background-color-rgb),var(--aa-scrollbar-thumb-background-color-alpha)) rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha));scrollbar-width:thin}.sidebar_re4s,.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem)}.aa-Panel--scrollable::-webkit-scrollbar{width:13px;width:var(--aa-scrollbar-width)}.aa-Panel--scrollable::-webkit-scrollbar-track{background-color:#eaeaea;background-color:rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha))}.aa-Panel--scrollable::-webkit-scrollbar-thumb{background-color:#fff;background-color:rgba(var(--aa-scrollbar-thumb-background-color-rgb),var(--aa-scrollbar-thumb-background-color-alpha));border:3px solid #eaeaea;border-color:rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha));border-radius:9999px;border-right:2px solid rgba(var(--aa-scrollbar-track-background-color-rgb),var(--aa-scrollbar-track-background-color-alpha))}.aa-Source{margin:0;padding:0;position:relative;width:100%}.aa-SourceNoResults{font-size:1em;margin:0;padding:16px;padding:var(--aa-spacing)}.aa-List{margin:0}.aa-List,.aa-SourceHeader{padding:0;position:relative}.aa-SourceHeader{margin:8px .5em 8px 0;margin:var(--aa-spacing-half) .5em var(--aa-spacing-half) 0}.aa-SourceHeaderTitle{background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);display:inline-block;font-size:.8em;font-weight:600;font-weight:var(--aa-font-weight-semibold);margin:0;padding:0 8px 0 0;padding:0 var(--aa-spacing-half) 0 0;position:relative;z-index:9999;z-index:var(--aa-base-z-index)}.aa-SourceHeaderLine{border-bottom:1px solid #3e34d3;border-bottom:1px solid rgba(var(--aa-primary-color-rgb),1);display:block;height:2px;left:0;margin:0;opacity:.3;padding:0;position:absolute;right:0;top:8px;top:var(--aa-spacing-half);z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-SourceFooterSeeAll{background:linear-gradient(180deg,#fff,#807ea324);background:linear-gradient(180deg,rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha)),#807ea324);border:1px solid #807ea399;border:1px solid rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));border-radius:5px;box-shadow:inset 0 0 2px #fff,0 2px 2px -1px #4c455826;color:inherit;font-size:.95em;font-weight:500;font-weight:var(--aa-font-weight-medium);padding:.475em 1em .6em;text-decoration:none}.aa-SourceFooterSeeAll:focus,.aa-SourceFooterSeeAll:hover{border:1px solid #3e34d3;border:1px solid rgba(var(--aa-primary-color-rgb),1);color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1)}.aa-Item{cursor:pointer;display:grid;min-height:40px;min-height:calc(var(--aa-spacing)*2.5);padding:4px;padding:calc(var(--aa-spacing-half)/2)}.aa-Item[aria-selected=true]{background-color:rgba(179,173,214,.205);background-color:rgba(var(--aa-selected-color-rgb),var(--aa-selected-color-alpha))}.aa-Item[aria-selected=true] .aa-ActiveOnly,.aa-Item[aria-selected=true] .aa-ItemActionButton{visibility:visible}.aa-ItemIcon{stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));box-shadow:inset 0 0 0 1px #807ea34d;box-shadow:inset 0 0 0 1px rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));color:#7777a3;color:rgba(var(--aa-icon-color-rgb),var(--aa-icon-color-alpha));display:flex;flex-shrink:0;font-size:.7em;height:28px;height:calc(var(--aa-icon-size) + var(--aa-spacing-half));justify-content:center;overflow:hidden;text-align:center;width:28px;width:calc(var(--aa-icon-size) + var(--aa-spacing-half))}.aa-ItemIcon img{height:auto;max-height:20px;max-height:calc(var(--aa-icon-size) + var(--aa-spacing-half) - 8px);max-width:20px;max-width:calc(var(--aa-icon-size) + var(--aa-spacing-half) - 8px);width:auto}.aa-ItemIcon svg{height:20px;height:var(--aa-icon-size);width:20px;width:var(--aa-icon-size)}.aa-ItemIcon--alignTop{align-self:flex-start}.aa-ItemIcon--noBorder{background:none;box-shadow:none}.aa-ItemIcon--picture{height:96px;width:96px}.aa-ItemIcon--picture img{max-height:100%;max-width:100%;padding:8px;padding:var(--aa-spacing-half)}.aa-ItemContent{grid-gap:8px;grid-gap:var(--aa-spacing-half);align-items:center;cursor:pointer;display:grid;gap:8px;gap:var(--aa-spacing-half);grid-auto-flow:column;line-height:1.25em;overflow:hidden}.aa-ItemContent mark{background:none;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-style:normal;font-weight:700;font-weight:var(--aa-font-weight-bold)}.aa-ItemContent--dual{display:flex;flex-direction:column;justify-content:space-between;text-align:left}.aa-ItemContent--dual .aa-ItemContentSubtitle,.aa-ItemContent--dual .aa-ItemContentTitle,.block,.tocCollapsibleContent_vkbj a{display:block}.aa-ItemContent--indented{padding-left:36px;padding-left:calc(var(--aa-icon-size) + var(--aa-spacing))}.aa-ItemContentBody{grid-gap:4px;grid-gap:calc(var(--aa-spacing-half)/2);display:grid;gap:4px;gap:calc(var(--aa-spacing-half)/2)}.aa-ItemContentTitle{display:inline-block;margin:0 .5em 0 0;max-width:100%;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.aa-ItemContentSubtitle{font-size:.92em}.aa-ItemContentSubtitleIcon:before{border-color:#807ea3a3;border-color:rgba(var(--aa-muted-color-rgb),.64);border-style:solid;content:"";display:inline-block;left:1px;position:relative;top:-3px}.aa-PanelFooter:after,.aa-PanelHeader:after{content:"";position:absolute;left:0;pointer-events:none;right:0}.aa-ItemContentSubtitle--inline .aa-ItemContentSubtitleIcon:before{border-width:0 0 1.5px;margin-left:8px;margin-left:var(--aa-spacing-half);margin-right:4px;margin-right:calc(var(--aa-spacing-half)/2);width:10px;width:calc(var(--aa-spacing-half) + 2px)}.aa-ItemContentSubtitle--standalone{grid-gap:8px;grid-gap:var(--aa-spacing-half);align-items:center;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));display:grid;gap:8px;gap:var(--aa-spacing-half);grid-auto-flow:column;justify-content:start}.aa-ItemContentSubtitle--standalone .aa-ItemContentSubtitleIcon:before{border-radius:0 0 0 3px;border-width:0 0 1.5px 1.5px;height:8px;height:var(--aa-spacing-half);width:8px;width:var(--aa-spacing-half)}.aa-ItemContentSubtitleCategory{color:#807ea3;color:rgba(var(--aa-muted-color-rgb),1);font-weight:500}.aa-ItemContentDescription{color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-size:.85em;max-width:100%;overflow-x:hidden;text-overflow:ellipsis}.aa-ItemContentDescription:empty,.collapseSidebarButton_PEFL,.docSidebarContainer_b6E3,.hidden,.sidebarLogo_isFc{display:none}.aa-ItemContentDescription mark{background:#f5df4d80;background:rgba(var(--aa-description-highlight-background-color-rgb),var(--aa-description-highlight-background-color-alpha));color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));font-style:normal;font-weight:500;font-weight:var(--aa-font-weight-medium)}.aa-ItemContentDash{color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));display:none;opacity:.4}.aa-ItemContentTag{background-color:#3e34d333;background-color:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha));border-radius:3px;margin:0 .4em 0 0;padding:.08em .3em}.aa-ItemLink,.aa-ItemWrapper{grid-gap:4px;grid-gap:calc(var(--aa-spacing-half)/2);align-items:center;color:inherit;display:grid;gap:4px;gap:calc(var(--aa-spacing-half)/2);grid-auto-flow:column;justify-content:space-between;width:100%}.aa-ItemLink{color:inherit;text-decoration:none}.aa-ItemActions{display:grid;grid-auto-flow:column;height:100%;justify-self:end;margin:0 -5.3333333333px;margin:0 calc(var(--aa-spacing)/-3);padding:0 2px 0 0}.aa-ItemActionButton{align-items:center;background:none;border:0;color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;flex-shrink:0;padding:0}.aa-ItemActionButton svg{stroke-width:1.6;stroke-width:var(--aa-icon-stroke-width);color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));margin:5.3333333333px;margin:calc(var(--aa-spacing)/3);width:20px;width:var(--aa-action-icon-size)}.aa-ActiveOnly{visibility:hidden}.aa-PanelHeader{align-items:center;background:#3e34d3;background:rgba(var(--aa-primary-color-rgb),1);color:#fff;display:grid;height:var(--aa-modal-header-height);margin:0;padding:8px 16px;padding:var(--aa-spacing-half) var(--aa-spacing);position:relative}.aa-PanelHeader:after{background-image:linear-gradient(#fff,#fff0);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),1),rgba(var(--aa-background-color-rgb),0));bottom:-8px;bottom:calc(var(--aa-spacing-half)*-1);height:8px;height:var(--aa-spacing-half)}.aa-PanelFooter,.aa-PanelHeader:after{z-index:9999;z-index:var(--aa-base-z-index)}.aa-PanelFooter{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));box-shadow:inset 0 1px 0 #807ea34d;box-shadow:inset 0 1px 0 rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));display:flex;justify-content:space-between;margin:0;padding:16px;padding:var(--aa-spacing);position:relative}.aa-PanelFooter:after{background-image:linear-gradient(#fff0,#807ea399);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),0),rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha)));height:16px;height:var(--aa-spacing);opacity:.12;top:-16px;top:calc(var(--aa-spacing)*-1);z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-DetachedContainer{background:#fff;background:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));bottom:0;box-shadow:0 0 0 1px #23263b1a,0 6px 16px -4px #23263b26;box-shadow:var(--aa-panel-shadow);display:flex;flex-direction:column;left:0;margin:0;overflow:hidden;padding:0;position:fixed;right:0;top:0;z-index:9999;z-index:var(--aa-base-z-index)}.aa-DetachedContainer:after{height:32px}.aa-DetachedContainer .aa-SourceHeader{margin:8px 0 8px 2px;margin:var(--aa-spacing-half) 0 var(--aa-spacing-half) 2px}.aa-DetachedContainer .aa-Panel{background-color:#fff;background-color:rgba(var(--aa-background-color-rgb),var(--aa-background-color-alpha));border-radius:0;box-shadow:none;flex-grow:1;margin:0;padding:0;position:relative}.aa-DetachedContainer .aa-PanelLayout{bottom:0;box-shadow:none;left:0;margin:0;max-height:none;overflow-y:auto;position:absolute;right:0;top:0;width:100%}.aa-DetachedFormContainer{border-bottom:1px solid #807ea34d;border-bottom:1px solid rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha));display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:8px;padding:var(--aa-spacing-half)}.aa-DetachedCancelButton{background:none;border:0;border-radius:3px;color:#262627;color:rgba(var(--aa-text-color-rgb),var(--aa-text-color-alpha));cursor:pointer;font:inherit;margin:0 0 0 8px;margin:0 0 0 var(--aa-spacing-half);padding:0 8px;padding:0 var(--aa-spacing-half)}.aa-DetachedCancelButton:focus,.aa-DetachedCancelButton:hover{box-shadow:inset 0 0 0 1px #807ea34d;box-shadow:inset 0 0 0 1px rgba(var(--aa-panel-border-color-rgb),var(--aa-panel-border-color-alpha))}.aa-DetachedContainer--modal{border-radius:6px;bottom:inherit;height:auto;margin:0 auto;max-width:680px;max-width:var(--aa-detached-modal-max-width);position:absolute;top:3%}.aa-DetachedContainer--modal .aa-PanelLayout{max-height:500px;max-height:var(--aa-detached-modal-max-height);padding-bottom:8px;padding-bottom:var(--aa-spacing-half);position:static}.aa-DetachedSearchButton{align-items:center;background-color:#fff;background-color:rgba(var(--aa-input-background-color-rgb),var(--aa-input-background-color-alpha));border:1px solid #807ea3cc;border:1px solid rgba(var(--aa-input-border-color-rgb),var(--aa-input-border-color-alpha));border-radius:3px;color:#807ea399;color:rgba(var(--aa-muted-color-rgb),var(--aa-muted-color-alpha));cursor:pointer;display:flex;font:inherit;font-family:inherit;font-family:var(--aa-font-family);font-size:16px;font-size:var(--aa-font-size);height:44px;height:var(--aa-search-input-height);margin:0;padding:0 5.5px;padding:0 calc(var(--aa-search-input-height)/8);position:relative;text-align:left;width:100%}.aa-DetachedSearchButton:focus{border-color:#3e34d3;border-color:rgba(var(--aa-primary-color-rgb),1);box-shadow:0 0 0 3px #3e34d333,inset 0 0 0 2px #3e34d333;box-shadow:rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 3px,inset rgba(var(--aa-primary-color-rgb),var(--aa-primary-color-alpha)) 0 0 0 2px;outline:currentColor}.aa-DetachedSearchButtonIcon{align-items:center;color:#3e34d3;color:rgba(var(--aa-primary-color-rgb),1);cursor:auto;display:flex;height:100%;justify-content:center;width:36px;width:calc(var(--aa-icon-size) + var(--aa-spacing))}.aa-Detached{height:100vh;overflow:hidden}.aa-DetachedOverlay{background-color:#73728166;background-color:rgba(var(--aa-overlay-color-rgb),var(--aa-overlay-color-alpha));height:100vh;left:0;margin:0;padding:0;position:fixed;right:0;top:0;z-index:9998;z-index:calc(var(--aa-base-z-index) - 1)}.aa-GradientBottom,.aa-GradientTop{height:8px;height:var(--aa-spacing-half);left:0;pointer-events:none;position:absolute;right:0;z-index:9999;z-index:var(--aa-base-z-index)}.aa-GradientTop{background-image:linear-gradient(#fff,#fff0);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),1),rgba(var(--aa-background-color-rgb),0));top:0}.aa-GradientBottom{background-image:linear-gradient(#fff0,#fff);background-image:linear-gradient(rgba(var(--aa-background-color-rgb),0),rgba(var(--aa-background-color-rgb),1));border-bottom-left-radius:4px;border-bottom-left-radius:calc(var(--aa-spacing)/4);border-bottom-right-radius:4px;border-bottom-right-radius:calc(var(--aa-spacing)/4);bottom:0}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.mainWrapper_z2l0{flex:1 0 auto}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.sidebar_re4s{overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 2rem)}.overflow-hidden,.sr-only{overflow:hidden}.sidebarItemTitle_pO2u{font-size:var(--ifm-h3-font-size);font-weight:var(--ifm-font-weight-bold)}.container_mt6G,.sidebarItemList_Yudw{font-size:.9rem}.sidebarItem__DBe{margin-top:.7rem}.sidebarItemLink_mo7H{color:var(--ifm-font-color-base);display:block}.sidebarItemLinkActive_I1ZP{color:var(--ifm-color-primary)!important}.cardContainer_fWXF{--ifm-link-color:var(--ifm-color-emphasis-800);--ifm-link-hover-color:var(--ifm-color-emphasis-700);--ifm-link-hover-decoration:none;border:1px solid var(--ifm-color-emphasis-200);box-shadow:0 1.5px 3px 0 #00000026;transition:all var(--ifm-transition-fast) ease;transition-property:border,box-shadow}.cardContainer_fWXF:hover{border-color:var(--ifm-color-primary);box-shadow:0 3px 6px 0 #0003}.cardTitle_rnsV{font-size:1.2rem}.cardDescription_PWke{font-size:.8rem}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.docMainContainer_gTbr,.docPage__5DB{display:flex;width:100%}.authorCol_Hf19{flex-grow:1!important;max-width:inherit!important}.imageOnlyAuthorRow_pa_O{display:flex;flex-flow:row wrap}.imageOnlyAuthorCol_G86a{margin-left:.3rem;margin-right:.3rem}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;padding:0;position:absolute;width:1px}.collapse{visibility:collapse}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.-inset-x-20{left:-5rem;right:-5rem}.bottom-0{bottom:0}.m-6{margin:1.5rem}.mx-auto{margin-left:auto;margin-right:auto}.my-7{margin-bottom:1.75rem;margin-top:1.75rem}.my-8{margin-bottom:2rem;margin-top:2rem}.mb-6,.my-6{margin-bottom:1.5rem}.my-6{margin-top:1.5rem}.mt-3{margin-top:.75rem}.mt-6{margin-top:1.5rem}.ml-1{margin-left:.25rem}.mr-2{margin-right:.5rem}.mb-2{margin-bottom:.5rem}.mb-8{margin-bottom:2rem}.mr-auto{margin-right:auto}.mb-\[-7\%\]{margin-bottom:-7%}.mb-5{margin-bottom:1.25rem}.mb-3{margin-bottom:.75rem}.mr-3{margin-right:.75rem}.mt-5{margin-top:1.25rem}.mt-2{margin-top:.5rem}.mr-4{margin-right:1rem}.mt-4{margin-top:1rem}.grid{display:grid}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-10{height:2.5rem}.h-4{height:1rem}.h-12{height:3rem}.w-5{width:1.25rem}.w-full{width:100%}.w-6{width:1.5rem}.w-10{width:2.5rem}.w-4{width:1rem}.max-w-screen-xl{max-width:1280px}.max-w-screen-sm{max-width:640px}.max-w-screen-md{max-width:768px}.max-w-2xl{max-width:42rem}.max-w-lg{max-width:32rem}.flex-shrink-0,.shrink-0{flex-shrink:0}.rotate-180{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.blogPostFooterDetailsFull_mRVl,.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.justify-center,.mdxPageWrapper_j9I6{justify-content:center}.justify-between{justify-content:space-between}.gap-8{gap:2rem}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(2rem*var(--tw-space-y-reverse));margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)))}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(3rem*var(--tw-space-y-reverse));margin-top:calc(3rem*(1 - var(--tw-space-y-reverse)))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.25rem*var(--tw-space-y-reverse));margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(.75rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(.75rem*var(--tw-space-x-reverse))}.space-x-5>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1.25rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1.25rem*var(--tw-space-x-reverse))}.divide-x-2>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-left-width:calc(2px*(1 - var(--tw-divide-x-reverse)));border-right-width:calc(2px*var(--tw-divide-x-reverse))}.divide-gray-500>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(107 114 128/var(--tw-divide-opacity))}.place-self-center{place-self:center}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.rounded-full{border-radius:9999px}.rounded{border-radius:.25rem}.border{border-width:1px}.border-t{border-top-width:1px}.border-b{border-bottom-width:1px}.border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity))}.border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity))}.bg-gray-50,.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-primary,.hover\:bg-primary:hover{--tw-bg-opacity:1;background-color:rgb(75 56 179/var(--tw-bg-opacity))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-white{--tw-gradient-from:#fff;--tw-gradient-to:#fff0;--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.p-8{padding:2rem}.p-6{padding:1.5rem}.p-4{padding:1rem}.px-4{padding-left:1rem;padding-right:1rem}.py-8{padding-bottom:2rem;padding-top:2rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.px-2{padding-left:.5rem;padding-right:.5rem}.pt-6{padding-top:1.5rem}.pt-10{padding-top:2.5rem}.pt-20{padding-top:5rem}.pb-8{padding-bottom:2rem}.pt-\[7\%\]{padding-top:7%}.pt-8{padding-top:2rem}.pr-3{padding-right:.75rem}.pl-3{padding-left:.75rem}.pl-2{padding-left:.5rem}.pr-4{padding-right:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-light{font-weight:300}.font-bold{font-weight:700}.font-semibold{font-weight:600}.leading-tight{line-height:1.25}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.hover\:text-gray-900:hover,.text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.hover\:text-primary:hover,.text-primary{--tw-text-opacity:1;color:rgb(75 56 179/var(--tw-text-opacity))}.hover\:text-white:hover,.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.shadow-2xl{--tw-shadow:0 25px 50px -12px #00000040;--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow,.shadow-2xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:ring-2:focus,.focus\:ring-4:focus,.ring-1{box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.shadow{--tw-shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.ring-gray-900\/10{--tw-ring-color:#1118271a}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}*,:after,:before{border:0 solid #e5e7eb}[role=button],button{cursor:pointer}.admonitionHeading_tbUL code,button,select{text-transform:none}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;margin:0;padding:0}.c-card img{transition:transform .3s ease-in-out}.c-card:hover img{transform:scale(1.05)}.hover\:bg-primary-dark:hover{--tw-bg-opacity:1;background-color:rgb(60 45 144/var(--tw-bg-opacity))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.hover\:underline:hover{text-decoration-line:underline}.focus\:outline-none:focus{outline:#0000 solid 2px;outline-offset:2px}.focus\:ring-4:focus{--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color)}.focus\:ring-primary-lighter:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(161 150 222/var(--tw-ring-opacity))}.focus\:ring-gray-100:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(243 244 246/var(--tw-ring-opacity))}.focus\:ring-gray-300:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(209 213 219/var(--tw-ring-opacity))}.focus\:ring-gray-200:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(229 231 235/var(--tw-ring-opacity))}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity .2s ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color);text-decoration:none}.tagRegular_sFm0{border-radius:.5rem;font-size:90%;padding:.3rem .5rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tag_Nnez{display:inline-block;margin:.5rem .5rem 0 1rem}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:.15s;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);-webkit-user-select:none;user-select:none}.hash-link:before{content:"#"}.img_ev3q{height:auto}.admonition_LlT9{margin-bottom:1em}.admonitionHeading_tbUL{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.3rem}.admonitionIcon_kALy{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_kALy svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.tableOfContents_bqdL{overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}.breadcrumbHomeIcon_OVgt{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.title_kItE{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-leading)*1.25)}@media (min-width:640px){.sm\:mx-auto{margin-left:auto;margin-right:auto}.sm\:mr-2{margin-right:.5rem}.sm\:inline-block{display:inline-block}.sm\:flex{display:flex}.sm\:h-9{height:2.25rem}.sm\:w-auto{width:auto}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:gap-12{gap:3rem}.sm\:gap-6{gap:1.5rem}.sm\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))}.sm\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(1rem*var(--tw-space-x-reverse))}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}}@media (min-width:768px){.md\:grid{display:grid}.md\:h-12{height:3rem}.md\:w-12{width:3rem}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:gap-12{gap:3rem}.md\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))}.md\:p-8{padding:2rem}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-2xl{font-size:1.5rem;line-height:2rem}}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_m80_{background-color:var(--docusaurus-collapse-button-bg);position:sticky}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_BlDH,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_m80_:focus,.expandButton_m80_:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;max-height:100vh;padding-top:var(--ifm-navbar-height);position:sticky;top:0;transition:opacity 50ms;width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{height:0;opacity:0;overflow:hidden;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_m80_{align-items:center;display:flex;height:100%;justify-content:center;max-height:100vh;top:0;transition:background-color var(--ifm-transition-fast) ease}[dir=rtl] .expandButtonIcon_BlDH{transform:rotate(180deg)}.docSidebarContainer_b6E3{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_b3ry{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.docMainContainer_gTbr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_Uz_u{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_czyv{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.docItemCol_VOVn,.generatedIndexPage_vN6x{max-width:75%!important}.list_eTzJ article:nth-last-child(-n+2){margin-bottom:0!important}}@media (min-width:1024px){.lg\:order-2{order:2}.lg\:order-1{order:1}.lg\:col-span-6{grid-column:span 6/span 6}.lg\:m-8{margin:2rem}.lg\:my-8{margin-top:2rem}.lg\:mb-8,.lg\:my-8{margin-bottom:2rem}.lg\:mt-0{margin-top:0}.lg\:mb-0{margin-bottom:0}.lg\:mb-12{margin-bottom:3rem}.lg\:mr-0{margin-right:0}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:w-auto{width:auto}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:gap-8{gap:2rem}.lg\:space-y-20>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(5rem*var(--tw-space-y-reverse));margin-top:calc(5rem*(1 - var(--tw-space-y-reverse)))}.lg\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(0px*var(--tw-space-y-reverse));margin-top:calc(0px*(1 - var(--tw-space-y-reverse)))}.lg\:space-x-8>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2rem*var(--tw-space-x-reverse))}.lg\:border-0{border-width:0}.lg\:bg-transparent,.lg\:hover\:bg-transparent:hover{background-color:initial}.lg\:p-12{padding:3rem}.lg\:p-10{padding:2.5rem}.lg\:p-0{padding:0}.lg\:py-16{padding-bottom:4rem;padding-top:4rem}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}.lg\:py-24{padding-bottom:6rem;padding-top:6rem}.lg\:py-8{padding-bottom:2rem;padding-top:2rem}.lg\:py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.lg\:py-2{padding-bottom:.5rem;padding-top:.5rem}.lg\:px-5{padding-left:1.25rem;padding-right:1.25rem}.lg\:pt-28{padding-top:7rem}.lg\:pb-16{padding-bottom:4rem}.lg\:text-3xl{font-size:1.875rem;line-height:2.25rem}.lg\:text-xl{font-size:1.25rem;line-height:1.75rem}.lg\:hover\:text-primary:hover,.lg\:text-primary{--tw-text-opacity:1;color:rgb(75 56 179/var(--tw-text-opacity))}.dark\:lg\:text-primary-light{--tw-text-opacity:1;color:rgb(161 150 222/var(--tw-text-opacity))}@media (prefers-color-scheme:dark){.lg\:dark\:hover\:bg-transparent:hover{background-color:initial}.lg\:dark\:hover\:text-primary-lighter:hover{--tw-text-opacity:1;color:rgb(161 150 222/var(--tw-text-opacity))}}}@media (min-width:1280px){.xl\:gap-0{gap:0}.xl\:gap-16{gap:4rem}.xl\:gap-10{gap:2.5rem}.xl\:p-8{padding:2rem}.xl\:text-6xl{font-size:3.75rem;line-height:1}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.sidebar_re4s,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}.title_f1Hy{font-size:2rem}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}.aa-TouchOnly{display:none}}@media (hover:none) and (pointer:coarse){:root{--aa-spacing-factor:1.2;--aa-action-icon-size:22px}.aa-LoadingIndicator,.aa-SubmitButton{padding-left:3px;padding-left:calc(var(--aa-spacing-half)/ 2 - 1px);width:39px;width:calc(var(--aa-icon-size) + var(--aa-spacing)*1.25 - 1px)}.aa-ClearButton{padding:0 10.1666666667px;padding:0 calc(var(--aa-spacing)*.66667 - .5px)}.aa-ItemActionButton:focus svg,.aa-ItemActionButton:hover svg{color:inherit}.aa-DesktopOnly{display:none}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-color-scheme:dark){.dark\:divide-gray-700>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:rgb(55 65 81/var(--tw-divide-opacity))}.dark\:border-gray-700{--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity))}.dark\:border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity))}.dark\:bg-gray-800{--tw-bg-opacity:1;background-color:rgb(31 41 55/var(--tw-bg-opacity))}.dark\:bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity))}.dark\:hover\:text-white:hover,.dark\:text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.dark\:text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.dark\:text-primary-light,.lg\:dark\:hover\:text-primary-lighter:hover{--tw-text-opacity:1;color:rgb(161 150 222/var(--tw-text-opacity))}.dark\:text-green-400{--tw-text-opacity:1;color:rgb(74 222 128/var(--tw-text-opacity))}.dark\:text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity))}.dark\:hover\:bg-white:hover{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.dark\:hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:rgb(55 65 81/var(--tw-bg-opacity))}.dark\:hover\:text-primary:hover{--tw-text-opacity:1;color:rgb(75 56 179/var(--tw-text-opacity))}.dark\:focus\:ring-primary:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(75 56 179/var(--tw-ring-opacity))}.dark\:focus\:ring-gray-800:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(31 41 55/var(--tw-ring-opacity))}.dark\:focus\:ring-primary-darker:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(37 28 89/var(--tw-ring-opacity))}.dark\:focus\:ring-gray-600:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(75 85 99/var(--tw-ring-opacity))}@media (min-width:1024px){.dark\:lg\:text-primary-light{--tw-text-opacity:1;color:rgb(161 150 222/var(--tw-text-opacity))}}.lg\:dark\:hover\:bg-transparent:hover{background-color:initial}}@media screen and (prefers-reduced-motion){.aa-Panel{transition:none}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/images/table-tabs-0e4afab2cd270630e14407cac8a52967.png b/assets/images/table-tabs-0e4afab2cd270630e14407cac8a52967.png deleted file mode 100644 index 2eb793d9c..000000000 Binary files a/assets/images/table-tabs-0e4afab2cd270630e14407cac8a52967.png and /dev/null differ diff --git a/assets/js/01a85c17.7c820c47.js b/assets/js/01a85c17.7c820c47.js deleted file mode 100644 index 5bef91df8..000000000 --- a/assets/js/01a85c17.7c820c47.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[4013],{9058:(e,t,a)=>{a.d(t,{Z:()=>N});var l=a(7294),n=a(6010),r=a(2185),s=a(7524),c=a(9960),i=a(5999);const m="sidebar_re4s",o="sidebarItemTitle_pO2u",u="sidebarItemList_Yudw",g="sidebarItem__DBe",d="sidebarItemLink_mo7H",E="sidebarItemLinkActive_I1ZP";function b(e){let{sidebar:t}=e;return l.createElement("aside",{className:"col col--3"},l.createElement("nav",{className:(0,n.Z)(m,"thin-scrollbar"),"aria-label":(0,i.I)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"})},l.createElement("div",{className:(0,n.Z)(o,"margin-bottom--md")},t.title),l.createElement("ul",{className:(0,n.Z)(u,"clean-list")},t.items.map((e=>l.createElement("li",{key:e.permalink,className:g},l.createElement(c.Z,{isNavLink:!0,to:e.permalink,className:d,activeClassName:E},e.title)))))))}var p=a(3102);function h(e){let{sidebar:t}=e;return l.createElement("ul",{className:"menu__list"},t.items.map((e=>l.createElement("li",{key:e.permalink,className:"menu__list-item"},l.createElement(c.Z,{isNavLink:!0,to:e.permalink,className:"menu__link",activeClassName:"menu__link--active"},e.title)))))}function _(e){return l.createElement(p.Zo,{component:h,props:e})}function k(e){let{sidebar:t}=e;const a=(0,s.i)();return null!=t&&t.items.length?"mobile"===a?l.createElement(_,{sidebar:t}):l.createElement(b,{sidebar:t}):null}function N(e){const{sidebar:t,toc:a,children:s,...c}=e,i=t&&t.items.length>0;return l.createElement(r.Z,c,l.createElement("div",{className:"container margin-vert--lg"},l.createElement("div",{className:"row"},l.createElement(k,{sidebar:t}),l.createElement("main",{className:(0,n.Z)("col",{"col--7":i,"col--9 col--offset-1":!i}),itemScope:!0,itemType:"http://schema.org/Blog"},s),a&&l.createElement("div",{className:"col col--2"},a))))}},1223:(e,t,a)=>{a.r(t),a.d(t,{default:()=>E});var l=a(7294),n=a(6010),r=a(5999);var s=a(1944),c=a(5281),i=a(9058),m=a(3008);const o="tag_Nnez";function u(e){let{letterEntry:t}=e;return l.createElement("article",null,l.createElement("h2",null,t.letter),l.createElement("ul",{className:"padding--none"},t.tags.map((e=>l.createElement("li",{key:e.permalink,className:o},l.createElement(m.Z,e))))),l.createElement("hr",null))}function g(e){let{tags:t}=e;const a=function(e){const t={};return Object.values(e).forEach((e=>{const a=function(e){return e[0].toUpperCase()}(e.label);t[a]??=[],t[a].push(e)})),Object.entries(t).sort(((e,t)=>{let[a]=e,[l]=t;return a.localeCompare(l)})).map((e=>{let[t,a]=e;return{letter:t,tags:a.sort(((e,t)=>e.label.localeCompare(t.label)))}}))}(t);return l.createElement("section",{className:"margin-vert--lg"},a.map((e=>l.createElement(u,{key:e.letter,letterEntry:e}))))}var d=a(197);function E(e){let{tags:t,sidebar:a}=e;const m=(0,r.I)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});return l.createElement(s.FG,{className:(0,n.Z)(c.k.wrapper.blogPages,c.k.page.blogTagsListPage)},l.createElement(s.d,{title:m}),l.createElement(d.Z,{tag:"blog_tags_list"}),l.createElement(i.Z,{sidebar:a},l.createElement("h1",null,m),l.createElement(g,{tags:t})))}},3008:(e,t,a)=>{a.d(t,{Z:()=>m});var l=a(7294),n=a(6010),r=a(9960);const s="tag_zVej",c="tagRegular_sFm0",i="tagWithCount_h2kH";function m(e){let{permalink:t,label:a,count:m}=e;return l.createElement(r.Z,{href:t,className:(0,n.Z)(s,m?i:c)},a,m&&l.createElement("span",null,m))}}}]); \ No newline at end of file diff --git a/assets/js/01a85c17.d2902a63.js b/assets/js/01a85c17.d2902a63.js new file mode 100644 index 000000000..0f2116935 --- /dev/null +++ b/assets/js/01a85c17.d2902a63.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[13],{9058:(e,t,a)=>{a.d(t,{Z:()=>N});var l=a(7294),n=a(6010),r=a(2185),s=a(7524),c=a(9960),i=a(5999);const m="sidebar_re4s",o="sidebarItemTitle_pO2u",u="sidebarItemList_Yudw",g="sidebarItem__DBe",d="sidebarItemLink_mo7H",E="sidebarItemLinkActive_I1ZP";function b(e){let{sidebar:t}=e;return l.createElement("aside",{className:"col col--3"},l.createElement("nav",{className:(0,n.Z)(m,"thin-scrollbar"),"aria-label":(0,i.I)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"})},l.createElement("div",{className:(0,n.Z)(o,"margin-bottom--md")},t.title),l.createElement("ul",{className:(0,n.Z)(u,"clean-list")},t.items.map((e=>l.createElement("li",{key:e.permalink,className:g},l.createElement(c.Z,{isNavLink:!0,to:e.permalink,className:d,activeClassName:E},e.title)))))))}var p=a(3102);function h(e){let{sidebar:t}=e;return l.createElement("ul",{className:"menu__list"},t.items.map((e=>l.createElement("li",{key:e.permalink,className:"menu__list-item"},l.createElement(c.Z,{isNavLink:!0,to:e.permalink,className:"menu__link",activeClassName:"menu__link--active"},e.title)))))}function _(e){return l.createElement(p.Zo,{component:h,props:e})}function k(e){let{sidebar:t}=e;const a=(0,s.i)();return null!=t&&t.items.length?"mobile"===a?l.createElement(_,{sidebar:t}):l.createElement(b,{sidebar:t}):null}function N(e){const{sidebar:t,toc:a,children:s,...c}=e,i=t&&t.items.length>0;return l.createElement(r.Z,c,l.createElement("div",{className:"container margin-vert--lg"},l.createElement("div",{className:"row"},l.createElement(k,{sidebar:t}),l.createElement("main",{className:(0,n.Z)("col",{"col--7":i,"col--9 col--offset-1":!i}),itemScope:!0,itemType:"http://schema.org/Blog"},s),a&&l.createElement("div",{className:"col col--2"},a))))}},1223:(e,t,a)=>{a.r(t),a.d(t,{default:()=>E});var l=a(7294),n=a(6010),r=a(5999);var s=a(1944),c=a(5281),i=a(9058),m=a(3008);const o="tag_Nnez";function u(e){let{letterEntry:t}=e;return l.createElement("article",null,l.createElement("h2",null,t.letter),l.createElement("ul",{className:"padding--none"},t.tags.map((e=>l.createElement("li",{key:e.permalink,className:o},l.createElement(m.Z,e))))),l.createElement("hr",null))}function g(e){let{tags:t}=e;const a=function(e){const t={};return Object.values(e).forEach((e=>{const a=function(e){return e[0].toUpperCase()}(e.label);t[a]??=[],t[a].push(e)})),Object.entries(t).sort(((e,t)=>{let[a]=e,[l]=t;return a.localeCompare(l)})).map((e=>{let[t,a]=e;return{letter:t,tags:a.sort(((e,t)=>e.label.localeCompare(t.label)))}}))}(t);return l.createElement("section",{className:"margin-vert--lg"},a.map((e=>l.createElement(u,{key:e.letter,letterEntry:e}))))}var d=a(197);function E(e){let{tags:t,sidebar:a}=e;const m=(0,r.I)({id:"theme.tags.tagsPageTitle",message:"Tags",description:"The title of the tag list page"});return l.createElement(s.FG,{className:(0,n.Z)(c.k.wrapper.blogPages,c.k.page.blogTagsListPage)},l.createElement(s.d,{title:m}),l.createElement(d.Z,{tag:"blog_tags_list"}),l.createElement(i.Z,{sidebar:a},l.createElement("h1",null,m),l.createElement(g,{tags:t})))}},3008:(e,t,a)=>{a.d(t,{Z:()=>m});var l=a(7294),n=a(6010),r=a(9960);const s="tag_zVej",c="tagRegular_sFm0",i="tagWithCount_h2kH";function m(e){let{permalink:t,label:a,count:m}=e;return l.createElement(r.Z,{href:t,className:(0,n.Z)(s,m?i:c)},a,m&&l.createElement("span",null,m))}}}]); \ No newline at end of file diff --git a/assets/js/09483f84.cc560ea7.js b/assets/js/09483f84.cc560ea7.js deleted file mode 100644 index 36b33ef42..000000000 --- a/assets/js/09483f84.cc560ea7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[1346],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=r.createContext({}),s=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},c=function(e){var t=s(e.components);return r.createElement(l.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,a=e.originalType,l=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),u=s(n),f=i,m=u["".concat(l,".").concat(f)]||u[f]||d[f]||a;return n?r.createElement(m,o(o({ref:t},c),{},{components:n})):r.createElement(m,o({ref:t},c))}));function f(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var a=n.length,o=new Array(a);o[0]=u;var p={};for(var l in t)hasOwnProperty.call(t,l)&&(p[l]=t[l]);p.originalType=e,p.mdxType="string"==typeof e?e:i,o[1]=p;for(var s=2;s{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>d,frontMatter:()=>a,metadata:()=>p,toc:()=>s});var r=n(7462),i=(n(7294),n(3905));const a={sidebar_position:1},o="Entities",p={unversionedId:"app-configuration/entities",id:"app-configuration/entities",title:"Entities",description:"Selection",source:"@site/docs/app-configuration/entities.md",sourceDirName:"app-configuration",slug:"/app-configuration/entities",permalink:"/docs/app-configuration/entities",draft:!1,editUrl:"https://github.com/hadmean/archaea/edit/main/docs/app-configuration/entities.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"App configuration",permalink:"/docs/category/app-configuration"},next:{title:"CRUD",permalink:"/docs/app-configuration/crud"}},l={},s=[{value:"Selection",id:"selection",level:3},{value:"Order",id:"order",level:3}],c={toc:s};function d(e){let{components:t,...n}=e;return(0,i.kt)("wrapper",(0,r.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"entities"},"Entities"),(0,i.kt)("h3",{id:"selection"},"Selection"),(0,i.kt)("p",null,"In this UI, you can disable and enable entities app-wide, meaning any disabled entity will not appear anywhere on Hadmean."),(0,i.kt)("p",null," This is needed for cases where you have development entities like ",(0,i.kt)("inlineCode",{parentName:"p"},"migrations"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"logs"),", even ",(0,i.kt)("inlineCode",{parentName:"p"},"hadmean__")," prefixed tables or for scenarios where your database is holding data for more than one application then you can easily disable any entities not related to your Hadmean application."),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"This toggling works using a blacklist strategy as opposed to a whitelist meaning any new entities added to the application will show up and will have to be disabled if not desired.")),(0,i.kt)("h3",{id:"order"},"Order"),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"Order")," tab is to order the entities to have more important entities show up higher in the lists and not rely on the default alphabetical order."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0e384e19.1dc4e890.js b/assets/js/0e384e19.1dc4e890.js new file mode 100644 index 000000000..7a92efe3b --- /dev/null +++ b/assets/js/0e384e19.1dc4e890.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[671],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),u=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=u(a),h=r,y=p["".concat(s,".").concat(h)]||p[h]||c[h]||o;return a?n.createElement(y,i(i({ref:t},d),{},{components:a})):n.createElement(y,i({ref:t},d))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:r,i[1]=l;for(var u=2;u{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var n=a(7462),r=(a(7294),a(3905));const o={sidebar_position:0},i="Introduction",l={unversionedId:"intro",id:"intro",title:"Introduction",description:"Hadmean is an open-source internal tool generator that builds your admin interface based on your database schema and your configurations. It is fully featured and is extremely customizable.",source:"@site/docs/intro.md",sourceDirName:".",slug:"/intro",permalink:"/docs/intro",draft:!1,editUrl:"https://github.com/hadmean/archaea/edit/main/docs/intro.md",tags:[],version:"current",sidebarPosition:0,frontMatter:{sidebar_position:0},sidebar:"tutorialSidebar",next:{title:"Installation",permalink:"/docs/category/installation"}},s={},u=[{value:"What",id:"what",level:2},{value:"Why",id:"why",level:2},{value:"How",id:"how",level:2},{value:"Not",id:"not",level:2},{value:"API generator",id:"api-generator",level:3},{value:"Database client",id:"database-client",level:3},{value:"Web Builder",id:"web-builder",level:3},{value:"API backend",id:"api-backend",level:3},{value:"CMS",id:"cms",level:3}],d={toc:u};function c(e){let{components:t,...a}=e;return(0,r.kt)("wrapper",(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"introduction"},"Introduction"),(0,r.kt)("p",null,"Hadmean is an open-source internal tool generator that builds your admin interface based on your database schema and your configurations. It is fully featured and is extremely customizable."),(0,r.kt)("h2",{id:"what"},"What"),(0,r.kt)("p",null,"Building admin apps is mostly a chore for developers and we tend to find the easiest way to build them, sometimes delegating it to the juniors of the teams."),(0,r.kt)("p",null,"With Hadmean, you set up your admin interface as fast as you can type ",(0,r.kt)("inlineCode",{parentName:"p"},"npx hadmean")," and your DB credentials."),(0,r.kt)("p",null,"It is extremely customizable as it gives you a programmatic interface when your requirements are very unique. "),(0,r.kt)("h2",{id:"why"},"Why"),(0,r.kt)("p",null,"There are many admin apps out there, usually free or paid."),(0,r.kt)("p",null,"The free apps are usually tied to a framework and all your experience with it dies when you hop to your next shiny language. They are usually not aesthetically pleasing and always require a developer to make any changes."),(0,r.kt)("p",null,"The paid apps are usually good but very restricted as you will be forced to their paywall to get it to be usable for your day-to-day."),(0,r.kt)("p",null,"We built Hadmean to provide an admin app that will be free, very usable and language agnostic."),(0,r.kt)("h2",{id:"how"},"How"),(0,r.kt)("p",null,"We believe your database information should always be the golden truth of your application. As such we read your database relations, tables and fields constraints, enums etc and implement all that information in the UI without any input from you."),(0,r.kt)("p",null,"Most admin generators pride themselves on their powerful drag-and-drop system which is great as it allows for great customization but it always requires developers to make changes since you need technical knowledge to make even the smallest of changes."),(0,r.kt)("p",null,"Hadmean might get to a drag-and-drop system in the future but for now, we want to ride this database idealogy for as long as we can."),(0,r.kt)("h2",{id:"not"},"Not"),(0,r.kt)("h3",{id:"api-generator"},"API generator"),(0,r.kt)("p",null,"The APIs produced by Hadmean are for its internal use, They are not designed to be used by other clients. There are plenty of good tools out there already building APIs and we don't have anything we feel can be improved. "),(0,r.kt)("p",null,"There will be no support for any unintentional API usage. They will not be documented and they can/will change without notice."),(0,r.kt)("h3",{id:"database-client"},"Database client"),(0,r.kt)("p",null,"Hadmean will not and will never have an interface to change the structure of your database."),(0,r.kt)("h3",{id:"web-builder"},"Web Builder"),(0,r.kt)("p",null,"Hadmean is built for internal use, It is not built for end-users but rather internal users. This means no fancy editor to add a class to every element, no template for headers, footers, no page creator etc."),(0,r.kt)("h3",{id:"api-backend"},"API backend"),(0,r.kt)("p",null,"Hadmean will not expose a method to extend the backend. i.e you will not be able to create a new API route with it, meaning if you need to have hooks for other business needs, then you will have to create a seperate API backend for that. Hadmean will not be providing functionality for schedulers"),(0,r.kt)("h3",{id:"cms"},"CMS"),(0,r.kt)("p",null,"Hadmean doesn't have a default data or data structure, It doesn't have any workflows. Hadmean only works with the data you already have."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/0e384e19.9eb1e7de.js b/assets/js/0e384e19.9eb1e7de.js deleted file mode 100644 index fe5121ec0..000000000 --- a/assets/js/0e384e19.9eb1e7de.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[9671],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>h});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(r[a]=e[a]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}var s=n.createContext({}),u=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},p=n.forwardRef((function(e,t){var a=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),p=u(a),h=r,y=p["".concat(s,".").concat(h)]||p[h]||c[h]||o;return a?n.createElement(y,i(i({ref:t},d),{},{components:a})):n.createElement(y,i({ref:t},d))}));function h(e,t){var a=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=a.length,i=new Array(o);i[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:r,i[1]=l;for(var u=2;u{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var n=a(7462),r=(a(7294),a(3905));const o={sidebar_position:0},i="Introduction",l={unversionedId:"intro",id:"intro",title:"Introduction",description:"Hadmean is an open-source internal tool generator that builds your admin interface based on your database schema and your configurations. It is fully featured and is extremely customizable.",source:"@site/docs/intro.md",sourceDirName:".",slug:"/intro",permalink:"/docs/intro",draft:!1,editUrl:"https://github.com/hadmean/archaea/edit/main/docs/intro.md",tags:[],version:"current",sidebarPosition:0,frontMatter:{sidebar_position:0},sidebar:"tutorialSidebar",next:{title:"Installation",permalink:"/docs/category/installation"}},s={},u=[{value:"What",id:"what",level:2},{value:"Why",id:"why",level:2},{value:"How",id:"how",level:2},{value:"Not",id:"not",level:2},{value:"API generator",id:"api-generator",level:3},{value:"Database client",id:"database-client",level:3},{value:"Web Builder",id:"web-builder",level:3},{value:"API backend",id:"api-backend",level:3},{value:"CMS",id:"cms",level:3}],d={toc:u};function c(e){let{components:t,...a}=e;return(0,r.kt)("wrapper",(0,n.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"introduction"},"Introduction"),(0,r.kt)("p",null,"Hadmean is an open-source internal tool generator that builds your admin interface based on your database schema and your configurations. It is fully featured and is extremely customizable."),(0,r.kt)("h2",{id:"what"},"What"),(0,r.kt)("p",null,"Building admin apps is mostly a chore for developers and we tend to find the easiest way to build them, sometimes delegating it to the juniors of the teams."),(0,r.kt)("p",null,"With Hadmean, you set up your admin interface as fast as you can type ",(0,r.kt)("inlineCode",{parentName:"p"},"npx hadmean")," and your DB credentials."),(0,r.kt)("p",null,"It is extremely customizable as it gives you a programmatic interface when your requirements are very unique. "),(0,r.kt)("h2",{id:"why"},"Why"),(0,r.kt)("p",null,"There are many admin apps out there, usually free or paid."),(0,r.kt)("p",null,"The free apps are usually tied to a framework and all your experience with it dies when you hop to your next shiny language. They are usually not aesthetically pleasing and always require a developer to make any changes."),(0,r.kt)("p",null,"The paid apps are usually good but very restricted as you will be forced to their paywall to get it to be usable for your day-to-day."),(0,r.kt)("p",null,"We built Hadmean to provide an admin app that will be free, very usable and language agnostic."),(0,r.kt)("h2",{id:"how"},"How"),(0,r.kt)("p",null,"We believe your database information should always be the golden truth of your application. As such we read your database relations, tables and fields constraints, enums etc and implement all that information in the UI without any input from you."),(0,r.kt)("p",null,"Most admin generators pride themselves on their powerful drag-and-drop system which is great as it allows for great customization but it always requires developers to make changes since you need technical knowledge to make even the smallest of changes."),(0,r.kt)("p",null,"Hadmean might get to a drag-and-drop system in the future but for now, we want to ride this database idealogy for as long as we can."),(0,r.kt)("h2",{id:"not"},"Not"),(0,r.kt)("h3",{id:"api-generator"},"API generator"),(0,r.kt)("p",null,"The APIs produced by Hadmean are for its internal use, They are not designed to be used by other clients. There are plenty of good tools out there already building APIs and we don't have anything we feel can be improved. "),(0,r.kt)("p",null,"There will be no support for any unintentional API usage. They will not be documented and they can/will change without notice."),(0,r.kt)("h3",{id:"database-client"},"Database client"),(0,r.kt)("p",null,"Hadmean will not and will never have an interface to change the structure of your database."),(0,r.kt)("h3",{id:"web-builder"},"Web Builder"),(0,r.kt)("p",null,"Hadmean is built for internal use, It is not built for end-users but rather internal users. This means no fancy editor to add a class to every element, no template for headers, footers, no page creator etc."),(0,r.kt)("h3",{id:"api-backend"},"API backend"),(0,r.kt)("p",null,"Hadmean will not expose a method to extend the backend. i.e you will not be able to create a new API route with it, meaning if you need to have hooks for other business needs, then you will have to create a seperate API backend for that"),(0,r.kt)("h3",{id:"cms"},"CMS"),(0,r.kt)("p",null,"Hadmean doesn't have a default data or data structure, It doesn't have any workflows. Hadmean only works with the data you already have."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/14eb3368.1051497c.js b/assets/js/14eb3368.1051497c.js deleted file mode 100644 index 73881aa48..000000000 --- a/assets/js/14eb3368.1051497c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[9817],{1986:(e,t,a)=>{a.d(t,{Z:()=>p});var n=a(7462),r=a(7294),i=a(6010),l=a(5281),s=a(2802),c=a(8596),o=a(9960),m=a(4996),d=a(5999);function u(e){return r.createElement("svg",(0,n.Z)({viewBox:"0 0 24 24"},e),r.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const h={breadcrumbsContainer:"breadcrumbsContainer_Z_bl",breadcrumbHomeIcon:"breadcrumbHomeIcon_OVgt"};function b(e){let{children:t,href:a,isLast:n}=e;const i="breadcrumbs__link";return n?r.createElement("span",{className:i,itemProp:"name"},t):a?r.createElement(o.Z,{className:i,href:a,itemProp:"item"},r.createElement("span",{itemProp:"name"},t)):r.createElement("span",{className:i},t)}function v(e){let{children:t,active:a,index:l,addMicrodata:s}=e;return r.createElement("li",(0,n.Z)({},s&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,i.Z)("breadcrumbs__item",{"breadcrumbs__item--active":a})}),t,r.createElement("meta",{itemProp:"position",content:String(l+1)}))}function g(){const e=(0,m.Z)("/");return r.createElement("li",{className:"breadcrumbs__item"},r.createElement(o.Z,{"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:(0,i.Z)("breadcrumbs__link",h.breadcrumbsItemLink),href:e},r.createElement(u,{className:h.breadcrumbHomeIcon})))}function p(){const e=(0,s.s1)(),t=(0,c.Ns)();return e?r.createElement("nav",{className:(0,i.Z)(l.k.docs.docBreadcrumbs,h.breadcrumbsContainer),"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},r.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&r.createElement(g,null),e.map(((t,a)=>{const n=a===e.length-1;return r.createElement(v,{key:a,active:n,index:a,addMicrodata:!!t.href},r.createElement(b,{href:t.href,isLast:n},t.label))})))):null}},4228:(e,t,a)=>{a.r(t),a.d(t,{default:()=>V});var n=a(7294),r=a(1944),i=a(2802),l=a(4996),s=a(6010),c=a(9960),o=a(3919),m=a(5999);const d="cardContainer_fWXF",u="cardTitle_rnsV",h="cardDescription_PWke";function b(e){let{href:t,children:a}=e;return n.createElement(c.Z,{href:t,className:(0,s.Z)("card padding--lg",d)},a)}function v(e){let{href:t,icon:a,title:r,description:i}=e;return n.createElement(b,{href:t},n.createElement("h2",{className:(0,s.Z)("text--truncate",u),title:r},a," ",r),i&&n.createElement("p",{className:(0,s.Z)("text--truncate",h),title:i},i))}function g(e){let{item:t}=e;const a=(0,i.Wl)(t);return a?n.createElement(v,{href:a,icon:"\ud83d\uddc3\ufe0f",title:t.label,description:(0,m.I)({message:"{count} items",id:"theme.docs.DocCard.categoryDescription",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t.items.length})}):null}function p(e){let{item:t}=e;const a=(0,o.Z)(t.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",r=(0,i.xz)(t.docId??void 0);return n.createElement(v,{href:t.href,icon:a,title:t.label,description:null==r?void 0:r.description})}function E(e){let{item:t}=e;switch(t.type){case"link":return n.createElement(p,{item:t});case"category":return n.createElement(g,{item:t});default:throw new Error(`unknown item type ${JSON.stringify(t)}`)}}function f(e){let{items:t,className:a}=e;return n.createElement("section",{className:(0,s.Z)("row",a)},function(e){return e.filter((e=>"category"!==e.type||!!(0,i.Wl)(e)))}(t).map(((e,t)=>n.createElement("article",{key:t,className:"col col--6 margin-bottom--lg"},n.createElement(E,{item:e})))))}var Z=a(49),N=a(3120),k=a(4364),_=a(1986),L=a(2503);const T="generatedIndexPage_vN6x",y="list_eTzJ",x="title_kItE";function I(e){let{categoryGeneratedIndex:t}=e;return n.createElement(r.d,{title:t.title,description:t.description,keywords:t.keywords,image:(0,l.Z)(t.image)})}function w(e){let{categoryGeneratedIndex:t}=e;const a=(0,i.jA)();return n.createElement("div",{className:T},n.createElement(N.Z,null),n.createElement(_.Z,null),n.createElement(k.Z,null),n.createElement("header",null,n.createElement(L.Z,{as:"h1",className:x},t.title),t.description&&n.createElement("p",null,t.description)),n.createElement("article",{className:"margin-top--lg"},n.createElement(f,{items:a.items,className:y})),n.createElement("footer",{className:"margin-top--lg"},n.createElement(Z.Z,{previous:t.navigation.previous,next:t.navigation.next})))}function V(e){return n.createElement(n.Fragment,null,n.createElement(I,e),n.createElement(w,e))}},49:(e,t,a)=>{a.d(t,{Z:()=>s});var n=a(7462),r=a(7294),i=a(5999),l=a(2244);function s(e){const{previous:t,next:a}=e;return r.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,i.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages navigation",description:"The ARIA label for the docs pagination"})},t&&r.createElement(l.Z,(0,n.Z)({},t,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),a&&r.createElement(l.Z,(0,n.Z)({},a,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4364:(e,t,a)=>{a.d(t,{Z:()=>c});var n=a(7294),r=a(6010),i=a(5999),l=a(5281),s=a(4477);function c(e){let{className:t}=e;const a=(0,s.E)();return a.badge?n.createElement("span",{className:(0,r.Z)(t,l.k.docs.docVersionBadge,"badge badge--secondary")},n.createElement(i.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:a.label}},"Version: {versionLabel}")):null}},3120:(e,t,a)=>{a.d(t,{Z:()=>g});var n=a(7294),r=a(6010),i=a(2263),l=a(9960),s=a(5999),c=a(4104),o=a(5281),m=a(373),d=a(4477);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function h(e){const t=u[e.versionMetadata.banner];return n.createElement(t,e)}function b(e){let{versionLabel:t,to:a,onClick:r}=e;return n.createElement(s.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:n.createElement("b",null,n.createElement(l.Z,{to:a,onClick:r},n.createElement(s.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function v(e){let{className:t,versionMetadata:a}=e;const{siteConfig:{title:l}}=(0,i.Z)(),{pluginId:s}=(0,c.gA)({failfast:!0}),{savePreferredVersionName:d}=(0,m.J)(s),{latestDocSuggestion:u,latestVersionSuggestion:v}=(0,c.Jo)(s),g=u??(p=v).docs.find((e=>e.id===p.mainDocId));var p;return n.createElement("div",{className:(0,r.Z)(t,o.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},n.createElement("div",null,n.createElement(h,{siteTitle:l,versionMetadata:a})),n.createElement("div",{className:"margin-top--md"},n.createElement(b,{versionLabel:v.label,to:g.path,onClick:()=>d(v.name)})))}function g(e){let{className:t}=e;const a=(0,d.E)();return a.banner?n.createElement(v,{className:t,versionMetadata:a}):null}},2503:(e,t,a)=>{a.d(t,{Z:()=>m});var n=a(7462),r=a(7294),i=a(6010),l=a(5999),s=a(6668);const c="anchorWithStickyNavbar_LWe7",o="anchorWithHideOnScrollNavbar_WYt5";function m(e){let{as:t,id:a,...m}=e;const{navbar:{hideOnScroll:d}}=(0,s.L)();return"h1"!==t&&a?r.createElement(t,(0,n.Z)({},m,{className:(0,i.Z)("anchor",d?o:c),id:a}),m.children,r.createElement("a",{className:"hash-link",href:`#${a}`,title:(0,l.I)({id:"theme.common.headingLinkTitle",message:"Direct link to heading",description:"Title for link to heading"})},"\u200b")):r.createElement(t,(0,n.Z)({},m,{id:void 0}))}},2244:(e,t,a)=>{a.d(t,{Z:()=>l});var n=a(7294),r=a(6010),i=a(9960);function l(e){const{permalink:t,title:a,subLabel:l,isNext:s}=e;return n.createElement(i.Z,{className:(0,r.Z)("pagination-nav__link",s?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},l&&n.createElement("div",{className:"pagination-nav__sublabel"},l),n.createElement("div",{className:"pagination-nav__label"},a))}}}]); \ No newline at end of file diff --git a/assets/js/14eb3368.a195b1b0.js b/assets/js/14eb3368.a195b1b0.js new file mode 100644 index 000000000..3dfd2fa37 --- /dev/null +++ b/assets/js/14eb3368.a195b1b0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[817],{1986:(e,t,a)=>{a.d(t,{Z:()=>p});var n=a(7462),r=a(7294),i=a(6010),l=a(5281),s=a(2802),c=a(8596),o=a(9960),m=a(4996),d=a(5999);function u(e){return r.createElement("svg",(0,n.Z)({viewBox:"0 0 24 24"},e),r.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const h={breadcrumbsContainer:"breadcrumbsContainer_Z_bl",breadcrumbHomeIcon:"breadcrumbHomeIcon_OVgt"};function b(e){let{children:t,href:a,isLast:n}=e;const i="breadcrumbs__link";return n?r.createElement("span",{className:i,itemProp:"name"},t):a?r.createElement(o.Z,{className:i,href:a,itemProp:"item"},r.createElement("span",{itemProp:"name"},t)):r.createElement("span",{className:i},t)}function v(e){let{children:t,active:a,index:l,addMicrodata:s}=e;return r.createElement("li",(0,n.Z)({},s&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,i.Z)("breadcrumbs__item",{"breadcrumbs__item--active":a})}),t,r.createElement("meta",{itemProp:"position",content:String(l+1)}))}function g(){const e=(0,m.Z)("/");return r.createElement("li",{className:"breadcrumbs__item"},r.createElement(o.Z,{"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:(0,i.Z)("breadcrumbs__link",h.breadcrumbsItemLink),href:e},r.createElement(u,{className:h.breadcrumbHomeIcon})))}function p(){const e=(0,s.s1)(),t=(0,c.Ns)();return e?r.createElement("nav",{className:(0,i.Z)(l.k.docs.docBreadcrumbs,h.breadcrumbsContainer),"aria-label":(0,d.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},r.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&r.createElement(g,null),e.map(((t,a)=>{const n=a===e.length-1;return r.createElement(v,{key:a,active:n,index:a,addMicrodata:!!t.href},r.createElement(b,{href:t.href,isLast:n},t.label))})))):null}},4228:(e,t,a)=>{a.r(t),a.d(t,{default:()=>V});var n=a(7294),r=a(1944),i=a(2802),l=a(4996),s=a(6010),c=a(9960),o=a(3919),m=a(5999);const d="cardContainer_fWXF",u="cardTitle_rnsV",h="cardDescription_PWke";function b(e){let{href:t,children:a}=e;return n.createElement(c.Z,{href:t,className:(0,s.Z)("card padding--lg",d)},a)}function v(e){let{href:t,icon:a,title:r,description:i}=e;return n.createElement(b,{href:t},n.createElement("h2",{className:(0,s.Z)("text--truncate",u),title:r},a," ",r),i&&n.createElement("p",{className:(0,s.Z)("text--truncate",h),title:i},i))}function g(e){let{item:t}=e;const a=(0,i.Wl)(t);return a?n.createElement(v,{href:a,icon:"\ud83d\uddc3\ufe0f",title:t.label,description:(0,m.I)({message:"{count} items",id:"theme.docs.DocCard.categoryDescription",description:"The default description for a category card in the generated index about how many items this category includes"},{count:t.items.length})}):null}function p(e){let{item:t}=e;const a=(0,o.Z)(t.href)?"\ud83d\udcc4\ufe0f":"\ud83d\udd17",r=(0,i.xz)(t.docId??void 0);return n.createElement(v,{href:t.href,icon:a,title:t.label,description:null==r?void 0:r.description})}function E(e){let{item:t}=e;switch(t.type){case"link":return n.createElement(p,{item:t});case"category":return n.createElement(g,{item:t});default:throw new Error(`unknown item type ${JSON.stringify(t)}`)}}function f(e){let{items:t,className:a}=e;return n.createElement("section",{className:(0,s.Z)("row",a)},function(e){return e.filter((e=>"category"!==e.type||!!(0,i.Wl)(e)))}(t).map(((e,t)=>n.createElement("article",{key:t,className:"col col--6 margin-bottom--lg"},n.createElement(E,{item:e})))))}var Z=a(49),N=a(3120),k=a(4364),_=a(1986),L=a(2503);const T="generatedIndexPage_vN6x",y="list_eTzJ",x="title_kItE";function I(e){let{categoryGeneratedIndex:t}=e;return n.createElement(r.d,{title:t.title,description:t.description,keywords:t.keywords,image:(0,l.Z)(t.image)})}function w(e){let{categoryGeneratedIndex:t}=e;const a=(0,i.jA)();return n.createElement("div",{className:T},n.createElement(N.Z,null),n.createElement(_.Z,null),n.createElement(k.Z,null),n.createElement("header",null,n.createElement(L.Z,{as:"h1",className:x},t.title),t.description&&n.createElement("p",null,t.description)),n.createElement("article",{className:"margin-top--lg"},n.createElement(f,{items:a.items,className:y})),n.createElement("footer",{className:"margin-top--lg"},n.createElement(Z.Z,{previous:t.navigation.previous,next:t.navigation.next})))}function V(e){return n.createElement(n.Fragment,null,n.createElement(I,e),n.createElement(w,e))}},49:(e,t,a)=>{a.d(t,{Z:()=>s});var n=a(7462),r=a(7294),i=a(5999),l=a(2244);function s(e){const{previous:t,next:a}=e;return r.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,i.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages navigation",description:"The ARIA label for the docs pagination"})},t&&r.createElement(l.Z,(0,n.Z)({},t,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),a&&r.createElement(l.Z,(0,n.Z)({},a,{subLabel:r.createElement(i.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4364:(e,t,a)=>{a.d(t,{Z:()=>c});var n=a(7294),r=a(6010),i=a(5999),l=a(5281),s=a(4477);function c(e){let{className:t}=e;const a=(0,s.E)();return a.badge?n.createElement("span",{className:(0,r.Z)(t,l.k.docs.docVersionBadge,"badge badge--secondary")},n.createElement(i.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:a.label}},"Version: {versionLabel}")):null}},3120:(e,t,a)=>{a.d(t,{Z:()=>g});var n=a(7294),r=a(6010),i=a(2263),l=a(9960),s=a(5999),c=a(4104),o=a(5281),m=a(373),d=a(4477);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:a}=e;return n.createElement(s.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:n.createElement("b",null,a.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function h(e){const t=u[e.versionMetadata.banner];return n.createElement(t,e)}function b(e){let{versionLabel:t,to:a,onClick:r}=e;return n.createElement(s.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:n.createElement("b",null,n.createElement(l.Z,{to:a,onClick:r},n.createElement(s.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function v(e){let{className:t,versionMetadata:a}=e;const{siteConfig:{title:l}}=(0,i.Z)(),{pluginId:s}=(0,c.gA)({failfast:!0}),{savePreferredVersionName:d}=(0,m.J)(s),{latestDocSuggestion:u,latestVersionSuggestion:v}=(0,c.Jo)(s),g=u??(p=v).docs.find((e=>e.id===p.mainDocId));var p;return n.createElement("div",{className:(0,r.Z)(t,o.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},n.createElement("div",null,n.createElement(h,{siteTitle:l,versionMetadata:a})),n.createElement("div",{className:"margin-top--md"},n.createElement(b,{versionLabel:v.label,to:g.path,onClick:()=>d(v.name)})))}function g(e){let{className:t}=e;const a=(0,d.E)();return a.banner?n.createElement(v,{className:t,versionMetadata:a}):null}},2503:(e,t,a)=>{a.d(t,{Z:()=>m});var n=a(7462),r=a(7294),i=a(6010),l=a(5999),s=a(6668);const c="anchorWithStickyNavbar_LWe7",o="anchorWithHideOnScrollNavbar_WYt5";function m(e){let{as:t,id:a,...m}=e;const{navbar:{hideOnScroll:d}}=(0,s.L)();return"h1"!==t&&a?r.createElement(t,(0,n.Z)({},m,{className:(0,i.Z)("anchor",d?o:c),id:a}),m.children,r.createElement("a",{className:"hash-link",href:`#${a}`,title:(0,l.I)({id:"theme.common.headingLinkTitle",message:"Direct link to heading",description:"Title for link to heading"})},"\u200b")):r.createElement(t,(0,n.Z)({},m,{id:void 0}))}},2244:(e,t,a)=>{a.d(t,{Z:()=>l});var n=a(7294),r=a(6010),i=a(9960);function l(e){const{permalink:t,title:a,subLabel:l,isNext:s}=e;return n.createElement(i.Z,{className:(0,r.Z)("pagination-nav__link",s?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},l&&n.createElement("div",{className:"pagination-nav__sublabel"},l),n.createElement("div",{className:"pagination-nav__label"},a))}}}]); \ No newline at end of file diff --git a/assets/js/15b89b76.16800893.js b/assets/js/15b89b76.16800893.js new file mode 100644 index 000000000..ad8af8444 --- /dev/null +++ b/assets/js/15b89b76.16800893.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[392],{9610:a=>{a.exports=JSON.parse('{"label":"testing","permalink":"/blog/tags/testing","allTagsPath":"/blog/tags","count":1}')}}]); \ No newline at end of file diff --git a/assets/js/17896441.07b21f13.js b/assets/js/17896441.07b21f13.js new file mode 100644 index 000000000..5def12a76 --- /dev/null +++ b/assets/js/17896441.07b21f13.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[918],{1986:(e,t,n)=>{n.d(t,{Z:()=>E});var a=n(7462),l=n(7294),r=n(6010),s=n(5281),c=n(2802),o=n(8596),i=n(9960),d=n(4996),m=n(5999);function u(e){return l.createElement("svg",(0,a.Z)({viewBox:"0 0 24 24"},e),l.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const v={breadcrumbsContainer:"breadcrumbsContainer_Z_bl",breadcrumbHomeIcon:"breadcrumbHomeIcon_OVgt"};function h(e){let{children:t,href:n,isLast:a}=e;const r="breadcrumbs__link";return a?l.createElement("span",{className:r,itemProp:"name"},t):n?l.createElement(i.Z,{className:r,href:n,itemProp:"item"},l.createElement("span",{itemProp:"name"},t)):l.createElement("span",{className:r},t)}function b(e){let{children:t,active:n,index:s,addMicrodata:c}=e;return l.createElement("li",(0,a.Z)({},c&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,r.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n})}),t,l.createElement("meta",{itemProp:"position",content:String(s+1)}))}function p(){const e=(0,d.Z)("/");return l.createElement("li",{className:"breadcrumbs__item"},l.createElement(i.Z,{"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:(0,r.Z)("breadcrumbs__link",v.breadcrumbsItemLink),href:e},l.createElement(u,{className:v.breadcrumbHomeIcon})))}function E(){const e=(0,c.s1)(),t=(0,o.Ns)();return e?l.createElement("nav",{className:(0,r.Z)(s.k.docs.docBreadcrumbs,v.breadcrumbsContainer),"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},l.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&l.createElement(p,null),e.map(((t,n)=>{const a=n===e.length-1;return l.createElement(b,{key:n,active:a,index:n,addMicrodata:!!t.href},l.createElement(h,{href:t.href,isLast:a},t.label))})))):null}},5154:(e,t,n)=>{n.r(t),n.d(t,{default:()=>J});var a=n(7294),l=n(1944),r=n(902);const s=a.createContext(null);function c(e){let{children:t,content:n}=e;const l=function(e){return(0,a.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return a.createElement(s.Provider,{value:l},t)}function o(){const e=(0,a.useContext)(s);if(null===e)throw new r.i6("DocProvider");return e}function i(){const{metadata:e,frontMatter:t,assets:n}=o();return a.createElement(l.d,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var d=n(6010),m=n(7524),u=n(49);function v(){const{metadata:e}=o();return a.createElement(u.Z,{previous:e.previous,next:e.next})}var h=n(3120),b=n(4364),p=n(5281),E=n(5999);function f(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n}=e;return a.createElement(E.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:a.createElement("b",null,a.createElement("time",{dateTime:new Date(1e3*t).toISOString()},n))}}," on {date}")}function g(e){let{lastUpdatedBy:t}=e;return a.createElement(E.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:a.createElement("b",null,t)}}," by {user}")}function L(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n,lastUpdatedBy:l}=e;return a.createElement("span",{className:p.k.common.lastUpdated},a.createElement(E.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&n?a.createElement(f,{lastUpdatedAt:t,formattedLastUpdatedAt:n}):"",byUser:l?a.createElement(g,{lastUpdatedBy:l}):""}},"Last updated{atDate}{byUser}"),!1)}var Z=n(4881),N=n(1526);const _="lastUpdated_vwxv";function k(e){return a.createElement("div",{className:(0,d.Z)(p.k.docs.docFooterTagsRow,"row margin-bottom--sm")},a.createElement("div",{className:"col"},a.createElement(N.Z,e)))}function C(e){let{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:l,formattedLastUpdatedAt:r}=e;return a.createElement("div",{className:(0,d.Z)(p.k.docs.docFooterEditMetaRow,"row")},a.createElement("div",{className:"col"},t&&a.createElement(Z.Z,{editUrl:t})),a.createElement("div",{className:(0,d.Z)("col",_)},(n||l)&&a.createElement(L,{lastUpdatedAt:n,formattedLastUpdatedAt:r,lastUpdatedBy:l})))}function T(){const{metadata:e}=o(),{editUrl:t,lastUpdatedAt:n,formattedLastUpdatedAt:l,lastUpdatedBy:r,tags:s}=e,c=s.length>0,i=!!(t||n||r);return c||i?a.createElement("footer",{className:(0,d.Z)(p.k.docs.docFooter,"docusaurus-mt-lg")},c&&a.createElement(k,{tags:s}),i&&a.createElement(C,{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:r,formattedLastUpdatedAt:l})):null}var x=n(6043),H=n(3743),U=n(7462);const y="tocCollapsibleButton_TO0P",A="tocCollapsibleButtonExpanded_MG3E";function w(e){let{collapsed:t,...n}=e;return a.createElement("button",(0,U.Z)({type:"button"},n,{className:(0,d.Z)("clean-btn",y,!t&&A,n.className)}),a.createElement(E.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component"},"On this page"))}const M="tocCollapsible_ETCw",I="tocCollapsibleContent_vkbj",B="tocCollapsibleExpanded_sAul";function V(e){let{toc:t,className:n,minHeadingLevel:l,maxHeadingLevel:r}=e;const{collapsed:s,toggleCollapsed:c}=(0,x.u)({initialState:!0});return a.createElement("div",{className:(0,d.Z)(M,!s&&B,n)},a.createElement(w,{collapsed:s,onClick:c}),a.createElement(x.z,{lazy:!0,className:I,collapsed:s},a.createElement(H.Z,{toc:t,minHeadingLevel:l,maxHeadingLevel:r})))}const O="tocMobile_ITEo";function S(){const{toc:e,frontMatter:t}=o();return a.createElement(V,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,d.Z)(p.k.docs.docTocMobile,O)})}var P=n(9407);function D(){const{toc:e,frontMatter:t}=o();return a.createElement(P.Z,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:p.k.docs.docTocDesktop})}var R=n(2503),z=n(210);function F(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=o();return t.hide_title||void 0!==n?null:e.title}();return a.createElement("div",{className:(0,d.Z)(p.k.docs.docMarkdown,"markdown")},n&&a.createElement("header",null,a.createElement(R.Z,{as:"h1"},n)),a.createElement(z.Z,null,t))}var j=n(1986);const q="docItemContainer_Djhp",G="docItemCol_VOVn";function $(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=o(),n=(0,m.i)(),l=e.hide_table_of_contents,r=!l&&t.length>0;return{hidden:l,mobile:r?a.createElement(S,null):void 0,desktop:!r||"desktop"!==n&&"ssr"!==n?void 0:a.createElement(D,null)}}();return a.createElement("div",{className:"row"},a.createElement("div",{className:(0,d.Z)("col",!n.hidden&&G)},a.createElement(h.Z,null),a.createElement("div",{className:q},a.createElement("article",null,a.createElement(j.Z,null),a.createElement(b.Z,null),n.mobile,a.createElement(F,null,t),a.createElement(T,null)),a.createElement(v,null))),n.desktop&&a.createElement("div",{className:"col col--3"},n.desktop))}function J(e){const t=`docs-doc-id-${e.content.metadata.unversionedId}`,n=e.content;return a.createElement(c,{content:e.content},a.createElement(l.FG,{className:t},a.createElement(i,null),a.createElement($,null,a.createElement(n,null))))}},49:(e,t,n)=>{n.d(t,{Z:()=>c});var a=n(7462),l=n(7294),r=n(5999),s=n(2244);function c(e){const{previous:t,next:n}=e;return l.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,r.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages navigation",description:"The ARIA label for the docs pagination"})},t&&l.createElement(s.Z,(0,a.Z)({},t,{subLabel:l.createElement(r.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),n&&l.createElement(s.Z,(0,a.Z)({},n,{subLabel:l.createElement(r.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4364:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(7294),l=n(6010),r=n(5999),s=n(5281),c=n(4477);function o(e){let{className:t}=e;const n=(0,c.E)();return n.badge?a.createElement("span",{className:(0,l.Z)(t,s.k.docs.docVersionBadge,"badge badge--secondary")},a.createElement(r.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label}},"Version: {versionLabel}")):null}},3120:(e,t,n)=>{n.d(t,{Z:()=>p});var a=n(7294),l=n(6010),r=n(2263),s=n(9960),c=n(5999),o=n(4104),i=n(5281),d=n(373),m=n(4477);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(c.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(c.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function v(e){const t=u[e.versionMetadata.banner];return a.createElement(t,e)}function h(e){let{versionLabel:t,to:n,onClick:l}=e;return a.createElement(c.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:a.createElement("b",null,a.createElement(s.Z,{to:n,onClick:l},a.createElement(c.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function b(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:s}}=(0,r.Z)(),{pluginId:c}=(0,o.gA)({failfast:!0}),{savePreferredVersionName:m}=(0,d.J)(c),{latestDocSuggestion:u,latestVersionSuggestion:b}=(0,o.Jo)(c),p=u??(E=b).docs.find((e=>e.id===E.mainDocId));var E;return a.createElement("div",{className:(0,l.Z)(t,i.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},a.createElement("div",null,a.createElement(v,{siteTitle:s,versionMetadata:n})),a.createElement("div",{className:"margin-top--md"},a.createElement(h,{versionLabel:b.label,to:p.path,onClick:()=>m(b.name)})))}function p(e){let{className:t}=e;const n=(0,m.E)();return n.banner?a.createElement(b,{className:t,versionMetadata:n}):null}},4881:(e,t,n)=>{n.d(t,{Z:()=>d});var a=n(7294),l=n(5999),r=n(5281),s=n(7462),c=n(6010);const o="iconEdit_Z9Sw";function i(e){let{className:t,...n}=e;return a.createElement("svg",(0,s.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,c.Z)(o,t),"aria-hidden":"true"},n),a.createElement("g",null,a.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}function d(e){let{editUrl:t}=e;return a.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:r.k.common.editThisPage},a.createElement(i,null),a.createElement(l.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}},2244:(e,t,n)=>{n.d(t,{Z:()=>s});var a=n(7294),l=n(6010),r=n(9960);function s(e){const{permalink:t,title:n,subLabel:s,isNext:c}=e;return a.createElement(r.Z,{className:(0,l.Z)("pagination-nav__link",c?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},s&&a.createElement("div",{className:"pagination-nav__sublabel"},s),a.createElement("div",{className:"pagination-nav__label"},n))}},9407:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(7462),l=n(7294),r=n(6010),s=n(3743);const c="tableOfContents_bqdL";function o(e){let{className:t,...n}=e;return l.createElement("div",{className:(0,r.Z)(c,"thin-scrollbar",t)},l.createElement(s.Z,(0,a.Z)({},n,{linkClassName:"table-of-contents__link toc-highlight",linkActiveClassName:"table-of-contents__link--active"})))}},3743:(e,t,n)=>{n.d(t,{Z:()=>h});var a=n(7462),l=n(7294),r=n(6668);function s(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...l}=e;n>=0?t[n].children.push(l):a.push(l)})),a}function c(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return t.flatMap((e=>{const t=c({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[{...e,children:t}]:t}))}function o(e){const t=e.getBoundingClientRect();return t.top===t.bottom?o(e.parentNode):t}function i(e,t){let{anchorTopOffset:n}=t;const a=e.find((e=>o(e).top>=n));if(a){return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function m(e){const t=(0,l.useRef)(void 0),n=d();(0,l.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:l,minHeadingLevel:r,maxHeadingLevel:s}=e;function c(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),c=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const a=[];for(let l=t;l<=n;l+=1)a.push(`h${l}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:r,maxHeadingLevel:s}),o=i(c,{anchorTopOffset:n.current}),d=e.find((e=>o&&o.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(l),e.classList.add(l),t.current=e):e.classList.remove(l)}(e,e===d)}))}return document.addEventListener("scroll",c),document.addEventListener("resize",c),c(),()=>{document.removeEventListener("scroll",c),document.removeEventListener("resize",c)}}),[e,n])}function u(e){let{toc:t,className:n,linkClassName:a,isChild:r}=e;return t.length?l.createElement("ul",{className:r?void 0:n},t.map((e=>l.createElement("li",{key:e.id},l.createElement("a",{href:`#${e.id}`,className:a??void 0,dangerouslySetInnerHTML:{__html:e.value}}),l.createElement(u,{isChild:!0,toc:e.children,className:n,linkClassName:a}))))):null}const v=l.memo(u);function h(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:o="table-of-contents__link",linkActiveClassName:i,minHeadingLevel:d,maxHeadingLevel:u,...h}=e;const b=(0,r.L)(),p=d??b.tableOfContents.minHeadingLevel,E=u??b.tableOfContents.maxHeadingLevel,f=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,l.useMemo)((()=>c({toc:s(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}({toc:t,minHeadingLevel:p,maxHeadingLevel:E});return m((0,l.useMemo)((()=>{if(o&&i)return{linkClassName:o,linkActiveClassName:i,minHeadingLevel:p,maxHeadingLevel:E}}),[o,i,p,E])),l.createElement(v,(0,a.Z)({toc:f,className:n,linkClassName:o},h))}},3008:(e,t,n)=>{n.d(t,{Z:()=>i});var a=n(7294),l=n(6010),r=n(9960);const s="tag_zVej",c="tagRegular_sFm0",o="tagWithCount_h2kH";function i(e){let{permalink:t,label:n,count:i}=e;return a.createElement(r.Z,{href:t,className:(0,l.Z)(s,i?o:c)},n,i&&a.createElement("span",null,i))}},1526:(e,t,n)=>{n.d(t,{Z:()=>i});var a=n(7294),l=n(6010),r=n(5999),s=n(3008);const c="tags_jXut",o="tag_QGVx";function i(e){let{tags:t}=e;return a.createElement(a.Fragment,null,a.createElement("b",null,a.createElement(r.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),a.createElement("ul",{className:(0,l.Z)(c,"padding--none","margin-left--sm")},t.map((e=>{let{label:t,permalink:n}=e;return a.createElement("li",{key:n,className:o},a.createElement(s.Z,{label:t,permalink:n}))}))))}}}]); \ No newline at end of file diff --git a/assets/js/17896441.a819a10a.js b/assets/js/17896441.a819a10a.js deleted file mode 100644 index 612d8f7be..000000000 --- a/assets/js/17896441.a819a10a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[7918],{1986:(e,t,n)=>{n.d(t,{Z:()=>E});var a=n(7462),l=n(7294),r=n(6010),s=n(5281),c=n(2802),o=n(8596),i=n(9960),d=n(4996),m=n(5999);function u(e){return l.createElement("svg",(0,a.Z)({viewBox:"0 0 24 24"},e),l.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}const v={breadcrumbsContainer:"breadcrumbsContainer_Z_bl",breadcrumbHomeIcon:"breadcrumbHomeIcon_OVgt"};function h(e){let{children:t,href:n,isLast:a}=e;const r="breadcrumbs__link";return a?l.createElement("span",{className:r,itemProp:"name"},t):n?l.createElement(i.Z,{className:r,href:n,itemProp:"item"},l.createElement("span",{itemProp:"name"},t)):l.createElement("span",{className:r},t)}function b(e){let{children:t,active:n,index:s,addMicrodata:c}=e;return l.createElement("li",(0,a.Z)({},c&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,r.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n})}),t,l.createElement("meta",{itemProp:"position",content:String(s+1)}))}function p(){const e=(0,d.Z)("/");return l.createElement("li",{className:"breadcrumbs__item"},l.createElement(i.Z,{"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:(0,r.Z)("breadcrumbs__link",v.breadcrumbsItemLink),href:e},l.createElement(u,{className:v.breadcrumbHomeIcon})))}function E(){const e=(0,c.s1)(),t=(0,o.Ns)();return e?l.createElement("nav",{className:(0,r.Z)(s.k.docs.docBreadcrumbs,v.breadcrumbsContainer),"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},l.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&l.createElement(p,null),e.map(((t,n)=>{const a=n===e.length-1;return l.createElement(b,{key:n,active:a,index:n,addMicrodata:!!t.href},l.createElement(h,{href:t.href,isLast:a},t.label))})))):null}},5154:(e,t,n)=>{n.r(t),n.d(t,{default:()=>J});var a=n(7294),l=n(1944),r=n(902);const s=a.createContext(null);function c(e){let{children:t,content:n}=e;const l=function(e){return(0,a.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(n);return a.createElement(s.Provider,{value:l},t)}function o(){const e=(0,a.useContext)(s);if(null===e)throw new r.i6("DocProvider");return e}function i(){const{metadata:e,frontMatter:t,assets:n}=o();return a.createElement(l.d,{title:e.title,description:e.description,keywords:t.keywords,image:n.image??t.image})}var d=n(6010),m=n(7524),u=n(49);function v(){const{metadata:e}=o();return a.createElement(u.Z,{previous:e.previous,next:e.next})}var h=n(3120),b=n(4364),p=n(5281),E=n(5999);function f(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n}=e;return a.createElement(E.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:a.createElement("b",null,a.createElement("time",{dateTime:new Date(1e3*t).toISOString()},n))}}," on {date}")}function g(e){let{lastUpdatedBy:t}=e;return a.createElement(E.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:a.createElement("b",null,t)}}," by {user}")}function L(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:n,lastUpdatedBy:l}=e;return a.createElement("span",{className:p.k.common.lastUpdated},a.createElement(E.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&n?a.createElement(f,{lastUpdatedAt:t,formattedLastUpdatedAt:n}):"",byUser:l?a.createElement(g,{lastUpdatedBy:l}):""}},"Last updated{atDate}{byUser}"),!1)}var Z=n(4881),N=n(1526);const _="lastUpdated_vwxv";function k(e){return a.createElement("div",{className:(0,d.Z)(p.k.docs.docFooterTagsRow,"row margin-bottom--sm")},a.createElement("div",{className:"col"},a.createElement(N.Z,e)))}function C(e){let{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:l,formattedLastUpdatedAt:r}=e;return a.createElement("div",{className:(0,d.Z)(p.k.docs.docFooterEditMetaRow,"row")},a.createElement("div",{className:"col"},t&&a.createElement(Z.Z,{editUrl:t})),a.createElement("div",{className:(0,d.Z)("col",_)},(n||l)&&a.createElement(L,{lastUpdatedAt:n,formattedLastUpdatedAt:r,lastUpdatedBy:l})))}function T(){const{metadata:e}=o(),{editUrl:t,lastUpdatedAt:n,formattedLastUpdatedAt:l,lastUpdatedBy:r,tags:s}=e,c=s.length>0,i=!!(t||n||r);return c||i?a.createElement("footer",{className:(0,d.Z)(p.k.docs.docFooter,"docusaurus-mt-lg")},c&&a.createElement(k,{tags:s}),i&&a.createElement(C,{editUrl:t,lastUpdatedAt:n,lastUpdatedBy:r,formattedLastUpdatedAt:l})):null}var x=n(6043),H=n(3743),U=n(7462);const y="tocCollapsibleButton_TO0P",A="tocCollapsibleButtonExpanded_MG3E";function w(e){let{collapsed:t,...n}=e;return a.createElement("button",(0,U.Z)({type:"button"},n,{className:(0,d.Z)("clean-btn",y,!t&&A,n.className)}),a.createElement(E.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component"},"On this page"))}const M="tocCollapsible_ETCw",I="tocCollapsibleContent_vkbj",B="tocCollapsibleExpanded_sAul";function V(e){let{toc:t,className:n,minHeadingLevel:l,maxHeadingLevel:r}=e;const{collapsed:s,toggleCollapsed:c}=(0,x.u)({initialState:!0});return a.createElement("div",{className:(0,d.Z)(M,!s&&B,n)},a.createElement(w,{collapsed:s,onClick:c}),a.createElement(x.z,{lazy:!0,className:I,collapsed:s},a.createElement(H.Z,{toc:t,minHeadingLevel:l,maxHeadingLevel:r})))}const O="tocMobile_ITEo";function S(){const{toc:e,frontMatter:t}=o();return a.createElement(V,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,d.Z)(p.k.docs.docTocMobile,O)})}var P=n(9407);function D(){const{toc:e,frontMatter:t}=o();return a.createElement(P.Z,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:p.k.docs.docTocDesktop})}var R=n(2503),z=n(210);function F(e){let{children:t}=e;const n=function(){const{metadata:e,frontMatter:t,contentTitle:n}=o();return t.hide_title||void 0!==n?null:e.title}();return a.createElement("div",{className:(0,d.Z)(p.k.docs.docMarkdown,"markdown")},n&&a.createElement("header",null,a.createElement(R.Z,{as:"h1"},n)),a.createElement(z.Z,null,t))}var j=n(1986);const q="docItemContainer_Djhp",G="docItemCol_VOVn";function $(e){let{children:t}=e;const n=function(){const{frontMatter:e,toc:t}=o(),n=(0,m.i)(),l=e.hide_table_of_contents,r=!l&&t.length>0;return{hidden:l,mobile:r?a.createElement(S,null):void 0,desktop:!r||"desktop"!==n&&"ssr"!==n?void 0:a.createElement(D,null)}}();return a.createElement("div",{className:"row"},a.createElement("div",{className:(0,d.Z)("col",!n.hidden&&G)},a.createElement(h.Z,null),a.createElement("div",{className:q},a.createElement("article",null,a.createElement(j.Z,null),a.createElement(b.Z,null),n.mobile,a.createElement(F,null,t),a.createElement(T,null)),a.createElement(v,null))),n.desktop&&a.createElement("div",{className:"col col--3"},n.desktop))}function J(e){const t=`docs-doc-id-${e.content.metadata.unversionedId}`,n=e.content;return a.createElement(c,{content:e.content},a.createElement(l.FG,{className:t},a.createElement(i,null),a.createElement($,null,a.createElement(n,null))))}},49:(e,t,n)=>{n.d(t,{Z:()=>c});var a=n(7462),l=n(7294),r=n(5999),s=n(2244);function c(e){const{previous:t,next:n}=e;return l.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,r.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages navigation",description:"The ARIA label for the docs pagination"})},t&&l.createElement(s.Z,(0,a.Z)({},t,{subLabel:l.createElement(r.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc"},"Previous")})),n&&l.createElement(s.Z,(0,a.Z)({},n,{subLabel:l.createElement(r.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc"},"Next"),isNext:!0})))}},4364:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(7294),l=n(6010),r=n(5999),s=n(5281),c=n(4477);function o(e){let{className:t}=e;const n=(0,c.E)();return n.badge?a.createElement("span",{className:(0,l.Z)(t,s.k.docs.docVersionBadge,"badge badge--secondary")},a.createElement(r.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:n.label}},"Version: {versionLabel}")):null}},3120:(e,t,n)=>{n.d(t,{Z:()=>p});var a=n(7294),l=n(6010),r=n(2263),s=n(9960),c=n(5999),o=n(4104),i=n(5281),d=n(373),m=n(4477);const u={unreleased:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(c.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is unreleased documentation for {siteTitle} {versionLabel} version.")},unmaintained:function(e){let{siteTitle:t,versionMetadata:n}=e;return a.createElement(c.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:a.createElement("b",null,n.label)}},"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained.")}};function v(e){const t=u[e.versionMetadata.banner];return a.createElement(t,e)}function h(e){let{versionLabel:t,to:n,onClick:l}=e;return a.createElement(c.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:a.createElement("b",null,a.createElement(s.Z,{to:n,onClick:l},a.createElement(c.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label"},"latest version")))}},"For up-to-date documentation, see the {latestVersionLink} ({versionLabel}).")}function b(e){let{className:t,versionMetadata:n}=e;const{siteConfig:{title:s}}=(0,r.Z)(),{pluginId:c}=(0,o.gA)({failfast:!0}),{savePreferredVersionName:m}=(0,d.J)(c),{latestDocSuggestion:u,latestVersionSuggestion:b}=(0,o.Jo)(c),p=u??(E=b).docs.find((e=>e.id===E.mainDocId));var E;return a.createElement("div",{className:(0,l.Z)(t,i.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert"},a.createElement("div",null,a.createElement(v,{siteTitle:s,versionMetadata:n})),a.createElement("div",{className:"margin-top--md"},a.createElement(h,{versionLabel:b.label,to:p.path,onClick:()=>m(b.name)})))}function p(e){let{className:t}=e;const n=(0,m.E)();return n.banner?a.createElement(b,{className:t,versionMetadata:n}):null}},4881:(e,t,n)=>{n.d(t,{Z:()=>d});var a=n(7294),l=n(5999),r=n(5281),s=n(7462),c=n(6010);const o="iconEdit_Z9Sw";function i(e){let{className:t,...n}=e;return a.createElement("svg",(0,s.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,c.Z)(o,t),"aria-hidden":"true"},n),a.createElement("g",null,a.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}function d(e){let{editUrl:t}=e;return a.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:r.k.common.editThisPage},a.createElement(i,null),a.createElement(l.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}},2244:(e,t,n)=>{n.d(t,{Z:()=>s});var a=n(7294),l=n(6010),r=n(9960);function s(e){const{permalink:t,title:n,subLabel:s,isNext:c}=e;return a.createElement(r.Z,{className:(0,l.Z)("pagination-nav__link",c?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},s&&a.createElement("div",{className:"pagination-nav__sublabel"},s),a.createElement("div",{className:"pagination-nav__label"},n))}},9407:(e,t,n)=>{n.d(t,{Z:()=>o});var a=n(7462),l=n(7294),r=n(6010),s=n(3743);const c="tableOfContents_bqdL";function o(e){let{className:t,...n}=e;return l.createElement("div",{className:(0,r.Z)(c,"thin-scrollbar",t)},l.createElement(s.Z,(0,a.Z)({},n,{linkClassName:"table-of-contents__link toc-highlight",linkActiveClassName:"table-of-contents__link--active"})))}},3743:(e,t,n)=>{n.d(t,{Z:()=>h});var a=n(7462),l=n(7294),r=n(6668);function s(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...l}=e;n>=0?t[n].children.push(l):a.push(l)})),a}function c(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return t.flatMap((e=>{const t=c({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[{...e,children:t}]:t}))}function o(e){const t=e.getBoundingClientRect();return t.top===t.bottom?o(e.parentNode):t}function i(e,t){let{anchorTopOffset:n}=t;const a=e.find((e=>o(e).top>=n));if(a){return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function m(e){const t=(0,l.useRef)(void 0),n=d();(0,l.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:l,minHeadingLevel:r,maxHeadingLevel:s}=e;function c(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),c=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const a=[];for(let l=t;l<=n;l+=1)a.push(`h${l}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:r,maxHeadingLevel:s}),o=i(c,{anchorTopOffset:n.current}),d=e.find((e=>o&&o.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(l),e.classList.add(l),t.current=e):e.classList.remove(l)}(e,e===d)}))}return document.addEventListener("scroll",c),document.addEventListener("resize",c),c(),()=>{document.removeEventListener("scroll",c),document.removeEventListener("resize",c)}}),[e,n])}function u(e){let{toc:t,className:n,linkClassName:a,isChild:r}=e;return t.length?l.createElement("ul",{className:r?void 0:n},t.map((e=>l.createElement("li",{key:e.id},l.createElement("a",{href:`#${e.id}`,className:a??void 0,dangerouslySetInnerHTML:{__html:e.value}}),l.createElement(u,{isChild:!0,toc:e.children,className:n,linkClassName:a}))))):null}const v=l.memo(u);function h(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:o="table-of-contents__link",linkActiveClassName:i,minHeadingLevel:d,maxHeadingLevel:u,...h}=e;const b=(0,r.L)(),p=d??b.tableOfContents.minHeadingLevel,E=u??b.tableOfContents.maxHeadingLevel,f=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,l.useMemo)((()=>c({toc:s(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}({toc:t,minHeadingLevel:p,maxHeadingLevel:E});return m((0,l.useMemo)((()=>{if(o&&i)return{linkClassName:o,linkActiveClassName:i,minHeadingLevel:p,maxHeadingLevel:E}}),[o,i,p,E])),l.createElement(v,(0,a.Z)({toc:f,className:n,linkClassName:o},h))}},3008:(e,t,n)=>{n.d(t,{Z:()=>i});var a=n(7294),l=n(6010),r=n(9960);const s="tag_zVej",c="tagRegular_sFm0",o="tagWithCount_h2kH";function i(e){let{permalink:t,label:n,count:i}=e;return a.createElement(r.Z,{href:t,className:(0,l.Z)(s,i?o:c)},n,i&&a.createElement("span",null,i))}},1526:(e,t,n)=>{n.d(t,{Z:()=>i});var a=n(7294),l=n(6010),r=n(5999),s=n(3008);const c="tags_jXut",o="tag_QGVx";function i(e){let{tags:t}=e;return a.createElement(a.Fragment,null,a.createElement("b",null,a.createElement(r.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),a.createElement("ul",{className:(0,l.Z)(c,"padding--none","margin-left--sm")},t.map((e=>{let{label:t,permalink:n}=e;return a.createElement("li",{key:n,className:o},a.createElement(s.Z,{label:t,permalink:n}))}))))}}}]); \ No newline at end of file diff --git a/assets/js/1be78505.36f4530a.js b/assets/js/1be78505.36f4530a.js new file mode 100644 index 000000000..b138b0f26 --- /dev/null +++ b/assets/js/1be78505.36f4530a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[514,972],{9963:(e,t,n)=>{n.r(t),n.d(t,{default:()=>Ce});var a=n(7294),l=n(6010),o=n(1944),r=n(5281),c=n(2802),i=n(3320),s=n(4477),d=n(1116),m=n(2185),u=n(5999),b=n(2466),p=n(5936);const h="backToTopButton_sjWU",E="backToTopButtonShow_xfvO";function f(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,l]=(0,a.useState)(!1),o=(0,a.useRef)(!1),{startScroll:r,cancelScroll:c}=(0,b.Ct)();return(0,b.RF)(((e,n)=>{let{scrollY:a}=e;const r=null==n?void 0:n.scrollY;r&&(o.current?o.current=!1:a>=r?(c(),l(!1)):a{e.location.hash&&(o.current=!0,l(!1))})),{shown:n,scrollToTop:()=>r(0)}}({threshold:300});return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,l.Z)("clean-btn",r.k.common.backToTopButton,h,e&&E),type:"button",onClick:t})}var _=n(6775),g=n(7524),v=n(6668),k=n(1327),C=n(7462);function I(e){return a.createElement("svg",(0,C.Z)({width:"20",height:"20","aria-hidden":"true"},e),a.createElement("g",{fill:"#7a7a7a"},a.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),a.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})))}const N="collapseSidebarButton_PEFL",S="collapseSidebarButtonIcon_kv0_";function Z(e){let{onClick:t}=e;return a.createElement("button",{type:"button",title:(0,u.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,l.Z)("button button--secondary button--outline",N),onClick:t},a.createElement(I,{className:S}))}var y=n(9689),T=n(902);const x=Symbol("EmptyContext"),L=a.createContext(x);function w(e){let{children:t}=e;const[n,l]=(0,a.useState)(null),o=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:l})),[n]);return a.createElement(L.Provider,{value:o},t)}var M=n(6043),F=n(8596),A=n(9960),B=n(2389);function H(e){let{categoryLabel:t,onClick:n}=e;return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel",message:"Toggle the collapsible sidebar category '{label}'",description:"The ARIA label to toggle the collapsible sidebar category"},{label:t}),type:"button",className:"clean-btn menu__caret",onClick:n})}function P(e){let{item:t,onItemClick:n,activePath:o,level:i,index:s,...d}=e;const{items:m,label:u,collapsible:b,className:p,href:h}=t,{docs:{sidebar:{autoCollapseCategories:E}}}=(0,v.L)(),f=function(e){const t=(0,B.Z)();return(0,a.useMemo)((()=>e.href?e.href:!t&&e.collapsible?(0,c.Wl)(e):void 0),[e,t])}(t),_=(0,c._F)(t,o),g=(0,F.Mg)(h,o),{collapsed:k,setCollapsed:I}=(0,M.u)({initialState:()=>!!b&&(!_&&t.collapsed)}),{expandedItem:N,setExpandedItem:S}=function(){const e=(0,a.useContext)(L);if(e===x)throw new T.i6("DocSidebarItemsExpandedStateProvider");return e}(),Z=function(e){void 0===e&&(e=!k),S(e?null:s),I(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:l}=e;const o=(0,T.D9)(t);(0,a.useEffect)((()=>{t&&!o&&n&&l(!1)}),[t,o,n,l])}({isActive:_,collapsed:k,updateCollapsed:Z}),(0,a.useEffect)((()=>{b&&N&&N!==s&&E&&I(!0)}),[b,N,s,I,E]),a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemCategory,r.k.docs.docSidebarItemCategoryLevel(i),"menu__list-item",{"menu__list-item--collapsed":k},p)},a.createElement("div",{className:(0,l.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":g})},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",{"menu__link--sublist":b,"menu__link--sublist-caret":!h&&b,"menu__link--active":_}),onClick:b?e=>{null==n||n(t),h?Z(!1):(e.preventDefault(),Z())}:()=>{null==n||n(t)},"aria-current":g?"page":void 0,"aria-expanded":b?!k:void 0,href:b?f??"#":f},d),u),h&&b&&a.createElement(H,{categoryLabel:u,onClick:e=>{e.preventDefault(),Z()}})),a.createElement(M.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:k},a.createElement(G,{items:m,tabIndex:k?-1:0,onItemClick:n,activePath:o,level:i+1})))}var W=n(3919),D=n(9471);const R="menuExternalLink_NmtK";function z(e){let{item:t,onItemClick:n,activePath:o,level:i,index:s,...d}=e;const{href:m,label:u,className:b}=t,p=(0,c._F)(t,o),h=(0,W.Z)(m);return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(i),"menu__list-item",b),key:u},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",!h&&R,{"menu__link--active":p}),"aria-current":p?"page":void 0,to:m},h&&{onClick:n?()=>n(t):void 0},d),u,!h&&a.createElement(D.Z,null)))}const K="menuHtmlItem_M9Kj";function U(e){let{item:t,level:n,index:o}=e;const{value:c,defaultStyle:i,className:s}=t;return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(n),i&&[K,"menu__list-item"],s),key:o,dangerouslySetInnerHTML:{__html:c}})}function V(e){let{item:t,...n}=e;switch(t.type){case"category":return a.createElement(P,(0,C.Z)({item:t},n));case"html":return a.createElement(U,(0,C.Z)({item:t},n));default:return a.createElement(z,(0,C.Z)({item:t},n))}}function j(e){let{items:t,...n}=e;return a.createElement(w,null,t.map(((e,t)=>a.createElement(V,(0,C.Z)({key:t,item:e,index:t},n)))))}const G=(0,a.memo)(j),Y="menu_SIkG",q="menuWithAnnouncementBar_GW3s";function O(e){let{path:t,sidebar:n,className:o}=e;const c=function(){const{isActive:e}=(0,y.nT)(),[t,n]=(0,a.useState)(e);return(0,b.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return a.createElement("nav",{className:(0,l.Z)("menu thin-scrollbar",Y,c&&q,o)},a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(G,{items:n,activePath:t,level:1})))}const X="sidebar_njMd",J="sidebarWithHideableNavbar_wUlq",Q="sidebarHidden_VK0M",$="sidebarLogo_isFc";function ee(e){let{path:t,sidebar:n,onCollapse:o,isHidden:r}=e;const{navbar:{hideOnScroll:c},docs:{sidebar:{hideable:i}}}=(0,v.L)();return a.createElement("div",{className:(0,l.Z)(X,c&&J,r&&Q)},c&&a.createElement(k.Z,{tabIndex:-1,className:$}),a.createElement(O,{path:t,sidebar:n}),i&&a.createElement(Z,{onClick:o}))}const te=a.memo(ee);var ne=n(3102),ae=n(2961);const le=e=>{let{sidebar:t,path:n}=e;const o=(0,ae.e)();return a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(G,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&o.toggle(),"link"===e.type&&o.toggle()},level:1}))};function oe(e){return a.createElement(ne.Zo,{component:le,props:e})}const re=a.memo(oe);function ce(e){const t=(0,g.i)(),n="desktop"===t||"ssr"===t,l="mobile"===t;return a.createElement(a.Fragment,null,n&&a.createElement(te,e),l&&a.createElement(re,e))}const ie="expandButton_m80_",se="expandButtonIcon_BlDH";function de(e){let{toggleSidebar:t}=e;return a.createElement("div",{className:ie,title:(0,u.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t},a.createElement(I,{className:se}))}const me="docSidebarContainer_b6E3",ue="docSidebarContainerHidden_b3ry";function be(e){let{children:t}=e;const n=(0,d.V)();return a.createElement(a.Fragment,{key:(null==n?void 0:n.name)??"noSidebar"},t)}function pe(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:o}=e;const{pathname:c}=(0,_.TH)(),[i,s]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{i&&s(!1),o((e=>!e))}),[o,i]);return a.createElement("aside",{className:(0,l.Z)(r.k.docs.docSidebarContainer,me,n&&ue),onTransitionEnd:e=>{e.currentTarget.classList.contains(me)&&n&&s(!0)}},a.createElement(be,null,a.createElement(ce,{sidebar:t,path:c,onCollapse:d,isHidden:i})),i&&a.createElement(de,{toggleSidebar:d}))}const he={docMainContainer:"docMainContainer_gTbr",docMainContainerEnhanced:"docMainContainerEnhanced_Uz_u",docItemWrapperEnhanced:"docItemWrapperEnhanced_czyv"};function Ee(e){let{hiddenSidebarContainer:t,children:n}=e;const o=(0,d.V)();return a.createElement("main",{className:(0,l.Z)(he.docMainContainer,(t||!o)&&he.docMainContainerEnhanced)},a.createElement("div",{className:(0,l.Z)("container padding-top--md padding-bottom--lg",he.docItemWrapper,t&&he.docItemWrapperEnhanced)},n))}const fe="docPage__5DB",_e="docsWrapper_BCFX";function ge(e){let{children:t}=e;const n=(0,d.V)(),[l,o]=(0,a.useState)(!1);return a.createElement(m.Z,{wrapperClassName:_e},a.createElement(f,null),a.createElement("div",{className:fe},n&&a.createElement(pe,{sidebar:n.items,hiddenSidebarContainer:l,setHiddenSidebarContainer:o}),a.createElement(Ee,{hiddenSidebarContainer:l},t)))}var ve=n(4972),ke=n(197);function Ce(e){const{versionMetadata:t}=e,n=(0,c.hI)(e);if(!n)return a.createElement(ve.default,null);const{docElement:m,sidebarName:u,sidebarItems:b}=n;return a.createElement(a.Fragment,null,a.createElement(ke.Z,{version:t.version,tag:(0,i.os)(t.pluginId,t.version)}),a.createElement(o.FG,{className:(0,l.Z)(r.k.wrapper.docsPages,r.k.page.docsDocPage,e.versionMetadata.className)},a.createElement(s.q,{version:t},a.createElement(d.b,{name:u,items:b},a.createElement(ge,null,m)))))}},4972:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var a=n(7294),l=n(5999),o=n(1944),r=n(2185);function c(){return a.createElement(a.Fragment,null,a.createElement(o.d,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(r.Z,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file diff --git a/assets/js/1be78505.fcc492de.js b/assets/js/1be78505.fcc492de.js deleted file mode 100644 index 8b226914d..000000000 --- a/assets/js/1be78505.fcc492de.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[9514,4972],{9963:(e,t,n)=>{n.r(t),n.d(t,{default:()=>Ce});var a=n(7294),l=n(6010),o=n(1944),r=n(5281),c=n(2802),i=n(3320),s=n(4477),d=n(1116),m=n(2185),u=n(5999),b=n(2466),p=n(5936);const h="backToTopButton_sjWU",E="backToTopButtonShow_xfvO";function f(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,l]=(0,a.useState)(!1),o=(0,a.useRef)(!1),{startScroll:r,cancelScroll:c}=(0,b.Ct)();return(0,b.RF)(((e,n)=>{let{scrollY:a}=e;const r=null==n?void 0:n.scrollY;r&&(o.current?o.current=!1:a>=r?(c(),l(!1)):a{e.location.hash&&(o.current=!0,l(!1))})),{shown:n,scrollToTop:()=>r(0)}}({threshold:300});return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,l.Z)("clean-btn",r.k.common.backToTopButton,h,e&&E),type:"button",onClick:t})}var _=n(6775),g=n(7524),v=n(6668),k=n(1327),C=n(7462);function I(e){return a.createElement("svg",(0,C.Z)({width:"20",height:"20","aria-hidden":"true"},e),a.createElement("g",{fill:"#7a7a7a"},a.createElement("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),a.createElement("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})))}const N="collapseSidebarButton_PEFL",S="collapseSidebarButtonIcon_kv0_";function Z(e){let{onClick:t}=e;return a.createElement("button",{type:"button",title:(0,u.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,l.Z)("button button--secondary button--outline",N),onClick:t},a.createElement(I,{className:S}))}var y=n(9689),T=n(902);const x=Symbol("EmptyContext"),L=a.createContext(x);function w(e){let{children:t}=e;const[n,l]=(0,a.useState)(null),o=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:l})),[n]);return a.createElement(L.Provider,{value:o},t)}var M=n(6043),F=n(8596),A=n(9960),B=n(2389);function H(e){let{categoryLabel:t,onClick:n}=e;return a.createElement("button",{"aria-label":(0,u.I)({id:"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel",message:"Toggle the collapsible sidebar category '{label}'",description:"The ARIA label to toggle the collapsible sidebar category"},{label:t}),type:"button",className:"clean-btn menu__caret",onClick:n})}function P(e){let{item:t,onItemClick:n,activePath:o,level:i,index:s,...d}=e;const{items:m,label:u,collapsible:b,className:p,href:h}=t,{docs:{sidebar:{autoCollapseCategories:E}}}=(0,v.L)(),f=function(e){const t=(0,B.Z)();return(0,a.useMemo)((()=>e.href?e.href:!t&&e.collapsible?(0,c.Wl)(e):void 0),[e,t])}(t),_=(0,c._F)(t,o),g=(0,F.Mg)(h,o),{collapsed:k,setCollapsed:I}=(0,M.u)({initialState:()=>!!b&&(!_&&t.collapsed)}),{expandedItem:N,setExpandedItem:S}=function(){const e=(0,a.useContext)(L);if(e===x)throw new T.i6("DocSidebarItemsExpandedStateProvider");return e}(),Z=function(e){void 0===e&&(e=!k),S(e?null:s),I(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:l}=e;const o=(0,T.D9)(t);(0,a.useEffect)((()=>{t&&!o&&n&&l(!1)}),[t,o,n,l])}({isActive:_,collapsed:k,updateCollapsed:Z}),(0,a.useEffect)((()=>{b&&N&&N!==s&&E&&I(!0)}),[b,N,s,I,E]),a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemCategory,r.k.docs.docSidebarItemCategoryLevel(i),"menu__list-item",{"menu__list-item--collapsed":k},p)},a.createElement("div",{className:(0,l.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":g})},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",{"menu__link--sublist":b,"menu__link--sublist-caret":!h&&b,"menu__link--active":_}),onClick:b?e=>{null==n||n(t),h?Z(!1):(e.preventDefault(),Z())}:()=>{null==n||n(t)},"aria-current":g?"page":void 0,"aria-expanded":b?!k:void 0,href:b?f??"#":f},d),u),h&&b&&a.createElement(H,{categoryLabel:u,onClick:e=>{e.preventDefault(),Z()}})),a.createElement(M.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:k},a.createElement(G,{items:m,tabIndex:k?-1:0,onItemClick:n,activePath:o,level:i+1})))}var W=n(3919),D=n(9471);const R="menuExternalLink_NmtK";function z(e){let{item:t,onItemClick:n,activePath:o,level:i,index:s,...d}=e;const{href:m,label:u,className:b}=t,p=(0,c._F)(t,o),h=(0,W.Z)(m);return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(i),"menu__list-item",b),key:u},a.createElement(A.Z,(0,C.Z)({className:(0,l.Z)("menu__link",!h&&R,{"menu__link--active":p}),"aria-current":p?"page":void 0,to:m},h&&{onClick:n?()=>n(t):void 0},d),u,!h&&a.createElement(D.Z,null)))}const K="menuHtmlItem_M9Kj";function U(e){let{item:t,level:n,index:o}=e;const{value:c,defaultStyle:i,className:s}=t;return a.createElement("li",{className:(0,l.Z)(r.k.docs.docSidebarItemLink,r.k.docs.docSidebarItemLinkLevel(n),i&&[K,"menu__list-item"],s),key:o,dangerouslySetInnerHTML:{__html:c}})}function V(e){let{item:t,...n}=e;switch(t.type){case"category":return a.createElement(P,(0,C.Z)({item:t},n));case"html":return a.createElement(U,(0,C.Z)({item:t},n));default:return a.createElement(z,(0,C.Z)({item:t},n))}}function j(e){let{items:t,...n}=e;return a.createElement(w,null,t.map(((e,t)=>a.createElement(V,(0,C.Z)({key:t,item:e,index:t},n)))))}const G=(0,a.memo)(j),Y="menu_SIkG",q="menuWithAnnouncementBar_GW3s";function O(e){let{path:t,sidebar:n,className:o}=e;const c=function(){const{isActive:e}=(0,y.nT)(),[t,n]=(0,a.useState)(e);return(0,b.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return a.createElement("nav",{className:(0,l.Z)("menu thin-scrollbar",Y,c&&q,o)},a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(G,{items:n,activePath:t,level:1})))}const X="sidebar_njMd",J="sidebarWithHideableNavbar_wUlq",Q="sidebarHidden_VK0M",$="sidebarLogo_isFc";function ee(e){let{path:t,sidebar:n,onCollapse:o,isHidden:r}=e;const{navbar:{hideOnScroll:c},docs:{sidebar:{hideable:i}}}=(0,v.L)();return a.createElement("div",{className:(0,l.Z)(X,c&&J,r&&Q)},c&&a.createElement(k.Z,{tabIndex:-1,className:$}),a.createElement(O,{path:t,sidebar:n}),i&&a.createElement(Z,{onClick:o}))}const te=a.memo(ee);var ne=n(3102),ae=n(2961);const le=e=>{let{sidebar:t,path:n}=e;const o=(0,ae.e)();return a.createElement("ul",{className:(0,l.Z)(r.k.docs.docSidebarMenu,"menu__list")},a.createElement(G,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&o.toggle(),"link"===e.type&&o.toggle()},level:1}))};function oe(e){return a.createElement(ne.Zo,{component:le,props:e})}const re=a.memo(oe);function ce(e){const t=(0,g.i)(),n="desktop"===t||"ssr"===t,l="mobile"===t;return a.createElement(a.Fragment,null,n&&a.createElement(te,e),l&&a.createElement(re,e))}const ie="expandButton_m80_",se="expandButtonIcon_BlDH";function de(e){let{toggleSidebar:t}=e;return a.createElement("div",{className:ie,title:(0,u.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,u.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t},a.createElement(I,{className:se}))}const me="docSidebarContainer_b6E3",ue="docSidebarContainerHidden_b3ry";function be(e){let{children:t}=e;const n=(0,d.V)();return a.createElement(a.Fragment,{key:(null==n?void 0:n.name)??"noSidebar"},t)}function pe(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:o}=e;const{pathname:c}=(0,_.TH)(),[i,s]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{i&&s(!1),o((e=>!e))}),[o,i]);return a.createElement("aside",{className:(0,l.Z)(r.k.docs.docSidebarContainer,me,n&&ue),onTransitionEnd:e=>{e.currentTarget.classList.contains(me)&&n&&s(!0)}},a.createElement(be,null,a.createElement(ce,{sidebar:t,path:c,onCollapse:d,isHidden:i})),i&&a.createElement(de,{toggleSidebar:d}))}const he={docMainContainer:"docMainContainer_gTbr",docMainContainerEnhanced:"docMainContainerEnhanced_Uz_u",docItemWrapperEnhanced:"docItemWrapperEnhanced_czyv"};function Ee(e){let{hiddenSidebarContainer:t,children:n}=e;const o=(0,d.V)();return a.createElement("main",{className:(0,l.Z)(he.docMainContainer,(t||!o)&&he.docMainContainerEnhanced)},a.createElement("div",{className:(0,l.Z)("container padding-top--md padding-bottom--lg",he.docItemWrapper,t&&he.docItemWrapperEnhanced)},n))}const fe="docPage__5DB",_e="docsWrapper_BCFX";function ge(e){let{children:t}=e;const n=(0,d.V)(),[l,o]=(0,a.useState)(!1);return a.createElement(m.Z,{wrapperClassName:_e},a.createElement(f,null),a.createElement("div",{className:fe},n&&a.createElement(pe,{sidebar:n.items,hiddenSidebarContainer:l,setHiddenSidebarContainer:o}),a.createElement(Ee,{hiddenSidebarContainer:l},t)))}var ve=n(4972),ke=n(197);function Ce(e){const{versionMetadata:t}=e,n=(0,c.hI)(e);if(!n)return a.createElement(ve.default,null);const{docElement:m,sidebarName:u,sidebarItems:b}=n;return a.createElement(a.Fragment,null,a.createElement(ke.Z,{version:t.version,tag:(0,i.os)(t.pluginId,t.version)}),a.createElement(o.FG,{className:(0,l.Z)(r.k.wrapper.docsPages,r.k.page.docsDocPage,e.versionMetadata.className)},a.createElement(s.q,{version:t},a.createElement(d.b,{name:u,items:b},a.createElement(ge,null,m)))))}},4972:(e,t,n)=>{n.r(t),n.d(t,{default:()=>c});var a=n(7294),l=n(5999),o=n(1944),r=n(2185);function c(){return a.createElement(a.Fragment,null,a.createElement(o.d,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),a.createElement(r.Z,null,a.createElement("main",{className:"container margin-vert--xl"},a.createElement("div",{className:"row"},a.createElement("div",{className:"col col--6 col--offset-3"},a.createElement("h1",{className:"hero__title"},a.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),a.createElement("p",null,a.createElement(l.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file diff --git a/assets/js/1c9918a6.be181b40.js b/assets/js/1c9918a6.be181b40.js deleted file mode 100644 index f92076707..000000000 --- a/assets/js/1c9918a6.be181b40.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[5832],{4469:a=>{a.exports=JSON.parse('{"name":"docusaurus-plugin-content-blog","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/1c9918a6.e3d2b84b.js b/assets/js/1c9918a6.e3d2b84b.js new file mode 100644 index 000000000..926812bbf --- /dev/null +++ b/assets/js/1c9918a6.e3d2b84b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[832],{4469:a=>{a.exports=JSON.parse('{"name":"docusaurus-plugin-content-blog","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/1f391b9e.23cf659b.js b/assets/js/1f391b9e.23cf659b.js new file mode 100644 index 000000000..1120185cf --- /dev/null +++ b/assets/js/1f391b9e.23cf659b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[85],{4247:(e,n,t)=>{t.r(n),t.d(n,{default:()=>d});var a=t(7294),l=t(6010),r=t(1944),c=t(5281),i=t(2185),o=t(210),s=t(9407);const m="mdxPageWrapper_j9I6";function d(e){const{content:n}=e,{metadata:{title:t,description:d,frontMatter:u}}=n,{wrapperClassName:f,hide_table_of_contents:v}=u;return a.createElement(r.FG,{className:(0,l.Z)(f??c.k.wrapper.mdxPages,c.k.page.mdxPage)},a.createElement(r.d,{title:t,description:d}),a.createElement(i.Z,null,a.createElement("main",{className:"container container--fluid margin-vert--lg"},a.createElement("div",{className:(0,l.Z)("row",m)},a.createElement("div",{className:(0,l.Z)("col",!v&&"col--8")},a.createElement("article",null,a.createElement(o.Z,null,a.createElement(n,null)))),!v&&n.toc.length>0&&a.createElement("div",{className:"col col--2"},a.createElement(s.Z,{toc:n.toc,minHeadingLevel:u.toc_min_heading_level,maxHeadingLevel:u.toc_max_heading_level}))))))}},9407:(e,n,t)=>{t.d(n,{Z:()=>o});var a=t(7462),l=t(7294),r=t(6010),c=t(3743);const i="tableOfContents_bqdL";function o(e){let{className:n,...t}=e;return l.createElement("div",{className:(0,r.Z)(i,"thin-scrollbar",n)},l.createElement(c.Z,(0,a.Z)({},t,{linkClassName:"table-of-contents__link toc-highlight",linkActiveClassName:"table-of-contents__link--active"})))}},3743:(e,n,t)=>{t.d(n,{Z:()=>v});var a=t(7462),l=t(7294),r=t(6668);function c(e){const n=e.map((e=>({...e,parentIndex:-1,children:[]}))),t=Array(7).fill(-1);n.forEach(((e,n)=>{const a=t.slice(2,e.level);e.parentIndex=Math.max(...a),t[e.level]=n}));const a=[];return n.forEach((e=>{const{parentIndex:t,...l}=e;t>=0?n[t].children.push(l):a.push(l)})),a}function i(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:a}=e;return n.flatMap((e=>{const n=i({toc:e.children,minHeadingLevel:t,maxHeadingLevel:a});return function(e){return e.level>=t&&e.level<=a}(e)?[{...e,children:n}]:n}))}function o(e){const n=e.getBoundingClientRect();return n.top===n.bottom?o(e.parentNode):n}function s(e,n){let{anchorTopOffset:t}=n;const a=e.find((e=>o(e).top>=t));if(a){return function(e){return e.top>0&&e.bottom{e.current=n?0:document.querySelector(".navbar").clientHeight}),[n]),e}function d(e){const n=(0,l.useRef)(void 0),t=m();(0,l.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:l,minHeadingLevel:r,maxHeadingLevel:c}=e;function i(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),i=function(e){let{minHeadingLevel:n,maxHeadingLevel:t}=e;const a=[];for(let l=n;l<=t;l+=1)a.push(`h${l}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:r,maxHeadingLevel:c}),o=s(i,{anchorTopOffset:t.current}),m=e.find((e=>o&&o.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,t){t?(n.current&&n.current!==e&&n.current.classList.remove(l),e.classList.add(l),n.current=e):e.classList.remove(l)}(e,e===m)}))}return document.addEventListener("scroll",i),document.addEventListener("resize",i),i(),()=>{document.removeEventListener("scroll",i),document.removeEventListener("resize",i)}}),[e,t])}function u(e){let{toc:n,className:t,linkClassName:a,isChild:r}=e;return n.length?l.createElement("ul",{className:r?void 0:t},n.map((e=>l.createElement("li",{key:e.id},l.createElement("a",{href:`#${e.id}`,className:a??void 0,dangerouslySetInnerHTML:{__html:e.value}}),l.createElement(u,{isChild:!0,toc:e.children,className:t,linkClassName:a}))))):null}const f=l.memo(u);function v(e){let{toc:n,className:t="table-of-contents table-of-contents__left-border",linkClassName:o="table-of-contents__link",linkActiveClassName:s,minHeadingLevel:m,maxHeadingLevel:u,...v}=e;const g=(0,r.L)(),h=m??g.tableOfContents.minHeadingLevel,L=u??g.tableOfContents.maxHeadingLevel,p=function(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:a}=e;return(0,l.useMemo)((()=>i({toc:c(n),minHeadingLevel:t,maxHeadingLevel:a})),[n,t,a])}({toc:n,minHeadingLevel:h,maxHeadingLevel:L});return d((0,l.useMemo)((()=>{if(o&&s)return{linkClassName:o,linkActiveClassName:s,minHeadingLevel:h,maxHeadingLevel:L}}),[o,s,h,L])),l.createElement(f,(0,a.Z)({toc:p,className:t,linkClassName:o},v))}}}]); \ No newline at end of file diff --git a/assets/js/1f391b9e.413f82bf.js b/assets/js/1f391b9e.413f82bf.js deleted file mode 100644 index eddcf1825..000000000 --- a/assets/js/1f391b9e.413f82bf.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[3085],{4247:(e,n,t)=>{t.r(n),t.d(n,{default:()=>d});var a=t(7294),l=t(6010),r=t(1944),c=t(5281),i=t(2185),o=t(210),s=t(9407);const m="mdxPageWrapper_j9I6";function d(e){const{content:n}=e,{metadata:{title:t,description:d,frontMatter:u}}=n,{wrapperClassName:f,hide_table_of_contents:v}=u;return a.createElement(r.FG,{className:(0,l.Z)(f??c.k.wrapper.mdxPages,c.k.page.mdxPage)},a.createElement(r.d,{title:t,description:d}),a.createElement(i.Z,null,a.createElement("main",{className:"container container--fluid margin-vert--lg"},a.createElement("div",{className:(0,l.Z)("row",m)},a.createElement("div",{className:(0,l.Z)("col",!v&&"col--8")},a.createElement("article",null,a.createElement(o.Z,null,a.createElement(n,null)))),!v&&n.toc.length>0&&a.createElement("div",{className:"col col--2"},a.createElement(s.Z,{toc:n.toc,minHeadingLevel:u.toc_min_heading_level,maxHeadingLevel:u.toc_max_heading_level}))))))}},9407:(e,n,t)=>{t.d(n,{Z:()=>o});var a=t(7462),l=t(7294),r=t(6010),c=t(3743);const i="tableOfContents_bqdL";function o(e){let{className:n,...t}=e;return l.createElement("div",{className:(0,r.Z)(i,"thin-scrollbar",n)},l.createElement(c.Z,(0,a.Z)({},t,{linkClassName:"table-of-contents__link toc-highlight",linkActiveClassName:"table-of-contents__link--active"})))}},3743:(e,n,t)=>{t.d(n,{Z:()=>v});var a=t(7462),l=t(7294),r=t(6668);function c(e){const n=e.map((e=>({...e,parentIndex:-1,children:[]}))),t=Array(7).fill(-1);n.forEach(((e,n)=>{const a=t.slice(2,e.level);e.parentIndex=Math.max(...a),t[e.level]=n}));const a=[];return n.forEach((e=>{const{parentIndex:t,...l}=e;t>=0?n[t].children.push(l):a.push(l)})),a}function i(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:a}=e;return n.flatMap((e=>{const n=i({toc:e.children,minHeadingLevel:t,maxHeadingLevel:a});return function(e){return e.level>=t&&e.level<=a}(e)?[{...e,children:n}]:n}))}function o(e){const n=e.getBoundingClientRect();return n.top===n.bottom?o(e.parentNode):n}function s(e,n){let{anchorTopOffset:t}=n;const a=e.find((e=>o(e).top>=t));if(a){return function(e){return e.top>0&&e.bottom{e.current=n?0:document.querySelector(".navbar").clientHeight}),[n]),e}function d(e){const n=(0,l.useRef)(void 0),t=m();(0,l.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:l,minHeadingLevel:r,maxHeadingLevel:c}=e;function i(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),i=function(e){let{minHeadingLevel:n,maxHeadingLevel:t}=e;const a=[];for(let l=n;l<=t;l+=1)a.push(`h${l}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:r,maxHeadingLevel:c}),o=s(i,{anchorTopOffset:t.current}),m=e.find((e=>o&&o.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,t){t?(n.current&&n.current!==e&&n.current.classList.remove(l),e.classList.add(l),n.current=e):e.classList.remove(l)}(e,e===m)}))}return document.addEventListener("scroll",i),document.addEventListener("resize",i),i(),()=>{document.removeEventListener("scroll",i),document.removeEventListener("resize",i)}}),[e,t])}function u(e){let{toc:n,className:t,linkClassName:a,isChild:r}=e;return n.length?l.createElement("ul",{className:r?void 0:t},n.map((e=>l.createElement("li",{key:e.id},l.createElement("a",{href:`#${e.id}`,className:a??void 0,dangerouslySetInnerHTML:{__html:e.value}}),l.createElement(u,{isChild:!0,toc:e.children,className:t,linkClassName:a}))))):null}const f=l.memo(u);function v(e){let{toc:n,className:t="table-of-contents table-of-contents__left-border",linkClassName:o="table-of-contents__link",linkActiveClassName:s,minHeadingLevel:m,maxHeadingLevel:u,...v}=e;const g=(0,r.L)(),h=m??g.tableOfContents.minHeadingLevel,L=u??g.tableOfContents.maxHeadingLevel,p=function(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:a}=e;return(0,l.useMemo)((()=>i({toc:c(n),minHeadingLevel:t,maxHeadingLevel:a})),[n,t,a])}({toc:n,minHeadingLevel:h,maxHeadingLevel:L});return d((0,l.useMemo)((()=>{if(o&&s)return{linkClassName:o,linkActiveClassName:s,minHeadingLevel:h,maxHeadingLevel:L}}),[o,s,h,L])),l.createElement(f,(0,a.Z)({toc:p,className:t,linkClassName:o},v))}}}]); \ No newline at end of file diff --git a/assets/js/2529.624b6904.js b/assets/js/2529.624b6904.js deleted file mode 100644 index ab8884a02..000000000 --- a/assets/js/2529.624b6904.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[2529],{9058:(e,t,a)=>{a.d(t,{Z:()=>_});var l=a(7294),n=a(6010),r=a(2185),s=a(7524),o=a(9960),i=a(5999);const c="sidebar_re4s",m="sidebarItemTitle_pO2u",u="sidebarItemList_Yudw",d="sidebarItem__DBe",g="sidebarItemLink_mo7H",p="sidebarItemLinkActive_I1ZP";function h(e){let{sidebar:t}=e;return l.createElement("aside",{className:"col col--3"},l.createElement("nav",{className:(0,n.Z)(c,"thin-scrollbar"),"aria-label":(0,i.I)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"})},l.createElement("div",{className:(0,n.Z)(m,"margin-bottom--md")},t.title),l.createElement("ul",{className:(0,n.Z)(u,"clean-list")},t.items.map((e=>l.createElement("li",{key:e.permalink,className:d},l.createElement(o.Z,{isNavLink:!0,to:e.permalink,className:g,activeClassName:p},e.title)))))))}var E=a(3102);function f(e){let{sidebar:t}=e;return l.createElement("ul",{className:"menu__list"},t.items.map((e=>l.createElement("li",{key:e.permalink,className:"menu__list-item"},l.createElement(o.Z,{isNavLink:!0,to:e.permalink,className:"menu__link",activeClassName:"menu__link--active"},e.title)))))}function b(e){return l.createElement(E.Zo,{component:f,props:e})}function v(e){let{sidebar:t}=e;const a=(0,s.i)();return null!=t&&t.items.length?"mobile"===a?l.createElement(b,{sidebar:t}):l.createElement(h,{sidebar:t}):null}function _(e){const{sidebar:t,toc:a,children:s,...o}=e,i=t&&t.items.length>0;return l.createElement(r.Z,o,l.createElement("div",{className:"container margin-vert--lg"},l.createElement("div",{className:"row"},l.createElement(v,{sidebar:t}),l.createElement("main",{className:(0,n.Z)("col",{"col--7":i,"col--9 col--offset-1":!i}),itemScope:!0,itemType:"http://schema.org/Blog"},s),a&&l.createElement("div",{className:"col col--2"},a))))}},390:(e,t,a)=>{a.d(t,{Z:()=>R});var l=a(7294),n=a(6010),r=a(9460),s=a(4996);function o(e){let{children:t,className:a}=e;const{frontMatter:n,assets:o}=(0,r.C)(),{withBaseUrl:i}=(0,s.C)(),c=o.image??n.image;return l.createElement("article",{className:a,itemProp:"blogPost",itemScope:!0,itemType:"http://schema.org/BlogPosting"},c&&l.createElement("meta",{itemProp:"image",content:i(c,{absolute:!0})}),t)}var i=a(9960);const c="title_f1Hy";function m(e){let{className:t}=e;const{metadata:a,isBlogPostPage:s}=(0,r.C)(),{permalink:o,title:m}=a,u=s?"h1":"h2";return l.createElement(u,{className:(0,n.Z)(c,t),itemProp:"headline"},s?m:l.createElement(i.Z,{itemProp:"url",to:o},m))}var u=a(5999),d=a(8824);const g="container_mt6G";function p(e){let{readingTime:t}=e;const a=function(){const{selectMessage:e}=(0,d.c)();return t=>{const a=Math.ceil(t);return e(a,(0,u.I)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:a}))}}();return l.createElement(l.Fragment,null,a(t))}function h(e){let{date:t,formattedDate:a}=e;return l.createElement("time",{dateTime:t,itemProp:"datePublished"},a)}function E(){return l.createElement(l.Fragment,null," \xb7 ")}function f(e){let{className:t}=e;const{metadata:a}=(0,r.C)(),{date:s,formattedDate:o,readingTime:i}=a;return l.createElement("div",{className:(0,n.Z)(g,"margin-vert--md",t)},l.createElement(h,{date:s,formattedDate:o}),void 0!==i&&l.createElement(l.Fragment,null,l.createElement(E,null),l.createElement(p,{readingTime:i})))}function b(e){return e.href?l.createElement(i.Z,e):l.createElement(l.Fragment,null,e.children)}function v(e){let{author:t,className:a}=e;const{name:r,title:s,url:o,imageURL:i,email:c}=t,m=o||c&&`mailto:${c}`||void 0;return l.createElement("div",{className:(0,n.Z)("avatar margin-bottom--sm",a)},i&&l.createElement(b,{href:m,className:"avatar__photo-link"},l.createElement("img",{className:"avatar__photo",src:i,alt:r})),r&&l.createElement("div",{className:"avatar__intro",itemProp:"author",itemScope:!0,itemType:"https://schema.org/Person"},l.createElement("div",{className:"avatar__name"},l.createElement(b,{href:m,itemProp:"url"},l.createElement("span",{itemProp:"name"},r))),s&&l.createElement("small",{className:"avatar__subtitle",itemProp:"description"},s)))}const _="authorCol_Hf19",N="imageOnlyAuthorRow_pa_O",Z="imageOnlyAuthorCol_G86a";function P(e){let{className:t}=e;const{metadata:{authors:a},assets:s}=(0,r.C)();if(0===a.length)return null;const o=a.every((e=>{let{name:t}=e;return!t}));return l.createElement("div",{className:(0,n.Z)("margin-top--md margin-bottom--sm",o?N:"row",t)},a.map(((e,t)=>l.createElement("div",{className:(0,n.Z)(!o&&"col col--6",o?Z:_),key:t},l.createElement(v,{author:{...e,imageURL:s.authorsImageUrls[t]??e.imageURL}})))))}function k(){return l.createElement("header",null,l.createElement(m,null),l.createElement(f,null),l.createElement(P,null))}var T=a(8780),w=a(210);function C(e){let{children:t,className:a}=e;const{isBlogPostPage:s}=(0,r.C)();return l.createElement("div",{id:s?T.blogPostContainerID:void 0,className:(0,n.Z)("markdown",a),itemProp:"articleBody"},l.createElement(w.Z,null,t))}var y=a(4881),B=a(1526),F=a(7462);function I(){return l.createElement("b",null,l.createElement(u.Z,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts"},"Read More"))}function x(e){const{blogPostTitle:t,...a}=e;return l.createElement(i.Z,(0,F.Z)({"aria-label":(0,u.I)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:t})},a),l.createElement(I,null))}const L="blogPostFooterDetailsFull_mRVl";function M(){const{metadata:e,isBlogPostPage:t}=(0,r.C)(),{tags:a,title:s,editUrl:o,hasTruncateMarker:i}=e,c=!t&&i,m=a.length>0;return m||c||o?l.createElement("footer",{className:(0,n.Z)("row docusaurus-mt-lg",t&&L)},m&&l.createElement("div",{className:(0,n.Z)("col",{"col--9":c})},l.createElement(B.Z,{tags:a})),t&&o&&l.createElement("div",{className:"col margin-top--sm"},l.createElement(y.Z,{editUrl:o})),c&&l.createElement("div",{className:(0,n.Z)("col text--right",{"col--3":m})},l.createElement(x,{blogPostTitle:s,to:e.permalink}))):null}function R(e){let{children:t,className:a}=e;const s=function(){const{isBlogPostPage:e}=(0,r.C)();return e?void 0:"margin-bottom--xl"}();return l.createElement(o,{className:(0,n.Z)(s,a)},l.createElement(k,null),l.createElement(C,null,t),l.createElement(M,null))}},4881:(e,t,a)=>{a.d(t,{Z:()=>m});var l=a(7294),n=a(5999),r=a(5281),s=a(7462),o=a(6010);const i="iconEdit_Z9Sw";function c(e){let{className:t,...a}=e;return l.createElement("svg",(0,s.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,o.Z)(i,t),"aria-hidden":"true"},a),l.createElement("g",null,l.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}function m(e){let{editUrl:t}=e;return l.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:r.k.common.editThisPage},l.createElement(c,null),l.createElement(n.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}},2244:(e,t,a)=>{a.d(t,{Z:()=>s});var l=a(7294),n=a(6010),r=a(9960);function s(e){const{permalink:t,title:a,subLabel:s,isNext:o}=e;return l.createElement(r.Z,{className:(0,n.Z)("pagination-nav__link",o?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},s&&l.createElement("div",{className:"pagination-nav__sublabel"},s),l.createElement("div",{className:"pagination-nav__label"},a))}},3008:(e,t,a)=>{a.d(t,{Z:()=>c});var l=a(7294),n=a(6010),r=a(9960);const s="tag_zVej",o="tagRegular_sFm0",i="tagWithCount_h2kH";function c(e){let{permalink:t,label:a,count:c}=e;return l.createElement(r.Z,{href:t,className:(0,n.Z)(s,c?i:o)},a,c&&l.createElement("span",null,c))}},1526:(e,t,a)=>{a.d(t,{Z:()=>c});var l=a(7294),n=a(6010),r=a(5999),s=a(3008);const o="tags_jXut",i="tag_QGVx";function c(e){let{tags:t}=e;return l.createElement(l.Fragment,null,l.createElement("b",null,l.createElement(r.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),l.createElement("ul",{className:(0,n.Z)(o,"padding--none","margin-left--sm")},t.map((e=>{let{label:t,permalink:a}=e;return l.createElement("li",{key:a,className:i},l.createElement(s.Z,{label:t,permalink:a}))}))))}},9460:(e,t,a)=>{a.d(t,{C:()=>o,n:()=>s});var l=a(7294),n=a(902);const r=l.createContext(null);function s(e){let{children:t,content:a,isBlogPostPage:n=!1}=e;const s=function(e){let{content:t,isBlogPostPage:a}=e;return(0,l.useMemo)((()=>({metadata:t.metadata,frontMatter:t.frontMatter,assets:t.assets,toc:t.toc,isBlogPostPage:a})),[t,a])}({content:a,isBlogPostPage:n});return l.createElement(r.Provider,{value:s},t)}function o(){const e=(0,l.useContext)(r);if(null===e)throw new n.i6("BlogPostProvider");return e}},8824:(e,t,a)=>{a.d(t,{c:()=>c});var l=a(7294),n=a(2263);const r=["zero","one","two","few","many","other"];function s(e){return r.filter((t=>e.includes(t)))}const o={locale:"en",pluralForms:s(["one","other"]),select:e=>1===e?"one":"other"};function i(){const{i18n:{currentLocale:e}}=(0,n.Z)();return(0,l.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:s(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${t.message}\n`),o}}),[e])}function c(){const e=i();return{selectMessage:(t,a)=>function(e,t,a){const l=e.split("|");if(1===l.length)return l[0];l.length>a.pluralForms.length&&console.error(`For locale=${a.locale}, a maximum of ${a.pluralForms.length} plural forms are expected (${a.pluralForms.join(",")}), but the message contains ${l.length}: ${e}`);const n=a.select(t),r=a.pluralForms.indexOf(n);return l[Math.min(r,l.length-1)]}(a,t,e)}}}}]); \ No newline at end of file diff --git a/assets/js/3093ce87.57f211c6.js b/assets/js/3093ce87.155dbbe3.js similarity index 55% rename from assets/js/3093ce87.57f211c6.js rename to assets/js/3093ce87.155dbbe3.js index 8d4ff5bb7..c08a1e176 100644 --- a/assets/js/3093ce87.57f211c6.js +++ b/assets/js/3093ce87.155dbbe3.js @@ -1 +1 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[488],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=s(n),m=a,h=d["".concat(u,".").concat(m)]||d[m]||c[m]||o;return n?r.createElement(h,i(i({ref:t},p),{},{components:n})):r.createElement(h,i({ref:t},p))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l.mdxType="string"==typeof e?e:a,i[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=n(7462),a=(n(7294),n(3905));const o={title:"Build a CRUD interface for your database in under 59 seconds",authors:["ayobami"],tags:["introduction"]},i=void 0,l={permalink:"/blog/2022/10/06/crud-under-59-seconds",source:"@site/blog/2022-10-06-crud-under-59-seconds/index.md",title:"Build a CRUD interface for your database in under 59 seconds",description:"For the shortest tutorial on building things, the only step for you is to run",date:"2022-10-06T00:00:00.000Z",formattedDate:"October 6, 2022",tags:[{label:"introduction",permalink:"/blog/tags/introduction"}],readingTime:.9,hasTruncateMarker:!1,authors:[{name:"Ayobami Akingbade",title:"Creator of Hadmean",url:"https://github.com/thrownullexception",imageURL:"https://github.com/thrownullexception.png",key:"ayobami"}],frontMatter:{title:"Build a CRUD interface for your database in under 59 seconds",authors:["ayobami"],tags:["introduction"]},nextItem:{title:"Hadmean - Introducing the easiest, most efficient internal tool generator.",permalink:"/blog/2022/10/05/introduction"}},u={authorsImageUrls:[void 0]},s=[],p={toc:s};function c(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"For the shortest tutorial on building things, the only step for you is to run"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-js"},"npx hadmean\n")),(0,a.kt)("p",null,"Then go to ",(0,a.kt)("a",{parentName:"p",href:"http://localhost:3000"},"http://localhost:3000")," where you will be asked for your DB credentials and voila, You can start CRUDing your database. There is no Javascript, or SQL, or drag-and-drop tutorial needed to get started."),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://github.com/hadmean/hadmean"},"Hadmean")," is not just a CRUD builder, it is fully an internal tool generator. It might be simple to install but it has tons of features and is entirely customizable."),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://demo.hadmean.com"},"Here")," is a demo application built in under 59 seconds."),(0,a.kt)("p",null,"Other features include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Authentication"),(0,a.kt)("li",{parentName:"ul"},"Users management"),(0,a.kt)("li",{parentName:"ul"},"Roles and permissions"),(0,a.kt)("li",{parentName:"ul"},"CRUD"),(0,a.kt)("li",{parentName:"ul"},"Relationships"),(0,a.kt)("li",{parentName:"ul"},"Forms validation"),(0,a.kt)("li",{parentName:"ul"},"Powerful Filters"),(0,a.kt)("li",{parentName:"ul"},"A powerful multi-page navigation system"),(0,a.kt)("li",{parentName:"ul"},"Automatic Introspection"),(0,a.kt)("li",{parentName:"ul"},"Views"),(0,a.kt)("li",{parentName:"ul"},"Intuitive dashboard builder")),(0,a.kt)("p",null,"You can always refer to the ",(0,a.kt)("a",{parentName:"p",href:"https://hadmean.com/docs/intro"},"documentation")," to get the best out of Hadmean and join our ",(0,a.kt)("a",{parentName:"p",href:"https://discord.gg/aV6DxwXhzN"},"discord server")," to interact with the community."),(0,a.kt)("p",null,"Start building your admin apps with Hadmean today! If you like this project and found this article helpful, please share and leave a star on ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/hadmean/hadmean"},"Github"),"."))}c.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[488],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=s(n),m=a,h=d["".concat(u,".").concat(m)]||d[m]||c[m]||o;return n?r.createElement(h,i(i({ref:t},p),{},{components:n})):r.createElement(h,i({ref:t},p))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l.mdxType="string"==typeof e?e:a,i[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=n(7462),a=(n(7294),n(3905));const o={title:"Build a CRUD interface for your database in under 59 seconds",authors:["ayobami"],tags:["introduction"]},i=void 0,l={permalink:"/blog/2022/10/06/crud-under-59-seconds",source:"@site/blog/2022-10-06-crud-under-59-seconds/index.md",title:"Build a CRUD interface for your database in under 59 seconds",description:"For the shortest tutorial on building things, the only step for you is to run",date:"2022-10-06T00:00:00.000Z",formattedDate:"October 6, 2022",tags:[{label:"introduction",permalink:"/blog/tags/introduction"}],readingTime:.9,hasTruncateMarker:!1,authors:[{name:"Ayobami Akingbade",title:"Creator of Hadmean",url:"https://github.com/thrownullexception",imageURL:"https://github.com/thrownullexception.png",key:"ayobami"}],frontMatter:{title:"Build a CRUD interface for your database in under 59 seconds",authors:["ayobami"],tags:["introduction"]},prevItem:{title:"Why you should write more integration tests.",permalink:"/blog/2022/11/28/why-you-should-write-more-integrations-tests"},nextItem:{title:"Hadmean - Introducing the easiest, most efficient internal tool generator.",permalink:"/blog/2022/10/05/introduction"}},u={authorsImageUrls:[void 0]},s=[],p={toc:s};function c(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"For the shortest tutorial on building things, the only step for you is to run"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-js"},"npx hadmean\n")),(0,a.kt)("p",null,"Then go to ",(0,a.kt)("a",{parentName:"p",href:"http://localhost:3000"},"http://localhost:3000")," where you will be asked for your DB credentials and voila, You can start CRUDing your database. There is no Javascript, or SQL, or drag-and-drop tutorial needed to get started."),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://github.com/hadmean/hadmean"},"Hadmean")," is not just a CRUD builder, it is fully an internal tool generator. It might be simple to install but it has tons of features and is entirely customizable."),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://demo.hadmean.com"},"Here")," is a demo application built in under 59 seconds."),(0,a.kt)("p",null,"Other features include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Authentication"),(0,a.kt)("li",{parentName:"ul"},"Users management"),(0,a.kt)("li",{parentName:"ul"},"Roles and permissions"),(0,a.kt)("li",{parentName:"ul"},"CRUD"),(0,a.kt)("li",{parentName:"ul"},"Relationships"),(0,a.kt)("li",{parentName:"ul"},"Forms validation"),(0,a.kt)("li",{parentName:"ul"},"Powerful Filters"),(0,a.kt)("li",{parentName:"ul"},"A powerful multi-page navigation system"),(0,a.kt)("li",{parentName:"ul"},"Automatic Introspection"),(0,a.kt)("li",{parentName:"ul"},"Views"),(0,a.kt)("li",{parentName:"ul"},"Intuitive dashboard builder")),(0,a.kt)("p",null,"You can always refer to the ",(0,a.kt)("a",{parentName:"p",href:"https://hadmean.com/docs/intro"},"documentation")," to get the best out of Hadmean and join our ",(0,a.kt)("a",{parentName:"p",href:"https://discord.gg/aV6DxwXhzN"},"discord server")," to interact with the community."),(0,a.kt)("p",null,"Start building your admin apps with Hadmean today! If you like this project and found this article helpful, please share and leave a star on ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/hadmean/hadmean"},"Github"),"."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/337a5fec.87d1b359.js b/assets/js/337a5fec.87d1b359.js deleted file mode 100644 index d2c19531e..000000000 --- a/assets/js/337a5fec.87d1b359.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[8243],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>f});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=o.createContext({}),u=function(e){var t=o.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=u(e.components);return o.createElement(c.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},p=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,c=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),p=u(n),f=r,h=p["".concat(c,".").concat(f)]||p[f]||d[f]||a;return n?o.createElement(h,i(i({ref:t},s),{},{components:n})):o.createElement(h,i({ref:t},s))}));function f(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=p;var l={};for(var c in t)hasOwnProperty.call(t,c)&&(l[c]=t[c]);l.originalType=e,l.mdxType="string"==typeof e?e:r,i[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>l,toc:()=>u});var o=n(7462),r=(n(7294),n(3905));const a={sidebar_position:2},i="CRUD",l={unversionedId:"app-configuration/crud",id:"app-configuration/crud",title:"CRUD",description:"Table",source:"@site/docs/app-configuration/crud.md",sourceDirName:"app-configuration",slug:"/app-configuration/crud",permalink:"/docs/app-configuration/crud",draft:!1,editUrl:"https://github.com/hadmean/archaea/edit/main/docs/app-configuration/crud.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Entities",permalink:"/docs/app-configuration/entities"},next:{title:"Diction",permalink:"/docs/app-configuration/diction"}},c={},u=[{value:"Table",id:"table",level:2},{value:"Details",id:"details",level:2},{value:"Create/Update",id:"createupdate",level:2},{value:"Delete",id:"delete",level:2}],s={toc:u};function d(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,o.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"crud"},"CRUD"),(0,r.kt)("h2",{id:"table"},"Table"),(0,r.kt)("p",null," This tab allows you to select the columns you want to show on the table for this entity. Note that this filtering is done in the backend so any filtered-out column data will not get to the UI. We only query your database for the fields we are going to present."),(0,r.kt)("h2",{id:"details"},"Details"),(0,r.kt)("p",null,"This tab allows you to select the columns to show on the details view. As with tables, the filtering is done in the backend."),(0,r.kt)("p",null,"The ",(0,r.kt)("inlineCode",{parentName:"p"},"Hide Details Button")," toggles the view button and will show an error if you try to view the details page for the entity. Toggling it off will disable the selection."),(0,r.kt)("h2",{id:"createupdate"},"Create/Update"),(0,r.kt)("p",null,"This allows you to select the fields you want in the create/update form. Useful to hide timestamp columns, ID fields etc."),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"}," If the update view is enabled but the details view is not, then no data will be passed to the UI.")),(0,r.kt)("p",null,"Also, the toggle button will hide/show the create/update button respectively."),(0,r.kt)("h2",{id:"delete"},"Delete"),(0,r.kt)("p",null," Here you can only manage the hide/show of the delete button for the entity."),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"All the settings on this page are also checked on the server. "),(0,r.kt)("p",{parentName:"admonition"},"So if you disable delete for an entity and you try to delete it through our API, You will get a 401 error. Same for create, update and details. "),(0,r.kt)("p",{parentName:"admonition"},"If you can't do it in the front-end then you also can't do it in the back-end.")))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/34e88ec9.9f8e6194.js b/assets/js/34e88ec9.9f8e6194.js new file mode 100644 index 000000000..8b95aecff --- /dev/null +++ b/assets/js/34e88ec9.9f8e6194.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[895],{3905:(t,e,a)=>{a.d(e,{Zo:()=>u,kt:()=>d});var n=a(7294);function o(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function r(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function s(t){for(var e=1;e=0||(o[a]=t[a]);return o}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(o[a]=t[a])}return o}var l=n.createContext({}),h=function(t){var e=n.useContext(l),a=e;return t&&(a="function"==typeof t?t(e):s(s({},e),t)),a},u=function(t){var e=h(t.components);return n.createElement(l.Provider,{value:e},t.children)},c={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},p=n.forwardRef((function(t,e){var a=t.components,o=t.mdxType,r=t.originalType,l=t.parentName,u=i(t,["components","mdxType","originalType","parentName"]),p=h(a),d=o,y=p["".concat(l,".").concat(d)]||p[d]||c[d]||r;return a?n.createElement(y,s(s({ref:e},u),{},{components:a})):n.createElement(y,s({ref:e},u))}));function d(t,e){var a=arguments,o=e&&e.mdxType;if("string"==typeof t||o){var r=a.length,s=new Array(r);s[0]=p;var i={};for(var l in e)hasOwnProperty.call(e,l)&&(i[l]=e[l]);i.originalType=t,i.mdxType="string"==typeof t?t:o,s[1]=i;for(var h=2;h{a.r(e),a.d(e,{assets:()=>l,contentTitle:()=>s,default:()=>c,frontMatter:()=>r,metadata:()=>i,toc:()=>h});var n=a(7462),o=(a(7294),a(3905));const r={title:"Why you should write more integration tests.",authors:["ayobami"],tags:["testing"]},s=void 0,i={permalink:"/blog/2022/11/28/why-you-should-write-more-integrations-tests",source:"@site/blog/2022-11-28-why-you-should-write-more-integrations-tests/index.md",title:"Why you should write more integration tests.",description:"Banner",date:"2022-11-28T00:00:00.000Z",formattedDate:"November 28, 2022",tags:[{label:"testing",permalink:"/blog/tags/testing"}],readingTime:4.335,hasTruncateMarker:!1,authors:[{name:"Ayobami Akingbade",title:"Creator of Hadmean",url:"https://github.com/thrownullexception",imageURL:"https://github.com/thrownullexception.png",key:"ayobami"}],frontMatter:{title:"Why you should write more integration tests.",authors:["ayobami"],tags:["testing"]},prevItem:{title:"How to generate a powerful admin app from your database",permalink:"/blog/2022/12/09/how-to-generate-a-powerful-admin-app-from-your-database"},nextItem:{title:"Build a CRUD interface for your database in under 59 seconds",permalink:"/blog/2022/10/06/crud-under-59-seconds"}},l={authorsImageUrls:[void 0]},h=[],u={toc:h};function c(t){let{components:e,...r}=t;return(0,o.kt)("wrapper",(0,n.Z)({},u,r,{components:e,mdxType:"MDXLayout"}),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Banner",src:a(4768).Z,width:"8244",height:"2752"})),(0,o.kt)("p",null,"After writing software, engineers usually have to write tests for whatever reason they have but major write three types."),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Unit tests.\nThis are mostly Isolation tests i.e you take a part of the software and you isolate it and write a test for it. Isolation means that piece of software usually a function or component does not interact with other parts of the system. This isolation makes it very easy to write tests are you good control of the component making it very easy for you to have it in a desired state and test that state and also very easy to get the expected state and assert that. and another benefit is that it they are very easy to run as they are usually lightweights so usually run under seconds"),(0,o.kt)("li",{parentName:"ol"},"End to End Tests.\nEnd to End(E2E) tests are tests that are writting usually in the way a user will use the application. These tests are meant to be agnostic of the internal workings of the application. Infact they can be writing in another langauge different from the one the application is written in.\nEnd to End needless to say gives the greatest confidence as they actually test the flow of the user in the way an actually user will use them."),(0,o.kt)("li",{parentName:"ol"},"Integration Tests.\nIntegration tests are tests that test the interactions between two or more components of the software i.e you are test that yes these components are working seperately but do they communicate with each other correctly")),(0,o.kt)("p",null,"Developers usually get confused on what Integration tests are. Writing a test for a function though it calls other function is not an integration test even though it has some integration as this is still a unit test"),(0,o.kt)("p",null,"Integration tests are tests that have a high level of abstraction over implementation detail"),(0,o.kt)("p",null,"For example"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"A good integration test for the BE will be to setup the application to take in a route and the method and it should do something and that something is asserted by calling another route to check the effects. A bad way of doing this is to instead call the controller and mock the services and that the end check that the services are called correctly instead"),(0,o.kt)("li",{parentName:"ol"},"For the FE a good integration test will be to take a page component or a large component and render with not passing any props and instead get the page to the desired state by mocking the API requests using a tool like MSW and interacting with the application clicking on button and asserting desired UI effects")),(0,o.kt)("p",null,"So why should you write more Integrations test over the others. Integrations tests basically averages the good and bad part of unit tests and E2E tests "),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"You can easily achieve desired state\nPrimarily E2E tests in my un-popular opinion is what you should strive for the most but the major pain point of E2E tests is the ability to acheive desired state. Let say you want to test the application for a user that is under the age of 35, male, Arabian and is christian. This conditions are very easy to achieve with Unit tests as you can easily pass the desired state as props and test the application as you see fit.\nBut this is a pain point with E2E tests so really have to options."),(0,o.kt)("li",{parentName:"ol"},"You seed the application database with the desired state which is almost un-scalable as you will have to HardCode the userId in the tests or you use the E2E suites to get the application to the desired state before actually starting to test cases\nBut with Integration tests you can easily set the state in the test suite though you will not be as nimble as unit-test but it will be way more easier than with a E2E test. ")),(0,o.kt)("ol",{start:2},(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"It is relatively lightweight.\nOne big problem with e2e tests is that they are bulky, Like you will first need to setup the application itself i.e proviion database, run migrations, run seeds, start the application, start the frontend. Wait for both of them to be up, launch other services needed, fire up a browser then start the test cases.\nBut wuth")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Less flaky.\nBecause of the "))),(0,o.kt)("ol",{start:3},(0,o.kt)("li",{parentName:"ol"},"It brings good enough confidences\nThis is the major problem with most unit tests being that they are mostly implementation details, like they follow you components parameters around and they usually have to be updated the component changes during a refactor without any changes to the functionality")),(0,o.kt)("p",null,"Nothing in software are hard rules, this articles doesn't say scrape your e2e tests, or unit tests but rather try to see if you can test the case with an integration test, if the case is too complex i.e too many if-elses then you can abstract that to a function and unit-test that. And it is considered good practice to have e2e tests for critical flows in your application. like"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"User can register"),(0,o.kt)("li",{parentName:"ul"},"User can login"),(0,o.kt)("li",{parentName:"ul"},"User can add product to cart"),(0,o.kt)("li",{parentName:"ul"},"User can checkout\nBasically things that are primary to your business function should be test e2e and others should be test with integrations.")))}c.isMDXComponent=!0},4768:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/banner-3fd4e8c7fabf580a47e9a48ca0d5768b.png"}}]); \ No newline at end of file diff --git a/assets/js/352612e0.3e0c10b0.js b/assets/js/352612e0.3e0c10b0.js deleted file mode 100644 index d9ce24015..000000000 --- a/assets/js/352612e0.3e0c10b0.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[5613],{5745:a=>{a.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/352612e0.f7f76fe3.js b/assets/js/352612e0.f7f76fe3.js new file mode 100644 index 000000000..e27f774ea --- /dev/null +++ b/assets/js/352612e0.f7f76fe3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[613],{5745:a=>{a.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/393be207.517a0e9b.js b/assets/js/393be207.517a0e9b.js deleted file mode 100644 index 05e509c3d..000000000 --- a/assets/js/393be207.517a0e9b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[7414],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>s});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),i=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},u=function(e){var t=i(e.components);return n.createElement(l.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),f=i(r),s=a,d=f["".concat(l,".").concat(s)]||f[s]||m[s]||o;return r?n.createElement(d,p(p({ref:t},u),{},{components:r})):n.createElement(d,p({ref:t},u))}));function s(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,p=new Array(o);p[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:a,p[1]=c;for(var i=2;i{r.r(t),r.d(t,{contentTitle:()=>p,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var n=r(7462),a=(r(7294),r(3905));const o={title:"Markdown page example"},p="Markdown page example",c={type:"mdx",permalink:"/markdown-page",source:"@site/src/pages/markdown-page.md",title:"Markdown page example",description:"You don't need React to write simple standalone pages.",frontMatter:{title:"Markdown page example"}},l=[],i={toc:l};function u(e){let{components:t,...r}=e;return(0,a.kt)("wrapper",(0,n.Z)({},i,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"markdown-page-example"},"Markdown page example"),(0,a.kt)("p",null,"You don't need React to write simple standalone pages."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/393be207.baee1087.js b/assets/js/393be207.baee1087.js new file mode 100644 index 000000000..c34b7a51d --- /dev/null +++ b/assets/js/393be207.baee1087.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[414],{3905:(e,t,r)=>{r.d(t,{Zo:()=>u,kt:()=>s});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),i=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},u=function(e){var t=i(e.components);return n.createElement(l.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=c(e,["components","mdxType","originalType","parentName"]),f=i(r),s=a,d=f["".concat(l,".").concat(s)]||f[s]||m[s]||o;return r?n.createElement(d,p(p({ref:t},u),{},{components:r})):n.createElement(d,p({ref:t},u))}));function s(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,p=new Array(o);p[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:a,p[1]=c;for(var i=2;i{r.r(t),r.d(t,{contentTitle:()=>p,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var n=r(7462),a=(r(7294),r(3905));const o={title:"Markdown page example"},p="Markdown page example",c={type:"mdx",permalink:"/markdown-page",source:"@site/src/pages/markdown-page.md",title:"Markdown page example",description:"You don't need React to write simple standalone pages.",frontMatter:{title:"Markdown page example"}},l=[],i={toc:l};function u(e){let{components:t,...r}=e;return(0,a.kt)("wrapper",(0,n.Z)({},i,r,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"markdown-page-example"},"Markdown page example"),(0,a.kt)("p",null,"You don't need React to write simple standalone pages."))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4972.17bee6c7.js b/assets/js/4972.17bee6c7.js deleted file mode 100644 index 50b7e1b0e..000000000 --- a/assets/js/4972.17bee6c7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[4972],{4972:(e,t,a)=>{a.r(t),a.d(t,{default:()=>c});var n=a(7294),l=a(5999),o=a(1944),r=a(2185);function c(){return n.createElement(n.Fragment,null,n.createElement(o.d,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),n.createElement(r.Z,null,n.createElement("main",{className:"container margin-vert--xl"},n.createElement("div",{className:"row"},n.createElement("div",{className:"col col--6 col--offset-3"},n.createElement("h1",{className:"hero__title"},n.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),n.createElement("p",null,n.createElement(l.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),n.createElement("p",null,n.createElement(l.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file diff --git a/assets/js/498dad3b.5dace000.js b/assets/js/498dad3b.5dace000.js new file mode 100644 index 000000000..6af93e6e0 --- /dev/null +++ b/assets/js/498dad3b.5dace000.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[161],{3905:(t,e,a)=>{a.d(e,{Zo:()=>u,kt:()=>d});var n=a(7294);function o(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function r(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function s(t){for(var e=1;e=0||(o[a]=t[a]);return o}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(o[a]=t[a])}return o}var l=n.createContext({}),h=function(t){var e=n.useContext(l),a=e;return t&&(a="function"==typeof t?t(e):s(s({},e),t)),a},u=function(t){var e=h(t.components);return n.createElement(l.Provider,{value:e},t.children)},c={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},p=n.forwardRef((function(t,e){var a=t.components,o=t.mdxType,r=t.originalType,l=t.parentName,u=i(t,["components","mdxType","originalType","parentName"]),p=h(a),d=o,y=p["".concat(l,".").concat(d)]||p[d]||c[d]||r;return a?n.createElement(y,s(s({ref:e},u),{},{components:a})):n.createElement(y,s({ref:e},u))}));function d(t,e){var a=arguments,o=e&&e.mdxType;if("string"==typeof t||o){var r=a.length,s=new Array(r);s[0]=p;var i={};for(var l in e)hasOwnProperty.call(e,l)&&(i[l]=e[l]);i.originalType=t,i.mdxType="string"==typeof t?t:o,s[1]=i;for(var h=2;h{a.r(e),a.d(e,{assets:()=>l,contentTitle:()=>s,default:()=>c,frontMatter:()=>r,metadata:()=>i,toc:()=>h});var n=a(7462),o=(a(7294),a(3905));const r={title:"Why you should write more integration tests.",authors:["ayobami"],tags:["testing"]},s=void 0,i={permalink:"/blog/2022/11/28/why-you-should-write-more-integrations-tests",source:"@site/blog/2022-11-28-why-you-should-write-more-integrations-tests/index.md",title:"Why you should write more integration tests.",description:"Banner",date:"2022-11-28T00:00:00.000Z",formattedDate:"November 28, 2022",tags:[{label:"testing",permalink:"/blog/tags/testing"}],readingTime:4.335,hasTruncateMarker:!1,authors:[{name:"Ayobami Akingbade",title:"Creator of Hadmean",url:"https://github.com/thrownullexception",imageURL:"https://github.com/thrownullexception.png",key:"ayobami"}],frontMatter:{title:"Why you should write more integration tests.",authors:["ayobami"],tags:["testing"]},prevItem:{title:"How to generate a powerful admin app from your database",permalink:"/blog/2022/12/09/how-to-generate-a-powerful-admin-app-from-your-database"},nextItem:{title:"Build a CRUD interface for your database in under 59 seconds",permalink:"/blog/2022/10/06/crud-under-59-seconds"}},l={authorsImageUrls:[void 0]},h=[],u={toc:h};function c(t){let{components:e,...r}=t;return(0,o.kt)("wrapper",(0,n.Z)({},u,r,{components:e,mdxType:"MDXLayout"}),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Banner",src:a(4768).Z,width:"8244",height:"2752"})),(0,o.kt)("p",null,"After writing software, engineers usually have to write tests for whatever reason they have but major write three types."),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"Unit tests.\nThis are mostly Isolation tests i.e you take a part of the software and you isolate it and write a test for it. Isolation means that piece of software usually a function or component does not interact with other parts of the system. This isolation makes it very easy to write tests are you good control of the component making it very easy for you to have it in a desired state and test that state and also very easy to get the expected state and assert that. and another benefit is that it they are very easy to run as they are usually lightweights so usually run under seconds"),(0,o.kt)("li",{parentName:"ol"},"End to End Tests.\nEnd to End(E2E) tests are tests that are writting usually in the way a user will use the application. These tests are meant to be agnostic of the internal workings of the application. Infact they can be writing in another langauge different from the one the application is written in.\nEnd to End needless to say gives the greatest confidence as they actually test the flow of the user in the way an actually user will use them."),(0,o.kt)("li",{parentName:"ol"},"Integration Tests.\nIntegration tests are tests that test the interactions between two or more components of the software i.e you are test that yes these components are working seperately but do they communicate with each other correctly")),(0,o.kt)("p",null,"Developers usually get confused on what Integration tests are. Writing a test for a function though it calls other function is not an integration test even though it has some integration as this is still a unit test"),(0,o.kt)("p",null,"Integration tests are tests that have a high level of abstraction over implementation detail"),(0,o.kt)("p",null,"For example"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"A good integration test for the BE will be to setup the application to take in a route and the method and it should do something and that something is asserted by calling another route to check the effects. A bad way of doing this is to instead call the controller and mock the services and that the end check that the services are called correctly instead"),(0,o.kt)("li",{parentName:"ol"},"For the FE a good integration test will be to take a page component or a large component and render with not passing any props and instead get the page to the desired state by mocking the API requests using a tool like MSW and interacting with the application clicking on button and asserting desired UI effects")),(0,o.kt)("p",null,"So why should you write more Integrations test over the others. Integrations tests basically averages the good and bad part of unit tests and E2E tests "),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},"You can easily achieve desired state\nPrimarily E2E tests in my un-popular opinion is what you should strive for the most but the major pain point of E2E tests is the ability to acheive desired state. Let say you want to test the application for a user that is under the age of 35, male, Arabian and is christian. This conditions are very easy to achieve with Unit tests as you can easily pass the desired state as props and test the application as you see fit.\nBut this is a pain point with E2E tests so really have to options."),(0,o.kt)("li",{parentName:"ol"},"You seed the application database with the desired state which is almost un-scalable as you will have to HardCode the userId in the tests or you use the E2E suites to get the application to the desired state before actually starting to test cases\nBut with Integration tests you can easily set the state in the test suite though you will not be as nimble as unit-test but it will be way more easier than with a E2E test. ")),(0,o.kt)("ol",{start:2},(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"It is relatively lightweight.\nOne big problem with e2e tests is that they are bulky, Like you will first need to setup the application itself i.e proviion database, run migrations, run seeds, start the application, start the frontend. Wait for both of them to be up, launch other services needed, fire up a browser then start the test cases.\nBut wuth")),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Less flaky.\nBecause of the "))),(0,o.kt)("ol",{start:3},(0,o.kt)("li",{parentName:"ol"},"It brings good enough confidences\nThis is the major problem with most unit tests being that they are mostly implementation details, like they follow you components parameters around and they usually have to be updated the component changes during a refactor without any changes to the functionality")),(0,o.kt)("p",null,"Nothing in software are hard rules, this articles doesn't say scrape your e2e tests, or unit tests but rather try to see if you can test the case with an integration test, if the case is too complex i.e too many if-elses then you can abstract that to a function and unit-test that. And it is considered good practice to have e2e tests for critical flows in your application. like"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"User can register"),(0,o.kt)("li",{parentName:"ul"},"User can login"),(0,o.kt)("li",{parentName:"ul"},"User can add product to cart"),(0,o.kt)("li",{parentName:"ul"},"User can checkout\nBasically things that are primary to your business function should be test e2e and others should be test with integrations.")))}c.isMDXComponent=!0},4768:(t,e,a)=>{a.d(e,{Z:()=>n});const n=a.p+"assets/images/banner-3fd4e8c7fabf580a47e9a48ca0d5768b.png"}}]); \ No newline at end of file diff --git a/assets/js/4bb443f0.d7bc3e9e.js b/assets/js/4bb443f0.d7bc3e9e.js new file mode 100644 index 000000000..49bc80cf6 --- /dev/null +++ b/assets/js/4bb443f0.d7bc3e9e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[78],{9731:a=>{a.exports=JSON.parse('{"permalink":"/blog/tags/testing","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/4cc133be.0a3c3090.js b/assets/js/4cc133be.0a3c3090.js deleted file mode 100644 index 771f07657..000000000 --- a/assets/js/4cc133be.0a3c3090.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[2627],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),p=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},l={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),d=p(n),f=o,m=d["".concat(c,".").concat(f)]||d[f]||l[f]||i;return n?r.createElement(m,a(a({ref:t},u),{},{components:n})):r.createElement(m,a({ref:t},u))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=d;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:o,a[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>l,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var r=n(7462),o=(n(7294),n(3905));const i={sidebar_position:7},a="System Settings",s={unversionedId:"app-configuration/system",id:"app-configuration/system",title:"System Settings",description:"Token Validity Duration",source:"@site/docs/app-configuration/system.md",sourceDirName:"app-configuration",slug:"/app-configuration/system",permalink:"/docs/app-configuration/system",draft:!1,editUrl:"https://github.com/hadmean/archaea/edit/main/docs/app-configuration/system.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"tutorialSidebar",previous:{title:"Form",permalink:"/docs/app-configuration/form"},next:{title:"Views",permalink:"/docs/app-configuration/views"}},c={},p=[{value:"Token Validity Duration",id:"token-validity-duration",level:2},{value:"Force Introspection",id:"force-introspection",level:2}],u={toc:p};function l(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"system-settings"},"System Settings"),(0,o.kt)("h2",{id:"token-validity-duration"},"Token Validity Duration"),(0,o.kt)("p",null,"Set the number of days you want your authentication token to be valid. The default value is ",(0,o.kt)("inlineCode",{parentName:"p"},"14"),"."),(0,o.kt)("h2",{id:"force-introspection"},"Force Introspection"),(0,o.kt)("p",null,"We introspect your database every time the application runs."),(0,o.kt)("p",null,"This behavior is good for most production use cases as you want your schema to be up to date whenever you run the application."),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"This setting is not respected when your schema is empty so we will always introspect when running for the first time or if you delete your schema for any reason.")))}l.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4eec1c92.9d40be72.js b/assets/js/4eec1c92.9d40be72.js new file mode 100644 index 000000000..3b2ee43e8 --- /dev/null +++ b/assets/js/4eec1c92.9d40be72.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[738],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>d});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},s=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),c=u(a),d=n,h=c["".concat(p,".").concat(d)]||c[d]||m[d]||o;return a?r.createElement(h,l(l({ref:t},s),{},{components:a})):r.createElement(h,l({ref:t},s))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=c;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i.mdxType="string"==typeof e?e:n,l[1]=i;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=a(7462),n=(a(7294),a(3905));const o={title:"How to generate a powerful admin app from your database",authors:["ayobami"],tags:["how-to"]},l=void 0,i={permalink:"/blog/2022/12/09/how-to-generate-a-powerful-admin-app-from-your-database",source:"@site/blog/2022-12-09-how-to-generate-a-powerful-admin-app-from-your-database/index.md",title:"How to generate a powerful admin app from your database",description:"I believe we have all been there, We",date:"2022-12-09T00:00:00.000Z",formattedDate:"December 9, 2022",tags:[{label:"how-to",permalink:"/blog/tags/how-to"}],readingTime:.94,hasTruncateMarker:!1,authors:[{name:"Ayobami Akingbade",title:"Creator of Hadmean",url:"https://github.com/thrownullexception",imageURL:"https://github.com/thrownullexception.png",key:"ayobami"}],frontMatter:{title:"How to generate a powerful admin app from your database",authors:["ayobami"],tags:["how-to"]},nextItem:{title:"Why you should write more integration tests.",permalink:"/blog/2022/11/28/why-you-should-write-more-integrations-tests"}},p={authorsImageUrls:[void 0]},u=[],s={toc:u};function m(e){let{components:t,...a}=e;return(0,n.kt)("wrapper",(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"I believe we have all been there, We "),(0,n.kt)("p",null,"For the shortest tutorial on building things, the only step for you is to run"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-js"},"npx hadmean\n")),(0,n.kt)("p",null,"Then go to ",(0,n.kt)("a",{parentName:"p",href:"http://localhost:3000"},"http://localhost:3000")," where you will be asked for your DB credentials and voila, You can start CRUDing your database. There is no Javascript, or SQL, or drag-and-drop tutorial needed to get started."),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"https://github.com/hadmean/hadmean"},"Hadmean")," is not just a CRUD builder, it is fully an internal tool generator. It might be simple to install but it has tons of features and is entirely customizable."),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"https://demo.hadmean.com"},"Here")," is a demo application built in under 59 seconds."),(0,n.kt)("p",null,"Other features include:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Authentication"),(0,n.kt)("li",{parentName:"ul"},"Users management"),(0,n.kt)("li",{parentName:"ul"},"Roles and permissions"),(0,n.kt)("li",{parentName:"ul"},"CRUD"),(0,n.kt)("li",{parentName:"ul"},"Relationships"),(0,n.kt)("li",{parentName:"ul"},"Forms validation"),(0,n.kt)("li",{parentName:"ul"},"Powerful Filters"),(0,n.kt)("li",{parentName:"ul"},"A powerful multi-page navigation system"),(0,n.kt)("li",{parentName:"ul"},"Automatic Introspection"),(0,n.kt)("li",{parentName:"ul"},"Views"),(0,n.kt)("li",{parentName:"ul"},"Intuitive dashboard builder")),(0,n.kt)("p",null,"You can always refer to the ",(0,n.kt)("a",{parentName:"p",href:"https://hadmean.com/docs/intro"},"documentation")," to get the best out of Hadmean and join our ",(0,n.kt)("a",{parentName:"p",href:"https://discord.gg/aV6DxwXhzN"},"discord server")," to interact with the community."),(0,n.kt)("p",null,"Start building your admin apps with Hadmean today! If you like this project and found this article helpful, please share and leave a star on ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/hadmean/hadmean"},"Github"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/4f2dd8bc.a7cb5912.js b/assets/js/4f2dd8bc.a7cb5912.js deleted file mode 100644 index b2838e04f..000000000 --- a/assets/js/4f2dd8bc.a7cb5912.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[8792],{1720:e=>{e.exports=JSON.parse('{"title":"Integrations","description":"Connecting Hadmean with your other process","slug":"/category/integrations","permalink":"/docs/category/integrations","navigation":{"previous":{"title":"Views","permalink":"/docs/app-configuration/views"},"next":{"title":"Form Integrations","permalink":"/docs/integrations/form"}}}')}}]); \ No newline at end of file diff --git a/assets/js/515a748a.1221dfd4.js b/assets/js/515a748a.1221dfd4.js new file mode 100644 index 000000000..6e52c4bfa --- /dev/null +++ b/assets/js/515a748a.1221dfd4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[26],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=a.createContext({}),p=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},c=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=p(n),m=o,N=u["".concat(s,".").concat(m)]||u[m]||d[m]||i;return n?a.createElement(N,r(r({ref:t},c),{},{components:n})):a.createElement(N,r({ref:t},c))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,r=new Array(i);r[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,r[1]=l;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var a=n(7462),o=(n(7294),n(3905));const i={sidebar_position:3},r="Environment Variables",l={unversionedId:"installation/env",id:"installation/env",title:"Environment Variables",description:"Running the npx hadmean command for the first time on a project will generate a .env.local file there, which will look like this",source:"@site/docs/installation/env.md",sourceDirName:"installation",slug:"/installation/env",permalink:"/docs/installation/env",draft:!1,editUrl:"https://github.com/hadmean/archaea/edit/main/docs/installation/env.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Setup",permalink:"/docs/installation/setup"},next:{title:"Security Implementations",permalink:"/docs/security"}},s={},p=[{value:"CONFIG_ADAPTOR",id:"config_adaptor",level:2},{value:"CONFIG_ADAPTOR_CONNECTION_STRING",id:"config_adaptor_connection_string",level:2},{value:"CACHE_ADAPTOR",id:"cache_adaptor",level:2},{value:"CACHE_ADAPTOR_CONNECTION_STRING",id:"cache_adaptor_connection_string",level:2},{value:"CREDENTIALS_ENCRYPTION_KEY & AUTH_TOKEN_KEY",id:"credentials_encryption_key--auth_token_key",level:2}],c={toc:p};function d(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,a.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"environment-variables"},"Environment Variables"),(0,o.kt)("p",null,"Running the ",(0,o.kt)("inlineCode",{parentName:"p"},"npx hadmean")," command for the first time on a project will generate a ",(0,o.kt)("inlineCode",{parentName:"p"},".env.local")," file there, which will look like this"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash",metastring:'title=".env.local"',title:'".env.local"'},"CONFIG_ADAPTOR=json-file\nCONFIG_ADAPTOR_CONNECTION_STRING=PLACE_HOLDER_CONFIG_ADAPTOR_CONNECTION_STRING\n\nCACHE_ADAPTOR=memory\nCACHE_ADAPTOR_CONNECTION_STRING=PLACE_HOLDER_CACHE_ADAPTOR_CONNECTION_STRING\n\nCREDENTIALS_ENCRYPTION_KEY=\nAUTH_TOKEN_KEY=\n")),(0,o.kt)("p",null,"These settings are good for most production use-cases but let's give details so you can make better decisions based on your needs."),(0,o.kt)("h2",{id:"config_adaptor"},"CONFIG_ADAPTOR"),(0,o.kt)("p",null,"Hadmean needs to store a lot of things like your ",(0,o.kt)("inlineCode",{parentName:"p"},"aes-256-gcm")," encrypted database credentials, application users, custom roles, app configuration etc."),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"CONFIG_ADAPTOR")," tells Hadmean how to store this information. The options for you here are"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"json-file")," - Good for production cases but best for development"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"database")," - Best for production cases"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"memory")," - Only good for unit testing purposes"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"redis")," - Good for production cases as well")),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"For most production use-cases we will encourage setting ",(0,o.kt)("inlineCode",{parentName:"p"},"CONFIG_ADAPTOR")," to ",(0,o.kt)("inlineCode",{parentName:"p"},"database")," or ",(0,o.kt)("inlineCode",{parentName:"p"},"redis"),".")),(0,o.kt)("admonition",{type:"warning"},(0,o.kt)("p",{parentName:"admonition"}," We don't encourage switching adaptors so we don't plan to have an adaptor migration script. Choose this setting carefully.")),(0,o.kt)("h2",{id:"config_adaptor_connection_string"},"CONFIG_ADAPTOR_CONNECTION_STRING"),(0,o.kt)("p",null,"If you choose ",(0,o.kt)("inlineCode",{parentName:"p"},"database")," or ",(0,o.kt)("inlineCode",{parentName:"p"},"redis")," in the option above then you will need to provide the credentials to it with ",(0,o.kt)("inlineCode",{parentName:"p"},"CONFIG_ADAPTOR_CONNECTION_STRING"),". It takes in the connection string of the resource."),(0,o.kt)("p",null,"All database tables will be created automatically and prefixed with ",(0,o.kt)("inlineCode",{parentName:"p"},"hadmean__")),(0,o.kt)("p",null,"Using ",(0,o.kt)("inlineCode",{parentName:"p"},"json-file")," creates a folder ",(0,o.kt)("inlineCode",{parentName:"p"},".config-data")," in your project folder so it will have to be moved everywhere you want to restore the project"),(0,o.kt)("admonition",{type:"warning"},(0,o.kt)("p",{parentName:"admonition"},"Editing your configuration data manually, especially for ",(0,o.kt)("inlineCode",{parentName:"p"},"json-file")," configuration can result in configuration loss if the JSON is malformed, So edit it at your risk")),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"Not setting this value when required will cause your application not to start as Hadmean can't set/read its settings")),(0,o.kt)("h2",{id:"cache_adaptor"},"CACHE_ADAPTOR"),(0,o.kt)("p",null,"There are some expensive/too frequent operations we do regularly in the backend. So, to speed things up, we cache these operations so that we don't do it again after the first time."),(0,o.kt)("p",null,"The default value of ",(0,o.kt)("inlineCode",{parentName:"p"},"memory")," is good for all use-cases except when you are running multiple instances of Hadmean for the same project as data mutated in one instance needs to be available to other instances."),(0,o.kt)("p",null,"This leads us to the only other option ",(0,o.kt)("inlineCode",{parentName:"p"},"redis")),(0,o.kt)("h2",{id:"cache_adaptor_connection_string"},"CACHE_ADAPTOR_CONNECTION_STRING"),(0,o.kt)("p",null,"if you want to use ",(0,o.kt)("inlineCode",{parentName:"p"},"redis")," in the option above the ",(0,o.kt)("inlineCode",{parentName:"p"},"CACHE_ADAPTOR_CONNECTION_STRING")," takes in the connection string to your URL"),(0,o.kt)("h2",{id:"credentials_encryption_key--auth_token_key"},"CREDENTIALS_ENCRYPTION_KEY & AUTH_TOKEN_KEY"),(0,o.kt)("p",null,"We need an encryption key to encrypt your database credentials so that if even it gets leaked, attackers can't do any harm with it."),(0,o.kt)("p",null,"We also need an authentication key to encode your auth tokens securely."),(0,o.kt)("p",null,"As you may have seen, Hadmean generates both keys for you so should be good not editing it but you can always edit if you want"),(0,o.kt)("p",null,"These keys have the requirements of having uppercase letters, lowercase letters, numbers and 64 characters"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/515a748a.1850036c.js b/assets/js/515a748a.1850036c.js deleted file mode 100644 index d3b3a5e78..000000000 --- a/assets/js/515a748a.1850036c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[8026],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var a=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=a.createContext({}),p=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},c=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),u=p(n),m=o,h=u["".concat(s,".").concat(m)]||u[m]||d[m]||i;return n?a.createElement(h,r(r({ref:t},c),{},{components:n})):a.createElement(h,r({ref:t},c))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,r=new Array(i);r[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,r[1]=l;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>d,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var a=n(7462),o=(n(7294),n(3905));const i={sidebar_position:3},r="Environment Variables",l={unversionedId:"installation/env",id:"installation/env",title:"Environment Variables",description:"Running the npx hadmean command for the first time on a project will generate a .env.local file there, which will look like this",source:"@site/docs/installation/env.md",sourceDirName:"installation",slug:"/installation/env",permalink:"/docs/installation/env",draft:!1,editUrl:"https://github.com/hadmean/archaea/edit/main/docs/installation/env.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"Setup",permalink:"/docs/installation/setup"},next:{title:"Security Implementations",permalink:"/docs/security"}},s={},p=[{value:"CONFIG_ADAPTOR",id:"config_adaptor",level:2},{value:"CONFIG_ADAPTOR_CONNECTION_STRING",id:"config_adaptor_connection_string",level:2},{value:"CACHE_ADAPTOR",id:"cache_adaptor",level:2},{value:"CACHE_ADAPTOR_CONNECTION_STRING",id:"cache_adaptor_connection_string",level:2},{value:"ENCRYPTION_KEY & AUTH_TOKEN_KEY",id:"encryption_key--auth_token_key",level:2}],c={toc:p};function d(e){let{components:t,...n}=e;return(0,o.kt)("wrapper",(0,a.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"environment-variables"},"Environment Variables"),(0,o.kt)("p",null,"Running the ",(0,o.kt)("inlineCode",{parentName:"p"},"npx hadmean")," command for the first time on a project will generate a ",(0,o.kt)("inlineCode",{parentName:"p"},".env.local")," file there, which will look like this"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash",metastring:'title=".env.local"',title:'".env.local"'},"CONFIG_ADAPTOR=json-file\nCONFIG_ADAPTOR_CONNECTION_STRING=PLACE_HOLDER_CONFIG_ADAPTOR_CONNECTION_STRING\n\nCACHE_ADAPTOR=memory\nCACHE_ADAPTOR_CONNECTION_STRING=PLACE_HOLDER_CACHE_ADAPTOR_CONNECTION_STRING\n\nENCRYPTION_KEY=\nAUTH_TOKEN_KEY=\n")),(0,o.kt)("p",null,"These settings are good for most production use-cases but let's give details so you can make better decisions based on your needs."),(0,o.kt)("h2",{id:"config_adaptor"},"CONFIG_ADAPTOR"),(0,o.kt)("p",null,"Hadmean needs to store a lot of things like your ",(0,o.kt)("inlineCode",{parentName:"p"},"aes-256-gcm")," encrypted database credentials, application users, custom roles, app configuration etc."),(0,o.kt)("p",null,(0,o.kt)("inlineCode",{parentName:"p"},"CONFIG_ADAPTOR")," tells Hadmean how to store this information. The options for you here are"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"json-file")," - Good for production cases but best for development"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"database")," - Best for production cases"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"memory")," - Only good for unit testing purposes"),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("inlineCode",{parentName:"li"},"redis")," - Good for production cases as well")),(0,o.kt)("admonition",{type:"info"},(0,o.kt)("p",{parentName:"admonition"},"For most production use-cases we will encourage setting ",(0,o.kt)("inlineCode",{parentName:"p"},"CONFIG_ADAPTOR")," to ",(0,o.kt)("inlineCode",{parentName:"p"},"database")," or ",(0,o.kt)("inlineCode",{parentName:"p"},"redis"),".")),(0,o.kt)("admonition",{type:"warning"},(0,o.kt)("p",{parentName:"admonition"}," We don't encourage switching adaptors so we don't plan to have an adaptor migration script. Choose this setting carefully.")),(0,o.kt)("h2",{id:"config_adaptor_connection_string"},"CONFIG_ADAPTOR_CONNECTION_STRING"),(0,o.kt)("p",null,"If you choose ",(0,o.kt)("inlineCode",{parentName:"p"},"database")," or ",(0,o.kt)("inlineCode",{parentName:"p"},"redis")," in the option above then you will need to provide the credentials to it with ",(0,o.kt)("inlineCode",{parentName:"p"},"CONFIG_ADAPTOR_CONNECTION_STRING"),". It takes in the connection string of the resource."),(0,o.kt)("p",null,"All database tables will be created automatically and prefixed with ",(0,o.kt)("inlineCode",{parentName:"p"},"hadmean__")),(0,o.kt)("p",null,"Using ",(0,o.kt)("inlineCode",{parentName:"p"},"json-file")," creates a folder ",(0,o.kt)("inlineCode",{parentName:"p"},".config-data")," in your project folder so it will have to be moved everywhere you want to restore the project"),(0,o.kt)("admonition",{type:"warning"},(0,o.kt)("p",{parentName:"admonition"},"Editing your configuration data manually, especially for ",(0,o.kt)("inlineCode",{parentName:"p"},"json-file")," configuration can result in configuration loss if the JSON is malformed, So edit it at your risk")),(0,o.kt)("admonition",{type:"caution"},(0,o.kt)("p",{parentName:"admonition"},"Not setting this value when required will cause your application not to start as Hadmean can't set/read its settings")),(0,o.kt)("h2",{id:"cache_adaptor"},"CACHE_ADAPTOR"),(0,o.kt)("p",null,"There are some expensive/too frequent operations we do regularly in the backend. So, to speed things up, we cache these operations so that we don't do it again after the first time."),(0,o.kt)("p",null,"The default value of ",(0,o.kt)("inlineCode",{parentName:"p"},"memory")," is good for all use-cases except when you are running multiple instances of Hadmean for the same project as data mutated in one instance needs to be available to other instances."),(0,o.kt)("p",null,"This leads us to the only other option ",(0,o.kt)("inlineCode",{parentName:"p"},"redis")),(0,o.kt)("h2",{id:"cache_adaptor_connection_string"},"CACHE_ADAPTOR_CONNECTION_STRING"),(0,o.kt)("p",null,"if you want to use ",(0,o.kt)("inlineCode",{parentName:"p"},"redis")," in the option above the ",(0,o.kt)("inlineCode",{parentName:"p"},"CACHE_ADAPTOR_CONNECTION_STRING")," takes in the connection string to your URL"),(0,o.kt)("h2",{id:"encryption_key--auth_token_key"},"ENCRYPTION_KEY & AUTH_TOKEN_KEY"),(0,o.kt)("p",null,"We need an encryption key to encrypt your database credentials so that if even it gets leaked, attackers can't do any harm with it."),(0,o.kt)("p",null,"We also need an authentication key to encode your auth tokens securely."),(0,o.kt)("p",null,"As you may have seen, Hadmean generates both keys for you so should be good not editing it but you can always edit if you want"),(0,o.kt)("p",null,"These keys have the requirements of having uppercase letters, lowercase letters, numbers and 64 characters"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/529.3d96a326.js b/assets/js/529.3d96a326.js new file mode 100644 index 000000000..7955b1037 --- /dev/null +++ b/assets/js/529.3d96a326.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[529],{9058:(e,t,a)=>{a.d(t,{Z:()=>_});var l=a(7294),n=a(6010),r=a(2185),s=a(7524),o=a(9960),i=a(5999);const c="sidebar_re4s",m="sidebarItemTitle_pO2u",u="sidebarItemList_Yudw",d="sidebarItem__DBe",g="sidebarItemLink_mo7H",p="sidebarItemLinkActive_I1ZP";function h(e){let{sidebar:t}=e;return l.createElement("aside",{className:"col col--3"},l.createElement("nav",{className:(0,n.Z)(c,"thin-scrollbar"),"aria-label":(0,i.I)({id:"theme.blog.sidebar.navAriaLabel",message:"Blog recent posts navigation",description:"The ARIA label for recent posts in the blog sidebar"})},l.createElement("div",{className:(0,n.Z)(m,"margin-bottom--md")},t.title),l.createElement("ul",{className:(0,n.Z)(u,"clean-list")},t.items.map((e=>l.createElement("li",{key:e.permalink,className:d},l.createElement(o.Z,{isNavLink:!0,to:e.permalink,className:g,activeClassName:p},e.title)))))))}var E=a(3102);function f(e){let{sidebar:t}=e;return l.createElement("ul",{className:"menu__list"},t.items.map((e=>l.createElement("li",{key:e.permalink,className:"menu__list-item"},l.createElement(o.Z,{isNavLink:!0,to:e.permalink,className:"menu__link",activeClassName:"menu__link--active"},e.title)))))}function b(e){return l.createElement(E.Zo,{component:f,props:e})}function v(e){let{sidebar:t}=e;const a=(0,s.i)();return null!=t&&t.items.length?"mobile"===a?l.createElement(b,{sidebar:t}):l.createElement(h,{sidebar:t}):null}function _(e){const{sidebar:t,toc:a,children:s,...o}=e,i=t&&t.items.length>0;return l.createElement(r.Z,o,l.createElement("div",{className:"container margin-vert--lg"},l.createElement("div",{className:"row"},l.createElement(v,{sidebar:t}),l.createElement("main",{className:(0,n.Z)("col",{"col--7":i,"col--9 col--offset-1":!i}),itemScope:!0,itemType:"http://schema.org/Blog"},s),a&&l.createElement("div",{className:"col col--2"},a))))}},390:(e,t,a)=>{a.d(t,{Z:()=>R});var l=a(7294),n=a(6010),r=a(9460),s=a(4996);function o(e){let{children:t,className:a}=e;const{frontMatter:n,assets:o}=(0,r.C)(),{withBaseUrl:i}=(0,s.C)(),c=o.image??n.image;return l.createElement("article",{className:a,itemProp:"blogPost",itemScope:!0,itemType:"http://schema.org/BlogPosting"},c&&l.createElement("meta",{itemProp:"image",content:i(c,{absolute:!0})}),t)}var i=a(9960);const c="title_f1Hy";function m(e){let{className:t}=e;const{metadata:a,isBlogPostPage:s}=(0,r.C)(),{permalink:o,title:m}=a,u=s?"h1":"h2";return l.createElement(u,{className:(0,n.Z)(c,t),itemProp:"headline"},s?m:l.createElement(i.Z,{itemProp:"url",to:o},m))}var u=a(5999),d=a(8824);const g="container_mt6G";function p(e){let{readingTime:t}=e;const a=function(){const{selectMessage:e}=(0,d.c)();return t=>{const a=Math.ceil(t);return e(a,(0,u.I)({id:"theme.blog.post.readingTime.plurals",description:'Pluralized label for "{readingTime} min read". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One min read|{readingTime} min read"},{readingTime:a}))}}();return l.createElement(l.Fragment,null,a(t))}function h(e){let{date:t,formattedDate:a}=e;return l.createElement("time",{dateTime:t,itemProp:"datePublished"},a)}function E(){return l.createElement(l.Fragment,null," \xb7 ")}function f(e){let{className:t}=e;const{metadata:a}=(0,r.C)(),{date:s,formattedDate:o,readingTime:i}=a;return l.createElement("div",{className:(0,n.Z)(g,"margin-vert--md",t)},l.createElement(h,{date:s,formattedDate:o}),void 0!==i&&l.createElement(l.Fragment,null,l.createElement(E,null),l.createElement(p,{readingTime:i})))}function b(e){return e.href?l.createElement(i.Z,e):l.createElement(l.Fragment,null,e.children)}function v(e){let{author:t,className:a}=e;const{name:r,title:s,url:o,imageURL:i,email:c}=t,m=o||c&&`mailto:${c}`||void 0;return l.createElement("div",{className:(0,n.Z)("avatar margin-bottom--sm",a)},i&&l.createElement(b,{href:m,className:"avatar__photo-link"},l.createElement("img",{className:"avatar__photo",src:i,alt:r})),r&&l.createElement("div",{className:"avatar__intro",itemProp:"author",itemScope:!0,itemType:"https://schema.org/Person"},l.createElement("div",{className:"avatar__name"},l.createElement(b,{href:m,itemProp:"url"},l.createElement("span",{itemProp:"name"},r))),s&&l.createElement("small",{className:"avatar__subtitle",itemProp:"description"},s)))}const _="authorCol_Hf19",N="imageOnlyAuthorRow_pa_O",Z="imageOnlyAuthorCol_G86a";function P(e){let{className:t}=e;const{metadata:{authors:a},assets:s}=(0,r.C)();if(0===a.length)return null;const o=a.every((e=>{let{name:t}=e;return!t}));return l.createElement("div",{className:(0,n.Z)("margin-top--md margin-bottom--sm",o?N:"row",t)},a.map(((e,t)=>l.createElement("div",{className:(0,n.Z)(!o&&"col col--6",o?Z:_),key:t},l.createElement(v,{author:{...e,imageURL:s.authorsImageUrls[t]??e.imageURL}})))))}function k(){return l.createElement("header",null,l.createElement(m,null),l.createElement(f,null),l.createElement(P,null))}var T=a(8780),w=a(210);function C(e){let{children:t,className:a}=e;const{isBlogPostPage:s}=(0,r.C)();return l.createElement("div",{id:s?T.blogPostContainerID:void 0,className:(0,n.Z)("markdown",a),itemProp:"articleBody"},l.createElement(w.Z,null,t))}var y=a(4881),B=a(1526),F=a(7462);function I(){return l.createElement("b",null,l.createElement(u.Z,{id:"theme.blog.post.readMore",description:"The label used in blog post item excerpts to link to full blog posts"},"Read More"))}function x(e){const{blogPostTitle:t,...a}=e;return l.createElement(i.Z,(0,F.Z)({"aria-label":(0,u.I)({message:"Read more about {title}",id:"theme.blog.post.readMoreLabel",description:"The ARIA label for the link to full blog posts from excerpts"},{title:t})},a),l.createElement(I,null))}const L="blogPostFooterDetailsFull_mRVl";function M(){const{metadata:e,isBlogPostPage:t}=(0,r.C)(),{tags:a,title:s,editUrl:o,hasTruncateMarker:i}=e,c=!t&&i,m=a.length>0;return m||c||o?l.createElement("footer",{className:(0,n.Z)("row docusaurus-mt-lg",t&&L)},m&&l.createElement("div",{className:(0,n.Z)("col",{"col--9":c})},l.createElement(B.Z,{tags:a})),t&&o&&l.createElement("div",{className:"col margin-top--sm"},l.createElement(y.Z,{editUrl:o})),c&&l.createElement("div",{className:(0,n.Z)("col text--right",{"col--3":m})},l.createElement(x,{blogPostTitle:s,to:e.permalink}))):null}function R(e){let{children:t,className:a}=e;const s=function(){const{isBlogPostPage:e}=(0,r.C)();return e?void 0:"margin-bottom--xl"}();return l.createElement(o,{className:(0,n.Z)(s,a)},l.createElement(k,null),l.createElement(C,null,t),l.createElement(M,null))}},4881:(e,t,a)=>{a.d(t,{Z:()=>m});var l=a(7294),n=a(5999),r=a(5281),s=a(7462),o=a(6010);const i="iconEdit_Z9Sw";function c(e){let{className:t,...a}=e;return l.createElement("svg",(0,s.Z)({fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,o.Z)(i,t),"aria-hidden":"true"},a),l.createElement("g",null,l.createElement("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})))}function m(e){let{editUrl:t}=e;return l.createElement("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:r.k.common.editThisPage},l.createElement(c,null),l.createElement(n.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page"},"Edit this page"))}},2244:(e,t,a)=>{a.d(t,{Z:()=>s});var l=a(7294),n=a(6010),r=a(9960);function s(e){const{permalink:t,title:a,subLabel:s,isNext:o}=e;return l.createElement(r.Z,{className:(0,n.Z)("pagination-nav__link",o?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t},s&&l.createElement("div",{className:"pagination-nav__sublabel"},s),l.createElement("div",{className:"pagination-nav__label"},a))}},3008:(e,t,a)=>{a.d(t,{Z:()=>c});var l=a(7294),n=a(6010),r=a(9960);const s="tag_zVej",o="tagRegular_sFm0",i="tagWithCount_h2kH";function c(e){let{permalink:t,label:a,count:c}=e;return l.createElement(r.Z,{href:t,className:(0,n.Z)(s,c?i:o)},a,c&&l.createElement("span",null,c))}},1526:(e,t,a)=>{a.d(t,{Z:()=>c});var l=a(7294),n=a(6010),r=a(5999),s=a(3008);const o="tags_jXut",i="tag_QGVx";function c(e){let{tags:t}=e;return l.createElement(l.Fragment,null,l.createElement("b",null,l.createElement(r.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list"},"Tags:")),l.createElement("ul",{className:(0,n.Z)(o,"padding--none","margin-left--sm")},t.map((e=>{let{label:t,permalink:a}=e;return l.createElement("li",{key:a,className:i},l.createElement(s.Z,{label:t,permalink:a}))}))))}},9460:(e,t,a)=>{a.d(t,{C:()=>o,n:()=>s});var l=a(7294),n=a(902);const r=l.createContext(null);function s(e){let{children:t,content:a,isBlogPostPage:n=!1}=e;const s=function(e){let{content:t,isBlogPostPage:a}=e;return(0,l.useMemo)((()=>({metadata:t.metadata,frontMatter:t.frontMatter,assets:t.assets,toc:t.toc,isBlogPostPage:a})),[t,a])}({content:a,isBlogPostPage:n});return l.createElement(r.Provider,{value:s},t)}function o(){const e=(0,l.useContext)(r);if(null===e)throw new n.i6("BlogPostProvider");return e}},8824:(e,t,a)=>{a.d(t,{c:()=>c});var l=a(7294),n=a(2263);const r=["zero","one","two","few","many","other"];function s(e){return r.filter((t=>e.includes(t)))}const o={locale:"en",pluralForms:s(["one","other"]),select:e=>1===e?"one":"other"};function i(){const{i18n:{currentLocale:e}}=(0,n.Z)();return(0,l.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:s(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${t.message}\n`),o}}),[e])}function c(){const e=i();return{selectMessage:(t,a)=>function(e,t,a){const l=e.split("|");if(1===l.length)return l[0];l.length>a.pluralForms.length&&console.error(`For locale=${a.locale}, a maximum of ${a.pluralForms.length} plural forms are expected (${a.pluralForms.join(",")}), but the message contains ${l.length}: ${e}`);const n=a.select(t),r=a.pluralForms.indexOf(n);return l[Math.min(r,l.length-1)]}(a,t,e)}}}}]); \ No newline at end of file diff --git a/assets/js/56776d7b.73172666.js b/assets/js/56776d7b.73172666.js new file mode 100644 index 000000000..2995f89eb --- /dev/null +++ b/assets/js/56776d7b.73172666.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[846],{6464:a=>{a.exports=JSON.parse('{"label":"how-to","permalink":"/blog/tags/how-to","allTagsPath":"/blog/tags","count":1}')}}]); \ No newline at end of file diff --git a/assets/js/5ad2500b.18c62caa.js b/assets/js/5ad2500b.18c62caa.js deleted file mode 100644 index e58bc1655..000000000 --- a/assets/js/5ad2500b.18c62caa.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[2979],{3599:a=>{a.exports=JSON.parse('{"permalink":"/blog/tags/introduction","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/5ad2500b.44572ad3.js b/assets/js/5ad2500b.44572ad3.js new file mode 100644 index 000000000..66c76f2a5 --- /dev/null +++ b/assets/js/5ad2500b.44572ad3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[979],{3599:a=>{a.exports=JSON.parse('{"permalink":"/blog/tags/introduction","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/61e3be1c.c51c88c8.js b/assets/js/61e3be1c.c51c88c8.js new file mode 100644 index 000000000..725f5c9e6 --- /dev/null +++ b/assets/js/61e3be1c.c51c88c8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[807],{4409:a=>{a.exports=JSON.parse('{"permalink":"/blog/tags/how-to","page":1,"postsPerPage":10,"totalPages":1,"totalCount":1,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/6875c492.0d0b328b.js b/assets/js/6875c492.0d0b328b.js new file mode 100644 index 000000000..8db736d78 --- /dev/null +++ b/assets/js/6875c492.0d0b328b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[610],{9703:(e,t,a)=>{a.d(t,{Z:()=>s});var n=a(7294),l=a(5999),r=a(2244);function s(e){const{metadata:t}=e,{previousPage:a,nextPage:s}=t;return n.createElement("nav",{className:"pagination-nav","aria-label":(0,l.I)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"})},a&&n.createElement(r.Z,{permalink:a,title:n.createElement(l.Z,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)"},"Newer Entries")}),s&&n.createElement(r.Z,{permalink:s,title:n.createElement(l.Z,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)"},"Older Entries"),isNext:!0}))}},9985:(e,t,a)=>{a.d(t,{Z:()=>s});var n=a(7294),l=a(9460),r=a(390);function s(e){let{items:t,component:a=r.Z}=e;return n.createElement(n.Fragment,null,t.map((e=>{let{content:t}=e;return n.createElement(l.n,{key:t.metadata.permalink,content:t},n.createElement(a,null,n.createElement(t,null)))})))}},1714:(e,t,a)=>{a.r(t),a.d(t,{default:()=>E});var n=a(7294),l=a(6010),r=a(5999),s=a(8824),o=a(1944),i=a(5281),g=a(9960),c=a(9058),m=a(9703),p=a(197),u=a(9985);function d(e){const t=function(){const{selectMessage:e}=(0,s.c)();return t=>e(t,(0,r.I)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One post|{count} posts"},{count:t}))}();return(0,r.I)({id:"theme.blog.tagTitle",description:"The title of the page for a blog tag",message:'{nPosts} tagged with "{tagName}"'},{nPosts:t(e.count),tagName:e.label})}function h(e){let{tag:t}=e;const a=d(t);return n.createElement(n.Fragment,null,n.createElement(o.d,{title:a}),n.createElement(p.Z,{tag:"blog_tags_posts"}))}function b(e){let{tag:t,items:a,sidebar:l,listMetadata:s}=e;const o=d(t);return n.createElement(c.Z,{sidebar:l},n.createElement("header",{className:"margin-bottom--xl"},n.createElement("h1",null,o),n.createElement(g.Z,{href:t.allTagsPath},n.createElement(r.Z,{id:"theme.tags.tagsPageLink",description:"The label of the link targeting the tag list page"},"View All Tags"))),n.createElement(u.Z,{items:a}),n.createElement(m.Z,{metadata:s}))}function E(e){return n.createElement(o.FG,{className:(0,l.Z)(i.k.wrapper.blogPages,i.k.page.blogTagPostListPage)},n.createElement(h,e),n.createElement(b,e))}}}]); \ No newline at end of file diff --git a/assets/js/6875c492.bc24e8c3.js b/assets/js/6875c492.bc24e8c3.js deleted file mode 100644 index 00fc80b2f..000000000 --- a/assets/js/6875c492.bc24e8c3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[8610],{9703:(e,t,a)=>{a.d(t,{Z:()=>s});var n=a(7294),l=a(5999),r=a(2244);function s(e){const{metadata:t}=e,{previousPage:a,nextPage:s}=t;return n.createElement("nav",{className:"pagination-nav","aria-label":(0,l.I)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"})},a&&n.createElement(r.Z,{permalink:a,title:n.createElement(l.Z,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)"},"Newer Entries")}),s&&n.createElement(r.Z,{permalink:s,title:n.createElement(l.Z,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)"},"Older Entries"),isNext:!0}))}},9985:(e,t,a)=>{a.d(t,{Z:()=>s});var n=a(7294),l=a(9460),r=a(390);function s(e){let{items:t,component:a=r.Z}=e;return n.createElement(n.Fragment,null,t.map((e=>{let{content:t}=e;return n.createElement(l.n,{key:t.metadata.permalink,content:t},n.createElement(a,null,n.createElement(t,null)))})))}},1714:(e,t,a)=>{a.r(t),a.d(t,{default:()=>E});var n=a(7294),l=a(6010),r=a(5999),s=a(8824),o=a(1944),i=a(5281),g=a(9960),c=a(9058),m=a(9703),p=a(197),u=a(9985);function d(e){const t=function(){const{selectMessage:e}=(0,s.c)();return t=>e(t,(0,r.I)({id:"theme.blog.post.plurals",description:'Pluralized label for "{count} posts". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One post|{count} posts"},{count:t}))}();return(0,r.I)({id:"theme.blog.tagTitle",description:"The title of the page for a blog tag",message:'{nPosts} tagged with "{tagName}"'},{nPosts:t(e.count),tagName:e.label})}function h(e){let{tag:t}=e;const a=d(t);return n.createElement(n.Fragment,null,n.createElement(o.d,{title:a}),n.createElement(p.Z,{tag:"blog_tags_posts"}))}function b(e){let{tag:t,items:a,sidebar:l,listMetadata:s}=e;const o=d(t);return n.createElement(c.Z,{sidebar:l},n.createElement("header",{className:"margin-bottom--xl"},n.createElement("h1",null,o),n.createElement(g.Z,{href:t.allTagsPath},n.createElement(r.Z,{id:"theme.tags.tagsPageLink",description:"The label of the link targeting the tag list page"},"View All Tags"))),n.createElement(u.Z,{items:a}),n.createElement(m.Z,{metadata:s}))}function E(e){return n.createElement(o.FG,{className:(0,l.Z)(i.k.wrapper.blogPages,i.k.page.blogTagPostListPage)},n.createElement(h,e),n.createElement(b,e))}}}]); \ No newline at end of file diff --git a/assets/js/6b043ae0.7ce32c31.js b/assets/js/6b043ae0.7ce32c31.js deleted file mode 100644 index 31dd50a26..000000000 --- a/assets/js/6b043ae0.7ce32c31.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[4318],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>d});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),m=c(n),d=a,f=m["".concat(l,".").concat(d)]||m[d]||p[d]||o;return n?r.createElement(f,i(i({ref:t},u),{},{components:n})):r.createElement(f,i({ref:t},u))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var r=n(7462),a=(n(7294),n(3905));const o={sidebar_position:2},i="System Profile",s={unversionedId:"accounts/system-profile",id:"accounts/system-profile",title:"System Profile",description:"Hadmean rolls out its authentication and authorization but sometimes, you may want to use the details of your user from other systems in Hadmean like their IDs, roles, names, etc.",source:"@site/docs/accounts/system-profile.md",sourceDirName:"accounts",slug:"/accounts/system-profile",permalink:"/docs/accounts/system-profile",draft:!1,editUrl:"https://github.com/hadmean/archaea/edit/main/docs/accounts/system-profile.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Account management",permalink:"/docs/category/account-management"},next:{title:"Roles and Permissions",permalink:"/docs/accounts/roles"}},l={},c=[],u={toc:c};function p(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"system-profile"},"System Profile"),(0,a.kt)("p",null,"Hadmean rolls out its authentication and authorization but sometimes, you may want to use the details of your user from other systems in Hadmean like their IDs, roles, names, etc."),(0,a.kt)("p",null,(0,a.kt)("inlineCode",{parentName:"p"},"System Profile")," is how you pass that information to Hadmean."),(0,a.kt)("p",null,"You will just have to paste in that information as a JSON object, save it and it will be regurgitated to you when you need it. "),(0,a.kt)("p",null,"For a quick explanation, This system profile can be used to implement "),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"appending the ",(0,a.kt)("inlineCode",{parentName:"li"},"userId")," of who is updating a user account balance to the form."),(0,a.kt)("li",{parentName:"ul"},"disabling the update rank/account balance field for admins when updating their profile."),(0,a.kt)("li",{parentName:"ul"},"Hiding a resend verification button for users already verified.")),(0,a.kt)("p",null,"Hang tight, we will give more details on this in the sections where they will be implemented."),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"The field is optional, the only requirement is that the value is a valid JSON object.")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/78784c1a.683c02d0.js b/assets/js/78784c1a.683c02d0.js new file mode 100644 index 000000000..8e70cfcb3 --- /dev/null +++ b/assets/js/78784c1a.683c02d0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[198],{7344:a=>{a.exports=JSON.parse('{"title":"Installation","description":"Setting up Hadmean","slug":"/category/installation","permalink":"/docs/category/installation","navigation":{"previous":{"title":"Introduction","permalink":"/docs/intro"},"next":{"title":"Requirements","permalink":"/docs/installation/requirements"}}}')}}]); \ No newline at end of file diff --git a/assets/js/78784c1a.c990eb6c.js b/assets/js/78784c1a.c990eb6c.js deleted file mode 100644 index 336acb3ec..000000000 --- a/assets/js/78784c1a.c990eb6c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[4198],{7344:a=>{a.exports=JSON.parse('{"title":"Installation","description":"Setting up Hadmean","slug":"/category/installation","permalink":"/docs/category/installation","navigation":{"previous":{"title":"Introduction","permalink":"/docs/intro"},"next":{"title":"Requirements","permalink":"/docs/installation/requirements"}}}')}}]); \ No newline at end of file diff --git a/assets/js/814f3328.65833dd4.js b/assets/js/814f3328.65833dd4.js new file mode 100644 index 000000000..cb2e6495a --- /dev/null +++ b/assets/js/814f3328.65833dd4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[535],{5641:e=>{e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"How to generate a powerful admin app from your database","permalink":"/blog/2022/12/09/how-to-generate-a-powerful-admin-app-from-your-database"},{"title":"Why you should write more integration tests.","permalink":"/blog/2022/11/28/why-you-should-write-more-integrations-tests"},{"title":"Build a CRUD interface for your database in under 59 seconds","permalink":"/blog/2022/10/06/crud-under-59-seconds"},{"title":"Hadmean - Introducing the easiest, most efficient internal tool generator.","permalink":"/blog/2022/10/05/introduction"}]}')}}]); \ No newline at end of file diff --git a/assets/js/814f3328.ea31b41d.js b/assets/js/814f3328.ea31b41d.js deleted file mode 100644 index 16a891998..000000000 --- a/assets/js/814f3328.ea31b41d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[2535],{5641:e=>{e.exports=JSON.parse('{"title":"Recent posts","items":[{"title":"Build a CRUD interface for your database in under 59 seconds","permalink":"/blog/2022/10/06/crud-under-59-seconds"},{"title":"Hadmean - Introducing the easiest, most efficient internal tool generator.","permalink":"/blog/2022/10/05/introduction"}]}')}}]); \ No newline at end of file diff --git a/assets/js/86a1cb36.5a8f91c5.js b/assets/js/86a1cb36.5a8f91c5.js new file mode 100644 index 000000000..69fbdb43a --- /dev/null +++ b/assets/js/86a1cb36.5a8f91c5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[211],{3905:(e,t,a)=>{a.d(t,{Zo:()=>s,kt:()=>d});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function o(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}return a}function l(e){for(var t=1;t=0||(n[a]=e[a]);return n}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(n[a]=e[a])}return n}var p=r.createContext({}),u=function(e){var t=r.useContext(p),a=t;return e&&(a="function"==typeof e?e(t):l(l({},t),e)),a},s=function(e){var t=u(e.components);return r.createElement(p.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},c=r.forwardRef((function(e,t){var a=e.components,n=e.mdxType,o=e.originalType,p=e.parentName,s=i(e,["components","mdxType","originalType","parentName"]),c=u(a),d=n,h=c["".concat(p,".").concat(d)]||c[d]||m[d]||o;return a?r.createElement(h,l(l({ref:t},s),{},{components:a})):r.createElement(h,l({ref:t},s))}));function d(e,t){var a=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var o=a.length,l=new Array(o);l[0]=c;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i.mdxType="string"==typeof e?e:n,l[1]=i;for(var u=2;u{a.r(t),a.d(t,{assets:()=>p,contentTitle:()=>l,default:()=>m,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var r=a(7462),n=(a(7294),a(3905));const o={title:"How to generate a powerful admin app from your database",authors:["ayobami"],tags:["how-to"]},l=void 0,i={permalink:"/blog/2022/12/09/how-to-generate-a-powerful-admin-app-from-your-database",source:"@site/blog/2022-12-09-how-to-generate-a-powerful-admin-app-from-your-database/index.md",title:"How to generate a powerful admin app from your database",description:"I believe we have all been there, We",date:"2022-12-09T00:00:00.000Z",formattedDate:"December 9, 2022",tags:[{label:"how-to",permalink:"/blog/tags/how-to"}],readingTime:.94,hasTruncateMarker:!1,authors:[{name:"Ayobami Akingbade",title:"Creator of Hadmean",url:"https://github.com/thrownullexception",imageURL:"https://github.com/thrownullexception.png",key:"ayobami"}],frontMatter:{title:"How to generate a powerful admin app from your database",authors:["ayobami"],tags:["how-to"]},nextItem:{title:"Why you should write more integration tests.",permalink:"/blog/2022/11/28/why-you-should-write-more-integrations-tests"}},p={authorsImageUrls:[void 0]},u=[],s={toc:u};function m(e){let{components:t,...a}=e;return(0,n.kt)("wrapper",(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"I believe we have all been there, We "),(0,n.kt)("p",null,"For the shortest tutorial on building things, the only step for you is to run"),(0,n.kt)("pre",null,(0,n.kt)("code",{parentName:"pre",className:"language-js"},"npx hadmean\n")),(0,n.kt)("p",null,"Then go to ",(0,n.kt)("a",{parentName:"p",href:"http://localhost:3000"},"http://localhost:3000")," where you will be asked for your DB credentials and voila, You can start CRUDing your database. There is no Javascript, or SQL, or drag-and-drop tutorial needed to get started."),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"https://github.com/hadmean/hadmean"},"Hadmean")," is not just a CRUD builder, it is fully an internal tool generator. It might be simple to install but it has tons of features and is entirely customizable."),(0,n.kt)("p",null,(0,n.kt)("a",{parentName:"p",href:"https://demo.hadmean.com"},"Here")," is a demo application built in under 59 seconds."),(0,n.kt)("p",null,"Other features include:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"Authentication"),(0,n.kt)("li",{parentName:"ul"},"Users management"),(0,n.kt)("li",{parentName:"ul"},"Roles and permissions"),(0,n.kt)("li",{parentName:"ul"},"CRUD"),(0,n.kt)("li",{parentName:"ul"},"Relationships"),(0,n.kt)("li",{parentName:"ul"},"Forms validation"),(0,n.kt)("li",{parentName:"ul"},"Powerful Filters"),(0,n.kt)("li",{parentName:"ul"},"A powerful multi-page navigation system"),(0,n.kt)("li",{parentName:"ul"},"Automatic Introspection"),(0,n.kt)("li",{parentName:"ul"},"Views"),(0,n.kt)("li",{parentName:"ul"},"Intuitive dashboard builder")),(0,n.kt)("p",null,"You can always refer to the ",(0,n.kt)("a",{parentName:"p",href:"https://hadmean.com/docs/intro"},"documentation")," to get the best out of Hadmean and join our ",(0,n.kt)("a",{parentName:"p",href:"https://discord.gg/aV6DxwXhzN"},"discord server")," to interact with the community."),(0,n.kt)("p",null,"Start building your admin apps with Hadmean today! If you like this project and found this article helpful, please share and leave a star on ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/hadmean/hadmean"},"Github"),"."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/8efff416.faadd2e2.js b/assets/js/8efff416.faadd2e2.js deleted file mode 100644 index 3d0766af0..000000000 --- a/assets/js/8efff416.faadd2e2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[6760],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>d});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=a.createContext({}),c=function(e){var t=a.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=c(e.components);return a.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},y=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),y=c(n),d=r,m=y["".concat(l,".").concat(d)]||y[d]||p[d]||o;return n?a.createElement(m,i(i({ref:t},u),{},{components:n})):a.createElement(m,i({ref:t},u))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=y;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:r,i[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var a=n(7462),r=(n(7294),n(3905));const o={sidebar_position:2},i="Variables",s={unversionedId:"integrations/variables",id:"integrations/variables",title:"Variables",description:"Variables are the way you store things that you use often when doing integrations. Since they are key-value pairs, you can pretty much store anything in them and as much as you want.",source:"@site/docs/integrations/variables.md",sourceDirName:"integrations",slug:"/integrations/variables",permalink:"/docs/integrations/variables",draft:!1,editUrl:"https://github.com/hadmean/archaea/edit/main/docs/integrations/variables.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Form Integrations",permalink:"/docs/integrations/form"},next:{title:"Account management",permalink:"/docs/category/account-management"}},l={},c=[{value:"Constants",id:"constants",level:3},{value:"Secrets",id:"secrets",level:3}],u={toc:c};function p(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"variables"},"Variables"),(0,r.kt)("p",null,"Variables are the way you store things that you use often when doing integrations. Since they are key-value pairs, you can pretty much store anything in them and as much as you want."),(0,r.kt)("p",null,"You can store your company name so that you don't repeat them too often in your email templates."),(0,r.kt)("p",null,"You can store your most used Slack channel ID, company address, link to your company logo, your preferred email sender's address etc. "),(0,r.kt)("p",null,"Basically, if you find that you are using repeating a value too much during integrations then it is probably a good idea to store it as a variable."),(0,r.kt)("p",null,"Any other good reason to use variables often is to have a central place to manage them. Say you store your company address as a variable and you then change your company address, then you will just need to update once in the Variables UI rather than combing through all the usages and trying to update them manually."),(0,r.kt)("p",null,"There are two types of Variables."),(0,r.kt)("h3",{id:"constants"},"Constants"),(0,r.kt)("p",null,"Here you store public values. Like your company name, company address etc. "),(0,r.kt)("p",null,"They can be managed and viewed by anybody that has the ",(0,r.kt)("inlineCode",{parentName:"p"},"CAN_CONFIGURE_APP")," permission."),(0,r.kt)("h3",{id:"secrets"},"Secrets"),(0,r.kt)("p",null,"These are values you will keep or are asked to keep in a ",(0,r.kt)("inlineCode",{parentName:"p"},".env")," file usually tokens or private keys."),(0,r.kt)("p",null,"All secrets provided in the application are encrypted at rest using ",(0,r.kt)("inlineCode",{parentName:"p"},"aes-256-gcm"),". "),(0,r.kt)("p",null,"The list can be view by users that have the ",(0,r.kt)("inlineCode",{parentName:"p"},"CAN_CONFIGURE_APP")," or ",(0,r.kt)("inlineCode",{parentName:"p"},"CAN_MANAGE_ACTIONS")," permission but can only be manage by users with the ",(0,r.kt)("inlineCode",{parentName:"p"},"CAN_MANAGE_ACTIONS")," permission."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/92a485f5.e7fc9b56.js b/assets/js/92a485f5.e7fc9b56.js deleted file mode 100644 index 755b50871..000000000 --- a/assets/js/92a485f5.e7fc9b56.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[1968],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},c=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},p=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,s=e.parentName,c=l(e,["components","mdxType","originalType","parentName"]),p=u(n),m=r,h=p["".concat(s,".").concat(m)]||p[m]||d[m]||o;return n?a.createElement(h,i(i({ref:t},c),{},{components:n})):a.createElement(h,i({ref:t},c))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,i=new Array(o);i[0]=p;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:r,i[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>d,frontMatter:()=>o,metadata:()=>l,toc:()=>u});var a=n(7462),r=(n(7294),n(3905));const o={sidebar_position:6},i="Form",l={unversionedId:"app-configuration/form",id:"app-configuration/form",title:"Form",description:"Forms complexities always grow in parallel with business requirements and we believe giving you coding access to your manage your forms will help you when the requirements get complex as opposed to making things visual which will block you when your requirement gets too complex.",source:"@site/docs/app-configuration/form.md",sourceDirName:"app-configuration",slug:"/app-configuration/form",permalink:"/docs/app-configuration/form",draft:!1,editUrl:"https://github.com/hadmean/archaea/edit/main/docs/app-configuration/form.md",tags:[],version:"current",sidebarPosition:6,frontMatter:{sidebar_position:6},sidebar:"tutorialSidebar",previous:{title:"Relations",permalink:"/docs/app-configuration/relations"},next:{title:"System Settings",permalink:"/docs/app-configuration/system"}},s={},u=[{value:"API",id:"api",level:2},{value:"Field State",id:"field-state",level:2},{value:"Before Submit",id:"before-submit",level:2}],c={toc:u};function d(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},c,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"form"},"Form"),(0,r.kt)("p",null,"Forms complexities always grow in parallel with business requirements and we believe giving you coding access to your manage your forms will help you when the requirements get complex as opposed to making things visual which will block you when your requirement gets too complex. "),(0,r.kt)("p",null,"As you will expect you will need some Javascript knowledge to proceed in this section"),(0,r.kt)("p",null,"There are three forms that we use to achieve this"),(0,r.kt)("h2",{id:"api"},"API"),(0,r.kt)("p",null,"First, let talk about the API"),(0,r.kt)("p",null,"The objects available to you are"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-js"},'{\n // The current/submit values in the form\n formValues: Record,\n // All the route params\n routeParams: Record,\n // Whether the action is for create or for update\n action: "update" | "create" , \n // The user authenticated profile\n auth: {\n // The Hadmean profile name\n name: string;\n // The Hadmean username name\n username: string;\n // The system profile for the user\n // More info on this at /docs/accounts/system-profile \n systemProfile?: string;\n // The Hadmean role name\n role: string;\n }\n}\n')),(0,r.kt)("p",null,"They are accessed through the dollar sign ",(0,r.kt)("inlineCode",{parentName:"p"},"$."),"."),(0,r.kt)("p",null,"You will find full examples below which give you a better understanding"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"The initial ",(0,r.kt)("inlineCode",{parentName:"p"},"formValues")," for the update form contains the fields that you expose in the details view.")),(0,r.kt)("admonition",{type:"caution"},(0,r.kt)("p",{parentName:"admonition"},"All the code written here will be run on the client, So please be careful to not paste any private configuration keys here")),(0,r.kt)("p",null,"See the content of the three forms as the body of a function, "),(0,r.kt)("p",null,"We have plenty examples below"),(0,r.kt)("h2",{id:"field-state"},"Field State"),(0,r.kt)("p",null,"This allows you to hide or disable your form fields."),(0,r.kt)("p",null,"Examples"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-js"},"/* \n Having just this in the `Field State` will disable \n the `accountBalance` field all the time \n*/\nreturn {\n accountBalance: {\n disabled: true\n }\n}\n")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-js"},"/* \n Having just this in the `Field State` will disable \n the `canRegister` field when the value of `age` is less than 18 \n*/\nreturn {\n canRegister: {\n disabled: $.formValues.age < 18\n },\n}\n")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-js"},"/* Will hide the `reasons` field when the value of `rating` is less than 3*/\nreturn {\n reasons: {\n hidden: $.formValues.rating < 3\n }\n}\n")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-js"},"/* \n You can do cool stuffs like hiding the `canUpdateBalance` field \n if the current user is updating his account \n*/\nreturn {\n canUpdateBalance: {\n hidden: $.auth.username === $.routeParams.username\n }\n}\n")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-js"},"/* \n Since this is all javascript object \n there is no limit to the composition \n*/\nreturn {\n field1: {\n hidden: someLogic == true\n },\n field2: {\n disabled: someLogic == false,\n hidden: someLogic == true,\n },\n field3: {\n hidden: someLogic != true\n }\n}\n")),(0,r.kt)("h2",{id:"before-submit"},"Before Submit"),(0,r.kt)("p",null,"You can do two things with this"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Run custom validation\nOur validations are already extensive but can never be extensive enough. ")),(0,r.kt)("p",null,"If a string is returned from the computation of the ",(0,r.kt)("inlineCode",{parentName:"p"},"beforeSubmit"),". Then the value is seen as an error will be toasted to the user as an error and the form will not be submitted, So you can get dirty along your business requirement. "),(0,r.kt)("p",null,"Note that this doesn't replace any validation you may have on the form as those validations will run first before triggering the ",(0,r.kt)("inlineCode",{parentName:"p"},"beforeSubmit"),". You are encouraged to use the validations we have and only use this when your requirement get out of hand"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-js"},' /* \n Will not let the user proceed with the form\n and will toast message with error to the user\n */\n return "You shall not pass"\n')),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-js"},' /* \n As long as it valid JS, You can throw in what ever you want\n */\n\n if($.formValues.age > 23 && ($.formValues.country != "Belgium" || $.formValues.height == 124 )){\n return "This is weird requirement and Hadmean can handle it"\n }\n\n const customFunctionToReturnFalse = () => false\n\n if(customFunctionToReturnFalse()){\n return "Custom function returned false"\n }\n \n // if the code gets here then the form will be submitted\n')),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Modify form")),(0,r.kt)("p",null,"If you return an object, then that will be submitted for our endpoint, This makes you do cool stuff like appending ",(0,r.kt)("inlineCode",{parentName:"p"},"createdById"),"/",(0,r.kt)("inlineCode",{parentName:"p"},"updatedById")," to forms. You can add/remove/edit fields, It is plain JS and we will just send what you return "),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-js"}," /*\n Will add `createdById` to the form values that is to be submitted\n */\n return {\n ...$.formValues,\n createdById: JSON.parse($.auth.systemProfile).userId\n }\n")),(0,r.kt)("p",null,"And as you might have guessed you can combine it all"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-js"},'\n/**\n * Will validate the form and will throw the error when it returns a string\n * And will add `createdById` when the form is submitted\n */\n if($.formValues.age > 23 && ($.formValues.country != "Belgium" || $.formValues.height == 124 )){\n return "This is weird requirement and Hadmean can handle it"\n }\n\n return {\n ...$.formValues,\n createdById: JSON.parse($.auth.systemProfile).userId\n }\n')))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.45899377.js b/assets/js/935f2afb.45899377.js deleted file mode 100644 index 2ef38b307..000000000 --- a/assets/js/935f2afb.45899377.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Introduction","href":"/docs/intro","docId":"intro"},{"type":"category","label":"Installation","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Requirements","href":"/docs/installation/requirements","docId":"installation/requirements"},{"type":"link","label":"Setup","href":"/docs/installation/setup","docId":"installation/setup"},{"type":"link","label":"Environment Variables","href":"/docs/installation/env","docId":"installation/env"}],"href":"/docs/category/installation"},{"type":"link","label":"Security Implementations","href":"/docs/security","docId":"security"},{"type":"category","label":"App configuration","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Entities","href":"/docs/app-configuration/entities","docId":"app-configuration/entities"},{"type":"link","label":"CRUD","href":"/docs/app-configuration/crud","docId":"app-configuration/crud"},{"type":"link","label":"Diction","href":"/docs/app-configuration/diction","docId":"app-configuration/diction"},{"type":"link","label":"Fields","href":"/docs/app-configuration/fields","docId":"app-configuration/fields"},{"type":"link","label":"Relations","href":"/docs/app-configuration/relations","docId":"app-configuration/relations"},{"type":"link","label":"Form","href":"/docs/app-configuration/form","docId":"app-configuration/form"},{"type":"link","label":"System Settings","href":"/docs/app-configuration/system","docId":"app-configuration/system"},{"type":"link","label":"Views","href":"/docs/app-configuration/views","docId":"app-configuration/views"}],"href":"/docs/category/app-configuration"},{"type":"category","label":"Integrations","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Form Integrations","href":"/docs/integrations/form","docId":"integrations/form"},{"type":"link","label":"Variables","href":"/docs/integrations/variables","docId":"integrations/variables"}],"href":"/docs/category/integrations"},{"type":"category","label":"Account management","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"System Profile","href":"/docs/accounts/system-profile","docId":"accounts/system-profile"},{"type":"link","label":"Roles and Permissions","href":"/docs/accounts/roles","docId":"accounts/roles"}],"href":"/docs/category/account-management"}]},"docs":{"accounts/roles":{"id":"accounts/roles","title":"Roles and Permissions","description":"Hadmean as two default roles, creator and viewer. They are not editable or deletable, they don\'t even exist physically and are inferred most of the time.","sidebar":"tutorialSidebar"},"accounts/system-profile":{"id":"accounts/system-profile","title":"System Profile","description":"Hadmean rolls out its authentication and authorization but sometimes, you may want to use the details of your user from other systems in Hadmean like their IDs, roles, names, etc.","sidebar":"tutorialSidebar"},"app-configuration/crud":{"id":"app-configuration/crud","title":"CRUD","description":"Table","sidebar":"tutorialSidebar"},"app-configuration/diction":{"id":"app-configuration/diction","title":"Diction","description":"Diction allows you to customize what an entity will be called throughout the application by providing the singular and plural form.","sidebar":"tutorialSidebar"},"app-configuration/entities":{"id":"app-configuration/entities","title":"Entities","description":"Selection","sidebar":"tutorialSidebar"},"app-configuration/fields":{"id":"app-configuration/fields","title":"Fields","description":"This view allows you to make field-level customizations. All customization will be reflected on the tables, details view, create form and edit form","sidebar":"tutorialSidebar"},"app-configuration/form":{"id":"app-configuration/form","title":"Form","description":"Forms complexities always grow in parallel with business requirements and we believe giving you coding access to your manage your forms will help you when the requirements get complex as opposed to making things visual which will block you when your requirement gets too complex.","sidebar":"tutorialSidebar"},"app-configuration/relations":{"id":"app-configuration/relations","title":"Relations","description":"Reference Template","sidebar":"tutorialSidebar"},"app-configuration/system":{"id":"app-configuration/system","title":"System Settings","description":"Token Validity Duration","sidebar":"tutorialSidebar"},"app-configuration/views":{"id":"app-configuration/views","title":"Views","description":"Views enables you to implement views like this","sidebar":"tutorialSidebar"},"installation/env":{"id":"installation/env","title":"Environment Variables","description":"Running the npx hadmean command for the first time on a project will generate a .env.local file there, which will look like this","sidebar":"tutorialSidebar"},"installation/requirements":{"id":"installation/requirements","title":"Requirements","description":"You will be needing the following few things to run Hadmean","sidebar":"tutorialSidebar"},"installation/setup":{"id":"installation/setup","title":"Setup","description":"1. Create a new folder then run","sidebar":"tutorialSidebar"},"integrations/form":{"id":"integrations/form","title":"Form Integrations","description":"After submitting some forms, we may want to perform some action usually sending notifications through email, Slack or SMS. Sometimes we might even want to send the data just created to an HTTP endpoint to do further processing. Form integration is how you achieve that.","sidebar":"tutorialSidebar"},"integrations/variables":{"id":"integrations/variables","title":"Variables","description":"Variables are the way you store things that you use often when doing integrations. Since they are key-value pairs, you can pretty much store anything in them and as much as you want.","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"Introduction","description":"Hadmean is an open-source internal tool generator that builds your admin interface based on your database schema and your configurations. It is fully featured and is extremely customizable.","sidebar":"tutorialSidebar"},"security":{"id":"security","title":"Security Implementations","description":"SSL","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.bf2cb3b5.js b/assets/js/935f2afb.bf2cb3b5.js new file mode 100644 index 000000000..2ded88bd6 --- /dev/null +++ b/assets/js/935f2afb.bf2cb3b5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"tutorialSidebar":[{"type":"link","label":"Introduction","href":"/docs/intro","docId":"intro"},{"type":"category","label":"Installation","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Requirements","href":"/docs/installation/requirements","docId":"installation/requirements"},{"type":"link","label":"Setup","href":"/docs/installation/setup","docId":"installation/setup"},{"type":"link","label":"Environment Variables","href":"/docs/installation/env","docId":"installation/env"}],"href":"/docs/category/installation"},{"type":"link","label":"Security Implementations","href":"/docs/security","docId":"security"}]},"docs":{"installation/env":{"id":"installation/env","title":"Environment Variables","description":"Running the npx hadmean command for the first time on a project will generate a .env.local file there, which will look like this","sidebar":"tutorialSidebar"},"installation/requirements":{"id":"installation/requirements","title":"Requirements","description":"You will be needing the following few things to run Hadmean","sidebar":"tutorialSidebar"},"installation/setup":{"id":"installation/setup","title":"Setup","description":"1. Have Node.js installed","sidebar":"tutorialSidebar"},"intro":{"id":"intro","title":"Introduction","description":"Hadmean is an open-source internal tool generator that builds your admin interface based on your database schema and your configurations. It is fully featured and is extremely customizable.","sidebar":"tutorialSidebar"},"security":{"id":"security","title":"Security Implementations","description":"SSL","sidebar":"tutorialSidebar"}}}')}}]); \ No newline at end of file diff --git a/assets/js/972.19283f04.js b/assets/js/972.19283f04.js new file mode 100644 index 000000000..c9f734e1f --- /dev/null +++ b/assets/js/972.19283f04.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[972],{4972:(e,t,a)=>{a.r(t),a.d(t,{default:()=>c});var n=a(7294),l=a(5999),o=a(1944),r=a(2185);function c(){return n.createElement(n.Fragment,null,n.createElement(o.d,{title:(0,l.I)({id:"theme.NotFound.title",message:"Page Not Found"})}),n.createElement(r.Z,null,n.createElement("main",{className:"container margin-vert--xl"},n.createElement("div",{className:"row"},n.createElement("div",{className:"col col--6 col--offset-3"},n.createElement("h1",{className:"hero__title"},n.createElement(l.Z,{id:"theme.NotFound.title",description:"The title of the 404 page"},"Page Not Found")),n.createElement("p",null,n.createElement(l.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page"},"We could not find what you were looking for.")),n.createElement("p",null,n.createElement(l.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page"},"Please contact the owner of the site that linked you to the original URL and let them know their link is broken.")))))))}}}]); \ No newline at end of file diff --git a/assets/js/9e4087bc.31e6c356.js b/assets/js/9e4087bc.31e6c356.js new file mode 100644 index 000000000..7c44f01be --- /dev/null +++ b/assets/js/9e4087bc.31e6c356.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[608],{3169:(e,t,a)=>{a.r(t),a.d(t,{default:()=>o});var r=a(7294),l=a(9960),n=a(5999),c=a(1944),m=a(2185);function i(e){let{year:t,posts:a}=e;return r.createElement(r.Fragment,null,r.createElement("h3",null,t),r.createElement("ul",null,a.map((e=>r.createElement("li",{key:e.metadata.date},r.createElement(l.Z,{to:e.metadata.permalink},e.metadata.formattedDate," - ",e.metadata.title))))))}function s(e){let{years:t}=e;return r.createElement("section",{className:"margin-vert--lg"},r.createElement("div",{className:"container"},r.createElement("div",{className:"row"},t.map(((e,t)=>r.createElement("div",{key:t,className:"col col--4 margin-vert--lg"},r.createElement(i,e)))))))}function o(e){let{archive:t}=e;const a=(0,n.I)({id:"theme.blog.archive.title",message:"Archive",description:"The page & hero title of the blog archive page"}),l=(0,n.I)({id:"theme.blog.archive.description",message:"Archive",description:"The page & hero description of the blog archive page"}),i=function(e){const t=e.reduceRight(((e,t)=>{const a=t.metadata.date.split("-")[0],r=e.get(a)??[];return e.set(a,[t,...r])}),new Map);return Array.from(t,(e=>{let[t,a]=e;return{year:t,posts:a}}))}(t.blogPosts);return r.createElement(r.Fragment,null,r.createElement(c.d,{title:a,description:l}),r.createElement(m.Z,null,r.createElement("header",{className:"hero hero--primary"},r.createElement("div",{className:"container"},r.createElement("h1",{className:"hero__title"},a),r.createElement("p",{className:"hero__subtitle"},l))),r.createElement("main",null,i.length>0&&r.createElement(s,{years:i}))))}}}]); \ No newline at end of file diff --git a/assets/js/9e4087bc.8afb35ed.js b/assets/js/9e4087bc.8afb35ed.js deleted file mode 100644 index 4e185ff90..000000000 --- a/assets/js/9e4087bc.8afb35ed.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[3608],{3169:(e,t,a)=>{a.r(t),a.d(t,{default:()=>o});var r=a(7294),l=a(9960),n=a(5999),c=a(1944),m=a(2185);function i(e){let{year:t,posts:a}=e;return r.createElement(r.Fragment,null,r.createElement("h3",null,t),r.createElement("ul",null,a.map((e=>r.createElement("li",{key:e.metadata.date},r.createElement(l.Z,{to:e.metadata.permalink},e.metadata.formattedDate," - ",e.metadata.title))))))}function s(e){let{years:t}=e;return r.createElement("section",{className:"margin-vert--lg"},r.createElement("div",{className:"container"},r.createElement("div",{className:"row"},t.map(((e,t)=>r.createElement("div",{key:t,className:"col col--4 margin-vert--lg"},r.createElement(i,e)))))))}function o(e){let{archive:t}=e;const a=(0,n.I)({id:"theme.blog.archive.title",message:"Archive",description:"The page & hero title of the blog archive page"}),l=(0,n.I)({id:"theme.blog.archive.description",message:"Archive",description:"The page & hero description of the blog archive page"}),i=function(e){const t=e.reduceRight(((e,t)=>{const a=t.metadata.date.split("-")[0],r=e.get(a)??[];return e.set(a,[t,...r])}),new Map);return Array.from(t,(e=>{let[t,a]=e;return{year:t,posts:a}}))}(t.blogPosts);return r.createElement(r.Fragment,null,r.createElement(c.d,{title:a,description:l}),r.createElement(m.Z,null,r.createElement("header",{className:"hero hero--primary"},r.createElement("div",{className:"container"},r.createElement("h1",{className:"hero__title"},a),r.createElement("p",{className:"hero__subtitle"},l))),r.createElement("main",null,i.length>0&&r.createElement(s,{years:i}))))}}}]); \ No newline at end of file diff --git a/assets/js/a6aa9e1f.b361d153.js b/assets/js/a6aa9e1f.b361d153.js deleted file mode 100644 index 3b36ec47d..000000000 --- a/assets/js/a6aa9e1f.b361d153.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[3089],{46:(e,t,a)=>{a.r(t),a.d(t,{default:()=>u});var n=a(7294),r=a(6010),l=a(2263),i=a(1944),o=a(5281),s=a(9058),m=a(9703),c=a(197),g=a(9985);function p(e){const{metadata:t}=e,{siteConfig:{title:a}}=(0,l.Z)(),{blogDescription:r,blogTitle:o,permalink:s}=t,m="/"===s?a:o;return n.createElement(n.Fragment,null,n.createElement(i.d,{title:m,description:r}),n.createElement(c.Z,{tag:"blog_posts_list"}))}function d(e){const{metadata:t,items:a,sidebar:r}=e;return n.createElement(s.Z,{sidebar:r},n.createElement(g.Z,{items:a}),n.createElement(m.Z,{metadata:t}))}function u(e){return n.createElement(i.FG,{className:(0,r.Z)(o.k.wrapper.blogPages,o.k.page.blogListPage)},n.createElement(p,e),n.createElement(d,e))}},9703:(e,t,a)=>{a.d(t,{Z:()=>i});var n=a(7294),r=a(5999),l=a(2244);function i(e){const{metadata:t}=e,{previousPage:a,nextPage:i}=t;return n.createElement("nav",{className:"pagination-nav","aria-label":(0,r.I)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"})},a&&n.createElement(l.Z,{permalink:a,title:n.createElement(r.Z,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)"},"Newer Entries")}),i&&n.createElement(l.Z,{permalink:i,title:n.createElement(r.Z,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)"},"Older Entries"),isNext:!0}))}},9985:(e,t,a)=>{a.d(t,{Z:()=>i});var n=a(7294),r=a(9460),l=a(390);function i(e){let{items:t,component:a=l.Z}=e;return n.createElement(n.Fragment,null,t.map((e=>{let{content:t}=e;return n.createElement(r.n,{key:t.metadata.permalink,content:t},n.createElement(a,null,n.createElement(t,null)))})))}}}]); \ No newline at end of file diff --git a/assets/js/a6aa9e1f.e83e1e98.js b/assets/js/a6aa9e1f.e83e1e98.js new file mode 100644 index 000000000..613971fea --- /dev/null +++ b/assets/js/a6aa9e1f.e83e1e98.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[89],{46:(e,t,a)=>{a.r(t),a.d(t,{default:()=>u});var n=a(7294),r=a(6010),l=a(2263),i=a(1944),o=a(5281),s=a(9058),m=a(9703),c=a(197),g=a(9985);function p(e){const{metadata:t}=e,{siteConfig:{title:a}}=(0,l.Z)(),{blogDescription:r,blogTitle:o,permalink:s}=t,m="/"===s?a:o;return n.createElement(n.Fragment,null,n.createElement(i.d,{title:m,description:r}),n.createElement(c.Z,{tag:"blog_posts_list"}))}function d(e){const{metadata:t,items:a,sidebar:r}=e;return n.createElement(s.Z,{sidebar:r},n.createElement(g.Z,{items:a}),n.createElement(m.Z,{metadata:t}))}function u(e){return n.createElement(i.FG,{className:(0,r.Z)(o.k.wrapper.blogPages,o.k.page.blogListPage)},n.createElement(p,e),n.createElement(d,e))}},9703:(e,t,a)=>{a.d(t,{Z:()=>i});var n=a(7294),r=a(5999),l=a(2244);function i(e){const{metadata:t}=e,{previousPage:a,nextPage:i}=t;return n.createElement("nav",{className:"pagination-nav","aria-label":(0,r.I)({id:"theme.blog.paginator.navAriaLabel",message:"Blog list page navigation",description:"The ARIA label for the blog pagination"})},a&&n.createElement(l.Z,{permalink:a,title:n.createElement(r.Z,{id:"theme.blog.paginator.newerEntries",description:"The label used to navigate to the newer blog posts page (previous page)"},"Newer Entries")}),i&&n.createElement(l.Z,{permalink:i,title:n.createElement(r.Z,{id:"theme.blog.paginator.olderEntries",description:"The label used to navigate to the older blog posts page (next page)"},"Older Entries"),isNext:!0}))}},9985:(e,t,a)=>{a.d(t,{Z:()=>i});var n=a(7294),r=a(9460),l=a(390);function i(e){let{items:t,component:a=l.Z}=e;return n.createElement(n.Fragment,null,t.map((e=>{let{content:t}=e;return n.createElement(r.n,{key:t.metadata.permalink,content:t},n.createElement(a,null,n.createElement(t,null)))})))}}}]); \ No newline at end of file diff --git a/assets/js/a7023ddc.7602cef7.js b/assets/js/a7023ddc.7602cef7.js new file mode 100644 index 000000000..5f60d1d3d --- /dev/null +++ b/assets/js/a7023ddc.7602cef7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[713],{3457:a=>{a.exports=JSON.parse('[{"label":"how-to","permalink":"/blog/tags/how-to","count":1},{"label":"testing","permalink":"/blog/tags/testing","count":1},{"label":"introduction","permalink":"/blog/tags/introduction","count":2}]')}}]); \ No newline at end of file diff --git a/assets/js/a7023ddc.829d0b12.js b/assets/js/a7023ddc.829d0b12.js deleted file mode 100644 index 1ce170932..000000000 --- a/assets/js/a7023ddc.829d0b12.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[1713],{3457:a=>{a.exports=JSON.parse('[{"label":"introduction","permalink":"/blog/tags/introduction","count":2}]')}}]); \ No newline at end of file diff --git a/assets/js/a74e05d3.be243aea.js b/assets/js/a74e05d3.be243aea.js new file mode 100644 index 000000000..047df0c94 --- /dev/null +++ b/assets/js/a74e05d3.be243aea.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[128],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),d=u(n),f=o,m=d["".concat(l,".").concat(f)]||d[f]||p[f]||a;return n?r.createElement(m,i(i({ref:t},s),{},{components:n})):r.createElement(m,i({ref:t},s))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:o,i[1]=c;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var r=n(7462),o=(n(7294),n(3905));const a={title:"Hadmean - Introducing the easiest, most efficient internal tool generator.",authors:["ayobami"],tags:["introduction"]},i=void 0,c={permalink:"/blog/2022/10/05/introduction",source:"@site/blog/2022-10-05-introduction/index.md",title:"Hadmean - Introducing the easiest, most efficient internal tool generator.",description:"Banner",date:"2022-10-05T00:00:00.000Z",formattedDate:"October 5, 2022",tags:[{label:"introduction",permalink:"/blog/tags/introduction"}],readingTime:4.285,hasTruncateMarker:!0,authors:[{name:"Ayobami Akingbade",title:"Creator of Hadmean",url:"https://github.com/thrownullexception",imageURL:"https://github.com/thrownullexception.png",key:"ayobami"}],frontMatter:{title:"Hadmean - Introducing the easiest, most efficient internal tool generator.",authors:["ayobami"],tags:["introduction"]},prevItem:{title:"Build a CRUD interface for your database in under 59 seconds",permalink:"/blog/2022/10/06/crud-under-59-seconds"}},l={authorsImageUrls:[void 0]},u=[{value:"Introduction",id:"introduction",level:2}],s={toc:u};function p(e){let{components:t,...a}=e;return(0,o.kt)("wrapper",(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Banner",src:n(6283).Z,width:"8244",height:"2752"})),(0,o.kt)("h2",{id:"introduction"},"Introduction"),(0,o.kt)("p",null,"It is often said that a critical ingredient to success lies in one's ability to use tools. There are numerous tools out there to help make your work easier, such as internal tools. But what are they for? Why do you need them? And can you use them effectively to improve your business's performance and operate more efficiently?"))}p.isMDXComponent=!0},6283:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/banner-3fd4e8c7fabf580a47e9a48ca0d5768b.png"}}]); \ No newline at end of file diff --git a/assets/js/a74e05d3.cb751aea.js b/assets/js/a74e05d3.cb751aea.js deleted file mode 100644 index e78ac48ee..000000000 --- a/assets/js/a74e05d3.cb751aea.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[1128],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var l=r.createContext({}),u=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=u(e.components);return r.createElement(l.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),d=u(n),f=o,m=d["".concat(l,".").concat(f)]||d[f]||p[f]||a;return n?r.createElement(m,i(i({ref:t},s),{},{components:n})):r.createElement(m,i({ref:t},s))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=d;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c.mdxType="string"==typeof e?e:o,i[1]=c;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>c,toc:()=>u});var r=n(7462),o=(n(7294),n(3905));const a={title:"Hadmean - Introducing the easiest, most efficient internal tool generator.",authors:["ayobami"],tags:["introduction"]},i=void 0,c={permalink:"/blog/2022/10/05/introduction",source:"@site/blog/2022-10-05-introduction/index.md",title:"Hadmean - Introducing the easiest, most efficient internal tool generator.",description:"Banner",date:"2022-10-05T00:00:00.000Z",formattedDate:"October 5, 2022",tags:[{label:"introduction",permalink:"/blog/tags/introduction"}],readingTime:4.285,hasTruncateMarker:!0,authors:[{name:"Ayobami Akingbade",title:"Creator of Hadmean",url:"https://github.com/thrownullexception",imageURL:"https://github.com/thrownullexception.png",key:"ayobami"}],frontMatter:{title:"Hadmean - Introducing the easiest, most efficient internal tool generator.",authors:["ayobami"],tags:["introduction"]},prevItem:{title:"Build a CRUD interface for your database in under 59 seconds",permalink:"/blog/2022/10/06/crud-under-59-seconds"}},l={authorsImageUrls:[void 0]},u=[{value:"Introduction",id:"introduction",level:2}],s={toc:u};function p(e){let{components:t,...a}=e;return(0,o.kt)("wrapper",(0,r.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Banner",src:n(6283).Z,width:"8244",height:"2752"})),(0,o.kt)("h2",{id:"introduction"},"Introduction"),(0,o.kt)("p",null,"It is often said that a critical ingredient to success lies in one's ability to use tools. There are numerous tools out there to help make your work easier, such as internal tools. But what are they for? Why do you need them? And can you use them effectively to improve your business's performance and operate more efficiently?"))}p.isMDXComponent=!0},6283:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/banner-3fd4e8c7fabf580a47e9a48ca0d5768b.png"}}]); \ No newline at end of file diff --git a/assets/js/ac75af2e.85da5c00.js b/assets/js/ac75af2e.85da5c00.js deleted file mode 100644 index 652002953..000000000 --- a/assets/js/ac75af2e.85da5c00.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[1199],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=u(n),m=a,f=d["".concat(s,".").concat(m)]||d[m]||c[m]||i;return n?r.createElement(f,o(o({ref:t},p),{},{components:n})):r.createElement(f,o({ref:t},p))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:a,o[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>c,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var r=n(7462),a=(n(7294),n(3905));const i={sidebar_position:1},o="Requirements",l={unversionedId:"installation/requirements",id:"installation/requirements",title:"Requirements",description:"You will be needing the following few things to run Hadmean",source:"@site/docs/installation/requirements.md",sourceDirName:"installation",slug:"/installation/requirements",permalink:"/docs/installation/requirements",draft:!1,editUrl:"https://github.com/hadmean/archaea/edit/main/docs/installation/requirements.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Installation",permalink:"/docs/category/installation"},next:{title:"Setup",permalink:"/docs/installation/setup"}},s={},u=[],p={toc:u};function c(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"requirements"},"Requirements"),(0,a.kt)("p",null,"You will be needing the following few things to run Hadmean"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://nodejs.org/en/download/"},"Node.js")),(0,a.kt)("li",{parentName:"ul"},"A database you want to interface")),(0,a.kt)("p",null,"A well-designed database is not compulsory but it will get you a lot of functionality and have to do less setup."),(0,a.kt)("p",null,"Having a well-designed schema entails"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Having your ",(0,a.kt)("inlineCode",{parentName:"li"},"user_id")," joined correctly to the ",(0,a.kt)("inlineCode",{parentName:"li"},"users")," table"),(0,a.kt)("li",{parentName:"ul"},"Having enums when appropriate as opposed to just plain text"),(0,a.kt)("li",{parentName:"ul"},"Having non-nullable columns when needed"),(0,a.kt)("li",{parentName:"ul"},"Having length for text fields"),(0,a.kt)("li",{parentName:"ul"},'Using boolean fields instead of "YES/NO"'),(0,a.kt)("li",{parentName:"ul"},"Having a primary field for every table")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ac75af2e.fd8981f9.js b/assets/js/ac75af2e.fd8981f9.js new file mode 100644 index 000000000..7280dc7d7 --- /dev/null +++ b/assets/js/ac75af2e.fd8981f9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[199],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),u=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=u(e.components);return r.createElement(s.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=u(n),m=a,f=d["".concat(s,".").concat(m)]||d[m]||c[m]||i;return n?r.createElement(f,o(o({ref:t},p),{},{components:n})):r.createElement(f,o({ref:t},p))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=d;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:a,o[1]=l;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>c,frontMatter:()=>i,metadata:()=>l,toc:()=>u});var r=n(7462),a=(n(7294),n(3905));const i={sidebar_position:1},o="Requirements",l={unversionedId:"installation/requirements",id:"installation/requirements",title:"Requirements",description:"You will be needing the following few things to run Hadmean",source:"@site/docs/installation/requirements.md",sourceDirName:"installation",slug:"/installation/requirements",permalink:"/docs/installation/requirements",draft:!1,editUrl:"https://github.com/hadmean/archaea/edit/main/docs/installation/requirements.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Installation",permalink:"/docs/category/installation"},next:{title:"Setup",permalink:"/docs/installation/setup"}},s={},u=[],p={toc:u};function c(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"requirements"},"Requirements"),(0,a.kt)("p",null,"You will be needing the following few things to run Hadmean"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://nodejs.org/en/download/"},"Node.js")),(0,a.kt)("li",{parentName:"ul"},"A database you want to interface")),(0,a.kt)("p",null,"A well-designed database is not compulsory but it will get you a lot of functionality and have to do less setup."),(0,a.kt)("p",null,"Having a well-designed schema entails"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Having your ",(0,a.kt)("inlineCode",{parentName:"li"},"user_id")," joined correctly to the ",(0,a.kt)("inlineCode",{parentName:"li"},"users")," table"),(0,a.kt)("li",{parentName:"ul"},"Having enums when appropriate as opposed to just plain text"),(0,a.kt)("li",{parentName:"ul"},"Having non-nullable columns when needed"),(0,a.kt)("li",{parentName:"ul"},"Having length for text fields"),(0,a.kt)("li",{parentName:"ul"},'Using boolean fields instead of "YES/NO"'),(0,a.kt)("li",{parentName:"ul"},"Having a primary field for every table")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/afd3aca9.1678dfd4.js b/assets/js/afd3aca9.1678dfd4.js deleted file mode 100644 index 2e0c54795..000000000 --- a/assets/js/afd3aca9.1678dfd4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[6232],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var p=r.createContext({}),c=function(e){var t=r.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,p=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=c(n),f=i,m=d["".concat(p,".").concat(f)]||d[f]||s[f]||o;return n?r.createElement(m,a(a({ref:t},u),{},{components:n})):r.createElement(m,a({ref:t},u))}));function f(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,a=new Array(o);a[0]=d;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l.mdxType="string"==typeof e?e:i,a[1]=l;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>a,default:()=>s,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var r=n(7462),i=(n(7294),n(3905));const o={sidebar_position:3},a="Diction",l={unversionedId:"app-configuration/diction",id:"app-configuration/diction",title:"Diction",description:"Diction allows you to customize what an entity will be called throughout the application by providing the singular and plural form.",source:"@site/docs/app-configuration/diction.md",sourceDirName:"app-configuration",slug:"/app-configuration/diction",permalink:"/docs/app-configuration/diction",draft:!1,editUrl:"https://github.com/hadmean/archaea/edit/main/docs/app-configuration/diction.md",tags:[],version:"current",sidebarPosition:3,frontMatter:{sidebar_position:3},sidebar:"tutorialSidebar",previous:{title:"CRUD",permalink:"/docs/app-configuration/crud"},next:{title:"Fields",permalink:"/docs/app-configuration/fields"}},p={},c=[],u={toc:c};function s(e){let{components:t,...n}=e;return(0,i.kt)("wrapper",(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"diction"},"Diction"),(0,i.kt)("p",null,"Diction allows you to customize what an entity will be called throughout the application by providing the ",(0,i.kt)("inlineCode",{parentName:"p"},"singular")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"plural")," form."),(0,i.kt)("p",null,"For example, say an entity is labeled ",(0,i.kt)("inlineCode",{parentName:"p"},"faqs")," in the database and shows as ",(0,i.kt)("inlineCode",{parentName:"p"},"Faqs")," in the UI but you want it to be labeled ",(0,i.kt)("inlineCode",{parentName:"p"},"Frequently Asked Questions")," on the app, updating the diction form ",(0,i.kt)("inlineCode",{parentName:"p"},"Plural")," field would allow you to update the application."),(0,i.kt)("p",null,"Since the convention for table names is to use the plural form, then filling the ",(0,i.kt)("inlineCode",{parentName:"p"},"Singular")," field allows you to specify the singular diction."))}s.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b17b6868.1e721365.js b/assets/js/b17b6868.1e721365.js deleted file mode 100644 index 2e42d5c46..000000000 --- a/assets/js/b17b6868.1e721365.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[1913],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),p=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=p(e.components);return a.createElement(s.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),c=p(n),m=r,f=c["".concat(s,".").concat(m)]||c[m]||u[m]||i;return n?a.createElement(f,o(o({ref:t},d),{},{components:n})):a.createElement(f,o({ref:t},d))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,o=new Array(i);o[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:r,o[1]=l;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var a=n(7462),r=(n(7294),n(3905));const i={sidebar_position:5},o="Relations",l={unversionedId:"app-configuration/relations",id:"app-configuration/relations",title:"Relations",description:"Reference Template",source:"@site/docs/app-configuration/relations.md",sourceDirName:"app-configuration",slug:"/app-configuration/relations",permalink:"/docs/app-configuration/relations",draft:!1,editUrl:"https://github.com/hadmean/archaea/edit/main/docs/app-configuration/relations.md",tags:[],version:"current",sidebarPosition:5,frontMatter:{sidebar_position:5},sidebar:"tutorialSidebar",previous:{title:"Fields",permalink:"/docs/app-configuration/fields"},next:{title:"Form",permalink:"/docs/app-configuration/form"}},s={},p=[{value:"Reference Template",id:"reference-template",level:2},{value:"Labels",id:"labels",level:2},{value:"Selection",id:"selection",level:2},{value:"Order",id:"order",level:2}],d={toc:p};function u(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"relations"},"Relations"),(0,r.kt)("h2",{id:"reference-template"},"Reference Template"),(0,r.kt)("p",null,"Reference Template is how you define how this entity will be displayed where it is being referenced"),(0,r.kt)("p",null,"Say you have ",(0,r.kt)("inlineCode",{parentName:"p"},"users")," table in your application with the fields ",(0,r.kt)("inlineCode",{parentName:"p"},"first_name"),", ",(0,r.kt)("inlineCode",{parentName:"p"},"last_name")," and ",(0,r.kt)("inlineCode",{parentName:"p"},"title"),". Reference Template is how you define how it will be rendered"),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"{{ title }} {{ first_name }} {{ last_name }}")," will be templated as ",(0,r.kt)("inlineCode",{parentName:"p"},"Mr John Doe")," "),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"{{ last_name }} {{ first_name }}")," will be templated as ",(0,r.kt)("inlineCode",{parentName:"p"},"Doe John")," "),(0,r.kt)("p",null,(0,r.kt)("inlineCode",{parentName:"p"},"{{ first_name }} / {{ last_name }}")," will be templated as ",(0,r.kt)("inlineCode",{parentName:"p"},"John / Doe")," "),(0,r.kt)("p",null,"It uses mustache under the hood, so bring in all your mustache knowledge here"),(0,r.kt)("p",null,"When editing reference templates, The fields will be validated so as to eliminate typos for example ",(0,r.kt)("inlineCode",{parentName:"p"},"{{ ffirst_namee }}")," will give an error until corrected likewise fields that don't exist"),(0,r.kt)("admonition",{type:"info"},(0,r.kt)("p",{parentName:"admonition"},"The default value for the reference template are the two first text fields of the entity")),(0,r.kt)("h2",{id:"labels"},"Labels"),(0,r.kt)("p",null,"This allows you to label the relations on the details view. Say you have a post and the related user i.e the creator is coming out as ",(0,r.kt)("inlineCode",{parentName:"p"},"user")," because that is the entity name but you would rather it come out as ",(0,r.kt)("inlineCode",{parentName:"p"},"Author")," as that is more befitting name, You can simply do that here by filling in the desired name under the input of the entity you want to re-label"),(0,r.kt)("h2",{id:"selection"},"Selection"),(0,r.kt)("p",null,"This allows you to select the related entities you want to be displayed on the details view for the current entities"),(0,r.kt)("p",null,"Say you have 15 related entities say for users and you don't want all the 15 entities to be on the side bar when you view a user detail, Then you can simply toggle off the entities you don't want to show on users details and they will no longer appear"),(0,r.kt)("p",null,"Note that all disabled entities on the app will not show up on this list"),(0,r.kt)("h2",{id:"order"},"Order"),(0,r.kt)("p",null,"This simply will allow you to order how the related entities will be displayed on the details page"))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b2b675dd.82883c66.js b/assets/js/b2b675dd.620fba4e.js similarity index 75% rename from assets/js/b2b675dd.82883c66.js rename to assets/js/b2b675dd.620fba4e.js index 0d97e7609..1a809a088 100644 --- a/assets/js/b2b675dd.82883c66.js +++ b/assets/js/b2b675dd.620fba4e.js @@ -1 +1 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[533],{8017:a=>{a.exports=JSON.parse('{"permalink":"/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":2,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[533],{8017:a=>{a.exports=JSON.parse('{"permalink":"/blog","page":1,"postsPerPage":10,"totalPages":1,"totalCount":4,"blogDescription":"Blog","blogTitle":"Blog"}')}}]); \ No newline at end of file diff --git a/assets/js/b2f554cd.8f34f240.js b/assets/js/b2f554cd.8f34f240.js new file mode 100644 index 000000000..4b3f598aa --- /dev/null +++ b/assets/js/b2f554cd.8f34f240.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[477],{10:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/2022/12/09/how-to-generate-a-powerful-admin-app-from-your-database","metadata":{"permalink":"/blog/2022/12/09/how-to-generate-a-powerful-admin-app-from-your-database","source":"@site/blog/2022-12-09-how-to-generate-a-powerful-admin-app-from-your-database/index.md","title":"How to generate a powerful admin app from your database","description":"I believe we have all been there, We","date":"2022-12-09T00:00:00.000Z","formattedDate":"December 9, 2022","tags":[{"label":"how-to","permalink":"/blog/tags/how-to"}],"readingTime":0.94,"hasTruncateMarker":false,"authors":[{"name":"Ayobami Akingbade","title":"Creator of Hadmean","url":"https://github.com/thrownullexception","imageURL":"https://github.com/thrownullexception.png","key":"ayobami"}],"frontMatter":{"title":"How to generate a powerful admin app from your database","authors":["ayobami"],"tags":["how-to"]},"nextItem":{"title":"Why you should write more integration tests.","permalink":"/blog/2022/11/28/why-you-should-write-more-integrations-tests"}},"content":"I believe we have all been there, We \\n\\nFor the shortest tutorial on building things, the only step for you is to run\\n\\n```js\\nnpx hadmean\\n```\\n\\nThen go to [http://localhost:3000](http://localhost:3000) where you will be asked for your DB credentials and voila, You can start CRUDing your database. There is no Javascript, or SQL, or drag-and-drop tutorial needed to get started.\\n\\n[Hadmean](https://github.com/hadmean/hadmean) is not just a CRUD builder, it is fully an internal tool generator. It might be simple to install but it has tons of features and is entirely customizable.\\n\\n[Here](https://demo.hadmean.com) is a demo application built in under 59 seconds.\\n\\nOther features include:\\n- Authentication\\n- Users management\\n- Roles and permissions\\n- CRUD\\n- Relationships\\n- Forms validation\\n- Powerful Filters\\n- A powerful multi-page navigation system\\n- Automatic Introspection\\n- Views\\n- Intuitive dashboard builder\\n\\nYou can always refer to the [documentation](https://hadmean.com/docs/intro) to get the best out of Hadmean and join our [discord server](https://discord.gg/aV6DxwXhzN) to interact with the community.\\n\\nStart building your admin apps with Hadmean today! If you like this project and found this article helpful, please share and leave a star on [Github](https://github.com/hadmean/hadmean)."},{"id":"/2022/11/28/why-you-should-write-more-integrations-tests","metadata":{"permalink":"/blog/2022/11/28/why-you-should-write-more-integrations-tests","source":"@site/blog/2022-11-28-why-you-should-write-more-integrations-tests/index.md","title":"Why you should write more integration tests.","description":"Banner","date":"2022-11-28T00:00:00.000Z","formattedDate":"November 28, 2022","tags":[{"label":"testing","permalink":"/blog/tags/testing"}],"readingTime":4.335,"hasTruncateMarker":false,"authors":[{"name":"Ayobami Akingbade","title":"Creator of Hadmean","url":"https://github.com/thrownullexception","imageURL":"https://github.com/thrownullexception.png","key":"ayobami"}],"frontMatter":{"title":"Why you should write more integration tests.","authors":["ayobami"],"tags":["testing"]},"prevItem":{"title":"How to generate a powerful admin app from your database","permalink":"/blog/2022/12/09/how-to-generate-a-powerful-admin-app-from-your-database"},"nextItem":{"title":"Build a CRUD interface for your database in under 59 seconds","permalink":"/blog/2022/10/06/crud-under-59-seconds"}},"content":"![Banner](./banner.png)\\n\\nAfter writing software, engineers usually have to write tests for whatever reason they have but major write three types.\\n1. Unit tests.\\nThis are mostly Isolation tests i.e you take a part of the software and you isolate it and write a test for it. Isolation means that piece of software usually a function or component does not interact with other parts of the system. This isolation makes it very easy to write tests are you good control of the component making it very easy for you to have it in a desired state and test that state and also very easy to get the expected state and assert that. and another benefit is that it they are very easy to run as they are usually lightweights so usually run under seconds\\n2. End to End Tests.\\nEnd to End(E2E) tests are tests that are writting usually in the way a user will use the application. These tests are meant to be agnostic of the internal workings of the application. Infact they can be writing in another langauge different from the one the application is written in.\\nEnd to End needless to say gives the greatest confidence as they actually test the flow of the user in the way an actually user will use them.\\n3. Integration Tests. \\nIntegration tests are tests that test the interactions between two or more components of the software i.e you are test that yes these components are working seperately but do they communicate with each other correctly\\n\\nDevelopers usually get confused on what Integration tests are. Writing a test for a function though it calls other function is not an integration test even though it has some integration as this is still a unit test\\n\\nIntegration tests are tests that have a high level of abstraction over implementation detail\\n\\nFor example\\n1. A good integration test for the BE will be to setup the application to take in a route and the method and it should do something and that something is asserted by calling another route to check the effects. A bad way of doing this is to instead call the controller and mock the services and that the end check that the services are called correctly instead\\n2. For the FE a good integration test will be to take a page component or a large component and render with not passing any props and instead get the page to the desired state by mocking the API requests using a tool like MSW and interacting with the application clicking on button and asserting desired UI effects\\n\\nSo why should you write more Integrations test over the others. Integrations tests basically averages the good and bad part of unit tests and E2E tests \\n\\n1. You can easily achieve desired state\\nPrimarily E2E tests in my un-popular opinion is what you should strive for the most but the major pain point of E2E tests is the ability to acheive desired state. Let say you want to test the application for a user that is under the age of 35, male, Arabian and is christian. This conditions are very easy to achieve with Unit tests as you can easily pass the desired state as props and test the application as you see fit. \\nBut this is a pain point with E2E tests so really have to options.\\n1. You seed the application database with the desired state which is almost un-scalable as you will have to HardCode the userId in the tests or you use the E2E suites to get the application to the desired state before actually starting to test cases\\nBut with Integration tests you can easily set the state in the test suite though you will not be as nimble as unit-test but it will be way more easier than with a E2E test. \\n\\n\\n2. It is relatively lightweight.\\n One big problem with e2e tests is that they are bulky, Like you will first need to setup the application itself i.e proviion database, run migrations, run seeds, start the application, start the frontend. Wait for both of them to be up, launch other services needed, fire up a browser then start the test cases. \\n But wuth\\n\\n4. Less flaky.\\n Because of the \\n\\n\\n3. It brings good enough confidences\\n This is the major problem with most unit tests being that they are mostly implementation details, like they follow you components parameters around and they usually have to be updated the component changes during a refactor without any changes to the functionality\\n\\n\\nNothing in software are hard rules, this articles doesn\'t say scrape your e2e tests, or unit tests but rather try to see if you can test the case with an integration test, if the case is too complex i.e too many if-elses then you can abstract that to a function and unit-test that. And it is considered good practice to have e2e tests for critical flows in your application. like\\n- User can register\\n- User can login\\n- User can add product to cart\\n- User can checkout\\nBasically things that are primary to your business function should be test e2e and others should be test with integrations."},{"id":"/2022/10/06/crud-under-59-seconds","metadata":{"permalink":"/blog/2022/10/06/crud-under-59-seconds","source":"@site/blog/2022-10-06-crud-under-59-seconds/index.md","title":"Build a CRUD interface for your database in under 59 seconds","description":"For the shortest tutorial on building things, the only step for you is to run","date":"2022-10-06T00:00:00.000Z","formattedDate":"October 6, 2022","tags":[{"label":"introduction","permalink":"/blog/tags/introduction"}],"readingTime":0.9,"hasTruncateMarker":false,"authors":[{"name":"Ayobami Akingbade","title":"Creator of Hadmean","url":"https://github.com/thrownullexception","imageURL":"https://github.com/thrownullexception.png","key":"ayobami"}],"frontMatter":{"title":"Build a CRUD interface for your database in under 59 seconds","authors":["ayobami"],"tags":["introduction"]},"prevItem":{"title":"Why you should write more integration tests.","permalink":"/blog/2022/11/28/why-you-should-write-more-integrations-tests"},"nextItem":{"title":"Hadmean - Introducing the easiest, most efficient internal tool generator.","permalink":"/blog/2022/10/05/introduction"}},"content":"For the shortest tutorial on building things, the only step for you is to run\\n\\n```js\\nnpx hadmean\\n```\\n\\nThen go to [http://localhost:3000](http://localhost:3000) where you will be asked for your DB credentials and voila, You can start CRUDing your database. There is no Javascript, or SQL, or drag-and-drop tutorial needed to get started.\\n\\n[Hadmean](https://github.com/hadmean/hadmean) is not just a CRUD builder, it is fully an internal tool generator. It might be simple to install but it has tons of features and is entirely customizable.\\n\\n[Here](https://demo.hadmean.com) is a demo application built in under 59 seconds.\\n\\nOther features include:\\n- Authentication\\n- Users management\\n- Roles and permissions\\n- CRUD\\n- Relationships\\n- Forms validation\\n- Powerful Filters\\n- A powerful multi-page navigation system\\n- Automatic Introspection\\n- Views\\n- Intuitive dashboard builder\\n\\nYou can always refer to the [documentation](https://hadmean.com/docs/intro) to get the best out of Hadmean and join our [discord server](https://discord.gg/aV6DxwXhzN) to interact with the community.\\n\\nStart building your admin apps with Hadmean today! If you like this project and found this article helpful, please share and leave a star on [Github](https://github.com/hadmean/hadmean)."},{"id":"/2022/10/05/introduction","metadata":{"permalink":"/blog/2022/10/05/introduction","source":"@site/blog/2022-10-05-introduction/index.md","title":"Hadmean - Introducing the easiest, most efficient internal tool generator.","description":"Banner","date":"2022-10-05T00:00:00.000Z","formattedDate":"October 5, 2022","tags":[{"label":"introduction","permalink":"/blog/tags/introduction"}],"readingTime":4.285,"hasTruncateMarker":true,"authors":[{"name":"Ayobami Akingbade","title":"Creator of Hadmean","url":"https://github.com/thrownullexception","imageURL":"https://github.com/thrownullexception.png","key":"ayobami"}],"frontMatter":{"title":"Hadmean - Introducing the easiest, most efficient internal tool generator.","authors":["ayobami"],"tags":["introduction"]},"prevItem":{"title":"Build a CRUD interface for your database in under 59 seconds","permalink":"/blog/2022/10/06/crud-under-59-seconds"}},"content":"![Banner](./banner.png)\\n\\n## Introduction\\nIt is often said that a critical ingredient to success lies in one\'s ability to use tools. There are numerous tools out there to help make your work easier, such as internal tools. But what are they for? Why do you need them? And can you use them effectively to improve your business\'s performance and operate more efficiently?\\n\x3c!--truncate--\x3e\\n\\nThe answer is Yes! And that\'s one of the reasons for building Hadmean, a modern no-code, internal tool generator. Developers tend not to enjoy building internal tools as they are boring and too repetitive. With Hadmean, building admin interfaces and internal apps becomes extremely easy and more importantly fun. However, before delving into all the exciting features and offerings of Hadmean, let us briefly understand internal tools.\\n\\n## What are internal\xa0tools?\\nInternal tools, also known as admin interfaces, internal software, admin panels, internal apps, admin dashboards, or employee tools, are software created to perform administrative tasks in an organization. These are generally purpose-built to fit an organization\'s internal operations and processes. They range from data visualization dashboards and CRUD interfaces to your data, lead management systems, and customer support tools.\\n\\nInternal tools are incredibly vital, and developers invest significant time in developing internal tools, admin panels, and systems for back-office operations to automate and speed up essential business functions. It includes several efforts, ranging from database maintenance to creating various front-end and back-end codes. But what if you could utilize a modern tool to build such applications that help to ease the burden of your work? Sounds good, right? Let\'s look at how you can also create internal tools that enable business agility.\\n## What is\xa0Hadmean?\\n[Hadmean](https://github.com/hadmean/hadmean) is an open-source, no-code software that generates admin dashboards, internal apps, and admin panels based on your existing database information. It is fully featured and extremely customizable.\\n\\n## Why Hadmean?\\nMost internal tool generators make you build from the ground up i.e you get a blank canvas then you are asked to drag and drop components, and wire them together to satisfy your business requirement. This I believe has many problems.\\n- They require technical know-how.\\n- They require some learning curve.\\n- They require time to build and maintain.\\n- You duplicate a lot of business logic already in your database.\\n\\nHadmean approaches internal tool generation by introspecting your database and building a multi-page application according to all the info it can find, like your field types, relationships, constraints, etc. No JavaScript or SQL is needed to get a fully working application.\\n\\n## Features\\nBelow are some of the top-rated features of Hadmean that make it the best platform for internal tool generation.\\n\\n**Easy to install:** Hadmean has one of the easiest installation processes for such a robust tool. It requires just one command `npx hadmean` to get it up and running.\\n\\n**Easy to use:** There is no technical knowledge required to use Hadmean as it is a visual tool hence there is almost zero learning curve.\\n\\n**Customizable:** Hadmean is fully customizable, you can turn on/off every feature you see in the UI within the UI.\\n\\n**Free and Opensource:** Hadmean is freely available and fully open-sourced. Since it is open-source, the source code is available to the public so you can always modify it for your use case however you see fit.\\n\\n**Language/framework agnostic**: Hadmean is interoperable among various systems. It follows a universal principle that is independent of language specifics.\\n\\nTechnical features include:\\n- Authentication\\n- Users management\\n- Roles and permissions\\n- CRUD\\n- Relationships\\n- Forms validation\\n- Powerful Filters\\n- A powerful multi-page navigation system\\n- Automatic Introspection\\n- Views\\n- Intuitive dashboard builder\\n\\n## Easy steps to build your first internal\xa0tool\\nTo get started, you will need to have [Node.js](https://nodejs.org/en/download/). That is the only requirement.\\n\\nThen run the following command to get it started\\n\\n```bash\\nnpx hadmean\\n```\\nYou should now be able to see the application running at [http://locahost:3000](http://locahost:3000) where you will be asked to provide your DB credentials and voila your admin app is fully set up.\\n\\n[Here](https://demo.hadmean.com) is a link to a demo application built with Hadmean in under 1 minute.\\n\\nTo get a broad overview of how it works, watch a [quick demo](https://github.com/hadmean/hadmean#quick-demo).\\n\\nYou can always refer to the [documentation](https://hadmean.com) to get the best out of Hadmean and join our [discord server](https://discord.gg/aV6DxwXhzN) to interact with the community.\\n\\n## Wrapping up\\nAs a final note, this is just the beginning! We are optimistic about what the future holds, with several other exciting features in the pipeline. Hadmean is here to stay, and we\'ll keep executing and serving our users the latest updates.\\n\\nTry Hadmean if you haven\'t already and share it with your friends in the tech space, developers, QA engineers, product managers, CTOs, designers, etc.\\n\\nWant to get more involved or contribute to the project, see the [open issues](https://github.com/hadmean/hadmean/issues) for a list of proposed features. Any contributions you make will be highly beneficial and appreciated. Get started by reading the [contribution guidelines](https://github.com/hadmean/hadmean/blob/master/docs/CONTRIBUTING.md).\\n\\nStart building your admin apps with Hadmean today! If you like this project and found this article helpful, please share and leave a star on GitHub."}]}')}}]); \ No newline at end of file diff --git a/assets/js/b2f554cd.a4d49236.js b/assets/js/b2f554cd.a4d49236.js deleted file mode 100644 index f420b8518..000000000 --- a/assets/js/b2f554cd.a4d49236.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[1477],{10:e=>{e.exports=JSON.parse('{"blogPosts":[{"id":"/2022/10/06/crud-under-59-seconds","metadata":{"permalink":"/blog/2022/10/06/crud-under-59-seconds","source":"@site/blog/2022-10-06-crud-under-59-seconds/index.md","title":"Build a CRUD interface for your database in under 59 seconds","description":"For the shortest tutorial on building things, the only step for you is to run","date":"2022-10-06T00:00:00.000Z","formattedDate":"October 6, 2022","tags":[{"label":"introduction","permalink":"/blog/tags/introduction"}],"readingTime":0.9,"hasTruncateMarker":false,"authors":[{"name":"Ayobami Akingbade","title":"Creator of Hadmean","url":"https://github.com/thrownullexception","imageURL":"https://github.com/thrownullexception.png","key":"ayobami"}],"frontMatter":{"title":"Build a CRUD interface for your database in under 59 seconds","authors":["ayobami"],"tags":["introduction"]},"nextItem":{"title":"Hadmean - Introducing the easiest, most efficient internal tool generator.","permalink":"/blog/2022/10/05/introduction"}},"content":"For the shortest tutorial on building things, the only step for you is to run\\n\\n```js\\nnpx hadmean\\n```\\n\\nThen go to [http://localhost:3000](http://localhost:3000) where you will be asked for your DB credentials and voila, You can start CRUDing your database. There is no Javascript, or SQL, or drag-and-drop tutorial needed to get started.\\n\\n[Hadmean](https://github.com/hadmean/hadmean) is not just a CRUD builder, it is fully an internal tool generator. It might be simple to install but it has tons of features and is entirely customizable.\\n\\n[Here](https://demo.hadmean.com) is a demo application built in under 59 seconds.\\n\\nOther features include:\\n- Authentication\\n- Users management\\n- Roles and permissions\\n- CRUD\\n- Relationships\\n- Forms validation\\n- Powerful Filters\\n- A powerful multi-page navigation system\\n- Automatic Introspection\\n- Views\\n- Intuitive dashboard builder\\n\\nYou can always refer to the [documentation](https://hadmean.com/docs/intro) to get the best out of Hadmean and join our [discord server](https://discord.gg/aV6DxwXhzN) to interact with the community.\\n\\nStart building your admin apps with Hadmean today! If you like this project and found this article helpful, please share and leave a star on [Github](https://github.com/hadmean/hadmean)."},{"id":"/2022/10/05/introduction","metadata":{"permalink":"/blog/2022/10/05/introduction","source":"@site/blog/2022-10-05-introduction/index.md","title":"Hadmean - Introducing the easiest, most efficient internal tool generator.","description":"Banner","date":"2022-10-05T00:00:00.000Z","formattedDate":"October 5, 2022","tags":[{"label":"introduction","permalink":"/blog/tags/introduction"}],"readingTime":4.285,"hasTruncateMarker":true,"authors":[{"name":"Ayobami Akingbade","title":"Creator of Hadmean","url":"https://github.com/thrownullexception","imageURL":"https://github.com/thrownullexception.png","key":"ayobami"}],"frontMatter":{"title":"Hadmean - Introducing the easiest, most efficient internal tool generator.","authors":["ayobami"],"tags":["introduction"]},"prevItem":{"title":"Build a CRUD interface for your database in under 59 seconds","permalink":"/blog/2022/10/06/crud-under-59-seconds"}},"content":"![Banner](./banner.png)\\n\\n## Introduction\\nIt is often said that a critical ingredient to success lies in one\'s ability to use tools. There are numerous tools out there to help make your work easier, such as internal tools. But what are they for? Why do you need them? And can you use them effectively to improve your business\'s performance and operate more efficiently?\\n\x3c!--truncate--\x3e\\n\\nThe answer is Yes! And that\'s one of the reasons for building Hadmean, a modern no-code, internal tool generator. Developers tend not to enjoy building internal tools as they are boring and too repetitive. With Hadmean, building admin interfaces and internal apps becomes extremely easy and more importantly fun. However, before delving into all the exciting features and offerings of Hadmean, let us briefly understand internal tools.\\n\\n## What are internal\xa0tools?\\nInternal tools, also known as admin interfaces, internal software, admin panels, internal apps, admin dashboards, or employee tools, are software created to perform administrative tasks in an organization. These are generally purpose-built to fit an organization\'s internal operations and processes. They range from data visualization dashboards and CRUD interfaces to your data, lead management systems, and customer support tools.\\n\\nInternal tools are incredibly vital, and developers invest significant time in developing internal tools, admin panels, and systems for back-office operations to automate and speed up essential business functions. It includes several efforts, ranging from database maintenance to creating various front-end and back-end codes. But what if you could utilize a modern tool to build such applications that help to ease the burden of your work? Sounds good, right? Let\'s look at how you can also create internal tools that enable business agility.\\n## What is\xa0Hadmean?\\n[Hadmean](https://github.com/hadmean/hadmean) is an open-source, no-code software that generates admin dashboards, internal apps, and admin panels based on your existing database information. It is fully featured and extremely customizable.\\n\\n## Why Hadmean?\\nMost internal tool generators make you build from the ground up i.e you get a blank canvas then you are asked to drag and drop components, and wire them together to satisfy your business requirement. This I believe has many problems.\\n- They require technical know-how.\\n- They require some learning curve.\\n- They require time to build and maintain.\\n- You duplicate a lot of business logic already in your database.\\n\\nHadmean approaches internal tool generation by introspecting your database and building a multi-page application according to all the info it can find, like your field types, relationships, constraints, etc. No JavaScript or SQL is needed to get a fully working application.\\n\\n## Features\\nBelow are some of the top-rated features of Hadmean that make it the best platform for internal tool generation.\\n\\n**Easy to install:** Hadmean has one of the easiest installation processes for such a robust tool. It requires just one command `npx hadmean` to get it up and running.\\n\\n**Easy to use:** There is no technical knowledge required to use Hadmean as it is a visual tool hence there is almost zero learning curve.\\n\\n**Customizable:** Hadmean is fully customizable, you can turn on/off every feature you see in the UI within the UI.\\n\\n**Free and Opensource:** Hadmean is freely available and fully open-sourced. Since it is open-source, the source code is available to the public so you can always modify it for your use case however you see fit.\\n\\n**Language/framework agnostic**: Hadmean is interoperable among various systems. It follows a universal principle that is independent of language specifics.\\n\\nTechnical features include:\\n- Authentication\\n- Users management\\n- Roles and permissions\\n- CRUD\\n- Relationships\\n- Forms validation\\n- Powerful Filters\\n- A powerful multi-page navigation system\\n- Automatic Introspection\\n- Views\\n- Intuitive dashboard builder\\n\\n## Easy steps to build your first internal\xa0tool\\nTo get started, you will need to have [Node.js](https://nodejs.org/en/download/). That is the only requirement.\\n\\nThen run the following command to get it started\\n\\n```bash\\nnpx hadmean\\n```\\nYou should now be able to see the application running at [http://locahost:3000](http://locahost:3000) where you will be asked to provide your DB credentials and voila your admin app is fully set up.\\n\\n[Here](https://demo.hadmean.com) is a link to a demo application built with Hadmean in under 1 minute.\\n\\nTo get a broad overview of how it works, watch a [quick demo](https://github.com/hadmean/hadmean#quick-demo).\\n\\nYou can always refer to the [documentation](https://hadmean.com) to get the best out of Hadmean and join our [discord server](https://discord.gg/aV6DxwXhzN) to interact with the community.\\n\\n## Wrapping up\\nAs a final note, this is just the beginning! We are optimistic about what the future holds, with several other exciting features in the pipeline. Hadmean is here to stay, and we\'ll keep executing and serving our users the latest updates.\\n\\nTry Hadmean if you haven\'t already and share it with your friends in the tech space, developers, QA engineers, product managers, CTOs, designers, etc.\\n\\nWant to get more involved or contribute to the project, see the [open issues](https://github.com/hadmean/hadmean/issues) for a list of proposed features. Any contributions you make will be highly beneficial and appreciated. Get started by reading the [contribution guidelines](https://github.com/hadmean/hadmean/blob/master/docs/CONTRIBUTING.md).\\n\\nStart building your admin apps with Hadmean today! If you like this project and found this article helpful, please share and leave a star on GitHub."}]}')}}]); \ No newline at end of file diff --git a/assets/js/bdd73b26.4b892ae0.js b/assets/js/bdd73b26.4b892ae0.js new file mode 100644 index 000000000..c3d4d962f --- /dev/null +++ b/assets/js/bdd73b26.4b892ae0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[987],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var n=a(7294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var s=n.createContext({}),u=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),c=u(a),m=o,h=c["".concat(s,".").concat(m)]||c[m]||p[m]||r;return a?n.createElement(h,i(i({ref:t},d),{},{components:a})):n.createElement(h,i({ref:t},d))}));function m(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,i=new Array(r);i[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var u=2;u{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>l,toc:()=>u});var n=a(7462),o=(a(7294),a(3905));const r={title:"Hadmean - Introducing the easiest, most efficient internal tool generator.",authors:["ayobami"],tags:["introduction"]},i=void 0,l={permalink:"/blog/2022/10/05/introduction",source:"@site/blog/2022-10-05-introduction/index.md",title:"Hadmean - Introducing the easiest, most efficient internal tool generator.",description:"Banner",date:"2022-10-05T00:00:00.000Z",formattedDate:"October 5, 2022",tags:[{label:"introduction",permalink:"/blog/tags/introduction"}],readingTime:4.285,hasTruncateMarker:!0,authors:[{name:"Ayobami Akingbade",title:"Creator of Hadmean",url:"https://github.com/thrownullexception",imageURL:"https://github.com/thrownullexception.png",key:"ayobami"}],frontMatter:{title:"Hadmean - Introducing the easiest, most efficient internal tool generator.",authors:["ayobami"],tags:["introduction"]},prevItem:{title:"Build a CRUD interface for your database in under 59 seconds",permalink:"/blog/2022/10/06/crud-under-59-seconds"}},s={authorsImageUrls:[void 0]},u=[{value:"Introduction",id:"introduction",level:2},{value:"What are internal\xa0tools?",id:"what-are-internaltools",level:2},{value:"What is\xa0Hadmean?",id:"what-ishadmean",level:2},{value:"Why Hadmean?",id:"why-hadmean",level:2},{value:"Features",id:"features",level:2},{value:"Easy steps to build your first internal\xa0tool",id:"easy-steps-to-build-your-first-internaltool",level:2},{value:"Wrapping up",id:"wrapping-up",level:2}],d={toc:u};function p(e){let{components:t,...r}=e;return(0,o.kt)("wrapper",(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Banner",src:a(6283).Z,width:"8244",height:"2752"})),(0,o.kt)("h2",{id:"introduction"},"Introduction"),(0,o.kt)("p",null,"It is often said that a critical ingredient to success lies in one's ability to use tools. There are numerous tools out there to help make your work easier, such as internal tools. But what are they for? Why do you need them? And can you use them effectively to improve your business's performance and operate more efficiently?"),(0,o.kt)("p",null,"The answer is Yes! And that's one of the reasons for building Hadmean, a modern no-code, internal tool generator. Developers tend not to enjoy building internal tools as they are boring and too repetitive. With Hadmean, building admin interfaces and internal apps becomes extremely easy and more importantly fun. However, before delving into all the exciting features and offerings of Hadmean, let us briefly understand internal tools."),(0,o.kt)("h2",{id:"what-are-internaltools"},"What are internal\xa0tools?"),(0,o.kt)("p",null,"Internal tools, also known as admin interfaces, internal software, admin panels, internal apps, admin dashboards, or employee tools, are software created to perform administrative tasks in an organization. These are generally purpose-built to fit an organization's internal operations and processes. They range from data visualization dashboards and CRUD interfaces to your data, lead management systems, and customer support tools."),(0,o.kt)("p",null,"Internal tools are incredibly vital, and developers invest significant time in developing internal tools, admin panels, and systems for back-office operations to automate and speed up essential business functions. It includes several efforts, ranging from database maintenance to creating various front-end and back-end codes. But what if you could utilize a modern tool to build such applications that help to ease the burden of your work? Sounds good, right? Let's look at how you can also create internal tools that enable business agility."),(0,o.kt)("h2",{id:"what-ishadmean"},"What is\xa0Hadmean?"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://github.com/hadmean/hadmean"},"Hadmean")," is an open-source, no-code software that generates admin dashboards, internal apps, and admin panels based on your existing database information. It is fully featured and extremely customizable."),(0,o.kt)("h2",{id:"why-hadmean"},"Why Hadmean?"),(0,o.kt)("p",null,"Most internal tool generators make you build from the ground up i.e you get a blank canvas then you are asked to drag and drop components, and wire them together to satisfy your business requirement. This I believe has many problems."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"They require technical know-how."),(0,o.kt)("li",{parentName:"ul"},"They require some learning curve."),(0,o.kt)("li",{parentName:"ul"},"They require time to build and maintain."),(0,o.kt)("li",{parentName:"ul"},"You duplicate a lot of business logic already in your database.")),(0,o.kt)("p",null,"Hadmean approaches internal tool generation by introspecting your database and building a multi-page application according to all the info it can find, like your field types, relationships, constraints, etc. No JavaScript or SQL is needed to get a fully working application."),(0,o.kt)("h2",{id:"features"},"Features"),(0,o.kt)("p",null,"Below are some of the top-rated features of Hadmean that make it the best platform for internal tool generation."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Easy to install:")," Hadmean has one of the easiest installation processes for such a robust tool. It requires just one command ",(0,o.kt)("inlineCode",{parentName:"p"},"npx hadmean")," to get it up and running."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Easy to use:")," There is no technical knowledge required to use Hadmean as it is a visual tool hence there is almost zero learning curve."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Customizable:")," Hadmean is fully customizable, you can turn on/off every feature you see in the UI within the UI."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Free and Opensource:")," Hadmean is freely available and fully open-sourced. Since it is open-source, the source code is available to the public so you can always modify it for your use case however you see fit."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Language/framework agnostic"),": Hadmean is interoperable among various systems. It follows a universal principle that is independent of language specifics."),(0,o.kt)("p",null,"Technical features include:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Authentication"),(0,o.kt)("li",{parentName:"ul"},"Users management"),(0,o.kt)("li",{parentName:"ul"},"Roles and permissions"),(0,o.kt)("li",{parentName:"ul"},"CRUD"),(0,o.kt)("li",{parentName:"ul"},"Relationships"),(0,o.kt)("li",{parentName:"ul"},"Forms validation"),(0,o.kt)("li",{parentName:"ul"},"Powerful Filters"),(0,o.kt)("li",{parentName:"ul"},"A powerful multi-page navigation system"),(0,o.kt)("li",{parentName:"ul"},"Automatic Introspection"),(0,o.kt)("li",{parentName:"ul"},"Views"),(0,o.kt)("li",{parentName:"ul"},"Intuitive dashboard builder")),(0,o.kt)("h2",{id:"easy-steps-to-build-your-first-internaltool"},"Easy steps to build your first internal\xa0tool"),(0,o.kt)("p",null,"To get started, you will need to have ",(0,o.kt)("a",{parentName:"p",href:"https://nodejs.org/en/download/"},"Node.js"),". That is the only requirement."),(0,o.kt)("p",null,"Then run the following command to get it started"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"npx hadmean\n")),(0,o.kt)("p",null,"You should now be able to see the application running at ",(0,o.kt)("a",{parentName:"p",href:"http://locahost:3000"},"http://locahost:3000")," where you will be asked to provide your DB credentials and voila your admin app is fully set up."),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://demo.hadmean.com"},"Here")," is a link to a demo application built with Hadmean in under 1 minute."),(0,o.kt)("p",null,"To get a broad overview of how it works, watch a ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/hadmean/hadmean#quick-demo"},"quick demo"),"."),(0,o.kt)("p",null,"You can always refer to the ",(0,o.kt)("a",{parentName:"p",href:"https://hadmean.com"},"documentation")," to get the best out of Hadmean and join our ",(0,o.kt)("a",{parentName:"p",href:"https://discord.gg/aV6DxwXhzN"},"discord server")," to interact with the community."),(0,o.kt)("h2",{id:"wrapping-up"},"Wrapping up"),(0,o.kt)("p",null,"As a final note, this is just the beginning! We are optimistic about what the future holds, with several other exciting features in the pipeline. Hadmean is here to stay, and we'll keep executing and serving our users the latest updates."),(0,o.kt)("p",null,"Try Hadmean if you haven't already and share it with your friends in the tech space, developers, QA engineers, product managers, CTOs, designers, etc."),(0,o.kt)("p",null,"Want to get more involved or contribute to the project, see the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/hadmean/hadmean/issues"},"open issues")," for a list of proposed features. Any contributions you make will be highly beneficial and appreciated. Get started by reading the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/hadmean/hadmean/blob/master/docs/CONTRIBUTING.md"},"contribution guidelines"),"."),(0,o.kt)("p",null,"Start building your admin apps with Hadmean today! If you like this project and found this article helpful, please share and leave a star on GitHub."))}p.isMDXComponent=!0},6283:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/banner-3fd4e8c7fabf580a47e9a48ca0d5768b.png"}}]); \ No newline at end of file diff --git a/assets/js/bdd73b26.80bbedbf.js b/assets/js/bdd73b26.80bbedbf.js deleted file mode 100644 index c9d73988e..000000000 --- a/assets/js/bdd73b26.80bbedbf.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[4987],{3905:(e,t,a)=>{a.d(t,{Zo:()=>d,kt:()=>m});var n=a(7294);function o(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function r(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}return a}function i(e){for(var t=1;t=0||(o[a]=e[a]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}var s=n.createContext({}),u=function(e){var t=n.useContext(s),a=t;return e&&(a="function"==typeof e?e(t):i(i({},t),e)),a},d=function(e){var t=u(e.components);return n.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},c=n.forwardRef((function(e,t){var a=e.components,o=e.mdxType,r=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),c=u(a),m=o,h=c["".concat(s,".").concat(m)]||c[m]||p[m]||r;return a?n.createElement(h,i(i({ref:t},d),{},{components:a})):n.createElement(h,i({ref:t},d))}));function m(e,t){var a=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=a.length,i=new Array(r);i[0]=c;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:o,i[1]=l;for(var u=2;u{a.r(t),a.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>l,toc:()=>u});var n=a(7462),o=(a(7294),a(3905));const r={title:"Hadmean - Introducing the easiest, most efficient internal tool generator.",authors:["ayobami"],tags:["introduction"]},i=void 0,l={permalink:"/blog/2022/10/05/introduction",source:"@site/blog/2022-10-05-introduction/index.md",title:"Hadmean - Introducing the easiest, most efficient internal tool generator.",description:"Banner",date:"2022-10-05T00:00:00.000Z",formattedDate:"October 5, 2022",tags:[{label:"introduction",permalink:"/blog/tags/introduction"}],readingTime:4.285,hasTruncateMarker:!0,authors:[{name:"Ayobami Akingbade",title:"Creator of Hadmean",url:"https://github.com/thrownullexception",imageURL:"https://github.com/thrownullexception.png",key:"ayobami"}],frontMatter:{title:"Hadmean - Introducing the easiest, most efficient internal tool generator.",authors:["ayobami"],tags:["introduction"]},prevItem:{title:"Build a CRUD interface for your database in under 59 seconds",permalink:"/blog/2022/10/06/crud-under-59-seconds"}},s={authorsImageUrls:[void 0]},u=[{value:"Introduction",id:"introduction",level:2},{value:"What are internal\xa0tools?",id:"what-are-internaltools",level:2},{value:"What is\xa0Hadmean?",id:"what-ishadmean",level:2},{value:"Why Hadmean?",id:"why-hadmean",level:2},{value:"Features",id:"features",level:2},{value:"Easy steps to build your first internal\xa0tool",id:"easy-steps-to-build-your-first-internaltool",level:2},{value:"Wrapping up",id:"wrapping-up",level:2}],d={toc:u};function p(e){let{components:t,...r}=e;return(0,o.kt)("wrapper",(0,n.Z)({},d,r,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Banner",src:a(6283).Z,width:"8244",height:"2752"})),(0,o.kt)("h2",{id:"introduction"},"Introduction"),(0,o.kt)("p",null,"It is often said that a critical ingredient to success lies in one's ability to use tools. There are numerous tools out there to help make your work easier, such as internal tools. But what are they for? Why do you need them? And can you use them effectively to improve your business's performance and operate more efficiently?"),(0,o.kt)("p",null,"The answer is Yes! And that's one of the reasons for building Hadmean, a modern no-code, internal tool generator. Developers tend not to enjoy building internal tools as they are boring and too repetitive. With Hadmean, building admin interfaces and internal apps becomes extremely easy and more importantly fun. However, before delving into all the exciting features and offerings of Hadmean, let us briefly understand internal tools."),(0,o.kt)("h2",{id:"what-are-internaltools"},"What are internal\xa0tools?"),(0,o.kt)("p",null,"Internal tools, also known as admin interfaces, internal software, admin panels, internal apps, admin dashboards, or employee tools, are software created to perform administrative tasks in an organization. These are generally purpose-built to fit an organization's internal operations and processes. They range from data visualization dashboards and CRUD interfaces to your data, lead management systems, and customer support tools."),(0,o.kt)("p",null,"Internal tools are incredibly vital, and developers invest significant time in developing internal tools, admin panels, and systems for back-office operations to automate and speed up essential business functions. It includes several efforts, ranging from database maintenance to creating various front-end and back-end codes. But what if you could utilize a modern tool to build such applications that help to ease the burden of your work? Sounds good, right? Let's look at how you can also create internal tools that enable business agility."),(0,o.kt)("h2",{id:"what-ishadmean"},"What is\xa0Hadmean?"),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://github.com/hadmean/hadmean"},"Hadmean")," is an open-source, no-code software that generates admin dashboards, internal apps, and admin panels based on your existing database information. It is fully featured and extremely customizable."),(0,o.kt)("h2",{id:"why-hadmean"},"Why Hadmean?"),(0,o.kt)("p",null,"Most internal tool generators make you build from the ground up i.e you get a blank canvas then you are asked to drag and drop components, and wire them together to satisfy your business requirement. This I believe has many problems."),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"They require technical know-how."),(0,o.kt)("li",{parentName:"ul"},"They require some learning curve."),(0,o.kt)("li",{parentName:"ul"},"They require time to build and maintain."),(0,o.kt)("li",{parentName:"ul"},"You duplicate a lot of business logic already in your database.")),(0,o.kt)("p",null,"Hadmean approaches internal tool generation by introspecting your database and building a multi-page application according to all the info it can find, like your field types, relationships, constraints, etc. No JavaScript or SQL is needed to get a fully working application."),(0,o.kt)("h2",{id:"features"},"Features"),(0,o.kt)("p",null,"Below are some of the top-rated features of Hadmean that make it the best platform for internal tool generation."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Easy to install:")," Hadmean has one of the easiest installation processes for such a robust tool. It requires just one command ",(0,o.kt)("inlineCode",{parentName:"p"},"npx hadmean")," to get it up and running."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Easy to use:")," There is no technical knowledge required to use Hadmean as it is a visual tool hence there is almost zero learning curve."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Customizable:")," Hadmean is fully customizable, you can turn on/off every feature you see in the UI within the UI."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Free and Opensource:")," Hadmean is freely available and fully open-sourced. Since it is open-source, the source code is available to the public so you can always modify it for your use case however you see fit."),(0,o.kt)("p",null,(0,o.kt)("strong",{parentName:"p"},"Language/framework agnostic"),": Hadmean is interoperable among various systems. It follows a universal principle that is independent of language specifics."),(0,o.kt)("p",null,"Technical features include:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Authentication"),(0,o.kt)("li",{parentName:"ul"},"Users management"),(0,o.kt)("li",{parentName:"ul"},"Roles and permissions"),(0,o.kt)("li",{parentName:"ul"},"CRUD"),(0,o.kt)("li",{parentName:"ul"},"Relationships"),(0,o.kt)("li",{parentName:"ul"},"Forms validation"),(0,o.kt)("li",{parentName:"ul"},"Powerful Filters"),(0,o.kt)("li",{parentName:"ul"},"A powerful multi-page navigation system"),(0,o.kt)("li",{parentName:"ul"},"Automatic Introspection"),(0,o.kt)("li",{parentName:"ul"},"Views"),(0,o.kt)("li",{parentName:"ul"},"Intuitive dashboard builder")),(0,o.kt)("h2",{id:"easy-steps-to-build-your-first-internaltool"},"Easy steps to build your first internal\xa0tool"),(0,o.kt)("p",null,"To get started, you will need to have ",(0,o.kt)("a",{parentName:"p",href:"https://nodejs.org/en/download/"},"Node.js"),". That is the only requirement."),(0,o.kt)("p",null,"Then run the following command to get it started"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-bash"},"npx hadmean\n")),(0,o.kt)("p",null,"You should now be able to see the application running at ",(0,o.kt)("a",{parentName:"p",href:"http://locahost:3000"},"http://locahost:3000")," where you will be asked to provide your DB credentials and voila your admin app is fully set up."),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://demo.hadmean.com"},"Here")," is a link to a demo application built with Hadmean in under 1 minute."),(0,o.kt)("p",null,"To get a broad overview of how it works, watch a ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/hadmean/hadmean#quick-demo"},"quick demo"),"."),(0,o.kt)("p",null,"You can always refer to the ",(0,o.kt)("a",{parentName:"p",href:"https://hadmean.com"},"documentation")," to get the best out of Hadmean and join our ",(0,o.kt)("a",{parentName:"p",href:"https://discord.gg/aV6DxwXhzN"},"discord server")," to interact with the community."),(0,o.kt)("h2",{id:"wrapping-up"},"Wrapping up"),(0,o.kt)("p",null,"As a final note, this is just the beginning! We are optimistic about what the future holds, with several other exciting features in the pipeline. Hadmean is here to stay, and we'll keep executing and serving our users the latest updates."),(0,o.kt)("p",null,"Try Hadmean if you haven't already and share it with your friends in the tech space, developers, QA engineers, product managers, CTOs, designers, etc."),(0,o.kt)("p",null,"Want to get more involved or contribute to the project, see the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/hadmean/hadmean/issues"},"open issues")," for a list of proposed features. Any contributions you make will be highly beneficial and appreciated. Get started by reading the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/hadmean/hadmean/blob/master/docs/CONTRIBUTING.md"},"contribution guidelines"),"."),(0,o.kt)("p",null,"Start building your admin apps with Hadmean today! If you like this project and found this article helpful, please share and leave a star on GitHub."))}p.isMDXComponent=!0},6283:(e,t,a)=>{a.d(t,{Z:()=>n});const n=a.p+"assets/images/banner-3fd4e8c7fabf580a47e9a48ca0d5768b.png"}}]); \ No newline at end of file diff --git a/assets/js/be6bb62b.53bdc29d.js b/assets/js/be6bb62b.53bdc29d.js deleted file mode 100644 index 46b136de9..000000000 --- a/assets/js/be6bb62b.53bdc29d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[2826],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),d=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=d(e.components);return r.createElement(s.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),u=d(n),m=a,y=u["".concat(s,".").concat(m)]||u[m]||c[m]||o;return n?r.createElement(y,l(l({ref:t},p),{},{components:n})):r.createElement(y,l({ref:t},p))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,l=new Array(o);l[0]=u;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i.mdxType="string"==typeof e?e:a,l[1]=i;for(var d=2;d{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>i,toc:()=>d});var r=n(7462),a=(n(7294),n(3905));const o={sidebar_position:4},l="Roles and Permissions",i={unversionedId:"accounts/roles",id:"accounts/roles",title:"Roles and Permissions",description:"Hadmean as two default roles, creator and viewer. They are not editable or deletable, they don't even exist physically and are inferred most of the time.",source:"@site/docs/accounts/roles.md",sourceDirName:"accounts",slug:"/accounts/roles",permalink:"/docs/accounts/roles",draft:!1,editUrl:"https://github.com/hadmean/archaea/edit/main/docs/accounts/roles.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"System Profile",permalink:"/docs/accounts/system-profile"}},s={},d=[{value:"Creator",id:"creator",level:2},{value:"Viewer",id:"viewer",level:2},{value:"Custom roles",id:"custom-roles",level:2},{value:"Permissions Breakdown",id:"permissions-breakdown",level:2}],p={toc:d};function c(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"roles-and-permissions"},"Roles and Permissions"),(0,a.kt)("p",null,"Hadmean as two default roles, ",(0,a.kt)("inlineCode",{parentName:"p"},"creator")," and ",(0,a.kt)("inlineCode",{parentName:"p"},"viewer"),". They are not editable or deletable, they don't even exist physically and are inferred most of the time."),(0,a.kt)("h2",{id:"creator"},"Creator"),(0,a.kt)("p",null,"This is the ",(0,a.kt)("inlineCode",{parentName:"p"},"can-do-all")," things role, this is the role the user installing the application gets assigned."),(0,a.kt)("h2",{id:"viewer"},"Viewer"),(0,a.kt)("p",null,"This role has only ",(0,a.kt)("inlineCode",{parentName:"p"},"CAN_ACCESS_ALL_ENTITIES"),". "),(0,a.kt)("p",null,(0,a.kt)("inlineCode",{parentName:"p"},"Viewers")," who can only view and manage all enabled data but can't configure the app, manage users, manage roles, reset passwords etc."),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"If a user is assigned a role and the role is deleted, then the user will be assigned the ",(0,a.kt)("inlineCode",{parentName:"p"},"viewer")," role.")),(0,a.kt)("h2",{id:"custom-roles"},"Custom roles"),(0,a.kt)("p",null,"From the UI you can easily create as many roles as you want and assign as many permissions as you like."),(0,a.kt)("h2",{id:"permissions-breakdown"},"Permissions Breakdown"),(0,a.kt)("table",null,(0,a.kt)("thead",{parentName:"table"},(0,a.kt)("tr",{parentName:"thead"},(0,a.kt)("th",{parentName:"tr",align:null},"Role"),(0,a.kt)("th",{parentName:"tr",align:null},"Function"))),(0,a.kt)("tbody",{parentName:"table"},(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("inlineCode",{parentName:"td"},"CAN_CONFIGURE_APP")),(0,a.kt)("td",{parentName:"tr",align:null},"gives users access to the app configuration menu.")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("inlineCode",{parentName:"td"},"CAN_RESET_PASSWORD")),(0,a.kt)("td",{parentName:"tr",align:null},"allows users to reset passwords.")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("inlineCode",{parentName:"td"},"CAN_MANAGE_PERMISSIONS")),(0,a.kt)("td",{parentName:"tr",align:null},"allows users to manage roles and permissions.")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("inlineCode",{parentName:"td"},"CAN_MANAGE_USERS")),(0,a.kt)("td",{parentName:"tr",align:null},"will allow users to CRUD users.")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("inlineCode",{parentName:"td"},"CAN_ACCESS_ALL_ENTITIES")),(0,a.kt)("td",{parentName:"tr",align:null},"allows user access to present and future entities.")),(0,a.kt)("tr",{parentName:"tbody"},(0,a.kt)("td",{parentName:"tr",align:null},(0,a.kt)("inlineCode",{parentName:"td"},"CAN_ACCESS_ENTITY:")),(0,a.kt)("td",{parentName:"tr",align:null},"Allows access to only that entity. Remember to remove the ",(0,a.kt)("inlineCode",{parentName:"td"},"CAN_ACCESS_ALL_ENTITIES")," permission when you toogle any of these on.")))))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/c1515a2f.1fc19159.js b/assets/js/c1515a2f.1fc19159.js deleted file mode 100644 index 5a5542b49..000000000 --- a/assets/js/c1515a2f.1fc19159.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[2105],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>d});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var l=r.createContext({}),c=function(e){var t=r.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(l.Provider,{value:t},e.children)},u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),f=c(n),d=a,m=f["".concat(l,".").concat(d)]||f[d]||u[d]||o;return n?r.createElement(m,i(i({ref:t},p),{},{components:n})):r.createElement(m,i({ref:t},p))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=f;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>c});var r=n(7462),a=(n(7294),n(3905));const o={sidebar_position:7},i="Views",s={unversionedId:"app-configuration/views",id:"app-configuration/views",title:"Views",description:"Views enables you to implement views like this",source:"@site/docs/app-configuration/views.md",sourceDirName:"app-configuration",slug:"/app-configuration/views",permalink:"/docs/app-configuration/views",draft:!1,editUrl:"https://github.com/hadmean/archaea/edit/main/docs/app-configuration/views.md",tags:[],version:"current",sidebarPosition:7,frontMatter:{sidebar_position:7},sidebar:"tutorialSidebar",previous:{title:"System Settings",permalink:"/docs/app-configuration/system"},next:{title:"Integrations",permalink:"/docs/category/integrations"}},l={},c=[],p={toc:c};function u(e){let{components:t,...o}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"views"},"Views"),(0,a.kt)("p",null,"Views enables you to implement views like this"),(0,a.kt)("p",null,(0,a.kt)("img",{alt:"Tab Tables",src:n(3507).Z,width:"569",height:"141"})),(0,a.kt)("p",null,"You simply add all the tabs you want with the ",(0,a.kt)("inlineCode",{parentName:"p"},"Add new tab")," button"),(0,a.kt)("p",null,"For each tab, you will be able to set the title of the tab and customize the query for that tab along with the default sorting you desire"),(0,a.kt)("p",null,"If you set just one tab then that tab will not show in the UI but the settings for that one tab will be implemented."),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"}," Having just one tab is the way to modify the default query for your table.")))}u.isMDXComponent=!0},3507:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/table-tabs-0e4afab2cd270630e14407cac8a52967.png"}}]); \ No newline at end of file diff --git a/assets/js/c38be1f1.144e04af.js b/assets/js/c38be1f1.144e04af.js deleted file mode 100644 index 31e3dfb3f..000000000 --- a/assets/js/c38be1f1.144e04af.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[7894],{4016:e=>{e.exports=JSON.parse('{"title":"Account management","description":"Guide on granting access to users","slug":"/category/account-management","permalink":"/docs/category/account-management","navigation":{"previous":{"title":"Variables","permalink":"/docs/integrations/variables"},"next":{"title":"System Profile","permalink":"/docs/accounts/system-profile"}}}')}}]); \ No newline at end of file diff --git a/assets/js/c4f5d8e4.cb2e570d.js b/assets/js/c4f5d8e4.cb2e570d.js deleted file mode 100644 index 320232c53..000000000 --- a/assets/js/c4f5d8e4.cb2e570d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[4195],{6327:(e,t,a)=>{a.r(t),a.d(t,{default:()=>Z});var l=a(7294),r=a(5742),c=a(2263),n=a(2389);function m(e){let{children:t,fallback:a}=e;return(0,n.Z)()?l.createElement(l.Fragment,null,null==t?void 0:t()):a??null}var s=a(9960);const i="https://twitter.com/hadmeanHQ",o="https://github.com/hadmean/hadmean",d="https://discord.gg/aV6DxwXhzN",g="https://demo.hadmean.com",C=()=>window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";function h(){const e=C();return l.createElement("footer",{className:"bg-gray-50 dark:bg-gray-800"},l.createElement("div",{className:"max-w-screen-xl p-4 py-2 mx-auto lg:py-8 md:p-8 lg:p-10"},l.createElement("div",{className:"text-center"},l.createElement("a",{href:"#",className:"flex items-center justify-center mb-5 text-2xl font-semibold text-gray-900 dark:text-white"},l.createElement("img",{className:"h-6 mr-3 sm:h-9",src:`/img/${"dark"===e?"logo-white":"logo"}.png`,alt:"Hadmean logo"})),l.createElement("span",{className:"block text-sm text-center text-gray-500 dark:text-gray-400"},"\xa9 2022 Hadmean. All Rights Reserved."),l.createElement("ul",{className:"flex justify-center mt-5 space-x-5"},l.createElement("li",null,l.createElement(s.Z,{href:i,className:"text-gray-500 hover:text-gray-900 dark:hover:text-white dark:text-gray-400"},l.createElement("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true"},l.createElement("path",{d:"M8.29 20.251c7.547 0 11.675-6.253 11.675-11.675 0-.178 0-.355-.012-.53A8.348 8.348 0 0022 5.92a8.19 8.19 0 01-2.357.646 4.118 4.118 0 001.804-2.27 8.224 8.224 0 01-2.605.996 4.107 4.107 0 00-6.993 3.743 11.65 11.65 0 01-8.457-4.287 4.106 4.106 0 001.27 5.477A4.072 4.072 0 012.8 9.713v.052a4.105 4.105 0 003.292 4.022 4.095 4.095 0 01-1.853.07 4.108 4.108 0 003.834 2.85A8.233 8.233 0 012 18.407a11.616 11.616 0 006.29 1.84"})))),l.createElement("li",null,l.createElement(s.Z,{href:o,className:"text-gray-500 hover:text-gray-900 dark:hover:text-white dark:text-gray-400"},l.createElement("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true"},l.createElement("path",{fillRule:"evenodd",d:"M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z",clipRule:"evenodd"})))),l.createElement("li",null,l.createElement(s.Z,{href:d,className:"text-gray-500 hover:text-gray-900 dark:hover:text-white dark:text-gray-400"},l.createElement("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 -28.5 256 256","aria-hidden":"true"},l.createElement("path",{d:"M216.856339,16.5966031 C200.285002,8.84328665 182.566144,3.2084988 164.041564,0 C161.766523,4.11318106 159.108624,9.64549908 157.276099,14.0464379 C137.583995,11.0849896 118.072967,11.0849896 98.7430163,14.0464379 C96.9108417,9.64549908 94.1925838,4.11318106 91.8971895,0 C73.3526068,3.2084988 55.6133949,8.86399117 39.0420583,16.6376612 C5.61752293,67.146514 -3.4433191,116.400813 1.08711069,164.955721 C23.2560196,181.510915 44.7403634,191.567697 65.8621325,198.148576 C71.0772151,190.971126 75.7283628,183.341335 79.7352139,175.300261 C72.104019,172.400575 64.7949724,168.822202 57.8887866,164.667963 C59.7209612,163.310589 61.5131304,161.891452 63.2445898,160.431257 C105.36741,180.133187 151.134928,180.133187 192.754523,160.431257 C194.506336,161.891452 196.298154,163.310589 198.110326,164.667963 C191.183787,168.842556 183.854737,172.420929 176.223542,175.320965 C180.230393,183.341335 184.861538,190.991831 190.096624,198.16893 C211.238746,191.588051 232.743023,181.531619 254.911949,164.955721 C260.227747,108.668201 245.831087,59.8662432 216.856339,16.5966031 Z M85.4738752,135.09489 C72.8290281,135.09489 62.4592217,123.290155 62.4592217,108.914901 C62.4592217,94.5396472 72.607595,82.7145587 85.4738752,82.7145587 C98.3405064,82.7145587 108.709962,94.5189427 108.488529,108.914901 C108.508531,123.290155 98.3405064,135.09489 85.4738752,135.09489 Z M170.525237,135.09489 C157.88039,135.09489 147.510584,123.290155 147.510584,108.914901 C147.510584,94.5396472 157.658606,82.7145587 170.525237,82.7145587 C183.391518,82.7145587 193.761324,94.5189427 193.539891,108.914901 C193.539891,123.290155 183.391518,135.09489 170.525237,135.09489 Z",fillRule:"evenodd",clipRule:"evenodd"}))))))))}function p(){return l.createElement("section",{className:"bg-white dark:bg-gray-900"},l.createElement("div",{className:"max-w-screen-xl px-4 py-8 mx-auto lg:py-16 lg:px-6"},l.createElement("div",{className:"max-w-screen-sm mx-auto text-center"},l.createElement("h2",{className:"mb-4 text-3xl font-extrabold leading-tight tracking-tight text-gray-900 dark:text-white"},"Build your next internal tool with Hadmean"),l.createElement("p",{className:"mb-6 font-light text-gray-500 dark:text-gray-400 md:text-lg"},"Focus your precious engineering resources on more interesting things. Don't build and maintain what you can auto-generate."),l.createElement(s.Z,{href:"/docs/installation/setup",className:"text-white bg-primary hover:bg-primary-dark hover:text-white focus:ring-4 focus:ring-primary-lighter font-medium rounded-lg text-sm px-5 py-2.5 mr-2 mb-2 focus:outline-none dark:focus:ring-primary"},"Get Started"))))}var x=a(6010);const u=[{question:"Is Hadmean secure?",answer:l.createElement(l.Fragment,null,"All credentials provided in the application are encrypted at rest using aes-256-gcm. You can find more details about our security implemetations"," ",l.createElement(s.Z,{href:"/docs/security",className:"text-primary dark:text-primary-light hover:underline"},"here"))},{question:"Can I manage my database schema with Hadmean",answer:"No, Hadmean is not intended for such use and will not and will\n never have an interface to change the structure of your\n database."}].map(((e,t)=>({id:t,...e})));function E(){const[e,t]=(0,l.useState)(0);return l.createElement("section",{className:"bg-white dark:bg-gray-900"},l.createElement("div",{className:"max-w-screen-xl px-4 py-8 mx-auto lg:p-12 lg:px-6 "},l.createElement("h2",{className:"mb-6 text-3xl font-extrabold tracking-tight text-center text-gray-900 lg:mb-8 lg:text-3xl dark:text-white"},"Frequently asked questions"),l.createElement("div",{className:"max-w-screen-md mx-auto"},l.createElement("div",{id:"accordion-flush","data-accordion":"collapse","data-active-classes":"bg-white dark:bg-gray-900 text-gray-900 dark:text-white","data-inactive-classes":"text-gray-500 dark:text-gray-400"},u.map((a=>{let{question:r,answer:c,id:n}=a;const m=n===e;return l.createElement(l.Fragment,{key:n},l.createElement("h3",{id:`accordion-flush-heading-${n}`},l.createElement("button",{type:"button",className:(0,x.Z)("flex items-center justify-between w-full py-5 dark:text-white font-medium text-left border-b border-gray-200 dark:border-gray-700",{" text-gray-900 ":m," text-gray-500 ":!m}),"data-accordion-target":`#accordion-flush-body-${n}`,"aria-expanded":m?"true":"false","aria-controls":`accordion-flush-body-${n}`,onClick:()=>t(m?-1:n)},l.createElement("span",null,r),l.createElement("svg",{"data-accordion-icon":"",className:(0,x.Z)("w-6 h-6 shrink-0",{"rotate-180":m}),fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},l.createElement("path",{fillRule:"evenodd",d:"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z",clipRule:"evenodd"})))),l.createElement("div",{id:`accordion-flush-body-${n}`,className:m?"":"hidden","aria-labelledby":`accordion-flush-heading-${n}`},l.createElement("div",{className:"py-5 border-b border-gray-200 dark:border-gray-700"},l.createElement("p",{className:"mb-2 text-gray-500 dark:text-gray-400"},c))))}))))))}function w(){return l.createElement("section",{className:"bg-gray-50 dark:bg-gray-800"},l.createElement("div",{className:"max-w-screen-xl px-4 py-8 mx-auto text-center lg:py-24 lg:px-6"},l.createElement("figure",{className:"max-w-screen-md mx-auto"},l.createElement("svg",{className:"h-12 mx-auto mb-3 text-gray-400 dark:text-gray-600",viewBox:"0 0 24 27",fill:"none",xmlns:"http://www.w3.org/2000/svg"},l.createElement("path",{d:"M14.017 18L14.017 10.609C14.017 4.905 17.748 1.039 23 0L23.995 2.151C21.563 3.068 20 5.789 20 8H24V18H14.017ZM0 18V10.609C0 4.905 3.748 1.038 9 0L9.996 2.151C7.563 3.068 6 5.789 6 8H9.983L9.983 18L0 18Z",fill:"currentColor"})),l.createElement("blockquote",null,l.createElement("p",{className:"text-xl font-medium text-gray-900 md:text-2xl dark:text-white"},'"Hadmean is just awesome. It built all the features for my internal with little techincal how-know. Perfect choice for your next internal tool application."')),l.createElement("figcaption",{className:"flex items-center justify-center mt-6 space-x-3"},l.createElement("img",{className:"w-6 h-6 rounded-full",src:"https://flowbite.s3.amazonaws.com/blocks/marketing-ui/avatars/michael-gouch.png",alt:"profile picture"}),l.createElement("div",{className:"flex items-center divide-x-2 divide-gray-500 dark:divide-gray-700"},l.createElement("div",{className:"pr-3 font-medium text-gray-900 dark:text-white"},"Afia Udofia"),l.createElement("div",{className:"pl-3 text-sm font-light text-gray-500 dark:text-gray-400"},"Technology Expert"))))))}const v=[{title:"Save Resources",subTitle:"Save time and effort",description:"You don't want to duplicate logic already in your database as all your constraints and relationships will be used to build the UI and forms",svg:l.createElement("svg",{className:"w-10 h-10 mb-2 text-primary md:w-12 md:h-12 dark:text-primary-light",fill:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},l.createElement("path",{d:"M10.0811 4.08935C10.6111 4.45511 11.1177 4.69614 11.5352 4.74929C11.3076 5.20138 11.1488 5.68691 11.0659 6.18856C10.3925 6.04081 9.75356 5.6858 9.22916 5.32393C8.96994 5.14504 8.7245 4.95442 8.5 4.76675V7.00005C8.5 7.3063 8.31381 7.58174 8.02974 7.69593L8.02354 7.69849C8.01733 7.70107 8.0067 7.70553 7.99202 7.71188C7.96264 7.72459 7.91715 7.74477 7.85841 7.77242C7.74069 7.82781 7.57111 7.91252 7.3721 8.02624C6.97012 8.25594 6.46791 8.5928 6.03033 9.03038C5.57681 9.4839 5.29723 10.093 5.13933 10.566C4.93681 11.1727 4.42116 11.7319 3.68711 11.8542C3.57914 11.8722 3.5 11.9656 3.5 12.0751V13.828C3.5 13.9934 3.61961 14.1346 3.7828 14.1618C4.40671 14.2658 4.89825 14.6731 5.17464 15.1679C5.42601 15.6179 5.87291 16.3123 6.53033 16.9697C7.04118 17.4806 7.63608 17.8081 8.11482 18.0085C8.3521 18.1078 8.55481 18.1733 8.69504 18.2133C8.76497 18.2333 8.81882 18.2468 8.853 18.2548C8.87007 18.2588 8.88219 18.2615 8.88889 18.2629L8.8937 18.2639L8.89478 18.2642C9.24631 18.3333 9.5 18.6415 9.5 19.0001V20.2501C9.5 20.3881 9.61193 20.5001 9.75 20.5001H11C11 19.6716 11.6716 19.0001 12.5 19.0001H14.5C15.3284 19.0001 16 19.6716 16 20.5001H17.25C17.3881 20.5001 17.5 20.3881 17.5 20.2501V18.0001C17.5 17.7172 17.6597 17.4583 17.9118 17.3306L17.9251 17.3235C17.939 17.3159 17.9629 17.3026 17.9953 17.2833C18.0602 17.2447 18.1586 17.1825 18.2796 17.0952C18.5223 16.9199 18.851 16.6465 19.1806 16.262C19.8329 15.5009 20.5 14.2941 20.5 12.5001C20.5 11.4934 20.3118 10.6797 19.9913 10.0125C20.3492 9.53751 20.619 9.00301 20.7894 8.43653C20.8886 8.5724 20.9827 8.71346 21.0713 8.85993C21.6755 9.85813 22 11.063 22 12.5001C22 14.706 21.1671 16.2492 20.3194 17.2381C19.899 17.7287 19.4777 18.0802 19.1579 18.3112C19.1021 18.3514 19.0493 18.3881 19 18.4214V20.2501C19 21.2166 18.2165 22.0001 17.25 22.0001H16C15.1716 22.0001 14.5 21.3285 14.5 20.5001H12.5C12.5 21.3285 11.8284 22.0001 11 22.0001H9.75C8.7835 22.0001 8 21.2166 8 20.2501V19.5675C7.86194 19.5209 7.7053 19.4631 7.53573 19.3922C6.93965 19.1427 6.15955 18.7203 5.46967 18.0304C4.68564 17.2464 4.16052 16.4283 3.8651 15.8994C3.77791 15.7433 3.64768 15.66 3.5362 15.6414C2.64973 15.4937 2 14.7267 2 13.828V12.0751C2 11.2324 2.60926 10.5132 3.44051 10.3746C3.52742 10.3601 3.6555 10.2738 3.71651 10.0911C3.90886 9.51484 4.28209 8.6573 4.96967 7.96972C5.53209 7.40731 6.15488 6.99416 6.6279 6.72387C6.76427 6.64594 6.88983 6.57897 7 6.52288V3.67121C7 2.73331 8.13062 2.34833 8.73986 2.95499C9.07031 3.28404 9.55006 3.72288 10.0811 4.08935Z"}),l.createElement("path",{d:"M13.07 8.84808C12.5799 8.64513 12.1664 8.25981 12.0679 7.7386C11.7239 5.91712 12.6886 4.04231 14.4689 3.30468C16.5098 2.45911 18.8498 3.42812 19.6954 5.46902C20.433 7.24939 19.7898 9.25732 18.2587 10.3023C17.8206 10.6013 17.2557 10.5814 16.7656 10.3785L13.07 8.84808ZM17.4641 9.02758C18.3837 8.36546 18.7617 7.13428 18.3096 6.04317C17.7811 4.7676 16.3186 4.16197 15.0431 4.69045C13.952 5.14252 13.3489 6.28046 13.5311 7.39885C13.5369 7.40342 13.544 7.40861 13.5525 7.41427C13.5761 7.43001 13.6068 7.44684 13.6439 7.46221L17.3395 8.99263C17.3767 9.008 17.4103 9.0178 17.4381 9.02336C17.4481 9.02535 17.4568 9.0267 17.4641 9.02758Z"}),l.createElement("path",{d:"M9 10C9 10.5523 8.55228 11 8 11C7.44772 11 7 10.5523 7 10C7 9.44774 7.44772 9.00002 8 9.00002C8.55228 9.00002 9 9.44774 9 10Z"}))},{title:"Open Source",subTitle:" Modify and install how you see fit.",description:"You don't want to trust strangers with your precious data as Hadmean\n is fully open-source. ",svg:l.createElement("svg",{className:"w-10 h-10 mb-2 text-primary md:w-12 md:h-12 dark:text-primary-light",fill:"currentColor",viewBox:"0 0 465 465",xmlns:"http://www.w3.org/2000/svg"},l.createElement("g",null,l.createElement("path",{d:"M240,356.071V132.12c0-4.143-3.357-7.5-7.5-7.5s-7.5,3.357-7.5,7.5v223.951c0,4.143,3.357,7.5,7.5,7.5 S240,360.214,240,356.071z"}),l.createElement("path",{d:"M457.5,75.782c-15.856,0-35.614-6.842-56.533-14.085c-26.492-9.174-56.521-19.571-87.663-19.571 c-36.035,0-58.019,15.791-70.115,29.038c-4.524,4.956-8.03,9.922-10.688,14.327c-2.658-4.405-6.164-9.371-10.688-14.327 c-12.097-13.247-34.08-29.038-70.115-29.038c-31.143,0-61.171,10.397-87.663,19.571C43.114,68.94,23.356,75.782,7.5,75.782 c-4.143,0-7.5,3.357-7.5,7.5v302.092c0,4.143,3.357,7.5,7.5,7.5c18.38,0,39.297-7.243,61.441-14.911 c25.375-8.786,54.136-18.745,82.755-18.745c24.54,0,44.403,8.126,59.038,24.152c2.792,3.058,7.537,3.273,10.596,0.48 s3.273-7.537,0.48-10.596c-12.097-13.246-34.08-29.037-70.114-29.037c-31.143,0-61.171,10.397-87.663,19.571 C46.298,369.931,29.396,375.782,15,377.422V90.41c16.491-1.571,34.755-7.896,53.941-14.539 c25.375-8.786,54.136-18.745,82.755-18.745c57.881,0,73.025,45.962,73.634,47.894c0.968,3.148,3.876,5.298,7.17,5.298 s6.202-2.149,7.17-5.298c0.146-0.479,15.383-47.894,73.634-47.894c28.619,0,57.38,9.959,82.755,18.745 c19.187,6.644,37.45,12.968,53.941,14.539v287.012c-14.396-1.64-31.298-7.491-49.033-13.633 c-26.492-9.174-56.521-19.571-87.663-19.571c-36.036,0-58.02,15.791-70.115,29.038c-2.793,3.06-2.578,7.803,0.48,10.596 c3.06,2.793,7.804,2.578,10.596-0.48c14.635-16.027,34.498-24.153,59.039-24.153c28.619,0,57.38,9.959,82.755,18.745 c22.145,7.668,43.062,14.911,61.441,14.911c4.143,0,7.5-3.357,7.5-7.5V83.282C465,79.14,461.643,75.782,457.5,75.782z"}),l.createElement("path",{d:"M457.5,407.874c-15.856,0-35.614-6.842-56.533-14.085c-26.492-9.174-56.521-19.571-87.663-19.571 c-33.843,0-55.291,13.928-67.796,26.596l-26.017-0.001c-12.505-12.668-33.954-26.595-67.795-26.595 c-31.143,0-61.171,10.397-87.663,19.571c-20.919,7.243-40.677,14.085-56.533,14.085c-4.143,0-7.5,3.357-7.5,7.5s3.357,7.5,7.5,7.5 c18.38,0,39.297-7.243,61.441-14.911c25.375-8.786,54.136-18.745,82.755-18.745c24.54,0,44.403,8.126,59.038,24.152 c1.421,1.556,3.431,2.442,5.538,2.442l32.454,0.001c2.107,0,4.117-0.887,5.538-2.442c14.635-16.027,34.498-24.153,59.039-24.153 c28.619,0,57.38,9.959,82.755,18.745c22.145,7.668,43.062,14.911,61.441,14.911c4.143,0,7.5-3.357,7.5-7.5 S461.643,407.874,457.5,407.874z"})))},{title:"Customizable",subTitle:"Everything you see can be configured",description:"\n You want something extremely customizable that also gives you the reign when your requirements become very unique.\n \n ",svg:l.createElement("svg",{className:"w-10 h-10 mb-2 text-primary md:w-12 md:h-12 dark:text-primary-light",fill:"currentColor",viewBox:"0 0 482.568 482.568",xmlns:"http://www.w3.org/2000/svg"},l.createElement("g",null,l.createElement("g",null,l.createElement("path",{d:"M116.993,203.218c13.4-1.8,26.8,2.8,36.3,12.3l24,24l22.7-22.6l-32.8-32.7c-5.1-5.1-5.1-13.4,0-18.5s13.4-5.1,18.5,0 l32.8,32.8l22.7-22.6l-24.1-24.1c-9.5-9.5-14.1-23-12.3-36.3c4-30.4-5.7-62.2-29-85.6c-23.8-23.8-56.4-33.4-87.3-28.8 c-4.9,0.7-6.9,6.8-3.4,10.3l30.9,30.9c14.7,14.7,14.7,38.5,0,53.1l-19,19c-14.7,14.7-38.5,14.7-53.1,0l-31-30.9 c-3.5-3.5-9.5-1.5-10.3,3.4c-4.6,30.9,5,63.5,28.8,87.3C54.793,197.518,86.593,207.218,116.993,203.218z"}),l.createElement("path",{d:"M309.193,243.918l-22.7,22.6l134.8,134.8c5.1,5.1,5.1,13.4,0,18.5s-13.4,5.1-18.5,0l-134.8-134.8l-22.7,22.6l138.9,138.9 c17.6,17.6,46.1,17.5,63.7-0.1s17.6-46.1,0.1-63.7L309.193,243.918z"}),l.createElement("path",{d:"M361.293,153.918h59.9l59.9-119.7l-29.9-29.9l-119.8,59.8v59.9l-162.8,162.3l-29.3-29.2l-118,118 c-24.6,24.6-24.6,64.4,0,89s64.4,24.6,89,0l118-118l-29.9-29.9L361.293,153.918z"}))))},{title:"Easy To Use",subTitle:"No Tutorial",description:"You want an internal tools that don't require techincal knowledge to make changes",svg:l.createElement("svg",{className:"w-10 h-10 mb-2 text-primary md:w-12 md:h-12 dark:text-primary-light",fill:"currentColor",viewBox:"0 0 480.61 480.61",xmlns:"http://www.w3.org/2000/svg"},l.createElement("g",null,l.createElement("path",{d:"M469.012,20.343l-2.395-6.339l-6.339-2.394C439.878,3.906,418.436,0,396.547,0c-48.104,0-93.33,18.733-127.346,52.749 l-48.227,48.227l-107.787,5.228l-90.214,90.213l77.783,24.777l-28.763,28.762l16.802,16.802l-37.224,57.056l105.235,105.237 l57.057-37.224l16.802,16.802l28.763-28.763l24.775,77.783l90.216-90.214l5.227-107.786l48.227-48.227 C477.832,161.462,493.98,86.459,469.012,20.343z M79.029,182.788l47.182-47.181l63.197-3.065l-64.773,64.773L79.029,182.788z M160.805,390.623l-70.806-70.806l20.473-31.381l81.713,81.714L160.805,390.623z M345.015,354.412l-47.181,47.181l-14.527-45.606 l64.773-64.773L345.015,354.412z M230.665,366.202L114.419,249.956L290.414,73.961C318.764,45.612,356.455,30,396.547,30 c15.957,0,31.625,2.487,46.671,7.401c17.451,53.48,3.463,112.785-36.558,152.807L230.665,366.202z"}),l.createElement("path",{d:"M364.951,70.67c-12.02,0-23.32,4.681-31.819,13.18c-17.546,17.545-17.546,46.094,0,63.64 c8.499,8.499,19.8,13.18,31.819,13.18s23.32-4.681,31.819-13.18c17.546-17.545,17.546-46.094,0-63.64 C388.272,75.351,376.971,70.67,364.951,70.67z M375.558,126.277c-2.833,2.833-6.6,4.394-10.606,4.394s-7.773-1.561-10.606-4.393 c-5.849-5.849-5.849-15.365,0-21.214c2.833-2.833,6.6-4.393,10.606-4.393s7.773,1.56,10.606,4.393 C381.406,110.912,381.406,120.429,375.558,126.277z"}),l.createElement("path",{d:"M0.013,375.612l33.999-34l21.213,21.213l-33.999,33.999L0.013,375.612z M105.004,480.61l-21.213-21.213l33.999-33.999 l21.213,21.213L105.004,480.61z M25.031,432.878l50.122-50.122l21.213,21.213l-50.122,50.122L25.031,432.878z"})))},{title:"Simple Installation",subTitle:"Just one command",description:"You want an internal tools that you can fully setup and start using under 59 seconds",svg:l.createElement("svg",{className:"w-10 h-10 mb-2 text-primary md:w-12 md:h-12 dark:text-primary-light",fill:"currentColor",viewBox:"0 0 470 470",xmlns:"http://www.w3.org/2000/svg"},l.createElement("g",null,l.createElement("path",{d:"M462.5,22.5H7.5C3.357,22.5,0,25.857,0,30v410c0,4.143,3.357,7.5,7.5,7.5h455c4.143,0,7.5-3.357,7.5-7.5V30 C470,25.857,466.643,22.5,462.5,22.5z M455,432.5H15v-395h277.5v45h-255c-4.143,0-7.5,3.357-7.5,7.5s3.357,7.5,7.5,7.5h395 c4.143,0,7.5-3.357,7.5-7.5s-3.357-7.5-7.5-7.5h-125v-45H455V432.5z"}),l.createElement("circle",{cx:"381.5",cy:"60",r:"7.5"}),l.createElement("circle",{cx:"340.5",cy:"60",r:"7.5"}),l.createElement("circle",{cx:"422.5",cy:"60",r:"7.5"}),l.createElement("path",{d:"M235,206.676c-30.646,0-55.577,24.932-55.577,55.577S204.354,317.83,235,317.83c8.816,0,17.612-2.133,25.436-6.167 c3.682-1.898,5.127-6.422,3.229-10.104c-1.899-3.682-6.422-5.124-10.104-3.229c-5.789,2.985-12.033,4.499-18.561,4.499 c-22.374,0-40.577-18.203-40.577-40.577s18.203-40.577,40.577-40.577s40.577,18.203,40.577,40.577 c0,6.528-1.514,12.772-4.498,18.56c-1.898,3.681-0.453,8.204,3.229,10.104c3.68,1.895,8.203,0.455,10.104-3.229 c4.034-7.821,6.166-16.616,6.166-25.435C290.577,231.607,265.646,206.676,235,206.676z"}),l.createElement("path",{d:"M358.087,234.753h-31.543c-1.851-6.15-4.322-12.095-7.387-17.767l22.324-22.323c1.406-1.407,2.196-3.314,2.196-5.304 s-0.79-3.896-2.196-5.304l-28.284-28.284c-2.93-2.928-7.678-2.928-10.607,0l-22.323,22.324c-5.672-3.064-11.616-5.536-17.767-7.387 v-31.543c0-4.143-3.357-7.5-7.5-7.5h-40c-4.143,0-7.5,3.357-7.5,7.5v31.543c-6.15,1.851-12.095,4.322-17.767,7.387l-22.323-22.324 c-2.93-2.928-7.678-2.928-10.607,0l-28.284,28.284c-1.406,1.407-2.196,3.314-2.196,5.304s0.79,3.896,2.196,5.304l22.324,22.323 c-3.064,5.672-5.536,11.616-7.387,17.767h-31.543c-4.143,0-7.5,3.357-7.5,7.5v40c0,4.143,3.357,7.5,7.5,7.5h31.544 c1.851,6.152,4.321,12.096,7.386,17.767l-22.323,22.322c-1.407,1.407-2.197,3.314-2.197,5.304s0.79,3.896,2.196,5.304 l28.284,28.284c2.929,2.927,7.678,2.929,10.606,0l22.324-22.323c5.672,3.064,11.616,5.536,17.767,7.387v31.542 c0,4.143,3.357,7.5,7.5,7.5h40c4.143,0,7.5-3.357,7.5-7.5v-31.542c6.15-1.851,12.095-4.322,17.767-7.387l22.324,22.323 c2.928,2.928,7.677,2.928,10.606,0l28.284-28.284c1.406-1.407,2.196-3.314,2.196-5.304s-0.79-3.896-2.197-5.304l-22.323-22.322 c3.064-5.672,5.535-11.615,7.386-17.767h31.544c4.143,0,7.5-3.357,7.5-7.5v-40C365.587,238.11,362.229,234.753,358.087,234.753z M350.587,274.753h-29.802c-3.486,0-6.513,2.402-7.305,5.798c-1.995,8.563-5.383,16.712-10.069,24.223 c-1.848,2.961-1.408,6.805,1.061,9.273l21.1,21.099l-17.678,17.678l-21.101-21.1c-2.468-2.467-6.31-2.906-9.272-1.06 c-7.511,4.687-15.661,8.074-24.223,10.069c-3.396,0.792-5.798,3.818-5.798,7.305v29.801h-25v-29.801 c0-3.486-2.402-6.513-5.798-7.305c-8.562-1.995-16.712-5.383-24.223-10.069c-2.962-1.847-6.807-1.406-9.272,1.06l-21.101,21.1 l-17.678-17.678l21.1-21.099c2.469-2.469,2.908-6.313,1.06-9.274c-4.685-7.508-8.072-15.657-10.068-24.222 c-0.792-3.396-3.818-5.798-7.305-5.798h-29.802v-25h29.802c3.486,0,6.513-2.402,7.305-5.798 c1.995-8.562,5.383-16.712,10.069-24.223c1.848-2.961,1.408-6.805-1.06-9.273l-21.101-21.1l17.678-17.678l21.1,21.101 c2.468,2.468,6.312,2.908,9.273,1.06c7.511-4.687,15.661-8.074,24.223-10.069c3.396-0.792,5.798-3.818,5.798-7.305v-29.802h25 v29.802c0,3.486,2.402,6.513,5.798,7.305c8.562,1.995,16.712,5.383,24.223,10.069c2.962,1.848,6.807,1.405,9.273-1.06l21.1-21.101 l17.678,17.678l-21.101,21.1c-2.468,2.469-2.907,6.313-1.06,9.273c4.687,7.511,8.074,15.661,10.069,24.223 c0.792,3.396,3.818,5.798,7.305,5.798h29.802V274.753z"})))},{title:"Declarative",subTitle:"Less Maintenance and No Logic Bugs",description:"You want an internal tool that is auto-generated which means zero maintenance zero logic bugs.",svg:l.createElement("svg",{className:"w-10 h-10 mb-2 text-primary md:w-12 md:h-12 dark:text-primary-light",fill:"currentColor",viewBox:"0 0 297 297",xmlns:"http://www.w3.org/2000/svg"},l.createElement("g",null,l.createElement("rect",{width:"16",x:"140.5",height:"33"}),l.createElement("rect",{width:"33",x:"41.5",y:"99",height:"16"}),l.createElement("rect",{width:"33",x:"222.5",y:"99",height:"16"}),l.createElement("path",{d:"m78.829,25.682l23.335,23.335-11.313,11.314-23.335-23.335 11.313-11.314zm140.008,162.638l-23.335-23.335 11.314-11.314 23.335,23.335-11.314,11.314zm-140.017-.004l-11.314-11.314 23.335-23.335 11.314,11.314-23.335,23.335zm140.007-162.63l11.313,11.314-23.334,23.334-11.313-11.314 23.334-23.334z"}),l.createElement("circle",{cx:"183.908",cy:"23.323",r:"8.25"}),l.createElement("circle",{cx:"114.644",cy:"22.958",r:"8.251"}),l.createElement("circle",{cx:"65.408",cy:"71.675",r:"8.25"}),l.createElement("circle",{cx:"65.041",cy:"140.939",r:"8.25"}),l.createElement("circle",{cx:"113.759",cy:"190.175",r:"8.25"}),l.createElement("circle",{cx:"183.023",cy:"190.541",r:"8.251"}),l.createElement("circle",{cx:"232.26",cy:"141.823",r:"8.25"}),l.createElement("circle",{cx:"232.625",cy:"72.56",r:"8.251"}),l.createElement("polygon",{points:"183.634,154.63 177.04,115.692 205.371,88.116 166.297,82.436 148.823,47.009 131.343,82.436 92.25,88.116 120.542,115.692 113.698,154.63 140.5,140.452 140.5,297 156.5,297 156.5,140.452 "})))}];function y(){return l.createElement("section",{className:"bg-white dark:bg-gray-900"},l.createElement("div",{className:"items-center max-w-screen-xl px-4 py-8 mx-auto"},l.createElement("div",{className:"mb-8 text-center"},l.createElement("p",{className:"text-lg font-medium text-primary dark:text-primary-light"},"Why you should try Hadmean"),l.createElement("h2",{className:"mt-3 mb-4 text-3xl font-extrabold tracking-tight text-gray-900 md:text-3xl dark:text-white"},"You want powerful internal tools without the headache of building and maintenance.")),l.createElement("div",{className:"space-y-8 pt-10 md:grid md:grid-cols-3 md:gap-12 md:space-y-0"},v.map((e=>{let{title:t,description:a,subTitle:r,svg:c}=e;return l.createElement("div",{key:t,className:"text-center"},c,l.createElement("h3",{className:"mb-2 text-2xl font-bold dark:text-white"},t),l.createElement("p",{className:"font-light text-gray-500 dark:text-gray-400"},r),l.createElement("p",{className:"font-light text-gray-500 sm:text-xl dark:text-gray-400"},a))})))))}function f(){return l.createElement("section",{className:"bg-gray-50 dark:bg-gray-800"},l.createElement("div",{className:"max-w-screen-xl px-4 py-8 pt-0 mx-auto"},l.createElement("h2",{className:"m-6 text-3xl font-extrabold tracking-tight text-center text-gray-900 lg:m-8 lg:text-3xl dark:text-white"},"Supported Actions"),l.createElement("div",{className:"grid grid-cols-2 gap-8 text-gray-500 sm:gap-12 sm:grid-cols-3 lg:grid-cols-6 dark:text-gray-400"},l.createElement("div",{className:"text-center"},l.createElement("svg",{width:"100px",height:"100px",fill:"currentColor",viewBox:"0 0 512.002 512.002","enable-background":"new 0 0 512.002 512.002"},l.createElement("g",null,l.createElement("g",null,l.createElement("path",{d:"M437.333,213.334c5.888,0,10.667-4.779,10.667-10.667v-128c0-29.397-23.915-53.333-53.333-53.333H53.333 C23.915,21.334,0,45.271,0,74.668v362.667c0,29.397,23.915,53.333,53.333,53.333h341.333c29.419,0,53.333-23.936,53.333-53.333 v-64c0-5.888-4.779-10.667-10.667-10.667c-5.888,0-10.667,4.779-10.667,10.667v64c0,17.643-14.357,32-32,32H53.333 c-17.643,0-32-14.357-32-32V128.001h405.333v74.667C426.667,208.556,431.445,213.334,437.333,213.334z M21.333,106.668v-32 c0-17.643,14.357-32,32-32h341.333c17.643,0,32,14.357,32,32v32H21.333z"}))),l.createElement("g",null,l.createElement("g",null,l.createElement("circle",{cx:"53.333",cy:"74.668",r:"10.667"}))),l.createElement("g",null,l.createElement("g",null,l.createElement("circle",{cx:"96",cy:"74.668",r:"10.667"}))),l.createElement("g",null,l.createElement("g",null,l.createElement("circle",{cx:"138.667",cy:"74.668",r:"10.667"}))),l.createElement("g",null,l.createElement("g",null,l.createElement("path",{d:"M117.333,234.668c-5.888,0-10.667,4.779-10.667,10.667v32H64v-32c0-5.888-4.779-10.667-10.667-10.667 s-10.667,4.779-10.667,10.667v85.333c0,5.888,4.779,10.667,10.667,10.667S64,336.556,64,330.668v-32h42.667v32 c0,5.888,4.779,10.667,10.667,10.667S128,336.556,128,330.668v-85.333C128,239.446,123.221,234.668,117.333,234.668z"}))),l.createElement("g",null,l.createElement("g",null,l.createElement("path",{d:"M202.667,234.668H160c-5.888,0-10.667,4.779-10.667,10.667s4.779,10.667,10.667,10.667h10.667v74.667 c0,5.888,4.779,10.667,10.667,10.667S192,336.556,192,330.668v-74.667h10.667c5.888,0,10.667-4.779,10.667-10.667 S208.555,234.668,202.667,234.668z"}))),l.createElement("g",null,l.createElement("g",null,l.createElement("path",{d:"M288,234.668h-42.667c-5.888,0-10.667,4.779-10.667,10.667s4.779,10.667,10.667,10.667H256v74.667 c0,5.888,4.779,10.667,10.667,10.667s10.667-4.779,10.667-10.667v-74.667H288c5.888,0,10.667-4.779,10.667-10.667 S293.888,234.668,288,234.668z"}))),l.createElement("g",null,l.createElement("g",null,l.createElement("path",{d:"M352,234.668h-21.333c-5.888,0-10.667,4.779-10.667,10.667v85.333c0,5.888,4.779,10.667,10.667,10.667 s10.667-4.779,10.667-10.667v-32H352c17.643,0,32-14.357,32-32C384,249.025,369.643,234.668,352,234.668z M352,277.334h-10.667 v-21.333H352c5.867,0,10.667,4.779,10.667,10.667S357.867,277.334,352,277.334z"}))),l.createElement("g",null,l.createElement("g",null,l.createElement("path",{d:"M503.915,234.988c-5.803-1.493-11.52,2.027-12.928,7.765l-21.333,85.333c-1.429,5.717,2.027,11.499,7.765,12.928 c0.875,0.213,1.728,0.32,2.581,0.32c4.8,0,9.152-3.221,10.347-8.085l21.333-85.333 C513.109,242.198,509.653,236.417,503.915,234.988z"}))),l.createElement("g",null,l.createElement("g",null,l.createElement("path",{d:"M461.248,234.988c-5.824-1.493-11.52,2.027-12.928,7.765l-21.333,85.333c-1.429,5.717,2.027,11.499,7.765,12.928 c0.875,0.213,1.728,0.32,2.581,0.32c4.8,0,9.152-3.221,10.347-8.085l21.333-85.333 C470.443,242.198,466.987,236.417,461.248,234.988z"}))),l.createElement("g",null,l.createElement("g",null,l.createElement("circle",{cx:"416",cy:"266.668",r:"10.667"}))),l.createElement("g",null,l.createElement("g",null,l.createElement("circle",{cx:"416",cy:"309.335",r:"10.667"})))),l.createElement("h3",{className:"mt-3"},"HTTP")),l.createElement("div",{className:"text-center"},l.createElement("svg",{width:"100px",height:"100px","enable-background":"new 0 0 2447.6 2452.5",viewBox:"0 0 2447.6 2452.5",xmlns:"http://www.w3.org/2000/svg"},l.createElement("g",{"clip-rule":"evenodd","fill-rule":"evenodd"},l.createElement("path",{d:"m897.4 0c-135.3.1-244.8 109.9-244.7 245.2-.1 135.3 109.5 245.1 244.8 245.2h244.8v-245.1c.1-135.3-109.5-245.1-244.9-245.3.1 0 .1 0 0 0m0 654h-652.6c-135.3.1-244.9 109.9-244.8 245.2-.2 135.3 109.4 245.1 244.7 245.3h652.7c135.3-.1 244.9-109.9 244.8-245.2.1-135.4-109.5-245.2-244.8-245.3z",fill:"#36c5f0"}),l.createElement("path",{d:"m2447.6 899.2c.1-135.3-109.5-245.1-244.8-245.2-135.3.1-244.9 109.9-244.8 245.2v245.3h244.8c135.3-.1 244.9-109.9 244.8-245.3zm-652.7 0v-654c.1-135.2-109.4-245-244.7-245.2-135.3.1-244.9 109.9-244.8 245.2v654c-.2 135.3 109.4 245.1 244.7 245.3 135.3-.1 244.9-109.9 244.8-245.3z",fill:"#2eb67d"}),l.createElement("path",{d:"m1550.1 2452.5c135.3-.1 244.9-109.9 244.8-245.2.1-135.3-109.5-245.1-244.8-245.2h-244.8v245.2c-.1 135.2 109.5 245 244.8 245.2zm0-654.1h652.7c135.3-.1 244.9-109.9 244.8-245.2.2-135.3-109.4-245.1-244.7-245.3h-652.7c-135.3.1-244.9 109.9-244.8 245.2-.1 135.4 109.4 245.2 244.7 245.3z",fill:"#ecb22e"}),l.createElement("path",{d:"m0 1553.2c-.1 135.3 109.5 245.1 244.8 245.2 135.3-.1 244.9-109.9 244.8-245.2v-245.2h-244.8c-135.3.1-244.9 109.9-244.8 245.2zm652.7 0v654c-.2 135.3 109.4 245.1 244.7 245.3 135.3-.1 244.9-109.9 244.8-245.2v-653.9c.2-135.3-109.4-245.1-244.7-245.3-135.4 0-244.9 109.8-244.8 245.1 0 0 0 .1 0 0",fill:"#e01e5a"}))),l.createElement("h3",{className:"mt-3"},"Slack")),l.createElement("div",{className:"text-center"},l.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 48 48",width:"100px",height:"100px"},l.createElement("path",{fill:"#1e88e5",d:"M34,42H14c-4.411,0-8-3.589-8-8V14c0-4.411,3.589-8,8-8h20c4.411,0,8,3.589,8,8v20 C42,38.411,38.411,42,34,42z"}),l.createElement("path",{fill:"#fff",d:"M35.926,17.488L29.414,24l6.511,6.511C35.969,30.347,36,30.178,36,30V18 C36,17.822,35.969,17.653,35.926,17.488z M26.688,23.899l7.824-7.825C34.347,16.031,34.178,16,34,16H14 c-0.178,0-0.347,0.031-0.512,0.074l7.824,7.825C22.795,25.38,25.205,25.38,26.688,23.899z M24,27.009 c-1.44,0-2.873-0.542-3.99-1.605l-6.522,6.522C13.653,31.969,13.822,32,14,32h20c0.178,0,0.347-0.031,0.512-0.074l-6.522-6.522 C26.873,26.467,25.44,27.009,24,27.009z M12.074,17.488C12.031,17.653,12,17.822,12,18v12c0,0.178,0.031,0.347,0.074,0.512 L18.586,24L12.074,17.488z"})),l.createElement("h3",{className:"mt-3"},"SMTP")),l.createElement("div",{className:"text-center"},l.createElement("svg",{width:"96",height:"96",viewBox:"0 0 96 96",fill:"none",xmlns:"http://www.w3.org/2000/svg"},l.createElement("path",{d:"M46.08 36.16C46.08 41.6 41.6 46.08 36.16 46.08C30.72 46.08 26.24 41.6 26.24 36.16C26.24 30.72 30.72 26.24 36.16 26.24C41.6 26.24 46.08 30.72 46.08 36.16ZM36.16 49.92C30.72 49.92 26.24 54.4 26.24 59.84C26.24 65.28 30.72 69.76 36.16 69.76C41.6 69.76 46.08 65.28 46.08 59.84C46.08 54.4 41.6 49.92 36.16 49.92ZM96 48C96 74.56 74.56 96 48 96C21.44 96 0 74.56 0 48C0 21.44 21.44 0 48 0C74.56 0 96 21.44 96 48ZM83.2 48C83.2 28.48 67.52 12.8 48 12.8C28.48 12.8 12.8 28.48 12.8 48C12.8 67.52 28.48 83.2 48 83.2C67.52 83.2 83.2 67.52 83.2 48ZM59.84 49.92C54.4 49.92 49.92 54.4 49.92 59.84C49.92 65.28 54.4 69.76 59.84 69.76C65.28 69.76 69.76 65.28 69.76 59.84C69.76 54.4 65.28 49.92 59.84 49.92ZM59.84 26.24C54.4 26.24 49.92 30.72 49.92 36.16C49.92 41.6 54.4 46.08 59.84 46.08C65.28 46.08 69.76 41.6 69.76 36.16C69.76 30.72 65.28 26.24 59.84 26.24Z",fill:"#F22F46"})),l.createElement("h3",{className:"mt-3"},"Twilio")),l.createElement("div",{className:"text-center"},l.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 64 64",width:"100px",height:"100px"},l.createElement("path",{d:"M0 21.25h21.374v21.374H0z",fill:"#fff"}),l.createElement("path",{d:"M0 21.25h21.374v21.374H0z",fill:"#99e1f4","enable-background":"new "}),l.createElement("path",{d:"M21.374 42.626h21.25v21.25h-21.25z",fill:"#fff"}),l.createElement("path",{d:"M21.374 42.626h21.25v21.25h-21.25z",fill:"#99e1f4","enable-background":"new "}),l.createElement("path",{d:"M0 63.877h21.374V64H0zm0-21.25h21.374v21.25H0z",fill:"#1a82e2"}),l.createElement("path",{d:"M21.374 0h21.25v21.25h-21.25zm21.252 21.374H64v21.25H42.626z",fill:"#00b3e3"}),l.createElement("path",{d:"M21.374 42.626h21.25V21.25h-21.25z",fill:"#009dd9"}),l.createElement("g",{fill:"#1a82e2"},l.createElement("path",{d:"M42.626 0H64v21.25H42.626z"}),l.createElement("path",{d:"M42.626 21.25H64v.123H42.626z"}))),l.createElement("h3",{className:"mt-3"},"SendGrid")),l.createElement("div",{className:"text-center"},l.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 64 64",height:"100px",width:"100px"},l.createElement("path",{d:"M32.066 19.956c-6.69 0-12.13 5.433-12.13 12.1s5.443 12.1 12.13 12.1 12.13-5.433 12.13-12.1-5.443-12.1-12.13-12.1zm-18.885 12.1c0-10.408 8.46-18.852 18.885-18.852S50.95 21.658 50.95 32.065c0 .72-.066 1.375-.13 2.03-.13 1.833 1.18 3.207 3.016 3.207 3.082 0 3.4-3.993 3.4-5.302 0-13.943-11.28-25.2-25.246-25.2S6.754 18.057 6.754 32 18.033 57.2 32 57.2c7.4 0 14.033-3.207 18.69-8.248l5.18 4.32c-5.836 6.546-14.36 10.67-23.87 10.67C14.295 63.944 0 49.608 0 32 0 14.326 14.36.056 32 .056 49.705.056 64 14.392 64 32c0 7.07-3.4 12.83-10.164 12.83-3.016 0-4.787-1.375-5.836-2.88-3.344 5.368-9.246 8.902-16.066 8.902-10.295.065-18.754-8.38-18.754-18.786zm18.885-5.564c3.082 0 5.574 2.487 5.574 5.498 0 3.077-2.492 5.564-5.574 5.564S26.492 35.077 26.492 32c.066-3.01 2.492-5.498 5.574-5.498z",fill:"#c02126"})),l.createElement("h3",{className:"mt-3"},"MailGun"))),l.createElement("div",{className:"pt-6 text-center mt-6 space-y-4 border-t border-gray-200 dark:border-gray-700"},l.createElement(s.Z,{href:"https://github.com/orgs/hadmean/projects/1/views/4",className:"inline-flex items-center text-base font-medium text-primary hover:text-primary dark:text-primary-light dark:hover:text-primary"},"Check Upcoming Integrations",l.createElement("svg",{className:"w-5 h-5 ml-1",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},l.createElement("path",{fillRule:"evenodd",d:"M12.293 5.293a1 1 0 011.414 0l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414-1.414L14.586 11H3a1 1 0 110-2h11.586l-2.293-2.293a1 1 0 010-1.414z",clipRule:"evenodd"}))))))}function b(){return l.createElement("section",{className:"bg-gray-50 dark:bg-gray-800"},l.createElement("div",{className:"max-w-screen-xl px-4 py-8 mx-auto space-y-12 lg:space-y-20 lg:py-24 lg:px-6"},l.createElement("div",{className:"items-center gap-8 lg:grid lg:grid-cols-2 xl:gap-16"},l.createElement("div",{className:"text-gray-500 sm:text-lg dark:text-gray-400"},l.createElement("h2",{className:"mb-4 text-3xl font-extrabold tracking-tight text-gray-900 dark:text-white"},"Your precious engineering resources should focus on exciting features not building or maintaining admin apps."),l.createElement("p",{className:"mb-8 font-light lg:text-xl"},"Your database already has good information on what your internal tool should be doing. Stop using your engineering resources to build what can be auto-generated."),l.createElement("ul",{role:"list",className:"pt-8 space-y-5 border-t border-gray-200 my-7 dark:border-gray-700"},["No Javascript","No SQL","No tutorial","No drag-and-drop","No learning curve","No maintenance"].map((e=>l.createElement("li",{key:e,className:"flex space-x-3"},l.createElement("svg",{className:"flex-shrink-0 w-5 h-5 text-primary dark:text-primary-light",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},l.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",clipRule:"evenodd"})),l.createElement("span",{className:"text-base font-medium leading-tight text-gray-900 dark:text-white"},e))))),l.createElement("p",{className:"mb-8 font-light lg:text-xl"},"Hadmean is literal"," ",l.createElement("span",{className:"text-lg text-bold font-medium text-primary dark:text-primary-light"}," ","eating your cake and having it."," "),"Just build your database schema properly and Hadmean will do the rest.")),l.createElement("img",{className:"hidden w-full mb-4 rounded-lg lg:mb-0 lg:flex",src:"/img/features/1.png",alt:"dashboard feature image"})),l.createElement("div",{className:"items-center gap-8 lg:grid lg:grid-cols-2 xl:gap-16"},l.createElement("img",{className:"hidden w-full mb-4 rounded-lg lg:mb-0 lg:flex",src:"/img/features/2.png",alt:"feature image 2"}),l.createElement("div",{className:"text-gray-500 sm:text-lg dark:text-gray-400"},l.createElement("h2",{className:"mb-4 text-3xl font-extrabold tracking-tight text-gray-900 dark:text-white"},"Hadmean is fully featured."),l.createElement("p",{className:"mb-8 font-light lg:text-xl"},"As opposed to building from the ground up, You will be tearing down as Hadmean gives you too much features so you will be removing some of it."),l.createElement("ul",{role:"list",className:"pt-8 space-y-5 border-t border-gray-200 my-7 dark:border-gray-700"},["Roles and Permissions","Dashboard Builder","Full CRUD","Form Validation","Relationships","Powerful Filters"].map((e=>l.createElement("li",{className:"flex space-x-3",key:e},l.createElement("svg",{className:"flex-shrink-0 w-5 h-5 text-primary dark:text-primary-light",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},l.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",clipRule:"evenodd"})),l.createElement("span",{className:"text-base font-medium leading-tight text-gray-900 dark:text-white"},e))))),l.createElement("p",{className:"font-light lg:text-xl"},"All the features needed to operate your internal operations and process without the burden of building and maintenance.")))))}function k(){return l.createElement("section",{className:"bg-white dark:bg-gray-900"},l.createElement("div",{className:"grid max-w-screen-xl px-4 pt-20 pb-8 mx-auto lg:gap-8 xl:gap-0 lg:py-16 lg:grid-cols-12 lg:pt-28"},l.createElement("div",{className:"mr-auto place-self-center lg:col-span-7"},l.createElement("h1",{className:"max-w-2xl mb-4 text-4xl font-extrabold leading-none tracking-tight md:text-5xl xl:text-6xl dark:text-white"},"Generate admin apps with ease in seconds"),l.createElement("p",{className:"max-w-2xl mb-6 font-light text-gray-500 lg:mb-8 md:text-lg lg:text-xl dark:text-gray-400"},l.createElement("span",{className:"text-lg font-medium text-primary dark:text-primary-light"},"Save ",l.createElement("b",null,"1000+")," engineering hours"," "),"generating your internal tools rather than building and maintaining them with your precious engineering resources.",l.createElement("br",null)),l.createElement("div",{className:"space-y-4 sm:flex sm:space-y-0 sm:space-x-4"},l.createElement(s.Z,{to:"/docs/installation/setup",className:"inline-flex text-white items-center justify-center bg-primary hover:bg-primary-dark hover:text-white w-full px-5 py-3 text-sm font-medium text-center border border-gray-200 rounded-lg sm:w-auto focus:ring-4 focus:ring-gray-100 dark:text-white dark:border-gray-700 dark:focus:ring-gray-800"},l.createElement("svg",{className:"w-4 h-4 mr-2 text-white dark:text-gray-400",xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",viewBox:"0 0 20 20"},l.createElement("path",{d:"M12.293 5.293a1 1 0 011.414 0l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414-1.414L14.586 11H3a1 1 0 110-2h11.586l-2.293-2.293a1 1 0 010-1.414z"}))," ","Get Started"),l.createElement(s.Z,{target:"_blank",href:g,className:"inline-flex items-center justify-center w-full px-5 py-3 text-sm font-medium text-center text-gray-900 border border-gray-200 rounded-lg sm:w-auto hover:bg-white-100 focus:ring-4 focus:ring-gray-100 dark:text-white dark:border-gray-700 dark:hover:bg-white dark:focus:ring-gray-800"},l.createElement("svg",{className:"w-4 h-4 mr-2",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2",fill:"none"},l.createElement("circle",{cx:"12",cy:"12",r:"10"}),l.createElement("polygon",{points:"10 8 16 12 10 16 10 8"})),"Live Demo"))),l.createElement("div",{className:"hidden lg:mt-0 lg:col-span-5 lg:flex"},l.createElement("img",{src:"/img/hero.png",alt:"hero image"}))))}function N(){const e=C(),[t,a]=(0,l.useState)(!1);return l.createElement("header",{className:"fixed w-full"},l.createElement("nav",{className:"bg-white border-gray-200 py-2.5 dark:bg-gray-900"},l.createElement("div",{className:"flex flex-wrap items-center justify-between max-w-screen-xl px-4 mx-auto"},l.createElement(s.Z,{to:"/",className:"flex items-center"},l.createElement("img",{className:"h-6 mr-3 sm:h-9",src:`/img/${"dark"===e?"logo-white":"logo"}.png`,alt:"Hadmean logo"})),l.createElement("div",{className:"flex items-center lg:order-2"},l.createElement("div",{className:"hidden mt-2 mr-4 sm:inline-block"},l.createElement(s.Z,{className:"github-button dark:text-white",href:o,"data-size":"large","data-icon":"octicon-star","data-show-count":"true","aria-label":"Star hadmean/hadmean on GitHub"},"Star")),l.createElement(s.Z,{href:i,className:"text-primary dark:text-white hover:bg-gray-50 focus:ring-4 focus:ring-gray-300 font-medium rounded-lg text-sm px-2 py-2 lg:py-2.5 sm:mr-2 focus:outline-none dark:focus:ring-gray-800"},l.createElement("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true"},l.createElement("path",{d:"M8.29 20.251c7.547 0 11.675-6.253 11.675-11.675 0-.178 0-.355-.012-.53A8.348 8.348 0 0022 5.92a8.19 8.19 0 01-2.357.646 4.118 4.118 0 001.804-2.27 8.224 8.224 0 01-2.605.996 4.107 4.107 0 00-6.993 3.743 11.65 11.65 0 01-8.457-4.287 4.106 4.106 0 001.27 5.477A4.072 4.072 0 012.8 9.713v.052a4.105 4.105 0 003.292 4.022 4.095 4.095 0 01-1.853.07 4.108 4.108 0 003.834 2.85A8.233 8.233 0 012 18.407a11.616 11.616 0 006.29 1.84"}))),l.createElement(s.Z,{href:"https://discord.gg/aV6DxwXhzN",className:"text-primary dark:text-white hover:bg-gray-50 focus:ring-4 focus:ring-gray-300 font-medium rounded-lg text-sm px-2 py-2 lg:py-2.5 mr-2 focus:outline-none dark:focus:ring-gray-800"},l.createElement("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 -28.5 256 256","aria-hidden":"true"},l.createElement("path",{d:"M216.856339,16.5966031 C200.285002,8.84328665 182.566144,3.2084988 164.041564,0 C161.766523,4.11318106 159.108624,9.64549908 157.276099,14.0464379 C137.583995,11.0849896 118.072967,11.0849896 98.7430163,14.0464379 C96.9108417,9.64549908 94.1925838,4.11318106 91.8971895,0 C73.3526068,3.2084988 55.6133949,8.86399117 39.0420583,16.6376612 C5.61752293,67.146514 -3.4433191,116.400813 1.08711069,164.955721 C23.2560196,181.510915 44.7403634,191.567697 65.8621325,198.148576 C71.0772151,190.971126 75.7283628,183.341335 79.7352139,175.300261 C72.104019,172.400575 64.7949724,168.822202 57.8887866,164.667963 C59.7209612,163.310589 61.5131304,161.891452 63.2445898,160.431257 C105.36741,180.133187 151.134928,180.133187 192.754523,160.431257 C194.506336,161.891452 196.298154,163.310589 198.110326,164.667963 C191.183787,168.842556 183.854737,172.420929 176.223542,175.320965 C180.230393,183.341335 184.861538,190.991831 190.096624,198.16893 C211.238746,191.588051 232.743023,181.531619 254.911949,164.955721 C260.227747,108.668201 245.831087,59.8662432 216.856339,16.5966031 Z M85.4738752,135.09489 C72.8290281,135.09489 62.4592217,123.290155 62.4592217,108.914901 C62.4592217,94.5396472 72.607595,82.7145587 85.4738752,82.7145587 C98.3405064,82.7145587 108.709962,94.5189427 108.488529,108.914901 C108.508531,123.290155 98.3405064,135.09489 85.4738752,135.09489 Z M170.525237,135.09489 C157.88039,135.09489 147.510584,123.290155 147.510584,108.914901 C147.510584,94.5396472 157.658606,82.7145587 170.525237,82.7145587 C183.391518,82.7145587 193.761324,94.5189427 193.539891,108.914901 C193.539891,123.290155 183.391518,135.09489 170.525237,135.09489 Z",fillRule:"evenodd",clipRule:"evenodd"}))),l.createElement(s.Z,{to:"/docs/installation/setup",className:"text-white bg-primary hover:bg-primary-dark hover:text-white focus:ring-4 focus:ring-primary-lighter font-medium rounded-lg text-sm px-4 lg:px-5 py-2 lg:py-2.5 sm:mr-2 lg:mr-0 focus:outline-none dark:focus:ring-primary"},"Get Started"),l.createElement("button",{"data-collapse-toggle":"mobile-menu-2",type:"button",className:"inline-flex items-center pl-2 ml-1 text-sm text-gray-500 rounded-lg lg:hidden hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-gray-200 dark:text-gray-400 dark:hover:bg-gray-700 dark:focus:ring-gray-600","aria-controls":"mobile-menu-2","aria-expanded":"false",onClick:()=>{a(!t)}},l.createElement("span",{className:"sr-only"},"Open main menu"),l.createElement("svg",{className:"w-6 h-6",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},l.createElement("path",{fillRule:"evenodd",d:"M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z",clipRule:"evenodd"})),l.createElement("svg",{className:"hidden w-6 h-6",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},l.createElement("path",{fillRule:"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",clipRule:"evenodd"})))),l.createElement("div",{className:(0,x.Z)("items-center justify-between w-full lg:flex lg:w-auto lg:order-1",{hidden:!t})},l.createElement("ul",{className:"flex flex-col mt-4 font-medium lg:flex-row lg:space-x-8 lg:mt-0"},l.createElement("li",null,l.createElement(s.Z,{href:"/",className:"block py-2 pl-3 pr-4 text-white bg-primary rounded lg:bg-transparent lg:text-primary dark:lg:text-primary-light lg:p-0 dark:text-white","aria-current":"page"},"Home")),l.createElement("li",null,l.createElement(s.Z,{href:"/docs/intro",className:"block py-2 pl-3 pr-4 text-gray-700 border-b border-gray-100 hover:bg-gray-50 lg:hover:bg-transparent lg:border-0 lg:hover:text-primary lg:p-0 dark:text-white lg:dark:hover:text-primary-lighter dark:hover:bg-gray-700 dark:hover:text-white lg:dark:hover:bg-transparent dark:border-gray-700"},"Docs")),l.createElement("li",null,l.createElement(s.Z,{href:"/blog",className:"block py-2 pl-3 pr-4 text-gray-700 border-b border-gray-100 hover:bg-gray-50 lg:hover:bg-transparent lg:border-0 lg:hover:text-primary lg:p-0 dark:text-white lg:dark:hover:text-primary-lighter dark:hover:bg-gray-700 dark:hover:text-white lg:dark:hover:bg-transparent dark:border-gray-700"},"Blog")),l.createElement("li",null,l.createElement(s.Z,{target:"_blank",href:"https://github.com/orgs/hadmean/projects/1",className:"block py-2 pl-3 pr-4 text-gray-700 border-b border-gray-100 hover:bg-gray-50 lg:hover:bg-transparent lg:border-0 lg:hover:text-primary lg:p-0 dark:text-white lg:dark:hover:text-primary-lighter dark:hover:bg-gray-700 dark:hover:text-white lg:dark:hover:bg-transparent dark:border-gray-700"},"Roadmap")),l.createElement("li",null,l.createElement(s.Z,{target:"_blank",href:g,className:"block py-2 pl-3 pr-4 text-gray-700 border-b border-gray-100 hover:bg-gray-50 lg:hover:bg-transparent lg:border-0 lg:hover:text-primary lg:p-0 dark:text-white lg:dark:hover:text-primary-lighter dark:hover:bg-gray-700 dark:hover:text-white lg:dark:hover:bg-transparent dark:border-gray-700"},"Demo")))))))}function M(){return l.createElement("section",{className:"bg-gray-50 dark:bg-gray-800"},l.createElement("div",{className:"max-w-screen-xl px-4 p-8 mx-auto"},l.createElement("h2",{className:"m-6 text-3xl font-extrabold tracking-tight text-center text-gray-900 lg:m-8 lg:text-3xl dark:text-white"},"Supported Databases"),l.createElement("div",{className:"grid grid-cols-2 gap-8 text-gray-500 sm:gap-12 sm:grid-cols-3 lg:grid-cols-6 dark:text-gray-400"},l.createElement("div",{className:"text-center"},l.createElement("svg",{width:"100px",height:"100px",viewBox:"-4 0 264 264",xmlns:"http://www.w3.org/2000/svg"},l.createElement("path",{d:"M255.008 158.086c-1.535-4.649-5.556-7.887-10.756-8.664-2.452-.366-5.26-.21-8.583.475-5.792 1.195-10.089 1.65-13.225 1.738 11.837-19.985 21.462-42.775 27.003-64.228 8.96-34.689 4.172-50.492-1.423-57.64C233.217 10.847 211.614.683 185.552.372c-13.903-.17-26.108 2.575-32.475 4.549-5.928-1.046-12.302-1.63-18.99-1.738-12.537-.2-23.614 2.533-33.079 8.15-5.24-1.772-13.65-4.27-23.362-5.864-22.842-3.75-41.252-.828-54.718 8.685C6.622 25.672-.937 45.684.461 73.634c.444 8.874 5.408 35.874 13.224 61.48 4.492 14.718 9.282 26.94 14.237 36.33 7.027 13.315 14.546 21.156 22.987 23.972 4.731 1.576 13.327 2.68 22.368-4.85 1.146 1.388 2.675 2.767 4.704 4.048 2.577 1.625 5.728 2.953 8.875 3.74 11.341 2.835 21.964 2.126 31.027-1.848.056 1.612.099 3.152.135 4.482.06 2.157.12 4.272.199 6.25.537 13.374 1.447 23.773 4.143 31.049.148.4.347 1.01.557 1.657 1.345 4.118 3.594 11.012 9.316 16.411 5.925 5.593 13.092 7.308 19.656 7.308 3.292 0 6.433-.432 9.188-1.022 9.82-2.105 20.973-5.311 29.041-16.799 7.628-10.86 11.336-27.217 12.007-52.99.087-.729.167-1.425.244-2.088l.16-1.362 1.797.158.463.031c10.002.456 22.232-1.665 29.743-5.154 5.935-2.754 24.954-12.795 20.476-26.351"}),l.createElement("path",{d:"M237.906 160.722c-29.74 6.135-31.785-3.934-31.785-3.934 31.4-46.593 44.527-105.736 33.2-120.211-30.904-39.485-84.399-20.811-85.292-20.327l-.287.052c-5.876-1.22-12.451-1.946-19.842-2.067-13.456-.22-23.664 3.528-31.41 9.402 0 0-95.43-39.314-90.991 49.444.944 18.882 27.064 142.873 58.218 105.422 11.387-13.695 22.39-25.274 22.39-25.274 5.464 3.63 12.006 5.482 18.864 4.817l.533-.452c-.166 1.7-.09 3.363.213 5.332-8.026 8.967-5.667 10.541-21.711 13.844-16.235 3.346-6.698 9.302-.471 10.86 7.549 1.887 25.013 4.561 36.813-11.958l-.47 1.885c3.144 2.519 5.352 16.383 4.982 28.952-.37 12.568-.617 21.197 1.86 27.937 2.479 6.74 4.948 21.905 26.04 17.386 17.623-3.777 26.756-13.564 28.027-29.89.901-11.606 2.942-9.89 3.07-20.267l1.637-4.912c1.887-15.733.3-20.809 11.157-18.448l2.64.232c7.99.363 18.45-1.286 24.589-4.139 13.218-6.134 21.058-16.377 8.024-13.686h.002",fill:"#336791"}),l.createElement("path",{d:"M108.076 81.525c-2.68-.373-5.107-.028-6.335.902-.69.523-.904 1.129-.962 1.546-.154 1.105.62 2.327 1.096 2.957 1.346 1.784 3.312 3.01 5.258 3.28.282.04.563.058.842.058 3.245 0 6.196-2.527 6.456-4.392.325-2.336-3.066-3.893-6.355-4.35M196.86 81.599c-.256-1.831-3.514-2.353-6.606-1.923-3.088.43-6.082 1.824-5.832 3.659.2 1.427 2.777 3.863 5.827 3.863.258 0 .518-.017.78-.054 2.036-.282 3.53-1.575 4.24-2.32 1.08-1.136 1.706-2.402 1.591-3.225",fill:"#FFF"}),l.createElement("path",{d:"M247.802 160.025c-1.134-3.429-4.784-4.532-10.848-3.28-18.005 3.716-24.453 1.142-26.57-.417 13.995-21.32 25.508-47.092 31.719-71.137 2.942-11.39 4.567-21.968 4.7-30.59.147-9.463-1.465-16.417-4.789-20.665-13.402-17.125-33.072-26.311-56.882-26.563-16.369-.184-30.199 4.005-32.88 5.183-5.646-1.404-11.801-2.266-18.502-2.376-12.288-.199-22.91 2.743-31.704 8.74-3.82-1.422-13.692-4.811-25.765-6.756-20.872-3.36-37.458-.814-49.294 7.571-14.123 10.006-20.643 27.892-19.38 53.16.425 8.501 5.269 34.653 12.913 59.698 10.062 32.964 21 51.625 32.508 55.464 1.347.449 2.9.763 4.613.763 4.198 0 9.345-1.892 14.7-8.33a529.832 529.832 0 0 1 20.261-22.926c4.524 2.428 9.494 3.784 14.577 3.92.01.133.023.266.035.398a117.66 117.66 0 0 0-2.57 3.175c-3.522 4.471-4.255 5.402-15.592 7.736-3.225.666-11.79 2.431-11.916 8.435-.136 6.56 10.125 9.315 11.294 9.607 4.074 1.02 7.999 1.523 11.742 1.523 9.103 0 17.114-2.992 23.516-8.781-.197 23.386.778 46.43 3.586 53.451 2.3 5.748 7.918 19.795 25.664 19.794 2.604 0 5.47-.303 8.623-.979 18.521-3.97 26.564-12.156 29.675-30.203 1.665-9.645 4.522-32.676 5.866-45.03 2.836.885 6.487 1.29 10.434 1.289 8.232 0 17.731-1.749 23.688-4.514 6.692-3.108 18.768-10.734 16.578-17.36zm-44.106-83.48c-.061 3.647-.563 6.958-1.095 10.414-.573 3.717-1.165 7.56-1.314 12.225-.147 4.54.42 9.26.968 13.825 1.108 9.22 2.245 18.712-2.156 28.078a36.508 36.508 0 0 1-1.95-4.009c-.547-1.326-1.735-3.456-3.38-6.404-6.399-11.476-21.384-38.35-13.713-49.316 2.285-3.264 8.084-6.62 22.64-4.813zm-17.644-61.787c21.334.471 38.21 8.452 50.158 23.72 9.164 11.711-.927 64.998-30.14 110.969a171.33 171.33 0 0 0-.886-1.117l-.37-.462c7.549-12.467 6.073-24.802 4.759-35.738-.54-4.488-1.05-8.727-.92-12.709.134-4.22.692-7.84 1.232-11.34.663-4.313 1.338-8.776 1.152-14.037.139-.552.195-1.204.122-1.978-.475-5.045-6.235-20.144-17.975-33.81-6.422-7.475-15.787-15.84-28.574-21.482 5.5-1.14 13.021-2.203 21.442-2.016zM66.674 175.778c-5.9 7.094-9.974 5.734-11.314 5.288-8.73-2.912-18.86-21.364-27.791-50.624-7.728-25.318-12.244-50.777-12.602-57.916-1.128-22.578 4.345-38.313 16.268-46.769 19.404-13.76 51.306-5.524 64.125-1.347-.184.182-.376.352-.558.537-21.036 21.244-20.537 57.54-20.485 59.759-.002.856.07 2.068.168 3.735.362 6.105 1.036 17.467-.764 30.334-1.672 11.957 2.014 23.66 10.111 32.109a36.275 36.275 0 0 0 2.617 2.468c-3.604 3.86-11.437 12.396-19.775 22.426zm22.479-29.993c-6.526-6.81-9.49-16.282-8.133-25.99 1.9-13.592 1.199-25.43.822-31.79-.053-.89-.1-1.67-.127-2.285 3.073-2.725 17.314-10.355 27.47-8.028 4.634 1.061 7.458 4.217 8.632 9.645 6.076 28.103.804 39.816-3.432 49.229-.873 1.939-1.698 3.772-2.402 5.668l-.546 1.466c-1.382 3.706-2.668 7.152-3.465 10.424-6.938-.02-13.687-2.984-18.819-8.34zm1.065 37.9c-2.026-.506-3.848-1.385-4.917-2.114.893-.42 2.482-.992 5.238-1.56 13.337-2.745 15.397-4.683 19.895-10.394 1.031-1.31 2.2-2.794 3.819-4.602l.002-.002c2.411-2.7 3.514-2.242 5.514-1.412 1.621.67 3.2 2.702 3.84 4.938.303 1.056.643 3.06-.47 4.62-9.396 13.156-23.088 12.987-32.921 10.526zm69.799 64.952c-16.316 3.496-22.093-4.829-25.9-14.346-2.457-6.144-3.665-33.85-2.808-64.447.011-.407-.047-.8-.159-1.17a15.444 15.444 0 0 0-.456-2.162c-1.274-4.452-4.379-8.176-8.104-9.72-1.48-.613-4.196-1.738-7.46-.903.696-2.868 1.903-6.107 3.212-9.614l.549-1.475c.618-1.663 1.394-3.386 2.214-5.21 4.433-9.848 10.504-23.337 3.915-53.81-2.468-11.414-10.71-16.988-23.204-15.693-7.49.775-14.343 3.797-17.761 5.53-.735.372-1.407.732-2.035 1.082.954-11.5 4.558-32.992 18.04-46.59 8.489-8.56 19.794-12.788 33.568-12.56 27.14.444 44.544 14.372 54.366 25.979 8.464 10.001 13.047 20.076 14.876 25.51-13.755-1.399-23.11 1.316-27.852 8.096-10.317 14.748 5.644 43.372 13.315 57.129 1.407 2.521 2.621 4.7 3.003 5.626 2.498 6.054 5.732 10.096 8.093 13.046.724.904 1.426 1.781 1.96 2.547-4.166 1.201-11.649 3.976-10.967 17.847-.55 6.96-4.461 39.546-6.448 51.059-2.623 15.21-8.22 20.875-23.957 24.25zm68.104-77.936c-4.26 1.977-11.389 3.46-18.161 3.779-7.48.35-11.288-.838-12.184-1.569-.42-8.644 2.797-9.547 6.202-10.503.535-.15 1.057-.297 1.561-.473.313.255.656.508 1.032.756 6.012 3.968 16.735 4.396 31.874 1.271l.166-.033c-2.042 1.909-5.536 4.471-10.49 6.772z",fill:"#FFF"})),l.createElement("h3",{className:"mt-3"},"PostgreSQL")),l.createElement("div",{className:"text-center"},l.createElement("svg",{width:"100px",height:"100px",viewBox:"0 0 256 252",xmlns:"http://www.w3.org/2000/svg"},l.createElement("path",{d:"M235.648 194.212c-13.918-.347-24.705 1.045-33.752 4.872-2.61 1.043-6.786 1.044-7.134 4.35 1.392 1.392 1.566 3.654 2.784 5.567 2.09 3.479 5.741 8.177 9.047 10.614 3.653 2.783 7.308 5.566 11.134 8.002 6.786 4.176 14.442 6.611 21.053 10.787 3.829 2.434 7.654 5.568 11.482 8.177 1.914 1.39 3.131 3.654 5.568 4.523v-.521c-1.219-1.567-1.567-3.828-2.784-5.568-1.738-1.74-3.48-3.306-5.22-5.046-5.045-6.784-11.308-12.7-18.093-17.571-5.567-3.828-17.747-9.047-20.008-15.485 0 0-.175-.173-.348-.347 3.827-.348 8.35-1.74 12.005-2.784 5.915-1.567 11.308-1.218 17.398-2.784 2.783-.696 5.567-1.566 8.35-2.436v-1.565c-3.13-3.132-5.392-7.307-8.698-10.265-8.873-7.657-18.617-15.137-28.707-21.4-5.394-3.48-12.354-5.742-18.095-8.699-2.086-1.045-5.567-1.566-6.784-3.306-3.133-3.827-4.873-8.872-7.134-13.396-5.044-9.57-9.917-20.182-14.267-30.272-3.13-6.786-5.044-13.572-8.872-19.834-17.92-29.577-37.406-47.497-67.33-65.07-6.438-3.653-14.093-5.219-22.27-7.132-4.348-.175-8.699-.522-13.048-.697-2.784-1.218-5.568-4.523-8.004-6.089C34.006 4.573 8.429-8.996 1.122 8.924c-4.698 11.308 6.96 22.442 10.96 28.185 2.96 4.001 6.786 8.524 8.874 13.048 1.218 2.956 1.565 6.09 2.783 9.221 2.785 7.653 5.393 16.18 9.048 23.314 1.914 3.653 4.001 7.48 6.437 10.786 1.392 1.913 3.827 2.784 4.35 5.915-2.435 3.48-2.61 8.7-4.003 13.049-6.263 19.66-3.826 44.017 5.046 58.457 2.783 4.348 9.395 13.92 18.268 10.265 7.83-3.131 6.09-13.048 8.35-21.747.524-2.09.176-3.48 1.219-4.872v.349c2.436 4.87 4.871 9.569 7.133 14.44 5.394 8.524 14.788 17.398 22.617 23.314 4.177 3.13 7.482 8.524 12.702 10.438v-.523h-.349c-1.044-1.566-2.61-2.261-4.001-3.48-3.131-3.13-6.612-6.958-9.047-10.438-7.306-9.744-13.745-20.53-19.486-31.665-2.783-5.392-5.22-11.308-7.481-16.701-1.045-2.09-1.045-5.22-2.784-6.263-2.61 3.827-6.437 7.133-8.351 11.83-3.304 7.481-3.653 16.702-4.871 26.27-.696.176-.349 0-.697.35-5.566-1.394-7.48-7.134-9.569-12.006-5.22-12.352-6.09-32.186-1.565-46.452 1.218-3.654 6.438-15.136 4.35-18.616-1.044-3.306-4.525-5.22-6.438-7.829-2.261-3.306-4.698-7.48-6.263-11.135-4.176-9.743-6.264-20.53-10.787-30.273-2.088-4.524-5.74-9.22-8.699-13.396-3.305-4.697-6.959-8.004-9.569-13.571-.869-1.913-2.088-5.045-.696-7.133.348-1.392 1.043-1.913 2.436-2.261 2.262-1.915 8.7.521 10.96 1.565 6.438 2.608 11.831 5.046 17.225 8.699 2.435 1.74 5.045 5.046 8.176 5.916h3.654c5.568 1.217 11.83.348 17.05 1.913 9.222 2.957 17.572 7.307 25.054 12.005 22.792 14.44 41.58 34.97 54.282 59.501 2.088 4 2.957 7.656 4.871 11.83 3.655 8.526 8.178 17.225 11.83 25.576 3.654 8.176 7.133 16.528 12.353 23.314 2.61 3.652 13.048 5.567 17.746 7.481 3.48 1.565 8.874 2.958 12.005 4.871 5.915 3.652 11.83 7.83 17.398 11.83 2.784 2.088 11.482 6.438 12.005 9.917z",fill:"#00546B"}),l.createElement("path",{d:"M58.186 43.022c-2.957 0-5.044.35-7.132.871v.348h.348c1.393 2.784 3.827 4.698 5.566 7.133 1.393 2.783 2.61 5.568 4.003 8.352.173-.175.347-.348.347-.348 2.437-1.741 3.654-4.524 3.654-8.7-1.044-1.217-1.218-2.435-2.088-3.653-1.043-1.741-3.306-2.61-4.698-4.003z",fill:"#00546B"})),l.createElement("h3",{className:"mt-3"},"MySQL")),l.createElement("div",{className:"text-center"},l.createElement("svg",{width:"100px",height:"100px",viewBox:"0 0 88 96",fill:"none",xmlns:"http://www.w3.org/2000/svg"},l.createElement("path",{d:"M55.5191 44.8197L36.2877 51.0913L19.5686 58.476L14.8847 59.7139C13.6972 60.8426 12.437 61.9891 11.095 63.1569C9.61977 64.4406 8.23243 65.6039 7.17754 66.4447C6.00287 67.381 4.25627 69.1141 3.36352 70.2253C2.03533 71.8786 0.996697 73.6416 0.550128 74.9974C-0.253294 77.4367 0.138148 79.9074 1.68765 82.1875C3.66698 85.1002 7.60729 88.0595 12.1899 90.0741C14.5275 91.1017 18.4721 92.4265 21.43 93.1734C26.3593 94.4182 35.8861 95.7706 41.1328 95.9716C42.1969 96.0123 43.6134 96.0085 43.6785 95.9655C43.7937 95.8894 44.6105 94.3428 45.5582 92.4069C48.7827 85.8199 51.1157 79.6448 52.3711 74.3709C53.1313 71.1775 53.7239 66.9193 54.1078 61.8703C54.2154 60.456 54.2543 55.739 54.1717 54.1358C54.0372 51.5269 53.8074 49.4005 53.4387 47.3137C53.3846 47.0079 53.3647 46.7389 53.3931 46.7146C53.4465 46.6687 53.6282 46.6104 55.9905 45.9238L55.5191 44.8197V44.8197ZM51.1241 47.3989C51.2989 47.3989 51.7636 51.8557 51.8845 54.6833C51.9102 55.2841 51.905 55.6687 51.8693 55.6687C51.7545 55.6687 49.4064 54.2899 47.742 53.2447C46.2884 52.3318 43.5301 50.4988 43.0915 50.1545C42.9531 50.0458 42.9678 50.0405 44.1561 49.6314C46.1779 48.9352 50.9713 47.3989 51.1241 47.3989ZM41.3274 50.6138C41.4517 50.6135 41.7901 50.8002 42.5897 51.3011C45.5893 53.1802 49.6512 55.441 51.3918 56.201C51.9315 56.4366 51.9931 56.3453 50.75 57.1895C48.1003 58.9888 44.8062 60.758 40.7617 62.5547C40.0568 62.8678 39.4597 63.1234 39.4356 63.1234C39.4116 63.1234 39.4903 62.7659 39.609 62.3266C40.5888 58.7023 41.1416 55.044 41.1571 52.1102C41.1648 50.6592 41.1652 50.6515 41.3031 50.6168C41.3096 50.6152 41.3192 50.6138 41.3274 50.6138V50.6138ZM39.3109 51.3833C39.3978 51.4705 39.3349 54.7219 39.2288 55.6079C38.9744 57.7334 38.5585 59.6991 37.8936 61.9342C37.7347 62.4683 37.5858 62.9287 37.5621 62.9561C37.5043 63.0231 35.5161 61.0859 34.8551 60.3192C33.7259 59.0092 32.8325 57.7079 32.1817 56.4261C31.8509 55.7745 31.3234 54.4879 31.3726 54.4521C31.596 54.2899 39.2564 51.3284 39.3109 51.3833ZM29.8124 55.1273C29.8302 55.1291 29.8441 55.134 29.8519 55.1425C29.8806 55.1741 29.9818 55.4103 30.077 55.6687C30.5401 56.9266 31.5815 58.7953 32.4858 59.9907C33.4732 61.2958 34.7604 62.6864 35.8376 63.6101C36.1834 63.9067 36.5061 64.1835 36.5523 64.2245C36.6445 64.3062 36.6755 64.2923 34.3046 65.1916C31.5569 66.2339 28.5643 67.2776 25.1285 68.3883C23.8191 68.8115 22.7109 69.1692 22.6679 69.1851C22.537 69.2337 22.5771 69.1531 22.9599 68.5555C24.6671 65.8902 27.2533 60.6764 28.6992 56.9887C28.95 56.3491 29.1886 55.7085 29.2314 55.5653C29.2943 55.3549 29.3563 55.2833 29.5538 55.1943C29.6631 55.145 29.7587 55.122 29.8124 55.1273ZM26.9016 56.3287C26.9403 56.3628 26.2033 57.9193 25.4782 59.3337C24.0719 62.0772 22.5214 64.777 20.4628 68.0719C20.1076 68.6405 19.7803 69.1602 19.7359 69.2247C19.6628 69.3308 19.6328 69.2958 19.4074 68.8475C18.9146 67.8674 18.5017 66.6307 18.2881 65.4806C18.0768 64.3423 18.1127 62.3717 18.3672 61.1495C18.5563 60.2415 18.5479 60.2615 18.9755 60.0424C20.8241 59.095 26.8414 56.2758 26.9016 56.3287ZM51.9727 57.3476V57.965C51.9696 61.2079 51.6234 65.6476 51.1211 68.8871C51.0329 69.4555 50.9566 69.9245 50.9507 69.9303C50.9449 69.936 50.5352 69.816 50.0413 69.6626C47.8592 68.9852 45.4935 67.9732 43.3592 66.8036C41.9458 66.0291 39.9015 64.7745 39.9588 64.7172C39.9744 64.7016 40.5765 64.3825 41.297 64.0085C44.1511 62.5271 46.8774 60.93 49.2475 59.3459C50.1368 58.7516 51.4674 57.7895 51.7628 57.5301L51.9727 57.3476ZM15.9249 61.6453C15.9841 61.6424 15.9691 61.7549 15.8762 62.2901C15.8116 62.6623 15.7387 63.3654 15.712 63.8503C15.5951 65.976 15.9398 67.5443 16.9955 69.69C17.289 70.2866 17.5186 70.7839 17.5065 70.7941C17.4008 70.8826 7.78786 73.6956 4.76564 74.523C3.86978 74.7682 3.08678 74.9843 3.02287 75.0035C2.918 75.0351 2.90865 75.0122 2.94682 74.7663C3.27785 72.6337 4.90463 69.8346 7.17754 67.4849C8.68864 65.9228 9.89857 64.9974 11.9557 63.823C13.4321 62.9801 15.7251 61.7151 15.8945 61.6513C15.9059 61.6471 15.9164 61.6457 15.9249 61.6453V61.6453ZM38.5992 65.7057C38.6084 65.6947 38.9645 65.8854 39.39 66.1315C42.495 67.9272 46.8278 69.6114 50.5219 70.4565L50.8565 70.5325L50.3972 70.788C48.4675 71.8588 42.1125 74.503 35.6216 76.9379C34.6741 77.2934 33.7495 77.6419 33.5686 77.7135C33.3877 77.7851 33.2401 77.8342 33.2401 77.8199C33.2401 77.8057 33.5078 77.2904 33.8363 76.6763C35.6584 73.2693 37.4773 69.129 38.4107 66.2562C38.5058 65.9633 38.5901 65.7166 38.5992 65.7057ZM36.2877 66.463C36.2977 66.473 36.1841 66.7782 36.0352 67.1382C34.7685 70.2014 33.1088 73.5431 30.9925 77.2968C30.4539 78.2521 29.9999 79.032 29.9827 79.0304C29.9654 79.0289 29.5274 78.7697 29.0094 78.4526C25.9268 76.5654 23.1995 74.2425 21.4087 71.9833L21.1532 71.6639L22.4823 71.299C27.2233 70.0002 31.2438 68.6113 35.2414 66.8888C35.8075 66.6449 36.2777 66.453 36.2877 66.463ZM50.6466 71.4754C50.6534 71.4768 50.6557 71.4816 50.6557 71.4875C50.6557 71.8107 49.9224 74.801 49.3114 76.9653C48.7989 78.7807 48.3686 80.2007 47.5716 82.7167C47.2197 83.828 46.9175 84.7349 46.8995 84.7302C46.8815 84.7255 46.797 84.7093 46.7109 84.6937C42.3923 83.9122 38.5242 82.8223 34.9008 81.3663C33.8871 80.959 32.4232 80.3106 32.3459 80.2349C32.3197 80.2092 33.1951 79.7969 34.2894 79.3194C40.9072 76.432 47.764 73.1438 50.1082 71.7339C50.3902 71.5643 50.5989 71.4656 50.6466 71.4754ZM17.5004 72.6099C17.5359 72.6435 15.6847 75.2934 13.0993 78.9118C12.2007 80.1695 11.1451 81.6518 10.7543 82.2058C10.3635 82.7597 9.77238 83.6365 9.43738 84.1554L8.82604 85.0982L8.17515 84.5508C7.41143 83.9095 6.07462 82.548 5.46823 81.7921C4.22035 80.2366 3.3748 78.5996 3.04111 77.0961C2.88706 76.402 2.88252 76.0483 3.02894 76.0042C3.24056 75.9404 7.12272 75.0265 10.7635 74.1823C12.7858 73.7134 15.1239 73.1645 15.9614 72.9627C16.7989 72.7609 17.4922 72.6021 17.5004 72.6099H17.5004ZM19.3618 73.3216L19.8302 73.8447C21.9242 76.1774 24.0539 77.9182 26.6522 79.4198C27.111 79.6849 27.4607 79.9154 27.4309 79.9338C27.3227 80.0006 18.4457 83.1569 14.3403 84.5873C12.025 85.394 10.1231 86.0517 10.1126 86.0502C10.1021 86.0487 9.97094 85.9629 9.82365 85.8586L9.556 85.667L9.97571 85.0617C11.3379 83.0886 13.0493 80.9188 16.7948 76.4117L19.3618 73.3216ZM30.962 81.6127C30.9723 81.5999 31.6213 81.83 32.4067 82.1237C34.2999 82.8316 35.7858 83.2933 37.7963 83.7965C40.2656 84.4145 43.8342 85.0326 45.9475 85.2108C46.2719 85.2381 46.4375 85.2751 46.3855 85.3081C46.2874 85.3702 44.1476 86.0849 42.5745 86.5794C40.0773 87.3644 32.4459 89.6189 26.2234 91.4093C25.0691 91.7415 24.0822 92.0221 24.0305 92.0328C23.8911 92.0618 23.4039 91.934 23.4039 91.8686C23.4039 91.8375 23.7528 91.396 24.1765 90.8892C26.268 88.3875 28.3457 85.5933 30.08 82.9509C30.5544 82.2282 30.9518 81.6255 30.962 81.6127ZM28.392 81.6857C28.4107 81.7044 27.3797 83.3553 25.5664 86.2114C24.8008 87.4174 23.9326 88.7902 23.6351 89.262C23.3375 89.7339 22.9015 90.451 22.6679 90.8588L22.2421 91.601L22.0261 91.5432C21.5051 91.4021 17.8296 90.1037 16.8586 89.7183C15.6553 89.2406 14.4012 88.6638 13.4765 88.1641C12.3209 87.5396 10.8554 86.6129 10.9703 86.5764C11.0034 86.5659 12.9918 86.0217 15.3865 85.3689C21.757 83.6324 25.2808 82.6349 27.5921 81.9138C28.0239 81.7791 28.3837 81.6774 28.392 81.6857ZM46.4858 85.9286C46.4995 85.9256 46.5059 85.9255 46.5071 85.9286C46.5674 86.0792 44.209 92.6113 43.347 94.682C43.1539 95.1458 43.0825 95.2582 42.982 95.2538C42.738 95.2431 39.3184 94.765 37.2488 94.4508C33.6257 93.9008 27.5571 92.8411 26.0257 92.4921L25.6698 92.413L27.8415 91.9233C32.4962 90.8746 34.7316 90.3121 36.9994 89.6179C39.8595 88.7423 42.6916 87.6507 45.5521 86.3209C46.0043 86.1107 46.3898 85.9494 46.4858 85.9286Z",fill:"url(#paint0_linear)"}),l.createElement("path",{d:"M35.6986 0.00055976C35.377 -0.0369892 30.2157 1.82256 26.8996 3.1698C22.4063 4.9953 18.9176 6.74441 16.7653 8.25518C15.9642 8.81751 14.9569 9.82887 14.8097 10.2169C14.7546 10.3622 14.7287 10.5319 14.7275 10.7066L16.6802 12.5498L21.3124 14.0279L32.3469 15.9988L44.96 18.1674L45.0877 17.0846C45.0496 17.0786 45.0135 17.0724 44.9752 17.0664L43.3146 16.8048L42.9769 16.2117C41.2627 13.1869 39.3683 9.44374 38.2687 6.91084C37.4171 4.9492 36.5994 2.68945 36.1458 1.05292C35.8763 0.0809629 35.8483 0.0180308 35.6986 0.00055976ZM35.4553 0.748767C35.4682 0.746457 35.4746 0.74637 35.4766 0.748767C35.4868 0.760959 35.5454 1.16666 35.6044 1.64905C35.8526 3.68061 36.3072 5.6509 37.0187 7.77158C37.5548 9.36961 37.5625 9.27575 36.9244 9.09767C35.4412 8.68375 28.796 7.54307 23.9889 6.87738C23.2143 6.77012 22.5696 6.67474 22.5594 6.66448C22.4984 6.60344 26.0262 4.75512 27.59 4.0275C29.5958 3.09429 35.0577 0.820285 35.4553 0.748767ZM21.4492 7.25453L22.0119 7.44614C25.0982 8.49669 32.834 9.97439 37.1099 10.3295C37.5923 10.3695 37.9979 10.4125 38.0102 10.4238C38.0225 10.435 37.6127 10.654 37.1008 10.9104C35.038 11.9437 32.7677 13.2031 31.1972 14.1861C30.736 14.4748 30.3131 14.7076 30.2574 14.7031C30.2018 14.6987 29.8976 14.6498 29.5792 14.5967L28.9982 14.5024L27.5383 13.0851C24.9754 10.6045 22.9744 8.68552 22.2005 7.96015L21.4492 7.25453ZM20.8774 7.71075L22.9213 10.2626C24.0465 11.6661 25.1741 13.0591 25.4245 13.3588C25.6748 13.6586 25.8685 13.9126 25.8564 13.9215C25.7984 13.9639 22.8941 13.3985 21.355 13.0455C19.7749 12.6832 19.1214 12.5098 18.1431 12.197L17.3463 11.9415L17.3493 11.7438C17.3594 10.7635 18.595 9.31769 20.6919 7.83849L20.8774 7.71075H20.8774ZM38.2839 11.1872C38.3452 11.1919 38.41 11.3165 38.5911 11.7134C39.0868 12.7994 40.63 15.7427 41.003 16.3121C41.1259 16.4996 41.3206 16.5122 39.2724 16.1813C34.3499 15.3862 32.7575 15.1201 32.7575 15.0894C32.7576 15.0707 32.9051 14.974 33.086 14.8735C34.6104 14.0258 36.1484 12.9588 37.5175 11.8046C37.8448 11.5286 38.1593 11.2657 38.217 11.2176C38.2407 11.1978 38.2635 11.1856 38.2839 11.1872Z",fill:"url(#paint1_linear)"}),l.createElement("path",{d:"M14.8977 10.0209C14.8977 10.0209 14.5783 10.5273 14.8795 11.2801C15.0658 11.7459 15.6254 12.3055 16.2421 12.8982C16.2421 12.8982 22.7016 19.1992 23.493 20.1126C27.072 24.2433 28.6264 28.3098 28.77 33.924C28.8621 37.5268 28.1673 40.6939 26.4798 44.3746C23.4551 50.9719 17.0821 58.2472 7.23926 66.3373L8.68397 65.8598C9.6126 65.1641 10.8737 64.4211 13.8484 62.7939C20.6992 59.0467 28.3924 55.5998 37.8428 52.0483C51.4395 46.9387 73.8051 40.9435 86.5311 38.9942L87.8571 38.7904L87.6534 38.4711C86.4897 36.6624 85.6955 35.5471 84.7396 34.3651C81.9483 30.9133 78.5692 28.0968 74.4289 25.7789C68.7395 22.5937 61.3601 20.1182 52.0314 18.2634C50.2678 17.9127 46.4056 17.2507 43.2627 16.7609C36.6053 15.7234 32.3114 15.0228 27.5686 14.1969C25.8682 13.9019 23.3292 13.4755 21.6438 13.1111C20.7656 12.9212 19.0965 12.5266 17.7993 12.08C16.7284 11.6584 15.2203 11.2508 14.8977 10.0209ZM18.6418 13.6555C18.6509 13.6473 18.8935 13.7224 19.1893 13.8228C19.7344 14.0079 20.4538 14.2245 21.291 14.4585C21.8775 14.6224 22.5223 14.7944 23.2071 14.9694C24.0811 15.1929 24.8038 15.3849 24.813 15.3953C24.9098 15.504 26.3776 20.1887 26.8782 21.9862C27.0693 22.6722 27.2143 23.2438 27.2006 23.2575C27.1869 23.2712 27.0241 23.0186 26.8417 22.6979C25.1435 19.7115 22.4543 16.6746 19.3444 14.2304C18.9568 13.9257 18.6418 13.667 18.6418 13.6555ZM25.7985 15.6325C25.8733 15.6273 26.1957 15.6813 26.5801 15.7663C29.0566 16.314 33.4784 17.1676 36.322 17.646C36.7958 17.7257 37.1858 17.8115 37.1858 17.8376C37.1858 17.8637 37.0088 17.9756 36.7935 18.0839C36.3164 18.3239 34.3858 19.4795 33.7398 19.9119C32.1273 20.9911 30.6775 22.1464 29.6216 23.1967C29.1973 23.6188 28.8422 23.9632 28.8308 23.9632C28.8194 23.9632 28.7452 23.7172 28.6666 23.4157C28.1387 21.3923 27.0473 18.4044 26.0692 16.3016C25.9118 15.9632 25.7833 15.6648 25.7833 15.6386C25.7833 15.6353 25.7877 15.6332 25.7985 15.6325V15.6325ZM38.3872 18.0262C38.4701 18.0538 38.6267 18.5426 38.9043 19.6412C39.4357 21.7448 39.6832 24.1073 39.6008 26.2929C39.5778 26.9012 39.5394 27.466 39.5156 27.5491L39.47 27.7011L38.7187 27.4578C37.1701 26.9628 34.6398 26.2178 32.4715 25.6177C31.2397 25.2768 30.2299 24.9725 30.2299 24.9425C30.2299 24.8525 32.0273 23.0555 32.8 22.3724C34.2759 21.0677 38.2465 17.9792 38.3872 18.0262ZM39.3879 18.1691C39.4327 18.1274 45.4036 19.1613 48.117 19.6807C50.1394 20.0679 53.0655 20.6807 53.2419 20.7544C53.327 20.7899 53.0242 20.955 52.0527 21.3931C48.2098 23.1261 45.3628 24.6728 42.5328 26.5667C41.7873 27.0655 41.1679 27.473 41.155 27.473C41.1421 27.473 41.131 27.0567 41.1306 26.5484C41.1287 23.7886 40.5777 21.0031 39.5673 18.6497C39.4586 18.3964 39.377 18.1792 39.3879 18.1691ZM54.8265 21.2228C54.8727 21.269 54.6769 22.4464 54.5071 23.1419C53.9788 25.3066 52.5789 28.5196 50.8513 31.5395C50.5468 32.0717 50.2746 32.5154 50.243 32.525C50.2114 32.5346 49.818 32.3277 49.3701 32.0657C47.6807 31.0776 45.7679 30.1429 43.6673 29.2766C43.0815 29.0351 42.5826 28.82 42.5571 28.7961C42.4613 28.7062 47.1294 25.6156 49.6043 24.1304C51.5838 22.9425 54.771 21.1672 54.8265 21.2228ZM55.9306 21.3961C56.065 21.3961 58.713 22.1181 60.0822 22.5276C63.4927 23.5476 67.427 24.9848 69.9792 26.1439L71.0407 26.6245L70.2925 26.7978C64.0477 28.2325 58.6952 29.888 53.54 31.9805C53.1116 32.1544 52.7388 32.2969 52.7127 32.2969C52.6865 32.2969 52.8232 31.9657 53.0138 31.5608C54.5634 28.2683 55.5643 24.8134 55.8241 21.8797C55.8478 21.6127 55.896 21.3961 55.9306 21.3961ZM29.6095 27.4457C29.6518 27.4039 31.6672 27.8761 32.7665 28.1848C34.4189 28.6486 37.9349 29.8252 37.9371 29.9154C37.9371 29.9329 37.5496 30.2707 37.0763 30.6666C35.1754 32.2569 33.3418 33.9198 31.1454 36.0409C30.4943 36.6698 29.941 37.1815 29.9136 37.1815C29.8863 37.1815 29.8741 37.0897 29.8893 36.9777C30.2201 34.536 30.149 31.4006 29.6885 28.2091C29.6302 27.8045 29.5948 27.4601 29.6095 27.4457ZM72.0505 27.4852C72.0807 27.5154 71.1154 29.0242 70.5145 29.8849C69.6378 31.1409 68.367 32.7896 65.4717 36.4302C63.9509 38.3426 62.2355 40.5067 61.6577 41.2388C61.0799 41.971 60.5949 42.571 60.581 42.571C60.5671 42.571 60.3807 42.3088 60.1674 41.9901C58.5353 39.5519 56.5986 37.4101 54.2882 35.4874C53.857 35.1286 53.3706 34.7351 53.2084 34.6145C53.0463 34.4939 52.9141 34.3823 52.9134 34.3651C52.9118 34.3253 55.3794 33.267 57.2627 32.5006C60.5415 31.1664 65.0228 29.5687 68.3764 28.5406C70.1448 27.9984 72.0236 27.4583 72.0505 27.4852ZM73.1637 27.7772C73.2166 27.7664 73.5686 27.9367 73.991 28.1787C77.5229 30.2019 80.9839 32.8 83.7055 35.4722C84.4797 36.2323 86.3737 38.2024 86.3455 38.2186C86.3383 38.2228 85.6842 38.2746 84.8917 38.3342C78.7712 38.7945 70.9463 40.0965 63.4126 41.908C62.901 42.031 62.4587 42.133 62.4302 42.133C62.4018 42.133 62.9618 41.5709 63.6742 40.886C68.0984 36.6327 70.1168 33.9471 72.4915 29.1489C72.8452 28.4343 73.1451 27.8178 73.1576 27.7802C73.1583 27.7779 73.1602 27.7779 73.1637 27.7772L73.1637 27.7772ZM40.8143 31.0924C41.0164 31.1378 42.9032 32.0157 44.3273 32.7287C45.6295 33.3808 47.6019 34.4309 47.7003 34.5232C47.7126 34.5348 47.0178 34.8976 46.1552 35.3292C43.4242 36.6955 41.085 37.9858 38.6427 39.4778C37.9462 39.9033 37.3625 40.2534 37.344 40.2534C37.2831 40.2534 37.3071 40.2007 37.6968 39.4869C38.9974 37.1049 40.0465 34.2609 40.6501 31.4817C40.704 31.2337 40.7688 31.0822 40.8143 31.0924ZM38.9134 31.4331C38.9528 31.4725 38.4632 33.2708 38.153 34.2312C37.5582 36.0733 36.5524 38.3888 35.586 40.1317C35.359 40.5411 35.0108 41.1402 34.8135 41.4639L34.4546 42.0509L33.6394 41.2632C32.6923 40.3449 31.9207 39.7747 30.9356 39.268C30.5483 39.0688 30.2335 38.8845 30.233 38.8574C30.2311 38.7376 32.711 36.4823 34.6249 34.8639C35.9949 33.7054 38.8784 31.398 38.9134 31.4331ZM50.465 36.1839L51.1737 36.6431C52.7994 37.6987 54.7244 39.1186 56.1921 40.3416C57.0146 41.027 58.6132 42.4584 58.9416 42.8052L59.1181 42.9907L57.941 43.3192C51.2837 45.1663 46.1404 46.8106 40.1391 49.016C39.4731 49.2607 38.898 49.4631 38.8586 49.4631C38.7759 49.4631 38.6936 49.5392 40.1908 48.1613C44.0293 44.6289 47.4202 40.7369 49.954 36.9503L50.465 36.1839ZM47.4296 36.9443C47.4644 36.979 45.4623 39.7831 44.2725 41.3666C42.8491 43.2611 40.314 46.428 38.5697 48.4898C37.8409 49.3512 37.2166 50.066 37.1828 50.0774C37.1457 50.09 37.1226 49.879 37.122 49.5452C37.1186 47.786 36.6735 45.9058 35.8871 44.3138C35.555 43.6414 35.4993 43.4786 35.5677 43.4166C35.8414 43.1684 40.0761 40.7539 42.7457 39.3227C44.5794 38.3397 47.3947 36.9094 47.4296 36.9443ZM29.0711 41.4426C29.1075 41.4426 29.4472 41.6133 29.8254 41.8228C30.7522 42.3362 31.5849 42.9012 32.3194 43.5139C32.3478 43.5375 31.9674 43.8483 31.4739 44.2043C30.0964 45.1982 27.9988 46.7812 26.7839 47.7476C25.5021 48.7672 25.4596 48.7985 25.6038 48.578C26.5637 47.1099 27.0464 46.2787 27.5504 45.2171C27.9984 44.2734 28.4449 43.1532 28.7639 42.1787C28.8964 41.7738 29.0347 41.4426 29.0711 41.4426ZM33.9618 45.281C34.028 45.2728 34.1222 45.396 34.5154 45.9836C35.3441 47.2218 35.9787 48.8731 36.1426 50.2173L36.176 50.5063L34.19 51.2758C30.6248 52.6593 27.3431 54.023 25.1263 55.0381C24.5061 55.3221 23.4111 55.8453 22.6961 56.203C21.9812 56.5607 21.3974 56.8419 21.3974 56.8265C21.3974 56.8111 21.8464 56.4735 22.395 56.0753C26.7458 52.9167 30.497 49.4587 33.3231 46.0018C33.6254 45.6321 33.8999 45.3115 33.9345 45.2901C33.9436 45.2845 33.9524 45.2821 33.9618 45.281V45.281ZM31.705 45.8406C31.7626 45.8982 30.0998 47.7787 28.9799 48.9217C26.1769 51.7824 23.3982 54.0253 19.9558 56.2091C19.5251 56.4823 19.1315 56.7294 19.0798 56.7596C18.9853 56.8149 19.1104 56.6728 20.6218 55.0259C21.5743 53.9882 22.3034 53.1267 23.1311 52.0514C23.6762 51.3432 23.7803 51.2439 24.5788 50.6675C26.7299 49.1149 31.6478 45.7834 31.705 45.8406Z",fill:"url(#paint2_radial)"}),l.createElement("defs",null,l.createElement("linearGradient",{id:"paint0_linear",x1:"18.2585",y1:"92.7052",x2:"55.9905",y2:"70.4099",gradientUnits:"userSpaceOnUse"},l.createElement("stop",{stopColor:"#909CA9"}),l.createElement("stop",{offset:"1",stopColor:"#EDEDEE"})),l.createElement("linearGradient",{id:"paint1_linear",x1:"14.7275",y1:"9.08371",x2:"45.0877",y2:"9.08371",gradientUnits:"userSpaceOnUse"},l.createElement("stop",{stopColor:"#939FAB"}),l.createElement("stop",{offset:"1",stopColor:"#DCDEE1"})),l.createElement("radialGradient",{id:"paint2_radial",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"translate(43.3678 34.8348) rotate(-171.401) scale(39.1698 78.23)"},l.createElement("stop",{stopColor:"#EE352C"}),l.createElement("stop",{offset:"1",stopColor:"#A91D22"})))),l.createElement("h3",{className:"mt-3"},"SQL Server")),l.createElement("div",{className:"text-center"},l.createElement("svg",{className:"mt-3",width:"100px",height:"100px",viewBox:"0 0 256 170",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMinYMin meet"},l.createElement("path",{d:"M250.392.004c-3.95.127-2.701 1.265-11.236 3.365-8.619 2.121-19.147 1.47-28.428 5.363-27.706 11.62-33.265 51.333-58.452 65.559-18.827 10.634-37.822 11.482-54.899 16.834-11.223 3.519-23.5 10.736-33.668 19.499-7.892 6.803-8.098 12.786-16.345 21.32-8.82 9.127-35.057.154-46.948 14.124 3.83 3.873 5.51 4.958 13.058 3.953-1.562 2.962-10.775 5.458-8.972 9.816 1.898 4.585 24.17 7.693 44.417-4.53 9.429-5.693 16.94-13.899 31.624-15.857 19.003-2.533 40.895 1.624 62.894 4.797-3.262 9.726-9.811 16.194-15.057 23.94-1.625 1.75 3.263 1.946 8.839.889 10.03-2.48 17.258-4.478 24.828-8.884 9.3-5.414 10.71-19.293 22.12-22.297 6.357 9.772 23.649 12.08 34.378 4.264-9.415-2.665-12.017-22.705-8.839-31.535 3.01-8.36 5.985-21.73 9.017-32.78 3.255-11.866 4.455-26.823 8.394-32.868 5.927-9.094 12.475-12.217 18.16-17.345 5.686-5.129 10.89-10.12 10.719-21.855-.055-3.78-2.01-5.886-5.604-5.772z",fill:"#002B64"}),l.createElement("path",{d:"M8.594 159c14.418 2.066 23.186 0 34.764-5.02 9.852-4.273 19.366-13.081 31-16.815 17.085-5.482 35.821.007 54.085 1.102 4.448.267 8.867.27 13.229-.205 6.803-4.182 6.663-19.823 13.285-21.256-.195 21.945-9.192 35.094-18.601 47.826 19.83-3.502 31.697-14.972 39.712-30.291 2.432-4.645 4.508-9.642 6.344-14.88 2.839 2.179 1.23 8.808 2.657 12.4 13.659-7.609 21.48-24.973 26.66-42.535 5.992-20.325 8.445-40.906 12.31-46.92 3.772-5.87 9.642-9.488 15-13.246 6.09-4.273 11.52-8.726 12.458-16.867-6.421-.594-7.906-2.08-8.856-5.316-3.215 1.812-6.171 2.2-9.511 2.3-2.898.088-6.082-.041-9.971.358-32.16 3.303-36.247 38.75-56.86 58.844a48.347 48.347 0 0 1-4.835 4.104c-7.22 5.38-16.076 9.224-24.22 12.337-13.183 5.037-25.716 5.395-38.084 9.743-9.08 3.191-18.306 7.82-25.763 12.924a76.37 76.37 0 0 0-5.238 3.903c-4.376 3.58-7.249 7.553-10.027 11.64-2.866 4.21-5.633 8.543-9.851 12.682-6.834 6.71-32.37 1.957-41.36 8.18-1.002.692-1.798 1.523-2.34 2.521 4.906 2.229 8.182.861 13.825 1.485.74 5.355-11.642 8.537-9.812 11.003zM203.435 120.426c.384 6.143 3.95 18.33 7.098 21.293-6.166 1.5-16.787-.978-19.512-5.327 1.4-6.28 8.686-12.02 12.414-15.966z",fill:"#FFF"}),l.createElement("path",{d:"M212.468 22.935c4.552 3.952 14.105.78 12.398-7.084-7.074-.586-11.172 1.815-12.398 7.084zM244.207 13.744c-1.21 2.54-3.529 5.815-3.529 12.28-.01 1.11-.843 1.871-.857.16.063-6.32 1.735-9.051 3.512-12.641.826-1.471 1.323-.864.874.201z",fill:"#002B64"}),l.createElement("path",{d:"M242.988 12.788c-1.429 2.423-4.868 6.844-5.437 13.285-.105 1.104-1.003 1.788-.867.081.62-6.288 3.369-10.224 5.455-13.645.947-1.391 1.392-.743.849.279zM241.876 11.52c-1.627 2.294-6.922 7.603-8.029 13.975-.199 1.09-1.151 1.698-.871.008 1.146-6.215 5.71-11.1 8.076-14.331 1.06-1.31 1.448-.625.824.348zM240.884 10.106c-1.933 2.042-8.245 8.812-10.235 14.964-.352 1.051-1.38 1.52-.864-.114 2.007-5.992 7.535-12.447 10.332-15.312 1.235-1.147 1.522-.415.767.462z",fill:"#002B64"})),l.createElement("h3",null,"MariaDB")),l.createElement("div",{className:"text-center"},l.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"100px",height:"100px",viewBox:"0 0 6.554 6.555"},l.createElement("defs",null,l.createElement("linearGradient",{x1:"2.983",y1:".53",x2:"2.983",y2:"4.744",id:"A",gradientUnits:"userSpaceOnUse"},l.createElement("stop",{stopColor:"#97d9f6",offset:"0%"}),l.createElement("stop",{stopColor:"#0f80cc",offset:"92.024%"}),l.createElement("stop",{stopColor:"#0f80cc",offset:"100%"}))),l.createElement("path",{d:"M4.96.29H.847c-.276 0-.5.226-.5.5v4.536c0 .276.226.5.5.5h2.71c-.03-1.348.43-3.964 1.404-5.54z",fill:"#0f80cc"}),l.createElement("path",{d:"M4.81.437H.847c-.196 0-.355.16-.355.355v4.205c.898-.345 2.245-.642 3.177-.628A28.93 28.93 0 0 1 4.811.437z",fill:"url(#A)"}),l.createElement("path",{d:"M5.92.142c-.282-.25-.623-.15-.96.148l-.15.146c-.576.61-1.1 1.742-1.276 2.607a2.38 2.38 0 0 1 .148.426l.022.1.022.102s-.005-.02-.026-.08l-.014-.04a.461.461 0 0 0-.009-.022c-.038-.087-.14-.272-.187-.352a8.789 8.789 0 0 0-.103.321c.132.242.212.656.212.656s-.007-.027-.04-.12c-.03-.083-.176-.34-.21-.4-.06.22-.083.368-.062.404.04.07.08.2.115.324a7.52 7.52 0 0 1 .132.666l.005.062a6.11 6.11 0 0 0 .015.75c.026.313.075.582.137.726l.042-.023c-.09-.284-.128-.655-.112-1.084.025-.655.175-1.445.454-2.268C4.548 1.938 5.2.94 5.798.464c-.545.492-1.282 2.084-1.502 2.673-.247.66-.422 1.28-.528 1.873.182-.556.77-.796.77-.796s.29-.356.626-.865l-.645.172-.208.092s.53-.323.987-.47c.627-.987 1.31-2.39.622-3.002",fill:"#003b57"})),l.createElement("h3",{className:"mt-3"},"SQLite")),l.createElement("div",{className:"text-center"},l.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 31.82 32",width:"100px",height:"100px"},l.createElement("path",{d:"M19.42 9.17a15.39 15.39 0 0 1-3.51.4 15.46 15.46 0 0 1-3.51-.4 15.63 15.63 0 0 1 3.51-3.91 15.71 15.71 0 0 1 3.51 3.91zM30 .57A17.22 17.22 0 0 0 25.59 0a17.4 17.4 0 0 0-9.68 2.93A17.38 17.38 0 0 0 6.23 0a17.22 17.22 0 0 0-4.44.57A16.22 16.22 0 0 0 0 1.13a.07.07 0 0 0 0 .09 17.32 17.32 0 0 0 .83 1.57.07.07 0 0 0 .08 0 16.39 16.39 0 0 1 1.81-.54 15.65 15.65 0 0 1 11.59 1.88 17.52 17.52 0 0 0-3.78 4.48c-.2.32-.37.65-.55 1s-.22.45-.33.69-.31.72-.44 1.08a17.46 17.46 0 0 0 4.29 18.7c.26.25.53.49.81.73s.44.37.67.54.59.44.89.64a.07.07 0 0 0 .08 0c.3-.21.6-.42.89-.64s.45-.35.67-.54.55-.48.81-.73a17.45 17.45 0 0 0 5.38-12.61 17.39 17.39 0 0 0-1.09-6.09c-.14-.37-.29-.73-.45-1.09s-.22-.47-.33-.69-.35-.66-.55-1a17.61 17.61 0 0 0-3.78-4.48 15.65 15.65 0 0 1 11.6-1.84 16.13 16.13 0 0 1 1.81.54.07.07 0 0 0 .08 0q.44-.76.82-1.56a.07.07 0 0 0 0-.09A16.89 16.89 0 0 0 30 .57z",fill:"#151f34"}),l.createElement("path",{d:"M21.82 17.47a15.51 15.51 0 0 1-4.25 10.69 15.66 15.66 0 0 1-.72-4.68 15.5 15.5 0 0 1 4.25-10.69 15.62 15.62 0 0 1 .72 4.68",fill:"#348540"}),l.createElement("path",{d:"M15 23.48a15.55 15.55 0 0 1-.72 4.68 15.54 15.54 0 0 1-3.53-15.37A15.5 15.5 0 0 1 15 23.48",fill:"#7dbc42"})),l.createElement("h3",{className:"mt-3"},"CockroachDB")))))}const z="Hadmean - Generate powerful admin apps with ease in seconds";function L(){const{siteConfig:e}=(0,c.Z)();return l.createElement(l.Fragment,null,l.createElement(r.Z,null,l.createElement("title",null,z),l.createElement("meta",{name:"title",content:z}),l.createElement("meta",{name:"description",content:e.tagline}),l.createElement("meta",{property:"og:site_name",content:"Hadmean"}),l.createElement("meta",{property:"og:title",content:z}),l.createElement("meta",{property:"og:image",content:"https://hadmean.com/img/og-image.png"}),l.createElement("meta",{property:"og:description",content:e.tagline}),l.createElement("meta",{name:"twitter:card",content:"summary"}),l.createElement("meta",{name:"twitter:site",content:"@hadmeanHQ"}),l.createElement("meta",{name:"twitter:creator",content:"@hadmeanHQ"}),l.createElement("link",{rel:"apple-touch-icon",sizes:"180x180",href:"/apple-touch-icon.png"}),l.createElement("link",{rel:"icon",type:"image/png",sizes:"32x32",href:"/favicon-32x32.png"}),l.createElement("link",{rel:"icon",type:"image/png",sizes:"16x16",href:"/favicon-16x16.png"}),l.createElement("script",{async:!0,defer:!0,src:"https://buttons.github.io/buttons.js"})),l.createElement(N,null),l.createElement(k,null),l.createElement(b,null),l.createElement(y,null),l.createElement(M,null),l.createElement(f,null),l.createElement(E,null),l.createElement(w,null),l.createElement(p,null),l.createElement(h,null))}const Z=function(){return l.createElement(m,null,(()=>l.createElement(L,null)))}}}]); \ No newline at end of file diff --git a/assets/js/c4f5d8e4.dc3d19de.js b/assets/js/c4f5d8e4.dc3d19de.js new file mode 100644 index 000000000..4a0867379 --- /dev/null +++ b/assets/js/c4f5d8e4.dc3d19de.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[195],{6145:(e,t,a)=>{a.r(t),a.d(t,{default:()=>Z});var l=a(7294),r=a(9960);function n(){return l.createElement("section",{className:"bg-white dark:bg-gray-900"},l.createElement("div",{className:"max-w-screen-xl px-4 py-8 mx-auto lg:py-16 lg:px-6"},l.createElement("div",{className:"max-w-screen-sm mx-auto text-center"},l.createElement("h2",{className:"mb-4 text-3xl font-extrabold leading-tight tracking-tight text-gray-900 dark:text-white"},"Build your next internal tool with Hadmean"),l.createElement("p",{className:"mb-6 font-light text-gray-500 dark:text-gray-400 md:text-lg"},"Focus your precious engineering resources on more interesting things. Don't build and maintain what you can auto-generate."),l.createElement(r.Z,{href:"/docs/installation/setup",className:"text-white bg-primary hover:bg-primary-dark hover:text-white focus:ring-4 focus:ring-primary-lighter font-medium rounded-lg text-sm px-5 py-2.5 mr-2 mb-2 focus:outline-none dark:focus:ring-primary"},"Get Started"))))}var c=a(6010);const i=[{question:"Is Hadmean secure?",answer:l.createElement(l.Fragment,null,"All credentials provided in the application are encrypted at rest using aes-256-gcm. You can find more details about our security implemetations"," ",l.createElement(r.Z,{href:"/docs/security",className:"text-primary dark:text-primary-light hover:underline"},"here"))},{question:"Can I manage my database schema with Hadmean",answer:"No, Hadmean is not intended for such use and will not and will\n never have an interface to change the structure of your\n database."},{question:"Do I need coding knowledge to use this Hadmean?",answer:"No, You can use Hadmean without any coding knowledge but having some Javascript knowledge will help you get more customization for your forms and some SQL knowledge will be beneficial when creating dashboard widgets."},{question:"Is there a free trial",answer:"No, as we have a free version that is freely available, the PRO plugins are paid but you see it in action on the demo site."},{question:"What are plugins",answer:"Plugins are a way to extend the functionality of Hadmean. You can find more information about plugins in our documentation."},{question:"How is the price determined?",answer:"Hadmean is basically free but when you need to supercharge your app with plugins, you can buy them from the marketplace. The plugins are priced individually and you can buy them as you need them."},{question:"What happens if I stop paying?",answer:"When your plugin licenses expires you will have to run `npx hadmean` to continue using the free version of Hadmean. You will still be able to access your data and use the free plugins."},{question:"Does my app need to be connected to verify the license",answer:"No, all the license verification is done on the app and your app will not need to be connected to the internet to verify."},{question:"Can I use my license on another domain",answer:"Sadly No, since the license verification is done locally and they is no way to invalidate any license unless it expires, this means all license are tried to a specific domain."}].map(((e,t)=>({id:t,...e})));function m(){const[e,t]=(0,l.useState)(0);return l.createElement("section",{className:"bg-white dark:bg-gray-900"},l.createElement("div",{className:"max-w-screen-xl px-4 py-8 mx-auto lg:p-12 lg:px-6 "},l.createElement("h2",{className:"mb-6 text-3xl font-extrabold tracking-tight text-center text-gray-900 lg:mb-8 lg:text-3xl dark:text-white"},"Frequently asked questions"),l.createElement("div",{className:"max-w-screen-md mx-auto"},l.createElement("div",{id:"accordion-flush","data-accordion":"collapse","data-active-classes":"bg-white dark:bg-gray-900 text-gray-900 dark:text-white","data-inactive-classes":"text-gray-500 dark:text-gray-400"},i.map((a=>{let{question:r,answer:n,id:i}=a;const m=i===e;return l.createElement(l.Fragment,{key:i},l.createElement("h3",{id:`accordion-flush-heading-${i}`},l.createElement("button",{type:"button",className:(0,c.Z)("flex items-center justify-between w-full py-5 dark:text-white font-medium text-left border-b border-gray-200 dark:border-gray-700",{" text-gray-900 ":m," text-gray-500 ":!m}),"data-accordion-target":`#accordion-flush-body-${i}`,"aria-expanded":m?"true":"false","aria-controls":`accordion-flush-body-${i}`,onClick:()=>t(m?-1:i)},l.createElement("span",null,r),l.createElement("svg",{"data-accordion-icon":"",className:(0,c.Z)("w-6 h-6 shrink-0",{"rotate-180":m}),fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},l.createElement("path",{fillRule:"evenodd",d:"M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z",clipRule:"evenodd"})))),l.createElement("div",{id:`accordion-flush-body-${i}`,className:m?"":"hidden","aria-labelledby":`accordion-flush-heading-${i}`},l.createElement("div",{className:"py-5 border-b border-gray-200 dark:border-gray-700"},l.createElement("p",{className:"mb-2 text-gray-500 dark:text-gray-400"},n))))}))))))}function s(){return l.createElement("section",{className:"bg-gray-50 dark:bg-gray-800"},l.createElement("div",{className:"max-w-screen-xl px-4 py-8 mx-auto text-center lg:py-24 lg:px-6"},l.createElement("figure",{className:"max-w-screen-md mx-auto"},l.createElement("svg",{className:"h-12 mx-auto mb-3 text-gray-400 dark:text-gray-600",viewBox:"0 0 24 27",fill:"none",xmlns:"http://www.w3.org/2000/svg"},l.createElement("path",{d:"M14.017 18L14.017 10.609C14.017 4.905 17.748 1.039 23 0L23.995 2.151C21.563 3.068 20 5.789 20 8H24V18H14.017ZM0 18V10.609C0 4.905 3.748 1.038 9 0L9.996 2.151C7.563 3.068 6 5.789 6 8H9.983L9.983 18L0 18Z",fill:"currentColor"})),l.createElement("blockquote",null,l.createElement("p",{className:"text-xl font-medium text-gray-900 md:text-2xl dark:text-white"},'"Hadmean is just awesome. It built all the features for my internal with little techincal how-know. Perfect choice for your next internal tool application."')),l.createElement("figcaption",{className:"flex items-center justify-center mt-6 space-x-3"},l.createElement("img",{className:"w-6 h-6 rounded-full",src:"https://flowbite.s3.amazonaws.com/blocks/marketing-ui/avatars/michael-gouch.png",alt:"profile picture"}),l.createElement("div",{className:"flex items-center divide-x-2 divide-gray-500 dark:divide-gray-700"},l.createElement("div",{className:"pr-3 font-medium text-gray-900 dark:text-white"},"Afia Udofia"),l.createElement("div",{className:"pl-3 text-sm font-light text-gray-500 dark:text-gray-400"},"Technology Expert"))))))}const o=[{title:"Save Resources",subTitle:"Save time and effort",description:"You don't want to duplicate logic already in your database as all your constraints and relationships will be used to build the UI and forms",svg:l.createElement("svg",{className:"w-10 h-10 mb-2 text-primary md:w-12 md:h-12 dark:text-primary-light",fill:"currentColor",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"},l.createElement("path",{d:"M10.0811 4.08935C10.6111 4.45511 11.1177 4.69614 11.5352 4.74929C11.3076 5.20138 11.1488 5.68691 11.0659 6.18856C10.3925 6.04081 9.75356 5.6858 9.22916 5.32393C8.96994 5.14504 8.7245 4.95442 8.5 4.76675V7.00005C8.5 7.3063 8.31381 7.58174 8.02974 7.69593L8.02354 7.69849C8.01733 7.70107 8.0067 7.70553 7.99202 7.71188C7.96264 7.72459 7.91715 7.74477 7.85841 7.77242C7.74069 7.82781 7.57111 7.91252 7.3721 8.02624C6.97012 8.25594 6.46791 8.5928 6.03033 9.03038C5.57681 9.4839 5.29723 10.093 5.13933 10.566C4.93681 11.1727 4.42116 11.7319 3.68711 11.8542C3.57914 11.8722 3.5 11.9656 3.5 12.0751V13.828C3.5 13.9934 3.61961 14.1346 3.7828 14.1618C4.40671 14.2658 4.89825 14.6731 5.17464 15.1679C5.42601 15.6179 5.87291 16.3123 6.53033 16.9697C7.04118 17.4806 7.63608 17.8081 8.11482 18.0085C8.3521 18.1078 8.55481 18.1733 8.69504 18.2133C8.76497 18.2333 8.81882 18.2468 8.853 18.2548C8.87007 18.2588 8.88219 18.2615 8.88889 18.2629L8.8937 18.2639L8.89478 18.2642C9.24631 18.3333 9.5 18.6415 9.5 19.0001V20.2501C9.5 20.3881 9.61193 20.5001 9.75 20.5001H11C11 19.6716 11.6716 19.0001 12.5 19.0001H14.5C15.3284 19.0001 16 19.6716 16 20.5001H17.25C17.3881 20.5001 17.5 20.3881 17.5 20.2501V18.0001C17.5 17.7172 17.6597 17.4583 17.9118 17.3306L17.9251 17.3235C17.939 17.3159 17.9629 17.3026 17.9953 17.2833C18.0602 17.2447 18.1586 17.1825 18.2796 17.0952C18.5223 16.9199 18.851 16.6465 19.1806 16.262C19.8329 15.5009 20.5 14.2941 20.5 12.5001C20.5 11.4934 20.3118 10.6797 19.9913 10.0125C20.3492 9.53751 20.619 9.00301 20.7894 8.43653C20.8886 8.5724 20.9827 8.71346 21.0713 8.85993C21.6755 9.85813 22 11.063 22 12.5001C22 14.706 21.1671 16.2492 20.3194 17.2381C19.899 17.7287 19.4777 18.0802 19.1579 18.3112C19.1021 18.3514 19.0493 18.3881 19 18.4214V20.2501C19 21.2166 18.2165 22.0001 17.25 22.0001H16C15.1716 22.0001 14.5 21.3285 14.5 20.5001H12.5C12.5 21.3285 11.8284 22.0001 11 22.0001H9.75C8.7835 22.0001 8 21.2166 8 20.2501V19.5675C7.86194 19.5209 7.7053 19.4631 7.53573 19.3922C6.93965 19.1427 6.15955 18.7203 5.46967 18.0304C4.68564 17.2464 4.16052 16.4283 3.8651 15.8994C3.77791 15.7433 3.64768 15.66 3.5362 15.6414C2.64973 15.4937 2 14.7267 2 13.828V12.0751C2 11.2324 2.60926 10.5132 3.44051 10.3746C3.52742 10.3601 3.6555 10.2738 3.71651 10.0911C3.90886 9.51484 4.28209 8.6573 4.96967 7.96972C5.53209 7.40731 6.15488 6.99416 6.6279 6.72387C6.76427 6.64594 6.88983 6.57897 7 6.52288V3.67121C7 2.73331 8.13062 2.34833 8.73986 2.95499C9.07031 3.28404 9.55006 3.72288 10.0811 4.08935Z"}),l.createElement("path",{d:"M13.07 8.84808C12.5799 8.64513 12.1664 8.25981 12.0679 7.7386C11.7239 5.91712 12.6886 4.04231 14.4689 3.30468C16.5098 2.45911 18.8498 3.42812 19.6954 5.46902C20.433 7.24939 19.7898 9.25732 18.2587 10.3023C17.8206 10.6013 17.2557 10.5814 16.7656 10.3785L13.07 8.84808ZM17.4641 9.02758C18.3837 8.36546 18.7617 7.13428 18.3096 6.04317C17.7811 4.7676 16.3186 4.16197 15.0431 4.69045C13.952 5.14252 13.3489 6.28046 13.5311 7.39885C13.5369 7.40342 13.544 7.40861 13.5525 7.41427C13.5761 7.43001 13.6068 7.44684 13.6439 7.46221L17.3395 8.99263C17.3767 9.008 17.4103 9.0178 17.4381 9.02336C17.4481 9.02535 17.4568 9.0267 17.4641 9.02758Z"}),l.createElement("path",{d:"M9 10C9 10.5523 8.55228 11 8 11C7.44772 11 7 10.5523 7 10C7 9.44774 7.44772 9.00002 8 9.00002C8.55228 9.00002 9 9.44774 9 10Z"}))},{title:"Open Source",subTitle:" Modify and install how you see fit.",description:"You don't want to trust strangers with your precious data as Hadmean\n is fully open-source. ",svg:l.createElement("svg",{className:"w-10 h-10 mb-2 text-primary md:w-12 md:h-12 dark:text-primary-light",fill:"currentColor",viewBox:"0 0 465 465",xmlns:"http://www.w3.org/2000/svg"},l.createElement("g",null,l.createElement("path",{d:"M240,356.071V132.12c0-4.143-3.357-7.5-7.5-7.5s-7.5,3.357-7.5,7.5v223.951c0,4.143,3.357,7.5,7.5,7.5 S240,360.214,240,356.071z"}),l.createElement("path",{d:"M457.5,75.782c-15.856,0-35.614-6.842-56.533-14.085c-26.492-9.174-56.521-19.571-87.663-19.571 c-36.035,0-58.019,15.791-70.115,29.038c-4.524,4.956-8.03,9.922-10.688,14.327c-2.658-4.405-6.164-9.371-10.688-14.327 c-12.097-13.247-34.08-29.038-70.115-29.038c-31.143,0-61.171,10.397-87.663,19.571C43.114,68.94,23.356,75.782,7.5,75.782 c-4.143,0-7.5,3.357-7.5,7.5v302.092c0,4.143,3.357,7.5,7.5,7.5c18.38,0,39.297-7.243,61.441-14.911 c25.375-8.786,54.136-18.745,82.755-18.745c24.54,0,44.403,8.126,59.038,24.152c2.792,3.058,7.537,3.273,10.596,0.48 s3.273-7.537,0.48-10.596c-12.097-13.246-34.08-29.037-70.114-29.037c-31.143,0-61.171,10.397-87.663,19.571 C46.298,369.931,29.396,375.782,15,377.422V90.41c16.491-1.571,34.755-7.896,53.941-14.539 c25.375-8.786,54.136-18.745,82.755-18.745c57.881,0,73.025,45.962,73.634,47.894c0.968,3.148,3.876,5.298,7.17,5.298 s6.202-2.149,7.17-5.298c0.146-0.479,15.383-47.894,73.634-47.894c28.619,0,57.38,9.959,82.755,18.745 c19.187,6.644,37.45,12.968,53.941,14.539v287.012c-14.396-1.64-31.298-7.491-49.033-13.633 c-26.492-9.174-56.521-19.571-87.663-19.571c-36.036,0-58.02,15.791-70.115,29.038c-2.793,3.06-2.578,7.803,0.48,10.596 c3.06,2.793,7.804,2.578,10.596-0.48c14.635-16.027,34.498-24.153,59.039-24.153c28.619,0,57.38,9.959,82.755,18.745 c22.145,7.668,43.062,14.911,61.441,14.911c4.143,0,7.5-3.357,7.5-7.5V83.282C465,79.14,461.643,75.782,457.5,75.782z"}),l.createElement("path",{d:"M457.5,407.874c-15.856,0-35.614-6.842-56.533-14.085c-26.492-9.174-56.521-19.571-87.663-19.571 c-33.843,0-55.291,13.928-67.796,26.596l-26.017-0.001c-12.505-12.668-33.954-26.595-67.795-26.595 c-31.143,0-61.171,10.397-87.663,19.571c-20.919,7.243-40.677,14.085-56.533,14.085c-4.143,0-7.5,3.357-7.5,7.5s3.357,7.5,7.5,7.5 c18.38,0,39.297-7.243,61.441-14.911c25.375-8.786,54.136-18.745,82.755-18.745c24.54,0,44.403,8.126,59.038,24.152 c1.421,1.556,3.431,2.442,5.538,2.442l32.454,0.001c2.107,0,4.117-0.887,5.538-2.442c14.635-16.027,34.498-24.153,59.039-24.153 c28.619,0,57.38,9.959,82.755,18.745c22.145,7.668,43.062,14.911,61.441,14.911c4.143,0,7.5-3.357,7.5-7.5 S461.643,407.874,457.5,407.874z"})))},{title:"Customizable",subTitle:"Everything you see can be configured",description:"\n You want something extremely customizable that also gives you the reign when your requirements become very unique.\n \n ",svg:l.createElement("svg",{className:"w-10 h-10 mb-2 text-primary md:w-12 md:h-12 dark:text-primary-light",fill:"currentColor",viewBox:"0 0 482.568 482.568",xmlns:"http://www.w3.org/2000/svg"},l.createElement("g",null,l.createElement("g",null,l.createElement("path",{d:"M116.993,203.218c13.4-1.8,26.8,2.8,36.3,12.3l24,24l22.7-22.6l-32.8-32.7c-5.1-5.1-5.1-13.4,0-18.5s13.4-5.1,18.5,0 l32.8,32.8l22.7-22.6l-24.1-24.1c-9.5-9.5-14.1-23-12.3-36.3c4-30.4-5.7-62.2-29-85.6c-23.8-23.8-56.4-33.4-87.3-28.8 c-4.9,0.7-6.9,6.8-3.4,10.3l30.9,30.9c14.7,14.7,14.7,38.5,0,53.1l-19,19c-14.7,14.7-38.5,14.7-53.1,0l-31-30.9 c-3.5-3.5-9.5-1.5-10.3,3.4c-4.6,30.9,5,63.5,28.8,87.3C54.793,197.518,86.593,207.218,116.993,203.218z"}),l.createElement("path",{d:"M309.193,243.918l-22.7,22.6l134.8,134.8c5.1,5.1,5.1,13.4,0,18.5s-13.4,5.1-18.5,0l-134.8-134.8l-22.7,22.6l138.9,138.9 c17.6,17.6,46.1,17.5,63.7-0.1s17.6-46.1,0.1-63.7L309.193,243.918z"}),l.createElement("path",{d:"M361.293,153.918h59.9l59.9-119.7l-29.9-29.9l-119.8,59.8v59.9l-162.8,162.3l-29.3-29.2l-118,118 c-24.6,24.6-24.6,64.4,0,89s64.4,24.6,89,0l118-118l-29.9-29.9L361.293,153.918z"}))))},{title:"Easy To Use",subTitle:"No Tutorial",description:"You want an internal tools that don't require techincal knowledge to make changes",svg:l.createElement("svg",{className:"w-10 h-10 mb-2 text-primary md:w-12 md:h-12 dark:text-primary-light",fill:"currentColor",viewBox:"0 0 480.61 480.61",xmlns:"http://www.w3.org/2000/svg"},l.createElement("g",null,l.createElement("path",{d:"M469.012,20.343l-2.395-6.339l-6.339-2.394C439.878,3.906,418.436,0,396.547,0c-48.104,0-93.33,18.733-127.346,52.749 l-48.227,48.227l-107.787,5.228l-90.214,90.213l77.783,24.777l-28.763,28.762l16.802,16.802l-37.224,57.056l105.235,105.237 l57.057-37.224l16.802,16.802l28.763-28.763l24.775,77.783l90.216-90.214l5.227-107.786l48.227-48.227 C477.832,161.462,493.98,86.459,469.012,20.343z M79.029,182.788l47.182-47.181l63.197-3.065l-64.773,64.773L79.029,182.788z M160.805,390.623l-70.806-70.806l20.473-31.381l81.713,81.714L160.805,390.623z M345.015,354.412l-47.181,47.181l-14.527-45.606 l64.773-64.773L345.015,354.412z M230.665,366.202L114.419,249.956L290.414,73.961C318.764,45.612,356.455,30,396.547,30 c15.957,0,31.625,2.487,46.671,7.401c17.451,53.48,3.463,112.785-36.558,152.807L230.665,366.202z"}),l.createElement("path",{d:"M364.951,70.67c-12.02,0-23.32,4.681-31.819,13.18c-17.546,17.545-17.546,46.094,0,63.64 c8.499,8.499,19.8,13.18,31.819,13.18s23.32-4.681,31.819-13.18c17.546-17.545,17.546-46.094,0-63.64 C388.272,75.351,376.971,70.67,364.951,70.67z M375.558,126.277c-2.833,2.833-6.6,4.394-10.606,4.394s-7.773-1.561-10.606-4.393 c-5.849-5.849-5.849-15.365,0-21.214c2.833-2.833,6.6-4.393,10.606-4.393s7.773,1.56,10.606,4.393 C381.406,110.912,381.406,120.429,375.558,126.277z"}),l.createElement("path",{d:"M0.013,375.612l33.999-34l21.213,21.213l-33.999,33.999L0.013,375.612z M105.004,480.61l-21.213-21.213l33.999-33.999 l21.213,21.213L105.004,480.61z M25.031,432.878l50.122-50.122l21.213,21.213l-50.122,50.122L25.031,432.878z"})))},{title:"Simple Installation",subTitle:"Just one command",description:"You want an internal tools that you can fully setup and start using under 59 seconds",svg:l.createElement("svg",{className:"w-10 h-10 mb-2 text-primary md:w-12 md:h-12 dark:text-primary-light",fill:"currentColor",viewBox:"0 0 470 470",xmlns:"http://www.w3.org/2000/svg"},l.createElement("g",null,l.createElement("path",{d:"M462.5,22.5H7.5C3.357,22.5,0,25.857,0,30v410c0,4.143,3.357,7.5,7.5,7.5h455c4.143,0,7.5-3.357,7.5-7.5V30 C470,25.857,466.643,22.5,462.5,22.5z M455,432.5H15v-395h277.5v45h-255c-4.143,0-7.5,3.357-7.5,7.5s3.357,7.5,7.5,7.5h395 c4.143,0,7.5-3.357,7.5-7.5s-3.357-7.5-7.5-7.5h-125v-45H455V432.5z"}),l.createElement("circle",{cx:"381.5",cy:"60",r:"7.5"}),l.createElement("circle",{cx:"340.5",cy:"60",r:"7.5"}),l.createElement("circle",{cx:"422.5",cy:"60",r:"7.5"}),l.createElement("path",{d:"M235,206.676c-30.646,0-55.577,24.932-55.577,55.577S204.354,317.83,235,317.83c8.816,0,17.612-2.133,25.436-6.167 c3.682-1.898,5.127-6.422,3.229-10.104c-1.899-3.682-6.422-5.124-10.104-3.229c-5.789,2.985-12.033,4.499-18.561,4.499 c-22.374,0-40.577-18.203-40.577-40.577s18.203-40.577,40.577-40.577s40.577,18.203,40.577,40.577 c0,6.528-1.514,12.772-4.498,18.56c-1.898,3.681-0.453,8.204,3.229,10.104c3.68,1.895,8.203,0.455,10.104-3.229 c4.034-7.821,6.166-16.616,6.166-25.435C290.577,231.607,265.646,206.676,235,206.676z"}),l.createElement("path",{d:"M358.087,234.753h-31.543c-1.851-6.15-4.322-12.095-7.387-17.767l22.324-22.323c1.406-1.407,2.196-3.314,2.196-5.304 s-0.79-3.896-2.196-5.304l-28.284-28.284c-2.93-2.928-7.678-2.928-10.607,0l-22.323,22.324c-5.672-3.064-11.616-5.536-17.767-7.387 v-31.543c0-4.143-3.357-7.5-7.5-7.5h-40c-4.143,0-7.5,3.357-7.5,7.5v31.543c-6.15,1.851-12.095,4.322-17.767,7.387l-22.323-22.324 c-2.93-2.928-7.678-2.928-10.607,0l-28.284,28.284c-1.406,1.407-2.196,3.314-2.196,5.304s0.79,3.896,2.196,5.304l22.324,22.323 c-3.064,5.672-5.536,11.616-7.387,17.767h-31.543c-4.143,0-7.5,3.357-7.5,7.5v40c0,4.143,3.357,7.5,7.5,7.5h31.544 c1.851,6.152,4.321,12.096,7.386,17.767l-22.323,22.322c-1.407,1.407-2.197,3.314-2.197,5.304s0.79,3.896,2.196,5.304 l28.284,28.284c2.929,2.927,7.678,2.929,10.606,0l22.324-22.323c5.672,3.064,11.616,5.536,17.767,7.387v31.542 c0,4.143,3.357,7.5,7.5,7.5h40c4.143,0,7.5-3.357,7.5-7.5v-31.542c6.15-1.851,12.095-4.322,17.767-7.387l22.324,22.323 c2.928,2.928,7.677,2.928,10.606,0l28.284-28.284c1.406-1.407,2.196-3.314,2.196-5.304s-0.79-3.896-2.197-5.304l-22.323-22.322 c3.064-5.672,5.535-11.615,7.386-17.767h31.544c4.143,0,7.5-3.357,7.5-7.5v-40C365.587,238.11,362.229,234.753,358.087,234.753z M350.587,274.753h-29.802c-3.486,0-6.513,2.402-7.305,5.798c-1.995,8.563-5.383,16.712-10.069,24.223 c-1.848,2.961-1.408,6.805,1.061,9.273l21.1,21.099l-17.678,17.678l-21.101-21.1c-2.468-2.467-6.31-2.906-9.272-1.06 c-7.511,4.687-15.661,8.074-24.223,10.069c-3.396,0.792-5.798,3.818-5.798,7.305v29.801h-25v-29.801 c0-3.486-2.402-6.513-5.798-7.305c-8.562-1.995-16.712-5.383-24.223-10.069c-2.962-1.847-6.807-1.406-9.272,1.06l-21.101,21.1 l-17.678-17.678l21.1-21.099c2.469-2.469,2.908-6.313,1.06-9.274c-4.685-7.508-8.072-15.657-10.068-24.222 c-0.792-3.396-3.818-5.798-7.305-5.798h-29.802v-25h29.802c3.486,0,6.513-2.402,7.305-5.798 c1.995-8.562,5.383-16.712,10.069-24.223c1.848-2.961,1.408-6.805-1.06-9.273l-21.101-21.1l17.678-17.678l21.1,21.101 c2.468,2.468,6.312,2.908,9.273,1.06c7.511-4.687,15.661-8.074,24.223-10.069c3.396-0.792,5.798-3.818,5.798-7.305v-29.802h25 v29.802c0,3.486,2.402,6.513,5.798,7.305c8.562,1.995,16.712,5.383,24.223,10.069c2.962,1.848,6.807,1.405,9.273-1.06l21.1-21.101 l17.678,17.678l-21.101,21.1c-2.468,2.469-2.907,6.313-1.06,9.273c4.687,7.511,8.074,15.661,10.069,24.223 c0.792,3.396,3.818,5.798,7.305,5.798h29.802V274.753z"})))},{title:"Declarative",subTitle:"Less Maintenance and No Logic Bugs",description:"You want an internal tool that is auto-generated which means zero maintenance zero logic bugs.",svg:l.createElement("svg",{className:"w-10 h-10 mb-2 text-primary md:w-12 md:h-12 dark:text-primary-light",fill:"currentColor",viewBox:"0 0 297 297",xmlns:"http://www.w3.org/2000/svg"},l.createElement("g",null,l.createElement("rect",{width:"16",x:"140.5",height:"33"}),l.createElement("rect",{width:"33",x:"41.5",y:"99",height:"16"}),l.createElement("rect",{width:"33",x:"222.5",y:"99",height:"16"}),l.createElement("path",{d:"m78.829,25.682l23.335,23.335-11.313,11.314-23.335-23.335 11.313-11.314zm140.008,162.638l-23.335-23.335 11.314-11.314 23.335,23.335-11.314,11.314zm-140.017-.004l-11.314-11.314 23.335-23.335 11.314,11.314-23.335,23.335zm140.007-162.63l11.313,11.314-23.334,23.334-11.313-11.314 23.334-23.334z"}),l.createElement("circle",{cx:"183.908",cy:"23.323",r:"8.25"}),l.createElement("circle",{cx:"114.644",cy:"22.958",r:"8.251"}),l.createElement("circle",{cx:"65.408",cy:"71.675",r:"8.25"}),l.createElement("circle",{cx:"65.041",cy:"140.939",r:"8.25"}),l.createElement("circle",{cx:"113.759",cy:"190.175",r:"8.25"}),l.createElement("circle",{cx:"183.023",cy:"190.541",r:"8.251"}),l.createElement("circle",{cx:"232.26",cy:"141.823",r:"8.25"}),l.createElement("circle",{cx:"232.625",cy:"72.56",r:"8.251"}),l.createElement("polygon",{points:"183.634,154.63 177.04,115.692 205.371,88.116 166.297,82.436 148.823,47.009 131.343,82.436 92.25,88.116 120.542,115.692 113.698,154.63 140.5,140.452 140.5,297 156.5,297 156.5,140.452 "})))}];function d(){return l.createElement("section",{className:"bg-white dark:bg-gray-900"},l.createElement("div",{className:"items-center max-w-screen-xl px-4 py-8 mx-auto"},l.createElement("div",{className:"mb-8 text-center"},l.createElement("p",{className:"text-lg font-medium text-primary dark:text-primary-light"},"Why you should try Hadmean"),l.createElement("h2",{className:"mt-3 mb-4 text-3xl font-extrabold tracking-tight text-gray-900 md:text-3xl dark:text-white"},"You want powerful internal tools without the headache of building and maintenance.")),l.createElement("div",{className:"space-y-8 pt-10 md:grid md:grid-cols-3 md:gap-12 md:space-y-0"},o.map((e=>{let{title:t,description:a,subTitle:r,svg:n}=e;return l.createElement("div",{key:t,className:"text-center"},n,l.createElement("h3",{className:"mb-2 text-2xl font-bold dark:text-white"},t),l.createElement("p",{className:"font-light text-gray-500 dark:text-gray-400"},r),l.createElement("p",{className:"font-light text-gray-500 sm:text-xl dark:text-gray-400"},a))})))))}function g(){return l.createElement("section",{className:"bg-gray-50 dark:bg-gray-800"},l.createElement("div",{className:"max-w-screen-xl px-4 py-8 pt-0 mx-auto"},l.createElement("h2",{className:"m-6 text-3xl font-extrabold tracking-tight text-center text-gray-900 lg:m-8 lg:text-3xl dark:text-white"},"Supported Actions"),l.createElement("div",{className:"grid grid-cols-2 gap-8 text-gray-500 sm:gap-12 sm:grid-cols-3 lg:grid-cols-6 dark:text-gray-400"},l.createElement("div",{className:"text-center"},l.createElement("svg",{width:"100px",height:"100px",fill:"currentColor",viewBox:"0 0 512.002 512.002","enable-background":"new 0 0 512.002 512.002"},l.createElement("g",null,l.createElement("g",null,l.createElement("path",{d:"M437.333,213.334c5.888,0,10.667-4.779,10.667-10.667v-128c0-29.397-23.915-53.333-53.333-53.333H53.333 C23.915,21.334,0,45.271,0,74.668v362.667c0,29.397,23.915,53.333,53.333,53.333h341.333c29.419,0,53.333-23.936,53.333-53.333 v-64c0-5.888-4.779-10.667-10.667-10.667c-5.888,0-10.667,4.779-10.667,10.667v64c0,17.643-14.357,32-32,32H53.333 c-17.643,0-32-14.357-32-32V128.001h405.333v74.667C426.667,208.556,431.445,213.334,437.333,213.334z M21.333,106.668v-32 c0-17.643,14.357-32,32-32h341.333c17.643,0,32,14.357,32,32v32H21.333z"}))),l.createElement("g",null,l.createElement("g",null,l.createElement("circle",{cx:"53.333",cy:"74.668",r:"10.667"}))),l.createElement("g",null,l.createElement("g",null,l.createElement("circle",{cx:"96",cy:"74.668",r:"10.667"}))),l.createElement("g",null,l.createElement("g",null,l.createElement("circle",{cx:"138.667",cy:"74.668",r:"10.667"}))),l.createElement("g",null,l.createElement("g",null,l.createElement("path",{d:"M117.333,234.668c-5.888,0-10.667,4.779-10.667,10.667v32H64v-32c0-5.888-4.779-10.667-10.667-10.667 s-10.667,4.779-10.667,10.667v85.333c0,5.888,4.779,10.667,10.667,10.667S64,336.556,64,330.668v-32h42.667v32 c0,5.888,4.779,10.667,10.667,10.667S128,336.556,128,330.668v-85.333C128,239.446,123.221,234.668,117.333,234.668z"}))),l.createElement("g",null,l.createElement("g",null,l.createElement("path",{d:"M202.667,234.668H160c-5.888,0-10.667,4.779-10.667,10.667s4.779,10.667,10.667,10.667h10.667v74.667 c0,5.888,4.779,10.667,10.667,10.667S192,336.556,192,330.668v-74.667h10.667c5.888,0,10.667-4.779,10.667-10.667 S208.555,234.668,202.667,234.668z"}))),l.createElement("g",null,l.createElement("g",null,l.createElement("path",{d:"M288,234.668h-42.667c-5.888,0-10.667,4.779-10.667,10.667s4.779,10.667,10.667,10.667H256v74.667 c0,5.888,4.779,10.667,10.667,10.667s10.667-4.779,10.667-10.667v-74.667H288c5.888,0,10.667-4.779,10.667-10.667 S293.888,234.668,288,234.668z"}))),l.createElement("g",null,l.createElement("g",null,l.createElement("path",{d:"M352,234.668h-21.333c-5.888,0-10.667,4.779-10.667,10.667v85.333c0,5.888,4.779,10.667,10.667,10.667 s10.667-4.779,10.667-10.667v-32H352c17.643,0,32-14.357,32-32C384,249.025,369.643,234.668,352,234.668z M352,277.334h-10.667 v-21.333H352c5.867,0,10.667,4.779,10.667,10.667S357.867,277.334,352,277.334z"}))),l.createElement("g",null,l.createElement("g",null,l.createElement("path",{d:"M503.915,234.988c-5.803-1.493-11.52,2.027-12.928,7.765l-21.333,85.333c-1.429,5.717,2.027,11.499,7.765,12.928 c0.875,0.213,1.728,0.32,2.581,0.32c4.8,0,9.152-3.221,10.347-8.085l21.333-85.333 C513.109,242.198,509.653,236.417,503.915,234.988z"}))),l.createElement("g",null,l.createElement("g",null,l.createElement("path",{d:"M461.248,234.988c-5.824-1.493-11.52,2.027-12.928,7.765l-21.333,85.333c-1.429,5.717,2.027,11.499,7.765,12.928 c0.875,0.213,1.728,0.32,2.581,0.32c4.8,0,9.152-3.221,10.347-8.085l21.333-85.333 C470.443,242.198,466.987,236.417,461.248,234.988z"}))),l.createElement("g",null,l.createElement("g",null,l.createElement("circle",{cx:"416",cy:"266.668",r:"10.667"}))),l.createElement("g",null,l.createElement("g",null,l.createElement("circle",{cx:"416",cy:"309.335",r:"10.667"})))),l.createElement("h3",{className:"mt-3"},"HTTP")),l.createElement("div",{className:"text-center"},l.createElement("svg",{width:"100px",height:"100px","enable-background":"new 0 0 2447.6 2452.5",viewBox:"0 0 2447.6 2452.5",xmlns:"http://www.w3.org/2000/svg"},l.createElement("g",{"clip-rule":"evenodd","fill-rule":"evenodd"},l.createElement("path",{d:"m897.4 0c-135.3.1-244.8 109.9-244.7 245.2-.1 135.3 109.5 245.1 244.8 245.2h244.8v-245.1c.1-135.3-109.5-245.1-244.9-245.3.1 0 .1 0 0 0m0 654h-652.6c-135.3.1-244.9 109.9-244.8 245.2-.2 135.3 109.4 245.1 244.7 245.3h652.7c135.3-.1 244.9-109.9 244.8-245.2.1-135.4-109.5-245.2-244.8-245.3z",fill:"#36c5f0"}),l.createElement("path",{d:"m2447.6 899.2c.1-135.3-109.5-245.1-244.8-245.2-135.3.1-244.9 109.9-244.8 245.2v245.3h244.8c135.3-.1 244.9-109.9 244.8-245.3zm-652.7 0v-654c.1-135.2-109.4-245-244.7-245.2-135.3.1-244.9 109.9-244.8 245.2v654c-.2 135.3 109.4 245.1 244.7 245.3 135.3-.1 244.9-109.9 244.8-245.3z",fill:"#2eb67d"}),l.createElement("path",{d:"m1550.1 2452.5c135.3-.1 244.9-109.9 244.8-245.2.1-135.3-109.5-245.1-244.8-245.2h-244.8v245.2c-.1 135.2 109.5 245 244.8 245.2zm0-654.1h652.7c135.3-.1 244.9-109.9 244.8-245.2.2-135.3-109.4-245.1-244.7-245.3h-652.7c-135.3.1-244.9 109.9-244.8 245.2-.1 135.4 109.4 245.2 244.7 245.3z",fill:"#ecb22e"}),l.createElement("path",{d:"m0 1553.2c-.1 135.3 109.5 245.1 244.8 245.2 135.3-.1 244.9-109.9 244.8-245.2v-245.2h-244.8c-135.3.1-244.9 109.9-244.8 245.2zm652.7 0v654c-.2 135.3 109.4 245.1 244.7 245.3 135.3-.1 244.9-109.9 244.8-245.2v-653.9c.2-135.3-109.4-245.1-244.7-245.3-135.4 0-244.9 109.8-244.8 245.1 0 0 0 .1 0 0",fill:"#e01e5a"}))),l.createElement("h3",{className:"mt-3"},"Slack")),l.createElement("div",{className:"text-center"},l.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 48 48",width:"100px",height:"100px"},l.createElement("path",{fill:"#1e88e5",d:"M34,42H14c-4.411,0-8-3.589-8-8V14c0-4.411,3.589-8,8-8h20c4.411,0,8,3.589,8,8v20 C42,38.411,38.411,42,34,42z"}),l.createElement("path",{fill:"#fff",d:"M35.926,17.488L29.414,24l6.511,6.511C35.969,30.347,36,30.178,36,30V18 C36,17.822,35.969,17.653,35.926,17.488z M26.688,23.899l7.824-7.825C34.347,16.031,34.178,16,34,16H14 c-0.178,0-0.347,0.031-0.512,0.074l7.824,7.825C22.795,25.38,25.205,25.38,26.688,23.899z M24,27.009 c-1.44,0-2.873-0.542-3.99-1.605l-6.522,6.522C13.653,31.969,13.822,32,14,32h20c0.178,0,0.347-0.031,0.512-0.074l-6.522-6.522 C26.873,26.467,25.44,27.009,24,27.009z M12.074,17.488C12.031,17.653,12,17.822,12,18v12c0,0.178,0.031,0.347,0.074,0.512 L18.586,24L12.074,17.488z"})),l.createElement("h3",{className:"mt-3"},"SMTP")),l.createElement("div",{className:"text-center"},l.createElement("svg",{width:"96",height:"96",viewBox:"0 0 96 96",fill:"none",xmlns:"http://www.w3.org/2000/svg"},l.createElement("path",{d:"M46.08 36.16C46.08 41.6 41.6 46.08 36.16 46.08C30.72 46.08 26.24 41.6 26.24 36.16C26.24 30.72 30.72 26.24 36.16 26.24C41.6 26.24 46.08 30.72 46.08 36.16ZM36.16 49.92C30.72 49.92 26.24 54.4 26.24 59.84C26.24 65.28 30.72 69.76 36.16 69.76C41.6 69.76 46.08 65.28 46.08 59.84C46.08 54.4 41.6 49.92 36.16 49.92ZM96 48C96 74.56 74.56 96 48 96C21.44 96 0 74.56 0 48C0 21.44 21.44 0 48 0C74.56 0 96 21.44 96 48ZM83.2 48C83.2 28.48 67.52 12.8 48 12.8C28.48 12.8 12.8 28.48 12.8 48C12.8 67.52 28.48 83.2 48 83.2C67.52 83.2 83.2 67.52 83.2 48ZM59.84 49.92C54.4 49.92 49.92 54.4 49.92 59.84C49.92 65.28 54.4 69.76 59.84 69.76C65.28 69.76 69.76 65.28 69.76 59.84C69.76 54.4 65.28 49.92 59.84 49.92ZM59.84 26.24C54.4 26.24 49.92 30.72 49.92 36.16C49.92 41.6 54.4 46.08 59.84 46.08C65.28 46.08 69.76 41.6 69.76 36.16C69.76 30.72 65.28 26.24 59.84 26.24Z",fill:"#F22F46"})),l.createElement("h3",{className:"mt-3"},"Twilio")),l.createElement("div",{className:"text-center"},l.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 64 64",width:"100px",height:"100px"},l.createElement("path",{d:"M0 21.25h21.374v21.374H0z",fill:"#fff"}),l.createElement("path",{d:"M0 21.25h21.374v21.374H0z",fill:"#99e1f4","enable-background":"new "}),l.createElement("path",{d:"M21.374 42.626h21.25v21.25h-21.25z",fill:"#fff"}),l.createElement("path",{d:"M21.374 42.626h21.25v21.25h-21.25z",fill:"#99e1f4","enable-background":"new "}),l.createElement("path",{d:"M0 63.877h21.374V64H0zm0-21.25h21.374v21.25H0z",fill:"#1a82e2"}),l.createElement("path",{d:"M21.374 0h21.25v21.25h-21.25zm21.252 21.374H64v21.25H42.626z",fill:"#00b3e3"}),l.createElement("path",{d:"M21.374 42.626h21.25V21.25h-21.25z",fill:"#009dd9"}),l.createElement("g",{fill:"#1a82e2"},l.createElement("path",{d:"M42.626 0H64v21.25H42.626z"}),l.createElement("path",{d:"M42.626 21.25H64v.123H42.626z"}))),l.createElement("h3",{className:"mt-3"},"SendGrid")),l.createElement("div",{className:"text-center"},l.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 64 64",height:"100px",width:"100px"},l.createElement("path",{d:"M32.066 19.956c-6.69 0-12.13 5.433-12.13 12.1s5.443 12.1 12.13 12.1 12.13-5.433 12.13-12.1-5.443-12.1-12.13-12.1zm-18.885 12.1c0-10.408 8.46-18.852 18.885-18.852S50.95 21.658 50.95 32.065c0 .72-.066 1.375-.13 2.03-.13 1.833 1.18 3.207 3.016 3.207 3.082 0 3.4-3.993 3.4-5.302 0-13.943-11.28-25.2-25.246-25.2S6.754 18.057 6.754 32 18.033 57.2 32 57.2c7.4 0 14.033-3.207 18.69-8.248l5.18 4.32c-5.836 6.546-14.36 10.67-23.87 10.67C14.295 63.944 0 49.608 0 32 0 14.326 14.36.056 32 .056 49.705.056 64 14.392 64 32c0 7.07-3.4 12.83-10.164 12.83-3.016 0-4.787-1.375-5.836-2.88-3.344 5.368-9.246 8.902-16.066 8.902-10.295.065-18.754-8.38-18.754-18.786zm18.885-5.564c3.082 0 5.574 2.487 5.574 5.498 0 3.077-2.492 5.564-5.574 5.564S26.492 35.077 26.492 32c.066-3.01 2.492-5.498 5.574-5.498z",fill:"#c02126"})),l.createElement("h3",{className:"mt-3"},"MailGun"))),l.createElement("div",{className:"pt-6 text-center mt-6 space-y-4 border-t border-gray-200 dark:border-gray-700"},l.createElement(r.Z,{href:"https://github.com/orgs/hadmean/projects/1/views/4",className:"inline-flex items-center text-base font-medium text-primary hover:text-primary dark:text-primary-light dark:hover:text-primary"},"Check Upcoming Integrations",l.createElement("svg",{className:"w-5 h-5 ml-1",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},l.createElement("path",{fillRule:"evenodd",d:"M12.293 5.293a1 1 0 011.414 0l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414-1.414L14.586 11H3a1 1 0 110-2h11.586l-2.293-2.293a1 1 0 010-1.414z",clipRule:"evenodd"}))))))}function h(){return l.createElement("section",{className:"bg-gray-50 dark:bg-gray-800"},l.createElement("div",{className:"max-w-screen-xl px-4 py-8 mx-auto space-y-12 lg:space-y-20 lg:py-24 lg:px-6"},l.createElement("div",{className:"items-center gap-8 lg:grid lg:grid-cols-2 xl:gap-16"},l.createElement("div",{className:"text-gray-500 sm:text-lg dark:text-gray-400"},l.createElement("h2",{className:"mb-4 text-3xl font-extrabold tracking-tight text-gray-900 dark:text-white"},"Your precious engineering resources should focus on exciting features not building or maintaining admin apps."),l.createElement("p",{className:"mb-8 font-light lg:text-xl"},"Your database already has good information on what your internal tool should be doing. Stop using your engineering resources to build what can be auto-generated."),l.createElement("ul",{role:"list",className:"pt-8 space-y-5 border-t border-gray-200 my-7 dark:border-gray-700"},["No Javascript","No SQL","No tutorial","No drag-and-drop","No learning curve","No maintenance"].map((e=>l.createElement("li",{key:e,className:"flex space-x-3"},l.createElement("svg",{className:"flex-shrink-0 w-5 h-5 text-primary dark:text-primary-light",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},l.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",clipRule:"evenodd"})),l.createElement("span",{className:"text-base font-medium leading-tight text-gray-900 dark:text-white"},e))))),l.createElement("p",{className:"mb-8 font-light lg:text-xl"},"Hadmean is literal"," ",l.createElement("span",{className:"text-lg text-bold font-medium text-primary dark:text-primary-light"}," ","eating your cake and having it."," "),"Just build your database schema properly and Hadmean will do the rest.")),l.createElement("img",{className:"hidden w-full mb-4 rounded-lg lg:mb-0 lg:flex",src:"/img/features/1.png",alt:"dashboard feature image"})),l.createElement("div",{className:"items-center gap-8 lg:grid lg:grid-cols-2 xl:gap-16"},l.createElement("img",{className:"hidden w-full mb-4 rounded-lg lg:mb-0 lg:flex",src:"/img/features/2.png",alt:"feature image 2"}),l.createElement("div",{className:"text-gray-500 sm:text-lg dark:text-gray-400"},l.createElement("h2",{className:"mb-4 text-3xl font-extrabold tracking-tight text-gray-900 dark:text-white"},"Hadmean is fully featured."),l.createElement("p",{className:"mb-8 font-light lg:text-xl"},"As opposed to building from the ground up, You will be tearing down as Hadmean gives you too much features so you will be removing some of it."),l.createElement("ul",{role:"list",className:"pt-8 space-y-5 border-t border-gray-200 my-7 dark:border-gray-700"},["Roles and Permissions","Dashboard Builder","Full CRUD","Form Validation","Relationships","Powerful Filters"].map((e=>l.createElement("li",{className:"flex space-x-3",key:e},l.createElement("svg",{className:"flex-shrink-0 w-5 h-5 text-primary dark:text-primary-light",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},l.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z",clipRule:"evenodd"})),l.createElement("span",{className:"text-base font-medium leading-tight text-gray-900 dark:text-white"},e))))),l.createElement("p",{className:"font-light lg:text-xl"},"All the features needed to operate your internal operations and process without the burden of building and maintenance.")))))}const C="https://twitter.com/hadmeanHQ",p="https://github.com/hadmean/hadmean",u="https://discord.gg/aV6DxwXhzN",x="https://demo.hadmean.com";function E(){return l.createElement("section",{className:"bg-white dark:bg-gray-900"},l.createElement("div",{className:"grid max-w-screen-xl px-4 pt-20 pb-8 mx-auto lg:gap-8 xl:gap-0 lg:py-16 lg:grid-cols-12 lg:pt-28"},l.createElement("div",{className:"mr-auto place-self-center lg:col-span-6"},l.createElement("h1",{className:"max-w-2xl mb-4 text-4xl font-extrabold leading-none tracking-tight md:text-5xl xl:text-6xl dark:text-white"},"Generate admin apps with ease in seconds"),l.createElement("p",{className:"max-w-2xl mb-6 font-light text-gray-500 lg:mb-8 md:text-lg lg:text-xl dark:text-gray-400"},l.createElement("span",{className:"text-lg font-medium text-primary dark:text-primary-light"},"Save ",l.createElement("b",null,"1000+")," engineering hours"," "),"generating your internal tools rather than building and maintaining them with your precious engineering resources.",l.createElement("br",null)),l.createElement("div",{className:"space-y-4 sm:flex sm:space-y-0 sm:space-x-4"},l.createElement(r.Z,{to:"/docs/installation/setup",className:"inline-flex text-white items-center justify-center bg-primary hover:bg-primary-dark hover:text-white w-full px-5 py-3 text-sm font-medium text-center border border-gray-200 rounded-lg sm:w-auto focus:ring-4 focus:ring-gray-100 dark:text-white dark:border-gray-700 dark:focus:ring-gray-800"},"$ npx hadmean"),l.createElement(r.Z,{target:"_blank",href:x,className:"inline-flex items-center justify-center w-full px-5 py-3 text-sm font-medium text-center text-gray-900 border border-gray-200 rounded-lg sm:w-auto hover:bg-white-100 focus:ring-4 focus:ring-gray-100 dark:text-white dark:border-gray-700 dark:hover:bg-white dark:focus:ring-gray-800"},l.createElement("svg",{className:"w-4 h-4 mr-2",viewBox:"0 0 24 24",stroke:"currentColor","stroke-width":"2",fill:"none"},l.createElement("circle",{cx:"12",cy:"12",r:"10"}),l.createElement("polygon",{points:"10 8 16 12 10 16 10 8"})),"Live Demo"))),l.createElement("div",{className:"hidden lg:mt-0 lg:col-span-6 lg:flex overflow-hidden"},l.createElement("img",{src:"/img/hero.png",alt:"hero image",className:"mb-[-7%] rounded-xl shadow-2xl ring-1 ring-gray-900/10"}),l.createElement("div",{class:"relative","aria-hidden":"true"},l.createElement("div",{class:"absolute -inset-x-20 bottom-0 bg-gradient-to-t from-white pt-[7%]"})))))}function y(){return l.createElement("section",{className:"bg-gray-50 dark:bg-gray-800"},l.createElement("div",{className:"max-w-screen-xl px-4 p-8 mx-auto"},l.createElement("h2",{className:"m-6 text-3xl font-extrabold tracking-tight text-center text-gray-900 lg:m-8 lg:text-3xl dark:text-white"},"Supported Databases"),l.createElement("div",{className:"grid grid-cols-2 gap-8 text-gray-500 sm:gap-12 sm:grid-cols-3 lg:grid-cols-6 dark:text-gray-400"},l.createElement("div",{className:"text-center"},l.createElement("svg",{width:"100px",height:"100px",viewBox:"-4 0 264 264",xmlns:"http://www.w3.org/2000/svg"},l.createElement("path",{d:"M255.008 158.086c-1.535-4.649-5.556-7.887-10.756-8.664-2.452-.366-5.26-.21-8.583.475-5.792 1.195-10.089 1.65-13.225 1.738 11.837-19.985 21.462-42.775 27.003-64.228 8.96-34.689 4.172-50.492-1.423-57.64C233.217 10.847 211.614.683 185.552.372c-13.903-.17-26.108 2.575-32.475 4.549-5.928-1.046-12.302-1.63-18.99-1.738-12.537-.2-23.614 2.533-33.079 8.15-5.24-1.772-13.65-4.27-23.362-5.864-22.842-3.75-41.252-.828-54.718 8.685C6.622 25.672-.937 45.684.461 73.634c.444 8.874 5.408 35.874 13.224 61.48 4.492 14.718 9.282 26.94 14.237 36.33 7.027 13.315 14.546 21.156 22.987 23.972 4.731 1.576 13.327 2.68 22.368-4.85 1.146 1.388 2.675 2.767 4.704 4.048 2.577 1.625 5.728 2.953 8.875 3.74 11.341 2.835 21.964 2.126 31.027-1.848.056 1.612.099 3.152.135 4.482.06 2.157.12 4.272.199 6.25.537 13.374 1.447 23.773 4.143 31.049.148.4.347 1.01.557 1.657 1.345 4.118 3.594 11.012 9.316 16.411 5.925 5.593 13.092 7.308 19.656 7.308 3.292 0 6.433-.432 9.188-1.022 9.82-2.105 20.973-5.311 29.041-16.799 7.628-10.86 11.336-27.217 12.007-52.99.087-.729.167-1.425.244-2.088l.16-1.362 1.797.158.463.031c10.002.456 22.232-1.665 29.743-5.154 5.935-2.754 24.954-12.795 20.476-26.351"}),l.createElement("path",{d:"M237.906 160.722c-29.74 6.135-31.785-3.934-31.785-3.934 31.4-46.593 44.527-105.736 33.2-120.211-30.904-39.485-84.399-20.811-85.292-20.327l-.287.052c-5.876-1.22-12.451-1.946-19.842-2.067-13.456-.22-23.664 3.528-31.41 9.402 0 0-95.43-39.314-90.991 49.444.944 18.882 27.064 142.873 58.218 105.422 11.387-13.695 22.39-25.274 22.39-25.274 5.464 3.63 12.006 5.482 18.864 4.817l.533-.452c-.166 1.7-.09 3.363.213 5.332-8.026 8.967-5.667 10.541-21.711 13.844-16.235 3.346-6.698 9.302-.471 10.86 7.549 1.887 25.013 4.561 36.813-11.958l-.47 1.885c3.144 2.519 5.352 16.383 4.982 28.952-.37 12.568-.617 21.197 1.86 27.937 2.479 6.74 4.948 21.905 26.04 17.386 17.623-3.777 26.756-13.564 28.027-29.89.901-11.606 2.942-9.89 3.07-20.267l1.637-4.912c1.887-15.733.3-20.809 11.157-18.448l2.64.232c7.99.363 18.45-1.286 24.589-4.139 13.218-6.134 21.058-16.377 8.024-13.686h.002",fill:"#336791"}),l.createElement("path",{d:"M108.076 81.525c-2.68-.373-5.107-.028-6.335.902-.69.523-.904 1.129-.962 1.546-.154 1.105.62 2.327 1.096 2.957 1.346 1.784 3.312 3.01 5.258 3.28.282.04.563.058.842.058 3.245 0 6.196-2.527 6.456-4.392.325-2.336-3.066-3.893-6.355-4.35M196.86 81.599c-.256-1.831-3.514-2.353-6.606-1.923-3.088.43-6.082 1.824-5.832 3.659.2 1.427 2.777 3.863 5.827 3.863.258 0 .518-.017.78-.054 2.036-.282 3.53-1.575 4.24-2.32 1.08-1.136 1.706-2.402 1.591-3.225",fill:"#FFF"}),l.createElement("path",{d:"M247.802 160.025c-1.134-3.429-4.784-4.532-10.848-3.28-18.005 3.716-24.453 1.142-26.57-.417 13.995-21.32 25.508-47.092 31.719-71.137 2.942-11.39 4.567-21.968 4.7-30.59.147-9.463-1.465-16.417-4.789-20.665-13.402-17.125-33.072-26.311-56.882-26.563-16.369-.184-30.199 4.005-32.88 5.183-5.646-1.404-11.801-2.266-18.502-2.376-12.288-.199-22.91 2.743-31.704 8.74-3.82-1.422-13.692-4.811-25.765-6.756-20.872-3.36-37.458-.814-49.294 7.571-14.123 10.006-20.643 27.892-19.38 53.16.425 8.501 5.269 34.653 12.913 59.698 10.062 32.964 21 51.625 32.508 55.464 1.347.449 2.9.763 4.613.763 4.198 0 9.345-1.892 14.7-8.33a529.832 529.832 0 0 1 20.261-22.926c4.524 2.428 9.494 3.784 14.577 3.92.01.133.023.266.035.398a117.66 117.66 0 0 0-2.57 3.175c-3.522 4.471-4.255 5.402-15.592 7.736-3.225.666-11.79 2.431-11.916 8.435-.136 6.56 10.125 9.315 11.294 9.607 4.074 1.02 7.999 1.523 11.742 1.523 9.103 0 17.114-2.992 23.516-8.781-.197 23.386.778 46.43 3.586 53.451 2.3 5.748 7.918 19.795 25.664 19.794 2.604 0 5.47-.303 8.623-.979 18.521-3.97 26.564-12.156 29.675-30.203 1.665-9.645 4.522-32.676 5.866-45.03 2.836.885 6.487 1.29 10.434 1.289 8.232 0 17.731-1.749 23.688-4.514 6.692-3.108 18.768-10.734 16.578-17.36zm-44.106-83.48c-.061 3.647-.563 6.958-1.095 10.414-.573 3.717-1.165 7.56-1.314 12.225-.147 4.54.42 9.26.968 13.825 1.108 9.22 2.245 18.712-2.156 28.078a36.508 36.508 0 0 1-1.95-4.009c-.547-1.326-1.735-3.456-3.38-6.404-6.399-11.476-21.384-38.35-13.713-49.316 2.285-3.264 8.084-6.62 22.64-4.813zm-17.644-61.787c21.334.471 38.21 8.452 50.158 23.72 9.164 11.711-.927 64.998-30.14 110.969a171.33 171.33 0 0 0-.886-1.117l-.37-.462c7.549-12.467 6.073-24.802 4.759-35.738-.54-4.488-1.05-8.727-.92-12.709.134-4.22.692-7.84 1.232-11.34.663-4.313 1.338-8.776 1.152-14.037.139-.552.195-1.204.122-1.978-.475-5.045-6.235-20.144-17.975-33.81-6.422-7.475-15.787-15.84-28.574-21.482 5.5-1.14 13.021-2.203 21.442-2.016zM66.674 175.778c-5.9 7.094-9.974 5.734-11.314 5.288-8.73-2.912-18.86-21.364-27.791-50.624-7.728-25.318-12.244-50.777-12.602-57.916-1.128-22.578 4.345-38.313 16.268-46.769 19.404-13.76 51.306-5.524 64.125-1.347-.184.182-.376.352-.558.537-21.036 21.244-20.537 57.54-20.485 59.759-.002.856.07 2.068.168 3.735.362 6.105 1.036 17.467-.764 30.334-1.672 11.957 2.014 23.66 10.111 32.109a36.275 36.275 0 0 0 2.617 2.468c-3.604 3.86-11.437 12.396-19.775 22.426zm22.479-29.993c-6.526-6.81-9.49-16.282-8.133-25.99 1.9-13.592 1.199-25.43.822-31.79-.053-.89-.1-1.67-.127-2.285 3.073-2.725 17.314-10.355 27.47-8.028 4.634 1.061 7.458 4.217 8.632 9.645 6.076 28.103.804 39.816-3.432 49.229-.873 1.939-1.698 3.772-2.402 5.668l-.546 1.466c-1.382 3.706-2.668 7.152-3.465 10.424-6.938-.02-13.687-2.984-18.819-8.34zm1.065 37.9c-2.026-.506-3.848-1.385-4.917-2.114.893-.42 2.482-.992 5.238-1.56 13.337-2.745 15.397-4.683 19.895-10.394 1.031-1.31 2.2-2.794 3.819-4.602l.002-.002c2.411-2.7 3.514-2.242 5.514-1.412 1.621.67 3.2 2.702 3.84 4.938.303 1.056.643 3.06-.47 4.62-9.396 13.156-23.088 12.987-32.921 10.526zm69.799 64.952c-16.316 3.496-22.093-4.829-25.9-14.346-2.457-6.144-3.665-33.85-2.808-64.447.011-.407-.047-.8-.159-1.17a15.444 15.444 0 0 0-.456-2.162c-1.274-4.452-4.379-8.176-8.104-9.72-1.48-.613-4.196-1.738-7.46-.903.696-2.868 1.903-6.107 3.212-9.614l.549-1.475c.618-1.663 1.394-3.386 2.214-5.21 4.433-9.848 10.504-23.337 3.915-53.81-2.468-11.414-10.71-16.988-23.204-15.693-7.49.775-14.343 3.797-17.761 5.53-.735.372-1.407.732-2.035 1.082.954-11.5 4.558-32.992 18.04-46.59 8.489-8.56 19.794-12.788 33.568-12.56 27.14.444 44.544 14.372 54.366 25.979 8.464 10.001 13.047 20.076 14.876 25.51-13.755-1.399-23.11 1.316-27.852 8.096-10.317 14.748 5.644 43.372 13.315 57.129 1.407 2.521 2.621 4.7 3.003 5.626 2.498 6.054 5.732 10.096 8.093 13.046.724.904 1.426 1.781 1.96 2.547-4.166 1.201-11.649 3.976-10.967 17.847-.55 6.96-4.461 39.546-6.448 51.059-2.623 15.21-8.22 20.875-23.957 24.25zm68.104-77.936c-4.26 1.977-11.389 3.46-18.161 3.779-7.48.35-11.288-.838-12.184-1.569-.42-8.644 2.797-9.547 6.202-10.503.535-.15 1.057-.297 1.561-.473.313.255.656.508 1.032.756 6.012 3.968 16.735 4.396 31.874 1.271l.166-.033c-2.042 1.909-5.536 4.471-10.49 6.772z",fill:"#FFF"})),l.createElement("h3",{className:"mt-3"},"PostgreSQL")),l.createElement("div",{className:"text-center"},l.createElement("svg",{width:"100px",height:"100px",viewBox:"0 0 256 252",xmlns:"http://www.w3.org/2000/svg"},l.createElement("path",{d:"M235.648 194.212c-13.918-.347-24.705 1.045-33.752 4.872-2.61 1.043-6.786 1.044-7.134 4.35 1.392 1.392 1.566 3.654 2.784 5.567 2.09 3.479 5.741 8.177 9.047 10.614 3.653 2.783 7.308 5.566 11.134 8.002 6.786 4.176 14.442 6.611 21.053 10.787 3.829 2.434 7.654 5.568 11.482 8.177 1.914 1.39 3.131 3.654 5.568 4.523v-.521c-1.219-1.567-1.567-3.828-2.784-5.568-1.738-1.74-3.48-3.306-5.22-5.046-5.045-6.784-11.308-12.7-18.093-17.571-5.567-3.828-17.747-9.047-20.008-15.485 0 0-.175-.173-.348-.347 3.827-.348 8.35-1.74 12.005-2.784 5.915-1.567 11.308-1.218 17.398-2.784 2.783-.696 5.567-1.566 8.35-2.436v-1.565c-3.13-3.132-5.392-7.307-8.698-10.265-8.873-7.657-18.617-15.137-28.707-21.4-5.394-3.48-12.354-5.742-18.095-8.699-2.086-1.045-5.567-1.566-6.784-3.306-3.133-3.827-4.873-8.872-7.134-13.396-5.044-9.57-9.917-20.182-14.267-30.272-3.13-6.786-5.044-13.572-8.872-19.834-17.92-29.577-37.406-47.497-67.33-65.07-6.438-3.653-14.093-5.219-22.27-7.132-4.348-.175-8.699-.522-13.048-.697-2.784-1.218-5.568-4.523-8.004-6.089C34.006 4.573 8.429-8.996 1.122 8.924c-4.698 11.308 6.96 22.442 10.96 28.185 2.96 4.001 6.786 8.524 8.874 13.048 1.218 2.956 1.565 6.09 2.783 9.221 2.785 7.653 5.393 16.18 9.048 23.314 1.914 3.653 4.001 7.48 6.437 10.786 1.392 1.913 3.827 2.784 4.35 5.915-2.435 3.48-2.61 8.7-4.003 13.049-6.263 19.66-3.826 44.017 5.046 58.457 2.783 4.348 9.395 13.92 18.268 10.265 7.83-3.131 6.09-13.048 8.35-21.747.524-2.09.176-3.48 1.219-4.872v.349c2.436 4.87 4.871 9.569 7.133 14.44 5.394 8.524 14.788 17.398 22.617 23.314 4.177 3.13 7.482 8.524 12.702 10.438v-.523h-.349c-1.044-1.566-2.61-2.261-4.001-3.48-3.131-3.13-6.612-6.958-9.047-10.438-7.306-9.744-13.745-20.53-19.486-31.665-2.783-5.392-5.22-11.308-7.481-16.701-1.045-2.09-1.045-5.22-2.784-6.263-2.61 3.827-6.437 7.133-8.351 11.83-3.304 7.481-3.653 16.702-4.871 26.27-.696.176-.349 0-.697.35-5.566-1.394-7.48-7.134-9.569-12.006-5.22-12.352-6.09-32.186-1.565-46.452 1.218-3.654 6.438-15.136 4.35-18.616-1.044-3.306-4.525-5.22-6.438-7.829-2.261-3.306-4.698-7.48-6.263-11.135-4.176-9.743-6.264-20.53-10.787-30.273-2.088-4.524-5.74-9.22-8.699-13.396-3.305-4.697-6.959-8.004-9.569-13.571-.869-1.913-2.088-5.045-.696-7.133.348-1.392 1.043-1.913 2.436-2.261 2.262-1.915 8.7.521 10.96 1.565 6.438 2.608 11.831 5.046 17.225 8.699 2.435 1.74 5.045 5.046 8.176 5.916h3.654c5.568 1.217 11.83.348 17.05 1.913 9.222 2.957 17.572 7.307 25.054 12.005 22.792 14.44 41.58 34.97 54.282 59.501 2.088 4 2.957 7.656 4.871 11.83 3.655 8.526 8.178 17.225 11.83 25.576 3.654 8.176 7.133 16.528 12.353 23.314 2.61 3.652 13.048 5.567 17.746 7.481 3.48 1.565 8.874 2.958 12.005 4.871 5.915 3.652 11.83 7.83 17.398 11.83 2.784 2.088 11.482 6.438 12.005 9.917z",fill:"#00546B"}),l.createElement("path",{d:"M58.186 43.022c-2.957 0-5.044.35-7.132.871v.348h.348c1.393 2.784 3.827 4.698 5.566 7.133 1.393 2.783 2.61 5.568 4.003 8.352.173-.175.347-.348.347-.348 2.437-1.741 3.654-4.524 3.654-8.7-1.044-1.217-1.218-2.435-2.088-3.653-1.043-1.741-3.306-2.61-4.698-4.003z",fill:"#00546B"})),l.createElement("h3",{className:"mt-3"},"MySQL")),l.createElement("div",{className:"text-center"},l.createElement("svg",{width:"100px",height:"100px",viewBox:"0 0 88 96",fill:"none",xmlns:"http://www.w3.org/2000/svg"},l.createElement("path",{d:"M55.5191 44.8197L36.2877 51.0913L19.5686 58.476L14.8847 59.7139C13.6972 60.8426 12.437 61.9891 11.095 63.1569C9.61977 64.4406 8.23243 65.6039 7.17754 66.4447C6.00287 67.381 4.25627 69.1141 3.36352 70.2253C2.03533 71.8786 0.996697 73.6416 0.550128 74.9974C-0.253294 77.4367 0.138148 79.9074 1.68765 82.1875C3.66698 85.1002 7.60729 88.0595 12.1899 90.0741C14.5275 91.1017 18.4721 92.4265 21.43 93.1734C26.3593 94.4182 35.8861 95.7706 41.1328 95.9716C42.1969 96.0123 43.6134 96.0085 43.6785 95.9655C43.7937 95.8894 44.6105 94.3428 45.5582 92.4069C48.7827 85.8199 51.1157 79.6448 52.3711 74.3709C53.1313 71.1775 53.7239 66.9193 54.1078 61.8703C54.2154 60.456 54.2543 55.739 54.1717 54.1358C54.0372 51.5269 53.8074 49.4005 53.4387 47.3137C53.3846 47.0079 53.3647 46.7389 53.3931 46.7146C53.4465 46.6687 53.6282 46.6104 55.9905 45.9238L55.5191 44.8197V44.8197ZM51.1241 47.3989C51.2989 47.3989 51.7636 51.8557 51.8845 54.6833C51.9102 55.2841 51.905 55.6687 51.8693 55.6687C51.7545 55.6687 49.4064 54.2899 47.742 53.2447C46.2884 52.3318 43.5301 50.4988 43.0915 50.1545C42.9531 50.0458 42.9678 50.0405 44.1561 49.6314C46.1779 48.9352 50.9713 47.3989 51.1241 47.3989ZM41.3274 50.6138C41.4517 50.6135 41.7901 50.8002 42.5897 51.3011C45.5893 53.1802 49.6512 55.441 51.3918 56.201C51.9315 56.4366 51.9931 56.3453 50.75 57.1895C48.1003 58.9888 44.8062 60.758 40.7617 62.5547C40.0568 62.8678 39.4597 63.1234 39.4356 63.1234C39.4116 63.1234 39.4903 62.7659 39.609 62.3266C40.5888 58.7023 41.1416 55.044 41.1571 52.1102C41.1648 50.6592 41.1652 50.6515 41.3031 50.6168C41.3096 50.6152 41.3192 50.6138 41.3274 50.6138V50.6138ZM39.3109 51.3833C39.3978 51.4705 39.3349 54.7219 39.2288 55.6079C38.9744 57.7334 38.5585 59.6991 37.8936 61.9342C37.7347 62.4683 37.5858 62.9287 37.5621 62.9561C37.5043 63.0231 35.5161 61.0859 34.8551 60.3192C33.7259 59.0092 32.8325 57.7079 32.1817 56.4261C31.8509 55.7745 31.3234 54.4879 31.3726 54.4521C31.596 54.2899 39.2564 51.3284 39.3109 51.3833ZM29.8124 55.1273C29.8302 55.1291 29.8441 55.134 29.8519 55.1425C29.8806 55.1741 29.9818 55.4103 30.077 55.6687C30.5401 56.9266 31.5815 58.7953 32.4858 59.9907C33.4732 61.2958 34.7604 62.6864 35.8376 63.6101C36.1834 63.9067 36.5061 64.1835 36.5523 64.2245C36.6445 64.3062 36.6755 64.2923 34.3046 65.1916C31.5569 66.2339 28.5643 67.2776 25.1285 68.3883C23.8191 68.8115 22.7109 69.1692 22.6679 69.1851C22.537 69.2337 22.5771 69.1531 22.9599 68.5555C24.6671 65.8902 27.2533 60.6764 28.6992 56.9887C28.95 56.3491 29.1886 55.7085 29.2314 55.5653C29.2943 55.3549 29.3563 55.2833 29.5538 55.1943C29.6631 55.145 29.7587 55.122 29.8124 55.1273ZM26.9016 56.3287C26.9403 56.3628 26.2033 57.9193 25.4782 59.3337C24.0719 62.0772 22.5214 64.777 20.4628 68.0719C20.1076 68.6405 19.7803 69.1602 19.7359 69.2247C19.6628 69.3308 19.6328 69.2958 19.4074 68.8475C18.9146 67.8674 18.5017 66.6307 18.2881 65.4806C18.0768 64.3423 18.1127 62.3717 18.3672 61.1495C18.5563 60.2415 18.5479 60.2615 18.9755 60.0424C20.8241 59.095 26.8414 56.2758 26.9016 56.3287ZM51.9727 57.3476V57.965C51.9696 61.2079 51.6234 65.6476 51.1211 68.8871C51.0329 69.4555 50.9566 69.9245 50.9507 69.9303C50.9449 69.936 50.5352 69.816 50.0413 69.6626C47.8592 68.9852 45.4935 67.9732 43.3592 66.8036C41.9458 66.0291 39.9015 64.7745 39.9588 64.7172C39.9744 64.7016 40.5765 64.3825 41.297 64.0085C44.1511 62.5271 46.8774 60.93 49.2475 59.3459C50.1368 58.7516 51.4674 57.7895 51.7628 57.5301L51.9727 57.3476ZM15.9249 61.6453C15.9841 61.6424 15.9691 61.7549 15.8762 62.2901C15.8116 62.6623 15.7387 63.3654 15.712 63.8503C15.5951 65.976 15.9398 67.5443 16.9955 69.69C17.289 70.2866 17.5186 70.7839 17.5065 70.7941C17.4008 70.8826 7.78786 73.6956 4.76564 74.523C3.86978 74.7682 3.08678 74.9843 3.02287 75.0035C2.918 75.0351 2.90865 75.0122 2.94682 74.7663C3.27785 72.6337 4.90463 69.8346 7.17754 67.4849C8.68864 65.9228 9.89857 64.9974 11.9557 63.823C13.4321 62.9801 15.7251 61.7151 15.8945 61.6513C15.9059 61.6471 15.9164 61.6457 15.9249 61.6453V61.6453ZM38.5992 65.7057C38.6084 65.6947 38.9645 65.8854 39.39 66.1315C42.495 67.9272 46.8278 69.6114 50.5219 70.4565L50.8565 70.5325L50.3972 70.788C48.4675 71.8588 42.1125 74.503 35.6216 76.9379C34.6741 77.2934 33.7495 77.6419 33.5686 77.7135C33.3877 77.7851 33.2401 77.8342 33.2401 77.8199C33.2401 77.8057 33.5078 77.2904 33.8363 76.6763C35.6584 73.2693 37.4773 69.129 38.4107 66.2562C38.5058 65.9633 38.5901 65.7166 38.5992 65.7057ZM36.2877 66.463C36.2977 66.473 36.1841 66.7782 36.0352 67.1382C34.7685 70.2014 33.1088 73.5431 30.9925 77.2968C30.4539 78.2521 29.9999 79.032 29.9827 79.0304C29.9654 79.0289 29.5274 78.7697 29.0094 78.4526C25.9268 76.5654 23.1995 74.2425 21.4087 71.9833L21.1532 71.6639L22.4823 71.299C27.2233 70.0002 31.2438 68.6113 35.2414 66.8888C35.8075 66.6449 36.2777 66.453 36.2877 66.463ZM50.6466 71.4754C50.6534 71.4768 50.6557 71.4816 50.6557 71.4875C50.6557 71.8107 49.9224 74.801 49.3114 76.9653C48.7989 78.7807 48.3686 80.2007 47.5716 82.7167C47.2197 83.828 46.9175 84.7349 46.8995 84.7302C46.8815 84.7255 46.797 84.7093 46.7109 84.6937C42.3923 83.9122 38.5242 82.8223 34.9008 81.3663C33.8871 80.959 32.4232 80.3106 32.3459 80.2349C32.3197 80.2092 33.1951 79.7969 34.2894 79.3194C40.9072 76.432 47.764 73.1438 50.1082 71.7339C50.3902 71.5643 50.5989 71.4656 50.6466 71.4754ZM17.5004 72.6099C17.5359 72.6435 15.6847 75.2934 13.0993 78.9118C12.2007 80.1695 11.1451 81.6518 10.7543 82.2058C10.3635 82.7597 9.77238 83.6365 9.43738 84.1554L8.82604 85.0982L8.17515 84.5508C7.41143 83.9095 6.07462 82.548 5.46823 81.7921C4.22035 80.2366 3.3748 78.5996 3.04111 77.0961C2.88706 76.402 2.88252 76.0483 3.02894 76.0042C3.24056 75.9404 7.12272 75.0265 10.7635 74.1823C12.7858 73.7134 15.1239 73.1645 15.9614 72.9627C16.7989 72.7609 17.4922 72.6021 17.5004 72.6099H17.5004ZM19.3618 73.3216L19.8302 73.8447C21.9242 76.1774 24.0539 77.9182 26.6522 79.4198C27.111 79.6849 27.4607 79.9154 27.4309 79.9338C27.3227 80.0006 18.4457 83.1569 14.3403 84.5873C12.025 85.394 10.1231 86.0517 10.1126 86.0502C10.1021 86.0487 9.97094 85.9629 9.82365 85.8586L9.556 85.667L9.97571 85.0617C11.3379 83.0886 13.0493 80.9188 16.7948 76.4117L19.3618 73.3216ZM30.962 81.6127C30.9723 81.5999 31.6213 81.83 32.4067 82.1237C34.2999 82.8316 35.7858 83.2933 37.7963 83.7965C40.2656 84.4145 43.8342 85.0326 45.9475 85.2108C46.2719 85.2381 46.4375 85.2751 46.3855 85.3081C46.2874 85.3702 44.1476 86.0849 42.5745 86.5794C40.0773 87.3644 32.4459 89.6189 26.2234 91.4093C25.0691 91.7415 24.0822 92.0221 24.0305 92.0328C23.8911 92.0618 23.4039 91.934 23.4039 91.8686C23.4039 91.8375 23.7528 91.396 24.1765 90.8892C26.268 88.3875 28.3457 85.5933 30.08 82.9509C30.5544 82.2282 30.9518 81.6255 30.962 81.6127ZM28.392 81.6857C28.4107 81.7044 27.3797 83.3553 25.5664 86.2114C24.8008 87.4174 23.9326 88.7902 23.6351 89.262C23.3375 89.7339 22.9015 90.451 22.6679 90.8588L22.2421 91.601L22.0261 91.5432C21.5051 91.4021 17.8296 90.1037 16.8586 89.7183C15.6553 89.2406 14.4012 88.6638 13.4765 88.1641C12.3209 87.5396 10.8554 86.6129 10.9703 86.5764C11.0034 86.5659 12.9918 86.0217 15.3865 85.3689C21.757 83.6324 25.2808 82.6349 27.5921 81.9138C28.0239 81.7791 28.3837 81.6774 28.392 81.6857ZM46.4858 85.9286C46.4995 85.9256 46.5059 85.9255 46.5071 85.9286C46.5674 86.0792 44.209 92.6113 43.347 94.682C43.1539 95.1458 43.0825 95.2582 42.982 95.2538C42.738 95.2431 39.3184 94.765 37.2488 94.4508C33.6257 93.9008 27.5571 92.8411 26.0257 92.4921L25.6698 92.413L27.8415 91.9233C32.4962 90.8746 34.7316 90.3121 36.9994 89.6179C39.8595 88.7423 42.6916 87.6507 45.5521 86.3209C46.0043 86.1107 46.3898 85.9494 46.4858 85.9286Z",fill:"url(#paint0_linear)"}),l.createElement("path",{d:"M35.6986 0.00055976C35.377 -0.0369892 30.2157 1.82256 26.8996 3.1698C22.4063 4.9953 18.9176 6.74441 16.7653 8.25518C15.9642 8.81751 14.9569 9.82887 14.8097 10.2169C14.7546 10.3622 14.7287 10.5319 14.7275 10.7066L16.6802 12.5498L21.3124 14.0279L32.3469 15.9988L44.96 18.1674L45.0877 17.0846C45.0496 17.0786 45.0135 17.0724 44.9752 17.0664L43.3146 16.8048L42.9769 16.2117C41.2627 13.1869 39.3683 9.44374 38.2687 6.91084C37.4171 4.9492 36.5994 2.68945 36.1458 1.05292C35.8763 0.0809629 35.8483 0.0180308 35.6986 0.00055976ZM35.4553 0.748767C35.4682 0.746457 35.4746 0.74637 35.4766 0.748767C35.4868 0.760959 35.5454 1.16666 35.6044 1.64905C35.8526 3.68061 36.3072 5.6509 37.0187 7.77158C37.5548 9.36961 37.5625 9.27575 36.9244 9.09767C35.4412 8.68375 28.796 7.54307 23.9889 6.87738C23.2143 6.77012 22.5696 6.67474 22.5594 6.66448C22.4984 6.60344 26.0262 4.75512 27.59 4.0275C29.5958 3.09429 35.0577 0.820285 35.4553 0.748767ZM21.4492 7.25453L22.0119 7.44614C25.0982 8.49669 32.834 9.97439 37.1099 10.3295C37.5923 10.3695 37.9979 10.4125 38.0102 10.4238C38.0225 10.435 37.6127 10.654 37.1008 10.9104C35.038 11.9437 32.7677 13.2031 31.1972 14.1861C30.736 14.4748 30.3131 14.7076 30.2574 14.7031C30.2018 14.6987 29.8976 14.6498 29.5792 14.5967L28.9982 14.5024L27.5383 13.0851C24.9754 10.6045 22.9744 8.68552 22.2005 7.96015L21.4492 7.25453ZM20.8774 7.71075L22.9213 10.2626C24.0465 11.6661 25.1741 13.0591 25.4245 13.3588C25.6748 13.6586 25.8685 13.9126 25.8564 13.9215C25.7984 13.9639 22.8941 13.3985 21.355 13.0455C19.7749 12.6832 19.1214 12.5098 18.1431 12.197L17.3463 11.9415L17.3493 11.7438C17.3594 10.7635 18.595 9.31769 20.6919 7.83849L20.8774 7.71075H20.8774ZM38.2839 11.1872C38.3452 11.1919 38.41 11.3165 38.5911 11.7134C39.0868 12.7994 40.63 15.7427 41.003 16.3121C41.1259 16.4996 41.3206 16.5122 39.2724 16.1813C34.3499 15.3862 32.7575 15.1201 32.7575 15.0894C32.7576 15.0707 32.9051 14.974 33.086 14.8735C34.6104 14.0258 36.1484 12.9588 37.5175 11.8046C37.8448 11.5286 38.1593 11.2657 38.217 11.2176C38.2407 11.1978 38.2635 11.1856 38.2839 11.1872Z",fill:"url(#paint1_linear)"}),l.createElement("path",{d:"M14.8977 10.0209C14.8977 10.0209 14.5783 10.5273 14.8795 11.2801C15.0658 11.7459 15.6254 12.3055 16.2421 12.8982C16.2421 12.8982 22.7016 19.1992 23.493 20.1126C27.072 24.2433 28.6264 28.3098 28.77 33.924C28.8621 37.5268 28.1673 40.6939 26.4798 44.3746C23.4551 50.9719 17.0821 58.2472 7.23926 66.3373L8.68397 65.8598C9.6126 65.1641 10.8737 64.4211 13.8484 62.7939C20.6992 59.0467 28.3924 55.5998 37.8428 52.0483C51.4395 46.9387 73.8051 40.9435 86.5311 38.9942L87.8571 38.7904L87.6534 38.4711C86.4897 36.6624 85.6955 35.5471 84.7396 34.3651C81.9483 30.9133 78.5692 28.0968 74.4289 25.7789C68.7395 22.5937 61.3601 20.1182 52.0314 18.2634C50.2678 17.9127 46.4056 17.2507 43.2627 16.7609C36.6053 15.7234 32.3114 15.0228 27.5686 14.1969C25.8682 13.9019 23.3292 13.4755 21.6438 13.1111C20.7656 12.9212 19.0965 12.5266 17.7993 12.08C16.7284 11.6584 15.2203 11.2508 14.8977 10.0209ZM18.6418 13.6555C18.6509 13.6473 18.8935 13.7224 19.1893 13.8228C19.7344 14.0079 20.4538 14.2245 21.291 14.4585C21.8775 14.6224 22.5223 14.7944 23.2071 14.9694C24.0811 15.1929 24.8038 15.3849 24.813 15.3953C24.9098 15.504 26.3776 20.1887 26.8782 21.9862C27.0693 22.6722 27.2143 23.2438 27.2006 23.2575C27.1869 23.2712 27.0241 23.0186 26.8417 22.6979C25.1435 19.7115 22.4543 16.6746 19.3444 14.2304C18.9568 13.9257 18.6418 13.667 18.6418 13.6555ZM25.7985 15.6325C25.8733 15.6273 26.1957 15.6813 26.5801 15.7663C29.0566 16.314 33.4784 17.1676 36.322 17.646C36.7958 17.7257 37.1858 17.8115 37.1858 17.8376C37.1858 17.8637 37.0088 17.9756 36.7935 18.0839C36.3164 18.3239 34.3858 19.4795 33.7398 19.9119C32.1273 20.9911 30.6775 22.1464 29.6216 23.1967C29.1973 23.6188 28.8422 23.9632 28.8308 23.9632C28.8194 23.9632 28.7452 23.7172 28.6666 23.4157C28.1387 21.3923 27.0473 18.4044 26.0692 16.3016C25.9118 15.9632 25.7833 15.6648 25.7833 15.6386C25.7833 15.6353 25.7877 15.6332 25.7985 15.6325V15.6325ZM38.3872 18.0262C38.4701 18.0538 38.6267 18.5426 38.9043 19.6412C39.4357 21.7448 39.6832 24.1073 39.6008 26.2929C39.5778 26.9012 39.5394 27.466 39.5156 27.5491L39.47 27.7011L38.7187 27.4578C37.1701 26.9628 34.6398 26.2178 32.4715 25.6177C31.2397 25.2768 30.2299 24.9725 30.2299 24.9425C30.2299 24.8525 32.0273 23.0555 32.8 22.3724C34.2759 21.0677 38.2465 17.9792 38.3872 18.0262ZM39.3879 18.1691C39.4327 18.1274 45.4036 19.1613 48.117 19.6807C50.1394 20.0679 53.0655 20.6807 53.2419 20.7544C53.327 20.7899 53.0242 20.955 52.0527 21.3931C48.2098 23.1261 45.3628 24.6728 42.5328 26.5667C41.7873 27.0655 41.1679 27.473 41.155 27.473C41.1421 27.473 41.131 27.0567 41.1306 26.5484C41.1287 23.7886 40.5777 21.0031 39.5673 18.6497C39.4586 18.3964 39.377 18.1792 39.3879 18.1691ZM54.8265 21.2228C54.8727 21.269 54.6769 22.4464 54.5071 23.1419C53.9788 25.3066 52.5789 28.5196 50.8513 31.5395C50.5468 32.0717 50.2746 32.5154 50.243 32.525C50.2114 32.5346 49.818 32.3277 49.3701 32.0657C47.6807 31.0776 45.7679 30.1429 43.6673 29.2766C43.0815 29.0351 42.5826 28.82 42.5571 28.7961C42.4613 28.7062 47.1294 25.6156 49.6043 24.1304C51.5838 22.9425 54.771 21.1672 54.8265 21.2228ZM55.9306 21.3961C56.065 21.3961 58.713 22.1181 60.0822 22.5276C63.4927 23.5476 67.427 24.9848 69.9792 26.1439L71.0407 26.6245L70.2925 26.7978C64.0477 28.2325 58.6952 29.888 53.54 31.9805C53.1116 32.1544 52.7388 32.2969 52.7127 32.2969C52.6865 32.2969 52.8232 31.9657 53.0138 31.5608C54.5634 28.2683 55.5643 24.8134 55.8241 21.8797C55.8478 21.6127 55.896 21.3961 55.9306 21.3961ZM29.6095 27.4457C29.6518 27.4039 31.6672 27.8761 32.7665 28.1848C34.4189 28.6486 37.9349 29.8252 37.9371 29.9154C37.9371 29.9329 37.5496 30.2707 37.0763 30.6666C35.1754 32.2569 33.3418 33.9198 31.1454 36.0409C30.4943 36.6698 29.941 37.1815 29.9136 37.1815C29.8863 37.1815 29.8741 37.0897 29.8893 36.9777C30.2201 34.536 30.149 31.4006 29.6885 28.2091C29.6302 27.8045 29.5948 27.4601 29.6095 27.4457ZM72.0505 27.4852C72.0807 27.5154 71.1154 29.0242 70.5145 29.8849C69.6378 31.1409 68.367 32.7896 65.4717 36.4302C63.9509 38.3426 62.2355 40.5067 61.6577 41.2388C61.0799 41.971 60.5949 42.571 60.581 42.571C60.5671 42.571 60.3807 42.3088 60.1674 41.9901C58.5353 39.5519 56.5986 37.4101 54.2882 35.4874C53.857 35.1286 53.3706 34.7351 53.2084 34.6145C53.0463 34.4939 52.9141 34.3823 52.9134 34.3651C52.9118 34.3253 55.3794 33.267 57.2627 32.5006C60.5415 31.1664 65.0228 29.5687 68.3764 28.5406C70.1448 27.9984 72.0236 27.4583 72.0505 27.4852ZM73.1637 27.7772C73.2166 27.7664 73.5686 27.9367 73.991 28.1787C77.5229 30.2019 80.9839 32.8 83.7055 35.4722C84.4797 36.2323 86.3737 38.2024 86.3455 38.2186C86.3383 38.2228 85.6842 38.2746 84.8917 38.3342C78.7712 38.7945 70.9463 40.0965 63.4126 41.908C62.901 42.031 62.4587 42.133 62.4302 42.133C62.4018 42.133 62.9618 41.5709 63.6742 40.886C68.0984 36.6327 70.1168 33.9471 72.4915 29.1489C72.8452 28.4343 73.1451 27.8178 73.1576 27.7802C73.1583 27.7779 73.1602 27.7779 73.1637 27.7772L73.1637 27.7772ZM40.8143 31.0924C41.0164 31.1378 42.9032 32.0157 44.3273 32.7287C45.6295 33.3808 47.6019 34.4309 47.7003 34.5232C47.7126 34.5348 47.0178 34.8976 46.1552 35.3292C43.4242 36.6955 41.085 37.9858 38.6427 39.4778C37.9462 39.9033 37.3625 40.2534 37.344 40.2534C37.2831 40.2534 37.3071 40.2007 37.6968 39.4869C38.9974 37.1049 40.0465 34.2609 40.6501 31.4817C40.704 31.2337 40.7688 31.0822 40.8143 31.0924ZM38.9134 31.4331C38.9528 31.4725 38.4632 33.2708 38.153 34.2312C37.5582 36.0733 36.5524 38.3888 35.586 40.1317C35.359 40.5411 35.0108 41.1402 34.8135 41.4639L34.4546 42.0509L33.6394 41.2632C32.6923 40.3449 31.9207 39.7747 30.9356 39.268C30.5483 39.0688 30.2335 38.8845 30.233 38.8574C30.2311 38.7376 32.711 36.4823 34.6249 34.8639C35.9949 33.7054 38.8784 31.398 38.9134 31.4331ZM50.465 36.1839L51.1737 36.6431C52.7994 37.6987 54.7244 39.1186 56.1921 40.3416C57.0146 41.027 58.6132 42.4584 58.9416 42.8052L59.1181 42.9907L57.941 43.3192C51.2837 45.1663 46.1404 46.8106 40.1391 49.016C39.4731 49.2607 38.898 49.4631 38.8586 49.4631C38.7759 49.4631 38.6936 49.5392 40.1908 48.1613C44.0293 44.6289 47.4202 40.7369 49.954 36.9503L50.465 36.1839ZM47.4296 36.9443C47.4644 36.979 45.4623 39.7831 44.2725 41.3666C42.8491 43.2611 40.314 46.428 38.5697 48.4898C37.8409 49.3512 37.2166 50.066 37.1828 50.0774C37.1457 50.09 37.1226 49.879 37.122 49.5452C37.1186 47.786 36.6735 45.9058 35.8871 44.3138C35.555 43.6414 35.4993 43.4786 35.5677 43.4166C35.8414 43.1684 40.0761 40.7539 42.7457 39.3227C44.5794 38.3397 47.3947 36.9094 47.4296 36.9443ZM29.0711 41.4426C29.1075 41.4426 29.4472 41.6133 29.8254 41.8228C30.7522 42.3362 31.5849 42.9012 32.3194 43.5139C32.3478 43.5375 31.9674 43.8483 31.4739 44.2043C30.0964 45.1982 27.9988 46.7812 26.7839 47.7476C25.5021 48.7672 25.4596 48.7985 25.6038 48.578C26.5637 47.1099 27.0464 46.2787 27.5504 45.2171C27.9984 44.2734 28.4449 43.1532 28.7639 42.1787C28.8964 41.7738 29.0347 41.4426 29.0711 41.4426ZM33.9618 45.281C34.028 45.2728 34.1222 45.396 34.5154 45.9836C35.3441 47.2218 35.9787 48.8731 36.1426 50.2173L36.176 50.5063L34.19 51.2758C30.6248 52.6593 27.3431 54.023 25.1263 55.0381C24.5061 55.3221 23.4111 55.8453 22.6961 56.203C21.9812 56.5607 21.3974 56.8419 21.3974 56.8265C21.3974 56.8111 21.8464 56.4735 22.395 56.0753C26.7458 52.9167 30.497 49.4587 33.3231 46.0018C33.6254 45.6321 33.8999 45.3115 33.9345 45.2901C33.9436 45.2845 33.9524 45.2821 33.9618 45.281V45.281ZM31.705 45.8406C31.7626 45.8982 30.0998 47.7787 28.9799 48.9217C26.1769 51.7824 23.3982 54.0253 19.9558 56.2091C19.5251 56.4823 19.1315 56.7294 19.0798 56.7596C18.9853 56.8149 19.1104 56.6728 20.6218 55.0259C21.5743 53.9882 22.3034 53.1267 23.1311 52.0514C23.6762 51.3432 23.7803 51.2439 24.5788 50.6675C26.7299 49.1149 31.6478 45.7834 31.705 45.8406Z",fill:"url(#paint2_radial)"}),l.createElement("defs",null,l.createElement("linearGradient",{id:"paint0_linear",x1:"18.2585",y1:"92.7052",x2:"55.9905",y2:"70.4099",gradientUnits:"userSpaceOnUse"},l.createElement("stop",{stopColor:"#909CA9"}),l.createElement("stop",{offset:"1",stopColor:"#EDEDEE"})),l.createElement("linearGradient",{id:"paint1_linear",x1:"14.7275",y1:"9.08371",x2:"45.0877",y2:"9.08371",gradientUnits:"userSpaceOnUse"},l.createElement("stop",{stopColor:"#939FAB"}),l.createElement("stop",{offset:"1",stopColor:"#DCDEE1"})),l.createElement("radialGradient",{id:"paint2_radial",cx:"0",cy:"0",r:"1",gradientUnits:"userSpaceOnUse",gradientTransform:"translate(43.3678 34.8348) rotate(-171.401) scale(39.1698 78.23)"},l.createElement("stop",{stopColor:"#EE352C"}),l.createElement("stop",{offset:"1",stopColor:"#A91D22"})))),l.createElement("h3",{className:"mt-3"},"SQL Server")),l.createElement("div",{className:"text-center"},l.createElement("svg",{className:"mt-3",width:"100px",height:"100px",viewBox:"0 0 256 170",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMinYMin meet"},l.createElement("path",{d:"M250.392.004c-3.95.127-2.701 1.265-11.236 3.365-8.619 2.121-19.147 1.47-28.428 5.363-27.706 11.62-33.265 51.333-58.452 65.559-18.827 10.634-37.822 11.482-54.899 16.834-11.223 3.519-23.5 10.736-33.668 19.499-7.892 6.803-8.098 12.786-16.345 21.32-8.82 9.127-35.057.154-46.948 14.124 3.83 3.873 5.51 4.958 13.058 3.953-1.562 2.962-10.775 5.458-8.972 9.816 1.898 4.585 24.17 7.693 44.417-4.53 9.429-5.693 16.94-13.899 31.624-15.857 19.003-2.533 40.895 1.624 62.894 4.797-3.262 9.726-9.811 16.194-15.057 23.94-1.625 1.75 3.263 1.946 8.839.889 10.03-2.48 17.258-4.478 24.828-8.884 9.3-5.414 10.71-19.293 22.12-22.297 6.357 9.772 23.649 12.08 34.378 4.264-9.415-2.665-12.017-22.705-8.839-31.535 3.01-8.36 5.985-21.73 9.017-32.78 3.255-11.866 4.455-26.823 8.394-32.868 5.927-9.094 12.475-12.217 18.16-17.345 5.686-5.129 10.89-10.12 10.719-21.855-.055-3.78-2.01-5.886-5.604-5.772z",fill:"#002B64"}),l.createElement("path",{d:"M8.594 159c14.418 2.066 23.186 0 34.764-5.02 9.852-4.273 19.366-13.081 31-16.815 17.085-5.482 35.821.007 54.085 1.102 4.448.267 8.867.27 13.229-.205 6.803-4.182 6.663-19.823 13.285-21.256-.195 21.945-9.192 35.094-18.601 47.826 19.83-3.502 31.697-14.972 39.712-30.291 2.432-4.645 4.508-9.642 6.344-14.88 2.839 2.179 1.23 8.808 2.657 12.4 13.659-7.609 21.48-24.973 26.66-42.535 5.992-20.325 8.445-40.906 12.31-46.92 3.772-5.87 9.642-9.488 15-13.246 6.09-4.273 11.52-8.726 12.458-16.867-6.421-.594-7.906-2.08-8.856-5.316-3.215 1.812-6.171 2.2-9.511 2.3-2.898.088-6.082-.041-9.971.358-32.16 3.303-36.247 38.75-56.86 58.844a48.347 48.347 0 0 1-4.835 4.104c-7.22 5.38-16.076 9.224-24.22 12.337-13.183 5.037-25.716 5.395-38.084 9.743-9.08 3.191-18.306 7.82-25.763 12.924a76.37 76.37 0 0 0-5.238 3.903c-4.376 3.58-7.249 7.553-10.027 11.64-2.866 4.21-5.633 8.543-9.851 12.682-6.834 6.71-32.37 1.957-41.36 8.18-1.002.692-1.798 1.523-2.34 2.521 4.906 2.229 8.182.861 13.825 1.485.74 5.355-11.642 8.537-9.812 11.003zM203.435 120.426c.384 6.143 3.95 18.33 7.098 21.293-6.166 1.5-16.787-.978-19.512-5.327 1.4-6.28 8.686-12.02 12.414-15.966z",fill:"#FFF"}),l.createElement("path",{d:"M212.468 22.935c4.552 3.952 14.105.78 12.398-7.084-7.074-.586-11.172 1.815-12.398 7.084zM244.207 13.744c-1.21 2.54-3.529 5.815-3.529 12.28-.01 1.11-.843 1.871-.857.16.063-6.32 1.735-9.051 3.512-12.641.826-1.471 1.323-.864.874.201z",fill:"#002B64"}),l.createElement("path",{d:"M242.988 12.788c-1.429 2.423-4.868 6.844-5.437 13.285-.105 1.104-1.003 1.788-.867.081.62-6.288 3.369-10.224 5.455-13.645.947-1.391 1.392-.743.849.279zM241.876 11.52c-1.627 2.294-6.922 7.603-8.029 13.975-.199 1.09-1.151 1.698-.871.008 1.146-6.215 5.71-11.1 8.076-14.331 1.06-1.31 1.448-.625.824.348zM240.884 10.106c-1.933 2.042-8.245 8.812-10.235 14.964-.352 1.051-1.38 1.52-.864-.114 2.007-5.992 7.535-12.447 10.332-15.312 1.235-1.147 1.522-.415.767.462z",fill:"#002B64"})),l.createElement("h3",null,"MariaDB")),l.createElement("div",{className:"text-center"},l.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"100px",height:"100px",viewBox:"0 0 6.554 6.555"},l.createElement("defs",null,l.createElement("linearGradient",{x1:"2.983",y1:".53",x2:"2.983",y2:"4.744",id:"A",gradientUnits:"userSpaceOnUse"},l.createElement("stop",{stopColor:"#97d9f6",offset:"0%"}),l.createElement("stop",{stopColor:"#0f80cc",offset:"92.024%"}),l.createElement("stop",{stopColor:"#0f80cc",offset:"100%"}))),l.createElement("path",{d:"M4.96.29H.847c-.276 0-.5.226-.5.5v4.536c0 .276.226.5.5.5h2.71c-.03-1.348.43-3.964 1.404-5.54z",fill:"#0f80cc"}),l.createElement("path",{d:"M4.81.437H.847c-.196 0-.355.16-.355.355v4.205c.898-.345 2.245-.642 3.177-.628A28.93 28.93 0 0 1 4.811.437z",fill:"url(#A)"}),l.createElement("path",{d:"M5.92.142c-.282-.25-.623-.15-.96.148l-.15.146c-.576.61-1.1 1.742-1.276 2.607a2.38 2.38 0 0 1 .148.426l.022.1.022.102s-.005-.02-.026-.08l-.014-.04a.461.461 0 0 0-.009-.022c-.038-.087-.14-.272-.187-.352a8.789 8.789 0 0 0-.103.321c.132.242.212.656.212.656s-.007-.027-.04-.12c-.03-.083-.176-.34-.21-.4-.06.22-.083.368-.062.404.04.07.08.2.115.324a7.52 7.52 0 0 1 .132.666l.005.062a6.11 6.11 0 0 0 .015.75c.026.313.075.582.137.726l.042-.023c-.09-.284-.128-.655-.112-1.084.025-.655.175-1.445.454-2.268C4.548 1.938 5.2.94 5.798.464c-.545.492-1.282 2.084-1.502 2.673-.247.66-.422 1.28-.528 1.873.182-.556.77-.796.77-.796s.29-.356.626-.865l-.645.172-.208.092s.53-.323.987-.47c.627-.987 1.31-2.39.622-3.002",fill:"#003b57"})),l.createElement("h3",{className:"mt-3"},"SQLite")),l.createElement("div",{className:"text-center"},l.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 31.82 32",width:"100px",height:"100px"},l.createElement("path",{d:"M19.42 9.17a15.39 15.39 0 0 1-3.51.4 15.46 15.46 0 0 1-3.51-.4 15.63 15.63 0 0 1 3.51-3.91 15.71 15.71 0 0 1 3.51 3.91zM30 .57A17.22 17.22 0 0 0 25.59 0a17.4 17.4 0 0 0-9.68 2.93A17.38 17.38 0 0 0 6.23 0a17.22 17.22 0 0 0-4.44.57A16.22 16.22 0 0 0 0 1.13a.07.07 0 0 0 0 .09 17.32 17.32 0 0 0 .83 1.57.07.07 0 0 0 .08 0 16.39 16.39 0 0 1 1.81-.54 15.65 15.65 0 0 1 11.59 1.88 17.52 17.52 0 0 0-3.78 4.48c-.2.32-.37.65-.55 1s-.22.45-.33.69-.31.72-.44 1.08a17.46 17.46 0 0 0 4.29 18.7c.26.25.53.49.81.73s.44.37.67.54.59.44.89.64a.07.07 0 0 0 .08 0c.3-.21.6-.42.89-.64s.45-.35.67-.54.55-.48.81-.73a17.45 17.45 0 0 0 5.38-12.61 17.39 17.39 0 0 0-1.09-6.09c-.14-.37-.29-.73-.45-1.09s-.22-.47-.33-.69-.35-.66-.55-1a17.61 17.61 0 0 0-3.78-4.48 15.65 15.65 0 0 1 11.6-1.84 16.13 16.13 0 0 1 1.81.54.07.07 0 0 0 .08 0q.44-.76.82-1.56a.07.07 0 0 0 0-.09A16.89 16.89 0 0 0 30 .57z",fill:"#151f34"}),l.createElement("path",{d:"M21.82 17.47a15.51 15.51 0 0 1-4.25 10.69 15.66 15.66 0 0 1-.72-4.68 15.5 15.5 0 0 1 4.25-10.69 15.62 15.62 0 0 1 .72 4.68",fill:"#348540"}),l.createElement("path",{d:"M15 23.48a15.55 15.55 0 0 1-.72 4.68 15.54 15.54 0 0 1-3.53-15.37A15.5 15.5 0 0 1 15 23.48",fill:"#7dbc42"})),l.createElement("h3",{className:"mt-3"},"CockroachDB")))))}var w=a(5742),v=a(2263),f=a(2389);function b(e){let{children:t,fallback:a}=e;return(0,f.Z)()?l.createElement(l.Fragment,null,null==t?void 0:t()):a??null}const k=()=>window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";function N(){const e=k();return l.createElement("footer",{className:"bg-gray-50 dark:bg-gray-800"},l.createElement("div",{className:"max-w-screen-xl p-4 py-2 mx-auto lg:py-8 md:p-8 lg:p-10"},l.createElement("div",{className:"text-center"},l.createElement("a",{href:"#",className:"flex items-center justify-center mb-5 text-2xl font-semibold text-gray-900 dark:text-white"},l.createElement("img",{className:"h-6 mr-3 sm:h-9",src:`/img/${"dark"===e?"logo-white":"logo"}.png`,alt:"Hadmean logo"})),l.createElement("span",{className:"block text-sm text-center text-gray-500 dark:text-gray-400"},"\xa9 2022 Hadmean. All Rights Reserved."),l.createElement("ul",{className:"flex justify-center mt-5 space-x-5"},l.createElement("li",null,l.createElement(r.Z,{href:C,className:"text-gray-500 hover:text-gray-900 dark:hover:text-white dark:text-gray-400"},l.createElement("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true"},l.createElement("path",{d:"M8.29 20.251c7.547 0 11.675-6.253 11.675-11.675 0-.178 0-.355-.012-.53A8.348 8.348 0 0022 5.92a8.19 8.19 0 01-2.357.646 4.118 4.118 0 001.804-2.27 8.224 8.224 0 01-2.605.996 4.107 4.107 0 00-6.993 3.743 11.65 11.65 0 01-8.457-4.287 4.106 4.106 0 001.27 5.477A4.072 4.072 0 012.8 9.713v.052a4.105 4.105 0 003.292 4.022 4.095 4.095 0 01-1.853.07 4.108 4.108 0 003.834 2.85A8.233 8.233 0 012 18.407a11.616 11.616 0 006.29 1.84"})))),l.createElement("li",null,l.createElement(r.Z,{href:p,className:"text-gray-500 hover:text-gray-900 dark:hover:text-white dark:text-gray-400"},l.createElement("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true"},l.createElement("path",{fillRule:"evenodd",d:"M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z",clipRule:"evenodd"})))),l.createElement("li",null,l.createElement(r.Z,{href:u,className:"text-gray-500 hover:text-gray-900 dark:hover:text-white dark:text-gray-400"},l.createElement("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 -28.5 256 256","aria-hidden":"true"},l.createElement("path",{d:"M216.856339,16.5966031 C200.285002,8.84328665 182.566144,3.2084988 164.041564,0 C161.766523,4.11318106 159.108624,9.64549908 157.276099,14.0464379 C137.583995,11.0849896 118.072967,11.0849896 98.7430163,14.0464379 C96.9108417,9.64549908 94.1925838,4.11318106 91.8971895,0 C73.3526068,3.2084988 55.6133949,8.86399117 39.0420583,16.6376612 C5.61752293,67.146514 -3.4433191,116.400813 1.08711069,164.955721 C23.2560196,181.510915 44.7403634,191.567697 65.8621325,198.148576 C71.0772151,190.971126 75.7283628,183.341335 79.7352139,175.300261 C72.104019,172.400575 64.7949724,168.822202 57.8887866,164.667963 C59.7209612,163.310589 61.5131304,161.891452 63.2445898,160.431257 C105.36741,180.133187 151.134928,180.133187 192.754523,160.431257 C194.506336,161.891452 196.298154,163.310589 198.110326,164.667963 C191.183787,168.842556 183.854737,172.420929 176.223542,175.320965 C180.230393,183.341335 184.861538,190.991831 190.096624,198.16893 C211.238746,191.588051 232.743023,181.531619 254.911949,164.955721 C260.227747,108.668201 245.831087,59.8662432 216.856339,16.5966031 Z M85.4738752,135.09489 C72.8290281,135.09489 62.4592217,123.290155 62.4592217,108.914901 C62.4592217,94.5396472 72.607595,82.7145587 85.4738752,82.7145587 C98.3405064,82.7145587 108.709962,94.5189427 108.488529,108.914901 C108.508531,123.290155 98.3405064,135.09489 85.4738752,135.09489 Z M170.525237,135.09489 C157.88039,135.09489 147.510584,123.290155 147.510584,108.914901 C147.510584,94.5396472 157.658606,82.7145587 170.525237,82.7145587 C183.391518,82.7145587 193.761324,94.5189427 193.539891,108.914901 C193.539891,123.290155 183.391518,135.09489 170.525237,135.09489 Z",fillRule:"evenodd",clipRule:"evenodd"}))))))))}function M(){const e=k(),[t,a]=(0,l.useState)(!1);return l.createElement("header",{className:"fixed w-full"},l.createElement("nav",{className:"bg-white border-gray-200 py-2.5 dark:bg-gray-900"},l.createElement("div",{className:"flex flex-wrap items-center justify-between max-w-screen-xl px-4 mx-auto"},l.createElement(r.Z,{to:"/",className:"flex items-center"},l.createElement("img",{className:"h-6 mr-3 sm:h-9",src:`/img/${"dark"===e?"logo-white":"logo"}.png`,alt:"Hadmean logo"})),l.createElement("div",{className:"flex items-center lg:order-2"},l.createElement("div",{className:"hidden mt-2 mr-4 sm:inline-block"},l.createElement(r.Z,{className:"github-button dark:text-white",href:p,"data-size":"large","data-icon":"octicon-star","data-show-count":"true","aria-label":"Star hadmean/hadmean on GitHub"},"Star")),l.createElement(r.Z,{href:C,className:"text-primary dark:text-white hover:bg-gray-50 focus:ring-4 focus:ring-gray-300 font-medium rounded-lg text-sm px-2 py-2 lg:py-2.5 sm:mr-2 focus:outline-none dark:focus:ring-gray-800"},l.createElement("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true"},l.createElement("path",{d:"M8.29 20.251c7.547 0 11.675-6.253 11.675-11.675 0-.178 0-.355-.012-.53A8.348 8.348 0 0022 5.92a8.19 8.19 0 01-2.357.646 4.118 4.118 0 001.804-2.27 8.224 8.224 0 01-2.605.996 4.107 4.107 0 00-6.993 3.743 11.65 11.65 0 01-8.457-4.287 4.106 4.106 0 001.27 5.477A4.072 4.072 0 012.8 9.713v.052a4.105 4.105 0 003.292 4.022 4.095 4.095 0 01-1.853.07 4.108 4.108 0 003.834 2.85A8.233 8.233 0 012 18.407a11.616 11.616 0 006.29 1.84"}))),l.createElement(r.Z,{href:"https://discord.gg/aV6DxwXhzN",className:"text-primary dark:text-white hover:bg-gray-50 focus:ring-4 focus:ring-gray-300 font-medium rounded-lg text-sm px-2 py-2 lg:py-2.5 mr-2 focus:outline-none dark:focus:ring-gray-800"},l.createElement("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 -28.5 256 256","aria-hidden":"true"},l.createElement("path",{d:"M216.856339,16.5966031 C200.285002,8.84328665 182.566144,3.2084988 164.041564,0 C161.766523,4.11318106 159.108624,9.64549908 157.276099,14.0464379 C137.583995,11.0849896 118.072967,11.0849896 98.7430163,14.0464379 C96.9108417,9.64549908 94.1925838,4.11318106 91.8971895,0 C73.3526068,3.2084988 55.6133949,8.86399117 39.0420583,16.6376612 C5.61752293,67.146514 -3.4433191,116.400813 1.08711069,164.955721 C23.2560196,181.510915 44.7403634,191.567697 65.8621325,198.148576 C71.0772151,190.971126 75.7283628,183.341335 79.7352139,175.300261 C72.104019,172.400575 64.7949724,168.822202 57.8887866,164.667963 C59.7209612,163.310589 61.5131304,161.891452 63.2445898,160.431257 C105.36741,180.133187 151.134928,180.133187 192.754523,160.431257 C194.506336,161.891452 196.298154,163.310589 198.110326,164.667963 C191.183787,168.842556 183.854737,172.420929 176.223542,175.320965 C180.230393,183.341335 184.861538,190.991831 190.096624,198.16893 C211.238746,191.588051 232.743023,181.531619 254.911949,164.955721 C260.227747,108.668201 245.831087,59.8662432 216.856339,16.5966031 Z M85.4738752,135.09489 C72.8290281,135.09489 62.4592217,123.290155 62.4592217,108.914901 C62.4592217,94.5396472 72.607595,82.7145587 85.4738752,82.7145587 C98.3405064,82.7145587 108.709962,94.5189427 108.488529,108.914901 C108.508531,123.290155 98.3405064,135.09489 85.4738752,135.09489 Z M170.525237,135.09489 C157.88039,135.09489 147.510584,123.290155 147.510584,108.914901 C147.510584,94.5396472 157.658606,82.7145587 170.525237,82.7145587 C183.391518,82.7145587 193.761324,94.5189427 193.539891,108.914901 C193.539891,123.290155 183.391518,135.09489 170.525237,135.09489 Z",fillRule:"evenodd",clipRule:"evenodd"}))),l.createElement(r.Z,{to:"/docs/installation/setup",className:"text-white bg-primary hover:bg-primary-dark hover:text-white focus:ring-4 focus:ring-primary-lighter font-medium rounded-lg text-sm px-4 lg:px-5 py-2 lg:py-2.5 sm:mr-2 lg:mr-0 focus:outline-none dark:focus:ring-primary"},"Get Started"),l.createElement("button",{"data-collapse-toggle":"mobile-menu-2",type:"button",className:"inline-flex items-center pl-2 ml-1 text-sm text-gray-500 rounded-lg lg:hidden hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-gray-200 dark:text-gray-400 dark:hover:bg-gray-700 dark:focus:ring-gray-600","aria-controls":"mobile-menu-2","aria-expanded":"false",onClick:()=>{a(!t)}},l.createElement("span",{className:"sr-only"},"Open main menu"),l.createElement("svg",{className:"w-6 h-6",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},l.createElement("path",{fillRule:"evenodd",d:"M3 5a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 10a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1zM3 15a1 1 0 011-1h12a1 1 0 110 2H4a1 1 0 01-1-1z",clipRule:"evenodd"})),l.createElement("svg",{className:"hidden w-6 h-6",fill:"currentColor",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg"},l.createElement("path",{fillRule:"evenodd",d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",clipRule:"evenodd"})))),l.createElement("div",{className:(0,c.Z)("items-center justify-between w-full lg:flex lg:w-auto lg:order-1",{hidden:!t})},l.createElement("ul",{className:"flex flex-col mt-4 font-medium lg:flex-row lg:space-x-8 lg:mt-0"},l.createElement("li",null,l.createElement(r.Z,{href:"/",className:"block py-2 pl-3 pr-4 text-white bg-primary rounded lg:bg-transparent lg:text-primary dark:lg:text-primary-light lg:p-0 dark:text-white"},"Home")),l.createElement("li",null,l.createElement(r.Z,{href:"/docs/intro",className:"block py-2 pl-3 pr-4 text-gray-700 border-b border-gray-100 hover:bg-gray-50 lg:hover:bg-transparent lg:border-0 lg:hover:text-primary lg:p-0 dark:text-white lg:dark:hover:text-primary-lighter dark:hover:bg-gray-700 dark:hover:text-white lg:dark:hover:bg-transparent dark:border-gray-700"},"Docs")),l.createElement("li",null,l.createElement(r.Z,{href:"/blog",className:"block py-2 pl-3 pr-4 text-gray-700 border-b border-gray-100 hover:bg-gray-50 lg:hover:bg-transparent lg:border-0 lg:hover:text-primary lg:p-0 dark:text-white lg:dark:hover:text-primary-lighter dark:hover:bg-gray-700 dark:hover:text-white lg:dark:hover:bg-transparent dark:border-gray-700"},"Blog")),l.createElement("li",null,l.createElement(r.Z,{target:"_blank",href:"https://github.com/orgs/hadmean/projects/1",className:"block py-2 pl-3 pr-4 text-gray-700 border-b border-gray-100 hover:bg-gray-50 lg:hover:bg-transparent lg:border-0 lg:hover:text-primary lg:p-0 dark:text-white lg:dark:hover:text-primary-lighter dark:hover:bg-gray-700 dark:hover:text-white lg:dark:hover:bg-transparent dark:border-gray-700"},"Roadmap")),l.createElement("li",null,l.createElement(r.Z,{target:"_blank",href:x,className:"block py-2 pl-3 pr-4 text-gray-700 border-b border-gray-100 hover:bg-gray-50 lg:hover:bg-transparent lg:border-0 lg:hover:text-primary lg:p-0 dark:text-white lg:dark:hover:text-primary-lighter dark:hover:bg-gray-700 dark:hover:text-white lg:dark:hover:bg-transparent dark:border-gray-700"},"Demo")))))))}function z(e){let{children:t,title:a}=e;const{siteConfig:r}=(0,v.Z)(),n=`Hadmean - ${a}`;return l.createElement(l.Fragment,null,l.createElement(w.Z,null,l.createElement("title",null,n),l.createElement("meta",{name:"title",content:n}),l.createElement("meta",{name:"description",content:r.tagline}),l.createElement("meta",{property:"og:site_name",content:"Hadmean"}),l.createElement("meta",{property:"og:title",content:n}),l.createElement("meta",{property:"og:image",content:"https://hadmean.com/img/og-image.png"}),l.createElement("meta",{property:"og:description",content:r.tagline}),l.createElement("meta",{name:"twitter:card",content:"summary"}),l.createElement("meta",{name:"twitter:site",content:"@hadmeanHQ"}),l.createElement("meta",{name:"twitter:creator",content:"@hadmeanHQ"}),l.createElement("link",{rel:"apple-touch-icon",sizes:"180x180",href:"/apple-touch-icon.png"}),l.createElement("link",{rel:"icon",type:"image/png",sizes:"32x32",href:"/favicon-32x32.png"}),l.createElement("link",{rel:"icon",type:"image/png",sizes:"16x16",href:"/favicon-16x16.png"}),l.createElement("script",{async:!0,defer:!0,src:"https://buttons.github.io/buttons.js"})),l.createElement(M,null),t,l.createElement(N,null))}function L(e){let{children:t,title:a}=e;return l.createElement(b,null,(()=>l.createElement(z,{title:a},t)))}const Z=function(){return l.createElement(L,{title:"Generate powerful admin apps with ease in seconds"},l.createElement(E,null),l.createElement(h,null),l.createElement(d,null),l.createElement(y,null),l.createElement(g,null),l.createElement(m,null),l.createElement(s,null),l.createElement(n,null))}}}]); \ No newline at end of file diff --git a/assets/js/c8dd8362.02879dcc.js b/assets/js/c8dd8362.02879dcc.js deleted file mode 100644 index 70c32bca6..000000000 --- a/assets/js/c8dd8362.02879dcc.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[6623],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function l(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var d=a.createContext({}),s=function(e){var t=a.useContext(d),n=t;return e&&(n="function"==typeof e?e(t):l(l({},t),e)),n},p=function(e){var t=s(e.components);return a.createElement(d.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},u=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,d=e.parentName,p=r(e,["components","mdxType","originalType","parentName"]),u=s(n),m=i,f=u["".concat(d,".").concat(m)]||u[m]||c[m]||o;return n?a.createElement(f,l(l({ref:t},p),{},{components:n})):a.createElement(f,l({ref:t},p))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,l=new Array(o);l[0]=u;var r={};for(var d in t)hasOwnProperty.call(t,d)&&(r[d]=t[d]);r.originalType=e,r.mdxType="string"==typeof e?e:i,l[1]=r;for(var s=2;s{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>l,default:()=>c,frontMatter:()=>o,metadata:()=>r,toc:()=>s});var a=n(7462),i=(n(7294),n(3905));const o={sidebar_position:4},l="Fields",r={unversionedId:"app-configuration/fields",id:"app-configuration/fields",title:"Fields",description:"This view allows you to make field-level customizations. All customization will be reflected on the tables, details view, create form and edit form",source:"@site/docs/app-configuration/fields.md",sourceDirName:"app-configuration",slug:"/app-configuration/fields",permalink:"/docs/app-configuration/fields",draft:!1,editUrl:"https://github.com/hadmean/archaea/edit/main/docs/app-configuration/fields.md",tags:[],version:"current",sidebarPosition:4,frontMatter:{sidebar_position:4},sidebar:"tutorialSidebar",previous:{title:"Diction",permalink:"/docs/app-configuration/diction"},next:{title:"Relations",permalink:"/docs/app-configuration/relations"}},d={},s=[{value:"Labels",id:"labels",level:2},{value:"Types",id:"types",level:2},{value:"Specific Type",id:"specific-type",level:3},{value:"Validations",id:"validations",level:3},{value:"Selection",id:"selection",level:3},{value:"Order",id:"order",level:2}],p={toc:s};function c(e){let{components:t,...n}=e;return(0,i.kt)("wrapper",(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h1",{id:"fields"},"Fields"),(0,i.kt)("p",null,"This view allows you to make field-level customizations. All customization will be reflected on the tables, details view, create form and edit form"),(0,i.kt)("h2",{id:"labels"},"Labels"),(0,i.kt)("p",null,"This tab enables you to rename the label of the field. Say you want to ",(0,i.kt)("inlineCode",{parentName:"p"},"name")," to be called ",(0,i.kt)("inlineCode",{parentName:"p"},"Full Name")," or ",(0,i.kt)("inlineCode",{parentName:"p"},"updatedAt")," to be called ",(0,i.kt)("inlineCode",{parentName:"p"},"Last Updated")," then you simple input the desired name under the field and submit and the column will be renamed everywhere"),(0,i.kt)("h2",{id:"types"},"Types"),(0,i.kt)("admonition",{type:"caution"},(0,i.kt)("p",{parentName:"admonition"}," It is un-evitable that this tab will be edited but we strongly advise that you structure your schema to minimize you touching this section")),(0,i.kt)("p",null,"There are three things you can do in this section"),(0,i.kt)("h3",{id:"specific-type"},"Specific Type"),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"No action taken here will reflect on your database, If you are looking for that then you will need to look for a database client and we will not be supporting this.")),(0,i.kt)("p",null,"Databases have limits on the types of data you want to save, so we usually end up using ",(0,i.kt)("inlineCode",{parentName:"p"},"text")," to represent ",(0,i.kt)("inlineCode",{parentName:"p"},"email"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"url"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"color")," ",(0,i.kt)("inlineCode",{parentName:"p"},"image"),". With the section, you can have a more specific type for your data and Hadmean will use this information to build the most appropriate view/form field for your data"),(0,i.kt)("p",null,"You will notice that some selections are disabled and these are for fields like ",(0,i.kt)("inlineCode",{parentName:"p"},"boolean"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"date"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"enum")," etc. which really don't have sister types so there is nothing you can update it to"),(0,i.kt)("p",null,"You will also see that the selections are narrowed as you will not see a ",(0,i.kt)("inlineCode",{parentName:"p"},"email")," selection for a numerical field nor will you see ",(0,i.kt)("inlineCode",{parentName:"p"},"number")," for ",(0,i.kt)("inlineCode",{parentName:"p"},"text")," field, This is to reduce the chances of bad selection"),(0,i.kt)("h3",{id:"validations"},"Validations"),(0,i.kt)("p",null,"Hadmean, will try to pick all the database validations that it can, Like ",(0,i.kt)("inlineCode",{parentName:"p"},"non-nullable")," means ",(0,i.kt)("inlineCode",{parentName:"p"},"required"),". As such all fields with ",(0,i.kt)("inlineCode",{parentName:"p"},"non-nullable")," will be required in the form and this is not editable, If you need to change this, then you database has to be change and we will pick it up the next time you spin the application."),(0,i.kt)("p",null,"We also add default validations for ",(0,i.kt)("inlineCode",{parentName:"p"},"maxLength"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"isDate"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"unique"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"isBoolean")," etc. As said earlier these validations can't be edited so you will need to update your database to make these changes."),(0,i.kt)("p",null,"But databases don't contain all the validations, So we provide the ",(0,i.kt)("inlineCode",{parentName:"p"},"Configure Validation")," to let you add more validations like ",(0,i.kt)("inlineCode",{parentName:"p"},"minLength"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"regex"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"alphanumeric"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"matchOtherField")," etc. "),(0,i.kt)("admonition",{type:"info"},(0,i.kt)("p",{parentName:"admonition"},"All validations picked from the database can't be removed but added validations can be")),(0,i.kt)("p",null,"We also provide a text input for you to customize the validation message"),(0,i.kt)("h3",{id:"selection"},"Selection"),(0,i.kt)("p",null,"TODO"),(0,i.kt)("h2",{id:"order"},"Order"),(0,i.kt)("p",null,"This allows you to order the fields around and the order will also be reflected on tables, details view and forms"))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/ca42d992.494a83d9.js b/assets/js/ca42d992.494a83d9.js deleted file mode 100644 index 76a0bb8eb..000000000 --- a/assets/js/ca42d992.494a83d9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[6461],{8153:e=>{e.exports=JSON.parse('{"title":"App configuration","description":"How to configure Hadmean to be in line with your business requirement. Note that you will always find links in the application to the related sub-sections.","slug":"/category/app-configuration","permalink":"/docs/category/app-configuration","navigation":{"previous":{"title":"Security Implementations","permalink":"/docs/security"},"next":{"title":"Entities","permalink":"/docs/app-configuration/entities"}}}')}}]); \ No newline at end of file diff --git a/assets/js/ccc49370.581dcf73.js b/assets/js/ccc49370.581dcf73.js new file mode 100644 index 000000000..78caab77f --- /dev/null +++ b/assets/js/ccc49370.581dcf73.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[103],{5203:(e,t,n)=>{n.r(t),n.d(t,{default:()=>h});var a=n(7294),l=n(6010),r=n(1944),o=n(5281),i=n(9460),c=n(9058),s=n(390),m=n(7462),d=n(5999),u=n(2244);function g(e){const{nextItem:t,prevItem:n}=e;return a.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,d.I)({id:"theme.blog.post.paginator.navAriaLabel",message:"Blog post page navigation",description:"The ARIA label for the blog posts pagination"})},n&&a.createElement(u.Z,(0,m.Z)({},n,{subLabel:a.createElement(d.Z,{id:"theme.blog.post.paginator.newerPost",description:"The blog post button label to navigate to the newer/previous post"},"Newer Post")})),t&&a.createElement(u.Z,(0,m.Z)({},t,{subLabel:a.createElement(d.Z,{id:"theme.blog.post.paginator.olderPost",description:"The blog post button label to navigate to the older/next post"},"Older Post"),isNext:!0})))}function f(){const{assets:e,metadata:t}=(0,i.C)(),{title:n,description:l,date:o,tags:c,authors:s,frontMatter:m}=t,{keywords:d}=m,u=e.image??m.image;return a.createElement(r.d,{title:n,description:l,keywords:d,image:u},a.createElement("meta",{property:"og:type",content:"article"}),a.createElement("meta",{property:"article:published_time",content:o}),s.some((e=>e.url))&&a.createElement("meta",{property:"article:author",content:s.map((e=>e.url)).filter(Boolean).join(",")}),c.length>0&&a.createElement("meta",{property:"article:tag",content:c.map((e=>e.label)).join(",")}))}var v=n(9407);function p(e){let{sidebar:t,children:n}=e;const{metadata:l,toc:r}=(0,i.C)(),{nextItem:o,prevItem:m,frontMatter:d}=l,{hide_table_of_contents:u,toc_min_heading_level:f,toc_max_heading_level:p}=d;return a.createElement(c.Z,{sidebar:t,toc:!u&&r.length>0?a.createElement(v.Z,{toc:r,minHeadingLevel:f,maxHeadingLevel:p}):void 0},a.createElement(s.Z,null,n),(o||m)&&a.createElement(g,{nextItem:o,prevItem:m}))}function h(e){const t=e.content;return a.createElement(i.n,{content:e.content,isBlogPostPage:!0},a.createElement(r.FG,{className:(0,l.Z)(o.k.wrapper.blogPages,o.k.page.blogPostPage)},a.createElement(f,null),a.createElement(p,{sidebar:e.sidebar},a.createElement(t,null))))}},9407:(e,t,n)=>{n.d(t,{Z:()=>c});var a=n(7462),l=n(7294),r=n(6010),o=n(3743);const i="tableOfContents_bqdL";function c(e){let{className:t,...n}=e;return l.createElement("div",{className:(0,r.Z)(i,"thin-scrollbar",t)},l.createElement(o.Z,(0,a.Z)({},n,{linkClassName:"table-of-contents__link toc-highlight",linkActiveClassName:"table-of-contents__link--active"})))}},3743:(e,t,n)=>{n.d(t,{Z:()=>f});var a=n(7462),l=n(7294),r=n(6668);function o(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...l}=e;n>=0?t[n].children.push(l):a.push(l)})),a}function i(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return t.flatMap((e=>{const t=i({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[{...e,children:t}]:t}))}function c(e){const t=e.getBoundingClientRect();return t.top===t.bottom?c(e.parentNode):t}function s(e,t){let{anchorTopOffset:n}=t;const a=e.find((e=>c(e).top>=n));if(a){return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function d(e){const t=(0,l.useRef)(void 0),n=m();(0,l.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:l,minHeadingLevel:r,maxHeadingLevel:o}=e;function i(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),i=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const a=[];for(let l=t;l<=n;l+=1)a.push(`h${l}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:r,maxHeadingLevel:o}),c=s(i,{anchorTopOffset:n.current}),m=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(l),e.classList.add(l),t.current=e):e.classList.remove(l)}(e,e===m)}))}return document.addEventListener("scroll",i),document.addEventListener("resize",i),i(),()=>{document.removeEventListener("scroll",i),document.removeEventListener("resize",i)}}),[e,n])}function u(e){let{toc:t,className:n,linkClassName:a,isChild:r}=e;return t.length?l.createElement("ul",{className:r?void 0:n},t.map((e=>l.createElement("li",{key:e.id},l.createElement("a",{href:`#${e.id}`,className:a??void 0,dangerouslySetInnerHTML:{__html:e.value}}),l.createElement(u,{isChild:!0,toc:e.children,className:n,linkClassName:a}))))):null}const g=l.memo(u);function f(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:c="table-of-contents__link",linkActiveClassName:s,minHeadingLevel:m,maxHeadingLevel:u,...f}=e;const v=(0,r.L)(),p=m??v.tableOfContents.minHeadingLevel,h=u??v.tableOfContents.maxHeadingLevel,b=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,l.useMemo)((()=>i({toc:o(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}({toc:t,minHeadingLevel:p,maxHeadingLevel:h});return d((0,l.useMemo)((()=>{if(c&&s)return{linkClassName:c,linkActiveClassName:s,minHeadingLevel:p,maxHeadingLevel:h}}),[c,s,p,h])),l.createElement(g,(0,a.Z)({toc:b,className:n,linkClassName:c},f))}}}]); \ No newline at end of file diff --git a/assets/js/ccc49370.aed78c7c.js b/assets/js/ccc49370.aed78c7c.js deleted file mode 100644 index b2cf7c49c..000000000 --- a/assets/js/ccc49370.aed78c7c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[6103],{5203:(e,t,n)=>{n.r(t),n.d(t,{default:()=>h});var a=n(7294),l=n(6010),r=n(1944),o=n(5281),i=n(9460),c=n(9058),s=n(390),m=n(7462),d=n(5999),u=n(2244);function g(e){const{nextItem:t,prevItem:n}=e;return a.createElement("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,d.I)({id:"theme.blog.post.paginator.navAriaLabel",message:"Blog post page navigation",description:"The ARIA label for the blog posts pagination"})},n&&a.createElement(u.Z,(0,m.Z)({},n,{subLabel:a.createElement(d.Z,{id:"theme.blog.post.paginator.newerPost",description:"The blog post button label to navigate to the newer/previous post"},"Newer Post")})),t&&a.createElement(u.Z,(0,m.Z)({},t,{subLabel:a.createElement(d.Z,{id:"theme.blog.post.paginator.olderPost",description:"The blog post button label to navigate to the older/next post"},"Older Post"),isNext:!0})))}function f(){const{assets:e,metadata:t}=(0,i.C)(),{title:n,description:l,date:o,tags:c,authors:s,frontMatter:m}=t,{keywords:d}=m,u=e.image??m.image;return a.createElement(r.d,{title:n,description:l,keywords:d,image:u},a.createElement("meta",{property:"og:type",content:"article"}),a.createElement("meta",{property:"article:published_time",content:o}),s.some((e=>e.url))&&a.createElement("meta",{property:"article:author",content:s.map((e=>e.url)).filter(Boolean).join(",")}),c.length>0&&a.createElement("meta",{property:"article:tag",content:c.map((e=>e.label)).join(",")}))}var v=n(9407);function p(e){let{sidebar:t,children:n}=e;const{metadata:l,toc:r}=(0,i.C)(),{nextItem:o,prevItem:m,frontMatter:d}=l,{hide_table_of_contents:u,toc_min_heading_level:f,toc_max_heading_level:p}=d;return a.createElement(c.Z,{sidebar:t,toc:!u&&r.length>0?a.createElement(v.Z,{toc:r,minHeadingLevel:f,maxHeadingLevel:p}):void 0},a.createElement(s.Z,null,n),(o||m)&&a.createElement(g,{nextItem:o,prevItem:m}))}function h(e){const t=e.content;return a.createElement(i.n,{content:e.content,isBlogPostPage:!0},a.createElement(r.FG,{className:(0,l.Z)(o.k.wrapper.blogPages,o.k.page.blogPostPage)},a.createElement(f,null),a.createElement(p,{sidebar:e.sidebar},a.createElement(t,null))))}},9407:(e,t,n)=>{n.d(t,{Z:()=>c});var a=n(7462),l=n(7294),r=n(6010),o=n(3743);const i="tableOfContents_bqdL";function c(e){let{className:t,...n}=e;return l.createElement("div",{className:(0,r.Z)(i,"thin-scrollbar",t)},l.createElement(o.Z,(0,a.Z)({},n,{linkClassName:"table-of-contents__link toc-highlight",linkActiveClassName:"table-of-contents__link--active"})))}},3743:(e,t,n)=>{n.d(t,{Z:()=>f});var a=n(7462),l=n(7294),r=n(6668);function o(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const a=n.slice(2,e.level);e.parentIndex=Math.max(...a),n[e.level]=t}));const a=[];return t.forEach((e=>{const{parentIndex:n,...l}=e;n>=0?t[n].children.push(l):a.push(l)})),a}function i(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return t.flatMap((e=>{const t=i({toc:e.children,minHeadingLevel:n,maxHeadingLevel:a});return function(e){return e.level>=n&&e.level<=a}(e)?[{...e,children:t}]:t}))}function c(e){const t=e.getBoundingClientRect();return t.top===t.bottom?c(e.parentNode):t}function s(e,t){let{anchorTopOffset:n}=t;const a=e.find((e=>c(e).top>=n));if(a){return function(e){return e.top>0&&e.bottom{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function d(e){const t=(0,l.useRef)(void 0),n=m();(0,l.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:a,linkActiveClassName:l,minHeadingLevel:r,maxHeadingLevel:o}=e;function i(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(a),i=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const a=[];for(let l=t;l<=n;l+=1)a.push(`h${l}.anchor`);return Array.from(document.querySelectorAll(a.join()))}({minHeadingLevel:r,maxHeadingLevel:o}),c=s(i,{anchorTopOffset:n.current}),m=e.find((e=>c&&c.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(l),e.classList.add(l),t.current=e):e.classList.remove(l)}(e,e===m)}))}return document.addEventListener("scroll",i),document.addEventListener("resize",i),i(),()=>{document.removeEventListener("scroll",i),document.removeEventListener("resize",i)}}),[e,n])}function u(e){let{toc:t,className:n,linkClassName:a,isChild:r}=e;return t.length?l.createElement("ul",{className:r?void 0:n},t.map((e=>l.createElement("li",{key:e.id},l.createElement("a",{href:`#${e.id}`,className:a??void 0,dangerouslySetInnerHTML:{__html:e.value}}),l.createElement(u,{isChild:!0,toc:e.children,className:n,linkClassName:a}))))):null}const g=l.memo(u);function f(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:c="table-of-contents__link",linkActiveClassName:s,minHeadingLevel:m,maxHeadingLevel:u,...f}=e;const v=(0,r.L)(),p=m??v.tableOfContents.minHeadingLevel,h=u??v.tableOfContents.maxHeadingLevel,b=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:a}=e;return(0,l.useMemo)((()=>i({toc:o(t),minHeadingLevel:n,maxHeadingLevel:a})),[t,n,a])}({toc:t,minHeadingLevel:p,maxHeadingLevel:h});return d((0,l.useMemo)((()=>{if(c&&s)return{linkClassName:c,linkActiveClassName:s,minHeadingLevel:p,maxHeadingLevel:h}}),[c,s,p,h])),l.createElement(g,(0,a.Z)({toc:b,className:n,linkClassName:c},f))}}}]); \ No newline at end of file diff --git a/assets/js/db32d859.6b7f9eb7.js b/assets/js/db32d859.6b7f9eb7.js new file mode 100644 index 000000000..5db6f0d7a --- /dev/null +++ b/assets/js/db32d859.6b7f9eb7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[653],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),d=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=d(e.components);return r.createElement(s.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),u=d(n),m=a,y=u["".concat(s,".").concat(m)]||u[m]||c[m]||i;return n?r.createElement(y,o(o({ref:t},p),{},{components:n})):r.createElement(y,o({ref:t},p))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:a,o[1]=l;for(var d=2;d{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>c,frontMatter:()=>i,metadata:()=>l,toc:()=>d});var r=n(7462),a=(n(7294),n(3905));const i={sidebar_position:2},o="Security Implementations",l={unversionedId:"security",id:"security",title:"Security Implementations",description:"SSL",source:"@site/docs/security.md",sourceDirName:".",slug:"/security",permalink:"/docs/security",draft:!1,editUrl:"https://github.com/hadmean/archaea/edit/main/docs/security.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Environment Variables",permalink:"/docs/installation/env"}},s={},d=[{value:"SSL",id:"ssl",level:2},{value:"Encryption at Rest",id:"encryption-at-rest",level:2},{value:"CSRF",id:"csrf",level:2},{value:"Password",id:"password",level:2},{value:"SQL Injection",id:"sql-injection",level:2},{value:"Data Validation",id:"data-validation",level:2},{value:"Reading Data",id:"reading-data",level:2},{value:"XSS prevention",id:"xss-prevention",level:2},{value:"Reporting",id:"reporting",level:2}],p={toc:d};function c(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"security-implementations"},"Security Implementations"),(0,a.kt)("h2",{id:"ssl"},"SSL"),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"}," PLEASE USE SSL FOR ALL PRODUCTION HADMEAN INSTALLATION")),(0,a.kt)("h2",{id:"encryption-at-rest"},"Encryption at Rest"),(0,a.kt)("p",null,"All credentials provided in the application are encrypted at rest using ",(0,a.kt)("inlineCode",{parentName:"p"},"aes-256-gcm")," with the ",(0,a.kt)("inlineCode",{parentName:"p"},"CREDENTIALS_ENCRYPTION_KEY")," in your ",(0,a.kt)("inlineCode",{parentName:"p"},".env")),(0,a.kt)("h2",{id:"csrf"},"CSRF"),(0,a.kt)("p",null,"We store your auth tokens in localstorage, so CSRF is not possible"),(0,a.kt)("h2",{id:"password"},"Password"),(0,a.kt)("p",null,"All passwords are hashed using ",(0,a.kt)("inlineCode",{parentName:"p"},"bcrypt"),"."),(0,a.kt)("h2",{id:"sql-injection"},"SQL Injection"),(0,a.kt)("p",null,"All queries are parameterized as we use ",(0,a.kt)("inlineCode",{parentName:"p"},"KnexJS")," for our queries and nowhere do we use raw queries in Hadmean."),(0,a.kt)("h2",{id:"data-validation"},"Data Validation"),(0,a.kt)("p",null,"All data validations are performed in the frontend as well as in the backend."),(0,a.kt)("p",null,"Only fields enabled to be updated/created will be updated/created."),(0,a.kt)("h2",{id:"reading-data"},"Reading Data"),(0,a.kt)("p",null,"Any disabled data will not be sent to the UI."),(0,a.kt)("p",null,"Any request associated with a disabled entity will result in a 404."),(0,a.kt)("p",null,"We don't do any ",(0,a.kt)("inlineCode",{parentName:"p"},"SELECT *")," so only the fields you expose will be requested from the database."),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"Admin accounts are exempted from this 404 because sometimes they need to make requests to them like even to enable them.")),(0,a.kt)("h2",{id:"xss-prevention"},"XSS prevention"),(0,a.kt)("p",null,"We use React and we don't ",(0,a.kt)("inlineCode",{parentName:"p"},"dangerouslySetInnerHTML")," for anything."),(0,a.kt)("h2",{id:"reporting"},"Reporting"),(0,a.kt)("p",null,"We welcome all vulnerability disclosures to ",(0,a.kt)("inlineCode",{parentName:"p"},"security@hadmean.com")," and we prioritize all security fixes over all other kinds of work."),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You will always be running the latest version of Hadmean as long as you use ",(0,a.kt)("inlineCode",{parentName:"p"},"npx hadmean")," to run the application.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/db32d859.81881ba5.js b/assets/js/db32d859.81881ba5.js deleted file mode 100644 index 319f47361..000000000 --- a/assets/js/db32d859.81881ba5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[6653],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function o(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},u=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,i=e.originalType,s=e.parentName,d=l(e,["components","mdxType","originalType","parentName"]),u=p(n),m=a,y=u["".concat(s,".").concat(m)]||u[m]||c[m]||i;return n?r.createElement(y,o(o({ref:t},d),{},{components:n})):r.createElement(y,o({ref:t},d))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var i=n.length,o=new Array(i);o[0]=u;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l.mdxType="string"==typeof e?e:a,o[1]=l;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>c,frontMatter:()=>i,metadata:()=>l,toc:()=>p});var r=n(7462),a=(n(7294),n(3905));const i={sidebar_position:2},o="Security Implementations",l={unversionedId:"security",id:"security",title:"Security Implementations",description:"SSL",source:"@site/docs/security.md",sourceDirName:".",slug:"/security",permalink:"/docs/security",draft:!1,editUrl:"https://github.com/hadmean/archaea/edit/main/docs/security.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Environment Variables",permalink:"/docs/installation/env"},next:{title:"App configuration",permalink:"/docs/category/app-configuration"}},s={},p=[{value:"SSL",id:"ssl",level:2},{value:"Encryption at Rest",id:"encryption-at-rest",level:2},{value:"CSRF",id:"csrf",level:2},{value:"Password",id:"password",level:2},{value:"SQL Injection",id:"sql-injection",level:2},{value:"Data Validation",id:"data-validation",level:2},{value:"Reading Data",id:"reading-data",level:2},{value:"XSS prevention",id:"xss-prevention",level:2},{value:"Reporting",id:"reporting",level:2}],d={toc:p};function c(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"security-implementations"},"Security Implementations"),(0,a.kt)("h2",{id:"ssl"},"SSL"),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"}," PLEASE USE SSL FOR ALL PRODUCTION HADMEAN INSTALLATION")),(0,a.kt)("h2",{id:"encryption-at-rest"},"Encryption at Rest"),(0,a.kt)("p",null,"All credentials provided in the application are encrypted at rest using ",(0,a.kt)("inlineCode",{parentName:"p"},"aes-256-gcm")," with the ",(0,a.kt)("inlineCode",{parentName:"p"},"ENCRYPTION_KEY")," in your ",(0,a.kt)("inlineCode",{parentName:"p"},".env")),(0,a.kt)("h2",{id:"csrf"},"CSRF"),(0,a.kt)("p",null,"We store your auth tokens in localstorage, so CSRF is not possible"),(0,a.kt)("h2",{id:"password"},"Password"),(0,a.kt)("p",null,"All passwords are hashed using ",(0,a.kt)("inlineCode",{parentName:"p"},"bcrypt"),"."),(0,a.kt)("h2",{id:"sql-injection"},"SQL Injection"),(0,a.kt)("p",null,"All queries are parameterized as we use ",(0,a.kt)("inlineCode",{parentName:"p"},"KnexJS")," for our queries and nowhere do we use raw queries in Hadmean."),(0,a.kt)("h2",{id:"data-validation"},"Data Validation"),(0,a.kt)("p",null,"All data validations are performed in the frontend as well as in the backend."),(0,a.kt)("p",null,"Only fields enabled to be updated/created will be updated/created."),(0,a.kt)("h2",{id:"reading-data"},"Reading Data"),(0,a.kt)("p",null,"Any disabled data will not be sent to the UI."),(0,a.kt)("p",null,"Any request associated with a disabled entity will result in a 404."),(0,a.kt)("p",null,"We don't do any ",(0,a.kt)("inlineCode",{parentName:"p"},"SELECT *")," so only the fields you expose will be requested from the database."),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"Admin accounts are exempted from this 404 because sometimes they need to make requests to them like even to enable them.")),(0,a.kt)("h2",{id:"xss-prevention"},"XSS prevention"),(0,a.kt)("p",null,"We use React and we don't ",(0,a.kt)("inlineCode",{parentName:"p"},"dangerouslySetInnerHTML")," for anything."),(0,a.kt)("h2",{id:"reporting"},"Reporting"),(0,a.kt)("p",null,"We welcome all vulnerability disclosures to ",(0,a.kt)("inlineCode",{parentName:"p"},"security@hadmean.com")," and we prioritize all security fixes over all other kinds of work."),(0,a.kt)("admonition",{type:"info"},(0,a.kt)("p",{parentName:"admonition"},"You will always be running the latest version of Hadmean as long as you use ",(0,a.kt)("inlineCode",{parentName:"p"},"npx hadmean")," to run the application.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/de6483d2.4a0b0353.js b/assets/js/de6483d2.4a0b0353.js new file mode 100644 index 000000000..8a9cd4a71 --- /dev/null +++ b/assets/js/de6483d2.4a0b0353.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[769],{3769:a=>{a.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/de6483d2.ad85f011.js b/assets/js/de6483d2.ad85f011.js deleted file mode 100644 index 8170f5612..000000000 --- a/assets/js/de6483d2.ad85f011.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[8769],{3769:a=>{a.exports=JSON.parse('{"name":"docusaurus-plugin-content-docs","id":"default"}')}}]); \ No newline at end of file diff --git a/assets/js/e852cb79.d27053d7.js b/assets/js/e852cb79.d27053d7.js new file mode 100644 index 000000000..cb973ccc3 --- /dev/null +++ b/assets/js/e852cb79.d27053d7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[225],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},p=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,p=i(e,["components","mdxType","originalType","parentName"]),c=u(n),m=r,y=c["".concat(s,".").concat(m)]||c[m]||d[m]||l;return n?a.createElement(y,o(o({ref:t},p),{},{components:n})):a.createElement(y,o({ref:t},p))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=c;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i.mdxType="string"==typeof e?e:r,o[1]=i;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>d,frontMatter:()=>l,metadata:()=>i,toc:()=>u});var a=n(7462),r=(n(7294),n(3905));const l={sidebar_position:2},o="Setup",i={unversionedId:"installation/setup",id:"installation/setup",title:"Setup",description:"1. Have Node.js installed",source:"@site/docs/installation/setup.md",sourceDirName:"installation",slug:"/installation/setup",permalink:"/docs/installation/setup",draft:!1,editUrl:"https://github.com/hadmean/archaea/edit/main/docs/installation/setup.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Requirements",permalink:"/docs/installation/requirements"},next:{title:"Environment Variables",permalink:"/docs/installation/env"}},s={},u=[{value:"Frequently Asked Questions",id:"frequently-asked-questions",level:2}],p={toc:u};function d(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"setup"},"Setup"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Have ",(0,r.kt)("a",{parentName:"p",href:"https://nodejs.org/en/download/"},"Node.js")," installed")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Create a new folder then run"))),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npx hadmean \n")),(0,r.kt)("ol",{start:3},(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Go to ",(0,r.kt)("a",{parentName:"p",href:"http:localhost:3000"},"http://locahost:3000")," to see your fully functional internal tool")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"For the first time you will be asked to provide your database credentials and create your root admin account"))),(0,r.kt)("admonition",{title:"Is that all?",type:"tip"},(0,r.kt)("p",null,"Yes!, No SQL, No Javascript, No tutorial and all under 59 seconds!")),(0,r.kt)("h2",{id:"frequently-asked-questions"},"Frequently Asked Questions"),(0,r.kt)("p",null,"Before you ask, The answer is Yes!. There are some magic underneath to make the installation so simple."),(0,r.kt)("p",null,"Here are some of the questions we get asked when users are bewildered by the simple installation process."),(0,r.kt)("details",null,(0,r.kt)("summary",null,"Where does Hadmean store the credentials and account details"),(0,r.kt)("div",null,(0,r.kt)("p",null,"Hadmean by default stores all configuration in JSON files in the same folder you are running the `npx hadmean` command.",(0,r.kt)("br",null),(0,r.kt)("br",null),"You can set it to be stored in `memory`, `database` or `redis`. More on this in the next section."))),(0,r.kt)("details",null,(0,r.kt)("summary",null,"Are my credentials stored securely"),(0,r.kt)("div",null,(0,r.kt)("p",null,"Yes!, All credentials are encrypted at rest with `aes-256-gcm`"))),(0,r.kt)("details",null,(0,r.kt)("summary",null,"How do I get future updates "),(0,r.kt)("div",null,(0,r.kt)("p",null,"As long as you use `npx hadmean` then `npx` will always check for updates and use the latest to run the application so you will always be running the latest version of Hadmean.",(0,r.kt)("br",null),(0,r.kt)("br",null),"There is no other step from you."))),(0,r.kt)("details",null,(0,r.kt)("summary",null,"How can I create a new Hadmean Project"),(0,r.kt)("div",null,(0,r.kt)("p",null,"Create a new folder and run `npx hadmean` there."))),(0,r.kt)("details",null,(0,r.kt)("summary",null,"How can I run Hadmean on a different PORT "),(0,r.kt)("div",null,(0,r.kt)("p",null,"You can change the default port `3000` by setting `PORT` in your environment variable"))),(0,r.kt)("details",null,(0,r.kt)("summary",null,"After running `npx hadmean` how do I run the application again "),(0,r.kt)("div",null,(0,r.kt)("p",null,"`cd path/to/project/folder && npx hadmean`"))),(0,r.kt)("details",null,(0,r.kt)("summary",null,"Can I update my database credentials"),(0,r.kt)("div",null,(0,r.kt)("p",null,"No! and we strongly advise against trying to do that, Creating a new project will always be the easiest way to go about it."))),(0,r.kt)("p",null,"A ",(0,r.kt)("inlineCode",{parentName:"p"},".env.local")," file is created for every Hadmean installation. If you want to get the best of your installation then kindly go to the next section."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/e852cb79.e93b34c7.js b/assets/js/e852cb79.e93b34c7.js deleted file mode 100644 index 7725df976..000000000 --- a/assets/js/e852cb79.e93b34c7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[8225],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=a.createContext({}),u=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},d=function(e){var t=u(e.components);return a.createElement(s.Provider,{value:t},e.children)},p={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,s=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),c=u(n),m=r,y=c["".concat(s,".").concat(m)]||c[m]||p[m]||l;return n?a.createElement(y,o(o({ref:t},d),{},{components:n})):a.createElement(y,o({ref:t},d))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,o=new Array(l);o[0]=c;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i.mdxType="string"==typeof e?e:r,o[1]=i;for(var u=2;u{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>o,default:()=>p,frontMatter:()=>l,metadata:()=>i,toc:()=>u});var a=n(7462),r=(n(7294),n(3905));const l={sidebar_position:2},o="Setup",i={unversionedId:"installation/setup",id:"installation/setup",title:"Setup",description:"1. Create a new folder then run",source:"@site/docs/installation/setup.md",sourceDirName:"installation",slug:"/installation/setup",permalink:"/docs/installation/setup",draft:!1,editUrl:"https://github.com/hadmean/archaea/edit/main/docs/installation/setup.md",tags:[],version:"current",sidebarPosition:2,frontMatter:{sidebar_position:2},sidebar:"tutorialSidebar",previous:{title:"Requirements",permalink:"/docs/installation/requirements"},next:{title:"Environment Variables",permalink:"/docs/installation/env"}},s={},u=[{value:"Frequently Asked Questions",id:"frequently-asked-questions",level:2}],d={toc:u};function p(e){let{components:t,...n}=e;return(0,r.kt)("wrapper",(0,a.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h1",{id:"setup"},"Setup"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Create a new folder then run")),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-bash"},"npx hadmean \n")),(0,r.kt)("ol",{start:2},(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"Go to ",(0,r.kt)("a",{parentName:"p",href:"http:localhost:3000"},"http://locahost:3000")," to see your fully functional internal tool")),(0,r.kt)("li",{parentName:"ol"},(0,r.kt)("p",{parentName:"li"},"For the first time you will be asked to provide your database credentials and create your root admin account"))),(0,r.kt)("admonition",{title:"Is that all?",type:"tip"},(0,r.kt)("p",null,"Yes!, No SQL, No Javascript, No tutorial and all under 59 seconds!")),(0,r.kt)("h2",{id:"frequently-asked-questions"},"Frequently Asked Questions"),(0,r.kt)("p",null,"Before you ask, The answer is Yes!. There are some magic underneath to make the installation so simple."),(0,r.kt)("p",null,"Here are some of the questions we get asked when users are bewildered by the simple installation process."),(0,r.kt)("details",null,(0,r.kt)("summary",null,"Where does Hadmean store the credentials and account details"),(0,r.kt)("div",null,(0,r.kt)("p",null,"Hadmean by default stores all configuration in JSON files in the same folder you are running the `npx hadmean` command.",(0,r.kt)("br",null),(0,r.kt)("br",null),"You can set it to be stored in `memory`, `database` or `redis`. More on this in the next section."))),(0,r.kt)("details",null,(0,r.kt)("summary",null,"Are my credentials stored securely"),(0,r.kt)("div",null,(0,r.kt)("p",null,"Yes!, All credentials are encrypted at rest with `aes-256-gcm`"))),(0,r.kt)("details",null,(0,r.kt)("summary",null,"How do I get future updates "),(0,r.kt)("div",null,(0,r.kt)("p",null,"As long as you use `npx hadmean` then `npx` will always check for updates and use the latest to run the application so you will always be running the latest version of Hadmean.",(0,r.kt)("br",null),(0,r.kt)("br",null),"There is no other step from you."))),(0,r.kt)("details",null,(0,r.kt)("summary",null,"How can I create a new Hadmean Project"),(0,r.kt)("div",null,(0,r.kt)("p",null,"Create a new folder and run `npx hadmean` there."))),(0,r.kt)("details",null,(0,r.kt)("summary",null,"How can I run Hadmean on a different PORT "),(0,r.kt)("div",null,(0,r.kt)("p",null,"You can change the default port `3000` by setting `PORT` in your environment variable"))),(0,r.kt)("details",null,(0,r.kt)("summary",null,"After running `npx hadmean` how do I run the application again "),(0,r.kt)("div",null,(0,r.kt)("p",null,"`cd path/to/project/folder && npx hadmean`"))),(0,r.kt)("details",null,(0,r.kt)("summary",null,"Can I update my database credentials"),(0,r.kt)("div",null,(0,r.kt)("p",null,"No! and we strongly advise against trying to do that, Creating a new project will always be the easiest way to go about it."))),(0,r.kt)("p",null,"A ",(0,r.kt)("inlineCode",{parentName:"p"},".env.local")," file is created for every Hadmean installation. If you want to get the best of your installation then kindly go to the next section."))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f6df60a0.5d634eb0.js b/assets/js/f6df60a0.5d634eb0.js new file mode 100644 index 000000000..7522d44c4 --- /dev/null +++ b/assets/js/f6df60a0.5d634eb0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[890],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=s(n),m=a,h=d["".concat(u,".").concat(m)]||d[m]||c[m]||o;return n?r.createElement(h,i(i({ref:t},p),{},{components:n})):r.createElement(h,i({ref:t},p))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l.mdxType="string"==typeof e?e:a,i[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=n(7462),a=(n(7294),n(3905));const o={title:"Build a CRUD interface for your database in under 59 seconds",authors:["ayobami"],tags:["introduction"]},i=void 0,l={permalink:"/blog/2022/10/06/crud-under-59-seconds",source:"@site/blog/2022-10-06-crud-under-59-seconds/index.md",title:"Build a CRUD interface for your database in under 59 seconds",description:"For the shortest tutorial on building things, the only step for you is to run",date:"2022-10-06T00:00:00.000Z",formattedDate:"October 6, 2022",tags:[{label:"introduction",permalink:"/blog/tags/introduction"}],readingTime:.9,hasTruncateMarker:!1,authors:[{name:"Ayobami Akingbade",title:"Creator of Hadmean",url:"https://github.com/thrownullexception",imageURL:"https://github.com/thrownullexception.png",key:"ayobami"}],frontMatter:{title:"Build a CRUD interface for your database in under 59 seconds",authors:["ayobami"],tags:["introduction"]},prevItem:{title:"Why you should write more integration tests.",permalink:"/blog/2022/11/28/why-you-should-write-more-integrations-tests"},nextItem:{title:"Hadmean - Introducing the easiest, most efficient internal tool generator.",permalink:"/blog/2022/10/05/introduction"}},u={authorsImageUrls:[void 0]},s=[],p={toc:s};function c(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"For the shortest tutorial on building things, the only step for you is to run"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-js"},"npx hadmean\n")),(0,a.kt)("p",null,"Then go to ",(0,a.kt)("a",{parentName:"p",href:"http://localhost:3000"},"http://localhost:3000")," where you will be asked for your DB credentials and voila, You can start CRUDing your database. There is no Javascript, or SQL, or drag-and-drop tutorial needed to get started."),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://github.com/hadmean/hadmean"},"Hadmean")," is not just a CRUD builder, it is fully an internal tool generator. It might be simple to install but it has tons of features and is entirely customizable."),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://demo.hadmean.com"},"Here")," is a demo application built in under 59 seconds."),(0,a.kt)("p",null,"Other features include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Authentication"),(0,a.kt)("li",{parentName:"ul"},"Users management"),(0,a.kt)("li",{parentName:"ul"},"Roles and permissions"),(0,a.kt)("li",{parentName:"ul"},"CRUD"),(0,a.kt)("li",{parentName:"ul"},"Relationships"),(0,a.kt)("li",{parentName:"ul"},"Forms validation"),(0,a.kt)("li",{parentName:"ul"},"Powerful Filters"),(0,a.kt)("li",{parentName:"ul"},"A powerful multi-page navigation system"),(0,a.kt)("li",{parentName:"ul"},"Automatic Introspection"),(0,a.kt)("li",{parentName:"ul"},"Views"),(0,a.kt)("li",{parentName:"ul"},"Intuitive dashboard builder")),(0,a.kt)("p",null,"You can always refer to the ",(0,a.kt)("a",{parentName:"p",href:"https://hadmean.com/docs/intro"},"documentation")," to get the best out of Hadmean and join our ",(0,a.kt)("a",{parentName:"p",href:"https://discord.gg/aV6DxwXhzN"},"discord server")," to interact with the community."),(0,a.kt)("p",null,"Start building your admin apps with Hadmean today! If you like this project and found this article helpful, please share and leave a star on ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/hadmean/hadmean"},"Github"),"."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f6df60a0.f7fbc376.js b/assets/js/f6df60a0.f7fbc376.js deleted file mode 100644 index b10c47398..000000000 --- a/assets/js/f6df60a0.f7fbc376.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[8890],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),s=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=s(e.components);return r.createElement(u.Provider,{value:t},e.children)},c={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},d=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=s(n),m=a,h=d["".concat(u,".").concat(m)]||d[m]||c[m]||o;return n?r.createElement(h,i(i({ref:t},p),{},{components:n})):r.createElement(h,i({ref:t},p))}));function m(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=d;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l.mdxType="string"==typeof e?e:a,i[1]=l;for(var s=2;s{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>c,frontMatter:()=>o,metadata:()=>l,toc:()=>s});var r=n(7462),a=(n(7294),n(3905));const o={title:"Build a CRUD interface for your database in under 59 seconds",authors:["ayobami"],tags:["introduction"]},i=void 0,l={permalink:"/blog/2022/10/06/crud-under-59-seconds",source:"@site/blog/2022-10-06-crud-under-59-seconds/index.md",title:"Build a CRUD interface for your database in under 59 seconds",description:"For the shortest tutorial on building things, the only step for you is to run",date:"2022-10-06T00:00:00.000Z",formattedDate:"October 6, 2022",tags:[{label:"introduction",permalink:"/blog/tags/introduction"}],readingTime:.9,hasTruncateMarker:!1,authors:[{name:"Ayobami Akingbade",title:"Creator of Hadmean",url:"https://github.com/thrownullexception",imageURL:"https://github.com/thrownullexception.png",key:"ayobami"}],frontMatter:{title:"Build a CRUD interface for your database in under 59 seconds",authors:["ayobami"],tags:["introduction"]},nextItem:{title:"Hadmean - Introducing the easiest, most efficient internal tool generator.",permalink:"/blog/2022/10/05/introduction"}},u={authorsImageUrls:[void 0]},s=[],p={toc:s};function c(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"For the shortest tutorial on building things, the only step for you is to run"),(0,a.kt)("pre",null,(0,a.kt)("code",{parentName:"pre",className:"language-js"},"npx hadmean\n")),(0,a.kt)("p",null,"Then go to ",(0,a.kt)("a",{parentName:"p",href:"http://localhost:3000"},"http://localhost:3000")," where you will be asked for your DB credentials and voila, You can start CRUDing your database. There is no Javascript, or SQL, or drag-and-drop tutorial needed to get started."),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://github.com/hadmean/hadmean"},"Hadmean")," is not just a CRUD builder, it is fully an internal tool generator. It might be simple to install but it has tons of features and is entirely customizable."),(0,a.kt)("p",null,(0,a.kt)("a",{parentName:"p",href:"https://demo.hadmean.com"},"Here")," is a demo application built in under 59 seconds."),(0,a.kt)("p",null,"Other features include:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Authentication"),(0,a.kt)("li",{parentName:"ul"},"Users management"),(0,a.kt)("li",{parentName:"ul"},"Roles and permissions"),(0,a.kt)("li",{parentName:"ul"},"CRUD"),(0,a.kt)("li",{parentName:"ul"},"Relationships"),(0,a.kt)("li",{parentName:"ul"},"Forms validation"),(0,a.kt)("li",{parentName:"ul"},"Powerful Filters"),(0,a.kt)("li",{parentName:"ul"},"A powerful multi-page navigation system"),(0,a.kt)("li",{parentName:"ul"},"Automatic Introspection"),(0,a.kt)("li",{parentName:"ul"},"Views"),(0,a.kt)("li",{parentName:"ul"},"Intuitive dashboard builder")),(0,a.kt)("p",null,"You can always refer to the ",(0,a.kt)("a",{parentName:"p",href:"https://hadmean.com/docs/intro"},"documentation")," to get the best out of Hadmean and join our ",(0,a.kt)("a",{parentName:"p",href:"https://discord.gg/aV6DxwXhzN"},"discord server")," to interact with the community."),(0,a.kt)("p",null,"Start building your admin apps with Hadmean today! If you like this project and found this article helpful, please share and leave a star on ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/hadmean/hadmean"},"Github"),"."))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/fa85c545.d956bea1.js b/assets/js/fa85c545.d956bea1.js deleted file mode 100644 index 7f8bd8ee5..000000000 --- a/assets/js/fa85c545.d956bea1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[5109],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>d});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},u=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},m={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},p=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),p=l(n),d=a,f=p["".concat(c,".").concat(d)]||p[d]||m[d]||o;return n?r.createElement(f,i(i({ref:t},u),{},{components:n})):r.createElement(f,i({ref:t},u))}));function d(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=p;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s.mdxType="string"==typeof e?e:a,i[1]=s;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var r=n(7462),a=(n(7294),n(3905));const o={sidebar_position:1},i="Form Integrations",s={unversionedId:"integrations/form",id:"integrations/form",title:"Form Integrations",description:"After submitting some forms, we may want to perform some action usually sending notifications through email, Slack or SMS. Sometimes we might even want to send the data just created to an HTTP endpoint to do further processing. Form integration is how you achieve that.",source:"@site/docs/integrations/form.md",sourceDirName:"integrations",slug:"/integrations/form",permalink:"/docs/integrations/form",draft:!1,editUrl:"https://github.com/hadmean/archaea/edit/main/docs/integrations/form.md",tags:[],version:"current",sidebarPosition:1,frontMatter:{sidebar_position:1},sidebar:"tutorialSidebar",previous:{title:"Integrations",permalink:"/docs/category/integrations"},next:{title:"Variables",permalink:"/docs/integrations/variables"}},c={},l=[],u={toc:l};function m(e){let{components:t,...n}=e;return(0,a.kt)("wrapper",(0,r.Z)({},u,n,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("h1",{id:"form-integrations"},"Form Integrations"),(0,a.kt)("p",null,"After submitting some forms, we may want to perform some action usually sending notifications through email, Slack or SMS. Sometimes we might even want to send the data just created to an HTTP endpoint to do further processing. Form integration is how you achieve that."),(0,a.kt)("p",null,"Form integrations start with you activating the action i.e Slack, Twilio, SMTP etc. except for HTTP which is always activated. Activating an action is as simple as providing the credentials needed to run the action usually a token or an account ID. Note that all the inputs for this form are encrypted at rest."),(0,a.kt)("p",null,"The form integration will ask you for the "),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"Trigger i.e when you want to run the action, "),(0,a.kt)("li",{parentName:"ul"},"The Entity/Integration you want to use based on where you are filling the form from, "),(0,a.kt)("li",{parentName:"ul"},"The Action from the selected Integration you want to run"),(0,a.kt)("li",{parentName:"ul"},"The action selected creates the fields needed to run the action ")),(0,a.kt)("p",null,"In the form integrations, you will have access to all your secrets, ",(0,a.kt)("inlineCode",{parentName:"p"},"{{ SECRETS.PRIVATE }}")," and constants ",(0,a.kt)("inlineCode",{parentName:"p"},"{{ CONSTANTS.EXAMPLE }}")," and also the current data like this ",(0,a.kt)("inlineCode",{parentName:"p"},"{{ data.myEntityField }}"),". All these are handlebars that you can use anywhere in the form."),(0,a.kt)("p",null,"You can always deactivate an action by clicking on the Deactivate tab and typing the requested input. Deactivating an action will delete the Action secrets and remove all its instances."))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/main.9b1c0708.js b/assets/js/main.9b1c0708.js deleted file mode 100644 index 98c8c276c..000000000 --- a/assets/js/main.9b1c0708.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.9b1c0708.js.LICENSE.txt */ -(self.webpackChunk_hadmean_archaea=self.webpackChunk_hadmean_archaea||[]).push([[179],{723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),o=n(7462),a=n(8356),i=n.n(a),l=n(6887);const s={"01a85c17":[()=>Promise.all([n.e(532),n.e(4013)]).then(n.bind(n,1223)),"@theme/BlogTagsListPage",1223],"09483f84":[()=>n.e(1346).then(n.bind(n,8269)),"@site/docs/app-configuration/entities.md",8269],"0e384e19":[()=>n.e(9671).then(n.bind(n,9881)),"@site/docs/intro.md",9881],"14eb3368":[()=>Promise.all([n.e(532),n.e(9817)]).then(n.bind(n,4228)),"@theme/DocCategoryGeneratedIndexPage",4228],17896441:[()=>Promise.all([n.e(532),n.e(210),n.e(7918)]).then(n.bind(n,5154)),"@theme/DocItem",5154],"1be78505":[()=>Promise.all([n.e(532),n.e(9514)]).then(n.bind(n,9963)),"@theme/DocPage",9963],"1c9918a6":[()=>n.e(5832).then(n.t.bind(n,4469,19)),"/home/runner/work/archaea/archaea/.docusaurus/docusaurus-plugin-content-blog/default/plugin-route-context-module-100.json",4469],"1f391b9e":[()=>Promise.all([n.e(532),n.e(210),n.e(3085)]).then(n.bind(n,4247)),"@theme/MDXPage",4247],"20417f73":[()=>n.e(743).then(n.t.bind(n,7456,19)),"~blog/default/blog-tags-introduction-60a.json",7456],"3093ce87":[()=>n.e(488).then(n.bind(n,5686)),"@site/blog/2022-10-06-crud-under-59-seconds/index.md?truncated=true",5686],"337a5fec":[()=>n.e(8243).then(n.bind(n,8681)),"@site/docs/app-configuration/crud.md",8681],"352612e0":[()=>n.e(5613).then(n.t.bind(n,5745,19)),"/home/runner/work/archaea/archaea/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],"393be207":[()=>n.e(7414).then(n.bind(n,3123)),"@site/src/pages/markdown-page.md",3123],"4cc133be":[()=>n.e(2627).then(n.bind(n,6585)),"@site/docs/app-configuration/system.md",6585],"4f2dd8bc":[()=>n.e(8792).then(n.t.bind(n,1720,19)),"~docs/default/category-docs-tutorialsidebar-category-integrations-b7d.json",1720],"515a748a":[()=>n.e(8026).then(n.bind(n,9913)),"@site/docs/installation/env.md",9913],"5ad2500b":[()=>n.e(2979).then(n.t.bind(n,3599,19)),"~blog/default/blog-tags-introduction-60a-list.json",3599],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,6809)),"@generated/docusaurus.config",6809],"6875c492":[()=>Promise.all([n.e(532),n.e(210),n.e(2529),n.e(8610)]).then(n.bind(n,1714)),"@theme/BlogTagsPostsPage",1714],"6b043ae0":[()=>n.e(4318).then(n.bind(n,1248)),"@site/docs/accounts/system-profile.md",1248],"78784c1a":[()=>n.e(4198).then(n.t.bind(n,7344,19)),"~docs/default/category-docs-tutorialsidebar-category-installation-22f.json",7344],"814f3328":[()=>n.e(2535).then(n.t.bind(n,5641,19)),"~blog/default/blog-post-list-prop-default.json",5641],"8efff416":[()=>n.e(6760).then(n.bind(n,7351)),"@site/docs/integrations/variables.md",7351],"92a485f5":[()=>n.e(1968).then(n.bind(n,3367)),"@site/docs/app-configuration/form.md",3367],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"9e4087bc":[()=>n.e(3608).then(n.bind(n,3169)),"@theme/BlogArchivePage",3169],a6aa9e1f:[()=>Promise.all([n.e(532),n.e(210),n.e(2529),n.e(3089)]).then(n.bind(n,46)),"@theme/BlogListPage",46],a7023ddc:[()=>n.e(1713).then(n.t.bind(n,3457,19)),"~blog/default/blog-tags-tags-4c2.json",3457],a74e05d3:[()=>n.e(1128).then(n.bind(n,3416)),"@site/blog/2022-10-05-introduction/index.md?truncated=true",3416],ac75af2e:[()=>n.e(1199).then(n.bind(n,7750)),"@site/docs/installation/requirements.md",7750],afd3aca9:[()=>n.e(6232).then(n.bind(n,5401)),"@site/docs/app-configuration/diction.md",5401],b17b6868:[()=>n.e(1913).then(n.bind(n,4059)),"@site/docs/app-configuration/relations.md",4059],b2b675dd:[()=>n.e(533).then(n.t.bind(n,8017,19)),"~blog/default/blog-c06.json",8017],b2f554cd:[()=>n.e(1477).then(n.t.bind(n,10,19)),"~blog/default/blog-archive-80c.json",10],bdd73b26:[()=>n.e(4987).then(n.bind(n,8577)),"@site/blog/2022-10-05-introduction/index.md",8577],be6bb62b:[()=>n.e(2826).then(n.bind(n,1660)),"@site/docs/accounts/roles.md",1660],c1515a2f:[()=>n.e(2105).then(n.bind(n,2816)),"@site/docs/app-configuration/views.md",2816],c38be1f1:[()=>n.e(7894).then(n.t.bind(n,4016,19)),"~docs/default/category-docs-tutorialsidebar-category-account-management-371.json",4016],c4f5d8e4:[()=>Promise.all([n.e(532),n.e(4195)]).then(n.bind(n,6327)),"@site/src/pages/index.js",6327],c8dd8362:[()=>n.e(6623).then(n.bind(n,2958)),"@site/docs/app-configuration/fields.md",2958],ca42d992:[()=>n.e(6461).then(n.t.bind(n,8153,19)),"~docs/default/category-docs-tutorialsidebar-category-app-configuration-e01.json",8153],ccc49370:[()=>Promise.all([n.e(532),n.e(210),n.e(2529),n.e(6103)]).then(n.bind(n,5203)),"@theme/BlogPostPage",5203],db32d859:[()=>n.e(6653).then(n.bind(n,7215)),"@site/docs/security.md",7215],de6483d2:[()=>n.e(8769).then(n.t.bind(n,3769,19)),"/home/runner/work/archaea/archaea/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],e852cb79:[()=>n.e(8225).then(n.bind(n,4503)),"@site/docs/installation/setup.md",4503],f6df60a0:[()=>n.e(8890).then(n.bind(n,6392)),"@site/blog/2022-10-06-crud-under-59-seconds/index.md",6392],fa85c545:[()=>n.e(5109).then(n.bind(n,6949)),"@site/docs/integrations/form.md",6949]};function u(e){let{error:t,retry:n,pastDelay:o}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):o?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var c=n(9670),d=n(226);function f(e,t){if("*"===e)return i()({loading:u,loader:()=>n.e(4972).then(n.bind(n,4972)),modules:["@theme/NotFound"],webpack:()=>[4972],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const a=l[`${e}-${t}`],f={},p=[],m=[],h=(0,c.Z)(a);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=s[n];r&&(f[t]=r[0],p.push(r[1]),m.push(r[2]))})),i().Map({loading:u,loader:f,modules:p,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(a));Object.entries(t).forEach((t=>{let[n,r]=t;const o=r.default;if(!o)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof o&&"function"!=typeof o||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{o[e]=r[e]}));let a=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{a=a[e]})),a[l[l.length-1]]=o}));const l=i.__comp;delete i.__comp;const s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,o.Z)({},i,n)))}})}const p=[{path:"/blog",component:f("/blog","ac5"),exact:!0},{path:"/blog/2022/10/05/introduction",component:f("/blog/2022/10/05/introduction","a9b"),exact:!0},{path:"/blog/2022/10/06/crud-under-59-seconds",component:f("/blog/2022/10/06/crud-under-59-seconds","9ab"),exact:!0},{path:"/blog/archive",component:f("/blog/archive","d31"),exact:!0},{path:"/blog/tags",component:f("/blog/tags","a16"),exact:!0},{path:"/blog/tags/introduction",component:f("/blog/tags/introduction","c51"),exact:!0},{path:"/markdown-page",component:f("/markdown-page","7d5"),exact:!0},{path:"/docs",component:f("/docs","5fd"),routes:[{path:"/docs/accounts/roles",component:f("/docs/accounts/roles","20a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/accounts/system-profile",component:f("/docs/accounts/system-profile","a74"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/app-configuration/crud",component:f("/docs/app-configuration/crud","91c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/app-configuration/diction",component:f("/docs/app-configuration/diction","c60"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/app-configuration/entities",component:f("/docs/app-configuration/entities","482"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/app-configuration/fields",component:f("/docs/app-configuration/fields","c9f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/app-configuration/form",component:f("/docs/app-configuration/form","fa4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/app-configuration/relations",component:f("/docs/app-configuration/relations","331"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/app-configuration/system",component:f("/docs/app-configuration/system","311"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/app-configuration/views",component:f("/docs/app-configuration/views","acf"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/account-management",component:f("/docs/category/account-management","d4a"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/app-configuration",component:f("/docs/category/app-configuration","71b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/installation",component:f("/docs/category/installation","776"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/category/integrations",component:f("/docs/category/integrations","3d4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/installation/env",component:f("/docs/installation/env","908"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/installation/requirements",component:f("/docs/installation/requirements","3d8"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/installation/setup",component:f("/docs/installation/setup","ce3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/integrations/form",component:f("/docs/integrations/form","f41"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/integrations/variables",component:f("/docs/integrations/variables","418"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/intro",component:f("/docs/intro","aed"),exact:!0,sidebar:"tutorialSidebar"},{path:"/docs/security",component:f("/docs/security","837"),exact:!0,sidebar:"tutorialSidebar"}]},{path:"/",component:f("/","99d"),exact:!0},{path:"*",component:f("*")}]},8965:(e,t,n)=>{var r,o;!function(){var a,i,l,s,u,c,d,f,p,m,h,g,v,y,b,w,k,E,S,_,x,O,P,C,T,I,A=function(e){var t=new A.Builder;return t.pipeline.add(A.trimmer,A.stopWordFilter,A.stemmer),t.searchPipeline.add(A.stemmer),e.call(t,t),t.build()};A.version="2.3.9",A.utils={},A.utils.warn=(a=this,function(e){a.console&&console.warn&&console.warn(e)}),A.utils.asString=function(e){return null==e?"":e.toString()},A.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),n=Object.keys(e),r=0;r0){var s=A.utils.clone(t)||{};s.position=[i,l],s.index=o.length,o.push(new A.Token(n.slice(i,a),s))}i=a+1}}return o},A.tokenizer.separator=/[\s\-]+/,A.Pipeline=function(){this._stack=[]},A.Pipeline.registeredFunctions=Object.create(null),A.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&A.utils.warn("Overwriting existing registered function: "+t),e.label=t,A.Pipeline.registeredFunctions[e.label]=e},A.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||A.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",e)},A.Pipeline.load=function(e){var t=new A.Pipeline;return e.forEach((function(e){var n=A.Pipeline.registeredFunctions[e];if(!n)throw new Error("Cannot load unregistered function: "+e);t.add(n)})),t},A.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach((function(e){A.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},A.Pipeline.prototype.after=function(e,t){A.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");n+=1,this._stack.splice(n,0,t)},A.Pipeline.prototype.before=function(e,t){A.Pipeline.warnIfFunctionNotRegistered(t);var n=this._stack.indexOf(e);if(-1==n)throw new Error("Cannot find existingFn");this._stack.splice(n,0,t)},A.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},A.Pipeline.prototype.run=function(e){for(var t=this._stack.length,n=0;n1&&(ae&&(n=o),a!=e);)r=n-t,o=t+Math.floor(r/2),a=this.elements[2*o];return a==e||a>e?2*o:al?u+=2:i==l&&(t+=n[s+1]*r[u+1],s+=2,u+=2);return t},A.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},A.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,n=0;t0){var a,i=o.str.charAt(0);i in o.node.edges?a=o.node.edges[i]:(a=new A.TokenSet,o.node.edges[i]=a),1==o.str.length&&(a.final=!0),r.push({node:a,editsRemaining:o.editsRemaining,str:o.str.slice(1)})}if(0!=o.editsRemaining){if("*"in o.node.edges)var l=o.node.edges["*"];else{l=new A.TokenSet;o.node.edges["*"]=l}if(0==o.str.length&&(l.final=!0),r.push({node:l,editsRemaining:o.editsRemaining-1,str:o.str}),o.str.length>1&&r.push({node:o.node,editsRemaining:o.editsRemaining-1,str:o.str.slice(1)}),1==o.str.length&&(o.node.final=!0),o.str.length>=1){if("*"in o.node.edges)var s=o.node.edges["*"];else{s=new A.TokenSet;o.node.edges["*"]=s}1==o.str.length&&(s.final=!0),r.push({node:s,editsRemaining:o.editsRemaining-1,str:o.str.slice(1)})}if(o.str.length>1){var u,c=o.str.charAt(0),d=o.str.charAt(1);d in o.node.edges?u=o.node.edges[d]:(u=new A.TokenSet,o.node.edges[d]=u),1==o.str.length&&(u.final=!0),r.push({node:u,editsRemaining:o.editsRemaining-1,str:c+o.str.slice(2)})}}}return n},A.TokenSet.fromString=function(e){for(var t=new A.TokenSet,n=t,r=0,o=e.length;r=e;t--){var n=this.uncheckedNodes[t],r=n.child.toString();r in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[r]:(n.child._str=r,this.minimizedNodes[r]=n.child),this.uncheckedNodes.pop()}},A.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},A.Index.prototype.search=function(e){return this.query((function(t){new A.QueryParser(e,t).parse()}))},A.Index.prototype.query=function(e){for(var t=new A.Query(this.fields),n=Object.create(null),r=Object.create(null),o=Object.create(null),a=Object.create(null),i=Object.create(null),l=0;l1?1:e},A.Builder.prototype.k1=function(e){this._k1=e},A.Builder.prototype.add=function(e,t){var n=e[this._ref],r=Object.keys(this._fields);this._documents[n]=t||{},this.documentCount+=1;for(var o=0;o=this.length)return A.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},A.QueryLexer.prototype.width=function(){return this.pos-this.start},A.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},A.QueryLexer.prototype.backup=function(){this.pos-=1},A.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=A.QueryLexer.EOS&&this.backup()},A.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(A.QueryLexer.TERM)),e.ignore(),e.more())return A.QueryLexer.lexText},A.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(A.QueryLexer.EDIT_DISTANCE),A.QueryLexer.lexText},A.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(A.QueryLexer.BOOST),A.QueryLexer.lexText},A.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(A.QueryLexer.TERM)},A.QueryLexer.termSeparator=A.tokenizer.separator,A.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==A.QueryLexer.EOS)return A.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return A.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(A.QueryLexer.TERM),A.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(A.QueryLexer.TERM),A.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(A.QueryLexer.PRESENCE),A.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(A.QueryLexer.PRESENCE),A.QueryLexer.lexText;if(t.match(A.QueryLexer.termSeparator))return A.QueryLexer.lexTerm}else e.escapeCharacter()}},A.QueryParser=function(e,t){this.lexer=new A.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},A.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=A.QueryParser.parseClause;e;)e=e(this);return this.query},A.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},A.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},A.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},A.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case A.QueryLexer.PRESENCE:return A.QueryParser.parsePresence;case A.QueryLexer.FIELD:return A.QueryParser.parseField;case A.QueryLexer.TERM:return A.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(n+=" with value '"+t.str+"'"),new A.QueryParseError(n,t.start,t.end)}},A.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=A.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=A.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+t.str+"'";throw new A.QueryParseError(n,t.start,t.end)}var r=e.peekLexeme();if(null==r){n="expecting term or field, found nothing";throw new A.QueryParseError(n,t.start,t.end)}switch(r.type){case A.QueryLexer.FIELD:return A.QueryParser.parseField;case A.QueryLexer.TERM:return A.QueryParser.parseTerm;default:n="expecting term or field, found '"+r.type+"'";throw new A.QueryParseError(n,r.start,r.end)}}},A.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var n=e.query.allFields.map((function(e){return"'"+e+"'"})).join(", "),r="unrecognised field '"+t.str+"', possible fields: "+n;throw new A.QueryParseError(r,t.start,t.end)}e.currentClause.fields=[t.str];var o=e.peekLexeme();if(null==o){r="expecting term, found nothing";throw new A.QueryParseError(r,t.start,t.end)}if(o.type===A.QueryLexer.TERM)return A.QueryParser.parseTerm;r="expecting term, found '"+o.type+"'";throw new A.QueryParseError(r,o.start,o.end)}},A.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(null!=n)switch(n.type){case A.QueryLexer.TERM:return e.nextClause(),A.QueryParser.parseTerm;case A.QueryLexer.FIELD:return e.nextClause(),A.QueryParser.parseField;case A.QueryLexer.EDIT_DISTANCE:return A.QueryParser.parseEditDistance;case A.QueryLexer.BOOST:return A.QueryParser.parseBoost;case A.QueryLexer.PRESENCE:return e.nextClause(),A.QueryParser.parsePresence;default:var r="Unexpected lexeme type '"+n.type+"'";throw new A.QueryParseError(r,n.start,n.end)}else e.nextClause()}},A.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="edit distance must be numeric";throw new A.QueryParseError(r,t.start,t.end)}e.currentClause.editDistance=n;var o=e.peekLexeme();if(null!=o)switch(o.type){case A.QueryLexer.TERM:return e.nextClause(),A.QueryParser.parseTerm;case A.QueryLexer.FIELD:return e.nextClause(),A.QueryParser.parseField;case A.QueryLexer.EDIT_DISTANCE:return A.QueryParser.parseEditDistance;case A.QueryLexer.BOOST:return A.QueryParser.parseBoost;case A.QueryLexer.PRESENCE:return e.nextClause(),A.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+o.type+"'";throw new A.QueryParseError(r,o.start,o.end)}else e.nextClause()}},A.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var n=parseInt(t.str,10);if(isNaN(n)){var r="boost must be numeric";throw new A.QueryParseError(r,t.start,t.end)}e.currentClause.boost=n;var o=e.peekLexeme();if(null!=o)switch(o.type){case A.QueryLexer.TERM:return e.nextClause(),A.QueryParser.parseTerm;case A.QueryLexer.FIELD:return e.nextClause(),A.QueryParser.parseField;case A.QueryLexer.EDIT_DISTANCE:return A.QueryParser.parseEditDistance;case A.QueryLexer.BOOST:return A.QueryParser.parseBoost;case A.QueryLexer.PRESENCE:return e.nextClause(),A.QueryParser.parsePresence;default:r="Unexpected lexeme type '"+o.type+"'";throw new A.QueryParseError(r,o.start,o.end)}else e.nextClause()}},void 0===(o="function"==typeof(r=function(){return A})?r.call(t,n,t,e):r)||(e.exports=o)}()},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,t:()=>a});var r=n(7294);const o=r.createContext(!1);function a(e){let{children:t}=e;const[n,a]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{a(!0)}),[]),r.createElement(o.Provider,{value:n},t)}},9383:(e,t,n)=>{"use strict";var r=n(7294),o=n(3935),a=n(3727),i=n(405),l=n(412);const s=[n(2497),n(3310),n(8320),n(2295)];var u=n(723),c=n(6775),d=n(8790);function f(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var p=n(7462),m=n(5742),h=n(2263),g=n(4996),v=n(6668),y=n(1944),b=n(4711),w=n(9727),k=n(3320),E=n(197);function S(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.Z)(),n=(0,b.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:o}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:o})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function _(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),o=function(){const{siteConfig:{url:e}}=(0,h.Z)(),{pathname:t}=(0,c.TH)();return e+(0,g.Z)(t)}(),a=t?`${n}${t}`:o;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:a}),r.createElement("link",{rel:"canonical",href:a}))}function x(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,v.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(y.d,{image:n}),r.createElement(_,null),r.createElement(S,null),r.createElement(E.Z,{tag:k.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,p.Z)({key:t},e))))))}const O=new Map;function P(e){if(O.has(e.pathname))return{...e,pathname:O.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return O.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return O.set(e.pathname,t),{...e,pathname:t}}var C=n(8934),T=n(8940);function I(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{var r;const o=(null==(r=t.default)?void 0:r[e])??t[e];return null==o?void 0:o(...n)}));return()=>o.forEach((e=>null==e?void 0:e()))}const A=function(e){let{children:t,location:n,previousLocation:o}=e;return(0,r.useLayoutEffect)((()=>{o!==n&&(o&&function(e){const{hash:t}=e;if(t){const e=decodeURIComponent(t.substring(1)),n=document.getElementById(e);null==n||n.scrollIntoView()}else window.scrollTo(0,0)}(n),I("onRouteDidUpdate",{previousLocation:o,location:n}))}),[o,n]),t};function L(e){const t=(0,d.f)(u.Z,e);return Promise.all(t.map((e=>null==e.route.component.preload?void 0:e.route.component.preload())))}class N extends r.Component{constructor(e){super(e),this.previousLocation=void 0,this.routeUpdateCleanupCb=void 0,this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?I("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=I("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),L(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(A,{previousLocation:this.previousLocation,location:t},r.createElement(c.AW,{location:t,render:()=>e}))}}const R=N,D="docusaurus-base-url-issue-banner-container",j="docusaurus-base-url-issue-banner-suggestion-container",M="__DOCUSAURUS_INSERT_BASEURL_BANNER";function F(e){return`\nwindow['${M}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${M}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${D}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{window[M]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,F(e))),r.createElement("div",{id:D}))}function z(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,c.TH)();return t&&n===e?r.createElement(B,null):null}function U(){const{siteConfig:{favicon:e,title:t},i18n:{currentLocale:n,localeConfigs:o}}=(0,h.Z)(),a=(0,g.Z)(e),{htmlLang:i,direction:l}=o[n];return r.createElement(m.Z,null,r.createElement("html",{lang:i,dir:l}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),e&&r.createElement("link",{rel:"icon",href:a}))}var $=n(4763);function q(){const e=(0,d.H)(u.Z),t=(0,c.TH)();return r.createElement($.Z,null,r.createElement(T.M,null,r.createElement(C.t,null,r.createElement(f,null,r.createElement(U,null),r.createElement(x,null),r.createElement(z,null),r.createElement(R,{location:P(t)},e)))))}var H=n(6887);const G=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{var r;if("undefined"==typeof document)return void n();const o=document.createElement("link");o.setAttribute("rel","prefetch"),o.setAttribute("href",e),o.onload=()=>t(),o.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??(null==(r=document.getElementsByName("script")[0])?void 0:r.parentNode);null==a||a.appendChild(o)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var Q=n(9670);const V=new Set,Z=new Set,W=()=>{var e,t;return(null==(e=navigator.connection)?void 0:e.effectiveType.includes("2g"))||(null==(t=navigator.connection)?void 0:t.saveData)},K={prefetch(e){if(!(e=>!W()&&!Z.has(e)&&!V.has(e))(e))return!1;V.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(H).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,Q.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?G(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!W()&&!Z.has(e))(e)&&(Z.add(e),L(e))},Y=Object.freeze(K);if(l.Z.canUseDOM){window.docusaurus=Y;const e=o.hydrate;L(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(a.VK,null,r.createElement(q,null))),document.getElementById("__docusaurus"))}))}},8940:(e,t,n)=>{"use strict";n.d(t,{_:()=>c,M:()=>d});var r=n(7294),o=n(6809);const a=JSON.parse('{"@cmfcmf/docusaurus-search-local":{"default":{"titleBoost":5,"contentBoost":1,"tagsBoost":3,"parentCategoriesBoost":2,"indexDocSidebarParentCategories":0,"maxSearchResults":8}},"docusaurus-plugin-content-docs":{"default":{"path":"/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/docs","mainDocId":"intro","docs":[{"id":"accounts/roles","path":"/docs/accounts/roles","sidebar":"tutorialSidebar"},{"id":"accounts/system-profile","path":"/docs/accounts/system-profile","sidebar":"tutorialSidebar"},{"id":"app-configuration/crud","path":"/docs/app-configuration/crud","sidebar":"tutorialSidebar"},{"id":"app-configuration/diction","path":"/docs/app-configuration/diction","sidebar":"tutorialSidebar"},{"id":"app-configuration/entities","path":"/docs/app-configuration/entities","sidebar":"tutorialSidebar"},{"id":"app-configuration/fields","path":"/docs/app-configuration/fields","sidebar":"tutorialSidebar"},{"id":"app-configuration/form","path":"/docs/app-configuration/form","sidebar":"tutorialSidebar"},{"id":"app-configuration/relations","path":"/docs/app-configuration/relations","sidebar":"tutorialSidebar"},{"id":"app-configuration/system","path":"/docs/app-configuration/system","sidebar":"tutorialSidebar"},{"id":"app-configuration/views","path":"/docs/app-configuration/views","sidebar":"tutorialSidebar"},{"id":"installation/env","path":"/docs/installation/env","sidebar":"tutorialSidebar"},{"id":"installation/requirements","path":"/docs/installation/requirements","sidebar":"tutorialSidebar"},{"id":"installation/setup","path":"/docs/installation/setup","sidebar":"tutorialSidebar"},{"id":"integrations/form","path":"/docs/integrations/form","sidebar":"tutorialSidebar"},{"id":"integrations/variables","path":"/docs/integrations/variables","sidebar":"tutorialSidebar"},{"id":"intro","path":"/docs/intro","sidebar":"tutorialSidebar"},{"id":"security","path":"/docs/security","sidebar":"tutorialSidebar"},{"id":"/category/installation","path":"/docs/category/installation","sidebar":"tutorialSidebar"},{"id":"/category/app-configuration","path":"/docs/category/app-configuration","sidebar":"tutorialSidebar"},{"id":"/category/integrations","path":"/docs/category/integrations","sidebar":"tutorialSidebar"},{"id":"/category/account-management","path":"/docs/category/account-management","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/docs/intro","label":"intro"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var l=n(7529);const s=JSON.parse('{"docusaurusVersion":"2.0.1","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.0.1"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.0.1"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.0.1"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.0.1"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.0.1"},"@cmfcmf/docusaurus-search-local":{"type":"package","name":"@cmfcmf/docusaurus-search-local","version":"0.11.0"},"docusaurus-tailwindcss":{"type":"local"}}}'),u={siteConfig:o.default,siteMetadata:s,globalData:a,i18n:i,codeTranslations:l},c=r.createContext(u);function d(e){let{children:t}=e;return r.createElement(c.Provider,{value:u},t)}},4763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var r=n(7294),o=n(412),a=n(5742),i=n(2185);function l(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",height:"50vh",width:"100%",fontSize:"20px"}},r.createElement("h1",null,"This page crashed."),r.createElement("p",null,t.message),r.createElement("button",{type:"button",onClick:n},"Try again"))}function s(e){let{error:t,tryAgain:n}=e;return r.createElement(c,{fallback:()=>r.createElement(l,{error:t,tryAgain:n})},r.createElement(a.Z,null,r.createElement("title",null,"Page Error")),r.createElement(i.Z,null,r.createElement(l,{error:t,tryAgain:n})))}const u=e=>r.createElement(s,e);class c extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){o.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??u)(e)}return e??null}}},412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,o={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294),o=n(405);function a(e){return r.createElement(o.ql,e)}},9960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7462),o=n(7294),a=n(3727),i=n(8780),l=n(2263),s=n(3919),u=n(412);const c=o.createContext({collectLink:()=>{}});var d=n(4996);function f(e,t){var n;let{isNavLink:f,to:p,href:m,activeClassName:h,isActive:g,"data-noBrokenLinkCheck":v,autoAddBaseUrl:y=!0,...b}=e;const{siteConfig:{trailingSlash:w,baseUrl:k}}=(0,l.Z)(),{withBaseUrl:E}=(0,d.C)(),S=(0,o.useContext)(c),_=(0,o.useRef)(null);(0,o.useImperativeHandle)(t,(()=>_.current));const x=p||m;const O=(0,s.Z)(x),P=null==x?void 0:x.replace("pathname://","");let C=void 0!==P?(T=P,y&&(e=>e.startsWith("/"))(T)?E(T):T):void 0;var T;C&&O&&(C=(0,i.applyTrailingSlash)(C,{trailingSlash:w,baseUrl:k}));const I=(0,o.useRef)(!1),A=f?a.OL:a.rU,L=u.Z.canUseIntersectionObserver,N=(0,o.useRef)();(0,o.useEffect)((()=>(!L&&O&&null!=C&&window.docusaurus.prefetch(C),()=>{L&&N.current&&N.current.disconnect()})),[N,C,L,O]);const R=(null==(n=C)?void 0:n.startsWith("#"))??!1,D=!C||!O||R;return D||v||S.collectLink(C),D?o.createElement("a",(0,r.Z)({ref:_,href:C},x&&!O&&{target:"_blank",rel:"noopener noreferrer"},b)):o.createElement(A,(0,r.Z)({},b,{onMouseEnter:()=>{I.current||null==C||(window.docusaurus.preload(C),I.current=!0)},innerRef:e=>{_.current=e,L&&e&&O&&(N.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(N.current.unobserve(e),N.current.disconnect(),null!=C&&window.docusaurus.prefetch(C))}))})),N.current.observe(e))},to:C},f&&{isActive:g,activeClassName:h}))}const p=o.forwardRef(f)},5999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s,I:()=>l});var r=n(7294);function o(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=null==t?void 0:t[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var a=n(7529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return a[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return o(i({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:a}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,o(l,a))}},9935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},3919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function o(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>o,b:()=>r})},4996:(e,t,n)=>{"use strict";n.d(t,{C:()=>a,Z:()=>i});var r=n(2263),o=n(3919);function a(){const{siteConfig:{baseUrl:e,url:t}}=(0,r.Z)();return{withBaseUrl:(n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)}}function i(e,t){void 0===t&&(t={});const{withBaseUrl:n}=a();return n(e,t)}},2263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294),o=n(8940);function a(){return(0,r.useContext)(o._)}},8084:(e,t,n)=>{"use strict";n.d(t,{OD:()=>a,eZ:()=>i});var r=n(2263),o=n(9935);function a(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,r.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}function i(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=a(e),i=null==r?void 0:r[t];if(!i&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return i}},2389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294),o=n(8934);function a(){return(0,r.useContext)(o._)}},9670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});function r(e){const t={};return function e(n,r){Object.entries(n).forEach((n=>{let[o,a]=n;const i=r?`${r}.${o}`:o;var l;"object"==typeof(l=a)&&l&&Object.keys(l).length>0?e(a,i):t[i]=a}))}(e),t}},226:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,z:()=>a});var r=n(7294);const o=r.createContext(null);function a(e){let{children:t,value:n}=e;const a=r.useContext(o),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...null==n?void 0:n.data};return{plugin:t.plugin,data:r}}({parent:a,value:n})),[a,n]);return r.createElement(o.Provider,{value:i},t)}},4104:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>h,gA:()=>d,WS:()=>f,_r:()=>u,Jo:()=>g,zh:()=>c,yW:()=>m,gB:()=>p});var r=n(6775),o=n(8084);const a=e=>e.versions.find((e=>e.isLast));function i(e,t){const n=a(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function l(e,t){const n=i(e,t),o=null==n?void 0:n.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:o,alternateDocVersions:o?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(o.id):{}}}const s={},u=()=>(0,o.OD)("docusaurus-plugin-content-docs")??s,c=e=>(0,o.eZ)("docusaurus-plugin-content-docs",e,{failfast:!0});function d(e){void 0===e&&(e={});const t=u(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const o=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),a=o?{pluginId:o[0],pluginData:o[1]}:void 0;if(!a&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return a}(t,n,e)}function f(e){void 0===e&&(e={});const t=d(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:i(t.pluginData,n)}}function p(e){return c(e).versions}function m(e){const t=c(e);return a(t)}function h(e){const t=c(e),{pathname:n}=(0,r.TH)();return l(t,n)}function g(e){const t=c(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=a(e);return{latestDocSuggestion:l(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},8320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>a});var r=n(4865),o=n.n(r);o().configure({showSpinner:!1});const a={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{o().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){o().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(7410),o=n(6809);!function(e){const{themeConfig:{prism:t}}=o.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},9471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294);const o="iconExternalLink_nPIU";function a(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:o},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},2185:(e,t,n)=>{"use strict";n.d(t,{Z:()=>ea});var r=n(7294),o=n(6010),a=n(4763),i=n(1944),l=n(5281),s=n(9727),u=n(5999),c=n(6775),d=n(5936);function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}const p="skipToContent_fXgn";function m(){const{containerRef:e,handleSkip:t}=function(){const e=(0,r.useRef)(null),{action:t}=(0,c.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.querySelector(`.${l.k.wrapper.main}`);t&&f(t)}),[]);return(0,d.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&f(e.current)})),{containerRef:e,handleSkip:n}}();return r.createElement("div",{ref:e,role:"region"},r.createElement("a",{href:"#",className:p,onClick:t},r.createElement(u.Z,{id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation"},"Skip to main content")))}var h=n(6668),g=n(9689),v=n(7462);function y(e){let{width:t=21,height:n=21,color:o="currentColor",strokeWidth:a=1.2,className:i,...l}=e;return r.createElement("svg",(0,v.Z)({viewBox:"0 0 15 15",width:t,height:n},l),r.createElement("g",{stroke:o,strokeWidth:a},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const b="announcementBar_mb4j",w="announcementBarPlaceholder_vyr4",k="announcementBarClose_gvF7",E="announcementBarContent_xLdY";function S(){const{isActive:e,close:t}=(0,g.nT)(),{announcementBar:n}=(0,h.L)();if(!e)return null;const{content:a,backgroundColor:i,textColor:l,isCloseable:s}=n;return r.createElement("div",{className:b,style:{backgroundColor:i,color:l},role:"banner"},s&&r.createElement("div",{className:w}),r.createElement("div",{className:E,dangerouslySetInnerHTML:{__html:a}}),s?r.createElement("button",{type:"button",className:(0,o.Z)("clean-btn close",k),onClick:t,"aria-label":(0,u.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},r.createElement(y,{width:14,height:14,strokeWidth:3.1})):null)}var _=n(2961),x=n(2466);var O=n(902),P=n(3102);const C=r.createContext(null);function T(e){let{children:t}=e;const n=function(){const e=(0,_.e)(),t=(0,P.HY)(),[n,o]=(0,r.useState)(!1),a=null!==t.component,i=(0,O.D9)(a);return(0,r.useEffect)((()=>{a&&!i&&o(!0)}),[a,i]),(0,r.useEffect)((()=>{a?e.shown||o(!0):o(!1)}),[e.shown,a]),(0,r.useMemo)((()=>[n,o]),[n])}();return r.createElement(C.Provider,{value:n},t)}function I(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function A(){const e=(0,r.useContext)(C);if(!e)throw new O.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,o=(0,r.useCallback)((()=>n(!1)),[n]),a=(0,P.HY)();return(0,r.useMemo)((()=>({shown:t,hide:o,content:I(a)})),[o,a,t])}function L(e){let{header:t,primaryMenu:n,secondaryMenu:a}=e;const{shown:i}=A();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,o.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},a)))}var N=n(2949),R=n(2389);function D(e){return r.createElement("svg",(0,v.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function j(e){return r.createElement("svg",(0,v.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const M={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function F(e){let{className:t,value:n,onChange:a}=e;const i=(0,R.Z)(),l=(0,u.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===n?(0,u.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,u.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,o.Z)(M.toggle,t)},r.createElement("button",{className:(0,o.Z)("clean-btn",M.toggleButton,!i&&M.toggleButtonDisabled),type:"button",onClick:()=>a("dark"===n?"light":"dark"),disabled:!i,title:l,"aria-label":l},r.createElement(D,{className:(0,o.Z)(M.toggleIcon,M.lightToggleIcon)}),r.createElement(j,{className:(0,o.Z)(M.toggleIcon,M.darkToggleIcon)})))}const B=r.memo(F);function z(e){let{className:t}=e;const n=(0,h.L)().colorMode.disableSwitch,{colorMode:o,setColorMode:a}=(0,N.I)();return n?null:r.createElement(B,{className:t,value:o,onChange:a})}var U=n(1327);function $(){return r.createElement(U.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function q(){const e=(0,_.e)();return r.createElement("button",{type:"button",className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(y,{color:"var(--ifm-color-emphasis-600)"}))}function H(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement($,null),r.createElement(z,{className:"margin-right--md"}),r.createElement(q,null))}var G=n(9960),Q=n(4996),V=n(3919);function Z(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}var W=n(9471);function K(e){let{activeBasePath:t,activeBaseRegex:n,to:o,href:a,label:i,html:l,isDropdownLink:s,prependBaseUrlToHref:u,...c}=e;const d=(0,Q.Z)(o),f=(0,Q.Z)(t),p=(0,Q.Z)(a,{forcePrependBaseUrl:!0}),m=i&&a&&!(0,V.Z)(a),h=l?{dangerouslySetInnerHTML:{__html:l}}:{children:r.createElement(r.Fragment,null,i,m&&r.createElement(W.Z,s&&{width:12,height:12}))};return a?r.createElement(G.Z,(0,v.Z)({href:u?p:a},c,h)):r.createElement(G.Z,(0,v.Z)({to:d,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?Z(n,t.pathname):t.pathname.startsWith(f)},c,h))}function Y(e){let{className:t,isDropdownItem:n=!1,...a}=e;const i=r.createElement(K,(0,v.Z)({className:(0,o.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},a));return n?r.createElement("li",null,i):i}function X(e){let{className:t,isDropdownItem:n,...a}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(K,(0,v.Z)({className:(0,o.Z)("menu__link",t)},a)))}function J(e){let{mobile:t=!1,position:n,...o}=e;const a=t?X:Y;return r.createElement(a,(0,v.Z)({},o,{activeClassName:o.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var ee=n(6043),te=n(8596),ne=n(2263);function re(e,t){return e.some((e=>function(e,t){return!!(0,te.Mg)(e.to,t)||!!Z(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function oe(e){let{items:t,position:n,className:a,onClick:i,...l}=e;const s=(0,r.useRef)(null),[u,c]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{s.current&&!s.current.contains(e.target)&&c(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}}),[s]),r.createElement("div",{ref:s,className:(0,o.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":u})},r.createElement(K,(0,v.Z)({"aria-haspopup":"true","aria-expanded":u,role:"button",href:l.to?void 0:"#",className:(0,o.Z)("navbar__link",a)},l,{onClick:l.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),c(!u))}}),l.children??l.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,n)=>r.createElement(ho,(0,v.Z)({isDropdownItem:!0,onKeyDown:e=>{if(n===t.length-1&&"Tab"===e.key){e.preventDefault(),c(!1);const t=s.current.nextElementSibling;if(t){(t instanceof HTMLAnchorElement?t:t.querySelector("a")).focus()}}},activeClassName:"dropdown__link--active"},e,{key:n}))))))}function ae(e){let{items:t,className:n,position:a,onClick:i,...l}=e;const s=function(){const{siteConfig:{baseUrl:e}}=(0,ne.Z)(),{pathname:t}=(0,c.TH)();return t.replace(e,"/")}(),u=re(t,s),{collapsed:d,toggleCollapsed:f,setCollapsed:p}=(0,ee.u)({initialState:()=>!u});return(0,r.useEffect)((()=>{u&&p(!u)}),[s,u,p]),r.createElement("li",{className:(0,o.Z)("menu__list-item",{"menu__list-item--collapsed":d})},r.createElement(K,(0,v.Z)({role:"button",className:(0,o.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},l,{onClick:e=>{e.preventDefault(),f()}}),l.children??l.label),r.createElement(ee.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:d},t.map(((e,t)=>r.createElement(ho,(0,v.Z)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function ie(e){let{mobile:t=!1,...n}=e;const o=t?ae:oe;return r.createElement(o,n)}var le=n(4711);function se(e){let{width:t=20,height:n=20,...o}=e;return r.createElement("svg",(0,v.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},o),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const ue="iconLanguage_nlXk";var ce=n(3935);function de(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function fe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function pe(e,t,n){var r,o=t.initialState;return{getState:function(){return o},dispatch:function(r,a){var i=function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var tt,nt,rt,ot=null,at=(tt=-1,nt=-1,rt=void 0,function(e){var t=++tt;return Promise.resolve(e).then((function(e){return rt&&t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var ft=/((gt|sm)-|galaxy nexus)|samsung[- ]/i;var pt=["props","refresh","store"],mt=["inputElement","formElement","panelElement"],ht=["inputElement"],gt=["inputElement","maxLength"],vt=["item","source"];function yt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function bt(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Et(e){var t=e.props,n=e.refresh,r=e.store,o=kt(e,pt);return{getEnvironmentProps:function(e){var n=e.inputElement,o=e.formElement,a=e.panelElement;function i(e){!r.getState().isOpen&&r.pendingRequests.isEmpty()||e.target===n||!1===[o,a].some((function(t){return n=t,r=e.target,n===r||n.contains(r);var n,r}))&&(r.dispatch("blur",null),t.debug||r.pendingRequests.cancelAll())}return bt({onTouchStart:i,onMouseDown:i,onTouchMove:function(e){!1!==r.getState().isOpen&&n===t.environment.document.activeElement&&e.target!==n&&n.blur()}},kt(e,mt))},getRootProps:function(e){return bt({role:"combobox","aria-expanded":r.getState().isOpen,"aria-haspopup":"listbox","aria-owns":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label")},e)},getFormProps:function(e){e.inputElement;return bt({action:"",noValidate:!0,role:"search",onSubmit:function(a){var i;a.preventDefault(),t.onSubmit(bt({event:a,refresh:n,state:r.getState()},o)),r.dispatch("submit",null),null===(i=e.inputElement)||void 0===i||i.blur()},onReset:function(a){var i;a.preventDefault(),t.onReset(bt({event:a,refresh:n,state:r.getState()},o)),r.dispatch("reset",null),null===(i=e.inputElement)||void 0===i||i.focus()}},kt(e,ht))},getLabelProps:function(e){return bt({htmlFor:"".concat(t.id,"-input"),id:"".concat(t.id,"-label")},e)},getInputProps:function(e){var a;function i(e){(t.openOnFocus||Boolean(r.getState().query))&&it(bt({event:e,props:t,query:r.getState().completion||r.getState().query,refresh:n,store:r},o)),r.dispatch("focus",null)}var l=e||{},s=(l.inputElement,l.maxLength),u=void 0===s?512:s,c=kt(l,gt),d=We(r.getState()),f=function(e){return Boolean(e&&e.match(ft))}((null===(a=t.environment.navigator)||void 0===a?void 0:a.userAgent)||""),p=null!=d&&d.itemUrl&&!f?"go":"search";return bt({"aria-autocomplete":"both","aria-activedescendant":r.getState().isOpen&&null!==r.getState().activeItemId?"".concat(t.id,"-item-").concat(r.getState().activeItemId):void 0,"aria-controls":r.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label"),value:r.getState().completion||r.getState().query,id:"".concat(t.id,"-input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:p,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:u,type:"search",onChange:function(e){it(bt({event:e,props:t,query:e.currentTarget.value.slice(0,u),refresh:n,store:r},o))},onKeyDown:function(e){!function(e){var t=e.event,n=e.props,r=e.refresh,o=e.store,a=dt(e,lt);if("ArrowUp"===t.key||"ArrowDown"===t.key){var i=function(){var e=n.environment.document.getElementById("".concat(n.id,"-item-").concat(o.getState().activeItemId));e&&(e.scrollIntoViewIfNeeded?e.scrollIntoViewIfNeeded(!1):e.scrollIntoView(!1))},l=function(){var e=We(o.getState());if(null!==o.getState().activeItemId&&e){var n=e.item,i=e.itemInputValue,l=e.itemUrl,s=e.source;s.onActive(ut({event:t,item:n,itemInputValue:i,itemUrl:l,refresh:r,source:s,state:o.getState()},a))}};t.preventDefault(),!1===o.getState().isOpen&&(n.openOnFocus||Boolean(o.getState().query))?it(ut({event:t,props:n,query:o.getState().query,refresh:r,store:o},a)).then((function(){o.dispatch(t.key,{nextActiveItemId:n.defaultActiveItemId}),l(),setTimeout(i,0)})):(o.dispatch(t.key,{}),l(),i())}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if("Tab"===t.key)o.dispatch("blur",null),o.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(n.debug||o.pendingRequests.cancelAll());t.preventDefault();var s=We(o.getState()),u=s.item,c=s.itemInputValue,d=s.itemUrl,f=s.source;if(t.metaKey||t.ctrlKey)void 0!==d&&(f.onSelect(ut({event:t,item:u,itemInputValue:c,itemUrl:d,refresh:r,source:f,state:o.getState()},a)),n.navigator.navigateNewTab({itemUrl:d,item:u,state:o.getState()}));else if(t.shiftKey)void 0!==d&&(f.onSelect(ut({event:t,item:u,itemInputValue:c,itemUrl:d,refresh:r,source:f,state:o.getState()},a)),n.navigator.navigateNewWindow({itemUrl:d,item:u,state:o.getState()}));else if(t.altKey);else{if(void 0!==d)return f.onSelect(ut({event:t,item:u,itemInputValue:c,itemUrl:d,refresh:r,source:f,state:o.getState()},a)),void n.navigator.navigate({itemUrl:d,item:u,state:o.getState()});it(ut({event:t,nextState:{isOpen:!1},props:n,query:c,refresh:r,store:o},a)).then((function(){f.onSelect(ut({event:t,item:u,itemInputValue:c,itemUrl:d,refresh:r,source:f,state:o.getState()},a))}))}}}(bt({event:e,props:t,refresh:n,store:r},o))},onFocus:i,onBlur:ke,onClick:function(n){e.inputElement!==t.environment.document.activeElement||r.getState().isOpen||i(n)}},c)},getPanelProps:function(e){return bt({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){r.dispatch("mouseleave",null)}},e)},getListProps:function(e){return bt({role:"listbox","aria-labelledby":"".concat(t.id,"-label"),id:"".concat(t.id,"-list")},e)},getItemProps:function(e){var a=e.item,i=e.source,l=kt(e,vt);return bt({id:"".concat(t.id,"-item-").concat(a.__autocomplete_id),role:"option","aria-selected":r.getState().activeItemId===a.__autocomplete_id,onMouseMove:function(e){if(a.__autocomplete_id!==r.getState().activeItemId){r.dispatch("mousemove",a.__autocomplete_id);var t=We(r.getState());if(null!==r.getState().activeItemId&&t){var i=t.item,l=t.itemInputValue,s=t.itemUrl,u=t.source;u.onActive(bt({event:e,item:i,itemInputValue:l,itemUrl:s,refresh:n,source:u,state:r.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var l=i.getItemInputValue({item:a,state:r.getState()}),s=i.getItemUrl({item:a,state:r.getState()});(s?Promise.resolve():it(bt({event:e,nextState:{isOpen:!1},props:t,query:l,refresh:n,store:r},o))).then((function(){i.onSelect(bt({event:e,item:a,itemInputValue:l,itemUrl:s,refresh:n,source:i,state:r.getState()},o))}))}},l)}}}var St="1.7.2",_t=[{segment:"autocomplete-core",version:St}];function xt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ot(e){for(var t=1;t=n?null===r?null:0:o}function At(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Lt(e){for(var t=1;t0},reshape:function(e){return e.sources}},e),{},{id:null!==(n=e.id)&&void 0!==n?n:we(),plugins:o,initialState:Ce({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var n;null===(n=e.onStateChange)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onStateChange)||void 0===n?void 0:n.call(e,t)}))},onSubmit:function(t){var n;null===(n=e.onSubmit)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onSubmit)||void 0===n?void 0:n.call(e,t)}))},onReset:function(t){var n;null===(n=e.onReset)||void 0===n||n.call(e,t),o.forEach((function(e){var n;return null===(n=e.onReset)||void 0===n?void 0:n.call(e,t)}))},getSources:function(n){return Promise.all([].concat(xe(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return _e(e,n)}))).then((function(e){return me(e)})).then((function(e){return e.map((function(e){return Ce(Ce({},e),{},{onSelect:function(n){e.onSelect(n),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,n)}))},onActive:function(n){e.onActive(n),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,n)}))}})}))}))},navigator:Ce({navigate:function(e){var t=e.itemUrl;r.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,n=r.open(t,"_blank","noopener");null==n||n.focus()},navigateNewWindow:function(e){var t=e.itemUrl;r.open(t,"_blank","noopener")}},e.navigator)})}(e,t),r=pe(Rt,n,(function(e){var t=e.prevState,r=e.state;n.onStateChange(jt({prevState:t,state:r,refresh:i},o))})),o=function(e){var t=e.store;return{setActiveItemId:function(e){t.dispatch("setActiveItemId",e)},setQuery:function(e){t.dispatch("setQuery",e)},setCollections:function(e){var n=0,r=e.map((function(e){return ge(ge({},e),{},{items:me(e.items).map((function(e){return ge(ge({},e),{},{__autocomplete_id:n++})}))})}));t.dispatch("setCollections",r)},setIsOpen:function(e){t.dispatch("setIsOpen",e)},setStatus:function(e){t.dispatch("setStatus",e)},setContext:function(e){t.dispatch("setContext",e)}}}({store:r}),a=Et(jt({props:n,refresh:i,store:r},o));function i(){return it(jt({event:new Event("input"),nextState:{isOpen:r.getState().isOpen},props:n,query:r.getState().query,refresh:i,store:r},o))}return n.plugins.forEach((function(e){var n;return null===(n=e.subscribe)||void 0===n?void 0:n.call(e,jt(jt({},o),{},{refresh:i,onSelect:function(e){t.push({onSelect:e})},onActive:function(e){t.push({onActive:e})}}))})),function(e){var t,n,r=e.metadata,o=e.environment;if(null===(t=o.navigator)||void 0===t||null===(n=t.userAgent)||void 0===n?void 0:n.includes("Algolia Crawler")){var a=o.document.createElement("meta"),i=o.document.querySelector("head");a.name="algolia:metadata",setTimeout((function(){a.content=JSON.stringify(r),i.appendChild(a)}),0)}}({metadata:Ct({plugins:n.plugins,options:e}),environment:n.environment}),jt(jt({refresh:i},a),o)}function Bt(e){return{current:e}}function zt(e,t){var n=void 0;return function(){for(var r=arguments.length,o=new Array(r),a=0;a=5&&((o||!e&&5===r)&&(i.push(r,0,o,n),r=6),e&&(i.push(r,e,0,n),r=6)),o=""},s=0;s"===t?(r=1,o=""):o=t+o[0]:a?t===a?a="":o+=t:'"'===t||"'"===t?a=t:">"===t?(l(),r=1):r&&("="===t?(r=5,n=o,o=""):"/"===t&&(r<5||">"===e[s][u+1])?(l(),3===r&&(i=i[0]),r=i,(i=i[0]).push(2,0,r),r=0):" "===t||"\t"===t||"\n"===t||"\r"===t?(l(),r=2):o+=t),3===r&&"!--"===o&&(r=4,i=i[0])}return l(),i}(e)),t),arguments,[])).length>1?t:t[0]}var Ht=function(e){var t=e.environment,n=t.document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("class","aa-SubmitIcon"),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("width","20"),n.setAttribute("height","20"),n.setAttribute("fill","currentColor");var r=t.document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d","M16.041 15.856c-0.034 0.026-0.067 0.055-0.099 0.087s-0.060 0.064-0.087 0.099c-1.258 1.213-2.969 1.958-4.855 1.958-1.933 0-3.682-0.782-4.95-2.050s-2.050-3.017-2.050-4.95 0.782-3.682 2.050-4.95 3.017-2.050 4.95-2.050 3.682 0.782 4.95 2.050 2.050 3.017 2.050 4.95c0 1.886-0.745 3.597-1.959 4.856zM21.707 20.293l-3.675-3.675c1.231-1.54 1.968-3.493 1.968-5.618 0-2.485-1.008-4.736-2.636-6.364s-3.879-2.636-6.364-2.636-4.736 1.008-6.364 2.636-2.636 3.879-2.636 6.364 1.008 4.736 2.636 6.364 3.879 2.636 6.364 2.636c2.125 0 4.078-0.737 5.618-1.968l3.675 3.675c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414z"),n.appendChild(r),n},Gt=function(e){var t=e.environment,n=t.document.createElementNS("http://www.w3.org/2000/svg","svg");n.setAttribute("class","aa-ClearIcon"),n.setAttribute("viewBox","0 0 24 24"),n.setAttribute("width","18"),n.setAttribute("height","18"),n.setAttribute("fill","currentColor");var r=t.document.createElementNS("http://www.w3.org/2000/svg","path");return r.setAttribute("d","M5.293 6.707l5.293 5.293-5.293 5.293c-0.391 0.391-0.391 1.024 0 1.414s1.024 0.391 1.414 0l5.293-5.293 5.293 5.293c0.391 0.391 1.024 0.391 1.414 0s0.391-1.024 0-1.414l-5.293-5.293 5.293-5.293c0.391-0.391 0.391-1.024 0-1.414s-1.024-0.391-1.414 0l-5.293 5.293-5.293-5.293c-0.391-0.391-1.024-0.391-1.414 0s-0.391 1.024 0 1.414z"),n.appendChild(r),n},Qt=function(e){var t=e.environment.document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("class","aa-LoadingIcon"),t.setAttribute("viewBox","0 0 100 100"),t.setAttribute("width","20"),t.setAttribute("height","20"),t.innerHTML='\n \n',t},Vt=["ontouchstart","ontouchend","ontouchmove","ontouchcancel"];function Zt(e,t,n){e[t]=null===n?"":"number"!=typeof n?n:n+"px"}function Wt(e){this._listeners[e.type](e)}function Kt(e,t,n){var r,o,a=e[t];if("style"===t)if("string"==typeof n)e.style=n;else if(null===n)e.style="";else for(t in n)a&&n[t]===a[t]||Zt(e.style,t,n[t]);else"o"===t[0]&&"n"===t[1]?(r=t!==(t=t.replace(/Capture$/,"")),((o=t.toLowerCase())in e||Vt.includes(o))&&(t=o),t=t.slice(2),e._listeners||(e._listeners={}),e._listeners[t]=n,n?a||e.addEventListener(t,Wt,r):e.removeEventListener(t,Wt,r)):"list"!==t&&"tagName"!==t&&"form"!==t&&"type"!==t&&"size"!==t&&"download"!==t&&"href"!==t&&t in e?e[t]=null==n?"":n:"function"!=typeof n&&"dangerouslySetInnerHTML"!==t&&(null==n||!1===n&&!/^ar/.test(t)?e.removeAttribute(t):e.setAttribute(t,n))}function Yt(e){return"onChange"===e?"onInput":e}function Xt(e,t){for(var n in t)Kt(e,Yt(n),t[n])}function Jt(e,t){for(var n in t)"o"===n[0]&&"n"===n[1]||Kt(e,Yt(n),t[n])}var en=["children"];function tn(e){return function(e){if(Array.isArray(e))return nn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return nn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return nn(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function nn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function on(e){return function(t,n){var r=n.children,o=void 0===r?[]:r,a=rn(n,en),i=e.document.createElement(t);return Xt(i,a),i.append.apply(i,tn(o)),i}}var an=["autocompleteScopeApi","environment","classNames","getInputProps","getInputPropsCore","isDetached","state"];function ln(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function sn(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function dn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function fn(e){for(var t=1;t2&&(i.children=arguments.length>3?hn.call(arguments,2):n),"function"==typeof e&&null!=e.defaultProps)for(a in e.defaultProps)void 0===i[a]&&(i[a]=e.defaultProps[a]);return On(e,i,r,o,null)}function On(e,t,n,r,o){var a={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==o?++vn:o};return null==o&&null!=gn.vnode&&gn.vnode(a),a}function Pn(e){return e.children}function Cn(e,t){this.props=e,this.context=t}function Tn(e,t){if(null==t)return e.__?Tn(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t0?On(p.type,p.props,p.key,p.ref?p.ref:null,p.__v):p)){if(p.__=n,p.__b=n.__b+1,null===(f=v[c])||f&&p.key==f.key&&p.type===f.type)v[c]=void 0;else for(d=0;d0&&void 0!==arguments[0]?arguments[0]:[];return{get:function(){return e},add:function(t){var n=e[e.length-1];(null==n?void 0:n.isHighlighted)===t.isHighlighted?e[e.length-1]={value:n.value+t.value,isHighlighted:n.isHighlighted}:e.push(t)}}}(n?[{value:n,isHighlighted:!1}]:[]);return t.forEach((function(e){var t=e.split("__/aa-highlight__");r.add({value:t[0],isHighlighted:!0}),""!==t[1]&&r.add({value:t[1],isHighlighted:!1})})),r.get()}function Wn(e){return function(e){if(Array.isArray(e))return Kn(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return Kn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Kn(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Kn(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n",""":'"',"'":"'"},er=new RegExp(/\w/i),tr=/&(amp|quot|lt|gt|#39);/g,nr=RegExp(tr.source);function rr(e,t){var n,r,o,a=e[t],i=(null===(n=e[t+1])||void 0===n?void 0:n.isHighlighted)||!0,l=(null===(r=e[t-1])||void 0===r?void 0:r.isHighlighted)||!0;return er.test((o=a.value)&&nr.test(o)?o.replace(tr,(function(e){return Jn[e]})):o)||l!==i?a.isHighlighted:l}function or(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ar(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var kr={clearButton:"aa-ClearButton",detachedCancelButton:"aa-DetachedCancelButton",detachedContainer:"aa-DetachedContainer",detachedFormContainer:"aa-DetachedFormContainer",detachedOverlay:"aa-DetachedOverlay",detachedSearchButton:"aa-DetachedSearchButton",detachedSearchButtonIcon:"aa-DetachedSearchButtonIcon",detachedSearchButtonPlaceholder:"aa-DetachedSearchButtonPlaceholder",form:"aa-Form",input:"aa-Input",inputWrapper:"aa-InputWrapper",inputWrapperPrefix:"aa-InputWrapperPrefix",inputWrapperSuffix:"aa-InputWrapperSuffix",item:"aa-Item",label:"aa-Label",list:"aa-List",loadingIndicator:"aa-LoadingIndicator",panel:"aa-Panel",panelLayout:"aa-PanelLayout aa-Panel--scrollable",root:"aa-Autocomplete",source:"aa-Source",sourceFooter:"aa-SourceFooter",sourceHeader:"aa-SourceHeader",sourceNoResults:"aa-SourceNoResults",submitButton:"aa-SubmitButton"},Er=function(e,t){var n=e.children;(0,e.render)(n,t)},Sr={createElement:xn,Fragment:Pn,render:Qn};function _r(e){var t=e.panelPlacement,n=e.container,r=e.form,o=e.environment,a=n.getBoundingClientRect(),i=(o.pageYOffset||o.document.documentElement.scrollTop||o.document.body.scrollTop||0)+a.top+a.height;switch(t){case"start":return{top:i,left:a.left};case"end":return{top:i,right:o.document.documentElement.clientWidth-(a.left+a.width)};case"full-width":return{top:i,left:0,right:0,width:"unset",maxWidth:"unset"};case"input-wrapper-width":var l=r.getBoundingClientRect();return{top:i,left:l.left,right:o.document.documentElement.clientWidth-(l.left+l.width),width:"unset",maxWidth:"unset"};default:throw new Error("[Autocomplete] The `panelPlacement` value ".concat(JSON.stringify(t)," is not valid."))}}function xr(){return xr=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function qr(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Hr(e){for(var t=1;t0;if(!f.value.core.openOnFocus&&!t.query)return n;var r=Boolean(u.current||f.value.renderer.renderNoResults);return!n&&r||n},__autocomplete_metadata:{userAgents:Tr,options:e}}))})),h=Bt(Hr({collections:[],completion:null,context:{},isOpen:!1,query:"",activeItemId:null,status:"idle"},f.value.core.initialState)),g={getEnvironmentProps:f.value.renderer.getEnvironmentProps,getFormProps:f.value.renderer.getFormProps,getInputProps:f.value.renderer.getInputProps,getItemProps:f.value.renderer.getItemProps,getLabelProps:f.value.renderer.getLabelProps,getListProps:f.value.renderer.getListProps,getPanelProps:f.value.renderer.getPanelProps,getRootProps:f.value.renderer.getRootProps},v={setActiveItemId:m.value.setActiveItemId,setQuery:m.value.setQuery,setCollections:m.value.setCollections,setIsOpen:m.value.setIsOpen,setStatus:m.value.setStatus,setContext:m.value.setContext,refresh:m.value.refresh},y=l((function(){return qt.bind(f.value.renderer.renderer.createElement)})),b=l((function(){return mn({autocomplete:m.value,autocompleteScopeApi:v,classNames:f.value.renderer.classNames,environment:f.value.core.environment,isDetached:p.value,placeholder:f.value.core.placeholder,propGetters:g,setIsModalOpen:S,state:h.current,translations:f.value.renderer.translations})}));function w(){Xt(b.value.panel,{style:p.value?{}:_r({panelPlacement:f.value.renderer.panelPlacement,container:b.value.root,form:b.value.form,environment:f.value.core.environment})})}function k(e){h.current=e;var t={autocomplete:m.value,autocompleteScopeApi:v,classNames:f.value.renderer.classNames,components:f.value.renderer.components,container:f.value.renderer.container,html:y.value,dom:b.value,panelContainer:p.value?b.value.detachedContainer:f.value.renderer.panelContainer,propGetters:g,state:h.current,renderer:f.value.renderer.renderer},n=!ye(e)&&!u.current&&f.value.renderer.renderNoResults||f.value.renderer.render;!function(e){var t=e.autocomplete,n=e.autocompleteScopeApi,r=e.dom,o=e.propGetters,a=e.state;Jt(r.root,o.getRootProps(Pr({state:a,props:t.getRootProps({})},n))),Jt(r.input,o.getInputProps(Pr({state:a,props:t.getInputProps({inputElement:r.input}),inputElement:r.input},n))),Xt(r.label,{hidden:"stalled"===a.status}),Xt(r.loadingIndicator,{hidden:"stalled"!==a.status}),Xt(r.clearButton,{hidden:!a.query})}(t),function(e,t){var n=t.autocomplete,r=t.autocompleteScopeApi,o=t.classNames,a=t.html,i=t.dom,l=t.panelContainer,s=t.propGetters,u=t.state,c=t.components,d=t.renderer;if(u.isOpen){l.contains(i.panel)||"loading"===u.status||l.appendChild(i.panel),i.panel.classList.toggle("aa-Panel--stalled","stalled"===u.status);var f=u.collections.filter((function(e){var t=e.source,n=e.items;return t.templates.noResults||n.length>0})).map((function(e,t){var i=e.source,l=e.items;return d.createElement("section",{key:t,className:o.source,"data-autocomplete-source-id":i.sourceId},i.templates.header&&d.createElement("div",{className:o.sourceHeader},i.templates.header({components:c,createElement:d.createElement,Fragment:d.Fragment,items:l,source:i,state:u,html:a})),i.templates.noResults&&0===l.length?d.createElement("div",{className:o.sourceNoResults},i.templates.noResults({components:c,createElement:d.createElement,Fragment:d.Fragment,source:i,state:u,html:a})):d.createElement("ul",xr({className:o.list},s.getListProps(Pr({state:u,props:n.getListProps({})},r))),l.map((function(e){var t=n.getItemProps({item:e,source:i});return d.createElement("li",xr({key:t.id,className:o.item},s.getItemProps(Pr({state:u,props:t},r))),i.templates.item({components:c,createElement:d.createElement,Fragment:d.Fragment,item:e,state:u,html:a}))}))),i.templates.footer&&d.createElement("div",{className:o.sourceFooter},i.templates.footer({components:c,createElement:d.createElement,Fragment:d.Fragment,items:l,source:i,state:u,html:a})))})),p=d.createElement(d.Fragment,null,d.createElement("div",{className:o.panelLayout},f),d.createElement("div",{className:"aa-GradientBottom"})),m=f.reduce((function(e,t){return e[t.props["data-autocomplete-source-id"]]=t,e}),{});e(Pr(Pr({children:p,state:u,sections:f,elements:m},d),{},{components:c,html:a},r),i.panel)}else l.contains(i.panel)&&l.removeChild(i.panel)}(n,t)}function E(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};o();var t=f.value.renderer,n=t.components,r=$r(t,Ur);c.current=Rr(r,f.value.core,{components:zr(n,(function(e){return!e.value.hasOwnProperty("__autocomplete_componentName")})),initialState:h.current},e),s(),a(),m.value.refresh().then((function(){k(h.current)}))}function S(e){requestAnimationFrame((function(){var t=f.value.core.environment.document.body.contains(b.value.detachedOverlay);e!==t&&(e?(f.value.core.environment.document.body.appendChild(b.value.detachedOverlay),f.value.core.environment.document.body.classList.add("aa-Detached"),b.value.input.focus()):(f.value.core.environment.document.body.removeChild(b.value.detachedOverlay),f.value.core.environment.document.body.classList.remove("aa-Detached"),m.value.setQuery(""),m.value.refresh()))}))}return r((function(){var e=m.value.getEnvironmentProps({formElement:b.value.form,panelElement:b.value.panel,inputElement:b.value.input});return Xt(f.value.core.environment,e),function(){Xt(f.value.core.environment,Object.keys(e).reduce((function(e,t){return Hr(Hr({},e),{},Gr({},t,void 0))}),{}))}})),r((function(){var e=p.value?f.value.core.environment.document.body:f.value.renderer.panelContainer,t=p.value?b.value.detachedOverlay:b.value.panel;return p.value&&h.current.isOpen&&S(!0),k(h.current),function(){e.contains(t)&&e.removeChild(t)}})),r((function(){var e=f.value.renderer.container;return e.appendChild(b.value.root),function(){e.removeChild(b.value.root)}})),r((function(){var e=zt((function(e){k(e.state)}),0);return d.current=function(t){var n=t.state,r=t.prevState;(p.value&&r.isOpen!==n.isOpen&&S(n.isOpen),p.value||!n.isOpen||r.isOpen||w(),n.query!==r.query)&&f.value.core.environment.document.querySelectorAll(".aa-Panel--scrollable").forEach((function(e){0!==e.scrollTop&&(e.scrollTop=0)}));e({state:n})},function(){d.current=void 0}})),r((function(){var e=zt((function(){var e=p.value;p.value=f.value.core.environment.matchMedia(f.value.renderer.detachedMediaQuery).matches,e!==p.value?E({}):requestAnimationFrame(w)}),20);return f.value.core.environment.addEventListener("resize",e),function(){f.value.core.environment.removeEventListener("resize",e)}})),r((function(){if(!p.value)return function(){};function e(e){b.value.detachedContainer.classList.toggle("aa-DetachedContainer--modal",e)}function t(t){e(t.matches)}var n=f.value.core.environment.matchMedia(getComputedStyle(f.value.core.environment.document.documentElement).getPropertyValue("--aa-detached-modal-media-query"));e(n.matches);var r=Boolean(n.addEventListener);return r?n.addEventListener("change",t):n.addListener(t),function(){r?n.removeEventListener("change",t):n.removeListener(t)}})),r((function(){return requestAnimationFrame(w),function(){}})),Hr(Hr({},v),{},{update:E,destroy:function(){o()}})}var Vr=n(5742);const Zr=n(8965),Wr=Zr,Kr=(n(8965),e=>Zr.tokenizer(e).map((e=>e.str))),Yr=Wr;var Xr=n(813),Jr=n.n(Xr);function eo(){var e;const t=(0,c.TH)(),n=(0,c.k6)(),{siteConfig:{baseUrl:o}}=(0,ne.Z)(),[a,i]=(0,r.useState)({terms:[],isDocsOrBlog:!1});return(0,r.useEffect)((()=>{var e;if(null==(e=t.state)||!e.cmfcmfhighlight||0===t.state.cmfcmfhighlight.terms.length)return;i(t.state.cmfcmfhighlight);const{cmfcmfhighlight:r,...o}=t.state;n.replace({...t,state:o})}),[null==(e=t.state)?void 0:e.cmfcmfhighlight,n,t]),(0,r.useEffect)((()=>{if(0===a.terms.length)return;const e=a.isDocsOrBlog?document.getElementsByTagName("article")[0]:document.getElementsByTagName("main")[0];if(!e)return;const t=new(Jr())(e),n={ignoreJoiners:!0};return t.mark(a.terms,n),()=>t.unmark(n)}),[a,o]),null}var to=n(8084),no=n(3320);function ro(e){let{document:t}=e;const[n,r]=t.sectionRoute.split("#");let o=n;return r&&(o+="#"+r),o}const oo={documents:[],index:Yr((function(){this.ref("id"),this.field("title"),this.field("content")}))};const ao=()=>{const e=(0,R.Z)(),[t,n]=(0,r.useState)((()=>!!e&&"dark"===document.documentElement.getAttribute("data-theme")));(0,r.useEffect)((()=>{const e=new MutationObserver((()=>{n("dark"===document.documentElement.getAttribute("data-theme"))}));return e.observe(document.documentElement,{attributes:!0,attributeFilter:["data-theme"]}),()=>e.disconnect()}),[]);const{siteConfig:{baseUrl:o}}=(0,ne.Z)(),{titleBoost:a,contentBoost:i,tagsBoost:l,parentCategoriesBoost:s,indexDocSidebarParentCategories:d,maxSearchResults:f}=(0,to.eZ)("@cmfcmf/docusaurus-search-local"),p=(0,c.k6)(),{tags:m}=(0,no._q)(),h=(0,r.useRef)(m);(0,r.useEffect)((()=>{h.current=m}),[m]);const g=(0,r.useRef)({}),v=async e=>{const t=g.current[e];switch(null==t?void 0:t.state){case"ready":return t;case void 0:{const t=[];g.current[e]={state:"loading",callbacks:t};const n=await async function(e,t){{let r;try{const n=await fetch(`${e}search-index-${t}.json`);if(!n.ok)return oo;r=await n.json()}catch(n){return oo}return{documents:r.documents,index:Yr.Index.load(r.index)}}}(o,e);return t.forEach((e=>e(n))),g.current[e]={state:"ready",...n}}case"loading":return new Promise((e=>{t.callbacks.push(e)}))}},y=(0,u.I)({message:"cmfcmf/d-s-l.searchBar.placeholder",description:"Placeholder shown in the searchbar"}),b=(0,r.useRef)(null),w=(0,r.useRef)(null);return(0,r.useEffect)((()=>{if(b.current)return w.current=Qr({container:b.current,placeholder:y,renderer:{createElement:r.createElement,Fragment:r.Fragment},render(e,t){let{children:n}=e;(0,ce.render)(n,t)},navigator:{navigate(e){let{item:t,itemUrl:n}=e;p.push(n,{cmfcmfhighlight:{terms:t.terms,isDocsOrBlog:"docs"===t.document.type||"blog"===t.document.type}})}},detachedMediaQuery:"",defaultActiveItemId:0,translations:{clearButtonTitle:(0,u.I)({message:"cmfcmf/d-s-l.searchBar.clearButtonTitle",description:"Title of the button to clear the current search input"}),detachedCancelButtonText:(0,u.I)({message:"cmfcmf/d-s-l.searchBar.detachedCancelButtonText",description:"Text of the button to close the detached search window"}),submitButtonTitle:(0,u.I)({message:"cmfcmf/d-s-l.searchBar.submitButtonTitle",description:"Title of the button to submit a new search"})},getSources(e){let{query:t}=e;return[{sourceId:"search-results",templates:{item(e){let{item:t}=e;const n=ro(t);return r.createElement("a",{href:n,className:"aa-ItemLink",onClick:e=>{e.preventDefault(),p.push(n,{cmfcmfhighlight:{terms:t.terms,isDocsOrBlog:"docs"===t.document.type||"blog"===t.document.type}})}},r.createElement("div",{className:"aa-ItemContent"},r.createElement("div",{className:"aa-ItemContentBody"},r.createElement("div",{className:"aa-ItemContentTitle"},t.document.sectionTitle),t.document.pageTitle!==t.document.sectionTitle&&r.createElement("div",{className:"aa-ItemContentDescription"},t.document.pageTitle))),r.createElement("div",{className:"aa-ItemActions"},r.createElement("button",{className:"aa-ItemActionButton aa-DesktopOnly aa-ActiveOnly",type:"button",title:"Select"},r.createElement("svg",{viewBox:"0 0 24 24",width:"20",height:"20",fill:"currentColor"},r.createElement("path",{d:"M18.984 6.984h2.016v6h-15.188l3.609 3.609-1.406 1.406-6-6 6-6 1.406 1.406-3.609 3.609h13.172v-4.031z"})))))},noResults:()=>r.createElement("div",{className:"aa-ItemContent"},r.createElement("div",{className:"aa-ItemContentBody"},(0,u.I)({message:"cmfcmf/d-s-l.searchBar.noResults",description:"message shown if no results are found"})))},getItemUrl(e){let{item:t}=e;return ro(t)},async getItems(){const e=h.current,n=await Promise.all(e.map((e=>v(e)))),r=Kr(t);return n.flatMap((e=>{let{index:t,documents:n}=e;return t.query((e=>{e.term(r,{fields:["title"],boost:a}),e.term(r,{fields:["title"],boost:a,wildcard:Yr.Query.wildcard.TRAILING}),e.term(r,{fields:["content"],boost:i}),e.term(r,{fields:["content"],boost:i,wildcard:Yr.Query.wildcard.TRAILING}),e.term(r,{fields:["tags"],boost:l}),e.term(r,{fields:["tags"],boost:l,wildcard:Yr.Query.wildcard.TRAILING}),d&&(e.term(r,{fields:["sidebarParentCategories"],boost:s}),e.term(r,{fields:["sidebarParentCategories"],boost:s,wildcard:Yr.Query.wildcard.TRAILING}))})).slice(0,f).map((e=>({document:n.find((t=>t.id.toString()===e.ref)),score:e.score,terms:r})))})).sort(((e,t)=>t.score-e.score)).slice(0,f)}}]}}),()=>{var e;return null==(e=w.current)?void 0:e.destroy()}}),[f]),r.createElement(r.Fragment,null,r.createElement(Vr.Z,null,r.createElement("body",{"data-theme":t?"dark":"light"})),r.createElement(eo,null),r.createElement("div",{className:"dsla-search-wrapper"},r.createElement("div",{className:"dsla-search-field",ref:b,"data-tags":m.join(",")})))},io="searchBox_ZlJk";function lo(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,o.Z)(n,io)},t)}var so=n(4104),uo=n(2802);var co=n(373);const fo=e=>e.docs.find((t=>t.id===e.mainDocId));const po={default:J,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:o,...a}=e;const{i18n:{currentLocale:i,locales:l,localeConfigs:s}}=(0,ne.Z)(),c=(0,le.l)(),d=[...n,...l.map((e=>{const n=`pathname://${c.createUrl({locale:e,fullyQualified:!1})}`;return{label:s[e].label,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...o],f=t?(0,u.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):s[i].label;return r.createElement(ie,(0,v.Z)({},a,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(se,{className:ue}),f),items:d}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(lo,{className:n},r.createElement(ao,null))},dropdown:ie,html:function(e){let{value:t,className:n,mobile:a=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,o.Z)({navbar__item:!a&&!i,"menu__list-item":a},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:o,...a}=e;const{activeDoc:i}=(0,so.Iw)(o),l=(0,uo.vY)(t,o);return null===l?null:r.createElement(J,(0,v.Z)({exact:!0},a,{isActive:()=>(null==i?void 0:i.path)===l.path||!(null==i||!i.sidebar)&&i.sidebar===l.sidebar,label:n??l.id,to:l.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:o,...a}=e;const{activeDoc:i}=(0,so.Iw)(o),l=(0,uo.oz)(t,o).link;if(!l)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(J,(0,v.Z)({exact:!0},a,{isActive:()=>(null==i?void 0:i.sidebar)===t,label:n??l.label,to:l.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:o,...a}=e;const i=(0,uo.lO)(o)[0],l=t??i.label,s=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(i).path;return r.createElement(J,(0,v.Z)({},a,{label:l,to:s}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:o,dropdownItemsBefore:a,dropdownItemsAfter:i,...l}=e;const s=(0,so.Iw)(n),c=(0,so.gB)(n),{savePreferredVersionName:d}=(0,co.J)(n),f=c.map((e=>{const t=s.alternateDocVersions[e.name]??fo(e);return{label:e.label,to:t.path,isActive:()=>e===s.activeVersion,onClick:()=>d(e.name)}})),p=[...a,...f,...i],m=(0,uo.lO)(n)[0],h=t&&p.length>1?(0,u.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):m.label,g=t&&p.length>1?void 0:fo(m).path;return p.length<=1?r.createElement(J,(0,v.Z)({},l,{mobile:t,label:h,to:g,isActive:o?()=>!1:void 0})):r.createElement(ie,(0,v.Z)({},l,{mobile:t,label:h,to:g,items:p,isActive:o?()=>!1:void 0}))}},mo=po;function ho(e){let{type:t,...n}=e;const o=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=mo[o];if(!a)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(a,n)}function go(){const e=(0,_.e)(),t=(0,h.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(ho,(0,v.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function vo(e){return r.createElement("button",(0,v.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(u.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function yo(){const e=0===(0,h.L)().navbar.items.length,t=A();return r.createElement(r.Fragment,null,!e&&r.createElement(vo,{onClick:()=>t.hide()}),t.content)}function bo(){const e=(0,_.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(L,{header:r.createElement(H,null),primaryMenu:r.createElement(go,null),secondaryMenu:r.createElement(yo,null)}):null}const wo="navbarHideable_m1mJ",ko="navbarHidden_jGov";function Eo(e){return r.createElement("div",(0,v.Z)({role:"presentation"},e,{className:(0,o.Z)("navbar-sidebar__backdrop",e.className)}))}function So(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:a}}=(0,h.L)(),i=(0,_.e)(),{navbarRef:l,isNavbarVisible:s}=function(e){const[t,n]=(0,r.useState)(e),o=(0,r.useRef)(!1),a=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(a.current=e.getBoundingClientRect().height)}),[]);return(0,x.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i=l?n(!1):i+u{if(e)return t.location.hash?(o.current=!0,void n(!1)):void n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:l,className:(0,o.Z)("navbar","navbar--fixed-top",n&&[wo,!s&&ko],{"navbar--dark":"dark"===a,"navbar--primary":"primary"===a,"navbar-sidebar--show":i.shown})},t,r.createElement(Eo,{onClick:i.toggle}),r.createElement(bo,null))}function _o(e){let{width:t=30,height:n=30,className:o,...a}=e;return r.createElement("svg",(0,v.Z)({className:o,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},a),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function xo(){const e=(0,_.e)();return r.createElement("button",{onClick:e.toggle,onKeyDown:e.toggle,"aria-label":"Navigation bar toggle",className:"navbar__toggle clean-btn",type:"button",tabIndex:0},r.createElement(_o,null))}const Oo="colorModeToggle_DEke";function Po(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(ho,(0,v.Z)({},e,{key:t})))))}function Co(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function To(){const e=(0,_.e)(),t=(0,h.L)().navbar.items,[n,o]=function(e){function t(e){return"left"===(e.position??"right")}return[e.filter(t),e.filter((e=>!t(e)))]}(t),a=t.find((e=>"search"===e.type));return r.createElement(Co,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(xo,null),r.createElement($,null),r.createElement(Po,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(Po,{items:o}),r.createElement(z,{className:Oo}),!a&&r.createElement(lo,null,r.createElement(ao,null)))})}function Io(){return r.createElement(So,null,r.createElement(To,null))}function Ao(e){let{item:t}=e;const{to:n,href:o,label:a,prependBaseUrlToHref:i,...l}=t,s=(0,Q.Z)(n),u=(0,Q.Z)(o,{forcePrependBaseUrl:!0});return r.createElement(G.Z,(0,v.Z)({className:"footer__link-item"},o?{href:i?u:o}:{to:s},l),a,o&&!(0,V.Z)(o)&&r.createElement(W.Z,null))}function Lo(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(Ao,{item:t}))}function No(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(Lo,{key:t,item:e})))))}function Ro(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(No,{key:t,column:e}))))}function Do(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function jo(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(Ao,{item:t})}function Mo(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(jo,{item:e}),t.length!==n+1&&r.createElement(Do,null))))))}function Fo(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(Ro,{columns:t}):r.createElement(Mo,{links:t})}var Bo=n(941);const zo="footerLogoLink_BH7S";function Uo(e){let{logo:t}=e;const{withBaseUrl:n}=(0,Q.C)(),a={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(Bo.Z,{className:(0,o.Z)("footer__logo",t.className),alt:t.alt,sources:a,width:t.width,height:t.height,style:t.style})}function $o(e){let{logo:t}=e;return t.href?r.createElement(G.Z,{href:t.href,className:zo,target:t.target},r.createElement(Uo,{logo:t})):r.createElement(Uo,{logo:t})}function qo(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Ho(e){let{style:t,links:n,logo:a,copyright:i}=e;return r.createElement("footer",{className:(0,o.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(a||i)&&r.createElement("div",{className:"footer__bottom text--center"},a&&r.createElement("div",{className:"margin-bottom--sm"},a),i)))}function Go(){const{footer:e}=(0,h.L)();if(!e)return null;const{copyright:t,links:n,logo:o,style:a}=e;return r.createElement(Ho,{style:a,links:n&&n.length>0&&r.createElement(Fo,{links:n}),logo:o&&r.createElement($o,{logo:o}),copyright:t&&r.createElement(qo,{copyright:t})})}const Qo=r.memo(Go);var Vo=n(12);const Zo="docusaurus.tab.",Wo=r.createContext(void 0);const Ko=(0,O.Qc)([N.S,g.pl,function(e){let{children:t}=e;const n=function(){const[e,t]=(0,r.useState)({}),n=(0,r.useCallback)(((e,t)=>{(0,Vo.W)(`docusaurus.tab.${e}`).set(t)}),[]);(0,r.useEffect)((()=>{try{const e={};(0,Vo._)().forEach((t=>{if(t.startsWith(Zo)){const n=t.substring(Zo.length);e[n]=(0,Vo.W)(t).get()}})),t(e)}catch(e){console.error(e)}}),[]);const o=(0,r.useCallback)(((e,r)=>{t((t=>({...t,[e]:r}))),n(e,r)}),[n]);return(0,r.useMemo)((()=>({tabGroupChoices:e,setTabGroupChoices:o})),[e,o])}();return r.createElement(Wo.Provider,{value:n},t)},x.OC,co.L5,i.VC,function(e){let{children:t}=e;return r.createElement(P.n2,null,r.createElement(_.M,null,r.createElement(T,null,t)))}]);function Yo(e){let{children:t}=e;return r.createElement(Ko,null,t)}function Xo(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(u.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("p",null,t.message),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},r.createElement(u.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again when the page crashed"},"Try again"))))))}const Jo="mainWrapper_z2l0";function ea(e){const{children:t,noFooter:n,wrapperClassName:u,title:c,description:d}=e;return(0,s.t)(),r.createElement(Yo,null,r.createElement(i.d,{title:c,description:d}),r.createElement(m,null),r.createElement(S,null),r.createElement(Io,null),r.createElement("div",{className:(0,o.Z)(l.k.wrapper.main,Jo,u)},r.createElement(a.Z,{fallback:e=>r.createElement(Xo,e)},t)),!n&&r.createElement(Qo,null))}},1327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(7462),o=n(7294),a=n(9960),i=n(4996),l=n(2263),s=n(6668),u=n(941);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const a={light:(0,i.Z)(t.src),dark:(0,i.Z)(t.srcDark||t.src)},l=o.createElement(u.Z,{className:t.className,sources:a,height:t.height,width:t.width,alt:n,style:t.style});return r?o.createElement("div",{className:r},l):l}function d(e){const{siteConfig:{title:t}}=(0,l.Z)(),{navbar:{title:n,logo:u}}=(0,s.L)(),{imageClassName:d,titleClassName:f,...p}=e,m=(0,i.Z)((null==u?void 0:u.href)||"/"),h=n?"":t,g=(null==u?void 0:u.alt)??h;return o.createElement(a.Z,(0,r.Z)({to:m},p,(null==u?void 0:u.target)&&{target:u.target}),u&&o.createElement(c,{logo:u,alt:g,imageClassName:d}),null!=n&&o.createElement("b",{className:f},n))}},197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294),o=n(5742);function a(e){let{locale:t,version:n,tag:a}=e;const i=t;return r.createElement(o.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),a&&r.createElement("meta",{name:"docusaurus_tag",content:a}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),a&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:a}))}},941:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(7462),o=n(7294),a=n(6010),i=n(2389),l=n(2949);const s={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function u(e){const t=(0,i.Z)(),{colorMode:n}=(0,l.I)(),{sources:u,className:c,alt:d,...f}=e,p=t?"dark"===n?["dark"]:["light"]:["light","dark"];return o.createElement(o.Fragment,null,p.map((e=>o.createElement("img",(0,r.Z)({key:e,src:u[e],alt:d,className:(0,a.Z)(s.themedImage,s[`themedImage--${e}`],c)},f)))))}},6043:(e,t,n)=>{"use strict";n.d(t,{u:()=>i,z:()=>m});var r=n(7462),o=n(7294),a=n(412);function i(e){let{initialState:t}=e;const[n,r]=(0,o.useState)(t??!1),a=(0,o.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:a}}const l={display:"none",overflow:"hidden",height:"0px"},s={display:"block",overflow:"visible",height:"auto"};function u(e,t){const n=t?l:s;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function c(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const a=(0,o.useRef)(!1);(0,o.useEffect)((()=>{const e=t.current;function o(){const t=e.scrollHeight,n=(null==r?void 0:r.duration)??function(e){const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${(null==r?void 0:r.easing)??"ease-in-out"}`,height:`${t}px`}}function i(){const t=o();e.style.transition=t.transition,e.style.height=t.height}if(!a.current)return u(e,n),void(a.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(i(),requestAnimationFrame((()=>{e.style.height=l.height,e.style.overflow=l.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{i()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function d(e){if(!a.Z.canUseDOM)return e?l:s}function f(e){let{as:t="div",collapsed:n,children:r,animation:a,onCollapseTransitionEnd:i,className:l,disableSSRStyle:s}=e;const f=(0,o.useRef)(null);return c({collapsibleRef:f,collapsed:n,animation:a}),o.createElement(t,{ref:f,style:s?void 0:d(n),onTransitionEnd:e=>{"height"===e.propertyName&&(u(f.current,n),null==i||i(n))},className:l},r)}function p(e){let{collapsed:t,...n}=e;const[a,i]=(0,o.useState)(!t),[l,s]=(0,o.useState)(t);return(0,o.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,o.useLayoutEffect)((()=>{a&&s(t)}),[a,t]),a?o.createElement(f,(0,r.Z)({},n,{collapsed:l})):null}function m(e){let{lazy:t,...n}=e;const r=t?p:f;return o.createElement(r,n)}},9689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>p});var r=n(7294),o=n(2389),a=n(12),i=n(902),l=n(6668);const s=(0,a.W)("docusaurus.announcement.dismiss"),u=(0,a.W)("docusaurus.announcement.id"),c=()=>"true"===s.get(),d=e=>s.set(String(e)),f=r.createContext(null);function p(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,o.Z)(),[n,a]=(0,r.useState)((()=>!!t&&c()));(0,r.useEffect)((()=>{a(c())}),[]);const i=(0,r.useCallback)((()=>{d(!0),a(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&d(!1),!r&&c()||a(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(f.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},2949:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>h});var r=n(7294),o=n(412),a=n(902),i=n(12),l=n(6668);const s=r.createContext(void 0),u="theme",c=(0,i.W)(u),d="light",f="dark",p=e=>e===f?f:d;function m(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[a,i]=(0,r.useState)((e=>o.Z.canUseDOM?p(document.documentElement.getAttribute("data-theme")):p(e))(e));(0,r.useEffect)((()=>{t&&c.del()}),[t]);const s=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:o=!0}=r;t?(i(t),o&&(e=>{c.set(p(e))})(t)):(i(n?window.matchMedia("(prefers-color-scheme: dark)").matches?f:d:e),c.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",p(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=c.get();null!==t&&s(p(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,s]);const m=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||m.current?m.current=window.matchMedia("print").matches:s(null)};return e.addListener(r),()=>e.removeListener(r)}),[s,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:s,get isDarkTheme(){return a===f},setLightTheme(){s(d)},setDarkTheme(){s(f)}})),[a,s])}function h(e){let{children:t}=e;const n=m();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new a.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:(e,t,n)=>{"use strict";n.d(t,{J:()=>b,L5:()=>v,Oh:()=>w});var r=n(7294),o=n(4104),a=n(9935),i=n(6668),l=n(2802),s=n(902),u=n(12);const c=e=>`docs-preferred-version-${e}`,d=(e,t,n)=>{(0,u.W)(c(e),{persistence:t}).set(n)},f=(e,t)=>(0,u.W)(c(e),{persistence:t}).get(),p=(e,t)=>{(0,u.W)(c(e),{persistence:t}).del()};const m=r.createContext(null);function h(){const e=(0,o._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[a,l]=(0,r.useState)((()=>(e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}]))))(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function o(e){const t=f(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(p(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,o(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[a,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function g(e){let{children:t}=e;const n=h();return r.createElement(m.Provider,{value:n},t)}function v(e){let{children:t}=e;return l.cE?r.createElement(g,null,t):r.createElement(r.Fragment,null,t)}function y(){const e=(0,r.useContext)(m);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function b(e){void 0===e&&(e=a.m);const t=(0,o.zh)(e),[n,i]=y(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function w(){const e=(0,o._r)(),[t]=y();function n(n){const r=e[n],{preferredVersionName:o}=t[n];return r.versions.find((e=>e.name===o))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(7294),o=n(902);const a=Symbol("EmptyContext"),i=r.createContext(a);function l(e){let{children:t,name:n,items:o}=e;const a=(0,r.useMemo)((()=>n&&o?{name:n,items:o}:null),[n,o]);return r.createElement(i.Provider,{value:a},t)}function s(){const e=(0,r.useContext)(i);if(e===a)throw new o.i6("DocsSidebarProvider");return e}},4477:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>i});var r=n(7294),o=n(902);const a=r.createContext(null);function i(e){let{children:t,version:n}=e;return r.createElement(a.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(a);if(null===e)throw new o.i6("DocsVersionProvider");return e}},2961:(e,t,n)=>{"use strict";n.d(t,{M:()=>f,e:()=>p});var r=n(7294),o=n(3102),a=n(7524),i=n(6775),l=n(902);function s(e){!function(e){const t=(0,i.k6)(),n=(0,l.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}var u=n(6668);const c=r.createContext(void 0);function d(){const e=function(){const e=(0,o.HY)(),{items:t}=(0,u.L)().navbar;return 0===t.length&&!e.component}(),t=(0,a.i)(),n=!e&&"mobile"===t,[i,l]=(0,r.useState)(!1);s((()=>{if(i)return l(!1),!1}));const c=(0,r.useCallback)((()=>{l((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&l(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:i})),[e,n,c,i])}function f(e){let{children:t}=e;const n=d();return r.createElement(c.Provider,{value:n},t)}function p(){const e=r.useContext(c);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},3102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>i});var r=n(7294),o=n(902);const a=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(a.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(a);if(!e)throw new o.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const i=(0,r.useContext)(a);if(!i)throw new o.i6("NavbarSecondaryMenuContentProvider");const[,l]=i,s=(0,o.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},9727:(e,t,n)=>{"use strict";n.d(t,{h:()=>o,t:()=>a});var r=n(7294);const o="navigation-with-keyboard";function a(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(o),"mousedown"===e.type&&document.body.classList.remove(o)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(o),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},7524:(e,t,n)=>{"use strict";n.d(t,{i:()=>u});var r=n(7294),o=n(412);const a="desktop",i="mobile",l="ssr";function s(){return o.Z.canUseDOM?window.innerWidth>996?a:i:l}function u(){const[e,t]=(0,r.useState)((()=>s()));return(0,r.useEffect)((()=>{function e(){t(s())}return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(undefined)}}),[]),e}},5281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},2802:(e,t,n)=>{"use strict";n.d(t,{Wl:()=>h,_F:()=>y,cE:()=>f,jA:()=>g,xz:()=>p,hI:()=>S,lO:()=>w,vY:()=>E,oz:()=>k,s1:()=>b});var r=n(7294),o=n(6775),a=n(8790),i=n(4104),l=n(373),s=n(4477),u=n(1116);function c(e){return Array.from(new Set(e))}var d=n(8596);const f=!!i._r;function p(e){const t=(0,s.E)();if(!e)return;const n=t.docs[e];if(!n)throw new Error(`no version doc found by id=${e}`);return n}function m(e,t){for(const n of e)if("category"===n.type){if(t(n))return n;const e=m(n.items,t);if(e)return e}}function h(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=h(t);if(e)return e}}}function g(){const{pathname:e}=(0,o.TH)(),t=(0,u.V)();if(!t)throw new Error("Unexpected: cant find current sidebar in context");const n=m(t.items,(t=>(0,d.Mg)(t.href,e)));if(!n)throw new Error(`${e} is not associated with a category. useCurrentSidebarCategory() should only be used on category index pages.`);return n}const v=(e,t)=>void 0!==e&&(0,d.Mg)(e,t);function y(e,t){return"link"===e.type?v(e.href,t):"category"===e.type&&(v(e.href,t)||((e,t)=>e.some((e=>y(e,t))))(e.items,t))}function b(){var e;const t=(0,u.V)(),{pathname:n}=(0,o.TH)();if(!1===(null==(e=(0,i.gA)())?void 0:e.pluginData.breadcrumbs)||!t)return null;const r=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.Mg)(o.href,n))return r.push(o),!0;return!1}(t.items),r.reverse()}function w(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,l.J)(e),o=(0,i.yW)(e);return(0,r.useMemo)((()=>c([t,n,o].filter(Boolean))),[t,n,o])}function k(e,t){const n=w(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\n Available sidebar ids are:\n - ${Object.keys(t).join("\n- ")}`);return r[1]}),[e,n])}function E(e,t){const n=w(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`DocNavbarItem: couldn't find any doc with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${c(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function S(e){let{route:t,versionMetadata:n}=e;const r=(0,o.TH)(),i=t.routes,l=i.find((e=>(0,o.LX)(r.pathname,e)));if(!l)return null;const s=l.sidebar,u=s?n.docsSidebars[s]:void 0;return{docElement:(0,a.H)(i),sidebarName:s,sidebarItems:u}}},1944:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>c,VC:()=>p});var r=n(7294),o=n(6010),a=n(5742),i=n(226);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(4996),u=n(2263);function c(e){let{title:t,description:n,keywords:o,image:i,children:l}=e;const c=function(e){const{siteConfig:t}=(0,u.Z)(),{title:n,titleDelimiter:r}=t;return null!=e&&e.trim().length?`${e.trim()} ${r} ${n}`:n}(t),{withBaseUrl:d}=(0,s.C)(),f=i?d(i,{absolute:!0}):void 0;return r.createElement(a.Z,null,t&&r.createElement("title",null,c),t&&r.createElement("meta",{property:"og:title",content:c}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),o&&r.createElement("meta",{name:"keywords",content:Array.isArray(o)?o.join(","):o}),f&&r.createElement("meta",{property:"og:image",content:f}),f&&r.createElement("meta",{name:"twitter:image",content:f}),l)}const d=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,o.Z)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(a.Z,null,r.createElement("html",{className:l})),n)}function p(e){let{children:t}=e;const n=l(),a=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(f,{className:(0,o.Z)(a,i)},t)}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,Qc:()=>u,Ql:()=>s,i6:()=>l,zX:()=>a});var r=n(7294);const o=n(412).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function a(e){const t=(0,r.useRef)(e);return o((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return o((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){var n,r,o;super(),this.name="ReactContextError",this.message=`Hook ${(null==(n=this.stack)||null==(r=n.split("\n")[1])||null==(o=r.match(/at (?:\w+\.)?(?\w+)/))?void 0:o.groups.name)??""} is called outside the <${e}>. ${t??""}`}}function s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},8596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(7294),o=n(723),a=n(2263);function i(e,t){const n=e=>{var t;return null==(t=!e||e.endsWith("/")?e:`${e}/`)?void 0:t.toLowerCase()};return n(e)===n(t)}function l(){const{baseUrl:e}=(0,a.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function o(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(o).flatMap((e=>e.routes??[])))}(n)}({routes:o.Z,baseUrl:e})),[e])}},2466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>f,OC:()=>s,RF:()=>d});var r=n(7294),o=n(412),a=n(2389),i=n(902);const l=r.createContext(void 0);function s(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(l.Provider,{value:n},t)}function u(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const c=()=>o.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),o=(0,r.useRef)(c()),a=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=c();a(e,o.current),o.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[a,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,a.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const o=document.documentElement.scrollTop;(n&&o>e||!n&&ot&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>null==e.current?void 0:e.current()}}},3320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>s,os:()=>l});var r=n(4104),o=n(2263),a=n(373);const i="default";function l(e,t){return`docs-${e}-${t}`}function s(){const{i18n:e}=(0,o.Z)(),t=(0,r._r)(),n=(0,r.WS)(),s=(0,a.Oh)();const u=[i,...Object.keys(t).map((function(e){const r=(null==n?void 0:n.activePlugin.pluginId)===e?n.activeVersion:void 0,o=s[e],a=t[e].versions.find((e=>e.isLast));return l(e,(r??o??a).name)}))];return{locale:e.currentLocale,tags:u}}},12:(e,t,n)=>{"use strict";n.d(t,{W:()=>l,_:()=>s});const r="localStorage";function o(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,a||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),a=!0),null}var t}let a=!1;const i={get:()=>null,set:()=>{},del:()=>{}};function l(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t}}(e);const n=o(null==t?void 0:t.persistence);return null===n?i:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{n.setItem(e,t)}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{n.removeItem(e)}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}}}}function s(e){void 0===e&&(e=r);const t=o(e);if(!t)return[];const n=[];for(let r=0;r{"use strict";n.d(t,{l:()=>a});var r=n(2263),o=n(6775);function a(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:a}}=(0,r.Z)(),{pathname:i}=(0,o.TH)(),l=a===n?e:e.replace(`/${a}/`,"/"),s=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:o}=e;return`${o?t:""}${function(e){return e===n?`${l}`:`${l}${e}/`}(r)}${s}`}}}},5936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),o=n(6775),a=n(902);function i(e){const t=(0,o.TH)(),n=(0,a.D9)(t),i=(0,a.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6668:(e,t,n)=>{"use strict";n.d(t,{L:()=>o});var r=n(2263);function o(){return(0,r.Z)().siteConfig.themeConfig}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[o]=e.split(/[#?]/),a="/"===o||o===r?o:(i=o,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(o,a)}},8780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="post-content";var o=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(o).default}})},6010:(e,t,n)=>{"use strict";function r(e){var t,n,o="";if("string"==typeof e||"number"==typeof e)o+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;to});const o=function(){for(var e,t,n=0,o="";n{"use strict";n.d(t,{lX:()=>w,q_:()=>O,ob:()=>p,PP:()=>C,Ep:()=>f});var r=n(7462);function o(e){return"/"===e.charAt(0)}function a(e,t){for(var n=t,r=n+1,o=e.length;r=0;f--){var p=i[f];"."===p?a(i,f):".."===p?(a(i,f),d++):d&&(a(i,f),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&o(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(2177);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function p(e,t,n,o){var a;"string"==typeof e?(a=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),a.state=t):(void 0===(a=(0,r.Z)({},e)).pathname&&(a.pathname=""),a.search?"?"!==a.search.charAt(0)&&(a.search="?"+a.search):a.search="",a.hash?"#"!==a.hash.charAt(0)&&(a.hash="#"+a.hash):a.hash="",void 0!==t&&void 0===a.state&&(a.state=t));try{a.pathname=decodeURI(a.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+a.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(a.key=n),o?a.pathname?"/"!==a.pathname.charAt(0)&&(a.pathname=i(a.pathname,o.pathname)):a.pathname=o.pathname:a.pathname||(a.pathname="/"),a}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var a="function"==typeof e?e(t,n):e;"string"==typeof a?"function"==typeof r?r(a,o):o(!0):o(!1!==a)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,o):n.push(o),d({action:r,location:o,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",o=p(e,t,h(),w.location);c.confirmTransitionTo(o,r,n,(function(e){e&&(w.entries[w.index]=o,d({action:r,location:o}))}))},go:b,goBack:function(){b(-1)},goForward:function(){b(1)},canGo:function(e){var t=w.index+e;return t>=0&&t{"use strict";var r=n(9864),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||o}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=p(n);o&&o!==m&&e(t,o,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),g=0;g{"use strict";e.exports=function(e,t,n,r,o,a,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,o,a,i,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},813:function(e){e.exports=function(){"use strict";var e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},n=function(){function e(e,t){for(var n=0;n1&&void 0!==arguments[1])||arguments[1],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5e3;t(this,e),this.ctx=n,this.iframes=r,this.exclude=o,this.iframesTimeout=a}return n(e,[{key:"getContexts",value:function(){var e=[];return(void 0!==this.ctx&&this.ctx?NodeList.prototype.isPrototypeOf(this.ctx)?Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?this.ctx:"string"==typeof this.ctx?Array.prototype.slice.call(document.querySelectorAll(this.ctx)):[this.ctx]:[]).forEach((function(t){var n=e.filter((function(e){return e.contains(t)})).length>0;-1!==e.indexOf(t)||n||e.push(t)})),e}},{key:"getIframeContents",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},r=void 0;try{var o=e.contentWindow;if(r=o.document,!o||!r)throw new Error("iframe inaccessible")}catch(a){n()}r&&t(r)}},{key:"isIframeBlank",value:function(e){var t="about:blank",n=e.getAttribute("src").trim();return e.contentWindow.location.href===t&&n!==t&&n}},{key:"observeIframeLoad",value:function(e,t,n){var r=this,o=!1,a=null,i=function i(){if(!o){o=!0,clearTimeout(a);try{r.isIframeBlank(e)||(e.removeEventListener("load",i),r.getIframeContents(e,t,n))}catch(l){n()}}};e.addEventListener("load",i),a=setTimeout(i,this.iframesTimeout)}},{key:"onIframeReady",value:function(e,t,n){try{"complete"===e.contentWindow.document.readyState?this.isIframeBlank(e)?this.observeIframeLoad(e,t,n):this.getIframeContents(e,t,n):this.observeIframeLoad(e,t,n)}catch(r){n()}}},{key:"waitForIframes",value:function(e,t){var n=this,r=0;this.forEachIframe(e,(function(){return!0}),(function(e){r++,n.waitForIframes(e.querySelector("html"),(function(){--r||t()}))}),(function(e){e||t()}))}},{key:"forEachIframe",value:function(t,n,r){var o=this,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},i=t.querySelectorAll("iframe"),l=i.length,s=0;i=Array.prototype.slice.call(i);var u=function(){--l<=0&&a(s)};l||u(),i.forEach((function(t){e.matches(t,o.exclude)?u():o.onIframeReady(t,(function(e){n(t)&&(s++,r(e)),u()}),u)}))}},{key:"createIterator",value:function(e,t,n){return document.createNodeIterator(e,t,n,!1)}},{key:"createInstanceOnIframe",value:function(t){return new e(t.querySelector("html"),this.iframes)}},{key:"compareNodeIframe",value:function(e,t,n){if(e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_PRECEDING){if(null===t)return!0;if(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING)return!0}return!1}},{key:"getIteratorNode",value:function(e){var t=e.previousNode();return{prevNode:t,node:(null===t||e.nextNode())&&e.nextNode()}}},{key:"checkIframeFilter",value:function(e,t,n,r){var o=!1,a=!1;return r.forEach((function(e,t){e.val===n&&(o=t,a=e.handled)})),this.compareNodeIframe(e,t,n)?(!1!==o||a?!1===o||a||(r[o].handled=!0):r.push({val:n,handled:!0}),!0):(!1===o&&r.push({val:n,handled:!1}),!1)}},{key:"handleOpenIframes",value:function(e,t,n,r){var o=this;e.forEach((function(e){e.handled||o.getIframeContents(e.val,(function(e){o.createInstanceOnIframe(e).forEachNode(t,n,r)}))}))}},{key:"iterateThroughNodes",value:function(e,t,n,r,o){for(var a=this,i=this.createIterator(t,e,r),l=[],s=[],u=void 0,c=void 0,d=function(){var e=a.getIteratorNode(i);return c=e.prevNode,u=e.node};d();)this.iframes&&this.forEachIframe(t,(function(e){return a.checkIframeFilter(u,c,e,l)}),(function(t){a.createInstanceOnIframe(t).forEachNode(e,(function(e){return s.push(e)}),r)})),s.push(u);s.forEach((function(e){n(e)})),this.iframes&&this.handleOpenIframes(l,e,n,r),o()}},{key:"forEachNode",value:function(e,t,n){var r=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},a=this.getContexts(),i=a.length;i||o(),a.forEach((function(a){var l=function(){r.iterateThroughNodes(e,a,t,n,(function(){--i<=0&&o()}))};r.iframes?r.waitForIframes(a,l):l()}))}}],[{key:"matches",value:function(e,t){var n="string"==typeof t?[t]:t,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(r){var o=!1;return n.every((function(t){return!r.call(e,t)||(o=!0,!1)})),o}return!1}}]),e}(),a=function(){function a(e){t(this,a),this.ctx=e,this.ie=!1;var n=window.navigator.userAgent;(n.indexOf("MSIE")>-1||n.indexOf("Trident")>-1)&&(this.ie=!0)}return n(a,[{key:"log",value:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"debug",r=this.opt.log;this.opt.debug&&"object"===(void 0===r?"undefined":e(r))&&"function"==typeof r[n]&&r[n]("mark.js: "+t)}},{key:"escapeStr",value:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}},{key:"createRegExp",value:function(e){return"disabled"!==this.opt.wildcards&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),"disabled"!==this.opt.wildcards&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e)}},{key:"createSynonymsRegExp",value:function(e){var t=this.opt.synonyms,n=this.opt.caseSensitive?"":"i",r=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?"\0":"";for(var o in t)if(t.hasOwnProperty(o)){var a=t[o],i="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(o):this.escapeStr(o),l="disabled"!==this.opt.wildcards?this.setupWildcardsRegExp(a):this.escapeStr(a);""!==i&&""!==l&&(e=e.replace(new RegExp("("+this.escapeStr(i)+"|"+this.escapeStr(l)+")","gm"+n),r+"("+this.processSynomyms(i)+"|"+this.processSynomyms(l)+")"+r))}return e}},{key:"processSynomyms",value:function(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}},{key:"setupWildcardsRegExp",value:function(e){return(e=e.replace(/(?:\\)*\?/g,(function(e){return"\\"===e.charAt(0)?"?":"\x01"}))).replace(/(?:\\)*\*/g,(function(e){return"\\"===e.charAt(0)?"*":"\x02"}))}},{key:"createWildcardsRegExp",value:function(e){var t="withSpaces"===this.opt.wildcards;return e.replace(/\u0001/g,t?"[\\S\\s]?":"\\S?").replace(/\u0002/g,t?"[\\S\\s]*?":"\\S*")}},{key:"setupIgnoreJoinersRegExp",value:function(e){return e.replace(/[^(|)\\]/g,(function(e,t,n){var r=n.charAt(t+1);return/[(|)\\]/.test(r)||""===r?e:e+"\0"}))}},{key:"createJoinersRegExp",value:function(e){var t=[],n=this.opt.ignorePunctuation;return Array.isArray(n)&&n.length&&t.push(this.escapeStr(n.join(""))),this.opt.ignoreJoiners&&t.push("\\u00ad\\u200b\\u200c\\u200d"),t.length?e.split(/\u0000+/).join("["+t.join("")+"]*"):e}},{key:"createDiacriticsRegExp",value:function(e){var t=this.opt.caseSensitive?"":"i",n=this.opt.caseSensitive?["a\xe0\xe1\u1ea3\xe3\u1ea1\u0103\u1eb1\u1eaf\u1eb3\u1eb5\u1eb7\xe2\u1ea7\u1ea5\u1ea9\u1eab\u1ead\xe4\xe5\u0101\u0105","A\xc0\xc1\u1ea2\xc3\u1ea0\u0102\u1eb0\u1eae\u1eb2\u1eb4\u1eb6\xc2\u1ea6\u1ea4\u1ea8\u1eaa\u1eac\xc4\xc5\u0100\u0104","c\xe7\u0107\u010d","C\xc7\u0106\u010c","d\u0111\u010f","D\u0110\u010e","e\xe8\xe9\u1ebb\u1ebd\u1eb9\xea\u1ec1\u1ebf\u1ec3\u1ec5\u1ec7\xeb\u011b\u0113\u0119","E\xc8\xc9\u1eba\u1ebc\u1eb8\xca\u1ec0\u1ebe\u1ec2\u1ec4\u1ec6\xcb\u011a\u0112\u0118","i\xec\xed\u1ec9\u0129\u1ecb\xee\xef\u012b","I\xcc\xcd\u1ec8\u0128\u1eca\xce\xcf\u012a","l\u0142","L\u0141","n\xf1\u0148\u0144","N\xd1\u0147\u0143","o\xf2\xf3\u1ecf\xf5\u1ecd\xf4\u1ed3\u1ed1\u1ed5\u1ed7\u1ed9\u01a1\u1edf\u1ee1\u1edb\u1edd\u1ee3\xf6\xf8\u014d","O\xd2\xd3\u1ece\xd5\u1ecc\xd4\u1ed2\u1ed0\u1ed4\u1ed6\u1ed8\u01a0\u1ede\u1ee0\u1eda\u1edc\u1ee2\xd6\xd8\u014c","r\u0159","R\u0158","s\u0161\u015b\u0219\u015f","S\u0160\u015a\u0218\u015e","t\u0165\u021b\u0163","T\u0164\u021a\u0162","u\xf9\xfa\u1ee7\u0169\u1ee5\u01b0\u1eeb\u1ee9\u1eed\u1eef\u1ef1\xfb\xfc\u016f\u016b","U\xd9\xda\u1ee6\u0168\u1ee4\u01af\u1eea\u1ee8\u1eec\u1eee\u1ef0\xdb\xdc\u016e\u016a","y\xfd\u1ef3\u1ef7\u1ef9\u1ef5\xff","Y\xdd\u1ef2\u1ef6\u1ef8\u1ef4\u0178","z\u017e\u017c\u017a","Z\u017d\u017b\u0179"]:["a\xe0\xe1\u1ea3\xe3\u1ea1\u0103\u1eb1\u1eaf\u1eb3\u1eb5\u1eb7\xe2\u1ea7\u1ea5\u1ea9\u1eab\u1ead\xe4\xe5\u0101\u0105A\xc0\xc1\u1ea2\xc3\u1ea0\u0102\u1eb0\u1eae\u1eb2\u1eb4\u1eb6\xc2\u1ea6\u1ea4\u1ea8\u1eaa\u1eac\xc4\xc5\u0100\u0104","c\xe7\u0107\u010dC\xc7\u0106\u010c","d\u0111\u010fD\u0110\u010e","e\xe8\xe9\u1ebb\u1ebd\u1eb9\xea\u1ec1\u1ebf\u1ec3\u1ec5\u1ec7\xeb\u011b\u0113\u0119E\xc8\xc9\u1eba\u1ebc\u1eb8\xca\u1ec0\u1ebe\u1ec2\u1ec4\u1ec6\xcb\u011a\u0112\u0118","i\xec\xed\u1ec9\u0129\u1ecb\xee\xef\u012bI\xcc\xcd\u1ec8\u0128\u1eca\xce\xcf\u012a","l\u0142L\u0141","n\xf1\u0148\u0144N\xd1\u0147\u0143","o\xf2\xf3\u1ecf\xf5\u1ecd\xf4\u1ed3\u1ed1\u1ed5\u1ed7\u1ed9\u01a1\u1edf\u1ee1\u1edb\u1edd\u1ee3\xf6\xf8\u014dO\xd2\xd3\u1ece\xd5\u1ecc\xd4\u1ed2\u1ed0\u1ed4\u1ed6\u1ed8\u01a0\u1ede\u1ee0\u1eda\u1edc\u1ee2\xd6\xd8\u014c","r\u0159R\u0158","s\u0161\u015b\u0219\u015fS\u0160\u015a\u0218\u015e","t\u0165\u021b\u0163T\u0164\u021a\u0162","u\xf9\xfa\u1ee7\u0169\u1ee5\u01b0\u1eeb\u1ee9\u1eed\u1eef\u1ef1\xfb\xfc\u016f\u016bU\xd9\xda\u1ee6\u0168\u1ee4\u01af\u1eea\u1ee8\u1eec\u1eee\u1ef0\xdb\xdc\u016e\u016a","y\xfd\u1ef3\u1ef7\u1ef9\u1ef5\xffY\xdd\u1ef2\u1ef6\u1ef8\u1ef4\u0178","z\u017e\u017c\u017aZ\u017d\u017b\u0179"],r=[];return e.split("").forEach((function(o){n.every((function(n){if(-1!==n.indexOf(o)){if(r.indexOf(n)>-1)return!1;e=e.replace(new RegExp("["+n+"]","gm"+t),"["+n+"]"),r.push(n)}return!0}))})),e}},{key:"createMergedBlanksRegExp",value:function(e){return e.replace(/[\s]+/gim,"[\\s]+")}},{key:"createAccuracyRegExp",value:function(e){var t=this,n="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\xa1\xbf",r=this.opt.accuracy,o="string"==typeof r?r:r.value,a="string"==typeof r?[]:r.limiters,i="";switch(a.forEach((function(e){i+="|"+t.escapeStr(e)})),o){case"partially":default:return"()("+e+")";case"complementary":return"()([^"+(i="\\s"+(i||this.escapeStr(n)))+"]*"+e+"[^"+i+"]*)";case"exactly":return"(^|\\s"+i+")("+e+")(?=$|\\s"+i+")"}}},{key:"getSeparatedKeywords",value:function(e){var t=this,n=[];return e.forEach((function(e){t.opt.separateWordSearch?e.split(" ").forEach((function(e){e.trim()&&-1===n.indexOf(e)&&n.push(e)})):e.trim()&&-1===n.indexOf(e)&&n.push(e)})),{keywords:n.sort((function(e,t){return t.length-e.length})),length:n.length}}},{key:"isNumeric",value:function(e){return Number(parseFloat(e))==e}},{key:"checkRanges",value:function(e){var t=this;if(!Array.isArray(e)||"[object Object]"!==Object.prototype.toString.call(e[0]))return this.log("markRanges() will only accept an array of objects"),this.opt.noMatch(e),[];var n=[],r=0;return e.sort((function(e,t){return e.start-t.start})).forEach((function(e){var o=t.callNoMatchOnInvalidRanges(e,r),a=o.start,i=o.end;o.valid&&(e.start=a,e.length=i-a,n.push(e),r=i)})),n}},{key:"callNoMatchOnInvalidRanges",value:function(e,t){var n=void 0,r=void 0,o=!1;return e&&void 0!==e.start?(r=(n=parseInt(e.start,10))+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&r-t>0&&r-n>0?o=!0:(this.log("Ignoring invalid or overlapping range: "+JSON.stringify(e)),this.opt.noMatch(e))):(this.log("Ignoring invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:n,end:r,valid:o}}},{key:"checkWhitespaceRanges",value:function(e,t,n){var r=void 0,o=!0,a=n.length,i=t-a,l=parseInt(e.start,10)-i;return(r=(l=l>a?a:l)+parseInt(e.length,10))>a&&(r=a,this.log("End range automatically set to the max value of "+a)),l<0||r-l<0||l>a||r>a?(o=!1,this.log("Invalid range: "+JSON.stringify(e)),this.opt.noMatch(e)):""===n.substring(l,r).replace(/\s+/g,"")&&(o=!1,this.log("Skipping whitespace only range: "+JSON.stringify(e)),this.opt.noMatch(e)),{start:l,end:r,valid:o}}},{key:"getTextNodes",value:function(e){var t=this,n="",r=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,(function(e){r.push({start:n.length,end:(n+=e.textContent).length,node:e})}),(function(e){return t.matchesExclude(e.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}),(function(){e({value:n,nodes:r})}))}},{key:"matchesExclude",value:function(e){return o.matches(e,this.opt.exclude.concat(["script","style","title","head","html"]))}},{key:"wrapRangeInTextNode",value:function(e,t,n){var r=this.opt.element?this.opt.element:"mark",o=e.splitText(t),a=o.splitText(n-t),i=document.createElement(r);return i.setAttribute("data-markjs","true"),this.opt.className&&i.setAttribute("class",this.opt.className),i.textContent=o.textContent,o.parentNode.replaceChild(i,o),a}},{key:"wrapRangeInMappedTextNode",value:function(e,t,n,r,o){var a=this;e.nodes.every((function(i,l){var s=e.nodes[l+1];if(void 0===s||s.start>t){if(!r(i.node))return!1;var u=t-i.start,c=(n>i.end?i.end:n)-i.start,d=e.value.substr(0,i.start),f=e.value.substr(c+i.start);if(i.node=a.wrapRangeInTextNode(i.node,u,c),e.value=d+f,e.nodes.forEach((function(t,n){n>=l&&(e.nodes[n].start>0&&n!==l&&(e.nodes[n].start-=c),e.nodes[n].end-=c)})),n-=c,o(i.node.previousSibling,i.start),!(n>i.end))return!1;t=i.end}return!0}))}},{key:"wrapMatches",value:function(e,t,n,r,o){var a=this,i=0===t?0:t+1;this.getTextNodes((function(t){t.nodes.forEach((function(t){t=t.node;for(var o=void 0;null!==(o=e.exec(t.textContent))&&""!==o[i];)if(n(o[i],t)){var l=o.index;if(0!==i)for(var s=1;s{"use strict";n.r(t)},2295:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,o;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function o(e,t,n){return en?n:e}function a(e){return 100*(-1+e)}function i(e,t,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+a(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+a(e)+"%,0)"}:{"margin-left":a(e)+"%"}).transition="all "+t+"ms "+n,o}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=o(e,r.minimum,1),n.status=1===e?null:e;var a=n.render(!t),u=a.querySelector(r.barSelector),c=r.speed,d=r.easing;return a.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(a,{transition:"none",opacity:1}),a.offsetWidth,setTimeout((function(){s(a,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*o(Math.random()*t,.1,.95)),t=o(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var o,i=t.querySelector(r.barSelector),l=e?"-100":a(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(o=t.querySelector(r.spinnerSelector))&&p(o),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,o=e.length,a=t.charAt(0).toUpperCase()+t.slice(1);o--;)if((r=e[o]+a)in n)return r;return t}function o(e){return e=n(e),t[e]||(t[e]=r(e))}function a(e,t,n){t=o(t),e.style[t]=n}return function(e,t){var n,r,o=arguments;if(2==o.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&a(e,n,r);else a(e,o[1],o[2])}}();function u(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=f(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(o="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=o)},7418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(e,a){for(var i,l,s=o(e),u=1;u{var r=n(5826);e.exports=p,e.exports.parse=a,e.exports.compile=function(e,t){return l(a(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=f;var o=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function a(e,t){for(var n,r=[],a=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=o.exec(e));){var d=n[0],f=n[1],p=n.index;if(l+=e.slice(i,p),i=p+d.length,f)l+=f[1];else{var m=e[i],h=n[2],g=n[3],v=n[4],y=n[5],b=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=h&&null!=m&&m!==h,E="+"===b||"*"===b,S="?"===b||"*"===b,_=n[2]||c,x=v||y;r.push({name:g||a++,prefix:h||"",delimiter:_,optional:S,repeat:E,partial:k,asterisk:!!w,pattern:x?u(x):w?".*":"[^"+s(_)+"]+?"})}}return i{"use strict";n.d(t,{Z:()=>a});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof o?new o(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=d.reach);S+=E.value.length,E=E.next){var _=E.value;if(t.length>e.length)return;if(!(_ instanceof o)){var x,O=1;if(y){if(!(x=a(k,S,e,v))||x.index>=e.length)break;var P=x.index,C=x.index+x[0].length,T=S;for(T+=E.value.length;P>=T;)T+=(E=E.next).value.length;if(S=T-=E.value.length,E.value instanceof o)continue;for(var I=E;I!==t.tail&&(Td.reach&&(d.reach=R);var D=E.prev;if(L&&(D=s(t,D,L),S+=L.length),u(t,D,O),E=s(t,D,new o(f,g?r.tokenize(A,g):A,b,A)),N&&s(t,E,N),O>1){var j={cause:f+","+m,reach:R};i(e,t,n,E.prev,S,j),d&&j.reach>d.reach&&(d.reach=j.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,o={value:n,prev:t,next:r};return t.next=o,r.prev=o,e.length++,o}function u(e,t,n){for(var r=t.next,o=0;o"+a.content+""},r}(),o=r;r.default=r,o.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},o.languages.markup.tag.inside["attr-value"].inside.entity=o.languages.markup.entity,o.languages.markup.doctype.inside["internal-subset"].inside=o.languages.markup,o.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(o.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:o.languages[t]},n.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:o.languages[t]};var a={};a[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},o.languages.insertBefore("markup","cdata",a)}}),Object.defineProperty(o.languages.markup.tag,"addAttribute",{value:function(e,t){o.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:o.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),o.languages.html=o.languages.markup,o.languages.mathml=o.languages.markup,o.languages.svg=o.languages.markup,o.languages.xml=o.languages.extend("markup",{}),o.languages.ssml=o.languages.xml,o.languages.atom=o.languages.xml,o.languages.rss=o.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var o=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],a=r.variable[1].inside,i=0;i]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},o.languages.c=o.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),o.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),o.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},o.languages.c.string],char:o.languages.c.char,comment:o.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:o.languages.c}}}}),o.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete o.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(o),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(o),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},o={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:o,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:o})}(o),o.languages.javascript=o.languages.extend("clike",{"class-name":[o.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),o.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,o.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:o.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:o.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:o.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:o.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:o.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),o.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:o.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),o.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),o.languages.markup&&(o.languages.markup.tag.addInlined("script","javascript"),o.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),o.languages.js=o.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(o),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",o=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),a=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return"(?:"+o+"|"+a+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(a),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(o),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,o=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),a=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+o+a+"(?:"+o+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+o+a+")(?:"+o+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+o+")"+a+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+o+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(o),o.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:o.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},o.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n0)){var l=f(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s=0&&p(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,o=r.inside["interpolation-punctuation"],a=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var o={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",o),o.tokens=e.tokenize(o.code,o.grammar),e.hooks.run("after-tokenize",o),o.tokens}function u(t){var n={};n["interpolation-punctuation"]=o;var a=e.tokenize(t,n);if(3===a.length){var i=[1,1];i.push.apply(i,s(a[1],e.languages.javascript,"javascript")),a.splice.apply(a,i)}return new e.Token("interpolation",a,r.alias,t)}function c(t,n,r){var o=e.tokenize(t,{interpolation:{pattern:RegExp(a),lookbehind:!0}}),i=0,c={},d=s(o.map((function(e){if("string"==typeof e)return e;for(var n,o=e.content;-1!==t.indexOf(n=l(i++,r)););return c[n]=o,n})).join(""),n,r),f=Object.keys(c);return i=0,function e(t){for(var n=0;n=f.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var o=f[i],a="string"==typeof r?r:r.content,l=a.indexOf(o);if(-1!==l){++i;var s=a.substring(0,l),d=u(c[o]),p=a.substring(l+o.length),m=[];if(s&&m.push(s),m.push(d),p){var h=[p];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function f(e){return"string"==typeof e?e:Array.isArray(e)?e.map(f).join(""):f(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,o=n.length;r]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(o),function(e){function t(e,t){return RegExp(e.replace(//g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r*\.{3}(?:[^{}]|)*\})/.source;function a(e,t){return e=e.replace(//g,(function(){return n})).replace(//g,(function(){return r})).replace(//g,(function(){return o})),RegExp(e,t)}o=a(o).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=a(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:a(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:a(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r0&&n[n.length-1].tagName===i(o.content[0].content[1])&&n.pop():"/>"===o.content[o.content.length-1].content||n.push({tagName:i(o.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===o.type&&"{"===o.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===o.type&&"}"===o.content?n[n.length-1].openedBraces--:a=!0),(a||"string"==typeof o)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(o);r0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}o.content&&"string"!=typeof o.content&&l(o.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(o),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],o=[];/^\w+$/.test(n)||o.push(/\w+/.exec(n)[0]),"diff"===n&&o.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:o,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(o),o.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},o.languages.go=o.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),o.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete o.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,a){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof a&&!a(e))return e;for(var o,l=i.length;-1!==n.code.indexOf(o=t(r,l));)++l;return i[l]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,a=Object.keys(n.tokenStack);!function i(l){for(var s=0;s=a.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=a[o],d=n.tokenStack[c],f="string"==typeof u?u:u.content,p=t(r,c),m=f.indexOf(p);if(m>-1){++o;var h=f.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),v=f.substring(m+p.length),y=[];h&&y.push.apply(y,i([h])),y.push(g),v&&y.push.apply(y,i([v])),"string"==typeof u?l.splice.apply(l,[s,1].concat(y)):u.content=y}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(o),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(o),o.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},o.languages.webmanifest=o.languages.json,o.languages.less=o.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),o.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),o.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},o.languages.objectivec=o.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete o.languages.objectivec["class-name"],o.languages.objc=o.languages.objectivec,o.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},o.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},o.languages.python["string-interpolation"].inside.interpolation.inside.rest=o.languages.python,o.languages.py=o.languages.python,o.languages.reason=o.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),o.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete o.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(o),o.languages.scss=o.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),o.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),o.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),o.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),o.languages.scss.atrule.inside.rest=o.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(o),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(o),o.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const a=o},9901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:"shell",aliasTitles:{shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (Scss)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to WebPlatform.org documentation. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (.comment can become .namespace--comment) or replace them with your defined ones (like .editor__comment). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the highlightAll and highlightAllUnder methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(9901),o=n(9642),a=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...a,...Object.keys(Prism.languages)];o(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),a.add(e)}))}i.silent=!1,e.exports=i},6726:(e,t,n)=>{var r={"./":2885};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=6726},6500:(e,t,n)=>{var r={"./":2885};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=6500},9642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in o(t,a),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,a.pop()}}return function(e){var t=n[e];return t||(o(e,r),t=n[e]),t}}function o(e){for(var t in e)return!0;return!1}return function(a,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var o in r)if("meta"!=o){var a=r[o];t[o]="string"==typeof a?{title:a}:a}}return t}(a),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var o in n={},e){var a=e[o];t(a&&a.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+o+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+o+" because it is a component.");n[t]=o}))}return n[r]||r}}(s);i=i.map(u),l=(l||[]).map(u);var c=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var f,p=r(s),m=c;o(m);){for(var h in f={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(f[e]=!0)}))}for(var v in d)if(!(v in c))for(var y in p(v))if(y in c){f[v]=!0;break}for(var b in m=f)c[b]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,o){var a=o?o.series:void 0,i=o?o.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var o,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)o=r(e);else{var f=i(c.map((function(e){var t=u(e);return delete s[e],t})));a?o=a(f,(function(){return r(e)})):r(e)}return l[e]=o}for(var c in n)u(c);var d=[];for(var f in s)d.push(l[f]);return i(d)}(p,c,t,n)}};return w}}();e.exports=t},2703:(e,t,n)=>{"use strict";var r=n(414);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),o=n(7418),a=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n