Forráskód Böngészése

[docs]Update site

dufu1991 1 éve
szülő
commit
8966ea6dec
100 módosított fájl, 0 hozzáadás és 6022 törlés
  1. 0 24
      site/index.html
  2. 0 32
      site/jsconfig.json
  3. 0 31
      site/package.json
  4. 0 7
      site/postcss.config.cjs
  5. 0 1
      site/public/ads.txt
  6. BIN
      site/public/assets/3d/dark.png
  7. BIN
      site/public/assets/3d/light.png
  8. 0 0
      site/public/assets/3d/process.js
  9. BIN
      site/public/assets/3d/process.wasm
  10. BIN
      site/public/assets/3d/scene.splinecode
  11. 0 0
      site/public/assets/3d/viewer.js
  12. BIN
      site/public/assets/favicon_logo/android-chrome-192x192.png
  13. BIN
      site/public/assets/favicon_logo/android-chrome-512x512.png
  14. BIN
      site/public/assets/favicon_logo/apple-touch-icon.png
  15. BIN
      site/public/assets/favicon_logo/favicon-16x16.png
  16. BIN
      site/public/assets/favicon_logo/favicon-32x32.png
  17. BIN
      site/public/assets/favicon_logo/favicon.ico
  18. 0 11
      site/public/assets/favicon_logo/site.webmanifest
  19. BIN
      site/public/assets/favicon_logo_dark/android-chrome-192x192.png
  20. BIN
      site/public/assets/favicon_logo_dark/android-chrome-512x512.png
  21. BIN
      site/public/assets/favicon_logo_dark/apple-touch-icon.png
  22. BIN
      site/public/assets/favicon_logo_dark/favicon-16x16.png
  23. BIN
      site/public/assets/favicon_logo_dark/favicon-32x32.png
  24. BIN
      site/public/assets/favicon_logo_dark/favicon.ico
  25. 0 11
      site/public/assets/favicon_logo_dark/site.webmanifest
  26. BIN
      site/public/assets/fonts/JetBrainsMono-Regular.woff2
  27. 0 0
      site/public/assets/fonts/home.symbol.svg
  28. 0 4
      site/public/assets/fund/alipay.svg
  29. BIN
      site/public/assets/fund/ap_code.png
  30. 0 33
      site/public/assets/fund/coffee.svg
  31. 0 37
      site/public/assets/fund/paypal.svg
  32. 0 50
      site/public/assets/fund/wechat_pay.svg
  33. BIN
      site/public/assets/fund/wp_code.png
  34. BIN
      site/public/assets/images/3D-design-dark.png
  35. BIN
      site/public/assets/images/3D-design.png
  36. BIN
      site/public/assets/images/3D-fast-dark.png
  37. BIN
      site/public/assets/images/3D-fast.png
  38. BIN
      site/public/assets/images/3D-simple-dark.png
  39. BIN
      site/public/assets/images/3D-simple.png
  40. BIN
      site/public/assets/images/3D-thin-dark.png
  41. BIN
      site/public/assets/images/3D-thin.png
  42. BIN
      site/public/assets/images/guide/input.png
  43. BIN
      site/public/assets/images/guide/input_en.png
  44. BIN
      site/public/assets/images/guide/lazyplay_no.png
  45. BIN
      site/public/assets/images/guide/lazyplay_yes.png
  46. BIN
      site/public/assets/images/stdf_512px.png
  47. BIN
      site/public/assets/images/stdf_90px.png
  48. BIN
      site/public/assets/images/stdf_dark_512px.png
  49. BIN
      site/public/assets/images/stdf_dark_90px.png
  50. BIN
      site/public/assets/qr/demo_en.jpg
  51. BIN
      site/public/assets/qr/demo_en.png
  52. BIN
      site/public/assets/qr/demo_en_dark.png
  53. BIN
      site/public/assets/qr/demo_zh.png
  54. BIN
      site/public/assets/qr/demo_zh_dark.png
  55. 0 4
      site/public/assets/svg/stdf.svg
  56. 0 4
      site/public/assets/svg/stdf_dark.svg
  57. 0 8
      site/public/assets/svg/taiji.svg
  58. BIN
      site/public/assets/vscode/setting.png
  59. BIN
      site/public/assets/vscode/tip.png
  60. BIN
      site/public/assets/vscode/tip2.png
  61. BIN
      site/public/favicon.ico
  62. BIN
      site/public/favicon_black.ico
  63. 0 0
      site/public/fonts/symbol.svg
  64. 0 292
      site/public/global.css
  65. 0 0
      site/public/highlight.min.js
  66. 0 1
      site/public/highlight.svelte.min.js
  67. 0 24
      site/public/index.html
  68. BIN
      site/public/logo/padding_512.jpg
  69. BIN
      site/public/logo/padding_512.png
  70. 0 34
      site/scripts/env.js
  71. 0 60
      site/src/App.svelte
  72. 0 41
      site/src/app.css
  73. 0 1
      site/src/assets/svgs/ri-chrome-fill.svg
  74. 0 1
      site/src/assets/svgs/ri-close-line.svg
  75. 0 1
      site/src/assets/svgs/ri-riding-line.svg
  76. 0 1
      site/src/assets/svgs/ri-spy-fill.svg
  77. 0 1
      site/src/assets/svgs/ri-star-fill.svg
  78. 0 1
      site/src/assets/svgs/ri-switch-fill.svg
  79. 0 1
      site/src/assets/svgs/ri-volume-down-line.svg
  80. 0 360
      site/src/components/cmdk/CmdK.svelte
  81. 0 29
      site/src/components/colorCard/ColorCard.svelte
  82. 0 214
      site/src/components/fund/Fund.svelte
  83. 0 286
      site/src/components/header/Header.svelte
  84. 0 37
      site/src/components/menu/Menu.svelte
  85. 0 162
      site/src/components/modeSwitch/ModeSwitch.svelte
  86. 0 34
      site/src/components/modeSwitch/darkMode.js
  87. 0 24
      site/src/components/switch/Index.svelte
  88. 0 180
      site/src/components/tab/Tab.svelte
  89. 0 95
      site/src/components/themeSwitch/ThemeSwitch.svelte
  90. 0 2128
      site/src/data/color.js
  91. 0 82
      site/src/main.js
  92. 0 678
      site/src/pages/Home.svelte
  93. 0 47
      site/src/pages/components/Api.svelte
  94. 0 13
      site/src/pages/components/Component.svelte
  95. 0 317
      site/src/pages/components/Components.svelte
  96. 0 52
      site/src/pages/components/FAQ.svelte
  97. 0 87
      site/src/pages/components/Guide.svelte
  98. 0 128
      site/src/pages/components/Version.svelte
  99. 0 19
      site/src/pages/guide/About.svelte
  100. 0 334
      site/src/pages/guide/Calendar.svelte

+ 0 - 24
site/index.html

@@ -1,24 +0,0 @@
-<!doctype html>
-<html lang="zh-CN">
-	<head>
-		<meta charset="utf-8" />
-		<meta name="viewport" content="width=device-width,initial-scale=1" />
-		<meta name="theme-color" content="#F2F2F3" media="(prefers-color-scheme: light)" />
-		<meta name="theme-color" content="#191101" media="(prefers-color-scheme: dark)" />
-		<meta itemprop="name" content="STDF" />
-		<meta name="description" itemprop="description" content="Mobile web component library based on Svelte and Tailwind" />
-		<meta itemprop="image" content="./assets/images/logo.png" />
-		<title>STDF - 移动 web 组件库</title>
-		<link href="favicon.ico" rel="icon" media="(prefers-color-scheme: light)" />
-		<link href="favicon_black.ico" rel="icon" media="(prefers-color-scheme: dark)" />
-		<link rel="stylesheet" href="./global.css?_=1682692608001.4514" />
-		<script src="./highlight.min.js"></script>
-		<script src="./highlight.svelte.min.js"></script>
-		<script type="module" src="/assets/3d/viewer.js"></script>
-	</head>
-
-	<body class="selection:bg-primary selection:text-white dark:selection:bg-dark dark:selection:text-black">
-		<div id="app"></div>
-		<script type="module" src="/src/main.js"></script>
-	</body>
-</html>

+ 0 - 32
site/jsconfig.json

@@ -1,32 +0,0 @@
-{
-	"compilerOptions": {
-		"moduleResolution": "bundler",
-		"target": "ESNext",
-		"module": "ESNext",
-		/**
-		 * svelte-preprocess cannot figure out whether you have
-		 * a value or a type, so tell TypeScript to enforce using
-		 * `import type` instead of `import` for Types.
-		 */
-		"verbatimModuleSyntax": true,
-		"isolatedModules": true,
-		"resolveJsonModule": true,
-		/**
-		 * To have warnings / errors of the Svelte compiler at the
-		 * correct position, enable source maps by default.
-		 */
-		"sourceMap": true,
-		"esModuleInterop": true,
-		"skipLibCheck": true,
-		/**
-		 * Typecheck JS in `.svelte` and `.js` files by default.
-		 * Disable this if you'd like to use dynamic types.
-		 */
-		"checkJs": true
-	},
-	/**
-	 * Use global.d.ts instead of compilerOptions.types
-	 * to avoid limiting type declarations.
-	 */
-	"include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.svelte"]
-}

+ 0 - 31
site/package.json

@@ -1,31 +0,0 @@
-{
-	"name": "site",
-	"private": true,
-	"version": "0.0.0",
-	"type": "module",
-	"scripts": {
-		"env": "node scripts/env.js",
-		"dev": "npm run env && vite",
-		"bu": "vite build",
-		"preview": "vite preview",
-		"bp": "npm run build && npm run preview",
-		"miniglobal": "cleancss -o dist/global.css dist/global.css",
-		"build": "npm run env && vite build && npm run miniglobal"
-	},
-	"devDependencies": {
-		"@sveltejs/vite-plugin-svelte": "^5.0.1",
-		"@tailwindcss/typography": "^0.5.15",
-		"autoprefixer": "^10.4.20",
-		"beautify-qrcode": "^1.0.3",
-		"clipboard": "^2.0.11",
-		"color": "^4.2.3",
-		"postcss": "^8.4.49",
-		"rollup-plugin-md": "^1.0.1",
-		"rollup-plugin-stdf-icon": "^0.0.15",
-		"svelte": "^5.2.9",
-		"svelte-confetti": "^2.2.0",
-		"svelte-spa-router": "^4.0.1",
-		"tailwindcss": "^3.4.15",
-		"vite": "^6.0.1"
-	}
-}

+ 0 - 7
site/postcss.config.cjs

@@ -1,7 +0,0 @@
-import tailwind from 'tailwindcss';
-import tailwindConfig from './tailwind.config.cjs';
-import autoprefixer from 'autoprefixer';
-
-export default {
-	plugins: [tailwind(tailwindConfig), autoprefixer],
-};

+ 0 - 1
site/public/ads.txt

@@ -1 +0,0 @@
-google.com, pub-7513664453496981, DIRECT, f08c47fec0942fa0

BIN
site/public/assets/3d/dark.png


BIN
site/public/assets/3d/light.png


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 0
site/public/assets/3d/process.js


BIN
site/public/assets/3d/process.wasm


BIN
site/public/assets/3d/scene.splinecode


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 0
site/public/assets/3d/viewer.js


BIN
site/public/assets/favicon_logo/android-chrome-192x192.png


BIN
site/public/assets/favicon_logo/android-chrome-512x512.png


BIN
site/public/assets/favicon_logo/apple-touch-icon.png


BIN
site/public/assets/favicon_logo/favicon-16x16.png


BIN
site/public/assets/favicon_logo/favicon-32x32.png


BIN
site/public/assets/favicon_logo/favicon.ico


+ 0 - 11
site/public/assets/favicon_logo/site.webmanifest

@@ -1,11 +0,0 @@
-{
-	"name": "",
-	"short_name": "",
-	"icons": [
-		{ "src": "/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" },
-		{ "src": "/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" }
-	],
-	"theme_color": "#ffffff",
-	"background_color": "#ffffff",
-	"display": "standalone"
-}

BIN
site/public/assets/favicon_logo_dark/android-chrome-192x192.png


BIN
site/public/assets/favicon_logo_dark/android-chrome-512x512.png


BIN
site/public/assets/favicon_logo_dark/apple-touch-icon.png


BIN
site/public/assets/favicon_logo_dark/favicon-16x16.png


BIN
site/public/assets/favicon_logo_dark/favicon-32x32.png


BIN
site/public/assets/favicon_logo_dark/favicon.ico


+ 0 - 11
site/public/assets/favicon_logo_dark/site.webmanifest

@@ -1,11 +0,0 @@
-{
-	"name": "",
-	"short_name": "",
-	"icons": [
-		{ "src": "/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" },
-		{ "src": "/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" }
-	],
-	"theme_color": "#ffffff",
-	"background_color": "#ffffff",
-	"display": "standalone"
-}

BIN
site/public/assets/fonts/JetBrainsMono-Regular.woff2


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 0
site/public/assets/fonts/home.symbol.svg


+ 0 - 4
site/public/assets/fund/alipay.svg

@@ -1,4 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 253.835 255.997">
-  <path fill="#1677ff" d="M213.186 0H40.664C18.196 0 0 18.355 0 41.011v173.982c0 22.642 18.195 41.004 40.664 41.004h172.522c22.463 0 40.649-18.362 40.649-41.004V41.011C253.835 18.355 235.65 0 213.186 0"/>
-  <path fill="#fff" d="M68.59 196.863c-39.488 0-51.163-31.37-31.648-48.533 6.512-5.8 18.413-8.632 24.757-9.267 23.458-2.338 45.173 6.687 70.798 19.302-18.013 23.698-40.955 38.498-63.908 38.498m140.401-36.12c-10.157-3.431-23.786-8.678-38.967-14.217 9.117-15.983 16.399-34.185 21.185-53.967h-50.033V74.384h61.292V64.239h-61.292V33.94H116.16c-4.388 0-4.388 4.369-4.388 4.369v25.93H49.782v10.145h61.991v18.175H60.591V102.7h99.265c-3.633 12.623-8.51 24.472-14.298 35.239-32.21-10.719-66.58-19.406-88.172-14.059-13.81 3.432-22.703 9.556-27.927 15.972-23.98 29.426-6.781 74.12 43.86 74.12 29.944 0 58.79-16.837 81.147-44.583 33.346 16.166 99.366 43.922 99.366 43.922v-39.56s-8.291-.667-44.843-13.011"/>
-</svg>

BIN
site/public/assets/fund/ap_code.png


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 33
site/public/assets/fund/coffee.svg


+ 0 - 37
site/public/assets/fund/paypal.svg

@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Layer_1" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
-<path style="fill:#002987;" d="M428.876,132.28c0.867-7.045,1.32-14.218,1.32-21.497C430.196,49.6,380.597,0,319.413,0H134.271  c-11.646,0-21.589,8.41-23.521,19.894l-68.22,405.475c-2.448,14.55,8.768,27.809,23.521,27.809h67.711  c11.646,0,21.776-8.404,23.707-19.889c0,0,0.113-0.673,0.317-1.885h0.001l-9.436,56.086C146.195,500.313,156.08,512,169.083,512  h59.237c10.265,0,19.029-7.413,20.731-17.535l16.829-100.02c2.901-17.242,17.828-29.867,35.311-29.867h15.562  c84.53,0,153.054-68.525,153.054-153.054C469.807,178.815,453.639,149.902,428.876,132.28z"/>
-<path style="fill:#0085CC;" d="M428.876,132.28c-10.594,86.179-84.044,152.91-173.086,152.91h-51.665  c-11.661,0-21.732,7.767-24.891,18.749l-30.882,183.549C146.195,500.312,156.08,512,169.083,512h59.237  c10.265,0,19.029-7.413,20.731-17.535l16.829-100.02c2.901-17.242,17.828-29.867,35.311-29.867h15.562  c84.53,0,153.054-68.525,153.054-153.054l0,0C469.807,178.815,453.639,149.902,428.876,132.28z"/>
-<path style="fill:#00186A;" d="M204.125,285.19h51.665c89.043,0,162.493-66.731,173.086-152.909  c-15.888-11.306-35.304-17.978-56.29-17.978h-134.85c-15.353,0-28.462,11.087-31.01,26.227l-27.493,163.408  C182.392,292.956,192.464,285.19,204.125,285.19z"/>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-<g>
-</g>
-</svg>

+ 0 - 50
site/public/assets/fund/wechat_pay.svg

