@redocly/theme 0.4.1 → 0.4.4

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 (43) hide show
  1. package/EditPageButton/EditPageButton.d.ts +7 -0
  2. package/EditPageButton/EditPageButton.js +24 -0
  3. package/EditPageButton/index.d.ts +1 -0
  4. package/EditPageButton/index.js +17 -0
  5. package/LastUpdated/LastUpdated.d.ts +5 -0
  6. package/LastUpdated/LastUpdated.js +35 -0
  7. package/Markdown/Admonition.d.ts +1 -1
  8. package/Markdown/MarkdownLayout.d.ts +7 -1
  9. package/Markdown/MarkdownLayout.js +13 -1
  10. package/Markdown/MarkdownWrapper.js +1 -1
  11. package/Panel/PanelComponent.d.ts +2 -1
  12. package/Panel/PanelComponent.js +4 -4
  13. package/Sidebar/ArrowBack.js +1 -1
  14. package/Sidebar/BackButton.js +1 -1
  15. package/Sidebar/MobileSidebarButton.js +7 -3
  16. package/globalStyle.d.ts +0 -1
  17. package/globalStyle.js +29 -29
  18. package/icons/AlertIcon/AlertIcon.js +4 -1
  19. package/index.d.ts +1 -0
  20. package/index.js +1 -0
  21. package/mocks/utils.d.ts +1 -0
  22. package/mocks/utils.js +7 -1
  23. package/package.json +1 -1
  24. package/src/EditPageButton/EditPageButton.tsx +38 -0
  25. package/src/EditPageButton/index.ts +1 -0
  26. package/src/LastUpdated/LastUpdated.tsx +40 -0
  27. package/src/Markdown/Admonition.tsx +1 -1
  28. package/src/Markdown/MarkdownLayout.tsx +23 -0
  29. package/src/Markdown/MarkdownWrapper.tsx +5 -0
  30. package/src/Panel/PanelComponent.tsx +3 -1
  31. package/src/Sidebar/ArrowBack.tsx +7 -1
  32. package/src/Sidebar/BackButton.tsx +0 -5
  33. package/src/Sidebar/MobileSidebarButton.tsx +17 -20
  34. package/src/globalStyle.ts +51 -56
  35. package/src/icons/AlertIcon/AlertIcon.tsx +5 -0
  36. package/src/index.ts +1 -0
  37. package/src/mocks/utils.ts +6 -0
  38. package/src/settings.yaml +2 -0
  39. package/src/ui/Tiles/WideTile.tsx +1 -1
  40. package/src/ui/darkColors.tsx +28 -0
  41. package/ui/Tiles/WideTile.js +1 -1
  42. package/ui/darkColors.d.ts +1 -0
  43. package/ui/darkColors.js +10 -0
@@ -41,8 +41,11 @@ function Icon(_a) {
41
41
  }
42
42
  exports.AlertIcon = (0, styled_components_1.default)(Icon).attrs(function () { return ({
43
43
  'data-component-name': 'icons/AlertIcon/AlertIcon',
44
- }); })(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: absolute;\n left: var(--admonition-padding-horizontal);\n top: 50%;\n transform: translateY(-50%);\n width: var(--admonition-icon-size);\n height: var(--admonition-icon-size);\n margin-right: var(--admonition-padding-horizontal);\n flex-shrink: 0;\n\n fill: ", ";\n"], ["\n position: absolute;\n left: var(--admonition-padding-horizontal);\n top: 50%;\n transform: translateY(-50%);\n width: var(--admonition-icon-size);\n height: var(--admonition-icon-size);\n margin-right: var(--admonition-padding-horizontal);\n flex-shrink: 0;\n\n fill: ", ";\n"])), function (_a) {
44
+ }); })(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: absolute;\n left: var(--admonition-padding-horizontal);\n top: 50%;\n transform: translateY(-50%);\n width: var(--admonition-icon-size);\n height: var(--admonition-icon-size);\n margin-right: var(--admonition-padding-horizontal);\n flex-shrink: 0;\n\n fill: ", ";\n\n background-image: ", ";\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n"], ["\n position: absolute;\n left: var(--admonition-padding-horizontal);\n top: 50%;\n transform: translateY(-50%);\n width: var(--admonition-icon-size);\n height: var(--admonition-icon-size);\n margin-right: var(--admonition-padding-horizontal);\n flex-shrink: 0;\n\n fill: ", ";\n\n background-image: ", ";\n background-repeat: no-repeat;\n background-position: center;\n background-size: contain;\n"])), function (_a) {
45
45
  var type = _a.type;
46
46
  return "var(--admonition-".concat(type, "-icon-color)");
47
+ }, function (_a) {
48
+ var type = _a.type;
49
+ return "var(--admonition-".concat(type, "-icon)");
47
50
  });
48
51
  var templateObject_1;
package/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export * from './Button';
2
2
  export * from './CopyButton';
3
+ export * from './EditPageButton';
3
4
  export * from './JsonViewer';
4
5
  export * from './Typography';
5
6
  export * from './SidebarLogo';
package/index.js CHANGED
@@ -16,6 +16,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./Button"), exports);
18
18
  __exportStar(require("./CopyButton"), exports);
