@redocly/theme 0.9.0-beta.2 → 0.9.0-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/lib/Cards/Card.d.ts +0 -1
  2. package/lib/Catalog/Catalog.d.ts +0 -1
  3. package/lib/Catalog/CatalogCard.d.ts +0 -1
  4. package/lib/Catalog/Filter.d.ts +0 -1
  5. package/lib/Catalog/Tags.d.ts +0 -1
  6. package/lib/ColorModeSwitcher/ColorModeSwitcher.d.ts +0 -1
  7. package/lib/CopyButton/CopyButton.d.ts +0 -1
  8. package/lib/EditPageButton/EditPageButton.d.ts +0 -1
  9. package/lib/Feedback/Comment.d.ts +0 -1
  10. package/lib/Feedback/Rating.d.ts +0 -1
  11. package/lib/Feedback/Reasons.d.ts +0 -1
  12. package/lib/Feedback/ReportDialog.d.ts +0 -1
  13. package/lib/Feedback/Sentiment.d.ts +0 -1
  14. package/lib/Feedback/Thumbs.d.ts +0 -1
  15. package/lib/Footer/CustomFooter.d.ts +0 -1
  16. package/lib/Footer/CustomFooterNavItem.d.ts +0 -1
  17. package/lib/Footer/Footer.d.ts +0 -1
  18. package/lib/Footer/FooterColumn.d.ts +0 -1
  19. package/lib/Footer/FooterColumns.d.ts +0 -1
  20. package/lib/Footer/FooterCopyright.d.ts +0 -1
  21. package/lib/LastUpdated/LastUpdated.d.ts +0 -1
  22. package/lib/Markdown/CodeSample/CodeSample.d.ts +0 -1
  23. package/lib/Markdown/Mermaid.d.ts +0 -1
  24. package/lib/Markdown/Tabs/Tab.d.ts +0 -1
  25. package/lib/Navbar/MobileNavbarDropdown.d.ts +0 -1
  26. package/lib/Navbar/MobileNavbarItem.d.ts +0 -1
  27. package/lib/Navbar/MobileNavbarMenuButton.d.ts +0 -1
  28. package/lib/Navbar/NavbarDropdown.d.ts +0 -1
  29. package/lib/Navbar/NavbarItem.d.ts +0 -1
  30. package/lib/Navbar/NavbarMenu.d.ts +0 -1
  31. package/lib/NavbarLogo/NavbarLogo.d.ts +0 -1
  32. package/lib/PageNavigation/NextButton.d.ts +0 -1
  33. package/lib/PageNavigation/PageNavigation.d.ts +0 -1
  34. package/lib/PageNavigation/PreviousButton.d.ts +0 -1
  35. package/lib/Pages/Forbidden.d.ts +0 -1
  36. package/lib/Pages/NotFound.d.ts +0 -1
  37. package/lib/Profile/LoginLink.d.ts +0 -1
  38. package/lib/Profile/UserProfile.d.ts +0 -1
  39. package/lib/ReferenceDocs/TryItSecurity.d.ts +2 -0
  40. package/lib/ReferenceDocs/TryItSecurity.js +5 -0
  41. package/lib/Search/Parameters.d.ts +0 -1
  42. package/lib/Search/Search.d.ts +0 -1
  43. package/lib/Search/SearchItem.d.ts +0 -1
  44. package/lib/Search/ShortcutKey.d.ts +0 -1
  45. package/lib/Search/utils.d.ts +0 -1
  46. package/lib/Sidebar/ApiCallItem.d.ts +0 -1
  47. package/lib/Sidebar/ArrowBack.d.ts +0 -1
  48. package/lib/Sidebar/DrilldownMenuItem.d.ts +0 -1
  49. package/lib/Sidebar/ExternalIcon.d.ts +0 -1
  50. package/lib/Sidebar/MenuItem.d.ts +0 -1
  51. package/lib/Sidebar/Separator.d.ts +0 -1
  52. package/lib/SidebarLogo/SidebarLogo.d.ts +0 -1
  53. package/lib/SourceCode/SourceCode.d.ts +3 -3
  54. package/lib/SourceCode/SourceCode.js +5 -5
  55. package/lib/TableOfContent/TableOfContent.d.ts +0 -1
  56. package/lib/globalStyle.js +1 -0
  57. package/lib/icons/AlertIcon/AlertIcon.d.ts +0 -1
  58. package/lib/icons/ArrowIcon/ArrowIcon.d.ts +0 -1
  59. package/lib/icons/ColorModeIcon/ColorModeIcon.d.ts +0 -1
  60. package/lib/mocks/Link.d.ts +0 -1
  61. package/lib/ui/Dropdown.d.ts +0 -1
  62. package/package.json +1 -1
  63. package/src/ReferenceDocs/TryItSecurity.tsx +4 -0
  64. package/src/SourceCode/SourceCode.tsx +6 -0
  65. package/src/globalStyle.ts +1 -0
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { ResolvedNavItem } from '@theme/types/portal';
3
2
  export interface CardProps {
4
3
  title?: string;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { CatalogConfig } from '@theme/types/portal/src/shared/types/catalog';
3
2
  export default function Catalog(props: {
4
3
  pageProps: {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { CatalogItem } from '@theme/types/portal/src/shared/types/catalog';
3
2
  export declare function CatalogCard({ item }: {
4
3
  item: CatalogItem;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { ResolvedFilter } from '@theme/types/portal/src/shared/types/catalog';
3
2
  export declare function Filter({ filter }: {
4
3
  filter: ResolvedFilter;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare function Tags({ tags }: {
3
2
  tags: string[];
4
3
  }): JSX.Element;
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
1
  export declare function ColorModeSwitcher(): JSX.Element | null;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export interface CopyButtonProps {
3
2
  text: string;
4
3
  dataTestId?: string;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export interface EditPageButtonProps {
3
2
  text: string;
4
3
  to: string;
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  import type { CommentProps } from '../Feedback';
3
2
  export declare const Comment: ({ settings, onSubmit }: CommentProps) => JSX.Element;
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  import type { RatingProps } from '../Feedback';
3
2
  export declare const Rating: ({ settings, onSubmit }: RatingProps) => JSX.Element;
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  import type { ReasonsProps } from '../Feedback';
3
2
  export declare const Reasons: ({ settings, onSubmit }: ReasonsProps) => JSX.Element;
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  import type { ReportDialogProps } from '../Feedback';
3
2
  export declare const ReportDialog: ({ location, settings, onSubmit, onCancel, }: ReportDialogProps) => JSX.Element;
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  import type { SentimentProps } from '../Feedback';
3
2
  export declare const Sentiment: ({ settings, onSubmit }: SentimentProps) => JSX.Element;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare const ThumbUp: ({ text }: {
3
2
  text?: string | undefined;
4
3
  }) => JSX.Element;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { NavGroupRecord } from '@theme/types/portal';
3
2
  interface FooterProps {
4
3
  data: NavGroupRecord;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { ResolvedNavItem } from '@theme/types/portal';
3
2
  interface CustomFooterNavItemProps {
4
3
  navItem: ResolvedNavItem;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { NavGroup } from '@theme/types/portal';
3
2
  interface FooterProps {
4
3
  data: {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { ResolvedNavItem } from '@theme/types/portal';
3
2
  interface FooterColumnProps {
4
3
  column: ResolvedNavItem;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { ResolvedNavItem } from '@theme/types/portal';
3
2
  interface FooterColumnsProps {
4
3
  columns: ResolvedNavItem[];
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { NavGroup } from '@theme/types/portal';
3
2
  interface FooterCopyrightProps {
4
3
  copyrightText: NavGroup;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  declare const FORMATS: {
3
2
  timeago: (date: Date, locale: string) => string;
4
3
  iso: (date: Date) => string;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export type CodeSampleProps = {
3
2
  language: string;
4
3
  highlighted: string;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  type MermaidProps = {
3
2
  diagramHtml: string;
4
3
  };
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  type TabProps = {
3
2
  activeTab: string;
4
3
  label: string;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { ResolvedNavLinkItem } from '@theme/types/portal';
3
2
  interface NavbarDropdownProps {
4
3
  items: ResolvedNavLinkItem[];
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { Link } from '../mocks/Link';
3
2
  import type { ResolvedNavItem } from '@theme/types/portal';
4
3
  export interface NavbarItemProps {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare const MobileNavbarMenuButton: import("styled-components").StyledComponent<({ onClick, className }: import("../ui/Burger").BurgerProps) => JSX.Element, any, {
3
2
  'data-component-name': string;
4
3
  }, "data-component-name">;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { ResolvedNavLinkItem } from '@theme/types/portal';
3
2
  interface NavbarDropdownProps {
4
3
  items: ResolvedNavLinkItem[];
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { Link } from '../mocks/Link';
3
2
  import type { ResolvedNavItem } from '@theme/types/portal';
4
3
  export interface NavbarItemProps {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { ResolvedConfigLinks } from '@theme/types/portal';
3
2
  export declare function NavbarMenu({ menuItems }: {
4
3
  menuItems: ResolvedConfigLinks;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { LogoConfig } from '@theme/types/portal';
3
2
  export type NavbarLogoProps = {
4
3
  logo: Pick<LogoConfig, 'image' | 'link' | 'altText'>;
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
1
  export declare function NextButton(): JSX.Element;
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
1
  export declare function PageNavigation(): JSX.Element | null;
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
1
  export declare function PreviousButton(): JSX.Element;
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
1
  export declare function Forbidden(): JSX.Element;
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
1
  export declare function NotFound(): JSX.Element;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export interface LoginLinkProps {
3
2
  href: string;
4
3
  }
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export interface UserProfileProps {
3
2
  userInfo: {
4
3
  isAuthenticated: boolean;
@@ -0,0 +1,2 @@
1
+ import type { BeforeSecurityPanelHookProps } from '@redocly/openapi-docs';
2
+ export declare const TryItSecurity: ((props: BeforeSecurityPanelHookProps) => JSX.Element) | undefined;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TryItSecurity = void 0;
4
+ exports.TryItSecurity = undefined;
5
+ //# sourceMappingURL=TryItSecurity.js.map
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { OperationParameter } from '../mocks/types';
3
2
  interface ParametersProps {
4
3
  parameters: OperationParameter[];
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
1
  export declare function Search(): JSX.Element;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { ActiveItem, SearchDocument } from '../mocks/types';
3
2
  interface SearchItemProps {
4
3
  item: ActiveItem<SearchDocument>;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  interface ShortcutKeyProps {
3
2
  keyShortcuts?: string | string[];
4
3
  }
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
1
  export declare const highlight: (text: string | string[]) => JSX.Element | string;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { MenuItemProps } from '../Sidebar/types/MenuItemProps';
3
2
  export declare function ApiCallItem({ item }: MenuItemProps): JSX.Element;
4
3
  export declare const Badge: import("styled-components").StyledComponent<"span", any, {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare const ArrowBack: import("styled-components").StyledComponent<({ className }: {
3
2
  className?: string | undefined;
4
3
  }) => JSX.Element, any, {}, never>;
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  import type { MenuItemProps } from '../Sidebar/types/MenuItemProps';
3
2
  export declare function DrilldownMenuItem({ item }: MenuItemProps): JSX.Element;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare const ExternalIcon: import("styled-components").StyledComponent<({ className }: {
3
2
  className?: string | undefined;
4
3
  }) => JSX.Element, any, {}, never>;
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  import type { MenuItemProps } from '../Sidebar/types/MenuItemProps';
3
2
  export declare function MenuItem({ item }: MenuItemProps): JSX.Element;
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  import type { MenuItemProps } from '../Sidebar/types/MenuItemProps';
3
2
  export declare function Separator({ item }: MenuItemProps): JSX.Element;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export interface LogoProps {
3
2
  imageUrl?: string;
4
3
  href?: string;
@@ -1,7 +1,7 @@
1
- /// <reference types="react" />
2
1
  interface CommonCodeProps {
3
2
  withLineNumbers?: boolean;
4
3
  startLineNumber?: number;
4
+ className?: string;
5
5
  }
6
6
  export interface SourceCodeProps extends CommonCodeProps {
7
7
  lang: string;
@@ -27,6 +27,6 @@ export interface ExternalSource {
27
27
  properties?: any;
28
28
  operation?: any;
29
29
  }
30
- export declare function Code({ source, lang, dataTestId, withLineNumbers, startLineNumber, }: CodeProps): JSX.Element;
31
- export declare function SourceCode({ lang, source, externalSource, onCopyClick, withCopyButton, dataTestId, withLineNumbers, startLineNumber, }: SourceCodeProps): JSX.Element;
30
+ export declare function Code({ source, lang, dataTestId, withLineNumbers, startLineNumber, className, }: CodeProps): JSX.Element;
31
+ export declare function SourceCode({ lang, source, externalSource, onCopyClick, withCopyButton, dataTestId, withLineNumbers, startLineNumber, className, }: SourceCodeProps): JSX.Element;
32
32
  export {};
@@ -28,16 +28,16 @@ const react_1 = __importStar(require("react"));
28
28
  const utils_1 = require("../utils");
29
29
  const SamplesPanelControls_1 = require("../SamplesPanelControls");
30
30
  const CopyButton_1 = require("../CopyButton");
31
- function Code({ source, lang, dataTestId, withLineNumbers, startLineNumber, }) {
31
+ function Code({ source, lang, dataTestId, withLineNumbers, startLineNumber, className, }) {
32
32
  const highlightedCode = (0, utils_1.highlight)(source, lang);
33
- return (react_1.default.createElement(SamplesPanelControls_1.PreformattedCodeBlock, { dangerouslySetInnerHTML: {
33
+ return (react_1.default.createElement(SamplesPanelControls_1.PreformattedCodeBlock, { className: className, dangerouslySetInnerHTML: {
34
34
  __html: withLineNumbers
35
35
  ? (0, utils_1.addLineNumbers)(highlightedCode, startLineNumber)
36
36
  : highlightedCode,
37
37
  }, "data-cy": dataTestId }));
38
38
  }
39
39
  exports.Code = Code;
40
- function SourceCode({ lang, source, externalSource, onCopyClick, withCopyButton, dataTestId = 'source-code', withLineNumbers, startLineNumber, }) {
40
+ function SourceCode({ lang, source, externalSource, onCopyClick, withCopyButton, dataTestId = 'source-code', withLineNumbers, startLineNumber, className, }) {
41
41
  const [sourceCode, setSourceCode] = (0, react_1.useState)(source !== null && source !== void 0 ? source : '');
42
42
  // The same initial value should be returned for ssr and frontend to avoid issues
43
43
  // Because we don't have session storage in ssr and can't get the security details there
@@ -52,9 +52,9 @@ function SourceCode({ lang, source, externalSource, onCopyClick, withCopyButton,
52
52
  if (withCopyButton) {
53
53
  return (react_1.default.createElement(CopyButton_1.CopyButtonWrapper, { data: sourceCode, onCopyClick: onCopyClick, "data-component-name": "SourceCode/SourceCode" }, ({ renderCopyButton }) => (react_1.default.createElement(SamplesPanelControls_1.SampleControlsWrap, null,
54
54
  react_1.default.createElement(SamplesPanelControls_1.SampleControls, { "data-cy": "copy-button" }, renderCopyButton()),
55
- react_1.default.createElement(Code, { lang: lang, source: sourceCode, withLineNumbers: withLineNumbers, startLineNumber: startLineNumber, dataTestId: dataTestId })))));
55
+ react_1.default.createElement(Code, { lang: lang, source: sourceCode, withLineNumbers: withLineNumbers, startLineNumber: startLineNumber, dataTestId: dataTestId, className: className })))));
56
56
  }
57
- return (react_1.default.createElement(Code, { dataTestId: dataTestId, lang: lang, source: sourceCode, withLineNumbers: withLineNumbers, startLineNumber: startLineNumber, "data-component-name": "SourceCode/SourceCode" }));
57
+ return (react_1.default.createElement(Code, { dataTestId: dataTestId, className: className, lang: lang, source: sourceCode, withLineNumbers: withLineNumbers, startLineNumber: startLineNumber, "data-component-name": "SourceCode/SourceCode" }));
58
58
  }
59
59
  exports.SourceCode = SourceCode;
60
60
  //# sourceMappingURL=SourceCode.js.map
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { MdHeading } from '@theme/types/portal';
3
2
  interface TableOfContentProps {
4
3
  headings?: Array<MdHeading | null> | null | undefined;
@@ -1985,6 +1985,7 @@ exports.styles = (0, styled_components_1.css) `
1985
1985
 
1986
1986
  background-color: var(--background-color);
1987
1987
  color: var(--text-color);
1988
+ font-family: var(--font-family-base);
1988
1989
  }
1989
1990
 
1990
1991
  :root.dark {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export interface AlertIconProps {
3
2
  type: 'warning' | 'success' | 'danger' | 'attention' | 'info';
4
3
  className?: string;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export interface ArrowIconProps {
3
2
  direction?: 'up' | 'right' | 'left' | 'down';
4
3
  }
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export interface ColorModeIconProps {
3
2
  mode?: 'dark' | 'light' | string;
4
3
  className?: string;
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
1
  export declare function Link(props: any): JSX.Element;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { Version } from '@theme/types/portal';
3
2
  type DropdownProps = {
4
3
  items: Version[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/theme",
3
- "version": "0.9.0-beta.2",
3
+ "version": "0.9.0-beta.3",
4
4
  "description": "Shared UI components lib",
5
5
  "author": "team@redocly.com",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -0,0 +1,4 @@
1
+ import type { BeforeSecurityPanelHookProps } from '@redocly/openapi-docs';
2
+
3
+ export const TryItSecurity: ((props: BeforeSecurityPanelHookProps) => JSX.Element) | undefined =
4
+ undefined;
@@ -11,6 +11,7 @@ import { CopyButtonWrapper } from '@theme/CopyButton';
11
11
  interface CommonCodeProps {
12
12
  withLineNumbers?: boolean;
13
13
  startLineNumber?: number;
14
+ className?: string;
14
15
  }
15
16
 
16
17
  export interface SourceCodeProps extends CommonCodeProps {
@@ -49,11 +50,13 @@ export function Code({
49
50
  dataTestId,
50
51
  withLineNumbers,
51
52
  startLineNumber,
53
+ className,
52
54
  }: CodeProps): JSX.Element {
53
55
  const highlightedCode = highlight(source, lang);
54
56
 
55
57
  return (
56
58
  <PreformattedCodeBlock
59
+ className={className}
57
60
  dangerouslySetInnerHTML={{
58
61
  __html: withLineNumbers
59
62
  ? addLineNumbers(highlightedCode, startLineNumber)
@@ -73,6 +76,7 @@ export function SourceCode({
73
76
  dataTestId = 'source-code',
74
77
  withLineNumbers,
75
78
  startLineNumber,
79
+ className,
76
80
  }: SourceCodeProps): JSX.Element {
77
81
  const [sourceCode, setSourceCode] = useState<string>(source ?? '');
78
82
 
@@ -102,6 +106,7 @@ export function SourceCode({
102
106
  withLineNumbers={withLineNumbers}
103
107
  startLineNumber={startLineNumber}
104
108
  dataTestId={dataTestId}
109
+ className={className}
105
110
  />
106
111
  </SampleControlsWrap>
107
112
  )}
@@ -112,6 +117,7 @@ export function SourceCode({
112
117
  return (
113
118
  <Code
114
119
  dataTestId={dataTestId}
120
+ className={className}
115
121
  lang={lang}
116
122
  source={sourceCode}
117
123
  withLineNumbers={withLineNumbers}
@@ -2013,6 +2013,7 @@ export const styles = css`
2013
2013
 
2014
2014
  background-color: var(--background-color);
2015
2015
  color: var(--text-color);
2016
+ font-family: var(--font-family-base);
2016
2017
  }
2017
2018
 
2018
2019
  :root.dark {