@@ -1,50 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
-	 viewBox="0 0 220 128" style="enable-background:new 0 0 220 128;" xml:space="preserve">
-<style type="text/css">
-	.st2{fill:#00C800;}
-</style>
-<g>
-	<path class="st2" d="M78.54,119.44c-0.5,0.29-1,0.57-1.5,0.86c-1.45,0.84-2.91,1.67-4.36,2.51c-0.64,0.37-1.28,0.75-1.92,1.12
-		c-0.83,0.47-1.66,0.95-2.49,1.42c-1.51,0.85-2.98,1.77-4.52,2.57c-1.09,0.25-2.34-0.2-2.83-1.24c-0.46-0.85-0.19-1.83,0.06-2.69
-		c0.4-1.46,0.79-2.93,1.19-4.39c0.39-1.47,0.79-2.94,1.18-4.41c0.22-0.8,0.44-1.59,0.62-2.39c0.2-0.73,0.43-1.46,0.55-2.21
-		c0.12-1-0.12-2.01-0.57-2.9c-0.37-0.61-0.86-1.14-1.44-1.57c-1.04-0.76-2.06-1.54-3.06-2.35c-0.77-0.63-1.53-1.28-2.28-1.95
-		c-0.69-0.62-1.38-1.24-2.05-1.89c-0.88-0.86-1.75-1.75-2.59-2.66c-0.65-0.72-1.31-1.44-1.93-2.19c-0.59-0.7-1.17-1.42-1.73-2.16
-		c-0.91-1.18-1.76-2.41-2.6-3.65c-0.17-0.25-0.33-0.51-0.49-0.76c-0.9-1.42-1.72-2.87-2.49-4.36c-0.53-1.05-1.04-2.13-1.53-3.2
-		c-0.16-0.41-0.33-0.83-0.5-1.23c-0.61-1.49-1.14-3.02-1.61-4.56c-0.42-1.42-0.79-2.86-1.11-4.31c-0.3-1.48-0.55-2.98-0.73-4.48
-		c-0.54-4.43-0.46-8.92,0.19-13.33c0.22-1.44,0.48-2.88,0.82-4.3c0.35-1.48,0.76-2.95,1.24-4.39c0.49-1.51,1.08-2.98,1.68-4.44
-		l0.05-0.13c0.67-1.47,1.36-2.93,2.14-4.34c1.7-3.12,3.7-6.08,5.95-8.84c0.26-0.32,0.53-0.63,0.78-0.95c1-1.18,2.04-2.32,3.13-3.42
-		c0.39-0.4,0.8-0.8,1.2-1.19c1.12-1.1,2.29-2.15,3.48-3.16c0.35-0.29,0.7-0.58,1.06-0.86c2.76-2.23,5.69-4.24,8.75-6.03
-		c1.2-0.7,2.42-1.37,3.65-2.02c0.28-0.14,0.56-0.28,0.85-0.42c1.45-0.71,2.91-1.39,4.39-2.02c2.88-1.22,5.82-2.27,8.82-3.14
-		c1.58-0.46,3.18-0.88,4.79-1.23c1.33-0.32,2.67-0.58,4.01-0.82c1.62-0.31,3.26-0.53,4.9-0.72c2.67-0.33,5.37-0.51,8.06-0.6h4.25
-		c3.14,0.09,6.28,0.33,9.4,0.74c1.48,0.19,2.95,0.43,4.41,0.7c1.48,0.28,2.94,0.59,4.4,0.94c1.49,0.36,2.97,0.75,4.43,1.2
-		c3.04,0.91,6.01,2.01,8.92,3.27c1.48,0.64,2.92,1.35,4.36,2.06l0.12,0.05c1.45,0.78,2.9,1.56,4.31,2.42
-		c3.12,1.86,6.08,3.99,8.88,6.31c0.06,0.05,0.17,0.14,0.23,0.19c1.39,1.2,2.78,2.42,4.07,3.73c0.22,0.22,0.44,0.45,0.67,0.67
-		c1.05,1.06,2.04,2.19,3.01,3.32c-0.58,0.25-1.15,0.5-1.72,0.76c-0.66,0.29-1.32,0.58-1.97,0.87c-1.45,0.64-2.89,1.29-4.33,1.93
-		c-1.28,0.57-2.57,1.14-3.85,1.72c-0.19,0.07-0.37,0.15-0.55,0.23c-1.48,0.65-2.96,1.32-4.44,1.97c-2.96,1.32-5.92,2.63-8.88,3.96
-		c-2.94,1.3-5.87,2.6-8.8,3.92c-1.48,0.66-2.95,1.31-4.43,1.97c-0.92,0.4-1.84,0.82-2.75,1.24c-0.57,0.23-1.13,0.49-1.7,0.74
-		c-1.49,0.67-2.99,1.33-4.49,2c-1.21,0.54-2.42,1.08-3.63,1.63c-0.25,0.11-0.5,0.22-0.74,0.33c-1.48,0.65-2.95,1.32-4.43,1.97
-		c-2.96,1.32-5.92,2.63-8.88,3.95c-2.26,0.99-4.52,2.01-6.77,3.02c-0.67,0.31-1.36,0.57-2.08,0.72c-1.47,0.25-3.01,0.06-4.36-0.56
-		c-0.33-0.16-0.65-0.35-0.96-0.54c-1.14-0.82-2.28-1.63-3.43-2.44c-0.93-0.67-1.86-1.33-2.8-1.99c-0.55-0.4-1.11-0.8-1.67-1.19
-		c-1.43-1.03-2.86-2.05-4.3-3.07c-0.03-0.02-0.08-0.05-0.11-0.07c-1.04-0.75-2.07-1.49-3.11-2.23c-0.4-0.28-0.87-0.46-1.34-0.58
-		c-1.56-0.09-2.93,1.41-2.57,2.97c1.25,2.93,2.64,5.8,3.94,8.71c0.69,1.51,1.38,3.03,2.07,4.54c0.27,0.6,0.54,1.2,0.81,1.79
-		c0.39,0.86,0.79,1.71,1.18,2.58c0.67,1.46,1.32,2.92,2,4.38c0.43,0.93,0.86,1.87,1.29,2.81c0.25,0.55,0.49,1.1,0.74,1.65
-		c0.79,1.54,1.27,3.25,2.33,4.63c0.42,0.4,0.89,0.75,1.39,1.04c1.48,0.73,3.28,0.64,4.69-0.21c0.51-0.3,1.02-0.6,1.53-0.91
-		c0.93-0.53,1.86-1.07,2.79-1.6c2.95-1.71,5.9-3.41,8.86-5.12c1.27-0.73,2.54-1.46,3.81-2.21c0.21-0.12,0.42-0.25,0.63-0.36
-		c1.48-0.84,2.94-1.69,4.41-2.54c0.84-0.48,1.68-0.96,2.51-1.45c0.65-0.37,1.3-0.75,1.95-1.12c1.47-0.85,2.93-1.7,4.41-2.54
-		c0.45-0.25,0.9-0.52,1.34-0.78c1.04-0.6,2.08-1.19,3.11-1.81c2.95-1.7,5.91-3.39,8.85-5.11c1.12-0.65,2.25-1.29,3.37-1.95
-		c0.33-0.19,0.67-0.39,1-0.58c1.47-0.85,2.95-1.7,4.42-2.56c0.77-0.44,1.54-0.89,2.3-1.33c0.7-0.4,1.4-0.79,2.1-1.2
-		c2.98-1.72,5.96-3.45,8.94-5.17c1.39-0.81,2.8-1.61,4.19-2.43c0.11-0.06,0.22-0.12,0.33-0.19c1.46-0.83,2.9-1.68,4.36-2.52
-		c1.04-0.59,2.06-1.2,3.1-1.8c0.42-0.24,0.83-0.48,1.25-0.72c1.4-0.78,2.75-1.65,4.19-2.35c0.5,1.04,1.15,2,1.69,3.02
-		c0.8,1.48,1.55,2.98,2.21,4.52c0.19,0.44,0.37,0.88,0.55,1.32c0.41,1.02,0.8,2.06,1.14,3.11c0.47,1.41,0.86,2.84,1.21,4.28
-		c0.35,1.46,0.62,2.95,0.84,4.43c0.21,1.46,0.36,2.94,0.44,4.41c0.08,1.48,0.1,2.97,0.06,4.45c-0.05,1.48-0.16,2.95-0.33,4.42
-		c-0.17,1.47-0.42,2.93-0.71,4.38c-0.31,1.47-0.68,2.92-1.1,4.36c-0.93,3.09-2.14,6.08-3.61,8.96c-1.58,3.11-3.47,6.07-5.6,8.84
-		c-0.38,0.49-0.76,0.97-1.15,1.45c-0.81,0.98-1.63,1.94-2.49,2.87c-0.61,0.65-1.22,1.29-1.84,1.92c-0.92,0.91-1.86,1.79-2.83,2.65
-		c-0.5,0.45-1.02,0.89-1.53,1.32c-1.27,1.06-2.57,2.07-3.92,3.04c-0.2,0.14-0.4,0.28-0.6,0.42c-1.45,1.02-2.93,2-4.46,2.91
-		c-0.59,0.35-1.19,0.7-1.79,1.04c-0.85,0.48-1.71,0.95-2.59,1.39c-1.46,0.74-2.94,1.45-4.44,2.1c-0.7,0.31-1.41,0.6-2.11,0.89
-		c-0.8,0.32-1.6,0.61-2.41,0.91c-1.42,0.53-2.86,1-4.32,1.44c-1.52,0.45-3.05,0.86-4.59,1.23c-1.31,0.32-2.63,0.58-3.94,0.86
-		c-0.07,0.01-0.22,0.04-0.3,0.04c-1.47,0.26-2.95,0.5-4.43,0.7c-1.47,0.19-2.94,0.35-4.42,0.47c-1.48,0.11-2.96,0.2-4.44,0.24
-		c-1.48,0.04-2.95,0.05-4.43,0.02c-1.48-0.03-2.95-0.11-4.43-0.21c-1.48-0.11-2.95-0.25-4.42-0.44c-1.33-0.16-2.65-0.37-3.96-0.59
-		c-0.48-0.08-0.95-0.18-1.42-0.25c-1.14-0.23-2.28-0.46-3.42-0.73c-1.5-0.35-2.99-0.76-4.48-1.16c-1.46-0.39-3.02-0.26-4.42,0.28"/>
-</g>
-</svg>

BIN
site/public/assets/fund/wp_code.png


BIN
site/public/assets/images/3D-design-dark.png


BIN
site/public/assets/images/3D-design.png


BIN
site/public/assets/images/3D-fast-dark.png


BIN
site/public/assets/images/3D-fast.png


BIN
site/public/assets/images/3D-simple-dark.png


BIN
site/public/assets/images/3D-simple.png


BIN
site/public/assets/images/3D-thin-dark.png


BIN
site/public/assets/images/3D-thin.png


BIN
site/public/assets/images/guide/input.png


BIN
site/public/assets/images/guide/input_en.png


BIN
site/public/assets/images/guide/lazyplay_no.png


BIN
site/public/assets/images/guide/lazyplay_yes.png


BIN
site/public/assets/images/stdf_512px.png


BIN
site/public/assets/images/stdf_90px.png


BIN
site/public/assets/images/stdf_dark_512px.png


BIN
site/public/assets/images/stdf_dark_90px.png


BIN
site/public/assets/qr/demo_en.jpg


BIN
site/public/assets/qr/demo_en.png


BIN
site/public/assets/qr/demo_en_dark.png


BIN
site/public/assets/qr/demo_zh.png


BIN
site/public/assets/qr/demo_zh_dark.png


+ 0 - 4
site/public/assets/svg/stdf.svg

@@ -1,4 +0,0 @@
-<svg width="90" height="80" viewBox="0 0 90 80" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path fill-rule="evenodd" clip-rule="evenodd" d="M0 0H20H40H50C64.8056 0 77.7325 8.04398 84.6487 20H50H40V22.6757V30H50C55.5229 30 60 34.4771 60 40C60 45.5229 55.5229 50 50 50H40V57.3243V78.7398V80H20V66.4583V20H15.3513H0V0ZM50 80C72.0914 80 90 62.0914 90 40C90 36.547 89.5625 33.1962 88.7398 30H67.3244C69.0261 32.9417 70 36.3571 70 40C70 51.0457 61.0457 60 50 60V80Z" fill="#0B24FB"/>
-<path fill-rule="evenodd" clip-rule="evenodd" d="M20 30V0L0 50H20V80L40 30H20Z" fill="#FFC043"/>
-</svg>

+ 0 - 4
site/public/assets/svg/stdf_dark.svg

@@ -1,4 +0,0 @@
-<svg width="90" height="80" viewBox="0 0 90 80" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path fill-rule="evenodd" clip-rule="evenodd" d="M0 0H20H40H50C64.8056 0 77.7325 8.04398 84.6487 20H50H40V22.6757V30H50C55.5229 30 60 34.4771 60 40C60 45.5229 55.5229 50 50 50H40V57.3243V78.7398V80H20V66.4583V20H15.3513H0V0ZM50 80C72.0914 80 90 62.0914 90 40C90 36.547 89.5625 33.1962 88.7398 30H67.3244C69.0261 32.9417 70 36.3571 70 40C70 51.0457 61.0457 60 50 60V80Z" fill="#FFC043"/>
-<path fill-rule="evenodd" clip-rule="evenodd" d="M20 30V0L0 50H20V80L40 30H20Z" fill="#0B24FB"/>
-</svg>

+ 0 - 8
site/public/assets/svg/taiji.svg

@@ -1,8 +0,0 @@
-<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path fill-rule="evenodd" clip-rule="evenodd" d="M50 0V100C22.3858 100 0 77.6142 0 50C0 22.3858 22.3858 0 50 0Z" fill="#FFC043"/>
-<path fill-rule="evenodd" clip-rule="evenodd" d="M50 100V0C77.6142 0 100 22.3858 100 50C100 77.6142 77.6142 100 50 100Z" fill="#0B24FB"/>
-<circle cx="50" cy="25" r="25" fill="#0B24FB"/>
-<circle cx="50" cy="75" r="25" fill="#FFC043"/>
-<circle cx="50.25" cy="25.25" r="6.25" fill="#FFC043"/>
-<circle cx="50.25" cy="75.25" r="6.25" fill="#0B24FB"/>
-</svg>

BIN
site/public/assets/vscode/setting.png


BIN
site/public/assets/vscode/tip.png


BIN
site/public/assets/vscode/tip2.png


BIN
site/public/favicon.ico


BIN
site/public/favicon_black.ico


A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 0
site/public/fonts/symbol.svg


+ 0 - 292
site/public/global.css

@@ -1,292 +0,0 @@
-*::-webkit-scrollbar {
-	width: 4px;
-}
-
-*::-webkit-scrollbar-thumb {
-	border-radius: 2px;
-	background-color: rgba(133, 133, 133, 0.5);
-}
-
-*::-webkit-scrollbar-track {
-	background-color: rgba(133, 133, 133, 0.2);
-}
-
-html {
-	overflow-x: hidden;
-	overflow-y: overlay;
-	/*scrollbar-gutter: stable;*/
-	/* scrollbar-gutter: stable both-edges; */
-	-webkit-tap-highlight-color: transparent;
-}
-* {
-	scrollbar-width: thin;
-}
-
-.prose :where(code):not(:where([class~='not-prose'] *))::before {
-	content: '' !important;
-}
-
-.prose :where(code):not(:where([class~='not-prose'] *))::after {
-	content: '' !important;
-}
-
-.prose :where(code):not(:where([class~='not-prose'] *)) {
-	padding-left: 4px;
-	padding-right: 4px;
-	border-radius: 2px;
-	background: #e4e4e4 !important;
-}
-
-.dark .dark\:prose-invert :where(code):not(:where([class~='not-prose'] *)) {
-	background: #202020 !important;
-}
-
-/*!
-  Theme: GitHub Light
-*/
-.prose pre code.hljs {
-	background: #e4e4e4 !important;
-}
-
-.prose pre code.hljs {
-	display: block;
-	overflow-x: auto;
-	padding: 1em;
-}
-
-.prose code.hljs {
-	padding: 3px 5px;
-}
-
-.prose .hljs {
-	/* background: #ebebeb !important; */
-	color: #434f54;
-}
-
-.prose .hljs-subst {
-	color: #434f54;
-}
-
-.prose .hljs-attribute,
-.prose .hljs-doctag,
-.prose .hljs-keyword,
-.prose .hljs-name,
-.prose .hljs-selector-tag {
-	/* color: #00979d; */
-	/* color: #0B24FB; */
-	/* color: #ff3e00; */
-	color: #af10a7;
-}
-
-.prose .hljs-addition,
-.prose .hljs-built_in,
-.prose .hljs-bullet,
-.prose .hljs-code,
-.prose .hljs-literal {
-	color: #d35400;
-}
-
-.prose .hljs-link,
-.prose .hljs-regexp,
-.prose .hljs-selector-attr,
-.prose .hljs-selector-pseudo,
-.prose .hljs-symbol,
-.prose .hljs-template-variable,
-.prose .hljs-variable {
-	/* color: #00979d; */
-	color: #0b24fb;
-	/* font-weight: bold; */
-	/* color: #8a3ce2; */
-}
-
-.prose .hljs-deletion,
-.prose .hljs-quote,
-.prose .hljs-selector-class,
-.prose .hljs-selector-id,
-.prose .hljs-string,
-.prose .hljs-template-tag,
-.prose .hljs-type {
-	/* color: #005c5f; */
-	color: rgb(56, 189, 248);
-}
-
-.prose .hljs-comment {
-	color: rgba(149, 165, 166, 0.8);
-}
-
-.prose .hljs-meta .hljs-keyword {
-	color: #728e00;
-}
-
-.prose .hljs-meta {
-	color: #434f54;
-}
-
-.prose .hljs-emphasis {
-	font-style: italic;
-}
-
-.prose .hljs-strong {
-	font-weight: 700;
-}
-
-.prose .hljs-function {
-	color: #728e00;
-}
-
-.prose .hljs-section,
-.prose .hljs-title {
-	/* color: #800; */
-	color: #0b24fb;
-	font-weight: 700;
-}
-
-.prose .hljs-number {
-	color: #8a7b52;
-}
-
-.dark .dark\:prose-invert pre code.hljs {
-	background: #202020 !important;
-}
-
-.dark .dark\:prose-invert pre code.hljs {
-	display: block;
-	overflow-x: auto;
-	padding: 1em;
-}
-
-.dark .dark\:prose-invert code.hljs {
-	padding: 3px 5px;
-}
-
-/*!
-  Theme: GitHub Dark
-*/
-.dark .dark\:prose-invert .hljs {
-	color: #c9d1d9;
-	/* background: #0d1117; */
-}
-
-.dark .dark\:prose-invert .hljs-doctag,
-.dark .dark\:prose-invert .hljs-keyword,
-.dark .dark\:prose-invert .hljs-meta .hljs-keyword,
-.dark .dark\:prose-invert .hljs-template-tag,
-.dark .dark\:prose-invert .hljs-template-variable,
-.dark .dark\:prose-invert .hljs-type,
-.dark .dark\:prose-invert .hljs-variable.language_ {
-	/* color: #ff7b72; */
-	color: #ffc043;
-}
-
-.dark .dark\:prose-invert .hljs-title,
-.dark .dark\:prose-invert .hljs-title.class_,
-.dark .dark\:prose-invert .hljs-title.class_.inherited__,
-.dark .dark\:prose-invert .hljs-title.function_ {
-	color: #d2a8ff;
-}
-
-.dark .dark\:prose-invert .hljs-attr,
-.dark .dark\:prose-invert .hljs-attribute,
-.dark .dark\:prose-invert .hljs-literal,
-.dark .dark\:prose-invert .hljs-meta,
-.dark .dark\:prose-invert .hljs-number,
-.dark .dark\:prose-invert .hljs-operator,
-.dark .dark\:prose-invert .hljs-selector-attr,
-.dark .dark\:prose-invert .hljs-selector-class,
-.dark .dark\:prose-invert .hljs-selector-id,
-.dark .dark\:prose-invert .hljs-variable {
-	color: #79c0ff;
-}
-
-.dark .dark\:prose-invert .hljs-meta .hljs-string,
-.dark .dark\:prose-invert .hljs-regexp,
-.dark .dark\:prose-invert .hljs-string {
-	color: #a5d6ff;
-}
-
-.dark .dark\:prose-invert .hljs-built_in,
-.dark .dark\:prose-invert .hljs-symbol {
-	color: #ffa657;
-}
-
-.dark .dark\:prose-invert .hljs-code,
-.dark .dark\:prose-invert .hljs-comment,
-.dark .dark\:prose-invert .hljs-formula {
-	color: #8b949e;
-}
-
-.dark .dark\:prose-invert .hljs-name,
-.dark .dark\:prose-invert .hljs-quote,
-.dark .dark\:prose-invert .hljs-selector-pseudo,
-.dark .dark\:prose-invert .hljs-selector-tag {
-	color: #7ee787;
-}
-
-.dark .dark\:prose-invert .hljs-subst {
-	color: #c9d1d9;
-}
-
-.dark .dark\:prose-invert .hljs-section {
-	color: #1f6feb;
-	font-weight: 700;
-}
-
-.dark .dark\:prose-invert .hljs-bullet {
-	color: #f2cc60;
-}
-
-.dark .dark\:prose-invert .hljs-emphasis {
-	color: #c9d1d9;
-	font-style: italic;
-}
-
-.dark .dark\:prose-invert .hljs-strong {
-	color: #c9d1d9;
-	font-weight: 700;
-}
-
-.dark .dark\:prose-invert .hljs-addition {
-	color: #aff5b4;
-	background-color: #033a16;
-}
-
-.dark .dark\:prose-invert .hljs-deletion {
-	color: #ffdcd7;
-	background-color: #67060c;
-}
-
-@font-face {
-	font-family: 'JetBrainsMono';
-	src: url('./assets/fonts/JetBrainsMono-Regular.woff2');
-}
-
-code {
-	font-family: 'JetBrainsMono' !important;
-}
-
-/* 模拟设计软件的透明层 */
-.transparent-background {
-	background-image: linear-gradient(45deg, #666 25%, transparent 25%, transparent 75%, #666 75%),
-		linear-gradient(45deg, #666 25%, transparent 25%, transparent 75%, #666 75%);
-	background-position:
-		0 0,
-		10px 10px;
-	background-size: 20px 20px;
-}
-
-@keyframes clip {
-	from {
-		clip-path: circle(0% at var(--x) var(--y));
-	}
-	to {
-		clip-path: circle(100% at var(--x) var(--y));
-	}
-}
-
-::view-transition-old(root) {
-	animation: none;
-}
-::view-transition-new(root) {
-	mix-blend-mode: normal;
-	animation: clip 0.6s ease-in;
-}

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 0
site/public/highlight.min.js


+ 0 - 1
site/public/highlight.svelte.min.js

@@ -1 +0,0 @@
-!(function () { 'use strict'; hljs.registerLanguage('svelte', function (e) { return { subLanguage: 'xml', contains: [ e.COMMENT('\x3c!--', '--\x3e', { relevance: 10 }), { begin: /^(\s*)(<script(\s*context="module")?>)/gm, end: /^(\s*)(<\/script>)/gm, subLanguage: 'javascript', excludeBegin: !0, excludeEnd: !0, contains: [{ begin: /^(\s*)(\$:)/gm, end: /(\s*)/gm, className: 'keyword' }], }, { begin: /^(\s*)(<style.*>)/gm, end: /^(\s*)(<\/style>)/gm, subLanguage: 'css', excludeBegin: !0, excludeEnd: !0 }, { begin: /\{/gm, end: /\}/gm, subLanguage: 'javascript', contains: [ { begin: /[\{]/, end: /[\}]/, skip: !0 }, { begin: /([#:\/@])(if|else|each|await|then|catch|debug|html)/gm, className: 'keyword', relevance: 10 }, ], }, ], }; }); })();

+ 0 - 24
site/public/index.html

@@ -1,24 +0,0 @@
-<!doctype html>
-<html lang="zh-CN">
-	<head>
-		<meta charset="utf-8" />
-		<meta name="viewport" content="width=device-width,initial-scale=1" />
-		<meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)" />
-		<meta name="theme-color" content="#23262B" media="(prefers-color-scheme: dark)" />
-		<meta itemprop="name" content="STDF" />
-		<meta name="description" itemprop="description" content="Mobile web component library based on Svelte and Tailwind" />
-		<meta itemprop="image" content="./assets/images/logo.png" />
-		<title>STDF - 移动 web 组件库</title>
-
-		<link rel="icon" href="./favicon.ico" />
-		<link rel="stylesheet" href="./global.css?_=1682692608001.4514" />
-		<link rel="stylesheet" href="./output.css?_=1682692608001.4514" />
-
-		<script src="./highlight.min.js"></script>
-		<script src="./highlight.svelte.min.js"></script>
-		<script defer src="./build/bundle.js?_=1682692608001.4514"></script>
-		<script type="module" src="./assets/3d/viewer.js"></script>
-	</head>
-
-	<body></body>
-</html>

BIN
site/public/logo/padding_512.jpg


BIN
site/public/logo/padding_512.png


+ 0 - 34
site/scripts/env.js

@@ -1,34 +0,0 @@
-import fs from 'node:fs';
-
-//得到标准时区的时间的函数
-const getLocalTime = i => {
-	//参数i为时区值数字,比如北京为东八区则输进8,纽约为西5区输入-5
-	if (typeof i !== 'number') return;
-	var d = new Date();
-	//得到1970年一月一日到现在的秒数
-	var len = d.getTime();
-	//本地时间与GMT时间的时间偏移差
-	var offset = d.getTimezoneOffset() * 60000;
-	//得到现在的格林尼治时间
-	var utcTime = len + offset;
-	return new Date(utcTime + 3600000 * i);
-};
-
-// 获取当前时间,返回中文和英文时间格式,24 小时制
-let now_en = getLocalTime(-4).toLocaleString('en-US', { hour12: false });
-let now_zh = getLocalTime(+8).toLocaleString('zh-CN', { hour12: false });
-
-// 去掉秒,即去除最后的 ':xx'
-now_en = now_en.slice(0, -3) + '(UTC-04:00)';
-now_zh = now_zh.slice(0, -3) + '(UTC+08:00)';
-
-console.log('now_en', now_en);
-console.log('now_zh', now_zh);
-
-// 如果已存在 .env 文件,则删除
-if (fs.existsSync('.env')) {
-	fs.unlinkSync('.env');
-}
-
-// 将当前时间写入 .env 文件
-fs.writeFileSync('.env', `VITE_BUILD_TIME_EN=${now_en}\nVITE_BUILD_TIME_ZH=${now_zh}`);

+ 0 - 60
site/src/App.svelte

@@ -1,60 +0,0 @@
-<script>
-	import { afterUpdate, onMount } from 'svelte';
-	import { location } from 'svelte-spa-router';
-	import Router from 'svelte-spa-router';
-	import routes from './routers';
-	import Header from './components/header/Header.svelte';
-	import Fund from './components/fund/Fund.svelte';
-	import CmdK from './components/cmdk/CmdK.svelte';
-	import { isCmdKStore, isShowFundStore } from './store';
-	import { delParamsUrl } from './utils/index';
-
-	let showLeftNav = false; //是否显示左侧导航
-	//路由改变时,更新左侧导航
-	afterUpdate(() => {
-		showLeftNav = $location.startsWith('/guide') || $location === '/components';
-	});
-	$: isHome = $location === '/' || $location === '';
-
-	const isZh = localStorage.getItem('lang') === 'zh_CN';
-	// 修改HTML 上的lang
-	document.documentElement.lang = isZh ? 'zh-CN' : 'en-US';
-
-	onMount(() => {
-		// 根据 params 判断当前 URL 是否含有 fund 参数,如果有则显示赞赏弹窗
-		let urlLang = window.location.href.split('?')[1];
-		let urlParams = new URLSearchParams(urlLang);
-		const isFund = urlParams.has('fund');
-		if (isFund) {
-			isShowFundStore.set(true);
-			// 去除 URL 中的 fund 参数
-			setTimeout(() => {
-				window.history.replaceState({}, '', delParamsUrl(window.location.href, 'fund'));
-			}, 10);
-		}
-	});
-
-	// 点击顶部菜单事件
-	const headerCmdKFun = () => {
-		isCmdKStore.set(true);
-	};
-</script>
-
-<svelte:head>
-	<title>STDF - {isZh ? '移动 web 组件库' : 'Mobile web component library'}</title>
-</svelte:head>
-
-<main class="bg-primaryWhite dark:bg-darkBlack text-black dark:text-white relative min-h-screen text-justify antialiased">
-	{#if !isZh && ($location === '' || $location === '/')}
-		<div class="bg-primary text-white dark:bg-dark dark:text-black text-center text-xs py-1 px-2">
-			The english documentation is translated by machine, please help to correct if there is any error, thank you very much!
-		</div>
-	{/if}
-	<Header {showLeftNav} showBottonLine={!isHome} on:clickCmdK={headerCmdKFun} />
-	<Router {routes} />
-	<CmdK />
-	<!-- 赞赏 -->
-	{#if $isShowFundStore}
-		<Fund />
-	{/if}
-</main>

+ 0 - 41
site/src/app.css

@@ -1,41 +0,0 @@
-@tailwind base;
-@tailwind components;
-@tailwind utilities;
-
-@layer base {
-	:root {
-		--theme-color-primary-50: 245, 248, 255;
-		--theme-color-primary-100: 232, 238, 255;
-		--theme-color-primary-200: 187, 203, 254;
-		--theme-color-primary-300: 143, 165, 253;
-		--theme-color-primary-400: 99, 124, 253;
-		--theme-color-primary-500: 55, 81, 252;
-		--theme-color-primary: 11, 36, 251;
-		--theme-color-primary-700: 7, 20, 207;
-		--theme-color-primary-800: 4, 9, 164;
-		--theme-color-primary-900: 1, 1, 120;
-		--theme-color-primary-950: 3, 0, 77;
-		--theme-color-dark-50: 255, 254, 245;
-		--theme-color-dark-100: 255, 251, 232;
-		--theme-color-dark-200: 255, 244, 199;
-		--theme-color-dark-300: 255, 234, 166;
-		--theme-color-dark-400: 255, 222, 133;
-		--theme-color-dark-500: 255, 209, 100;
-		--theme-color-dark: 255, 192, 67;
-		--theme-color-dark-700: 210, 148, 41;
-		--theme-color-dark-800: 166, 108, 22;
-		--theme-color-dark-900: 121, 72, 8;
-		--theme-color-dark-950: 77, 41, 0;
-		--theme-color-primaryBlack: 1, 3, 25;
-		--theme-color-primaryWhite: 242, 242, 243;
-		--theme-color-darkBlack: 25, 17, 1;
-		--theme-color-darkWhite: 243, 242, 242;
-		--theme-color-functional-success: 17, 187, 141;
-		--theme-color-functional-warning: 185, 80, 0;
-		--theme-color-functional-error: 218, 20, 20;
-		--theme-color-functional-info: 46, 90, 172;
-		--theme-color-extend0: 0, 172, 238;
-		--theme-color-extend1: 255, 105, 55;
-		--theme-color-extend2: 0, 112, 74;
-	}
-}

+ 0 - 1
site/src/assets/svgs/ri-chrome-fill.svg

@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.82726 21.7633C5.34912 20.7712 2 16.7767 2 12C2 10.1779 2.48734 8.46958 3.33878 6.99834L7.62189 14.4169C8.47396 15.9571 10.1152 17 12 17C12.2023 17 12.4018 16.988 12.5978 16.9646L9.82726 21.7633ZM12 22L16.2868 14.5751C16.7396 13.8229 17 12.9419 17 12C17 10.8744 16.6281 9.83566 16.0004 9H21.5422C21.8396 9.94704 22 10.9548 22 12C22 17.5228 17.5228 22 12 22ZM14.5721 13.545C14.0473 14.4168 13.0917 15 12 15C10.8897 15 9.92024 14.3968 9.40149 13.5002L9.37313 13.4501C9.13535 13.0203 9 12.526 9 12C9 10.3431 10.3431 9 12 9C13.6569 9 15 10.3431 15 12C15 12.5465 14.8539 13.0589 14.5985 13.5002L14.5721 13.545ZM4.6322 5.23859C6.46008 3.24783 9.08432 2 12 2C15.7014 2 18.9331 4.01099 20.6622 7H12C9.93635 7 8.1647 8.25019 7.40112 10.0345L4.6322 5.23859Z"></path></svg>

+ 0 - 1
site/src/assets/svgs/ri-close-line.svg

@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12.0007 10.5865L16.9504 5.63672L18.3646 7.05093L13.4149 12.0007L18.3646 16.9504L16.9504 18.3646L12.0007 13.4149L7.05093 18.3646L5.63672 16.9504L10.5865 12.0007L5.63672 7.05093L7.05093 5.63672L12.0007 10.5865Z"></path></svg>

+ 0 - 1
site/src/assets/svgs/ri-riding-line.svg

@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5.5 21C3.01472 21 1 18.9853 1 16.5C1 14.0147 3.01472 12 5.5 12C7.98528 12 10 14.0147 10 16.5C10 18.9853 7.98528 21 5.5 21ZM5.5 19C6.88071 19 8 17.8807 8 16.5C8 15.1193 6.88071 14 5.5 14C4.11929 14 3 15.1193 3 16.5C3 17.8807 4.11929 19 5.5 19ZM18.5 21C16.0147 21 14 18.9853 14 16.5C14 14.0147 16.0147 12 18.5 12C20.9853 12 23 14.0147 23 16.5C23 18.9853 20.9853 21 18.5 21ZM18.5 19C19.8807 19 21 17.8807 21 16.5C21 15.1193 19.8807 14 18.5 14C17.1193 14 16 15.1193 16 16.5C16 17.8807 17.1193 19 18.5 19ZM11.023 10.3054L13 12V18H11V13L8.28117 10.7343C8.18221 10.6661 8.08802 10.588 8 10.5C7.21895 9.71895 7.21895 8.45262 8 7.67157L10.8284 4.84315C11.6095 4.0621 12.8758 4.0621 13.6569 4.84315L15.0711 6.25736C16.1746 7.36086 17.5548 8.01891 18.9884 8.23151L18.978 10.2474C17.0335 10.0218 15.1485 9.16323 13.6569 7.67157L11.023 10.3054ZM16 5C14.8954 5 14 4.10457 14 3C14 1.89543 14.8954 1 16 1C17.1046 1 18 1.89543 18 3C18 4.10457 17.1046 5 16 5Z"></path></svg>

+ 0 - 1
site/src/assets/svgs/ri-spy-fill.svg

@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17 13C19.2091 13 21 14.7909 21 17C21 19.2091 19.2091 21 17 21C14.8578 21 13 19.21 13 17H11C11 19.2091 9.20914 21 7 21C4.79086 21 3 19.2091 3 17C3 14.7909 4.79086 13 7 13C8.48052 13 9.77317 13.8043 10.4648 14.9999H13.5352C14.2268 13.8043 15.5195 13 17 13ZM2 12V10H4V7C4 4.79086 5.79086 3 8 3H16C18.2091 3 20 4.79086 20 7V10H22V12H2Z"></path></svg>

+ 0 - 1
site/src/assets/svgs/ri-star-fill.svg

@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12.0006 18.26L4.94715 22.2082L6.52248 14.2799L0.587891 8.7918L8.61493 7.84006L12.0006 0.5L15.3862 7.84006L23.4132 8.7918L17.4787 14.2799L19.054 22.2082L12.0006 18.26Z"></path></svg>

+ 0 - 1
site/src/assets/svgs/ri-switch-fill.svg

@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13.62 21C13.5351 21 13.4786 20.9434 13.4927 20.8727V3.12726C13.4927 3.0707 13.5351 3.01414 13.6058 3.01414H16.3914C18.9366 3.01414 21.001 5.07855 21.001 7.62372V16.3904C21.001 18.9356 18.9366 21 16.3914 21H13.62ZM17.0418 11.0738C16.0379 11.0738 15.2178 11.894 15.2178 12.8979C15.2178 13.9018 16.0379 14.7219 17.0418 14.7219C18.0458 14.7219 18.8659 13.9018 18.8659 12.8979C18.8659 11.894 18.0458 11.0738 17.0418 11.0738ZM5.80066 8.40141C5.80066 7.46819 6.56421 6.70463 7.49744 6.70463C8.43067 6.70463 9.19422 7.46819 9.19422 8.40141C9.19422 9.33464 8.43067 10.0982 7.49744 10.0982C6.56421 10.0982 5.80066 9.33464 5.80066 8.40141ZM11.5414 3C11.6263 3 11.6828 3.05656 11.6687 3.12726V20.8586C11.6687 20.9293 11.6121 20.9859 11.5414 20.9859H7.61056C5.06539 20.9859 3.00098 18.9214 3.00098 16.3763V7.60958C3.00098 5.06441 5.06539 3 7.61056 3H11.5414ZM10.2264 19.5436V4.44226H7.61056C6.76217 4.44226 5.97034 4.78162 5.37647 5.37549C4.76846 5.96936 4.44324 6.76119 4.44324 7.60958V16.3763C4.44324 17.2247 4.78259 18.0165 5.37647 18.6104C5.97034 19.2184 6.76217 19.5436 7.61056 19.5436H10.2264Z"></path></svg>

+ 0 - 1
site/src/assets/svgs/ri-volume-down-line.svg

@@ -1 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 7.22056L9.60282 10.0001H6V14.0001H9.60282L13 16.7796V7.22056ZM8.88889 16.0001H5C4.44772 16.0001 4 15.5524 4 15.0001V9.00007C4 8.44778 4.44772 8.00007 5 8.00007H8.88889L14.1834 3.66821C14.3971 3.49335 14.7121 3.52485 14.887 3.73857C14.9601 3.8279 15 3.93977 15 4.05519V19.9449C15 20.2211 14.7761 20.4449 14.5 20.4449C14.3846 20.4449 14.2727 20.405 14.1834 20.3319L8.88889 16.0001ZM18.8631 16.5911L17.4411 15.1691C18.3892 14.4376 19 13.2902 19 12.0001C19 10.5697 18.2493 9.31476 17.1203 8.60766L18.5589 7.16906C20.0396 8.26166 21 10.0187 21 12.0001C21 13.8422 20.1698 15.4905 18.8631 16.5911Z"></path></svg>

+ 0 - 360
site/src/components/cmdk/CmdK.svelte

@@ -1,360 +0,0 @@
-<script>
-	import { onMount } from 'svelte';
-	import { fly, fade } from 'svelte/transition';
-	import { location, push, querystring } from 'svelte-spa-router';
-	import menuList from '../../../../demo/src/data/menuList';
-
-	import { isCmdKStore } from '../../store';
-
-	let menuChildList = []; //展开的菜单列表
-	let cmdKValue = ''; //cmd+k搜索框的值
-	let currentIndex = 0; //当前选中的索引
-	let currentTab = 0; //当前选中的tab
-	let cmdFocus = false; //cmd+k搜索框是否获取焦点
-	let cmdKInput = null; //cmd+k搜索框的dom
-	let latelyList = []; //最近使用的列表
-	let isDemoShake = false; //是否显示demo抖动动画
-	let isGuideShake = false; //是否显示guide抖动动画
-
-	const isZh = localStorage.getItem('lang') === 'zh_CN';
-
-	let params = new URLSearchParams('?' + $querystring);
-
-	$: cmdKList = cmdKValue === '' ? latelyList : menuChildList.filter(item => item.alias.indexOf(cmdKValue.toLowerCase()) > -1); //cmd+k搜索框的列表
-	$: currentMenu = cmdKList[currentIndex]; //当前选中的菜单
-
-	//cmd+k搜索框的事件
-	const cmdKFun = e => {
-		// 判断是Windows还是Mac,cmd+k在Windows下是ctrl+k,监听e.ctrlKey,Mac监听 metaKey
-		const isMac = /macintosh|mac os x/i.test(navigator.userAgent);
-		const isWindows = /windows|win32/i.test(navigator.userAgent);
-
-		//按下cmd+k触发事件
-		if (e.keyCode === 75 && ((isMac && e.metaKey) || (isWindows && e.ctrlKey))) {
-			latelyList = JSON.parse(localStorage.getItem('latelyList')) || [];
-			if ($isCmdKStore) {
-				isCmdKStore.set(false);
-				cmdFocus = false;
-			} else {
-				isCmdKStore.set(true);
-				cmdFocus = true;
-				cmdKValue = '';
-				currentIndex = 0;
-				currentTab = 0;
-				setTimeout(() => {
-					cmdKInput.focus();
-				}, 0);
-			}
-			e.preventDefault();
-		}
-		//按下esc触发事件
-		if ($isCmdKStore && e.keyCode === 27) {
-			// 阻止默认事件
-			e.preventDefault();
-			//如果搜索框没有获取焦点,按下esc获取焦点并选定搜索框的值
-			if (!cmdFocus) {
-				cmdFocus = true;
-				setTimeout(() => {
-					cmdKInput.focus();
-					cmdKInput.select();
-				}, 0);
-			} else {
-				isCmdKStore.set(false);
-				cmdFocus = false;
-			}
-		}
-
-		//显示cmd+k搜索框时,按下上下键触发事件
-		if ($isCmdKStore && (e.keyCode === 38 || e.keyCode === 40)) {
-			//阻止默认事件,防止下层滚动
-			e.preventDefault();
-			cmdFocus = false;
-			cmdKInput.blur();
-			if (e.keyCode === 38) {
-				if (currentIndex === 0 && currentTab === 0) {
-					isDemoShake = true;
-					setTimeout(() => {
-						isDemoShake = false;
-					}, 820);
-					return;
-				}
-				if (currentTab === 0) {
-					currentIndex = currentIndex === 0 ? cmdKList.length - 1 : currentIndex - 1;
-					currentTab = 2;
-				} else {
-					currentTab--;
-				}
-			}
-			if (e.keyCode === 40) {
-				if (currentIndex === cmdKList.length - 1 && currentTab === 2) {
-					isGuideShake = true;
-					setTimeout(() => {
-						isGuideShake = false;
-					}, 820);
-					return;
-				}
-				if (currentTab === 2) {
-					currentIndex = currentIndex === cmdKList.length - 1 ? 0 : currentIndex + 1;
-					currentTab = 0;
-				} else {
-					currentTab++;
-				}
-			}
-		}
-		//显示cmd+k搜索框时,按下回车键触发事件
-		if ($isCmdKStore && e.keyCode === 13) {
-			//将当前选中的菜单添加到最近使用的列表中,并存储到localStorage中,最多存储5条
-			if (latelyList.length === 0) {
-				latelyList.push(currentMenu);
-			} else {
-				let index = latelyList.findIndex(item => item.alias === currentMenu.alias);
-				if (index > -1) {
-					latelyList.splice(index, 1);
-				}
-				latelyList.unshift(currentMenu);
-				if (latelyList.length > 3) {
-					latelyList.pop();
-				}
-			}
-			localStorage.setItem('latelyList', JSON.stringify(latelyList));
-
-			isCmdKStore.set(false);
-			cmdFocus = false;
-			cmdKValue = '';
-			params.set('nav', currentMenu.nav);
-			// @ts-ignore
-			params.set('tab', currentTab);
-			push(`/components?nav=${currentMenu.nav}&tab=${currentTab}`);
-			if ($location === '/components') {
-				setTimeout(() => {
-					window.location.reload();
-				}, 0);
-			}
-		}
-	};
-	//点击搜索框的事件
-	const clickCmdKFun = (item, index) => {
-		//将当前选中的菜单添加到最近使用的列表中,并存储到localStorage中,最多存储5条
-		if (latelyList.length === 0) {
-			latelyList.push(item);
-		} else {
-			let index = latelyList.findIndex(item => item.alias === item.alias);
-			if (index > -1) {
-				latelyList.splice(index, 1);
-			}
-			latelyList.unshift(item);
-			if (latelyList.length > 3) {
-				latelyList.pop();
-			}
-		}
-		localStorage.setItem('latelyList', JSON.stringify(latelyList));
-
-		isCmdKStore.set(false);
-		cmdFocus = false;
-		cmdKValue = '';
-		params.set('nav', item.nav);
-		params.set('tab', index);
-		push(`/components?nav=${item.nav}&tab=${index}`);
-		if ($location === '/components') {
-			setTimeout(() => {
-				window.location.reload();
-			}, 0);
-		}
-	};
-	//关闭cmd+k搜索框
-	const closeCmdKFun = () => {
-		isCmdKStore.set(false);
-		cmdFocus = false;
-	};
-	$: {
-		if ($isCmdKStore) {
-			latelyList = JSON.parse(localStorage.getItem('latelyList')) || [];
-			isCmdKStore.set(true);
-			cmdFocus = true;
-			currentIndex = 0;
-			currentTab = 0;
-			setTimeout(() => {
-				cmdKInput.focus();
-			}, 0);
-		}
-	}
-	//数组二级组成新数组
-	const ArrChildFun = arr => {
-		let newArr = [];
-		for (let e = 0; e < arr.length; e++) {
-			newArr.push(...arr[e].childs);
-		}
-		return newArr;
-	};
-	onMount(() => {
-		menuChildList = ArrChildFun(menuList);
-	});
-</script>
-
-<svelte:window on:keydown={cmdKFun} />
-<!-- svelte-ignore a11y-click-events-have-key-events -->
-<!-- svelte-ignore a11y-no-static-element-interactions -->
-{#if $isCmdKStore}
-	<div
-		transition:fade={{ duration: 50 }}
-		class="fixed top-0 left-0 w-screen h-screen backdrop-blur bg-black/20 flex flex-col pt-20"
-		style="z-index: 10000"
-		on:click={closeCmdKFun}
-	>
-		<div
-			in:fly={{ y: 100, duration: 300, delay: 50 }}
-			class="bg-white dark:bg-black shadow-lg rounded-xl mx-auto w-1/2"
-			on:click|stopPropagation
-		>
-			<div class="flex items-center text-sm text-gray-500 py-3 px-4 border-b border-black/10 dark:border-white/10">
-				<div class="">
-					<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16" style="fill: currentColor;">
-						<path fill="none" d="M0 0h24v24H0z" />
-						<path
-							d="M11 2c4.968 0 9 4.032 9 9s-4.032 9-9 9-9-4.032-9-9 4.032-9 9-9zm0 16c3.867 0 7-3.133 7-7 0-3.868-3.133-7-7-7-3.868 0-7 3.132-7 7 0 3.867 3.132 7 7 7zm8.485.071l2.829 2.828-1.415 1.415-2.828-2.829 1.414-1.414z"
-						/>
-					</svg>
-				</div>
-				<div class="grow px-3 text-gray-800 dark:text-gray-200">
-					<input
-						bind:this={cmdKInput}
-						bind:value={cmdKValue}
-						class="w-full dark:bg-black focus:outline-none focus:ring-b caret-primary dark:caret-dark placeholder:text-black/20 dark:placeholder:text-white/10"
-						type="text"
-						placeholder={isZh ? '请输入组件关键字' : 'Please enter the component keyword'}
-					/>
-				</div>
-				<div class="border border-black/10 dark:border-white/10 py-1 px-2 rounded text-xs font-bold">ESC</div>
-			</div>
-			<div class="px-6 pb-6 overflow-y-auto" style="max-height: {(document.documentElement.clientHeight * 3) / 4}px">
-				{#if cmdKValue === ''}
-					<div class="text-xs mt-2 text-black/50 dark:text-white/30">
-						{#if latelyList.length === 0}
-							{isZh ? `最近无搜索,请输入关键字搜索。` : `No recent searches, please enter a keyword to search.`}
-						{:else}
-							{isZh ? `最近搜索 ${latelyList.length} 条结果` : `Recent search ${latelyList.length} results`}
-						{/if}
-					</div>
-				{/if}
-				{#if cmdKValue !== ''}
-					{#if cmdKList.length === 0}
-						<div class="text-xs mt-2 text-black/50 dark:text-white/30">
-							{isZh ? '没有搜索到结果' : 'No results found'}
-						</div>
-					{:else}
-						<div class="text-xs mt-2 text-black/50 dark:text-white/30">
-							{isZh
-								? `搜索到包含 "${cmdKValue}" 的 ${cmdKList.length} 条结果`
-								: `Found ${cmdKList.length} results containing "${cmdKValue}"`}
-						</div>
-					{/if}
-				{/if}
-				{#each cmdKList as item, index}
-					<div>
-						<div class="font-bold text-lg py-2 mt-4">{isZh ? item.title : item.title_en}</div>
-						<div class="border-l border-black/10 dark:border-white/10 pl-3">
-							<button
-								class="w-full py-2 pl-4 my-2 flex justify-between rounded cursor-pointer border {index === currentIndex && currentTab === 0
-									? 'border-primary dark:border-dark bg-primary dark:bg-dark text-white dark:text-black'
-									: 'border-primary-50 dark:border-dark-950 text-balck dark:text-white'}"
-								class:animate-shake={isDemoShake && index === 0}
-								on:click={() => clickCmdKFun(item, 0)}
-							>
-								<div>{isZh ? '示例' : 'Demo'}</div>
-								<div>
-									<svg
-										class={`${index === currentIndex && currentTab === 0 ? 'fill-white dark:fill-black' : 'fill-gray-500'}`}
-										xmlns="http://www.w3.org/2000/svg"
-										viewBox="0 0 24 24"
-										width="24"
-										height="24"
-									>
-										<path fill="none" d="M0 0h24v24H0z" />
-										<path d="M12.172 12L9.343 9.172l1.414-1.415L15 12l-4.243 4.243-1.414-1.415z" />
-									</svg>
-								</div>
-							</button>
-							<button
-								class="w-full py-2 pl-4 my-2 flex justify-between rounded cursor-pointer border {index === currentIndex && currentTab === 1
-									? 'border-primary dark:border-dark bg-primary dark:bg-dark text-white dark:text-black'
-									: 'border-primary-50 dark:border-dark-950 text-balck dark:text-white'}"
-								on:click={() => clickCmdKFun(item, 1)}
-							>
-								<div>API</div>
-								<div>
-									<svg
-										class={`${index === currentIndex && currentTab === 1 ? 'fill-white dark:fill-black' : 'fill-gray-500'}`}
-										xmlns="http://www.w3.org/2000/svg"
-										viewBox="0 0 24 24"
-										width="24"
-										height="24"
-									>
-										<path fill="none" d="M0 0h24v24H0z" />
-										<path d="M12.172 12L9.343 9.172l1.414-1.415L15 12l-4.243 4.243-1.414-1.415z" />
-									</svg>
-								</div>
-							</button>
-							<button
-								class="w-full py-2 pl-4 my-2 flex justify-between rounded cursor-pointer border {index === currentIndex && currentTab === 2
-									? 'border-primary dark:border-dark bg-primary dark:bg-dark text-white dark:text-black'
-									: 'border-primary-50 dark:border-dark-950 text-balck dark:text-white'}"
-								class:animate-shake={isGuideShake && index === cmdKList.length - 1}
-								on:click={() => clickCmdKFun(item, 2)}
-							>
-								<div>{isZh ? '指南' : 'Guide'}</div>
-								<div>
-									<svg
-										class={`${index === currentIndex && currentTab === 2 ? 'fill-white dark:fill-black' : 'fill-gray-500'}`}
-										xmlns="http://www.w3.org/2000/svg"
-										viewBox="0 0 24 24"
-										width="24"
-										height="24"
-									>
-										<path fill="none" d="M0 0h24v24H0z" />
-										<path d="M12.172 12L9.343 9.172l1.414-1.415L15 12l-4.243 4.243-1.414-1.415z" />
-									</svg>
-								</div>
-							</button>
-						</div>
-					</div>
-				{/each}
-			</div>
-			<div class="flex gap-4 px-4 py-2 text-xs opacity-60 border-t border-black/10 dark:border-white/10">
-				<div class="flex gap-1">
-					<div class="w-4 h-4">
-						<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="fill-black dark:fill-white">
-							<path
-								d="M19.0003 13.9999L19.0004 5.00003L17.0004 5L17.0003 11.9999L6.82845 12L10.7782 8.05027L9.36396 6.63606L3 13L9.36396 19.364L10.7782 17.9498L6.8284 14L19.0003 13.9999Z"
-							/>
-						</svg>
-					</div>
-					{isZh ? '选择' : 'Select'}
-				</div>
-				<div class="flex gap-1">
-					<div class="w-4 h-4">
-						<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="fill-black dark:fill-white"
-							><path
-								d="M12.9999 16.1716L18.3638 10.8076L19.778 12.2218L11.9999 20L4.22168 12.2218L5.63589 10.8076L10.9999 16.1716V4H12.9999V16.1716Z"
-							/></svg
-						>
-					</div>
-					{isZh ? '向下' : 'Down'}
-				</div>
-				<div class="flex gap-1">
-					<div class="w-4 h-4">
-						<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="fill-black dark:fill-white"
-							><path
-								d="M12.9999 7.82843V20H10.9999V7.82843L5.63589 13.1924L4.22168 11.7782L11.9999 4L19.778 11.7782L18.3638 13.1924L12.9999 7.82843Z"
-							/></svg
-						>
-					</div>
-					{isZh ? '向上' : 'Up'}
-				</div>
-				<div class="flex gap-1">
-					<div class="h-4">ESC</div>
-					{isZh ? '关闭' : 'Close'}
-				</div>
-			</div>
-		</div>
-	</div>
-{/if}

+ 0 - 29
site/src/components/colorCard/ColorCard.svelte

@@ -1,29 +0,0 @@
-<script>
-	import Color from 'color';
-	let { colorList = [] } = $props();
-
-	// 传入 hsl(222, 100%, 98%) 这种字符,将其中的数字四舍五入取整后返回字符
-	const getHslFunc = str => {
-		const arr = str.split(',');
-		const h = Math.round(Number(arr[0].split('(')[1]));
-		const s = Math.round(Number(arr[1].split('%')[0]));
-		const l = Math.round(Number(arr[2].split('%')[0]));
-		return `hsl(${h}, ${s}%, ${l}%)`;
-	};
-</script>
-
-{#each colorList as color, index}
-	<div
-		class="flex-1 flex justify-between self-center w-full px-4 md:py-0 transition hover:scale-105 hover:rounded {index > 5
-			? 'text-white'
-			: 'text-black'}"
-		style="background-color: {color.hex};"
-	>
-		<div class="flex flex-col justify-center text-sm">{color.key}</div>
-		<div class="mt-2 flex flex-col justify-center text-right py-1 text-xs">
-			<div>{color.hex || ''}</div>
-			<div>{Color(color.hex).rgb().string()}</div>
-			<div>{getHslFunc(Color(color.hex).hsl().string())}</div>
-		</div>
-	</div>
-{/each}

+ 0 - 214
site/src/components/fund/Fund.svelte

@@ -1,214 +0,0 @@
-<script>
-	import { fly, fade } from 'svelte/transition';
-	import { isShowFundStore } from '../../store';
-
-	const isZh = localStorage.getItem('lang') === 'zh_CN';
-
-	let showWeChatPay = false;
-	let showAlipayPay = false;
-
-	// 判断是否是桌面设备
-	const isDeskDeviceFunc = () => {
-		return window.innerWidth >= 768;
-	};
-	const isDeskDevice = isDeskDeviceFunc();
-</script>
-
-<!-- svelte-ignore a11y-click-events-have-key-events -->
-<!-- svelte-ignore a11y-no-static-element-interactions -->
-<div
-	transition:fade
-	class="fixed top-0 left-0 w-screen h-screen backdrop-blur bg-black/20 flex flex-col justify-center"
-	style="z-index: 1000"
-	on:click={() => {
-		isShowFundStore.set(false);
-	}}
->
-	<div
-		in:fly={{ y: -400 }}
-		class="bg-white dark:bg-gray-950 shadow-lg rounded-xl mx-auto w-full md:w-[800px] p-4 md:p-8"
-		on:click|stopPropagation
-	>
-		<div class="flex justify-between">
-			<div class="text-xl font-bold">{isZh ? '支持' : 'Support'}</div>
-			<div class="h-8">
-				<a href="https://github.com/any-tdf/stdf" target="_blank">
-					<img src="https://img.shields.io/github/stars/any-tdf/stdf?logo=github&label=stars&color=000" alt="GitHub" />
-				</a>
-			</div>
-		</div>
-		{#if isDeskDevice || (!showWeChatPay && !showAlipayPay)}
-			<div class="mt-2 md:mt-8 text-xs text-gray-500">
-				<p>
-					{isZh
-						? 'STDF 是一个免费开源、使用简单但很用心的组件库,在组件设计与开发、配套工具的提供、文档站点运营等方面投入了大量的时间、物力和精力。如果 STDF 确实给您带去了方便,希望您不吝啬您的喜爱之情支持 STDF 的工作,给一个 star 或打赏,非常感谢!'
-						: 'STDF is a free and open source, easy to use but very attentive component library, which has invested a lot of time, material and energy in component design and development, supporting tool provision, document site operation, etc. If STDF does bring you convenience, I hope you will not hesitate to support STDF work with your love, give a star or reward, thank you very much!'}
-				</p>
-				<p class="mt-2 text-md font-bold">
-					{isZh ? '无论如何,STDF 都会出于热爱并继续努力!' : 'In any case, STDF will continue to work hard out of love!'}
-				</p>
-			</div>
-		{/if}
-		<div class="grid {showWeChatPay || showAlipayPay ? 'grid-cols-1' : 'grid-cols-2'}  md:grid-cols-4 gap-2 mt-4 md:mt-10 text-center">
-			<!-- coffee -->
-			{#if isDeskDevice || (!showWeChatPay && !showAlipayPay)}
-				<div
-					class="border border-black/10 dark:border-white/10 rounded-lg w-full md:w-40 flex flex-col justify-center py-1 md:py-12 group md:relative"
-				>
-					<div class="h-8 w-6 mx-auto">
-						<img class="w-full h-full object-cover" src="/assets/fund/coffee.svg" alt="coffee" />
-					</div>
-					<a class="block md:hidden mx-2" href="https://www.buymeacoffee.com/dufu1991" target="_blank">
-						<div class="text-center font-bold after:content-['_↗']">Buy Me a Coffee</div>
-						<div class="mt-1 text-xs text-gray-500">
-							{isZh ? '推荐非中国地区使用' : 'Recommended for Non-China Regions'}
-						</div>
-					</a>
-					<a
-						class="hidden md:block absolute inset-1 bg-white dark:bg-gray-950 w-[95%] h-[95%] px-1 py-12 transition-all duration-500 opacity-0 group-hover:opacity-95"
-						href="https://www.buymeacoffee.com/dufu1991"
-						target="_blank"
-					>
-						<div class="text-center font-bold after:content-['_↗']">Buy Me a Coffee</div>
-						<div class="mt-1 text-xs text-gray-500">
-							{isZh ? '推荐非中国地区使用' : 'Recommended for Non-China Regions'}
-						</div>
-					</a>
-				</div>
-			{/if}
-			<!-- paypal -->
-			{#if isDeskDevice || (!showWeChatPay && !showAlipayPay)}
-				<div
-					class="border border-black/10 dark:border-white/10 rounded-lg w-full md:w-40 flex flex-col justify-center py-1 md:py-12 group md:relative"
-				>
-					<div class="h-8 w-8 mx-auto">
-						<img class="w-full h-full object-cover" src="/assets/fund/paypal.svg" alt="paypal" />
-					</div>
-					<a class="block md:hidden mx-2" href="https://paypal.me/dufu1991" target="_blank">
-						<div class="text-center font-bold after:content-['_↗']">PayPal</div>
-						<div class="mt-1 text-xs text-gray-500">
-							{isZh ? '推荐非中国地区使用' : 'Recommended for Non-China Regions'}
-						</div>
-					</a>
-					<a
-						class="hidden md:block absolute inset-1 bg-white dark:bg-gray-950 w-[95%] h-[95%] px-1 py-12 transition-all duration-500 opacity-0 group-hover:opacity-95"
-						href="https://paypal.me/dufu1991"
-						target="_blank"
-					>
-						<div class="text-center font-bold after:content-['_↗']">PayPal</div>
-						<div class="mt-1 text-xs text-gray-500">
-							{isZh ? '推荐非中国地区使用' : 'Recommended for Non-China Regions'}
-						</div>
-					</a>
-				</div>
-			{/if}
-			<!-- wechat -->
-			{#if isDeskDevice || !showAlipayPay}
-				<div
-					class="border border-black/10 dark:border-white/10 rounded-lg w-full md:w-40 flex flex-col justify-center py-1 md:py-12 group md:relative"
-				>
-					<div class="h-8 w-10 mx-auto" class:hidden={showWeChatPay}>
-						<img class="w-full h-full object-cover" src="/assets/fund/wechat_pay.svg" alt="wechat" />
-					</div>
-					<div
-						class="block md:hidden mx-2"
-						on:click={() => {
-							showWeChatPay = !showWeChatPay;
-						}}
-					>
-						{#if showWeChatPay}
-							<div class="mt-1">
-								<img class="w-3/5 mx-auto object-cover" src="/assets/fund/wp_code.png" alt="wechat" />
-							</div>
-							<div class="text-xs text-gray-500 mt-1">
-								{isZh ? '微信扫一扫' : 'WeChat Scan'}
-							</div>
-						{:else}
-							<div class="text-center font-bold after:content-['_↗']">{isZh ? '微信赞赏' : 'WeChat Reward'}</div>
-							<div class="mt-1 text-xs text-gray-500">
-								{isZh ? '推荐中国地区使用' : 'Recommended for China Regions'}
-							</div>
-						{/if}
-					</div>
-					<button
-						on:click={() => {
-							showWeChatPay = !showWeChatPay;
-						}}
-						class="hidden md:block absolute cursor-pointer inset-1 bg-white dark:bg-gray-950 w-[95%] h-[95%] px-1 transition-all duration-500 opacity-0 group-hover:opacity-95"
-						class:opacity-95={showWeChatPay}
-					>
-						{#if showWeChatPay}
-							<div class="mt-0.5">
-								<img class="w-[70%] mx-auto object-cover" src="/assets/fund/wp_code.png" alt="wechat" />
-							</div>
-							<div class="text-xs text-gray-500 mt-0.5">
-								{isZh ? '微信扫一扫' : 'WeChat Scan'}
-							</div>
-						{:else}
-							<div class="text-center font-bold after:content-['_↗'] mt-12">{isZh ? '微信赞赏' : 'WeChat Reward'}</div>
-							<div class="mt-1 text-xs text-gray-500">
-								{isZh ? '推荐中国地区使用' : 'Recommended for China Regions'}
-							</div>
-						{/if}
-					</button>
-				</div>
-			{/if}
-			<!-- alipay -->
-			{#if isDeskDevice || !showWeChatPay}
-				<div
-					class="border border-black/10 dark:border-white/10 rounded-lg w-full mx-auto md:w-40 flex flex-col justify-center py-1 md:py-12 group md:relative"
-				>
-					<div class="h-8 w-8 mx-auto" class:hidden={showAlipayPay}>
-						<img class="w-full h-full object-cover" src="/assets/fund/alipay.svg" alt="alipay" />
-					</div>
-					<div
-						class="block md:hidden mx-2"
-						on:click={() => {
-							showAlipayPay = !showAlipayPay;
-						}}
-					>
-						{#if showAlipayPay}
-							<div class="m-1">
-								<img class="w-3/5 mx-auto object-cover" src="/assets/fund/ap_code.png" alt="alipay" />
-							</div>
-							<div class="text-xs text-gray-500 mt-1">
-								{isZh ? '支付宝扫一扫' : 'Alipay Scan'}
-							</div>
-						{:else}
-							<div class="text-center font-bold after:content-['_↗']">{isZh ? '支付宝收款' : 'Alipay Payment'}</div>
-							<div class="mt-1 text-xs text-gray-500">
-								{isZh ? '推荐中国地区使用' : 'Recommended for China Regions'}
-							</div>
-						{/if}
-					</div>
-					<button
-						on:click={() => {
-							showAlipayPay = !showAlipayPay;
-						}}
-						class="hidden md:block absolute cursor-pointer inset-1 bg-white dark:bg-gray-950 w-[95%] h-[95%] px-1 transition-all duration-500 opacity-0 group-hover:opacity-95"
-						class:opacity-95={showAlipayPay}
-					>
-						{#if showAlipayPay}
-							<div class="mt-0.5">
-								<img class="w-[70%] mx-auto object-cover" src="/assets/fund/ap_code.png" alt="wechat" />
-							</div>
-							<div class="text-xs text-gray-500 mt-0.5">
-								{isZh ? '支付宝扫一扫' : 'Alipay Scan'}
-							</div>
-						{:else}
-							<div class="text-center font-bold after:content-['_↗'] mt-12">{isZh ? '支付宝收款' : 'Alipay Payment'}</div>
-							<div class="mt-1 text-xs text-gray-500">
-								{isZh ? '推荐中国地区使用' : 'Recommended for China Regions'}
-							</div>
-						{/if}
-					</button>
-				</div>
-			{/if}
-		</div>
-		<div class="mt-4 md:mt-8 text-xs text-gray-500">
-			{isZh
-				? '如果愿意的话,捐赠留言请注明 GitHub 或其他社交账号或相关链接地址,STDF 将在仓库与站点展示并感谢您们!'
-				: 'If you are willing, please leave a message for donation with your GitHub or other social account or related link address. STDF will display and thank you in the warehouse and website!'}
-		</div>
-	</div>
-</div>

+ 0 - 286
site/src/components/header/Header.svelte

@@ -1,286 +0,0 @@
-<script>
-	import { afterUpdate, createEventDispatcher } from 'svelte';
-	import { slide } from 'svelte/transition';
-	import { location } from 'svelte-spa-router';
-	import ModeSwitch from '../modeSwitch/ModeSwitch.svelte';
-	import ThemeSwitch from '../themeSwitch/ThemeSwitch.svelte';
-	import { isShowNavStore, isShowFundStore, showThemeSwitchStore } from '../../store';
-
-	let currentRoute = '/guide';
-	afterUpdate(() => {
-		currentRoute = $location;
-	});
-	export let showLeftNav = false; //是否显示左侧导航
-	export let showBottonLine = false;
-	let showNav = false; //是否显示导航
-	const toggleNavFun = () => {
-		isShowNavStore.set(!$isShowNavStore);
-	};
-	//判断是Mac系统
-	const isMac = navigator.userAgent.toUpperCase().indexOf('MAC') >= 0;
-	const cmdkey = isMac ? '⌘' : 'Ctrl';
-	const isZh = localStorage.getItem('lang') === 'zh_CN';
-
-	const dispatch = createEventDispatcher(); //创建事件派发器
-	const clickCmdKFun = () => {
-		dispatch('clickCmdK');
-	};
-	// 切换语言
-	const toggleLangFunc = () => {
-		// 获取当前页面地址
-		const currentUrl = window.location.href;
-		// url 是否包含参数 ?
-		const hasQuery = currentUrl.includes('?');
-		// 刷新 url,如果当前语言为中文,则跳转至英文,反之亦然,拼接 currentUrl + ?lang=${isZh?'en_US':'zh_CN'}
-		window.location.href = `${currentUrl}${hasQuery ? '&' : '?'}lang=${isZh ? 'en_US' : 'zh_CN'}`;
-		setTimeout(() => {
-			window.location.reload();
-		}, 120);
-	};
-	// 切换支持
-	const toggleFundFunc = () => {
-		isShowFundStore.set(true);
-	};
-	// 显示主题切换
-	const showThemeFunc = () => {
-		showThemeSwitchStore.set(!$showThemeSwitchStore);
-	};
-	let ThemeSwitchDom = null;
-	// 监听window点击事件,如果点击的不是 ThemeSwitchDom,则隐藏主题切换
-	window.addEventListener('click', e => {
-		if (ThemeSwitchDom && !ThemeSwitchDom.contains(e.target)) {
-			showThemeSwitchStore.set(false);
-		}
-	});
-</script>
-
-<div
-	class={`${
-		showBottonLine ? 'border-b border-black/10 dark:border-white/10 ' : ''
-	}flex items-center justify-between sticky h-14 top-0 backdrop-blur z-[100]`}
-	aria-label="Global"
->
-	{#if showLeftNav}
-		<!-- svelte-ignore a11y-click-events-have-key-events -->
-		<!-- svelte-ignore a11y-no-static-element-interactions -->
-		<div class="cursor-pointer md:hidden p-4" on:click={toggleNavFun}>
-			{#if !$isShowNavStore}
-				<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
-					<path d="M21.0001 4.50004L7.50007 4.5L7.50006 6L21.0001 6.00004V4.50004Z" fill="currentColor" />
-					<path d="M5.25007 4.5L3.00098 4.5L3.00098 6L5.25007 6V4.5Z" fill="currentColor" />
-					<path d="M7.50007 11.2501L21.0001 11.2501V12.7501L7.50006 12.7501L7.50007 11.2501Z" fill="currentColor" />
-					<path d="M3.00098 11.2501H5.25007V12.7501H3.00098L3.00098 11.2501Z" fill="currentColor" />
-					<path d="M7.50007 18L21.0001 18V19.5L7.50006 19.5L7.50007 18Z" fill="currentColor" />
-					<path d="M3.00098 18H5.25007V19.5H3.00098L3.00098 18Z" fill="currentColor" />
-				</svg>
-			{:else}
-				<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
-					<path
-						fill="currentColor"
-						d="M10.4143 4.58594L10.4142 11.0003L16.0003 11.0004L16.0003 13.0004L10.4142 13.0003L10.4141 19.4144L3 12.0002L10.4143 4.58594ZM18.0002 19.0002V5.00018H20.0002V19.0002H18.0002Z"
-					/>
-				</svg>
-			{/if}
-		</div>
-	{/if}
-	<a href="#/" class="flex items-center justify-between px-6 py-2">
-		<div class="w-16 h-8 fill-primary flex flex-col justify-center items-center" title={isZh ? '首页' : 'Home'}>
-			<svg viewBox="0 0 90 80">
-				<path
-					class="fill-primary dark:fill-dark"
-					d="M0 0H20H40H50C64.8056 0 77.7325 8.04398 84.6487 20H50H40V22.6757V30H50C55.5229 30 60 34.4771 60 40C60 45.5229 55.5229 50 50 50H40V57.3243V78.7398V80H20V66.4583V20H15.3513H0V0ZM50 80C72.0914 80 90 62.0914 90 40C90 36.547 89.5625 33.1962 88.7398 30H67.3244C69.0261 32.9417 70 36.3571 70 40C70 51.0457 61.0457 60 50 60V80Z"
-				/>
-				<path class="fill-dark dark:fill-primary" d="M20 30V0L0 50H20V80L40 30H20Z" />
-			</svg>
-		</div>
-	</a>
-	<div>
-		<div class="cursor-pointer md:hidden p-4">
-			<!-- svelte-ignore a11y-click-events-have-key-events -->
-			<!-- svelte-ignore a11y-no-static-element-interactions -->
-			<div
-				on:click={() => {
-					showNav = !showNav;
-				}}
-			>
-				{#if !showNav}
-					<svg width="24" height="24" fill="none" aria-hidden="true" xmlns="http://www.w3.org/2000/svg">
-						<path
-							d="M12 6v.01M12 12v.01M12 18v.01M12 7a1 1 0 1 1 0-2 1 1 0 0 1 0 2Zm0 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Zm0 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"
-							stroke="currentColor"
-							stroke-width="1.5"
-							stroke-linecap="round"
-							stroke-linejoin="round"
-						/>
-					</svg>
-				{:else}
-					<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
-						<path
-							fill="currentColor"
-							d="M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM12 10.5858L14.8284 7.75736L16.2426 9.17157L13.4142 12L16.2426 14.8284L14.8284 16.2426L12 13.4142L9.17157 16.2426L7.75736 14.8284L10.5858 12L7.75736 9.17157L9.17157 7.75736L12 10.5858Z"
-						/>
-					</svg>
-				{/if}
-			</div>
-			{#if showNav}
-				<!-- 移动端 -->
-				<div
-					class="flex flex-col absolute top-16 right-2 backdrop-blur bg-white dark:bg-gray-950 text-center rounded border border-black/10 dark:border-white/20 shadow-lg dark:shadow-white/20 p-1 pt-4 space-y-4 font-bold"
-				>
-					<a
-						href="#/guide"
-						class="rounded hover:bg-gray-100 dark:hover:bg-gray-700 px-4 py-1"
-						class:bg-gray-100={currentRoute === '/guide'}
-						class:dark:bg-gray-500={currentRoute === '/guide'}>{isZh ? '指南' : 'Guide'}</a
-					>
-					<a
-						href="#/components?nav=button&tab=0"
-						class="rounded hover:bg-gray-100 dark:hover:bg-gray-700 px-4 py-1"
-						class:bg-gray-100={currentRoute === '/components'}
-						class:dark:bg-gray-500={currentRoute === '/components'}>{isZh ? '组件' : 'Components'}</a
-					>
-					<!-- svelte-ignore a11y-click-events-have-key-events -->
-					<!-- svelte-ignore a11y-no-static-element-interactions -->
-					<button
-						class="rounded hover:bg-gray-100 dark:hover:bg-gray-700 px-4 py-1 relative"
-						on:click={showThemeFunc}
-						bind:this={ThemeSwitchDom}
-					>
-						{isZh ? '主题' : 'Theme'}
-						{#if $showThemeSwitchStore}
-							<div
-								transition:slide={{ duration: 300, axis: 'y' }}
-								class="absolute top-0 right-4 bg-white dark:bg-black/95 p-4 rounded-lg shadow-lg dark:shadow-white/10"
-							>
-								<ModeSwitch />
-								<ThemeSwitch vertical />
-							</div>
-						{/if}
-					</button>
-					<!-- svelte-ignore a11y-click-events-have-key-events -->
-					<!-- svelte-ignore a11y-no-static-element-interactions -->
-					<div class="rounded hover:bg-gray-100 dark:hover:bg-gray-700 px-4 py-1 text-center" on:click={toggleFundFunc}>
-						{isZh ? '支持' : 'Support'}
-					</div>
-
-					<!-- 语言切换 -->
-					<!-- svelte-ignore a11y-click-events-have-key-events -->
-					<!-- svelte-ignore a11y-no-static-element-interactions -->
-					<div class="rounded hover:bg-gray-100 dark:hover:bg-gray-700 px-4 py-1 text-center" on:click={toggleLangFunc}>
-						<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" class="inline-block">
-							<path fill="none" d="M0 0h24v24H0z" />
-							<path
-								fill="currentColor"
-								d="M5 15v2a2 2 0 0 0 1.85 1.995L7 19h3v2H7a4 4 0 0 1-4-4v-2h2zm13-5l4.4 11h-2.155l-1.201-3h-4.09l-1.199 3h-2.154L16 10h2zm-1 2.885L15.753 16h2.492L17 12.885zM8 2v2h4v7H8v3H6v-3H2V4h4V2h2zm9 1a4 4 0 0 1 4 4v2h-2V7a2 2 0 0 0-2-2h-3V3h3zM6 6H4v3h2V6zm4 0H8v3h2V6z"
-							/>
-						</svg>
-					</div>
-					<!-- GitHub -->
-					<a
-						href="https://github.com/any-tdf/stdf"
-						class="rounded hover:bg-gray-100 dark:hover:bg-gray-700 px-4 py-1 text-center"
-						target="_blank"
-					>
-						<svg width="20" height="20" viewBox="0 0 24 24" class="inline-block" xmlns="http://www.w3.org/2000/svg">
-							<path
-								fill-rule="evenodd"
-								clip-rule="evenodd"
-								d="M12 2.23999C6.475 2.23999 2 6.71499 2 12.24C2 16.665 4.8625 20.4025 8.8375 21.7275C9.3375 21.815 9.525 21.515 9.525 21.2525C9.525 21.015 9.5125 20.2275 9.5125 19.39C7 19.8525 6.35 18.7775 6.15 18.215C6.0375 17.9275 5.55 17.04 5.125 16.8025C4.775 16.615 4.275 16.1525 5.1125 16.14C5.9 16.1275 6.4625 16.865 6.65 17.165C7.55 18.6775 8.9875 18.2525 9.5625 17.99C9.65 17.34 9.9125 16.9025 10.2 16.6525C7.975 16.4025 5.65 15.54 5.65 11.715C5.65 10.6275 6.0375 9.72749 6.675 9.02749C6.575 8.77749 6.225 7.75249 6.775 6.37749C6.775 6.37749 7.6125 6.11499 9.525 7.40249C10.325 7.17749 11.175 7.06499 12.025 7.06499C12.875 7.06499 13.725 7.17749 14.525 7.40249C16.4375 6.10249 17.275 6.37749 17.275 6.37749C17.825 7.75249 17.475 8.77749 17.375 9.02749C18.0125 9.72749 18.4 10.615 18.4 11.715C18.4 15.5525 16.0625 16.4025 13.8375 16.6525C14.2 16.965 14.5125 17.565 14.5125 18.5025C14.5125 19.84 14.5 20.915 14.5 21.2525C14.5 21.515 14.6875 21.8275 15.1875 21.7275C17.1727 21.0573 18.8977 19.7815 20.1198 18.0795C21.3419 16.3776 21.9995 14.3352 22 12.24C22 6.71499 17.525 2.23999 12 2.23999Z"
-								fill="currentColor"
-							/>
-						</svg>
-					</a>
-				</div>
-			{/if}
-		</div>
-		<!--PC 端-->
-		<div class="hidden md:flex items-center px-6 space-x-2 font-bold">
-			<button
-				class="rounded px-2 border border-black/10 dark:border-white/10 hover:border-black/20 dark:hover:border-white/20 cursor-pointer transition-all flex text-black/40 dark:text-white/40 font-normal text-sm"
-				style="padding-top: 0.3125rem;padding-bottom: 0.3125rem;"
-				on:click={clickCmdKFun}
-			>
-				<div class="mr-1.5 flex flex-col justify-center">
-					<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="16" height="16" style="fill: currentColor;">
-						<path fill="none" d="M0 0h24v24H0z" />
-						<path
-							d="M11 2c4.968 0 9 4.032 9 9s-4.032 9-9 9-9-4.032-9-9 4.032-9 9-9zm0 16c3.867 0 7-3.133 7-7 0-3.868-3.133-7-7-7-3.868 0-7 3.132-7 7 0 3.867 3.132 7 7 7zm8.485.071l2.829 2.828-1.415 1.415-2.828-2.829 1.414-1.414z"
-						/>
-					</svg>
-				</div>
-				<div class="mr-4 text-xs flex flex-col justify-center">{isZh ? '快速搜索...' : 'Quick search...'}</div>
-				<div class="bg-black/5 dark:bg-white/5 rounded px-1 mr-1 font-bold">{cmdkey}</div>
-				<div class="bg-black/5 dark:bg-white/5 rounded px-1.5 font-bold">K</div>
-			</button>
-			<a
-				href="#/guide"
-				class={`rounded px-4 py-1 transition-all ${
-					currentRoute === '/guide' ? 'bg-primary dark:bg-dark text-white dark:text-black' : 'hover:bg-black/5 dark:hover:bg-white/5'
-				}`}
-			>
-				{isZh ? '指南' : 'Guide'}
-			</a>
-			<a
-				href="#/components?nav=button&tab=0"
-				class={`rounded px-4 py-1 text-center inline-block transition-all ${
-					currentRoute === '/components' ? 'bg-primary dark:bg-dark text-white dark:text-black' : 'hover:bg-black/5 dark:hover:bg-white/5'
-				}`}
-			>
-				{isZh ? '组件' : 'Components'}
-			</a>
-			<button
-				class="rounded px-4 py-1 text-center cursor-pointer hover:bg-black/5 dark:hover:bg-white/5 transition-all relative"
-				on:click={showThemeFunc}
-				bind:this={ThemeSwitchDom}
-			>
-				{isZh ? '主题' : 'Theme'}
-				{#if $showThemeSwitchStore}
-					<div
-						transition:slide={{ duration: 300, axis: 'y' }}
-						class="absolute top-10 left-1/2 bg-white dark:bg-black/95 p-4 rounded-lg -translate-x-1/2 shadow-lg dark:shadow-white/10"
-					>
-						<ModeSwitch />
-						<ThemeSwitch vertical />
-					</div>
-				{/if}
-			</button>
-			<button
-				class="rounded hover:bg-black/5 dark:hover:bg-white/5 px-4 py-1 text-center cursor-pointer transition-all"
-				title={isZh ? '支持' : 'Support'}
-				on:click={toggleFundFunc}
-			>
-				{isZh ? '支持' : 'Support'}
-			</button>
-			<!-- 语言切换 -->
-			<button
-				on:click={toggleLangFunc}
-				title={isZh ? '切换语言' : 'Switch languages'}
-				class="rounded hover:bg-black/5 dark:hover:bg-white/5 px-4 py-1 text-center cursor-pointer transition-all"
-			>
-				<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" class="inline-block">
-					<path fill="none" d="M0 0h24v24H0z" />
-					<path
-						fill="currentColor"
-						d="M5 15v2a2 2 0 0 0 1.85 1.995L7 19h3v2H7a4 4 0 0 1-4-4v-2h2zm13-5l4.4 11h-2.155l-1.201-3h-4.09l-1.199 3h-2.154L16 10h2zm-1 2.885L15.753 16h2.492L17 12.885zM8 2v2h4v7H8v3H6v-3H2V4h4V2h2zm9 1a4 4 0 0 1 4 4v2h-2V7a2 2 0 0 0-2-2h-3V3h3zM6 6H4v3h2V6zm4 0H8v3h2V6z"
-					/>
-				</svg>
-			</button>
-			<!-- GitHub -->
-			<a
-				href="https://github.com/any-tdf/stdf"
-				class="rounded hover:bg-black/5 dark:hover:bg-white/5 px-4 py-1 inline-block transition-all"
-				target="_blank"
-				title={isZh ? '跳转至 GitHub' : 'Jump to GitHub'}
-			>
-				<svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" class="inline-block">
-					<path
-						fill-rule="evenodd"
-						clip-rule="evenodd"
-						d="M12 2.23999C6.475 2.23999 2 6.71499 2 12.24C2 16.665 4.8625 20.4025 8.8375 21.7275C9.3375 21.815 9.525 21.515 9.525 21.2525C9.525 21.015 9.5125 20.2275 9.5125 19.39C7 19.8525 6.35 18.7775 6.15 18.215C6.0375 17.9275 5.55 17.04 5.125 16.8025C4.775 16.615 4.275 16.1525 5.1125 16.14C5.9 16.1275 6.4625 16.865 6.65 17.165C7.55 18.6775 8.9875 18.2525 9.5625 17.99C9.65 17.34 9.9125 16.9025 10.2 16.6525C7.975 16.4025 5.65 15.54 5.65 11.715C5.65 10.6275 6.0375 9.72749 6.675 9.02749C6.575 8.77749 6.225 7.75249 6.775 6.37749C6.775 6.37749 7.6125 6.11499 9.525 7.40249C10.325 7.17749 11.175 7.06499 12.025 7.06499C12.875 7.06499 13.725 7.17749 14.525 7.40249C16.4375 6.10249 17.275 6.37749 17.275 6.37749C17.825 7.75249 17.475 8.77749 17.375 9.02749C18.0125 9.72749 18.4 10.615 18.4 11.715C18.4 15.5525 16.0625 16.4025 13.8375 16.6525C14.2 16.965 14.5125 17.565 14.5125 18.5025C14.5125 19.84 14.5 20.915 14.5 21.2525C14.5 21.515 14.6875 21.8275 15.1875 21.7275C17.1727 21.0573 18.8977 19.7815 20.1198 18.0795C21.3419 16.3776 21.9995 14.3352 22 12.24C22 6.71499 17.525 2.23999 12 2.23999Z"
-						fill="currentColor"
-					/>
-				</svg>
-			</a>
-		</div>
-	</div>
-</div>

+ 0 - 37
site/src/components/menu/Menu.svelte

@@ -1,37 +0,0 @@
-<script>
-	// @ts-nocheck
-	import { createEventDispatcher } from 'svelte';
-
-	const dispatch = createEventDispatcher();
-	export let currentNav = '';
-	export let showNum = true;
-	const setClick = menu => {
-		currentNav = menu.nav;
-		dispatch('MenuClick', menu);
-	};
-	export let menuList = [];
-	const isZh = localStorage.getItem('lang') === 'zh_CN';
-</script>
-
-<div class="flex flex-col px-2 py-4">
-	<span class="text-gray-500 text-xs pb-3">
-		{isZh ? '最近更新:' : 'Last update:'}
-		<br />
-		{isZh ? import.meta.env.VITE_BUILD_TIME_ZH : import.meta.env.VITE_BUILD_TIME_EN}
-	</span>
-	{#each menuList as menu}
-		<div class="text-xs">{isZh ? menu.class : menu.class_en}{showNum ? `(${menu.childs.length})` : ''}</div>
-		<div class="flex flex-col ml-1 pr-0 my-2">
-			{#each menu.childs as child, i}
-				<button
-					on:click|preventDefault|self={() => setClick(child)}
-					class={`cursor-pointer transition-all pl-2 py-2 text-left hover:font-bold border-l-2 text-sm box-content ${
-						child.nav === currentNav ? 'border-primary dark:border-dark font-bold text-primary dark:text-dark' : ''
-					}`}
-				>
-					{isZh ? child.title : child.title_en}
-				</button>
-			{/each}
-		</div>
-	{/each}
-</div>

+ 0 - 162
site/src/components/modeSwitch/ModeSwitch.svelte

@@ -1,162 +0,0 @@
-<script>
-	import darkMode from './darkMode';
-	import { themeStore, sysThemeStore, currentThemeStore } from '../../store';
-	let isClick = false;
-	//手动切换主题
-	const toggleFun = e => {
-		// 阻止冒泡
-		e.stopPropagation();
-		isClick = true;
-		setTimeout(() => {
-			isClick = false;
-		}, 150);
-		if ($themeStore === 'light') {
-			// 切换到dark
-			themeStore.set('dark');
-			currentThemeStore.set('dark');
-			localStorage.setItem('theme', 'dark');
-			darkMode(true, e);
-		} else if ($themeStore === 'dark') {
-			// 切换到auto
-			themeStore.set('auto');
-			localStorage.setItem('theme', 'auto');
-			if ($sysThemeStore === 'dark') {
-				// 系统是暗模式
-				darkMode(true, e);
-				currentThemeStore.set('dark');
-			} else {
-				darkMode(false, e);
-				currentThemeStore.set('light');
-			}
-		} else {
-			// 切换到light
-			themeStore.set('light');
-			currentThemeStore.set('light');
-			localStorage.setItem('theme', 'light');
-			darkMode(false, e);
-		}
-	};
-	//auto 时,监听系统主题
-	const mql = window.matchMedia('(prefers-color-scheme: dark)');
-	mql.addEventListener('change', e => {
-		if ($themeStore === 'auto') {
-			if (e.matches) {
-				// 系统是暗模式
-				darkMode(true, e);
-				sysThemeStore.set('dark');
-				currentThemeStore.set('dark');
-			} else {
-				darkMode(false, e);
-				sysThemeStore.set('light');
-				currentThemeStore.set('light');
-			}
-		}
-	});
-	const isZh = localStorage.getItem('lang') === 'zh_CN';
-</script>
-
-<!-- svelte-ignore a11y-click-events-have-key-events -->
-<!-- svelte-ignore a11y-no-static-element-interactions -->
-<button
-	class="flex justify-between cursor-pointer rounded p-0.5 bg-black/5 dark:bg-white/10 text-center w-28 mx-auto"
-	title={isZh
-		? `${$themeStore === 'light' ? '亮模式' : $themeStore === 'dark' ? '暗模式' : '跟随系统'}`
-		: `${$themeStore === 'light' ? 'Light' : $themeStore === 'dark' ? 'Dark' : 'System'}`}
-	on:click={toggleFun}
->
-	<div
-		class:scale-75={isClick}
-		class={`min-h-full p-0.5 transition-all duration-150 px-2 rounded${$themeStore === 'light' ? ' bg-white/80 shadow-sm' : ''}`}
-		style="color:{$sysThemeStore === 'dark'
-			? $themeStore === 'light'
-				? '#ff3f2e'
-				: '#646464'
-			: $themeStore === 'light'
-			? '#ff3f2e'
-			: $themeStore === 'dark'
-			? '#646464'
-			: '#cecece'}"
-	>
-		<svg width="20" height="20" viewBox="0 0 20 24" fill="none" style="display: inline;" xmlns="http://www.w3.org/2000/svg">
-			<path
-				fill="currentColor"
-				d="M9.99996 3.15217C10.5252 3.15217 10.951 2.72636 10.951 2.20109C10.951 1.67582 10.5252 1.25 9.99996 1.25C9.47469 1.25 9.04887 1.67582 9.04887 2.20109C9.04887 2.72636 9.47469 3.15217 9.99996 3.15217Z"
-			/>
-			<path
-				fill="currentColor"
-				d="M9.99992 4.29348C6.84829 4.29348 4.2934 6.84838 4.2934 10C4.2934 13.1516 6.84829 15.7065 9.99992 15.7065C13.1515 15.7065 15.7064 13.1516 15.7064 10C15.7064 6.84838 13.1515 4.29348 9.99992 4.29348Z"
-			/>
-			<path
-				fill="currentColor"
-				d="M16.4673 4.4837C16.4673 5.00896 16.0415 5.43478 15.5162 5.43478C14.991 5.43478 14.5652 5.00896 14.5652 4.4837C14.5652 3.95843 14.991 3.53261 15.5162 3.53261C16.0415 3.53261 16.4673 3.95843 16.4673 4.4837Z"
-			/>
-			<path
-				fill="currentColor"
-				d="M17.7989 10.9511C18.3241 10.9511 18.75 10.5253 18.75 10C18.75 9.47474 18.3241 9.04891 17.7989 9.04891C17.2736 9.04891 16.8478 9.47474 16.8478 10C16.8478 10.5253 17.2736 10.9511 17.7989 10.9511Z"
-			/>
-			<path
-				fill="currentColor"
-				d="M16.4673 15.5163C16.4673 16.0416 16.0415 16.4674 15.5162 16.4674C14.991 16.4674 14.5652 16.0416 14.5652 15.5163C14.5652 14.991 14.991 14.5652 15.5162 14.5652C16.0415 14.5652 16.4673 14.991 16.4673 15.5163Z"
-			/>
-			<path
-				fill="currentColor"
-				d="M9.99996 18.75C10.5252 18.75 10.951 18.3242 10.951 17.7989C10.951 17.2736 10.5252 16.8478 9.99996 16.8478C9.47469 16.8478 9.04887 17.2736 9.04887 17.7989C9.04887 18.3242 9.47469 18.75 9.99996 18.75Z"
-			/>
-			<path
-				fill="currentColor"
-				d="M5.43469 15.5163C5.43469 16.0416 5.00887 16.4674 4.4836 16.4674C3.95833 16.4674 3.53252 16.0416 3.53252 15.5163C3.53252 14.991 3.95833 14.5652 4.4836 14.5652C5.00887 14.5652 5.43469 14.991 5.43469 15.5163Z"
-			/>
-			<path
-				fill="currentColor"
-				d="M2.20096 10.9511C2.72623 10.9511 3.15205 10.5253 3.15205 10C3.15205 9.47474 2.72623 9.04891 2.20096 9.04891C1.67569 9.04891 1.24988 9.47474 1.24988 10C1.24988 10.5253 1.67569 10.9511 2.20096 10.9511Z"
-			/>
-			<path
-				fill="currentColor"
-				d="M5.43469 4.4837C5.43469 5.00896 5.00887 5.43478 4.4836 5.43478C3.95833 5.43478 3.53252 5.00896 3.53252 4.4837C3.53252 3.95843 3.95833 3.53261 4.4836 3.53261C5.00887 3.53261 5.43469 3.95843 5.43469 4.4837Z"
-			/>
-		</svg>
-	</div>
-	<div
-		class:scale-75={isClick}
-		class={`min-h-full p-0.5 px-2 transition-all duration-150 rounded${$themeStore === 'dark' ? ' bg-black/50 shadow-sm' : ''}`}
-		style="color:{$sysThemeStore === 'light'
-			? $themeStore === 'auto'
-				? '#cecece'
-				: $themeStore === 'dark'
-				? '#fff'
-				: '#cecece'
-			: $themeStore === 'light'
-			? '#cecece'
-			: $themeStore === 'auto'
-			? '#646464'
-			: '#fff'}"
-	>
-		<svg width="20" height="20" style="display: inline;position:relative;top:-1px" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
-			<path
-				fill="currentColor"
-				d="M9.99993 3.12494C6.20294 3.12494 3.12488 6.203 3.12488 10C3.12488 13.797 6.20294 16.8751 9.99993 16.8751C13.7969 16.8751 16.875 13.797 16.875 10C16.875 9.52352 16.8264 9.0577 16.7337 8.6075C16.6752 8.32295 16.4282 8.11628 16.1378 8.10872C15.8474 8.10117 15.5901 8.29473 15.5168 8.57585C15.1411 10.0167 13.8302 11.0795 12.2727 11.0795C10.4212 11.0795 8.92039 9.57869 8.92039 7.72726C8.92039 6.16969 9.98319 4.85879 11.4241 4.48312C11.7052 4.40983 11.8988 4.15249 11.8912 3.86207C11.8836 3.57165 11.677 3.32473 11.3924 3.26616C10.9422 3.1735 10.4764 3.12494 9.99993 3.12494Z"
-			/>
-		</svg>
-	</div>
-	<div
-		class={`min-h-full p-0.5 px-2 transition-all duration-150 rounded${
-			$themeStore === 'auto' && $sysThemeStore === 'light' ? ' bg-white/80' : ''
-		}${$themeStore === 'auto' && $sysThemeStore === 'dark' ? ' bg-black/50' : ''}${
-			$themeStore === 'auto' && $sysThemeStore === 'light' ? ' shadow-sm' : ''
-		}`}
-		style="color:{$themeStore === 'light'
-			? '#cecece'
-			: $themeStore === 'dark'
-			? '#646464'
-			: $themeStore === 'auto' && $sysThemeStore === 'light'
-			? '#ff3f2e'
-			: '#fff'};background-size: 30%;"
-	>
-		<svg xmlns="http://www.w3.org/2000/svg" style="display: inline;" viewBox="0 0 24 28" width="20" height="20">
-			<path
-				fill="currentColor"
-				d="M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10-4.477 10-10 10zm0-2a8 8 0 1 0 0-16 8 8 0 0 0 0 16zm0-2V6a6 6 0 1 1 0 12z"
-			/>
-		</svg>
-	</div>
-</button>

+ 0 - 34
site/src/components/modeSwitch/darkMode.js

@@ -1,34 +0,0 @@
-/**
- * 给 HTML 元素增加或删除 dark 类名,实现 Mode 切换
- * Add or remove the dark class name to the HTML element to implement Mode switching
- * @param {boolean} [isDark] 是否为 dark 模式
- * @returns {void}
- * @example
- */
-// @ts-ignore
-export default (isDark = true, ev) => {
-	document.documentElement.style.setProperty('--x', ev.clientX + 'px');
-	document.documentElement.style.setProperty('--y', ev.clientY + 'px');
-
-	if (isDark) {
-		// @ts-ignore
-		if (document.startViewTransition) {
-			// @ts-ignore
-			document.startViewTransition(() => {
-				document.documentElement.classList.add('dark');
-			});
-		} else {
-			document.documentElement.classList.add('dark');
-		}
-	} else {
-		// @ts-ignore
-		if (document.startViewTransition) {
-			// @ts-ignore
-			document.startViewTransition(() => {
-				document.documentElement.classList.remove('dark');
-			});
-		} else {
-			document.documentElement.classList.remove('dark');
-		}
-	}
-};

+ 0 - 24
site/src/components/switch/Index.svelte

@@ -1,24 +0,0 @@
-<script>
-	export let open = false;
-
-	let isClick = false;
-
-	const toggleFun = () => {
-		isClick = true;
-		setTimeout(() => {
-			isClick = false;
-		}, 150);
-		open = !open;
-	};
-</script>
-
-<!-- svelte-ignore a11y-click-events-have-key-events -->
-<!-- svelte-ignore a11y-no-static-element-interactions -->
-<div class="w-12 h-6 rounded-full relative ring-1 ring-gray-400 dark:ring-gray-300 cursor-pointer" on:click={toggleFun}>
-	<div
-		class="absolute {open
-			? 'left-[26px] bg-primary dark:bg-dark'
-			: 'left-0.5 bg-gray-300 dark:bg-gray-600'} top-0.5 w-5 h-5 transition-all duration-300 rounded-full"
-		style="transform:scaleX({isClick ? '1.3' : '1'});})"
-	></div>
-</div>

+ 0 - 180
site/src/components/tab/Tab.svelte

@@ -1,180 +0,0 @@
-<script>
-	import { createEventDispatcher } from 'svelte';
-	import { fade } from 'svelte/transition';
-	import { querystring } from 'svelte-spa-router';
-	import { currentThemeStore } from '../../store';
-	// @ts-ignore
-	import { encodeData, rendererLine } from 'beautify-qrcode';
-
-	export let currentTab = 0;
-	const dispatch = createEventDispatcher();
-	const tabList = [
-		{ zh: '示例', en: 'Demo' },
-		{ zh: 'API', en: 'API' },
-		{ zh: '指南', en: 'Guide' },
-		{ zh: 'FAQ', en: 'FAQ' },
-		{ zh: '版本', en: 'Version' },
-	];
-	const changeIndexFun = i => {
-		currentTab = i;
-		dispatch('TabClick', i);
-	};
-	const isZh = localStorage.getItem('lang') === 'zh_CN';
-	let showQr = false;
-	let QRValue = '';
-	let A_a1Svg;
-
-	const mouseenterFun = () => {
-		const params = new URLSearchParams('?' + $querystring);
-		QRValue =
-			// @ts-ignore
-			(import.meta.env.DEV ? location.protocol + '//' + location.hostname + ':8888/' : 'https://demo.stdf.design/') +
-			(isZh ? 'zh_CN/' : 'en_US/') +
-			params.get('nav');
-		showQr = true;
-		/**
-		 * A_a1
-		 * @param {Object} qrcode
-		 * @param {Object} options
-		 * @param {String} [options.type]  连线方向 0=>左右 1=>上下 2=>纵横 3=>回环 4=>左上—右下 5=>右上—左下 6=>交叉"
-		 * @param {String} [options.size] 连线粗细
-		 * @param {String} [options.opacity] 连线不透明度
-		 * @param {String} [options.posType] 定位点样式  0=>矩形 1=>圆形 2=>行星 3=>圆角矩形
-		 * @param {String} [options.otherColor] 连线颜色
-		 * @param {String} [options.posColor] 定位点颜色
-		 */
-		const qrcode = encodeData({
-			text: QRValue,
-			isSpace: false,
-		});
-		const color = $currentThemeStore === 'dark' ? 'rgb(var(--theme-color-dark))' : 'rgb(var(--theme-color-primary))';
-		A_a1Svg = rendererLine(qrcode, {
-			posType: 2,
-			otherColor: color,
-			posColor: color,
-		});
-	};
-
-	let showStackblitz = false;
-	let stackblitzValue = '';
-	const showStackblitzFunc = () => {
-		const nav = $querystring.split('&')[0].split('=')[1];
-		stackblitzValue = `https://stackblitz.com/github/any-tdf/demo-stdf?file=src%2Froutes%2F${
-			isZh ? 'zh_CN' : 'en_US'
-		}%2F${nav}%2F%2Bpage.svelte&startScript=${nav}${isZh ? '' : '_en'}`;
-		showStackblitz = true;
-	};
-
-	let showCode = false;
-	let codeValue = '';
-	const showCodeFunc = () => {
-		const nav = $querystring.split('&')[0].split('=')[1];
-		// 将nav首字母大写
-		const navFirst = nav.slice(0, 1).toUpperCase() + nav.slice(1);
-		codeValue = `https://github.com/any-tdf/stdf/blob/main/packages/stdf/components/${nav}/${navFirst}.svelte`;
-		showCode = true;
-	};
-</script>
-
-<div class="relative top-14 w-82 md:w-102">
-	<div class="relative rounded p-1 bg-gray-100 dark:bg-gray-700">
-		<!--滑块-->
-		<div
-			class="absolute top-1 w-16 md:w-20 h-10 rounded bg-white dark:bg-black shadow-md dark:shadow-white/10 transition-all duration-300"
-			class:left-1={currentTab === 0}
-			class:left-17={currentTab === 1}
-			class:md:left-21={currentTab === 1}
-			class:left-33={currentTab === 2}
-			class:md:left-41={currentTab === 2}
-			class:left-49={currentTab === 3}
-			class:md:left-61={currentTab === 3}
-			class:left-65={currentTab === 4}
-			class:md:left-81={currentTab === 4}
-		/>
-		<!--二维码-->
-		<a href={QRValue} target="_blank">
-			<!-- svelte-ignore a11y-no-static-element-interactions -->
-			<div
-				on:mouseleave={() => (showQr = false)}
-				on:mouseenter={mouseenterFun}
-				class="hidden md:block absolute top-0 bg-gray-100 dark:bg-gray-700 rounded p-3 left-106 h-12 w-12"
-			>
-				<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" style="fill: currentColor">
-					<path fill="none" d="M0 0h24v24H0z" />
-					<path
-						d="M16 17v-1h-3v-3h3v2h2v2h-1v2h-2v2h-2v-3h2v-1h1zm5 4h-4v-2h2v-2h2v4zM3 3h8v8H3V3zm2 2v4h4V5H5zm8-2h8v8h-8V3zm2 2v4h4V5h-4zM3 13h8v8H3v-8zm2 2v4h4v-4H5zm13-2h3v2h-3v-2zM6 6h2v2H6V6zm0 10h2v2H6v-2zM16 6h2v2h-2V6z"
-					/>
-				</svg>
-				{#if showQr}
-					<div
-						class="w-60 rounded bg-black absolute z-50 top-14 left-0 p-6 shadow-lg hidden dark:block"
-						transition:fade={{ duration: 200 }}
-					>
-						<span>{@html A_a1Svg}</span>
-					</div>
-				{/if}
-				{#if showQr}
-					<div
-						class="w-60 rounded bg-white absolute z-50 top-14 left-0 p-6 shadow-lg block dark:hidden"
-						transition:fade={{ duration: 200 }}
-					>
-						<span>{@html A_a1Svg}</span>
-					</div>
-				{/if}
-			</div>
-		</a>
-		<!--StackBlitz-->
-		<a href={stackblitzValue} target="_blank">
-			<!-- svelte-ignore a11y-no-static-element-interactions -->
-			<div
-				on:mouseleave={() => (showStackblitz = false)}
-				on:mouseenter={showStackblitzFunc}
-				class="hidden md:block absolute top-0 bg-gray-100 dark:bg-gray-700 rounded p-3 left-[34.5rem] h-12 w-12"
-			>
-				<svg viewBox="0 0 28 28" height="24">
-					<path fill="#3275e7" d="M12.747 16.273h-7.46L18.925 1.5l-3.671 10.227h7.46L9.075 26.5l3.671-10.227z" />
-				</svg>
-				{#if showStackblitz}
-					<div
-						class="w-44 h-12 leading-[1.5rem] text-center rounded bg-gray-700 text-white absolute z-50 top-14 left-0 py-3 shadow-lg"
-						transition:fade={{ duration: 200 }}
-					>
-						{isZh ? '在 StackBlitz 中打开' : 'Open in StackBlitz'}
-					</div>
-				{/if}
-			</div>
-		</a>
-		<!--组件源码-->
-		<a href={codeValue} target="_blank">
-			<!-- svelte-ignore a11y-no-static-element-interactions -->
-			<div
-				on:mouseleave={() => (showCode = false)}
-				on:mouseenter={showCodeFunc}
-				class="hidden md:block absolute top-0 bg-gray-100 dark:bg-gray-700 rounded p-3 left-[30.5rem] h-12 w-12"
-			>
-				<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" style="fill: currentColor">
-					<path
-						d="M3 3H21C21.5523 3 22 3.44772 22 4V20C22 20.5523 21.5523 21 21 21H3C2.44772 21 2 20.5523 2 20V4C2 3.44772 2.44772 3 3 3ZM4 5V19H20V5H4ZM20 12L16.4645 15.5355L15.0503 14.1213L17.1716 12L15.0503 9.87868L16.4645 8.46447L20 12ZM6.82843 12L8.94975 14.1213L7.53553 15.5355L4 12L7.53553 8.46447L8.94975 9.87868L6.82843 12ZM11.2443 17H9.11597L12.7557 7H14.884L11.2443 17Z"
-					/>
-				</svg>
-				{#if showCode}
-					<div
-						class="{isZh
-							? 'w-28'
-							: 'w-52'} h-12 leading-[1.5rem] text-center rounded bg-gray-700 text-white absolute z-50 top-14 left-0 py-3 shadow-lg"
-						transition:fade={{ duration: 200 }}
-					>
-						{isZh ? '组件源码' : 'Component source code'}
-					</div>
-				{/if}
-			</div>
-		</a>
-		<div class="flex relative">
-			{#each tabList as item, index}
-				<button on:click={() => changeIndexFun(index)} class="cursor-pointer py-2 w-16 md:w-20 text-center rounded">
-					{isZh ? item.zh : item.en}
-				</button>
-			{/each}
-		</div>
-	</div>
-</div>

+ 0 - 95
site/src/components/themeSwitch/ThemeSwitch.svelte

@@ -1,95 +0,0 @@
-<script>
-	import { switchTheme } from '../../../../packages/stdf/theme';
-	import themes from '../../../../demo/src/data/themes';
-	import { currentColorStore } from '../../store';
-
-	// 横排还是竖排
-	export let vertical = false;
-
-	const isZh = localStorage.getItem('lang') === 'zh_CN';
-
-	const selectColorFunc = (e, item) => {
-		// 阻止冒泡
-		e.stopPropagation();
-		currentColorStore.set(item.name);
-		localStorage.setItem('theme_color', item.name);
-		const theme = item.theme;
-		switchTheme(theme);
-		// 修改 HTML 的 meta name="theme-color" 属性,适配 Safari 的 tab 背景色,需要设置 light 和 dark 两种颜色
-		const safariLight = theme.color.primaryWhite;
-		const safariDark = theme.color.darkBlack;
-		// 查找 meta 标签,name="theme-color" 且 media="(prefers-color-scheme: light)"
-		const lightMeta = document.querySelector('meta[name="theme-color"][media="(prefers-color-scheme: light)"]');
-		// 查找 meta 标签,name="theme-color" 且 media="(prefers-color-scheme: dark)"
-		const darkMeta = document.querySelector('meta[name="theme-color"][media="(prefers-color-scheme: dark)"]');
-		// 如果找到了,就修改它的 content 属性
-		if (lightMeta) {
-			lightMeta.setAttribute('content', safariLight);
-		}
-		if (darkMeta) {
-			darkMeta.setAttribute('content', safariDark);
-		}
-	};
-	const bgFunc = str => {
-		return str.charAt(0) === '#' ? str : `rgb(${str})`;
-	};
-</script>
-
-<div class="flex {vertical ? 'flex-col' : 'flex-row'} gap-2 flex-wrap my-4">
-	{#each themes as item}
-		<button
-			class="flex p-2 gap-2 justify-between items-center border {$currentColorStore === item.name
-				? 'border-primary dark:border-dark'
-				: 'border-gray-100 dark:border-gray-700'} rounded-md cursor-pointer"
-			on:click={e => selectColorFunc(e, item)}
-		>
-			<div class="w-5 h-5 {$currentColorStore === item.name ? 'fill-primary dark:fill-dark' : 'fill-gray-300 dark:fill-gray-700'}">
-				<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
-					<path
-						d="M12 2C17.5222 2 22 5.97778 22 10.8889C22 13.9556 19.5111 16.4444 16.4444 16.4444H14.4778C13.5556 16.4444 12.8111 17.1889 12.8111 18.1111C12.8111 18.5333 12.9778 18.9222 13.2333 19.2111C13.5 19.5111 13.6667 19.9 13.6667 20.3333C13.6667 21.2556 12.9 22 12 22C6.47778 22 2 17.5222 2 12C2 6.47778 6.47778 2 12 2ZM7.5 12C8.32843 12 9 11.3284 9 10.5C9 9.67157 8.32843 9 7.5 9C6.67157 9 6 9.67157 6 10.5C6 11.3284 6.67157 12 7.5 12ZM16.5 12C17.3284 12 18 11.3284 18 10.5C18 9.67157 17.3284 9 16.5 9C15.6716 9 15 9.67157 15 10.5C15 11.3284 15.6716 12 16.5 12ZM12 9C12.8284 9 13.5 8.32843 13.5 7.5C13.5 6.67157 12.8284 6 12 6C11.1716 6 10.5 6.67157 10.5 7.5C10.5 8.32843 11.1716 9 12 9Z"
-					>
-					</path>
-				</svg>
-			</div>
-			<div class="whitespace-nowrap">{isZh ? item.name_CN : item.name}</div>
-			<div class="flex gap-2 justify-between">
-				<!-- theme  -->
-				<div class="flex rounded-sm overflow-hidden">
-					<div class="w-6 bg-primary" style="background-color: {bgFunc(item.theme.color.primary.default)};"></div>
-					<div class="w-6 bg-dark" style="background-color: {bgFunc(item.theme.color.dark.default)};"></div>
-				</div>
-				<div class="flex flex-col justify-between gap-1">
-					<!-- Functional -->
-					<div class="flex gap-0.5">
-						<div class="w-3 h-3 rounded-sm" style="background-color: {bgFunc(item.theme.color.functional.success)};"></div>
-						<div class="w-3 h-3 rounded-sm" style="background-color: {bgFunc(item.theme.color.functional.warning)};"></div>
-						<div class="w-3 h-3 rounded-sm" style="background-color: {bgFunc(item.theme.color.functional.error)};"></div>
-						<div class="w-3 h-3 rounded-sm" style="background-color: {bgFunc(item.theme.color.functional.info)};"></div>
-					</div>
-					<!-- Extended -->
-					<div class="flex gap-0.5 justify-between">
-						{#each item.theme.color.extend as child}
-							<div class="w-3 h-3 rounded-sm" style="background-color: {bgFunc(child.color)};"></div>
-						{/each}
-					</div>
-				</div>
-			</div>
-		</button>
-	{/each}
-	{#if vertical}
-		<a
-			href="/#/guide/generator"
-			target="_blank"
-			class="border border-gray-100 dark:border-gray-700 hover:border-primary dark:hover:border-dark group rounded py-2 text-primary dark:text-dark transition-all duration-300 flex justify-center gap-2 items-center"
-		>
-			<svg class="w-5 h-5 group-hover:scale-95 transition-all duration-300" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
-				<path
-					class="fill-primary dark:fill-dark"
-					d="M15.1986 9.94435C14.7649 9.53358 14.4859 8.98601 14.4085 8.39371L14.0056 5.31126L11.275 6.79711C10.7503 7.08262 10.1433 7.17876 9.55608 7.06936L6.49998 6.50003L7.06931 9.55612C7.17871 10.1434 7.08257 10.7503 6.79707 11.275L5.31121 14.0056L8.39367 14.4085C8.98596 14.4859 9.53353 14.7649 9.94431 15.1986L12.0821 17.4555L13.4178 14.6485C13.6745 14.1091 14.109 13.6745 14.6484 13.4179L17.4555 12.0821L15.1986 9.94435ZM15.2238 15.5078L13.0111 20.1579C12.8687 20.4572 12.5107 20.5843 12.2115 20.4419C12.1448 20.4102 12.0845 20.3664 12.0337 20.3127L8.49229 16.574C8.39749 16.4739 8.27113 16.4095 8.13445 16.3917L3.02816 15.7242C2.69958 15.6812 2.46804 15.3801 2.51099 15.0515C2.52056 14.9782 2.54359 14.9074 2.5789 14.8425L5.04031 10.3191C5.1062 10.198 5.12839 10.0579 5.10314 9.92241L4.16 4.85979C4.09931 4.53402 4.3142 4.22074 4.63997 4.16005C4.7126 4.14652 4.78711 4.14652 4.85974 4.16005L9.92237 5.10319C10.0579 5.12843 10.198 5.10625 10.319 5.04036L14.8424 2.57895C15.1335 2.42056 15.4979 2.52812 15.6562 2.81919C15.6916 2.88409 15.7146 2.95495 15.7241 3.02821L16.3916 8.13449C16.4095 8.27118 16.4739 8.39754 16.5739 8.49233L20.3127 12.0337C20.5533 12.2616 20.5636 12.6414 20.3357 12.8819C20.2849 12.9356 20.2246 12.9794 20.1579 13.0111L15.5078 15.2238C15.3833 15.2831 15.283 15.3833 15.2238 15.5078ZM16.0206 17.4349L17.4348 16.0207L21.6775 20.2633L20.2633 21.6775L16.0206 17.4349Z"
-				>
-				</path>
-			</svg>
-			{isZh ? '创建新主题' : 'Create new theme'}
-		</a>
-	{/if}
-</div>

+ 0 - 2128
site/src/data/color.js

@@ -1,2128 +0,0 @@
-import { colorConvertFunc } from '../utils';
-
-const colors = [
-	['000000', 'Black'],
-	['000080', 'Navy Blue'],
-	['0000C8', 'Dark Blue'],
-	['0000FF', 'Blue'],
-	['000741', 'Stratos'],
-	['001B1C', 'Swamp'],
-	['002387', 'Resolution Blue'],
-	['002900', 'Deep Fir'],
-	['002E20', 'Burnham'],
-	['002FA7', 'Klein Blue'],
-	['003153', 'Prussian Blue'],
-	['003366', 'Midnight Blue'],
-	['003399', 'Smalt'],
-	['003532', 'Deep Teal'],
-	['003E40', 'Cyprus'],
-	['004620', 'Kaitoke Green'],
-	['0047AB', 'Cobalt'],
-	['004816', 'Crusoe'],
-	['004950', 'Sherpa Blue'],
-	['0056A7', 'Endeavour'],
-	['00581A', 'Camarone'],
-	['0066CC', 'Science Blue'],
-	['0066FF', 'Blue Ribbon'],
-	['00755E', 'Tropical Rain Forest'],
-	['0076A3', 'Allports'],
-	['007BA7', 'Deep Cerulean'],
-	['007EC7', 'Lochmara'],
-	['007FFF', 'Azure Radiance'],
-	['008080', 'Teal'],
-	['0095B6', 'Bondi Blue'],
-	['009DC4', 'Pacific Blue'],
-	['00A693', 'Persian Green'],
-	['00A86B', 'Jade'],
-	['00CC99', 'Caribbean Green'],
-	['00CCCC', "Robin's Egg Blue"],
-	['00FF00', 'Green'],
-	['00FF7F', 'Spring Green'],
-	['00FFFF', 'Cyan / Aqua'],
-	['010D1A', 'Blue Charcoal'],
-	['011635', 'Midnight'],
-	['011D13', 'Holly'],
-	['012731', 'Daintree'],
-	['01361C', 'Cardin Green'],
-	['01371A', 'County Green'],
-	['013E62', 'Astronaut Blue'],
-	['013F6A', 'Regal Blue'],
-	['014B43', 'Aqua Deep'],
-	['015E85', 'Orient'],
-	['016162', 'Blue Stone'],
-	['016D39', 'Fun Green'],
-	['01796F', 'Pine Green'],
-	['017987', 'Blue Lagoon'],
-	['01826B', 'Deep Sea'],
-	['01A368', 'Green Haze'],
-	['022D15', 'English Holly'],
-	['02402C', 'Sherwood Green'],
-	['02478E', 'Congress Blue'],
-	['024E46', 'Evening Sea'],
-	['026395', 'Bahama Blue'],
-	['02866F', 'Observatory'],
-	['02A4D3', 'Cerulean'],
-	['03163C', 'Tangaroa'],
-	['032B52', 'Green Vogue'],
-	['036A6E', 'Mosque'],
-	['041004', 'Midnight Moss'],
-	['041322', 'Black Pearl'],
-	['042E4C', 'Blue Whale'],
-	['044022', 'Zuccini'],
-	['044259', 'Teal Blue'],
-	['051040', 'Deep Cove'],
-	['051657', 'Gulf Blue'],
-	['055989', 'Venice Blue'],
-	['056F57', 'Watercourse'],
-	['062A78', 'Catalina Blue'],
-	['063537', 'Tiber'],
-	['069B81', 'Gossamer'],
-	['06A189', 'Niagara'],
-	['073A50', 'Tarawera'],
-	['080110', 'Jaguar'],
-	['081910', 'Black Bean'],
-	['082567', 'Deep Sapphire'],
-	['088370', 'Elf Green'],
-	['08E8DE', 'Bright Turquoise'],
-	['092256', 'Downriver'],
-	['09230F', 'Palm Green'],
-	['09255D', 'Madison'],
-	['093624', 'Bottle Green'],
-	['095859', 'Deep Sea Green'],
-	['097F4B', 'Salem'],
-	['0A001C', 'Black Russian'],
-	['0A480D', 'Dark Fern'],
-	['0A6906', 'Japanese Laurel'],
-	['0A6F75', 'Atoll'],
-	['0B0B0B', 'Cod Gray'],
-	['0B0F08', 'Marshland'],
-	['0B1107', 'Gordons Green'],
-	['0B1304', 'Black Forest'],
-	['0B6207', 'San Felix'],
-	['0BDA51', 'Malachite'],
-	['0C0B1D', 'Ebony'],
-	['0C0D0F', 'Woodsmoke'],
-	['0C1911', 'Racing Green'],
-	['0C7A79', 'Surfie Green'],
-	['0C8990', 'Blue Chill'],
-	['0D0332', 'Black Rock'],
-	['0D1117', 'Bunker'],
-	['0D1C19', 'Aztec'],
-	['0D2E1C', 'Bush'],
-	['0E0E18', 'Cinder'],
-	['0E2A30', 'Firefly'],
-	['0F2D9E', 'Torea Bay'],
-	['10121D', 'Vulcan'],
-	['101405', 'Green Waterloo'],
-	['105852', 'Eden'],
-	['110C6C', 'Arapawa'],
-	['120A8F', 'Ultramarine'],
-	['123447', 'Elephant'],
-	['126B40', 'Jewel'],
-	['130000', 'Diesel'],
-	['130A06', 'Asphalt'],
-	['13264D', 'Blue Zodiac'],
-	['134F19', 'Parsley'],
-	['140600', 'Nero'],
-	['1450AA', 'Tory Blue'],
-	['151F4C', 'Bunting'],
-	['1560BD', 'Denim'],
-	['15736B', 'Genoa'],
-	['161928', 'Mirage'],
-	['161D10', 'Hunter Green'],
-	['162A40', 'Big Stone'],
-	['163222', 'Celtic'],
-	['16322C', 'Timber Green'],
-	['163531', 'Gable Green'],
-	['171F04', 'Pine Tree'],
-	['175579', 'Chathams Blue'],
-	['182D09', 'Deep Forest Green'],
-	['18587A', 'Blumine'],
-	['19330E', 'Palm Leaf'],
-	['193751', 'Nile Blue'],
-	['1959A8', 'Fun Blue'],
-	['1A1A68', 'Lucky Point'],
-	['1AB385', 'Mountain Meadow'],
-	['1B0245', 'Tolopea'],
-	['1B1035', 'Haiti'],
-	['1B127B', 'Deep Koamaru'],
-	['1B1404', 'Acadia'],
-	['1B2F11', 'Seaweed'],
-	['1B3162', 'Biscay'],
-	['1B659D', 'Matisse'],
-	['1C1208', 'Crowshead'],
-	['1C1E13', 'Rangoon Green'],
-	['1C39BB', 'Persian Blue'],
-	['1C402E', 'Everglade'],
-	['1C7C7D', 'Elm'],
-	['1D6142', 'Green Pea'],
-	['1E0F04', 'Creole'],
-	['1E1609', 'Karaka'],
-	['1E1708', 'El Paso'],
-	['1E385B', 'Cello'],
-	['1E433C', 'Te Papa Green'],
-	['1E90FF', 'Dodger Blue'],
-	['1E9AB0', 'Eastern Blue'],
-	['1F120F', 'Night Rider'],
-	['1FC2C2', 'Java'],
-	['20208D', 'Jacksons Purple'],
-	['202E54', 'Cloud Burst'],
-	['204852', 'Blue Dianne'],
-	['211A0E', 'Eternity'],
-	['220878', 'Deep Blue'],
-	['228B22', 'Forest Green'],
-	['233418', 'Mallard'],
-	['240A40', 'Violet'],
-	['240C02', 'Kilamanjaro'],
-	['242A1D', 'Log Cabin'],
-	['242E16', 'Black Olive'],
-	['24500F', 'Green House'],
-	['251607', 'Graphite'],
-	['251706', 'Cannon Black'],
-	['251F4F', 'Port Gore'],
-	['25272C', 'Shark'],
-	['25311C', 'Green Kelp'],
-	['2596D1', 'Curious Blue'],
-	['260368', 'Paua'],
-	['26056A', 'Paris M'],
-	['261105', 'Wood Bark'],
-	['261414', 'Gondola'],
-	['262335', 'Steel Gray'],
-	['26283B', 'Ebony Clay'],
-	['273A81', 'Bay of Many'],
-	['27504B', 'Plantation'],
-	['278A5B', 'Eucalyptus'],
-	['281E15', 'Oil'],
-	['283A77', 'Astronaut'],
-	['286ACD', 'Mariner'],
-	['290C5E', 'Violent Violet'],
-	['292130', 'Bastille'],
-	['292319', 'Zeus'],
-	['292937', 'Charade'],
-	['297B9A', 'Jelly Bean'],
-	['29AB87', 'Jungle Green'],
-	['2A0359', 'Cherry Pie'],
-	['2A140E', 'Coffee Bean'],
-	['2A2630', 'Baltic Sea'],
-	['2A380B', 'Turtle Green'],
-	['2A52BE', 'Cerulean Blue'],
-	['2B0202', 'Sepia Black'],
-	['2B194F', 'Valhalla'],
-	['2B3228', 'Heavy Metal'],
-	['2C0E8C', 'Blue Gem'],
-	['2C1632', 'Revolver'],
-	['2C2133', 'Bleached Cedar'],
-	['2C8C84', 'Lochinvar'],
-	['2D2510', 'Mikado'],
-	['2D383A', 'Outer Space'],
-	['2D569B', 'St Tropaz'],
-	['2E0329', 'Jacaranda'],
-	['2E1905', 'Jacko Bean'],
-	['2E3222', 'Rangitoto'],
-	['2E3F62', 'Rhino'],
-	['2E8B57', 'Sea Green'],
-	['2EBFD4', 'Scooter'],
-	['2F270E', 'Onion'],
-	['2F3CB3', 'Governor Bay'],
-	['2F519E', 'Sapphire'],
-	['2F5A57', 'Spectra'],
-	['2F6168', 'Casal'],
-	['300529', 'Melanzane'],
-	['301F1E', 'Cocoa Brown'],
-	['302A0F', 'Woodrush'],
-	['304B6A', 'San Juan'],
-	['30D5C8', 'Turquoise'],
-	['311C17', 'Eclipse'],
-	['314459', 'Pickled Bluewood'],
-	['315BA1', 'Azure'],
-	['31728D', 'Calypso'],
-	['317D82', 'Paradiso'],
-	['32127A', 'Persian Indigo'],
-	['32293A', 'Blackcurrant'],
-	['323232', 'Mine Shaft'],
-	['325D52', 'Stromboli'],
-	['327C14', 'Bilbao'],
-	['327DA0', 'Astral'],
-	['33036B', 'Christalle'],
-	['33292F', 'Thunder'],
-	['33CC99', 'Shamrock'],
-	['341515', 'Tamarind'],
-	['350036', 'Mardi Gras'],
-	['350E42', 'Valentino'],
-	['350E57', 'Jagger'],
-	['353542', 'Tuna'],
-	['354E8C', 'Chambray'],
-	['363050', 'Martinique'],
-	['363534', 'Tuatara'],
-	['363C0D', 'Waiouru'],
-	['36747D', 'Ming'],
-	['368716', 'La Palma'],
-	['370202', 'Chocolate'],
-	['371D09', 'Clinker'],
-	['37290E', 'Brown Tumbleweed'],
-	['373021', 'Birch'],
-	['377475', 'Oracle'],
-	['380474', 'Blue Diamond'],
-	['381A51', 'Grape'],
-	['383533', 'Dune'],
-	['384555', 'Oxford Blue'],
-	['384910', 'Clover'],
-	['394851', 'Limed Spruce'],
-	['396413', 'Dell'],
-	['3A0020', 'Toledo'],
-	['3A2010', 'Sambuca'],
-	['3A2A6A', 'Jacarta'],
-	['3A686C', 'William'],
-	['3A6A47', 'Killarney'],
-	['3AB09E', 'Keppel'],
-	['3B000B', 'Temptress'],
-	['3B0910', 'Aubergine'],
-	['3B1F1F', 'Jon'],
-	['3B2820', 'Treehouse'],
-	['3B7A57', 'Amazon'],
-	['3B91B4', 'Boston Blue'],
-	['3C0878', 'Windsor'],
-	['3C1206', 'Rebel'],
-	['3C1F76', 'Meteorite'],
-	['3C2005', 'Dark Ebony'],
-	['3C3910', 'Camouflage'],
-	['3C4151', 'Bright Gray'],
-	['3C4443', 'Cape Cod'],
-	['3C493A', 'Lunar Green'],
-	['3D0C02', 'Bean  '],
-	['3D2B1F', 'Bistre'],
-	['3D7D52', 'Goblin'],
-	['3E0480', 'Kingfisher Daisy'],
-	['3E1C14', 'Cedar'],
-	['3E2B23', 'English Walnut'],
-	['3E2C1C', 'Black Marlin'],
-	['3E3A44', 'Ship Gray'],
-	['3EABBF', 'Pelorous'],
-	['3F2109', 'Bronze'],
-	['3F2500', 'Cola'],
-	['3F3002', 'Madras'],
-	['3F307F', 'Minsk'],
-	['3F4C3A', 'Cabbage Pont'],
-	['3F583B', 'Tom Thumb'],
-	['3F5D53', 'Mineral Green'],
-	['3FC1AA', 'Puerto Rico'],
-	['3FFF00', 'Harlequin'],
-	['401801', 'Brown Pod'],
-	['40291D', 'Cork'],
-	['403B38', 'Masala'],
-	['403D19', 'Thatch Green'],
-	['405169', 'Fiord'],
-	['40826D', 'Viridian'],
-	['40A860', 'Chateau Green'],
-	['410056', 'Ripe Plum'],
-	['411F10', 'Paco'],
-	['412010', 'Deep Oak'],
-	['413C37', 'Merlin'],
-	['414257', 'Gun Powder'],
-	['414C7D', 'East Bay'],
-	['4169E1', 'Royal Blue'],
-	['41AA78', 'Ocean Green'],
-	['420303', 'Burnt Maroon'],
-	['423921', 'Lisbon Brown'],
-	['427977', 'Faded Jade'],
-	['431560', 'Scarlet Gum'],
-	['433120', 'Iroko'],
-	['433E37', 'Armadillo'],
-	['434C59', 'River Bed'],
-	['436A0D', 'Green Leaf'],
-	['44012D', 'Barossa'],
-	['441D00', 'Morocco Brown'],
-	['444954', 'Mako'],
-	['454936', 'Kelp'],
-	['456CAC', 'San Marino'],
-	['45B1E8', 'Picton Blue'],
-	['460B41', 'Loulou'],
-	['462425', 'Crater Brown'],
-	['465945', 'Gray Asparagus'],
-	['4682B4', 'Steel Blue'],
-	['480404', 'Rustic Red'],
-	['480607', 'Bulgarian Rose'],
-	['480656', 'Clairvoyant'],
-	['481C1C', 'Cocoa Bean'],
-	['483131', 'Woody Brown'],
-	['483C32', 'Taupe'],
-	['49170C', 'Van Cleef'],
-	['492615', 'Brown Derby'],
-	['49371B', 'Metallic Bronze'],
-	['495400', 'Verdun Green'],
-	['496679', 'Blue Bayoux'],
-	['497183', 'Bismark'],
-	['4A2A04', 'Bracken'],
-	['4A3004', 'Deep Bronze'],
-	['4A3C30', 'Mondo'],
-	['4A4244', 'Tundora'],
-	['4A444B', 'Gravel'],
-	['4A4E5A', 'Trout'],
-	['4B0082', 'Pigment Indigo'],
-	['4B5D52', 'Nandor'],
-	['4C3024', 'Saddle'],
-	['4C4F56', 'Abbey'],
-	['4D0135', 'Blackberry'],
-	['4D0A18', 'Cab Sav'],
-	['4D1E01', 'Indian Tan'],
-	['4D282D', 'Cowboy'],
-	['4D282E', 'Livid Brown'],
-	['4D3833', 'Rock'],
-	['4D3D14', 'Punga'],
-	['4D400F', 'Bronzetone'],
-	['4D5328', 'Woodland'],
-	['4E0606', 'Mahogany'],
-	['4E2A5A', 'Bossanova'],
-	['4E3B41', 'Matterhorn'],
-	['4E420C', 'Bronze Olive'],
-	['4E4562', 'Mulled Wine'],
-	['4E6649', 'Axolotl'],
-	['4E7F9E', 'Wedgewood'],
-	['4EABD1', 'Shakespeare'],
-	['4F1C70', 'Honey Flower'],
-	['4F2398', 'Daisy Bush'],
-	['4F69C6', 'Indigo'],
-	['4F7942', 'Fern Green'],
-	['4F9D5D', 'Fruit Salad'],
-	['4FA83D', 'Apple'],
-	['504351', 'Mortar'],
-	['507096', 'Kashmir Blue'],
-	['507672', 'Cutty Sark'],
-	['50C878', 'Emerald'],
-	['514649', 'Emperor'],
-	['516E3D', 'Chalet Green'],
-	['517C66', 'Como'],
-	['51808F', 'Smalt Blue'],
-	['52001F', 'Castro'],
-	['520C17', 'Maroon Oak'],
-	['523C94', 'Gigas'],
-	['533455', 'Voodoo'],
-	['534491', 'Victoria'],
-	['53824B', 'Hippie Green'],
-	['541012', 'Heath'],
-	['544333', 'Judge Gray'],
-	['54534D', 'Fuscous Gray'],
-	['549019', 'Vida Loca'],
-	['55280C', 'Cioccolato'],
-	['555B10', 'Saratoga'],
-	['556D56', 'Finlandia'],
-	['5590D9', 'Havelock Blue'],
-	['56B4BE', 'Fountain Blue'],
-	['578363', 'Spring Leaves'],
-	['583401', 'Saddle Brown'],
-	['585562', 'Scarpa Flow'],
-	['587156', 'Cactus'],
-	['589AAF', 'Hippie Blue'],
-	['591D35', 'Wine Berry'],
-	['592804', 'Brown Bramble'],
-	['593737', 'Congo Brown'],
-	['594433', 'Millbrook'],
-	['5A6E9C', 'Waikawa Gray'],
-	['5A87A0', 'Horizon'],
-	['5B3013', 'Jambalaya'],
-	['5C0120', 'Bordeaux'],
-	['5C0536', 'Mulberry Wood'],
-	['5C2E01', 'Carnaby Tan'],
-	['5C5D75', 'Comet'],
-	['5D1E0F', 'Redwood'],
-	['5D4C51', 'Don Juan'],
-	['5D5C58', 'Chicago'],
-	['5D5E37', 'Verdigris'],
-	['5D7747', 'Dingley'],
-	['5DA19F', 'Breaker Bay'],
-	['5E483E', 'Kabul'],
-	['5E5D3B', 'Hemlock'],
-	['5F3D26', 'Irish Coffee'],
-	['5F5F6E', 'Mid Gray'],
-	['5F6672', 'Shuttle Gray'],
-	['5FA777', 'Aqua Forest'],
-	['5FB3AC', 'Tradewind'],
-	['604913', 'Horses Neck'],
-	['605B73', 'Smoky'],
-	['606E68', 'Corduroy'],
-	['6093D1', 'Danube'],
-	['612718', 'Espresso'],
-	['614051', 'Eggplant'],
-	['615D30', 'Costa Del Sol'],
-	['61845F', 'Glade Green'],
-	['622F30', 'Buccaneer'],
-	['623F2D', 'Quincy'],
-	['624E9A', 'Butterfly Bush'],
-	['625119', 'West Coast'],
-	['626649', 'Finch'],
-	['639A8F', 'Patina'],
-	['63B76C', 'Fern'],
-	['6456B7', 'Blue Violet'],
-	['646077', 'Dolphin'],
-	['646463', 'Storm Dust'],
-	['646A54', 'Siam'],
-	['646E75', 'Nevada'],
-	['6495ED', 'Cornflower Blue'],
-	['64CCDB', 'Viking'],
-	['65000B', 'Rosewood'],
-	['651A14', 'Cherrywood'],
-	['652DC1', 'Purple Heart'],
-	['657220', 'Fern Frond'],
-	['65745D', 'Willow Grove'],
-	['65869F', 'Hoki'],
-	['660045', 'Pompadour'],
-	['660099', 'Purple'],
-	['66023C', 'Tyrian Purple'],
-	['661010', 'Dark Tan'],
-	['66B58F', 'Silver Tree'],
-	['66FF00', 'Bright Green'],
-	['66FF66', "Screamin' Green"],
-	['67032D', 'Black Rose'],
-	['675FA6', 'Scampi'],
-	['676662', 'Ironside Gray'],
-	['678975', 'Viridian Green'],
-	['67A712', 'Christi'],
-	['683600', 'Nutmeg Wood Finish'],
-	['685558', 'Zambezi'],
-	['685E6E', 'Salt Box'],
-	['692545', 'Tawny Port'],
-	['692D54', 'Finn'],
-	['695F62', 'Scorpion'],
-	['697E9A', 'Lynch'],
-	['6A442E', 'Spice'],
-	['6A5D1B', 'Himalaya'],
-	['6A6051', 'Soya Bean'],
-	['6B2A14', 'Hairy Heath'],
-	['6B3FA0', 'Royal Purple'],
-	['6B4E31', 'Shingle Fawn'],
-	['6B5755', 'Dorado'],
-	['6B8BA2', 'Bermuda Gray'],
-	['6B8E23', 'Olive Drab'],
-	['6C3082', 'Eminence'],
-	['6CDAE7', 'Turquoise Blue'],
-	['6D0101', 'Lonestar'],
-	['6D5E54', 'Pine Cone'],
-	['6D6C6C', 'Dove Gray'],
-	['6D9292', 'Juniper'],
-	['6D92A1', 'Gothic'],
-	['6E0902', 'Red Oxide'],
-	['6E1D14', 'Moccaccino'],
-	['6E4826', 'Pickled Bean'],
-	['6E4B26', 'Dallas'],
-	['6E6D57', 'Kokoda'],
-	['6E7783', 'Pale Sky'],
-	['6F440C', 'Cafe Royale'],
-	['6F6A61', 'Flint'],
-	['6F8E63', 'Highland'],
-	['6F9D02', 'Limeade'],
-	['6FD0C5', 'Downy'],
-	['701C1C', 'Persian Plum'],
-	['704214', 'Sepia'],
-	['704A07', 'Antique Bronze'],
-	['704F50', 'Ferra'],
-	['706555', 'Coffee'],
-	['708090', 'Slate Gray'],
-	['711A00', 'Cedar Wood Finish'],
-	['71291D', 'Metallic Copper'],
-	['714693', 'Affair'],
-	['714AB2', 'Studio'],
-	['715D47', 'Tobacco Brown'],
-	['716338', 'Yellow Metal'],
-	['716B56', 'Peat'],
-	['716E10', 'Olivetone'],
-	['717486', 'Storm Gray'],
-	['718080', 'Sirocco'],
-	['71D9E2', 'Aquamarine Blue'],
-	['72010F', 'Venetian Red'],
-	['724A2F', 'Old Copper'],
-	['726D4E', 'Go Ben'],
-	['727B89', 'Raven'],
-	['731E8F', 'Seance'],
-	['734A12', 'Raw Umber'],
-	['736C9F', 'Kimberly'],
-	['736D58', 'Crocodile'],
-	['737829', 'Crete'],
-	['738678', 'Xanadu'],
-	['74640D', 'Spicy Mustard'],
-	['747D63', 'Limed Ash'],
-	['747D83', 'Rolling Stone'],
-	['748881', 'Blue Smoke'],
-	['749378', 'Laurel'],
-	['74C365', 'Mantis'],
-	['755A57', 'Russett'],
-	['7563A8', 'Deluge'],
-	['76395D', 'Cosmic'],
-	['7666C6', 'Blue Marguerite'],
-	['76BD17', 'Lima'],
-	['76D7EA', 'Sky Blue'],
-	['770F05', 'Dark Burgundy'],
-	['771F1F', 'Crown of Thorns'],
-	['773F1A', 'Walnut'],
-	['776F61', 'Pablo'],
-	['778120', 'Pacifika'],
-	['779E86', 'Oxley'],
-	['77DD77', 'Pastel Green'],
-	['780109', 'Japanese Maple'],
-	['782D19', 'Mocha'],
-	['782F16', 'Peanut'],
-	['78866B', 'Camouflage Green'],
-	['788A25', 'Wasabi'],
-	['788BBA', 'Ship Cove'],
-	['78A39C', 'Sea Nymph'],
-	['795D4C', 'Roman Coffee'],
-	['796878', 'Old Lavender'],
-	['796989', 'Rum'],
-	['796A78', 'Fedora'],
-	['796D62', 'Sandstone'],
-	['79DEEC', 'Spray'],
-	['7A013A', 'Siren'],
-	['7A58C1', 'Fuchsia Blue'],
-	['7A7A7A', 'Boulder'],
-	['7A89B8', 'Wild Blue Yonder'],
-	['7AC488', 'De York'],
-	['7B3801', 'Red Beech'],
-	['7B3F00', 'Cinnamon'],
-	['7B6608', 'Yukon Gold'],
-	['7B7874', 'Tapa'],
-	['7B7C94', 'Waterloo '],
-	['7B8265', 'Flax Smoke'],
-	['7B9F80', 'Amulet'],
-	['7BA05B', 'Asparagus'],
-	['7C1C05', 'Kenyan Copper'],
-	['7C7631', 'Pesto'],
-	['7C778A', 'Topaz'],
-	['7C7B7A', 'Concord'],
-	['7C7B82', 'Jumbo'],
-	['7C881A', 'Trendy Green'],
-	['7CA1A6', 'Gumbo'],
-	['7CB0A1', 'Acapulco'],
-	['7CB7BB', 'Neptune'],
-	['7D2C14', 'Pueblo'],
-	['7DA98D', 'Bay Leaf'],
-	['7DC8F7', 'Malibu'],
-	['7DD8C6', 'Bermuda'],
-	['7E3A15', 'Copper Canyon'],
-	['7F1734', 'Claret'],
-	['7F3A02', 'Peru Tan'],
-	['7F626D', 'Falcon'],
-	['7F7589', 'Mobster'],
-	['7F76D3', 'Moody Blue'],
-	['7FFF00', 'Chartreuse'],
-	['7FFFD4', 'Aquamarine'],
-	['800000', 'Maroon'],
-	['800B47', 'Rose Bud Cherry'],
-	['801818', 'Falu Red'],
-	['80341F', 'Red Robin'],
-	['803790', 'Vivid Violet'],
-	['80461B', 'Russet'],
-	['807E79', 'Friar Gray'],
-	['808000', 'Olive'],
-	['808080', 'Gray'],
-	['80B3AE', 'Gulf Stream'],
-	['80B3C4', 'Glacier'],
-	['80CCEA', 'Seagull'],
-	['81422C', 'Nutmeg'],
-	['816E71', 'Spicy Pink'],
-	['817377', 'Empress'],
-	['819885', 'Spanish Green'],
-	['826F65', 'Sand Dune'],
-	['828685', 'Gunsmoke'],
-	['828F72', 'Battleship Gray'],
-	['831923', 'Merlot'],
-	['837050', 'Shadow'],
-	['83AA5D', 'Chelsea Cucumber'],
-	['83D0C6', 'Monte Carlo'],
-	['843179', 'Plum'],
-	['84A0A0', 'Granny Smith'],
-	['8581D9', 'Chetwode Blue'],
-	['858470', 'Bandicoot'],
-	['859FAF', 'Bali Hai'],
-	['85C4CC', 'Half Baked'],
-	['860111', 'Red Devil'],
-	['863C3C', 'Lotus'],
-	['86483C', 'Ironstone'],
-	['864D1E', 'Bull Shot'],
-	['86560A', 'Rusty Nail'],
-	['868974', 'Bitter'],
-	['86949F', 'Regent Gray'],
-	['871550', 'Disco'],
-	['87756E', 'Americano'],
-	['877C7B', 'Hurricane'],
-	['878D91', 'Oslo Gray'],
-	['87AB39', 'Sushi'],
-	['885342', 'Spicy Mix'],
-	['886221', 'Kumera'],
-	['888387', 'Suva Gray'],
-	['888D65', 'Avocado'],
-	['893456', 'Camelot'],
-	['893843', 'Solid Pink'],
-	['894367', 'Cannon Pink'],
-	['897D6D', 'Makara'],
-	['8A3324', 'Burnt Umber'],
-	['8A73D6', 'True V'],
-	['8A8360', 'Clay Creek'],
-	['8A8389', 'Monsoon'],
-	['8A8F8A', 'Stack'],
-	['8AB9F1', 'Jordy Blue'],
-	['8B00FF', 'Electric Violet'],
-	['8B0723', 'Monarch'],
-	['8B6B0B', 'Corn Harvest'],
-	['8B8470', 'Olive Haze'],
-	['8B847E', 'Schooner'],
-	['8B8680', 'Natural Gray'],
-	['8B9C90', 'Mantle'],
-	['8B9FEE', 'Portage'],
-	['8BA690', 'Envy'],
-	['8BA9A5', 'Cascade'],
-	['8BE6D8', 'Riptide'],
-	['8C055E', 'Cardinal Pink'],
-	['8C472F', 'Mule Fawn'],
-	['8C5738', 'Potters Clay'],
-	['8C6495', 'Trendy Pink'],
-	['8D0226', 'Paprika'],
-	['8D3D38', 'Sanguine Brown'],
-	['8D3F3F', 'Tosca'],
-	['8D7662', 'Cement'],
-	['8D8974', 'Granite Green'],
-	['8D90A1', 'Manatee'],
-	['8DA8CC', 'Polo Blue'],
-	['8E0000', 'Red Berry'],
-	['8E4D1E', 'Rope'],
-	['8E6F70', 'Opium'],
-	['8E775E', 'Domino'],
-	['8E8190', 'Mamba'],
-	['8EABC1', 'Nepal'],
-	['8F021C', 'Pohutukawa'],
-	['8F3E33', 'El Salva'],
-	['8F4B0E', 'Korma'],
-	['8F8176', 'Squirrel'],
-	['8FD6B4', 'Vista Blue'],
-	['900020', 'Burgundy'],
-	['901E1E', 'Old Brick'],
-	['907874', 'Hemp'],
-	['907B71', 'Almond Frost'],
-	['908D39', 'Sycamore'],
-	['92000A', 'Sangria'],
-	['924321', 'Cumin'],
-	['926F5B', 'Beaver'],
-	['928573', 'Stonewall'],
-	['928590', 'Venus'],
-	['9370DB', 'Medium Purple'],
-	['93CCEA', 'Cornflower'],
-	['93DFB8', 'Algae Green'],
-	['944747', 'Copper Rust'],
-	['948771', 'Arrowtown'],
-	['950015', 'Scarlett'],
-	['956387', 'Strikemaster'],
-	['959396', 'Mountain Mist'],
-	['960018', 'Carmine'],
-	['964B00', 'Brown'],
-	['967059', 'Leather'],
-	['9678B6', "Purple Mountain's Majesty"],
-	['967BB6', 'Lavender Purple'],
-	['96A8A1', 'Pewter'],
-	['96BBAB', 'Summer Green'],
-	['97605D', 'Au Chico'],
-	['9771B5', 'Wisteria'],
-	['97CD2D', 'Atlantis'],
-	['983D61', 'Vin Rouge'],
-	['9874D3', 'Lilac Bush'],
-	['98777B', 'Bazaar'],
-	['98811B', 'Hacienda'],
-	['988D77', 'Pale Oyster'],
-	['98FF98', 'Mint Green'],
-	['990066', 'Fresh Eggplant'],
-	['991199', 'Violet Eggplant'],
-	['991613', 'Tamarillo'],
-	['991B07', 'Totem Pole'],
-	['996666', 'Copper Rose'],
-	['9966CC', 'Amethyst'],
-	['997A8D', 'Mountbatten Pink'],
-	['9999CC', 'Blue Bell'],
-	['9A3820', 'Prairie Sand'],
-	['9A6E61', 'Toast'],
-	['9A9577', 'Gurkha'],
-	['9AB973', 'Olivine'],
-	['9AC2B8', 'Shadow Green'],
-	['9B4703', 'Oregon'],
-	['9B9E8F', 'Lemon Grass'],
-	['9C3336', 'Stiletto'],
-	['9D5616', 'Hawaiian Tan'],
-	['9DACB7', 'Gull Gray'],
-	['9DC209', 'Pistachio'],
-	['9DE093', 'Granny Smith Apple'],
-	['9DE5FF', 'Anakiwa'],
-	['9E5302', 'Chelsea Gem'],
-	['9E5B40', 'Sepia Skin'],
-	['9EA587', 'Sage'],
-	['9EA91F', 'Citron'],
-	['9EB1CD', 'Rock Blue'],
-	['9EDEE0', 'Morning Glory'],
-	['9F381D', 'Cognac'],
-	['9F821C', 'Reef Gold'],
-	['9F9F9C', 'Star Dust'],
-	['9FA0B1', 'Santas Gray'],
-	['9FD7D3', 'Sinbad'],
-	['9FDD8C', 'Feijoa'],
-	['A02712', 'Tabasco'],
-	['A1750D', 'Buttered Rum'],
-	['A1ADB5', 'Hit Gray'],
-	['A1C50A', 'Citrus'],
-	['A1DAD7', 'Aqua Island'],
-	['A1E9DE', 'Water Leaf'],
-	['A2006D', 'Flirt'],
-	['A23B6C', 'Rouge'],
-	['A26645', 'Cape Palliser'],
-	['A2AAB3', 'Gray Chateau'],
-	['A2AEAB', 'Edward'],
-	['A3807B', 'Pharlap'],
-	['A397B4', 'Amethyst Smoke'],
-	['A3E3ED', 'Blizzard Blue'],
-	['A4A49D', 'Delta'],
-	['A4A6D3', 'Wistful'],
-	['A4AF6E', 'Green Smoke'],
-	['A50B5E', 'Jazzberry Jam'],
-	['A59B91', 'Zorba'],
-	['A5CB0C', 'Bahia'],
-	['A62F20', 'Roof Terracotta'],
-	['A65529', 'Paarl'],
-	['A68B5B', 'Barley Corn'],
-	['A69279', 'Donkey Brown'],
-	['A6A29A', 'Dawn'],
-	['A72525', 'Mexican Red'],
-	['A7882C', 'Luxor Gold'],
-	['A85307', 'Rich Gold'],
-	['A86515', 'Reno Sand'],
-	['A86B6B', 'Coral Tree'],
-	['A8989B', 'Dusty Gray'],
-	['A899E6', 'Dull Lavender'],
-	['A8A589', 'Tallow'],
-	['A8AE9C', 'Bud'],
-	['A8AF8E', 'Locust'],
-	['A8BD9F', 'Norway'],
-	['A8E3BD', 'Chinook'],
-	['A9A491', 'Gray Olive'],
-	['A9ACB6', 'Aluminium'],
-	['A9B2C3', 'Cadet Blue'],
-	['A9B497', 'Schist'],
-	['A9BDBF', 'Tower Gray'],
-	['A9BEF2', 'Perano'],
-	['A9C6C2', 'Opal'],
-	['AA375A', 'Night Shadz'],
-	['AA4203', 'Fire'],
-	['AA8B5B', 'Muesli'],
-	['AA8D6F', 'Sandal'],
-	['AAA5A9', 'Shady Lady'],
-	['AAA9CD', 'Logan'],
-	['AAABB7', 'Spun Pearl'],
-	['AAD6E6', 'Regent St Blue'],
-	['AAF0D1', 'Magic Mint'],
-	['AB0563', 'Lipstick'],
-	['AB3472', 'Royal Heath'],
-	['AB917A', 'Sandrift'],
-	['ABA0D9', 'Cold Purple'],
-	['ABA196', 'Bronco'],
-	['AC8A56', 'Limed Oak'],
-	['AC91CE', 'East Side'],
-	['AC9E22', 'Lemon Ginger'],
-	['ACA494', 'Napa'],
-	['ACA586', 'Hillary'],
-	['ACA59F', 'Cloudy'],
-	['ACACAC', 'Silver Chalice'],
-	['ACB78E', 'Swamp Green'],
-	['ACCBB1', 'Spring Rain'],
-	['ACDD4D', 'Conifer'],
-	['ACE1AF', 'Celadon'],
-	['AD781B', 'Mandalay'],
-	['ADBED1', 'Casper'],
-	['ADDFAD', 'Moss Green'],
-	['ADE6C4', 'Padua'],
-	['ADFF2F', 'Green Yellow'],
-	['AE4560', 'Hippie Pink'],
-	['AE6020', 'Desert'],
-	['AE809E', 'Bouquet'],
-	['AF4035', 'Medium Carmine'],
-	['AF4D43', 'Apple Blossom'],
-	['AF593E', 'Brown Rust'],
-	['AF8751', 'Driftwood'],
-	['AF8F2C', 'Alpine'],
-	['AF9F1C', 'Lucky'],
-	['AFA09E', 'Martini'],
-	['AFB1B8', 'Bombay'],
-	['AFBDD9', 'Pigeon Post'],
-	['B04C6A', 'Cadillac'],
-	['B05D54', 'Matrix'],
-	['B05E81', 'Tapestry'],
-	['B06608', 'Mai Tai'],
-	['B09A95', 'Del Rio'],
-	['B0E0E6', 'Powder Blue'],
-	['B0E313', 'Inch Worm'],
-	['B10000', 'Bright Red'],
-	['B14A0B', 'Vesuvius'],
-	['B1610B', 'Pumpkin Skin'],
-	['B16D52', 'Santa Fe'],
-	['B19461', 'Teak'],
-	['B1E2C1', 'Fringy Flower'],
-	['B1F4E7', 'Ice Cold'],
-	['B20931', 'Shiraz'],
-	['B2A1EA', 'Biloba Flower'],
-	['B32D29', 'Tall Poppy'],
-	['B35213', 'Fiery Orange'],
-	['B38007', 'Hot Toddy'],
-	['B3AF95', 'Taupe Gray'],
-	['B3C110', 'La Rioja'],
-	['B43332', 'Well Read'],
-	['B44668', 'Blush'],
-	['B4CFD3', 'Jungle Mist'],
-	['B57281', 'Turkish Rose'],
-	['B57EDC', 'Lavender'],
-	['B5A27F', 'Mongoose'],
-	['B5B35C', 'Olive Green'],
-	['B5D2CE', 'Jet Stream'],
-	['B5ECDF', 'Cruise'],
-	['B6316C', 'Hibiscus'],
-	['B69D98', 'Thatch'],
-	['B6B095', 'Heathered Gray'],
-	['B6BAA4', 'Eagle'],
-	['B6D1EA', 'Spindle'],
-	['B6D3BF', 'Gum Leaf'],
-	['B7410E', 'Rust'],
-	['B78E5C', 'Muddy Waters'],
-	['B7A214', 'Sahara'],
-	['B7A458', 'Husk'],
-	['B7B1B1', 'Nobel'],
-	['B7C3D0', 'Heather'],
-	['B7F0BE', 'Madang'],
-	['B81104', 'Milano Red'],
-	['B87333', 'Copper'],
-	['B8B56A', 'Gimblet'],
-	['B8C1B1', 'Green Spring'],
-	['B8C25D', 'Celery'],
-	['B8E0F9', 'Sail'],
-	['B94E48', 'Chestnut'],
-	['B95140', 'Crail'],
-	['B98D28', 'Marigold'],
-	['B9C46A', 'Wild Willow'],
-	['B9C8AC', 'Rainee'],
-	['BA0101', 'Guardsman Red'],
-	['BA450C', 'Rock Spray'],
-	['BA6F1E', 'Bourbon'],
-	['BA7F03', 'Pirate Gold'],
-	['BAB1A2', 'Nomad'],
-	['BAC7C9', 'Submarine'],
-	['BAEEF9', 'Charlotte'],
-	['BB3385', 'Medium Red Violet'],
-	['BB8983', 'Brandy Rose'],
-	['BBD009', 'Rio Grande'],
-	['BBD7C1', 'Surf'],
-	['BCC9C2', 'Powder Ash'],
-	['BD5E2E', 'Tuscany'],
-	['BD978E', 'Quicksand'],
-	['BDB1A8', 'Silk'],
-	['BDB2A1', 'Malta'],
-	['BDB3C7', 'Chatelle'],
-	['BDBBD7', 'Lavender Gray'],
-	['BDBDC6', 'French Gray'],
-	['BDC8B3', 'Clay Ash'],
-	['BDC9CE', 'Loblolly'],
-	['BDEDFD', 'French Pass'],
-	['BEA6C3', 'London Hue'],
-	['BEB5B7', 'Pink Swan'],
-	['BEDE0D', 'Fuego'],
-	['BF5500', 'Rose of Sharon'],
-	['BFB8B0', 'Tide'],
-	['BFBED8', 'Blue Haze'],
-	['BFC1C2', 'Silver Sand'],
-	['BFC921', 'Key Lime Pie'],
-	['BFDBE2', 'Ziggurat'],
-	['BFFF00', 'Lime'],
-	['C02B18', 'Thunderbird'],
-	['C04737', 'Mojo'],
-	['C08081', 'Old Rose'],
-	['C0C0C0', 'Silver'],
-	['C0D3B9', 'Pale Leaf'],
-	['C0D8B6', 'Pixie Green'],
-	['C1440E', 'Tia Maria'],
-	['C154C1', 'Fuchsia Pink'],
-	['C1A004', 'Buddha Gold'],
-	['C1B7A4', 'Bison Hide'],
-	['C1BAB0', 'Tea'],
-	['C1BECD', 'Gray Suit'],
-	['C1D7B0', 'Sprout'],
-	['C1F07C', 'Sulu'],
-	['C26B03', 'Indochine'],
-	['C2955D', 'Twine'],
-	['C2BDB6', 'Cotton Seed'],
-	['C2CAC4', 'Pumice'],
-	['C2E8E5', 'Jagged Ice'],
-	['C32148', 'Maroon Flush'],
-	['C3B091', 'Indian Khaki'],
-	['C3BFC1', 'Pale Slate'],
-	['C3C3BD', 'Gray Nickel'],
-	['C3CDE6', 'Periwinkle Gray'],
-	['C3D1D1', 'Tiara'],
-	['C3DDF9', 'Tropical Blue'],
-	['C41E3A', 'Cardinal'],
-	['C45655', 'Fuzzy Wuzzy Brown'],
-	['C45719', 'Orange Roughy'],
-	['C4C4BC', 'Mist Gray'],
-	['C4D0B0', 'Coriander'],
-	['C4F4EB', 'Mint Tulip'],
-	['C54B8C', 'Mulberry'],
-	['C59922', 'Nugget'],
-	['C5994B', 'Tussock'],
-	['C5DBCA', 'Sea Mist'],
-	['C5E17A', 'Yellow Green'],
-	['C62D42', 'Brick Red'],
-	['C6726B', 'Contessa'],
-	['C69191', 'Oriental Pink'],
-	['C6A84B', 'Roti'],
-	['C6C3B5', 'Ash'],
-	['C6C8BD', 'Kangaroo'],
-	['C6E610', 'Las Palmas'],
-	['C7031E', 'Monza'],
-	['C71585', 'Red Violet'],
-	['C7BCA2', 'Coral Reef'],
-	['C7C1FF', 'Melrose'],
-	['C7C4BF', 'Cloud'],
-	['C7C9D5', 'Ghost'],
-	['C7CD90', 'Pine Glade'],
-	['C7DDE5', 'Botticelli'],
-	['C88A65', 'Antique Brass'],
-	['C8A2C8', 'Lilac'],
-	['C8A528', 'Hokey Pokey'],
-	['C8AABF', 'Lily'],
-	['C8B568', 'Laser'],
-	['C8E3D7', 'Edgewater'],
-	['C96323', 'Piper'],
-	['C99415', 'Pizza'],
-	['C9A0DC', 'Light Wisteria'],
-	['C9B29B', 'Rodeo Dust'],
-	['C9B35B', 'Sundance'],
-	['C9B93B', 'Earls Green'],
-	['C9C0BB', 'Silver Rust'],
-	['C9D9D2', 'Conch'],
-	['C9FFA2', 'Reef'],
-	['C9FFE5', 'Aero Blue'],
-	['CA3435', 'Flush Mahogany'],
-	['CABB48', 'Turmeric'],
-	['CADCD4', 'Paris White'],
-	['CAE00D', 'Bitter Lemon'],
-	['CAE6DA', 'Skeptic'],
-	['CB8FA9', 'Viola'],
-	['CBCAB6', 'Foggy Gray'],
-	['CBD3B0', 'Green Mist'],
-	['CBDBD6', 'Nebula'],
-	['CC3333', 'Persian Red'],
-	['CC5500', 'Burnt Orange'],
-	['CC7722', 'Ochre'],
-	['CC8899', 'Puce'],
-	['CCCAA8', 'Thistle Green'],
-	['CCCCFF', 'Periwinkle'],
-	['CCFF00', 'Electric Lime'],
-	['CD5700', 'Tenn'],
-	['CD5C5C', 'Chestnut Rose'],
-	['CD8429', 'Brandy Punch'],
-	['CDF4FF', 'Onahau'],
-	['CEB98F', 'Sorrell Brown'],
-	['CEBABA', 'Cold Turkey'],
-	['CEC291', 'Yuma'],
-	['CEC7A7', 'Chino'],
-	['CFA39D', 'Eunry'],
-	['CFB53B', 'Old Gold'],
-	['CFDCCF', 'Tasman'],
-	['CFE5D2', 'Surf Crest'],
-	['CFF9F3', 'Humming Bird'],
-	['CFFAF4', 'Scandal'],
-	['D05F04', 'Red Stage'],
-	['D06DA1', 'Hopbush'],
-	['D07D12', 'Meteor'],
-	['D0BEF8', 'Perfume'],
-	['D0C0E5', 'Prelude'],
-	['D0F0C0', 'Tea Green'],
-	['D18F1B', 'Geebung'],
-	['D1BEA8', 'Vanilla'],
-	['D1C6B4', 'Soft Amber'],
-	['D1D2CA', 'Celeste'],
-	['D1D2DD', 'Mischka'],
-	['D1E231', 'Pear'],
-	['D2691E', 'Hot Cinnamon'],
-	['D27D46', 'Raw Sienna'],
-	['D29EAA', 'Careys Pink'],
-	['D2B48C', 'Tan'],
-	['D2DA97', 'Deco'],
-	['D2F6DE', 'Blue Romance'],
-	['D2F8B0', 'Gossip'],
-	['D3CBBA', 'Sisal'],
-	['D3CDC5', 'Swirl'],
-	['D47494', 'Charm'],
-	['D4B6AF', 'Clam Shell'],
-	['D4BF8D', 'Straw'],
-	['D4C4A8', 'Akaroa'],
-	['D4CD16', 'Bird Flower'],
-	['D4D7D9', 'Iron'],
-	['D4DFE2', 'Geyser'],
-	['D4E2FC', 'Hawkes Blue'],
-	['D54600', 'Grenadier'],
-	['D591A4', 'Can Can'],
-	['D59A6F', 'Whiskey'],
-	['D5D195', 'Winter Hazel'],
-	['D5F6E3', 'Granny Apple'],
-	['D69188', 'My Pink'],
-	['D6C562', 'Tacha'],
-	['D6CEF6', 'Moon Raker'],
-	['D6D6D1', 'Quill Gray'],
-	['D6FFDB', 'Snowy Mint'],
-	['D7837F', 'New York Pink'],
-	['D7C498', 'Pavlova'],
-	['D7D0FF', 'Fog'],
-	['D84437', 'Valencia'],
-	['D87C63', 'Japonica'],
-	['D8BFD8', 'Thistle'],
-	['D8C2D5', 'Maverick'],
-	['D8FCFA', 'Foam'],
-	['D94972', 'Cabaret'],
-	['D99376', 'Burning Sand'],
-	['D9B99B', 'Cameo'],
-	['D9D6CF', 'Timberwolf'],
-	['D9DCC1', 'Tana'],
-	['D9E4F5', 'Link Water'],
-	['D9F7FF', 'Mabel'],
-	['DA3287', 'Cerise'],
-	['DA5B38', 'Flame Pea'],
-	['DA6304', 'Bamboo'],
-	['DA6A41', 'Red Damask'],
-	['DA70D6', 'Orchid'],
-	['DA8A67', 'Copperfield'],
-	['DAA520', 'Golden Grass'],
-	['DAECD6', 'Zanah'],
-	['DAF4F0', 'Iceberg'],
-	['DAFAFF', 'Oyster Bay'],
-	['DB5079', 'Cranberry'],
-	['DB9690', 'Petite Orchid'],
-	['DB995E', 'Di Serria'],
-	['DBDBDB', 'Alto'],
-	['DBFFF8', 'Frosted Mint'],
-	['DC143C', 'Crimson'],
-	['DC4333', 'Punch'],
-	['DCB20C', 'Galliano'],
-	['DCB4BC', 'Blossom'],
-	['DCD747', 'Wattle'],
-	['DCD9D2', 'Westar'],
-	['DCDDCC', 'Moon Mist'],
-	['DCEDB4', 'Caper'],
-	['DCF0EA', 'Swans Down'],
-	['DDD6D5', 'Swiss Coffee'],
-	['DDF9F1', 'White Ice'],
-	['DE3163', 'Cerise Red'],
-	['DE6360', 'Roman'],
-	['DEA681', 'Tumbleweed'],
-	['DEBA13', 'Gold Tips'],
-	['DEC196', 'Brandy'],
-	['DECBC6', 'Wafer'],
-	['DED4A4', 'Sapling'],
-	['DED717', 'Barberry'],
-	['DEE5C0', 'Beryl Green'],
-	['DEF5FF', 'Pattens Blue'],
-	['DF73FF', 'Heliotrope'],
-	['DFBE6F', 'Apache'],
-	['DFCD6F', 'Chenin'],
-	['DFCFDB', 'Lola'],
-	['DFECDA', 'Willow Brook'],
-	['DFFF00', 'Chartreuse Yellow'],
-	['E0B0FF', 'Mauve'],
-	['E0B646', 'Anzac'],
-	['E0B974', 'Harvest Gold'],
-	['E0C095', 'Calico'],
-	['E0FFFF', 'Baby Blue'],
-	['E16865', 'Sunglo'],
-	['E1BC64', 'Equator'],
-	['E1C0C8', 'Pink Flare'],
-	['E1E6D6', 'Periglacial Blue'],
-	['E1EAD4', 'Kidnapper'],
-	['E1F6E8', 'Tara'],
-	['E25465', 'Mandy'],
-	['E2725B', 'Terracotta'],
-	['E28913', 'Golden Bell'],
-	['E292C0', 'Shocking'],
-	['E29418', 'Dixie'],
-	['E29CD2', 'Light Orchid'],
-	['E2D8ED', 'Snuff'],
-	['E2EBED', 'Mystic'],
-	['E2F3EC', 'Apple Green'],
-	['E30B5C', 'Razzmatazz'],
-	['E32636', 'Alizarin Crimson'],
-	['E34234', 'Cinnabar'],
-	['E3BEBE', 'Cavern Pink'],
-	['E3F5E1', 'Peppermint'],
-	['E3F988', 'Mindaro'],
-	['E47698', 'Deep Blush'],
-	['E49B0F', 'Gamboge'],
-	['E4C2D5', 'Melanie'],
-	['E4CFDE', 'Twilight'],
-	['E4D1C0', 'Bone'],
-	['E4D422', 'Sunflower'],
-	['E4D5B7', 'Grain Brown'],
-	['E4D69B', 'Zombie'],
-	['E4F6E7', 'Frostee'],
-	['E4FFD1', 'Snow Flurry'],
-	['E52B50', 'Amaranth'],
-	['E5841B', 'Zest'],
-	['E5CCC9', 'Dust Storm'],
-	['E5D7BD', 'Stark White'],
-	['E5D8AF', 'Hampton'],
-	['E5E0E1', 'Bon Jour'],
-	['E5E5E5', 'Mercury'],
-	['E5F9F6', 'Polar'],
-	['E64E03', 'Trinidad'],
-	['E6BE8A', 'Gold Sand'],
-	['E6BEA5', 'Cashmere'],
-	['E6D7B9', 'Double Spanish White'],
-	['E6E4D4', 'Satin Linen'],
-	['E6F2EA', 'Harp'],
-	['E6F8F3', 'Off Green'],
-	['E6FFE9', 'Hint of Green'],
-	['E6FFFF', 'Tranquil'],
-	['E77200', 'Mango Tango'],
-	['E7730A', 'Christine'],
-	['E79F8C', 'Tonys Pink'],
-	['E79FC4', 'Kobi'],
-	['E7BCB4', 'Rose Fog'],
-	['E7BF05', 'Corn'],
-	['E7CD8C', 'Putty'],
-	['E7ECE6', 'Gray Nurse'],
-	['E7F8FF', 'Lily White'],
-	['E7FEFF', 'Bubbles'],
-	['E89928', 'Fire Bush'],
-	['E8B9B3', 'Shilo'],
-	['E8E0D5', 'Pearl Bush'],
-	['E8EBE0', 'Green White'],
-	['E8F1D4', 'Chrome White'],
-	['E8F2EB', 'Gin'],
-	['E8F5F2', 'Aqua Squeeze'],
-	['E96E00', 'Clementine'],
-	['E97451', 'Burnt Sienna'],
-	['E97C07', 'Tahiti Gold'],
-	['E9CECD', 'Oyster Pink'],
-	['E9D75A', 'Confetti'],
-	['E9E3E3', 'Ebb'],
-	['E9F8ED', 'Ottoman'],
-	['E9FFFD', 'Clear Day'],
-	['EA88A8', 'Carissma'],
-	['EAAE69', 'Porsche'],
-	['EAB33B', 'Tulip Tree'],
-	['EAC674', 'Rob Roy'],
-	['EADAB8', 'Raffia'],
-	['EAE8D4', 'White Rock'],
-	['EAF6EE', 'Panache'],
-	['EAF6FF', 'Solitude'],
-	['EAF9F5', 'Aqua Spring'],
-	['EAFFFE', 'Dew'],
-	['EB9373', 'Apricot'],
-	['EBC2AF', 'Zinnwaldite'],
-	['ECA927', 'Fuel Yellow'],
-	['ECC54E', 'Ronchi'],
-	['ECC7EE', 'French Lilac'],
-	['ECCDB9', 'Just Right'],
-	['ECE090', 'Wild Rice'],
-	['ECEBBD', 'Fall Green'],
-	['ECEBCE', 'Aths Special'],
-	['ECF245', 'Starship'],
-	['ED0A3F', 'Red Ribbon'],
-	['ED7A1C', 'Tango'],
-	['ED9121', 'Carrot Orange'],
-	['ED989E', 'Sea Pink'],
-	['EDB381', 'Tacao'],
-	['EDC9AF', 'Desert Sand'],
-	['EDCDAB', 'Pancho'],
-	['EDDCB1', 'Chamois'],
-	['EDEA99', 'Primrose'],
-	['EDF5DD', 'Frost'],
-	['EDF5F5', 'Aqua Haze'],
-	['EDF6FF', 'Zumthor'],
-	['EDF9F1', 'Narvik'],
-	['EDFC84', 'Honeysuckle'],
-	['EE82EE', 'Lavender Magenta'],
-	['EEC1BE', 'Beauty Bush'],
-	['EED794', 'Chalky'],
-	['EED9C4', 'Almond'],
-	['EEDC82', 'Flax'],
-	['EEDEDA', 'Bizarre'],
-	['EEE3AD', 'Double Colonial White'],
-	['EEEEE8', 'Cararra'],
-	['EEEF78', 'Manz'],
-	['EEF0C8', 'Tahuna Sands'],
-	['EEF0F3', 'Athens Gray'],
-	['EEF3C3', 'Tusk'],
-	['EEF4DE', 'Loafer'],
-	['EEF6F7', 'Catskill White'],
-	['EEFDFF', 'Twilight Blue'],
-	['EEFF9A', 'Jonquil'],
-	['EEFFE2', 'Rice Flower'],
-	['EF863F', 'Jaffa'],
-	['EFEFEF', 'Gallery'],
-	['EFF2F3', 'Porcelain'],
-	['F091A9', 'Mauvelous'],
-	['F0D52D', 'Golden Dream'],
-	['F0DB7D', 'Golden Sand'],
-	['F0DC82', 'Buff'],
-	['F0E2EC', 'Prim'],
-	['F0E68C', 'Khaki'],
-	['F0EEFD', 'Selago'],
-	['F0EEFF', 'Titan White'],
-	['F0F8FF', 'Alice Blue'],
-	['F0FCEA', 'Feta'],
-	['F18200', 'Gold Drop'],
-	['F19BAB', 'Wewak'],
-	['F1E788', 'Sahara Sand'],
-	['F1E9D2', 'Parchment'],
-	['F1E9FF', 'Blue Chalk'],
-	['F1EEC1', 'Mint Julep'],
-	['F1F1F1', 'Seashell'],
-	['F1F7F2', 'Saltpan'],
-	['F1FFAD', 'Tidal'],
-	['F1FFC8', 'Chiffon'],
-	['F2552A', 'Flamingo'],
-	['F28500', 'Tangerine'],
-	['F2C3B2', 'Mandys Pink'],
-	['F2F2F2', 'Concrete'],
-	['F2FAFA', 'Black Squeeze'],
-	['F34723', 'Pomegranate'],
-	['F3AD16', 'Buttercup'],
-	['F3D69D', 'New Orleans'],
-	['F3D9DF', 'Vanilla Ice'],
-	['F3E7BB', 'Sidecar'],
-	['F3E9E5', 'Dawn Pink'],
-	['F3EDCF', 'Wheatfield'],
-	['F3FB62', 'Canary'],
-	['F3FBD4', 'Orinoco'],
-	['F3FFD8', 'Carla'],
-	['F400A1', 'Hollywood Cerise'],
-	['F4A460', 'Sandy brown'],
-	['F4C430', 'Saffron'],
-	['F4D81C', 'Ripe Lemon'],
-	['F4EBD3', 'Janna'],
-	['F4F2EE', 'Pampas'],
-	['F4F4F4', 'Wild Sand'],
-	['F4F8FF', 'Zircon'],
-	['F57584', 'Froly'],
-	['F5C85C', 'Cream Can'],
-	['F5C999', 'Manhattan'],
-	['F5D5A0', 'Maize'],
-	['F5DEB3', 'Wheat'],
-	['F5E7A2', 'Sandwisp'],
-	['F5E7E2', 'Pot Pourri'],
-	['F5E9D3', 'Albescent White'],
-	['F5EDEF', 'Soft Peach'],
-	['F5F3E5', 'Ecru White'],
-	['F5F5DC', 'Beige'],
-	['F5FB3D', 'Golden Fizz'],
-	['F5FFBE', 'Australian Mint'],
-	['F64A8A', 'French Rose'],
-	['F653A6', 'Brilliant Rose'],
-	['F6A4C9', 'Illusion'],
-	['F6F0E6', 'Merino'],
-	['F6F7F7', 'Black Haze'],
-	['F6FFDC', 'Spring Sun'],
-	['F7468A', 'Violet Red'],
-	['F77703', 'Chilean Fire'],
-	['F77FBE', 'Persian Pink'],
-	['F7B668', 'Rajah'],
-	['F7C8DA', 'Azalea'],
-	['F7DBE6', 'We Peep'],
-	['F7F2E1', 'Quarter Spanish White'],
-	['F7F5FA', 'Whisper'],
-	['F7FAF7', 'Snow Drift'],
-	['F8B853', 'Casablanca'],
-	['F8C3DF', 'Chantilly'],
-	['F8D9E9', 'Cherub'],
-	['F8DB9D', 'Marzipan'],
-	['F8DD5C', 'Energy Yellow'],
-	['F8E4BF', 'Givry'],
-	['F8F0E8', 'White Linen'],
-	['F8F4FF', 'Magnolia'],
-	['F8F6F1', 'Spring Wood'],
-	['F8F7DC', 'Coconut Cream'],
-	['F8F7FC', 'White Lilac'],
-	['F8F8F7', 'Desert Storm'],
-	['F8F99C', 'Texas'],
-	['F8FACD', 'Corn Field'],
-	['F8FDD3', 'Mimosa'],
-	['F95A61', 'Carnation'],
-	['F9BF58', 'Saffron Mango'],
-	['F9E0ED', 'Carousel Pink'],
-	['F9E4BC', 'Dairy Cream'],
-	['F9E663', 'Portica'],
-	['F9EAF3', 'Amour'],
-	['F9F8E4', 'Rum Swizzle'],
-	['F9FF8B', 'Dolly'],
-	['F9FFF6', 'Sugar Cane'],
-	['FA7814', 'Ecstasy'],
-	['FA9D5A', 'Tan Hide'],
-	['FAD3A2', 'Corvette'],
-	['FADFAD', 'Peach Yellow'],
-	['FAE600', 'Turbo'],
-	['FAEAB9', 'Astra'],
-	['FAECCC', 'Champagne'],
-	['FAF0E6', 'Linen'],
-	['FAF3F0', 'Fantasy'],
-	['FAF7D6', 'Citrine White'],
-	['FAFAFA', 'Alabaster'],
-	['FAFDE4', 'Hint of Yellow'],
-	['FAFFA4', 'Milan'],
-	['FB607F', 'Brink Pink'],
-	['FB8989', 'Geraldine'],
-	['FBA0E3', 'Lavender Rose'],
-	['FBA129', 'Sea Buckthorn'],
-	['FBAC13', 'Sun'],
-	['FBAED2', 'Lavender Pink'],
-	['FBB2A3', 'Rose Bud'],
-	['FBBEDA', 'Cupid'],
-	['FBCCE7', 'Classic Rose'],
-	['FBCEB1', 'Apricot Peach'],
-	['FBE7B2', 'Banana Mania'],
-	['FBE870', 'Marigold Yellow'],
-	['FBE96C', 'Festival'],
-	['FBEA8C', 'Sweet Corn'],
-	['FBEC5D', 'Candy Corn'],
-	['FBF9F9', 'Hint of Red'],
-	['FBFFBA', 'Shalimar'],
-	['FC0FC0', 'Shocking Pink'],
-	['FC80A5', 'Tickle Me Pink'],
-	['FC9C1D', 'Tree Poppy'],
-	['FCC01E', 'Lightning Yellow'],
-	['FCD667', 'Goldenrod'],
-	['FCD917', 'Candlelight'],
-	['FCDA98', 'Cherokee'],
-	['FCF4D0', 'Double Pearl Lusta'],
-	['FCF4DC', 'Pearl Lusta'],
-	['FCF8F7', 'Vista White'],
-	['FCFBF3', 'Bianca'],
-	['FCFEDA', 'Moon Glow'],
-	['FCFFE7', 'China Ivory'],
-	['FCFFF9', 'Ceramic'],
-	['FD0E35', 'Torch Red'],
-	['FD5B78', 'Wild Watermelon'],
-	['FD7B33', 'Crusta'],
-	['FD7C07', 'Sorbus'],
-	['FD9FA2', 'Sweet Pink'],
-	['FDD5B1', 'Light Apricot'],
-	['FDD7E4', 'Pig Pink'],
-	['FDE1DC', 'Cinderella'],
-	['FDE295', 'Golden Glow'],
-	['FDE910', 'Lemon'],
-	['FDF5E6', 'Old Lace'],
-	['FDF6D3', 'Half Colonial White'],
-	['FDF7AD', 'Drover'],
-	['FDFEB8', 'Pale Prim'],
-	['FDFFD5', 'Cumulus'],
-	['FE28A2', 'Persian Rose'],
-	['FE4C40', 'Sunset Orange'],
-	['FE6F5E', 'Bittersweet'],
-	['FE9D04', 'California'],
-	['FEA904', 'Yellow Sea'],
-	['FEBAAD', 'Melon'],
-	['FED33C', 'Bright Sun'],
-	['FED85D', 'Dandelion'],
-	['FEDB8D', 'Salomie'],
-	['FEE5AC', 'Cape Honey'],
-	['FEEBF3', 'Remy'],
-	['FEEFCE', 'Oasis'],
-	['FEF0EC', 'Bridesmaid'],
-	['FEF2C7', 'Beeswax'],
-	['FEF3D8', 'Bleach White'],
-	['FEF4CC', 'Pipi'],
-	['FEF4DB', 'Half Spanish White'],
-	['FEF4F8', 'Wisp Pink'],
-	['FEF5F1', 'Provincial Pink'],
-	['FEF7DE', 'Half Dutch White'],
-	['FEF8E2', 'Solitaire'],
-	['FEF8FF', 'White Pointer'],
-	['FEF9E3', 'Off Yellow'],
-	['FEFCED', 'Orange White'],
-	['FF0000', 'Red'],
-	['FF007F', 'Rose'],
-	['FF00CC', 'Purple Pizzazz'],
-	['FF00FF', 'Magenta / Fuchsia'],
-	['FF2400', 'Scarlet'],
-	['FF3399', 'Wild Strawberry'],
-	['FF33CC', 'Razzle Dazzle Rose'],
-	['FF355E', 'Radical Red'],
-	['FF3F34', 'Red Orange'],
-	['FF4040', 'Coral Red'],
-	['FF4D00', 'Vermilion'],
-	['FF4F00', 'International Orange'],
-	['FF6037', 'Outrageous Orange'],
-	['FF6600', 'Blaze Orange'],
-	['FF66FF', 'Pink Flamingo'],
-	['FF681F', 'Orange'],
-	['FF69B4', 'Hot Pink'],
-	['FF6B53', 'Persimmon'],
-	['FF6FFF', 'Blush Pink'],
-	['FF7034', 'Burning Orange'],
-	['FF7518', 'Pumpkin'],
-	['FF7D07', 'Flamenco'],
-	['FF7F00', 'Flush Orange'],
-	['FF7F50', 'Coral'],
-	['FF8C69', 'Salmon'],
-	['FF9000', 'Pizazz'],
-	['FF910F', 'West Side'],
-	['FF91A4', 'Pink Salmon'],
-	['FF9933', 'Neon Carrot'],
-	['FF9966', 'Atomic Tangerine'],
-	['FF9980', 'Vivid Tangerine'],
-	['FF9E2C', 'Sunshade'],
-	['FFA000', 'Orange Peel'],
-	['FFA194', 'Mona Lisa'],
-	['FFA500', 'Web Orange'],
-	['FFA6C9', 'Carnation Pink'],
-	['FFAB81', 'Hit Pink'],
-	['FFAE42', 'Yellow Orange'],
-	['FFB0AC', 'Cornflower Lilac'],
-	['FFB1B3', 'Sundown'],
-	['FFB31F', 'My Sin'],
-	['FFB555', 'Texas Rose'],
-	['FFB7D5', 'Cotton Candy'],
-	['FFB97B', 'Macaroni and Cheese'],
-	['FFBA00', 'Selective Yellow'],
-	['FFBD5F', 'Koromiko'],
-	['FFBF00', 'Amber'],
-	['FFC0A8', 'Wax Flower'],
-	['FFC0CB', 'Pink'],
-	['FFC3C0', 'Your Pink'],
-	['FFC901', 'Supernova'],
-	['FFCBA4', 'Flesh'],
-	['FFCC33', 'Sunglow'],
-	['FFCC5C', 'Golden Tainoi'],
-	['FFCC99', 'Peach Orange'],
-	['FFCD8C', 'Chardonnay'],
-	['FFD1DC', 'Pastel Pink'],
-	['FFD2B7', 'Romantic'],
-	['FFD38C', 'Grandis'],
-	['FFD700', 'Gold'],
-	['FFD800', 'School bus Yellow'],
-	['FFD8D9', 'Cosmos'],
-	['FFDB58', 'Mustard'],
-	['FFDCD6', 'Peach Schnapps'],
-	['FFDDAF', 'Caramel'],
-	['FFDDCD', 'Tuft Bush'],
-	['FFDDCF', 'Watusi'],
-	['FFDDF4', 'Pink Lace'],
-	['FFDEAD', 'Navajo White'],
-	['FFDEB3', 'Frangipani'],
-	['FFE1DF', 'Pippin'],
-	['FFE1F2', 'Pale Rose'],
-	['FFE2C5', 'Negroni'],
-	['FFE5A0', 'Cream Brulee'],
-	['FFE5B4', 'Peach'],
-	['FFE6C7', 'Tequila'],
-	['FFE772', 'Kournikova'],
-	['FFEAC8', 'Sandy Beach'],
-	['FFEAD4', 'Karry'],
-	['FFEC13', 'Broom'],
-	['FFEDBC', 'Colonial White'],
-	['FFEED8', 'Derby'],
-	['FFEFA1', 'Vis Vis'],
-	['FFEFC1', 'Egg White'],
-	['FFEFD5', 'Papaya Whip'],
-	['FFEFEC', 'Fair Pink'],
-	['FFF0DB', 'Peach Cream'],
-	['FFF0F5', 'Lavender blush'],
-	['FFF14F', 'Gorse'],
-	['FFF1B5', 'Buttermilk'],
-	['FFF1D8', 'Pink Lady'],
-	['FFF1EE', 'Forget Me Not'],
-	['FFF1F9', 'Tutu'],
-	['FFF39D', 'Picasso'],
-	['FFF3F1', 'Chardon'],
-	['FFF46E', 'Paris Daisy'],
-	['FFF4CE', 'Barley White'],
-	['FFF4DD', 'Egg Sour'],
-	['FFF4E0', 'Sazerac'],
-	['FFF4E8', 'Serenade'],
-	['FFF4F3', 'Chablis'],
-	['FFF5EE', 'Seashell Peach'],
-	['FFF5F3', 'Sauvignon'],
-	['FFF6D4', 'Milk Punch'],
-	['FFF6DF', 'Varden'],
-	['FFF6F5', 'Rose White'],
-	['FFF8D1', 'Baja White'],
-	['FFF9E2', 'Gin Fizz'],
-	['FFF9E6', 'Early Dawn'],
-	['FFFACD', 'Lemon Chiffon'],
-	['FFFAF4', 'Bridal Heath'],
-	['FFFBDC', 'Scotch Mist'],
-	['FFFBF9', 'Soapstone'],
-	['FFFC99', 'Witch Haze'],
-	['FFFCEA', 'Buttery White'],
-	['FFFCEE', 'Island Spice'],
-	['FFFDD0', 'Cream'],
-	['FFFDE6', 'Chilean Heath'],
-	['FFFDE8', 'Travertine'],
-	['FFFDF3', 'Orchid White'],
-	['FFFDF4', 'Quarter Pearl Lusta'],
-	['FFFEE1', 'Half and Half'],
-	['FFFEEC', 'Apricot White'],
-	['FFFEF0', 'Rice Cake'],
-	['FFFEF6', 'Black White'],
-	['FFFEFD', 'Romance'],
-	['FFFF00', 'Yellow'],
-	['FFFF66', 'Laser Lemon'],
-	['FFFF99', 'Pale Canary'],
-	['FFFFB4', 'Portafino'],
-	['FFFFF0', 'Ivory'],
-	['FFFFFF', 'White'],
-
-	['5c2223', '暗玉紫'],
-	['eea2a4', '牡丹粉红'],
-	['5a191b', '栗紫'],
-	['f07c82', '香叶红'],
-	['5a1216', '葡萄酱紫'],
-	['ed5a65', '艳红'],
-	['c04851', '玉红'],
-	['ee3f4d', '茶花红'],
-	['c02c38', '高粱红'],
-	['a7535a', '满江红'],
-	['e3b4b8', '鼠鼻红'],
-	['f0a1a8', '合欢红'],
-	['f1939c', '春梅红'],
-	['a61b29', '苋菜红'],
-	['894e54', '烟红'],
-	['c45a65', '莓红'],
-	['d11a2d', '鹅冠红'],
-	['c21f30', '枫叶红'],
-	['de1c31', '唐菖蒲红'],
-	['7c1823', '枣红'],
-	['541e24', '猪肝紫'],
-	['4c1f24', '葡萄紫'],
-	['82202b', '暗紫苑红'],
-	['82111f', '殷红'],
-	['ef475d', '草茉莉红'],
-	['4d1018', '酱紫'],
-	['ed556a', '山茶红'],
-	['7a7374', '锌灰'],
-	['f03752', '海棠红'],
-	['e6d2d5', '蓟粉红'],
-	['f0c9cf', '石蕊红'],
-	['ee2746', '淡曙红'],
-	['2b1216', '李紫'],
-	['ee4863', '石竹红'],
-	['e77c8e', '淡茜红'],
-	['500a16', '金鱼紫'],
-	['c27c88', '山黎豆红'],
-	['73575c', '鼠背灰'],
-	['ee4866', '淡蕊香红'],
-	['621624', '甘蔗紫'],
-	['ce5777', '月季红'],
-	['cc163a', '尖晶玉红'],
-	['f1c4cd', '水红'],
-	['eeb8c3', '姜红'],
-	['856d72', '芦灰'],
-	['2d0c13', '茄皮紫'],
-	['36282b', '苍蝇灰'],
-	['bf3553', '锦葵红'],
-	['ec9bad', '粉团花红'],
-	['63071c', '石竹紫'],
-	['30161c', '卵石紫'],
-	['eea6b7', '晶红'],
-	['e9ccd3', '芝兰紫'],
-	['eba0b3', '芍药耕红'],
-	['4f383e', '暮云灰'],
-	['ed9db2', '豇豆红'],
-	['ec8aa4', '报春红'],
-	['ec7696', '淡绛红'],
-	['ea7293', '凤仙花红'],
-	['ef82a0', '霞光红'],
-	['ec2c64', '喜蛋红'],
-	['eb507e', '夹竹桃红'],
-	['eb3c70', '松叶牡丹红'],
-	['ea517f', '莲瓣红'],
-	['de7897', '白芨红'],
-	['b598a1', '隐红灰'],
-	['ed2f6a', '榲桲红'],
-	['c5708b', '酢酱草红'],
-	['33141e', '火鹅紫'],
-	['621d34', '鹞冠紫'],
-	['ef3473', '品红'],
-	['382129', '磨石紫'],
-	['310f1b', '墨紫'],
-	['381924', '檀紫'],
-	['e16c96', '初荷红'],
-	['951c48', '菜头紫'],
-	['62102e', '葡萄酒红'],
-	['e0c8d1', '淡青紫'],
-	['d13c74', '菠根红'],
-	['4b1e2f', '海象紫'],
-	['ec4e8a', '兔眼红'],
-	['de3f7c', '嫩菱红'],
-	['a8456b', '洋葱紫'],
-	['ce5e8a', '吊钟花红'],
-	['461629', '绀紫'],
-	['ee2c79', '紫荆红'],
-	['ef498b', '扁豆花红'],
-	['ede3e7', '马鞭草紫'],
-	['ec2d7a', '藏花红'],
-	['482936', '斑鸠灰'],
-	['440e25', '古铜紫'],
-	['d2568c', '丹紫红'],
-	['e9d7df', '丁香淡紫'],
-	['d2357d', '玫瑰红'],
-	['36292f', '古鼎灰'],
-	['d276a3', '菱锰红'],
-	['c06f98', '樱草紫'],
-	['cc5595', '龙须红'],
-	['c35691', '电气石红'],
-	['ba2f7b', '玫瑰紫'],
-	['9b1e64', '苋菜紫'],
-	['5d3f51', '紫灰'],
-	['4e2a40', '龙睛鱼紫'],
-	['bc84a8', '青蛤壳紫'],
-	['c08eaf', '萝兰紫'],
-	['411c35', '荸荠紫'],
-	['ad6598', '豆蔻紫'],
-	['a35c8f', '扁豆紫'],
-	['681752', '牵牛紫'],
-	['894276', '芓紫'],
-	['7e2065', '葛巾紫'],
-	['8b2671', '青莲'],
-	['983680', '芥花紫'],
-	['c8adc4', '凤信紫'],
-	['1c0d1a', '深牵牛紫'],
-	['7e1671', '魏紫'],
-	['1e131d', '乌梅紫'],
-	['813c85', '桔梗紫'],
-	['d1c2d3', '淡牵牛紫'],
-	['3e3841', '剑锋紫'],
-	['815c94', '蕈紫'],
-	['806d9e', '槿紫'],
-	['e2e1e4', '芡食白'],
-	['322f3b', '龙葵紫'],
-	['8076a3', '藤萝紫'],
-	['35333c', '沙鱼灰'],
-	['22202e', '暗龙胆紫'],
-	['131124', '暗蓝紫'],
-	['302f4b', '野葡萄紫'],
-	['525288', '野菊紫'],
-	['2f2f35', '水牛灰'],
-	['ccccd6', '远山紫'],
-	['74759b', '螺甸紫'],
-	['1f2040', '晶石紫'],
-	['2e317c', '满天星紫'],
-	['a7a8bd', '淡蓝紫'],
-	['61649f', '山梗紫'],
-	['2d2e36', '牛角灰'],
-	['5e616d', '鱼尾灰'],
-	['47484c', '瓦罐灰'],
-	['0f1423', '钢蓝'],
-	['131824', '燕颔蓝'],
-	['475164', '鲸鱼灰'],
-	['2b333e', '青灰'],
-	['1c2938', '鸽蓝'],
-	['101f30', '暗蓝'],
-	['142334', '钢青'],
-	['15559a', '海涛蓝'],
-	['0f59a4', '飞燕草蓝'],
-	['1661ab', '靛青'],
-	['3170a7', '安安蓝'],
-	['346c9c', '海军蓝'],
-	['2775b6', '景泰蓝'],
-	['2b73af', '品蓝'],
-	['2474b5', '尼罗蓝'],
-	['4e7ca1', '蝶翅蓝'],
-	['2376b7', '花青'],
-	['144a74', '鷃蓝'],
-	['93b5cf', '星蓝'],
-	['2177b8', '虹蓝'],
-	['126bae', '柏林蓝'],
-	['1772b4', '群青'],
-	['baccd9', '云水蓝'],
-	['619ac3', '羽扇豆蓝'],
-	['495c69', '战舰灰'],
-	['8fb2c9', '晴山蓝'],
-	['5698c3', '睛蓝'],
-	['11659a', '搪磁蓝'],
-	['2983bb', '潮蓝'],
-	['1677b3', '天蓝'],
-	['c4cbcf', '大理石灰'],
-	['1177b0', '牵牛花蓝'],
-	['2486b9', '宝石蓝'],
-	['5e7987', '淡蓝灰'],
-	['74787a', '嫩灰'],
-	['cdd1d3', '银鱼白'],
-	['1781b5', '釉蓝'],
-	['66a9c9', '涧石蓝'],
-	['d0dfe6', '远天蓝'],
-	['2f90b9', '云山蓝'],
-	['8abcd1', '秋波蓝'],
-	['c3d7df', '井天蓝'],
-	['158bb8', '鸢尾蓝'],
-	['d8e3e7', '云峰白'],
-	['b2bbbe', '星灰'],
-	['1a94bc', '钴蓝'],
-	['5cb3cc', '碧青'],
-	['134857', '苍蓝'],
-	['132c33', '深灰蓝'],
-	['21373d', '灰蓝'],
-	['b0d5df', '湖水蓝'],
-	['22a2c3', '海青'],
-	['474b4c', '黄昏灰'],
-	['63bbd0', '霁青'],
-	['126e82', '玉鈫蓝'],
-	['0f95b0', '胆矾蓝'],
-	['1491a8', '樫鸟蓝'],
-	['c7d2d4', '鸥蓝'],
-	['1e9eb3', '翠蓝'],
-	['3b818c', '蜻蜓蓝'],
-	['0eb0c9', '孔雀蓝'],
-	['29b7cb', '蔚蓝'],
-	['51c4d3', '瀑布蓝'],
-	['7cabb1', '闪蓝'],
-	['10aec2', '甸子蓝'],
-	['648e93', '晚波蓝'],
-	['93d5dc', '清水蓝'],
-	['617172', '夏云灰'],
-	['c6e6e8', '海天蓝'],
-	['869d9d', '虾壳青'],
-	['57c3c2', '石绿'],
-	['c4d7d6', '穹灰'],
-	['12aa9c', '美蝶绿'],
-	['737c7b', '垩灰'],
-	['12a182', '蓝绿'],
-	['1ba784', '竹绿'],
-	['428675', '亚丁绿'],
-	['c0c4c3', '月影白'],
-	['248067', '海王绿'],
-	['1a3b32', '深海绿'],
-	['314a43', '绿灰'],
-	['2c9678', '青矾绿'],
-	['223e36', '苍绿'],
-	['497568', '飞泉绿'],
-	['141e1b', '莽丛绿'],
-	['69a794', '梧枝绿'],
-	['2bae85', '铜绿'],
-	['9abeaf', '草原远绿'],
-	['45b787', '蛙绿'],
-	['92b3a5', '浪花绿'],
-	['1f2623', '苷蓝绿'],
-	['83cbac', '粉绿'],
-	['70887d', '淡绿灰'],
-	['55bb8a', '麦苗绿'],
-	['20a162', '翠绿'],
-	['40a070', '葱绿'],
-	['1a6840', '荷叶绿'],
-	['61ac85', '淡绿'],
-	['68b88e', '田园绿'],
-	['a4cab6', '玉簪绿'],
-	['3c9566', '蟾绿'],
-	['5dbe8a', '蔻梢绿'],
-	['207f4c', '薄荷绿'],
-	['eef7f2', '月白'],
-	['579572', '蛋白石绿'],
-	['b9dec9', '竹篁绿'],
-	['229453', '孔雀绿'],
-	['20894d', '宫殿绿'],
-	['15231b', '云杉绿'],
-	['66c18c', '毛绿'],
-	['a4aca7', '冰山蓝'],
-	['8a988e', '明灰'],
-	['9eccab', '明绿'],
-	['83a78d', '松霜绿'],
-	['485b4d', '白屈菜绿'],
-	['5d655f', '狼烟灰'],
-	['6e8b74', '瓦松绿'],
-	['2b312c', '槲寄生绿'],
-	['c6dfc8', '淡翠绿'],
-	['41b349', '玉髓绿'],
-	['43b244', '鲜绿'],
-	['253d24', '油绿'],
-	['41ae3c', '宝石绿'],
-	['add5a2', '嘉陵水绿'],
-	['5e665b', '田螺绿'],
-	['8cc269', '水绿'],
-	['5bae23', '鹦鹉绿'],
-	['dfecd5', '艾背绿'],
-	['cad3c3', '艾绿'],
-	['9fa39a', '镍灰'],
-	['b2cf87', '橄榄石绿'],
-	['96c24e', '芽绿'],
-	['f0f5e5', '嫩菊绿'],
-	['b7d07a', '芦苇绿'],
-	['d0deaa', '姚黄'],
-	['373834', '蒽油绿'],
-	['bacf65', '苹果绿'],
-	['e2e7bf', '海沬绿'],
-	['bec936', '橄榄黄绿'],
-	['d2d97a', '槐花黄绿'],
-	['e2d849', '蝶黄'],
-	['fffef8', '象牙白'],
-	['5e5314', '橄榄绿'],
-	['fffef9', '雪白'],
-	['ad9e5f', '淡灰绿'],
-	['fed71a', '佛手黄'],
-	['f9f4dc', '乳白'],
-	['e4bf11', '香蕉黄'],
-	['d2b116', '新禾绿'],
-	['fbda41', '油菜花黄'],
-	['eed045', '秋葵黄'],
-	['f1ca17', '柚黄'],
-	['d2b42c', '草黄'],
-	['f2ce2b', '硫华黄'],
-	['e2c027', '姜黄'],
-	['645822', '潭水绿'],
-	['fcd217', '金瓜黄'],
-	['f8df70', '麦秆黄'],
-	['dfc243', '蒿黄'],
-	['f8df72', '茉莉黄'],
-	['ffd111', '藤黄'],
-	['ddc871', '芒果黄'],
-	['fffefa', '海参灰'],
-	['867018', '碧螺春绿'],
-	['887322', '苔绿'],
-	['fcd337', '柠檬黄'],
-	['8e804b', '草灰绿'],
-	['fecc11', '向日葵黄'],
-	['fccb16', '素馨黄'],
-	['ffc90c', '乳鸭黄'],
-	['b7ae8f', '月灰'],
-	['f8d86a', '葵扇黄'],
-	['fbcd31', '大豆黄'],
-	['fcc307', '金盏黄'],
-	['e9ddb6', '菊蕾白'],
-	['fcc515', '黄连黄'],
-	['f7e8aa', '杏仁黄'],
-	['e8b004', '谷黄'],
-	['f9c116', '木瓜黄'],
-	['f9d770', '淡茧黄'],
-	['fbc82f', '雅梨黄'],
-	['f1f0ed', '银白'],
-	['5b4913', '棕榈绿'],
-	['f6c430', '鹦鹉冠黄'],
-	['b78d12', '枯绿'],
-	['f9bd10', '浅烙黄'],
-	['f9d367', '淡密黄'],
-	['d9a40e', '芥黄'],
-	['ebb10d', '栀子黄'],
-	['584717', '暗海水绿'],
-	['f7de98', '篾黄'],
-	['f9f1db', '蚌肉白'],
-	['f4ce69', '炒米黄'],
-	['feba07', '琥珀黄'],
-	['8a6913', '灰绿'],
-	['876818', '粽叶绿'],
-	['b6a476', '尘灰'],
-	['fcb70a', '鼬黄'],
-	['f0d695', '象牙黄'],
-	['87723e', '鲛青'],
-	['f8e8c1', '豆汁黄'],
-	['d6a01d', '土黄'],
-	['f7da94', '香水玫瑰黄'],
-	['eaad1a', '虎皮黄'],
-	['fbb612', '鸡蛋黄'],
-	['b5aa90', '银鼠灰'],
-	['f7f4ed', '鱼肚白'],
-	['f8bc31', '初熟杏黄'],
-	['b78b26', '山鸡黄'],
-	['e5d3aa', '莲子白'],
-	['695e45', '蟹壳灰'],
-	['e5b751', '沙石黄'],
-	['f3bf4c', '甘草黄'],
-	['685e48', '燕羽灰'],
-	['fbb929', '鹅掌黄'],
-	['f9d27d', '麦芽糖黄'],
-	['e2c17c', '浅驼色'],
-	['b4a992', '百灵鸟灰'],
-	['f6dead', '酪黄'],
-	['f2e6ce', '荔肉白'],
-	['f8e0b0', '淡肉色'],
-	['393733', '河豚灰'],
-	['835e1d', '蜴蜊绿'],
-	['f8f4ed', '汉白玉'],
-	['fca104', '橙皮黄'],
-	['815f25', '莱阳梨黄'],
-	['fca106', '枇杷黄'],
-	['ffa60f', '金叶黄'],
-	['806332', '苍黄'],
-	['fbf2e3', '粉白'],
-	['fba414', '淡橘橙'],
-	['e4dfd7', '珍珠灰'],
-	['826b48', '龟背黄'],
-	['dad4cb', '浅灰'],
-	['bbb5ac', '铅灰'],
-	['bbb5ac', '中灰'],
-	['ff9900', '雄黄'],
-	['fbb957', '蜜黄'],
-	['dc9123', '风帆黄'],
-	['c09351', '桂皮淡棕'],
-	['f4a83a', '金莺黄'],
-	['f7c173', '肉色'],
-	['e7a23f', '凋叶棕'],
-	['533c1b', '古铜绿'],
-	['f9e8d0', '落英淡粉'],
-	['de9e44', '软木黄'],
-	['f9cb8b', '瓜瓤粉'],
-	['f9a633', '榴萼黄'],
-	['daa45a', '玳瑁黄'],
-	['553b18', '焦茶绿'],
-	['513c20', '蟹壳绿'],
-	['986524', '山鸡褐'],
-	['97846c', '猴毛灰'],
-	['e3bd8d', '鹿角棕'],
-	['4d4030', '淡松烟'],
-	['fb8b05', '万寿菊黄'],
-	['f8c387', '蛋壳黄'],
-	['f28e16', '杏黄'],
-	['503e2a', '橄榄灰'],
-	['4a4035', '鹤灰'],
-	['cfccc9', '玛瑙灰'],
-	['c1b2a3', '淡银灰'],
-	['867e76', '瓦灰'],
-	['847c74', '夜灰'],
-	['fc8c23', '北瓜黄'],
-	['fbecde', '荷花白'],
-	['4f4032', '松鼠灰'],
-	['fbeee2', '淡米粉'],
-	['81776e', '深灰'],
-	['9a8878', '海鸥灰'],
-	['5d3d21', '茶褐'],
-	['66462a', '驼色'],
-	['918072', '银灰'],
-	['d99156', '鹿皮褐'],
-	['c1651a', '槟榔综'],
-	['d4c4b7', '晓灰'],
-	['be7e4a', '淡赭'],
-	['5c3719', '古铜褐'],
-	['de7622', '麂棕'],
-	['db8540', '醉瓜肉'],
-	['80766e', '雁灰'],
-	['f09c5a', '鲑鱼红'],
-	['f97d1c', '橘橙'],
-	['f26b1f', '金黄'],
-	['f8b37f', '玫瑰粉'],
-	['fa7e23', '美人焦橙'],
-	['f9e9cd', '米色'],
-	['b7a091', '蛛网灰'],
-	['945833', '淡咖啡'],
-	['f0945d', '海螺橙'],
-	['964d22', '岩石棕'],
-	['954416', '芒果棕'],
-	['e16723', '陶瓷红'],
-	['fc7930', '菠萝红'],
-	['cf7543', '余烬红'],
-	['f86b1d', '金莲花橙'],
-	['cd6227', '火砖红'],
-	['f6dcce', '初桃粉红'],
-	['d85916', '铁棕'],
-	['f7cfba', '介壳淡粉红'],
-	['f27635', '蟹壳红'],
-	['e46828', '金驼'],
-	['fc6315', '燕颔红'],
-	['b7511d', '淡可可棕'],
-	['ea8958', '晨曦红'],
-	['e8b49a', '玉粉红'],
-	['fb9968', '野蔷薇红'],
-	['edc3ae', '藕荷'],
-	['363433', '长石灰'],
-	['8b614d', '中红灰'],
-	['aa6a4c', '火泥棕'],
-	['a6522c', '绀红'],
-	['fa5d19', '莓酱红'],
-	['71361d', '丁香棕'],
-	['b89485', '淡玫瑰灰'],
-	['f68c60', '瓜瓤红'],
-	['f6ad8f', '淡藏花红'],
-	['732e12', '筍皮棕'],
-	['f7cdbc', '润红'],
-	['ef632b', '龙睛鱼红'],
-	['8c4b31', '淡土黄'],
-	['64483d', '珠母灰'],
-	['f9723d', '芙蓉红'],
-	['cf4813', '落霞红'],
-	['ee8055', '法螺红'],
-	['f8ebe6', '草珠红'],
-	['753117', '咖啡'],
-	['603d30', '中灰驼'],
-	['883a1e', '椰壳棕'],
-	['b14b28', '蟹蝥红'],
-	['873d24', '淡豆沙'],
-	['f6cec1', '淡桃红'],
-	['5b423a', '淡铁灰'],
-	['624941', '石板灰'],
-	['673424', '淡栗棕'],
-	['f43e06', '银朱'],
-	['ef6f48', '草莓红'],
-	['f4c7ba', '洋水仙红'],
-	['ed5126', '朱红'],
-	['f34718', '榴花红'],
-	['f2481b', '柿红'],
-	['652b1c', '可可棕'],
-	['eea08c', '淡罂粟红'],
-	['f04b22', '大红'],
-	['692a1b', '柞叶棕'],
-	['f1441d', '蜻蜓红'],
-	['773d31', '橡树棕'],
-	['eeaa9c', '颊红'],
-	['f0ada0', '桃红'],
-	['863020', '火岩棕'],
-	['f2e7e5', '淡藤萝紫'],
-	['862617', '赭石'],
-	['f5391c', '铁水红'],
-	['f03f24', '胭脂红'],
-	['f33b1f', '极光红'],
-	['f23e23', '红汞红'],
-	['f13c22', '萝卜红'],
-	['f05a46', '曲红'],
-	['f17666', '谷鞘红'],
-	['f15642', '苹果红'],
-	['f25a47', '桂红'],
-	['f2b9b2', '粉红'],
-	['592620', '暗驼棕'],
-	['de2a18', '夕阳红'],
-	['ed3321', '樱桃红'],
-	['f04a3a', '珊瑚红'],
-	['482522', '火山棕'],
-	['5c1e19', '栗棕'],
-	['d42517', '鹤顶红'],
-	['f19790', '舌红'],
-	['ab372f', '鹅血石红'],
-	['5a1f1b', '酱棕'],
-	['ed3b2f', '鱼鳃红'],
-	['bdaead', '芦穗灰'],
-	['eb261a', '丽春红'],
-	['ac1f18', '覆盆子红'],
-	['483332', '海报灰'],
-	['481e1c', '豆沙'],
-	['f1908c', '榴子红'],
-	['ec2b24', '秋海棠红'],
-	['efafad', '无花果红'],
-	['f2cac9', '淡绯'],
-	['4b2e2b', '玫瑰灰'],
-	['ed4845', '淡菽红'],
-	['ed3333', '枸枢红'],
-	['5d3131', '貂紫'],
-];
-
-// 传入 hsl(0, 0%, 0%) 格式的颜色,返回 h s l 的值组成的数组
-const hslFunc = color => {
-	let hslArr = color.match(/\d+/g);
-	return hslArr;
-};
-
-// 将 colors 转为 rgb 和 hsl 格式,每一项包含 name hex rgb hsl,colorConvertFunc 为转换函数
-let colorList = [];
-colors.forEach(item => {
-	const hex = '#' + item[0];
-	const obj = {
-		name: item[1],
-		hex,
-		rgb: colorConvertFunc(hex).rgb,
-		hsl: colorConvertFunc(hex).hsl,
-		// hslArr: hslFunc(colorConvertFunc(hex).hsl),
-		hsl_h: hslFunc(colorConvertFunc(hex).hsl)[0],
-		hsl_s: hslFunc(colorConvertFunc(hex).hsl)[1],
-		hsl_l: hslFunc(colorConvertFunc(hex).hsl)[2],
-		mode: hslFunc(colorConvertFunc(hex).hsl)[2] > 50 ? 'light' : 'dark',
-	};
-	colorList.push(obj);
-});
-
-// 过滤出 hsl_l 在 20-45 和 55-80 之间的颜色,区分明显
-colorList = colorList.filter(item => {
-	return (item.hsl_l >= 20 && item.hsl_l < 45) || (item.hsl_l > 55 && item.hsl_l <= 80);
-});
-
-export default colorList;

+ 0 - 82
site/src/main.js

@@ -1,82 +0,0 @@
-// @ts-ignore
-import App from './App.svelte';
-import './app.css';
-import { delParamsUrl } from './utils/index';
-import { switchTheme } from '../../packages/stdf/theme';
-import themes from '../../demo/src/data/themes';
-
-const currentTheme = localStorage.getItem('theme_color') || 'STDF';
-// 设置默认主题色
-themes.forEach(item => {
-	if (item.name === currentTheme) {
-		const theme = item.theme;
-		switchTheme(theme);
-		// 修改 HTML 的 meta name="theme-color" 属性,适配 Safari 的 tab 背景色,需要设置 light 和 dark 两种颜色
-		const safariLight = theme.color.primaryWhite;
-		const safariDark = theme.color.darkBlack;
-		// 查找 meta 标签,name="theme-color" 且 media="(prefers-color-scheme: light)"
-		const lightMeta = document.querySelector('meta[name="theme-color"][media="(prefers-color-scheme: light)"]');
-		// 查找 meta 标签,name="theme-color" 且 media="(prefers-color-scheme: dark)"
-		const darkMeta = document.querySelector('meta[name="theme-color"][media="(prefers-color-scheme: dark)"]');
-		// 如果找到了,就修改它的 content 属性
-		if (lightMeta) {
-			lightMeta.setAttribute('content', safariLight);
-		}
-		if (darkMeta) {
-			darkMeta.setAttribute('content', safariDark);
-		}
-	}
-});
-
-let urlLang = window.location.href.split('?')[1];
-if (!urlLang || (urlLang && !urlLang.includes('lang'))) {
-	if (!localStorage.getItem('lang')) {
-		//获取浏览器语言前两位
-		const lang = navigator.language.substring(0, 2);
-		if (lang === 'en') {
-			localStorage.setItem('lang', 'en_US');
-		} else {
-			localStorage.setItem('lang', 'zh_CN');
-		}
-	}
-} else {
-	let urlParams = new URLSearchParams(urlLang);
-	localStorage.setItem('lang', urlParams.get('lang'));
-	setTimeout(() => {
-		// window.location.href = window.location.href.replace(/(\?|#)[^'"]*/, '');//去除参数
-		// @ts-ignore
-		window.history.pushState({}, 0, delParamsUrl(window.location.href, 'lang')); //刷新页面
-	}, 10);
-}
-if (localStorage.getItem('theme') === 'dark') {
-	document.documentElement.classList.add('dark');
-} else if (localStorage.getItem('theme') === 'light') {
-	document.documentElement.classList.remove('dark');
-} else {
-	if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
-		document.documentElement.classList.add('dark');
-	} else {
-		document.documentElement.classList.remove('dark');
-	}
-}
-
-// 根据亮暗模式动态切换 favicon
-// const darkModeMediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
-// handleDarkmode(darkModeMediaQuery);
-// function handleDarkmode(e) {
-//     var darkModeOn = e.matches;
-//     var favicon = document.querySelector('link[rel="icon"]'); // 获取声明中含 rel="icon" 的元素,你可以根据需要添加更多
-//     if (!favicon) {
-//         return;
-//     }
-//     if (darkModeOn) {
-//         favicon.href = '/favicon_black.ico'; //黑暗模式下的 favicon
-//     } else {
-//         favicon.href = '/favicon.ico'; //其它时候的 favicon
-//     }
-// }
-// darkModeMediaQuery.addEventListener('change', handleDarkmode);
-
-const app = new App({
-	target: document.body,
-});

+ 0 - 678
site/src/pages/Home.svelte

@@ -1,678 +0,0 @@
-<script>
-	// @ts-nocheck
-	import { onMount, onDestroy } from 'svelte';
-	import { link } from 'svelte-spa-router';
-	import { fade } from 'svelte/transition';
-	import { Confetti } from 'svelte-confetti';
-	import { currentThemeStore, currentColorStore } from '../store';
-	import { encodeData, rendererLine } from 'beautify-qrcode';
-
-	const descList = [
-		{
-			title: 'Simple',
-			titleZh: '简 单',
-			desc: '使用 Svelte 语法编码简洁迅速。组件源码逻辑清晰、简单易懂、中英注释详细,查看源码、修改逻辑也可以得心应手。',
-			descEn:
-				'Coding with Svelte syntax is simple and fast. The component source code logic is clear, simple and easy to understand, and the English and Chinese comments are detailed. You can also get used to it by viewing the source code and modifying the logic yourself.',
-			icon: '/assets/images/3D-simple.png',
-			iconDark: '/assets/images/3D-simple-dark.png',
-			shwTip: false,
-		},
-		{
-			title: 'Thin',
-			titleZh: '轻 量',
-			desc: '源码体积小巧,无三方依赖。基于 Svelte 与 Tailwind 编译出的代码在体积上也优势明显,这在移动端显得尤为重要。',
-			descEn:
-				'The source code is small and has no third-party dependencies. The code compiled based on Svelte and Tailwind also has obvious advantages in terms of volume, which is particularly important in mobile terminals.',
-			icon: '/assets/images/3D-thin.png',
-			iconDark: '/assets/images/3D-thin-dark.png',
-			shwTip: true,
-		},
-		{
-			title: 'Design',
-			titleZh: '设 计',
-			desc: '针对移动设备优化设计与交互,使用友好、高效、灵活。支持通过简单配置定制颜色系统、圆角风格、亮暗模式等。',
-			descEn:
-				'Optimized design and interaction for mobile devices, user-friendly, efficient, and flexible. Support customizing color system, corner style, light and dark mode, etc. through simple configuration.',
-			icon: '/assets/images/3D-design.png',
-			iconDark: '/assets/images/3D-design-dark.png',
-			shwTip: false,
-		},
-		{
-			title: 'Fast',
-			titleZh: '快 速',
-			desc: '无运行时,无虚拟 DOM,无烦杂的 CSS 代码,状态管理简单轻快。编码过程、编译处理、线上运行全都快起来了。',
-			descEn:
-				'No runtime, no virtual DOM, no cumbersome CSS code, simple and fast state management. The coding process, compilation processing, and online running are all faster.',
-			icon: '/assets/images/3D-fast.png',
-			iconDark: '/assets/images/3D-fast-dark.png',
-			shwTip: false,
-		},
-	];
-	const dominant = {
-		title: '💪 优势 & 目标',
-		title_en: '💪 Advantages & Goals',
-		data: [
-			{
-				icon: 'svelte',
-				p: '补充 Svelte 生态,让开发者可以更快速更舒服地开发出高质量的应用。',
-				p_en: 'Supplement the Svelte ecosystem so that developers can develop high-quality applications faster and more comfortably.',
-			},
-			{
-				icon: 'css3-line',
-				p: '避免写繁琐的 CSS 代码,让开发者专注于业务逻辑,提高开发效率。',
-				p_en: 'Avoid writing tedious CSS code, allowing developers to focus on business logic and improve development efficiency.',
-			},
-			{
-				icon: 'contrast-2-line',
-				p: '支持暗黑模式与主题配置,方便开发者直接适配,让应用更加现代化。',
-				p_en: 'Supports dark mode and theme configuration, making it easy for developers to adapt directly and make applications more modern.',
-			},
-			{
-				icon: 'paint-brush-line',
-				p: '普适性较强。移动端组件库多用于 C 端,对比 B 端更加需要注重 UI 的灵活性。',
-				p_en: 'It has strong versatility. Mobile component libraries are mostly used in C-end scenarios where UI flexibility is more important than B-end.',
-			},
-			{
-				icon: 'clockwise-line',
-				p: '注重交互与体验。适当的过渡动画与合理的交互设计,希望给你更好的用户体验。',
-				p_en: 'Emphasis on interaction and experience. Appropriate transition animations and reasonable interaction design hope to give you a better user experience.',
-			},
-			{
-				icon: 'article-line',
-				p: '站点文档、示例、源码注释都支持中英双语,且不再中英混杂,一目了然。',
-				p_en: 'Site documentation, examples, and source code comments all support bilingual Chinese and English, making it clear at a glance.',
-			},
-			{
-				icon: 'file-copy-2-line',
-				p: '示例代码丰富,方便直接复制使用,配备脚手架、插件等工具,对开发者友好。',
-				p_en: 'The example code is extensive and convenient for direct copying and usage. It is equipped with scaffolding, plugins, etc. making it developer-friendly.',
-			},
-			{
-				icon: 'planet-line',
-				p: '组件支持国际化(目前 60+ 语言),让应用轻松实现多语言支持。',
-				p_en: 'Component supports internationalization (currently 60+ languages), making it easy for applications to achieve multilingual support.',
-			},
-		],
-	};
-	const ugly = {
-		title: '🔔 提前警告',
-		title_en: '🔔 Early Warning',
-		data: [
-			{
-				icon: 'medal-line',
-				p: 'STDF 不体现任何「价值观」,更加不能为您「赋能」,只希望能给您更好的开发体验,很简单很朴实。',
-				p_en: 'STDF does not reflect any "values", and cannot "empower" you. We only hope to provide you with a better development experience, which is simple and straightforward.',
-			},
-			{
-				icon: 'service-line',
-				p: 'Svelte 生态相对 Vue 和 React 还很薄弱,如果您有兴趣,请积极参与和丰富 Svelte 生态。',
-				p_en: 'The Svelte ecosystem is still relatively weak compared to Vue and React. If you are interested, please actively participate in and enrich the Svelte ecosystem.',
-			},
-			{
-				icon: 'bard-line',
-				p: 'STDF 也适用于 Svelte 生态的其他工程,比如 SvelteKit 等,使用前请确保知晓它们的基础原理。',
-				p_en: 'STDF also applies to other projects in the Svelte ecosystem, such as SvelteKit, etc. When using them, please ensure that you understand their basic principles.',
-			},
-			{
-				icon: 'git-close-pull-request-line',
-				p: 'STDF 也适用于 Tailwind CSS 的类库,如 UnoCSS 等,使用它们请确保您知晓它们的基础原理。',
-				p_en: 'STDF also applies to class libraries of Tailwind CSS, such as UnoCSS, etc. When using them, please ensure that you understand their basic principles.',
-			},
-		],
-	};
-	const isZh = localStorage.getItem('lang') === 'zh_CN';
-
-	// 赞助人员
-	const thinkGithub = [{ name: 'yuedanlabs', amount: 10 }];
-
-	const bottomInfo = [
-		{
-			title: '相关',
-			title_en: 'Related',
-			list: [
-				{
-					title: 'Svelte',
-					title_en: 'Svelte',
-					link: 'https://svelte.dev',
-					_blank: true,
-				},
-				{
-					title: 'Tailwind',
-					title_en: 'Tailwind',
-					link: 'https://tailwindcss.com',
-					_blank: true,
-				},
-				{ title: 'Remix Icon', title_en: 'Remix Icon', link: 'https://remixicon.com', _blank: true },
-				// { title: 'RTDF(计划中)', title_en: 'RTDF(intend)', link: '', _blank: false },
-				// { title: 'VTDF(计划中)', title_en: 'VTDF(intend)', link: '', _blank: false },
-			],
-		},
-		{
-			title: '工具',
-			title_en: 'Tools',
-			list: [
-				{
-					title: 'create-stdf',
-					title_en: 'create-stdf',
-					link: 'https://www.npmjs.com/package/create-stdf',
-					_blank: true,
-				},
-				{
-					title: 'rollup-plugin-stdf-icon',
-					title_en: 'rollup-plugin-stdf-icon',
-					link: 'https://www.npmjs.com/package/rollup-plugin-stdf-icon',
-					_blank: true,
-				},
-				{
-					title: 'STDF for VS Code',
-					title_en: 'STDF for VS Code',
-					link: 'https://marketplace.visualstudio.com/items?itemName=STDF.stdf-vscode-extension',
-					_blank: true,
-				},
-			],
-		},
-		{
-			title: '帮助',
-			title_en: 'Help',
-			list: [
-				{ title: '关于', title_en: 'About', link: '#/guide/about', _blank: false },
-				{ title: '常见问题', title_en: 'FAQ', link: '#/guide/faq', _blank: false },
-				{ title: '更新日志', title_en: 'Changelog', link: '#/guide/changelog', _blank: false },
-				{ title: '开源许可', title_en: 'License', link: 'https://github.com/any-tdf/stdf/blob/main/LICENSE', _blank: true },
-			],
-		},
-		{
-			title: '社区',
-			title_en: 'Community',
-			list: [
-				// { title: 'GitHub', title_en: 'GitHub', link: 'https://github.com/any-tdf/stdf' },
-				{
-					title: 'QQ 群',
-					title_en: 'QQ Group',
-					link: 'https://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=U8ZlXJ3KVpTI9oZzs1jBnyWc3gVA0h6Y&authKey=ScWu0nU9g8BqNsC7o2eYkESwgVDVz9vzGNZEb17MrEAay9%2F7bTkXDiLJRIzo2vrg&noverify=0&group_code=581073686',
-					_blank: true,
-				},
-				// { title: '钉钉群', title_en: 'DingTalk Group', link: '', _blank: true },
-				{ title: 'Discord', title_en: 'Discord', link: 'https://discord.gg/DMkHu8GGre', _blank: true },
-				{ title: 'QQ 频道', title_en: 'QQ Discord', link: 'https://pd.qq.com/s/fdd8incyr', _blank: true },
-				{ title: 'Discussions', title_en: 'Discussions', link: 'https://github.com/any-tdf/stdf/discussions', _blank: true },
-			],
-		},
-	];
-	let showQr = false;
-	let show3D = !(localStorage.getItem('show3D') === '0');
-
-	const change3DFunc = () => {
-		show3D = !show3D;
-		localStorage.setItem('show3D', show3D ? '1' : '0');
-	};
-
-	const io = new IntersectionObserver(entries => {
-		entries.forEach(item => {
-			// isIntersecting是一个Boolean值,判断目标元素当前是否可见
-			if (item.isIntersecting) {
-				item.target.style.opacity = 1;
-				item.target.style.transform = 'translateY(0)';
-				setTimeout(() => {
-					item.target.style.transitionDuration = '300ms';
-				}, 1000);
-			} else {
-				// item.target.style.opacity = 0;
-				// item.target.style.transform = 'translateY(200px)';
-			}
-		});
-	});
-	let A_a1Svg;
-	const mouseenterFun = () => {
-		/**
-		 * A_a1
-		 * @param {Object} qrcode
-		 * @param {Object} options
-		 * @param {String} [options.type]  连线方向 0=>左右 1=>上下 2=>纵横 3=>回环 4=>左上—右下 5=>右上—左下 6=>交叉"
-		 * @param {String} [options.size] 连线粗细
-		 * @param {String} [options.opacity] 连线不透明度
-		 * @param {String} [options.posType] 定位点样式  0=>矩形 1=>圆形 2=>行星 3=>圆角矩形
-		 * @param {String} [options.otherColor] 连线颜色
-		 * @param {String} [options.posColor] 定位点颜色
-		 */
-		const qrcode = encodeData({
-			text: 'https://demo.stdf.design?lang=' + (isZh ? 'zh_CN' : 'en_US'),
-			isSpace: false,
-		});
-		const color = $currentThemeStore === 'dark' ? 'rgb(var(--theme-color-dark))' : 'rgb(var(--theme-color-primary))';
-		A_a1Svg = rendererLine(qrcode, { posType: 2, otherColor: color, posColor: color });
-		showQr = true;
-	};
-	onMount(() => {
-		const intersectionList = document.querySelectorAll('.intersection');
-		intersectionList.forEach(item => {
-			// 开始时 opacity 为 0,不可见, transform 为 translateY(200px)
-			item.style.opacity = 0;
-			item.style.transform = 'translateY(200px)';
-			item.style.transitionDuration = '1s';
-			io.observe(item);
-		});
-	});
-	const unsubscribe = currentColorStore.subscribe(value => {
-		show3D = false;
-		setTimeout(() => {
-			show3D = localStorage.getItem('show3D') === '1';
-		}, 0);
-	});
-	onDestroy(() => {
-		unsubscribe();
-	});
-</script>
-
-<div class="max-w-[2000px] mx-auto">
-	<div class="lg:flex flex-row-reverse justify-center">
-		{#if show3D}
-			<div class="basis-1/2 mt-10 md:mt-0 overflow-hidden relative group">
-				<spline-viewer
-					class="aspect-[4/3] md:aspect-auto scale-110 md:scale-100"
-					url="/assets/3d/scene.splinecode"
-					background={$currentThemeStore === 'dark'
-						? `rgb(${getComputedStyle(document.documentElement).getPropertyValue('--theme-color-darkBlack')})`
-						: `rgb(${getComputedStyle(document.documentElement).getPropertyValue('--theme-color-primaryWhite')})`}
-				/>
-				<!-- background="rgb(242, 242, 243)" -->
-				<!-- background={backgroundColor} -->
-				<!-- background="rgb(255, 0, 0)" -->
-				<button
-					on:click={() => {
-						show3D = false;
-						localStorage.setItem('show3D', '0');
-					}}
-					class="absolute hidden md:block scale-0 group-hover:scale-100 transition-all duration-500 bg-black/5 dark:bg-white/10 px-2 py-1 cursor-pointer rounded text-black/80 dark:text-white/90 text-xs top-10 left-10"
-				>
-					{isZh ? '隐藏 3D LOGO' : 'Hidden 3D LOGO'}
-				</button>
-			</div>
-		{:else}
-			<!-- 图片 -->
-			<div class="basis-1/2 mt-10 md:mt-0 overflow-hidden flex flex-col justify-center relative group">
-				<img src="/assets/3d/dark.png" alt="" class="w-full object-cover hidden dark:block" />
-				<img src="/assets/3d/light.png" alt="" class="w-full object-cover block dark:hidden" />
-				<button
-					on:click={() => {
-						show3D = true;
-						localStorage.setItem('show3D', '1');
-					}}
-					class="absolute hidden md:block scale-0 group-hover:scale-100 transition-all duration-300 bg-black/5 dark:bg-white/10 px-2 py-1 cursor-pointer rounded text-black/80 dark:text-white/90 text-xs top-10 left-10"
-				>
-					{isZh ? '显示 3D LOGO' : 'Show 3D LOGO'}
-				</button>
-			</div>
-		{/if}
-		<div class="flex flex-col justify-center basis-2/5 text-center py-16 md:py-20">
-			<div class="hidden md:flex h-20 md:h-28 mt-16 mb-20 flex-col justify-center items-center relative">
-				<div class="absolute rounded-full opacity-50 md:opacity-100 animate-dynamicsBg blur-xl md:blur-3xl">
-					<svg viewBox="0 0 100 100">
-						<path
-							fill-rule="evenodd"
-							clip-rule="evenodd"
-							d="M50 0V100C22.3858 100 0 77.6142 0 50C0 22.3858 22.3858 0 50 0Z"
-							class="fill-dark"
-						/>
-						<path
-							fill-rule="evenodd"
-							clip-rule="evenodd"
-							d="M50 100V0C77.6142 0 100 22.3858 100 50C100 77.6142 77.6142 100 50 100Z"
-							class="fill-primary"
-						/>
-						<circle cx="50" cy="25" r="25" class="fill-primary" />
-						<circle cx="50" cy="75" r="25" class="fill-dark" />
-						<circle cx="50.25" cy="25.25" r="6.25" class="fill-dark" />
-						<circle cx="50.25" cy="75.25" r="6.25" class="fill-primary" />
-					</svg>
-				</div>
-				<div
-					class="absolute w-28 md:w-36 h-full"
-					style="filter: drop-shadow(0 10px 8px rgb(0 0 0 / 0.05)) drop-shadow(0 4px 3px rgb(0 0 0 / 0.1));"
-				>
-					<svg viewBox="0 0 90 80" class="group">
-						<path
-							class="fill-primary dark:fill-dark"
-							d="M0 0H20H40H50C64.8056 0 77.7325 8.04398 84.6487 20H50H40V22.6757V30H50C55.5229 30 60 34.4771 60 40C60 45.5229 55.5229 50 50 50H40V57.3243V78.7398V80H20V66.4583V20H15.3513H0V0ZM50 80C72.0914 80 90 62.0914 90 40C90 36.547 89.5625 33.1962 88.7398 30H67.3244C69.0261 32.9417 70 36.3571 70 40C70 51.0457 61.0457 60 50 60V80Z"
-						/>
-						<path
-							style="stroke-dasharray: 400;stroke-dashoffset: 400;"
-							class="fill-dark dark:fill-primary stroke-dark dark:stroke-primary text-dark dark:text-primary stroke-1 group-hover:animate-path"
-							d="M20 30V0L0 50H20V80L40 30H20Z"
-						/>
-					</svg>
-				</div>
-			</div>
-			<div class="text-5xl md:text-8xl font-medium">S T D F</div>
-			<div class="mt-4 md:text-xl px-4">
-				{#if isZh}
-					基于
-					<a
-						href="https://svelte.dev"
-						class="transition-all underline underline-offset-2 decoration-svelte hover:text-svelte"
-						target="_blank"
-						title={isZh ? '打开 Svelte 官方站点' : 'Open Svelte official website'}
-					>
-						Svelte
-					</a>
-					与
-					<a
-						href="https://tailwindcss.com/"
-						class="transition-all underline underline-offset-2 decoration-tailwind hover:text-tailwind"
-						target="_blank"
-						title={isZh ? '打开 Tailwind CSS 官方站点' : 'Open Tailwind CSS official website'}
-					>
-						Tailwind
-					</a>
-					的移动 web 组件库
-				{:else}
-					Mobile web component
-					<br class="md:hidden" />
-					library based on
-					<a
-						href="https://svelte.dev"
-						class="transition-all underline underline-offset-2 decoration-svelte hover:text-svelte"
-						target="_blank"
-					>
-						Svelte
-					</a>
-					and
-					<a
-						href="https://tailwindcss.com/"
-						class="transition-all underline underline-offset-2 decoration-tailwind hover:text-tailwind"
-						target="_blank"
-					>
-						Tailwind
-					</a>
-				{/if}
-			</div>
-			<div class="flex justify-center gap-4 mt-8 mb-8 md:mt-16 md:mb-10 space-x-8">
-				<a
-					href="#/guide"
-					class="relative bg-primary dark:bg-dark py-2 px-6 text-white dark:text-black rounded hover:bg-primary/80 hover:dark:bg-dark/80 transition-all group"
-				>
-					{isZh ? '开始使用' : 'Get Started'}
-					<span class="absolute left-1/2 top-0 hidden group-hover:block">
-						<Confetti infinite rounded />
-					</span>
-				</a>
-				<a
-					href="/"
-					use:link
-					on:mouseleave={() => (showQr = false)}
-					on:mouseenter={mouseenterFun}
-					class="border-solid border border-primary dark:border-dark py-2 px-6 rounded transition-all hidden md:block relative"
-				>
-					{isZh ? '扫码示例' : 'QR Demo'}
-					{#if showQr}
-						<div
-							class="w-52 rounded-lg absolute z-10 top-0 left-full -translate-y-1/3 border border-black/5 translate-x-2 p-2 shadow-lg block dark:hidden"
-							in:fade={{ duration: 300 }}
-							out:fade={{ duration: 0 }}
-						>
-							<span>{@html A_a1Svg}</span>
-							<!-- <QrCode value="https://demo.stdf.design/#/" size={200} color="#fff" background="#23262B" /> -->
-						</div>
-						<div
-							class="w-52 rounded-lg absolute z-10 top-0 left-full bg-black -translate-y-1/3 border border-white/5 translate-x-2 p-2 shadow-lg hidden dark:block"
-							in:fade={{ duration: 300 }}
-							out:fade={{ duration: 0 }}
-						>
-							<span>{@html A_a1Svg}</span>
-							<!-- <QrCode value="https://demo.stdf.design/#/" size={200} color="#fff" background="#24262b" /> -->
-						</div>
-					{/if}
-				</a>
-				<a
-					href={'https://demo.stdf.design?lang=' + (isZh ? 'zh_CN' : 'en_US')}
-					target="_blank"
-					class="border-solid border border-primary dark:border-dark py-2 px-6 rounded transition-all block md:hidden"
-				>
-					{isZh ? '查看示例' : 'Examples'}
-				</a>
-			</div>
-		</div>
-	</div>
-	<div class="flex flex-wrap xl:flex-nowrap justify-around gap-8 px-8">
-		{#each descList as desc}
-			<div
-				class="intersection ease-out group flex flex-col space-y-5 overflow-hidden items-center w-full pb-8 sm:w-2/3 md:w-80 lg:w-96 border-black/5 dark:border-white/5 rounded-xl dark:hover:shadow-white/5 transition-all duration-300"
-			>
-				<div class="overflow-hidden">
-					<img
-						class="block dark:hidden object-cover scale-100 group-hover:scale-[1.6] transition-all duration-500"
-						src={desc.icon}
-						alt=""
-					/>
-					<img
-						class="hidden dark:block object-cover scale-100 group-hover:scale-[1.6] transition-all duration-500"
-						src={desc.iconDark}
-						alt=""
-					/>
-				</div>
-				{#if isZh}
-					<div class="text-3xl font-medium py-4">{isZh ? desc.titleZh : desc.title}</div>
-				{/if}
-				<div class={`text-black/70 dark:text-white/60 text-sm ${isZh ? 'text-justify' : 'text-left pt-10'}`}>
-					{isZh ? desc.desc : desc.descEn}
-				</div>
-			</div>
-		{/each}
-	</div>
-
-	<div class="px-4 md:px-12 pb-10 md:pb-20" class:text-left={!isZh}>
-		<div class="mt-40">
-			<div class="intersection transition-all ease-out my-10 md:my-20 font-bold text-2xl md:text-4xl text-center">
-				{isZh ? dominant.title : dominant.title_en}
-			</div>
-			<div class="grid grid-cols-1 md:grid-cols-4 gap-10">
-				{#each dominant.data as item}
-					<div
-						class="intersection p-0.5 rounded-lg border border-px dark:border-white/5 border-black/5 overflow-hidden transition-all ease-out group relative"
-					>
-						<div
-							class="hidden group-hover:block absolute -left-1/2 top-1/3 w-[200%] h-1/2 bg-primary {$currentThemeStore === 'dark'
-								? 'animate-spin-line-dark'
-								: 'animate-spin-line'}"
-						></div>
-						<div class="px-8 py-10 h-full w-full rounded-lg relative bg-primaryWhite dark:bg-darkBlack">
-							<div class="w-8 h-8 flex-none text-primary dark:text-dark transition-all ease-out group-hover:scale-90">
-								<svg style="fill: currentColor;display: inline;" viewBox="0 0 24 24">
-									<use xlink:href="/assets/fonts/home.symbol.svg#{item.icon}" />
-								</svg>
-							</div>
-							<p class="text-sm opacity-90 mt-6">{isZh ? item.p : item.p_en}</p>
-						</div>
-					</div>
-				{/each}
-			</div>
-		</div>
-		<div class="mt-32 md:mt-48">
-			<div class="intersection transition-all ease-out my-10 md:my-20 font-bold text-2xl md:text-4xl text-center">
-				{isZh ? ugly.title : ugly.title_en}
-			</div>
-			<div class="grid grid-cols-1 md:grid-cols-4 gap-10">
-				{#each ugly.data as item}
-					<div
-						class="intersection p-0.5 rounded-lg border border-px dark:border-white/5 border-black/5 overflow-hidden transition-all ease-out group relative"
-					>
-						<div
-							class="hidden group-hover:block absolute -left-1/2 top-1/3 w-[200%] h-1/2 bg-primary {$currentThemeStore === 'dark'
-								? 'animate-spin-line-dark'
-								: 'animate-spin-line'}"
-						></div>
-						<div class="px-8 py-10 h-full w-full rounded-lg relative bg-primaryWhite dark:bg-darkBlack">
-							<div class="w-8 h-8 flex-none text-primary dark:text-dark transition-all ease-out group-hover:scale-90">
-								<svg style="fill: currentColor;display: inline;" viewBox="0 0 24 24">
-									<use xlink:href="/assets/fonts/home.symbol.svg#{item.icon}" />
-								</svg>
-							</div>
-							<p class="text-sm opacity-90 mt-6">{isZh ? item.p : item.p_en}</p>
-						</div>
-					</div>
-				{/each}
-			</div>
-
-			<!-- <div class="space-y-10">
-            {#each isZh ? ugly.p : ugly.p_en as item, i}
-                <p>{item}</p>
-            {/each}
-        </div> -->
-		</div>
-	</div>
-
-	<!-- <div class="hidden md:flex justify-center mb-20">
-    <article class={`prose dark:prose-invert max-w-none text-xs overflow-auto`} style="height:{500}px">
-        <pre><code class="hljs">{@html highlightedCode}</code></pre>
-    </article>
-    <div class=" ml-2 border border-black/10 dark:border-gray-400 w-[392px] grow-0 shrink-0 overflow-auto" style="height:{500}px">
-        <img src="/assets/images/home/zh/9.png" alt="" class='w-full' />
-    </div>
-</div> -->
-
-	<div class="text-center px-4 md:px-12 pb-10 md:pb-20">
-		<div class="intersection transition-all ease-out my-5 md:my-10 font-bold text-2xl md:text-4xl">
-			🎖 {isZh ? '贡献者' : 'Contributors'}
-		</div>
-		<div class="intersection flex justify-center">
-			<a href="https://github.com/any-tdf/stdf/graphs/contributors" target="_blank">
-				<img src="https://contrib.rocks/image?repo=any-tdf/stdf" title={isZh ? '贡献者' : 'Contributors'} alt="" />
-			</a>
-		</div>
-	</div>
-
-	<!-- 赞助者 -->
-	<div class="text-center px-4 md:px-12 pb-20 md:pb-40">
-		<div class="intersection transition-all ease-out my-5 md:my-10 font-bold text-2xl md:text-4xl">
-			🙏 {isZh ? '赞助者' : 'Sponsors'}
-		</div>
-		<div class="">
-			<div class="intersection mb-4">GitHub</div>
-			<div class="flex justify-center gap-4 flex-wrap">
-				{#each thinkGithub as item}
-					<a class="intersection" href={'https://github.com/' + item.name} target="_blank">
-						<img
-							class="w-16 h-16 rounded-full overflow-hidden"
-							src={'https://avatars.githubusercontent.com/' + item.name}
-							title={(isZh ? '感谢 ' : 'Thanks ') + item.name}
-							alt=""
-						/>
-					</a>
-				{/each}
-			</div>
-		</div>
-	</div>
-
-	<!-- <div class="pb-4">
-		<p class="flex justify-center gap-4">
-			<a href="https://www.npmjs.com/package/stdf" rel="nofollow">
-				<img
-					src="https://camo.githubusercontent.com/13967f6092f0e143b32d68749e50fab68dc6442cb5dc82713dee33f462d73bb8/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f737464663f6c6f676f3d6e706d266c6162656c3d73746466267374796c653d666c61742d737175617265"
-					alt="npm"
-				/>
-			</a>
-			<a href="https://www.npmjs.com/package/stdf" rel="nofollow">
-				<img
-					src="https://camo.githubusercontent.com/1657ded382705222b8310d638f8dadec731094d53a2e28e30f73a741c7ab6a83/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f64742f737464663f6c6f676f3d6e706d266c6162656c3d696e7374616c6c73267374796c653d666c61742d737175617265"
-					alt="npm"
-					data-canonical-src="https://img.shields.io/npm/dt/stdf?logo=npm&amp;label=installs&amp;style=flat-square"
-					style="max-width: 100%;"
-				/>
-			</a>
-			<a href="https://www.npmjs.com/package/stdf" rel="nofollow">
-				<img
-					src="https://camo.githubusercontent.com/5ad203b3cf7281ba18010c465b4a434ce95f24b3273772db67737b21c7d92491/68747470733a2f2f696d672e736869656c64732e696f2f62756e646c6570686f6269612f6d696e7a69702f737464663f6c6f676f3d6e706d266c6162656c3d6d696e7a6970267374796c653d666c61742d737175617265"
-					alt="npm bundle size"
-					data-canonical-src="https://img.shields.io/bundlephobia/minzip/stdf?logo=npm&amp;label=minzip&amp;style=flat-square"
-					style="max-width: 100%;"
-				/>
-			</a>
-			<a href="https://github.com/any-tdf/stdf">
-				<img
-					src="https://camo.githubusercontent.com/d9bb38904bee18db8ce348502fa0037c2767d01b2c0650834842b5eb4683b6fd/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f64756675313939312f737464663f6c6f676f3d676974687562266c6162656c3d7374617273267374796c653d666c61742d737175617265"
-					alt="GitHub stars"
-					data-canonical-src="https://img.shields.io/github/stars/any-tdf/stdf?logo=github&amp;label=stars&amp;style=flat-square"
-					style="max-width: 100%;"
-				/>
-			</a>
-			<a href="https://github.com/any-tdf/stdf">
-				<img
-					src="https://camo.githubusercontent.com/911de612402842a474a987a4a8d68531db71eeb2755d741cac46566770da5dc6/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f64756675313939312f737464663f6c6f676f3d676974687562267374796c653d666c61742d737175617265"
-					alt="GitHub license"
-					data-canonical-src="https://img.shields.io/github/license/any-tdf/stdf?logo=github&amp;style=flat-square"
-					style="max-width: 100%;"
-				/>
-			</a>
-			<a href="https://www.npmjs.com/package/create-stdf" rel="nofollow">
-				<img
-					src="https://camo.githubusercontent.com/063c8aa873c7143e4fd491532ef29e8cf435ef967218993041ec49d3ebfdd403/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f6372656174652d737464663f6c6f676f3d6e706d266c6162656c3d637265617465267374796c653d666c61742d737175617265"
-					alt="npm"
-					data-canonical-src="https://img.shields.io/npm/v/create-stdf?logo=npm&amp;label=create&amp;style=flat-square"
-					style="max-width: 100%;"
-				/>
-			</a>
-			<a href="https://www.npmjs.com/package/rollup-plugin-stdf-icon" rel="nofollow">
-				<img
-					src="https://camo.githubusercontent.com/4e7b90519654646d3fb30a5bac83b04374a3abd05a837688bae5e05dc256a2a4/68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f726f6c6c75702d706c7567696e2d737464662d69636f6e3f6c6f676f3d6e706d266c6162656c3d69636f6e267374796c653d666c61742d737175617265"
-					alt="npm"
-					data-canonical-src="https://img.shields.io/npm/v/rollup-plugin-stdf-icon?logo=npm&amp;label=icon&amp;style=flat-square"
-					style="max-width: 100%;"
-				/>
-			</a>
-			<a href="https://marketplace.visualstudio.com/items?itemName=STDF.stdf-vscode-extension" rel="nofollow">
-				<img
-					src="https://camo.githubusercontent.com/e83b95d19002c3dec1e38d3994342e23b735977bc386199e75892a99a6bffbe0/68747470733a2f2f696d672e736869656c64732e696f2f76697375616c2d73747564696f2d6d61726b6574706c6163652f762f535444462e737464662d7673636f64652d657874656e73696f6e3f6c6f676f3d76697375616c73747564696f636f6465266c6162656c3d657874656e73696f6e267374796c653d666c61742d737175617265"
-					alt="Visual Studio Marketplace Version (including pre-releases)"
-					data-canonical-src="https://img.shields.io/visual-studio-marketplace/v/STDF.stdf-vscode-extension?logo=visualstudiocode&amp;label=extension&amp;style=flat-square"
-					style="max-width: 100%;"
-				/>
-			</a>
-		</p>
-	</div> -->
-</div>
-<div class="bg-white dark:bg-black grid grid-cols-2 md:grid-cols-4 gap-10 pt-20 pb-16 px-4 md:px-10 text-center">
-	{#each bottomInfo as item}
-		<div>
-			<div class="text-lg font-bold mb-2">{isZh ? item.title : item.title_en}</div>
-			<div class="flex flex-col gap-1">
-				{#each item.list as i}
-					<a href={i.link} target={i._blank ? '_blank' : '_self'} title={i.link} class="text-sm">{isZh ? i.title : i.title_en}</a>
-				{/each}
-			</div>
-		</div>
-	{/each}
-</div>
-
-<div class="bg-white dark:bg-black text-xs text-center py-4 border-t border-black/10 dark:border-white/10">
-	<div class="text-sm mb-3" title={isZh ? '如果页面卡顿,请关闭 3D 模型。' : 'If the page is stuck, please turn off the 3D model.'}>
-		<button class="cursor-pointer text-primary dark:text-dark" on:click={change3DFunc}>
-			{show3D ? (isZh ? '隐藏' : 'Hidden') : isZh ? '显示' : 'Show'}
-			3D LOGO
-		</button>
-	</div>
-	<div class="flex justify-center gap-1">
-		<div>STDF DESIGN • MADE BY DUFU</div>
-		<div>
-			{#if isZh}
-				• <a href="https://beian.miit.gov.cn" target="_blank">滇ICP备17004037号-4</a>
-			{/if}
-		</div>
-	</div>
-</div>
-
-<style>
-	@keyframes spin-line {
-		to {
-			transform: rotate(360deg);
-		}
-	}
-	.animate-spin-line {
-		animation: spin-line 6s linear infinite;
-		background: conic-gradient(transparent 50deg, rgba(var(--theme-color-primary), 0.4) 80deg, transparent 90deg);
-	}
-	.animate-spin-line-dark {
-		animation: spin-line 6s linear infinite;
-		background: conic-gradient(transparent 50deg, rgba(var(--theme-color-dark), 0.6) 80deg, transparent 90deg);
-	}
-</style>

+ 0 - 47
site/src/pages/components/Api.svelte

@@ -1,47 +0,0 @@
-<script>
-	// @ts-nocheck
-
-	import { mdTextToHljs } from './../../utils/index';
-
-	export let api = 'button';
-	const isZh = localStorage.getItem('lang') === 'zh_CN';
-
-	let loading = true;
-	const getMdStrFunc = async nav => {
-		loading = true;
-		const rawObj = await import(`../../../../doc/components/${nav}/api${isZh ? '' : '_en'}.md`);
-		const mdStr = rawObj.default;
-		loading = false;
-		return mdTextToHljs(mdStr.replace(/<a href="/g, '<a target="_blank" href="'));
-	};
-	$: apiText = getMdStrFunc(api).then(res => {
-		// @ts-ignore
-		apiText = res;
-	});
-</script>
-
-<article
-	class="prose dark:prose-invert max-w-none pb-12 prose-table:break-all overflow-x-auto prose-td:whitespace-nowrap md:prose-td:whitespace-normal"
->
-	{#if loading}
-		{isZh ? '请等待...' : 'Please wait...'}
-	{:else}
-		{@html apiText}
-	{/if}
-</article>
-<div class="pb-8 text-xs flex gap-2">
-	<a
-		href={'https://github.com/any-tdf/stdf/edit/main/doc/components/' + api + '/api' + (isZh ? '' : '_en') + '.md'}
-		target="_blank"
-		class="flex text-primary dark:text-dark"
-	>
-		<span class="h-4 w-4 mr-1">
-			<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="w-4 h-4" style="fill: currentColor;">
-				<path
-					d="M12.8995 6.85431L17.1421 11.0969L7.24264 20.9964H3V16.7538L12.8995 6.85431ZM14.3137 5.44009L16.435 3.31877C16.8256 2.92825 17.4587 2.92825 17.8492 3.31877L20.6777 6.1472C21.0682 6.53772 21.0682 7.17089 20.6777 7.56141L18.5563 9.68273L14.3137 5.44009Z"
-				/>
-			</svg>
-		</span>
-		{isZh ? '在 GitHub 上编辑' : 'Edit on GitHub'}
-	</a>
-</div>

+ 0 - 13
site/src/pages/components/Component.svelte

@@ -1,13 +0,0 @@
-<script>
-	/**
-	 * @typedef {Object} Props
-	 * @property {string} [highlightedCode]
-	 */
-
-	/** @type {Props} */
-	let { highlightedCode = '' } = $props();
-</script>
-
-<article class={`prose dark:prose-invert max-w-none text-sm`}>
-	<pre><code class="hljs">{@html highlightedCode}</code></pre>
-</article>

+ 0 - 317
site/src/pages/components/Components.svelte

@@ -1,317 +0,0 @@
-<script>
-	// @ts-nocheck
-	import { onMount } from 'svelte';
-	import { fly } from 'svelte/transition';
-	import { querystring, push } from 'svelte-spa-router';
-	import { isShowNavStore, isCmdKStore } from '../../store';
-	import menuList from '../../../../demo/src/data/menuList';
-
-	import Menu from '../../components/menu/Menu.svelte';
-	import Tab from '../../components/tab/Tab.svelte';
-
-	import Component from './Component.svelte';
-	import Guide from './Guide.svelte';
-	import Api from './Api.svelte';
-	import FAQ from './FAQ.svelte';
-	import Version from './Version.svelte';
-
-	// let Guide;
-	// let Api;
-	// let FAQ;
-	// let Version;
-	// let Component;
-
-	let loading = true;
-
-	const isZh = localStorage.getItem('lang') === 'zh_CN';
-
-	let params = new URLSearchParams('?' + $querystring);
-	//数组二级组成新数组
-	const ArrChildFun = arr => {
-		let newArr = [];
-		for (let e = 0; e < arr.length; e++) {
-			newArr.push(...arr[e].childs);
-		}
-		return newArr;
-	};
-	$: menuChildList = ArrChildFun(menuList);
-	let currentNav = {};
-	let currentTab = 0;
-	let titleDom = null;
-	let demoHeight = 0;
-	let highlightedCode = '';
-	let titleWidth = 0;
-	let visible = true;
-	let isShowIframe = true;
-	let navBarHeight = 0;
-
-	// 动态导入组件字符串
-	const getComponentStrFunc = async name => {
-		const rawObj = await import(`../../../../demo/src/routes/${isZh ? 'zh_CN' : 'en_US'}/${name}/+page.svelte?raw`);
-		const componentStr = rawObj.default;
-		// 将 componentStr 中所有的 '../../../../../packages/stdf/components' 替换为 'stdf'
-		return componentStr.replace(/from ['"]\.\.\/\.\.\/\.\.\/\.\.\/\.\.\/packages\/stdf\/components['"]/g, "from 'stdf'");
-	};
-
-	const getDemoHeightFun = () => {
-		demoHeight = document.documentElement.clientHeight - 70 - titleDom.offsetHeight - 100;
-		navBarHeight = document.documentElement.clientHeight - 56;
-	};
-	onMount(async () => {
-		// Component = (await import('./Component.svelte')).default;
-		// Guide = (await import('./Guide.svelte')).default;
-		// Api = (await import('./Api.svelte')).default;
-		// FAQ = (await import('./FAQ.svelte')).default;
-		// Version = (await import('./Version.svelte')).default;
-
-		demoHeight = document.documentElement.clientHeight - 70 - titleDom.offsetHeight - 100;
-		navBarHeight = document.documentElement.clientHeight - 56;
-		window.addEventListener('resize', getDemoHeightFun);
-		if (params.get('tab')) {
-			currentTab = Number(params.get('tab'));
-		}
-		if (params.get('nav')) {
-			currentNav = menuChildList.filter(item => item.nav === params.get('nav'))[0];
-		} else {
-			currentNav = menuList[0].childs[1];
-		}
-		loading = true;
-		const componentStr = await getComponentStrFunc(currentNav.nav);
-		loading = false;
-		highlightedCode = hljs.highlight(componentStr, { language: 'svelte', ignoreIllegals: true }).value;
-		// highlightedCode = hljs.highlight(map[currentNav.nav], { language: 'svelte', ignoreIllegals: true }).value;
-		return () => {
-			window.removeEventListener('resize', getDemoHeightFun);
-		};
-	});
-
-	//监听箭头按键,方便键盘操作
-	const handleKeydown = event => {
-		if ($isCmdKStore) {
-			return;
-		}
-		//左右箭头切换Tab
-		if (event.code === 'ArrowLeft') {
-			if (currentTab > 0) {
-				isShowIframe = false;
-				setTimeout(() => {
-					isShowIframe = true;
-				}, 100);
-				currentTab--;
-				params.set('tab', currentTab.toString());
-				push(`/components?nav=${params.get('nav') ? params.get('nav') : 'button'}&tab=${currentTab}`);
-			}
-		}
-		if (event.code === 'ArrowRight') {
-			if (currentTab < 4) {
-				isShowIframe = false;
-				setTimeout(() => {
-					isShowIframe = true;
-				}, 100);
-				currentTab++;
-				params.set('tab', currentTab.toString());
-				push(`/components?nav=${params.get('nav') ? params.get('nav') : 'button'}&tab=${currentTab}`);
-			}
-		}
-		//上下箭头切换组件
-		if (event.code === 'ArrowUp') {
-			let currentMenuIndex = menuChildList.findIndex(item => item.nav === currentNav.nav);
-			if (currentMenuIndex > 0) {
-				visible = false;
-				setTimeout(async () => {
-					visible = true;
-					currentNav = menuChildList[currentMenuIndex - 1];
-					params.set('nav', currentNav.nav);
-					push(`/components?nav=${currentNav.nav}&tab=${currentTab}`);
-					const componentStr = await getComponentStrFunc(currentNav.nav);
-					highlightedCode = hljs.highlight(componentStr, { language: 'svelte', ignoreIllegals: true }).value;
-					// @ts-ignore
-					// highlightedCode = hljs.highlight(map[currentNav.nav], { language: 'svelte', ignoreIllegals: true }).value;
-				}, 10);
-			}
-		}
-		if (event.code === 'ArrowDown') {
-			let currentMenuIndex = menuChildList.findIndex(item => item.nav === currentNav.nav);
-			if (currentMenuIndex < menuChildList.length - 1) {
-				visible = false;
-				setTimeout(async () => {
-					visible = true;
-					currentNav = menuChildList[currentMenuIndex + 1];
-					params.set('nav', currentNav.nav);
-					push(`/components?nav=${currentNav.nav}&tab=${currentTab}`);
-					const componentStr = await getComponentStrFunc(currentNav.nav);
-					highlightedCode = hljs.highlight(componentStr, { language: 'svelte', ignoreIllegals: true }).value;
-					// @ts-ignore
-					// highlightedCode = hljs.highlight(map[currentNav.nav], { language: 'svelte', ignoreIllegals: true }).value;
-				}, 10);
-			}
-		}
-	};
-	const menuClickFun = currentMenu => {
-		$isShowNavStore && ($isShowNavStore = false);
-		visible = false;
-		setTimeout(async () => {
-			visible = true;
-			currentNav = currentMenu.detail;
-			params.set('nav', currentMenu.detail.nav);
-			push(`/components?nav=${currentMenu.detail.nav}&tab=${params.get('tab') ? params.get('tab') : '0'}`);
-			const componentStr = await getComponentStrFunc(currentNav.nav);
-			highlightedCode = hljs.highlight(componentStr, { language: 'svelte', ignoreIllegals: true }).value;
-		}, 10);
-	};
-
-	const tabClickFun = i => {
-		isShowIframe = false;
-		setTimeout(() => {
-			isShowIframe = true;
-		}, 100);
-		currentTab = i.detail;
-		params.set('tab', currentTab.toString());
-		push(`/components?nav=${params.get('nav') ? params.get('nav') : 'button'}&tab=${currentTab}`);
-	};
-	$: QRValue =
-		(import.meta.env.DEV ? location.protocol + '//' + location.hostname + ':8888/' : 'https://demo.stdf.design/') +
-		(isZh ? 'zh_CN/' : 'en_US/') +
-		currentNav.nav;
-</script>
-
-<svelte:window on:keydown={handleKeydown} />
-
-<div class="flex">
-	<div
-		class="fixed -left-52 md:left-0 top-14 w-52 overflow-y-scroll transition-all duration-300 z-[100] bg-white dark:bg-black md:bg-transparent dark:md:bg-transparent border-r border-black/10 dark:border-white/20"
-		class:left-0={$isShowNavStore}
-		class:-left-52={!$isShowNavStore}
-		style="height:{navBarHeight + 'px'}"
-	>
-		<Menu {menuList} currentNav={currentNav.nav} on:MenuClick={menuClickFun} />
-	</div>
-	{#if visible}
-		<div class="md:pl-48 flex flex-col w-full" in:fly={{ x: 100, duration: 500 }} out:fly={{ x: 100, duration: 100 }}>
-			<div class="px-4 pt-4 md:px-8 md:flex md:space-x-4 relative z-20" bind:this={titleDom}>
-				{#if loading}
-					{isZh ? '请等待...' : 'Please wait...'}
-				{:else}
-					<div class="font-bold text-2xl md:text-4xl flex items-center">
-						<div>
-							{isZh ? currentNav.title : currentNav.title_en}
-						</div>
-						<a href={QRValue} target="_blank" aria-label={isZh ? '扫码预览' : 'Scan to preview'}>
-							<div class="md:hidden bg-gray-100 dark:bg-gray-700 text-gray-500 rounded h-8 w-8 ml-2 p-1">
-								<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" style="fill: currentColor">
-									<path fill="none" d="M0 0h24v24H0z" />
-									<path
-										d="M13 21v2h-2v-2H3a1 1 0 0 1-1-1V6h20v14a1 1 0 0 1-1 1h-8zm-9-2h16V8H4v11zm9-9h5v2h-5v-2zm0 4h5v2h-5v-2zm-4-4v3h3a3 3 0 1 1-3-3zM2 3h20v2H2V3z"
-									/>
-								</svg>
-							</div>
-						</a>
-					</div>
-					<div class="mt-4 text-xs md:text-sm text-gray-500">{isZh ? currentNav.tip : currentNav.tip_en}</div>
-				{/if}
-			</div>
-			<div class="p-4 md:px-8 md:py-4 -mt-14 relative z-10" bind:clientWidth={titleWidth}>
-				<Tab {currentTab} on:TabClick={tabClickFun} />
-			</div>
-			<div class="my-4 ml-4">
-				<div class="h-px bg-black/10 dark:bg-white/20"></div>
-			</div>
-			<div>
-				<!-- <div class="relative overflow-hidden" style="width:{titleWidth}px;"> -->
-				<!-- <div class="relative flex" style="width:{titleWidth * 3}px;left:-{currentTab * titleWidth}px;"> -->
-				<!-- 示例 -->
-				{#if currentTab === 0}
-					<div
-						in:fly={{ y: 100, duration: 500 }}
-						out:fly={{ y: 100, duration: 100 }}
-						class="flex-1 flex py-4 mt-2 md:pl-8 md:pr-4 justify-around"
-						style="width:{titleWidth}px;"
-					>
-						<div class="grow overflow-y-scroll rounded bg-codeLight dark:bg-codeDark" style="height:{demoHeight}px;">
-							<svelte:component this={Component} {highlightedCode} />
-						</div>
-						<div
-							class="hidden ml-2 md:block border border-black/10 dark:border-white/10 w-[392px] grow-0 shrink-0"
-							style="height:{demoHeight}px"
-						>
-							{#if currentNav.nav}
-								{#if isShowIframe}
-									<iframe
-										title="Demo"
-										id="iframe-id"
-										src={import.meta.env.DEV
-											? `http://localhost:8888/${isZh ? 'zh_CN' : 'en_US'}/${currentNav.nav}?channel=iframe`
-											: `https://demo.stdf.design/${isZh ? 'zh_CN' : 'en_US'}/${currentNav.nav}?channel=iframe`}
-										height={demoHeight - 2}
-										width="390"
-									></iframe>
-								{:else}
-									<div class="flex justify-center flex-col text-primary dark:text-dark" style="width:390px;height:{demoHeight - 2}px;">
-										<div>
-											<svg class="animate-spin my-1 mx-auto h-10 w-10" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
-												<circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4" />
-												<path
-													class="opacity-75"
-													fill="currentColor"
-													d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
-												/>
-											</svg>
-										</div>
-									</div>
-								{/if}
-							{/if}
-						</div>
-					</div>
-				{/if}
-				{#if currentTab === 1}
-					<!-- api -->
-					<div
-						in:fly={{ y: 100, duration: 500 }}
-						out:fly={{ y: 100, duration: 100 }}
-						class={` flex-1 left-full p-4 mt-4 md:px-8 md:py-4`}
-						style="width:{titleWidth}px;"
-					>
-						<svelte:component this={Api} api={currentNav.nav} />
-						<!-- <Api api={currentNav.nav} /> -->
-					</div>
-				{/if}
-				{#if currentTab === 2}
-					<!-- 指南 -->
-					<div
-						in:fly={{ y: 100, duration: 500 }}
-						out:fly={{ y: 100, duration: 100 }}
-						class={`flex-1 p-4 mt-4 md:px-8 md:py-4 rounded `}
-						style="width:{titleWidth}px;"
-					>
-						<svelte:component this={Guide} guide={currentNav.nav} />
-						<!-- <Guide guide={currentNav.nav} /> -->
-					</div>
-				{/if}
-				{#if currentTab === 3}
-					<!-- FAQ -->
-					<div
-						in:fly={{ y: 100, duration: 500 }}
-						out:fly={{ y: 100, duration: 100 }}
-						class={`flex-1 p-4 mt-4 md:px-8 md:py-4 rounded `}
-						style="width:{titleWidth}px;"
-					>
-						<svelte:component this={FAQ} guide={currentNav.nav} />
-						<!-- <FAQ guide={currentNav.nav} /> -->
-					</div>
-				{/if}
-				{#if currentTab === 4}
-					<!-- Version -->
-					<div
-						in:fly={{ y: 100, duration: 500 }}
-						out:fly={{ y: 100, duration: 100 }}
-						class={`flex-1 p-4 mt-4 md:px-8 md:py-4 rounded `}
-						style="width:{titleWidth}px;"
-					>
-						<svelte:component this={Version} guide={currentNav.nav} />
-						<!-- <Version guide={currentNav.nav} /> -->
-					</div>
-				{/if}
-			</div>
-		</div>
-	{/if}
-</div>

+ 0 - 52
site/src/pages/components/FAQ.svelte

@@ -1,52 +0,0 @@
-<script>
-	// @ts-nocheck
-
-	import { mdTextToHljs } from '../../utils/index';
-
-	export let guide = 'button';
-	const isZh = localStorage.getItem('lang') === 'zh_CN';
-
-	let loading = true;
-	const getMdStrFunc = async nav => {
-		loading = true;
-		const rawObj = await import(`../../../../doc/components/${nav}/FAQ${isZh ? '' : '_en'}.md`);
-		const mdStr = rawObj.default;
-		loading = false;
-		return mdTextToHljs(mdStr.replace(/<a href="/g, '<a target="_blank" href="'));
-	};
-	$: guideText = getMdStrFunc(guide).then(res => {
-		// @ts-ignore
-		guideText = res;
-	});
-</script>
-
-<p class="text-xs mb-4 text-black/40 dark:text-white/30">
-	{isZh
-		? '注:请将开发中遇到的问题或想法提到 GitHub Issue,后续会筛选出有代表性的问题整理在此处。'
-		: 'Note: Please raise any issues or ideas encountered in development to GitHub Issue, and then select representative issues to organize here.'}
-</p>
-<article
-	class="prose dark:prose-invert max-w-none pb-12 prose-table:break-all overflow-x-auto prose-td:whitespace-nowrap md:prose-td:whitespace-normal"
->
-	{#if loading}
-		{isZh ? '请等待...' : 'Please wait...'}
-	{:else}
-		{@html guideText}
-	{/if}
-</article>
-<div class="pb-8 text-xs flex gap-2">
-	<a
-		href={'https://github.com/any-tdf/stdf/edit/main/doc/components/' + guide + '/FAQ' + (isZh ? '' : '_en') + '.md'}
-		target="_blank"
-		class="flex text-primary dark:text-dark"
-	>
-		<span class="h-4 w-4 mr-1">
-			<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="w-4 h-4" style="fill: currentColor;">
-				<path
-					d="M12.8995 6.85431L17.1421 11.0969L7.24264 20.9964H3V16.7538L12.8995 6.85431ZM14.3137 5.44009L16.435 3.31877C16.8256 2.92825 17.4587 2.92825 17.8492 3.31877L20.6777 6.1472C21.0682 6.53772 21.0682 7.17089 20.6777 7.56141L18.5563 9.68273L14.3137 5.44009Z"
-				/>
-			</svg>
-		</span>
-		{isZh ? '在 GitHub 上编辑' : 'Edit on GitHub'}
-	</a>
-</div>

+ 0 - 87
site/src/pages/components/Guide.svelte

@@ -1,87 +0,0 @@
-<script>
-	// @ts-nocheck
-
-	import { mdTextToHljs } from './../../utils/index';
-	import { themeStore, sysThemeStore, isWideScreenStore } from '../../store';
-
-	export let guide = 'button';
-
-	const isZh = localStorage.getItem('lang') === 'zh_CN';
-	let loading = true;
-	$: theme = $themeStore === 'auto' ? ($sysThemeStore === 'dark' ? 'dark' : 'light') : $themeStore;
-	const getMdStrFunc = async nav => {
-		loading = true;
-		const rawObj = await import(`../../../../doc/components/${nav}/guide${isZh ? '' : '_en'}.md`);
-		const mdStr = rawObj.default;
-		loading = false;
-		return mdTextToHljs(
-			mdStr
-				.replace(/<img src="/g, `<img class="w-full md:w-1/2${theme === 'dark' ? ' invert' : ''}" src="./assets/images/guide/`)
-				.replace(/<a href="/g, '<a target="_blank" href="'),
-		);
-	};
-	$: guideText = getMdStrFunc(guide).then(res => {
-		guideText = res;
-	});
-
-	// 全屏
-	const changeFullFunc = () => {
-		if ($isWideScreenStore) {
-			isWideScreenStore.set(false);
-			localStorage.setItem('isFull', 'notFull');
-		} else {
-			isWideScreenStore.set(true);
-			localStorage.setItem('isFull', 'full');
-		}
-	};
-</script>
-
-<article
-	class="prose prose-strong:text-primary dark:prose-strong:text-dark dark:prose-invert pb-12 {$isWideScreenStore
-		? 'max-w-full'
-		: 'max-w-5xl'}"
->
-	{#if loading}
-		{isZh ? '请等待...' : 'Please wait...'}
-	{:else}
-		{@html guideText}
-	{/if}
-</article>
-
-<div class="pb-8 text-xs flex gap-2">
-	<a
-		href={'https://github.com/any-tdf/stdf/edit/main/doc/components/' + guide + '/guide' + (isZh ? '' : '_en') + '.md'}
-		target="_blank"
-		class="flex text-primary dark:text-dark"
-	>
-		<span class="h-4 w-4 mr-1">
-			<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="w-4 h-4" style="fill: currentColor;">
-				<path
-					d="M12.8995 6.85431L17.1421 11.0969L7.24264 20.9964H3V16.7538L12.8995 6.85431ZM14.3137 5.44009L16.435 3.31877C16.8256 2.92825 17.4587 2.92825 17.8492 3.31877L20.6777 6.1472C21.0682 6.53772 21.0682 7.17089 20.6777 7.56141L18.5563 9.68273L14.3137 5.44009Z"
-				/>
-			</svg>
-		</span>
-		{isZh ? '在 GitHub 上编辑' : 'Edit on GitHub'}
-	</a>
-</div>
-
-<button
-	class="hidden md:block fixed right-2 bottom-4 z-50 p-1.5 w-8 h-8 rounded-full bg-primary dark:bg-dark text-white dark:text-black shadow-md shadow-primary/50 dark:shadow-dark/50"
-	on:click={changeFullFunc}
->
-	{#if $isWideScreenStore}
-		<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"
-			><path
-				d="M20 3C20.5523 3 21 3.44772 21 4V20C21 20.5523 20.5523 21 20 21H4C3.44772 21 3 20.5523 3 20V4C3 3.44772 3.44772 3 4 3H20ZM11 5H5V19H11V15H13V19H19V5H13V9H11V5ZM15 9L18 12L15 15V13H9V15L6 12L9 9V11H15V9Z"
-				fill="currentColor"
-			></path></svg
-		>
-	{:else}
-		<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"
-			><path
-				d="M20 3C20.5523 3 21 3.44772 21 4V20C21 20.5523 20.5523 21 20 21H4C3.44772 21 3 20.5523 3 20V4C3 3.44772 3.44772 3 4 3H20ZM11 5H5V10.999H7V9L10 12L7 15V13H5V19H11V17H13V19H19V13H17V15L14 12L17 9V10.999H19V5H13V7H11V5ZM13 13V15H11V13H13ZM13 9V11H11V9H13Z"
-				fill="currentColor"
-			></path></svg
-		>
-	{/if}
-</button>

+ 0 - 128
site/src/pages/components/Version.svelte

@@ -1,128 +0,0 @@
-<script>
-	// @ts-nocheck
-
-	import { mdTextToHljs } from '../../utils/index';
-
-	export let guide = 'button';
-	const isZh = localStorage.getItem('lang') === 'zh_CN';
-
-	let loading = true;
-
-	//提取字符中以‘[!tag’开头且以‘]’结尾的所有字符串,组成数组,并返回数组
-	const getTags = str => {
-		return str.match(/\[!tag[^\]]+\]/g);
-	};
-
-	//提取字符中以‘[!issue‘开头且以‘]’结尾的所有字符串,组成数组,并返回数组
-	const getIssues = str => {
-		return str.match(/\[!issue[^\]]+\]/g);
-	};
-
-	//提取字符中以‘[!contribute‘开头且以‘]’结尾的所有字符串,组成数组,并返回数组
-	const getContributes = str => {
-		return str.match(/\[!contribute[^\]]+\]/g);
-	};
-
-	// 传入 tag 类型和 index,返回对应的 emoji
-	const spanTextFun = (type, index) => {
-		if (type === 'O') {
-			return '👏';
-		}
-		if (type === 'A') {
-			return '💪';
-		}
-		switch (index) {
-			case '1':
-				return '👊';
-			case '2':
-				return '✊';
-			case '3':
-				return '👎';
-			default:
-				return '👎';
-		}
-	};
-	//替换Markdown中的标签
-	const mdTextToHljsFun = string => {
-		//替换tag
-		const tagList = getTags(string);
-		if (tagList) {
-			tagList.forEach(item => {
-				const arr = item.split('|');
-				// const span = `<span class="w-2 h-2 text-xs inline-block rounded-full mr-1 ${bgClassFun(arr[1], arr[2])}"></span>`;
-				const span = `<span class="mr-1">${spanTextFun(arr[1], arr[2])}</span>`;
-				string = string.replace(item, span);
-			});
-		}
-		//替换issue
-		const issueList = getIssues(string);
-		if (issueList) {
-			issueList.forEach(item => {
-				const arr = item.split('|');
-				const span = `<span><a href="https://github.com/${
-					arr[1]
-				}" target="_blank"><img class="w-4 h-4 ml-1 p-0 m-0 rounded-full overflow-hidden inline" src="https://avatars.githubusercontent.com/${
-					arr[1]
-				}" title="${isZh ? '感谢' : 'Thanks'} ${arr[1]} ${isZh ? '提出 Issue' : 'raise an Issue'}" alt=""></a></span>`;
-				string = string.replace(item, span);
-			});
-		}
-		//替换contribute
-		const contributeList = getContributes(string);
-		if (contributeList) {
-			contributeList.forEach(item => {
-				const arr = item.split('|');
-				const span = `<span><a href="https://github.com/${
-					arr[1]
-				}" target="_blank"><img class="w-4 h-4 ml-1 p-0 m-0 rounded-full overflow-hidden inline" src="https://avatars.githubusercontent.com/${
-					arr[1]
-				}" title="${isZh ? '感谢' : 'Thanks'} ${arr[1]} ${isZh ? '贡献代码' : 'contribute code'}" alt=""></a></span>`;
-				string = string.replace(item, span);
-			});
-		}
-		return string;
-	};
-
-	const getMdStrFunc = async nav => {
-		loading = true;
-		const rawObj = await import(`../../../../doc/components/${nav}/version${isZh ? '' : '_en'}.md`);
-		const mdStr = rawObj.default;
-		loading = false;
-		return mdTextToHljs(mdStr.replace(/<a href="/g, '<a target="_blank" href="'));
-	};
-	$: guideText = getMdStrFunc(guide).then(res => {
-		// @ts-ignore
-		guideText = mdTextToHljsFun(res);
-	});
-</script>
-
-<div class="text-xs mb-4 text-black/40 dark:text-white/30 max-w-5xl">
-	{isZh
-		? '注:👊、✊、👎 分别表示严重、一般、轻微三个等级的 BUG,👏 表示优化,💪 表示新增。描述后面的头像表示此项的提出者或贡献者,感谢他们。'
-		: 'Note: 👊, ✊, and 👎 represent three levels of severity for bugs, with 👊 being the most severe and 👎 the least severe. 👏 means optimization, and 💪 means new feature. The avatar after the description represents the proposer or contributor of the item. We thank them for their contributions. '}
-</div>
-<article
-	class="prose dark:prose-invert max-w-none pb-12 prose-table:break-all overflow-x-auto prose-td:whitespace-nowrap md:prose-td:whitespace-normal"
->
-	{#if loading}
-		{isZh ? '请等待...' : 'Please wait...'}
-	{:else}
-		{@html guideText}
-	{/if}
-</article>
-<div class="pb-8 text-xs flex gap-2">
-	<a
-		href={'https://github.com/any-tdf/stdf/edit/main/doc/components/' + guide + '/version' + (isZh ? '' : '_en') + '.md'}
-		class="flex text-primary dark:text-dark"
-		target="_blank"
-	>
-		<span class="h-4 w-4 mr-1">
-			<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="w-4 h-4" style="fill: currentColor;">
-				<path
-					d="M12.8995 6.85431L17.1421 11.0969L7.24264 20.9964H3V16.7538L12.8995 6.85431ZM14.3137 5.44009L16.435 3.31877C16.8256 2.92825 17.4587 2.92825 17.8492 3.31877L20.6777 6.1472C21.0682 6.53772 21.0682 7.17089 20.6777 7.56141L18.5563 9.68273L14.3137 5.44009Z"
-				/>
-			</svg>
-		</span>
-		{isZh ? '在 GitHub 上编辑' : 'Edit on GitHub'}
-	</a>
-</div>

+ 0 - 19
site/src/pages/guide/About.svelte

@@ -1,19 +0,0 @@
-<script>
-	import { mdTextToHljs } from '../../utils/index';
-	import { isWideScreenStore } from '../../store';
-
-	import text from '../../../../doc/guide/about.md';
-	import text_en from '../../../../doc/guide/about_en.md';
-
-	const isZh = localStorage.getItem('lang') === 'zh_CN';
-
-	const hljsText = mdTextToHljs((isZh ? text : text_en).replace(/<a href="/g, '<a target="_blank" href="'));
-</script>
-
-<article
-	class="prose prose-strong:text-primary dark:prose-strong:text-dark dark:prose-invert pb-12 {$isWideScreenStore
-		? 'max-w-full'
-		: 'max-w-5xl'}"
->
-	{@html hljsText}
-</article>

+ 0 - 334
site/src/pages/guide/Calendar.svelte

@@ -1,334 +0,0 @@
-<script>
-	import { getNowBeforeOrAfterMonth, getCalendarData, getMonthListRange, getDateRange } from '../../../../packages/stdf/components/utils';
-	import zh_CN from '../../../../packages/stdf/lang/zh_CN';
-	import en_US from '../../../../packages/stdf/lang/en_US';
-
-	const isZh = localStorage.getItem('lang') === 'zh_CN';
-
-	// 当前语言
-	// current language
-	const currentLang = isZh ? zh_CN : en_US;
-	const calendarLang = currentLang.calendar;
-
-	// 传入的开始月,默认为当前月前6个月
-	// The start month passed in, default is 6 months before the current month
-	export let startMonth = getNowBeforeOrAfterMonth(0);
-
-	// 传入的结束月,默认为当前月后6个月
-	// The end month passed in, default is 6 months after the current month
-	export let endMonth = getNowBeforeOrAfterMonth(0);
-
-	// 选择模式,single 单选,multiple 多选,range 范围选择
-	// Selection mode, single single selection, multiple multiple selection, range range selection
-	export let mode = 'range';
-
-	// 是否从周日开始
-	// Whether to start from Sunday
-	export let startSunday = false;
-
-	// 周末文字是否标红
-	// Whether the weekend text is marked red
-	export let weekendRed = false;
-
-	// 月数据是否使用卡片样式
-	// Whether to use the card style for the month data
-	export let monthCard = true;
-
-	// 是否显示月份水印
-	// Whether to show the month watermark
-	export let monthMark = false;
-
-	// 月份水印文字大小
-	// Month watermark text size
-	export let monthMarkSize = 'xl';
-
-	// 显示信息的日期
-	// Date to display information
-	export let infoDates = [];
-
-	// 不允许选择日期集合
-	// Collection of dates not allowed to be selected
-	export let disabledDates = [];
-
-	// 圆角风格
-	// Rounded style
-	export let radius = 'xl';
-
-	// 自动滚动到某个月时,是否使用动画
-	// Whether to use animation when automatically scrolling to a month
-	export let useAnimation = true;
-
-	// 高亮显示今天
-	// Highlight today
-	export let highlightToday = true;
-
-	// 圆角风格样式
-	// Rounded style style
-	const radiusClass = {
-		base: 'rounded',
-		xl: 'rounded-xl',
-		'2xl': 'rounded-2xl',
-		none: 'rounded-none',
-	};
-
-	// 月份水印文字大小样式
-	// Month watermark text size style
-	const monthMarkSizeClass = {
-		'3xl': 'text-3xl',
-		'4xl': 'text-4xl',
-		'5xl': 'text-5xl',
-		'6xl': 'text-6xl',
-		'7xl': 'text-7xl',
-		'8xl': 'text-8xl',
-		'9xl': 'text-9xl',
-	};
-
-	// 当天日期字符串,YYYYMMDD,日和天不足两位时前面补0
-	// Today's date string, YYYYMMDD, day and day are not less than two digits, and 0 is filled in front
-	const now = new Date();
-	const nowYear = now.getFullYear();
-	const nowMonth = now.getMonth() + 1;
-	const nowDay = now.getDate();
-	const todayStr = `${nowYear}${nowMonth < 10 ? '0' + nowMonth : nowMonth}${nowDay < 10 ? '0' + nowDay : nowDay}`;
-
-	// 是否点击了快速选择
-	// Whether to click the quick selection
-	let isQuickSelect = false;
-
-	// 定义周数据文字
-	// Define the week data text
-	const weekTexts = startSunday ? calendarLang.weekSundayStartTextList : calendarLang.weekTextList;
-
-	// 传入 startSunday 和位于周的索引,返回是否是周末
-	// Pass in startSunday and the index of the week, and return whether it is a weekend
-	const isWeekendFunc = (startSunday, index) => {
-		if (startSunday) {
-			return index === 0 || index === 6;
-		} else {
-			return index === 5 || index === 6;
-		}
-	};
-
-	// 根据 startMonth 和 endMonth 将月份数据组成 monthList
-	// According to startMonth and endMonth, the month data is assembled into monthList
-	const monthList = getMonthListRange(startMonth, endMonth);
-
-	// 循环 monthList,根据每个月份的数据,生成全部的日历数据,其中 month 为当前月,year 为年,data 为日期数组
-	// Loop monthList, generate all calendar data according to the data of each month, where month is the current month, year is the year, and data is the date array
-	const allMonthData = monthList.map(monthStr => {
-		return {
-			year: monthStr.slice(0, 4),
-			month: monthStr.slice(4),
-			data: getCalendarData(monthStr, startSunday),
-		};
-	});
-
-	// 如果 infoDates 不为空,循环 allMonthData,循环 data,循环 infoDates,如果 infoDates 中的日期和 data 中的日期相同,将 infoDates 中的 info 赋值给 data 中的 info
-	// If infoDates is not empty, loop allMonthData, loop data, loop infoDates, if the date in infoDates is the same as the date in data, assign the info in infoDates to the info in data
-	if (infoDates.length > 0) {
-		allMonthData.forEach(monthData => {
-			monthData.data.forEach(data => {
-				infoDates.forEach(info => {
-					if (info.date === monthData.year + monthData.month + data.day) {
-						data.info = info.info;
-					}
-				});
-			});
-		});
-	}
-
-	// 如果 disabledDates 不为空,循环 allMonthData,循环 data,循环 disabledDates,如果 disabledDates 中的日期和 data 中的日期相同,将 disabledDates 中的 disabled 赋值给 data 中的 disabled
-	// If disabledDates is not empty, loop allMonthData, loop data, loop disabledDates, if the date in disabledDates is the same as the date in data, assign the disabled in disabledDates to the disabled in data
-	if (disabledDates.length > 0) {
-		allMonthData.forEach(monthData => {
-			monthData.data.forEach(data => {
-				disabledDates.forEach(disabled => {
-					if (disabled === monthData.year + monthData.month + data.day) {
-						data.disabled = true;
-					}
-				});
-			});
-		});
-	}
-
-	// 生成一个随机数,在 5-20 之间,作为选定天数
-	// Generate a random number between 5-20 as the selected day
-	const randomDayNum = Math.floor(Math.random() * 16) + 5;
-
-	// 从当前月份随机找到连续的 randomDayNum 天,作为 selectedDate 初始值,如 ['20231108', '20231109', '20231110', '20231111', '20231112']
-	// From the current month, find randomDayNum consecutive days at random as the initial value of selectedDate, such as ['20231108', '20231109', '20231110', '20231111', '20231112']
-	// 先获取当前月份所有日期,再获取当前月份所有日期中的连续 randomDayNum 天
-	// First get all the dates of the current month, and then get randomDayNum consecutive days in all the dates of the current month
-	let currentMonthAllDays = [];
-	const currentMonth = new Date().getMonth() + 1;
-	const currentYear = new Date().getFullYear();
-	const currentMonthData = getCalendarData(`${currentYear}${currentMonth < 10 ? '0' + currentMonth : currentMonth}`, startSunday);
-	const currentMonthDays = currentMonthData.filter(item => item.day).map(item => item.day);
-	currentMonthDays.forEach((item, index) => {
-		currentMonthAllDays.push(`${currentYear}${currentMonth < 10 ? '0' + currentMonth : currentMonth}${item}`);
-	});
-	// 从 currentMonthAllDays 随机找到连续的 5 天
-	// Find 5 consecutive days at random from currentMonthAllDays
-	const randomIndex = Math.floor(Math.random() * (currentMonthAllDays.length - randomDayNum));
-	let selectedDate = currentMonthAllDays.slice(randomIndex, randomIndex + randomDayNum);
-
-	// 范围选择时,点击的开始与结束
-	// When range selection is clicked, the beginning and end are clicked
-	let rangeArr = [];
-
-	// selectedDate 字符串
-	// selectedDate string
-	$: selectedDateStr = selectedDate.join(',');
-
-	// 点击日期事件
-	// Click date event
-	const clickDayFunc = (year, month, dayData) => {
-		if (!dayData.day) {
-			return;
-		}
-		if (isQuickSelect) {
-			isQuickSelect = false;
-			selectedDate = [];
-		}
-		rangeArr.push(`${year}${month}${dayData.day}`);
-		if (rangeArr.length === 2) {
-			// 将 rangeArr 排序,保证第一个日期小于第二个日期
-			// Sort rangeArr to ensure that the first date is less than the second date
-			rangeArr.sort((a, b) => {
-				return Number(a) - Number(b);
-			});
-			selectedDate = getDateRange(rangeArr[0], rangeArr[1], disabledDates);
-			rangeArr = [];
-		} else {
-			selectedDate = rangeArr;
-		}
-
-		// 对 selectedDate 按照日期排序
-		// Sort selectedDate by date
-		selectedDate.sort((a, b) => {
-			return Number(a) - Number(b);
-		});
-	};
-</script>
-
-<div>
-	<div class=" z-10 top-0 left-0 w-full">
-		<div class="flex justify-around items-center text-center gap-1 px-6 h-10 leading-10">
-			{#each weekTexts as item, index}
-				<div class={`flex-1 font-bold${weekendRed && isWeekendFunc(startSunday, index) ? ' text-error' : ''}`}>
-					{item}
-				</div>
-			{/each}
-		</div>
-	</div>
-	<div class={` py-2 px-4 flex flex-col gap-4 overflow-y-auto calendar-container ${useAnimation ? 'scroll-smooth' : 'scroll-auto'}`}>
-		{#each allMonthData as item}
-			<div class={`${monthCard ? 'bg-white dark:bg-black shadow-md dark:shadow-white/5 rounded-xl ' : ''}relative`}>
-				<div class="px-4 pt-4 text-xl text-black/30 dark:text-white/30">
-					<span class="font-bold text-black dark:text-white mr-2">
-						{calendarLang.monthTextList[Number(item.month) - 1]}
-					</span>
-					{item.year}
-				</div>
-				<div class={`grid grid-cols-7 gap-y-1 text-center p-2`}>
-					{#each item.data as i}
-						<!-- svelte-ignore a11y-click-events-have-key-events -->
-						<!-- svelte-ignore a11y-no-static-element-interactions -->
-						<div
-							class={`p-px cursor-pointer${i.day ? ' bg-primary/10 dark:bg-dark/20' : ''}`}
-							on:click={() => {
-								if (!i.disabled) clickDayFunc(item.year, item.month, i);
-							}}
-							class:!bg-transparent={!selectedDateStr.includes(`${item.year}${item.month}${i.day}`)}
-							class:!rounded-l-xl={radius === 'xl' &&
-								mode === 'range' &&
-								(selectedDateStr.indexOf(`${item.year}${item.month}${i.day}`) === 0 || i.start)}
-							class:!rounded-r-xl={radius === 'xl' &&
-								mode === 'range' &&
-								(selectedDateStr.indexOf(`${item.year}${item.month}${i.day}`) === selectedDateStr.length - 8 || i.end)}
-							class:!rounded-xl={radius === 'xl' && mode !== 'range'}
-							class:!rounded-l-2xl={radius === '2xl' &&
-								mode === 'range' &&
-								(selectedDateStr.indexOf(`${item.year}${item.month}${i.day}`) === 0 || i.start)}
-							class:!rounded-r-2xl={radius === '2xl' &&
-								mode === 'range' &&
-								(selectedDateStr.indexOf(`${item.year}${item.month}${i.day}`) === selectedDateStr.length - 8 || i.end)}
-							class:!rounded-2xl={radius === '2xl' && mode !== 'range'}
-							class:!rounded-l-none={radius === 'none' &&
-								mode === 'range' &&
-								(selectedDateStr.indexOf(`${item.year}${item.month}${i.day}`) === 0 || i.start)}
-							class:!rounded-r-none={radius === 'none' &&
-								mode === 'range' &&
-								(selectedDateStr.indexOf(`${item.year}${item.month}${i.day}`) === selectedDateStr.length - 8 || i.end)}
-							class:!rounded-none={radius === 'none' && mode !== 'range'}
-							class:!rounded-l={radius === 'base' &&
-								mode === 'range' &&
-								(selectedDateStr.indexOf(`${item.year}${item.month}${i.day}`) === 0 || i.start)}
-							class:!rounded-r={radius === 'base' &&
-								mode === 'range' &&
-								(selectedDateStr.indexOf(`${item.year}${item.month}${i.day}`) === selectedDateStr.length - 8 || i.end)}
-							class:!rounded={radius === 'base' && mode !== 'range'}
-						>
-							<div
-								class={`${radiusClass[radius] || 'rounded-xl'} relative w-full h-full flex flex-col justify-center ${
-									i.info ? 'py-1' : 'py-2'
-								}`}
-								class:bg-primary={(i.day && mode !== 'range' && selectedDateStr.includes(`${item.year}${item.month}${i.day}`)) ||
-									(i.day &&
-										selectedDateStr.includes(`${item.year}${item.month}${i.day}`) &&
-										mode === 'range' &&
-										(selectedDateStr.indexOf(`${item.year}${item.month}${i.day}`) === 0 ||
-											selectedDateStr.indexOf(`${item.year}${item.month}${i.day}`) === selectedDateStr.length - 8))}
-								class:dark:bg-dark={(i.day && mode !== 'range' && selectedDateStr.includes(`${item.year}${item.month}${i.day}`)) ||
-									(i.day &&
-										selectedDateStr.includes(`${item.year}${item.month}${i.day}`) &&
-										mode === 'range' &&
-										(selectedDateStr.indexOf(`${item.year}${item.month}${i.day}`) === 0 ||
-											selectedDateStr.indexOf(`${item.year}${item.month}${i.day}`) === selectedDateStr.length - 8))}
-								class:text-white={(i.day && mode !== 'range' && selectedDateStr.includes(`${item.year}${item.month}${i.day}`)) ||
-									(i.day &&
-										selectedDateStr.includes(`${item.year}${item.month}${i.day}`) &&
-										mode === 'range' &&
-										(selectedDateStr.indexOf(`${item.year}${item.month}${i.day}`) === 0 ||
-											selectedDateStr.indexOf(`${item.year}${item.month}${i.day}`) === selectedDateStr.length - 8))}
-								class:dark:text-black={(i.day && mode !== 'range' && selectedDateStr.includes(`${item.year}${item.month}${i.day}`)) ||
-									(i.day &&
-										selectedDateStr.includes(`${item.year}${item.month}${i.day}`) &&
-										mode === 'range' &&
-										(selectedDateStr.indexOf(`${item.year}${item.month}${i.day}`) === 0 ||
-											selectedDateStr.indexOf(`${item.year}${item.month}${i.day}`) === selectedDateStr.length - 8))}
-								class:text-primary={mode === 'range' &&
-									selectedDateStr.includes(`${item.year}${item.month}${i.day}`) &&
-									selectedDateStr.indexOf(`${item.year}${item.month}${i.day}`) !== 0 &&
-									selectedDateStr.indexOf(`${item.year}${item.month}${i.day}`) !== selectedDateStr.length - 8}
-								class:dark:text-dark={mode === 'range' &&
-									selectedDateStr.includes(`${item.year}${item.month}${i.day}`) &&
-									selectedDateStr.indexOf(`${item.year}${item.month}${i.day}`) !== 0 &&
-									selectedDateStr.indexOf(`${item.year}${item.month}${i.day}`) !== selectedDateStr.length - 8}
-								class:border={item.year + item.month + i.day === todayStr && highlightToday}
-								class:border-primary={item.year + item.month + i.day === todayStr && highlightToday}
-								class:dark:border-dark={item.year + item.month + i.day === todayStr && highlightToday}
-							>
-								<div class="font-bold">
-									{i.day ? Number(i.day) : ''}
-								</div>
-								<div class="text-xs opacity-50">{i.info || ''}</div>
-							</div>
-						</div>
-					{/each}
-				</div>
-				{#if monthMark}
-					<div
-						class={`absolute pointer-events-none w-full ${
-							monthMarkSizeClass[monthMarkSize] || 'text-7xl'
-						} text-center top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 font-bold text-black/5 ${
-							monthCard ? 'dark:text-white/10' : 'dark:text-white/5'
-						}`}
-					>
-						{calendarLang.monthTextList[Number(item.month) - 1]}
-					</div>
-				{/if}
-			</div>
-		{/each}
-	</div>
-</div>

Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott