@becomes/cms
Version:
Simple CMS for building APIs.
71 lines • 1.24 MB
Source Map (JSON)
{
"version": 3,
"file": "bundle.css",
"sources": [
"../../ActionComponent.svelte",
"../../ActionGeneric.svelte",
"../../ActionLink.svelte",
"../../ActionSearch.svelte",
"../../ActionSearchResult.svelte",
"../../App.svelte",
"../../route-config.svelte",
"../../entry-list.svelte",
"../../select-element.svelte",
"../../view-data-model.svelte",
"../../quill-content.svelte",
"../../quill-element.svelte",
"../../button.svelte",
"../../checkbox.svelte",
"../../code-snippet.svelte",
"../../date-picker.svelte",
"../../layout.svelte",
"../../manager-content.svelte",
"../../media-picker.svelte",
"../../add-prop.svelte",
"../../media-picker.svelte",
"../../modal.svelte",
"../../multi-add.svelte",
"../../overflow-menu.svelte",
"../../password-input.svelte",
"../../select.svelte",
"../../side-bar.svelte",
"../../small.svelte",
"../../file-explorer-item.svelte",
"../../file-explorer.svelte",
"../../media-viewer.svelte",
"../../upload-file.svelte",
"../../menu.svelte",
"../../group-pointer-array.svelte",
"../../group-pointer.svelte",
"../../prop-array-item.svelte",
"../../prop-array.svelte",
"../../prop.svelte",
"../../props-list.svelte",
"../../simple-popup.svelte",
"../../custom-portal-policy.svelte",
"../../media-manager-policy.svelte",
"../../template-policy.svelte",
"../../webhook-policy.svelte",
"../../media.svelte",
"../../widget.svelte",
"../../404.svelte",
"../../admin.svelte",
"../../create-admin.svelte",
"../../editor.svelte",
"../../editor.svelte",
"../../view.svelte",
"../../editor.svelte",
"../../overview.svelte",
"../../overview.svelte",
"../../editor.svelte",
"../../editor.svelte",
"../../view.svelte",
"../../login.svelte"
],
"sourcesContent": [
"<script>\n export let type = undefined;\n export let icon = undefined;\n export let content = undefined;\n export let componentIsActive = undefined;\n\n import { cx } from '../../../lib';\n import Icon from '../../Icon/Icon.svelte';\n import { slide } from 'svelte/transition';\n</script>\n\n<style>\n.component-form {\n margin: 1rem;\n}</style>\n\n<div id=\"right-panel-action-component\">\n <button\n aria-label={type}\n class={cx('--header__action', componentIsActive && '--header__action--active')}\n type=\"button\"\n on:keydown={({ key }) => {\n if (key === 'Enter') {\n componentIsActive = !componentIsActive;\n }\n }}>\n <Icon {...icon[0]} render={icon[0].render} />\n </button>\n {#if componentIsActive}\n <div\n id=\"right-panel-action-component-form\"\n class={cx('--header-panel', '--header-panel--expanded')}\n transition:slide={{ duration: 200 }}>\n <div class=\"component-form\">\n <svelte:component this={content} />\n </div>\n </div>\n {/if}\n</div>\n",
"<script>\n export let action = undefined;\n\n import ActionLink from './ActionLink.svelte';\n import ActionComponent from './ActionComponent.svelte';\n import ActionSearch from './ActionSearch.svelte';\n import { leftPanelTypes } from '../constants';\n import { isChildOf } from '../helpers';\n\n let typeComponent = undefined;\n let componentIsActive = false;\n let typeSearch = undefined;\n let searchIsActive = false;\n let typeLink = undefined;\n let linkIsActive = false;\n\n let isSearchFocus = false;\n\n window.addEventListener('mouseup', ({ target }) => {\n checkForClicksTypeComponent(target, typeComponent);\n checkForClicksTypeSearch(target, typeSearch);\n checkForClicksTypeLink(target, typeLink);\n });\n\n function checkForClicksTypeComponent(target, component) {\n if (component && target) {\n if (\n !isChildOf(target, 'right-panel-action-component') ||\n !isChildOf(target, 'right-panel-action-component-form')\n ) {\n if (component.contains(target) || target === component) {\n componentIsActive = !componentIsActive;\n } else {\n if (componentIsActive) {\n componentIsActive = false;\n }\n }\n }\n }\n }\n\n function checkForClicksTypeSearch(target, component) {\n if (component && target) {\n if (!isChildOf(target, 'right-panel-action-search')) {\n if (component.contains(target) || target === component) {\n searchIsActive = !searchIsActive;\n } else {\n if (searchIsActive) {\n searchIsActive = false;\n }\n }\n } else {\n if (!searchIsActive && target.id !== 'right-panel-close-search') {\n searchIsActive = true;\n } else if (searchIsActive && isChildOf(target, 'right-panel-close-search')) {\n searchIsActive = false;\n }\n }\n }\n }\n\n function checkForClicksTypeLink(target, component) {\n if (component && target) {\n if (component.contains(target) || target === component) {\n linkIsActive = !linkIsActive;\n } else {\n if (linkIsActive) {\n linkIsActive = false;\n }\n }\n }\n }\n</script>\n\n<style>\n.search-wrapper {\n position: relative;\n display: flex;\n max-width: 28rem;\n width: 100%;\n margin-left: 0.5rem;\n height: 3rem;\n background-color: #393939;\n color: #fff;\n transition: max-width 0.11s cubic-bezier(0.2, 0, 0.38, 0.9),\n background 0.11s cubic-bezier(0.2, 0, 0.38, 0.9);\n}\n\n.search-wrapper-hidden {\n max-width: 3rem;\n background-color: #161616;\n}\n\n.search-focus {\n outline: 2px solid #fff;\n outline-offset: -2px;\n}</style>\n\n{#if action.isVisible}\n {#if action.type === leftPanelTypes.component}\n <div bind:this={typeComponent}>\n <ActionComponent\n icon={action.icon ? action.icon : undefined}\n content={action.content}\n bind:componentIsActive />\n </div>\n {:else if action.type === leftPanelTypes.search}\n <div\n bind:this={typeSearch}\n class=\"search-wrapper\"\n class:search-wrapper-hidden={!searchIsActive}\n class:search-focus={isSearchFocus || searchIsActive}\n role=\"search\">\n <ActionSearch\n action={action.action}\n icon={action.icon ? action.icon : undefined}\n content={action.content}\n bind:searchIsActive\n focusInputSearch={() => {\n isSearchFocus = true;\n }}\n focusOutInputSearch={() => {\n isSearchFocus = false;\n }}\n on:inputSearch />\n </div>\n {:else if action.type === leftPanelTypes.link || action.type === leftPanelTypes.links}\n <div bind:this={typeLink}>\n <ActionLink\n action={action.action}\n type={action.type}\n icon={action.icon ? action.icon : undefined}\n content={action.content}\n bind:linkIsActive />\n </div>\n {/if}\n{/if}\n",
"<script>\n export let action = undefined;\n export let type = undefined;\n export let icon = undefined;\n export let content = undefined;\n export let linkIsActive = undefined;\n\n import { cx } from '../../../lib';\n import Icon from '../../Icon/Icon.svelte';\n import { leftPanelActions, leftPanelTypes } from '../constants';\n import { slide } from 'svelte/transition';\n\n let href = undefined;\n\n if (type === leftPanelTypes.link) {\n href = content.href;\n }\n\n if (!icon) {\n const actionsArray = Object.entries(leftPanelActions);\n\n for (const definedAction of actionsArray) {\n for (const content of definedAction) {\n if (typeof content === 'object') {\n if (content.actionString === action) {\n icon = content.iconProps;\n }\n }\n }\n }\n }\n</script>\n\n<style>\n.action-link {\n text-align: center;\n align-items: center;\n vertical-align: middle;\n justify-content: center;\n padding-top: 10px;\n}\n\n.subject-divider {\n color: #525252;\n padding-bottom: 4px;\n border-bottom: 1px solid #525252;\n margin: 32px 1rem 8px;\n}\n\n.subject-divider span {\n font-size: 0.75rem;\n font-weight: 400;\n line-height: 1rem;\n letter-spacing: 0.32px;\n color: #c6c6c6;\n}</style>\n\n{#if type === leftPanelTypes.link}\n <a\n aria-label={type}\n class={cx('--header__action', linkIsActive && '--header__action--active')}\n class:action-link={true}\n {href}>\n <Icon {...icon} />\n </a>\n{:else}\n <button\n aria-label={type}\n class={cx('--header__action', linkIsActive && '--header__action--active')}\n type=\"button\"\n on:keydown={({ key }) => {\n if (key === 'Enter') {\n linkIsActive = !linkIsActive;\n }\n }}>\n <Icon {...icon} />\n </button>\n {#if linkIsActive && type === leftPanelTypes.links}\n <div\n class={cx('--header-panel', '--header-panel--expanded')}\n transition:slide={{ duration: 200 }}>\n <ul class={cx('--switcher__item')}>\n {#each content as subject}\n {#if subject.subject}\n <li class=\"subject-divider\">\n <span>{subject.subject}</span>\n </li>\n {/if}\n {#each subject.items as link}\n <li class={cx('--switcher__item')}>\n <a class={cx('--switcher__item-link')} href={link.href}>{link.text}</a>\n </li>\n {/each}\n {/each}\n </ul>\n </div>\n {/if}\n{/if}\n",
"<script>\n export let action = undefined;\n export let icon = undefined;\n export let searchIsActive = undefined;\n\n import { createEventDispatcher } from 'svelte';\n import { cx } from '../../../lib';\n import Icon from '../../Icon/Icon.svelte';\n import { leftPanelActions, closeIcon } from '../constants';\n import searchStore from '../searchStore';\n import ActionSearchResult from './ActionSearchResult.svelte';\n\n let searchTabIndex = '0';\n let closeTabIndex = '-1';\n let inputSearchField = undefined;\n const dispatch = createEventDispatcher();\n\n if (!icon) {\n const actionsArray = Object.entries(leftPanelActions);\n\n for (const definedAction of actionsArray) {\n for (const content of definedAction) {\n if (typeof content === 'object') {\n if (content.actionString === action) {\n icon = content.iconProps;\n }\n }\n }\n }\n }\n\n function dispatchInputs(event) {\n const params = {\n action: action,\n textInput: event.target.value\n };\n\n dispatch('inputSearch', params);\n }\n\n $: if (!searchIsActive) {\n if (inputSearchField) {\n inputSearchField.value = '';\n }\n searchStore.clear();\n }\n\n $: if (searchIsActive) {\n searchTabIndex = '-1';\n closeTabIndex = '0';\n } else {\n searchTabIndex = '0';\n closeTabIndex = '-1';\n }\n\n $: showResults = $searchStore ? true : false;\n</script>\n\n<style>\n.search-wrapper {\n display: flex;\n flex-grow: 1;\n border-bottom: 1px solid #393939;\n}\n\n.btn-search {\n width: 3rem;\n height: 100%;\n padding: 0;\n flex-shrink: 0;\n opacity: 1;\n transition: background-color 0.11s cubic-bezier(0.2, 0, 0.38, 0.9),\n opacity 0.11s cubic-bezier(0.2, 0, 0.38, 0.9);\n}\n\n.btn-search-disabled {\n border: none;\n pointer-events: none;\n}\n\n.input-search {\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.375rem;\n letter-spacing: 0;\n color: #fff;\n caret-color: #fff;\n background-color: initial;\n border: none;\n outline: none;\n width: 100%;\n height: 3rem;\n padding: 0;\n transition: opacity 0.11s cubic-bezier(0.2, 0, 0.38, 0.9);\n}\n\n.input-hidden {\n opacity: 0;\n pointer-events: none;\n}\n\n.btn-clear {\n width: 3rem;\n height: 100%;\n padding: 0;\n flex-shrink: 0;\n opacity: 1;\n display: block;\n transition: background-color 0.11s cubic-bezier(0.2, 0, 0.38, 0.9),\n opacity 0.11s cubic-bezier(0.2, 0, 0.38, 0.9);\n}\n\n.btn-clear:hover {\n background-color: #4c4c4c;\n}\n\n.btn-clear-hidden {\n opacity: 0;\n display: none;\n}\n\n.search-list {\n position: absolute;\n z-index: 10000;\n padding: 1rem 0;\n left: 0;\n right: 0;\n top: 3rem;\n background-color: #161616;\n border: 1px solid #393939;\n border-top: none;\n box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.5);\n}</style>\n\n<div\n id=\"right-panel-action-search\"\n class=\"search-wrapper\"\n role=\"combobox\"\n aria-expanded={searchIsActive}>\n <button\n tabindex={searchTabIndex}\n aria-label={action}\n class={cx('--header__action')}\n class:btn-search={true}\n class:btn-search-disabled={searchIsActive}\n on:click={() => dispatch('focusInputSearch')}\n type=\"button\"\n on:keydown={({ key }) => {\n if (key === 'Enter') {\n searchIsActive = !searchIsActive;\n }\n }}>\n <Icon {...icon} />\n </button>\n <input\n bind:this={inputSearchField}\n id=\"input-search-field\"\n type=\"text\"\n autocomplete=\"off\"\n tabindex={closeTabIndex}\n class=\"input-search\"\n class:input-hidden={!searchIsActive}\n placeholder=\"Search\"\n on:focus={() => dispatch('focusInputSearch')}\n on:focusout={() => dispatch('focusOutInputSearch')}\n on:input={dispatchInputs} />\n <button\n id=\"right-panel-close-search\"\n tabindex={closeTabIndex}\n class={cx('--header__action')}\n class:btn-clear={true}\n class:btn-clear-hidden={!searchIsActive}\n type=\"button\"\n aria-label=\"Clear search\"\n on:click={() => searchStore.clear()}\n on:keydown={({ key }) => {\n if (key === 'Enter') {\n searchIsActive = !searchIsActive;\n }\n }}>\n <Icon {...closeIcon} />\n </button>\n</div>\n{#if showResults}\n <ul aria-labelledby=\"search-label\" role=\"menu\" id=\"search-menu\" class=\"search-list\">\n {#each $searchStore as searchItem, index}\n <ActionSearchResult {searchItem} {index} />\n {/each}\n </ul>\n{/if}\n",
"<script>\n export let searchItem = undefined;\n export let index = undefined;\n\n let onHover = false;\n</script>\n\n<style>\n.search-list-item {\n padding: 6px 1rem;\n cursor: pointer;\n font-size: 0.875rem;\n font-weight: 600;\n line-height: 1.125rem;\n letter-spacing: 0.16px;\n transition: all 70ms cubic-bezier(0.2, 0, 0.38, 0.9);\n display: block;\n text-decoration: none;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n color: #c6c6c6;\n}\n\n.search-list-item-menu {\n text-transform: capitalize;\n}\n\n.search-list-item-description {\n font-size: 0.75rem;\n font-weight: 400;\n line-height: 1rem;\n letter-spacing: 0.32px;\n text-transform: lowercase;\n color: #c6c6c6;\n}\n\n.search-list-item-active {\n background-color: #353535;\n color: #f4f4f4;\n outline: 0;\n}</style>\n\n{#if index === 0}\n <li role=\"none\">\n <a\n tabindex=\"-1\"\n id={`menu-item-${index}`}\n role=\"menuitem\"\n class=\"search-list-item search-list-item-active\"\n href={searchItem.href}>\n {searchItem.title} \n <span class=\"search-list-item-menu\">→ {searchItem.menu}</span>\n <span class=\"search-list-item-description\">{searchItem.description}</span>\n </a>\n </li>\n{:else}\n <li role=\"none\" on:mouseover={() => (onHover = true)} on:mouseleave={() => (onHover = false)}>\n <a\n tabindex=\"-1\"\n id={`menu-item-${index}`}\n role=\"menuitem\"\n class=\"search-list-item\"\n class:search-list-item-active={onHover}\n href={searchItem.href}>\n {searchItem.title} \n <span class=\"search-list-item-menu\">→ {searchItem.menu}</span>\n <span class=\"search-list-item-description\">{searchItem.description}</span>\n </a>\n </li>\n{/if}\n",
"<script>\n import { Router, Route } from 'svelte-routing';\n import { onMount } from 'svelte';\n import { Store, pathStore } from './config.svelte';\n\n import SimplePopup from './components/simple-popup.svelte';\n import Login from './pages/login.svelte';\n import CreateAdmin from './pages/create-admin.svelte';\n import Page404 from './pages/404.svelte';\n import FontAwesome from './components/global/font-awesome.svelte';\n\n import Overview from './pages/dashboard/overview.svelte';\n import AdminInit from './pages/admin.svelte';\n import TemplateEditor from './pages/dashboard/template/editor.svelte';\n import GroupEditor from './pages/dashboard/group/editor.svelte';\n import WidgetEditor from './pages/dashboard/widget/editor.svelte';\n import EntriesView from './pages/dashboard/entry/view.svelte';\n import EntryEditor from './pages/dashboard/entry/editor.svelte';\n import UsersEditor from './pages/dashboard/users/editor.svelte';\n import ApiEditor from './pages/dashboard/api/editor.svelte';\n import WebhookEditor from './pages/dashboard/webhook/editor.svelte';\n import WebhookView from './pages/dashboard/webhook/view.svelte';\n import MediaEditor from './pages/dashboard/media/overview.svelte';\n import LanguageEditor from './pages/dashboard/language/editor.svelte';\n\n export let url = '';\n\n let routes = [\n {\n path: '/login',\n component: Login,\n },\n {\n path: '/create-admin',\n component: CreateAdmin,\n },\n {\n path: '/admin',\n component: AdminInit,\n },\n {\n path: '/dashboard/overview',\n component: Overview,\n },\n {\n path: '/dashboard/template/editor',\n component: TemplateEditor,\n },\n {\n path: '/dashboard/group/editor',\n component: GroupEditor,\n },\n {\n path: '/dashboard/widget/editor',\n component: WidgetEditor,\n },\n {\n path: '/dashboard/template/entries/view/c/:cid',\n component: EntriesView,\n },\n {\n path: '/dashboard/template/entry/rc',\n component: EntryEditor,\n },\n {\n path: '/dashboard/media/editor',\n component: MediaEditor,\n },\n {\n path: '/dashboard/user/editor',\n component: UsersEditor,\n },\n {\n path: '/dashboard/api/editor',\n component: ApiEditor,\n },\n {\n path: '/dashboard/webhook/editor',\n component: WebhookEditor,\n },\n {\n path: '/dashboard/webhook/trigger/view/w/:wid',\n component: WebhookView,\n },\n {\n path: '/dashboard/language/editor',\n component: LanguageEditor,\n },\n {\n path: '/',\n component: Login,\n },\n ];\n\n function validatePath(path) {\n const pathParts = path.split('/');\n let found = false;\n for (const i in routes) {\n const routeParts = routes[i].path.split('/');\n if (pathParts.length === routeParts.length) {\n let isOk = true;\n for (const j in routeParts) {\n const routePart = routeParts[j];\n const pathPart = pathParts[j];\n if (routePart.startsWith(':') === false) {\n if (routePart !== pathPart) {\n isOk = false;\n break;\n }\n }\n }\n if (isOk === true) {\n found = true;\n break;\n }\n }\n }\n return found;\n }\n</script>\n\n<style type=\"text/scss\" global>@charset \"UTF-8\";\n/*!\n * ress.css • v1.2.2\n * MIT License\n * github.com/filipelinhares/ress\n */\n/* # =================================================================\n # Global selectors\n # ================================================================= */\n:global(html) {\n box-sizing: border-box;\n /* overflow-y: hidden; All browsers without overlaying scrollbars */\n -webkit-text-size-adjust: 100%;\n /* iOS 8+ */ }\n\n:global(*),\n:global(::before),\n:global(::after) {\n background-repeat: no-repeat;\n /* Set `background-repeat: no-repeat` to all elements and pseudo elements */\n box-sizing: inherit; }\n\n:global(::before),\n:global(::after) {\n text-decoration: inherit;\n /* Inherit text-decoration and vertical align to ::before and ::after pseudo elements */\n vertical-align: inherit; }\n\n:global(*) {\n padding: 0;\n /* Reset `padding` and `margin` of all elements */\n margin: 0; }\n\n/* # =================================================================\n\t # General elements\n\t # ================================================================= */\n/* Add the correct display in iOS 4-7.*/\n:global(audio:not([controls])) {\n display: none;\n height: 0; }\n\n:global(hr) {\n overflow: visible;\n /* Show the overflow in Edge and IE */ }\n\n/*\n * Correct `block` display not defined for any HTML5 element in IE 8/9\n * Correct `block` display not defined for `details` or `summary` in IE 10/11\n * and Firefox\n * Correct `block` display not defined for `main` in IE 11\n */\n:global(article),\n:global(aside),\n:global(details),\n:global(figcaption),\n:global(figure),\n:global(footer),\n:global(header),\n:global(main),\n:global(menu),\n:global(nav),\n:global(section),\n:global(summary) {\n display: block; }\n\n:global(summary) {\n display: list-item;\n /* Add the correct display in all browsers */ }\n\n:global(small) {\n font-size: 80%;\n /* Set font-size to 80% in `small` elements */ }\n\n:global([hidden]),\n:global(template) {\n display: none;\n /* Add the correct display in IE */ }\n\n:global(abbr[title]) {\n border-bottom: 1px dotted;\n /* Add a bordered underline effect in all browsers */\n text-decoration: none;\n /* Remove text decoration in Firefox 40+ */ }\n\n:global(a) {\n background-color: transparent;\n /* Remove the gray background on active links in IE 10 */\n -webkit-text-decoration-skip: objects;\n /* Remove gaps in links underline in iOS 8+ and Safari 8+ */ }\n\n:global(a:active),\n:global(a:hover) {\n outline-width: 0;\n /* Remove the outline when hovering in all browsers */ }\n\n:global(code),\n:global(kbd),\n:global(pre),\n:global(samp) {\n font-family: monospace, monospace;\n /* Specify the font family of code elements */ }\n\n:global(b),\n:global(strong) {\n font-weight: bolder;\n /* Correct style set to `bold` in Edge 12+, Safari 6.2+, and Chrome 18+ */ }\n\n:global(dfn) {\n font-style: italic;\n /* Address styling not present in Safari and Chrome */ }\n\n/* Address styling not present in IE 8/9 */\n:global(mark) {\n background-color: #ff0;\n color: #000; }\n\n/* https://gist.github.com/unruthless/413930 */\n:global(sub),\n:global(sup) {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline; }\n\n:global(sub) {\n bottom: -0.25em; }\n\n:global(sup) {\n top: -0.5em; }\n\n/* # =================================================================\n\t # Forms\n\t # ================================================================= */\n:global(input) {\n border-radius: 0; }\n\n/* Apply cursor pointer to button elements */\n:global(button),\n:global([type='button']),\n:global([type='reset']),\n:global([type='submit']),\n:global([role='button']) {\n cursor: pointer; }\n\n/* Replace pointer cursor in disabled elements */\n:global([disabled]) {\n cursor: default; }\n\n:global([type='number']) {\n width: auto;\n /* Firefox 36+ */ }\n\n:global([type='search']) {\n -webkit-appearance: textfield;\n /* Safari 8+ */ }\n\n:global([type='search']::-webkit-search-cancel-button),\n:global([type='search']::-webkit-search-decoration) {\n -webkit-appearance: none;\n /* Safari 8 */ }\n\n:global(textarea) {\n overflow: auto;\n /* Internet Explorer 11+ */\n resize: vertical;\n /* Specify textarea resizability */ }\n\n:global(button),\n:global(input),\n:global(optgroup),\n:global(select),\n:global(textarea) {\n font: inherit;\n /* Specify font inheritance of form elements */ }\n\n:global(optgroup) {\n font-weight: bold;\n /* Restore the font weight unset by the previous rule. */ }\n\n:global(button) {\n overflow: visible;\n /* Address `overflow` set to `hidden` in IE 8/9/10/11 */ }\n\n/* Remove inner padding and border in Firefox 4+ */\n:global(button::-moz-focus-inner),\n:global([type='button']::-moz-focus-inner),\n:global([type='reset']::-moz-focus-inner),\n:global([type='submit']::-moz-focus-inner) {\n border-style: 0;\n padding: 0; }\n\n/* Replace focus style removed in the border reset above */\n:global(button:-moz-focusring),\n:global([type='button']::-moz-focus-inner),\n:global([type='reset']::-moz-focus-inner),\n:global([type='submit']::-moz-focus-inner) {\n outline: 1px dotted ButtonText; }\n\n:global(button),\n:global(html) :global([type=\"button\"]),\n:global([type=\"reset\"]),\n:global([type=\"submit\"]) {\n -webkit-appearance: button;\n /* Correct the inability to style clickable types in iOS */ }\n\n:global(button),\n:global(select) {\n text-transform: none;\n /* Firefox 40+, Internet Explorer 11- */ }\n\n/* Remove the default button styling in all browsers */\n:global(button),\n:global(input),\n:global(select),\n:global(textarea) {\n background-color: transparent;\n border-style: none;\n color: inherit; }\n\n/* Style select like a standard input */\n:global(select) {\n -moz-appearance: none;\n /* Firefox 36+ */\n -webkit-appearance: none;\n /* Chrome 41+ */ }\n\n:global(select::-ms-expand) {\n display: none;\n /* Internet Explorer 11+ */ }\n\n:global(select::-ms-value) {\n color: currentColor;\n /* Internet Explorer 11+ */ }\n\n:global(legend) {\n border: 0;\n /* Correct `color` not being inherited in IE 8/9/10/11 */\n color: inherit;\n /* Correct the color inheritance from `fieldset` elements in IE */\n display: table;\n /* Correct the text wrapping in Edge and IE */\n max-width: 100%;\n /* Correct the text wrapping in Edge and IE */\n white-space: normal;\n /* Correct the text wrapping in Edge and IE */ }\n\n:global(::-webkit-file-upload-button) {\n -webkit-appearance: button;\n /* Correct the inability to style clickable types in iOS and Safari */\n font: inherit;\n /* Change font properties to `inherit` in Chrome and Safari */ }\n\n:global([type='search']) {\n -webkit-appearance: textfield;\n /* Correct the odd appearance in Chrome and Safari */\n outline-offset: -2px;\n /* Correct the outline style in Safari */ }\n\n/* # =================================================================\n\t # Specify media element style\n\t # ================================================================= */\n:global(img) {\n border-style: none;\n /* Remove border when inside `a` element in IE 8/9/10 */ }\n\n/* Add the correct vertical alignment in Chrome, Firefox, and Opera */\n:global(progress) {\n vertical-align: baseline; }\n\n:global(svg:not(:root)) {\n overflow: hidden;\n /* Internet Explorer 11- */ }\n\n:global(audio),\n:global(canvas),\n:global(progress),\n:global(video) {\n display: inline-block;\n /* Internet Explorer 11+, Windows Phone 8.1+ */ }\n\n/* # =================================================================\n\t # Accessibility\n\t # ================================================================= */\n/* Hide content from screens but not screenreaders */\n@media screen {\n :global([hidden~='screen']) {\n display: inherit; }\n :global([hidden~='screen']:not(:active):not(:focus):not(:target)) {\n position: absolute !important;\n clip: rect(0 0 0 0) !important; } }\n\n/* Specify the progress cursor of updating elements */\n:global([aria-busy='true']) {\n cursor: progress; }\n\n/* Specify the pointer cursor of trigger elements */\n:global([aria-controls]) {\n cursor: pointer; }\n\n/* Specify the unstyled cursor of disabled, not-editable, or otherwise inoperable elements */\n:global([aria-disabled]) {\n cursor: default; }\n\n/* # =================================================================\n\t # Selection\n\t # ================================================================= */\n/* Specify text selection background color and omit drop shadow */\n:global(::-moz-selection) {\n background-color: #b3d4fc;\n /* Required when declaring ::selection */\n color: #000;\n text-shadow: none; }\n\n:global(::selection) {\n background-color: #b3d4fc;\n /* Required when declaring ::selection */\n color: #000;\n text-shadow: none; }\n\n:global(html), :global(body), :global(div), :global(span), :global(applet), :global(object), :global(iframe), :global(h1), :global(h2), :global(h3), :global(h4), :global(h5), :global(h6), :global(p), :global(blockquote), :global(pre), :global(a), :global(abbr), :global(acronym), :global(address), :global(big), :global(cite), :global(code), :global(del), :global(dfn), :global(em), :global(img), :global(ins), :global(kbd), :global(q), :global(s), :global(samp), :global(small), :global(strike), :global(strong), :global(sub), :global(sup), :global(tt), :global(var), :global(b), :global(u), :global(i), :global(center), :global(dl), :global(dt), :global(dd), :global(ol), :global(ul), :global(li), :global(fieldset), :global(form), :global(label), :global(legend), :global(table), :global(caption), :global(tbody), :global(tfoot), :global(thead), :global(tr), :global(th), :global(td), :global(article), :global(aside), :global(canvas), :global(details), :global(embed), :global(figure), :global(figcaption), :global(footer), :global(header), :global(hgroup), :global(menu), :global(nav), :global(output), :global(ruby), :global(section), :global(summary), :global(time), :global(mark), :global(audio), :global(video) {\n margin: 0;\n padding: 0;\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline; }\n\n:global(button), :global(select), :global(input), :global(textarea) {\n border-radius: 0;\n font-family: inherit; }\n\n:global(input[type='text']::-ms-clear) {\n display: none; }\n\n:global(article), :global(aside), :global(details), :global(figcaption), :global(figure), :global(footer), :global(header), :global(hgroup), :global(main), :global(menu), :global(nav), :global(section) {\n display: block; }\n\n:global(body) {\n line-height: 1; }\n\n:global(sup) {\n vertical-align: super; }\n\n:global(sub) {\n vertical-align: sub; }\n\n:global(ol), :global(ul) {\n list-style: none; }\n\n:global(blockquote), :global(q) {\n quotes: none; }\n\n:global(blockquote:before), :global(blockquote:after), :global(q:before), :global(q:after) {\n content: '';\n content: none; }\n\n:global(table) {\n border-collapse: collapse;\n border-spacing: 0; }\n\n:global(*) {\n box-sizing: border-box; }\n\n:global(html) {\n font-size: 16px; }\n\n:global(body) {\n font-family: 'IBM Plex Sans', 'Helvetica Neue', Arial, sans-serif;\n font-weight: 400;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale; }\n\n:global(code) {\n font-family: 'IBM Plex Mono', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Courier, monospace; }\n\n:global(strong) {\n font-weight: 600; }\n\n@media screen and (-ms-high-contrast: active) {\n :global(svg) {\n fill: ButtonText; } }\n\n:global(h1) {\n font-size: 2.625rem;\n font-weight: 300;\n line-height: 3.125rem;\n letter-spacing: 0; }\n\n:global(h2) {\n font-size: 2rem;\n font-weight: 400;\n line-height: 2.5rem;\n letter-spacing: 0; }\n\n:global(h3) {\n font-size: 1.75rem;\n font-weight: 400;\n line-height: 2.25rem;\n letter-spacing: 0; }\n\n:global(h4) {\n font-size: 1.25rem;\n font-weight: 400;\n line-height: 1.625rem;\n letter-spacing: 0; }\n\n:global(h5) {\n font-size: 1rem;\n font-weight: 600;\n line-height: 1.375rem;\n letter-spacing: 0; }\n\n:global(h6) {\n font-size: .875rem;\n font-weight: 600;\n line-height: 1.125rem;\n letter-spacing: .16px; }\n\n:global(p) {\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5rem;\n letter-spacing: 0; }\n\n:global(a) {\n color: #0062ff; }\n\n:global(em) {\n font-style: italic; }\n\n@-webkit-keyframes -global-skeleton {\n :global(0%) {\n width: 0%;\n left: 0;\n right: auto;\n opacity: 0.3; }\n :global(20%) {\n width: 100%;\n left: 0;\n right: auto;\n opacity: 1; }\n :global(28%) {\n width: 100%;\n left: auto;\n right: 0; }\n :global(51%) {\n width: 0%;\n left: auto;\n right: 0; }\n :global(58%) {\n width: 0%;\n left: auto;\n right: 0; }\n :global(82%) {\n width: 100%;\n left: auto;\n right: 0; }\n :global(83%) {\n width: 100%;\n left: 0;\n right: auto; }\n :global(96%) {\n width: 0%;\n left: 0;\n right: auto; }\n :global(100%) {\n width: 0%;\n left: 0;\n right: auto;\n opacity: 0.3; } }\n\n@keyframes -global-skeleton {\n 0% {\n width: 0%;\n left: 0;\n right: auto;\n opacity: 0.3; }\n 20% {\n width: 100%;\n left: 0;\n right: auto;\n opacity: 1; }\n 28% {\n width: 100%;\n left: auto;\n right: 0; }\n 51% {\n width: 0%;\n left: auto;\n right: 0; }\n 58% {\n width: 0%;\n left: auto;\n right: 0; }\n 82% {\n width: 100%;\n left: auto;\n right: 0; }\n 83% {\n width: 100%;\n left: 0;\n right: auto; }\n 96% {\n width: 0%;\n left: 0;\n right: auto; }\n 100% {\n width: 0%;\n left: 0;\n right: auto;\n opacity: 0.3; } }\n\n:global(.bx--text-truncate--end) {\n width: 100%;\n display: inline-block;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden; }\n\n:global(.bx--text-truncate--front) {\n width: 100%;\n display: inline-block;\n direction: rtl;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: italic;\n font-weight: 300;\n font-display: auto;\n src: local(\"IBM Plex Mono Light Italic\"), local(\"IBMPlexMono-LightItalic\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6sfjptAgt5VM-kVkqdyU8n1ioSflV1gMoW.woff) format(\"woff\"); }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: italic;\n font-weight: 400;\n font-display: auto;\n src: local(\"IBM Plex Mono Italic\"), local(\"IBMPlexMono-Italic\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6pfjptAgt5VM-kVkqdyU8n1ioa1Xdm.woff) format(\"woff\"); }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: italic;\n font-weight: 600;\n font-display: auto;\n src: local(\"IBM Plex Mono SemiBold Italic\"), local(\"IBMPlexMono-SemiBoldItalic\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6sfjptAgt5VM-kVkqdyU8n1ioSClN1gMoW.woff) format(\"woff\"); }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 300;\n font-display: auto;\n src: local(\"IBM Plex Mono Light\"), local(\"IBMPlexMono-Light\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6qfjptAgt5VM-kVkqdyU8n3oQIwlBFhA.woff) format(\"woff\"); }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 400;\n font-display: auto;\n src: local(\"IBM Plex Mono\"), local(\"IBMPlexMono\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F63fjptAgt5VM-kVkqdyU8n1i8q0Q.woff) format(\"woff\"); }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 600;\n font-display: auto;\n src: local(\"IBM Plex Mono SemiBold\"), local(\"IBMPlexMono-SemiBold\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6qfjptAgt5VM-kVkqdyU8n3vAOwlBFhA.woff) format(\"woff\"); }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: italic;\n font-weight: 300;\n font-display: auto;\n src: local(\"IBM Plex Mono Light Italic\"), local(\"IBMPlexMono-LightItalic\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6sfjptAgt5VM-kVkqdyU8n1ioSflV1jcoQPttoz6Pz.woff2) format(\"woff2\");\n unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: italic;\n font-weight: 300;\n font-display: auto;\n src: local(\"IBM Plex Mono Light Italic\"), local(\"IBMPlexMono-LightItalic\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6sfjptAgt5VM-kVkqdyU8n1ioSflV1hMoQPttoz6Pz.woff2) format(\"woff2\");\n unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: italic;\n font-weight: 300;\n font-display: auto;\n src: local(\"IBM Plex Mono Light Italic\"), local(\"IBMPlexMono-LightItalic\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6sfjptAgt5VM-kVkqdyU8n1ioSflV1j8oQPttoz6Pz.woff2) format(\"woff2\");\n unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: italic;\n font-weight: 300;\n font-display: auto;\n src: local(\"IBM Plex Mono Light Italic\"), local(\"IBMPlexMono-LightItalic\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6sfjptAgt5VM-kVkqdyU8n1ioSflV1jsoQPttoz6Pz.woff2) format(\"woff2\");\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: italic;\n font-weight: 300;\n font-display: auto;\n src: local(\"IBM Plex Mono Light Italic\"), local(\"IBMPlexMono-LightItalic\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6sfjptAgt5VM-kVkqdyU8n1ioSflV1gMoQPttozw.woff2) format(\"woff2\");\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: italic;\n font-weight: 400;\n font-display: auto;\n src: local(\"IBM Plex Mono Italic\"), local(\"IBMPlexMono-Italic\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6pfjptAgt5VM-kVkqdyU8n1ioa2HdgregdFOFh.woff2) format(\"woff2\");\n unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: italic;\n font-weight: 400;\n font-display: auto;\n src: local(\"IBM Plex Mono Italic\"), local(\"IBMPlexMono-Italic\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6pfjptAgt5VM-kVkqdyU8n1ioa0XdgregdFOFh.woff2) format(\"woff2\");\n unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: italic;\n font-weight: 400;\n font-display: auto;\n src: local(\"IBM Plex Mono Italic\"), local(\"IBMPlexMono-Italic\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6pfjptAgt5VM-kVkqdyU8n1ioa2ndgregdFOFh.woff2) format(\"woff2\");\n unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: italic;\n font-weight: 400;\n font-display: auto;\n src: local(\"IBM Plex Mono Italic\"), local(\"IBMPlexMono-Italic\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6pfjptAgt5VM-kVkqdyU8n1ioa23dgregdFOFh.woff2) format(\"woff2\");\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: italic;\n font-weight: 400;\n font-display: auto;\n src: local(\"IBM Plex Mono Italic\"), local(\"IBMPlexMono-Italic\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6pfjptAgt5VM-kVkqdyU8n1ioa1XdgregdFA.woff2) format(\"woff2\");\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: italic;\n font-weight: 600;\n font-display: auto;\n src: local(\"IBM Plex Mono SemiBold Italic\"), local(\"IBMPlexMono-SemiBoldItalic\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6sfjptAgt5VM-kVkqdyU8n1ioSClN1jcoQPttoz6Pz.woff2) format(\"woff2\");\n unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: italic;\n font-weight: 600;\n font-display: auto;\n src: local(\"IBM Plex Mono SemiBold Italic\"), local(\"IBMPlexMono-SemiBoldItalic\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6sfjptAgt5VM-kVkqdyU8n1ioSClN1hMoQPttoz6Pz.woff2) format(\"woff2\");\n unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: italic;\n font-weight: 600;\n font-display: auto;\n src: local(\"IBM Plex Mono SemiBold Italic\"), local(\"IBMPlexMono-SemiBoldItalic\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6sfjptAgt5VM-kVkqdyU8n1ioSClN1j8oQPttoz6Pz.woff2) format(\"woff2\");\n unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: italic;\n font-weight: 600;\n font-display: auto;\n src: local(\"IBM Plex Mono SemiBold Italic\"), local(\"IBMPlexMono-SemiBoldItalic\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6sfjptAgt5VM-kVkqdyU8n1ioSClN1jsoQPttoz6Pz.woff2) format(\"woff2\");\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: italic;\n font-weight: 600;\n font-display: auto;\n src: local(\"IBM Plex Mono SemiBold Italic\"), local(\"IBMPlexMono-SemiBoldItalic\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6sfjptAgt5VM-kVkqdyU8n1ioSClN1gMoQPttozw.woff2) format(\"woff2\");\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 300;\n font-display: auto;\n src: local(\"IBM Plex Mono Light\"), local(\"IBMPlexMono-Light\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6qfjptAgt5VM-kVkqdyU8n3oQIwl1FgsAXHNlYzg.woff2) format(\"woff2\");\n unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 300;\n font-display: auto;\n src: local(\"IBM Plex Mono Light\"), local(\"IBMPlexMono-Light\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6qfjptAgt5VM-kVkqdyU8n3oQIwlRFgsAXHNlYzg.woff2) format(\"woff2\");\n unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 300;\n font-display: auto;\n src: local(\"IBM Plex Mono Light\"), local(\"IBMPlexMono-Light\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6qfjptAgt5VM-kVkqdyU8n3oQIwl9FgsAXHNlYzg.woff2) format(\"woff2\");\n unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 300;\n font-display: auto;\n src: local(\"IBM Plex Mono Light\"), local(\"IBMPlexMono-Light\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6qfjptAgt5VM-kVkqdyU8n3oQIwl5FgsAXHNlYzg.woff2) format(\"woff2\");\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 300;\n font-display: auto;\n src: local(\"IBM Plex Mono Light\"), local(\"IBMPlexMono-Light\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6qfjptAgt5VM-kVkqdyU8n3oQIwlBFgsAXHNk.woff2) format(\"woff2\");\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 400;\n font-display: auto;\n src: local(\"IBM Plex Mono\"), local(\"IBMPlexMono\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F63fjptAgt5VM-kVkqdyU8n1iIq131nj-otFQ.woff2) format(\"woff2\");\n unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 400;\n font-display: auto;\n src: local(\"IBM Plex Mono\"), local(\"IBMPlexMono\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F63fjptAgt5VM-kVkqdyU8n1isq131nj-otFQ.woff2) format(\"woff2\");\n unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 400;\n font-display: auto;\n src: local(\"IBM Plex Mono\"), local(\"IBMPlexMono\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F63fjptAgt5VM-kVkqdyU8n1iAq131nj-otFQ.woff2) format(\"woff2\");\n unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 400;\n font-display: auto;\n src: local(\"IBM Plex Mono\"), local(\"IBMPlexMono\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F63fjptAgt5VM-kVkqdyU8n1iEq131nj-otFQ.woff2) format(\"woff2\");\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 400;\n font-display: auto;\n src: local(\"IBM Plex Mono\"), local(\"IBMPlexMono\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F63fjptAgt5VM-kVkqdyU8n1i8q131nj-o.woff2) format(\"woff2\");\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 600;\n font-display: auto;\n src: local(\"IBM Plex Mono SemiBold\"), local(\"IBMPlexMono-SemiBold\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6qfjptAgt5VM-kVkqdyU8n3vAOwl1FgsAXHNlYzg.woff2) format(\"woff2\");\n unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 600;\n font-display: auto;\n src: local(\"IBM Plex Mono SemiBold\"), local(\"IBMPlexMono-SemiBold\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6qfjptAgt5VM-kVkqdyU8n3vAOwlRFgsAXHNlYzg.woff2) format(\"woff2\");\n unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 600;\n font-display: auto;\n src: local(\"IBM Plex Mono SemiBold\"), local(\"IBMPlexMono-SemiBold\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6qfjptAgt5VM-kVkqdyU8n3vAOwl9FgsAXHNlYzg.woff2) format(\"woff2\");\n unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 600;\n font-display: auto;\n src: local(\"IBM Plex Mono SemiBold\"), local(\"IBMPlexMono-SemiBold\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6qfjptAgt5VM-kVkqdyU8n3vAOwl5FgsAXHNlYzg.woff2) format(\"woff2\");\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF; }\n\n@font-face {\n font-family: 'IBM Plex Mono';\n font-style: normal;\n font-weight: 600;\n font-display: auto;\n src: local(\"IBM Plex Mono SemiBold\"), local(\"IBMPlexMono-SemiBold\"), url(https://fonts.gstatic.com/s/ibmplexmono/v4/-F6qfjptAgt5VM-kVkqdyU8n3vAOwlBFgsAXHNk.woff2) format(\"woff2\");\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }\n\n@font-face {\n font-family: 'IBM Plex Sans';\n font-style: italic;\n font-weight: 300;\n font-display: auto;\n src: local(\"IBM Plex Sans Light Italic\"), local(\"IBMPlexSans-LightItalic\"), url(https://fonts.gstatic.com/s/ibmplexsans/v6/zYX7KVElMYYaJe8bpLHnCwDKhdTmvIRcdvfo.woff) format(\"woff\"); }\n\n@font-face {\n font-family: 'IBM Plex Sans';\n font-style: italic;\n font-weight: 400;\n font-display: auto;\n src: local(\"IBM Plex Sans Italic\"), local(\"IBMPlexSans-Italic\"), url(https://fonts.gstatic.com/s/ibmplexsans/v6/zYX-KVElMYYaJe8bpLHnCwDKhdTuF6ZP.woff) format(\"woff\"); }\n\n@font-face {\n font-family: 'IBM Plex Sans';\n font-style: italic;\n font-weight: 600;\n font-display: auto;\n src: local(\"IBM Plex Sans SemiBold Italic\"), local(\"IBMPlexSans-SemiBoldItalic\"), url(https://fonts.gstatic.com/s/ibmplexsans/v6/zYX7KVElMYYaJe8bpLHnCwDKhdTmyIJcdvfo.woff) format(\"woff\"); }\n\n@font-face {\n font-family: 'IBM Plex Sans';\n font-style: normal;\n font-weight: 300;\n font-display: auto;\n src: local(\"IBM Plex Sans Light\"), local(\"IBMPlexSans-Light\"), url(https://fonts.gstatic.com/s/ibmplexsans/v6/zYX9KVElMYYaJe8bpLHnCwDKjXr8AIFscg.woff) format(\"woff\"); }\n\n@font-face {\n font-family: 'IBM Plex Sans';\n font-style: normal;\n font-weight: 400;\n font-display: auto;\n src: local(\"IBM Plex Sans\"), local(\"IBMPlexSans\"), url(https://fonts.gstatic.com/s/ibmplexsans/v6/zYXgKVElMYYaJe8bpLHnCwDKhdHeEw.woff) format(\"woff\"); }\n\n@font-face {\n font-family: 'IBM Plex Sans';\n font-style: normal;\n font-weight: 600;\n font-display: auto;\n src: local(\"IBM Plex Sans SemiBold\"), local(\"IBMPlexSans-SemiBold\"), url(https://fonts.gstatic.com/s/ibmplexsans/v6/zYX9KVElMYYaJe8bpLHnCwDKjQ76AIFscg.woff) format(\"woff\"); }\n\n@font-face {\n font-family: 'IBM Plex Sans';\n font-style: italic;\n font-weight: 300;\n font-display: auto;\n src: local(\"IBM Plex Sans Light Italic\"), local(\"IBMPlexSans-LightItalic\"), url(https://fonts.gstatic.com/s/ibmplexsans/v6/zYX7KVElMYYaJe8bpLHnCwDKhdTmvIRce_fuJGl18QRY.woff2) format(\"woff2\");\n unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }\n\n@font-face {\n font-family: 'IBM Plex Sans';\n font-style: italic;\n font-weight: 300;\n font-display: auto;\n src: local(\"IBM Plex Sans Light Italic\"), local(\"IBMPlexSans-LightItalic\"), url(https://fonts.gstatic.com/s/ibmplexsans/v6/zYX7KVElMYYaJe8bpLHnCwDKhdTmvIRccvfuJGl18QRY.woff2) format(\"woff2\");\n unicode