19
+ __exportStar(require("./EditPageButton"), exports);
19
20
  __exportStar(require("./JsonViewer"), exports);
20
21
  __exportStar(require("./Typography"), exports);
21
22
  __exportStar(require("./SidebarLogo"), exports);
package/mocks/utils.d.ts CHANGED
@@ -1 +1,2 @@
1
1
  export declare function withPathPrefix(link: string): string;
2
+ export declare function timeAgo(lastModified: string | Date): string;
package/mocks/utils.js CHANGED
@@ -1,7 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.withPathPrefix = void 0;
3
+ exports.timeAgo = exports.withPathPrefix = void 0;
4
4
  function withPathPrefix(link) {
5
5
  return link;
6
6
  }
7
7
  exports.withPathPrefix = withPathPrefix;
8
+ function timeAgo(lastModified) {
9
+ // should return format(lastModified) in new-hope
10
+ var d = new Date(lastModified);
11
+ return "".concat(d.getDate(), "-").concat(d.getMonth() + 1, "-").concat(d.getFullYear());
12
+ }
13
+ exports.timeAgo = timeAgo;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/theme",
3
- "version": "0.4.1",
3
+ "version": "0.4.4",
4
4
  "description": "Shared UI components",
5
5
  "author": "team@redocly.com",
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -0,0 +1,38 @@
1
+ import React from 'react';
2
+ import styled from 'styled-components';
3
+
4
+ import { Link } from '@portal/Link';
5
+
6
+ export interface EditPageButtonProps {
7
+ text: string;
8
+ to: string;
9
+ icon: string;
10
+ }
11
+
12
+ export const EditPageButton = ({ text, to, icon }: EditPageButtonProps): JSX.Element => {
13
+ return (
14
+ <EditButton to={to}>
15
+ <ButtonIcon src={icon} />
16
+ <ButtonText>{text}</ButtonText>
17
+ </EditButton>
18
+ );
19
+ };
20
+
21
+ const EditButton = styled(Link)`
22
+ margin-left: auto;
23
+ display: inline-flex;
24
+ color: var(--color-content);
25
+ font-weight: var(--font-weight-bold);
26
+ font-size: var(--font-size-base);
27
+ font-family: var(--font-family-base);
28
+ text-decoration: none;
29
+ `;
30
+
31
+ const ButtonIcon = styled.img`
32
+ height: 14px;
33
+ padding-right: 3px;
34
+ `;
35
+
36
+ const ButtonText = styled.span`
37
+ line-height: 14px;
38
+ `;
@@ -0,0 +1 @@
1
+ export * from '@theme/EditPageButton/EditPageButton';
@@ -0,0 +1,40 @@
1
+ import React from 'react';
2
+ import styled from 'styled-components';
3
+
4
+ import { useThemeSettings } from '@portal/hooks';
5
+ import { DEFAULT_THEME_NAME } from '@portal/constants';
6
+ // import { timeAgo } from '@portal/utils';
7
+
8
+ // TODO: use timeago.js instead
9
+ // import { format } from 'timeago.js';
10
+ // Last updated ${format(lastModified)}
11
+ function timeAgo(date: string | Date) {
12
+ const d = new Date(date);
13
+ return `${d.getDate()}-${d.getMonth() + 1}-${d.getFullYear()}`;
14
+ }
15
+
16
+ export interface LastUpdatedProps {
17
+ lastModified: string | Date;
18
+ }
19
+
20
+ export function LastUpdated({ lastModified }: LastUpdatedProps): JSX.Element | null {
21
+ const { lastUpdatedBlock } = useThemeSettings(DEFAULT_THEME_NAME);
22
+
23
+ if (lastUpdatedBlock?.hide) {
24
+ return null;
25
+ }
26
+
27
+ return (
28
+ <Wrapper data-component-name="LastUpdated/LastUpdated">
29
+ Last updated {timeAgo(lastModified)}
30
+ </Wrapper>
31
+ );
32
+ }
33
+
34
+ const Wrapper = styled.div`
35
+ color: var(--last-updated-text-color);
36
+ font-size: var(--last-updated-font-size);
37
+ font-family: var(--last-updated-font-family);
38
+ line-height: var(--last-updated-line-height);
39
+ padding-bottom: 30px;
40
+ `;
@@ -7,7 +7,7 @@ interface AdmonitionTypeProps {
7
7
  type: 'warning' | 'success' | 'danger' | 'attention' | 'info';
8
8
  }
9
9
 
