mirror of
https://github.com/zoriya/elysia-swagger.git
synced 2025-12-06 00:36:10 +00:00
Merge pull request #173 from marclave/marc/update-scalar-elysia-theme
This commit is contained in:
137
package.json
137
package.json
@@ -1,75 +1,76 @@
|
|||||||
{
|
{
|
||||||
"name": "@elysiajs/swagger",
|
"name": "@elysiajs/swagger",
|
||||||
"version": "1.1.6",
|
"version": "1.1.6",
|
||||||
"description": "Plugin for Elysia to auto-generate Swagger page",
|
"description": "Plugin for Elysia to auto-generate Swagger page",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "saltyAom",
|
"name": "saltyAom",
|
||||||
"url": "https://github.com/SaltyAom",
|
"url": "https://github.com/SaltyAom",
|
||||||
"email": "saltyaom@gmail.com"
|
"email": "saltyaom@gmail.com"
|
||||||
|
},
|
||||||
|
"main": "./dist/cjs/index.js",
|
||||||
|
"module": "./dist/index.mjs",
|
||||||
|
"types": "./dist/index.d.ts",
|
||||||
|
"exports": {
|
||||||
|
"./package.json": "./package.json",
|
||||||
|
".": {
|
||||||
|
"types": "./dist/index.d.ts",
|
||||||
|
"import": "./dist/index.mjs",
|
||||||
|
"require": "./dist/cjs/index.js"
|
||||||
},
|
},
|
||||||
"main": "./dist/cjs/index.js",
|
"./types": {
|
||||||
"module": "./dist/index.mjs",
|
"types": "./dist/types.d.ts",
|
||||||
"types": "./dist/index.d.ts",
|
"import": "./dist/types.mjs",
|
||||||
"exports": {
|
"require": "./dist/cjs/types.js"
|
||||||
"./package.json": "./package.json",
|
|
||||||
".": {
|
|
||||||
"types": "./dist/index.d.ts",
|
|
||||||
"import": "./dist/index.mjs",
|
|
||||||
"require": "./dist/cjs/index.js"
|
|
||||||
},
|
|
||||||
"./types": {
|
|
||||||
"types": "./dist/types.d.ts",
|
|
||||||
"import": "./dist/types.mjs",
|
|
||||||
"require": "./dist/cjs/types.js"
|
|
||||||
},
|
|
||||||
"./utils": {
|
|
||||||
"types": "./dist/utils.d.ts",
|
|
||||||
"import": "./dist/utils.mjs",
|
|
||||||
"require": "./dist/cjs/utils.js"
|
|
||||||
},
|
|
||||||
"./scalar": {
|
|
||||||
"types": "./dist/scalar/index.d.ts",
|
|
||||||
"import": "./dist/scalar/index.mjs",
|
|
||||||
"require": "./dist/cjs/scalar/index.js"
|
|
||||||
},
|
|
||||||
"./scalar/theme": {
|
|
||||||
"types": "./dist/scalar/theme.d.ts",
|
|
||||||
"import": "./dist/scalar/theme.mjs",
|
|
||||||
"require": "./dist/cjs/scalar/theme.js"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"keywords": [
|
"./utils": {
|
||||||
"elysia",
|
"types": "./dist/utils.d.ts",
|
||||||
"swagger"
|
"import": "./dist/utils.mjs",
|
||||||
],
|
"require": "./dist/cjs/utils.js"
|
||||||
"homepage": "https://github.com/elysiajs/elysia-swagger",
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/elysiajs/elysia-swagger"
|
|
||||||
},
|
},
|
||||||
"bugs": "https://github.com/elysiajs/elysia-swagger/issues",
|
"./scalar": {
|
||||||
"license": "MIT",
|
"types": "./dist/scalar/index.d.ts",
|
||||||
"scripts": {
|
"import": "./dist/scalar/index.mjs",
|
||||||
"dev": "bun run --watch example/index.ts",
|
"require": "./dist/cjs/scalar/index.js"
|
||||||
"test": "bun test && npm run test:node",
|
|
||||||
"test:node": "npm install --prefix ./test/node/cjs/ && npm install --prefix ./test/node/esm/ && node ./test/node/cjs/index.js && node ./test/node/esm/index.js",
|
|
||||||
"build": "bun build.ts",
|
|
||||||
"release": "npm run build && npm run test && npm publish --access public"
|
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"./scalar/theme": {
|
||||||
"elysia": ">= 1.1.0"
|
"types": "./dist/scalar/theme.d.ts",
|
||||||
},
|
"import": "./dist/scalar/theme.mjs",
|
||||||
"devDependencies": {
|
"require": "./dist/cjs/scalar/theme.js"
|
||||||
"@apidevtools/swagger-parser": "^10.1.0",
|
|
||||||
"@types/bun": "1.1.6",
|
|
||||||
"elysia": "1.1.18",
|
|
||||||
"eslint": "9.6.0",
|
|
||||||
"tsup": "^8.1.0",
|
|
||||||
"typescript": "^5.5.3"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"@scalar/types": "^0.0.12",
|
|
||||||
"openapi-types": "^12.1.3",
|
|
||||||
"pathe": "^1.1.2"
|
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"keywords": [
|
||||||
|
"elysia",
|
||||||
|
"swagger"
|
||||||
|
],
|
||||||
|
"homepage": "https://github.com/elysiajs/elysia-swagger",
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/elysiajs/elysia-swagger"
|
||||||
|
},
|
||||||
|
"bugs": "https://github.com/elysiajs/elysia-swagger/issues",
|
||||||
|
"license": "MIT",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "bun run --watch example/index.ts",
|
||||||
|
"test": "bun test && npm run test:node",
|
||||||
|
"test:node": "npm install --prefix ./test/node/cjs/ && npm install --prefix ./test/node/esm/ && node ./test/node/cjs/index.js && node ./test/node/esm/index.js",
|
||||||
|
"build": "bun build.ts",
|
||||||
|
"release": "npm run build && npm run test && npm publish --access public"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"elysia": ">= 1.1.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@apidevtools/swagger-parser": "^10.1.0",
|
||||||
|
"@types/bun": "1.1.6",
|
||||||
|
"elysia": "1.1.18",
|
||||||
|
"eslint": "9.6.0",
|
||||||
|
"tsup": "^8.1.0",
|
||||||
|
"typescript": "^5.5.3"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@scalar/themes": "^0.9.52",
|
||||||
|
"@scalar/types": "^0.0.12",
|
||||||
|
"openapi-types": "^12.1.3",
|
||||||
|
"pathe": "^1.1.2"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -85,7 +85,10 @@ export const swagger = async <Path extends string = '/swagger'>(
|
|||||||
...scalarConfig.spec,
|
...scalarConfig.spec,
|
||||||
url: `/${relativePath}/json`
|
url: `/${relativePath}/json`
|
||||||
},
|
},
|
||||||
...scalarConfig
|
...scalarConfig,
|
||||||
|
// so we can showcase the elysia theme
|
||||||
|
// @ts-expect-error
|
||||||
|
_integration: 'elysiajs'
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Response(
|
return new Response(
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import scalarElysiaTheme from './theme'
|
import { elysiajsTheme } from '@scalar/themes'
|
||||||
import type { OpenAPIV3 } from 'openapi-types'
|
import type { OpenAPIV3 } from 'openapi-types'
|
||||||
import type { ReferenceConfiguration } from '@scalar/types'
|
import type { ReferenceConfiguration } from '@scalar/types'
|
||||||
|
|
||||||
@@ -29,7 +29,7 @@ export const ScalarRender = (
|
|||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
<style>
|
<style>
|
||||||
${config.customCss ?? scalarElysiaTheme}
|
${config.customCss ?? elysiajsTheme}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|||||||
@@ -1,196 +0,0 @@
|
|||||||
export default `
|
|
||||||
/* basic theme */
|
|
||||||
.light-mode {
|
|
||||||
--theme-color-1: #2a2f45;
|
|
||||||
--theme-color-2: #757575;
|
|
||||||
--theme-color-3: #8e8e8e;
|
|
||||||
--theme-color-accent: #f06292;
|
|
||||||
|
|
||||||
--theme-background-1: #fff;
|
|
||||||
--theme-background-2: #f6f6f6;
|
|
||||||
--theme-background-3: #e7e7e7;
|
|
||||||
--theme-background-accent: #f062921f;
|
|
||||||
|
|
||||||
--theme-border-color: rgba(0, 0, 0, 0.1);
|
|
||||||
}
|
|
||||||
.dark-mode {
|
|
||||||
--theme-color-1: rgba(255, 255, 255, 0.9);
|
|
||||||
--theme-color-2: rgba(156, 163, 175, 1);
|
|
||||||
--theme-color-3: rgba(255, 255, 255, 0.44);
|
|
||||||
--theme-color-accent: #f06292;
|
|
||||||
|
|
||||||
--theme-background-1: #111728;
|
|
||||||
--theme-background-2: #1e293b;
|
|
||||||
--theme-background-3: #334155;
|
|
||||||
--theme-background-accent: #f062921f;
|
|
||||||
|
|
||||||
--theme-border-color: rgba(255, 255, 255, 0.1);
|
|
||||||
}
|
|
||||||
/* Document Sidebar */
|
|
||||||
.light-mode .sidebar,
|
|
||||||
.dark-mode .sidebar {
|
|
||||||
--sidebar-background-1: var(--theme-background-1);
|
|
||||||
--sidebar-item-hover-color: currentColor;
|
|
||||||
--sidebar-item-hover-background: var(--theme-background-2);
|
|
||||||
--sidebar-item-active-background: var(--theme-background-accent);
|
|
||||||
--sidebar-border-color: transparent;
|
|
||||||
--sidebar-color-1: var(--theme-color-1);
|
|
||||||
--sidebar-color-2: var(--theme-color-2);
|
|
||||||
--sidebar-color-active: var(--theme-color-accent);
|
|
||||||
--sidebar-search-background: transparent;
|
|
||||||
--sidebar-search-border-color: var(--theme-border-color);
|
|
||||||
--sidebar-search--color: var(--theme-color-3);
|
|
||||||
}
|
|
||||||
/* Document header only shows on mobile*/
|
|
||||||
.dark-mode .t-doc__header,
|
|
||||||
.light-mode .t-doc__header {
|
|
||||||
--header-background-1: rgba(255, 255, 255, 0.85);
|
|
||||||
--header-border-color: transparent;
|
|
||||||
--header-color-1: var(--theme-color-1);
|
|
||||||
--header-color-2: var(--theme-color-2);
|
|
||||||
--header-background-toggle: var(--theme-color-3);
|
|
||||||
--header-call-to-action-color: var(--theme-color-accent);
|
|
||||||
}
|
|
||||||
|
|
||||||
.dark-mode .t-doc__header {
|
|
||||||
--header-background-1: rgba(17, 23, 40, 0.75);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* advanced */
|
|
||||||
.light-mode {
|
|
||||||
--theme-button-1: rgb(49 53 56);
|
|
||||||
--theme-button-1-color: #fff;
|
|
||||||
--theme-button-1-hover: rgb(28 31 33);
|
|
||||||
|
|
||||||
--theme-color-green: #069061;
|
|
||||||
--theme-color-red: #ef0006;
|
|
||||||
--theme-color-yellow: #edbe20;
|
|
||||||
--theme-color-blue: #0082d0;
|
|
||||||
--theme-color-orange: #fb892c;
|
|
||||||
--theme-color-purple: #5203d1;
|
|
||||||
|
|
||||||
--theme-scrollbar-color: rgba(0, 0, 0, 0.18);
|
|
||||||
--theme-scrollbar-color-active: rgba(0, 0, 0, 0.36);
|
|
||||||
}
|
|
||||||
.dark-mode {
|
|
||||||
--theme-button-1: #f6f6f6;
|
|
||||||
--theme-button-1-color: #000;
|
|
||||||
--theme-button-1-hover: #e7e7e7;
|
|
||||||
|
|
||||||
--theme-color-green: #a3ffa9;
|
|
||||||
--theme-color-red: #ffa3a3;
|
|
||||||
--theme-color-yellow: #fffca3;
|
|
||||||
--theme-color-blue: #a5d6ff;
|
|
||||||
--theme-color-orange: #e2ae83;
|
|
||||||
--theme-color-purple: #d2a8ff;
|
|
||||||
|
|
||||||
--theme-scrollbar-color: rgba(255, 255, 255, 0.24);
|
|
||||||
--theme-scrollbar-color-active: rgba(255, 255, 255, 0.48);
|
|
||||||
}
|
|
||||||
/* Elysia Specific */
|
|
||||||
.scalar-api-client__send-request-button,
|
|
||||||
.show-api-client-button {
|
|
||||||
background: #3c82f6 !important;
|
|
||||||
}
|
|
||||||
.show-api-client-button:before {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sidebar-search:hover {
|
|
||||||
transition: all 0.15s ease-in-out;
|
|
||||||
--sidebar-search-border-color: var(--theme-color-accent) !important;
|
|
||||||
color: var(--sidebar-color-1) !important;
|
|
||||||
}
|
|
||||||
.scalar-api-client__container .sidebar {
|
|
||||||
--sidebar-border-color: var(--theme-border-color);
|
|
||||||
}
|
|
||||||
@media (min-width: 1150px) {
|
|
||||||
.section-container:has( ~ .footer):before,
|
|
||||||
.tag-section-container:before {
|
|
||||||
content: "";
|
|
||||||
position: absolute;
|
|
||||||
top: -5px;
|
|
||||||
left: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 10px;
|
|
||||||
background: linear-gradient(90deg, var(--theme-background-1) 3%,transparent 10%);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.section-flare {
|
|
||||||
position: absolute;
|
|
||||||
width: 100vw;
|
|
||||||
height: 300px;
|
|
||||||
--stripes: repeating-linear-gradient(
|
|
||||||
100deg,
|
|
||||||
#fff 0%,
|
|
||||||
#fff 7%,
|
|
||||||
transparent 10%,
|
|
||||||
transparent 12%,
|
|
||||||
#fff 16%
|
|
||||||
);
|
|
||||||
--stripesDark: repeating-linear-gradient(
|
|
||||||
100deg,
|
|
||||||
#000 0%,
|
|
||||||
#000 7%,
|
|
||||||
transparent 10%,
|
|
||||||
transparent 12%,
|
|
||||||
#000 16%
|
|
||||||
);
|
|
||||||
--rainbow: repeating-linear-gradient(
|
|
||||||
100deg,
|
|
||||||
#60a5fa 10%,
|
|
||||||
#e879f9 16%,
|
|
||||||
#5eead4 22%,
|
|
||||||
#60a5fa 30%
|
|
||||||
);
|
|
||||||
background-image: var(--stripes), var(--rainbow);
|
|
||||||
background-size: 300%, 200%;
|
|
||||||
background-position: 50% 50%, 50% 50%;
|
|
||||||
filter: invert(100%);
|
|
||||||
-webkit-mask-image: radial-gradient(
|
|
||||||
ellipse at 100% 0%,
|
|
||||||
black 40%,
|
|
||||||
transparent 70%
|
|
||||||
);
|
|
||||||
mask-image: radial-gradient(ellipse at 100% 0%, black 40%, transparent 70%);
|
|
||||||
pointer-events: none;
|
|
||||||
opacity: 0.15;
|
|
||||||
}
|
|
||||||
.dark-mode .section-flare {
|
|
||||||
background-image: var(--stripesDark), var(--rainbow);
|
|
||||||
filter: opacity(50%) saturate(200%);
|
|
||||||
opacity: 0.25;
|
|
||||||
}
|
|
||||||
.section-flare:after {
|
|
||||||
content: "";
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
background-image: var(--stripes), var(--rainbow);
|
|
||||||
background-size: 200%, 100%;
|
|
||||||
background-attachment: fixed;
|
|
||||||
mix-blend-mode: difference;
|
|
||||||
}
|
|
||||||
.dark-mode .section-flare:after {
|
|
||||||
background-image: var(--stripesDark), var(--rainbow);
|
|
||||||
}
|
|
||||||
@keyframes headerbackground {
|
|
||||||
from {
|
|
||||||
background: transparent;
|
|
||||||
backdrop-filter: none;
|
|
||||||
}
|
|
||||||
to {
|
|
||||||
background: var(--header-background-1);
|
|
||||||
backdrop-filter: blur(12px);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.light-mode .t-doc__header,
|
|
||||||
.dark-mode .t-doc__header {
|
|
||||||
animation: headerbackground forwards;
|
|
||||||
animation-timeline: scroll();
|
|
||||||
animation-range: 0px 200px;
|
|
||||||
--header-border-color: transparent;
|
|
||||||
}
|
|
||||||
`
|
|
||||||
Reference in New Issue
Block a user