Skip to content

Commit 7da45ed

Browse files
committed
feat: setup docusaurus-theme package
1 parent 89e48ff commit 7da45ed

File tree

13 files changed

+287
-6
lines changed

13 files changed

+287
-6
lines changed

packages/docusaurus-theme/.gitignore

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Dependencies
2+
/node_modules
3+
4+
# Production
5+
/lib
6+
7+
yarn-debug.log*
8+
yarn-error.log*
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
{
2+
"name": "@elastic/eui-docusaurus-theme",
3+
"version": "0.1.0",
4+
"description": "EUI theme for Docusaurus",
5+
"private": true,
6+
"scripts": {
7+
"test": "echo \"Error: no test specified\" && exit 1",
8+
"build": "tsc --build",
9+
"start": "tsc --watch"
10+
},
11+
"repository": {
12+
"type": "git",
13+
"url": "https://github.com/tkajtoch/eui.git",
14+
"directory": "packages/docusaurus-theme"
15+
},
16+
"devDependencies": {
17+
"@docusaurus/types": "^3.4.0",
18+
"@types/react": "^18",
19+
"@types/react-dom": "^18",
20+
"typescript": "~5.4.5"
21+
},
22+
"main": "lib/index.js",
23+
"exports": {
24+
"./lib/*": "./lib/*",
25+
"./src/*": "./src/*",
26+
".": {
27+
"default": "./lib/index.js"
28+
}
29+
},
30+
"dependencies": {
31+
"@docusaurus/core": "^3.4.0",
32+
"@docusaurus/module-type-aliases": "^3.4.0",
33+
"@docusaurus/utils-validation": "^3.4.0",
34+
"@elastic/datemath": "^5.0.3",
35+
"@elastic/eui": "94.5.0",
36+
"@emotion/css": "^11.11.2",
37+
"@emotion/react": "^11.11.4",
38+
"moment": "^2.30.1"
39+
},
40+
"peerDependencies": {
41+
"react": "^18.0.0",
42+
"react-dom": "^18.0.0"
43+
}
44+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import type { Plugin } from '@docusaurus/types';
2+
3+
export default function euiDocusaurusTheme(): Plugin<void> {
4+
return {
5+
name: 'eui-docusaurus-theme',
6+
getThemePath() {
7+
return '../lib/theme';
8+
},
9+
getTypeScriptThemePath() {
10+
return '../src/theme';
11+
},
12+
};
13+
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import { css } from '@emotion/react';
2+
import { EuiText, EuiLink, UseEuiTheme, EuiThemeProvider, useEuiMemoizedStyles } from '@elastic/eui';
3+
4+
const ELASTIC_LICENSE_URL = "https://github.com/elastic/eui/blob/main/licenses/ELASTIC-LICENSE-2.0.md";
5+
const SSPL_LICENSE_URL = "https://github.com/elastic/eui/blob/main/licenses/SSPL-LICENSE.md";
6+
7+
const getFooterStyles = ({ euiTheme }: UseEuiTheme) => {
8+
return {
9+
root: css`
10+
background: #1C1E23; // Color not available in EUI
11+
border-radius: ${euiTheme.size.s} ${euiTheme.size.s} 0 0;
12+
padding: ${euiTheme.size.l};
13+
text-align: center;
14+
`,
15+
heart: css`
16+
color: ${euiTheme.colors.accent};
17+
`,
18+
};
19+
};
20+
21+
const Footer = () => {
22+
const styles = useEuiMemoizedStyles(getFooterStyles);
23+
24+
return (
25+
<EuiThemeProvider colorMode="inverse">
26+
<footer css={styles.root}>
27+
<EuiText textAlign="center" size="s">
28+
EUI is dual-licensed under {' '}
29+
<EuiLink href={ELASTIC_LICENSE_URL}>
30+
Elastic License 2.0
31+
</EuiLink>
32+
{' and '}
33+
<EuiLink href={SSPL_LICENSE_URL}>
34+
Server Side Public License, v 1
35+
</EuiLink>
36+
{' | '}
37+
Crafted with <span role="img" aria-label="love" css={styles.heart}></span> by{' '}
38+
<EuiLink href="https://elastic.co">
39+
Elastic
40+
</EuiLink>
41+
</EuiText>
42+
</footer>
43+
</EuiThemeProvider>
44+
);
45+
};
46+
47+
export default Footer;

packages/website/src/theme/MDXComponents/index.js renamed to packages/docusaurus-theme/src/theme/MDXComponents/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
* Side Public License, v 1.
77
*/
88

9-
import OriginalMDXComponents from '@theme-original/MDXComponents';
10-
import { Badge } from '@site/src/components/badge';
9+
import OriginalMDXComponents from '@theme-init/MDXComponents';
10+
import { Badge } from '../../components/badge';
1111

1212
const MDXComponents = {
1313
...OriginalMDXComponents,

packages/website/src/theme/Root.tsx renamed to packages/docusaurus-theme/src/theme/Root.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
import { EuiProvider } from '@elastic/eui';
1010
import { Props } from '@theme/Root';
11+
import '@elastic/eui/dist/eui_theme_light.css';
1112

1213
// Wrap docusaurus root component with <EuiProvider>
1314
// See https://docusaurus.io/docs/swizzling#wrapper-your-site-with-root
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
{
2+
"$schema": "https://json.schemastore.org/tsconfig",
3+
"compilerOptions": {
4+
/* Emit */
5+
"target": "ES2020",
6+
"lib": ["ESNext", "DOM"],
7+
"declaration": true,
8+
// These two options will be selectively overridden in each project.
9+
// Utility libraries will have source maps on, but plugins will not.
10+
"declarationMap": false,
11+
"sourceMap": false,
12+
"jsx": "react-jsx",
13+
"jsxImportSource": "@emotion/react",
14+
"importHelpers": true,
15+
"noEmitHelpers": true,
16+
// Avoid accidentally using this config to build
17+
"noEmit": true,
18+
19+
/* Strict Type-Checking Options */
20+
"allowUnreachableCode": false,
21+
// Too hard to turn on
22+
"exactOptionalPropertyTypes": false,
23+
"noFallthroughCasesInSwitch": true,
24+
"noImplicitOverride": true,
25+
"noImplicitReturns": true,
26+
// `process.env` is usually accessed as property
27+
"noPropertyAccessFromIndexSignature": false,
28+
"noUncheckedIndexedAccess": true,
29+
/* strict family */
30+
"strict": true,
31+
"alwaysStrict": true,
32+
"noImplicitAny": true,
33+
"noImplicitThis": true,
34+
"strictBindCallApply": true,
35+
"strictFunctionTypes": true,
36+
"strictNullChecks": true,
37+
"strictPropertyInitialization": true,
38+
"useUnknownInCatchVariables": true,
39+
/* Handled by ESLint */
40+
"noUnusedLocals": false,
41+
"noUnusedParameters": false,
42+
"importsNotUsedAsValues": "remove",
43+
44+
/* Module Resolution */
45+
"moduleResolution": "Node",
46+
"resolveJsonModule": true,
47+
"allowSyntheticDefaultImports": true,
48+
"esModuleInterop": true,
49+
"forceConsistentCasingInFileNames": true,
50+
"isolatedModules": true,
51+
"allowJs": true,
52+
"skipLibCheck": true, // @types/webpack and webpack/types.d.ts are not the same thing
53+
"types": [
54+
"@docusaurus/module-type-aliases"
55+
]
56+
},
57+
"include": ["./**/*", "./**/.eslintrc.js"],
58+
"exclude": [
59+
"node_modules",
60+
"coverage/**",
61+
"**/lib/**/*",
62+
"website/**",
63+
"**/__mocks__/**/*",
64+
"**/__fixtures__/**/*",
65+
"examples/**",
66+
"packages/create-docusaurus/templates/**"
67+
]
68+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"extends": "./tsconfig.base.json",
3+
"compilerOptions": {
4+
"noEmit": false,
5+
"incremental": true,
6+
"moduleResolution": "bundler",
7+
"module": "esnext",
8+
"target": "esnext",
9+
"esModuleInterop": true,
10+
"composite": true,
11+
"rootDir": "src",
12+
"outDir": "lib",
13+
"tsBuildInfoFile": "lib/.tsbuildinfo-client"
14+
},
15+
"include": ["src/client", "src/components", "src/theme", "src/*.d.ts"],
16+
"exclude": ["**/__tests__/**"]
17+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"$schema": "https://json.schemastore.org/tsconfig",
3+
"references": [{"path": "./tsconfig.client.json"}],
4+
"compilerOptions": {
5+
"target": "ES2020",
6+
"lib": ["ESNext"],
7+
"declaration": true,
8+
"sourceMap": true,
9+
"jsx": "react-jsx",
10+
"jsxImportSource": "@emotion/react",
11+
"noEmitHelpers": true,
12+
"incremental": true,
13+
"tsBuildInfoFile": "lib/.tsbuildinfo",
14+
"rootDir": "src",
15+
"outDir": "lib",
16+
"esModuleInterop": true,
17+
"strict": true,
18+
"skipLibCheck": true,
19+
"moduleResolution": "Node",
20+
"types": [
21+
"@docusaurus/module-type-aliases"
22+
]
23+
},
24+
"include": ["src/**/*"],
25+
"exclude": ["src/client", "src/theme", "**/__tests__/**"]
26+
}

packages/website/docusaurus.config.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,10 @@ const config: Config = {
3535
locales: ['en'],
3636
},
3737

38+
themes: [
39+
'@elastic/eui-docusaurus-theme',
40+
],
41+
3842
presets: [
3943
[
4044
'classic',

packages/website/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
"@docusaurus/preset-classic": "3.4.0",
2020
"@elastic/datemath": "^5.0.3",
2121
"@elastic/eui": "94.5.0",
22+
"@elastic/eui-docusaurus-theme": "workspace:^",
2223
"@emotion/css": "^11.11.2",
2324
"@emotion/react": "^11.11.4",
2425
"@mdx-js/react": "^3.0.0",

yarn.lock

Lines changed: 56 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5171,7 +5171,7 @@ __metadata:
51715171
languageName: node
51725172
linkType: hard
51735173

5174-
"@docusaurus/core@npm:3.4.0":
5174+
"@docusaurus/core@npm:3.4.0, @docusaurus/core@npm:^3.4.0":
51755175
version: 3.4.0
51765176
resolution: "@docusaurus/core@npm:3.4.0"
51775177
dependencies:
@@ -5309,7 +5309,7 @@ __metadata:
53095309
languageName: node
53105310
linkType: hard
53115311

5312-
"@docusaurus/module-type-aliases@npm:3.4.0":
5312+
"@docusaurus/module-type-aliases@npm:3.4.0, @docusaurus/module-type-aliases@npm:^3.4.0":
53135313
version: 3.4.0
53145314
resolution: "@docusaurus/module-type-aliases@npm:3.4.0"
53155315
dependencies:
@@ -5614,7 +5614,7 @@ __metadata:
56145614
languageName: node
56155615
linkType: hard
56165616

5617-
"@docusaurus/types@npm:3.4.0":
5617+
"@docusaurus/types@npm:3.4.0, @docusaurus/types@npm:^3.4.0":
56185618
version: 3.4.0
56195619
resolution: "@docusaurus/types@npm:3.4.0"
56205620
dependencies:
@@ -5648,7 +5648,7 @@ __metadata:
56485648
languageName: node
56495649
linkType: hard
56505650

5651-
"@docusaurus/utils-validation@npm:3.4.0":
5651+
"@docusaurus/utils-validation@npm:3.4.0, @docusaurus/utils-validation@npm:^3.4.0":
56525652
version: 3.4.0
56535653
resolution: "@docusaurus/utils-validation@npm:3.4.0"
56545654
dependencies:
@@ -5752,6 +5752,28 @@ __metadata:
57525752
languageName: unknown
57535753
linkType: soft
57545754

5755+
"@elastic/eui-docusaurus-theme@workspace:^, @elastic/eui-docusaurus-theme@workspace:packages/docusaurus-theme":
5756+
version: 0.0.0-use.local
5757+
resolution: "@elastic/eui-docusaurus-theme@workspace:packages/docusaurus-theme"
5758+
dependencies:
5759+
"@docusaurus/core": "npm:^3.4.0"
5760+
"@docusaurus/module-type-aliases": "npm:^3.4.0"
5761+
"@docusaurus/types": "npm:^3.4.0"
5762+
"@docusaurus/utils-validation": "npm:^3.4.0"
5763+
"@elastic/datemath": "npm:^5.0.3"
5764+
"@elastic/eui": "npm:94.5.0"
5765+
"@emotion/css": "npm:^11.11.2"
5766+
"@emotion/react": "npm:^11.11.4"
5767+
"@types/react": "npm:^18"
5768+
"@types/react-dom": "npm:^18"
5769+
moment: "npm:^2.30.1"
5770+
typescript: "npm:~5.4.5"
5771+
peerDependencies:
5772+
react: ^18.0.0
5773+
react-dom: ^18.0.0
5774+
languageName: unknown
5775+
linkType: soft
5776+
57555777
"@elastic/eui-monorepo@workspace:.":
57565778
version: 0.0.0-use.local
57575779
resolution: "@elastic/eui-monorepo@workspace:."
@@ -9916,6 +9938,15 @@ __metadata:
99169938
languageName: node
99179939
linkType: hard
99189940

9941+
"@types/react-dom@npm:^18":
9942+
version: 18.3.0
9943+
resolution: "@types/react-dom@npm:18.3.0"
9944+
dependencies:
9945+
"@types/react": "npm:*"
9946+
checksum: 10c0/6c90d2ed72c5a0e440d2c75d99287e4b5df3e7b011838cdc03ae5cd518ab52164d86990e73246b9d812eaf02ec351d74e3b4f5bd325bf341e13bf980392fd53b
9947+
languageName: node
9948+
linkType: hard
9949+
99199950
"@types/react-dom@npm:^18.0.0, @types/react-dom@npm:^18.2.6":
99209951
version: 18.2.6
99219952
resolution: "@types/react-dom@npm:18.2.6"
@@ -36133,6 +36164,16 @@ __metadata:
3613336164
languageName: node
3613436165
linkType: hard
3613536166

36167+
"typescript@npm:~5.4.5":
36168+
version: 5.4.5
36169+
resolution: "typescript@npm:5.4.5"
36170+
bin:
36171+
tsc: bin/tsc
36172+
tsserver: bin/tsserver
36173+
checksum: 10c0/2954022ada340fd3d6a9e2b8e534f65d57c92d5f3989a263754a78aba549f7e6529acc1921913560a4b816c46dce7df4a4d29f9f11a3dc0d4213bb76d043251e
36174+
languageName: node
36175+
linkType: hard
36176+
3613636177
"typescript@patch:typescript@npm%3A4.5.3#optional!builtin<compat/typescript>":
3613736178
version: 4.5.3
3613836179
resolution: "typescript@patch:typescript@npm%3A4.5.3#optional!builtin<compat/typescript>::version=4.5.3&hash=f1b8ea"
@@ -36153,6 +36194,16 @@ __metadata:
3615336194
languageName: node
3615436195
linkType: hard
3615536196

36197+
"typescript@patch:typescript@npm%3A~5.4.5#optional!builtin<compat/typescript>":
36198+
version: 5.4.5
36199+
resolution: "typescript@patch:typescript@npm%3A5.4.5#optional!builtin<compat/typescript>::version=5.4.5&hash=5adc0c"
36200+
bin:
36201+
tsc: bin/tsc
36202+
tsserver: bin/tsserver
36203+
checksum: 10c0/db2ad2a16ca829f50427eeb1da155e7a45e598eec7b086d8b4e8ba44e5a235f758e606d681c66992230d3fc3b8995865e5fd0b22a2c95486d0b3200f83072ec9
36204+
languageName: node
36205+
linkType: hard
36206+
3615636207
"uglify-js@npm:^3.1.4":
3615736208
version: 3.17.4
3615836209
resolution: "uglify-js@npm:3.17.4"
@@ -37799,6 +37850,7 @@ __metadata:
3779937850
"@docusaurus/types": "npm:3.4.0"
3780037851
"@elastic/datemath": "npm:^5.0.3"
3780137852
"@elastic/eui": "npm:94.5.0"
37853+
"@elastic/eui-docusaurus-theme": "workspace:^"
3780237854
"@emotion/css": "npm:^11.11.2"
3780337855
"@emotion/react": "npm:^11.11.4"
3780437856
"@mdx-js/react": "npm:^3.0.0"

0 commit comments

Comments
 (0)