10
- interface AdmonitionProps extends Partial<AdmonitionTypeProps> {
10
+ export interface AdmonitionProps extends Partial<AdmonitionTypeProps> {
11
11
  name?: string;
12
12
  }
13
13
 
@@ -1,14 +1,23 @@
1
1
  import React from 'react';
2
+ import styled from 'styled-components';
2
3
 
3
4
  import { PageWrapper } from '@theme/Markdown/PageWrapper';
4
5
  import { ContainerWrapper } from '@theme/Markdown/ContainerWrapper';
5
6
  import { PageNavigation } from '@theme/PageNavigation/PageNavigation';
7
+ import { EditPageButton } from '@theme/EditPageButton';
8
+ import { LastUpdated } from '@theme/LastUpdated/LastUpdated';
6
9
 
7
10
  type MarkdownLayoutProps = {
8
11
  tableOfContent: React.ReactNode;
9
12
  markdownWrapper: React.ReactNode;
10
13
  showPrevButton?: boolean;
11
14
  showNextButton?: boolean;
15
+ editPage?: {
16
+ to: string;
17
+ text: string;
18
+ icon: string;
19
+ };
20
+ lastModified?: string | Date;
12
21
  };
13
22
 
14
23
  export function MarkdownLayout({
@@ -16,10 +25,18 @@ export function MarkdownLayout({
16
25
  markdownWrapper,
17
26
  showPrevButton,
18
27
  showNextButton,
28
+ editPage,
29
+ lastModified,
19
30
  }: MarkdownLayoutProps): JSX.Element {
20
31
  return (
21
32
  <PageWrapper data-component-name="Markdown/MarkdownLayout">
22
33
  <ContainerWrapper withToc={true}>
34
+ <LayoutTop>
35
+ {lastModified && <LastUpdated lastModified={lastModified} />}
36
+ {editPage && (
37
+ <EditPageButton text={editPage.text} to={editPage.to} icon={editPage.icon} />
38
+ )}
39
+ </LayoutTop>
23
40
  {markdownWrapper}
24
41
  <PageNavigation showPrevButton={showPrevButton} showNextButton={showNextButton} />
25
42
  </ContainerWrapper>
@@ -27,3 +44,9 @@ export function MarkdownLayout({
27
44
  </PageWrapper>
28
45
  );
29
46
  }
47
+
48
+ const LayoutTop = styled.div`
49
+ display: flex;
50
+ justify-content: space-between;
51
+ flex-flow: row nowrap;
52
+ `;
@@ -92,6 +92,11 @@ export function headingAnchor(className = 'anchor'): FlattenSimpleInterpolation
92
92
  .${className} svg {
93
93
  fill: var(--heading-anchor-color);
94
94
  visibility: hidden;
95
+
96
+ background-image: var(--heading-anchor-icon);
97
+ background-size: contain;
98
+ background-repeat: no-repeat;
99
+ background-position: center;
95
100
  }
96
101
 
97
102
  :hover .${className} svg,
@@ -15,6 +15,7 @@ import { PanelHeaderTitle } from '@theme/Panel/PanelHeaderTitle';
15
15
  export interface PanelComponentProps {
16
16
  expanded?: boolean;
17
17
  className?: string;
18
+ renderChildrenHidden?: boolean;
18
19
  header?: ReactNode | ((props: PanelHeaderProps) => ReactNode);
19
20
  onToggle?: (expanded: boolean) => void;
20
21
  description?: React.ReactNode;
@@ -22,6 +23,7 @@ export interface PanelComponentProps {
22
23
 
23
24
  export function PanelComponent({
24
25
  expanded = true,
26
+ renderChildrenHidden = false,
25
27
  header,
26
28
  className,
27
29
  children,
@@ -61,7 +63,7 @@ export function PanelComponent({
61
63
  </PanelHeader>
62
64
  ))}
63
65
 
64
- {isExpanded && (
66
+ {(isExpanded || renderChildrenHidden) && (
65
67
  <PanelBody data-cy="panel-body" hidden={!isExpanded} animate={animate}>
66
68
  {children}
67
69
  </PanelBody>
@@ -18,5 +18,11 @@ const Arrow = ({ className }: { className?: string }): JSX.Element => (
18
18
  );
19
19
 
20
20
  export const ArrowBack = styled(Arrow)`
21
- fill: var(--sidebar-group-item-chevron-color);
21
+ fill: var(--sidebar-back-button-icon-color);
22
+ margin-right: calc(var(--sidebar-spacing-unit) * 1.5);
23
+
24
+ background-image: var(--sidebar-back-button-icon);
25
+ background-repeat: no-repeat;
26
+ background-position: center;
27
+ background-size: contain;
22
28
  `;
@@ -37,11 +37,6 @@ const Button = styled.button`
37
37
  text-align: left;
38
38
  margin: var(--sidebar-back-button-margin);
39
39
 
40
- svg {
41
- margin-right: calc(var(--sidebar-spacing-unit) * 1.5);
42
- fill: var(--sidebar-back-button-icon-color);
43
- }
44
-
45
40
  &:hover {
46
41
  color: var(--sidebar-back-button-hover-text-color);
47
42
  background: var(--sidebar-back-button-hover-background-color);
@@ -3,7 +3,9 @@ import styled from 'styled-components';
3
3
  export const MobileSidebarButton = styled.span.attrs(() => ({
4
4
  'data-component-name': 'Sidebar/MobileSidebarButton',
5
5
  }))<{ opened?: boolean }>`
6
- background-color: var(--color-primary-500);
6
+ background-color: var(
7
+ ${(props) => (props.opened ? '--fab-active-background' : '--fab-background-color')}
8
+ );
7
9
  width: 55px;
8
10
  user-select: none;
9
11
  height: 55px;
@@ -12,33 +14,28 @@ export const MobileSidebarButton = styled.span.attrs(() => ({
12
14
  position: fixed;
13
15
  right: 20px;
14
16
  z-index: 3;
15
- box-shadow: rgba(0, 0, 0, 0.3) 0 0 20px;
17
+ box-shadow: ${(props) =>
18
+ props.opened ? 'var(--fab-active-box-shadow)' : 'var(--fab-box-shadow)'};
16
19
  border-radius: 50%;
17
20
  transform: ${(props) => (props.opened ? 'rotate(180deg)' : 'rotate(0deg)')};
18
21
  transition: transform 0.75s;
19
22
 
20
- ${({ theme }) => theme.mediaQueries.medium} {
23
+ background-image: var(--fab-icon);
24
+ background-position: center;
25
+ background-repeat: no-repeat;
26
+ background-size: 45%;
27
+
28
+ &:hover {
29
+ background-color: var(--fab-background-color);
30
+ box-shadow: var(--fab-hover-box-shadow);
31
+ }
32
+
33
+ ${({ theme }) => theme.mediaQueries?.medium} {
21
34
  display: none;
22
35
  transform: rotate(180deg);
23
36
  }
24
37
 
25
- ${({ theme }) => theme.mediaQueries.print} {
38
+ ${({ theme }) => theme.mediaQueries?.print} {
26
39
  display: none !important;
27
40
  }
28
-
29
- :after {
30
- content: '';
31
- display: inline-block;
32
- position: absolute;
33
- transform: translate(-50%, -50%);
34
- top: 50%;
35
- left: 50%;
36
- width: 25px;
37
- height: 25px;
38
- background-color: #fff;
39
- -webkit-mask: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='iso-8859-1'%3F%3E%3C!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' id='Capa_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 294.842 294.842' style='enable-background:new 0 0 294.842 294.842;' xml:space='preserve'%3E%3Cg%3E%3Cpath fill='%23fff' d='M292.128,214.846c-2.342-2.344-6.143-2.344-8.484,0l-59.512,59.511V6c0-3.313-2.687-6-6-6s-6,2.687-6,6v268.356 l-59.513-59.512c-2.342-2.342-6.142-2.343-8.485,0.001c-2.343,2.343-2.343,6.142,0.001,8.485l69.755,69.754 c1.171,1.171,2.707,1.757,4.242,1.757s3.071-0.586,4.242-1.758l69.754-69.754C294.472,220.987,294.472,217.188,292.128,214.846z'/%3E%3Cpath fill='%23fff' d='M6.956,12h180.137c3.313,0,6-2.687,6-6s-2.687-6-6-6H6.956c-3.313,0-6,2.687-6,6S3.643,12,6.956,12z'/%3E%3Cpath fill='%23fff' d='M6.956,82.228h180.137c3.313,0,6-2.687,6-6s-2.687-6-6-6H6.956c-3.313,0-6,2.687-6,6S3.643,82.228,6.956,82.228z'/%3E%3Cpath fill='%23fff' d='M6.956,152.456h180.137c3.313,0,6-2.687,6-6s-2.687-6-6-6H6.956c-3.313,0-6,2.687-6,6S3.643,152.456,6.956,152.456z'/%3E%3Cpath fill='%23fff' d='M124.438,210.685H6.956c-3.313,0-6,2.687-6,6s2.687,6,6,6h117.482c3.313,0,6-2.687,6-6S127.752,210.685,124.438,210.685z' /%3E%3Cpath fill='%23fff' d='M124.438,280.912H6.956c-3.313,0-6,2.687-6,6s2.687,6,6,6h117.482c3.313,0,6-2.687,6-6S127.752,280.912,124.438,280.912z' /%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3C/svg%3E%0A")
40
- no-repeat 50% 50%;
41
- mask: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='iso-8859-1'%3F%3E%3C!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' id='Capa_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 294.842 294.842' style='enable-background:new 0 0 294.842 294.842;' xml:space='preserve'%3E%3Cg%3E%3Cpath fill='%23fff' d='M292.128,214.846c-2.342-2.344-6.143-2.344-8.484,0l-59.512,59.511V6c0-3.313-2.687-6-6-6s-6,2.687-6,6v268.356 l-59.513-59.512c-2.342-2.342-6.142-2.343-8.485,0.001c-2.343,2.343-2.343,6.142,0.001,8.485l69.755,69.754 c1.171,1.171,2.707,1.757,4.242,1.757s3.071-0.586,4.242-1.758l69.754-69.754C294.472,220.987,294.472,217.188,292.128,214.846z'/%3E%3Cpath fill='%23fff' d='M6.956,12h180.137c3.313,0,6-2.687,6-6s-2.687-6-6-6H6.956c-3.313,0-6,2.687-6,6S3.643,12,6.956,12z'/%3E%3Cpath fill='%23fff' d='M6.956,82.228h180.137c3.313,0,6-2.687,6-6s-2.687-6-6-6H6.956c-3.313,0-6,2.687-6,6S3.643,82.228,6.956,82.228z'/%3E%3Cpath fill='%23fff' d='M6.956,152.456h180.137c3.313,0,6-2.687,6-6s-2.687-6-6-6H6.956c-3.313,0-6,2.687-6,6S3.643,152.456,6.956,152.456z'/%3E%3Cpath fill='%23fff' d='M124.438,210.685H6.956c-3.313,0-6,2.687-6,6s2.687,6,6,6h117.482c3.313,0,6-2.687,6-6S127.752,210.685,124.438,210.685z' /%3E%3Cpath fill='%23fff' d='M124.438,280.912H6.956c-3.313,0-6,2.687-6,6s2.687,6,6,6h117.482c3.313,0,6-2.687,6-6S127.752,280.912,124.438,280.912z' /%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3C/svg%3E%0A")
42
- no-repeat 50% 50%;
43
- }
44
41
  `;
@@ -1,12 +1,14 @@
1
1
  import { createGlobalStyle, css } from 'styled-components';
2
2
 
3
+ import { darkMode } from './ui/darkColors';
4
+
3
5
  const baseColors = css`
4
6
  /* === Palette === */
5
7
 
6
8
  /**
7
- * @tokens Base Colors
8
- * @presenter Color
9
- */
9
+ * @tokens Base Colors
10
+ * @presenter Color
11
+ */
10
12
 
11
13
  --color-primary-50: #87ceeb;
12
14
  --color-primary-100: #62a1ff;
@@ -85,22 +87,7 @@ const baseColors = css`
85
87
  --color-error-800: #ff1414;
86
88
  --color-error-900: #ff0000;
87
89
 
88
- // @tokens End
89
- `;
90
- const baseDarkColors = css`
91
- /**
92
- * @tokens Base Dark Colors
93
- * @presenter Color
94
- */
95
- --color-primary-100: #969ca6;
96
- --color-primary-200: #7f8693;
97
- --color-primary-300: #7d7d80;
98
- --color-primary-400: #4b4f56;
99
- --color-primary-500: #404042;
100
- --color-primary-600: #36383d;
101
- --color-primary-700: #28282a;
102
- --color-primary-800: #202021;
103
- --color-primary-900: #000000;
90
+ --colors-translucent: rgb(226 230 236 / 37%);
104
91
 
105
92
  // @tokens End
106
93
  `;
@@ -193,7 +180,7 @@ const headingsTypography = css`
193
180
 
194
181
  --heading-anchor-offset-right: 4px; // @presenter Spacing
195
182
  --heading-anchor-color: var(--color-primary-500); // @presenter Color
196
- /*--heading-anchor-icon: icons later */
183
+ --heading-anchor-icon: none;
197
184
 
198
185
  // TODO: implement a theme setting for heading-anchor-location: left right
199
186
 
@@ -295,8 +282,8 @@ const common = css`
295
282
  */
296
283
  --border-color: var(--color-secondary-300);
297
284
  --border-color-secondary: var(--color-emphasis-600);
298
- --background-color: transparent;
299
-
285
+ --background-color: var(--color-secondary-50);
286
+ --box-shadow: 0px 0px 20px 0px var(--color-secondary-500);
300
287
  /**
301
288
  * @tokens Spacings
302
289
  * @presenter Spacing
@@ -425,7 +412,7 @@ const sidebar = css`
425
412
  * @tokens Sidebar colors
426
413
  * @presenter Color
427
414
  */
428
- --sidebar-background-color: #fff;
415
+ --sidebar-background-color: var(--background-color);
429
416
  --sidebar-border-color: var(--border-color);
430
417
 
431
418
  /**
@@ -453,10 +440,14 @@ const sidebar = css`
453
440
  * @presenter Color
454
441
  */
455
442
  --sidebar-item-text-color: var(--text-color);
456
- --sidebar-item-active-color: var(--text-color);
457
443
  --sidebar-item-background-color: transparent;
444
+
445
+ --sidebar-item-active-color: var(--text-color);
458
446
  --sidebar-item-active-background-color: var(--border-color);
459
447
 
448
+ --sidebar-item-hover-background-color: var(--border-color);
449
+ --sidebar-item-hover-color: var(--text-color);
450
+
460
451
  /**
461
452
  * @tokens Sidebar item spacing
462
453
  * @presenter Spacing
@@ -535,8 +526,8 @@ const sidebar = css`
535
526
  --sidebar-back-button-hover-background-color: transparent;
536
527
  --sidebar-back-button-icon-color: var(--sidebar-item-text-color);
537
528
  --sidebar-back-button-margin: 0 0 calc(var(--sidebar-spacing-unit) * 3) 0;
538
-
539
- //--sidebar-back-button-icon: <svg string or url>
529
+ --sidebar-back-button-icon: none;
530
+
540
531
  //--sidebar-version-dropdown-* (input settings, see below)
541
532
  // @tokens End
542
533
  `;
@@ -589,13 +580,14 @@ const admonition = css`
589
580
  --admonition-info-border-width: var(--admonition-border-width);
590
581
  --admonition-info-border: var(--admonition-info-border-width) var(--admonition-info-border-style)
591
582
  var(--admonition-info-border-color); // @presenter Border
592
- /* --admonition-info-icon: figure this out latter */
583
+ --admonition-info-icon: none;
593
584
 
594
585
  /**
595
586
  * @tokens Admonition type attention
587
+ * @presenter Color
596
588
  */
597
589
 
598
- --admonition-attention-background-color: var(--color-accent-50); // @presenter Color
590
+ --admonition-attention-background-color: var(--color-accent-50); // @presenter Color
599
591
  --admonition-attention-text-color: var(--text-color); // @presenter Color
600
592
  --admonition-attention-heading-text-color: var(--text-color); // @presenter Color
601
593
  --admonition-attention-icon-color: var(--color-accent-900); // @presenter Color
@@ -604,7 +596,7 @@ const admonition = css`
604
596
  --admonition-attention-border-width: var(--admonition-border-width);
605
597
  --admonition-attention-border: var(--admonition-attention-border-width)
606
598
  var(--admonition-attention-border-style) var(--admonition-attention-border-color); // @presenter Border
607
- /* --admonition-attention-icon: figure this out latter */
599
+ --admonition-attention-icon: none;
608
600
 
609
601
  /**
610
602
  * @tokens Admonition type warning
@@ -620,7 +612,7 @@ const admonition = css`
620
612
  --admonition-warning-border-width: var(--admonition-border-width); // @presenter Color
621
613
  --admonition-warning-border: var(--admonition-warning-border-width)
622
614
  var(--admonition-warning-border-style) var(--admonition-warning-border-color); // @presenter Border
623
- /* --admonition-warning-icon: figure this out latter */
615
+ --admonition-warning-icon: none;
624
616
 
625
617
  /**
626
618
  * @tokens Admonition type danger
@@ -635,7 +627,7 @@ const admonition = css`
635
627
  --admonition-danger-border-width: var(--admonition-border-width); // @presenter Color
636
628
  --admonition-danger-border: var(--admonition-danger-border-width)
637
629
  var(--admonition-danger-border-style) var(--admonition-danger-border-color); // @presenter Border
638
- /* --admonition-danger-icon: figure this out latter */
630
+ --admonition-danger-icon: none;
639
631
 
640
632
  /**
641
633
  * @tokens Admonition type success
@@ -649,7 +641,7 @@ const admonition = css`
649
641
  --admonition-success-border-style: var(--admonition-border-style); // @presenter Color
650
642
  --admonition-success-border-width: var(--admonition-border-width); // @presenter Color
651
643
  --admonition-success-border: var(--admonition-success-border-width) var(--admonition-success-border-style) var(--admonition-success-border-color); // @presenter Border
652
- /* --admonition-success-icon: figure this out latter */
644
+ --admonition-success-icon: none;
653
645
 
654
646
  // @tokens End
655
647
  `;
@@ -779,7 +771,7 @@ const apiReferencePanels = css`
779
771
  --panel-schemas-font-family: var(--panel-font-family); // @presenter FontFamily
780
772
  --panel-schemas-font-size: var(--panel-font-size); // @presenter FontSize
781
773
  --panel-schemas-font-weight: var(--panel-font-weight); // @presenter
782
- --panel-schemas-background-color: var(--color-emphasis-50); // @presenter Color
774
+ --panel-schemas-background-color: var(--background-color); // @presenter Color
783
775
  --panel-schemas-border: var(--panel-border); // @presenter Border
784
776
  --panel-schemas-chevron-icon-color: var(--text-color); // @presenter Color
785
777
 
@@ -792,7 +784,7 @@ const apiReferencePanels = css`
792
784
  --panel-schemas-body-font-size: var(--panel-body-font-size); // @presenter FontSize
793
785
  --panel-schemas-body-font-weight: var(--panel-body-font-weight); // @presenter FontWeight
794
786
  --panel-schemas-body-padding: 0 var(--panel-body-padding) var(--panel-body-padding) var(--panel-body-padding);
795
- --panel-schemas-body-background-color: var(--color-emphasis-50); // @presenter Color
787
+ --panel-schemas-body-background-color: var(--background-color); // @presenter Color
796
788
  --panel-schemas-body-border: unset; // @presenter Border
797
789
 
798
790
  /**
@@ -805,7 +797,7 @@ const apiReferencePanels = css`
805
797
  --panel-schemas-heading-font-weight: var(--panel-heading-font-weight); // @presenter FontWeight
806
798
  --panel-schemas-heading-line-height: var(--panel-heading-line-height); // @presenter LineHeight
807
799
  --panel-schemas-heading-padding: var(--panel-heading-padding);
808
- --panel-schemas-heading-background-color: var(--color-emphasis-50); // @presenter Color
800
+ --panel-schemas-heading-background-color: var(--background-color); // @presenter Color
809
801
  --panel-schemas-heading-border: unset; // @presenter Border
810
802
 
811
803
  /**
@@ -848,7 +840,7 @@ const apiReferencePanels = css`
848
840
  * @tokens Panel samples common
849
841
  */
850
842
 
851
- --panel-samples-block-background-color: var(--color-emphasis-50); // @presenter Color
843
+ --panel-samples-block-background-color: var(--background-color); // @presenter Color
852
844
  --panel-samples-width: 50%;
853
845
 
854
846
  --panel-samples-text-color: var(--text-color-inverse); // @presenter Color
@@ -1171,7 +1163,7 @@ const tooltip = css`
1171
1163
  */
1172
1164
 
1173
1165
  --copy-button-tooltip-text-color: #000;
1174
- --copy-button-tooltip-background-color: var(--color-secondary-50);
1166
+ --copy-button-tooltip-background-color: var(--background-color);
1175
1167
 
1176
1168
  .tooltip-copy-button {
1177
1169
  --tooltip-text-color: var(--copy-button-tooltip-text-color);
@@ -1197,7 +1189,7 @@ const code = css`
1197
1189
  --inline-code-font-size: var(--code-font-size); // @presenter FontSize
1198
1190
  --inline-code-font-family: var(--code-font-family); // @presenter FontFamily
1199
1191
  --inline-code-text-color: #e53935; // @presenter Color
1200
- --inline-code-background-color: var(--color-secondary-100); // @presenter Color
1192
+ --inline-code-background-color: var(--colors-translucent); // @presenter Color
1201
1193
  --inline-code-border-color: var(--border-color); // @presenter Color
1202
1194
  --inline-code-border-radius: var(--border-radius); // @presenter BorderRadius
1203
1195
 
@@ -1346,7 +1338,7 @@ const apiReferenceDocs = css`
1346
1338
  --schema-inline-code-font-family: var(--inline-code-font-family); // @presenter FontFamily
1347
1339
  --schema-inline-code-font-size: var(--inline-code-font-size); // @presenter FontSize
1348
1340
  --schema-inline-code-text-color: var(--text-color); // @presenter Color
1349
- --schema-inline-background-color: var(--color-secondary-100); // @presenter Color
1341
+ --schema-inline-background-color: var(--colors-translucent); // @presenter Color
1350
1342
  --schema-inline-border-color: var(--border-color); // @presenter Color
1351
1343
  --schema-inline-border: 1px solid var(--schema-inline-border-color); // @presenter Border
1352
1344
 
@@ -1408,7 +1400,7 @@ const apiReferenceDocs = css`
1408
1400
  */
1409
1401
 
1410
1402
  --schema-nested-offset: 1em; // @presenter Spacing
1411
- --schema-nested-background-color: var(--color-secondary-100); // @presenter Color
1403
+ --schema-nested-background-color: var(--colors-translucent); // @presenter Color
1412
1404
 
1413
1405
  /**
1414
1406
  * @tokens API Reference Schema Buttons
@@ -1439,6 +1431,8 @@ const apiReferenceDocs = css`
1439
1431
  --schemas-property-name-font-size: var(--code-font-size); // @presenter FontSize
1440
1432
  --schemas-property-name-font-family: var(--code-font-family); // @presenter FontFamily
1441
1433
 
1434
+ --schemas-property-deprecated-text-color: var(--text-color); // @presenter Color
1435
+
1442
1436
  --schema-property-labels-font-size: var(--schema-labels-font-size); // @presenter FontSize
1443
1437
  --schema-property-required-label-text-color: var(--color-error-900); // @presenter Color
1444
1438
  --schema-property-additional-label-text-color: var(--text-color-secondary); // @presenter Color
@@ -1454,7 +1448,7 @@ const apiReferenceDocs = css`
1454
1448
  --schema-chevron-size: 9px;
1455
1449
 
1456
1450
  --schema-property-deep-link-icon-color: var(--color-primary-500); // @presenter Color
1457
- /* --schema-property-deep-link-icon: figure out this later */
1451
+ --schema-property-deep-link-icon: none;
1458
1452
 
1459
1453
  /*
1460
1454
  * @tokens API Reference Other
@@ -1464,19 +1458,16 @@ const apiReferenceDocs = css`
1464
1458
  --linear-progress-color: var(--color-accent-500); // @presenter Color
1465
1459
  --linear-progress-background-color: var(--color-accent-100); // @presenter Color
1466
1460
 
1467
- --fab-icon-color: var(--color-primary-500); // @presenter Color
1468
- --fab-background-color: var(--color-emphasis-50); // @presenter Color
1469
- --fab-box-shadow: 0 0 20px rgba(43, 43, 43, 0.3); // @presenter Shadow
1461
+ --fab-background-color: var(--color-primary-500); // @presenter Color
1462
+ --fab-box-shadow: var(--box-shadow); // @presenter Shadow
1470
1463
 
1471
- --fab-hover-background: var(--color-emphasis-200); // @presenter Color
1472
- --fab-hover-icon-color: var(--color-primary-600); // @presenter Color
1473
- --fab-hover-box-shadow: 0 0 20px rgba(0, 0, 0, 0.3); // @presenter Shadow
1464
+ --fab-hover-background: var(--color-primary-500); // @presenter Color
1465
+ --fab-hover-box-shadow: var(--box-shadow); // @presenter Shadow
1474
1466
 
1475
- --fab-active-background: var(--color-emphasis-200); // @presenter Color
1476
- --fab-active-icon-color: var(--color-primary-600); // @presenter Color
1477
- --fab-active-box-shadow: 0 0 20px rgba(0, 0, 0, 0.3); // @presenter Shadow
1467
+ --fab-active-background: var(--color-primary-500); // @presenter Color
1468
+ --fab-active-box-shadow: var(--box-shadow); // @presenter Shadow
1478
1469
 
1479
- /* --fab-icon: <svg string or url> work with icons later **/
1470
+ --fab-icon: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='iso-8859-1'%3F%3E%3C!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --%3E%3Csvg version='1.1' id='Capa_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 294.842 294.842' style='enable-background:new 0 0 294.842 294.842;' xml:space='preserve'%3E%3Cg%3E%3Cpath fill='%23fff' d='M292.128,214.846c-2.342-2.344-6.143-2.344-8.484,0l-59.512,59.511V6c0-3.313-2.687-6-6-6s-6,2.687-6,6v268.356 l-59.513-59.512c-2.342-2.342-6.142-2.343-8.485,0.001c-2.343,2.343-2.343,6.142,0.001,8.485l69.755,69.754 c1.171,1.171,2.707,1.757,4.242,1.757s3.071-0.586,4.242-1.758l69.754-69.754C294.472,220.987,294.472,217.188,292.128,214.846z'/%3E%3Cpath fill='%23fff' d='M6.956,12h180.137c3.313,0,6-2.687,6-6s-2.687-6-6-6H6.956c-3.313,0-6,2.687-6,6S3.643,12,6.956,12z'/%3E%3Cpath fill='%23fff' d='M6.956,82.228h180.137c3.313,0,6-2.687,6-6s-2.687-6-6-6H6.956c-3.313,0-6,2.687-6,6S3.643,82.228,6.956,82.228z'/%3E%3Cpath fill='%23fff' d='M6.956,152.456h180.137c3.313,0,6-2.687,6-6s-2.687-6-6-6H6.956c-3.313,0-6,2.687-6,6S3.643,152.456,6.956,152.456z'/%3E%3Cpath fill='%23fff' d='M124.438,210.685H6.956c-3.313,0-6,2.687-6,6s2.687,6,6,6h117.482c3.313,0,6-2.687,6-6S127.752,210.685,124.438,210.685z' /%3E%3Cpath fill='%23fff' d='M124.438,280.912H6.956c-3.313,0-6,2.687-6,6s2.687,6,6,6h117.482c3.313,0,6-2.687,6-6S127.752,280.912,124.438,280.912z' /%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3Cg%3E%3C/g%3E%3C/svg%3E%0A");
1480
1471
 
1481
1472
  // @tokens End
1482
1473
  `;
@@ -1580,7 +1571,7 @@ const navbar = css`
1580
1571
  --navbar-height: 60px; // @presenter Spacing
1581
1572
  --navbar-text-color: #fff; // @presenter Color
1582
1573
  --navbar-background-color: var(--color-primary-500); // @presenter Color
1583
- --navbar-container-max-width: 1200px;
1574
+ --navbar-container-max-width: 100%;
1584
1575
 
1585
1576
  /**
1586
1577
  * @tokens Navbar Item
@@ -1785,7 +1776,7 @@ const search = css`
1785
1776
  --search-input-hover-border: none; // @presenter Color
1786
1777
  --search-input-placeholder-color: var(--search-input-text-color);
1787
1778
 
1788
- --search-popover-background-color: #fff; // @presenter Color
1779
+ --search-popover-background-color: var(--background-color); // @presenter Color
1789
1780
  --search-popover-border-radius: var(--search-input-border-radius); // @presenter BorderRadius
1790
1781
  --search-popover-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14), 0 6px 30px 5px rgba(0, 0, 0, 0.12),
1791
1782
  0 8px 10px -5px rgba(0, 0, 0, 0.4); // @presenter BoxShadow
@@ -1820,7 +1811,7 @@ const search = css`
1820
1811
  * @presenter Color
1821
1812
  */
1822
1813
 
1823
- --search-modal-background: #fff;
1814
+ --search-modal-background: var(--background-color);
1824
1815
  --search-modal-text-color: var(--text-color);
1825
1816
  --search-modal-border: none;
1826
1817
  --search-modal-box-shadow: none;
@@ -1846,8 +1837,11 @@ const dropdown = css`
1846
1837
  --dropdown-border: none;
1847
1838
  `;
1848
1839
 
1849
- export const darkMode = css`
1850
- ${baseDarkColors}
1840
+ const lastUpdated = css`
1841
+ --last-updated-text-color: var(--text-color);
1842
+ --last-updated-font-size: var(--font-size-small);
1843
+ --last-updated-font-family: var(--font-family-base);
1844
+ --last-updated-line-height: var(--line-height-base);
1851
1845
  `;
1852
1846
 
1853
1847
  export const styles = css`
@@ -1875,6 +1869,7 @@ export const styles = css`
1875
1869
  ${dropdown}
1876
1870
  ${apiReferencePanels}
1877
1871
  ${apiReferenceDocs}
1872
+ ${lastUpdated}
1878
1873
  }
1879
1874
 
1880
1875
  :root.dark {
@@ -108,4 +108,9 @@ export const AlertIcon = styled(Icon).attrs(() => ({
108
108
  flex-shrink: 0;
109
109
 
110
110
  fill: ${({ type }) => `var(--admonition-${type}-icon-color)`};
111
+
112
+ background-image: ${({ type }) => `var(--admonition-${type}-icon)`};
113
+ background-repeat: no-repeat;
114
+ background-position: center;
115
+ background-size: contain;
111
116
  `;